From 09faa36132c8cbada5327649875534ef01c1a3b1 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 11 十二月 2025 20:44:31 +0800
Subject: [PATCH] feat: 优化任务里程统计

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/VehicleGpsSegmentMileageTask.java |   48 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/VehicleGpsSegmentMileageTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/VehicleGpsSegmentMileageTask.java
index e1713ce..1ecff68 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/VehicleGpsSegmentMileageTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/VehicleGpsSegmentMileageTask.java
@@ -22,6 +22,44 @@
     
     @Autowired
     private ISysConfigService configService;
+    
+    /**
+     * 鎵цGPS鍒嗘閲岀▼琛ュ伩璁$畻
+     * 妫�鏌ユ渶杩慛澶╁唴鏈澶勭悊鐨凣PS鍧愭爣骞惰繘琛岃ˉ鍋胯绠�
+     * 寤鸿閰嶇疆涓烘瘡澶╂墽琛屼竴娆�,渚嬪鍑屾櫒2鐐�
+     */
+    public void executeCompensationCalculation() {
+        executeCompensationCalculation("7");
+    }
+    
+    /**
+     * 鎵цGPS鍒嗘閲岀▼琛ュ伩璁$畻(甯﹀弬鏁�)
+     * 
+     * @param params 鍙傛暟瀛楃涓�,鏍煎紡:鍥炴函澶╂暟(濡�:7琛ㄧず鍥炴函7澶�)
+     */
+    public void executeCompensationCalculation(String params) {
+        try {
+            // 瑙f瀽鍙傛暟:鍥炴函澶╂暟
+            int lookbackDays = 7; // 榛樿7澶�
+            if (params != null && !params.trim().isEmpty()) {
+                try {
+                    lookbackDays = Integer.parseInt(params.trim());
+                } catch (NumberFormatException e) {
+                    logger.warn("鍙傛暟鏍煎紡閿欒,浣跨敤榛樿鍊�7澶�: {}", params);
+                }
+            }
+            
+//            logger.info("========== 寮�濮嬫墽琛孏PS鍒嗘閲岀▼琛ュ伩璁$畻 - 鍥炴函{}澶� ==========", lookbackDays);
+            
+            // 鎵ц琛ュ伩璁$畻
+            int successCount = segmentMileageService.compensateCalculation(lookbackDays);
+            
+//            logger.info("========== GPS鍒嗘閲岀▼琛ュ伩璁$畻瀹屾垚 - 鎴愬姛澶勭悊 {} 杈嗚溅 ==========", successCount);
+            
+        } catch (Exception e) {
+            logger.error("GPS鍒嗘閲岀▼琛ュ伩璁$畻澶辫触", e);
+        }
+    }
 
     /**
      * 璁$畻鏈�杩戜竴娈垫椂闂寸殑GPS鍒嗘閲岀▼
@@ -59,19 +97,21 @@
                 }
             }
             
-            // 璁$畻鏃堕棿鑼冨洿
+            // 璁$畻鏃堕棿鑼冨洿锛堝悜鍓嶅洖婧寚瀹氬垎閽熸暟锛�
             Calendar cal = Calendar.getInstance();
             Date endTime = cal.getTime();
             cal.add(Calendar.MINUTE, -minutes);
             Date startTime = cal.getTime();
             
-            logger.info("寮�濮嬭绠桮PS鍒嗘閲岀▼ - 鏃堕棿鑼冨洿: {} 鍒� {}, 鏃堕棿娈甸棿闅�: {}鍒嗛挓", 
-                       startTime, endTime, segmentMinutes);
+            // 娉ㄦ剰锛氭鏂规硶鍙绠楁渶杩戞椂闂存鐨勬暟鎹紝鍘嗗彶閬楁紡鏁版嵁鐢辫ˉ鍋挎満鍒跺鐞�
+            
+//            logger.info("寮�濮嬭绠桮PS鍒嗘閲岀▼ - 鏃堕棿鑼冨洿: {} 鍒� {}, 鏃堕棿娈甸棿闅�: {}鍒嗛挓",
+//                       startTime, endTime, segmentMinutes);
             
             // 鎵归噺璁$畻
             int successCount = segmentMileageService.batchCalculateSegmentMileage(startTime, endTime);
             
-            logger.info("GPS鍒嗘閲岀▼璁$畻瀹屾垚 - 鎴愬姛澶勭悊 {} 杈嗚溅", successCount);
+//            logger.info("GPS鍒嗘閲岀▼璁$畻瀹屾垚 - 鎴愬姛澶勭悊 {} 杈嗚溅", successCount);
             
         } catch (Exception e) {
             logger.error("GPS鍒嗘閲岀▼璁$畻浠诲姟鎵ц澶辫触", e);

--
Gitblit v1.9.1