buhuazhen
4 天以前 f770e38deeea8eb543c1a8c740198d3778c65262
feat 页面显示巡检状态
已修改1个文件
32 ■■■■■ 文件已修改
src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
@@ -239,33 +239,45 @@
    /**
     * 计算巡检任务状态
     * 优先级:已过期 > 巡检中 > 待巡检
     * 优先级:已完成巡检 > 巡检中(已过期) > 巡检中 > 已过期 > 待巡检
     * @param inspectionTask 巡检任务
     * @param timingTaskMap 定时任务Map
     * @param now 当前时间
     * @return 状态:EXPIRED-已过期,IN_PROGRESS-巡检中,PENDING-待巡检
     * @return 状态:COMPLETED-已完成巡检,IN_PROGRESS_EXPIRED-巡检中(已过期),IN_PROGRESS-巡检中,EXPIRED-已过期,PENDING-待巡检
     */
    private String calculateStatus(InspectionTask inspectionTask, Map<Long, TimingTask> timingTaskMap, LocalDateTime now) {
        // 1. 判断是否已过期
        if(inspectionTask.getTimingTaskId() == null){
            return "EXPIRED";
        }
        boolean isExpired = false;
        // 判断是否已过期
        if (inspectionTask.getTimingTaskId() != null) {
            TimingTask timingTask = timingTaskMap.get(inspectionTask.getTimingTaskId());
            if (timingTask != null && timingTask.getNextExecutionTime() != null) {
                if (now.isAfter(timingTask.getNextExecutionTime())) {
                    return "EXPIRED";
                }
                isExpired = now.isAfter(timingTask.getNextExecutionTime());
            }
        }else {
            return "EXPIRED";
        }
        // 1. 判断是否已完成巡检(三个异常字段都不为null)
        if (inspectionTask.getHasExceptionBefore() != null
                && inspectionTask.getHasExceptionAfter() != null
                && inspectionTask.getHasExceptionIssue() != null) {
            return "COMPLETED";
        }
        // 2. 判断是否巡检中(任一异常字段不为null)
        if (inspectionTask.getHasExceptionBefore() != null
                || inspectionTask.getHasExceptionAfter() != null
                || inspectionTask.getHasExceptionIssue() != null) {
            return "IN_PROGRESS";
            return isExpired ? "IN_PROGRESS_EXPIRED" : "IN_PROGRESS";
        }
        // 3. 待巡检
        // 3. 已过期
        if (isExpired) {
            return "EXPIRED";
        }
        // 4. 待巡检
        return "PENDING";
    }