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

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 |
寻源二开指南--寻源项目变更移动审批--如何获取变更单的组件信息
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



