From 18f1c7abcea6f2eca1967141e7b5e408893c31a9 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 03 四月 2025 10:39:47 +0800 Subject: [PATCH] * --- src/main/java/com/zy/asrs/utils/CommandUtils.java | 109 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 64 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/CommandUtils.java b/src/main/java/com/zy/asrs/utils/CommandUtils.java index 6f450de..a18ce22 100644 --- a/src/main/java/com/zy/asrs/utils/CommandUtils.java +++ b/src/main/java/com/zy/asrs/utils/CommandUtils.java @@ -3,91 +3,110 @@ import com.alibaba.fastjson.JSON; import com.core.common.SpringUtils; import com.zy.asrs.entity.CommandInfo; -import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.service.CommandInfoService; -import com.zy.asrs.service.WrkMastService; -import com.zy.common.utils.RedisUtil; +import com.zy.asrs.service.TaskWrkService; +import com.zy.core.cache.MessageQueue; +import com.zy.core.enums.CommandStatusType; +import com.zy.core.enums.CommandType; import com.zy.core.enums.SlaveType; import com.zy.core.model.Task; import com.zy.core.model.command.CrnCommand; -import com.zy.core.model.command.RedisCommand; +import com.zy.core.model.command.CommandPackage; import com.zy.core.model.protocol.StaProtocol; -import java.util.ArrayList; import java.util.Date; public class CommandUtils { - public static void offer(SlaveType type, Integer id, Task task) { + public static boolean offer(SlaveType type, Integer id, Task task) { + return offer(type, id, task, true); + } + + public static boolean offer(SlaveType type, Integer id, Task task, Boolean auto) { CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class); if (commandInfoService == null) { - return; + return false; } - WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class); - if (wrkMastService == null) { - return; - } - RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); - if (redisUtil == null) { - return; + TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class); + if (taskWrkService == null) { + return false; } CommandInfo commandInfo = null; - WrkMast wrkMast = null; - int wrkNo = 0; - String taskNo = null; + TaskWrk taskWrk = null; + int wrkNo = 0;//宸ヤ綔鍙� + String taskNo = null;//浠诲姟鍙� if (type == SlaveType.Crn) { - RedisCommand<CrnCommand> redisCommand = new RedisCommand(); - ArrayList<CrnCommand> commands = new ArrayList<>(); - + CommandPackage<CrnCommand> commandPackage = new CommandPackage<>(); CrnCommand command = (CrnCommand) task.getData(); wrkNo = command.getTaskNo(); - if (wrkNo != 0) { - wrkMast = wrkMastService.selectById(wrkNo); - taskNo = wrkMast.getTaskNo(); + if (auto && wrkNo != 0) { + taskWrk = taskWrkService.selectByWrkNo(wrkNo); + taskNo = taskWrk.getTaskNo(); } commandInfo = new CommandInfo(); commandInfo.setWrkNo(wrkNo); commandInfo.setTaskNo(taskNo); - commandInfo.setCommandStatus(1); + commandInfo.setCommandStatus(CommandStatusType.CREATE.id); commandInfo.setStartTime(new Date()); - commandInfo.setDevice("crn"); - commandInfo.setCommand(JSON.toJSONString(command)); - commandInfoService.insert(commandInfo); - command.setCommandInfo(commandInfo); + commandInfo.setDevice(SlaveType.Crn.toString()); + commandInfo.setCommandType(auto? CommandType.AUTO.id : CommandType.MANUAL.id); - commands.add(command); - redisCommand.setWrkNo(wrkNo); - redisCommand.setCommands(commands); + commandInfoService.insert(commandInfo);//鎻掑叆鎸囦护 + + command.setCommandId(commandInfo.getId()); + commandPackage.setWrkNo(wrkNo); + commandPackage.setDevice("鍫嗗灈鏈�"); + commandPackage.setCommand(command);//淇濆瓨鍛戒护鎶ユ枃 + commandInfo.setCommand(JSON.toJSONString(commandPackage)); + commandInfoService.updateById(commandInfo); + + if (!auto) { + //灏嗘寚浠よ繘琛屾姇閫� + if (!MessageQueue.offer(type, id, task)) { + return false; + } + } + return true; } else if (type == SlaveType.Devp) { - RedisCommand<StaProtocol> redisCommand = new RedisCommand(); - ArrayList<StaProtocol> commands = new ArrayList<>(); - + CommandPackage<StaProtocol> commandPackage = new CommandPackage<>(); StaProtocol staProtocol = (StaProtocol) task.getData(); wrkNo = staProtocol.getWorkNo(); - if (wrkNo != 0) { - wrkMast = wrkMastService.selectById(wrkNo); - taskNo = wrkMast.getTaskNo(); + if (auto && wrkNo != 0) { + taskWrk = taskWrkService.selectByWrkNo(wrkNo); + taskNo = taskWrk.getTaskNo(); } commandInfo = new CommandInfo(); commandInfo.setWrkNo(wrkNo); commandInfo.setTaskNo(taskNo); - commandInfo.setCommandStatus(1); + commandInfo.setCommandStatus(CommandStatusType.CREATE.id); commandInfo.setStartTime(new Date()); - commandInfo.setDevice("devp"); - commandInfo.setCommand(JSON.toJSONString(staProtocol)); - commandInfoService.insert(commandInfo); + commandInfo.setDevice(SlaveType.Devp.toString()); + commandInfo.setCommandType(auto? CommandType.AUTO.id : CommandType.MANUAL.id); - staProtocol.setCommandInfo(commandInfo); + commandInfoService.insert(commandInfo);//鎻掑叆鎸囦护 - commands.add(staProtocol); - redisCommand.setWrkNo(wrkNo); - redisCommand.setCommands(commands); + staProtocol.setCommandId(commandInfo.getId()); + commandPackage.setCommand(staProtocol); + commandPackage.setWrkNo(wrkNo); + commandPackage.setDevice("杈撻�佺嚎"); + commandInfo.setCommand(JSON.toJSONString(commandPackage));//淇濆瓨鍛戒护鎶ユ枃 + commandInfoService.updateById(commandInfo); + + if (!auto) { + //灏嗘寚浠よ繘琛屾姇閫� + if (!MessageQueue.offer(type, id, task)) { + return false; + } + } + return true; } + return false; } } -- Gitblit v1.9.1