From 3ffe33aaa24386337e3638558eca731c62f25521 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 13 九月 2025 13:30:06 +0800
Subject: [PATCH] 修改表格打印的数控程序编号

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java |  103 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 62 insertions(+), 41 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 832a3c7..443eef8 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
@@ -8,14 +8,18 @@
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
+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.commons.service.UserCommonService;
 import org.springblade.mdm.flow.constants.FlowContants;
+import org.springblade.mdm.flow.constants.FlowVariableContants;
 import org.springblade.mdm.flow.service.FlowCommonService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
-import org.springblade.mdm.program.entity.NcNode;
-import org.springblade.mdm.program.service.NcNodeAutoCreateService;
-import org.springblade.mdm.program.service.NcNodeService;
+import org.springblade.mdm.flow.service.FlowProgramProperties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Map;
 
@@ -26,65 +30,82 @@
 public class TryFlowCompleteService extends AbstractFlowCompleteService {
 	@Autowired
 	private FlowProgramFileService flowProgramFileService;
+
 	@Autowired
-	private NcNodeService ncNodeService;
-	@Autowired
-	private NcNodeAutoCreateService ncNodeAutoCreateService;
+	private ParamService paramService;
 	@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);
 
-		if(task.getTaskDefinitionKey().equals("programmingTask")) {//缂栧埗鑺傜偣
-			flowProgramFileService.checkProgramFiles(processInstanceId,"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("璇锋寚瀹氭祦绋嬩笅涓�姝ュ鐞嗕汉");
 		}
+
+		if(task.getTaskDefinitionKey().equals("programmingTask") ) {//缂栧埗鑺傜偣
+			//璁板綍瀹為檯缂栫▼鍛�
+			variables.put(FlowVariableContants.ACT_PROGRAMMER,Func.toStr(AuthUtil.getUserId()));
+			String programOnMachine = Func.toStr(variables.getOrDefault("programOnMachine",FlowContants.N));//鏄惁鐜板満缂栫▼
+			if(this.needUploadProgramFile(props.getMachineCode()) && programOnMachine.equals(FlowContants.N)) {
+				flowProgramFileService.checkProgramFiles(processInstanceId, FlowContants.Y.equals(operateResult));
+			}
+		}else if(task.getTaskDefinitionKey().equals("teamLeaderTask")){
+			if(FlowContants.Y.equals(operateResult)) {
+				runtimeService.setVariable(task.getExecutionId(),FlowContants.PROGRAMMER_NAME,userCommonService.getUserNameById(Func.toLong(variables.get("assignee"))));
+			}
+		}else if(task.getTaskDefinitionKey().equals("check")){
+			variables.put(FlowVariableContants.ACT_CHECKER,Func.toStr(AuthUtil.getUserId()));
+		}else if(task.getTaskDefinitionKey().equals("approveTask")){
+			variables.put(FlowVariableContants.ACT_SENIOR,Func.toStr(AuthUtil.getUserId()));
+		}
+		variables.remove("programOnMachine");//鍏朵粬鑺傜偣锛屽拷鐣ョ幇鍦虹紪绋嬫爣璁�
+		if (StringUtil.isNoneBlank(processInstanceId, comment)) {
+			taskService.addComment(taskId, processInstanceId, comment);
+		}
+
+		variables.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
+
 		addApproveRecord(taskId,comment,variables);
 
-		//鍦ㄧ紪鍒朵换鍔℃椂锛屽垱寤鸿妭鐐癸紙娌℃湁鑺傜偣鍒欏垱寤猴紝鏈夊氨鐩存帴浣跨敤
-		if(task.getTaskDefinitionKey().equals("programmingTask") && "Y".equals(operateResult)) {
-			ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
-		}
-		if(!"confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
-			variables.remove(FlowContants.PROCESS_EDITION);//TODO 涓存椂閿欒鏄紝缁勯暱鎻愪氦鐨勬椂鍊欎細鎻愪氦涓�涓┖涓诧紝娓呯┖浜嗗唴閮ㄦ暟鎹�
-		}else{
-			//宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級鏄紝鎵嶆洿鏂颁负鏂扮殑宸ュ簭鐗堟鍙�
-			Map<String, Object> currentVars = task.getProcessVariables();
-			if(StringUtils.equals(String.valueOf(currentVars.getOrDefault(FlowContants.IS_PROCESS_EDITION_SAME, FlowContants.Y)),FlowContants.N) && operateResult.equals(FlowContants.Y)){
-				//宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級 鍗囩増,鏇存柊涓烘柊鐨勫伐搴忕増鏈紝鍚庣画杩涘叆 鏍″ 鑺傜偣
-				Object objProcessEdition = variables.get(FlowContants.PROCESS_EDITION);
-				if(objProcessEdition == null){
-					//搴旇鍗囩増锛屼絾鍓嶇娌℃湁浼犻�掕鍙傛暟
-					throw new ServiceException("璇峰綍鍏ユ柊鐨勫伐搴忕増鏈彿");
-				}
-				String newProcessEdition = String.valueOf(objProcessEdition);
-				NcNode programPkgNode= ncNodeService.getByProcessInstanceId(processInstanceId);
-				programPkgNode.setProcessEdition(newProcessEdition);
-				ncNodeService.updateById(programPkgNode);
+		variables.remove(FlowContants.PROCESS_EDITION);//涓嶈鍗囩増浜�
 
-				//鍒涘缓绋嬪簭鏍�
-				//鑺傜偣鍦ㄨ瘯鍒囦笅杩樻槸鍥哄寲涓嬮潰锛熺‘璁や簡锛岃妭鐐瑰缓绔嬪湪璇曞垏涓嬶紝鏈�缁堣蛋鍥哄寲娴佺▼鍚庢墠杩涘叆鍥哄寲
-				//纭绋嬪簭鍙敤浜嗭紝杩涘叆鏍″銆傝繖閲岀洿鎺ュ缓绔嬭妭鐐癸紝鍥犱负鍙兘涓嶈蛋缂栫▼鑺傜偣浜�
-				this.ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
-			}else{
-				//宸ュ簭鐗堟涓�鑷达紝浣嗘槸鎷掔粷浜嗭紝鍚庣画浼氳繘鍏ョ紪鍒惰妭鐐�
-				variables.remove(FlowContants.PROCESS_EDITION);
+		if("confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
+			variables.put(FlowContants.CURE_PROGRAM_USEABLE,operateResult);
+
+			if(FlowContants.Y.equals(operateResult)) {
+				//鍒ゅ畾鍙敤锛岃褰曚负瀹為檯缂栫▼鍛�
+				variables.put(FlowVariableContants.ACT_PROGRAMMER,Func.toStr(AuthUtil.getUserId()));
 			}
 		}
 		taskService.complete(taskId, variables);
 	}
+
+
+	/**
+	 * 鏄惁闇�瑕佷笂浼犳枃浠讹紙杞﹀簥涓嶉渶瑕侊級
+	 * @param machineCode 鏈哄簥缂栫爜
+	 * @return 鏄惁闇�瑕佷笂浼�
+	 */
+	boolean needUploadProgramFile(String machineCode){
+		boolean need;
+		Machine machine = machineService.getByCode(machineCode);
+		String turning = paramService.turninngValue();
+		need = !StringUtils.equals(turning,machine.getMachineSpec());
+		return need;
+	}
+
 }

--
Gitblit v1.9.3