BUG修复
This commit is contained in:
parent
b95256f82c
commit
1598527dd6
@ -15,7 +15,7 @@
|
|||||||
select count(*) count,
|
select count(*) count,
|
||||||
IFNULL(sum(online),0) onlineCount
|
IFNULL(sum(online),0) onlineCount
|
||||||
from safety_hat_dev
|
from safety_hat_dev
|
||||||
where 1 = 1
|
where type = 1
|
||||||
<if test="devSn != null and devSn != ''">
|
<if test="devSn != null and devSn != ''">
|
||||||
and dev_sn = #{devSn}
|
and dev_sn = #{devSn}
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
@ -110,7 +110,7 @@ public class SafetyHatTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 设置每秒最大请求数
|
// 设置每秒最大请求数
|
||||||
private static final double MAX_REQUESTS_PER_SECOND = 10.0;
|
private static final double MAX_REQUESTS_PER_SECOND = 20.0;
|
||||||
// 创建一个RateLimiter实例
|
// 创建一个RateLimiter实例
|
||||||
private static final RateLimiter rateLimiter = RateLimiter.create(MAX_REQUESTS_PER_SECOND);
|
private static final RateLimiter rateLimiter = RateLimiter.create(MAX_REQUESTS_PER_SECOND);
|
||||||
|
|
||||||
@ -131,64 +131,72 @@ public class SafetyHatTask {
|
|||||||
for (SafetyHatDev dev : devList) {
|
for (SafetyHatDev dev : devList) {
|
||||||
// 等待从RateLimiter获取权限
|
// 等待从RateLimiter获取权限
|
||||||
rateLimiter.acquire();
|
rateLimiter.acquire();
|
||||||
if (StrUtil.isBlank(dev.getExtUserId())) {
|
CompletableFuture.runAsync(() -> {
|
||||||
log.info("定时2分钟获取安全帽数据任务,安全帽外部user_id没有设置,devSn:{}", dev.getDevSn());
|
doGet(dev, project);
|
||||||
continue;
|
}).exceptionally(throwable -> {
|
||||||
}
|
log.error("err", throwable);
|
||||||
SafetyHatData lastData = safetyHatDataMapper.selectOne(new LambdaQueryWrapper<SafetyHatData>()
|
return null;
|
||||||
.eq(SafetyHatData::getDevSn, dev.getDevSn()).orderByDesc(SafetyHatData::getUploadTime).last("limit 1"));
|
});
|
||||||
String start;
|
|
||||||
if (lastData != null) {
|
|
||||||
start = lastData.getUploadTime().getTime() / 1000L + "";
|
|
||||||
} else {
|
|
||||||
start = DateUtil.offsetHour(new Date(), -12).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());
|
|
||||||
String end = System.currentTimeMillis() / 1000L + "";
|
|
||||||
pJo.put("start", start);
|
|
||||||
pJo.put("end", end);
|
|
||||||
String json = pJo.toJSONString();
|
|
||||||
log.info("定时2分钟获取安全帽数据任务开始,devSn:{},url:{},json:{}", dev.getDevSn(), url, json);
|
|
||||||
String rs = HttpRequest.post(url)
|
|
||||||
.body(json)
|
|
||||||
.timeout(20000)//超时,毫秒
|
|
||||||
.execute().body();
|
|
||||||
log.info("定时2分钟获取安全帽数据任务开始rs,devSn:{},rs:{}", dev.getDevSn(), rs);
|
|
||||||
JSONObject rsJo = JSON.parseObject(rs);
|
|
||||||
if (rsJo.getBoolean("status")) {
|
|
||||||
JSONArray dataJa = rsJo.getJSONArray("data");
|
|
||||||
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);
|
|
||||||
data.setType(dev.getType());
|
|
||||||
safetyHatDataService.add(data);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
log.error("定时2分钟获取安全帽数据任务失败:devSn:{}", dev.getDevSn());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void doGet(SafetyHatDev dev, Project project) {
|
||||||
|
if (StrUtil.isBlank(dev.getExtUserId())) {
|
||||||
|
log.info("定时2分钟获取安全帽数据任务,安全帽外部user_id没有设置,devSn:{}", dev.getDevSn());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SafetyHatData lastData = safetyHatDataMapper.selectOne(new LambdaQueryWrapper<SafetyHatData>()
|
||||||
|
.eq(SafetyHatData::getDevSn, dev.getDevSn()).orderByDesc(SafetyHatData::getUploadTime).last("limit 1"));
|
||||||
|
String start;
|
||||||
|
if (lastData != null) {
|
||||||
|
start = lastData.getUploadTime().getTime() / 1000L + "";
|
||||||
|
} else {
|
||||||
|
start = DateUtil.offsetHour(new Date(), -12).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());
|
||||||
|
String end = System.currentTimeMillis() / 1000L + "";
|
||||||
|
pJo.put("start", start);
|
||||||
|
pJo.put("end", end);
|
||||||
|
String json = pJo.toJSONString();
|
||||||
|
log.info("定时2分钟获取安全帽数据任务开始,devSn:{},url:{},json:{}", dev.getDevSn(), url, json);
|
||||||
|
String rs = HttpRequest.post(url)
|
||||||
|
.body(json)
|
||||||
|
.timeout(20000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
log.info("定时2分钟获取安全帽数据任务开始rs,devSn:{},rs:{}", dev.getDevSn(), rs);
|
||||||
|
JSONObject rsJo = JSON.parseObject(rs);
|
||||||
|
if (rsJo.getBoolean("status")) {
|
||||||
|
JSONArray dataJa = rsJo.getJSONArray("data");
|
||||||
|
if (CollUtil.isEmpty(dataJa)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
data.setType(dev.getType());
|
||||||
|
safetyHatDataService.add(data);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.error("定时2分钟获取安全帽数据任务失败:devSn:{}", dev.getDevSn());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * 定时设置昨天的轨迹到数据库
|
// * 定时设置昨天的轨迹到数据库
|
||||||
// */
|
// */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user