| | |
| | | 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; |
| | |
| | | @Autowired |
| | | private CheckIndexFaceMapper faceMapper; |
| | | |
| | | //车辆设备全检指标监测结果 |
| | | //车辆设备全检指标监测结果 车辆(车辆卡口设备时钟准确性、) |
| | | public void vehicleDeviceInspectionTask() { |
| | | log.info("开始执行车辆设备全检指标监测结果数据同步"); |
| | | VehicleDeviceInspectionParam param = new VehicleDeviceInspectionParam(); |
| | |
| | | log.info("结束车辆设备全检指标监测结果数据同步"); |
| | | } |
| | | |
| | | //人脸设备全检指标监测结果 |
| | | //人脸设备全检指标监测结果 人脸(设备抓拍图片时钟准确性) |
| | | public void faceDeviceInspectionTask() { |
| | | log.info("开始执行人脸设备全检指标监测结果数据同步"); |
| | | FaceDeviceInspectionParam param = new FaceDeviceInspectionParam(); |
| | |
| | | } |
| | | |
| | | |
| | | // 抓拍数据量监测结果 |
| | | // 抓拍数据量监测结果 车辆人脸(视图库对接稳定性、点位在线率) |
| | | public void snapshotDataMonitorTask() { |
| | | log.info("开始执行抓拍数据量检测结果数据同步"); |
| | | /** 车辆数据 */ |
| | |
| | | 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())) |
| | |
| | | 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状态 |
| | |
| | | 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(); |
| | |
| | | log.info("结束抓拍数据量检测结果数据同步"); |
| | | } |
| | | |
| | | //采集设备属性监测结果(人脸) |
| | | //采集设备属性监测结果(人脸) 人脸(人脸卡口信息采集准确率) |
| | | public void monitorDetailTask() { |
| | | log.info("开始执行采集设备属性监测结果数据同步"); |
| | | //人脸卡口信息采集准确率 |
| | |
| | | log.info("结束采集设备属性监测结果数据同步"); |
| | | } |
| | | |
| | | //卡口属性监测结果 |
| | | //卡口属性监测结果 车辆(车辆卡口信息采集准确率、) |
| | | public void crossDetailTask() { |
| | | log.info("开始执行卡口属性监测结果数据同步"); |
| | | //车辆卡口信息采集准确率 |
| | |
| | | log.info("结束卡口属性监测结果数据同步"); |
| | | } |
| | | |
| | | //数据完整性监测结果 |
| | | //数据完整性监测结果 车量(车辆卡口设备抓拍数据完整性、) |
| | | public void dataIntegrityMonitoringTask() { |
| | | log.info("开始执行数据完整性监测结果数据同步"); |
| | | //车辆卡口设备抓拍数据完整性 |
| | |
| | | log.info("结束数据完整性监测结果数据同步"); |
| | | } |
| | | |
| | | //属性识别准确监测结果 |
| | | //属性识别准确监测结果 车辆(车辆卡口设备抓拍数据准确性、) |
| | | public void attrRecognitionMonitorTask() { |
| | | log.info("开始执行属性识别准确监测结果数据同步"); |
| | | //车辆卡口设备抓拍数据准确性 |
| | |
| | | |
| | | } |
| | | |
| | | //抓拍数据时延监测结果 |
| | | //抓拍数据时延监测结果包含 车辆人脸(抓拍数据上传及时性) |
| | | public void snapshopDelayMonitorTask() { |
| | | log.info("开始执行抓拍数据时延监测结果数据同步"); |
| | | //车辆卡口设备抓拍数据上传及时性 |
| | |
| | | log.info("结束抓拍数据时延监测结果数据同步"); |
| | | } |
| | | |
| | | //图片访问监测结果 |
| | | //图片访问监测结果 车辆(车辆卡口信息采集准确率、车辆卡口设备url可用性) |
| | | public void picAccessTask() { |
| | | log.info("开始执行图片访问监测结果数据同步"); |
| | | //车辆卡口信息采集准确率、车辆卡口设备url可用性 |
| | |
| | | log.info("结束图片访问监测结果数据同步"); |
| | | } |
| | | |
| | | //车辆设备抽检指标监测结果 |
| | | //车辆设备抽检指标监测结果 车辆(车辆卡口信息采集准确率、车辆卡口设备url可用性) |
| | | public void vehicleDeviceSamplingTask() { |
| | | log.info("开始执行车辆设备抽检指标监测结果数据同步"); |
| | | //车辆卡口信息采集准确率、车辆卡口设备url可用性 |
| | |
| | | } |
| | | |
| | | |
| | | //人脸设备抽检指标监测结果 |
| | | //人脸设备抽检指标监测结果 人脸(抓拍数据大图可用性,信息采集正确率) |
| | | public void faceDeviceSamplingTask() { |
| | | log.info("开始执行人脸设备抽检指标监测结果数据同步"); |
| | | FaceDeviceSamplingParam param = new FaceDeviceSamplingParam(); |
| | |
| | | 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)){ |
| | |
| | | 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){ |
| | |
| | | // param.setLabelId(); |
| | | |
| | | //------------默认参数为null请求全量数据 |
| | | if (allLabelId == null){ |
| | | allLabelId = -1; |
| | | } |
| | | param.setLabelId(allLabelId); |
| | | JSONObject scoreJson = hkClient.getScoreNew(param); |
| | | log.error("全量数据"); |
| | | if (scoreJson != null) { |
| | |
| | | //以批次id为key 放入 JSONObject对象 |
| | | map.put(Integer.valueOf(batchIdKey),batch); |
| | | //批次id 下 各区信息集合 |
| | | log.error("打印出data内容中批次id:{},以及对应的结果info:{}",batchIdKey,batch); |
| | | } |
| | | //获得最大的键值 |
| | | Optional<Integer> maxKey = map.keySet().stream() |
| | |
| | | cars.add(car); |
| | | faces.add(face); |
| | | } |
| | | //请求省厅数据 |
| | | }else { |
| | | log.error("调用海康全量数据api失败"); |
| | | } |
| | |
| | | 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"); |
| | | |
| | |
| | | //批次id 下 各区信息集合 |
| | | log.error("打印出省厅人脸data内容中批次id:{},以及对应的结果info:{}",batchIdKey,batch); |
| | | } |
| | | //获得最大的键值 |
| | | //获得最大的键值 |
| | | Optional<Integer> maxKey = map.keySet().stream() |
| | | .max(Integer::compareTo); |
| | | if (maxKey.isPresent()) { |
| | |
| | | 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中 |
| | |
| | | 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()); |