From 3848c5677aefdb201c24d615a7c2ad03fd5154e6 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 06 九月 2024 00:18:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java |  120 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 97 insertions(+), 23 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java
index d7fda06..a6a0591 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java
@@ -8,9 +8,11 @@
 import constant.CheckConstants;
 import lombok.Data;
 import org.springframework.lang.NonNull;
+import utils.StringUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.List;
 
 /**
@@ -21,47 +23,66 @@
  */
 @Data
 @TableName("t_check_index_car")
-public class CheckIndexCar extends CheckIndex
-{
+public class CheckIndexCar extends CheckIndex {
     private static final long serialVersionUID = 1L;
 
-    /** 瑙嗗浘搴撳鎺ョǔ瀹氭�� */
+    /**
+     * 瑙嗗浘搴撳鎺ョǔ瀹氭��
+     */
     @TableField("view_connect_stability")
     private BigDecimal viewConnectStability;
 
-    /** 鐐逛綅鍦ㄧ嚎鐜� */
+    /**
+     * 鐐逛綅鍦ㄧ嚎鐜�
+     */
     @TableField("site_online")
     private BigDecimal siteOnline;
 
-    /** 鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼 */
+    /**
+     * 鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼
+     */
     @TableField("device_directory_consistent")
     private BigDecimal deviceDirectoryConsistent;
 
-    /** 杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� */
+    /**
+     * 杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�
+     */
     @TableField("vehicle_information_collection_accuracy")
     private BigDecimal vehicleInformationCollectionAccuracy;
 
-    /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬� */
+    /**
+     * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬�
+     */
     @TableField("vehicle_capture_integrity")
     private BigDecimal vehicleCaptureIntegrity;
 
-    /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬� */
+    /**
+     * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬�
+     */
     @TableField("vehicle_capture_accuracy")
     private BigDecimal vehicleCaptureAccuracy;
 
-    /** 杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬� */
+    /**
+     * 杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�
+     */
     @TableField("vehicle_timing_accuracy")
     private BigDecimal vehicleTimingAccuracy;
 
-    /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬� */
+    /**
+     * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�
+     */
     @TableField("vehicle_upload_timeliness")
     private BigDecimal vehicleUploadTimeliness;
 
-    /** 杞﹁締鍗″彛璁惧url鍙敤鎬� */
+    /**
+     * 杞﹁締鍗″彛璁惧url鍙敤鎬�
+     */
     @TableField("vehicle_url_availability")
     private BigDecimal vehicleUrlAvailability;
 
-    /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬� */
+    /**
+     * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬�
+     */
     @TableField("vehicle_picture_availability")
     private BigDecimal vehiclePictureAvailability;
 
@@ -72,19 +93,72 @@
     //杞崲鎴愬瓧绗︿覆鐢ㄤ簬excel瀵煎嚭
     public static CheckIndexCarVO getExcelVo(@NonNull CheckIndexCar checkIndexCar) {
         CheckIndexCarVO checkIndexCarVo = new CheckIndexCarVO();
+        checkIndexCarVo.setScore(checkIndexCar.getScore());
         checkIndexCarVo.setDeptName(checkIndexCar.getDeptName());
-        checkIndexCarVo.setCreateTime(checkIndexCar.getCreateTime());
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        //閬垮厤鍚堣琛屾姤閿�(鍚堣鏁版嵁 缂哄皯createTimeStr瀛楁 鐩存帴灏哻reateTimeStr璁剧疆涓�"鍚堣")
+        if (StringUtils.isEmpty(checkIndexCar.getCreateTimeStr())) {
+            checkIndexCarVo.setCreateTimeStr(format.format(checkIndexCar.getCreateTime()));
+        }else {
+            checkIndexCarVo.setCreateTimeStr(checkIndexCar.getCreateTimeStr());
+        }
         checkIndexCarVo.setExamineTagStr(CheckConstants.Examine_Tag_Province.equals(checkIndexCar.getExamineTag()) ? "鐪佸巺鑰冩牳" : "鍖哄幙鑰冩牳");
-        checkIndexCarVo.setSiteOnlineText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setVehicleCaptureAccuracyText(checkIndexCar.getVehicleCaptureAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setDeviceDirectoryConsistentText(checkIndexCar.getDeviceDirectoryConsistent().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setVehicleCaptureIntegrityText(checkIndexCar.getVehicleCaptureIntegrity().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setVehicleTimingAccuracyText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setVehicleUploadTimelinessText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setViewConnectStabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setVehicleUrlAvailabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setVehiclePictureAvailabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
-        checkIndexCarVo.setVehicleInformationCollectionAccuracyText(checkIndexCar.getVehicleInformationCollectionAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)+"%");
+        checkIndexCarVo.setSiteOnlineText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setVehicleCaptureAccuracyText(checkIndexCar.getVehicleCaptureAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setDeviceDirectoryConsistentText(checkIndexCar.getDeviceDirectoryConsistent().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setVehicleCaptureIntegrityText(checkIndexCar.getVehicleCaptureIntegrity().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setVehicleTimingAccuracyText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setVehicleUploadTimelinessText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setViewConnectStabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setVehicleUrlAvailabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setVehiclePictureAvailabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexCarVo.setVehicleInformationCollectionAccuracyText(checkIndexCar.getVehicleInformationCollectionAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
         return checkIndexCarVo;
     }
+
+    /**
+     * 瀵煎嚭鏃剁敤浜庤绠楀钩鍧囧��
+     */
+    public static CheckIndexCar calculateAverage(List<CheckIndexCar> checkIndexCars) {
+        BigDecimal scoreSum = BigDecimal.ZERO;
+        BigDecimal viewConnectStabilitySum = BigDecimal.ZERO;
+        BigDecimal siteOnlineSum = BigDecimal.ZERO;
+        BigDecimal deviceDirectoryConsistentSum = BigDecimal.ZERO;
+        BigDecimal vehicleInformationCollectionAccuracySum = BigDecimal.ZERO;
+        BigDecimal vehicleCaptureIntegritySum = BigDecimal.ZERO;
+        BigDecimal vehicleCaptureAccuracySum = BigDecimal.ZERO;
+        BigDecimal vehicleTimingAccuracySum = BigDecimal.ZERO;
+        BigDecimal vehicleUploadTimelinessSum = BigDecimal.ZERO;
+        BigDecimal vehicleUrlAvailabilitySum = BigDecimal.ZERO;
+        BigDecimal vehiclePictureAvailabilitySum = BigDecimal.ZERO;
+        for (CheckIndexCar car : checkIndexCars) {
+            scoreSum = scoreSum.add(car.getScore() == null ? BigDecimal.ZERO : car.getScore());
+            viewConnectStabilitySum = viewConnectStabilitySum.add(car.getViewConnectStability());
+            siteOnlineSum = siteOnlineSum.add(car.getSiteOnline());
+            deviceDirectoryConsistentSum = deviceDirectoryConsistentSum.add(car.getDeviceDirectoryConsistent());
+            vehicleInformationCollectionAccuracySum = vehicleInformationCollectionAccuracySum.add(car.getVehicleInformationCollectionAccuracy());
+            vehicleCaptureIntegritySum = vehicleCaptureIntegritySum.add(car.getVehicleCaptureIntegrity());
+            vehicleCaptureAccuracySum = vehicleCaptureAccuracySum.add(car.getVehicleCaptureAccuracy());
+            vehicleTimingAccuracySum = vehicleTimingAccuracySum.add(car.getVehicleTimingAccuracy());
+            vehicleUploadTimelinessSum = vehicleUploadTimelinessSum.add(car.getVehicleUploadTimeliness());
+            vehicleUrlAvailabilitySum = vehicleUrlAvailabilitySum.add(car.getVehicleUrlAvailability());
+            vehiclePictureAvailabilitySum = vehiclePictureAvailabilitySum.add(car.getVehiclePictureAvailability());
+        }
+        CheckIndexCar checkIndexCar = new CheckIndexCar();
+        checkIndexCar.setCreateTimeStr("鍚堣");
+        checkIndexCar.setDeptName(checkIndexCars.get(0).getDeptName());
+        checkIndexCar.setExamineTag(checkIndexCars.get(0).getExamineTag());
+        checkIndexCar.setScore(scoreSum);
+        checkIndexCar.setViewConnectStability(viewConnectStabilitySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setSiteOnline(siteOnlineSum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setDeviceDirectoryConsistent(deviceDirectoryConsistentSum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setVehicleInformationCollectionAccuracy(vehicleInformationCollectionAccuracySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setVehicleCaptureIntegrity(vehicleCaptureIntegritySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setVehicleCaptureAccuracy(vehicleCaptureAccuracySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setVehicleTimingAccuracy(vehicleTimingAccuracySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setVehicleUploadTimeliness(vehicleUploadTimelinessSum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setVehicleUrlAvailability(vehicleUrlAvailabilitySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        checkIndexCar.setVehiclePictureAvailability(vehiclePictureAvailabilitySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+        return checkIndexCar;
+    }
 }

--
Gitblit v1.8.0