| 
														
															@@ -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 }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 |