From ad9f8d87fd3cd81c0eed4cd9ecf38daf830a1dc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=80=A1=E8=93=89?= <377046077@qq.com> Date: Thu, 19 Mar 2026 15:08:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/api/controller/AgvController.java | 9 +- .../GenAgvSchedulingTaskRequest.java | 264 ++++++++++-------- .../com/ruoyi/api/service/IApiService.java | 10 +- .../ruoyi/api/service/IRequestLogService.java | 2 + .../api/service/impl/ApiServiceImpl.java | 94 ++++--- .../service/impl/RequestLogServiceImpl.java | 53 ++++ .../main/java/com/ruoyi/common/Constant.java | 2 + .../queue/agv/mapper/AgvQueueMapper.java | 2 + .../queue/agv/service/IAgvQueueService.java | 2 + .../agv/service/impl/AgvQueueServiceImpl.java | 5 + .../mapper/device/AgvQueueMapper.xml | 5 + .../framework/config/SecurityConfig.java | 1 + 12 files changed, 298 insertions(+), 151 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java index 5c8f84c..d935934 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java @@ -7,6 +7,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -46,8 +47,14 @@ public class AgvController extends BaseController { * @return */ @PostMapping("/receiveAgvMoveJob") - public AjaxResult receiveAgvMoveJob(@RequestBody Map param) { + public int receiveAgvMoveJob(@RequestBody Map param) { return apiService.receiveAgvMoveJob(param); } +//@Scheduled(cron = "0/5 * * * * ?") + public void sendAgvTask(){ + apiService.sendAgvTask(); + } + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/agv/genAgvSchedulingTask/GenAgvSchedulingTaskRequest.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/agv/genAgvSchedulingTask/GenAgvSchedulingTaskRequest.java index 46bea8d..60156f9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/agv/genAgvSchedulingTask/GenAgvSchedulingTaskRequest.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/agv/genAgvSchedulingTask/GenAgvSchedulingTaskRequest.java @@ -14,143 +14,187 @@ import java.util.UUID; @Data public class GenAgvSchedulingTaskRequest { /** - * 请求编号 - * 同一个请求重复提交, 使用同一编号 + * 起始站点 */ - @NotNull - private String reqCode = UUID.randomUUID().toString(); + private String FromStation; + /** - * 请求时间 - * 格式: “yyyy-MM-dd HH:mm:ss” + * 目的站点 */ - private String reqTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + private String ToStation; + /** - * 客户端编号 - * 客户端编号,如PDA,HCWMS等 + * 任务类型(以实际的任务类型为准) */ - private String clientCode; + private String Type; + /** - * 令牌号 - * 由调度系统颁发 + * 类名 */ - private String tokenCode; + private String ClassName; + /** - * 任务类型 - * 内置任务类型: - * 厂内货架搬运: F01 - * 厂内货架空满交换: F02 - * 辊筒搬运接驳:F03 - * 厂内货架出库AGV待命:F04 - * 旋转货架: F05 - * 厂内电梯任务: F06 - * 以下为叉车专用任务类型 - * 高位货架到工作台: F11 - * 工作台到高位货架: F12 - * 巷道到工作台: F13 - * 工作台到巷道: F14 - * 高位货架到工作台(接驳) : F15 - * 工作台到高位货架 (接驳) : F16 - * 巷道到工作台(接驳) : F17 - * 工作台到巷道(接驳) : F18 - * 叉车电梯主任务: F20 + * 任务引导ID */ - @NotNull - private String taskTyp; + private String TaskGuideId; /** - * 容器类型(叉车/CTU专用) 叉车项目必传 + * 订单 ID */ - private String ctnrTyp; + private String OrderId; + /** - * 容器编号 (叉车/CTU专用) + * 触发ID */ - private String ctnrCode; // + private String TriggerId; + /** - * 容器数量(叉车堆叠专用),默认值1,仅记录堆叠的数量不记录堆叠的每个容器号 + * 扩展字段4 */ - private String ctnrNum; + private String Extend4; + /** - * 任务模式 - * 0-普通move 1-出库move 2-入库move 3-移库move + * 扩展字段5 */ - private String taskMode; + private String Extend5; + /** - * 工作位 - * 与RCS-2000端配置的位置名称一致, 工作位名称为字母\数字\或组合 + * 扩展字段6 */ - private String wbCode; + private String Extend6; + /** - * 位置路径 - * AGV关键路径位置集合,与任务类型中模板配置的位置路径一一对应。待现场地图部署、配置完成后可获取 + * 扩展字段7 */ - private List positionCodePath; + private String Extend7; + /** - * 货架编号 - * 不指定货架可以为空 + * 扩展字段8 */ - private String podCode; + private String Extend8; + /** - * 货架方向 - * “180”,”0”,”90”,”-90” 分别对应地图的”左”,”右”,”上”,”下” - * 不指定方向可以为空 - * 如果终点不是工作台或工作台未配置操作方向则货架拣货方向podDir作为终点方向 - * 如果工作台配有操作方向,则系统会根据货架拣货方向podDir和工作台操作方向计算货架终点方向 + * 扩展字段9 */ - private String podDir; + private String Extend9; + /** - * 货架类型, 传空时表示随机找个货架 - * 找空货架传参方式如下: - * -1: 代表不关心货架类型, 找到空货架即可. - * -2: 代表从工作位获取关联货架类型, 如果未配置, 只找空货架. - * 货架类型编号: 只找该货架类型的空货架 + * 任务附加信息 */ - private String podTyp; + private TaskAdditionallInfo TaskAdditionallInfo; + /** - * 物料批次 - * 物料批次或货架上的物料唯一编码,生成任务单时,货架与物料直接绑定时使用. (通过同时传podCode和materialLot来绑定或通过 wbCode 找到位置上的货架和materialLot来绑定) - * 如果是区域/策略内查找货架,可以匹配对应物料批次的货架,支持以下值: - * 0:区域/策略内查找空货架 - * 1:区域/策略内查找满货架 - * 其他值:查找指定物料批次对应的货架 - * 巷道任务通过该字段传入特征值 + * 任务附加信息类 */ - private String materialLot; - /** - * 优先级 - * 从(1~127)级,最大优先级最高。为空时,采用任务模板的优先级 - */ - private String priority; - /** - * AGV编号 - * 填写表示指定某一编号的AGV执行该任务 - */ - private String agvCode; - /** - * 任务单号 - * 选填, 不填系统自动生成 - */ - private String taskCode; - /** - * 组编号 - * CTU场景下用于按组出库,同组任务优先拼车。 如业务需要任务组间或组内按顺序出库,则需调用料箱顺序出库(CTU)接口。 - * 潜伏式场景下,通过组号来管理顺序出库的顺序,组号小的优先出库。 - */ - private String groupId; - /** - * 设备类型 - */ - private String agvTyp; - /** - * 选择策略 - * 区域/策略中挑选货架以及根据物料批次挑选货架时的先进先出规则,支持以下4个值: - * 1:按照货架到达储位的时间顺序,先进先出 - * 2:按照货架到达储位的时间顺序,先进后出 - * 9:按照货架绑定物料批次的时间顺序,先进先出 - * 10:按照货架绑定物料批次的时间顺序,先进后出 - */ - private String positionSelStrategy; - /** - * 自定义数据 - */ - private String data; - + @Data + public static class TaskAdditionallInfo { + /** + * 任务ID + */ + private String TaskId; + + /** + * 库存ID + */ + private String StockId; + + /** + * 任务引导ID + */ + private String TaskGuideId; + + /** + * 触发ID + */ + private String TriggerId; + + /** + * 下一任务添加阶段 + */ + private String NextTaskAddStage; + + /** + * 链ID + */ + private String ChainId; + + /** + * 链类型 + */ + private Integer ChainType; + + /** + * 链排序 + */ + private Integer ChainSort; + + /** + * 图号 + */ + private String FigureNo; + + /** + * 尺寸 + */ + private String Size; + + /** + * 箱号 + */ + private String BoxNo; + + /** + * 物料 + */ + private String Mater; + + /** + * 相关数量 + */ + private Integer RelatedCount; + + /** + * 序列号 + */ + private String SerialNo; + + /** + * 重量 + */ + private String Weight; + + /** + * 站点号 + */ + private String StationNo; + + /** + * 手动计数 + */ + private String HandCount; + + /** + * 批次 + */ + private String Batch; + + /** + * 前置相关任务ID + */ + private String PreviousRelatedTaskId; + + /** + * 下一相关任务ID + */ + private String NextRelatedTaskId; + + /** + * 级联任务开始 + */ + private String CascadeTaskBeginning; + + /** + * 级联任务结束 + */ + private String CascadeTaskEnding; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java index bf04c65..41b4cda 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java @@ -34,11 +34,11 @@ public interface IApiService * @param code1 起点 * @param code2 终点 * @param wmsTrayCode 容器码 托盘料箱码/容器码 - * @param wmsTaskNo mydojob 任务 - * @param wmsTaskType 1-入库 2-出库 3-agv搬运 + * @param type mydojob 任务 + * @param jobId 1-入库 2-出库 3-agv搬运 * @return */ - public AgvQueue createAgvQueue(String code1,String code2,String wmsTrayCode,String taskCode,String wmsTaskType,String traySize,String wmsTaskNo); + public int createAgvQueue(String code1,String code2,String wmsTrayCode,String taskCode,String type,String jobId); /** * 取消AGV任务 @@ -76,7 +76,9 @@ public interface IApiService * @param param * @return */ - AjaxResult receiveAgvMoveJob(Map param); + int receiveAgvMoveJob(Map param); + + void sendAgvTask(); /** * 任务到达拣选口 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java index 25062d0..358ac51 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java @@ -68,6 +68,8 @@ public interface IRequestLogService */ public RequestLog getRequestLog(String url, String param, String endPoint); + public RequestLog getRequestLogAgv(String url, String endPoint, String param); + /** * 接收请求,并插入日志 * @param url diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java index 2278dc5..c0c0fb4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java @@ -62,17 +62,22 @@ public class ApiServiceImpl implements IApiService { */ @Override public GenAgvSchedulingTaskResponse genAgvSchedulingTask(GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest) { - RequestLog requestLog = requestLogService.getRequestLog(GEN_AGV_SCHEDULING_TASK, "生成AGV任务", JSONUtil.toJsonStr(genAgvSchedulingTaskRequest)); + RequestLog requestLog = requestLogService.getRequestLogAgv(CREATE_AGV_TASK_URL, "生成AGV任务", JSONUtil.toJsonStr(genAgvSchedulingTaskRequest)); if ("1".equals(requestLog.getIsSuccessful())) { - return BeanUtil.toBean(requestLog.getResponseBody(), GenAgvSchedulingTaskResponse.class); + GenAgvSchedulingTaskRequest bean = BeanUtil.toBean(requestLog.getResponseBody(), GenAgvSchedulingTaskRequest.class); + GenAgvSchedulingTaskResponse response = new GenAgvSchedulingTaskResponse(); + response.setCode(0); + response.setMessage("请求成功"); + response.setReqCode(genAgvSchedulingTaskRequest.getOrderId()); + return response; } else { //todo 需要调试 GenAgvSchedulingTaskResponse response = new GenAgvSchedulingTaskResponse(); response.setCode(500); response.setMessage("请求失败"); //todo 需要调试小车请求 - response.setCode(0); - response.setMessage("模拟测试"); +// response.setCode(0); +// response.setMessage("模拟测试"); return response; } } @@ -111,18 +116,39 @@ public class ApiServiceImpl implements IApiService { * @return */ @Override - public AjaxResult receiveAgvMoveJob(Map param) { + public int receiveAgvMoveJob(Map param) { String startPoint = param.get("startPoint"); String endPoint = param.get("endPoint"); - String traySize = param.get("traySize"); - String wmsTaskNo = param.get("wmsTaskNo"); + String type = param.get("type"); + String jobId = param.get("jobId"); - AgvQueue agvQueue = createAgvQueue(startPoint, endPoint, param.get("trayCode"), param.get("taskNo"), "1", traySize, wmsTaskNo); - GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue); - if (genAgvSchedulingTaskResponse.getCode() == 0) { - return AjaxResult.success(); + int i = createAgvQueue(startPoint, endPoint, param.get("trayCode"), param.get("taskNo"), type,jobId); + + return i; +// GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue); +// if (genAgvSchedulingTaskResponse.getCode() == 0) { +// return AjaxResult.success(); +// } +// return AjaxResult.error(genAgvSchedulingTaskResponse.getMessage()); + + } + + @Override + public void sendAgvTask() { + AgvQueue agvQueue = agvQueueService.selectAgvQueueByStatus(); + if (agvQueue != null) { + GenAgvSchedulingTaskResponse genAgvSchedulingTaskResponse = requestAgvQueue(agvQueue); + + if (genAgvSchedulingTaskResponse.getCode() == 0) { + agvQueue.setStatus("1"); + agvQueueService.updateAgvQueue(agvQueue); + agvQueueService.insertHistory(agvQueue.getReqCode()); + + }else{ + agvQueue.setStatus("2"); + agvQueueService.updateAgvQueue(agvQueue); + } } - return AjaxResult.error(genAgvSchedulingTaskResponse.getMessage()); } @@ -242,12 +268,12 @@ public class ApiServiceImpl implements IApiService { * @param code1 起点 * @param code2 终点 * @param wmsTrayCode 容器码 托盘料箱码/容器码 - * @param wmsTaskNo mydojob 任务 - * @param wmsTaskType 1-入库 2-出库 3-agv搬运 + * @param type mydojob 任务 + * @param jobId 1-入库 2-出库 3-agv搬运 * @return */ @Override - public AgvQueue createAgvQueue(String code1, String code2, String wmsTrayCode, String taskCode, String wmsTaskType, String traySize, String wmsTaskNo) { + public int createAgvQueue(String code1, String code2, String wmsTrayCode, String taskCode,String type,String jobId) { //生成ctu执行队列 AgvQueue agvQueue = new AgvQueue(); String reqCode = IdUtil.fastSimpleUUID(); @@ -257,20 +283,21 @@ public class ApiServiceImpl implements IApiService { agvQueue.setAgvType("AGV"); agvQueue.setPositionCode1(code1); agvQueue.setPositionCode2(code2); - agvQueue.setTaskType("F01"); - agvQueue.setCtnrType(traySize); + agvQueue.setTaskType(type); + agvQueue.setCtnrType("0"); agvQueue.setCtnrCode("0"); agvQueue.setCtnrNum("0"); agvQueue.setTaskMode("0"); agvQueue.setPriority("10"); agvQueue.setRequest("0"); agvQueue.setWmsTraycode(wmsTrayCode); - agvQueue.setWmsTaskNo(wmsTaskNo); + agvQueue.setWmsTaskNo(taskCode); agvQueue.setStatus("0"); - agvQueue.setTaskCode(taskCode); - agvQueue.setWmsTaskType(wmsTaskType); - agvQueueService.insertAgvQueue(agvQueue); - return agvQueue; + agvQueue.setTaskCode(jobId); + agvQueue.setWmsTaskType("0"); + int i = agvQueueService.insertAgvQueue(agvQueue); + return i; + } /** @@ -317,20 +344,15 @@ public class ApiServiceImpl implements IApiService { public GenAgvSchedulingTaskResponse requestAgvQueue(AgvQueue agvQueue) { //todo 请求ctu GenAgvSchedulingTaskRequest genAgvSchedulingTaskRequest = new GenAgvSchedulingTaskRequest(); - genAgvSchedulingTaskRequest.setReqCode(agvQueue.getReqCode()); - genAgvSchedulingTaskRequest.setTaskMode("0"); - genAgvSchedulingTaskRequest.setPriority("10"); - genAgvSchedulingTaskRequest.setTaskTyp("F01"); - genAgvSchedulingTaskRequest.setCtnrCode("0"); - genAgvSchedulingTaskRequest.setCtnrNum("0"); - genAgvSchedulingTaskRequest.setTaskMode("0"); - genAgvSchedulingTaskRequest.setTaskCode(agvQueue.getTaskCode()); - genAgvSchedulingTaskRequest.setAgvTyp("AGV"); - genAgvSchedulingTaskRequest.setPositionSelStrategy("0"); - List positionCodePath = new ArrayList<>(); - positionCodePath.add(new PositionCodeData(agvQueue.getPositionCode1(), "0")); - positionCodePath.add(new PositionCodeData(agvQueue.getPositionCode2(), "0")); - genAgvSchedulingTaskRequest.setPositionCodePath(positionCodePath); + genAgvSchedulingTaskRequest.setFromStation(agvQueue.getPositionCode1()); + genAgvSchedulingTaskRequest.setToStation(agvQueue.getPositionCode2()); + genAgvSchedulingTaskRequest.setOrderId(agvQueue.getTaskCode()); + genAgvSchedulingTaskRequest.setType(agvQueue.getTaskType()); + genAgvSchedulingTaskRequest.setTaskGuideId("00000000-0000-0000-0000-000000000000"); + genAgvSchedulingTaskRequest.setTriggerId("00000000-0000-0000-0000-000000000000"); + GenAgvSchedulingTaskRequest.TaskAdditionallInfo taskAdditionallInfo = new GenAgvSchedulingTaskRequest.TaskAdditionallInfo(); + genAgvSchedulingTaskRequest.setTaskAdditionallInfo(taskAdditionallInfo); + return genAgvSchedulingTask(genAgvSchedulingTaskRequest); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/RequestLogServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/RequestLogServiceImpl.java index 0e7a619..ffd6ea9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/RequestLogServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/RequestLogServiceImpl.java @@ -6,6 +6,8 @@ import java.util.List; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.ruoyi.api.domain.InterfaceReceive; @@ -137,6 +139,7 @@ public class RequestLogServiceImpl implements IRequestLogService requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS))); requestLog.setIsSuccessful("1"); }else { + requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss")); requestLog.setResponseStatus("0"); requestLog.setErrorDetails(bean.getMsg()); requestLog.setIsSuccessful("0"); @@ -152,6 +155,56 @@ public class RequestLogServiceImpl implements IRequestLogService return requestLog; } + @Override + public RequestLog getRequestLogAgv(String url, String endPoint, String param) { + RequestLog requestLog = new RequestLog(); + Date requestTime = new Date(); + requestLog.setRequestTime(DateUtil.format(requestTime, "yyyy-MM-dd HH:mm:ss")); + requestLog.setSourceSystem("wms"); + requestLog.setTargetSystem("agv"); + requestLog.setEndpoint(endPoint); + requestLog.setRequestMethod("post"); + requestLog.setRequestHeaders(null); + requestLog.setRequestBody(param); + requestLog.setRequestUrl(url); + try { + // 使用HttpRequest获取HTTP状态码 + HttpResponse response = HttpRequest.post(url) + .body(param) + .timeout(5000) + .execute(); + + int httpStatusCode = response.getStatus(); + String resStr = response.body(); + + requestLog.setResponseBody(resStr); + Date responseTime = new Date(); + + // 判断HTTP状态码是否成功(200-299都算成功) + if (httpStatusCode == 200) { + requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss")); + requestLog.setResponseStatus(String.valueOf(httpStatusCode)); + requestLog.setDuration(Convert.toStr(DateUtil.between(requestTime, responseTime, DateUnit.MS))); + requestLog.setIsSuccessful("1"); + + + } else { + requestLog.setResponseTime(DateUtil.format(responseTime, "yyyy-MM-dd HH:mm:ss")); + requestLog.setResponseStatus(String.valueOf(httpStatusCode)); + requestLog.setErrorDetails("HTTP请求失败,状态码: " + httpStatusCode); + requestLog.setIsSuccessful("0"); + } + + } catch (Exception e) { + requestLog.setErrorDetails(e.getMessage()); + requestLog.setIsSuccessful("0"); + requestLog.setResponseStatus("0"); + } finally { + insertRequestLog(requestLog); + } + return requestLog; + } + /** * 插入请求日志 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/common/Constant.java b/ruoyi-admin/src/main/java/com/ruoyi/common/Constant.java index c608642..d71c5e4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/common/Constant.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/common/Constant.java @@ -5,6 +5,7 @@ public class Constant { public static final String WMS_BASE_URL = "http://localhost:8080/api2wms/"; public static final String RCS_BASE_URL = "http://127.0.0.1:8081/rcms-dps/rest/"; + public static final String AGV_BASE_URL = "http://127.0.0.1:9501/api/app/agvs-task"; public static final String JOB_FINISH_URL = WMS_BASE_URL+"jobFinish"; @@ -17,6 +18,7 @@ public class Constant { public static final String RE_ASSIGN_URL = WMS_BASE_URL+"reAssign"; public static final String RE_MATERIAL_URL = WMS_BASE_URL+"reMaterial"; public static final String REQUEST_ENTER_URL = WMS_BASE_URL+"requestEnterByTrayCodeAndEntranceId"; + public static final String CREATE_AGV_TASK_URL = AGV_BASE_URL+"agvs-task"; public static final String WAREHOUSE_01 = "01"; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/mapper/AgvQueueMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/mapper/AgvQueueMapper.java index 7cedfad..4fc1694 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/mapper/AgvQueueMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/mapper/AgvQueueMapper.java @@ -66,5 +66,7 @@ public interface AgvQueueMapper */ AgvQueue selectAgvQueueByTaskCode(String taskCode); + AgvQueue selectAgvQueueByStatus(); + void insertHistory(String reqCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/service/IAgvQueueService.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/service/IAgvQueueService.java index 0e565c1..49d2649 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/service/IAgvQueueService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/service/IAgvQueueService.java @@ -66,6 +66,8 @@ public interface IAgvQueueService */ AgvQueue selectAgvQueueByTaskCode(String taskCode); + AgvQueue selectAgvQueueByStatus(); + /** * 插入agv完成历史 * @param reqCode diff --git a/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/service/impl/AgvQueueServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/service/impl/AgvQueueServiceImpl.java index df2bc6f..1351d39 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/service/impl/AgvQueueServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/service/impl/AgvQueueServiceImpl.java @@ -96,6 +96,11 @@ public class AgvQueueServiceImpl implements IAgvQueueService return agvQueueMapper.selectAgvQueueByTaskCode(taskCode); } + @Override + public AgvQueue selectAgvQueueByStatus() { + return agvQueueMapper.selectAgvQueueByStatus(); + } + @Override public void insertHistory(String reqCode) { agvQueueMapper.insertHistory(reqCode); diff --git a/ruoyi-admin/src/main/resources/mapper/device/AgvQueueMapper.xml b/ruoyi-admin/src/main/resources/mapper/device/AgvQueueMapper.xml index a362e8b..8257c49 100644 --- a/ruoyi-admin/src/main/resources/mapper/device/AgvQueueMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/device/AgvQueueMapper.xml @@ -62,6 +62,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where task_code = #{taskCode} + + insert into agv_queue diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index 3f68194..a15c567 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -119,6 +119,7 @@ public class SecurityConfig .antMatchers("/agv/api/**").permitAll() .antMatchers("/device/api/**").permitAll() .antMatchers("/wcs2Wms/api/**").permitAll() + .antMatchers("/agv/api/**").permitAll() .antMatchers("/test/**").permitAll() .antMatchers("/largeScreen/monitor/**").permitAll() // 除上面外的所有请求全部需要鉴权认证