diff --git a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java index 73a5ce4..f2a945d 100644 --- a/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java +++ b/fad-hrm/src/main/java/com/ruoyi/hrm/service/impl/HrmFlowTaskServiceImpl.java @@ -13,10 +13,12 @@ import com.ruoyi.hrm.domain.*; import com.ruoyi.hrm.domain.bo.HrmFlowTaskBo; import com.ruoyi.hrm.domain.bo.HrmSealStampBo; import com.ruoyi.hrm.domain.vo.HrmFlowTaskVo; +import com.ruoyi.hrm.domain.vo.HrmEmployeeVo; import com.ruoyi.hrm.mapper.*; import com.ruoyi.hrm.service.IHrmFlowTaskService; import com.ruoyi.hrm.service.IHrmSealReqService; import com.ruoyi.hrm.service.IHrmFlowCcService; +import com.ruoyi.hrm.service.IHrmEmployeeService; import com.ruoyi.hrm.domain.bo.HrmFlowCcBo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -47,6 +49,7 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { private final HrmAppropriationReqMapper appropriationReqMapper; private final ObjectMapper objectMapper; // Spring Boot 默认提供 private final UserService userService; + private final IHrmEmployeeService employeeService; @Override public HrmFlowTaskVo queryById(Long taskId) { @@ -74,7 +77,7 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { return tasks; } - private void fillBizData(List tasks) { +private void fillBizData(List tasks) { // 1. 按 bizType 分组,并收集 bizId Map> bizIdsByType = tasks.stream() .filter(t -> t.getBizType() != null && t.getBizId() != null) @@ -90,19 +93,39 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { if (bizIds.isEmpty()) return; switch (bizType) { case "leave": - leaveReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("leave_" + d.getBizId(), d)); + leaveReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("leave_" + d.getBizId(), dataMap); + }); break; case "travel": - travelReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("travel_" + d.getBizId(), d)); + travelReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("travel_" + d.getBizId(), dataMap); + }); break; case "seal": - sealReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("seal_" + d.getBizId(), d)); + sealReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("seal_" + d.getBizId(), dataMap); + }); break; case "reimburse": - reimburseReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("reimburse_" + d.getBizId(), d)); + reimburseReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("reimburse_" + d.getBizId(), dataMap); + }); break; case "appropriation": - appropriationReqMapper.selectBatchIds(bizIds).forEach(d -> bizDataMap.put("appropriation_" + d.getBizId(), d)); + appropriationReqMapper.selectBatchIds(bizIds).forEach(d -> { + Map dataMap = objectMapper.convertValue(d, Map.class); + fillEmpName(dataMap, d.getEmpId()); + bizDataMap.put("appropriation_" + d.getBizId(), dataMap); + }); break; } }); @@ -112,13 +135,20 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { String key = task.getBizType() + "_" + task.getBizId(); Object data = bizDataMap.get(key); if (data != null) { - // 将实体对象转换为 Map,方便前端使用 - Map dataMap = objectMapper.convertValue(data, Map.class); - task.setBizData(dataMap); + task.setBizData((Map) data); } }); } + private void fillEmpName(Map dataMap, Long empId) { + if (empId != null) { + HrmEmployeeVo emp = employeeService.queryById(empId); + if (emp != null && emp.getEmpName() != null) { + dataMap.put("empName", emp.getEmpName()); + } + } + } + @Override @Transactional(rollbackFor = Exception.class) @@ -416,6 +446,11 @@ public class HrmFlowTaskServiceImpl implements IHrmFlowTaskService { if (result.getRecords() != null && !result.getRecords().isEmpty()) { fillBizData(result.getRecords()); + result.getRecords().forEach(task -> { + if (task.getAssigneeUserId() != null) { + task.setAssigneeNickName(userService.selectNickNameById(task.getAssigneeUserId())); + } + }); } return TableDataInfo.build(result); diff --git a/fad-hrm/src/main/resources/mapper/HrmEmployeeMapper.xml b/fad-hrm/src/main/resources/mapper/HrmEmployeeMapper.xml index 04763e6..c6d8593 100644 --- a/fad-hrm/src/main/resources/mapper/HrmEmployeeMapper.xml +++ b/fad-hrm/src/main/resources/mapper/HrmEmployeeMapper.xml @@ -51,12 +51,13 @@ SELECT e.emp_id, e.user_id, e.emp_no, e.emp_name, e.gender, e.mobile, e.email, e.id_no, - e.hire_date, e.employment_type, e.status, e.dept_id, e.post_id, e.remark, + e.hire_date, e.employment_type, e.status, su.dept_id, e.post_id, e.remark, e.create_by, e.create_time, e.update_by, e.update_time, d.dept_name, p.post_name FROM hrm_employee e - LEFT JOIN sys_dept d ON e.dept_id = d.dept_id AND d.del_flag = '0' + left join sys_user su on su.user_id = e.user_id + LEFT JOIN sys_dept d ON su.dept_id = d.dept_id AND d.del_flag = 0 LEFT JOIN sys_post p ON e.post_id = p.post_id WHERE e.del_flag = 0