From 1e2b04fabbbc4b1ae37d7951068d7ab235f5b5f9 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 17 九月 2025 15:29:38 +0800
Subject: [PATCH] 现场编制功能适配
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/cure/DeviationCureFinishDataHandler.java | 100 +++++++++++++++++++------------------------------
1 files changed, 39 insertions(+), 61 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 50076e2..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,29 +24,20 @@
@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璋冪敤
+ * cureFinishOperateTask璋冪敤锛屽亸绂诲崟鍥炰紶瀹℃壒瀹屾垚澶勭悊涓氬姟
* @param props 灞炴��
*/
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,24 +49,47 @@
nodeService.save(newPkgNode);
- //澶勭悊绋嬪簭鍖呬笅灞傜殑绋嬪簭鑺傜偣111
- List<NcNode> oriProgramNodes = nodeService.lambdaQuery().eq(NcNode::getParentId,pkgNode.getId()).list();
- FlowProgramFile pfile;
- for(NcNode programNode : oriProgramNodes){
+ copyNonProgramNodes(pkgNode,newPkgNode);
- programNode.setIsLastEdition(0);
- programNode.setVersionNumber(newPkgNode.getVersionNumber());
- pfile = flowProgramFileService.getById(programNode.getFlowProgramFileId());
+ 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());
if(!pfile.isProgram()){
- //褰撳墠鍥哄寲绋嬪簭鍖呭悕涓嬬殑鈥滃叾浠栨枃浠垛�濋潪绋嬪簭鏂囦欢銆備笉璁剧疆涓鸿�佺増鏈紝鐩存帴鎸埌鍥哄寲鏍戜笅,涓や釜缃戠粶涔嬮棿鍙氦鎹㈢▼搴忔枃浠讹紝鍏朵粬鏂囦欢鍙兘淇濈暀
- programNode.setIsLastEdition(1);
+ //褰撳墠鍥哄寲绋嬪簭鍖呭悕涓嬬殑鈥滃叾浠栨枃浠垛�濋潪绋嬪簭鏂囦欢銆備笉璁剧疆涓鸿�佺増鏈紝澶嶅埗鍒板浐鍖栨爲涓�,涓や釜缃戠粶涔嬮棿鍙氦鎹㈢▼搴忔枃浠讹紝鍏朵粬鏂囦欢鍙兘淇濈暀
+ //鍏朵粬鏂囦欢锛岄渶瑕佸鍒跺埌鏂板缓鐨勫浐鍖栬妭鐐逛笅
+ NcNode newOtherFileNode = new NcNode();
+ BeanUtils.copyProperties(oldProgramNode,newOtherFileNode);
+ EntityUtil.clearBaseProperties(newOtherFileNode);
+ 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);
@@ -88,45 +98,13 @@
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());
newProgNode.setIsCured(0);
nodeService.save(newProgNode);
- //淇敼鏂囦欢鍐呭鏇存柊娉ㄩ噴锛屽苟鏇存柊鏂囦欢鏁版嵁鐨勫湴鍧�
- //setGhAnnotation(flowProgramFile,machine.getMachineGroupCode(),annoDicts);
-
- //flowProgramFileService.updateById(flowProgramFile);
}
-
- addApproveTable(pkgNode,props);
- updateApproveRecordNodeId(instId, pkgNode.getId());
- log.info("鍋忕鍥炰紶Listener瀹屾垚");
- }
-
- /**
- * 淇濆瓨瀹℃壒瀹屾垚鐨勮褰�
- * @param packageNode
- * @param props
- */
- void addApproveTable(NcNode packageNode,FlowProgramProperties props){
- NcProgramApproved approved = new NcProgramApproved();
-
- approved.setProgramName(packageNode.getName());
- approved.setNcNodeId(packageNode.getId());//绋嬪簭鍖呰妭鐐筰d
- approved.setTitle(props.getTitle());
- approved.setProgrammerId(props.getProgrammerId());
- approvedService.save(approved);
-
- }
-
-
- void updateApproveRecordNodeId(String processInstanceId,Long nodeId){
- //鏇存柊瀹℃壒璁板綍鐨刵cNodeId
- approveRecordService.lambdaUpdate()
- .eq(ApproveRecord::getProcessInstanceId, processInstanceId)
- .set(ApproveRecord::getNcNodeId,nodeId).update();
}
}
--
Gitblit v1.9.3