From b48eb9d4a012c504eb4388341c382ffefb3637d2 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 19 八月 2024 15:45:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-common/src/main/java/constant/ApiConstants.java                         |    8 ++
 ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java |    4 
 ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java  |   69 ++++++++++++-----
 ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java    |    2 
 ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java  |   18 ++--
 ycl-server/src/main/java/com/ycl/task/CarTask.java                          |   43 ++++++++--
 ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java       |    8 +-
 ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java      |   28 ++++--
 9 files changed, 128 insertions(+), 54 deletions(-)

diff --git a/ycl-common/src/main/java/constant/ApiConstants.java b/ycl-common/src/main/java/constant/ApiConstants.java
index db00b75..420f200 100644
--- a/ycl-common/src/main/java/constant/ApiConstants.java
+++ b/ycl-common/src/main/java/constant/ApiConstants.java
@@ -69,4 +69,12 @@
 
     //鐪佸巺鍓嶇紑
     public final static String Province = "Province_";
+
+
+
+    /** 鑰冩牳鎸囨爣 鏉′欢鍙傛暟  */
+    //杞﹁締鑰冩牳锛岀偣浣嶅湪绾跨巼锛屽尯鍘夸笉灏戜簬40璺�
+    public final static Integer Check_Car_SiteOnline = 40;
+    //杞﹁締鍦ㄧ嚎鐜�  Redis 姣忔湀鏁版嵁涓柇娆℃暟 Hash key
+    public final static String Check_Car_ViewConnect = "ViewConnectNoData";
 }
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 5155291..102550b 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
@@ -16,7 +16,7 @@
  * @author ruoyi
  * @date 2024-04-29
  */
-@TableName("check_index_car")
+@TableName("t_check_index_car")
 public class CheckIndexCar extends CheckIndex
 {
     private static final long serialVersionUID = 1L;
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java
index 29b2db9..fac20a8 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarDataIntegrityCalculation.java
@@ -102,8 +102,8 @@
         if (result.getMainNoIntegrityPercent() <= 0.1) {
             stats.integritySites++;
         }
-        //閲嶇偣鐐逛綅涓哄叚椤瑰睘鎬�
-        if (importantIds.contains(key)) {
+        //閲嶇偣鐐逛綅涓哄叚椤瑰睘鎬у畬鏁�
+        if (importantIds.contains(result.getExternalIndexCode())) {
             stats.importantTotalSites++;
             if (result.getNoIntegrityPercent() <= 0.1) {
                 stats.importantIntegritySites++;
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java
index 651d501..e9e410a 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarDeviceSampleCalculation.java
@@ -108,7 +108,7 @@
             stats.accuracySites++;
         }
         //閲嶇偣鐐逛綅涓哄叚椤瑰睘鎬�
-        if (importantIds.contains(key)) {
+        if (importantIds.contains(result.getExternalIndexCode())) {
             stats.importantTotalSites++;
             if (vehDiff.getImportantConPercent() >= 0.9) {
                 stats.importantAccuracySites++;
@@ -118,13 +118,15 @@
         if (bigUseful.getBigUsefulPercent() >= 0.9) {
             stats.picUsabilitySites++;
         }
-        //鍥剧墖璁块棶姝e父閲� = 鎶芥閲�-寮傚父閲�
-        BigDecimal picNormalCount = new BigDecimal(bigUseful.getSampleCount() - bigUseful.getBigPicExpCount());
-        //鍥剧墖鎶芥閲�
-        BigDecimal sampleCount = new BigDecimal(bigUseful.getSampleCount());
-        //鍥剧墖璁块棶鐜�>=90% 瑙嗕负鍚堟牸
-        if (picNormalCount.divide(sampleCount, 4, RoundingMode.HALF_UP).compareTo(new BigDecimal("0.9")) >= 0) {
-            stats.urlUsabilitySites++;
+        if (bigUseful.getSampleCount() != 0) {
+            //鍥剧墖璁块棶姝e父閲� = 鎶芥閲�-寮傚父閲�
+            BigDecimal picNormalCount = new BigDecimal(bigUseful.getSampleCount() - bigUseful.getBigPicExpCount());
+            //鍥剧墖鎶芥閲�
+            BigDecimal sampleCount = new BigDecimal(bigUseful.getSampleCount());
+            //鍥剧墖璁块棶鐜�>=90% 瑙嗕负鍚堟牸
+            if (picNormalCount.divide(sampleCount, 4, RoundingMode.HALF_UP).compareTo(new BigDecimal("0.9")) >= 0) {
+                stats.urlUsabilitySites++;
+            }
         }
     }
 
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
index 926be4b..e447cec 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java
@@ -1,28 +1,25 @@
 package com.ycl.calculate;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ycl.platform.domain.entity.CheckIndexCar;
-import com.ycl.platform.domain.entity.TMonitor;
-import com.ycl.platform.domain.result.HK.CrossDetailResult;
 import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
 import com.ycl.platform.domain.vo.TMonitorVO;
 import com.ycl.platform.mapper.CheckIndexCarMapper;
 import com.ycl.platform.mapper.TMonitorMapper;
 import com.ycl.platform.service.ICheckIndexCarService;
-import com.ycl.platform.service.ITMonitorService;
 import com.ycl.system.mapper.SysConfigMapper;
+import com.ycl.utils.DateUtils;
 import constant.ApiConstants;
-import constant.CheckConstants;
 import constant.CheckSnapCountConstants;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
-import utils.DateUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
+import java.time.temporal.TemporalAdjusters;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -45,6 +42,8 @@
     private TMonitorMapper monitorMapper;
     @Autowired
     private ICheckIndexCarService checkIndexCarService;
+    @Autowired
+    private RedisTemplate redisTemplate;
 
     //鍖哄煙杞﹁締鐐逛綅鍦ㄧ嚎鎸囨爣鐨勫唴閮ㄧ被
     private static class AreaStats {
@@ -67,6 +66,15 @@
         List<String> provinceIds = getProvince();
 
         Map<String, AreaStats> areaStatsMap = new HashMap<>();
+        // 鑾峰彇褰撳墠鏃ユ湡
+        LocalDate today = LocalDate.now();
+        // 鑾峰彇鏈湀鐨勭涓�澶�
+        LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
+        // 鍒ゆ柇浠婂ぉ鏄惁鏄湰鏈堢殑绗竴澶�
+        if (today.equals(firstDayOfMonth)) {
+            // 濡傛灉鏄紝鍒欐竻闄edis涓褰曚腑鏂鏁扮殑鏁版嵁
+            redisTemplate.delete(ApiConstants.Check_Car_ViewConnect);
+        }
         for (SnapshotDataMonitorResult result : list) {
             TMonitorVO monitor = monitorMap.get(result.getExternalIndexCode());
             if (monitor == null) continue;
@@ -88,9 +96,9 @@
         // 鏌ヨ鏄惁index琛ㄥ凡缁忓瓨鍦ㄤ粖鏃ユ暟鎹�
         List<CheckIndexCar> checkIndexCarList = checkIndexCarMapper.selectToday(DateUtils.getDate());
         List<CheckIndexCar> checkIndexCars = new ArrayList<>();
-        areaStatsMap.forEach((deptId, stats) -> {
+        areaStatsMap.forEach((key, stats) -> {
             if (stats.totalSites > 0) {
-                CheckIndexCar checkIndexCar = createOrUpdateCheckIndexCar(deptId, stats, cityCountAvg, countyCountAvg, checkIndexCarList);
+                CheckIndexCar checkIndexCar = createOrUpdateCheckIndexCar(key, stats, cityCountAvg, countyCountAvg, checkIndexCarList);
                 if (checkIndexCar != null) {
                     checkIndexCars.add(checkIndexCar);
                 }
@@ -103,15 +111,17 @@
     /**
      * 绱鎬荤偣浣嶆暟銆佺绾挎暟銆佹�绘姄鎷嶉噺
      */
+    //TODO:鏃犳暟鎹鐞�
     private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, SnapshotDataMonitorResult result) {
         //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value
         AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats());
         stats.totalSites++;
+
         if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) {
             stats.onlineSites++;
-        } else {
             stats.totalDataSum += result.getDataCount();
         }
+
     }
 
     /**
@@ -133,19 +143,38 @@
         if (checkIndexCar == null) {
             return null;
         }
+
         //璋冪敤鐐逛綅鍦ㄧ嚎璁$畻鏂规硶
-        Map<String, Object> siteOnlineParam = new HashMap<>();
-        siteOnlineParam.put("totalSites", stats.totalSites);
-        siteOnlineParam.put("onlineSites", stats.onlineSites);
-        BigDecimal siteOnline = siteOnline(siteOnlineParam);
-        checkIndexCar.setSiteOnline(siteOnline);
+        if (stats.totalSites >= ApiConstants.Check_Car_SiteOnline) {
+            Map<String, Object> siteOnlineParam = new HashMap<>();
+            siteOnlineParam.put("totalSites", stats.totalSites);
+            siteOnlineParam.put("onlineSites", stats.onlineSites);
+            BigDecimal siteOnline = siteOnline(siteOnlineParam);
+            checkIndexCar.setSiteOnline(siteOnline.min(BigDecimal.ONE));
+        } else {
+            checkIndexCar.setSiteOnline(BigDecimal.ZERO);
+        }
         //瑙嗗浘搴撳鎺ョǔ瀹氭��
-        BigDecimal avgCount = key.startsWith(ApiConstants.Province) ? cityCountAvg : countyCountAvg;
-        Map<String, Object> viewConnectParam = new HashMap<>();
-        viewConnectParam.put("totalDataSum", stats.totalDataSum);
-        viewConnectParam.put("avgCount", avgCount);
-        BigDecimal viewConnectStability = viewConnectStability(viewConnectParam);
-        checkIndexCar.setViewConnectStability(viewConnectStability);
+        //Redis璁板綍璇ュ尯鍘垮綋鏈堟棤鏁版嵁涓婁紶娆℃暟
+        Integer noDateCount = (Integer) redisTemplate.opsForHash().get(ApiConstants.Check_Car_ViewConnect, key);
+        // 濡傛灉鍊间负null锛屽垯鍒濆鍖栦负0
+        if (noDateCount == null) {
+            noDateCount = 0;
+        }
+        Double deductScore = 0.1 * noDateCount;
+        if (stats.totalDataSum != 0) {
+            BigDecimal avgCount = key.startsWith(ApiConstants.Province) ? cityCountAvg : countyCountAvg;
+            Map<String, Object> viewConnectParam = new HashMap<>();
+            viewConnectParam.put("totalDataSum", stats.totalDataSum);
+            viewConnectParam.put("avgCount", avgCount);
+            BigDecimal viewConnectStability = viewConnectStability(viewConnectParam);
+            viewConnectStability = viewConnectStability.subtract(new BigDecimal(deductScore)).max(BigDecimal.ZERO).min(BigDecimal.ONE);
+            checkIndexCar.setViewConnectStability(viewConnectStability);
+        } else {
+            noDateCount++;
+        }
+        // 灏嗘柊鐨勫�兼斁鍥濰ash涓�
+        redisTemplate.opsForHash().put(ApiConstants.Check_Car_ViewConnect, key, noDateCount);
         return checkIndexCar;
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
index 8fdd2f9..7f91098 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshotDelayCalculation.java
@@ -126,7 +126,7 @@
         param.put("delayCount2", stats.delayCount2);
         param.put("delayCount3", stats.delayCount3);
         BigDecimal index = snapshopDelay(param);
-        checkIndexCar.setSiteOnline(index);
+        checkIndexCar.setVehicleUploadTimeliness(index);
         return checkIndexCar;
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
index 6b3f80d..24d8cdc 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -100,7 +100,7 @@
     //瑙嗗浘搴撳鎺ョǔ瀹氭��
     public BigDecimal viewConnectStability(Map<String, Object> param) {
         BigDecimal totalDataSum = new BigDecimal((Integer) param.get("totalDataSum"));
-        BigDecimal avgCount = new BigDecimal((Integer) param.get("avgCount"));
+        BigDecimal avgCount = (BigDecimal) param.get("avgCount");
         return avgCount.divide(totalDataSum, 4, RoundingMode.HALF_UP);
     }
 
@@ -118,9 +118,9 @@
         BigDecimal delayCount2 = new BigDecimal((Integer) param.get("delayCount2"));
         BigDecimal delayCount3 = new BigDecimal((Integer) param.get("delayCount3"));
 
-        BigDecimal result = delayCount1.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(BigDecimal.ONE)
+        BigDecimal result = BigDecimal.ONE.subtract(delayCount1.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(BigDecimal.ONE)
                 .add(delayCount2.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.8")))
-                .add(delayCount3.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.6")));
+                .add(delayCount3.divide(totalCount, 10, RoundingMode.HALF_UP).multiply(new BigDecimal("0.6"))));
         return result.setScale(4, RoundingMode.HALF_UP);
     }
 
@@ -131,7 +131,7 @@
         BigDecimal integritySites = new BigDecimal((Integer) param.get("integritySites"));
         BigDecimal importantIntegritySites = new BigDecimal((Integer) param.get("importantIntegritySites"));
         BigDecimal result = integritySites.divide(totalSites, 10, RoundingMode.HALF_UP)
-                .add(importantIntegritySites.divide(importantTotalSites, 10, RoundingMode.HALF_UP));
+                .multiply(importantIntegritySites.divide(importantTotalSites, 10, RoundingMode.HALF_UP));
         return result.setScale(4, RoundingMode.HALF_UP);
     }
 
diff --git a/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java
index 0f25d77..d90b901 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java
@@ -142,17 +142,25 @@
         BigDecimal siteOnline = siteOnline(param);
         checkIndexVideo.setSiteOnline(siteOnline);
         //璋冪敤鐐逛綅鍦ㄧ嚎鐜囪绠楁柟娉� 璁$畻閲嶇偣鐐逛綅鍦ㄧ嚎鐜�
-        Map<String, Object> importantParam = new HashMap<>();
-        importantParam.put("totalSites", stats.importantSites);
-        importantParam.put("onlineSites", stats.importantOnlineSites);
-        BigDecimal importantSiteOnline = siteOnline(importantParam);
-        checkIndexVideo.setKeySiteOnline(importantSiteOnline);
+        if(stats.importantSites!=0) {
+            Map<String, Object> importantParam = new HashMap<>();
+            importantParam.put("totalSites", stats.importantSites);
+            importantParam.put("onlineSites", stats.importantOnlineSites);
+            BigDecimal importantSiteOnline = siteOnline(importantParam);
+            checkIndexVideo.setKeySiteOnline(importantSiteOnline);
+        }else {
+            log.info("閲嶇偣鐐逛綅鏁颁负0");
+        }
         //璋冪敤鐐逛綅鍦ㄧ嚎鐜囪绠楁柟娉� 璁$畻鎸囨尌鍥惧儚鍦ㄧ嚎鐜�
-        Map<String, Object> commandParam = new HashMap<>();
-        commandParam.put("totalSites", stats.commandSites);
-        commandParam.put("onlineSites", stats.commandOnlineSites);
-        BigDecimal commandSiteOnline = siteOnline(commandParam);
-        checkIndexVideo.setKeyCommandImageOnline(commandSiteOnline);
+        if(stats.commandSites!=0) {
+            Map<String, Object> commandParam = new HashMap<>();
+            commandParam.put("totalSites", stats.commandSites);
+            commandParam.put("onlineSites", stats.commandOnlineSites);
+            BigDecimal commandSiteOnline = siteOnline(commandParam);
+            checkIndexVideo.setKeyCommandImageOnline(commandSiteOnline);
+        }else {
+            log.info("鎸囨尌鍥惧儚鐐逛綅鏁颁负0");
+        }
         return checkIndexVideo;
     }
 }
diff --git a/ycl-server/src/main/java/com/ycl/task/CarTask.java b/ycl-server/src/main/java/com/ycl/task/CarTask.java
index fd36a2a..8e5fbaa 100644
--- a/ycl-server/src/main/java/com/ycl/task/CarTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/CarTask.java
@@ -7,6 +7,7 @@
 import com.ycl.platform.domain.vo.TMonitorVO;
 import com.ycl.platform.mapper.TMonitorMapper;
 import com.ycl.utils.DateUtils;
+import com.ycl.utils.StringUtils;
 import constant.ApiConstants;
 import constant.CalculationStrategyConstants;
 import constant.CheckConstants;
@@ -33,79 +34,105 @@
     @Autowired
     private TMonitorMapper monitorMapper;
     public void siteOnlineTask() {
+        log.info("寮�濮嬭绠楃偣浣嶅湪绾跨巼鍜岃鍥惧簱瀵规帴绋冲畾鎬�");
         Date yesterday = DateUtils.addDays(new Date(), -1);
+        //TODO:鏃堕棿鍐欐浜�
+        Date date = DateUtils.getDay(2024,7,13);
         //璁$畻鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭��
         Query query = new Query();
         query.addCriteria(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))
+                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))
                 .and("dataType").is(ApiConstants.HK_DataType_CAR));
         List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
         CalculationStrategy<SnapshotDataMonitorResult> calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SiteOnline_ViewStability);
         calculator.calculate(results);
+        log.info("缁撴潫璁$畻鐐逛綅鍦ㄧ嚎鐜囧拰瑙嗗浘搴撳鎺ョǔ瀹氭��");
     }
 
     public void deviceSampleTask() {
+        log.info("寮�濮嬭绠楄溅杈嗗崱鍙h澶囨暟鎹瘑鍒噯纭�с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ��");
         Date yesterday = DateUtils.addDays(new Date(), -1);
+        //TODO:鏃堕棿鍐欐浜�
+        Date date = DateUtils.getDay(2024,7,13);
         //璁$畻杞﹁締鍗″彛璁惧鏁版嵁璇嗗埆鍑嗙‘鎬с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ��
         Query query = new Query();
         query.addCriteria(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
+                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
         List<VehicleDeviceSamplingResult> results = mongoTemplate.find(query, VehicleDeviceSamplingResult.class);
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_DataAccuracy_Url_PicUsability);
         calculator.calculate(results);
+        log.info("缁撴潫璁$畻杞﹁締鍗″彛璁惧鏁版嵁璇嗗埆鍑嗙‘鎬с�乽rl鍙敤鎬с�佸ぇ鍥惧彲鐢ㄦ��");
     }
 
     public void infoAccuracyTask() {
+        log.info("寮�濮嬭绠楄溅杈嗗崱鍙d俊鎭噰闆嗗噯纭巼");
         Date yesterday = DateUtils.addDays(new Date(), -1);
+        //TODO:鏃堕棿鍐欐浜�
+        Date date = DateUtils.getDay(2024,7,13);
         //璁$畻杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�
         Query query = new Query();
         query.addCriteria(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
+                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
         List<CrossDetailResult> results = mongoTemplate.find(query, CrossDetailResult.class);
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_InfoAccuracy);
         calculator.calculate(results);
+        log.info("缁撴潫璁$畻杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�");
     }
 
-    public void snapShopDelay() {
+    public void snapShopDelayTask() {
+        log.info("寮�濮嬭绠楄溅杈嗘姄鎷嶆暟鎹笂浼犲強鏃舵��");
         Date yesterday = DateUtils.addDays(new Date(), -1);
+        //TODO:鏃堕棿鍐欐浜�
+        Date date = DateUtils.getDay(2024,7,13);
         //璁$畻杞﹁締鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�
         Query query = new Query();
         query.addCriteria(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))
+                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date))
                 .and("dataType").is(ApiConstants.HK_DataType_CAR));
         List<SnapshotDelayMonitorResult> results = mongoTemplate.find(query, SnapshotDelayMonitorResult.class);
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_SnapshotDelay);
         calculator.calculate(results);
+        log.info("缁撴潫璁$畻杞﹁締鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�");
     }
 
     public void snapShopDataIntegrity() {
+        log.info("寮�濮嬭绠楄溅杈嗘暟鎹姄鎷嶅畬鏁存��");
         Date yesterday = DateUtils.addDays(new Date(), -1);
+        //TODO:鏃堕棿鍐欐浜�
+        Date date = DateUtils.getDay(2024,7,13);
         //璁$畻杞﹁締鏁版嵁鎶撴媿瀹屾暣鎬�
         Query query = new Query();
         query.addCriteria(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
+                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
         List<DataIntegrityMonitoringResult> results = mongoTemplate.find(query, DataIntegrityMonitoringResult.class);
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_DataIntegrity);
         calculator.calculate(results);
+        log.info("缁撴潫璁$畻杞﹁締鏁版嵁鎶撴媿瀹屾暣鎬�");
     }
 
     public void clockAccuracyTask() {
+        log.info("寮�濮嬭绠楄溅杈嗗崱鍙h澶囨椂閽熷噯纭��");
         Date yesterday = DateUtils.addDays(new Date(), -1);
+        //TODO:鏃堕棿鍐欐浜�
+        Date date = DateUtils.getDay(2024,7,13);
         //璁$畻杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�
         Query query = new Query();
         query.addCriteria(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
+                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
         List<VehicleDeviceInspectionResult> results = mongoTemplate.find(query, VehicleDeviceInspectionResult.class);
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_ClockAccuracy);
         calculator.calculate(results);
+        log.info("缁撴潫璁$畻杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�");
     }
 
     public void directConsistentTask() {
+        log.info("寮�濮嬭绠楄溅杈嗙洰褰曚竴鑷寸巼");
         //杞﹁締鐩綍涓�鑷寸巼
         List<TMonitorVO> tMonitorVOS = monitorMapper.selectMonitorVOList();
-        List<TMonitorVO> list = tMonitorVOS.stream().filter(tMonitorVO -> tMonitorVO.getCameraFunType().contains(CheckConstants.Rule_Category_Car + "")).collect(Collectors.toList());
+        List<TMonitorVO> list = tMonitorVOS.stream().filter(tMonitorVO -> !StringUtils.isEmpty(tMonitorVO.getCameraFunType()) && tMonitorVO.getCameraFunType().contains(CheckConstants.Rule_Category_Car + "")).collect(Collectors.toList());
         CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Car_DirectConsistent);
         calculator.calculate(list);
+        log.info("缁撴潫璁$畻杞﹁締鐩綍涓�鑷寸巼");
     }
 
 }

--
Gitblit v1.8.0