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/CheckIndexVideo.java |  121 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 106 insertions(+), 15 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
index 982515a..0c3448d 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
@@ -5,9 +5,16 @@
 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 com.ycl.platform.domain.vo.CheckIndexVideoVO;
+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.Date;
 import java.util.List;
 
@@ -25,98 +32,84 @@
     /**
      * 骞冲彴鍦ㄧ嚎鐜�
      */
-    @Excel(name = "骞冲彴鍦ㄧ嚎鐜�")
     @TableField("platform_online")
     private BigDecimal platformOnline;
 
     /**
      * 涓�鏈轰竴妗e悎鏍肩巼
      */
-    @Excel(name = "涓�鏈轰竴妗e悎鏍肩巼")
     @TableField("monitor_qualification")
     private BigDecimal monitorQualification;
 
     /**
      * 妗f鑰冩牳姣�
      */
-    @Excel(name = "涓�鏈轰竴妗f敞鍐岀巼")
     @TableField("monitor_registration")
     private BigDecimal monitorRegistration;
 
     /**
      * 妗f鑰冩牳姣�
      */
-    @Excel(name = "妗f鑰冩牳姣�")
     @TableField("archives_rate")
     private BigDecimal archivesRate;
 
     /**
      * 鐐逛綅鍦ㄧ嚎鐜�
      */
-    @Excel(name = "鐐逛綅鍦ㄧ嚎鐜�")
     @TableField("site_online")
     private BigDecimal siteOnline;
 
     /**
      * 褰曡薄鍙敤鐜�
      */
-    @Excel(name = "褰曡薄鍙敤鐜�")
     @TableField("video_available")
     private BigDecimal videoAvailable;
 
     /**
      * 閮ㄧ骇鐐逛綅鍦ㄧ嚎鐜�
      */
-    @Excel(name = "閮ㄧ骇鐐逛綅鍦ㄧ嚎鐜�")
     @TableField("ministry_site_online")
     private BigDecimal ministrySiteOnline;
 
     /**
      * 閮ㄧ骇宸℃褰曞儚鍙敤鐜�
      */
-    @Excel(name = "閮ㄧ骇宸℃褰曞儚鍙敤鐜�")
     @TableField("ministry_video_available")
     private BigDecimal ministryVideoAvailable;
 
     /**
      * 閲嶇偣鐐逛綅鍦ㄧ嚎鐜�
      */
-    @Excel(name = "閲嶇偣鐐逛綅鍦ㄧ嚎鐜�")
     @TableField("key_site_online")
     private BigDecimal keySiteOnline;
 
     /**
      * 閲嶇偣鐐逛綅褰曡薄鍙敤鐜�
      */
-    @Excel(name = "閲嶇偣鐐逛綅褰曡薄鍙敤鐜�", width = 25)
     @TableField("key_video_available")
     private BigDecimal keyVideoAvailable;
 
     /**
      * 閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�
      */
-    @Excel(name = "閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�", width = 25)
     @TableField("key_annotation_accuracy")
     private BigDecimal keyAnnotationAccuracy;
 
     /**
      * 閲嶇偣鐐逛綅鎸夋椂姝g‘鐜�
      */
-    @Excel(name = "閲嶇偣鐐逛綅鎸夋椂姝g‘鐜�", width = 25)
     @TableField("key_timing_accuracy")
     private BigDecimal keyTimingAccuracy;
 
     /**
-     *  閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�
+     * 閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�
      */
-    @Excel(name = "閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�", width = 25)
     @TableField("key_command_image_online")
     private BigDecimal keyCommandImageOnline;
 
     /**
      * 瑙嗛鍥惧儚璧勬簮瀹夊叏绠$悊
      */
-    @Excel(name = "瑙嗛鍥惧儚璧勬簮瀹夊叏绠$悊", width = 25)
     @TableField("image_resource_security")
     private BigDecimal imageResourceSecurity;
 
@@ -124,4 +117,102 @@
     @ExcelIgnore
     @TableField(exist = false)
     private List<String> quarter;
+
+    //杞崲鎴愬瓧绗︿覆鐢ㄤ簬excel瀵煎嚭
+    public static CheckIndexVideoVO getExcelVo(@NonNull CheckIndexVideo checkIndexVideo) {
+        CheckIndexVideoVO checkIndexVideoVO = new CheckIndexVideoVO();
+        checkIndexVideoVO.setNum(checkIndexVideo.getNum());
+        checkIndexVideoVO.setScore(checkIndexVideo.getScore().setScale(2, RoundingMode.HALF_UP));
+        checkIndexVideoVO.setDeptName(checkIndexVideo.getDeptName());
+        //閬垮厤鍚堣琛屾姤閿�(鍚堣鏁版嵁 缂哄皯createTimeStr瀛楁 鐩存帴灏哻reateTimeStr璁剧疆涓�"鍚堣")
+        if (StringUtils.isEmpty(checkIndexVideo.getCreateTimeStr())) {
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+            checkIndexVideoVO.setCreateTimeStr(format.format(checkIndexVideo.getCreateTime()));
+        } else {
+            checkIndexVideoVO.setCreateTimeStr(checkIndexVideo.getCreateTimeStr());
+        }
+        checkIndexVideoVO.setExamineTagStr(CheckConstants.Examine_Tag_Province.equals(checkIndexVideo.getExamineTag()) ? "鐪佸巺鑰冩牳" : CheckConstants.Examine_Tag_County.equals(checkIndexVideo.getExamineTag()) ? "鍖哄幙鑰冩牳" : "鍏畨閮ㄨ�冩牳");
+        checkIndexVideoVO.setSiteOnlineText(checkIndexVideo.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setImageResourceSecurityText(checkIndexVideo.getImageResourceSecurity().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setArchivesRateText(checkIndexVideo.getArchivesRate().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setKeyAnnotationAccuracyText(checkIndexVideo.getKeyAnnotationAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setKeyCommandImageOnlineText(checkIndexVideo.getKeyCommandImageOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setKeyVideoAvailableText(checkIndexVideo.getKeyVideoAvailable().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setKeySiteOnlineText(checkIndexVideo.getKeySiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setKeyTimingAccuracyText(checkIndexVideo.getKeyTimingAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setMinistryVideoAvailableText(checkIndexVideo.getMinistryVideoAvailable().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setVideoAvailableText(checkIndexVideo.getVideoAvailable().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setMinistrySiteOnlineText(checkIndexVideo.getMinistrySiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setPlatformOnlineText(checkIndexVideo.getPlatformOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setMonitorQualificationText(checkIndexVideo.getMonitorQualification().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+        checkIndexVideoVO.setMonitorRegistrationText(checkIndexVideo.getMonitorRegistration().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+
+        return checkIndexVideoVO;
+    }
+
+    /**
+     * 鐢ㄤ簬瀵煎嚭璁$畻骞冲潎鍊�
+     */
+    public static CheckIndexVideo calculateAverage(List<CheckIndexVideo> videos) {
+        Integer numSum = 0;
+        BigDecimal scoreSum = BigDecimal.ZERO;
+        BigDecimal totalPlatformOnline = BigDecimal.ZERO;
+        BigDecimal totalMonitorQualification = BigDecimal.ZERO;
+        BigDecimal totalMonitorRegistration = BigDecimal.ZERO;
+        BigDecimal totalArchivesRate = BigDecimal.ZERO;
+        BigDecimal totalSiteOnline = BigDecimal.ZERO;
+        BigDecimal totalVideoAvailable = BigDecimal.ZERO;
+        BigDecimal totalMinistrySiteOnline = BigDecimal.ZERO;
+        BigDecimal totalMinistryVideoAvailable = BigDecimal.ZERO;
+        BigDecimal totalKeySiteOnline = BigDecimal.ZERO;
+        BigDecimal totalKeyVideoAvailable = BigDecimal.ZERO;
+        BigDecimal totalKeyAnnotationAccuracy = BigDecimal.ZERO;
+        BigDecimal totalKeyTimingAccuracy = BigDecimal.ZERO;
+        BigDecimal totalKeyCommandImageOnline = BigDecimal.ZERO;
+        BigDecimal totalImageResourceSecurity = BigDecimal.ZERO;
+
+        int count = videos.size();
+        for (CheckIndexVideo video : videos) {
+            numSum = numSum + (video.getNum() == null ? 0 : video.getNum());
+            scoreSum = scoreSum.add(video.getScore() == null ? BigDecimal.ZERO : video.getScore());
+            totalPlatformOnline = totalPlatformOnline.add(video.getPlatformOnline());
+            totalMonitorQualification = totalMonitorQualification.add(video.getMonitorQualification());
+            totalMonitorRegistration = totalMonitorRegistration.add(video.getMonitorRegistration());
+            totalArchivesRate = totalArchivesRate.add(video.getArchivesRate());
+            totalSiteOnline = totalSiteOnline.add(video.getSiteOnline());
+            totalVideoAvailable = totalVideoAvailable.add(video.getVideoAvailable());
+            totalMinistrySiteOnline = totalMinistrySiteOnline.add(video.getMinistrySiteOnline());
+            totalMinistryVideoAvailable = totalMinistryVideoAvailable.add(video.getMinistryVideoAvailable());
+            totalKeySiteOnline = totalKeySiteOnline.add(video.getKeySiteOnline());
+            totalKeyVideoAvailable = totalKeyVideoAvailable.add(video.getKeyVideoAvailable());
+            totalKeyAnnotationAccuracy = totalKeyAnnotationAccuracy.add(video.getKeyAnnotationAccuracy());
+            totalKeyTimingAccuracy = totalKeyTimingAccuracy.add(video.getKeyTimingAccuracy());
+            totalKeyCommandImageOnline = totalKeyCommandImageOnline.add(video.getKeyCommandImageOnline());
+            totalImageResourceSecurity = totalImageResourceSecurity.add(video.getImageResourceSecurity());
+        }
+
+        // 鍒涘缓涓�涓柊鐨凜heckIndexVideo瀵硅薄骞惰缃钩鍧囧��
+        CheckIndexVideo averageVideo = new CheckIndexVideo();
+        averageVideo.setCreateTimeStr("鍚堣");
+        averageVideo.setDeptName(videos.get(0).getDeptName());
+        averageVideo.setExamineTag(videos.get(0).getExamineTag());
+        averageVideo.setNum(numSum / count);
+        averageVideo.setScore(scoreSum.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setPlatformOnline(totalPlatformOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setMonitorQualification(totalMonitorQualification.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setMonitorRegistration(totalMonitorRegistration.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setArchivesRate(totalArchivesRate.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setSiteOnline(totalSiteOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setVideoAvailable(totalVideoAvailable.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setMinistrySiteOnline(totalMinistrySiteOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setMinistryVideoAvailable(totalMinistryVideoAvailable.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setKeySiteOnline(totalKeySiteOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setKeyVideoAvailable(totalKeyVideoAvailable.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setKeyAnnotationAccuracy(totalKeyAnnotationAccuracy.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setKeyTimingAccuracy(totalKeyTimingAccuracy.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setKeyCommandImageOnline(totalKeyCommandImageOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        averageVideo.setImageResourceSecurity(totalImageResourceSecurity.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+
+        return averageVideo;
+    }
 }

--
Gitblit v1.8.0