From 0d61b9bfca526e9c3da2209de8f9f367e76fd013 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 18 九月 2025 18:09:35 +0800
Subject: [PATCH] 修改constant类名
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java | 187 +++++++++++++++++++++++++++++++++-------------
1 files changed, 135 insertions(+), 52 deletions(-)
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 bea9b12..61d99b9 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
@@ -3,12 +3,16 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.springblade.mdm.flow.constants.FlowContants;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.flow.constants.FlowConstant;
import org.springblade.mdm.flow.entity.FlowProgramFile;
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.utils.EntityUtil;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -27,24 +31,74 @@
private final NcNodeService ncNodeService;
private final FlowCommonService flowCommonService;
private final FlowProgramFileService flowProgramFileService;
- private final ProgramSeqService programSeqService;
+
public static final String TRY_NAME = "璇曞垏";
public static final String CURE_NAME = "鍥哄寲";
- public static final String PIANLI_NAME = "鍋忕";
+ public static final String DEVIATION_NAME = "鍋忕";
/**
* 鍒涘缓鏍戝埌鏈哄簥绾у埆
- * @param programProperties
+ * @param programProperties 绋嬪簭灞炴��
*/
@Transactional
- public NcNode createNodeTreeToMachine(FlowProgramProperties programProperties) {
-
+ public NcNode createNodeTreeToMachineGroup(FlowProgramProperties programProperties) {
+ NcNode root;
+ if(programProperties.getProcessDefinitionKey().equals(FlowConstant.TRY_PROCESS_KEY)){
+ if(Func.isEmpty(programProperties.getDeviation()) ||
+ (FlowConstant.Y.equals(programProperties.getHasCuredProgram()) && FlowConstant.N.equals(programProperties.getCureProgramUseable()))){
+ //鏅�氳瘯鍒囷紝鎴栬�呮湁鍥哄寲涓嶅彲鐢紝寤虹珛璇曞垏鑺傜偣
+ //璇曞垏鏍硅妭鐐�
+ root = rootNodeByName(TRY_NAME);
+ if (root == null) {
+ root = createTryNode();
+ }
+ }else{
+ //鏈夊亸绂�
+ root = rootNodeByName(DEVIATION_NAME);
+ if(root == null){
+ root = createDeviationNode();
+ }
+ }
+ }else if(programProperties.getProcessDefinitionKey().equals(FlowConstant.CURE_PROCESS_KEY)){
+ root = rootNodeByName(CURE_NAME);
+ if(root == null){
+ root = createCureNode();
+ }
+ }else{
+ throw new ServiceException("娴佺▼瀹氫箟涓嶅湪鑼冨洿鍐�");
+ }
+ //鍒涘缓浜у搧鍨嬪彿鑺傜偣
+ NcNode productModelNode = createNodeIfNotExists(programProperties.getProductModel(),NcNode.TYPE_PRODUCT_MODEL, root,programProperties,null);
+ //闆剁粍浠跺彿鑺傜偣
+ NcNode drawingNoNode = createNodeIfNotExists(programProperties.getDrawingNo(),NcNode.TYPE_DRAWING_NO, productModelNode,programProperties,null);
+ //宸ヨ壓鐗堟鑺傜偣
+ //NcNode craftEditionNode = createNodeIfNotExists(programProperties.getCraftEdition(),NcNode.TYPE_CRAFT_EDITION, drawingNoNode,programProperties);
+ //宸ュ簭鍙疯妭
+ NcNode processNoNode = createNodeIfNotExists(programProperties.getProcessNo(),NcNode.TYPE_PROCESS_NO, drawingNoNode,programProperties,null);
+ //宸ュ簭鐗堟鑺傜偣
+ NcNode processEditionNode = createNodeIfNotExists(programProperties.getProcessEdition(),NcNode.TYPE_PROCESS_EDITION, processNoNode,programProperties,null);
+ //鍔犲伐鏈哄簥鑺傜偣
+ return createNodeIfNotExists(programProperties.getMachineGroupCode(),NcNode.TYPE_MACHINE_GROUP, processEditionNode,programProperties,null);
+ }
+ /*
+ @Transactional
+ public NcNode createNodeTreeToProcessEdition(FlowProgramProperties programProperties) {
NcNode root;
if(programProperties.getProcessDefinitionKey().equals(FlowContants.TRY_PROCESS_KEY)){
- //璇曞垏
- root = rootNodeByName(TRY_NAME);
- if(root == null){
- root = createTryNode();
+ if(Func.isEmpty(programProperties.getDeviation()) ||
+ (FlowContants.Y.equals(programProperties.getHasCuredProgram()) && FlowContants.N.equals(programProperties.getCureProgramUseable()))){
+ //鏅�氳瘯鍒囷紝鎴栬�呮湁鍥哄寲涓嶅彲鐢紝寤虹珛璇曞垏鑺傜偣
+ //璇曞垏鏍硅妭鐐�
+ root = rootNodeByName(TRY_NAME);
+ if (root == null) {
+ root = createTryNode();
+ }
+ }else{
+ //鏈夊亸绂�
+ root = rootNodeByName(DEVIATION_NAME);
+ if(root == null){
+ root = createDeviationNode();
+ }
}
}else if(programProperties.getProcessDefinitionKey().equals(FlowContants.CURE_PROCESS_KEY)){
root = rootNodeByName(CURE_NAME);
@@ -52,76 +106,95 @@
root = createCureNode();
}
}else{
- root = rootNodeByName(PIANLI_NAME);
- if(root == null){
- root = createPianliNode();
- }
+ throw new ServiceException("娴佺▼瀹氫箟涓嶅湪鑼冨洿鍐�");
}
-
- NcNode lastNode = null;
//鍒涘缓浜у搧鍨嬪彿鑺傜偣
- //NcNode productModelNode = createProductModelNode(programProperties.getProductModel(), root);
- NcNode productModelNode = createNodeIfNotExists(programProperties.getProductModel(),NcNode.TYPE_PRODUCT_MODEL, root,programProperties);
+ NcNode productModelNode = createNodeIfNotExists(programProperties.getProductModel(),NcNode.TYPE_PRODUCT_MODEL, root,programProperties,null);
//闆剁粍浠跺彿鑺傜偣
- NcNode drawingNoNode = createNodeIfNotExists(programProperties.getDrawingNo(),NcNode.TYPE_DRAWING_NO, productModelNode,programProperties);
+ NcNode drawingNoNode = createNodeIfNotExists(programProperties.getDrawingNo(),NcNode.TYPE_DRAWING_NO, productModelNode,programProperties,null);
//宸ヨ壓鐗堟鑺傜偣
- NcNode craftEditionNode = createNodeIfNotExists(programProperties.getCraftEdition(),NcNode.TYPE_CRAFT_EDITION, drawingNoNode,programProperties);
+ //NcNode craftEditionNode = createNodeIfNotExists(programProperties.getCraftEdition(),NcNode.TYPE_CRAFT_EDITION, drawingNoNode,programProperties);
//宸ュ簭鍙疯妭
- NcNode processNoNode = createNodeIfNotExists(programProperties.getProcessNo(),NcNode.TYPE_PROCESS_NO, craftEditionNode,programProperties);
+ NcNode processNoNode = createNodeIfNotExists(programProperties.getProcessNo(),NcNode.TYPE_PROCESS_NO, drawingNoNode,programProperties,null);
//宸ュ簭鐗堟鑺傜偣
- NcNode processEditionNode = createNodeIfNotExists(programProperties.getProcessEdition(),NcNode.TYPE_PROCESS_EDITION, processNoNode,programProperties);
+ NcNode processEditionNode = createNodeIfNotExists(programProperties.getProcessEdition(),NcNode.TYPE_PROCESS_EDITION, processNoNode,programProperties,null);
//鍔犲伐鏈哄簥鑺傜偣
- return createNodeIfNotExists(programProperties.getMachineCode(),NcNode.TYPE_MACHINE_CODE, processEditionNode,programProperties);
+ return createNodeIfNotExists(programProperties.getMachineCode(),NcNode.TYPE_MACHINE_CODE, processEditionNode,programProperties,null);
}
+ */
/**
* 鏍规嵁娴佺▼淇℃伅锛岃嚜鍔ㄥ垱寤哄悇涓妭鐐�,鍖呮嫭绋嬪簭鑺傜偣
* @param programProperties 绋嬪簭灞炴��
+ * @return 绋嬪簭鍖呰妭鐐瑰疄渚�
*/
@Transactional
- public void createNodeTreeWithProgram(FlowProgramProperties programProperties) {
+ public NcNode createNodeTreeWithProgram(FlowProgramProperties programProperties,Integer versionNumber) {
//,int rootNodeCatgory = 1:璇曞垏锛�2鍥哄寲锛�3鍋忕
- NcNode programPkdNode = createTreeToPackage(programProperties);
+ NcNode programPkdNode = createTreeToPackage(programProperties,versionNumber);
//鍒犻櫎涔嬪墠鍒涘缓杩囩殑绋嬪簭鏂囦欢鑺傜偣(鍥犱负閲嶅鍦ㄧ紪鍒惰妭鐐瑰鎵�)锛岄伩鍏嶉噸澶嶆暟鎹�
- this.ncNodeService.lambdaUpdate().eq(NcNode::getParentId, programPkdNode.getId()).remove();
+ ncNodeService.deleteSubNodes(programPkdNode.getId());
List<FlowProgramFile> programFiles = flowProgramFileService.lambdaQuery().eq(FlowProgramFile::getProcessInstanceId, programProperties.getProcessInstanceId()).list();
for (FlowProgramFile programFile : programFiles) {
- createProgramFileNode(programFile, programPkdNode, programProperties);
+ createProgramFileNode(programFile, programPkdNode,versionNumber);//鎵�鏈夋枃浠跺寘鎷▼搴忓拰鍏朵粬锛岄兘闇�瑕佸缓绔嬭妭鐐�
}
+ return programPkdNode;
}
- private void createProgramFileNode(FlowProgramFile programFile, NcNode programPkdNode, FlowProgramProperties programProperties) {
+ /**
+ * 寤虹珛绋嬪簭鏂囦欢鑺傜偣
+ * @param programFile 娴佺▼鏂囦欢
+ * @param programPkdNode 绋嬪簭鍖呭悕 鑺傜偣锛岀▼搴忚妭鐐圭殑 涓婄骇
+ * @param versionNumber 鐗堟湰鍙�
+ */
+ private void createProgramFileNode(FlowProgramFile programFile, NcNode programPkdNode, Integer versionNumber) {
//姝ゅ搴旈伩鍏嶉噸澶嶅垱寤�
NcNode node = new NcNode();
+ BeanUtils.copyProperties(programPkdNode, node);
+ EntityUtil.clearBaseProperties(node);
+
node.setNodeType(NcNode.TYPE_PROGRAM_FILE);
node.setName(programFile.getName());//鏂囦欢鍚嶏紝
+
+ node.setIsLastEdition(1);
+
+ node.setFlowProgramFileId(programFile.getId());
+ if(versionNumber == null){
+ node.setVersionNumber(1);
+ }else {
+ node.setVersionNumber(versionNumber);
+ }
node.setParentId(programPkdNode.getId());
node.setParentIds(programPkdNode.getParentIds()+","+programPkdNode.getId());
- node.setIsLastEdition(1);
- node.setDrawingNo(programPkdNode.getDrawingNo());
- node.setDrawingNoEdition(programProperties.getDrawingNoEdition());
- node.setCraftEdition(programProperties.getCraftEdition());
- node.setProcessName(programProperties.getProcessName());
- node.setProcessNo(programProperties.getProcessNo());
- node.setMachineCode(programProperties.getMachineCode());
- node.setProductModel(programProperties.getProductModel());
- node.setFlowProgramFileId(programFile.getId());
- node.setVersionNumber(1);
+
+
ncNodeService.save(node);
}
/**
* 鍒涘缓鑺傜偣鍒扮▼搴忓寘绾у埆
- * @param programProperties
- * @param createProgramPkg
- * @return
+ * @param programProperties 绋嬪簭灞炴��
+ * @return 绋嬪簭鍖呭悕鑺傜偣锛堟渶鏈骇锛�
*/
- public NcNode createTreeToPackage(FlowProgramProperties programProperties) {
- NcNode machineCodeNode = createNodeTreeToMachine(programProperties);
- String programPkgName = programProperties.getDrawingNo()+"-"+programProperties.getProcessNo();//闆朵欢鍙峰姞宸ュ簭鍙�
- return createNodeIfNotExists(programPkgName ,NcNode.TYPE_PROGRAM_PACKAGE, machineCodeNode,programProperties);
+ @Transactional
+ public NcNode createTreeToPackage(FlowProgramProperties programProperties,Integer versionNumber) {
+ NcNode machineGroupNode = createNodeTreeToMachineGroup(programProperties);
+ //NcNode processEditionNode = this.ncNodeService.getById(machineCodeNode.getParentId());
+ //鑾峰彇宸ュ簭鐗堟涓嬪叾浠栨満搴婂悕锛屽瓨鍦ㄥ垯鍒犻櫎
+ /*
+ ncNodeService.lambdaUpdate().eq(NcNode::getNodeType,NcNode.TYPE_MACHINE_GROUP)
+ .eq(NcNode::getParentId,processEditionNode.getId()).eq(NcNode::getIsLastEdition,1)
+ .ne(NcNode::getName,machineCodeNode.getName()).remove();
+
+ */
+
+ //淇濇寔鍔犲伐鏈哄簥鏄渶鏂颁笅鍙戜换鍔$殑鏈哄簥锛屼笉鏄柊寤轰竴涓満搴婅妭鐐癸紝鎻掑彊宸ュ簭鐗堟涓嬫槸鍚︽湁鍏朵粬鐨勬満搴婏紙闆朵欢鍙蜂竴鑷达紝宸ュ簭鍙凤紝宸ュ簭鐗堟涓�鑷达級
+ //鑾峰彇
+ //绋嬪簭鍖呭悕鍦ㄦ満搴婄粍涓嬬骇 20250913
+ String programPkgName = NcNodeService.genProgramName(programProperties.getDrawingNo(),programProperties.getProcessNo(),programProperties.getProcessEdition());
+ return createNodeIfNotExists(programPkgName ,NcNode.TYPE_PROGRAM_PACKAGE, machineGroupNode,programProperties,versionNumber);
}
@@ -131,9 +204,9 @@
* @param nodeType 鑺傜偣绫诲瀷
* @param parentNode 鐖惰妭鐐�
* @param programProperties 娴佺▼绋嬪簭灞炴��
- * @return
+ * @return 鍒涘缓鎴栧凡瀛樺湪鐨勮妭鐐规垨
*/
- NcNode createNodeIfNotExists(String name,String nodeType,NcNode parentNode,FlowProgramProperties programProperties) {
+ NcNode createNodeIfNotExists(String name,String nodeType,NcNode parentNode,FlowProgramProperties programProperties,Integer versionNumber) {
Optional<NcNode> nodeOpt = this.ncNodeService.lambdaQuery().eq(NcNode::getName,name).eq(NcNode::getNodeType,nodeType)
.eq(NcNode::getParentId,parentNode.getId()).eq(NcNode::getIsLastEdition,1).oneOpt();
if(nodeOpt.isPresent()){
@@ -144,13 +217,15 @@
ncNode.setParentId(parentNode.getId());
ncNode.setParentIds(parentNode.getParentIds() + "," + parentNode.getId());
ncNode.setNodeType(nodeType);
- ncNode.setVersionNumber(1);
+ if(versionNumber == null){
+ ncNode.setVersionNumber(1);
+ }else{
+ ncNode.setVersionNumber(versionNumber);
+ }
//绋嬪簭鍖呰妭鐐瑰拰绋嬪簭鏂囦欢鑺傜偣鏁版嵁
if(NcNode.TYPE_PROGRAM_PACKAGE.equals(nodeType) || NcNode.TYPE_PROGRAM_FILE.equals(nodeType)){
- String programNo = programSeqService.generageProgramNo();
- ncNode.setProgramNo(programNo);
ncNode.setProcessInstanceId(programProperties.getProcessInstanceId());
ncNode.setDrawingNo(programProperties.getDrawingNo());
ncNode.setDrawingNoEdition(programProperties.getDrawingNoEdition());
@@ -159,8 +234,14 @@
ncNode.setProcessEdition(programProperties.getProcessEdition());
ncNode.setProcessName(programProperties.getProcessName());
ncNode.setMachineCode(programProperties.getMachineCode());
+ ncNode.setMachineGroupCode(programProperties.getMachineGroupCode());
ncNode.setProductModel(programProperties.getProductModel());
+ ncNode.setDeviation(programProperties.getDeviation());
+
+ if(NcNode.TYPE_PROGRAM_PACKAGE.equals(nodeType)) {//绋嬪簭鍖呰妭鐐癸紝鍒嗛厤绋嬪簭缂栧彿
+ ncNode.setProgramNo(programProperties.getProgramNo());
+ }
}
ncNode.setIsLastEdition(1);
@@ -208,10 +289,10 @@
return ncNode;
}
- NcNode createPianliNode() {
+ NcNode createDeviationNode() {
NcNode ncNode = new NcNode();
ncNode.setId(3L);
- ncNode.setName(PIANLI_NAME);
+ ncNode.setName(DEVIATION_NAME);
ncNode.setParentId(0L);
ncNode.setParentIds("0");
ncNode.setNodeType("10");
@@ -220,4 +301,6 @@
return ncNode;
}
+
+
}
--
Gitblit v1.9.3