From f13fcaa8c4b0f413d8ee100adcb67669db183c68 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 23 八月 2025 16:47:58 +0800
Subject: [PATCH] 固化程序不可用锁定
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java | 76 +++++++++-----------------------------
1 files changed, 18 insertions(+), 58 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 1302a04..e77b85f 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
@@ -45,20 +45,26 @@
String instId = props.getProcessInstanceId();
String programPkgName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
- createProgramNodes(props);
-
- //TODO 鍋忕鍗曪紝鍜屽凡缁忓浐鍖栫殑绋嬪簭锛屾病鏈夊鐞�,:宸茬粡澶勭悊娌℃湁楠岃瘉
- NcNode packageNode;
- if(FlowContants.Y.equals(props.getHasCuredProgram()) && FlowContants.Y.equals(props.getCureProgramUseable())){
- //鏈夊浐鍖栵紝涓旂▼搴忓彲鐢紝浠庡浐鍖栨爲鏌ヨ鑺傜偣.浣跨敤娴佺▼涓繚瀛樼殑鑺傜偣
- //packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName,props.getProcessEdition());
+ //NcNode packageNode =createProgramNodes(props);
+ NcNode packageNode;// = ncNodeAutoCreateService.createNodeTreeWithProgram(props);
+ if(FlowContants.Y.equals(props.getHasCuredProgram())){
+ //鏈夊浐鍖�
packageNode = ncNodeService.getById(props.getCuredNodeId());
- }else if(Func.isNotBlank(props.getDeviation())){
- //鏈夊亸绂诲崟
- packageNode = ncNodeService.getLastEditionDeviationProgramPackage(programPkgName,props.getProcessEdition());
+
+ if(FlowContants.N.equals(props.getCureProgramUseable())) {
+ //绋嬪簭涓嶅彲鐢�
+ //鍘熸潵鐨勫浐鍖栬妭鐐归攣瀹�
+ packageNode.lock();
+ ncNodeService.updateById(packageNode);
+
+ Integer newVersion = packageNode.genNewVersionNumber();
+ packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props);
+ packageNode.setVersionNumber(newVersion);
+ ncNodeService.updateById(packageNode);
+ }
+
}else{
- //鏅�氳瘯鍒囷紝鎴栬�呮湁鍥哄寲涓嶅彲鐢�
- packageNode = ncNodeService.getLastEditionTryingProgramPackage(programPkgName,props.getProcessEdition());
+ packageNode = ncNodeAutoCreateService.createNodeTreeWithProgram(props);
}
addApproveTable(packageNode,props);
@@ -66,52 +72,6 @@
log.info("鏅�氭祦绋嬪凡瀹屾垚in DispatchFinishListener");
}
- /**
- * 鑷姩鍒涘缓绋嬪簭鑺傜偣
- * @param progProperties 娴佺▼灞炴��
- */
- void createProgramNodes(FlowProgramProperties progProperties){
- if(FlowContants.N.equals(progProperties.getHasCuredProgram())) {
- //鏃犲浐鍖�:(璇曞垏鎴栬�呭亸绂�)
- ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);
- }else{
- //鏈夊浐鍖栵紝绋嬪簭涓嶅彲鐢�
- if(FlowContants.N.equals(progProperties.getCureProgramUseable())) {
- //鍥哄寲绋嬪簭涓嶅彲鐢紝闇�瑕侀噸鏂板缓绔嬬▼搴忓寘鍚嶅拰鏂囦欢鑺傜偣;鍙敤鎯呭喌鍦ㄦ祦绋嬪鎵逛腑宸茬粡鍗囩骇杩囪妭鐐逛簡
- NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
-
- NcNode newCuredPkgNode = new NcNode();
- BeanUtils.copyProperties(curedProgramPackage, newCuredPkgNode);
- EntityUtil.clearBaseProperties(newCuredPkgNode);
- newCuredPkgNode.setIsLastEdition(1);
- newCuredPkgNode.setIsLocked(0);
- newCuredPkgNode.upgradeVersionNumber();
- ncNodeService.save(newCuredPkgNode);
-
- //鏂扮殑娴佺▼瀵瑰簲鐨勬枃浠舵洿鏂板埌鏂拌妭鐐逛笅
- List<FlowProgramFile> newFlowFileList = flowProgramFileService.listByProcessInstanceId(progProperties.getProcessInstanceId());
- for (FlowProgramFile newFlowFile : newFlowFileList) {
- NcNode newProgramNode = new NcNode();
- BeanUtils.copyProperties(newCuredPkgNode, newProgramNode);
- EntityUtil.clearBaseProperties(newProgramNode);
-
- newProgramNode.setName(newFlowFile.getName());
- newProgramNode.setNodeType(NcNode.TYPE_PROGRAM_FILE);
- newProgramNode.setParentId(newCuredPkgNode.getId());
- newProgramNode.setIsLastEdition(1);
- newProgramNode.setIsLocked(0);
- newProgramNode.setParentIds(newCuredPkgNode.getParentIds() + "," + newCuredPkgNode.getId());
- newProgramNode.setFlowProgramFileId(newFlowFile.getId());
- ncNodeService.save(newProgramNode);
- }
-
- //鍘熻妭鐐规洿鏂颁负鑰佺増鏈紝閿佸畾
- curedProgramPackage.setIsLastEdition(0);
- curedProgramPackage.setIsLocked(1);
- ncNodeService.updateById(curedProgramPackage);
- }
- }
- }
/**
* 淇濆瓨瀹℃壒瀹屾垚鐨勮褰�
--
Gitblit v1.9.3