Browse Source

1、请假接口员工化

dongpo 1 year ago
parent
commit
0668473326

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

@@ -23,8 +23,8 @@ public class OaLeavePageReqVO extends PageParam {
     @Schema(description = "部门id", example = "115")
     private Long deptId;
 
-    @Schema(description = "员工职位")
-    private String position;
+    @Schema(description = "职位id")
+    private Long postId;
 
     @Schema(description = "请假类型", example = "事假")
     private String leaveType;

+ 9 - 5
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/vo/OaLeaveRespVO.java

@@ -1,16 +1,16 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.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 com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
+import lombok.Data;
 
 import java.time.LocalDateTime;
 import java.util.List;
 
-import com.alibaba.excel.annotation.*;
-
 @Schema(description = "管理后台 - 请假流程信息 Response VO")
 @Data
 @ExcelIgnoreUnannotated
@@ -47,6 +47,10 @@ public class OaLeaveRespVO {
     @ExcelProperty("部门名称")
     private String deptName;
 
+    @Schema(description = "职位id", example = "1")
+    @ExcelProperty("职位id")
+    private Long postId;
+
     @Schema(description = "员工职位")
     @ExcelProperty("员工职位")
     private String position;
@@ -126,7 +130,7 @@ public class OaLeaveRespVO {
     private List<BpmTaskRespVO> auditRecordList;
 
     @Schema(description = "审批人员列表")
-    private List<AdminUserRespDTO> auditUserList;
+    private List<EmployeeRespDTO> auditUserList;
 
     @Schema(description = "当前用户待处理的任务id")
     private String taskId;

+ 8 - 3
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/leave/OaLeaveDO.java

@@ -1,12 +1,13 @@
 package cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave;
 
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
 import java.time.LocalDateTime;
 
-import com.baomidou.mybatisplus.annotation.*;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-
 /**
  * 请假流程信息 DO
  *
@@ -63,6 +64,10 @@ public class OaLeaveDO 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/leave/OaLeaveMapper.java

@@ -20,7 +20,7 @@ public interface OaLeaveMapper extends BaseMapperX<OaLeaveDO> {
                 .likeIfPresent(OaLeaveDO::getEmployeeName, reqVO.getEmployeeName())
                 .likeIfPresent(OaLeaveDO::getEmployeePhone, reqVO.getEmployeePhone())
                 .eqIfPresent(OaLeaveDO::getDeptId, reqVO.getDeptId())
-                .eqIfPresent(OaLeaveDO::getPosition, reqVO.getPosition())
+                .eqIfPresent(OaLeaveDO::getPostId, reqVO.getPostId())
                 .eqIfPresent(OaLeaveDO::getLeaveType, reqVO.getLeaveType())
                 .betweenIfPresent(OaLeaveDO::getStartDate, reqVO.getStartDate())
                 .betweenIfPresent(OaLeaveDO::getEndDate, reqVO.getEndDate())

+ 111 - 95
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.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;
@@ -22,12 +23,12 @@ 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;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
-import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
-import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.apache.commons.lang3.StringUtils;
@@ -77,7 +78,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     private FileApi fileApi;
 
     @Resource
-    private AdminUserApi adminUserApi;
+    private EmployeeApi employeeApi;
 
     @Resource
     private DeptApi deptApi;
@@ -87,10 +88,11 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     public Long stagingOaLeave(OaLeaveSaveReqVO stagingReqVO) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        AdminUserRespDTO loginUser = adminUserApi.getUser(loginUserId);
-        Objects.requireNonNull(loginUser, "登录用户不能为空");
-        // 人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(loginUserId);
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaLeaveDO oaLeave = BeanUtils.toBean(stagingReqVO, OaLeaveDO.class);
         if (StringUtils.isBlank(oaLeave.getLeaveId())) {
@@ -98,18 +100,19 @@ public class OaLeaveServiceImpl implements OaLeaveService {
             String uuid = IdUtil.fastSimpleUUID();
             oaLeave.setLeaveId(uuid);
         }
-        if (employee != null) {
-            oaLeave.setEmployeeId(loginUser.getId());
-            oaLeave.setEmployeeName(loginUser.getNickname());
-            oaLeave.setEmployeePhone(loginUser.getMobile());
-            oaLeave.setDeptId(loginUser.getDeptId());
-            oaLeave.setPosition("员工职位");
-            oaLeave.setUserId(loginUser.getId());
-        }
+
+        oaLeave.setEmployeeId(loginEmployee.getId());
+        oaLeave.setEmployeeName(loginEmployee.getName());
+        oaLeave.setEmployeePhone(loginEmployee.getPhone());
+        oaLeave.setDeptId(loginEmployee.getDeptId());
+        oaLeave.setPostId(loginEmployee.getPostId());
+        oaLeave.setPosition(loginEmployee.getPosition());
+        oaLeave.setUserId(loginUserId);
         oaLeave.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_STAGING);
         oaLeave.setInfoSource("0");
-        oaLeave.setApplyEmployeeId(loginUser.getId());
-        oaLeave.setApplyEmployeeName(loginUser.getNickname());
+        oaLeave.setApplyEmployeeId(loginEmployee.getId());
+        oaLeave.setApplyEmployeeName(loginEmployee.getName());
+        oaLeave.setCreator(String.valueOf(loginEmployee.getId()));
         // 暂存不保存审批人信息
         oaLeave.setStartUserSelectAssignees(null);
         // 保存或更新表单信息
@@ -132,13 +135,9 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         }
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        AdminUserRespDTO loginUser = adminUserApi.getUser(loginUserId);
-        if (loginUser == null) {
-            throw exception(ErrorCodeConstants.OA_LOGIN_USER_NOT_EXISTS);
-        }
-        // 人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(loginUserId);
-        if (employee == null) {
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
             throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
         }
 
@@ -149,15 +148,17 @@ public class OaLeaveServiceImpl implements OaLeaveService {
             String uuid = IdUtil.fastSimpleUUID();
             oaLeave.setLeaveId(uuid);
         }
-        oaLeave.setEmployeeId(employee.getId());
-        oaLeave.setEmployeeName(employee.getNickname());
-        oaLeave.setEmployeePhone(employee.getMobile());
-        oaLeave.setDeptId(employee.getDeptId());
-        oaLeave.setPosition("员工职位");
-        oaLeave.setUserId(loginUser.getId());
+        oaLeave.setEmployeeId(loginEmployee.getId());
+        oaLeave.setEmployeeName(loginEmployee.getName());
+        oaLeave.setEmployeePhone(loginEmployee.getPhone());
+        oaLeave.setDeptId(loginEmployee.getDeptId());
+        oaLeave.setPostId(loginEmployee.getPostId());
+        oaLeave.setPosition(loginEmployee.getPosition());
+        oaLeave.setUserId(loginUserId);
         oaLeave.setInfoSource("0");
-        oaLeave.setApplyEmployeeId(loginUser.getId());
-        oaLeave.setApplyEmployeeName(loginUser.getNickname());
+        oaLeave.setApplyEmployeeId(loginEmployee.getId());
+        oaLeave.setApplyEmployeeName(loginEmployee.getName());
+        oaLeave.setCreator(String.valueOf(loginEmployee.getId()));
         // 保存或更新表单信息
         if (oaLeave.getId() == null) {
             oaLeaveMapper.insert(oaLeave);
@@ -176,7 +177,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         List<Long> selectAssignees = commitReqVO.getStartUserSelectAssignees();
         startUserSelectAssignees.put("approver", selectAssignees);
         String processInstanceId = processInstanceApi
-                .createProcessInstance(loginUser.getId(),
+                .createProcessInstance(loginEmployee.getId(),
                         new BpmProcessInstanceCreateReqDTO()
                                 .setProcessDefinitionKey(PROCESS_KEY)
                                 .setVariables(processInstanceVariables)
@@ -193,14 +194,14 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         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) {
             throw exception(ErrorCodeConstants.TASK_CREATE_FAIL_NO_START_SELECT_ASSIGNEE);
         }
         Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
-        AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+        EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
 
 
         // 将工作流的流程实例ID、单据状态、最后一次审批时间、当前审批人更新到单据信息中
@@ -210,7 +211,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
                 .setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_COMMITTED)
                 .setFinalAuditDate(LocalDateTime.now())
                 .setCurrentAuditEmployeeId(currentAuditEmployeeId)
-                .setCurrentAuditEmployeeName(currentAuditEmployee.getNickname())
+                .setCurrentAuditEmployeeName(currentAuditEmployee.getName())
                 .setStartUserSelectAssignees(selectAssignees.stream().map(String::valueOf).collect(Collectors.joining(","))));
         // 保存业务uuid到附件中
         saveFileList(commitReqVO.getFileIdList(), oaLeave.getLeaveId());
@@ -223,7 +224,11 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     public Long agreeOaLeave(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) {
@@ -251,19 +256,19 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         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();
         OaLeaveDO oaLeaveDO = new OaLeaveDO();
         if (nextTask != null) {
             Long currentAuditEmployeeId = Long.valueOf(nextTask.getAssignee());
-            AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+            EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
 
             // 如果审批人重复,实际未结束,再次更新为审核中
             taskService.setVariable(nextTask.getId(), BpmConstants.PROCESS_INSTANCE_VARIABLE_STATUS, DictDataConstants.OA_AUDIT_STATUS_AUDITING);
             oaLeaveDO.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_AUDITING)
                     .setCurrentAuditEmployeeId(currentAuditEmployeeId)
-                    .setCurrentAuditEmployeeName(currentAuditEmployee.getNickname())
+                    .setCurrentAuditEmployeeName(currentAuditEmployee.getName())
                     .setFinalAuditDate(LocalDateTime.now())
                     .setId(oaLeave.getId());
 
@@ -274,7 +279,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
                     .setFinalAuditDate(LocalDateTime.now())
                     .setId(oaLeave.getId());
 
-            // TODO 复制业务单据信息到业务模块单据表
+            // TODO DP 复制业务单据信息到业务模块单据表
 
         }
         oaLeaveMapper.updateById(oaLeaveDO);
@@ -289,7 +294,11 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     public Long disagreeOaLeave(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());
 
@@ -298,16 +307,16 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         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());
-        AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+        EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
 
         // 更新单据状态,当前处理人,最后处理时间
         LambdaUpdateWrapper<OaLeaveDO> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.set(OaLeaveDO::getCurrentAuditEmployeeId, currentAuditEmployeeId)
-                .set(OaLeaveDO::getCurrentAuditEmployeeName, currentAuditEmployee.getNickname())
+                .set(OaLeaveDO::getCurrentAuditEmployeeName, currentAuditEmployee.getName())
                 .set(OaLeaveDO::getFinalAuditDate, LocalDateTime.now())
                 .set(OaLeaveDO::getAuditStatus, DictDataConstants.OA_AUDIT_STATUS_RETURNED)
                 .eq(OaLeaveDO::getProcInstId, currentTask.getProcessInstanceId());
@@ -323,7 +332,11 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     public Long revocationOaLeave(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) {
@@ -346,16 +359,16 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         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());
-        AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+        EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
 
         // 更新单据状态,当前处理人,最后处理时间
         LambdaUpdateWrapper<OaLeaveDO> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.set(OaLeaveDO::getCurrentAuditEmployeeId, currentAuditEmployeeId)
-                .set(OaLeaveDO::getCurrentAuditEmployeeName, currentAuditEmployee.getNickname())
+                .set(OaLeaveDO::getCurrentAuditEmployeeName, currentAuditEmployee.getName())
                 .set(OaLeaveDO::getFinalAuditDate, LocalDateTime.now())
                 .set(OaLeaveDO::getAuditStatus, DictDataConstants.OA_AUDIT_STATUS_RECALLED)
                 .eq(OaLeaveDO::getProcInstId, currentTask.getProcessInstanceId());
@@ -374,13 +387,9 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         }
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        AdminUserRespDTO loginUser = adminUserApi.getUser(loginUserId);
-        if (loginUser == null) {
-            throw exception(ErrorCodeConstants.OA_LOGIN_USER_NOT_EXISTS);
-        }
-        // 人信息
-        AdminUserRespDTO employee = adminUserApi.getUser(loginUserId);
-        if (employee == null) {
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
             throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
         }
 
@@ -389,14 +398,16 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         oaLeaveNew.setLeaveId(oaLeaveOld.getLeaveId())
                 .setProcInstId(oaLeaveOld.getProcInstId());
 
-        oaLeaveNew.setEmployeeId(employee.getId());
-        oaLeaveNew.setEmployeeName(employee.getNickname());
-        oaLeaveNew.setEmployeePhone(employee.getMobile());
-        oaLeaveNew.setDeptId(employee.getDeptId());
-        oaLeaveNew.setPosition("员工职位");
-        oaLeaveNew.setUserId(loginUser.getId());
-        oaLeaveNew.setApplyEmployeeId(loginUser.getId());
-        oaLeaveNew.setApplyEmployeeName(loginUser.getNickname());
+        oaLeaveNew.setEmployeeId(loginEmployee.getId());
+        oaLeaveNew.setEmployeeName(loginEmployee.getName());
+        oaLeaveNew.setEmployeePhone(loginEmployee.getPhone());
+        oaLeaveNew.setDeptId(loginEmployee.getDeptId());
+        oaLeaveNew.setPostId(loginEmployee.getPostId());
+        oaLeaveNew.setPosition(loginEmployee.getPosition());
+        oaLeaveNew.setUserId(loginUserId);
+        oaLeaveNew.setApplyEmployeeId(loginEmployee.getId());
+        oaLeaveNew.setApplyEmployeeName(loginEmployee.getName());
+
 
         Task currentTask = taskService.createTaskQuery().processInstanceId(oaLeaveNew.getProcInstId()).singleResult();
         BpmTaskApproveReqVO approveReqVO = new BpmTaskApproveReqVO();
@@ -415,14 +426,14 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         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());
-        AdminUserRespDTO currentAuditEmployee = adminUserApi.getUser(currentAuditEmployeeId);
+        EmployeeRespDTO currentAuditEmployee = employeeApi.getEmployeeById(currentAuditEmployeeId);
         oaLeaveNew.setAuditStatus(DictDataConstants.OA_AUDIT_STATUS_COMMITTED)
                 .setCurrentAuditEmployeeId(currentAuditEmployeeId)
-                .setCurrentAuditEmployeeName(currentAuditEmployee.getNickname())
+                .setCurrentAuditEmployeeName(currentAuditEmployee.getName())
                 .setFinalAuditDate(LocalDateTime.now());
         oaLeaveMapper.updateById(oaLeaveNew);
 
@@ -440,7 +451,11 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         }
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaLeaveDO oaLeaveDO = oaLeaveMapper.selectById(id);
         if (!DictDataConstants.OA_AUDIT_STATUS_RETURNED.equals(oaLeaveDO.getAuditStatus())
@@ -456,7 +471,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         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<OaLeaveDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
         lambdaUpdateWrapper.set(OaLeaveDO::getAuditStatus, DictDataConstants.OA_AUDIT_STATUS_CLOSED)
@@ -480,7 +495,11 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     public OaLeaveRespVO getOaLeave(Long id) {
         // 登录人信息
         Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
-        // TODO DP 根据登录人查询出对应的员工信息
+        // 根据登录人查询出对应的员工信息
+        EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
+        if (loginEmployee == null) {
+            throw exception(ErrorCodeConstants.OA_EMPLOYEE_NOT_EXISTS);
+        }
 
         OaLeaveDO oaLeaveDO = validateOaLeaveExists(id);
         OaLeaveRespVO oaLeaveRespVO = BeanUtils.toBean(oaLeaveDO, OaLeaveRespVO.class);
@@ -495,7 +514,7 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         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(oaLeaveDO.getAuditStatus())) {
                 // 如果是已提交,不限制任务处理人是当前登录人,用于直接撤回
@@ -521,16 +540,15 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         // 审批人
         String startUserSelectAssignees = oaLeaveDO.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);
                 }
             }
             oaLeaveRespVO.setAuditUserList(auditUserList);
@@ -563,16 +581,15 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         // 审批人
         String startUserSelectAssignees = oaLeaveDO.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);
                 }
             }
             oaLeaveRespVO.setAuditUserList(auditUserList);
@@ -589,13 +606,12 @@ public class OaLeaveServiceImpl implements OaLeaveService {
         List<OaLeaveRespVO> oaLeaveRespVOList = oaLeaveRespVOPageResult.getList();
         if (CollectionUtil.isNotEmpty(oaLeaveRespVOList)) {
             List<Long> employeeIdList = oaLeaveRespVOList.stream().map(OaLeaveRespVO::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 (OaLeaveRespVO respVO : oaLeaveRespVOList) {
-                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());
                 }
             }