From a1969bc264f5842b87205ffc9fa77e56c51d3058 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 18 十一月 2024 10:12:11 +0800
Subject: [PATCH] 在线监测对于纯车辆人脸可以恢复在线状态

---
 ycl-server/src/main/java/com/ycl/task/ContractTask.java |   77 ++++++++++++++++++--------------------
 1 files changed, 36 insertions(+), 41 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
index 26c75e0..44702c0 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -9,6 +9,7 @@
 import com.ycl.platform.domain.entity.YwPoint;
 import com.ycl.platform.domain.result.HK.PicAccessResult;
 import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
+import com.ycl.platform.domain.result.SYS.TMonitorResult;
 import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
 import com.ycl.platform.domain.result.UY.VideoOnlineResult;
 import com.ycl.platform.domain.vo.CalculateRuleVO;
@@ -91,27 +92,20 @@
                         )
                 ));
         Map<String, Integer> onlineStatusMap = new HashMap<>();
-        //TODO 鍦ㄧ嚎鐜囦慨鏀癸紝鏌ongo鑾峰彇璁惧鍦ㄧ嚎鎯呭喌
-        Date date = DateUtils.getDay(2024, 7, 13);
+        Date date = new Date();
         //杞﹁締銆佷汉鑴�
         Query query = new Query();
         query.addCriteria(Criteria
                 .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
-        List<SnapshotDataMonitorResult> results = mongoTemplate.find(query, SnapshotDataMonitorResult.class);
-        for (SnapshotDataMonitorResult result : results) {
-            if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) {
-                onlineStatusMap.put(result.getExternalIndexCode(), Online);
-            } else {
-                onlineStatusMap.put(result.getExternalIndexCode(), Offline);
+        List<TMonitorResult> tMonitorResults = mongoTemplate.find(query, TMonitorResult.class);
+        for (TMonitorResult result : tMonitorResults) {
+            if(result.getPingOnline()){
+                onlineStatusMap.put(result.getNo(), Online);
+            }else {
+                onlineStatusMap.put(result.getNo(), Offline);
             }
         }
-        //瑙嗛
-        Query videoQuery = new Query(Criteria
-                .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
-        List<VideoOnlineResult> videoOnlineResults = mongoTemplate.find(videoQuery, VideoOnlineResult.class);
-        for (VideoOnlineResult videoOnlineResult : videoOnlineResults) {
-            onlineStatusMap.put(videoOnlineResult.getDeviceId(), videoOnlineResult.getStatus());
-        }
+
         //鏌ヨ鎶ュ鍒楄〃
         List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
         //璁$畻姣忎釜鍏徃鐨勭偣浣嶅湪绾跨巼
@@ -142,6 +136,7 @@
 
     //鏈堝簳璁$畻鍦ㄧ嚎鐜囧垎鏁�
     public void calculateOnlineScore() {
+        //TODO:妫�鏌ヨ〃
         log.info("寮�濮嬭绠楀悎鍚岀偣浣嶅湪绾跨巼鍒嗘暟");
         //濡傛灉鏄湀搴曪紝闇�瑕佺粺璁″钩鍧囧湪绾跨巼鐒跺悗杩涜绉垎鎵i櫎
 //        String now = DateUtils.getDate();
@@ -227,31 +222,31 @@
             }
             String errorType = workOrder.getErrorType();
             //瀛樺偍鏁呴殰 褰曞儚鎴栧浘鐗囪闂紓甯�
-            if (ErrorType.VIDEO_NONE.getValue().equals(errorType) || ErrorType.PIC_URLABNORMAL.getValue().equals(errorType)) {
-                if (!CollectionUtils.isEmpty(storeRuleMap)) {
-                    storeRuleMap.forEach((contractId, rules) -> {
-                        Integer unitId = rules.get(0).getUnitId();
-                        //鎵惧埌瀵瑰簲鐨勮鍒�
-                        if (workOrder.getUnitId().equals(unitId)) {
-                            //宸ュ崟涓嬪彂鏃堕棿
-                            Date createTime = workOrder.getDistributeTime();
-                            Date auditTime = workOrder.getAuditTime();
-                            double diffTime = (double) (auditTime.getTime() - createTime.getTime()) / (1000 * 60 * 60);
-                            //閫夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
-                            for (CalculateRuleVO rule : rules) {
-                                if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
-                                    double deductScore = rule.getCalcFraction() * Math.ceil(diffTime);
-                                    ContractScore contractScore = getContractScore(rule, deductScore, Math.round(diffTime * 100) / 100 + "", Remark + "宸ュ崟缂栧彿涓�:" + workOrder.getWorkOrderNo() + "澶勭悊瓒呮椂锛屾墸闄�" + deductScore + "鍒�");
-                                    contractScoreList.add(contractScore);
-                                    workOrderList.add(workOrder.getWorkOrderNo());
-                                }
-                            }
-                        }
-                    });
-                }
-            }
+//            if (ErrorType.VIDEO_NONE.getValue().equals(errorType) || ErrorType.PIC_URLABNORMAL.getValue().equals(errorType)) {
+//                if (!CollectionUtils.isEmpty(storeRuleMap)) {
+//                    storeRuleMap.forEach((contractId, rules) -> {
+//                        Integer unitId = rules.get(0).getUnitId();
+//                        //鎵惧埌瀵瑰簲鐨勮鍒�
+//                        if (workOrder.getUnitId().equals(unitId)) {
+//                            //宸ュ崟涓嬪彂鏃堕棿
+//                            Date createTime = workOrder.getDistributeTime();
+//                            Date auditTime = workOrder.getAuditTime();
+//                            double diffTime = (double) (auditTime.getTime() - createTime.getTime()) / (1000 * 60 * 60);
+//                            //閫夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
+//                            for (CalculateRuleVO rule : rules) {
+//                                if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
+//                                    double deductScore = rule.getCalcFraction() * Math.ceil(diffTime);
+//                                    ContractScore contractScore = getContractScore(rule, deductScore, Math.round(diffTime * 100) / 100 + "", Remark + "宸ュ崟缂栧彿涓�:" + workOrder.getWorkOrderNo() + "澶勭悊瓒呮椂锛屾墸闄�" + deductScore + "鍒�");
+//                                    contractScoreList.add(contractScore);
+//                                    workOrderList.add(workOrder.getWorkOrderNo());
+//                                }
+//                            }
+//                        }
+//                    });
+//                }
+//            }
             //鍓嶇鎰熺煡婧愭不鐞嗗伐浣滐紙鏃堕挓鍚屾瑙勫垯銆丱SD瑙勫垯銆佷竴鏈轰竴妗h鍒欙級
-            if (ErrorType.MONITOR_UNQUALIFY.getValue().equals(errorType) || ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType)) {
+            if (ErrorType.POINT_INFO_ERROR.getValue().equals(errorType) || ErrorType.OSD_ERROR.getValue().equals(errorType) || ErrorType.CLOCK_SKEW.getValue().equals(errorType)) {
                 if (!CollectionUtils.isEmpty(monitorRuleMap)) {
                     monitorRuleMap.forEach((contractId, rules) -> {
                         Integer unitId = rules.get(0).getUnitId();
@@ -357,7 +352,7 @@
             queryWrapper.in("serial_number", serialNumbers);
             //鑾峰彇鍏徃鎵�杩愮淮鐨勮澶囬泦鍚堬紝key涓簎nitId value涓鸿澶囧浗鏍囩爜闆嗗悎
             Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
-                    .filter(ywPoint -> ywPoint.getUnitId()!=null).collect(Collectors.groupingBy(YwPoint::getUnitId,
+                    .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
                             Collectors.mapping(
                                     YwPoint::getSerialNumber,
                                     Collectors.toList())));
@@ -437,7 +432,7 @@
             queryWrapper.in("serial_number", serialNumbers);
             //鑾峰彇鍏徃鎵�杩愮淮鐨勮澶囬泦鍚堬紝key涓簎nitId value涓鸿澶囧浗鏍囩爜闆嗗悎
             Map<Long, List<String>> unitMonitorMap = ywPointMapper.selectList(queryWrapper).stream()
-                    .filter(ywPoint -> ywPoint.getUnitId()!=null).collect(Collectors.groupingBy(YwPoint::getUnitId,
+                    .filter(ywPoint -> ywPoint.getUnitId() != null).collect(Collectors.groupingBy(YwPoint::getUnitId,
                             Collectors.mapping(
                                     YwPoint::getSerialNumber,
                                     Collectors.toList())));

--
Gitblit v1.8.0