From d4ca3871c18474768c924fcbfd6e8d3178040092 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 15 九月 2025 01:19:56 +0800
Subject: [PATCH] 性能优化
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java | 82 +++++++++++++++++++++++++++++++++-------
1 files changed, 67 insertions(+), 15 deletions(-)
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 2a99ad7..48d78fd 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
@@ -5,7 +5,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.tool.utils.Func;
-import org.springblade.mdm.basesetting.machine.MachineService;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.mapper.NcNodeMapper;
@@ -18,7 +18,6 @@
import java.util.List;
import java.util.Objects;
import java.util.Optional;
-import java.util.stream.Collectors;
/**
* 绋嬪簭鑺傜偣
@@ -198,13 +197,13 @@
* @param name 鑺傜偣鍚嶇О
* @return 鏈�鏂扮増鏈▼搴忔姤鍚嶈妭鐐�
*/
- public NcNode getLastEditionTryingProgramPackage(String name,String processEdition){
+ public NcNode getLastEditionTryingProgramPackage(String name){
//.or(NcNode::getIsCured,0)
List<NcNode> pkgList = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
.eq(NcNode::getName, name).and(i->{
i.eq(NcNode::getIsCured, 0).or().isNull(NcNode::getIsCured);
}).likeRight(NcNode::getParentIds,"0,1,")
- .eq(NcNode::getIsLastEdition,1).eq(NcNode::getProcessEdition,processEdition).orderByDesc(NcNode::getCreateTime).list();
+ .eq(NcNode::getIsLastEdition,1).orderByDesc(NcNode::getCreateTime).list();//.eq(NcNode::getProcessEdition,processEdition)
if(pkgList.isEmpty()){
return null;
@@ -230,23 +229,60 @@
}
/**
- * 鑾峰彇node鐨勫巻鍙插垪琛�(鍚屼竴涓埗鑺傜偣涓嬶紝鍚屽悕鐨勬墍鏈夎妭鐐癸級
+ * 鑾峰彇璇曞垏鑺傜偣node鐨勫巻鍙插垪琛�(闆剁粍浠跺彿锛屽伐搴忓彿锛屽伐搴忕増鏈紝鏈哄簥缁勶級
* @param pkgNode node
* @return 鍘嗗彶鍒楄〃锛屾姤閿欒妭鐐规湰韬�
*/
- public List<NcNode> getNodeHistory(NcNode pkgNode) {
+ public List<NcNode> getTryNodeHistory(NcNode pkgNode) {
+ return this.lambdaQuery().eq(NcNode::getDrawingNo,pkgNode.getDrawingNo())
+ .eq(NcNode::getProcessNo,pkgNode.getProcessNo())
+ .eq(NcNode::getProcessEdition,pkgNode.getProcessEdition())
+ .eq(NcNode::getMachineGroupCode,pkgNode.getMachineGroupCode())
+ .likeLeft(NcNode::getParentIds,"0,1,")
+ .list();//.ne(NcNode::getId,pkgNode.getId())
+ /*
return this.lambdaQuery().eq(NcNode::getParentId,pkgNode.getParentId())
.eq(NcNode::getName,pkgNode.getName()).list();//.ne(NcNode::getId,pkgNode.getId())
+
+ */
}
+ /**
+ * 璁$畻鍘嗗彶搴忓彿锛屾牴鎹浂缁勪欢鍙凤紝宸ュ簭鍙凤紝宸ュ簭鐗堟锛屾満搴婄粍鏌ヨ锛屾煡璇㈤亾鍒欎娇鐢ㄨ鍘嗗彶缂栧彿锛屾煡璇笉鍒颁娇鐢ㄦ柊鐢熸垚鐨�
+ */
+ public long calculateHistorySerial(NcNode pkgNode) {
+ NcNode node = this.lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE).eq(NcNode::getDrawingNo,pkgNode.getDrawingNo())
+ .eq(NcNode::getProcessNo,pkgNode.getProcessNo()).eq(NcNode::getProcessEdition,pkgNode.getProcessEdition())
+ .eq(NcNode::getMachineGroupCode,pkgNode.getMachineGroupCode()).last("limit 1").one();
+
+ if(node != null && node.getHisSerial()!=null){
+ return node.getHisSerial();
+ }else{
+ //浠ュ線娌℃湁锛岀敓鎴愪竴涓柊鐨�
+ return System.currentTimeMillis();//浣跨敤褰撳墠姣鏁�
+ }
+ }
+
+ public int calculateVersionNumber(NcNode pkgNode) {
+ NcNode node = this.lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE).eq(NcNode::getDrawingNo,pkgNode.getDrawingNo())
+ .eq(NcNode::getProcessNo,pkgNode.getProcessNo()).eq(NcNode::getProcessEdition,pkgNode.getProcessEdition())
+ .eq(NcNode::getMachineGroupCode,pkgNode.getMachineGroupCode()).last("limit 1").one();
+
+ if(node != null && node.getVersionNumber()!=null){
+ return node.getVersionNumber()+1;
+ }else{
+ //浠ュ線娌℃湁锛岀敓鎴愪竴涓柊鐨�
+ return 1;
+ }
+ }
/**
* 鐢熸垚绋嬪簭鍖呭悕/绋嬪簭鍚嶇О
* @param drawingNo 闆剁粍浠跺彿
* @param processNo 宸ュ簭鐗堟
* @return 绋嬪簭鍖呭悕/绋嬪簭鍚嶇О
*/
- public static String genProgramName(String drawingNo,String processNo){
- return drawingNo+"-"+processNo;
+ public static String genProgramName(String drawingNo,String processNo,String processEdition){
+ return drawingNo+"-"+processNo+"-"+processEdition;
}
/**
@@ -254,10 +290,10 @@
* @param programPkgName
* @return
*/
- public NcNode getLastEditionCuredProgramPackage(String programPkgName,String processEdition) {
+ public NcNode getLastEditionCuredProgramPackage(String programPkgName) {
List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
.eq(NcNode::getName, programPkgName).likeRight(NcNode::getParentIds,"0,2,").eq(NcNode::getIsCured,1)
- .eq(NcNode::getProcessEdition, processEdition)
+ //.eq(NcNode::getProcessEdition, processEdition)
.eq(NcNode::getIsLastEdition,1).list();
if(nodes.isEmpty()){
@@ -293,16 +329,17 @@
/**
* 鑾峰彇鏈�鏂扮殑鍥哄寲绋嬪簭锛屼笉鐢ㄥ伐搴忕増娆″尮閰�
- * @param programPkgName
+ * @param drawingNo
+ * @param processNo
* @param machineCode
* @return
*/
- public NcNode getLastCuredProgramPackageWithoutProcessEdition(String programPkgName,String machineCode) {
+ public NcNode getLastCuredProgramWithoutProcessEdition(String drawingNo, String processNo, String machineCode) {
Machine machine = machineService.getByCode(machineCode);
List<Machine> sameGroupMachines = machineService.lambdaQuery().eq(Machine::getMachineGroupCode,machine.getMachineGroupCode()).list();
List<String> machineCodesInGroup = sameGroupMachines.stream().map(Machine::getCode).toList();
List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
- .eq(NcNode::getName, programPkgName)
+ .eq(NcNode::getDrawingNo, drawingNo).eq(NcNode::getProcessNo, processNo)
.likeRight(NcNode::getParentIds,"0,2,").eq(NcNode::getIsCured,1)
.in(!machineCodesInGroup.isEmpty(),NcNode::getMachineCode,machineCodesInGroup)
.eq(NcNode::getIsLastEdition,1).orderByDesc(NcNode::getCreateTime).list();
@@ -319,10 +356,10 @@
* @param programPkgName 绋嬪簭鍖呭悕
* @return 鍋忕鐨勭▼搴忚妭鐐�
*/
- public NcNode getLastEditionDeviationProgramPackage(String programPkgName,String processEdition) {
+ public NcNode getLastEditionDeviationProgramPackage(String programPkgName) {//,String processEdition
List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
.eq(NcNode::getName, programPkgName)
- .eq(NcNode::getProcessEdition, processEdition)
+ //.eq(NcNode::getProcessEdition, processEdition)
.likeRight(NcNode::getParentIds,"0,3,")
.eq(NcNode::getIsLastEdition,1).list();
@@ -383,6 +420,12 @@
this.updateById(node);
}
@Transactional
+ public void lock(Long id,String remark) {
+ NcNode node = this.getById(id);
+ node.lock(remark);
+ this.updateById(node);
+ }
+ @Transactional
public void unlock(Long id) {
NcNode node = this.getById(id);
node.unlock();
@@ -394,6 +437,7 @@
* @param programPkgNode 鍋忕鍗曠殑绋嬪簭鍖呭悕鑺傜偣
* @return 搴忓彿
*/
+ /*
public long getDeviationSerialForNode(NcNode programPkgNode) {
return lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE)
.eq(NcNode::getName,programPkgNode.getName())
@@ -406,6 +450,7 @@
.le(NcNode::getCreateTime,programPkgNode.getCreateTime()) //鏃堕棿灏忎簬绛変簬褰撳墠鑺傜偣
.count();
}
+ */
/**
* 鏍规嵁涓婄骇鑺傜偣id锛岀Щ鍔ㄤ笅闈㈢殑鍔犲伐鏈哄簥鑺傜偣
@@ -414,4 +459,11 @@
public void deleteMachineNodeByParentId(Long parentId) {
baseMapper.deleteMachineNodeByParentId(parentId);
}
+
+ /**
+ * 鍒犻櫎鎵�鍋堕潪鏈�鏂扮増鏈殑鏁版嵁锛坔odeHIs閲岄潰宸茬粡淇濆瓨杩囷級
+ */
+ public void deleteOldEditionNodeData() {
+ baseMapper.deleteOldEditionNodeData();
+ }
}
--
Gitblit v1.9.3