降低安全帽拉取数据频次

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