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

如何在后台创建寻源变更单,并自动提交和审核

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

如何在后台创建寻源变更单,并自动提交和审核

1. 如何在后台创建寻源变更单,并自动提交和审核

1.1    业务场景简介

寻源变更一般通过业务操作—>发起变更,或者 通过菜单“寻源变更”,新增变更单进行变更处理。但有时候需要后台创建变更单,并自动提交和审核,例如:在“结果公告”节点,如果发布的是流标公告,则自动生成一张项目终止/流标变更单,并自动提交和审核。

 

1、发布“流标公告”,并提交、审核:

 

2、自动创建“项目终止/流标变更单”,并自动提交和审核:

1.2    简要实现方案

步骤

开发内容

备注

1

后台创建变更单的入口插件,并注册

代码开发

2

后台创建变更单的表头插件,并注册

应用配置

3

后台创建变更单的组件插件,并注册

代码开发

 

1.3    详细开发步骤及示例代码

下面以发布“发布流标公告、项目终止/流标变更” 为例。

1.3.1  新增后台创建变更单的入口插件,并注册


插件最主要部分的是初始化变更单所需的数据,代码如下:

package kd.scm.src.opplugin.audithandle;

 

import java.util.HashMap;

import java.util.Map;

 

import   kd.bos.dataentity.entity.DynamicObject;

import   kd.bos.dataentity.resource.ResManager;

import kd.bos.orm.query.QCP;

import kd.bos.orm.query.QFilter;

import   kd.bos.servicehelper.BusinessDataServiceHelper;

import kd.bos.servicehelper.QueryServiceHelper;

import   kd.scm.common.constant.BillAssistConstant;

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

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

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

import kd.scm.pds.common.extplugin.ExtPluginContext;

import   kd.scm.pds.common.extplugin.IExtPluginHandler;

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

import   kd.scm.src.common.util.SrcBidChangeUtil;

 

/**

 * 发布流标公告后--自动进行项目流标处理

 *

 *   @author rd_fumin_huang

 *

 */

public class SrcAutoEndchangeHandler   implements IExtPluginHandler {

       private   static final long serialVersionUID = 1L;

 

       @Override

       public   void process(ExtPluginContext args) {

              //   是否需要变更

              if   (!isNeedChange(args)) {

                     return;

              }

              //   创建变更上下文

              ExtPluginContext   context = createChangeContext(args);

 

              //   获取已存在的未审核变更单

              DynamicObject   changeObj = SrcBidChangeUtil.getBidChangeBill(context);

              if   (null == changeObj) {

                     //   创建变更单

                     changeObj   = SrcBidChangeUtil.createBidChangeBill(context);

              }

              //   执行 提交

              PdsCommonUtils.doOperation(changeObj,   BillAssistConstant.OP_SUBMIT);

              //   执行 审核

              PdsCommonUtils.doOperation(changeObj,   BillAssistConstant.OP_AUDIT);

       }

 

       /**

        * 创建变更上下文

        *

        * @param context

        * @return

        */

       public   ExtPluginContext createChangeContext(ExtPluginContext args) {

              ExtPluginContext   context = new ExtPluginContext();

              //   传入 寻源项目对象、id

              context.setProjectObj(args.getBillObj());

              context.setProjectId(args.getProjectId());

 

              // 初始化 valueMap(重要,二开需要修改)

              initValueMap(context);

 

              //   返回

              return   context;

       }

 

       /**

        * 初始化 valueMap(重要,二开需要修改)

        *

        * @param args

        * @param context

        */

       public   void initValueMap(ExtPluginContext context) {

              Map<String,   Object> valueMap = new HashMap<>(8);

              //   传入 完整的其他参数

              //   1 变更来源:1-寻源申请 2-项目立项 3-寻源项目

              valueMap.put(SrcCommonConstant.CHANGESOURCE,   SrcCommonConstant.CHANGESOURCE_PROJECT);

              //   2 寻源项目id

              valueMap.put(SrcCommonConstant.PROJECT,   context.getProjectId());

              //   3 变更类型id:项目终止/废标模板id (重要)

              long   templateId = PdsCommonUtils.getBasedataIdByNumber(PdsMetadataConstant.PDS_TPLCONFIG,   "SYS042");  //通过变更类型编码获取变更类型id

              valueMap.put(SrcCommonConstant.TEMPLATE,   templateId);

              //   获取 变更类型对象

              DynamicObject   changeType = BusinessDataServiceHelper.loadSingle(templateId,   PdsMetadataConstant.PDS_TPLCONFIG);

              //   用源单对象 暂存 变更类型对象

              context.setSourceObj(changeType);

 

              //   4 变更原因

              valueMap.put(SrcCommonConstant.REMARK,   ResManager.loadKDString("发布流标公告后自动终止项目。",   "SrcAutoEndchangeHandler_0", "scm-src-opplugin"));

              //   5 业务类型:同主单据

              valueMap.put(SrcCommonConstant.BIZTYPE,   context.getProjectObj().getLong(SrcCommonConstant.BIZTYPE + '.' +   SrcCommonConstant.ID));

              //   6 采购组织:同主单据

              valueMap.put(SrcCommonConstant.ORG,   context.getProjectObj().getLong(SrcCommonConstant.ORG + '.' +   SrcCommonConstant.ID));

              //   7 变更发起当前节点id

              valueMap.put(SrcCommonConstant.CURRENTNODE,   PdsCommonUtils.getNodeIdByEntityName(context.getProjectObj().getDataEntityType().getName()));

 

              //   暂存到 context--ParamMap2

              context.getParamMap2().put(SrcMetadataConstant.SRC_BIDCHANGE,   valueMap);

       }

 

       /**

        * 是否需要发起变更

        *

        * @param context

        * @return

        */

       public   boolean isNeedChange(ExtPluginContext args) {

              //   来源单据id = 寻源项目id

              QFilter   qfilter = new QFilter(SrcCommonConstant.SRCBILLID, QCP.equals,   args.getProjectId())

如何在后台创建寻源变更单,并自动提交和审核

1. 如何在后台创建寻源变更单,并自动提交和审核1.1 业务场景简介寻源变更一般通过业务操作—>发起变更,或者 通过菜单“寻源变更”...
点击下载文档文档为doc格式

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

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