From 9810791a41d381a10451f3e9770cfcfedf98e886 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 22 八月 2025 00:39:34 +0800
Subject: [PATCH] 增加首页搜索接口

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java               |    7 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.java                    |   12 ++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java             |    2 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml                     |   30 +++++++++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java             |    9 ++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java           |    7 +++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java            |    8 ++--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java                  |   34 ++++++++++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java |   11 ++++-
 9 files changed, 111 insertions(+), 9 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 a2eb155..0f9d47c 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
@@ -98,6 +98,8 @@
 		machine.setProgTempDir(vo.getProgTempDir());
 		machine.setStatus(vo.getStatus());
 		machine.setRemark(vo.getRemark());
+		machine.setSendDirExpiryHours(vo.getSendDirExpiryHours());
+		machine.setReceiveDirExpiryHours(vo.getReceiveDirExpiryHours());
 
 		return this.updateById(machine);
 	}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java
index a06fbd5..560accc 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/entity/Machine.java
@@ -53,10 +53,17 @@
 	 */
 	private String progSendDir;
 	/**
+	 * send鏂囦欢澶逛繚鎸佹椂闂� 灏忔椂
+	 */
+	private Integer sendDirExpiryHours;
+	/**
 	 * 绋嬪簭鍥炰紶鐩綍',
 	 */
 	private String progReceiveDir;
-
+	/**
+	 *  receive鏂囦欢澶逛繚鎸佹椂闂� 灏忔椂
+	 */
+	private Integer receiveDirExpiryHours;
 	/**
 	 * 绋嬪簭闀挎湡瀛樺偍鐩綍
 	 */
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
index d7e61ae..c1ee382 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
@@ -46,4 +46,11 @@
 	private String progTempDir;
 	@Schema(description = "澶囨敞")
 	private String remark;
+
+	@Schema(description = "send鏂囦欢澶逛繚鎸佹椂闂� 灏忔椂")
+	private Integer sendDirExpiryHours;
+
+
+	@Schema(description = "receive鏂囦欢澶逛繚鎸佹椂闂� 灏忔椂")
+	private Integer receiveDirExpiryHours;
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java
index 4e659b0..3ca8785 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java
@@ -54,4 +54,11 @@
 	private String progTempDir;
 	@Schema(description = "澶囨敞")
 	private String remark;
+
+	@Schema(description = "send鏂囦欢澶逛繚鎸佹椂闂� 灏忔椂")
+	private Integer sendDirExpiryHours;
+
+
+	@Schema(description = "receive鏂囦欢澶逛繚鎸佹椂闂� 灏忔椂")
+	private Integer receiveDirExpiryHours;
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
index 1302a04..00a9793 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/dispatch/NormalFinishDataHandler.java
@@ -49,10 +49,15 @@
 
 		//TODO 鍋忕鍗曪紝鍜屽凡缁忓浐鍖栫殑绋嬪簭锛屾病鏈夊鐞�,:宸茬粡澶勭悊娌℃湁楠岃瘉
 		NcNode packageNode;
-		if(FlowContants.Y.equals(props.getHasCuredProgram()) && FlowContants.Y.equals(props.getCureProgramUseable())){
+		if(FlowContants.Y.equals(props.getHasCuredProgram())){
 			//鏈夊浐鍖栵紝涓旂▼搴忓彲鐢紝浠庡浐鍖栨爲鏌ヨ鑺傜偣.浣跨敤娴佺▼涓繚瀛樼殑鑺傜偣
 			//packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName,props.getProcessEdition());
-			packageNode = ncNodeService.getById(props.getCuredNodeId());
+			if(FlowContants.Y.equals(props.getCureProgramUseable())) {
+				packageNode = ncNodeService.getById(props.getCuredNodeId());
+			}else{
+				//涓嶅彲鐢紝鍘诲浐鍖栨壘鏈�鏂拌妭鐐�
+				packageNode = ncNodeService.getLastEditionCuredProgramPackage(programPkgName,props.getProcessEdition());
+			}
 		}else if(Func.isNotBlank(props.getDeviation())){
 			//鏈夊亸绂诲崟
 			packageNode = ncNodeService.getLastEditionDeviationProgramPackage(programPkgName,props.getProcessEdition());
@@ -78,7 +83,7 @@
 			//鏈夊浐鍖栵紝绋嬪簭涓嶅彲鐢�
 			if(FlowContants.N.equals(progProperties.getCureProgramUseable())) {
 				//鍥哄寲绋嬪簭涓嶅彲鐢紝闇�瑕侀噸鏂板缓绔嬬▼搴忓寘鍚嶅拰鏂囦欢鑺傜偣;鍙敤鎯呭喌鍦ㄦ祦绋嬪鎵逛腑宸茬粡鍗囩骇杩囪妭鐐逛簡
-				NcNode curedProgramPackage = ncNodeService.getById(Func.toLong(progProperties.getCuredNodeId()));
+				NcNode curedProgramPackage = ncNodeService.getById(progProperties.getCuredNodeId());
 
 				NcNode newCuredPkgNode = new NcNode();
 				BeanUtils.copyProperties(curedProgramPackage, newCuredPkgNode);
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
index e5ca25d..2026872 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
@@ -100,13 +100,13 @@
 
 		return R.data(list);
 	}
-	@GetMapping("/search")
-	@Operation(summary = "棣栭〉鎼滅储", description = "鎼滅储鎸囧畾闆剁粍浠跺彿")
-		public R<List<Long>> search(NcNodeQueryVO queryVO) {
+	@GetMapping("/search-list2")
+	@Operation(summary = "娑夊瘑缃戦椤垫悳绱�", description = "鎼滅储鎸囧畾闆剁粍浠跺彿")
+		public R<List<NcNodeVO>> search(NcNodeQueryVO queryVO) {
 		if(Func.isEmpty(queryVO.getDrawingNo())){
 			return R.fail("璇疯緭鍏ラ浂缁勪欢鍙�");
 		}
-		List<Long> list = ncNodeService.searchDrawing(queryVO);
+		List<NcNodeVO> list = ncNodeService.searchList2(queryVO);
 
 		return R.data(list);
 	}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.java
index 14a7aab..7c8e5fc 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.java
@@ -21,8 +21,20 @@
 	 */
 	NcNode getLastProgramNode(String name);
 
+	/**
+	 * 棣栭〉鎼滅储 鑰佺殑
+	 * @param queryVO
+	 * @return
+	 */
     List<NcNodeVO> searchList(NcNodeOldQueryVO queryVO);
 
+	/**
+	 * 棣栭〉鎼滅储
+	 * @param queryVO
+	 * @return
+	 */
+	List<NcNodeVO> searchList2(NcNodeQueryVO queryVO);
+
 	List<NcNodeVO> searchListInIds(List<Long> ids);
 
 	/**
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
index 9789a02..00c2a29 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcNodeMapper.xml
@@ -105,6 +105,36 @@
         where n.is_deleted=0 and n.parent_id in (select id from mdm_nc_node where parent_id=#{parentNode.parentId}) and n.name=#{name}
 
     </select>
+    <select id="searchList2" resultType="org.springblade.mdm.program.vo.NcNodeVO">
+        select <include refid="all_columns_n"/>,dt.dict_value as node_type_name,u.name create_user_name,(
+        SELECT
+        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+        FROM
+        mdm_nc_node
+        WHERE
+        parent_id = n.id and is_deleted = 0
+        ) AS "has_children" from mdm_nc_node n left join blade_user u on n.create_user=u.id
+        left join blade_dict_biz dt on n.node_type=dt.dict_key and dt.code='nc_node_type' and dt.is_deleted=0
+        <where>
+            n.is_deleted=0 and n.node_type='20' and n.name=#{drawingNo}
+            <if test="programStatus != null and programStatus != ''">
+               and
+                (
+                <if test='programStatus.contains("1")'>
+                    n.parent_ids LIKE '0,1,%'
+                </if>
+                <if test='programStatus.contains("2")'>
+                    or n.parent_ids LIKE '0,2,%'
+                </if>
+                <if test='programStatus.contains("2")'>
+                    or n.parent_ids LIKE '0,3,%'
+                </if>
+                )
+            </if>
+        </where>
+
+
+    </select>
 
 
 </mapper>
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 ecca16d..2994db2 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
@@ -102,6 +102,7 @@
 	 * @param queryVO
 	 * @return
 	 */
+	/*
 	public List<Long> searchDrawing(NcNodeQueryVO queryVO) {
 		List<NcNode> nodes = lambdaQuery().eq(NcNode::getNodeType,NcNode.TYPE_DRAWING_NO)
 			.eq(NcNode::getIsLastEdition,1)
@@ -116,7 +117,7 @@
 			}).list();
 
 		return nodes.stream().map(NcNode::getId).toList();
-	}
+	}*/
 	/**
 	 * 棣栭〉鏍戞煡璇�
 	 * @param queryVO
@@ -152,6 +153,37 @@
 		return rootVos;
 	}
 
+	/**
+	 * 棣栭〉鎼滅储 鏂扮殑
+	 * @param queryVO 鏌ヨ鍙傛暟
+	 * @return
+	 */
+	public List<NcNodeVO> searchList2(NcNodeQueryVO queryVO) {
+		//1.鏍规嵁闆剁粍浠跺彿鍜屽垱寤烘椂闂存煡璇㈠垵濮嬪垪琛�,鏌ヨ鐨勫師濮嬪垪琛紝闇�瑕乭asChild瀛楁锛屾墍浠ヤ娇鐢╩apper.xml
+		List<NcNodeVO> oriList = this.getBaseMapper().searchList2(queryVO);
+
+
+		List<NcNodeVO> allVos = new ArrayList<>();//宸茬粡鍔犲叆杩囩殑鑺傜偣锛岀敤浜庡幓閲�
+		List<NcNodeVO> rootVos = 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())){

--
Gitblit v1.9.3