xiangpei
2024-12-04 bd3abf9b8101a31e745de1ec76f6d98317b2de2e
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -79,6 +79,7 @@
    /**
     * 分页查询
     *
     * @param query
     * @return
     */
@@ -165,6 +166,7 @@
    /**
     * 获取流程详情
     *
     * @param projectId
     * @return
     */
@@ -205,7 +207,7 @@
        Result result = Result.ok();
        // 代办任务
        this.getTodoTaskList(projectProcess.getProcessInsId(),"", 5, 1, result);
        this.getTodoTaskList(projectProcess.getProcessInsId(), "", 5, 1, result);
        return result.data(detail);
    }
@@ -222,16 +224,16 @@
        Result ok = Result.ok();
        switch (query.getTaskType()) {
            case TaskTypeConstant.ALL:
                this.getAllUserTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName (), (int)query.getCurrentPage(), (int)query.getPageSize(), ok);
                this.getAllUserTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok);
                break;
            case TaskTypeConstant.TODO:
                this.getTodoTaskList(projectProcess.getProcessInsId(), query.getTaskName(), (int)query.getPageSize(), (int)query.getCurrentPage(), ok);
                this.getTodoTaskList(projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getPageSize(), (int) query.getCurrentPage(), ok);
                ok.data(ok.get("taskList"));
                break;
            case TaskTypeConstant.CURRENT:
                break;
            case TaskTypeConstant.REMAINING:
                this.getRemainingTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName (), (int)query.getCurrentPage(), (int)query.getPageSize(), ok);
                this.getRemainingTask(query.getProcessDefId(), projectProcess.getProcessInsId(), query.getTaskName(), (int) query.getCurrentPage(), (int) query.getPageSize(), ok);
                break;
            default:
                break;
@@ -293,20 +295,43 @@
                        }
                        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);
                    if (identityLink.getGroupId().startsWith("dept")) {   // 部门的id是加了前缀的如:dept:1
                        String[] split = identityLink.getGroupId().split(":");
                        if (split.length > 1) {
                            // 部门
                            SysDept dept = sysDeptService.selectDeptById(Long.parseLong(split[1]));
                            if (Objects.nonNull(dept)) {
                                taskVO.setHandlerUnitId(dept.getDeptId());
                                taskVO.setHandlerUnitName(dept.getDeptName());
                                taskVO.setHandlerName("暂未处理");
                                taskVO.setHandlerId(null);
                            }
                        }
                    } else {
                        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);
    }
    @Override
    public Result detailByProcessInsId(com.ycl.domain.query.TaskQuery query) {
        List<ProjectProcess> list = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(ProjectProcess::getProcessInsId, query.getProcessInsId())
                .eq(ProjectProcess::getProcessDefId, query.getProcessDefId())
                .list();
        return Result.ok().data(list);
    }
    /**
@@ -405,7 +430,7 @@
     * 获取所有任务
     *
     * @param processDefinitionId 流程运行id
     * @param processInsId 流程实例id
     * @param processInsId        流程实例id
     * @param pageNum
     * @param pageSize
     * @param result
@@ -602,7 +627,7 @@
     * 查询剩余事项(未开始的任务)数量
     *
     * @param processDefinitionId 流程定义id
     * @param processInsId 流程实例id
     * @param processInsId        流程实例id
     * @return
     */
    private Long getRemainingTaskNum(String processDefinitionId, String processInsId) {
@@ -687,7 +712,7 @@
                    }
                }
            }
        } else if (TaskStatusEnum.FINISHED.equals(taskVO.getTaskStatus())){
        } else if (TaskStatusEnum.FINISHED.equals(taskVO.getTaskStatus())) {
            for (IdentityLinkInfo identityLink : identityLinkInfos) {
                // 绑定的是用户,查出用户姓名、部门
                if (StringUtils.isNotBlank(identityLink.getUserId())) {
@@ -764,7 +789,7 @@
    /**
     * 获取流程节点数(总任务数,不包含开始、结束等特殊的,只统计UserTask类型的)
     *
     * @param processDefinitionId  流程定义id
     * @param processDefinitionId 流程定义id
     * @return
     */
    private Long getTotalTaskNum(String processDefinitionId) {
@@ -798,6 +823,6 @@
     * @return
     */
    private List<Task> getCurrentNodeTaskList(String processInstanceId) {
       return taskService.createTaskQuery().processDefinitionId(processInstanceId).list();
        return taskService.createTaskQuery().processDefinitionId(processInstanceId).list();
    }
}