From 95b1f7b2b35872444acf8e85cc236682d0c4e47e Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 04 八月 2025 11:08:06 +0800
Subject: [PATCH] 分工表加入重复图号的校验
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 101 insertions(+), 11 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 4bf0921..f1bbde6 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
@@ -10,13 +10,14 @@
import org.springblade.mdm.basesetting.machine.vo.MachineVO;
import org.springblade.mdm.program.entity.NcNode;
import org.springblade.mdm.program.mapper.NcNodeMapper;
-import org.springblade.mdm.program.vo.NcNodeProgramQueryVO;
-import org.springblade.mdm.program.vo.NcNodeProgramVO;
-import org.springblade.mdm.program.vo.NcNodeVO;
+import org.springblade.mdm.program.vo.*;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* 绋嬪簭鑺傜偣
@@ -82,14 +83,6 @@
return baseMapper.lazyList(parentId);
}
- /**
- * 绋嬪簭鑺傜偣
- * @param query
- * @return
- */
- public IPage<NcNodeProgramVO> programPageQuery(NcNodeProgramQueryVO query) {
- return this.getBaseMapper().programPageQuery(Condition.getPage(query),query);
- }
/**
* 鏌ヨ鐜版湁鍥哄寲鐨勭▼搴忥紝鏆傚畾鏉′欢锛氶浂缁勪欢鍙风浉鍚岋紝涓旀槸鍚屼竴鏈哄簥缁�
@@ -102,4 +95,101 @@
}
+ /**
+ * 棣栭〉鏍戞煡璇�
+ * @param queryVO
+ * @return
+ */
+ 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;
+ }
+
+ List<NcNodeVO> allVos = new ArrayList<NcNodeVO>();//宸茬粡鍔犲叆杩囩殑鑺傜偣锛岀敤浜庡幓閲�
+ List<NcNodeVO> rootVos = new ArrayList<NcNodeVO>();
+
+ //List<NcNode> rootNodes = new ArrayList<>();
+
+ for(NcNodeVO vo : oriList){
+ allVos.add(vo);
+ //涓婄骇鍚勭骇鐨勮妭鐐�
+ List<NcNodeVO> parents = this.getBaseMapper().searchListInIds(Func.toLongList(vo.getParentIds()));
+
+ for(NcNodeVO pvo : parents){
+ if(pvo.getParentId() == 0L){
+ rootVos.add(pvo);
+ }
+ allVos.add(pvo);
+ }
+ }
+ for(NcNodeVO root : rootVos){
+ addNodeChildren(root, allVos);
+
+ }
+ return rootVos;
+ }
+
+ void addNodeChildren(NcNodeVO node, List<NcNodeVO> allNodes) {
+ for(NcNodeVO vo : allNodes){
+ if(Objects.equals(vo.getParentId(), node.getId())){
+ node.addChildren(vo);
+ }
+ }
+
+ if(node.getChildren()!=null && !node.getChildren().isEmpty()){
+ for(NcNodeVO child : node.getChildren()){
+ addNodeChildren(child, allNodes);
+ }
+ }
+ }
+
+ NcNodeVO toNodeVO(NcNode node){
+ NcNodeVO vo = new NcNodeVO();
+
+ BeanUtils.copyProperties(node, vo);
+
+ return vo;
+ }
+
+ /**
+ * 鑾峰彇绋嬪簭鍖呭悕鐨勬暟鎹�
+ * @param programName 绋嬪簭鍚嶇О锛堢▼搴忓寘鍚嶏級
+ * @return 绋嬪簭鎶ュ寘鍚嶇殑鑺傜偣
+ */
+ public NcNode getProgramPackageByName(String programName) {
+ List<NcNode> pkgs = this.lambdaQuery().eq(NcNode::getName, programName).eq(NcNode::getNodeType,NcNode.TYPE_PROGRAM_PACKAGE).list();
+ if(pkgs.isEmpty()){
+ return null;
+ }else{
+ return pkgs.get(0);
+ }
+
+ }
+
+ @Transactional(readOnly = true)
+ public List<NcNodeVO> historyByNodeId(Long id) {
+ NcNode node = this.getById(id);
+ return this.baseMapper.historyByParentIdAndName(node.getParentId(),node.getName());
+ }
+
+ /**
+ * 鑾峰彇鈥滅▼搴忓寘鍚嶁�濈殑鏈�鏂扮増鏈�
+ * @param name 鑺傜偣鍚嶇О
+ * @return 鏈�鏂扮増鏈▼搴忔姤鍚嶈妭鐐�
+ */
+ public NcNode getLastEditionProgramPackage(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();
+
+ if(pkgList.isEmpty()){
+ return null;
+ }else{
+ return pkgList.get(0);
+ }
+ }
+
}
--
Gitblit v1.9.3