فهرست منبع

1.工作流插件取当前审核人

tanya 1 روز پیش
والد
کامیت
02097855e8

+ 17 - 11
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/workflow/TaskApproverWorkflowPlugin.java

@@ -10,6 +10,7 @@ import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
+import kd.bos.util.CollectionUtils;
 import kd.bos.workflow.api.AgentExecution;
 import kd.bos.workflow.api.AgentTask;
 import kd.bos.workflow.engine.extitf.IWorkflowPlugin;
@@ -32,7 +33,14 @@ public class TaskApproverWorkflowPlugin implements IWorkflowPlugin {
         //获取当前节点实际审批人ID
         Long assigneeId = currentTask.getAssigneeId();
         BizLog.log("工作流当前审批人:" + assigneeId);
-        updateBillTaskApprover(businessKey,entityNumber, Collections.singletonList(assigneeId));
+
+        // 携带参数说明来源共享审核节点
+        if(e.getCurrentWFPluginParams().containsKey("istaskapprove")){
+            updateBillTaskApprover(businessKey,entityNumber, null);
+        }else{
+            updateBillTaskApprover(businessKey,entityNumber, Collections.singletonList(assigneeId));
+        }
+
     }
 
     /**
@@ -48,17 +56,15 @@ public class TaskApproverWorkflowPlugin implements IWorkflowPlugin {
         }
 
         DynamicObject billInfo = BusinessDataServiceHelper.loadSingle(billId, formId, String.join(",",ErReimBurseBillConstant.KEY_NCKD_TASKAPPROVER,"billno"));
-
-        // 按完成时间倒叙,取最晚的一条 如果共享被驳回,再次审核通过时反写
-        DynamicObject[] taskTaskhistories = BusinessDataServiceHelper.load("task_taskhistory", "billnumber,id,apprevalmessage,personid,tasktypeid,state", new QFilter[]{
-                new QFilter("billnumber", QCP.equals,billInfo.getString("billno"))
-        },"completetime desc");
-        BizLog.log("taskTaskhistories length:" + taskTaskhistories.length);
-        // 优先取共享审核人
-        if(taskTaskhistories.length > 0){
-            billInfo.set(ErReimBurseBillConstant.KEY_NCKD_TASKAPPROVER,taskTaskhistories[0].getDynamicObject("personid"));
-        }else{
+        if(CollectionUtils.isNotEmpty(currentApprover) && currentApprover.get(0) != 0L){
             billInfo.set(ErReimBurseBillConstant.KEY_NCKD_TASKAPPROVER,currentApprover.get(0));
+        }else{
+            // 按完成时间倒叙,取最晚的一条 如果共享被驳回,再次审核通过时反写
+            DynamicObject[] taskTaskhistories = BusinessDataServiceHelper.load("task_taskhistory", "billnumber,id,apprevalmessage,personid,tasktypeid,state", new QFilter[]{
+                    new QFilter("billnumber", QCP.equals,billInfo.getString("billno"))
+            },"completetime desc");
+            BizLog.log("taskTaskhistories length:" + taskTaskhistories.length);
+            billInfo.set(ErReimBurseBillConstant.KEY_NCKD_TASKAPPROVER,taskTaskhistories[0].getDynamicObject("personid"));
         }
         SaveServiceHelper.save(new DynamicObject[]{ billInfo });
     }