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/excution/dispatch/NormalFinishDataHandler.java |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
index 9f867af..90b6e90 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -1,17 +1,21 @@
 package org.springblade.mdm.flow.excution.dispatch;
 
+import com.alibaba.excel.util.StringUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FilenameUtils;
 import org.springblade.mdm.flow.constants.FlowContants;
 import org.springblade.mdm.flow.entity.FlowProgramFile;
 import org.springblade.mdm.flow.service.ApproveRecordService;
 import org.springblade.mdm.flow.service.FlowProgramFileService;
 import org.springblade.mdm.flow.service.FlowProgramProperties;
+import org.springblade.mdm.gkw.programnode.vo.ProgramNameVO;
 import org.springblade.mdm.program.entity.NcNode;
 import org.springblade.mdm.program.entity.NcProgramApproved;
 import org.springblade.mdm.program.service.NcNodeAutoCreateService;
 import org.springblade.mdm.program.service.NcNodeService;
 import org.springblade.mdm.program.service.NcProgramApprovedService;
 import org.springblade.mdm.utils.EntityUtil;
+import org.springblade.mdm.utils.ProgramFileNameParser;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -38,22 +42,21 @@
 	 */
 	public void handleData(FlowProgramProperties props) {
 		// 鎵ц涓氬姟閫昏緫
-		String instId = props.getProcessInstanceId();
 		NcNode packageNode;
 		if(FlowContants.Y.equals(props.getHasCuredProgram())){
 			//鏈夊浐鍖�
 			packageNode = ncNodeService.getById(props.getCuredNodeId());
 
 			if(FlowContants.N.equals(props.getCureProgramUseable())) {
-				//绋嬪簭涓嶅彲鐢�
-				//鍘熸潵鐨勫浐鍖栬妭鐐归攣瀹�
+				//绋嬪簭涓嶅彲鐢紝鍘熸潵鐨勫浐鍖栬妭鐐归攣瀹�
 				packageNode.lock();
 				ncNodeService.updateById(packageNode);
 
 				Integer newVersion = packageNode.genNewVersionNumber();
+				//TODO 鐗堟湰鍙锋牴鎹浂缁勪欢鍙�+宸ュ簭鍙凤紝宸ュ簭鐗堟锛屾満搴婄粍 鐩存帴鏌ヨ鏁伴噺锛�+1鑾峰彇
 				packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props,newVersion);
 			}else{
-				//鍙敤锛屽崌鐗堬紙淇敼鍏跺伐搴忕増鏈級锛屽師鏉ョ殑鑺傜偣娓呴櫎
+				//鍙敤锛屽崌鐗堬紙淇敼鍏跺伐搴忕増娆★級锛屽師鏉ョ殑鑺傜偣娓呴櫎
 				moveToNewProcessEdition(packageNode,props);
 			}
 		}else{
@@ -62,7 +65,7 @@
 		}
 
 		addApproveTable(packageNode,props);
-		//updateApproveRecordNodeId(instId, packageNode.getId());
+		
 		log.info("鏅�氭祦绋嬪凡瀹屾垚in DispatchFinishListener");
 	}
 
@@ -98,20 +101,31 @@
 		packageNode.setProcessEdition(tempProps.getProcessEdition());
 		packageNode.setParentId(machineNode.getParentId());
 		packageNode.setParentIds(machineNode.getParentIds());
+		packageNode.setName(tempProps.getDrawingNo()+"-"+tempProps.getProcessNo()+"-"+tempProps.getProcessEdition());
 		this.ncNodeService.updateById(packageNode);
 
 		//绉诲姩绋嬪簭鑺傜偣
 		List<NcNode> programNodes = ncNodeService.getProgramFilesByPackageId(packageNode.getId());
 		for(NcNode programNode : programNodes){
+
+			programNode.setName(buildNewFilename(programNode.getName(),tempProps.getProcessEdition()));//鍚嶇О淇敼锛屽伐搴忕増娆¢儴鍒�
 			programNode.setParentIds(packageNode.getParentIds()+","+packageNode.getId());
 			programNode.setProcessEdition(tempProps.getProcessEdition());//淇敼宸ュ簭鐗堟
 			programNode.setVersionNumber(packageNode.getVersionNumber());
 		}
 		ncNodeService.updateBatchById(programNodes);
 
-
 	}
 
+	String buildNewFilename(String filename,String newProcessEdition){
+		ProgramNameVO pnameVO = ProgramFileNameParser.parseProgramName(filename);
+		String ext = FilenameUtils.getExtension(filename);
+		String name= pnameVO.getDrawingNo()+"-"+pnameVO.getProcessNo()+"-"+newProcessEdition+"-"+pnameVO.getSegmentCount()+"-"+pnameVO.getSegmentNo();
+		if(StringUtils.isNotBlank(ext)){
+			name += "."+ext;
+		}
+		return name;
+	}
 
 	/**
 	 * 淇濆瓨瀹℃壒瀹屾垚鐨勮褰�
@@ -124,7 +138,7 @@
 		approved.setProgramName(packageNode.getName());
 		approved.setNcNodeId(packageNode.getId());//绋嬪簭鍖呰妭鐐筰d
 		approved.setTitle(props.getTitle());
-		approved.setProgrammerId(props.getProgrammerId());
+		approved.setProgrammerId(props.getActProgrammerId());
 		approved.setProcessInstanceId(props.getProcessInstanceId());
 		approvedService.save(approved);
 

--
Gitblit v1.9.3