From 2150b0b87de4ec80a9d3f968c6de947f361ca19f Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 15 十一月 2024 11:36:06 +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