From 8318e40770d53c87e2d5921d2d11f8de47c61e76 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 10 八月 2025 11:30:50 +0800
Subject: [PATCH] 增加审批界面任务车间的查询和显示

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java                  |    3 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java        |    8 +++-
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java      |    5 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NodeDeptQueryService.java |   75 +++++++++++++++++++++++++++++++++++++
 4 files changed, 88 insertions(+), 3 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
index c0cbb4d..5f73767 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -12,6 +12,7 @@
 import org.springblade.mdm.flow.vo.TaskAssignVO;
 import org.springblade.mdm.program.entity.NcNode;
 import org.springblade.mdm.program.service.NcNodeService;
+import org.springblade.mdm.program.service.NodeDeptQueryService;
 import org.springblade.mdm.utils.EntityUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +35,7 @@
 	private final NcNodeService ncNodeService;
 
 	private final FlowProgramFileService flowProgramFileService;
-
+	private final NodeDeptQueryService nodeDeptQueryService;
 	//public static final String PROCESS_KEY = "dispatch";
 
 	/**
@@ -52,9 +53,12 @@
 		vars.put(FlowContants.TITLE,startVO.getTitle());
 		//鏈哄簥缂栧彿
 		vars.put(FlowContants.MACHINE_CODE,startVO.getMachineCode());
-
+		String workshop = nodeDeptQueryService.getWorkshopNameByMachineCode(startVO.getMachineCode());
+		vars.put("workshop",workshop);
 		//鏈哄簥鍨嬪彿
 		vars.put(FlowContants.MACHINE_MODE,startVO.getMachineMode());
+
+
 		vars.put(FlowContants.PROCESS_NO,startVO.getProcessNo());
 		vars.put(FlowContants.PROCESS_NAME,startVO.getProcessName());
 		vars.put(FlowContants.PROCESS_EDITION,startVO.getProcessEdition());
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java
index 63ee94c..14ce99a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ReplaceFlowService.java
@@ -18,6 +18,7 @@
 import org.springblade.mdm.flow.vo.TaskAssignVO;
 import org.springblade.mdm.program.entity.NcNode;
 import org.springblade.mdm.program.service.NcNodeService;
+import org.springblade.mdm.program.service.NodeDeptQueryService;
 import org.springblade.mdm.program.vo.NcNodeVO;
 import org.springblade.mdm.utils.EntityUtil;
 import org.springframework.beans.BeanUtils;
@@ -39,7 +40,7 @@
 	private final IdentityService identityService;
 	private final FlowProgramFileService flowProgramFileService;
 	private final ReplaceProgramFileService replaceProgramFileService;
-	private final MachineService machineService;
+	private final NodeDeptQueryService nodeDeptQueryService;
 
 	public static final String NODE_ID = "nodeId";
 	/**
@@ -97,6 +98,8 @@
 		BeanUtils.copyProperties(node, vo);
 		vo.setProcessInstanceId(tempInstanceId);
 
+		vo.setWorkshop(nodeDeptQueryService.getWorkshopNameByMachineCode(node.getMachineCode()));
+
 		return vo;
 	}
 
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NodeDeptQueryService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NodeDeptQueryService.java
new file mode 100644
index 0000000..a16d410
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NodeDeptQueryService.java
@@ -0,0 +1,75 @@
+
+package org.springblade.mdm.program.service;
+
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.mp.base.BizServiceImpl;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.machine.MachineService;
+import org.springblade.mdm.basesetting.machine.entity.Machine;
+import org.springblade.mdm.program.entity.NcNode;
+import org.springblade.mdm.program.mapper.NcNodeMapper;
+import org.springblade.mdm.program.vo.NcNodeQueryVO;
+import org.springblade.mdm.program.vo.NcNodeVO;
+import org.springblade.system.feign.ISysClient;
+import org.springblade.system.pojo.entity.Dept;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * 绋嬪簭鑺傜偣鏈烘瀯鏌ヨ鏈嶅姟
+ *
+ * @author yangys
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class NodeDeptQueryService{
+	private final MachineService machineService;
+	private final ISysClient sysClient;
+
+
+	/**
+	 *杞﹂棿绫诲瀷瀛楀吀key
+	 */
+	private static final String WORKSHOP_DICT_KEY = "workShopDictKey";
+	/**
+	 * 杞﹂棿绫诲瀷榛樿鍊�
+	 */
+	private static final int DEF_WORKSHOP_DICT_VALUE = 4;
+
+	@Transactional(readOnly = true)
+	public String getWorkshopNameByMachineCode(String machineCode){
+		String workshopName = "";
+
+		try {
+			Machine machine = machineService.getByCode(machineCode);
+			if (machine != null) {
+				int workShopDictValue = DEF_WORKSHOP_DICT_VALUE;
+				R<String> paramR = sysClient.getParamValue(WORKSHOP_DICT_KEY);
+				if (paramR.isSuccess()) {
+					workShopDictValue = Func.toInt(paramR.getData());
+				}
+				R<Dept> deptObj = sysClient.getDept(machine.getOwnerDept());
+				while (deptObj.isSuccess() && deptObj.getData().getDeptCategory() != workShopDictValue) {
+					deptObj = sysClient.getDept(deptObj.getData().getParentId());
+				}
+
+				if (deptObj.isSuccess()) {
+					workshopName = deptObj.getData().getDeptName();
+				}
+			}
+		}catch (Exception e){
+			log.error("鑾峰彇杞﹂棿鍚嶇О閿欒",e);
+		}
+		return workshopName;
+	}
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java
index 40ad37d..f3e8d0b 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeVO.java
@@ -56,6 +56,9 @@
 	private List<NcNodeVO> children;
 	@Schema(description = "娴佺▼瀹炰緥id锛岀▼搴忓寘鑺傜偣鏈夋灞炴��")
 	private String processInstanceId;
+	@Schema(description = "浠诲姟杞﹂棿")
+	private String workshop;
+
 	public void addChildren(NcNodeVO node){
 		if(children == null){
 			children = new ArrayList<NcNodeVO>();

--
Gitblit v1.9.3