From 5f714d1dfafa201ac52da4ebb2cc3ff7a5e3a31f Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 05 八月 2025 17:36:15 +0800
Subject: [PATCH] 机床新增数据库逐渐重复报错
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml | 10 ++--
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java | 25 ++++++------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java | 4 +-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java | 1
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java | 12 ++++--
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeAutoCreateService.java | 7 ++-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java | 21 ++++++++++
7 files changed, 55 insertions(+), 25 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java
index 802b835..6d95ef7 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java
@@ -33,6 +33,7 @@
Machine machine = new Machine();
BeanUtil.copyProperties(vo, machine);
+ machine.setId(null);
this.save(machine);
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
index 9a3684c..28cf253 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
@@ -56,7 +56,7 @@
@Transactional
- public void startCure(List<NcNode> programPackageList, Map<Long,List<FlowProgramFile>> allFlowProgramFiles) {
+ public void startCure(List<NcNode> programPackageList, Map<Long,List<NcNode>> allFlowProgramFiles) {
//鏍规嵁鍒嗙粍鍚姩娴佺▼锛屽苟鎻掑叆鍏宠仈琛�
programPackageList.forEach(pkg -> {
this.startOne(pkg,allFlowProgramFiles.get(pkg.getId()));
@@ -67,7 +67,7 @@
* 鍚姩涓�涓暟鎺х▼搴忕殑鍥哄寲娴佺▼
* @param programPackage 绋嬪簭鍖呭悕 鑺傜偣瀹炰綋
*/
- public void startOne(NcNode programPackage,List<FlowProgramFile> flowProgramFiles) {
+ public void startOne(NcNode programPackage,List<NcNode> programNodes) {
Map<String, Object> vars = null;
//璇ョ▼搴忓湪璁″垝浠诲姟鏃� 鑾峰彇缂栧埗锛屾牎瀵癸紝瀹℃壒鐨勪汉鍛橈紝浣滀负榛樿鐢ㄦ埛锛屽叾涓紪鍒舵椂绗竴涓浐瀹氱殑鐢ㄦ埛
if(programPackage.getProcessInstanceId() != null) {
@@ -100,10 +100,14 @@
programPackage.setProcessInstanceId(inst.getProcessInstanceId());
ncNodeService.updateById(programPackage);
- //鏇存柊鏂囦欢鐨勬祦绋嬪疄渚媔d锛屽苟鍏ュ簱
- flowProgramFiles.forEach(flowProgramFile -> {
+ //鏇存柊鏂囦欢鐨勬祦绋嬪疄渚媔d锛屽拰 绋嬪簭鑺傜偣鐨勬祦绋嬫枃浠秈d 骞跺叆搴�
+ programNodes.forEach(programNode -> {
+ FlowProgramFile flowProgramFile = programNode.getFlowProgramFile();
flowProgramFile.setProcessInstanceId(inst.getProcessInstanceId());
this.flowProgramFileService.save(flowProgramFile);
+
+ programNode.setFlowProgramFileId(flowProgramFile.getId());
+ this.ncNodeService.save(programNode);
});
log.info("鍚姩鍥哄寲娴佺▼瀹屾垚锛屽疄渚媔d={}", inst.getId());
}
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 89d421a..a992ae6 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
@@ -4,6 +4,8 @@
import lombok.Getter;
import lombok.Setter;
import org.springblade.core.mp.base.BizEntity;
+import org.springblade.mdm.flow.entity.FlowProgramFile;
+
@Setter
@Getter
@@ -149,4 +151,23 @@
* 瀹℃壒鏃剁殑娴佺▼瀹炰緥id锛屽彧鏈夌▼搴忓寘鑺傜偣鏈夎繖涓瓧娈靛��
*/
private String processInstanceId;
+
+ /**
+ * 鐗堟湰鍙凤紝鏇存柊涓�娆★紙鍏ュ崌鐗堬紝dnc瀵煎叆锛夛紝灏变細+1
+ */
+ private Integer versionNumber = 1;
+
+ transient FlowProgramFile flowProgramFile;
+
+ /**
+ * 鏍规嵁褰撳墠鐗堟湰鍙凤紝鑾峰彇鏂板鐗堟湰鍙�
+ * @return 鍗囩骇鍚庣殑鐗堟湰鍙�
+ */
+ public int genNewVersionNumber(){
+ if(this.versionNumber == null){
+ return 1;
+ }else{
+ return this.versionNumber + 1;
+ }
+ }
}
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 c5cc0c3..4125323 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
@@ -13,17 +13,17 @@
<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
inner join mdm_nc_node n on a.nc_node_id=n.id
- where a.is_deleted=0
<where>
+ a.is_deleted=0
<if test="query.name!=null and query.name!=''">
and n.name like CONCAT('%', #{query.name,jdbcType=VARCHAR},'%')
</if>
- <if test="query.passTimeBegin!=null">
- and a.create_time >= #{query.passTimeBegin}
+ <if test="query.createTimeBegin!=null">
+ and a.create_time >= #{query.createTimeBegin}
</if>
- <if test="query.passTimeEnd!=null">
- and a.create_time <= #{query.passTimeEnd}
+ <if test="query.createTimeEnd!=null">
+ and a.create_time <= #{query.createTimeEnd}
</if>
</where>
</select>
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 6b89979..18a6aa9 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
@@ -132,8 +132,8 @@
NcProgramExchange exchange;
String pkgFileName = bladeRedis.get(getFileKey());
- Map<Long,List<FlowProgramFile>> programPackageFileMap = new HashMap<>();
- List<NcNode> newProgramPckageList = updateNodeDataByDNCBackData(pkgFileName,idList,programPackageFileMap);
+ Map<Long,List<NcNode>> programPackageSubMap = new HashMap<>();
+ List<NcNode> newProgramPckageList = updateNodeDataByDNCBackData(pkgFileName,idList,programPackageSubMap);
for(NcNode pkgNode :newProgramPckageList){
exchange = new NcProgramExchange();
@@ -144,17 +144,17 @@
this.save(exchange);
}
- cureFlowService.startCure(newProgramPckageList,programPackageFileMap);
+ cureFlowService.startCure(newProgramPckageList,programPackageSubMap);
}
/**
* 鏇存柊鑺傜偣锛屼富瑕佹槸鍒涘缓 绋嬪簭鍖呭悕 鐨勬柊鐗堟湰銆�
* @param pkgFileName zip鏂囦欢鍚�
* @param programPackageIdList 绋嬪簭鍖呭悕 鑺傜偣鐨刬d鍒楄〃
- * @param programPackageFileMap 鏂扮殑 绋嬪簭鍖呰妭鐐筰d -> =鏂囦欢鍒楄〃 map锛岀敤浜庡洖浼犳暟鎹�
+ * @param programPackageSubMap 鏂扮殑 绋嬪簭鍖呰妭鐐筰d -> =鏂囦欢鍒楄〃 map锛岀敤浜庡洖浼犳暟鎹�
* @throws IOException 璁块棶鏂囦欢寮傚父
*/
- List<NcNode> updateNodeDataByDNCBackData(String pkgFileName, List<Long> programPackageIdList,Map<Long,List<FlowProgramFile>> programPackageFileMap) throws IOException {
+ List<NcNode> updateNodeDataByDNCBackData(String pkgFileName, List<Long> programPackageIdList,Map<Long,List<NcNode>> programPackageSubMap) throws IOException {
InputStream inputStream = this.ossTemplate.statFileStream(pkgFileName);
Path tempZipFile = createTempFile(inputStream);
List<NcNode> newProgramPackageNodeList = new ArrayList<>();
@@ -194,7 +194,8 @@
oriProgramPkg.setIsLastEdition(0);;
ncNodeService.updateById(oriProgramPkg);
- List<FlowProgramFile> newFlowFiles = new ArrayList<>();
+ //List<FlowProgramFile> newFlowFiles = new ArrayList<>();
+ List<NcNode> newProgramNodes = new ArrayList<>();
//鏌ユ壘鍖呬笅鐨勬枃浠舵暟鎹�,
entryNameList.stream().filter(s -> s.startsWith(dir)).forEach(entryName -> {
log.info("{}涓嬬殑鏂囦欢锛歿}",dir,entryName);
@@ -211,9 +212,9 @@
BeanUtils.copyProperties(oldProgramNode, newProgramNode);
clearBaseProperties(newProgramNode);
newProgramNode.setIsLastEdition(1);
- newProgramNode.setParentId(newProgramPkg.getParentId());
+ newProgramNode.setParentId(newProgramPkg.getId());
newProgramNode.setParentIds(newProgramPkg.getParentIds()+","+newProgramPkg.getId());
- ncNodeService.save(newProgramNode);
+ //ncNodeService.save(newProgramNode);
//灏嗗洖浼犳枃浠朵笂浼狅紝骞惰褰曞埌鏁版嵁搴�
FlowProgramFile oldFlowFile = flowProgramFileService.getById(newProgramNode.getFlowProgramFileId());
@@ -230,16 +231,16 @@
} catch (IOException e) {
throw new RuntimeException(e);
}
-
- newFlowFiles.add(newFlowFile);
-
+ newProgramNode.setFlowProgramFile(newFlowFile);
+ newProgramNode.setVersionNumber(oldProgramNode.genNewVersionNumber());
+ newProgramNodes.add(newProgramNode);
oldProgramNode.setIsLastEdition(0);
oldProgramNode.setIsLocked(1);
ncNodeService.updateById(oldProgramNode);
}
});
- programPackageFileMap.put(newProgramPkg.getId(),newFlowFiles);
+ programPackageSubMap.put(newProgramPkg.getId(),newProgramNodes);
}
}
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 fba1a01..d3ec4c7 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
@@ -62,7 +62,7 @@
node.setMachineCode(programProperties.getMachineCode());
node.setProductModel(programProperties.getProductModel());
node.setFlowProgramFileId(programFile.getId());
-
+ node.setVersionNumber(1);
ncNodeService.save(node);
}
@@ -122,7 +122,7 @@
ncNode.setParentId(parentNode.getId());
ncNode.setParentIds(parentNode.getParentIds() + "," + parentNode.getId());
ncNode.setNodeType(nodeType);
-
+ ncNode.setVersionNumber(1);
//绋嬪簭鍖呰妭鐐瑰拰绋嬪簭鏂囦欢鑺傜偣鏁版嵁
if(NcNode.TYPE_PROGRAM_PACKAGE.equals(nodeType) || NcNode.TYPE_PROGRAM_FILE.equals(nodeType)){
@@ -173,6 +173,7 @@
ncNode.setParentId(0L);
ncNode.setParentIds("");
ncNode.setNodeType("10");
+ ncNode.setVersionNumber(1);
ncNodeService.save(ncNode);
return ncNode;
@@ -188,6 +189,7 @@
ncNode.setParentId(0L);
ncNode.setParentIds("");
ncNode.setNodeType("10");
+ ncNode.setVersionNumber(1);
ncNodeService.save(ncNode);
return ncNode;
@@ -200,6 +202,7 @@
ncNode.setParentId(0L);
ncNode.setParentIds("");
ncNode.setNodeType("10");
+ ncNode.setVersionNumber(1);
ncNodeService.save(ncNode);
return ncNode;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java
index 537793c..e16d052 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramExportDncQueryVO.java
@@ -18,7 +18,7 @@
@Schema(description = "绋嬪簭鍚嶇О")
private String name;
@Schema(description = "閫氳繃鏃堕棿寮�濮�")
- private Date passTimeBegin;
+ private Date createTimeBegin;
@Schema(description = "閫氳繃鏃堕棿鎴")
- private Date passTimeEnd;
+ private Date createTimeEnd;
}
--
Gitblit v1.9.3