From 3baca21e0e6563f8379359ef2ba78c224eb4bc80 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 23 九月 2025 22:45:51 +0800
Subject: [PATCH] 修复审批表,确认表内容

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/NormalCureFinishDataHandler.java |  118 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 66 insertions(+), 52 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/NormalCureFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/NormalCureFinishDataHandler.java
index 2b38716..ec8432e 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/NormalCureFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/NormalCureFinishDataHandler.java
@@ -76,10 +76,28 @@
 
 		//闇�瑕佸浐鍖栫殑鑺傜偣
 		NcNode pkgNode = nodeService.lambdaQuery().eq(NcNode::getProcessInstanceId,  flowProps.getProcessInstanceId()).one();
+		//鍘熻妭鐐逛繚鐣欎笉鍔�,缃负鑰佺増鏈�
+		pkgNode.setIsLastEdition(0);
+		pkgNode.setIsLocked(1);
+		nodeService.updateById(pkgNode);
 
+		nodeService.getBaseMapper().deleteById(pkgNode.getParentId());//鍒犻櫎鏈哄簥缁勮妭鐐�
 		//List<NcNode> historyProgramPackageNodes = nodeService.getTryNodeHistory(pkgNode);
 		try {
 			moveNodeToCuredTree(pkgNode, flowProps);//, historyProgramPackageNodes
+
+			//鍥哄寲涓嶉攣瀹氾紝鍚庣画杩樺彲鑳戒娇鐢ㄨ鍥哄寲绋嬪簭
+			//nodeService.lockSameNameOtherMachineGroupProgramPackage(pkgNode);
+			/*
+			nodeService.lambdaUpdate().eq(NcNode::getDrawingNo,pkgNode.getDrawingNo())
+				.eq(NcNode::getProcessNo,pkgNode.getProcessNo())
+				.eq(NcNode::getName,pkgNode.getName())
+				.ne(NcNode::getMachineGroupCode,pkgNode.getMachineGroupCode())
+				.eq(NcNode::getIsCured,1)
+				.set(NcNode::getIsLocked,NcNode.LOCKED)
+				.set(NcNode::getRemark,"鍥炰紶鍥哄寲鍚屽悕绋嬪簭閿佸畾")
+				.update();
+			*/
 		}catch(Exception e) {
 			log.error("鍥哄寲娴佺▼瀹屾垚寮傚父",e);
 			throw new ServiceException("鏅�氬浐鍖栨墽琛屽紓甯�"+e.getMessage());
@@ -91,20 +109,18 @@
 	/**
 	 * 灏嗚妭鐐瑰拰鍘嗗彶鑺傜偣鎸姩鍒板浐鍖栫殑鍚岀骇鑺傜偣涓�
 	 * @param pkgNode1 瑕佸浐鍖栫殑鑺傜偣
-	 * @param historyProgramPackageNodes 绋嬪簭鍖呭悕 鍘嗗彶鑺傜偣List<NcNode> historyProgramPackageNodes,
+	 * @param programProperties 娴佺▼灞炴��
 	 */
 	void moveNodeToCuredTree(NcNode pkgNode1, FlowProgramProperties programProperties) throws IOException {
 
 		//鍒涘缓鑺傜偣鍒版満搴婄骇鍒�.(鍥哄寲鏍�)
 		NcNode machineGroupNode = ncNodeAutoCreateService.createNodeTreeToMachineGroup(programProperties);
 
-		//鏂板缓涓�涓妭鐐癸紝浣滀负鍥哄寲鑺傜偣锛岃�佽妭鐐逛繚鐣欎笉鍔�,缃负鑰佺増鏈�
+		//鏂板缓涓�涓妭鐐癸紝浣滀负鍥哄寲鑺傜偣锛�
 		this.nodeService.lambdaUpdate().likeRight(NcNode::getParentIds, machineGroupNode.subNodeParentIds())
 			.in(NcNode::getNodeType, Arrays.asList(NcNode.TYPE_PROGRAM_PACKAGE,NcNode.TYPE_PROGRAM_FILE))
 			.set(NcNode::getIsLastEdition,0).set(NcNode::getIsLocked,1).update();
 
-		//pkgNode1.setParentId(machineGroupNode.getId());
-		//pkgNode1.setParentIds(machineGroupNode.subNodeParentIds());//鏇存柊涓婄骇鑺傜偣锛屼笅闈㈣繕瑕佺敤搴斾负鍦╤istoryProgramPackageNodes涓殑鍜岃繖涓笉鏄竴涓疄渚�
 		List<NcNode> programNodes = nodeService.getProgramFilesByPackageId(pkgNode1.getId());
 		boolean tryPkgNodeHasChild = !programNodes.isEmpty();
 
@@ -114,64 +130,67 @@
 		cureNode.setParentIds(machineGroupNode.subNodeParentIds());
 		nodeService.save(cureNode);
 
+		this.copyNonProgramNodes(pkgNode1,cureNode);
+		/*
 		List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,pkgNode1.getId()).list();
-		//FlowProgramFile pfile;
+		FlowProgramFile pfile;
 		for(NcNode oldProgramNode : oriProgramNodes){
 			oldProgramNode.setParentIds(pkgNode1.subNodeParentIds());
 			oldProgramNode.setIsLastEdition(0);
-
-			//pfile = flowProgramFileService.getById(oldProgramNode.getFlowProgramFileId());
-
 			//褰撳墠鍥哄寲绋嬪簭鍖呭悕涓嬬殑鈥滃叾浠栨枃浠垛�濋潪绋嬪簭鏂囦欢銆備笉璁剧疆涓鸿�佺増鏈紝鐩存帴鎸埌鍥哄寲鏍戜笅,涓や釜缃戠粶涔嬮棿鍙氦鎹㈢▼搴忔枃浠讹紝鍏朵粬鏂囦欢鍙兘淇濈暀
-			//鍏朵粬鏂囦欢锛岄渶瑕佸鍒跺埌鏂板缓鐨勫浐鍖栬妭鐐逛笅
-			NcNode newFileNode = new NcNode();
-			BeanUtils.copyProperties(oldProgramNode,newFileNode);
-			EntityUtil.clearBaseProperties(newFileNode);
-			newFileNode.setParentId(cureNode.getId());
-			newFileNode.setParentIds(cureNode.subNodeParentIds());
-			newFileNode.setIsLastEdition(1);
-			nodeService.save(newFileNode);
+			//鍏朵粬鏂囦欢锛岄渶瑕佸鍒跺埌鏂板缓鐨勫浐鍖栬妭鐐逛笅锛堢▼搴忔枃浠朵笉澶嶅埗锛�
+			pfile = flowProgramFileService.getById(oldProgramNode.getFlowProgramFileId());
+			if(!pfile.isProgram()) {
+				NcNode newFileNode = new NcNode();
+				BeanUtils.copyProperties(oldProgramNode, newFileNode);
+				EntityUtil.clearBaseProperties(newFileNode);
+				newFileNode.setParentId(cureNode.getId());
+				newFileNode.setParentIds(cureNode.subNodeParentIds());
+				newFileNode.setIsLastEdition(1);
+				nodeService.save(newFileNode);
+			}
 
 		}
 		nodeService.updateBatchById(oriProgramNodes);
-		/*
-		for(NcNode hisPackageNode : historyProgramPackageNodes){
-			hisPackageNode.setIsLastEdition(0);
-			hisPackageNode.setParentId(machineGroupNode.getParentId());
-			hisPackageNode.setParentIds(machineGroupNode.subNodeParentIds());//绋嬪簭鍖呬笌鏈哄簥鑺傜偣鍚岀骇
-			hisPackageNode.lock();
+		*/
 
-			//澶勭悊绋嬪簭鍖呬笅灞傜殑绋嬪簭鑺傜偣锛岃繖閲岋細鑰佺殑绋嬪簭鑺傜偣涓嶇敤鏇存柊涓哄巻鍙茬増鏈紝鍥犱负浼氬缓绔嬫柊鑺傜偣銆傚彧淇敼parentId 鍜� parentIds //鏀逛簡锛岀湅鐪嬫晥鏋�
-			List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,hisPackageNode.getId()).list();
-			FlowProgramFile pfile;
-			for(NcNode oldProgramNode : oriProgramNodes){
-				oldProgramNode.setParentIds(hisPackageNode.subNodeParentIds());
-				oldProgramNode.setIsLastEdition(0);
+		this.addNewProgramNode(cureNode,pkgNode1.getProcessInstanceId());
 
-				pfile = flowProgramFileService.getById(oldProgramNode.getFlowProgramFileId());
-				//if(oldProgramNode.getParentId().equals(pkgNode1.getId()) && !pfile.isProgram()){
-					//褰撳墠鍥哄寲绋嬪簭鍖呭悕涓嬬殑鈥滃叾浠栨枃浠垛�濋潪绋嬪簭鏂囦欢銆備笉璁剧疆涓鸿�佺増鏈紝鐩存帴鎸埌鍥哄寲鏍戜笅,涓や釜缃戠粶涔嬮棿鍙氦鎹㈢▼搴忔枃浠讹紝鍏朵粬鏂囦欢鍙兘淇濈暀
-					//鍏朵粬鏂囦欢锛岄渶瑕佸鍒跺埌鏂板缓鐨勫浐鍖栬妭鐐逛笅
-					NcNode newFileNode = new NcNode();
-					BeanUtils.copyProperties(oldProgramNode,newFileNode);
-					EntityUtil.clearBaseProperties(newFileNode);
-					newFileNode.setParentId(cureNode.getId());
-					newFileNode.setParentIds(cureNode.subNodeParentIds());
-					newFileNode.setIsLastEdition(1);
-					nodeService.save(newFileNode);
-				//}
+	}
 
+	/**
+	 * 浠庡緟鍥哄寲鑺傜偣澶嶅埗闈炵▼搴忔枃浠惰妭鐐瑰埌鍥哄寲鑺傜偣涓�
+	 * @param oriPkgNode 寰呭浐鍖栬妭鐐�
+	 * @param cureNode 鍥哄寲鑺傜偣
+	 */
+	void copyNonProgramNodes(NcNode oriPkgNode,NcNode cureNode){
+		List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,oriPkgNode.getId()).list();
+		FlowProgramFile pfile;
+		for(NcNode oldProgramNode : oriProgramNodes){
+			oldProgramNode.setParentIds(oriPkgNode.subNodeParentIds());
+			oldProgramNode.setIsLastEdition(0);
+			//褰撳墠鍥哄寲绋嬪簭鍖呭悕涓嬬殑鈥滃叾浠栨枃浠垛�濋潪绋嬪簭鏂囦欢銆備笉璁剧疆涓鸿�佺増鏈紝鐩存帴鎸埌鍥哄寲鏍戜笅,涓や釜缃戠粶涔嬮棿鍙氦鎹㈢▼搴忔枃浠讹紝鍏朵粬鏂囦欢鍙兘淇濈暀
+			//鍏朵粬鏂囦欢锛岄渶瑕佸鍒跺埌鏂板缓鐨勫浐鍖栬妭鐐逛笅锛堢▼搴忔枃浠朵笉澶嶅埗锛�
+			pfile = flowProgramFileService.getById(oldProgramNode.getFlowProgramFileId());
+			if(!pfile.isProgram()) {
+				NcNode newFileNode = new NcNode();
+				BeanUtils.copyProperties(oldProgramNode, newFileNode);
+				EntityUtil.clearBaseProperties(newFileNode);
+				newFileNode.setParentId(cureNode.getId());
+				newFileNode.setParentIds(cureNode.subNodeParentIds());
+				newFileNode.setIsLastEdition(1);
+				nodeService.save(newFileNode);
 			}
-			nodeService.updateBatchById(oriProgramNodes);
+
 		}
+		nodeService.updateBatchById(oriProgramNodes);
+	}
 
-		 */
-		//nodeService.updateBatchById(historyProgramPackageNodes);
-
+	void addNewProgramNode(NcNode cureNode,String processInstanceId) throws IOException {
 		Machine machine = machineService.getByCode(cureNode.getMachineCode());
 		List<DictBiz> annoDicts = programAnnotationService.getAnnotionDictList();
-		//鏂扮殑娴佺▼鏂囦欢锛岄渶瑕佸湪鍖呰妭鐐逛笅鏂板缓锛屼笉鑳界敤鑰佺殑
-		List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,pkgNode1.getProcessInstanceId()).list();
+		//鏂扮殑娴佺▼鏂囦欢锛岄渶瑕佸湪鍖呰妭鐐逛笅鏂板缓锛屼笉鑳界敤鑰佺殑鍖呰妭鐐�
+		List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,processInstanceId).list();
 		for(FlowProgramFile flowProgramFile : files){
 			NcNode newProgNode = new NcNode();
 
@@ -190,8 +209,6 @@
 
 			nodeService.save(newProgNode);
 		}
-
-
 	}
 
 	/**
@@ -223,8 +240,6 @@
 			cureNode.upgradeVersionNumber();
 		}
 
-		//nodeService.save(cureNode);
-
 		return cureNode;
 	}
 	/**
@@ -239,13 +254,12 @@
 			byte[] bytes = IOUtils.toByteArray(ins);
 			ByteArrayInputStream byteInputStream =  new ByteArrayInputStream(bytes);
 
-			//InputStream finishedStream = programAnnotationService.setGHAnnotation(byteInputStream,controlSystem,annoDicts);
 			List<DictBiz> annoDictList = programAnnotationService.getAnnotionDictList();
 			AnnotationProperties annoProps = config.getConfigMap().get(controlSystem);
 			if(annoProps == null){
 				annoProps = AnnotationProperties.getDefault();
 			}
-			InputStream finishedStream =AnnotationUtil.setAnnotationAndGetInputStream(byteInputStream, "GH", annoProps.getStatusLineIndex(), controlSystem, annoDictList);
+			InputStream finishedStream =AnnotationUtil.setAnnotationAndGetInputStream(byteInputStream, AnnotationUtil.GH, annoProps.getStatusLineIndex(), controlSystem, annoDictList);
 			try(finishedStream) {
 				finishedStream.reset();
 				BladeFile bfile = ossTemplate.putFile(flowProgramFile.getName(), finishedStream);

--
Gitblit v1.9.3