zxl
4 天以前 c83101eb62f5d4906b9c01ceea6b21a37f9e84d8
ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -9,13 +9,11 @@
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.MonitorQualifyResult;
import com.ycl.platform.domain.result.UY.VideoOnlineResult;
import com.ycl.platform.domain.vo.UpdateOnlineVO;
import com.ycl.platform.mapper.CheckIndexCarMapper;
import com.ycl.platform.mapper.CheckIndexFaceMapper;
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;
@@ -79,7 +77,7 @@
    @Autowired
    private CheckIndexFaceMapper faceMapper;
    //车辆设备全检指标监测结果
    //车辆设备全检指标监测结果 车辆(车辆卡口设备时钟准确性、)
    public void vehicleDeviceInspectionTask() {
        log.info("开始执行车辆设备全检指标监测结果数据同步");
        VehicleDeviceInspectionParam param = new VehicleDeviceInspectionParam();
@@ -109,7 +107,7 @@
        log.info("结束车辆设备全检指标监测结果数据同步");
    }
    //人脸设备全检指标监测结果
    //人脸设备全检指标监测结果 人脸(设备抓拍图片时钟准确性)
    public void faceDeviceInspectionTask() {
        log.info("开始执行人脸设备全检指标监测结果数据同步");
        FaceDeviceInspectionParam param = new FaceDeviceInspectionParam();
@@ -138,7 +136,7 @@
    }
    // 抓拍数据量监测结果
    // 抓拍数据量监测结果 车辆人脸(视图库对接稳定性、点位在线率)
    public void snapshotDataMonitorTask() {
        log.info("开始执行抓拍数据量检测结果数据同步");
        /** 车辆数据 */
@@ -172,7 +170,9 @@
        faceParam.setDate(DateUtils.getDate());
        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);
        log.info("打印人脸(视图库对接稳定性、点位在线率)HK接口获得任务信息:{}",faceList);
        if (!CollectionUtils.isEmpty(faceList)) {
            //如果今天存在之前的数据先删除
            Query query = new Query(Criteria
                    .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))
@@ -186,6 +186,7 @@
            pointService.setDeviceTagByGB(faceList, CheckConstants.Rule_Category_Face);
            //存放在mongo中
            faceList.forEach(item -> item.setDataType(ApiConstants.HK_DataType_FACE));
            log.info("打印人脸(视图库对接稳定性、点位在线率)设置tag并插入mongodb数据:{}",faceList);
            mongoTemplate.insertAll(faceList);
        }
        //修改online状态
@@ -219,6 +220,7 @@
                        willUpdateList.add(vo);
                    }
                });
                log.info("修改设备将要更新入sql中数据:{}",willUpdateList);
                if(!CollectionUtils.isEmpty(willUpdateList)) monitorMapper.updateOnlineFromHk(willUpdateList);
//            List<UpdateOnlineVO> willUpdateList = totalResult.stream().map(item -> {
//                UpdateOnlineVO vo = new UpdateOnlineVO();
@@ -242,7 +244,7 @@
        log.info("结束抓拍数据量检测结果数据同步");
    }
    //采集设备属性监测结果(人脸)
    //采集设备属性监测结果(人脸) 人脸(人脸卡口信息采集准确率)
    public void monitorDetailTask() {
        log.info("开始执行采集设备属性监测结果数据同步");
        //人脸卡口信息采集准确率
@@ -268,7 +270,7 @@
        log.info("结束采集设备属性监测结果数据同步");
    }
    //卡口属性监测结果
    //卡口属性监测结果 车辆(车辆卡口信息采集准确率、)
    public void crossDetailTask() {
        log.info("开始执行卡口属性监测结果数据同步");
        //车辆卡口信息采集准确率
@@ -294,7 +296,7 @@
        log.info("结束卡口属性监测结果数据同步");
    }
    //数据完整性监测结果
    //数据完整性监测结果 车量(车辆卡口设备抓拍数据完整性、)
    public void dataIntegrityMonitoringTask() {
        log.info("开始执行数据完整性监测结果数据同步");
        //车辆卡口设备抓拍数据完整性
@@ -322,7 +324,7 @@
        log.info("结束数据完整性监测结果数据同步");
    }
    //属性识别准确监测结果
    //属性识别准确监测结果 车辆(车辆卡口设备抓拍数据准确性、)
    public void attrRecognitionMonitorTask() {
        log.info("开始执行属性识别准确监测结果数据同步");
        //车辆卡口设备抓拍数据准确性
@@ -351,7 +353,7 @@
    }
    //抓拍数据时延监测结果
    //抓拍数据时延监测结果包含 车辆人脸(抓拍数据上传及时性)
    public void snapshopDelayMonitorTask() {
        log.info("开始执行抓拍数据时延监测结果数据同步");
        //车辆卡口设备抓拍数据上传及时性
@@ -407,7 +409,7 @@
        log.info("结束抓拍数据时延监测结果数据同步");
    }
    //图片访问监测结果
    //图片访问监测结果 车辆(车辆卡口信息采集准确率、车辆卡口设备url可用性)
    public void picAccessTask() {
        log.info("开始执行图片访问监测结果数据同步");
        //车辆卡口信息采集准确率、车辆卡口设备url可用性
@@ -435,7 +437,7 @@
        log.info("结束图片访问监测结果数据同步");
    }
    //车辆设备抽检指标监测结果
    //车辆设备抽检指标监测结果 车辆(车辆卡口信息采集准确率、车辆卡口设备url可用性)
    public void vehicleDeviceSamplingTask() {
        log.info("开始执行车辆设备抽检指标监测结果数据同步");
        //车辆卡口信息采集准确率、车辆卡口设备url可用性
@@ -464,7 +466,7 @@
    }
    //人脸设备抽检指标监测结果
    //人脸设备抽检指标监测结果 人脸(抓拍数据大图可用性,信息采集正确率)
    public void faceDeviceSamplingTask() {
        log.info("开始执行人脸设备抽检指标监测结果数据同步");
        FaceDeviceSamplingParam param = new FaceDeviceSamplingParam();
@@ -594,6 +596,7 @@
        JSONObject labelJson = hkClient.getGetLabel();
        Integer faceLabelId = null;
        Integer carLabelId = null;
        Integer allLabelId = null;
        if (labelJson != null) {
            String code = labelJson.getString("code");
            if (ApiConstants.HKSuccessCode.equals(code)){
@@ -605,10 +608,11 @@
                        faceLabelId = label.getId();
                    }else if ("省厅车辆".equals(label.getLabelName())){
                        carLabelId = label.getId();
                    }else if ("全量".equals(label.getLabelName())){
                        allLabelId = label.getId();
                    }
                }
                log.error("打印hkResultLabels:{}",hkResultLabels);
            }
        }
        if (faceLabelId == null || carLabelId == null){
@@ -635,6 +639,10 @@
//        param.setLabelId();
        //------------默认参数为null请求全量数据
        if (allLabelId == null){
            allLabelId = -1;
        }
        param.setLabelId(allLabelId);
        JSONObject scoreJson = hkClient.getScoreNew(param);
        log.error("全量数据");
        if (scoreJson != null) {
@@ -650,7 +658,6 @@
                    //以批次id为key 放入 JSONObject对象
                    map.put(Integer.valueOf(batchIdKey),batch);
                    //批次id 下 各区信息集合
                    log.error("打印出data内容中批次id:{},以及对应的结果info:{}",batchIdKey,batch);
                }
                //获得最大的键值
                Optional<Integer> maxKey = map.keySet().stream()
@@ -691,7 +698,6 @@
                    cars.add(car);
                    faces.add(face);
                }
                //请求省厅数据
            }else {
                log.error("调用海康全量数据api失败");
            }
@@ -707,7 +713,7 @@
            JSONObject faceJson = hkClient.getScoreNew(faceParam);
            log.error("省厅人脸数据");
            if (faceJson != null) {
                String code = scoreJson.getString("code");
                String code = faceJson.getString("code");
                if (ApiConstants.HKSuccessCode.equals(code)){
                    JSONObject data = faceJson.getJSONObject("data");
@@ -720,7 +726,7 @@
                        //批次id 下 各区信息集合
                        log.error("打印出省厅人脸data内容中批次id:{},以及对应的结果info:{}",batchIdKey,batch);
                    }
                    //获得最大的键值
                //获得最大的键值
                    Optional<Integer> maxKey = map.keySet().stream()
                            .max(Integer::compareTo);
                    if (maxKey.isPresent()) {
@@ -749,9 +755,9 @@
            JSONObject carJson = hkClient.getScoreNew(carParam);
            log.error("省厅车辆数据");
            if (carJson != null) {
                String code = scoreJson.getString("code");
                String code = carJson.getString("code");
                if (ApiConstants.HKSuccessCode.equals(code)){
                    JSONObject data = scoreJson.getJSONObject("data");
                    JSONObject data = carJson.getJSONObject("data");
                    Map<Integer,JSONObject> map = new HashMap<>();
                    //获得data 下 batchId 的批次id对象 放入map中
@@ -785,8 +791,6 @@
        Map<String,List<HkResultInfo>> provincialGroupedByAreaName = provincialList.stream()
                .collect(Collectors.groupingBy(HkResultInfo::getAreaCode));
        for (Map.Entry<String, List<HkResultInfo>> entry : provincialGroupedByAreaName.entrySet()) {
            log.error("最新批次内省厅数据:{}",provincialGroupedByAreaName.get(entry.getKey()).size());
            log.error("最新批次内省厅size:{}",provincialGroupedByAreaName.get(entry.getKey()));
            CheckIndexCar car = new CheckIndexCar();
            CheckIndexFace face = new CheckIndexFace();
            score3Index(provincialGroupedByAreaName.get(entry.getKey()), car, face,entry.getKey());