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-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java | 129 ++++++++++++++++++++++++++++++++++--------
1 files changed, 104 insertions(+), 25 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 e7ce000..1431db4 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,8 +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;
/**
@@ -20,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;
@@ -68,22 +90,79 @@
@TableField(exist = false)
private List<String> quarter;
-
+ //杞崲鎴愬瓧绗︿覆鐢ㄤ簬excel瀵煎嚭
public static CheckIndexCarVO getExcelVo(@NonNull CheckIndexCar checkIndexCar) {
CheckIndexCarVO checkIndexCarVo = new CheckIndexCarVO();
+ checkIndexCarVo.setNum(checkIndexCar.getNum());
+ checkIndexCarVo.setScore(checkIndexCar.getScore().setScale(2,RoundingMode.HALF_UP));
checkIndexCarVo.setDeptName(checkIndexCar.getDeptName());
- checkIndexCarVo.setDate(checkIndexCar.getDate());
- checkIndexCarVo.setExamineTagStr(CheckConstants.Examine_Tag_Province.equals(checkIndexCar.getExamineTag()) ? "鐪佸巺鑰冩牳" : "鍖哄幙鑰冩牳");
- checkIndexCarVo.setSiteOnlineText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setVehicleCaptureAccuracyText(checkIndexCar.getVehicleCaptureAccuracy().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setDeviceDirectoryConsistentText(checkIndexCar.getDeviceDirectoryConsistent().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setVehicleCaptureIntegrityText(checkIndexCar.getVehicleCaptureIntegrity().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setVehicleTimingAccuracyText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setVehicleUploadTimelinessText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setViewConnectStabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setVehicleUrlAvailabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setVehiclePictureAvailabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100))+"%");
- checkIndexCarVo.setVehicleInformationCollectionAccuracyText(checkIndexCar.getVehicleInformationCollectionAccuracy().multiply(new BigDecimal(100))+"%");
+ 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()) ? "鐪佸巺鑰冩牳" : CheckConstants.Examine_Tag_County.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) + "%");
return checkIndexCarVo;
}
+
+ /**
+ * 瀵煎嚭鏃剁敤浜庤绠楀钩鍧囧��
+ */
+ public static CheckIndexCar calculateAverage(List<CheckIndexCar> checkIndexCars) {
+ Integer numSum = 0;
+ 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) {
+ numSum = numSum + (car.getNum() == null? 0:car.getNum());
+ 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.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP));
+ checkIndexCar.setNum(numSum/checkIndexCars.size());
+ 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