| | |
| | | package com.zy.asrs.wms.asrs.controller; |
| | | |
| | | import com.zy.asrs.framework.common.R; |
| | | import com.zy.asrs.wms.asrs.controller.req.IdReq; |
| | | import com.zy.asrs.wms.asrs.controller.req.OutReq; |
| | | import com.zy.asrs.wms.asrs.entity.LocDetl; |
| | | import com.zy.asrs.wms.asrs.entity.dto.MergePreviewDto; |
| | | import com.zy.asrs.wms.asrs.entity.dto.MergePreviewResultDto; |
| | | import com.zy.asrs.wms.asrs.entity.dto.OrderOutBatchPreviewDto; |
| | | import com.zy.asrs.wms.asrs.entity.param.OrderOutBatchPreviewParam; |
| | | import com.zy.asrs.wms.asrs.entity.param.OrderOutMergeParam; |
| | | import com.zy.asrs.wms.asrs.entity.param.OrderOutMergePreviewParam; |
| | | import com.zy.asrs.wms.asrs.entity.param.OutParam; |
| | | import com.zy.asrs.wms.asrs.manage.OutManage; |
| | | import com.zy.asrs.wms.common.annotation.OperationLog; |
| | | import com.zy.asrs.wms.system.controller.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 这里处理所有的出库流程的接口 |
| | | * 出库逻辑主要在查询匹配的库存信息, |
| | | * 1. 获取库存,根据条件(灵活配置)查询库存,返回给前端供用户选择(返回时,每条库存记录要携带loc_detl表的主键id,这样立即出库,只要传递loc_detl表id+数量,就可以明确出库出哪些数据了,不需要二次匹配) |
| | | * 2. 出库(只需要一个接口(即/out/start接口),只要库位详情的id和出库数量以及出库到哪个站点)(以及涉及到移库) |
| | | */ |
| | | |
| | | @RestController |
| | | @RequestMapping("/api") |
| | | public class OutController extends BaseController { |
| | |
| | | @Autowired |
| | | private OutManage outManage; |
| | | |
| | | |
| | | /** |
| | | * 获取库存 |
| | | * |
| | | * @param map |
| | | * @return |
| | | */ |
| | | @PostMapping("/out/getStock") |
| | | public R getStock(@RequestBody Map<String, Object> map) { |
| | | List<LocDetl> suitableMat = outManage.listSuitableMat(map); |
| | | return R.ok(suitableMat); |
| | | } |
| | | |
| | | /** |
| | | * 获取库存 |
| | | * |
| | | * @param order |
| | | * @return |
| | | */ |
| | | @PostMapping("/out/getStockByOrder") |
| | | public R getStockByOrder(@RequestBody IdReq order) { |
| | | List<LocDetl> suitableMat = outManage.listSuitableMatByOrder(order.getId()); |
| | | return R.ok(suitableMat); |
| | | } |
| | | |
| | | /** |
| | | * 获取库存 |
| | | * |
| | | * @param wave |
| | | * @return |
| | | */ |
| | | @PostMapping("/out/getStockByWave") |
| | | public R getStockByWave(@RequestBody IdReq wave) { |
| | | List<LocDetl> suitableMat = outManage.listSuitableMatByWave(wave.getId()); |
| | | return R.ok(suitableMat); |
| | | } |
| | | |
| | | /** |
| | | * 出库 |
| | | * 出库只需要一个接口,只要出到哪个站点,库位出多少数量,即OutReq对象 |
| | | * |
| | | * @param outReq 出库列表 |
| | | * @return |
| | | */ |
| | | @PostMapping("/out/start") |
| | | public R start(@RequestBody OutReq outReq) { |
| | | outManage.out(outReq); |
| | | @OperationLog("出库") |
| | | @Transactional |
| | | public R start(@RequestBody OutParam param) { |
| | | outManage.out(param); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/batch/preview") |
| | | @OperationLog("批量出库预览") |
| | | @Transactional |
| | | public R orderOutBatchPreview(@RequestBody OrderOutBatchPreviewParam param) { |
| | | List<OrderOutBatchPreviewDto> previewDtos = outManage.orderOutBatchPreview(param); |
| | | return R.ok().add(previewDtos); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/batch") |
| | | @OperationLog("批量出库") |
| | | @Transactional |
| | | public R orderOutBatch(@RequestBody List<OrderOutBatchPreviewDto> param) { |
| | | outManage.orderOutBatch(param); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/merge/preview") |
| | | @OperationLog("预览合并订单") |
| | | @Transactional |
| | | public R orderOutMergePreview(@RequestBody OrderOutMergePreviewParam param) { |
| | | List<MergePreviewDto> dtos = outManage.orderOutMergePreview(param); |
| | | return R.ok().add(dtos); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/merge/loc/preview") |
| | | @OperationLog("预览合并订单出库") |
| | | @Transactional |
| | | public R orderOutMergeLocPreview(@RequestBody List<MergePreviewDto> param) { |
| | | List<MergePreviewResultDto> dtos = outManage.orderOutMergeLocPreview(param); |
| | | return R.ok().add(dtos); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/merge") |
| | | @OperationLog("合并订单出库") |
| | | @Transactional |
| | | public R orderOutMerge(@RequestBody List<OrderOutMergeParam> param) { |
| | | outManage.orderOutMerge(param); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/out/wave/generate") |
| | | @OperationLog("生成波次") |
| | | @Transactional |
| | | public R generateWave(@RequestBody List<Long> orderIds) { |
| | | outManage.generateWave(orderIds); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/out/wave/cancel") |
| | | @OperationLog("取消波次") |
| | | @Transactional |
| | | public R cancelWave(@RequestBody List<Long> waveIds) { |
| | | outManage.cancelWave(waveIds); |
| | | return R.ok(); |
| | | } |
| | | } |