From 656d6f8029f8bf9b2daa9dcc89101a879a70b860 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 03 十二月 2025 23:10:05 +0800
Subject: [PATCH] feat:优先添加执行人
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleMileageStatsServiceImpl.java | 37 +++++++++++++++++++++++++++++++++++--
1 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleMileageStatsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleMileageStatsServiceImpl.java
index 3cf88f0..e61b9f6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleMileageStatsServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleMileageStatsServiceImpl.java
@@ -181,8 +181,14 @@
@Override
public int batchCalculateMileageStats(Date statDate) {
try {
+ // 璁$畻鏌ヨ寮�濮嬫椂闂达紙7澶╁墠锛�
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(statDate);
+ calendar.add(Calendar.DAY_OF_MONTH, -7);
+ Date startTime = calendar.getTime();
+
// 鏌ヨ鎵�鏈夋椿璺冭溅杈�
- List<Long> vehicleIds = vehicleGpsMapper.selectActiveVehicleIds();
+ List<Long> vehicleIds = vehicleGpsMapper.selectActiveVehicleIds(startTime);
if (vehicleIds == null || vehicleIds.isEmpty()) {
logger.info("娌℃湁鎵惧埌娲昏穬杞﹁締");
@@ -246,6 +252,16 @@
// 璁$畻浠诲姟閲岀▼鍗犳瘮
if (result.totalMileage.compareTo(BigDecimal.ZERO) > 0) {
result.taskRatio = result.taskMileage.divide(result.totalMileage, 4, RoundingMode.HALF_UP);
+
+ // 鏁版嵁鏍¢獙:鍗犳瘮搴斿湪0-1涔嬮棿
+ if (result.taskRatio.compareTo(BigDecimal.ONE) > 0) {
+ logger.warn("浠诲姟閲岀▼鍗犳瘮寮傚父: {} (浠诲姟閲岀▼:{}, 鎬婚噷绋�:{}), 寮哄埗璁句负1.0",
+ result.taskRatio, result.taskMileage, result.totalMileage);
+ result.taskRatio = BigDecimal.ONE;
+ } else if (result.taskRatio.compareTo(BigDecimal.ZERO) < 0) {
+ logger.warn("浠诲姟閲岀▼鍗犳瘮涓鸿礋: {}, 寮哄埗璁句负0", result.taskRatio);
+ result.taskRatio = BigDecimal.ZERO;
+ }
}
// 淇濈暀涓や綅灏忔暟
@@ -405,6 +421,17 @@
BigDecimal taskRatio = BigDecimal.ZERO;
if (totalMileage.compareTo(BigDecimal.ZERO) > 0) {
taskRatio = taskMileage.divide(totalMileage, 4, RoundingMode.HALF_UP);
+
+ // 鏁版嵁鏍¢獙:鍗犳瘮搴斿湪0-1涔嬮棿,濡傛灉瓒呭嚭璇存槑鏁版嵁寮傚父
+ if (taskRatio.compareTo(BigDecimal.ONE) > 0) {
+ logger.warn("杞﹁締ID: {} 鏃ユ湡: {} 浠诲姟閲岀▼鍗犳瘮寮傚父: {} (浠诲姟閲岀▼:{}, 鎬婚噷绋�:{}), 寮哄埗璁句负1.0",
+ vehicleId, statDate, taskRatio, taskMileage, totalMileage);
+ taskRatio = BigDecimal.ONE;
+ } else if (taskRatio.compareTo(BigDecimal.ZERO) < 0) {
+ logger.warn("杞﹁締ID: {} 鏃ユ湡: {} 浠诲姟閲岀▼鍗犳瘮涓鸿礋: {}, 寮哄埗璁句负0",
+ vehicleId, statDate, taskRatio);
+ taskRatio = BigDecimal.ZERO;
+ }
}
// 5. 鏌ヨ鎴栧垱寤虹粺璁¤褰�
@@ -464,8 +491,14 @@
@Override
public int batchAggregateFromSegmentMileage(Date statDate) {
try {
+ // 璁$畻鏌ヨ寮�濮嬫椂闂达紙7澶╁墠锛�
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(statDate);
+ calendar.add(Calendar.DAY_OF_MONTH, -7);
+ Date startTime = calendar.getTime();
+
// 鏌ヨ鎵�鏈夋椿璺冭溅杈�
- List<Long> vehicleIds = vehicleGpsMapper.selectActiveVehicleIds();
+ List<Long> vehicleIds = vehicleGpsMapper.selectActiveVehicleIds(startTime);
if (vehicleIds == null || vehicleIds.isEmpty()) {
logger.info("娌℃湁鎵惧埌娲昏穬杞﹁締");
--
Gitblit v1.9.1