From 1b2f1eb44d9f0de6b9238cfe314988a95c87344a Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 02 四月 2026 13:37:15 +0800
Subject: [PATCH] 绩效管理:工时汇总对接MES数据&人员考勤调整

---
 inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java b/inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java
index 687645e..425c559 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/util/HourDiffCalculator.java
@@ -2,6 +2,8 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.Objects;
 import java.util.regex.Pattern;
 
@@ -39,6 +41,41 @@
         return hourDiff.doubleValue();
     }
 
+    public static void main(String[] args) {
+        System.out.println(getHourDiff("07:38","19:26"));
+        LocalDateTime localDateTime = LocalDateTime.of(2026, 3, 30, 7, 38);
+        LocalDateTime localDateTime2 = LocalDateTime.of(2026, 3, 30, 19, 26);
+        System.out.println(getTimeDifference(localDateTime,localDateTime2));
+    }
+
+    /**
+     * 璁$畻涓や釜鏃堕棿鐨勫樊鍊硷紝杩斿洖 澶�:鏃�:鍒�:绉掞紙姣忎綅涓や綅鏁帮紝鏀寔璺ㄥぉ锛�
+     * @param startTime 寮�濮嬫椂闂�
+     * @param endTime   缁撴潫鏃堕棿
+     * @return 鏍煎紡鍖栧悗鐨勬椂闂村樊锛堜緥锛�01澶� 01鏃� 30鍒� 05绉掞級
+     */
+    public static String getTimeDifference(LocalDateTime startTime, LocalDateTime endTime) {
+        // 1. 璁$畻涓や釜鏃堕棿鐨�**鎬绘绉掑樊**锛堢粷瀵瑰�硷紝閬垮厤鏃堕棿椤哄簭闂锛�
+        long totalMillis = Math.abs(ChronoUnit.MILLIS.between(startTime, endTime));
+
+        // 2. 瀹氫箟鏃堕棿鍗曚綅甯搁噺锛堟绉掞級
+        final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;  // 1澶�
+        final long MILLIS_PER_HOUR = 60 * 60 * 1000;       // 1灏忔椂
+        final long MILLIS_PER_MINUTE = 60 * 1000;          // 1鍒嗛挓
+        final long MILLIS_PER_SECOND = 1000;               // 1绉�
+
+        // 3. 鎷嗗垎 澶┿�佹椂銆佸垎銆佺
+        long days = totalMillis / MILLIS_PER_DAY;
+        long remainingMillis = totalMillis % MILLIS_PER_DAY;
+        long hours = remainingMillis / MILLIS_PER_HOUR;
+        remainingMillis %= MILLIS_PER_HOUR;
+        long minutes = remainingMillis / MILLIS_PER_MINUTE;
+        long seconds = remainingMillis / MILLIS_PER_SECOND;
+
+        // 4. 鏍煎紡鍖栵細%02d = 鏁存暟琛ラ浂鍒颁袱浣嶆暟锛堟牳蹇冿紒婊¤冻绮剧‘鍒颁袱浣嶆暟瑕佹眰锛�
+        return String.format("%02d澶� %02d鏃� %02d鍒� %02d绉�", days, hours, minutes, seconds);
+    }
+
     /**
      * 鏍¢獙鏃堕棿鏍煎紡鏄惁涓篐H:mm
      */

--
Gitblit v1.9.3