From ed265ddfb8f08f69af064a9adf65fcbf06289ffe Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期二, 11 二月 2025 14:07:54 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java | 5 ++ src/main/java/com/zy/asrs/utils/NotifyUtils.java | 36 +++++++++--------- src/main/java/com/zy/core/enums/RedisKeyType.java | 1 src/main/java/com/zy/asrs/domain/NotifyDto.java | 11 +++-- src/main/java/com/zy/asrs/task/WrkMastScheduler.java | 45 ++++++++++++++++++++++ src/main/java/com/zy/common/service/CommonService.java | 5 +- 6 files changed, 79 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/zy/asrs/domain/NotifyDto.java b/src/main/java/com/zy/asrs/domain/NotifyDto.java index 38d2f6a..5173b88 100644 --- a/src/main/java/com/zy/asrs/domain/NotifyDto.java +++ b/src/main/java/com/zy/asrs/domain/NotifyDto.java @@ -7,8 +7,8 @@ private Long id; - //璁惧绫诲瀷 - private String deviceType; + //閫氱煡绫诲瀷 + private String notifyType; //璁惧鍙� private Integer device; @@ -19,8 +19,11 @@ //娑堟伅绫诲瀷 private String msgType; - //娑堟伅鍐呭 - private String content; + //娑堟伅鎻忚堪 + private String msgDesc; + + //娑堟伅鏁版嵁 + private String data; //澶辫触閲嶈瘯娆℃暟 private Integer failTimes = 3; diff --git a/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java b/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java index 11feb74..49505dd 100644 --- a/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java +++ b/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java @@ -11,6 +11,11 @@ SHUTTLE_POWER_COMPLETE("shuttle_power_complete", "灏忚溅鍏呯數瀹屾垚"), SHUTTLE_ERROR("shuttle_error", "灏忚溅寮傚父"), FORK_LIFT_ERROR("fork_lift_error", "璐у弶鎻愬崌鏈哄紓甯�"), + + //浠诲姟 + TASK_COMPLETE("task_complete", "浠诲姟瀹屾垚"), + TASK_CHARGE_COMPLETE("task_charge_complete", "鍏呯數浠诲姟瀹屾垚"), + TASK_CANCEL("task_cancel", "浠诲姟鍙栨秷"), ; public String flag; diff --git a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java index 4f1b40b..7ef9d9b 100644 --- a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java +++ b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java @@ -1,12 +1,20 @@ package com.zy.asrs.task; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.zy.asrs.domain.enums.NotifyMsgType; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WrkMastLogService; import com.zy.asrs.service.WrkMastService; +import com.zy.asrs.utils.NotifyUtils; +import com.zy.common.utils.HttpHandler; +import com.zy.core.enums.SlaveType; import com.zy.core.enums.WrkStsType; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; @@ -27,6 +35,8 @@ private WrkMastLogService wrkMastLogService; @Autowired private LocMastService locMastService; + @Autowired + private NotifyUtils notifyUtils; @Scheduled(cron = "0/1 * * * * ? ") @Transactional @@ -65,6 +75,9 @@ if (!wrkMastService.deleteById(wrkMast)) { log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast)); } } @@ -105,6 +118,9 @@ if (!wrkMastService.deleteById(wrkMast)) { log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast)); } } @@ -165,6 +181,9 @@ if (!wrkMastService.deleteById(wrkMast)) { log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast)); } } @@ -205,6 +224,32 @@ if (!wrkMastService.deleteById(wrkMast)) { log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_CHARGE_COMPLETE, JSON.toJSONString(wrkMast)); + } + } + + @Scheduled(cron = "0/1 * * * * ? ") + @Transactional + public void executeCancelTask(){ + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("mk", "taskCancel")); + if (wrkMasts.isEmpty()) { + return; + } + + for (WrkMast wrkMast : wrkMasts) { + // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� + if (!wrkMastLogService.save(wrkMast.getWrkNo())) { + log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo()); + } + // 鍒犻櫎宸ヤ綔涓绘。 + if (!wrkMastService.deleteById(wrkMast)) { + log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo()); + } + + //涓婃姤 + notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_CANCEL, JSON.toJSONString(wrkMast)); } } diff --git a/src/main/java/com/zy/asrs/utils/NotifyUtils.java b/src/main/java/com/zy/asrs/utils/NotifyUtils.java index 6a1f480..18dc8ab 100644 --- a/src/main/java/com/zy/asrs/utils/NotifyUtils.java +++ b/src/main/java/com/zy/asrs/utils/NotifyUtils.java @@ -27,12 +27,12 @@ @Autowired private ConfigService configService; - public synchronized boolean notify(String deviceType, Integer device, String taskNo, NotifyMsgType msgType) { - SlaveType type = SlaveType.findInstance(deviceType); - if (type == null) { - return false; - } - return append(type, device, taskNo, msgType); + public synchronized boolean notify(String notifyType, Integer device, String taskNo, NotifyMsgType msgType) { + return append(notifyType, device, taskNo, msgType, null); + } + + public synchronized boolean notify(String notifyType, Integer device, String taskNo, NotifyMsgType msgType, String data) { + return append(notifyType, device, taskNo, msgType, data); } public synchronized List<String> takeKeys(String deviceType, Integer device) { @@ -73,25 +73,25 @@ return key; } - private boolean append(SlaveType deviceType, Integer device, String taskNo, NotifyMsgType msgType) { + private boolean append(String notifyType, Integer device, String taskNo, NotifyMsgType msgType, String data) { String key = null; - switch (deviceType) { - case Shuttle: - key = RedisKeyType.QUEUE_SHUTTLE.key + device; - break; - case ForkLift: - key = RedisKeyType.QUEUE_FORK_LIFT.key + device; - break; - default: - return false; + if (notifyType.equals(String.valueOf(SlaveType.Shuttle))) { + key = RedisKeyType.QUEUE_SHUTTLE.key + device; + } else if (notifyType.equals(String.valueOf(SlaveType.ForkLift))) { + key = RedisKeyType.QUEUE_FORK_LIFT.key + device; + } else if (notifyType.equals("task")) { + key = RedisKeyType.QUEUE_FORK_LIFT.key + device; + } else { + return false; } NotifyDto dto = new NotifyDto(); dto.setId(snowflakeIdWorker.nextId()); - dto.setDeviceType(String.valueOf(deviceType)); + dto.setNotifyType(notifyType); dto.setDevice(device); dto.setMsgType(msgType.flag); - dto.setContent(msgType.desc); + dto.setMsgDesc(msgType.desc); + dto.setData(data); dto.setTaskNo(taskNo); //閲嶈瘯娆℃暟 diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 4e32bd5..c9df23c 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -110,8 +110,9 @@ throw new CoolException("浠诲姟涓嶅瓨鍦�"); } - wrkMastLogService.save(wrkNo); - wrkMastService.deleteById(wrkNo); + wrkMast.setMk("taskCancel"); + wrkMast.setModiTime(new Date()); + wrkMastService.updateById(wrkMast); return true; } diff --git a/src/main/java/com/zy/core/enums/RedisKeyType.java b/src/main/java/com/zy/core/enums/RedisKeyType.java index fb0f9f7..190f8d9 100644 --- a/src/main/java/com/zy/core/enums/RedisKeyType.java +++ b/src/main/java/com/zy/core/enums/RedisKeyType.java @@ -10,6 +10,7 @@ BASIC_MAP("basicMap_"), QUEUE_SHUTTLE("queue_shuttle_"), QUEUE_FORK_LIFT("queue_fork_lift_"), + QUEUE_TASK("queue_task_"), ; public String key; -- Gitblit v1.9.1