xiangpei
2024-11-29 6e22084bd569d3758e43b279745ef673c533b9b9
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -235,6 +235,75 @@
        return ok;
    }
    @Override
    public void getAllTodoTask(String taskName, int pageSize, int pageNum, Result result) {
        TaskQuery taskQuery = taskService.createTaskQuery()
                .active()
                .includeProcessVariables()
                .orderByTaskCreateTime().desc();
        if (StringUtils.isNotBlank(taskName)) {
            taskQuery.processDefinitionNameLike(taskName);
        }
        result.total(taskQuery.count());
        List<Task> taskList = taskQuery.listPage(pageSize * (pageNum - 1), pageSize);
        List<CustomerTaskVO> vos = new ArrayList<>();
        for (Task task : taskList) {
            CustomerTaskVO taskVO = new CustomerTaskVO();
            // 当前流程信息
            taskVO.setTaskId(task.getId());
            taskVO.setCreateTime(task.getCreateTime());
            taskVO.setProcessDefId(task.getProcessDefinitionId());
            taskVO.setExecutionId(task.getExecutionId());
            taskVO.setTaskName(task.getName());
            taskVO.setTaskStatus(TaskStatusEnum.TODO);
            // 流程定义信息
            ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
                    .processDefinitionId(task.getProcessDefinitionId())
                    .singleResult();
            taskVO.setDeployId(pd.getDeploymentId());
            taskVO.setProcessName(pd.getName());
            taskVO.setProcessInsId(task.getProcessInstanceId());
            // 流程发起人信息
            HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
                    .processInstanceId(task.getProcessInstanceId())
                    .singleResult();
            SysUser startUser = sysUserService.selectUserById(Long.parseLong(historicProcessInstance.getStartUserId()));
            taskVO.setPromoterId(startUser.getUserId());
            taskVO.setPromoterName(startUser.getNickName());
            taskVO.setPromoterUnitName(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptName() : "");
            taskVO.setPromoterUnitId(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptId() : null);
            // 流程处理人信息
            List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId());
            for (IdentityLink identityLink : identityLinksForTask) {
                // 绑定的是用户,查出用户姓名、部门
                if (StringUtils.isNotBlank(identityLink.getUserId())) {
                    SysUser sysUser = sysUserService.selectUserById(Long.parseLong(identityLink.getUserId()));
                    if (Objects.nonNull(sysUser)) {
                        taskVO.setHandlerId(sysUser.getUserId());
                        if (Objects.nonNull(sysUser.getDept())) {
                            taskVO.setHandlerUnitId(sysUser.getDept().getDeptId());
                            taskVO.setHandlerUnitName(sysUser.getDept().getDeptName());
                        }
                        taskVO.setHandlerName(sysUser.getNickName());
                    }
                    // 绑定的是角色,查出角色名称
                } else if (StringUtils.isNotBlank(identityLink.getGroupId())) {
                    SysRole role = sysRoleService.selectRoleById(Long.parseLong(identityLink.getGroupId()));
                    if (Objects.nonNull(role)) {
                        taskVO.setHandlerUnitId(Long.parseLong(identityLink.getGroupId()));
                        taskVO.setHandlerUnitName("由拥有角色:【" + role.getRoleName() + "】的人处理");
                        taskVO.setHandlerName("暂未处理");
                        taskVO.setHandlerId(null);
                    }
                }
            }
            vos.add(taskVO);
        }
        result.put("taskList", vos);
    }
    /**
     * 查询待办任务
     *
@@ -244,7 +313,7 @@
     * @param pageNum
     * @param result
     */
    private void getTodoTaskList(String processInsId, String taskName, int pageSize, int pageNum, Result result) {
    public void getTodoTaskList(String processInsId, String taskName, int pageSize, int pageNum, Result result) {
        TaskQuery taskQuery = taskService.createTaskQuery()
                .active()
                .processInstanceId(processInsId)