提交app同步后端
This commit is contained in:
@@ -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<HrmFlowTaskVo> tasks) {
|
||||
private void fillBizData(List<HrmFlowTaskVo> tasks) {
|
||||
// 1. 按 bizType 分组,并收集 bizId
|
||||
Map<String, List<Long>> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object> 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<String, Object>,方便前端使用
|
||||
Map<String, Object> dataMap = objectMapper.convertValue(data, Map.class);
|
||||
task.setBizData(dataMap);
|
||||
task.setBizData((Map<String, Object>) data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void fillEmpName(Map<String, Object> 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);
|
||||
|
||||
@@ -51,12 +51,13 @@
|
||||
<sql id="selectVo">
|
||||
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
|
||||
</sql>
|
||||
|
||||
Reference in New Issue
Block a user