xiangpei
2025-02-14 12f73bafbe361f78d68a35de83ca3b3b4d4e0224
查询待办任务时,判断是否挂起状态
4个文件已修改
30 ■■■■■ 已修改文件
business/src/main/java/com/ycl/service/ProcessLogService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/ycl/common/enums/business/TaskStatusEnum.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/ProcessLogService.java
@@ -70,6 +70,15 @@
    Boolean taskDelegation(String processInstanceId, String taskId);
    /**
     * 检查任务是否挂起
     *
     * @param taskId 任务id
     * @param processInsId 流程实例id
     * @return   true 挂起的   false没挂起
     */
    Boolean taskIsHangup(String taskId, String processInsId);
    /**
     * 流程推进日志
     *
     * @param query
business/src/main/java/com/ycl/service/impl/ProcessLogServiceImpl.java
@@ -137,6 +137,15 @@
        return CollectionUtils.isNotEmpty(list);
    }
    @Override
    public Boolean taskIsHangup(String taskId, String processInsId) {
        Long num = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(ProcessLog::getProcessInsId, processInsId)
                .eq(ProcessLog::getTaskId, taskId)
                .in(ProcessLog::getEventType, ProcessLogEventTypeEnum.HANGUP, ProcessLogEventTypeEnum.CANCEL_HANGUP)
                .count();
        return num % 2 != 0;
    }
    @Override
    public Result projectProcessLogPage(ProcessLogQuery query) {
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -409,7 +409,10 @@
                    }
                }
            }
            // 检查是否挂起
            if (processLogService.taskIsHangup(task.getId(), task.getProcessInstanceId())) {
                taskVO.setTaskStatus(TaskStatusEnum.HANGUP);
            }
            this.distinctVo(taskVO);
            vos.add(taskVO);
        }
@@ -755,6 +758,10 @@
        for (Task task : taskList) {
            CustomerTaskVO taskVO = new CustomerTaskVO();
            this.setRuntimeTaskInfo(task, taskVO, projectId);
            // 检查是否挂起
            if (processLogService.taskIsHangup(task.getId(), task.getProcessInstanceId())) {
                taskVO.setTaskStatus(TaskStatusEnum.HANGUP);
            }
            vos.add(taskVO);
        }
        result.put("taskList", vos);
common/src/main/java/com/ycl/common/enums/business/TaskStatusEnum.java
@@ -14,7 +14,8 @@
    NOT_START("not_start", "未开始"),
    TODO("todo", "待办"),
    FINISHED("finished", "已完成")
    FINISHED("finished", "已完成"),
    HANGUP("HANGUP", "挂起"),
    ;
    private final String value;