3.9 KiB
3.9 KiB
立库入库
-
通过
/wms/task/requireStockIn接口发起入库请求 -
调用
TaskControllerServiceImpl::requireStockIn服务- 校验请求体有效性
- 空载具入库:
- 调用
StackerTaskServiceImpl::requestOneLocation服务请求库位 - 创建空载具入库任务
- 调用
- 物料入库
- 循环物料列表
- 同种物料合并请求
key: goodsId, value: wmsTask; 缓存所有物料的入库任务- 判断数量是否超载
- 批量保存wms任务
- 循环物料列表
- 任务现状:
- wms任务已创建, 任务状态:
WAIT(0, "初始化") - wcs任务未创建
- wms任务已创建, 任务状态:
-
public class WmsTaskExecutor implements Job&&public class JobServiceImpl implements IJobServiceWmsTaskExecutor通过实现Job接口, 成为定时任务JobServiceImpl通过实现IJobService接口, 成为定时任务服务, 从而定时扫描所有定时任务- 查询所有状态为
WAIT(0, "初始化")的入库任务 - 循环所有状态为
WAIT的入库任务- 判断当前箱子是否已经解析成WCS任务并且已经存表
- 判断当前箱子是否重复解析
- 生成新的wcs入库任务,
key: vehicleId, value: wcsTask缓存wcs入库任务
- 批量保存wcs任务并更新wms任务状态
- 任务现状:
- wms任务已解析, 任务状态:
EXECUTED(1, "已解析") - wcs任务已创建, 任务状态:
INIT(0, "任务初始化")
- wms任务已解析, 任务状态:
-
WcsStackerTaskSender定时任务- 查询所有状态为
INIT的wcs任务 - 循环wcs任务列表
- 生成请求体, 调用
WcsApiServiceImpl::sendWcsStackerTask下发任务至堆垛机 - 更新wcs与wms任务状态
- 任务现状:
- wcs任务已下发, 排队中, 任务状态:
WAIT(1, "任务排队中") - wms任务已下发, 任务状态:
SEND(2, "已下发")
- wcs任务已下发, 排队中, 任务状态:
- 查询所有状态为
-
堆垛机完成入库任务, 反馈wcs, wcs回调wms接口
/wms/task/sendTaskResult, 反馈任务状态- 查询对应的wcs任务
- 转换堆垛机任务状态, 从回调的请求体wcs任务状态转换为wms任务状态
- 若回调的请求体wcs任务状态为
FINISH(100, "任务完成")- 根据getWcsTaskId更新相应的
(可能有多个wms任务状态被修改)wms任务状态为FINISH(4, "执行完成") - 移除wcs任务,并向wcs备份表添加记录
- 根据getWcsTaskId更新相应的
- 若回调的请求体wcs任务状态非
FINISH(100, "任务完成")- 根据getWcsTaskId更新相应的
(可能有多个wms任务状态被修改)wms任务状态为堆垛机转换来的任务状态 - 更新wcs的任务状态为请求体携带的任务状态
- 根据getWcsTaskId更新相应的
- 任务现状:
- 若堆垛机回调请求体携带任务状态非
FINISH(100, "任务完成")- wms任务正在执行, 任务状态:
RUN(3, "正在执行") - wcs任务正在执行, 任务状态:
RUN|LEAVE|MID|ARRIVE
- wms任务正在执行, 任务状态:
- 若堆垛机任务执行完成, 回调请求体任务状态为
FINISH(100, "任务完成")- wms任务执行完成, 任务状态
FINISH(4, "执行完成") - wcs任务执行完成, 任务状态
FINISH(100, "任务完成"), 然后被移除任务
- wms任务执行完成, 任务状态
- 若堆垛机回调请求体携带任务状态非
-
WmsTaskFinisher定时任务- 获取所有任务状态为
FINISH(4, "执行完成")的wms入库任务, 调用StackerTaskServiceImpl::finishStackerInTasks服务 - 将wmsTask表中所有状态为
FINISH(4, "执行完成")的任务提取键值对:key: vehicleId, value: List<WmsTask> - 根据
vehicleId遍历键值对, 提取出List<WmsTask>- 遍历
List<WmsTask>- 添加
WmsTask到任务记录列表 - 添加
WmsTask到待删除任务列表 - 添加库存到待添加库存列表
- 添加
- 更新载具信息, 库存信息, 库位工作状态
- 批量保存任务记录
- 批量删除入库记录
- 遍历
- 获取所有任务状态为