ZY
2024-08-22 0c79b5072495ad34c3a408e4b5a9e39de4e1a741
出库代码
6个文件已修改
1个文件已添加
107 ■■■■■ 已修改文件
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/req/IdReq.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/mapper/ViewLocDetlMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/LocDetlService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/LocDetlServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/mapper/asrs/ViewLocDetlMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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">