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/SafetyMaterialService.java |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyMaterialService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyMaterialService.java
index 6412acd..7b9f0b5 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyMaterialService.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/safety/SafetyMaterialService.java
@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.mes.service.safety;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -36,6 +37,8 @@
     @Resource
     private SafetyMaterialMapper materialMapper;
     @Resource
+    private SafetyRefResolver refResolver;
+    @Resource
     private SafetyMaterialStockMapper stockMapper;
 
     // ==================== 鐗╄祫鍙拌处 ====================
@@ -50,6 +53,7 @@
         material.setCode(code);
         material.setName(StrUtil.trim(reqVO.getName()));
         material.setUnit(StrUtil.blankToDefault(reqVO.getUnit(), "涓�"));
+        applyManager(material, reqVO.getManagerId());
         material.setStockQty(reqVO.getStockQty() == null ? BigDecimal.ZERO : reqVO.getStockQty());
         material.setSafeStock(reqVO.getSafeStock() == null ? BigDecimal.ZERO : reqVO.getSafeStock());
         materialMapper.insert(material);
@@ -66,6 +70,7 @@
         SafetyMaterialDO material = BeanUtils.toBean(reqVO, SafetyMaterialDO.class);
         material.setCode(code);
         material.setName(StrUtil.trim(reqVO.getName()));
+        applyManager(material, reqVO.getManagerId());
         // 搴撳瓨鏁伴噺鍙兘閫氳繃鍑哄叆搴撳崟鍙樺姩锛岀姝㈢洿鎺ョ紪杈�
         material.setStockQty(null);
         materialMapper.updateById(material);
@@ -84,6 +89,29 @@
         return materialMapper.selectPage(reqVO);
     }
 
+    /**
+     * 淇濈浜猴細浠庡憳宸ユ。妗堝甫鍑哄鍚嶈惤蹇収
+     */
+    private void applyManager(SafetyMaterialDO material, Long managerId) {
+        material.setManagerId(managerId);
+        material.setManager(managerId == null ? ""
+                : refResolver.requireEmployee(managerId, SAFETY_EMPLOYEE_REQUIRED).getName());
+    }
+
+    /**
+     * 鎵归噺鍥炲~淇濈浜烘渶鏂板鍚�
+     */
+    public void fillManagers(List<SafetyMaterialDO> materials) {
+        if (CollUtil.isEmpty(materials)) {
+            return;
+        }
+        var employeeMap = refResolver.employeeMap(materials.stream().map(SafetyMaterialDO::getManagerId).toList());
+        materials.forEach(material -> {
+            var employee = employeeMap.get(material.getManagerId());
+            if (employee != null) material.setManager(employee.getName());
+        });
+    }
+
     public static void fillMaterialDisplay(SafetyMaterialDO material, SafetyMaterialRespVO respVO) {
         respVO.setCategoryName(SafetyMaterialCategoryEnum.getNameByCategory(material.getCategory()));
         BigDecimal stock = material.getStockQty() == null ? BigDecimal.ZERO : material.getStockQty();

--
Gitblit v1.9.3