|
@@ -12,6 +12,8 @@ import cn.iocoder.yudao.module.bpm.service.definition.BpmFormService;
|
|
|
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
|
|
|
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
|
|
|
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.system.api.dept.DeptApi;
|
|
|
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
|
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
@@ -61,13 +63,20 @@ public class BpmTaskController {
|
|
|
private AdminUserApi adminUserApi;
|
|
|
@Resource
|
|
|
private DeptApi deptApi;
|
|
|
+ @Resource
|
|
|
+ private EmployeeApi employeeApi;
|
|
|
|
|
|
@GetMapping("todo-count")
|
|
|
@Operation(summary = "获取我的待办任务数量")
|
|
|
@ApiOperationSupport(order = 1)
|
|
|
// @PreAuthorize("@ss.hasPermission('bpm:task:count')")
|
|
|
public CommonResult<Long> getTaskTodoCount(@Valid @ParameterObject BpmTaskPageReqVO pageVO) {
|
|
|
- Long todoCount = taskService.getTaskTodoCount(getLoginUserId(), pageVO);
|
|
|
+ Long loginUserId = getLoginUserId();
|
|
|
+ EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
|
|
|
+ if (loginEmployee == null) {
|
|
|
+ return success(0L, "员工信息不存在");
|
|
|
+ }
|
|
|
+ Long todoCount = taskService.getTaskTodoCount(loginEmployee.getId(), pageVO);
|
|
|
return success(todoCount, "查询我的待办任务数量成功");
|
|
|
}
|
|
|
|
|
@@ -76,7 +85,13 @@ public class BpmTaskController {
|
|
|
@ApiOperationSupport(order = 2)
|
|
|
// @PreAuthorize("@ss.hasPermission('bpm:task:query')")
|
|
|
public CommonResult<PageResult<BpmTaskRespVO>> getTaskTodoPage(@Valid @ParameterObject BpmTaskPageReqVO pageVO) {
|
|
|
- PageResult<Task> pageResult = taskService.getTaskTodoPage(getLoginUserId(), pageVO);
|
|
|
+ Long loginUserId = getLoginUserId();
|
|
|
+ EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
|
|
|
+ if (loginEmployee == null) {
|
|
|
+ return success(PageResult.empty(), "员工信息不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ PageResult<Task> pageResult = taskService.getTaskTodoPage(loginEmployee.getId(), pageVO);
|
|
|
if (CollUtil.isEmpty(pageResult.getList())) {
|
|
|
return success(PageResult.empty());
|
|
|
}
|
|
@@ -85,12 +100,14 @@ public class BpmTaskController {
|
|
|
Map<String, Task> taskMap = convertMap(pageResult.getList(), Task::getId);
|
|
|
Map<String, ProcessInstance> processInstanceMap = processInstanceService.getProcessInstanceMap(
|
|
|
convertSet(pageResult.getList(), Task::getProcessInstanceId));
|
|
|
- Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
|
|
+ // Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
|
|
+ // convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
|
|
+ Map<Long, EmployeeRespDTO> employeeMap = employeeApi.getEmployeeMap(
|
|
|
convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
|
|
Map<String, BpmProcessDefinitionExtDO> bpmProcessDefinitionExtDOMap = processDefinitionService.getProcessDefinitionExtMap(
|
|
|
convertSet(processInstanceMap.values(), ProcessInstance::getProcessDefinitionId)
|
|
|
);
|
|
|
- PageResult<BpmTaskRespVO> taskRespVOPageResult = BpmTaskConvert.INSTANCE.buildTodoTaskPage(pageResult, processInstanceMap, userMap, bpmProcessDefinitionExtDOMap, taskMap);
|
|
|
+ PageResult<BpmTaskRespVO> taskRespVOPageResult = BpmTaskConvert.INSTANCE.buildTodoTaskPage(pageResult, processInstanceMap, employeeMap, bpmProcessDefinitionExtDOMap, taskMap);
|
|
|
return success(taskRespVOPageResult, "查询我的待办任务成功");
|
|
|
}
|
|
|
|
|
@@ -98,7 +115,12 @@ public class BpmTaskController {
|
|
|
@Operation(summary = "获取我的已处理任务分页")
|
|
|
// @PreAuthorize("@ss.hasPermission('bpm:task:query')")
|
|
|
public CommonResult<PageResult<BpmTaskRespVO>> getTaskDonePage(@Valid @ParameterObject BpmTaskPageReqVO pageVO) {
|
|
|
- PageResult<HistoricTaskInstance> pageResult = taskService.getTaskDonePage(getLoginUserId(), pageVO);
|
|
|
+ Long loginUserId = getLoginUserId();
|
|
|
+ EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
|
|
|
+ if (loginEmployee == null) {
|
|
|
+ return success(PageResult.empty(), "员工信息不存在");
|
|
|
+ }
|
|
|
+ PageResult<HistoricTaskInstance> pageResult = taskService.getTaskDonePage(loginEmployee.getId(), pageVO);
|
|
|
if (CollUtil.isEmpty(pageResult.getList())) {
|
|
|
return success(PageResult.empty());
|
|
|
}
|
|
@@ -106,12 +128,14 @@ public class BpmTaskController {
|
|
|
// 拼接数据
|
|
|
Map<String, HistoricProcessInstance> processInstanceMap = processInstanceService.getHistoricProcessInstanceMap(
|
|
|
convertSet(pageResult.getList(), HistoricTaskInstance::getProcessInstanceId));
|
|
|
- Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
|
|
+ // Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
|
|
|
+ // convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
|
|
+ Map<Long, EmployeeRespDTO> employeeMap = employeeApi.getEmployeeMap(
|
|
|
convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId())));
|
|
|
Map<String, BpmProcessDefinitionExtDO> bpmProcessDefinitionExtDOMap = processDefinitionService.getProcessDefinitionExtMap(
|
|
|
convertSet(processInstanceMap.values(), HistoricProcessInstance::getProcessDefinitionId)
|
|
|
);
|
|
|
- return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, null, bpmProcessDefinitionExtDOMap));
|
|
|
+ return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, employeeMap, null, bpmProcessDefinitionExtDOMap));
|
|
|
}
|
|
|
|
|
|
@GetMapping("manager-page")
|
|
@@ -129,10 +153,11 @@ public class BpmTaskController {
|
|
|
// 获得 User 和 Dept Map
|
|
|
Set<Long> userIds = convertSet(processInstanceMap.values(), instance -> Long.valueOf(instance.getStartUserId()));
|
|
|
userIds.addAll(convertSet(pageResult.getList(), task -> NumberUtils.parseLong(task.getAssignee())));
|
|
|
- Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
|
|
|
+ // Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
|
|
|
+ Map<Long, EmployeeRespDTO> employeeMap = employeeApi.getEmployeeMap(userIds);
|
|
|
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(
|
|
|
- convertSet(userMap.values(), AdminUserRespDTO::getDeptId));
|
|
|
- return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, userMap, deptMap, null));
|
|
|
+ convertSet(employeeMap.values(), EmployeeRespDTO::getDeptId));
|
|
|
+ return success(BpmTaskConvert.INSTANCE.buildTaskPage(pageResult, processInstanceMap, employeeMap, deptMap, null));
|
|
|
}
|
|
|
|
|
|
@GetMapping("/list-by-process-instance-id")
|