xiangpei
2025-03-25 87ba41eebdf94722c51cce4470fbcc4b1ce18a2d
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -1407,6 +1407,12 @@
                .processInstanceId(processInsId)
                .finished()
                .list();
        // 排除跳过、容缺的任务,因为这两个操作都会完成任务而产生历史任务
        List<String> jumpAndWaitTaskIds = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
                .eq(ProcessLog::getProcessInsId, processInsId)
                .in(ProcessLog::getEventType, ProcessLogEventTypeEnum.JUMP, ProcessLogEventTypeEnum.WAIT)
                .list().stream().map(ProcessLog::getTaskId).collect(Collectors.toList());
        hisTaskList = hisTaskList.stream().filter(hisTask -> jumpAndWaitTaskIds.indexOf(hisTask.getId()) == -1).collect(Collectors.toList());
        hisTaskList = this.distinctHisTask(hisTaskList);
        if (CollectionUtils.isEmpty(hisTaskList)) {
            return 0L;
@@ -1466,7 +1472,13 @@
            result.total(0);
            return new ArrayList<>();
        }
        // 排除跳过、容缺的任务,因为这两个操作都会完成任务而产生历史任务
        List<String> jumpAndWaitTaskIds = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
                .eq(ProcessLog::getProcessInsId, processInsId)
                .eq(ProcessLog::getProjectId, projectId)
                .in(ProcessLog::getEventType, ProcessLogEventTypeEnum.JUMP, ProcessLogEventTypeEnum.WAIT)
                .list().stream().map(ProcessLog::getTaskId).collect(Collectors.toList());
        hisTaskList = hisTaskList.stream().filter(hisTask -> jumpAndWaitTaskIds.indexOf(hisTask.getId()) == -1).collect(Collectors.toList());
        List<String> hisTaskKeys = hisTaskList.stream().map(HistoricTaskInstance::getTaskDefinitionKey).distinct().collect(Collectors.toList());
        Map<String, HistoricTaskInstance> hisTaskMap = this.distinctHisTask(hisTaskList).stream().collect(Collectors.toMap(HistoricTaskInstance::getTaskDefinitionKey, his -> his));
        // 查出时间正常的任务key