fuliqi
2025-01-20 79eb2ef5f0297982b885016fe48ac65918a1040c
business/src/main/java/com/ycl/task/FlowableTask.java
@@ -11,6 +11,7 @@
import com.ycl.mapper.ProjectProcessMapper;
import com.ycl.service.ProcessCodingService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskInfo;
import org.flowable.task.api.history.HistoricTaskInstance;
@@ -73,11 +74,26 @@
            }
            //判断是否超时
            Date startTime = startTaskMap.get(processCoding.getStartTaskId());
            Integer yellowTime = processCoding.getYellowTime();
            Integer redTime = processCoding.getRedTime();
            Long yellowTime = null;
            Long redTime = null;
            String yellowTimeStr = processCoding.getYellowTime();
            if (StringUtils.isNotBlank(yellowTimeStr)) {
                String[] yellowTimeArr = yellowTimeStr.split("-");
                // 解析天数和小时数
                int days = Integer.parseInt(yellowTimeArr[0]);
                int hours = Integer.parseInt(yellowTimeArr[1]);
                yellowTime = (days * 24L + hours) * 3600L;
            }
            String redTimeStr = processCoding.getRedTime();
            if (StringUtils.isNotBlank(redTimeStr)) {
                String[] redTimeArr = redTimeStr.split("-");
                // 解析天数和小时数
                int days = Integer.parseInt(redTimeArr[0]);
                int hours = Integer.parseInt(redTimeArr[1]);
                redTime = (days * 24L + hours) * 3600L;
            }
            if (startTime == null) continue;
//                long durationDay = (now.getTime() - startTime.getTime()) / (1000 * 60 * 60 * 24);
            long durationDay = (now.getTime() - startTime.getTime()) / (1000 * 60);
            long durationDay = (now.getTime() - startTime.getTime()) / 1000;
            String status = GREEN; // 默认状态为绿色
            if (redTime != null && durationDay >= redTime) {
                status = RED; // 如果超过红色时间阈值,则状态为红色