From 5dccf0dc687dfef1c91936af3cea06fe0609b918 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 11 十二月 2024 17:31:11 +0800 Subject: [PATCH] osd时间bug、离线工单bug等 --- ycl-server/src/main/java/com/ycl/task/HKTask.java | 103 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 94 insertions(+), 9 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java index 993e794..784d9cf 100644 --- a/ycl-server/src/main/java/com/ycl/task/HKTask.java +++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java @@ -1,10 +1,16 @@ package com.ycl.task; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.mongodb.client.result.DeleteResult; import com.ycl.feign.HkApiUtil; +import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.param.HK.*; import com.ycl.platform.domain.result.HK.*; +import com.ycl.platform.domain.result.UY.VideoOnlineResult; +import com.ycl.platform.domain.vo.UpdateOnlineVO; +import com.ycl.platform.mapper.TMonitorMapper; +import com.ycl.platform.mapper.WorkOrderMapper; import com.ycl.platform.service.*; import com.ycl.utils.DateUtils; import constant.ApiConstants; @@ -18,9 +24,9 @@ import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; //娴峰悍瀵规帴鏁版嵁浠诲姟 @Slf4j @@ -39,7 +45,10 @@ private IYwThresholdService ywThresholdService; @Autowired private YwPointService pointService; - + @Autowired + private TMonitorMapper monitorMapper; + @Autowired + private UYErrorTypeCheckService uyErrorTypeCheckService; //杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉 public void vehicleDeviceInspectionTask() { log.info("寮�濮嬫墽琛岃溅杈嗚澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾"); @@ -124,8 +133,6 @@ //瀛樻斁鍦╩ongo涓� carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR)); mongoTemplate.insertAll(carList); - //TODO锛氭洿鏂皃oint琛ㄥ湪绾跨姸鎬侊紙鏈夋姄鎷嶉噺瑙嗕綔鍦ㄧ嚎锛� - //宸ュ崟 } /** 浜鸿劯鏁版嵁 */ @@ -151,10 +158,40 @@ //瀛樻斁鍦╩ongo涓� faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE)); mongoTemplate.insertAll(faceList); - //TODO:鏇存柊point琛ㄥ湪绾跨姸鎬侊紙鏈夋姄鎷嶉噺瑙嗕綔鍦ㄧ嚎锛� - //宸ュ崟 } - + //淇敼online鐘舵�佷互鍙婄敓鎴愬伐鍗� + List<SnapshotDataMonitorResult> totalResult =new ArrayList<>(); + totalResult.addAll(carList); + totalResult.addAll(faceList); + if(!CollectionUtils.isEmpty(totalResult)) { + List<String> numbers = totalResult.stream().map(SnapshotDataMonitorResult::getExternalIndexCode).collect(Collectors.toList()); + Map<String, TMonitor> map = monitorMapper.selectList(new QueryWrapper<TMonitor>().in("serial_number", numbers)) + .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); + Date now = new Date(); + //杩囨护 + totalResult = totalResult.stream().filter(item -> map.get(item.getExternalIndexCode()) != null).collect(Collectors.toList()); + totalResult.forEach(item->{ + TMonitor monitor = map.get(item.getExternalIndexCode()); + item.setIp(monitor.getIp()); + }); + List<UpdateOnlineVO> willUpdateList = totalResult.stream().map(item -> { + UpdateOnlineVO vo = new UpdateOnlineVO(); + vo.setOnline(item.getDataCount()>0?1:-1); + vo.setIp(map.get(item.getExternalIndexCode()).getIp()); + vo.setUpdateTime(now); + return vo; + }).collect(Collectors.toList()); + monitorMapper.updateOnlineFromUyOrHk(willUpdateList); + //绂荤嚎鐢熸垚宸ュ崟,涓�涓猧p鍙敓鎴愪竴涓伐鍗� + List<SnapshotDataMonitorResult> workOrders = new ArrayList<>(totalResult.stream() + .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getDataCount()>0?1:-1)) + .collect(Collectors.toMap( + SnapshotDataMonitorResult::getIp, + Function.identity(), + (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓紙existing锛� + )).values()); + uyErrorTypeCheckService.hkOnlineCheck(workOrders); + } log.info("缁撴潫鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹悓姝�"); } @@ -406,6 +443,54 @@ log.info("缁撴潫浜鸿劯璁惧鎶芥鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾"); } + //涓氬姟鏍� + public void TreeTask() { + log.info("寮�濮嬫墽琛屼笟鍔℃爲鏁版嵁"); + TreeParam param = new TreeParam(); + param.setStartDate("2024-12-06"); + param.setEndDate("2024-12-06"); + List<HKTreeResult> faceList = HkApiUtil.sendGetAPI(host,appKey,appSecret,"/api/third/timeTree", param, HKTreeResult.class); +// if (!CollectionUtils.isEmpty(faceList)) { +// //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 +// Query query = new Query(Criteria +// .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); +// DeleteResult result = mongoTemplate.remove(query, FaceDeviceSamplingResult.class); +// faceList.stream().forEach(item -> { +// if (Objects.nonNull(item.getExternalIndexCode())) { +// item.setNo(item.getExternalIndexCode()); +// } +// }); +// pointService.setDeviceTagByGB(faceList,CheckConstants.Rule_Category_Face); +// //瀛樻斁鍦╩ongo涓� +// mongoTemplate.insertAll(faceList); +// } + log.info("缁撴潫涓氬姟鏍戞暟鎹�"); + } + + //鑰冩牳鎴愮哗 + public void HkScoreTask() { + log.info("寮�濮嬫墽琛屾捣搴疯�冩牳鎴愮哗鏁版嵁"); + ScoreParam param = new ScoreParam(); + param.setStartDate("2024-12-06"); + param.setEndDate("2024-12-06"); + List<HKScoreResult> dataList = HkApiUtil.sendGetAPI(host,appKey,appSecret,"/api/third/score/get", param, HKScoreResult.class); +// if (!CollectionUtils.isEmpty(faceList)) { +// //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 +// Query query = new Query(Criteria +// .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); +// DeleteResult result = mongoTemplate.remove(query, FaceDeviceSamplingResult.class); +// faceList.stream().forEach(item -> { +// if (Objects.nonNull(item.getExternalIndexCode())) { +// item.setNo(item.getExternalIndexCode()); +// } +// }); +// pointService.setDeviceTagByGB(faceList,CheckConstants.Rule_Category_Face); +// //瀛樻斁鍦╩ongo涓� +// mongoTemplate.insertAll(faceList); +// } + log.info("缁撴潫娴峰悍鑰冩牳鎴愮哗鏁版嵁"); + } + //瑙f瀽鏁版嵁 private <T> List<T> getDataList(JSONObject jsonObject, Class<T> resultClass, String message) { if (jsonObject != null && ApiConstants.HKSuccessCode.equals(jsonObject.getString("code"))) { -- Gitblit v1.8.0