From c83101eb62f5d4906b9c01ceea6b21a37f9e84d8 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 18 十一月 2025 09:24:53 +0800
Subject: [PATCH] bug修复
---
ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java | 28 +++++++++++++++++++++++-----
1 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
index 4b9b085..98c4b3e 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
@@ -90,11 +90,21 @@
int provinceTotalSites = 0;
//鍖哄幙鎬荤偣浣嶆暟
int countyTotalSites = 0;
+ //鍚屾湡鐪佸巺鎶撴媿閲�
+ int lastProvinceSnap = 0;
+ //鍚屾湡鍖哄幙鎶撴媿閲�
+ int lastCountySnap = 0;
//浠庡瓧鍏搁噷绛涢�夌渷鍘呭��
- int lastProvinceSnap = Integer.parseInt(lastSnap.stream().filter(sysDictData -> CheckConstants.SNAP_PROVINCE_CAR.equals(sysDictData.getDictLabel())).findFirst().get().getDictValue());
+ Optional<SysDictData> first = lastSnap.stream().filter(sysDictData -> CheckConstants.SNAP_PROVINCE_CAR.equals(sysDictData.getDictLabel())).findFirst();
+ if (first.isPresent()) {
+ lastProvinceSnap = Integer.parseInt(first.get().getDictValue());
+ }
//浠庡瓧鍏搁噷绛涢�夊尯鍘垮��
- int lastCountySnap = Integer.parseInt(lastSnap.stream().filter(sysDictData -> CheckConstants.SNAP_COUNTY_CAR.equals(sysDictData.getDictLabel())).findFirst().get().getDictValue());;
-
+ Optional<SysDictData> first2 = lastSnap.stream().filter(sysDictData -> CheckConstants.SNAP_COUNTY_CAR.equals(sysDictData.getDictLabel())).findFirst();
+ if (first2.isPresent()) {
+ lastCountySnap = Integer.parseInt(first2.get().getDictValue());
+ }
+ log.info("鐪佸巺鍚屾湡锛歿}锛屽尯鍘垮悓鏈燂細{}",lastProvinceSnap,lastCountySnap);
//璁$畻鎬绘暟
for (Map.Entry<String, AreaStats> entry : areaStatsMap.entrySet()) {
String key = entry.getKey();
@@ -105,6 +115,7 @@
countyTotalSites += value.totalSites;
}
}
+ log.info("鐪佸巺鎬绘暟锛歿}锛屽尯鍘挎�绘暟锛歿}",provinceTotalSites,countyTotalSites);
//鍔犳潈鎿嶄綔,琛ュ厖鍚屾湡鎶撴媿閲�
for (Map.Entry<String, AreaStats> entry : areaStatsMap.entrySet()) {
String key = entry.getKey();
@@ -114,16 +125,23 @@
if (value.totalSites == 0) {
value.lastSnapCount = 0;
} else {
- value.lastSnapCount = (value.totalSites / provinceTotalSites) * lastProvinceSnap;
+ BigDecimal result = new BigDecimal(value.totalSites)
+ .divide(new BigDecimal(provinceTotalSites), 2, RoundingMode.HALF_UP)
+ .multiply(new BigDecimal(lastProvinceSnap));
+ value.lastSnapCount = result.setScale(0, RoundingMode.HALF_UP).intValue();
}
} else {
//鍖哄幙
if (value.totalSites == 0) {
value.lastSnapCount = 0;
} else {
- value.lastSnapCount = (value.totalSites / countyTotalSites) * lastCountySnap;
+ BigDecimal result = new BigDecimal(value.totalSites)
+ .divide(new BigDecimal(countyTotalSites), 2, RoundingMode.HALF_UP)
+ .multiply(new BigDecimal(lastCountySnap));
+ value.lastSnapCount = result.setScale(0, RoundingMode.HALF_UP).intValue();
}
}
+ log.info("璁$畻鐨勬暟鎹細鎬荤偣浣嶆暟锛歿}锛屾�绘姄鎷嶉噺锛歿}锛屽悓鏈熸姄鎷嶉噺锛歿}",value.totalSites,value.totalDataSum,value.lastSnapCount);
}
}
--
Gitblit v1.8.0