From 3777ec066316f3c1d3ca36e2cae5b1e05bac4f6e Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 05 十二月 2025 17:11:39 +0800
Subject: [PATCH] 首页

---
 business/src/main/java/com/ycl/task/FlowableTask.java |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/business/src/main/java/com/ycl/task/FlowableTask.java b/business/src/main/java/com/ycl/task/FlowableTask.java
index f130f86..dd90247 100644
--- a/business/src/main/java/com/ycl/task/FlowableTask.java
+++ b/business/src/main/java/com/ycl/task/FlowableTask.java
@@ -26,6 +26,7 @@
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -123,9 +124,28 @@
 
                 String status = GREEN; // 榛樿鐘舵�佷负缁胯壊
                 String overtimeStatus = NORMAL;
+                Long overtimeDurationSec = null; // 瓒呮椂鏃堕暱锛堢锛屽師濮嬪�硷級
+                Double overtimeDurationHour = null; // 瓒呮椂鏃堕暱锛堝皬鏃讹紝杞崲鍚庯級
                 if (redTime != null && redTime != 0 && durationTime >= redTime) {
                     status = RED; // 濡傛灉瓒呰繃绾㈣壊鏃堕棿闃堝�硷紝鍒欒〃鏄庤浠诲姟瓒呮椂
                     overtimeStatus = OVERTIME;
+                    overtimeDurationSec = durationTime - redTime;
+                    // 2. 杞崲涓哄皬鏃讹紙淇濈暀1浣嶅皬鏁帮紝閬垮厤灏忔暟杩囧锛�
+                    overtimeDurationHour = Math.round((overtimeDurationSec / 3600.0) * 10) / 10.0;
+
+                    // 鏃堕棿鏍煎紡鍖栵紙Java鏍囧噯API锛屾棤渚濊禆锛�
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    String formattedStartTime = sdf.format(startTime);
+                    String formattedNow = sdf.format(now);
+                    // 杞崲绾㈢爜闃堝�间负灏忔椂锛堝彲閫夛紝鏃ュ織鏇存槗璇伙級
+                    Double redTimeHour = Math.round((redTime / 3600.0) * 10) / 10.0;
+                    Double durationTimeHour = Math.round((durationTime / 3600.0) * 10) / 10.0;
+
+                    // 鎵撳嵃瓒呮椂鏃堕暱锛堝皬鏃跺崟浣嶏級
+                    log.info("浠诲姟瓒呮椂棰勮锛氫换鍔D[{}]锛屾祦绋嬪疄渚婭D[{}]锛岃鏃惰捣鐐筟{}]锛屽綋鍓嶆椂闂碵{}]锛岀孩鐮侀槇鍊糩{}灏忔椂]锛屽疄闄呮湁鏁堣�楁椂[{}灏忔椂]锛岃秴鏃舵椂闀縖{}灏忔椂]",
+                            taskId, task.getProcessInstanceId(),
+                            formattedStartTime, formattedNow,
+                            redTimeHour, durationTimeHour, overtimeDurationHour);
                 }
 //                else if (yellowTime != null && yellowTime != 0 && durationTime >= yellowTime) {
 //                    status = YELLOW; // 鍚﹀垯锛屽鏋滆秴杩囬粍鑹叉椂闂撮槇鍊硷紝鍒欑姸鎬佷负榛勮壊
@@ -141,6 +161,7 @@
 //                    overtimeStatus = WILLOVERTIME; // 濡傛灉涓存湡(鍥哄畾瓒呮椂鍓�12灏忔椂涓轰复鏈�)
 //                }
                 map.get(status).add(task.getProcessInstanceId());
+                processCoding.setOverTimeTotal(String.valueOf(overtimeDurationHour));
                 processCoding.setStatus(status);
                 processCoding.setOvertimeStatus(overtimeStatus);
                 processCoding.setStartTaskTime(task.getCreateTime());

--
Gitblit v1.8.0