From 2587568bec69f9b9956851da73d626c39bc720db Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 09 十二月 2024 10:45:58 +0800
Subject: [PATCH] 点位ping任务调整
---
ycl-server/src/main/java/com/ycl/task/HKTask.java | 222 ++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 192 insertions(+), 30 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 34ac13b..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,18 +1,20 @@
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.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.service.ICheckIndexCarService;
-import com.ycl.platform.service.ICheckIndexFaceService;
-import com.ycl.platform.service.ICheckIndexVideoService;
-import com.ycl.platform.service.IYwThresholdService;
+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;
-import com.ycl.feign.HKClient;
+import constant.CheckConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -22,8 +24,9 @@
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
//娴峰悍瀵规帴鏁版嵁浠诲姟
@Slf4j
@@ -41,12 +44,11 @@
@Autowired
private IYwThresholdService ywThresholdService;
@Autowired
- private ICheckIndexFaceService checkIndexFaceService;
+ private YwPointService pointService;
@Autowired
- private ICheckIndexCarService checkIndexCarService;
+ private TMonitorMapper monitorMapper;
@Autowired
- private ICheckIndexVideoService checkIndexVideoService;
-
+ private UYErrorTypeCheckService uyErrorTypeCheckService;
//杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉
public void vehicleDeviceInspectionTask() {
log.info("寮�濮嬫墽琛岃溅杈嗚澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
@@ -60,6 +62,12 @@
//濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, VehicleDeviceInspectionResult.class);
+ list.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(list, CheckConstants.Rule_Category_Car);
//瀛樻斁鍦╩ongo涓�
mongoTemplate.insertAll(list);
//鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
@@ -83,6 +91,12 @@
//濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, FaceDeviceInspectionResult.class);
+ list.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(list,CheckConstants.Rule_Category_Face);
//瀛樻斁鍦╩ongo涓�
mongoTemplate.insertAll(list);
//鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
@@ -110,6 +124,12 @@
.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))
.and("dataType").is(ApiConstants.HK_DataType_CAR));
DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class);
+ carList.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(carList,CheckConstants.Rule_Category_Car);
//瀛樻斁鍦╩ongo涓�
carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
mongoTemplate.insertAll(carList);
@@ -123,14 +143,54 @@
faceParam.setDataType(ApiConstants.HK_DataType_FACE);
List<SnapshotDataMonitorResult> faceList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/data/snapCountDetail/query", faceParam, SnapshotDataMonitorResult.class);
if (!CollectionUtils.isEmpty(faceList)) {
+ log.info("缁撴灉鏁版嵁澶у皬锛歿}",faceList.size());
//濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria
.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))
.and("dataType").is(ApiConstants.HK_DataType_FACE));
DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class);
+ faceList.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(faceList,CheckConstants.Rule_Category_Face);
//瀛樻斁鍦╩ongo涓�
- carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
+ faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
mongoTemplate.insertAll(faceList);
+ }
+ //淇敼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("缁撴潫鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹悓姝�");
}
@@ -149,6 +209,12 @@
Query query = new Query(Criteria
.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, MonitoringDetailResult.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);
}
@@ -163,14 +229,20 @@
param.setPageNo(ApiConstants.PageNo);
param.setPageSize(ApiConstants.HKPageSize);
param.setDate(DateUtils.getDate());
- List<CrossDetailResult> faceList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/device/crossExpDetailInfo/query", param, CrossDetailResult.class);
- if (!CollectionUtils.isEmpty(faceList)) {
+ List<CrossDetailResult> carList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/device/crossExpDetailInfo/query", param, CrossDetailResult.class);
+ if (!CollectionUtils.isEmpty(carList)) {
//濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria
.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, CrossDetailResult.class);
+ carList.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(carList,CheckConstants.Rule_Category_Car);
//瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(faceList);
+ mongoTemplate.insertAll(carList);
}
log.info("缁撴潫鍗″彛灞炴�х洃娴嬬粨鏋滄暟鎹悓姝�");
}
@@ -184,15 +256,21 @@
param.setPageSize(ApiConstants.HKPageSize);
param.setDate(DateUtils.getDate());
param.setDataType(ApiConstants.HK_DataType_CAR);
- List<DataIntegrityMonitoringResult> faceList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/data/attributeIntegrity/query", param, DataIntegrityMonitoringResult.class);
+ List<DataIntegrityMonitoringResult> carList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/data/attributeIntegrity/query", param, DataIntegrityMonitoringResult.class);
- if (!CollectionUtils.isEmpty(faceList)) {
+ if (!CollectionUtils.isEmpty(carList)) {
//濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria
.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, DataIntegrityMonitoringResult.class);
+ carList.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(carList,CheckConstants.Rule_Category_Car);
//瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(faceList);
+ mongoTemplate.insertAll(carList);
}
log.info("缁撴潫鏁版嵁瀹屾暣鎬х洃娴嬬粨鏋滄暟鎹悓姝�");
}
@@ -206,15 +284,21 @@
param.setPageSize(ApiConstants.HKPageSize);
param.setDate(DateUtils.getDate());
param.setDataType(ApiConstants.HK_DataType_CAR);
- List<AttrRecognitionMonitorResult> faceList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/data/attributeRecognition/query", param, AttrRecognitionMonitorResult.class);
+ List<AttrRecognitionMonitorResult> carList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/data/attributeRecognition/query", param, AttrRecognitionMonitorResult.class);
- if (!CollectionUtils.isEmpty(faceList)) {
+ if (!CollectionUtils.isEmpty(carList)) {
//濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria
.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, AttrRecognitionMonitorResult.class);
+ carList.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(carList,CheckConstants.Rule_Category_Car);
//瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(faceList);
+ mongoTemplate.insertAll(carList);
}
log.info("缁撴潫灞炴�ц瘑鍒噯纭洃娴嬬粨鏋滄暟鎹悓姝�");
@@ -239,7 +323,13 @@
.and("dataType").is(ApiConstants.HK_DataType_CAR));
DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorResult.class);
//瀛樻斁鍦╩ongo涓�
- carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
+ carList.stream().forEach(item -> {
+ item.setDataType(ApiConstants.HK_DataType_CAR);
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(carList,CheckConstants.Rule_Category_Car);
mongoTemplate.insertAll(carList);
}
@@ -258,7 +348,13 @@
.and("dataType").is(ApiConstants.HK_DataType_FACE));
DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorResult.class);
//瀛樻斁鍦╩ongo涓�
- faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
+ faceList.forEach(item -> {
+ item.setDataType(ApiConstants.HK_DataType_FACE);
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(faceList,CheckConstants.Rule_Category_Face);
mongoTemplate.insertAll(faceList);
}
log.info("缁撴潫鎶撴媿鏁版嵁鏃跺欢鐩戞祴缁撴灉鏁版嵁鍚屾");
@@ -273,15 +369,21 @@
param.setPageSize(ApiConstants.HKPageSize);
param.setDate(DateUtils.getDate());
param.setDataType(ApiConstants.HK_DataType_CAR);
- List<PicAccessResult> faceList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/data/picAccessDetail/query", param, PicAccessResult.class);
+ List<PicAccessResult> carList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v1/data/picAccessDetail/query", param, PicAccessResult.class);
- if (!CollectionUtils.isEmpty(faceList)) {
+ if (!CollectionUtils.isEmpty(carList)) {
//濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria
.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, PicAccessResult.class);
+ carList.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(carList,CheckConstants.Rule_Category_Car);
//瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(faceList);
+ mongoTemplate.insertAll(carList);
}
log.info("缁撴潫鍥剧墖璁块棶鐩戞祴缁撴灉鏁版嵁鍚屾");
}
@@ -295,15 +397,21 @@
param.setPageSize(ApiConstants.HKPageSize);
param.setDate(DateUtils.getDate());
param.setDataType(ApiConstants.HK_DataType_CAR);
- List<VehicleDeviceSamplingResult> faceList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v2/data/vehSampleAmount/query", param, VehicleDeviceSamplingResult.class);
+ List<VehicleDeviceSamplingResult> carList = HkApiUtil.sendAPI(host,appKey,appSecret,"/api/dqd/service/rs/v2/data/vehSampleAmount/query", param, VehicleDeviceSamplingResult.class);
- if (!CollectionUtils.isEmpty(faceList)) {
+ if (!CollectionUtils.isEmpty(carList)) {
//濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
Query query = new Query(Criteria
.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
DeleteResult result = mongoTemplate.remove(query, VehicleDeviceSamplingResult.class);
+ carList.stream().forEach(item -> {
+ if (Objects.nonNull(item.getExternalIndexCode())) {
+ item.setNo(item.getExternalIndexCode());
+ }
+ });
+ pointService.setDeviceTagByGB(carList,CheckConstants.Rule_Category_Car);
//瀛樻斁鍦╩ongo涓�
- mongoTemplate.insertAll(faceList);
+ mongoTemplate.insertAll(carList);
}
log.info("缁撴潫杞﹁締璁惧鎶芥鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
}
@@ -323,12 +431,66 @@
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 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