package com.ycl.task; import com.alibaba.fastjson2.JSONObject; import com.ycl.platform.domain.param.HK.FaceDeviceInspectionParam; import com.ycl.platform.domain.param.HK.SnapshotDataMonitorParam; import com.ycl.platform.domain.param.HK.VehicleDeviceInspectionParam; import com.ycl.platform.domain.result.HK.BaseResult; import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult; 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 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.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 { @Autowired private MongoTemplate mongoTemplate; @Autowired private HKClient hkClient; @Autowired private IYwThresholdService ywThresholdService; @Autowired private ICheckIndexFaceService checkIndexFaceService; @Autowired private ICheckIndexCarService checkIndexCarService; @Autowired private ICheckIndexVideoService checkIndexVideoService; //车辆设备全检指标监测结果 public void VehicleDeviceInspectionTask() { log.info("开始执行车辆设备全检指标监测结果数据同步"); VehicleDeviceInspectionParam param = new VehicleDeviceInspectionParam(); param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(getToday()); JSONObject jsonObject = hkClient.VehicleDeviceInspection(param); List list = getDataList(jsonObject, VehicleDeviceInspectionResult.class, "车辆设备全检指标监测结果数据为空"); if (!CollectionUtils.isEmpty(list)) { //存放在mongo中 mongoTemplate.insert(list); //同步的数据进行工单阈值处理 ywThresholdService.carCheck(list); } log.info("结束车辆设备全检指标监测结果数据同步"); } //人脸设备全检指标监测结果 public void FaceDeviceInspectionTask() { log.info("开始执行人脸设备全检指标监测结果数据同步"); FaceDeviceInspectionParam param = new FaceDeviceInspectionParam(); param.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(getToday()); JSONObject jsonObject = hkClient.FaceDeviceInspection(param); List list = getDataList(jsonObject, FaceDeviceInspectionResult.class, "人脸设备全检指标监测结果数据为空"); if (!CollectionUtils.isEmpty(list)) { //存放在mongo中 mongoTemplate.insert(list); //同步的数据进行工单阈值处理 ywThresholdService.faceCheck(list); } log.info("结束人脸设备全检指标监测结果数据同步"); } //抓拍数据量监测结果 public void SnapshotDataMonitorTask() { log.info("开始执行抓拍数据量检测结果数据同步"); /** 车辆数据 */ SnapshotDataMonitorParam carParam = new SnapshotDataMonitorParam(); carParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(getToday()).setDataType(ApiConstants.HK_DATATYPE_CAR); JSONObject carJsonObject = hkClient.SnapshotDataMonitor(carParam); List carList = getDataList(carJsonObject, SnapshotDataMonitorResult.class, "车辆抓拍数据量检测结果数据"); if (!CollectionUtils.isEmpty(carList)) { //存放在mongo中 mongoTemplate.insert(carList); //TODO:车辆点位在线率 checkIndexCarService.siteOnline(carList); } /** 人脸数据 */ SnapshotDataMonitorParam faceParam = new SnapshotDataMonitorParam(); faceParam.setPageNO(ApiConstants.pageNo).setPageSize(ApiConstants.pageSize).setDate(getToday()).setDataType(ApiConstants.HK_DATATYPE_FACE); JSONObject faceJsonObject = hkClient.SnapshotDataMonitor(carParam); List list = getDataList(faceJsonObject, SnapshotDataMonitorResult.class, "人脸抓拍数据量检测结果数据为空"); if (!CollectionUtils.isEmpty(list)) { //存放在mongo中 mongoTemplate.insert(list); //TODO:人脸点位在线率 checkIndexFaceService.siteOnline(list); } log.info("结束抓拍数据量检测结果数据同步"); } //一机一档 public void task2() { //联网卡口设备目录一致率 } //卡口属性监测结果 public void task3() { //车辆卡口信息采集准确率 } //数据完整性监测结果 public void task4() { //车辆卡口设备抓拍数据完整性 } //属性识别准确监测结果 public void task5() { //车辆卡口设备抓拍数据完整性 } //车辆设备全检指标监测结果 public void task6() { //车辆卡口设备时钟准确性 } //抓拍数据时延监测结果 public void task7() { //车辆卡口设备抓拍数据上传及时性 } //图片访问监测结果 public void task8() { //车辆卡口信息采集准确率 //车辆卡口设备url可用性 } //获取当前日期 private String getToday() { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String today = sdf.format(date); return today; } //解析数据 private List getDataList(JSONObject faceJsonObject, Class resultClass, String message) { if (faceJsonObject != null && ApiConstants.successCode.equals(faceJsonObject.getString("code"))) { JSONObject data = faceJsonObject.getJSONObject("data"); if (data == null) { log.error(message, faceJsonObject); return null; } List list = data.getList("list", resultClass); 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 { log.error(message); } return null; } }