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