电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

寻源二开指南--寻源项目变更移动审批--如何获取变更单的组件信息

来源:金蝶云社区作者:金蝶2024-09-2213

寻源二开指南--寻源项目变更移动审批--如何获取变更单的组件信息


1. 移动审批—获取变更单组件信息

1.1    业务场景简介

寻源项目变更,因为变更类型很多,每种变更类型的信息都不一样,无法通过一个大而全的大表单实现,只能通过组件化实现。在移动审批时,如何获取组件信息,需要进行特殊处理。目前有2种方式:一、组件以报表附件的形式展示二、将组件作为一个普通单据,配置工作流和移动审批

 

1.2    简要实现方案

步骤

开发内容

备注

1

组件以报表附件的形式展示


2

将组件作为普通单据,配置工作流和移动审批


 

1.3    详细实现方案

下面以标准产品的“寻源项目时间变更” 为例。

 

1.3.1  组件以报表附件的形式展示

1、对“寻源项目时间变更”元数据 配置打印模板,按普通单据配置即可:

 

2、启用扩展插件创建组件附件(默认启用),如果不需要可以禁用。

 

3、寻源项目变更单提交时,自动根据组件的打印模板,创建组件的附件

这里也可以将“变更摘要”设置为必录,要求变更人员录入此信息,便于移动审批时概览。

 

4、移动审批时,可以查看和下载组的相关附件

 

 

1.3.2  组件作为普通单据,配置工作流和移动审批


以下2-7步骤,标准产品的变更单将在【 V5.0.0025 】 预置好,无需二开配置。


1、将寻源变更单的 撤销按钮、审核按钮 设置为不可见,避免 重复撤销 和 重复审核。 (非必需)

 

2、在 组件单元数据上增加必要的字段:

1)寻源项目F7:需要配置字段 fprojectid

2)单据状态:必须,注意设置元数据的单据状态字段,以及单据状态的下拉值

3)寻源项目变更单F7:非必须,主要用于在移动界面携带表头信息。

可以增加其他二开字段。

 

3、寻源项目变更增加两个操作:撤销( unsubmit2 )、审核( audit2 ),寻源变更不支持反审核,不需要配置,下同。

注意操作代码需加上 2, 避免与原来的操作代码冲突。

 

4、对 撤销、审核 配置操作状态

 

5、对 撤销、审核 配置服务插件(插件都一样),一般不需要二开


package kd.scm.pds.opplugin;

 

import java.util.List;

 

import kd.bos.dataentity.entity.DynamicObject;

import kd.bos.entity.ExtendedDataEntity;

import kd.bos.entity.plugin.AbstractOperationServicePlugIn;

import kd.bos.entity.plugin.PreparePropertysEventArgs;

import kd.bos.entity.plugin.args.BeforeOperationArgs;

import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;

import kd.bos.servicehelper.BusinessDataServiceHelper;

import kd.scm.common.constant.BillAssistConstant;

import kd.scm.common.enums.BillStatusEnum;

import kd.scm.pds.common.constant.SrcCommonConstant;

import kd.scm.pds.common.constant.SrcMetadataConstant;

import kd.scm.pds.common.util.PdsCommonUtils;

 

/**

 * 变更单组件--移动审批--操作插件

 *

 * @author rd_fumin_huang

 *

 */

public class PdsChgCompMobileOpTpl extends AbstractOperationServicePlugIn {

       @Override

       public void onPreparePropertys(PreparePropertysEventArgs e) {

              super.onPreparePropertys(e);

              e.getFieldKeys().add(SrcCommonConstant.ID);

              e.getFieldKeys().add(SrcCommonConstant.PARENTID);

              e.getFieldKeys().add(SrcCommonConstant.BILLSTATUS);

       }

 

       @Override

       public void beforeExecuteOperationTransaction(BeforeOperationArgs evt) {

              String key = evt.getOperationKey();

              switch (key) {

              // 撤销2

              case BillAssistConstant.OP_UNSUBMIT + '2':

                     // 审核2

              case BillAssistConstant.OP_AUDIT + '2':

                     // 已提交才允许审核

                     List<ExtendedDataEntity> dataEntity = evt.getValidExtDataEntities();

                     for (ExtendedDataEntity extDataEntity : dataEntity) {

                            DynamicObject billObj = extDataEntity.getDataEntity();

                            String billStatus = billObj.getString(SrcCommonConstant.BILLSTATUS);

                            // 已提交才允许审核

                            if (!BillStatusEnum.SUBMIT.getVal().equals(billStatus)) {

                                   evt.setCancel(true);

                                   evt.setCancelMessage("已提交的单据才允许进行此操作。");

                            }

                     }

                     break;

              default:

                     break;

              }

       }

 

       @Override

       public void beginOperationTransaction(BeginOperationTransactionArgs args) {

              super.beginOperationTransaction(args);

              DynamicObject[] compObjs = args.getDataEntities();

              for (DynamicObject compObj : compObjs) {

                     // 父单据id

                     long parentId = PdsCommonUtils.object2Long(compObj.getString(SrcCommonConstant.PARENTID));

                     DynamicObject billObj = BusinessDataServiceHelper.loadSingle(parentId, SrcMetadataConstant.SRC_BIDCHANGE);

                     String billStatus = billObj.getString(SrcCommonConstant.BILLSTATUS);

                     String operationKey = args.getOperationKey();

                     switch (operationKey) {

                     // 撤销2

                     case BillAssistConsta

寻源二开指南--寻源项目变更移动审批--如何获取变更单的组件信息

1. 移动审批—获取变更单组件信息1.1 业务场景简介寻源项目变更,因为变更类型很多,每种变更类型的信息都不一样,无法通过一个大而全...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信