From 5f14844e81dade9e55725642f42c76568c5ec908 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 16 一月 2026 10:22:48 +0800
Subject: [PATCH] 修改超时时间显示

---
 business/src/main/java/com/ycl/service/impl/IndexHomeServiceImpl.java |   57 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 14 deletions(-)

diff --git a/business/src/main/java/com/ycl/service/impl/IndexHomeServiceImpl.java b/business/src/main/java/com/ycl/service/impl/IndexHomeServiceImpl.java
index f375bc5..4297f42 100644
--- a/business/src/main/java/com/ycl/service/impl/IndexHomeServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/IndexHomeServiceImpl.java
@@ -507,17 +507,11 @@
 
 
         List<Task> allRunningTasks  = taskService.createTaskQuery().active().list();
-
+        //杩欓噷 鑾峰緱 褰撳墠鐢ㄦ埛 鎵�灞炵殑 娴佺▼瀹炰緥ids闆嗗悎涓� 瀵瑰簲鐨勬鍦ㄨ繍琛岀殑浠诲姟銆�
         List<Task> targetRunningTasks = allRunningTasks.stream()
-                // 鍏抽敭鍖归厤锛氫换鍔$殑娴佺▼瀹氫箟ID 瀛樺湪浜� projectProcessList 鐨勬祦绋嬪畾涔塈D鍒楄〃涓�
+                // 鍏抽敭鍖归厤锛氫换鍔$殑娴佺▼瀹炰緥ID 瀛樺湪浜� targetProcessInsIds 鍒楄〃涓�
                 .filter(task -> targetProcessInsIds.contains(task.getProcessInstanceId()))
-                .filter(task -> {
-                    String assignee = task.getAssignee();
-                    log.info("assignee:{}",assignee);
-                    return assignee == null || userId.toString().equals(assignee);
-                })
                 .collect(Collectors.toList());
-
         List<TaskInfoVo> list = new ArrayList<>();
         // 鎸夋祦绋嬪疄渚媔d鍒嗙粍
         if (!CollectionUtils.isEmpty(targetRunningTasks)){
@@ -529,6 +523,7 @@
                     .eq(ProcessCoding::getDeleted, Boolean.FALSE)
                     .in(ProcessCoding::getTaskId, taskIds)
                     .list();
+
             log.info("processCodingList.size():{}", processCodingList.size()); // 鐪嬫棩蹇楁槸鍚︿负0
             Map<String, ProcessCoding> processCodingMap = new HashMap<>();
             //鎸塼askId杞崲涓簃ap鏂归潰涓嬮潰鑾峰彇
@@ -554,6 +549,25 @@
                                 }
                         ));
             }
+
+            //涓簍argetRunningTasks杩涜涓�娆℃帓搴� 鎸夊瓨鍦ㄨ秴鏃舵椂闂� 鐢辨悶鍒颁綆鎺掑簭
+            Map<String, ProcessCoding> finalProcessCodingMap = processCodingMap;
+            targetRunningTasks.sort((t1, t2) -> {
+                ProcessCoding pc1 = finalProcessCodingMap.get(t1.getId());
+                ProcessCoding pc2 = finalProcessCodingMap.get(t2.getId());
+
+                String status1 = (pc1 != null && pc1.getOvertimeStatus() != null) ? pc1.getOvertimeStatus() : ProcessOverTimeConstants.NORMAL;
+                String status2 = (pc2 != null && pc2.getOvertimeStatus() != null) ? pc2.getOvertimeStatus() : ProcessOverTimeConstants.NORMAL;
+
+                // 瀹氫箟鏉冮噸锛歰vertime=3, willOvertime=2, normal=1
+                int weight1 = ProcessOverTimeConstants.OVERTIME.equals(status1) ? 3 :
+                        (ProcessOverTimeConstants.WILLOVERTIME.equals(status1) ? 2 : 1);
+                int weight2 = ProcessOverTimeConstants.OVERTIME.equals(status2) ? 3 :
+                        (ProcessOverTimeConstants.WILLOVERTIME.equals(status2) ? 2 : 1);
+
+                return Integer.compare(weight2, weight1); // 鐢遍珮鍒颁綆鎺掑簭
+            });
+
             for (Task task : targetRunningTasks) {
 
                 TaskInfoVo taskVo = new TaskInfoVo();
@@ -637,16 +651,33 @@
                 }
                 //瓒呮椂鏃堕棿鍜屾鏁板湪 processCodingList涓�  杩欓噷闇�瑕佹洿鍏穞askId鏉ヨ幏寰楀搴斾俊鎭�
                 ProcessCoding processCoding = processCodingMap.get(task.getId());
+
                 //璁剧疆瓒呮椂淇℃伅
                 if (processCoding != null) {
-
+                    log.error("褰撳墠澶勭悊processCoding鐨刬d:{}",processCoding.getId());
                     String overTimeTotalStr = processCoding.getOverTimeTotal();
                     long overTimeTotal = 0L;
+                    log.error("褰撳墠澶勭悊瓒呮椂鏃堕棿锛歿}",overTimeTotalStr);
                     if (StringUtils.isNotBlank(overTimeTotalStr)) {
-                        try {
-                            overTimeTotal = Long.parseLong(overTimeTotalStr.trim());
-                        } catch (NumberFormatException e) {
 
+                        try {
+                            // 绗竴姝ワ細鍏堝幓闄ゅ瓧绗︿覆涓ょ绌虹櫧
+                            String trimStr = overTimeTotalStr.trim();
+                            // 绗簩姝ワ細鍏堣浆鎴怐ouble澶勭悊灏忔暟锛屽啀杞琇ong锛堝彲閫夋嫨鍥涜垗浜斿叆鎴栫洿鎺ュ彇鏁达級
+                            double doubleValue = Double.parseDouble(trimStr);
+                            // 鏂瑰紡1锛氱洿鎺ュ彇鏁存暟閮ㄥ垎锛�4778.3 鈫� 4778锛�
+                            overTimeTotal = (long) doubleValue;
+                            // 鏂瑰紡2锛氬洓鑸嶄簲鍏ワ紙4778.3 鈫� 4778锛�4778.6 鈫� 4779锛�
+                            // overTimeTotal = Math.round(doubleValue);
+
+                            log.error("鎵撳嵃瓒呮椂鎬绘椂闀夸笉涓簄ull鐨刬d:{}锛屽搴斿�納}锛堝師濮嬪�硷細{}锛�",
+                                    processCoding.getId(), overTimeTotal, trimStr);
+                        } catch (NumberFormatException e) {
+                            // 鍏抽敭锛氭墦鍗板紓甯歌鎯呭拰鍘熷鍊硷紝鏂逛究鎺掓煡
+                            log.error("杞崲瓒呮椂鏃堕棿澶辫触锛乮d:{}锛屽師濮嬪�硷細{}",
+                                    processCoding.getId(), overTimeTotalStr, e);
+                            // 鍙�夛細缁欓粯璁ゅ�硷紝閬垮厤鍚庣画浣跨敤overTimeTotal鏃跺嚭鐜扮┖鎸囬拡
+                            overTimeTotal = 0L; // 鎴栨牴鎹笟鍔¤缃粯璁ゅ�硷紝姣斿60000L锛�1鍒嗛挓锛�
                         }
                     }
                     String overTimeDesc = convertHoursToDayHourStr(overTimeTotal);
@@ -674,8 +705,6 @@
                 }
                 list.add(taskVo);
             }
-
-
         }
 
         return Result.ok().data(list);

--
Gitblit v1.8.0