From a0881c9a8dbff2bf7f3e10255b998b9529c7aef3 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 07 八月 2025 13:46:36 +0800
Subject: [PATCH] 优化代码
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramApprovedMapper.xml | 1
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java | 8 +--
blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml | 3 -
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DNCSendBackService.java | 4 +-
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java | 7 +++
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java | 37 ++++++++++--------
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java | 8 ++--
blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java | 43 +++++++++++++++++++++
8 files changed, 81 insertions(+), 30 deletions(-)
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 c7dc784..ae9b820 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
@@ -51,13 +51,6 @@
private final FlowProgramFileService flowProgramFileService;
- /**
- * 鍥哄寲娴佺▼鐨刱ey
- */
- private static final String PROCESS_KEY = "program-cure";
-
-
-
@Transactional
public void startCure(List<NcNode> programPackageList, Map<Long,List<NcNode>> allFlowProgramFiles) {
//鏍规嵁鍒嗙粍鍚姩娴佺▼锛屽苟鎻掑叆鍏宠仈琛�
@@ -71,7 +64,7 @@
* @param programPackage 绋嬪簭鍖呭悕 鑺傜偣瀹炰綋
*/
public void startOne(NcNode programPackage,List<NcNode> programNodes) {
- Map<String, Object> vars = null;
+ Map<String, Object> vars = new HashMap<>();
//璇ョ▼搴忓湪璁″垝浠诲姟鏃� 鑾峰彇缂栧埗锛屾牎瀵癸紝瀹℃壒鐨勪汉鍛橈紝浣滀负榛樿鐢ㄦ埛锛屽叾涓紪鍒舵椂绗竴涓浐瀹氱殑鐢ㄦ埛
if(programPackage.getProcessInstanceId() != null) {
//鑾峰彇瀹℃壒鐢ㄦ埛
@@ -79,13 +72,21 @@
.processInstanceId(programPackage.getProcessInstanceId()).includeProcessVariables()
.singleResult();
if(instance != null) {//浣跨敤浠诲姟娲惧伐娴佺▼鐨勫彉閲�
- vars = new HashMap<>(instance.getProcessVariables());
- vars.remove("proessInstanceId");
+ Map<String, Object> oldVars = instance.getProcessVariables();
+ //鏈哄簥缂栧彿
+ vars.put(FlowContants.MACHINE_CODE,oldVars.get(FlowContants.MACHINE_CODE));
+ //鏈哄簥鍨嬪彿
+ vars.put(FlowContants.MACHINE_MODE,oldVars.get(FlowContants.MACHINE_MODE));
+ vars.put(FlowContants.PROCESS_NO,oldVars.get(FlowContants.PROCESS_NO));
+ vars.put(FlowContants.PROCESS_NAME,oldVars.get(FlowContants.PROCESS_NAME));
+ vars.put(FlowContants.PROCESS_EDITION,oldVars.get(FlowContants.PROCESS_EDITION));
+ vars.put(FlowContants.CRAFT_EDITION, oldVars.get(FlowContants.CRAFT_EDITION));
+ vars.put(FlowContants.DRAWING_NO,oldVars.get(FlowContants.DRAWING_NO));
+ vars.put(FlowContants.DRAWING_NO_EDITION,oldVars.get(FlowContants.DRAWING_NO_EDITION));
+
+ vars.put(FlowContants.PRODUCT_MODEL,oldVars.get(FlowContants.PRODUCT_MODEL));
}
- }
- if(vars == null){
- vars = new HashMap<>();
}
//鏌ユ壘鍘嗗彶瀹為檯鐨勫鎵逛汉
@@ -100,7 +101,8 @@
vars.put(FlowContants.LAST_STEP_USER_NICKNAME, AuthUtil.getNickName());
vars.put(FlowContants.TITLE,programPackage.getName()+"-鍥哄寲");//鑷姩澧炲姞鏍囬
- ProcessInstance inst = runtimeService.startProcessInstanceByKey(PROCESS_KEY,businessKey,vars);
+
+ ProcessInstance inst = runtimeService.startProcessInstanceByKey(FlowContants.CURE_PROCESS_KEY,businessKey,vars);
//鏇存柊绋嬪簭鍖呭悕鑺傜偣鐨勬祦绋嬪疄渚媔d
programPackage.setProcessInstanceId(inst.getProcessInstanceId());
@@ -152,9 +154,10 @@
}
- vars.put("programmer",programmer);
- vars.put("checker",checker);
- vars.put("senior",senior);
+ vars.put(FlowContants.PROGRAMMER,programmer);
+ vars.put(FlowContants.CHECKER,checker);
+ vars.put(FlowContants.SENIOR,senior);
+ vars.put(FlowContants.ASSIGNEE,programmer);
}
/**
* 灏嗙▼搴忔寜鐓ф満鍣ㄤ唬鐮佸垎缁�
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
index cfb9dc0..3d508da 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/cure/CureFinishOperateTask.java
@@ -15,6 +15,7 @@
import org.springframework.stereotype.Component;
import java.time.LocalDate;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -68,6 +69,12 @@
//绉诲姩鍒板浐鍖栨爲涓嬬殑鏈哄簥鑺傜偣涓嬪眰
String newParentIds = machineNode.getParentIds()+","+machineNode.getId();
+
+ //鏇存柊鏈哄簥 涓嬪睘鑺傜偣鐨勬暟鎹� 涓烘棫鐗堟湰锛岄攣瀹�(鏈�鏂扮増鏈�=0锛宭ock=1)
+ this.nodeService.lambdaUpdate().likeRight(NcNode::getParentIds, newParentIds)
+ .in(NcNode::getNodeType, Arrays.asList(NcNode.TYPE_PROGRAM_PACKAGE,NcNode.TYPE_PROGRAM_FILE))
+ .set(NcNode::getIsLastEdition,0).set(NcNode::getIsLocked,1).update();
+
for(NcNode hisNode : historyNodes){
if(!hisNode.getId().equals(pkgNode.getId())){
hisNode.setIsLastEdition(0);
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 4125323..2197972 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
@@ -26,5 +26,6 @@
and a.create_time <= #{query.createTimeEnd}
</if>
</where>
+ order by a.create_time desc
</select>
</mapper>
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 fcac854..fdd4929 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
@@ -103,7 +103,7 @@
//鐩綍锛屾墠鏄▼搴忓寘锛�
//鏌ヨ鏁版嵁搴擄紝瀵瑰簲涓婃墠鑳界‘璁ゆ椂鏈夋晥鐨勭▼搴忓寘
String packageName = StringUtils.removeEnd(entryName,"/");
- NcNode programPackageNode = ncNodeService.getLastEditionProgramPackage(packageName);
+ 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 programPackageNode = pkgList.get(0);
@@ -180,7 +180,7 @@
for(String dir : dirList){
String programPackageName = StringUtils.removeEnd(dir,"/");
- NcNode oriProgramPkg = this.ncNodeService.getLastEditionProgramPackage(programPackageName);
+ NcNode oriProgramPkg = this.ncNodeService.getLastEditionTryingProgramPackage(programPackageName);
if(oriProgramPkg == null){
log.warn("鏂囦欢澶规湭鍙戠幇鍖归厤鐨勭▼搴忓寘鍚峽}",dir);
continue;
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 935fa7b..8e218d1 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
@@ -101,7 +101,6 @@
public List<NcNodeVO> searchList(NcNodeQueryVO queryVO) {
//1.鏍规嵁鍏宠繘瀛楀拰鑺傜偣绫诲瀷鏌ヨ鍒濆鍒楄〃,鏌ヨ鐨勫師濮嬪垪琛紝闇�瑕乭asChild瀛楁锛屾墍浠ヤ娇鐢╩apper.xml
List<NcNodeVO> oriList = this.getBaseMapper().searchList(queryVO);
- //List<NcNode> list = this.lambdaQuery().eq(NcNode::getNodeType, queryVO.getNodeType()).like(NcNode::getName, queryVO.getName()).list();
if ("10".equals(queryVO.getNodeType())) {
//鎼滅储鐨勬牴绾у埆锛岀洿鎺ヨ繑鍥�
return oriList;
@@ -181,13 +180,14 @@
}
/**
- * 鑾峰彇鈥滅▼搴忓寘鍚嶁�濈殑鏈�鏂扮増鏈�
+ * 鑾峰彇鈥滅▼搴忓寘鍚嶁�濊瘯鍒囩殑鏈�鏂扮増鏈�
* @param name 鑺傜偣鍚嶇О
* @return 鏈�鏂扮増鏈▼搴忔姤鍚嶈妭鐐�
*/
- public NcNode getLastEditionProgramPackage(String name){
+ public NcNode getLastEditionTryingProgramPackage(String name){
List<NcNode> pkgList = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
- .eq(NcNode::getName, name).eq(NcNode::getIsLastEdition,1).orderByDesc(NcNode::getCreateTime).list();
+ .eq(NcNode::getName, name).eq(NcNode::getIsCured,0).likeRight(NcNode::getParentIds,"0,1,")
+ .eq(NcNode::getIsLastEdition,1).orderByDesc(NcNode::getCreateTime).list();
if(pkgList.isEmpty()){
return null;
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java
index 4fa1d83..fd5e853 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramApprovedService.java
@@ -26,6 +26,7 @@
import org.springblade.mdm.program.vo.NcProgramExportDncQueryVO;
import org.springblade.mdm.utils.CustomBinaryWriter;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -55,12 +56,9 @@
* @param query 鏌ヨ鍙傛暟
* @return
*/
+ @Transactional(readOnly = true)
public IPage<NcProgramExportDncPageVO> exportDncPageQuery(NcProgramExportDncQueryVO query) {
-
- IPage<NcProgramExportDncPageVO> page = this.getBaseMapper().exportDncPageQuery(Condition.getPage(query),query);
-
- return page;
-
+ return this.getBaseMapper().exportDncPageQuery(Condition.getPage(query),query);
}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
new file mode 100644
index 0000000..838f96f
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/test/MyTestController.java
@@ -0,0 +1,43 @@
+package org.springblade.mdm.test;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.api.R;
+import org.springblade.mdm.program.entity.NcNode;
+import org.springblade.mdm.program.service.NcNodeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/test/")
+@Tag(name = "娴嬭瘯", description = "娴嬭瘯")
+public class MyTestController {
+
+ @Autowired
+ private NcNodeService service;
+
+ /**
+ * 鏂板
+ */
+ @GetMapping("/like")
+ @Operation(summary = "like", description = "like")
+ public R<Object> like() {
+ try {
+ List<NcNode> nodes = service.lambdaQuery()
+ .likeRight(NcNode::getParentIds,"0,2,").list();
+
+ return R.data(nodes);
+ }catch (Exception e) {
+ log.error("鍚屾澶辫触", e);;
+ return R.fail(e.getMessage());
+ }
+
+ }
+
+}
diff --git a/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml b/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml
index 7663f64..df201aa 100644
--- a/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml
+++ b/blade-service/blade-mdm/src/main/resources/processesbpmn/program-cure.bpmn20.xml
@@ -2,8 +2,7 @@
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef">
<process id="program-cure" name="鍥哄寲娴佺▼" isExecutable="true">
<startEvent id="sid-abe970b9-1bee-49a1-91b4-1184c47c10b7"/>
- <userTask id="cureProgramTask" name="鍥哄寲缂栧埗" flowable:assignee="${programmer}"/>
-
+ <userTask id="cureProgramTask" name="鍥哄寲缂栧埗" flowable:assignee="${assignee}"/>
<sequenceFlow id="sid-09c7cf44-bb1a-40f4-b231-919afae5c02f" sourceRef="sid-abe970b9-1bee-49a1-91b4-1184c47c10b7" targetRef="cureProgramTask"/>
<endEvent id="end" name="鍥哄寲缁撴潫"/>
<userTask id="seniorApproveTask" name="楂樺笀瀹℃牳" flowable:assignee="${assignee}"/>
--
Gitblit v1.9.3