|
@@ -10,6 +10,7 @@ import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
|
+import kd.bos.util.CollectionUtils;
|
|
import kd.bos.workflow.api.AgentExecution;
|
|
import kd.bos.workflow.api.AgentExecution;
|
|
import kd.bos.workflow.api.AgentTask;
|
|
import kd.bos.workflow.api.AgentTask;
|
|
import kd.bos.workflow.engine.extitf.IWorkflowPlugin;
|
|
import kd.bos.workflow.engine.extitf.IWorkflowPlugin;
|
|
@@ -32,7 +33,14 @@ public class TaskApproverWorkflowPlugin implements IWorkflowPlugin {
|
|
//获取当前节点实际审批人ID
|
|
//获取当前节点实际审批人ID
|
|
Long assigneeId = currentTask.getAssigneeId();
|
|
Long assigneeId = currentTask.getAssigneeId();
|
|
BizLog.log("工作流当前审批人:" + assigneeId);
|
|
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 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));
|
|
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 });
|
|
SaveServiceHelper.save(new DynamicObject[]{ billInfo });
|
|
}
|
|
}
|