From 17ce55a3b038ed61d332bb54916de4fa55ba19c6 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 27 十月 2026 09:10:23 +0800
Subject: [PATCH] fix: 修复导出表头缺失、权限码不一致及生产链路断点

---
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/employee/HrmEmployeeServiceImpl.java |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 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 11de820..0e6ffcc 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
@@ -28,6 +28,7 @@
 import cn.iocoder.yudao.module.hrm.dal.mysql.employee.HrmEmployeeMapper;
 import cn.iocoder.yudao.module.hrm.dal.mysql.employee.HrmEmployeeWorkHistoryMapper;
 import cn.iocoder.yudao.module.hrm.dal.redis.HrmNoRedisDAO;
+import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.PostApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
@@ -87,6 +88,13 @@
     @Resource
     private MesCalTeamApi mesCalTeamApi;
     @Resource
+    private ConfigApi configApi;
+
+    /**
+     * 鐢ㄦ埛鍒濆瀵嗙爜鐨勭郴缁熷弬鏁伴厤缃」
+     */
+    private static final String USER_INIT_PASSWORD_KEY = "system.user.init-password";
+    @Resource
     @Lazy // 鑷敞鍏ラ渶寤惰繜鍔犺浇锛屽惁鍒� bean 琚唬鐞嗗寘瑁呭悗娉ㄥ叆鍘熷鐗堟湰瀵艰嚧鍚姩澶辫触
     private HrmEmployeeService self;
 
@@ -108,7 +116,8 @@
         userCreateReqDTO.setDeptId(createReqVO.getDeptId());
         userCreateReqDTO.setPostIds(Collections.singleton(createReqVO.getPostId()));
         userCreateReqDTO.setMobile(createReqVO.getPhone());
-        userCreateReqDTO.setPassword(createReqVO.getPhone());
+        // 鍒濆瀵嗙爜锛氫紭鍏堢敤瀵煎叆/鏂板鏃舵寚瀹氱殑瀵嗙爜锛屽惁鍒欒鍙栫郴缁熷弬鏁帮紱涓よ�呴兘娌℃湁鍒欐姤閿�
+        userCreateReqDTO.setPassword(resolveInitialPassword(createReqVO.getPassword()));
         userCreateReqDTO.setSex(createReqVO.getGender());
         userCreateReqDTO.setEmail(createReqVO.getEmail());
         userCreateReqDTO.setRemark(createReqVO.getRemark());
@@ -186,6 +195,11 @@
         }
         employeeMapper.updateById(updateObj);
         Long employeeId = updateReqVO.getId();
+
+        // 鍚屾绯荤粺鐢ㄦ埛瀵嗙爜锛氫粎褰撴樉寮忓~鍐欎簡瀵嗙爜鏃舵墠鏇存柊锛屾湭濉啓淇濇寔鍘熷瘑鐮佷笉鍙�
+        if (StrUtil.isNotBlank(updateReqVO.getPassword()) && employee.getUserId() != null) {
+            adminUserApi.updateUserPassword(employee.getUserId(), updateReqVO.getPassword());
+        }
 
         // 鍚屾鏁欒偛缁忓巻
         syncEducationList(employeeId, updateReqVO.getEducations());
@@ -413,6 +427,23 @@
         return respVO;
     }
 
+    /**
+     * 瑙f瀽鍛樺伐鍒濆瀵嗙爜锛�
+     * 1. 瀵煎叆/鏂板鏃舵樉寮忔寚瀹氫簡瀵嗙爜锛屼紭鍏堜娇鐢紱
+     * 2. 鏈寚瀹氬垯璇诲彇绯荤粺鍙傛暟 {@code system.user.init-password}锛�
+     * 3. 涓よ�呴兘娌℃湁鏃舵槑纭姤閿欙紝閬垮厤鎮勬倓鐢ㄦ墜鏈哄彿绛夊急鍙d护鍏滃簳銆�
+     */
+    private String resolveInitialPassword(String specifiedPassword) {
+        if (StrUtil.isNotBlank(specifiedPassword)) {
+            return specifiedPassword;
+        }
+        String initPassword = configApi.getConfigValueByKey(USER_INIT_PASSWORD_KEY);
+        if (StrUtil.isBlank(initPassword)) {
+            throw exception(EMPLOYEE_INIT_PASSWORD_NOT_CONFIGURED);
+        }
+        return initPassword;
+    }
+
     private HrmEmployeeSaveReqVO buildImportSaveReqVO(HrmEmployeeImportExcelVO importEmployee,
                                                       Long deptId, Long postId, Set<Long> roleIds) {
         if (StrUtil.isBlank(importEmployee.getName())) {
@@ -428,6 +459,7 @@
         reqVO.setName(importEmployee.getName());
         reqVO.setGender(importEmployee.getGender() != null ? importEmployee.getGender() : 1); // 榛樿鐢�
         reqVO.setPhone(importEmployee.getPhone());
+        reqVO.setPassword(importEmployee.getPassword());
         reqVO.setDeptId(deptId);
         reqVO.setPostId(postId);
         reqVO.setRoleIds(CollUtil.isEmpty(roleIds) ? null : new ArrayList<>(roleIds));

--
Gitblit v1.9.3