From 364adbc9a93a396b74e154f910c2a0a72bfb1a0f Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 29 十一月 2025 22:10:41 +0800
Subject: [PATCH] feat: 更新车辆里程统计
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/VehicleGpsSegmentMileageTask.java | 44 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 43 insertions(+), 1 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..371896a 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
@@ -2,6 +2,7 @@
import java.util.Calendar;
import java.util.Date;
+import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +23,45 @@
@Autowired
private ISysConfigService configService;
+
+ /**
+ * 鏈嶅姟鍚姩鏃舵墽琛岃ˉ鍋胯绠�
+ * 妫�鏌ユ渶杩�7澶╁唴鏈澶勭悊鐨凣PS鍧愭爣骞惰繘琛岃ˉ鍋胯绠�
+ */
+ @PostConstruct
+ public void init() {
+ // 鍚姩鍚庡欢杩熸墽琛岋紝閬垮厤褰卞搷鏈嶅姟鍚姩閫熷害
+ new Thread(() -> {
+ try {
+ // 寤惰繜30绉掑惎鍔紝纭繚鎵�鏈夋湇鍔″凡灏辩华
+ Thread.sleep(30000);
+
+ logger.info("========== 寮�濮嬫墽琛孏PS鍒嗘閲岀▼琛ュ伩璁$畻 ==========");
+
+ // 鑾峰彇閰嶇疆鐨勫洖婧ぉ鏁帮紝榛樿7澶�
+ int lookbackDays = 7;
+ String lookbackConfig = configService.selectConfigByKey("gps.mileage.compensation.days");
+ if (lookbackConfig != null && !lookbackConfig.isEmpty()) {
+ try {
+ lookbackDays = Integer.parseInt(lookbackConfig);
+ } catch (NumberFormatException e) {
+ logger.warn("琛ュ伩鍥炴函澶╂暟閰嶇疆閿欒锛屼娇鐢ㄩ粯璁ゅ��7澶�");
+ }
+ }
+
+ // 鎵ц琛ュ伩璁$畻
+ int successCount = segmentMileageService.compensateCalculation(lookbackDays);
+
+ logger.info("========== GPS鍒嗘閲岀▼琛ュ伩璁$畻瀹屾垚 - 鎴愬姛澶勭悊 {} 杈嗚溅 ==========", successCount);
+
+ } catch (InterruptedException e) {
+ logger.error("琛ュ伩璁$畻绾跨▼琚腑鏂�", e);
+ Thread.currentThread().interrupt();
+ } catch (Exception e) {
+ logger.error("GPS鍒嗘閲岀▼琛ュ伩璁$畻澶辫触", e);
+ }
+ }, "GPS-Compensation-Thread").start();
+ }
/**
* 璁$畻鏈�杩戜竴娈垫椂闂寸殑GPS鍒嗘閲岀▼
@@ -59,12 +99,14 @@
}
}
- // 璁$畻鏃堕棿鑼冨洿
+ // 璁$畻鏃堕棿鑼冨洿锛堝悜鍓嶅洖婧寚瀹氬垎閽熸暟锛�
Calendar cal = Calendar.getInstance();
Date endTime = cal.getTime();
cal.add(Calendar.MINUTE, -minutes);
Date startTime = cal.getTime();
+ // 娉ㄦ剰锛氭鏂规硶鍙绠楁渶杩戞椂闂存鐨勬暟鎹紝鍘嗗彶閬楁紡鏁版嵁鐢辫ˉ鍋挎満鍒跺鐞�
+
logger.info("寮�濮嬭绠桮PS鍒嗘閲岀▼ - 鏃堕棿鑼冨洿: {} 鍒� {}, 鏃堕棿娈甸棿闅�: {}鍒嗛挓",
startTime, endTime, segmentMinutes);
--
Gitblit v1.9.1