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

---
 ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java |   99 ++++++++++++++++++++++++++-----------------------
 1 files changed, 52 insertions(+), 47 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java b/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java
index 78cb310..9cd10d1 100644
--- a/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/CheckScoreTask.java
@@ -4,15 +4,16 @@
 import com.google.common.base.CaseFormat;
 import com.ycl.platform.base.CheckIndex;
 import com.ycl.platform.domain.entity.*;
-import com.ycl.platform.mapper.CheckScoreMapper;
-import com.ycl.platform.mapper.CheckTemplateMapper;
-import com.ycl.platform.mapper.CheckTemplateRuleMapper;
+import com.ycl.platform.domain.vo.YwPointVO;
+import com.ycl.platform.mapper.*;
 import com.ycl.platform.service.*;
 import constant.CheckConstants;
+import enumeration.general.PublishType;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
 
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
@@ -33,20 +34,23 @@
     @Autowired
     private CheckScoreMapper scoreMapper;
     @Autowired
-    private MongoTemplate mongoTemplate;
+    private ICheckScoreService checkScoreService;
     @Autowired
-    private ICheckIndexVideoService videoService;
+    private CheckIndexVideoMapper videoMapper;
     @Autowired
-    private ICheckIndexFaceService faceService;
+    private CheckIndexFaceMapper faceMapper;
     @Autowired
-    private ICheckIndexCarService carService;
-
+    private CheckIndexCarMapper carMapper;
+    @Autowired
+    private YwPointMapper pointMapper;
+    //鍏畨閮ㄥ彧鏈夎棰戣�冩牳
     public void executeTemplate(Integer templateId) {
         CheckTemplate checkTemplate = templateMapper.selectCheckTemplateById(templateId);
         if (checkTemplate != null) {
-            log.info("鎵ц鑰冩牳妯℃澘---------->{}", checkTemplate.getTemplateName());
             Short examineCategory = checkTemplate.getExamineCategory();
             Short examineTag = checkTemplate.getExamineTag();
+            //鐢ㄤ簬琛ュ厖鏁伴噺
+            List<YwPointVO> pointVOS= pointMapper.selectToCount(examineCategory, examineTag);
             //鏌ユ潈閲�
             CheckTemplateRule checkTemplateRule = new CheckTemplateRule();
             checkTemplateRule.setCheckTemplateId(templateId);
@@ -54,7 +58,6 @@
             //鏌ヤ粖澶╃殑index鎸囨爣
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
             String day = dateFormat.format(new Date());
-
             //鍒涘缓score闆嗗悎鏂逛究鏈�鍚庢壒閲忓瓨鍌�
             List<CheckScore> scoreList = new ArrayList<>();
             //鏍规嵁鑰冩牳绫诲埆鍜岃�冩牳鏍囩锛屾煡涓嶅悓index琛紙鍖哄垎鐪佸巺鍖哄幙锛�
@@ -63,68 +66,63 @@
                 checkIndexVideo.setExamineTag(examineTag);
                 checkIndexVideo.setDay(day);
                 checkIndexVideo.setDeptIds(JSONArray.parseArray(checkTemplate.getDeptId(), Integer.class));
-                //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�瑙嗛鏁版嵁
-                List<CheckIndexVideo> checkIndexVideos = videoService.selectCheckIndexVideoList(checkIndexVideo);
+                //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�鎴栧叕瀹夐儴瑙嗛鏁版嵁
+                List<CheckIndexVideo> checkIndexVideos = videoMapper.getCheckIndexVideoList(checkIndexVideo);
                 for (CheckIndexVideo indexVideo : checkIndexVideos) {
-                    addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexVideo,CheckConstants.Rule_Category_Video);
+                    addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexVideo, CheckConstants.Rule_Category_Video,pointVOS);
                 }
             } else if (CheckConstants.Rule_Category_Car.equals(examineCategory)) {
                 CheckIndexCar checkIndexCar = new CheckIndexCar();
                 checkIndexCar.setDay(day);
                 checkIndexCar.setExamineTag(examineTag);
                 checkIndexCar.setDeptIds(JSONArray.parseArray(checkTemplate.getDeptId(), Integer.class));
-                //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�杞﹁締鏁版嵁
-                List<CheckIndexCar> checkIndexCars = carService.selectCheckIndexCarList(checkIndexCar);
+                //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�鎴栧叕瀹夐儴杞﹁締鏁版嵁
+                List<CheckIndexCar> checkIndexCars = carMapper.getCheckIndexCarList(checkIndexCar);
                 for (CheckIndexCar indexCar : checkIndexCars) {
-                    addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexCar,CheckConstants.Rule_Category_Car);
+                    addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexCar, CheckConstants.Rule_Category_Car,pointVOS);
                 }
             } else if (CheckConstants.Rule_Category_Face.equals(examineCategory)) {
                 CheckIndexFace checkIndexFace = new CheckIndexFace();
                 checkIndexFace.setDay(day);
                 checkIndexFace.setExamineTag(examineTag);
                 checkIndexFace.setDeptIds(JSONArray.parseArray(checkTemplate.getDeptId(), Integer.class));
-                //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�浜鸿劯鏁版嵁
-                List<CheckIndexFace> checkIndexFaces = faceService.selectCheckIndexFaceList(checkIndexFace);
+                //鏍规嵁妯℃澘鐨勮�冩牳鏍囩鏌ュ悇鍖哄幙瀵瑰簲鐪佸巺鎴栧競灞�鎴栧叕瀹夐儴浜鸿劯鏁版嵁
+                List<CheckIndexFace> checkIndexFaces = faceMapper.getCheckIndexFaceList(checkIndexFace);
                 for (CheckIndexFace indexFace : checkIndexFaces) {
-                    addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexFace, CheckConstants.Rule_Category_Face);
+                    addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexFace, CheckConstants.Rule_Category_Face,pointVOS);
                 }
             }
 
+            //鏌ュ嚭浠婂ぉ鐢熸垚score
+            List<CheckScore> todays = scoreMapper.selectToday(day);
+            //閬嶅巻scoreList闆嗗悎锛屽鏋滀粖澶╃敓鎴愯繃琛ュ厖id
+            for (CheckScore result : scoreList) {
+                for (CheckScore today : todays) {
+                    //鏍规嵁鑰冩牳鏍囩銆佽�冩牳绉嶇被銆侀儴闂╥d鏌ヨ鏄惁瀛樺湪浠婃棩鏁版嵁
+                    if(result.getExamineTag().equals(today.getExamineTag()) && result.getExamineCategory().equals(today.getExamineCategory()) && result.getDeptId().equals(today.getDeptId())){
+                        //琛ュ厖id锛屽悗缁牴鎹甶d saveOrUpdate
+                        result.setId(today.getId());
+                        result.setPublish(today.getPublish());
+                    }
+                }
+            }
             //鍌ㄥ瓨鍒嗘暟
-            scoreMapper.saveBatch(scoreList);
-
-
-            log.info("妯℃澘鎵ц瀹屾垚");
+            if (!CollectionUtils.isEmpty(scoreList)) {
+                checkScoreService.saveOrUpdateBatch(scoreList);
+            }
         }
-        log.info("瀹氭椂浠诲姟鎵ц瀹屾垚");
     }
 
-
-    //鏌ongo鏁版嵁褰掓。鍒癿ysql
-    public void dataArchiving() {
-        //TODO:褰掓。check_index_car,鍖哄垎鐪佸巺甯傚眬锛屾瘡涓尯鍘夸竴鏉℃暟鎹�
-        CheckIndexCar checkIndexCar = new CheckIndexCar();
-        //TODO:褰掓。check_index_face
-        CheckIndexFace checkIndexFace = new CheckIndexFace();
-        //TODO:褰掓。check_index_video
-        CheckIndexVideo checkIndexVideo = new CheckIndexVideo();
-
-    }
-
-    private <T extends CheckIndex> void addToList(Integer templateId, CheckTemplate checkTemplate, Short examineTag, List<CheckTemplateRule> templateRuleList, List<CheckScore> scoreList, T indexObject, Short checkCategory) {
+    private <T extends CheckIndex> void addToList(Integer templateId, CheckTemplate checkTemplate, Short examineTag, List<CheckTemplateRule> templateRuleList, List<CheckScore> scoreList, T indexObject, Short checkCategory, List<YwPointVO> pointVOS) {
         CheckScore checkScore = new CheckScore();
+        checkScore.setIndexId(indexObject.getId());
         BigDecimal scoreFinal = BigDecimal.ZERO;
-        BigDecimal alarmScore = checkTemplate.getAlarmScore();
         for (CheckTemplateRule templateRule : templateRuleList) {
             //璁$畻鍒嗘暟
             scoreFinal = getScoreFinal(indexObject, scoreFinal, templateRule);
-            //TODO:鏍规嵁鎶ヨ鍒嗘暟闃堝�硷紝娣诲姞鎶ヨ淇℃伅
-            if(scoreFinal.compareTo(alarmScore)<0){
-
-            }
         }
         //琛ュ厖checkScore
-        fillCheckScore(templateId, checkTemplate, examineTag, indexObject, checkScore, scoreFinal, checkCategory);
+        fillCheckScore(templateId, checkTemplate, examineTag, indexObject, checkScore, scoreFinal, checkCategory,pointVOS);
         scoreList.add(checkScore);
     }
 
@@ -142,21 +140,23 @@
             BigDecimal score = index.multiply(templateRule.getWeight());
             scoreFinal = scoreFinal.add(score);
         } catch (Exception e) {
-            log.info("鍙嶅皠寮傚父", e);
+            log.error("鍙嶅皠寮傚父", e.getMessage());
         }
         return scoreFinal;
     }
 
     //璁剧疆checkScore瀵硅薄
-    private void fillCheckScore(Integer templateId, CheckTemplate checkTemplate, Short examineTag, CheckIndex checkIndex, CheckScore checkScore, BigDecimal scoreFinal, Short checkCategory) {
+    private void fillCheckScore(Integer templateId, CheckTemplate checkTemplate, Short examineTag, CheckIndex checkIndex, CheckScore checkScore, BigDecimal scoreFinal, Short checkCategory, List<YwPointVO> pointVOS) {
         //鏍规嵁璋冩暣绯绘暟璋冩暣鏈�缁堝垎鏁板ぇ灏�
         String adjustWay = checkTemplate.getAdjustWay();
         BigDecimal adjustCoefficient = checkTemplate.getAdjustCoefficient();
         if (CheckConstants.Multiply.equals(adjustWay)) {
-            scoreFinal = adjustCoefficient.multiply(scoreFinal).multiply(new BigDecimal(100));
+//            scoreFinal = adjustCoefficient.multiply(scoreFinal).multiply(new BigDecimal(100));
+            scoreFinal = adjustCoefficient.multiply(scoreFinal);
         } else if (CheckConstants.Divided.equals(adjustWay)) {
             //鍥涜垗浜斿叆淇濈暀灏忔暟鍚庡洓浣�
-            scoreFinal = scoreFinal.divide(adjustCoefficient, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+//            scoreFinal = scoreFinal.divide(adjustCoefficient, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+            scoreFinal = scoreFinal.divide(adjustCoefficient, 4, RoundingMode.HALF_UP);
         }
         checkScore.setCreateTime(new Date());
         checkScore.setExamineTag(Integer.parseInt(examineTag + ""));
@@ -164,5 +164,10 @@
         checkScore.setDeptId(checkIndex.getDeptId());
         checkScore.setTemplateId(templateId);
         checkScore.setScore(scoreFinal);
+        checkScore.setPublish(PublishType.PUBLISHED.getCode());
+        if(!CollectionUtils.isEmpty(pointVOS)) {
+            long count = pointVOS.stream().filter(ywPointVO -> checkIndex.getDeptId().equals(ywPointVO.getDeptId())).count();
+            checkScore.setDeviceCount((int) count);
+        }
     }
 }

--
Gitblit v1.8.0