From 3f45e8fdfa31d7b764d60a7c0cb5dd11944ed418 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期一, 21 九月 2026 23:38:59 +0800
Subject: [PATCH] bug:统计数据修正

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
index 098a65a..64a2b86 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -175,6 +175,11 @@
         }
         roleLambdaQueryWrapper.eq(Role::getObjType,UserExt.getUser().getObjectType());
         List<Role> list = roleService.list(roleLambdaQueryWrapper);
+        // 员工可能是由平台账号创建、后续归属到门店的,原角色不一定属于当前登录人的角色范围。
+        // 编辑时仍需保留该角色作为可选项,避免下拉框无法回显。
+        if (role != null && list.stream().noneMatch(item -> Objects.equals(item.getId(), role.getId()))) {
+            list.add(role);
+        }
         model.addAttribute("list",list);
         model.addAttribute("language",UserExt.getLanguage());
         // 部门列表
@@ -410,11 +415,6 @@
         this.userService.save(objectUser);
         if (!assignedStores.isEmpty()) {
             replaceStoreRelations(objectUser.getId(), assignedStores);
-            // 各所选门店同步负责人账号;旧系统仍可通过 storeStaffId 查询主负责人。
-            for (TStore store : assignedStores) {
-                store.setStoreStaffId(objectUser.getId());
-                storeService.updateById(store);
-            }
         }
         return SUCCESS_TIP;
     }
@@ -461,12 +461,16 @@
                 oldUser.setObjectType(3);
                 oldUser.setObjectId(assignedStores.get(0).getId());
                 oldUser.setRoleid("3");
-                for (TStore store : assignedStores) {
-                    store.setStoreStaffId(oldUser.getId());
-                    storeService.updateById(store);
-                }
+            } else if (Integer.valueOf(3).equals(oldUser.getObjectType())) {
+                // 清除旧字段关联,避免已移除的首个门店仍被当作该员工所属门店。
+                oldUser.setObjectId(null);
             }
         }
+        // 门店关联会维护员工归属信息,但不能覆盖编辑页明确选择的角色。
+        // 必须在关联处理后写入,否则有门店的员工会被上面的兼容逻辑强制改回角色 3。
+        if (!StringUtils.isEmpty(user.getRoleid())) {
+            oldUser.setRoleid(user.getRoleid());
+        }
         this.userService.updateById(oldUser);
         return SUCCESS_TIP;
     }

--
Gitblit v1.7.1