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