From 7bc1d0f521c1d59246f29bcadcc4343f88ceef1c Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 15 九月 2025 11:29:30 +0800
Subject: [PATCH] 性能优化+bug调整
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/NormalCureFinishDataHandler.java | 100 ++++++++++++++++++++++++++------------------------
1 files changed, 52 insertions(+), 48 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..295993f 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,7 +76,12 @@
//闇�瑕佸浐鍖栫殑鑺傜偣
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
@@ -91,20 +96,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 +117,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 +196,6 @@
nodeService.save(newProgNode);
}
-
-
}
/**
--
Gitblit v1.9.3