From 9d5878687df1a39293c171a93b8f57f2fb4559a5 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 09 八月 2024 09:16:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-server/src/main/java/com/ycl/task/HKTask.java |  333 ++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 277 insertions(+), 56 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 d4bf4be..48fcd04 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -1,27 +1,29 @@
 package com.ycl.task;
 
 import com.alibaba.fastjson2.JSONObject;
-import com.ycl.platform.domain.entity.YwThreshold;
-import com.ycl.platform.domain.param.HK.FaceDeviceInspectionParam;
-import com.ycl.platform.domain.param.HK.VehicleDeviceInspectionParam;
-import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
-import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult;
-import com.ycl.platform.mapper.YwThresholdMapper;
+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;
+import com.ycl.platform.service.ICheckIndexVideoService;
 import com.ycl.platform.service.IYwThresholdService;
-import com.ycl.web.HKClient;
-import enumeration.BusinessType;
-import enumeration.general.BusinessTypeEnum;
+import com.ycl.utils.DateUtils;
+import constant.ApiConstants;
+import com.ycl.feign.HKClient;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
-import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
-
+//娴峰悍瀵规帴鏁版嵁浠诲姟
 @Slf4j
 @Component("HKTask")
 public class HKTask {
@@ -32,69 +34,288 @@
     private HKClient hkClient;
     @Autowired
     private IYwThresholdService ywThresholdService;
-
-    private final static Integer pageNo = 1;
-    private final static Integer pageSize = 5000;
-    //鎴愬姛鐘舵�佺爜
-    private final static String successCode = "0";
+    @Autowired
+    private ICheckIndexFaceService checkIndexFaceService;
+    @Autowired
+    private ICheckIndexCarService checkIndexCarService;
+    @Autowired
+    private ICheckIndexVideoService checkIndexVideoService;
 
     //杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉
-    public void VehicleDeviceInspectionTask() {
+    public void vehicleDeviceInspectionTask() {
         log.info("寮�濮嬫墽琛岃溅杈嗚澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
         VehicleDeviceInspectionParam param = new VehicleDeviceInspectionParam();
-        param.setPageNO(pageNo).setPageSize(pageSize).setDate(getToday());
-        JSONObject jsonObject = hkClient.VehicleDeviceInspection(param);
-        if (jsonObject != null && successCode.equals(jsonObject.getString("code"))) {
-            JSONObject data = jsonObject.getJSONObject("data");
-            if (data == null) {
-                throw new RuntimeException("杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁涓虹┖");
-            }
-            List<VehicleDeviceInspectionResult> list = data.getList("list", VehicleDeviceInspectionResult.class);
-            list.forEach(item ->item.setCreateTime(new Date()));
-            if (CollectionUtils.isEmpty(list)) {
-                throw new RuntimeException("杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁涓虹┖");
-            }
+        param.setPageNO(ApiConstants.PageNo).setPageSize(ApiConstants.PageSize).setDate(DateUtils.getDate());
+        JSONObject jsonObject = hkClient.vehicleDeviceInspection(param);
+        List<VehicleDeviceInspectionResult> list = getDataList(jsonObject, VehicleDeviceInspectionResult.class, "杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁涓虹┖");
+        if (!CollectionUtils.isEmpty(list)) {
+            //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+            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);
+            mongoTemplate.insertAll(list);
             //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
             ywThresholdService.carCheck(list);
-        } else {
-            log.error("鍚屾杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉澶辫触", jsonObject);
         }
         log.info("缁撴潫杞﹁締璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
     }
 
-
-    public void FaceDeviceInspectionTask() {
+    //浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉
+    public void faceDeviceInspectionTask() {
         log.info("寮�濮嬫墽琛屼汉鑴歌澶囧叏妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
         FaceDeviceInspectionParam param = new FaceDeviceInspectionParam();
-        param.setPageNO(pageNo).setPageSize(pageSize).setDate(getToday());
-        JSONObject jsonObject = hkClient.FaceDeviceInspection(param);
-        if (jsonObject != null && successCode.equals(jsonObject.getString("code"))) {
-            JSONObject data = jsonObject.getJSONObject("data");
-            if (data == null) {
-                throw new RuntimeException("浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁涓虹┖");
-            }
-            List<FaceDeviceInspectionResult> list = data.getList("list", FaceDeviceInspectionResult.class);
-            list.forEach(item ->item.setCreateTime(new Date()));
-            if (CollectionUtils.isEmpty(list)) {
-                throw new RuntimeException("浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁涓虹┖");
-            }
-            //TODO:鍚屾鐨勬暟鎹彲鑳介渶瑕佸伐鍗曢槇鍊肩瓑澶勭悊
-
+        param.setPageNO(ApiConstants.PageNo).setPageSize(ApiConstants.PageSize).setDate(DateUtils.getDate());
+        JSONObject jsonObject = hkClient.faceDeviceInspection(param);
+        List<FaceDeviceInspectionResult> list = getDataList(jsonObject, FaceDeviceInspectionResult.class, "浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁涓虹┖");
+        if (!CollectionUtils.isEmpty(list)) {
+            //濡傛灉瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎
+            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);
-        } else {
-            log.error("鍚屾浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉澶辫触", jsonObject);
+            mongoTemplate.insertAll(list);
+            //鍚屾鐨勬暟鎹繘琛屽伐鍗曢槇鍊煎鐞�
+            //TODO:鍙兘鏈夐噸澶嶅伐鍗�
+            ywThresholdService.faceCheck(list);
         }
         log.info("缁撴潫浜鸿劯璁惧鍏ㄦ鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
     }
 
 
-    private String getToday() {
-        Date date = new Date();
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        String today = sdf.format(date);
-        return today;
+    //鎶撴媿鏁版嵁閲忕洃娴嬬粨鏋�
+    public void snapshotDataMonitorTask() {
+        log.info("寮�濮嬫墽琛屾姄鎷嶆暟鎹噺妫�娴嬬粨鏋滄暟鎹悓姝�");
+        /** 杞﹁締鏁版嵁 */
+        SnapshotDataMonitorParam carParam = new SnapshotDataMonitorParam();
+        carParam.setPageNO(ApiConstants.PageNo).setPageSize(ApiConstants.PageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_CAR);
+        JSONObject carJsonObject = hkClient.snapshotDataMonitor(carParam);
+        List<SnapshotDataMonitorResult> carList = getDataList(carJsonObject, SnapshotDataMonitorResult.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, SnapshotDataMonitorResult.class);
+            //瀛樻斁鍦╩ongo涓�
+            carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
+            mongoTemplate.insertAll(carList);
+        }
+
+        /** 浜鸿劯鏁版嵁 */
+        SnapshotDataMonitorParam faceParam = new SnapshotDataMonitorParam();
+        faceParam.setPageNO(ApiConstants.PageNo).setPageSize(ApiConstants.PageSize).setDate(DateUtils.getDate()).setDataType(ApiConstants.HK_DataType_FACE);
+        JSONObject faceJsonObject = hkClient.snapshotDataMonitor(carParam);
+        List<SnapshotDataMonitorResult> faceList = getDataList(faceJsonObject, SnapshotDataMonitorResult.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, SnapshotDataMonitorResult.class);
+            //瀛樻斁鍦╩ongo涓�
+            carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
+            mongoTemplate.insertAll(faceList);
+        }
+        //TODO:宸ュ崟
+        log.info("缁撴潫鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹悓姝�");
+    }
+
+    //閲囬泦璁惧灞炴�х洃娴嬬粨鏋�(浜鸿劯)
+    public void monitorDetailTask() {
+        log.info("寮�濮嬫墽琛岄噰闆嗚澶囧睘鎬х洃娴嬬粨鏋滄暟鎹悓姝�");
+        //浜鸿劯鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�
+        MonitoringDetailParam param = new MonitoringDetailParam();
+        param.setPageNO(ApiConstants.PageNo).setPageSize(ApiConstants.PageSize).setDate(DateUtils.getDate());
+        JSONObject jsonObject = hkClient.monitorDetail(param);
+        List<MonitoringDetailResult> faceList = getDataList(jsonObject, MonitoringDetailResult.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, MonitoringDetailResult.class);
+            //瀛樻斁鍦╩ongo涓�
+            mongoTemplate.insertAll(faceList);
+        }
+        //TODO:宸ュ崟澶勭悊
+        log.info("缁撴潫閲囬泦璁惧灞炴�х洃娴嬬粨鏋滄暟鎹悓姝�");
+    }
+
+    //鍗″彛灞炴�х洃娴嬬粨鏋�
+    public void crossDetailTask() {
+        log.info("寮�濮嬫墽琛屽崱鍙e睘鎬х洃娴嬬粨鏋滄暟鎹悓姝�");
+        //杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�
+        CrossDetailParam param = new CrossDetailParam();
+        param.setPageNO(ApiConstants.PageNo).setPageSize(ApiConstants.PageSize).setDate(DateUtils.getDate());
+        JSONObject jsonObject = hkClient.crossDetail(param);
+        List<CrossDetailResult> faceList = getDataList(jsonObject, CrossDetailResult.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, CrossDetailResult.class);
+            //瀛樻斁鍦╩ongo涓�
+            mongoTemplate.insertAll(faceList);
+        }
+        //TODO:宸ュ崟澶勭悊
+        log.info("缁撴潫鍗″彛灞炴�х洃娴嬬粨鏋滄暟鎹悓姝�");
+    }
+
+    //鏁版嵁瀹屾暣鎬х洃娴嬬粨鏋�
+    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.insertAll(faceList);
+        }
+        //TODO:宸ュ崟澶勭悊
+        log.info("缁撴潫鏁版嵁瀹屾暣鎬х洃娴嬬粨鏋滄暟鎹悓姝�");
+    }
+
+    //灞炴�ц瘑鍒噯纭洃娴嬬粨鏋�
+    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.insertAll(faceList);
+        }
+        //TODO:宸ュ崟澶勭悊
+        log.info("缁撴潫灞炴�ц瘑鍒噯纭洃娴嬬粨鏋滄暟鎹悓姝�");
+
+    }
+
+    //鎶撴媿鏁版嵁鏃跺欢鐩戞祴缁撴灉
+    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.insertAll(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.insertAll(faceList);
+        }
+        //TODO:宸ュ崟
+        log.info("缁撴潫鎶撴媿鏁版嵁鏃跺欢鐩戞祴缁撴灉鏁版嵁鍚屾");
+    }
+
+    //鍥剧墖璁块棶鐩戞祴缁撴灉
+    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.insertAll(faceList);
+        }
+        //TODO:宸ュ崟澶勭悊
+        log.info("缁撴潫鍥剧墖璁块棶鐩戞祴缁撴灉鏁版嵁鍚屾");
+    }
+    //杞﹁締璁惧鎶芥鎸囨爣鐩戞祴缁撴灉
+    public void vehicleDeviceSamplingTask() {
+        log.info("寮�濮嬫墽琛岃溅杈嗚澶囨娊妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
+        //杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜囥�佽溅杈嗗崱鍙h澶噓rl鍙敤鎬�
+        VehicleDeviceSamplingParam param = new VehicleDeviceSamplingParam();
+        param.setPageNO(ApiConstants.PageNo).setPageSize(ApiConstants.PageSize).setDate(DateUtils.getDate());
+        JSONObject jsonObject = hkClient.vehicleDeviceSampling(param);
+        List<VehicleDeviceSamplingResult> faceList = getDataList(jsonObject, VehicleDeviceSamplingResult.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, VehicleDeviceSamplingResult.class);
+            //瀛樻斁鍦╩ongo涓�
+            mongoTemplate.insertAll(faceList);
+        }
+        //TODO:宸ュ崟澶勭悊
+        log.info("缁撴潫杞﹁締璁惧鎶芥鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
+    }
+
+
+    //浜鸿劯璁惧鎶芥鎸囨爣鐩戞祴缁撴灉
+    public void faceDeviceSamplingTask() {
+        log.info("寮�濮嬫墽琛屼汉鑴歌澶囨娊妫�鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
+        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.insertAll(faceList);
+        }
+        //TODO:宸ュ崟澶勭悊
+        log.info("缁撴潫浜鸿劯璁惧鎶芥鎸囨爣鐩戞祴缁撴灉鏁版嵁鍚屾");
+    }
+
+    //瑙f瀽鏁版嵁
+    private <T> List<T> getDataList(JSONObject jsonObject, Class<T> resultClass, String message) {
+        if (jsonObject != null && ApiConstants.HKSuccessCode.equals(jsonObject.getString("code"))) {
+            log.info("鏁版嵁鏍煎紡"+jsonObject);
+            JSONObject data = jsonObject.getJSONObject("data");
+            if (data == null) {
+                log.error(message, jsonObject);
+                return null;
+            }
+            List<T> list = data.getList("list", resultClass);
+            if (CollectionUtils.isEmpty(list)) {
+                log.error(message, data);
+                return null;
+            }
+            return list;
+        } else {
+            log.error(message);
+        }
+        return null;
     }
 }

--
Gitblit v1.8.0