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/IRequestLogService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java index 49d4047..841095c 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/queue/agv/mapper/AgvQueueMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/queue/agv/mapper/AgvQueueMapper.java index 5b17c04..5b6b584 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 @@ -67,6 +67,8 @@ public interface AgvQueueMapper */ AgvQueue selectAgvQueueByTaskCode(String taskCode); + AgvQueue selectAgvQueueByStatus(); + void insertHistory(String reqCode); void selectKx(HashMap map); 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 6d4adde..3103388 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 @@ -67,6 +67,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 c351834..4151778 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 @@ -97,6 +97,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 1aa0247..6037437 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 3c9cc19..5f5891a 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("/api/agv/**").permitAll() .antMatchers("/device/api/**").permitAll() .antMatchers("/wcs2Wms/api/**").permitAll() + .antMatchers("/agv/api/**").permitAll() .antMatchers("/test/**").permitAll() .antMatchers("/largeScreen/monitor/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 diff --git a/ruoyi-ui/src/views/device/ssj/index.vue b/ruoyi-ui/src/views/device/ssj/index.vue index cdc5286..d1e84e6 100644 --- a/ruoyi-ui/src/views/device/ssj/index.vue +++ b/ruoyi-ui/src/views/device/ssj/index.vue @@ -157,7 +157,6 @@ export default { { key: 'kx', label: '空闲', value: d.kx, dict: 'ssj_kx' }, { key: 'dw', label: '到位', value: d.dw, dict: 'ssj_dw' }, { key: 'exception', label: '异常', value: d.exception, dict: 'ssj_ex'}, - ] } if (dev.kind === 'srgv') { diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js index f02e036..46634cc 100644 --- a/ruoyi-ui/vue.config.js +++ b/ruoyi-ui/vue.config.js @@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin') const name = process.env.VUE_APP_TITLE || 'FORTUCKY WCS SYSTEM' // 网页标题 -const baseUrl = 'http://localhost:8081' // 后端接口地址(你的后端端口是8081) +const baseUrl = 'http://192.168.188.236:8081' // 后端接口地址(你的后端端口是8081) const port = process.env.port || process.env.npm_config_port || 80 // 前端端口