降低安全帽拉取数据频次

This commit is contained in:
pengjie 2024-11-21 14:18:48 +08:00
parent fd6fdd257c
commit 94026e1e85

View File

@ -189,77 +189,77 @@ public class SafetyHatTask {
}
}
/**
* 定时设置昨天的轨迹到数据库
*/
@Scheduled(cron = "0 0 3 * * ?")
@SchedulerLock(name = "setYesterdayHelmetData", lockAtMostFor = 1000 * 60 * 2, lockAtLeastFor = 1000 * 10)
@RequestMapping("setYesterdayHelmetData")
public void setYesterdayHelmetData() {
log.info("定时设置昨天的轨迹到数据库任务开始");
List<Project> projectList = projectService.list(Wrappers.<Project>lambdaQuery().ne(Project::getHelmetUser, "").ne(Project::getHelmetPassword, ""));
if (CollUtil.isNotEmpty(projectList)) {
for (Project project : projectList) {
List<SafetyHatDev> devList = safetyHatDevMapper.selectList(new LambdaQueryWrapper<SafetyHatDev>()
.eq(SafetyHatDev::getProjectSn, project.getProjectSn()));
for (SafetyHatDev dev : devList) {
if (StrUtil.isBlank(dev.getExtUserId())) {
log.info("定时设置昨天的轨迹到数据库任务安全帽外部user_id没有设置,devSn:{}", dev.getDevSn());
continue;
}
DateTime yB = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1));
DateTime yE = DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1));
String start = yB.getTime() / 1000L + "";
String end = yE.getTime() / 1000L + "";
String url = "https://caps.runde.pro/api/index.php?ctl=location&act=get_user_path_web";
JSONObject pJo = new JSONObject();
pJo.put("admin_id", project.getHelmetUser());
pJo.put("user_id", dev.getExtUserId());
pJo.put("start", start);
pJo.put("end", end);
String json = pJo.toJSONString();
log.info("定时设置昨天的轨迹到数据库任务开始devSn{},url:{},json:{}", dev.getDevSn(), url, json);
String rs = HttpRequest.post(url)
.body(json)
.timeout(20000)//超时毫秒
.execute().body();
log.info("定时设置昨天的轨迹到数据库任务开始rs,devSn{},rs:{}", dev.getDevSn(), rs);
JSONObject rsJo = JSON.parseObject(rs);
if (rsJo.getBoolean("status")) {
JSONArray dataJa = rsJo.getJSONArray("data");
//删除昨日的数据
safetyHatDataMapper.delete(new LambdaQueryWrapper<SafetyHatData>()
.eq(SafetyHatData::getDevSn, dev.getDevSn())
.eq(SafetyHatData::getIsPlatformData, 1)
.ge(SafetyHatData::getUploadTime, yB)
.le(SafetyHatData::getUploadTime, yE)
);
if (CollUtil.isEmpty(dataJa)) {
continue;
}
for (int i = 0; i < dataJa.size(); i++) {
JSONObject dataJo = dataJa.getJSONObject(i);
Double xPoint = dataJo.getDouble("x_point");
Double yPoint = dataJo.getDouble("y_point");
Long time = dataJo.getLong("time");
SafetyHatData data = new SafetyHatData();
data.setWorkerInfoId(dev.getWorkerInfoId());
data.setDevSn(dev.getDevSn());
data.setLatitude(xPoint);
data.setLongitude(yPoint);
data.setUploadTime(new Date(time * 1000L));
data.setProjectSn(dev.getProjectSn());
data.setIsPlatformData(1);
safetyHatDataMapper.insert(data);
}
} else {
log.error("定时设置昨天的轨迹到数据库任务失败devSn{}", dev.getDevSn());
}
}
}
}
}
// /**
// * 定时设置昨天的轨迹到数据库
// */
// @Scheduled(cron = "0 0 3 * * ?")
// @SchedulerLock(name = "setYesterdayHelmetData", lockAtMostFor = 1000 * 60 * 2, lockAtLeastFor = 1000 * 10)
// @RequestMapping("setYesterdayHelmetData")
// public void setYesterdayHelmetData() {
// log.info("定时设置昨天的轨迹到数据库任务开始");
// List<Project> projectList = projectService.list(Wrappers.<Project>lambdaQuery().ne(Project::getHelmetUser, "").ne(Project::getHelmetPassword, ""));
// if (CollUtil.isNotEmpty(projectList)) {
// for (Project project : projectList) {
// List<SafetyHatDev> devList = safetyHatDevMapper.selectList(new LambdaQueryWrapper<SafetyHatDev>()
// .eq(SafetyHatDev::getProjectSn, project.getProjectSn()));
// for (SafetyHatDev dev : devList) {
// if (StrUtil.isBlank(dev.getExtUserId())) {
// log.info("定时设置昨天的轨迹到数据库任务安全帽外部user_id没有设置,devSn:{}", dev.getDevSn());
// continue;
// }
// DateTime yB = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1));
// DateTime yE = DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1));
// String start = yB.getTime() / 1000L + "";
// String end = yE.getTime() / 1000L + "";
// String url = "https://caps.runde.pro/api/index.php?ctl=location&act=get_user_path_web";
// JSONObject pJo = new JSONObject();
// pJo.put("admin_id", project.getHelmetUser());
// pJo.put("user_id", dev.getExtUserId());
// pJo.put("start", start);
// pJo.put("end", end);
// String json = pJo.toJSONString();
// log.info("定时设置昨天的轨迹到数据库任务开始devSn{},url:{},json:{}", dev.getDevSn(), url, json);
// String rs = HttpRequest.post(url)
// .body(json)
// .timeout(20000)//超时毫秒
// .execute().body();
// log.info("定时设置昨天的轨迹到数据库任务开始rs,devSn{},rs:{}", dev.getDevSn(), rs);
// JSONObject rsJo = JSON.parseObject(rs);
// if (rsJo.getBoolean("status")) {
// JSONArray dataJa = rsJo.getJSONArray("data");
// //删除昨日的数据
// safetyHatDataMapper.delete(new LambdaQueryWrapper<SafetyHatData>()
// .eq(SafetyHatData::getDevSn, dev.getDevSn())
// .eq(SafetyHatData::getIsPlatformData, 1)
// .ge(SafetyHatData::getUploadTime, yB)
// .le(SafetyHatData::getUploadTime, yE)
// );
// if (CollUtil.isEmpty(dataJa)) {
// continue;
// }
// for (int i = 0; i < dataJa.size(); i++) {
// JSONObject dataJo = dataJa.getJSONObject(i);
// Double xPoint = dataJo.getDouble("x_point");
// Double yPoint = dataJo.getDouble("y_point");
// Long time = dataJo.getLong("time");
// SafetyHatData data = new SafetyHatData();
// data.setWorkerInfoId(dev.getWorkerInfoId());
// data.setDevSn(dev.getDevSn());
// data.setLatitude(xPoint);
// data.setLongitude(yPoint);
// data.setUploadTime(new Date(time * 1000L));
// data.setProjectSn(dev.getProjectSn());
// data.setIsPlatformData(1);
// safetyHatDataMapper.insert(data);
// }
// } else {
// log.error("定时设置昨天的轨迹到数据库任务失败devSn{}", dev.getDevSn());
// }
// }
//
// }
// }
// }
/**