package com.ycl.task;
|
|
import com.alibaba.fastjson2.JSONObject;
|
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.web.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;
|
|
private final static Integer pageNo = 1;
|
private final static Integer pageSize = 5000;
|
//成功状态码
|
private final static String successCode = "0";
|
|
//车辆设备全检指标监测结果
|
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("车辆设备全检指标监测结果数据为空");
|
}
|
//TODO:同步的数据可能需要工单阈值等处理
|
|
//存放在mongo中
|
mongoTemplate.insert(list);
|
} else {
|
log.error("同步车辆设备全检指标监测结果失败", jsonObject);
|
}
|
log.info("结束车辆设备全检指标监测结果数据同步");
|
}
|
|
|
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:同步的数据可能需要工单阈值等处理
|
|
//存放在mongo中
|
mongoTemplate.insert(list);
|
} else {
|
log.error("同步人脸设备全检指标监测结果失败", jsonObject);
|
}
|
log.info("结束人脸设备全检指标监测结果数据同步");
|
}
|
|
|
private String getToday() {
|
Date date = new Date();
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
String today = sdf.format(date);
|
return today;
|
}
|
}
|