From d6ffbf2958eefb57fb36acc12709fe42f7bce556 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 09 十月 2026 14:51:13 +0800
Subject: [PATCH] fix: HRM 删除员工级联删除关联系统用户;MES 首页统计 summary 兼容设备状态为空

---
 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java           |    5 +++++
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java   |    6 +++++-
 yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java               |    7 +++++++
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/home/MesHomeStatisticsServiceImpl.java |    7 ++++++-
 4 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
index eefe7a7..1bd7f66 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java
@@ -252,13 +252,17 @@
     @Transactional(rollbackFor = Exception.class)
     public void deleteEmployee(Long id) {
         // 鏍¢獙瀛樺湪
-        validateEmployeeExists(id);
+        HrmEmployeeDO employee = validateEmployeeExists(id);
         // 绾ц仈鍒犻櫎瀛愯〃
         educationMapper.deleteByEmployeeId(id);
         workHistoryMapper.deleteByEmployeeId(id);
         emergencyContactMapper.deleteByEmployeeId(id);
         // 鍒犻櫎鍛樺伐
         employeeMapper.deleteById(id);
+        // 鍚屾鍒犻櫎鍏宠仈鐨勭郴缁熺敤鎴凤紝閬垮厤鎵嬫満鍙凤紙鐧诲綍璐﹀彿锛夎娈嬬暀鐨勫鍎胯处鍙峰崰鐢�
+        if (employee.getUserId() != null) {
+            adminUserApi.deleteUser(employee.getUserId());
+        }
     }
 
     private HrmEmployeeDO validateEmployeeExists(Long id) {
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/home/MesHomeStatisticsServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/home/MesHomeStatisticsServiceImpl.java
index 5782ee8..cc333bf 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/home/MesHomeStatisticsServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/home/MesHomeStatisticsServiceImpl.java
@@ -70,9 +70,14 @@
         long stop = 0L;
         long maintenance = 0L;
         for (Map<String, Object> stat : machineryStats) {
-            int status = ((Number) stat.get("status")).intValue();
             long count = ((Number) stat.get("count")).longValue();
             total += count;
+            // 鐘舵�佷负绌虹殑璁惧锛堝巻鍙叉暟鎹級璁″叆鎬绘暟锛屼絾涓嶅綊绫伙紝閬垮厤瑙e紩鐢� null 瀵艰嚧 NPE
+            Number statusValue = (Number) stat.get("status");
+            if (statusValue == null) {
+                continue;
+            }
+            int status = statusValue.intValue();
             if (status == MesDvMachineryStatusEnum.PRODUCING.getStatus()) {
                 producing = count;
             } else if (status == MesDvMachineryStatusEnum.STOP.getStatus()) {
diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java
index 8019b02..32cee6e 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java
@@ -33,6 +33,13 @@
     void updateUser(AdminUserUpdateReqDTO updateReqDTO);
 
     /**
+     * 鍒犻櫎鐢ㄦ埛锛堜緵鍏朵粬妯″潡鍦ㄤ笅娓歌褰曞垹闄ゆ椂锛屽悓姝ュ垹闄ゅ叾鍏宠仈鐨勭郴缁熺敤鎴凤紝閬垮厤娈嬬暀瀛ゅ効璐﹀彿锛�
+     *
+     * @param id 鐢ㄦ埛缂栧彿
+     */
+    void deleteUser(Long id);
+
+    /**
      * 閫氳繃鐢ㄦ埛 ID 鏌ヨ鐢ㄦ埛
      *
      * @param id 鐢ㄦ埛ID
diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java
index d0a0c68..732ef93 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java
@@ -67,6 +67,11 @@
     }
 
     @Override
+    public void deleteUser(Long id) {
+        userService.deleteUser(id);
+    }
+
+    @Override
     @DataPermission(enable = false) // 蹇界暐鏁版嵁鏉冮檺锛岄伩鍏嶅洜涓鸿繃婊わ紝瀵艰嚧鏃犳硶鏌ヨ鐢ㄦ埛銆傜被浼硷細https://github.com/YunaiV/ruoyi-vue-pro/issues/1051
     public AdminUserRespDTO getUser(Long id) {
         AdminUserDO user = userService.getUser(id);

--
Gitblit v1.9.3