自动化立体仓库 - WMS系统
zhangc
2025-03-09 dfc9552392f9f973ab52e55d58a7ae2acdaeb1f3
src/main/java/com/zy/asrs/task/AgvWarnScheduler.java
@@ -1,6 +1,5 @@
package com.zy.asrs.task;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@@ -51,6 +50,7 @@
    private AgvBasMapper agvBasMapper;
    /**
     *  删除告警日志
     */
@@ -87,27 +87,35 @@
        HashMap<String, Object> sendData = new HashMap<>();
        for (AgvWarn agvWarn : agvWarnList) {
            Integer warnTime = getWarnTime(agvWarn.getTimes(), first.getValue(), second.getValue(), third.getValue());
            DateTime begin = DateUtil.parse(agvWarn.getBeginTime(), "yyyy-MM-dd HH:mm:ss");
            Date begin = DateUtil.parse(agvWarn.getBeginTime(), "yyyy-MM-dd HH:mm:ss");
            if (DateUtil.offsetMinute(agvWarn.getAppeTime(), -3).after(begin)) {
                begin = agvWarn.getAppeTime();
            }
            if (DateUtil.offsetMinute(new Date(), -warnTime).after(begin)) {
                buffer = new StringBuffer();
                buffer.append(processRegion(agvs, agvWarn.getRobotCode()) + "[" + agvWarn.getRobotCode() + "]号AGV小车报警了\n");
                String s = processRegion(agvs, agvWarn.getRobotCode());
                if (s == null) {
                    continue;
                }
                buffer.append(s + "[" + agvWarn.getRobotCode() + "]号AGV小车报警了\n");
                buffer.append("报警类型:" + agvWarn.getWarnContent() + "\n");
                if (!Cools.isEmpty(agvWarn.getSourceLocNo())) {
                    buffer.append("从:[" + agvWarn.getSourceLocNo() + "]到[" + agvWarn.getLocNo() + "]\n");
                }
                buffer.append("报警开始时间:" + agvWarn.getBeginTime() + "\n");
                buffer.append("当前时间:" + DateUtil.formatDateTime(new Date()) + "\n");
                int i = agvWarn.getTimes() + 1;
                //buffer.append("报警开始时间:" + agvWarn.getBeginTime() + "\n");
                buffer.append("报警开始时间:" + DateUtil.formatDateTime(begin) + "\n");
                buffer.append("当前时间:" + DateUtil.formatDateTime(new Date()));
                //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));
                sendData.put(agvWarn.getRobotCode() + agvWarn.getWarnContent(), param);
            }
            for (HashMap.Entry<String, Object> entry : sendData.entrySet()) {
                log.info("发送报警信息:{}", JSON.toJSONString(entry.getValue()));
                String response = null;
                try {
                    response = new HttpHandler.Builder().setUri(url.getValue()).setJson(JSON.toJSONString(entry.getValue())).setHttps(true).build().doPost();
@@ -117,9 +125,8 @@
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.get("errmsg").equals("ok")) {
                    agvWarn.setTimes(agvWarn.getTimes() + 1);
                    agvWarn.setModiTime(new Date());
                    agvWarnService.updateById(agvWarn);
                    //发送成功
                    return;
                } else {
                    log.error("发送失败,错误信息:{}", jsonObject.get("errmsg"));
                }
@@ -152,6 +159,9 @@
        }
        for (Agv agv : agvs) {
            if (agv.getAgvNo() != null && agv.getAgvNo().equals(agvNo)) {
                if (!Cools.isEmpty(agv.getFlag()) && agv.getFlag() == 1) {
                    return null;
                }
                return agv.getRegion();
            }
        }