From 9a5abe507d6602f2311ffbe1d7bf25e2b58d3a7a Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 19 九月 2025 00:17:30 +0800
Subject: [PATCH] 优化审批界面

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java |   67 +++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
index 0884332..4be1c27 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
@@ -10,8 +10,9 @@
 import org.springblade.mdm.basesetting.machine.entity.Machine;
 import org.springblade.mdm.basesetting.machine.service.MachineService;
 import org.springblade.mdm.commons.service.ParamService;
-import org.springblade.mdm.flow.constants.FlowContants;
-import org.springblade.mdm.flow.constants.FlowVariableContants;
+import org.springblade.mdm.commons.service.UserCommonService;
+import org.springblade.mdm.flow.constants.FlowConstant;
+import org.springblade.mdm.flow.constants.FlowVariableConstant;
 import org.springblade.mdm.flow.service.FlowCommonService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
 import org.springblade.mdm.flow.service.FlowProgramProperties;
@@ -34,49 +35,67 @@
 	@Autowired
 	private FlowCommonService flowCommonService;
 	@Autowired
+	private UserCommonService userCommonService;
+	@Autowired
 	private MachineService machineService;
 
 	@Transactional
 	@Override
 	public void completeTask(String taskId, String processInstanceId, String comment, Map<String, Object> variables) {
 		Task task = currentTask(taskId);
-		String operateResult = this.getApproveResult(variables);
 
-		FlowProgramProperties props = flowCommonService.getProgramProperties(processInstanceId);
-		if(!variables.containsKey("assignee")) {
-			throw new ServiceException("璇锋寚瀹氭祦绋嬩笅涓�姝ュ鐞嗕汉");
-		}
-
-		if(task.getTaskDefinitionKey().equals("programmingTask") ) {//缂栧埗鑺傜偣
-			//璁板綍瀹為檯缂栫▼鍛�
-			variables.put(FlowVariableContants.ACT_PROGRAMMER,Func.toStr(AuthUtil.getUserId()));
-
-			if(this.needUploadProgramFile(props.getMachineCode())) {
-				flowProgramFileService.checkProgramFiles(processInstanceId, FlowContants.Y.equals(operateResult));
-			}
-		}
-		if (StringUtil.isNoneBlank(processInstanceId, comment)) {
-			taskService.addComment(taskId, processInstanceId, comment);
-		}
 		// 闈炵┖鍒ゆ柇
 		if (Func.isEmpty(variables)) {
 			variables = Kv.create();
 		}
-		variables.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
+		String operateResult = this.getApproveResult(variables);
 
+		FlowProgramProperties props = flowCommonService.getProgramProperties(processInstanceId);
+		if (!variables.containsKey("assignee")) {
+			throw new ServiceException("璇锋寚瀹氭祦绋嬩笅涓�姝ュ鐞嗕汉");
+		}
 
-		addApproveRecord(taskId,comment,variables);
+		if (task.getTaskDefinitionKey().equals("programmingTask")) {//缂栧埗鑺傜偣
+			//璁板綍瀹為檯缂栫▼鍛�
+			variables.put(FlowVariableConstant.ACT_PROGRAMMER, Func.toStr(AuthUtil.getUserId()));
 
-		variables.remove(FlowContants.PROCESS_EDITION);//涓嶈鍗囩増浜�
+			String programOnMachine = Func.toStr(variables.getOrDefault(FlowVariableConstant.PROGRAM_ON_MACHINE, FlowConstant.N));//鏄惁鐜板満缂栫▼
+			//variables.put(FlowVariableConstant.PROGRAM_ON_MACHINE, programOnMachine);
+			if (this.needUploadProgramFile(props.getMachineCode()) && programOnMachine.equals(FlowConstant.N)) {
+				flowProgramFileService.checkProgramFiles(processInstanceId, FlowConstant.Y.equals(operateResult));
+			}
+		} else if (task.getTaskDefinitionKey().equals("teamLeaderTask")) {
+			if (FlowConstant.Y.equals(operateResult)) {
+				runtimeService.setVariable(task.getExecutionId(), FlowConstant.PROGRAMMER_NAME, userCommonService.getUserNameById(Func.toLong(variables.get("assignee"))));
+			}
+		} else if (task.getTaskDefinitionKey().equals("check")) {
+			variables.put(FlowVariableConstant.ACT_CHECKER, Func.toStr(AuthUtil.getUserId()));
+		} else if (task.getTaskDefinitionKey().equals("approveTask")) {
+			variables.put(FlowVariableConstant.ACT_SENIOR, Func.toStr(AuthUtil.getUserId()));
+		}
+		if (!task.getTaskDefinitionKey().equals("programmingTask")){
+			variables.remove(FlowVariableConstant.PROGRAM_ON_MACHINE);//鍏朵粬鑺傜偣锛屽拷鐣ョ幇鍦虹紪绋嬫爣璁�
+		}
+		if (StringUtil.isNoneBlank(processInstanceId, comment)) {
+			taskService.addComment(taskId, processInstanceId, comment);
+		}
+
+		variables.put(FlowVariableConstant.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
+
+		variables.remove(FlowVariableConstant.PROCESS_EDITION);//涓嶈鍗囩増浜�
 
 		if("confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
+			variables.put(FlowConstant.CURE_PROGRAM_USEABLE,operateResult);
 
-			variables.put(FlowContants.CURE_PROGRAM_USEABLE,operateResult);
-
+			if(FlowConstant.Y.equals(operateResult)) {
+				//鍒ゅ畾鍙敤锛岃褰曚负瀹為檯缂栫▼鍛�
+				variables.put(FlowVariableConstant.ACT_PROGRAMMER,Func.toStr(AuthUtil.getUserId()));
+			}
 		}
 		taskService.complete(taskId, variables);
 	}
 
+
 	/**
 	 * 鏄惁闇�瑕佷笂浼犳枃浠讹紙杞﹀簥涓嶉渶瑕侊級
 	 * @param machineCode 鏈哄簥缂栫爜

--
Gitblit v1.9.3