From 1063437e610972bb3000bea8ffda6fdc70a25cdb Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 31 七月 2024 18:23:08 +0800 Subject: [PATCH] 车辆人脸点位在线率 任务 --- ycl-server/src/main/java/com/ycl/task/HKTask.java | 182 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 141 insertions(+), 41 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 b85b2e2..dd81b77 100644 --- a/ycl-server/src/main/java/com/ycl/task/HKTask.java +++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson2.JSONObject; import com.mongodb.client.result.DeleteResult; import com.ycl.platform.domain.param.HK.*; +import com.ycl.platform.domain.result.BaseResult; import com.ycl.platform.domain.result.HK.*; import com.ycl.platform.service.ICheckIndexCarService; import com.ycl.platform.service.ICheckIndexFaceService; @@ -18,13 +19,11 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; -import org.springframework.util.unit.DataUnit; -import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; - +//娴峰悍瀵规帴鏁版嵁浠诲姟 @Slf4j @Component("HKTask") public class HKTask { @@ -43,7 +42,7 @@ private ICheckIndexVideoService checkIndexVideoService; //杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉 - public void VehicleDeviceInspectionTask() { + public void vehicleDeviceInspectionTask() { log.info("寮�濮嬫墽琛岃溅杈嗚澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾"); VehicleDeviceInspectionParam param = new VehicleDeviceInspectionParam(); param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()); @@ -51,7 +50,7 @@ List<VehicleDeviceInspectionResult> list = getDataList(jsonObject, VehicleDeviceInspectionResult.class, "杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁涓虹┖"); if (!CollectionUtils.isEmpty(list)) { //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 - Query query = new Query(Criteria.where("createTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); + Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, VehicleDeviceInspectionResult.class); //瀛樻斁鍦╩ongo涓� mongoTemplate.insert(list); @@ -62,7 +61,7 @@ } //浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉 - public void FaceDeviceInspectionTask() { + public void faceDeviceInspectionTask() { log.info("寮�濮嬫墽琛屼汉鑴歌澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾"); FaceDeviceInspectionParam param = new FaceDeviceInspectionParam(); param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()); @@ -70,7 +69,7 @@ List<FaceDeviceInspectionResult> list = getDataList(jsonObject, FaceDeviceInspectionResult.class, "浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁涓虹┖"); if (!CollectionUtils.isEmpty(list)) { //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 - Query query = new Query(Criteria.where("createTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); + Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); DeleteResult result = mongoTemplate.remove(query, FaceDeviceInspectionResult.class); //瀛樻斁鍦╩ongo涓� mongoTemplate.insert(list); @@ -83,7 +82,7 @@ //鎶撴媿鏁版嵁閲忕洃娴嬬粨鏋� - public void SnapshotDataMonitorTask() { + public void snapshotDataMonitorTask() { log.info("寮�濮嬫墽琛屾姄鎷嶆暟鎹噺妫�娴嬬粨鏋滄暟鎹悓姝�"); /** 杞﹁締鏁版嵁 */ SnapshotDataMonitorParam carParam = new SnapshotDataMonitorParam(); @@ -93,11 +92,11 @@ if (!CollectionUtils.isEmpty(carList)) { //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria - .where("createTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) + .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); //瀛樻斁鍦╩ongo涓� - carList.forEach(item->item.setDataType(ApiConstants.HK_DATATYPE_CAR)); + carList.forEach(item -> item.setDataType(ApiConstants.HK_DATATYPE_CAR)); mongoTemplate.insert(carList); } @@ -109,28 +108,21 @@ if (!CollectionUtils.isEmpty(faceList)) { //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria - .where("createTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) + .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); //瀛樻斁鍦╩ongo涓� - carList.forEach(item->item.setDataType(ApiConstants.HK_DATATYPE_FACE)); + carList.forEach(item -> item.setDataType(ApiConstants.HK_DATATYPE_FACE)); mongoTemplate.insert(faceList); } //TODO:宸ュ崟 log.info("缁撴潫鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹悓姝�"); } - - //涓�鏈轰竴妗� - public void task2() { - //鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼 - - } - //閲囬泦璁惧灞炴�х洃娴嬬粨鏋�(浜鸿劯) public void monitorDetailTask() { log.info("寮�濮嬫墽琛岄噰闆嗚澶囧睘鎬х洃娴嬬粨鏋滄暟鎹悓姝�"); - //閲囬泦璁惧灞炴�х洃娴嬬粨鏋� + //浜鸿劯鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� MonitoringDetailParam param = new MonitoringDetailParam(); param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()); JSONObject jsonObject = hkClient.monitorDetail(param); @@ -138,8 +130,8 @@ if (!CollectionUtils.isEmpty(faceList)) { //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria - .where("createTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); - DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class); + .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); + DeleteResult result = mongoTemplate.remove(query, MonitoringDetailResult.class); //瀛樻斁鍦╩ongo涓� mongoTemplate.insert(faceList); } @@ -158,8 +150,8 @@ if (!CollectionUtils.isEmpty(faceList)) { //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query query = new Query(Criteria - .where("createTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); - DeleteResult result = mongoTemplate.remove(query, SnapshotDataMonitorResult.class); + .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); + DeleteResult result = mongoTemplate.remove(query, CrossDetailResult.class); //瀛樻斁鍦╩ongo涓� mongoTemplate.insert(faceList); } @@ -168,35 +160,148 @@ } //鏁版嵁瀹屾暣鎬х洃娴嬬粨鏋� - public void task4() { + public void dataIntegrityMonitoringTask() { + log.info("寮�濮嬫墽琛屾暟鎹畬鏁存�х洃娴嬬粨鏋滄暟鎹悓姝�"); //杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬� + DataIntegrityMonitoringParam param = new DataIntegrityMonitoringParam(); + param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + JSONObject jsonObject = hkClient.DataIntegrityMonitoring(param); + List<DataIntegrityMonitoringResult> faceList = getDataList(jsonObject, DataIntegrityMonitoringResult.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, DataIntegrityMonitoringResult.class); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insert(faceList); + } + //TODO:宸ュ崟澶勭悊 + log.info("缁撴潫鏁版嵁瀹屾暣鎬х洃娴嬬粨鏋滄暟鎹悓姝�"); } //灞炴�ц瘑鍒噯纭洃娴嬬粨鏋� - public void task5() { - //杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬� - } + public void attrRecognitionMonitorTask() { + log.info("寮�濮嬫墽琛屽睘鎬ц瘑鍒噯纭洃娴嬬粨鏋滄暟鎹悓姝�"); + //杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬� + AttrRecognitionParam param = new AttrRecognitionParam(); + param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + JSONObject jsonObject = hkClient.AttrRecognitionMonitor(param); + List<AttrRecognitionMonitorResult> faceList = getDataList(jsonObject, AttrRecognitionMonitorResult.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, AttrRecognitionMonitorResult.class); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insert(faceList); + } + //TODO:宸ュ崟澶勭悊 + log.info("缁撴潫灞炴�ц瘑鍒噯纭洃娴嬬粨鏋滄暟鎹悓姝�"); - //杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉 - public void task6() { - //杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬� } //鎶撴媿鏁版嵁鏃跺欢鐩戞祴缁撴灉 - public void task7() { + public void snapshopDelayMonitorTask() { + log.info("寮�濮嬫墽琛屾姄鎷嶆暟鎹椂寤剁洃娴嬬粨鏋滄暟鎹悓姝�"); //杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬� + /** 杞﹁締鏁版嵁 */ + SnapshotDelayMonitorParam carParam = new SnapshotDelayMonitorParam(); + carParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + JSONObject carJsonObject = hkClient.SnapshotDelayMonitor(carParam); + List<SnapshotDelayMonitorResult> carList = getDataList(carJsonObject, SnapshotDelayMonitorResult.class, "杞﹁締鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹�"); + if (!CollectionUtils.isEmpty(carList)) { + //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 + Query query = new Query(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())) + .and("dataType").is(ApiConstants.HK_DATATYPE_CAR)); + DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorParam.class); + //瀛樻斁鍦╩ongo涓� + carList.forEach(item -> item.setDataType(ApiConstants.HK_DATATYPE_CAR)); + mongoTemplate.insert(carList); + } + + /** 浜鸿劯鏁版嵁 */ + SnapshotDelayMonitorParam faceParam = new SnapshotDelayMonitorParam(); + faceParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_FACE); + JSONObject faceJsonObject = hkClient.SnapshotDelayMonitor(faceParam); + List<SnapshotDelayMonitorParam> faceList = getDataList(faceJsonObject, SnapshotDelayMonitorParam.class, "浜鸿劯鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹负绌�"); + if (!CollectionUtils.isEmpty(faceList)) { + //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 + 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, SnapshotDelayMonitorParam.class); + //瀛樻斁鍦╩ongo涓� + carList.forEach(item -> item.setDataType(ApiConstants.HK_DATATYPE_FACE)); + mongoTemplate.insert(faceList); + } + //TODO:宸ュ崟 + log.info("缁撴潫鎶撴媿鏁版嵁鏃跺欢鐩戞祴缁撴灉鏁版嵁鍚屾"); } //鍥剧墖璁块棶鐩戞祴缁撴灉 - public void task8() { - //杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� + public void PicAccessTask() { + log.info("寮�濮嬫墽琛屽浘鐗囪闂洃娴嬬粨鏋滄暟鎹悓姝�"); + //杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜囥�佽溅杈嗗崱鍙h澶噓rl鍙敤鎬� + PicAccessParam param = new PicAccessParam(); + param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DATATYPE_CAR); + JSONObject jsonObject = hkClient.PicAccessMonitor(param); + List<PicAccessResult> faceList = getDataList(jsonObject, PicAccessResult.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, PicAccessResult.class); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insert(faceList); + } + //TODO:宸ュ崟澶勭悊 + log.info("缁撴潫鍥剧墖璁块棶鐩戞祴缁撴灉鏁版嵁鍚屾"); + } - //杞﹁締鍗″彛璁惧url鍙敤鎬� + //浜鸿劯璁惧鎶芥鎸囨爣鐩戞祴缁撴灉 + public void Face() { + log.info("寮�濮嬫墽琛屼汉鑴歌澶囨娊妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾"); + //杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜囥�佽溅杈嗗崱鍙h澶噓rl鍙敤鎬� + FaceDeviceSamplingParam param = new FaceDeviceSamplingParam(); + param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()); + JSONObject jsonObject = hkClient.FaceDeviceSampling(param); + List<FaceDeviceSamplingResult> faceList = getDataList(jsonObject, FaceDeviceSamplingResult.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); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insert(faceList); + } + //TODO:宸ュ崟澶勭悊 + log.info("缁撴潫浜鸿劯璁惧鎶芥鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾"); + } + + //杞﹁締璁惧鎶芥鎸囨爣鐩戞祴缁撴灉 + public void FaceDeviceSamplingTask() { + log.info("寮�濮嬫墽琛岃溅杈嗚澶囨娊妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾"); + //杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜囥�佽溅杈嗗崱鍙h澶噓rl鍙敤鎬� + FaceDeviceSamplingParam param = new FaceDeviceSamplingParam(); + param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(DateUtils.getDate()); + JSONObject jsonObject = hkClient.FaceDeviceSampling(param); + List<FaceDeviceSamplingResult> faceList = getDataList(jsonObject, FaceDeviceSamplingResult.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); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insert(faceList); + } + //TODO:宸ュ崟澶勭悊 + log.info("缁撴潫浜鸿劯璁惧鎶芥鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾"); } //瑙f瀽鏁版嵁 private <T> List<T> getDataList(JSONObject faceJsonObject, Class<T> resultClass, String message) { - if (faceJsonObject != null && ApiConstants.successCode.equals(faceJsonObject.getString("code"))) { + if (faceJsonObject != null && ApiConstants.HKSuccessCode.equals(faceJsonObject.getString("code"))) { JSONObject data = faceJsonObject.getJSONObject("data"); if (data == null) { log.error(message, faceJsonObject); @@ -206,11 +311,6 @@ if (CollectionUtils.isEmpty(list)) { log.error(message, data); return null; - } - for (T t : list) { - if (t instanceof BaseResult) { - ((BaseResult) t).setCreateTime(new Date()); - } } return list; } else { -- Gitblit v1.8.0