离开审批节点后自动更新某字段值-实现方案原创
金蝶云社区-新用户123
新用户123
2人赞赏了该文章 827次浏览 未经作者许可,禁止转载编辑于2021年08月06日 18:15:23

标签:工作流插件、字段更新

需求背景:

在某业务场景中,当单据在出现多个审批人时,审批人之间的审批间隔时间不同,那么对于该单据的业务风险也不同,因此设定一个风险系数来量化此风险。 此案例即为通过工作流插件实现:每当发生审批之后自动计算风险系数的场景

 

实现方案:

1.新建一个申请单,并设置风险系数字段

 image.png

 

 

 

 

 

 

 

 

 

 

 

2.保存数据初始带出或者给入一个缺省值

 image.png

3.这里查看工作流的配置方式,三级审批节点

 image.png

4.配置处理工作流的节点的插件,可以通过插件计算风险系数,代码路径kd.cosmicsrv.pocapply.PocIWorkflowPlugin

 image.png

5.进入审批节点之后,审批的风险系数会按照公式计算,可自定义(预估POC工作量/(预计演示时间-当前时间(审批时间))

 image.png

 

实现效果:

本来单据风险系数为1,隔一段时间审批后风险系数会发生改变。

image.png

image.png

附件:

 

 

   public class PocIWorkflowPlugin implements IWorkflowPlugin{

  

  

    @Override

    public void notify(AgentExecution execution) {

        if (execution.getBusinessKey() != null) {

            //获取当前审批节点

            AgentTask agentTask = execution.getCurrentTask();

           

            String businessKey = execution.getBusinessKey();

            DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(businessKey, "kded_stan_application");

           

            //预计演示时间

           Date date =(Date)  dynamicObject.get("kded_dem_time");

           //当前系统时间

           Date dangdate=new Date();

 

           //相减

            long diff =date.getTime()- dangdate.getTime();

            long diffDays = (diff / (24 * 60 * 60 * 1000))+1;

            String workload=dynamicObject.get("kded_estimate_workload").toString();

             //计算风险系数

           BigDecimal wordlo=new BigDecimal(workload);

           BigDecimal diffDa=new BigDecimal(diffDays);

           BigDecimal value=wordlo.divide(diffDa,2,BigDecimal.ROUND_HALF_UP);

         

          //更改进去

          dynamicObject.set("kded_risk_coeffic", value);

            SaveServiceHelper.save(new DynamicObject[] {dynamicObject});

           

        }

    }

 

}

 


图标赞 2
2人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0