From 6371f17b2056b6e4010cbdc60965d5eac12a5d98 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 15 十月 2024 18:27:29 +0800
Subject: [PATCH] 考核导出bug,人脸上传及时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