From f48878cdae5652be9e8f1145eda84d2ca9ca0544 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 07 一月 2025 13:52:05 +0800
Subject: [PATCH] 优化订单同步逻辑及环境配置
---
src/main/java/com/zy/asrs/task/AgvWarnScheduler.java | 85 +++++++++++++++++++++++++-----------------
1 files changed, 50 insertions(+), 35 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/AgvWarnScheduler.java b/src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
index d2531ac..c242ad2 100644
--- a/src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
@@ -6,7 +6,9 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.zy.asrs.entity.Agv;
import com.zy.asrs.entity.AgvWarn;
+import com.zy.asrs.mapper.AgvBasMapper;
import com.zy.asrs.service.AgvWarnService;
import com.zy.asrs.task.handler.AgvWarnHandler;
import com.zy.common.utils.HttpHandler;
@@ -40,39 +42,53 @@
@Autowired
private ConfigService configService;
+ @Autowired
+ private AgvBasMapper agvBasMapper;
+
/**
- * 瓒呰繃
+ * 瓒呰繃涓�鍒嗛挓娌℃洿鏂扮殑锛屽垹闄�
*/
- @Scheduled(fixedDelay = 30000)
+ @Scheduled(fixedDelay = 10000)
private void del() {
- String format = DateUtil.format(DateUtil.offsetMinute(new Date(), -3), "yyyy-MM-dd HH:mm:ss");
- List<AgvWarn> agvWarnList = agvWarnService.selectList(new EntityWrapper<AgvWarn>().ge("modi_time", format));
+ String format = DateUtil.format(DateUtil.offsetMinute(new Date(), -1), "yyyy-MM-dd HH:mm:ss");
+ List<AgvWarn> agvWarnList = agvWarnService.selectList(new EntityWrapper<AgvWarn>().le("modi_time", format));
for (AgvWarn agvWarn : agvWarnList) {
agvWarnHandler.start(agvWarn);
}
}
- @Scheduled(fixedDelay = 10000)
+ @Scheduled(fixedDelay = 20000)
private void report() {
- List<Config> config = configService.selectList(new EntityWrapper<Config>().eq("code", "AGV_WARN_REPORT_URL"));
+ List<Agv> agvs = agvBasMapper.selectList(new EntityWrapper<Agv>());
+ Config first = configService.selectOne(new EntityWrapper<Config>().eq("code", "AGV_WARN_RATE1"));
+ Config second = configService.selectOne(new EntityWrapper<Config>().eq("code", "AGV_WARN_RATE2"));
+ Config third = configService.selectOne(new EntityWrapper<Config>().eq("code", "AGV_WARN_RATE3"));
+ Config url = configService.selectOne(new EntityWrapper<Config>().eq("code", "AGV_WARN_REPORT_URL"));
List<AgvWarn> agvWarnList = agvWarnService.selectList(new EntityWrapper<AgvWarn>());
StringBuffer buffer;
for (AgvWarn agvWarn : agvWarnList) {
- Integer warnTime = getWarnTime(agvWarn.getTimes());
+ Integer warnTime = getWarnTime(agvWarn.getTimes(), first.getValue(), second.getValue(), third.getValue());
DateTime begin = DateUtil.parse(agvWarn.getBeginTime(), "yyyy-MM-dd HH:mm:ss");
- if (DateUtil.offsetMinute(begin, warnTime).after(new Date())) {
+ if (DateUtil.offsetMinute(begin, warnTime).before(new Date())) {
buffer = new StringBuffer();
- buffer.append(agvWarn.getRobotCode() + "鍙稟GV灏忚溅鎶ヨ:");
- buffer.append(agvWarn.getWarnContent());
+ buffer.append(processRegion(agvs, agvWarn.getRobotCode()) + "[" + agvWarn.getRobotCode() + "]鍙稟GV灏忚溅鎶ヨ浜哱n");
+ buffer.append("鎶ヨ绫诲瀷锛�" + agvWarn.getWarnContent() + "\n");
+ if (!Cools.isEmpty(agvWarn.getSourceLocNo())) {
+ buffer.append("浠�:[" + agvWarn.getSourceLocNo() + "]鍒癧" + agvWarn.getLocNo() + "]\n");
+ }
+ buffer.append("寮�濮嬫椂闂�:" + agvWarn.getBeginTime() + "\n");
+ int i = agvWarn.getTimes() + 1;
+ buffer.append("绗琜" + i + "]娆℃姤璀�");
HashMap<String, Object> param = new HashMap<>();
HashMap<String, Object> data = new HashMap<>();
data.put("content", buffer.toString());
param.put("msgtype", "text");
param.put("text", data);
+ log.info("鍙戦�佹姤璀︿俊鎭細{}", JSON.toJSONString(param));
String response = null;
try {
response = new HttpHandler.Builder()
- .setUri(config.get(0).getValue())
+ .setUri(url.getValue())
.setJson(JSON.toJSONString(param))
.setHttps(true)
.build()
@@ -82,6 +98,8 @@
}
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.get("errmsg").equals("ok")) {
+ agvWarn.setTimes(agvWarn.getTimes() + 1);
+ agvWarnService.updateById(agvWarn);
//鍙戦�佹垚鍔�
return;
} else {
@@ -96,32 +114,29 @@
* @param times
* @return
*/
- private Integer getWarnTime(Integer times) {
- try {
- List<Config> config = configService.selectList(new EntityWrapper<Config>().eq("code", "AGV_WARN_RATE1"));
- if (!Cools.isEmpty(config)) {
- String value = config.get(0).getValue();
- if (Cools.isEmpty(value)) {
- return 5;
- } else {
- String[] split = value.split(",");
- if (split.length < times + 1) {
- Config config2 = configService.selectOne(new EntityWrapper<Config>().eq("code", "AGV_WARN_RATE2"));
- int t = 0;
- for (String s : split) {
- t = t + Integer.parseInt(s);
- }
- return t + Integer.parseInt(config2.getValue()) * (times + 1 - split.length);
- } else {
- return Integer.parseInt(split[times]);
- }
- }
- }
- return 5;
- } catch (Exception e) {
- return 5;
+ private Integer getWarnTime(Integer times, String first, String second, String thrid) {
+ switch (times) {
+ case 0:
+ return Integer.parseInt(first);
+ case 1:
+ return Integer.parseInt(second);
+ case 2:
+ return Integer.parseInt(thrid);
+ default:
+ return (times - 2) * Integer.parseInt(thrid) + Integer.parseInt(first) + Integer.parseInt(second) + Integer.parseInt(thrid);
}
}
+ private String processRegion(List<Agv> agvs, String agvNo) {
+ if (agvNo == null) {
+ return "鏈煡灏忚溅";
+ }
+ for (Agv agv : agvs) {
+ if (agv.getAgvNo() != null && agv.getAgvNo().equals(agvNo)) {
+ return agv.getRegion();
+ }
+ }
+ return "鏈煡";
+ }
}
--
Gitblit v1.9.1