소스 검색

1、转正接口员工化改造

dongpo 7 달 전
부모
커밋
a3993bfeb1

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/conversion/vo/OaConversionPageReqVO.java

@@ -25,8 +25,8 @@ public class OaConversionPageReqVO extends PageParam {
     @Schema(description = "部门id", example = "14341")
     private Long deptId;
 
-    @Schema(description = "职位")
-    private String position;
+    @Schema(description = "职位id")
+    private Long postId;
 
     @Schema(description = "转正日期")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)

+ 6 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/conversion/vo/OaConversionRespVO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.conversion.vo;
 
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -48,6 +49,10 @@ public class OaConversionRespVO {
     @ExcelProperty("部门名称")
     private String deptName;
 
+    @Schema(description = "职位id", example = "1")
+    @ExcelProperty("职位id")
+    private Long postId;
+
     @Schema(description = "职位")
     @ExcelProperty("职位")
     private String position;
@@ -119,7 +124,7 @@ public class OaConversionRespVO {
     private List<BpmTaskRespVO> auditRecordList;
 
     @Schema(description = "审批人员列表")
-    private List<AdminUserRespDTO> auditUserList;
+    private List<EmployeeRespDTO> auditUserList;
 
     @Schema(description = "当前用户待处理的任务id")
     private String taskId;

+ 2 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/entry/vo/OaEntryRespVO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa.entry.vo;
 
 import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -136,7 +137,7 @@ public class OaEntryRespVO {
     private List<BpmTaskRespVO> auditRecordList;
 
     @Schema(description = "审批人员列表")
-    private List<AdminUserRespDTO> auditUserList;
+    private List<EmployeeRespDTO> auditUserList;
 
     @Schema(description = "当前用户待处理的任务id")
     private String taskId;

+ 4 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/conversion/OaConversionDO.java

@@ -64,6 +64,10 @@ public class OaConversionDO extends BaseDO {
      * 部门uuid
      */
     private String deptUuid;
+    /**
+     * 职位id
+     */
+    private Long postId;
     /**
      * 职位
      */

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/conversion/OaConversionMapper.java

@@ -19,7 +19,7 @@ public interface OaConversionMapper extends BaseMapperX<OaConversionDO> {
         return selectPage(reqVO, new LambdaQueryWrapperX<OaConversionDO>()
                 .eqIfPresent(OaConversionDO::getEmployeeName, reqVO.getEmployeeName())
                 .eqIfPresent(OaConversionDO::getDeptId, reqVO.getDeptId())
-                .eqIfPresent(OaConversionDO::getPosition, reqVO.getPosition())
+                .eqIfPresent(OaConversionDO::getPostId, reqVO.getPostId())
                 .likeIfPresent(OaConversionDO::getEmployeePhone, reqVO.getEmployeePhone())
                 .betweenIfPresent(OaConversionDO::getConversionDate, reqVO.getConversionDate())
                 .eqIfPresent(OaConversionDO::getApplyEmployeeName, reqVO.getApplyEmployeeName())

+ 98 - 63
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/conversion/OaConversionServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
@@ -13,6 +14,7 @@ import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.conversion.vo.OaConversionPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.conversion.vo.OaConversionRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.conversion.vo.OaConversionSaveReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.oa.universal.vo.OaUniversalRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskReturnReqVO;
@@ -22,6 +24,8 @@ import cn.iocoder.yudao.module.bpm.enums.DictDataConstants;
 import cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants;
 import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmConstants;
 import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
+import cn.iocoder.yudao.module.employee.api.EmployeeApi;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
@@ -77,6 +81,9 @@ public class OaConversionServiceImpl implements OaConversionService {
     @Resource
     private AdminUserApi adminUserApi;
 
+    @Resource
+    private EmployeeApi employeeApi;
+
     @Resource
     private DeptApi deptApi;
 
@@ -87,8 +94,13 @@ public class OaConversionServiceImpl implements OaConversionService {
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
         AdminUserRespDTO loginUser = adminUserApi.getUser(loginUserId);
         Objects.requireNonNull(loginUser, "登录用户不能为空");
+        // 登录员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
         // 转正人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(stagingReqVO.getEmployeeId());
+        EmployeeRespDTO employee = employeeApi.getEmployeeById(stagingReqVO.getEmployeeId());
+        if (loginEmployee == null || employee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaConversionDO oaConversion = BeanUtils.toBean(stagingReqVO, OaConversionDO.class);
         if (StringUtils.isBlank(oaConversion.getConversionId())) {
@@ -96,18 +108,18 @@ public class OaConversionServiceImpl implements OaConversionService {
             String uuid = IdUtil.fastSimpleUUID();
             oaConversion.setConversionId(uuid);
         }
-        if (employee != null) {
-            oaConversion.setEmployeeId(loginUser.getId());
-            oaConversion.setEmployeeName(loginUser.getNickname());
-            oaConversion.setEmployeePhone(loginUser.getMobile());
-            oaConversion.setDeptId(loginUser.getDeptId());
-            oaConversion.setPosition("员工职位");
-            oaConversion.setUserId(loginUser.getId());
-        }
+        oaConversion.setEmployeeId(employee.getId());
+        oaConversion.setEmployeeName(employee.getName());
+        oaConversion.setEmployeePhone(employee.getPhone());
+        oaConversion.setDeptId(employee.getDeptId());
+        oaConversion.setPostId(employee.getPostId());
+        oaConversion.setPosition(employee.getPosition());
+        oaConversion.setUserId(loginUser.getId());
         oaConversion.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_STAGING);
         oaConversion.setInfoSource("0");
-        oaConversion.setApplyEmployeeId(loginUser.getId());
-        oaConversion.setApplyEmployeeName(loginUser.getNickname());
+        oaConversion.setApplyEmployeeId(loginEmployee.getId());
+        oaConversion.setApplyEmployeeName(loginEmployee.getName());
+        oaConversion.setCreator(String.valueOf(loginEmployee.getId()));
         // 暂存不保存审批人信息
         oaConversion.setStartUserSelectAssignees(null);
         // 保存或更新表单信息
@@ -135,13 +147,14 @@ public class OaConversionServiceImpl implements OaConversionService {
         if (loginUser == null) {
             throw exception(ErrorCodeConstants.OA_LOGIN_USER_NOT_EXISTS);
         }
+        // 登录员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
         // 转正人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(commitReqVO.getEmployeeId());
-        if (employee == null) {
+        EmployeeRespDTO employee = employeeApi.getEmployeeById(commitReqVO.getEmployeeId());
+        if (loginEmployee == null || employee == null) {
             throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
         }
 
-
         OaConversionDO oaConversion = BeanUtils.toBean(commitReqVO, OaConversionDO.class);
         if (StringUtils.isBlank(oaConversion.getConversionId())) {
             // 创建单据uuid
@@ -149,14 +162,16 @@ public class OaConversionServiceImpl implements OaConversionService {
             oaConversion.setConversionId(uuid);
         }
         oaConversion.setEmployeeId(employee.getId());
-        oaConversion.setEmployeeName(employee.getNickname());
-        oaConversion.setEmployeePhone(employee.getMobile());
+        oaConversion.setEmployeeName(employee.getName());
+        oaConversion.setEmployeePhone(employee.getPhone());
         oaConversion.setDeptId(employee.getDeptId());
-        oaConversion.setPosition("员工职位");
+        oaConversion.setPostId(employee.getPostId());
+        oaConversion.setPosition(employee.getPosition());
         oaConversion.setUserId(loginUser.getId());
         oaConversion.setInfoSource("0");
-        oaConversion.setApplyEmployeeId(loginUser.getId());
-        oaConversion.setApplyEmployeeName(loginUser.getNickname());
+        oaConversion.setApplyEmployeeId(loginEmployee.getId());
+        oaConversion.setApplyEmployeeName(loginEmployee.getName());
+        oaConversion.setCreator(String.valueOf(loginEmployee.getId()));
         // 保存或更新表单信息
         if (oaConversion.getId() == null) {
             oaConversionMapper.insert(oaConversion);
@@ -192,7 +207,7 @@ public class OaConversionServiceImpl implements OaConversionService {
         agreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_COMMITTED));
         taskService.setVariable(task.getId(), BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_COMMITTED);
         taskService.setVariable(task.getId(), "auditPass", "true");
-        bpmTaskService.approveTask(loginUserId, agreeReqVO);
+        bpmTaskService.approveTask(loginEmployee.getId(), agreeReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
         if (nextTask == null) {
@@ -222,7 +237,11 @@ public class OaConversionServiceImpl implements OaConversionService {
     public Long agreeOaConversion(BpmTaskApproveReqVO agreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         Task currentTask = bpmTaskService.getTask(agreeReqVO.getId());
         if (currentTask == null) {
@@ -250,7 +269,7 @@ public class OaConversionServiceImpl implements OaConversionService {
         agreeReqVO.setReason(reason);
         agreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_AUDITING));
         taskService.setVariable(agreeReqVO.getId(), "auditPass", "true");
-        bpmTaskService.approveTask(loginUserId, agreeReqVO);
+        bpmTaskService.approveTask(loginEmployee.getId(), agreeReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
         OaConversionDO oaConversionDO = new OaConversionDO();
@@ -288,7 +307,11 @@ public class OaConversionServiceImpl implements OaConversionService {
     public Long disagreeOaConversion(BpmTaskReturnReqVO disagreeReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         Task currentTask = bpmTaskService.getTask(disagreeReqVO.getId());
 
@@ -297,7 +320,7 @@ public class OaConversionServiceImpl implements OaConversionService {
         disagreeReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_RETURNED));
         taskService.setVariable(disagreeReqVO.getId(), "auditPass", "false");
         taskService.setVariable(disagreeReqVO.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_RETURNED);
-        bpmTaskService.returnTask(loginUserId, disagreeReqVO);
+        bpmTaskService.returnTask(loginEmployee.getId(), disagreeReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
         Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
@@ -322,7 +345,11 @@ public class OaConversionServiceImpl implements OaConversionService {
     public Long revocationOaConversion(BpmTaskApproveReqVO revocationReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         Task currentTask = bpmTaskService.getTask(revocationReqVO.getId());
         if (currentTask == null) {
@@ -332,7 +359,7 @@ public class OaConversionServiceImpl implements OaConversionService {
                 .eq(OaConversionDO::getProcInstId, currentTask.getProcessInstanceId());
         OaConversionDO oaConversionDO = oaConversionMapper.selectOne(lambdaQueryWrapper);
         if (!DictDataConstants.OA_AUDIT_STATUS_COMMITTED.equals(oaConversionDO.getAuditStatus())
-                || !Objects.equals(String.valueOf(loginUserId), oaConversionDO.getCreator())) {
+                || !Objects.equals(String.valueOf(loginEmployee.getId()), oaConversionDO.getCreator())) {
             throw ServiceExceptionUtil.exception(ErrorCodeConstants.TASK_REVOCATION_NOT_ALLOWED);
         }
 
@@ -345,7 +372,7 @@ public class OaConversionServiceImpl implements OaConversionService {
         returnReqVO.setReason(reason);
         returnReqVO.setTaskStatus(Integer.valueOf(DictDataConstants.OA_AUDIT_STATUS_RECALLED));
         taskService.setVariable(currentTask.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_RECALLED);
-        bpmTaskService.revocationTask(loginUserId, returnReqVO);
+        bpmTaskService.revocationTask(loginEmployee.getId(), returnReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
         Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
@@ -377,9 +404,11 @@ public class OaConversionServiceImpl implements OaConversionService {
         if (loginUser == null) {
             throw exception(ErrorCodeConstants.OA_LOGIN_USER_NOT_EXISTS);
         }
+        // 登录员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
         // 转正人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(reCommitReqVO.getEmployeeId());
-        if (employee == null) {
+        EmployeeRespDTO employee = employeeApi.getEmployeeById(reCommitReqVO.getEmployeeId());
+        if (loginEmployee == null || employee == null) {
             throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
         }
 
@@ -389,13 +418,14 @@ public class OaConversionServiceImpl implements OaConversionService {
                 .setProcInstId(oaConversionOld.getProcInstId());
 
         oaConversionNew.setEmployeeId(employee.getId());
-        oaConversionNew.setEmployeeName(employee.getNickname());
-        oaConversionNew.setEmployeePhone(employee.getMobile());
+        oaConversionNew.setEmployeeName(employee.getName());
+        oaConversionNew.setEmployeePhone(employee.getPhone());
         oaConversionNew.setDeptId(employee.getDeptId());
-        oaConversionNew.setPosition("员工职位");
+        oaConversionNew.setPostId(employee.getPostId());
+        oaConversionNew.setPosition(employee.getPosition());
         oaConversionNew.setUserId(loginUser.getId());
-        oaConversionNew.setApplyEmployeeId(loginUser.getId());
-        oaConversionNew.setApplyEmployeeName(loginUser.getNickname());
+        oaConversionNew.setApplyEmployeeId(loginEmployee.getId());
+        oaConversionNew.setApplyEmployeeName(loginEmployee.getName());
 
         Task currentTask = taskService.createTaskQuery().processInstanceId(oaConversionNew.getProcInstId()).singleResult();
         BpmTaskApproveReqVO approveReqVO = new BpmTaskApproveReqVO();
@@ -414,7 +444,7 @@ public class OaConversionServiceImpl implements OaConversionService {
         taskService.setVariable(currentTask.getId(), "auditPass", "true");
         taskService.setVariable(currentTask.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_COMMITTED);
         // 再次提交,和审批通过逻辑相同
-        bpmTaskService.approveTask(loginUserId, approveReqVO);
+        bpmTaskService.approveTask(loginEmployee.getId(), approveReqVO);
 
         Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
         Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
@@ -439,7 +469,11 @@ public class OaConversionServiceImpl implements OaConversionService {
         }
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaConversionDO oaConversionDO = validateOaConversionExists(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_RETURNED.equals(oaConversionDO.getAuditStatus())
@@ -455,7 +489,7 @@ public class OaConversionServiceImpl implements OaConversionService {
         taskService.setVariable(currentTask.getId(), "auditPass", "false");
         taskService.setVariable(currentTask.getId(),BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_CLOSED);
         // 关闭,使用审批通过的方法实现
-        bpmTaskService.approveTask(loginUserId, approveReqVO);
+        bpmTaskService.approveTask(loginEmployee.getId(), approveReqVO);
 
         LambdaUpdateWrapper<OaConversionDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
         lambdaUpdateWrapper.set(OaConversionDO::getAuditStatus, DictDataConstants.OA_AUDIT_STATUS_CLOSED)
@@ -479,7 +513,11 @@ public class OaConversionServiceImpl implements OaConversionService {
     public OaConversionRespVO getOaConversion(Long id) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaConversionDO oaConversionDO = validateOaConversionExists(id);
         OaConversionRespVO oaConversionRespVO = BeanUtils.toBean(oaConversionDO, OaConversionRespVO.class);
@@ -494,7 +532,7 @@ public class OaConversionServiceImpl implements OaConversionService {
         if (StrUtil.isNotBlank(procInstId)) {
             Task task = taskService.createTaskQuery()
                     .processInstanceId(procInstId)
-                    .taskAssignee(String.valueOf(loginUserId))
+                    .taskAssignee(String.valueOf(loginEmployee.getId()))
                     .singleResult();
             if (DictDataConstants.OA_AUDIT_STATUS_COMMITTED.equals(oaConversionDO.getAuditStatus())) {
                 // 如果是已提交,不限制任务处理人是当前登录人,用于直接撤回
@@ -520,16 +558,15 @@ public class OaConversionServiceImpl implements OaConversionService {
         // 审批人
         String startUserSelectAssignees = oaConversionDO.getStartUserSelectAssignees();
         if (StrUtil.isNotEmpty(startUserSelectAssignees)) {
-            List<Long> userIdList = Arrays.stream(startUserSelectAssignees.split(","))
+            List<Long> employeeIdList = Arrays.stream(startUserSelectAssignees.split(","))
                     .map(Long::valueOf).collect(Collectors.toList());
-            List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIdList);
-            List<AdminUserRespDTO> auditUserList = new ArrayList<>();
-            for (Long userId : userIdList) {
-                for (AdminUserRespDTO adminUserRespDTO : userList) {
-                    if (Objects.equals(userId, adminUserRespDTO.getId())) {
-                        auditUserList.add(adminUserRespDTO);
-                        break;
-                    }
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
+            List<EmployeeRespDTO> auditUserList = new ArrayList<>();
+            for (Long employeeId : employeeIdList) {
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(employeeId);
+                if (employeeRespDTO != null) {
+                    auditUserList.add(employeeRespDTO);
                 }
             }
             oaConversionRespVO.setAuditUserList(auditUserList);
@@ -562,16 +599,15 @@ public class OaConversionServiceImpl implements OaConversionService {
         // 审批人
         String startUserSelectAssignees = oaConversionDO.getStartUserSelectAssignees();
         if (StrUtil.isNotEmpty(startUserSelectAssignees)) {
-            List<Long> userIdList = Arrays.stream(startUserSelectAssignees.split(","))
+            List<Long> employeeIdList = Arrays.stream(startUserSelectAssignees.split(","))
                     .map(Long::valueOf).collect(Collectors.toList());
-            List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIdList);
-            List<AdminUserRespDTO> auditUserList = new ArrayList<>();
-            for (Long userId : userIdList) {
-                for (AdminUserRespDTO adminUserRespDTO : userList) {
-                    if (Objects.equals(userId, adminUserRespDTO.getId())) {
-                        auditUserList.add(adminUserRespDTO);
-                        break;
-                    }
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
+            List<EmployeeRespDTO> auditUserList = new ArrayList<>();
+            for (Long employeeId : employeeIdList) {
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(employeeId);
+                if (employeeRespDTO != null) {
+                    auditUserList.add(employeeRespDTO);
                 }
             }
             oaConversionRespVO.setAuditUserList(auditUserList);
@@ -588,13 +624,12 @@ public class OaConversionServiceImpl implements OaConversionService {
         List<OaConversionRespVO> oaConversionRespVOList = oaConversionRespVOPageResult.getList();
         if (CollectionUtil.isNotEmpty(oaConversionRespVOList)) {
             List<Long> employeeIdList = oaConversionRespVOList.stream().map(OaConversionRespVO::getCurrentAuditEmployeeId).collect(Collectors.toList());
-            List<AdminUserRespDTO> employeeList = adminUserApi.getUserList(employeeIdList);
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
             for (OaConversionRespVO respVO : oaConversionRespVOList) {
-                for (AdminUserRespDTO employee : employeeList) {
-                    if (employee.getId() != null && employee.getId().equals(respVO.getCurrentAuditEmployeeId())) {
-                        respVO.setCurrentAuditEmployeeName(employee.getNickname());
-                        break;
-                    }
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(respVO.getCurrentAuditEmployeeId());
+                if (employeeRespDTO != null) {
+                    respVO.setCurrentAuditEmployeeName(employeeRespDTO.getName());
                 }
             }
 

+ 23 - 24
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/entry/OaEntryServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
@@ -13,6 +14,7 @@ import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.entry.vo.OaEntryPageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.entry.vo.OaEntryRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.entry.vo.OaEntrySaveReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.oa.universal.vo.OaUniversalRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskReturnReqVO;
@@ -484,16 +486,15 @@ public class OaEntryServiceImpl implements OaEntryService {
         // 审批人
         String startUserSelectAssignees = oaEntryDO.getStartUserSelectAssignees();
         if (StrUtil.isNotEmpty(startUserSelectAssignees)) {
-            List<Long> userIdList = Arrays.stream(startUserSelectAssignees.split(","))
+            List<Long> employeeIdList = Arrays.stream(startUserSelectAssignees.split(","))
                     .map(Long::valueOf).collect(Collectors.toList());
-            List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIdList);
-            List<AdminUserRespDTO> auditUserList = new ArrayList<>();
-            for (Long userId : userIdList) {
-                for (AdminUserRespDTO adminUserRespDTO : userList) {
-                    if (Objects.equals(userId, adminUserRespDTO.getId())) {
-                        auditUserList.add(adminUserRespDTO);
-                        break;
-                    }
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
+            List<EmployeeRespDTO> auditUserList = new ArrayList<>();
+            for (Long employeeId : employeeIdList) {
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(employeeId);
+                if (employeeRespDTO != null) {
+                    auditUserList.add(employeeRespDTO);
                 }
             }
             oaEntryRespVO.setAuditUserList(auditUserList);
@@ -526,16 +527,15 @@ public class OaEntryServiceImpl implements OaEntryService {
         // 审批人
         String startUserSelectAssignees = oaEntryDO.getStartUserSelectAssignees();
         if (StrUtil.isNotEmpty(startUserSelectAssignees)) {
-            List<Long> userIdList = Arrays.stream(startUserSelectAssignees.split(","))
+            List<Long> employeeIdList = Arrays.stream(startUserSelectAssignees.split(","))
                     .map(Long::valueOf).collect(Collectors.toList());
-            List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIdList);
-            List<AdminUserRespDTO> auditUserList = new ArrayList<>();
-            for (Long userId : userIdList) {
-                for (AdminUserRespDTO adminUserRespDTO : userList) {
-                    if (Objects.equals(userId, adminUserRespDTO.getId())) {
-                        auditUserList.add(adminUserRespDTO);
-                        break;
-                    }
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
+            List<EmployeeRespDTO> auditUserList = new ArrayList<>();
+            for (Long employeeId : employeeIdList) {
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(employeeId);
+                if (employeeRespDTO != null) {
+                    auditUserList.add(employeeRespDTO);
                 }
             }
             oaEntryRespVO.setAuditUserList(auditUserList);
@@ -552,13 +552,12 @@ public class OaEntryServiceImpl implements OaEntryService {
         List<OaEntryRespVO> oaEntryRespVOList = oaEntryRespVOPageResult.getList();
         if (CollectionUtil.isNotEmpty(oaEntryRespVOList)) {
             List<Long> employeeIdList = oaEntryRespVOList.stream().map(OaEntryRespVO::getCurrentAuditEmployeeId).collect(Collectors.toList());
-            List<AdminUserRespDTO> employeeList = adminUserApi.getUserList(employeeIdList);
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
             for (OaEntryRespVO respVO : oaEntryRespVOList) {
-                for (AdminUserRespDTO employee : employeeList) {
-                    if (employee.getId() != null && employee.getId().equals(respVO.getCurrentAuditEmployeeId())) {
-                        respVO.setCurrentAuditEmployeeName(employee.getNickname());
-                        break;
-                    }
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(respVO.getCurrentAuditEmployeeId());
+                if (employeeRespDTO != null) {
+                    respVO.setCurrentAuditEmployeeName(employeeRespDTO.getName());
                 }
             }
 

+ 5 - 6
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/universal/OaUniversalServiceImpl.java

@@ -560,13 +560,12 @@ public class OaUniversalServiceImpl implements OaUniversalService {
         List<OaUniversalRespVO> oaUniversalRespVOList = oaUniversalRespVOPageResult.getList();
         if (CollectionUtil.isNotEmpty(oaUniversalRespVOList)) {
             List<Long> employeeIdList = oaUniversalRespVOList.stream().map(OaUniversalRespVO::getCurrentAuditEmployeeId).collect(Collectors.toList());
-            List<AdminUserRespDTO> employeeList = adminUserApi.getUserList(employeeIdList);
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByIds(employeeIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getId);
             for (OaUniversalRespVO respVO : oaUniversalRespVOList) {
-                for (AdminUserRespDTO employee : employeeList) {
-                    if (employee.getId() != null && employee.getId().equals(respVO.getCurrentAuditEmployeeId())) {
-                        respVO.setCurrentAuditEmployeeName(employee.getNickname());
-                        break;
-                    }
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(respVO.getCurrentAuditEmployeeId());
+                if (employeeRespDTO != null) {
+                    respVO.setCurrentAuditEmployeeName(employeeRespDTO.getName());
                 }
             }