From a3048fa6fa72fa3cc5da2c43c59bd000e00c9599 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 18 九月 2025 23:13:32 +0800
Subject: [PATCH] 工控网分析程序状态问题修复
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java | 62 ++++++++++++++----------------
1 files changed, 29 insertions(+), 33 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java
index d651e67..6b5c328 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java
@@ -1,17 +1,13 @@
package org.springblade.mdm.flow.excution.cure;
import lombok.extern.slf4j.Slf4j;
-import org.springblade.core.tool.utils.Func;
-import org.springblade.mdm.basesetting.machine.MachineService;
-import org.springblade.mdm.flow.constants.FlowContants;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.flow.entity.ApproveRecord;
import org.springblade.mdm.flow.entity.FlowProgramFile;
import org.springblade.mdm.flow.excution.dispatch.FinishDataHandler;
-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.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;
@@ -28,18 +24,11 @@
@Slf4j
@Component("deviationCureFinishDataHandler")
public class DeviationCureFinishDataHandler implements FinishDataHandler {
- @Autowired
- private NcProgramApprovedService approvedService;
- @Autowired
- private ApproveRecordService approveRecordService;
+
@Autowired
private FlowProgramFileService flowProgramFileService;
@Autowired
private NcNodeService nodeService;
- @Autowired
- private NcNodeAutoCreateService ncNodeAutoCreateService;
- @Autowired
- private MachineService machineService;
/**
* cureFinishOperateTask璋冪敤锛屽亸绂诲崟鍥炰紶瀹℃壒瀹屾垚澶勭悊涓氬姟
@@ -47,10 +36,8 @@
*/
public void handleData(FlowProgramProperties props) {
// 鎵ц涓氬姟閫昏緫
- String instId = props.getProcessInstanceId();
NcNode pkgNode = nodeService.lambdaQuery().eq(NcNode::getProcessInstanceId, props.getProcessInstanceId()).one();
-
- pkgNode.lock();
+ pkgNode.lock("鍋忕鍗曞洖浼犻攣瀹�");
pkgNode.setIsLastEdition(0);
nodeService.updateById(pkgNode);
@@ -62,8 +49,21 @@
nodeService.save(newPkgNode);
- //澶勭悊绋嬪簭鍖呬笅灞傜殑绋嬪簭鑺傜偣111
- List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,pkgNode.getId()).list();
+ copyNonProgramNodes(pkgNode,newPkgNode);
+
+ addNewProgramNode(newPkgNode,props.getProcessInstanceId());
+
+ log.info("鍋忕鍥炰紶Listener瀹屾垚");
+ }
+
+ /**
+ * 浠庡緟鍥哄寲鑺傜偣澶嶅埗闈炵▼搴忔枃浠惰妭鐐瑰埌鍥哄寲鑺傜偣涓�
+ * @param oriPkgNode 寰呭浐鍖栬妭鐐�
+ * @param cureNode 鍥哄寲鑺傜偣
+ */
+ void copyNonProgramNodes(NcNode oriPkgNode,NcNode cureNode){
+ //澶勭悊绋嬪簭鍖呬笅灞傜殑绋嬪簭鑺傜偣1
+ List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,oriPkgNode.getId()).list();
FlowProgramFile pfile;
for(NcNode oldProgramNode : oriProgramNodes){
pfile = flowProgramFileService.getById(oldProgramNode.getFlowProgramFileId());
@@ -73,17 +73,23 @@
NcNode newOtherFileNode = new NcNode();
BeanUtils.copyProperties(oldProgramNode,newOtherFileNode);
EntityUtil.clearBaseProperties(newOtherFileNode);
- newOtherFileNode.setParentId(newPkgNode.getId());
- newOtherFileNode.setParentIds(newPkgNode.getParentIds()+","+newPkgNode.getId());
+ newOtherFileNode.setParentId(cureNode.getId());
+ newOtherFileNode.setParentIds(cureNode.subNodeParentIds());
newOtherFileNode.setIsLastEdition(1);
nodeService.save(newOtherFileNode);
}
}
- //nodeService.updateBatchById(oriProgramNodes);
+ }
+ /**
+ * 鍔犲叆鏂扮殑绋嬪簭鏂囦欢鑺傜偣
+ * @param newPkgNode 鏂扮殑鑺傜偣锛堝浐鍖栫殑锛�
+ * @param processInstanceId 娴佺▼瀹炰緥id
+ */
+ void addNewProgramNode(NcNode newPkgNode,String processInstanceId){
//鏂扮殑鏂囦欢浣滀负鏈�鏂扮増鏈�
- List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,pkgNode.getProcessInstanceId()).list();
+ List<FlowProgramFile> files = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId,processInstanceId).list();
for(FlowProgramFile flowProgramFile : files){
NcNode newProgNode = new NcNode();
BeanUtils.copyProperties(newPkgNode, newProgNode);
@@ -92,7 +98,7 @@
newProgNode.setName(flowProgramFile.getName());
newProgNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
newProgNode.setParentId(newPkgNode.getId());
- newProgNode.setParentIds(newPkgNode.getParentIds()+","+newPkgNode.getId());
+ newProgNode.setParentIds(newPkgNode.subNodeParentIds());
newProgNode.setIsLastEdition(1);
newProgNode.setVersionNumber(newPkgNode.getVersionNumber());
newProgNode.setFlowProgramFileId(flowProgramFile.getId());
@@ -100,15 +106,5 @@
nodeService.save(newProgNode);
}
-
- updateApproveRecordNodeId(instId, pkgNode.getId());
- log.info("鍋忕鍥炰紶Listener瀹屾垚");
- }
-
- void updateApproveRecordNodeId(String processInstanceId,Long nodeId){
- //鏇存柊瀹℃壒璁板綍鐨刵cNodeId
- approveRecordService.lambdaUpdate()
- .eq(ApproveRecord::getProcessInstanceId, processInstanceId)
- .set(ApproveRecord::getNcNodeId,nodeId).update();
}
}
--
Gitblit v1.9.3