zxl
2025-03-24 89144af315cdd0ce9ad75f4aead298aebd278df7
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -304,6 +304,7 @@
        taskStatistics.setTimelyFinishedTaskNum(this.getTimelyTaskNum(projectProcess.getProcessInsId()));
        taskStatistics.setOvertimeTaskNum(this.getOvertimeTaskNum(projectProcess.getProcessInsId()));
        taskStatistics.setWillOvertimeTaskNum(this.getWillOvertimeTaskNum(projectProcess.getProcessInsId()));
        taskStatistics.setToleranceNum(this.getToleranceTask(projectProcess.getProcessInsId()));
//        taskStatistics.setCurrentTask(this.getCurrentNodeTaskList(projectProcess.getProcessInstanceId()));
        detail.setStatistics(taskStatistics);
@@ -312,6 +313,32 @@
        // 代办任务
        this.getTodoTaskList(projectProcess.getProjectId(), projectProcess.getProcessInsId(), "", 5, 1, result);
        return result.data(detail);
    }
    /**
     * 容缺任务计数
     * @param processInsId
     * @return
     */
    private Long getToleranceTask(String processInsId){
        // 查出容缺过的任务
        List<ProcessLog> allWaitTaskList = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
                .eq(ProcessLog::getProcessInsId, processInsId)
                .eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.WAIT)
                .orderByDesc(ProcessLog::getGmtCreate)
                .list();
        // 排除容缺后又完成的任务
        List<ProcessLog> finishedTaskList = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
                .eq(ProcessLog::getProcessInsId, processInsId)
                .eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.FINISHED)
                .list();
        List<String> finishedTaskIds = finishedTaskList.stream().map(ProcessLog::getTaskId).distinct().collect(Collectors.toList());
        // 得到未完成的容缺任务
        List<String> waitTaskIds = allWaitTaskList.stream().filter(log -> !finishedTaskIds.contains(log.getTaskId())).map(ProcessLog::getTaskId).collect(Collectors.toList());
        if (CollectionUtils.isEmpty(waitTaskIds)) {
            return 0L;
        }
        return Long.valueOf(waitTaskIds.size());
    }
    @Override
@@ -1736,6 +1763,8 @@
        return Long.valueOf(tList.size());
    }
    /**
     * 查询即将超时的任务
     *
@@ -1818,6 +1847,7 @@
                                             Integer pageNum,
                                             Integer pageSize,
                                             Result result) {
        // 查出容缺过的任务
        List<ProcessLog> allWaitTaskList = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
                .eq(ProcessLog::getProcessInsId, processInsId)