fuliqi
2024-12-05 1b39f39eacfcd1f8bb46d261686e81a2ad9bafbd
ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -3,16 +3,12 @@
import com.alibaba.fastjson2.JSONObject;
import com.mongodb.client.result.DeleteResult;
import com.ycl.feign.HkApiUtil;
import com.ycl.feign.HkApiUtil;
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.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;
@@ -24,6 +20,7 @@
import java.util.Date;
import java.util.List;
import java.util.Objects;
//海康对接数据任务
@Slf4j
@@ -41,11 +38,7 @@
    @Autowired
    private IYwThresholdService ywThresholdService;
    @Autowired
    private ICheckIndexFaceService checkIndexFaceService;
    @Autowired
    private ICheckIndexCarService checkIndexCarService;
    @Autowired
    private ICheckIndexVideoService checkIndexVideoService;
    private YwPointService pointService;
    //车辆设备全检指标监测结果
    public void vehicleDeviceInspectionTask() {
@@ -60,6 +53,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);
            //存放在mongo中
            mongoTemplate.insertAll(list);
            //同步的数据进行工单阈值处理
@@ -83,6 +82,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);
            //存放在mongo中
            mongoTemplate.insertAll(list);
            //同步的数据进行工单阈值处理
@@ -110,9 +115,17 @@
                    .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);
            //存放在mongo中
            carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_CAR));
            mongoTemplate.insertAll(carList);
            //TODO:更新point表在线状态(有抓拍量视作在线)
            //工单
        }
        /** 人脸数据 */
@@ -123,15 +136,25 @@
        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);
            //存放在mongo中
            carList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
            faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
            mongoTemplate.insertAll(faceList);
            //TODO:更新point表在线状态(有抓拍量视作在线)
            //工单
        }
        log.info("结束抓拍数据量检测结果数据同步");
    }
@@ -149,6 +172,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);
            //存放在mongo中
            mongoTemplate.insertAll(faceList);
        }
@@ -163,14 +192,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);
            //存放在mongo中
            mongoTemplate.insertAll(faceList);
            mongoTemplate.insertAll(carList);
        }
        log.info("结束卡口属性监测结果数据同步");
    }
@@ -184,15 +219,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);
            //存放在mongo中
            mongoTemplate.insertAll(faceList);
            mongoTemplate.insertAll(carList);
        }
        log.info("结束数据完整性监测结果数据同步");
    }
@@ -206,15 +247,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);
            //存放在mongo中
            mongoTemplate.insertAll(faceList);
            mongoTemplate.insertAll(carList);
        }
        log.info("结束属性识别准确监测结果数据同步");
@@ -239,7 +286,13 @@
                    .and("dataType").is(ApiConstants.HK_DataType_CAR));
            DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorResult.class);
            //存放在mongo中
            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 +311,13 @@
                    .and("dataType").is(ApiConstants.HK_DataType_FACE));
            DeleteResult result = mongoTemplate.remove(query, SnapshotDelayMonitorResult.class);
            //存放在mongo中
            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 +332,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);
            //存放在mongo中
            mongoTemplate.insertAll(faceList);
            mongoTemplate.insertAll(carList);
        }
        log.info("结束图片访问监测结果数据同步");
    }
@@ -295,15 +360,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);
            //存放在mongo中
            mongoTemplate.insertAll(faceList);
            mongoTemplate.insertAll(carList);
        }
        log.info("结束车辆设备抽检指标监测结果数据同步");
    }
@@ -323,6 +394,12 @@
            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);
            //存放在mongo中
            mongoTemplate.insertAll(faceList);
        }