From 416558785276159b8730b2826e71995fc16b59a7 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 29 十月 2026 11:47:44 +0800
Subject: [PATCH] refactor(safety): 人员与车间字段全面改为主数据关联
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyOrgService.java | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyOrgService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyOrgService.java
index 9f0d696..c9594a8 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyOrgService.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyOrgService.java
@@ -29,12 +29,15 @@
@Resource
private SafetyOrgMapper safetyOrgMapper;
+ @Resource
+ private SafetyRefResolver refResolver;
public Long createOrg(SafetyOrgSaveReqVO reqVO) {
reqVO.setId(null);
validateParent(reqVO.getParentId(), null);
SafetyOrgDO org = BeanUtils.toBean(reqVO, SafetyOrgDO.class);
org.setParentId(reqVO.getParentId() == null ? 0L : reqVO.getParentId());
+ applyLeader(org, reqVO.getLeaderId());
safetyOrgMapper.insert(org);
return org.getId();
}
@@ -44,7 +47,22 @@
validateParent(reqVO.getParentId(), reqVO.getId());
SafetyOrgDO org = BeanUtils.toBean(reqVO, SafetyOrgDO.class);
org.setParentId(reqVO.getParentId() == null ? 0L : reqVO.getParentId());
+ applyLeader(org, reqVO.getLeaderId());
safetyOrgMapper.updateById(org);
+ }
+
+ /**
+ * 璐熻矗浜猴細浠庡憳宸ユ。妗堝甫鍑哄鍚嶄笌鐢佃瘽骞惰惤蹇収
+ */
+ private void applyLeader(SafetyOrgDO org, Long leaderId) {
+ org.setLeaderId(leaderId);
+ if (leaderId == null) {
+ org.setLeaderName("");
+ return;
+ }
+ var employee = refResolver.requireEmployee(leaderId, SAFETY_EMPLOYEE_REQUIRED);
+ org.setLeaderName(employee.getName());
+ org.setLeaderPhone(employee.getPhone());
}
public void deleteOrg(Long id) {
@@ -60,11 +78,27 @@
}
/**
+ * 鍙栬礋璐d汉鏈�鏂版。妗堬紙渚涘崟鏉℃煡璇㈠洖濉敤锛�
+ */
+ public cn.iocoder.yudao.module.hrm.api.employee.dto.HrmEmployeeSimpleDTO getLeader(Long leaderId) {
+ return refResolver.findEmployee(leaderId);
+ }
+
+ /**
* 鏌ヨ缁勭粐鏍�
*/
public List<SafetyOrgRespVO> getOrgTree() {
List<SafetyOrgDO> all = safetyOrgMapper.selectListOrdered();
List<SafetyOrgRespVO> nodes = BeanUtils.toBean(all, SafetyOrgRespVO.class);
+ // 璐熻矗浜虹敤鍛樺伐妗f鏈�鏂板鍚嶈鐩栧揩鐓э紝鍛樺伐鏀瑰悕/璋冨矖鍚庢爲涔熷悓姝�
+ var employeeMap = refResolver.employeeMap(
+ all.stream().map(SafetyOrgDO::getLeaderId).toList());
+ nodes.forEach(node -> {
+ var employee = employeeMap.get(node.getLeaderId());
+ if (employee != null) {
+ node.setLeaderName(employee.getName());
+ }
+ });
Map<Long, List<SafetyOrgRespVO>> grouped = nodes.stream()
.collect(Collectors.groupingBy(SafetyOrgRespVO::getParentId, Collectors.toList()));
nodes.forEach(node -> node.setChildren(grouped.getOrDefault(node.getId(), new ArrayList<>())));
--
Gitblit v1.9.3