fuliqi
2025-01-20 79eb2ef5f0297982b885016fe48ac65918a1040c
赋码时间格式改为d-h
3个文件已修改
32 ■■■■ 已修改文件
business/src/main/java/com/ycl/listener/flowable/FlowableOverTimeListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/task/FlowableTask.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flowable/src/main/java/com/ycl/domain/entity/ProcessCoding.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/listener/flowable/FlowableOverTimeListener.java
@@ -70,10 +70,10 @@
            processCoding.setStatus(GREEN);
        }
        if (黄码时长 != null && 黄码时长.getValue(delegateTask) != null) {
            processCoding.setYellowTime(Integer.parseInt(黄码时长.getValue(delegateTask).toString()));
            processCoding.setYellowTime(黄码时长.getValue(delegateTask).toString());
        }
        if (红码时长 != null && 红码时长.getValue(delegateTask) != null) {
            processCoding.setRedTime(Integer.parseInt(红码时长.getValue(delegateTask).toString()));
            processCoding.setRedTime(红码时长.getValue(delegateTask).toString());
        }
        //设置开始节点
        if (开始计时节点 != null && 开始计时节点.getValue(delegateTask) != null) {
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; // 如果超过红色时间阈值,则状态为红色
flowable/src/main/java/com/ycl/domain/entity/ProcessCoding.java
@@ -35,11 +35,11 @@
    @TableField("yellow_time")
    /** 变黄码的天数 */
    private Integer yellowTime;
    private String yellowTime;
    @TableField("red_time")
    /** 变红码的天数 */
    private Integer redTime;
    private String redTime;
    @TableField("status")
    /** 任务状态 */