From 33714e9bae91e01880bc0acb01eea18f0eabb4a5 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期六, 09 八月 2025 18:25:17 +0800
Subject: [PATCH] 流程节点创建修改
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java | 9 ++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java | 83 +++++++++++++++++---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java | 5 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java | 4 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java | 15 ++-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java | 7 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java | 7 +
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java | 2
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java | 12 +++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java | 58 ++++++++------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java | 5
15 files changed, 168 insertions(+), 47 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
index ea5b249..3845ae9 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowContants.java
@@ -96,4 +96,13 @@
*/
public static final String VALIDITY_PERIOD = "validityPeriod";
+ /**
+ * 绋嬪簭鍖呭悕
+ */
+ public static final String PROGRAM_PACKAGE_NAME = "programPackageName";
+
+ /**
+ * 浠诲姟杞﹂棿
+ */
+ public static final String WORK_SHOP = "workShop";
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java
index 5a8dc18..c8a07aa 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/DispatchFinishListener.java
@@ -56,7 +56,7 @@
String programName = NcNodeService.genProgramName(props.getDrawingNo(),props.getProcessNo());
NcNode packageNode = ncNodeService.getProgramPackageByName(programName);
- addApproveTable(packageNode);
+ addApproveTable(packageNode,props.getTitle());
updateApproveRecordNodeId(instId,packageNode.getId());
@@ -64,7 +64,7 @@
}
//void updateFlowProgramFile(String instId){
- void addApproveTable(NcNode packageNode){
+ void addApproveTable(NcNode packageNode,String title){
//List<FlowProgramFile> programFiles = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, instId).list();
//if(!programFiles.isEmpty()) {
//FlowProgramFile pf = programFiles.get(0);
@@ -72,6 +72,7 @@
//approved.setProgramName(pf.getProgramName());
approved.setProgramName(packageNode.getName());
approved.setNcNodeId(packageNode.getId());//绋嬪簭鍖呰妭鐐筰d
+ approved.setTitle(title);
approvedService.save(approved);
/*
NcNode pkgNode = ncNodeService.getProgramPackageByName(pf.getProgramName());
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
index 1c31720..0d6b29f 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -66,7 +66,7 @@
vars.put(FlowContants.PRODUCT_MODEL,startVO.getProductModel());
String programPkgName = NcNodeService.genProgramName(startVO.getDrawingNo(),startVO.getProcessNo());
-
+ vars.put(FlowContants.PROGRAM_PACKAGE_NAME,programPkgName);
NcNode curedProgramPackage = ncNodeService.getLastEditionCuredProgramPackage(programPkgName);
//璁剧疆鏄惁鏈夊浐鍖栫▼搴忔爣璁�
vars.put(FlowContants.HAS_CURED_PROGRAM,curedProgramPackage != null ? FlowContants.Y:FlowContants.N);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
index 372356c..22d8e28 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
@@ -8,6 +8,7 @@
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.mdm.flow.constants.FlowContants;
import org.springframework.stereotype.Service;
@@ -46,6 +47,7 @@
Map<String, Object> vars = runtimeService.getVariables(processInstanceId);
+ programProperties.setTitle(String.valueOf(vars.get(FlowContants.TITLE)));
programProperties.setDrawingNo(String.valueOf(vars.get(FlowContants.DRAWING_NO)));
programProperties.setDrawingNoEdition(String.valueOf(vars.get(FlowContants.DRAWING_NO_EDITION)));
programProperties.setProductModel(String.valueOf(vars.get(FlowContants.PRODUCT_MODEL)));
@@ -60,6 +62,11 @@
programProperties.setCraftEdition(String.valueOf(vars.get(FlowContants.CRAFT_EDITION)));
programProperties.setHasCuredProgram(String.valueOf(vars.get(FlowContants.HAS_CURED_PROGRAM)));
+ programProperties.setIsProcessEditionSame(String.valueOf(vars.get(FlowContants.IS_PROCESS_EDITION_SAME)));
+
+ if(vars.containsKey(FlowContants.CURED_NODE_ID)){
+ programProperties.setCuredNodeId(Func.toLong(vars.get(FlowContants.CURED_NODE_ID)));
+ }
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
index 1d2fc5c..f6aa2b7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowProgramProperties.java
@@ -11,6 +11,8 @@
@Data
public class FlowProgramProperties {
@Schema(description = "闆剁粍浠�/鍥惧彿")
+ private String title;
+ @Schema(description = "闆剁粍浠�/鍥惧彿")
private String drawingNo;
@Schema(description = "鍥惧彿鐗堟/璁捐鐗堟")
private String drawingNoEdition;
@@ -41,9 +43,14 @@
@Schema(description = "鏄惁鏈夊浐鍖栫▼搴�")
private String hasCuredProgram;
+ @Schema(description = "鍥哄寲绋嬪簭绋嬪簭鑺傜偣id锛堝鏋滄湁锛�")
+ private Long curedNodeId;
+
@Schema(description = "娴佺▼瀹炰緥id")
private String processInstanceId;
@Schema(description = "娴佺▼瀹氫箟key")
private String processDefinitionKey;
+ @Schema(description = "宸ュ簭鐗堟鏄惁涓�鑷�")
+ private String isProcessEditionSame;
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
index 832a3c7..e21b15d 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
@@ -11,11 +11,13 @@
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.service.FlowCommonService;
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.service.NcNodeAutoCreateService;
import org.springblade.mdm.program.service.NcNodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.Map;
@@ -33,6 +35,7 @@
@Autowired
private FlowCommonService flowCommonService;
+ @Transactional
@Override
public void completeTask(String taskId, String processInstanceId, String comment, Map<String, Object> variables) {
Task task = currentTask(taskId);
@@ -56,33 +59,36 @@
addApproveRecord(taskId,comment,variables);
//鍦ㄧ紪鍒朵换鍔℃椂锛屽垱寤鸿妭鐐癸紙娌℃湁鑺傜偣鍒欏垱寤猴紝鏈夊氨鐩存帴浣跨敤
- if(task.getTaskDefinitionKey().equals("programmingTask") && "Y".equals(operateResult)) {
- ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
- }
- if(!"confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
- variables.remove(FlowContants.PROCESS_EDITION);//TODO 涓存椂閿欒鏄紝缁勯暱鎻愪氦鐨勬椂鍊欎細鎻愪氦涓�涓┖涓诧紝娓呯┖浜嗗唴閮ㄦ暟鎹�
- }else{
- //宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級鏄紝鎵嶆洿鏂颁负鏂扮殑宸ュ簭鐗堟鍙�
- Map<String, Object> currentVars = task.getProcessVariables();
- if(StringUtils.equals(String.valueOf(currentVars.getOrDefault(FlowContants.IS_PROCESS_EDITION_SAME, FlowContants.Y)),FlowContants.N) && operateResult.equals(FlowContants.Y)){
- //宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級 鍗囩増,鏇存柊涓烘柊鐨勫伐搴忕増鏈紝鍚庣画杩涘叆 鏍″ 鑺傜偣
- Object objProcessEdition = variables.get(FlowContants.PROCESS_EDITION);
- if(objProcessEdition == null){
- //搴旇鍗囩増锛屼絾鍓嶇娌℃湁浼犻�掕鍙傛暟
- throw new ServiceException("璇峰綍鍏ユ柊鐨勫伐搴忕増鏈彿");
- }
- String newProcessEdition = String.valueOf(objProcessEdition);
- NcNode programPkgNode= ncNodeService.getByProcessInstanceId(processInstanceId);
- programPkgNode.setProcessEdition(newProcessEdition);
- ncNodeService.updateById(programPkgNode);
+ if(task.getTaskDefinitionKey().equals("programmingTask") && FlowContants.Y.equals(operateResult)) {
+ FlowProgramProperties progProperties = flowCommonService.getProgramProperties(processInstanceId);
+ ncNodeAutoCreateService.createNodeTreeWithProgram(progProperties);
+ //鍘熸潵鐗堟鐨勭▼搴忥紝姝ゆ椂搴旇娓呴櫎锛屾槸涓嶆槸瑕佹尓杩囨潵鍛紵鐗堟宸茬粡涓嶅浜�
+ //TODO 鑰佽妭鐐规竻闄ゅ悧
- //鍒涘缓绋嬪簭鏍�
- //鑺傜偣鍦ㄨ瘯鍒囦笅杩樻槸鍥哄寲涓嬮潰锛熺‘璁や簡锛岃妭鐐瑰缓绔嬪湪璇曞垏涓嬶紝鏈�缁堣蛋鍥哄寲娴佺▼鍚庢墠杩涘叆鍥哄寲
- //纭绋嬪簭鍙敤浜嗭紝杩涘叆鏍″銆傝繖閲岀洿鎺ュ缓绔嬭妭鐐癸紝鍥犱负鍙兘涓嶈蛋缂栫▼鑺傜偣浜�
- this.ncNodeAutoCreateService.createNodeTreeWithProgram(flowCommonService.getProgramProperties(processInstanceId));
- }else{
- //宸ュ簭鐗堟涓�鑷达紝浣嗘槸鎷掔粷浜嗭紝鍚庣画浼氳繘鍏ョ紪鍒惰妭鐐�
- variables.remove(FlowContants.PROCESS_EDITION);
+ //璧板埌缂栧埗鑺傜偣锛屽鏋滄槸鏈夊浐鍖栫▼搴忎笖閫氳繃浜嗭紝璇存槑闇�瑕佸崌鐗堬紙閲嶆柊缂栧啓锛夛紝灏嗗浐鍖栫殑鍘熸潵鐨勭▼搴忚缃甽astEdition=0
+ if(FlowContants.Y.equals(progProperties.getHasCuredProgram())) {
+ NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
+ curedProgramPackage.setIsLastEdition(0);
+ curedProgramPackage.setIsLocked(1);
+ ncNodeService.updateById(curedProgramPackage);
+
+ }
+
+ }
+ variables.remove(FlowContants.PROCESS_EDITION);//涓嶈鍗囩増浜�
+ //if(!"confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
+ if("confirmIsUseableTask".equals(task.getTaskDefinitionKey())){
+ //宸ュ簭鐗堟涓嶄竴鑷达紝骞朵笖瀹℃牳閫氳繃锛堝彲鐢級鏄紝鎵嶆洿鏂颁负鏂扮殑versionNumber
+ FlowProgramProperties progProperties = flowCommonService.getProgramProperties(processInstanceId);
+
+ if(FlowContants.Y.equals(operateResult)) {
+
+ if(FlowContants.N.equals(progProperties.getIsProcessEditionSame())) {
+ //纭绋嬪簭鍙敤 涓� 宸ュ簭鐗堟涓嶄竴鑷达紝杩涘叆鏍″銆傝繖閲岄渶瑕佸崌绾х▼搴忕殑鐗堟湰鍙�
+ Long curedNodeId = progProperties.getCuredNodeId();
+ ncNodeService.upgradeVersionNumber(curedNodeId);
+ }
+
}
}
taskService.complete(taskId, variables);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java
index 21be89d..ac26b23 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java
@@ -190,4 +190,8 @@
public boolean hasCured() {
return this.isCured != null && this.isCured == 1;
}
+
+ public void upgradeVersionNUmber() {
+ this.versionNumber = genNewVersionNumber();
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java
index 863f2f0..bdb88c3 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgramApproved.java
@@ -27,4 +27,9 @@
*/
private String programName;
+ /**
+ * 娴佺▼鏍囬
+ */
+ private String title;
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
index 7897467..b477dbe 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
@@ -40,7 +40,7 @@
</select>
-->
<sql id="all_columns">id,tenant_id,name,parent_id,parent_ids,node_type,status,create_dept,is_deleted,create_time,create_user,update_time,update_user</sql>
- <sql id="all_columns_n">n.id,n.tenant_id,n.name,n.parent_id,n.parent_ids,n.node_type,n.description,n.remark,n.drawing_no,n.drawing_no_edition,n.craft_edition,n.is_last_edition,n.is_locked,n.process_edition,n.process_no,n.is_cured,n.process_instance_id,n.status,n.create_dept,n.is_deleted,n.create_time,n.create_user,n.update_time,n.update_user</sql>
+ <sql id="all_columns_n">n.id,n.tenant_id,n.name,n.parent_id,n.parent_ids,n.node_type,n.version_number,n.description,n.remark,n.drawing_no,n.drawing_no_edition,n.craft_edition,n.is_last_edition,n.is_locked,n.process_edition,n.process_no,n.is_cured,n.process_instance_id,n.status,n.create_dept,n.is_deleted,n.create_time,n.create_user,n.update_time,n.update_user</sql>
<select id="lazyList" resultType="org.springblade.mdm.program.vo.NcNodeVO">
select <include refid="all_columns_n"/>,dt.dict_value as node_type_name,u.name create_user_name,(
SELECT
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml
index 2197972..f562247 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml
@@ -11,7 +11,7 @@
<result column="is_deleted" property="isDeleted"/>
</resultMap>
<select id="exportDncPageQuery" resultType="org.springblade.mdm.program.vo.NcProgramExportDncPageVO">
- select a.id,n.name,a.nc_node_id,n.drawing_no,n.drawing_no_edition,n.process_name,a.create_time from mdm_nc_program_approved a
+ select a.id,a.title,n.name,a.nc_node_id,n.drawing_no,n.drawing_no_edition,n.process_name,a.create_time from mdm_nc_program_approved a
inner join mdm_nc_node n on a.nc_node_id=n.id
<where>
a.is_deleted=0
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
index fdd4929..775e09c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java
@@ -104,8 +104,9 @@
//鏌ヨ鏁版嵁搴擄紝瀵瑰簲涓婃墠鑳界‘璁ゆ椂鏈夋晥鐨勭▼搴忓寘
String packageName = StringUtils.removeEnd(entryName,"/");
NcNode programPackageNode = ncNodeService.getLastEditionTryingProgramPackage(packageName);
- //List<NcNode> pkgList = ncNodeService.lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE).eq(NcNode::getName, packageName).eq(NcNode::getIsLastEdition,1).list();
- //if(!pkgList.isEmpty()) {
+ NcNode curedProgramPkg = ncNodeService.getLastEditionCuredProgramPackage(packageName);
+
+ if(programPackageNode!=null && curedProgramPkg != null) {//鏃犲浐鍖栫▼搴忥紝鎵嶆斁鍏ュ垪琛�
//NcNode programPackageNode = pkgList.get(0);
progData.setId(programPackageNode.getId());
progData.setProgramName(packageName);
@@ -113,7 +114,8 @@
progData.setFileBackTime(DateUtil.fromInstant(entry.getLastModifiedTime().toInstant()));
progData.setProgramNo(programPackageNode.getProgramNo());
list.add(progData);
- //}
+ }
+
}
}
@@ -181,6 +183,10 @@
String programPackageName = StringUtils.removeEnd(dir,"/");
NcNode oriProgramPkg = this.ncNodeService.getLastEditionTryingProgramPackage(programPackageName);
+ NcNode curedProgramPkg = ncNodeService.getLastEditionCuredProgramPackage(programPackageName);
+ if(curedProgramPkg != null){
+ throw new ServiceException(programPackageName+"宸茬粡鍥哄寲锛岃鍕块噸澶嶅叆搴撱��");
+ }
if(oriProgramPkg == null){
log.warn("鏂囦欢澶规湭鍙戠幇鍖归厤鐨勭▼搴忓寘鍚峽}",dir);
continue;
@@ -191,9 +197,10 @@
if(active){
throw new ServiceException(programPackageName+"姝e湪瀹℃壒涓紝璇峰嬁閲嶅鍏ュ簱銆�");
}
+ /*
if(oriProgramPkg.hasCured()){
throw new ServiceException(programPackageName+"宸茬粡鍥哄寲锛岃鍕块噸澶嶅叆搴撱��");
- }
+ }*/
if(!programPackageIdList.contains(oriProgramPkg.getId())){
//涓嶅湪鍕鹃�夌殑鑼冨洿鍐�
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
index dd2d8c9..963ace9 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java
@@ -227,4 +227,6 @@
return ncNode;
}
+
+
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
index b54ece4..dae2753 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
@@ -281,4 +281,16 @@
return this.lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_FILE)
.eq(NcNode::getParentId,packageNodeId).eq(NcNode::getIsLastEdition,1).list();
}
+
+ /**
+ * 鍗囩骇鐗堟湰鍙凤紙+1锛�
+ * @param nodeId 鑺傜偣id
+ */
+ @Transactional
+ public void upgradeVersionNumber(Long nodeId) {
+ NcNode node = this.getById(nodeId);
+ node.upgradeVersionNUmber();
+ this.updateById(node);
+
+ }
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
index 81f1daf..fa2d695 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramExportDNCService.java
@@ -14,6 +14,7 @@
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.oss.OssTemplate;
+import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
@@ -28,12 +29,17 @@
import org.springblade.mdm.program.mapper.NcProgramExchangeMapper;
import org.springblade.mdm.program.vo.DncSendBackData;
import org.springblade.mdm.utils.FileContentUtil;
+import org.springblade.system.feign.IDictClient;
+import org.springblade.system.feign.ISysClient;
+import org.springblade.system.pojo.entity.Dict;
import org.springframework.stereotype.Service;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Optional;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -48,6 +54,7 @@
public class NcProgramExportDNCService extends BizServiceImpl<NcProgramExchangeMapper, NcProgramExchange> {
//private final NcProgramService progService;
+ private final IDictClient dictClient;
private final MachineService machineService;
private final NcProgramApprovedService approvedService;
private final ApproveRecordService approveRecordService;
@@ -58,19 +65,16 @@
public static final String NODE_JSON_FILE = "exp_mdm_nc_node.json";
public static final String APPROVE_RECORD_JSON_FILE = "exp_mdm_approve_record.json";
+ public static final String ANNOTATION_DICT = "machine_annotation";
+
/**
* 鍒嗛〉鏌ヨ
* @param query 鏌ヨ鍙傛暟
* @return
*/
public IPage<DncSendBackData> dncSendBackPageQuery(Query query) {
-
- IPage<DncSendBackData> page = this.getBaseMapper().dncSendBackpageQuery(Condition.getPage(query),query);
-
- return page;
-
+ return this.getBaseMapper().dncSendBackpageQuery(Condition.getPage(query),query);
}
-
/**
* 瀵煎嚭dnc鍘嬬缉鍖�
@@ -109,26 +113,81 @@
List<NcNode> programNodes = ncNodeService.lambdaQuery().eq(NcNode::getParentId, approved.getNcNodeId()).list();
FlowProgramFile programFile;
-
+ NcNode programPackageNode = this.ncNodeService.getById(approved.getNcNodeId());
+ String status = "鏈浐鍖�";
+ if(programPackageNode.hasCured()){
+ status = "宸插浐鍖�";
+ }
+ List<Dict> annotationList = getAnnotionList();
for (NcNode node : programNodes) {
String filePathInZip = packageFolder + node.getName();
programFile = this.flowProgramFileService.getById(node.getFlowProgramFileId());
InputStream inputStream = ossTemplate.statFileStream(programFile.getOssName());
Machine machine = machineService.getByCode(node.getMachineCode());
- InputStream addedIns = addSendPath(inputStream,machine.getProgSendDir());
- this.addInputStreamToZip(zipOut,addedIns,filePathInZip);
+ InputStream addedIns1 = addSendDirAnnotation(inputStream,machine,annotationList);
+ InputStream addedIns2 = addProgramStatusAnnotation(addedIns1,status,machine,annotationList);
+ this.addInputStreamToZip(zipOut,addedIns2,filePathInZip);
}
}
/**
- * 鍔犲叆鏈哄簥涓嬪彂璺緞
+ * 鑾峰彇瀛楀吀涓厤缃殑娉ㄩ噴
+ * @return 瀛楀吀椤瑰垪琛�
+ */
+ List<Dict> getAnnotionList(){
+ List<Dict> annotationList;
+ R<List<Dict>> dictsResult = dictClient.getList(ANNOTATION_DICT);
+ if(dictsResult.isSuccess()) {
+ annotationList = dictsResult.getData();
+ }else{
+ annotationList = Collections.emptyList();
+ }
+
+ return annotationList;
+ }
+ /**
+ * 鍔犲叆鏈哄簥涓嬪彂璺緞鍜岀▼搴忕姸鎬佺殑娉ㄩ噴
* @param inputStream
* @return
*/
- InputStream addSendPath(InputStream inputStream,String machineSendPath) throws IOException {
- return FileContentUtil.insertLine(inputStream,1,machineSendPath);
+ InputStream addSendDirAnnotation(InputStream inputStream,Machine machine,List<Dict> annotationList) throws IOException {
+ return FileContentUtil.insertLine(inputStream,1,generateAnnotation(machine.getProgSendDir(),machine.getMachineGroupCode(),annotationList));
+ }
+
+ /**
+ * 娣诲姞绋嬪簭涓撴敼鐨勬敞閲�
+ * @param inputStream
+ * @param status 绋嬪簭鐘舵��
+ * @param machine
+ * @param annotationList 閰嶇疆鐨勬敞閲婂瓧鍏稿垪琛�
+ * @return
+ * @throws IOException
+ */
+ InputStream addProgramStatusAnnotation(InputStream inputStream,String status,Machine machine,List<Dict> annotationList) throws IOException {
+ return FileContentUtil.insertLine(inputStream,2,generateAnnotation(status,machine.getMachineGroupCode(),annotationList));
+ }
+
+ String generateAnnotation(String oriTest,String machineGroupCode,List<Dict> annotationList) {
+ R<List<Dict>> dictsResult = dictClient.getList(ANNOTATION_DICT);
+ String annotation = oriTest;
+ String begin = "(";
+ String end = ")";
+
+ Optional<Dict> dictOpt = dictsResult.getData().stream().filter(dict -> {return dict.getDictKey().equals(machineGroupCode);}).findFirst();
+ String annotationSetting = "(,)";
+ if(dictOpt.isPresent()) {
+ annotationSetting = dictOpt.get().getDictValue();
+ }
+ String[] arr = annotationSetting.split(",");
+ if(arr.length == 2){
+ begin = arr[0];
+ end = arr[1];
+ }
+
+ annotation = begin + oriTest + end;
+ return annotation;
}
/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java
index e8e4daf..b05ec19 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncPageVO.java
@@ -11,6 +11,8 @@
@Setter
@Getter
public class NcProgramExportDncPageVO extends BaseVO {
+ @Schema(description = "娴佺▼鏍囬")
+ private String title;
@Schema(description = "绋嬪簭鍚嶇О")
private String name;
@Schema(description = "鍥惧彿")
--
Gitblit v1.9.3