zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java
@@ -1,6 +1,7 @@ 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.manage.OutManage; @@ -16,6 +17,9 @@ /** * 这里处理所有的出库流程的接口 * 出库逻辑主要在查询匹配的库存信息, * 1. 获取库存,根据条件(灵活配置)查询库存,返回给前端供用户选择(返回时,每条库存记录要携带loc_detl表的主键id,这样立即出库,只要传递loc_detl表id+数量,就可以明确出库出哪些数据了,不需要二次匹配) * 2. 出库(只需要一个接口(即/out/start接口),只要库位详情的id和出库数量以及出库到哪个站点)(以及涉及到移库) */ @RestController @RequestMapping("/api") @@ -32,20 +36,44 @@ * @return */ @PostMapping("/out/getStock") public R page(@RequestBody Map<String, Object> map) { List<LocDetl> suitableMat = outManage.getSuitableMat(map); 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 page(@RequestBody OutReq outReq) { public R start(@RequestBody OutReq outReq) { outManage.out(outReq); return R.ok(); } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/req/IdReq.java
New file @@ -0,0 +1,17 @@ package com.zy.asrs.wms.asrs.controller.req; import lombok.Data; import java.io.Serializable; import java.util.List; @Data public class IdReq implements Serializable { /** * 主键id */ private Long id; } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -5,6 +5,8 @@ import com.zy.asrs.wms.asrs.entity.*; import com.zy.asrs.wms.asrs.entity.param.FieldParam; import com.zy.asrs.wms.asrs.service.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,6 +20,8 @@ */ @Service public class OutManage { private static Logger logger = LoggerFactory.getLogger(LocManage.class); @Autowired private TaskService taskService; @@ -38,6 +42,11 @@ private WorkService workService; @Autowired private OrderService orderService; @Autowired private OrderDetlService orderDetlService; /** @@ -45,7 +54,7 @@ * * @param map */ public List<LocDetl> getSuitableMat(Map<String, Object> map) { public List<LocDetl> listSuitableMat(Map<String, Object> map) { List<FieldParam> param = new ArrayList<>(); map.entrySet().stream().filter(entry -> entry.getValue() != null).forEach(entry -> { FieldParam fieldParam = new FieldParam(); @@ -55,7 +64,40 @@ }); //TODO 这里加上出库规则 List<LocDetl> stock = locDetlService.getSuitableMat(param, null); List<LocDetl> stock = locDetlService.listSuitableMat(param, null); return stock; } /** * 根据订单id获取库存 * * @param orderId 订单ID */ public List<LocDetl> listSuitableMatByOrder(Long orderId) { Order order = orderService.getById(orderId); List<OrderDetl> orderDetls = orderDetlService.getOrderDetlByOrderId(orderId); //TODO 这里加上出库规则 for (OrderDetl orderDetl : orderDetls) { } List<FieldParam> param = new ArrayList<>(); List<LocDetl> stock = locDetlService.listSuitableMat(param, null); return stock; } /** * 根据订单id获取库存 * * @param waveId 订单ID */ public List<LocDetl> listSuitableMatByWave(Long waveId) { List<FieldParam> param = new ArrayList<>(); List<LocDetl> stock = locDetlService.listSuitableMat(param, null); return stock; } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/ViewLocDetlMapper.java
@@ -23,6 +23,6 @@ Map<String,Object> getById(Long id); List<Map<String,Object>> getSuitableMat( @Param("param") List<FieldParam> param, @Param("sortParam") List<FieldSortParam> sortParam); List<Map<String,Object>> listSuitableMat( @Param("param") List<FieldParam> param, @Param("sortParam") List<FieldSortParam> sortParam); } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/LocDetlService.java
@@ -21,6 +21,6 @@ List<LocDetl> parseLocDetl(List<LocDetl> list); List<LocDetl> getSuitableMat( List<FieldParam> param, List<FieldSortParam> sortParam); List<LocDetl> listSuitableMat( List<FieldParam> param, List<FieldSortParam> sortParam); } zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java
@@ -95,8 +95,8 @@ * @return */ @Override public List<LocDetl> getSuitableMat( List<FieldParam> param, List<FieldSortParam> sortParam) { List<Map<String, Object>> stock = viewLocDetlMapper.getSuitableMat(param, sortParam); public List<LocDetl> listSuitableMat( List<FieldParam> param, List<FieldSortParam> sortParam) { List<Map<String, Object>> stock = viewLocDetlMapper.listSuitableMat(param, sortParam); List<LocDetl> locDetls = new ArrayList<>(); for (Map<String, Object> objectMap : stock) { LocDetl detl = JSON.parseObject(JSON.toJSONString(objectMap), LocDetl.class); zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml
@@ -38,7 +38,7 @@ <select id="getSuitableMat" resultType="map"> <select id="listSuitableMat" resultType="map"> select * from view_man_loc_detl ld where 1=1 <if test="param!=null and param.size()>0">