From 3b0516a2959e25576e4f3fda697a3b025d06c8c9 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 24 六月 2025 14:09:07 +0800
Subject: [PATCH] 每日录像可用指标添加日志,修改大屏为查看当前月平均

---
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java |  327 +++++++++++++++++++++--------------------------------
 1 files changed, 131 insertions(+), 196 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 224f9e3..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
@@ -1,233 +1,168 @@
 package com.ycl.platform.domain.entity;
 
-import annotation.Excel;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ycl.platform.base.CheckIndex;
+import com.ycl.platform.domain.vo.CheckIndexCarVO;
+import constant.CheckConstants;
+import lombok.Data;
+import org.springframework.lang.NonNull;
+import utils.StringUtils;
 
 import java.math.BigDecimal;
-import java.util.Date;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.List;
 
 /**
  * 杞﹁締鎸囨爣姒傜巼鏁版嵁瀵硅薄 t_check_index_car
- * 
+ *
  * @author ruoyi
  * @date 2024-04-29
  */
-
-public class CheckIndexCar extends CheckIndex
-{
+@Data
+@TableName("t_check_index_car")
+public class CheckIndexCar extends CheckIndex {
     private static final long serialVersionUID = 1L;
 
-
-    /** 瑙嗗浘搴撳鎺ョǔ瀹氭�� */
-    @Excel(name = "瑙嗗浘搴撳鎺ョǔ瀹氭��")
+    /**
+     * 瑙嗗浘搴撳鎺ョǔ瀹氭��
+     */
+    @TableField("view_connect_stability")
     private BigDecimal viewConnectStability;
 
-    /** 鐐逛綅鍦ㄧ嚎鐜� */
-    @Excel(name = "鐐逛綅鍦ㄧ嚎鐜�")
+    /**
+     * 鐐逛綅鍦ㄧ嚎鐜�
+     */
+    @TableField("site_online")
     private BigDecimal siteOnline;
 
-    /** 鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼 */
-    @Excel(name = "鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼",width = 25)
+    /**
+     * 鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼
+     */
+    @TableField("device_directory_consistent")
     private BigDecimal deviceDirectoryConsistent;
 
-    /** 杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� */
-    @Excel(name = "杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�",width = 25)
+    /**
+     * 杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�
+     */
+    @TableField("vehicle_information_collection_accuracy")
     private BigDecimal vehicleInformationCollectionAccuracy;
 
-    /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬� */
-    @Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬�",width = 25)
+    /**
+     * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬�
+     */
+    @TableField("vehicle_capture_integrity")
     private BigDecimal vehicleCaptureIntegrity;
 
-    /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬� */
-    @Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬�",width = 25)
+    /**
+     * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬�
+     */
+    @TableField("vehicle_capture_accuracy")
     private BigDecimal vehicleCaptureAccuracy;
 
-    /** 杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬� */
-    @Excel(name = "杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�",width = 25)
+    /**
+     * 杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�
+     */
+    @TableField("vehicle_timing_accuracy")
     private BigDecimal vehicleTimingAccuracy;
 
-    /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬� */
-    @Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�",width = 25)
+    /**
+     * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�
+     */
+    @TableField("vehicle_upload_timeliness")
     private BigDecimal vehicleUploadTimeliness;
 
-    /** 杞﹁締鍗″彛璁惧url鍙敤鎬� */
-    @Excel(name = "杞﹁締鍗″彛璁惧url鍙敤鎬�",width = 25)
+    /**
+     * 杞﹁締鍗″彛璁惧url鍙敤鎬�
+     */
+    @TableField("vehicle_url_availability")
     private BigDecimal vehicleUrlAvailability;
 
-    /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬� */
-    @Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬�",width = 25)
+    /**
+     * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬�
+     */
+    @TableField("vehicle_picture_availability")
     private BigDecimal vehiclePictureAvailability;
 
-    @Override
-    public Long getId() {
-        return super.getId();
+    @ExcelIgnore
+    @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());
+        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;
     }
 
-    @Override
-    public void setId(Long id) {
-        super.setId(id);
-    }
-
-    @Override
-    public String getDate() {
-        return super.getDate();
-    }
-
-    @Override
-    public void setDate(String date) {
-        super.setDate(date);
-    }
-
-    @Override
-    public Date getCreateTime() {
-        return super.getCreateTime();
-    }
-
-    @Override
-    public void setCreateTime(Date createTime) {
-        super.setCreateTime(createTime);
-    }
-
-    @Override
-    public Long getDeptId() {
-        return super.getDeptId();
-    }
-
-    @Override
-    public void setDeptId(Long deptId) {
-        super.setDeptId(deptId);
-    }
-
-    @Override
-    public String getDeptName() {
-        return super.getDeptName();
-    }
-
-    @Override
-    public void setDeptName(String deptName) {
-        super.setDeptName(deptName);
-    }
-
-    @Override
-    public Long getExamineTag() {
-        return super.getExamineTag();
-    }
-
-    @Override
-    public void setExamineTag(Long examineTag) {
-        super.setExamineTag(examineTag);
-    }
-    public void setViewConnectStability(BigDecimal viewConnectStability) 
-    {
-        this.viewConnectStability = viewConnectStability;
-    }
-
-    public BigDecimal getViewConnectStability() 
-    {
-        return viewConnectStability;
-    }
-    public void setSiteOnline(BigDecimal siteOnline) 
-    {
-        this.siteOnline = siteOnline;
-    }
-
-    public BigDecimal getSiteOnline() 
-    {
-        return siteOnline;
-    }
-    public void setDeviceDirectoryConsistent(BigDecimal deviceDirectoryConsistent) 
-    {
-        this.deviceDirectoryConsistent = deviceDirectoryConsistent;
-    }
-
-    public BigDecimal getDeviceDirectoryConsistent() 
-    {
-        return deviceDirectoryConsistent;
-    }
-    public void setVehicleInformationCollectionAccuracy(BigDecimal vehicleInformationCollectionAccuracy) 
-    {
-        this.vehicleInformationCollectionAccuracy = vehicleInformationCollectionAccuracy;
-    }
-
-    public BigDecimal getVehicleInformationCollectionAccuracy() 
-    {
-        return vehicleInformationCollectionAccuracy;
-    }
-    public void setVehicleCaptureIntegrity(BigDecimal vehicleCaptureIntegrity) 
-    {
-        this.vehicleCaptureIntegrity = vehicleCaptureIntegrity;
-    }
-
-    public BigDecimal getVehicleCaptureIntegrity() 
-    {
-        return vehicleCaptureIntegrity;
-    }
-    public void setVehicleCaptureAccuracy(BigDecimal vehicleCaptureAccuracy) 
-    {
-        this.vehicleCaptureAccuracy = vehicleCaptureAccuracy;
-    }
-
-    public BigDecimal getVehicleCaptureAccuracy() 
-    {
-        return vehicleCaptureAccuracy;
-    }
-    public void setVehicleTimingAccuracy(BigDecimal vehicleTimingAccuracy) 
-    {
-        this.vehicleTimingAccuracy = vehicleTimingAccuracy;
-    }
-
-    public BigDecimal getVehicleTimingAccuracy() 
-    {
-        return vehicleTimingAccuracy;
-    }
-    public void setVehicleUploadTimeliness(BigDecimal vehicleUploadTimeliness) 
-    {
-        this.vehicleUploadTimeliness = vehicleUploadTimeliness;
-    }
-
-    public BigDecimal getVehicleUploadTimeliness() 
-    {
-        return vehicleUploadTimeliness;
-    }
-    public void setVehicleUrlAvailability(BigDecimal vehicleUrlAvailability) 
-    {
-        this.vehicleUrlAvailability = vehicleUrlAvailability;
-    }
-
-    public BigDecimal getVehicleUrlAvailability() 
-    {
-        return vehicleUrlAvailability;
-    }
-    public void setVehiclePictureAvailability(BigDecimal vehiclePictureAvailability) 
-    {
-        this.vehiclePictureAvailability = vehiclePictureAvailability;
-    }
-
-
-    public BigDecimal getVehiclePictureAvailability()
-    {
-        return vehiclePictureAvailability;
-    }
-
-    @Override
-    public String toString() {
-        return "CheckIndexCar{" +
-                "id=" + id +
-                ", date='" + date + '\'' +
-                ", createTime=" + createTime +
-                ", deptId=" + deptId +
-                ", deptName='" + deptName + '\'' +
-                ", examineTag=" + examineTag +
-                ", viewConnectStability=" + viewConnectStability +
-                ", siteOnline=" + siteOnline +
-                ", deviceDirectoryConsistent=" + deviceDirectoryConsistent +
-                ", vehicleInformationCollectionAccuracy=" + vehicleInformationCollectionAccuracy +
-                ", vehicleCaptureIntegrity=" + vehicleCaptureIntegrity +
-                ", vehicleCaptureAccuracy=" + vehicleCaptureAccuracy +
-                ", vehicleTimingAccuracy=" + vehicleTimingAccuracy +
-                ", vehicleUploadTimeliness=" + vehicleUploadTimeliness +
-                ", vehicleUrlAvailability=" + vehicleUrlAvailability +
-                ", vehiclePictureAvailability=" + vehiclePictureAvailability +
-                '}';
+    /**
+     * 瀵煎嚭鏃剁敤浜庤绠楀钩鍧囧��
+     */
+    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