自动化立体仓库 - WMS系统
pang.jiabao
2024-09-24 0329286b3ba1ddbdcad4769b9ccd4d5b3f5d1e64
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -4,6 +4,7 @@
import com.core.common.Cools;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.mapper.OrderMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -16,6 +17,7 @@
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * Created by vincent on 2020/7/4
@@ -39,6 +41,9 @@
    private OrderDetlService orderDetlService;
    @Resource
    private OrderDetlMapper orderDetlMapper;
    @Resource
    private OrderMapper orderMapper;
    public ReturnT<String> start(WrkMast wrkMast) {
        // 4.入库完成
        if (wrkMast.getWrkSts() == 4) {
@@ -313,6 +318,26 @@
                            return FAIL.setMsg("库位移转 ===>> 转移库存明细数据失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                        }
                    }
                    // 备货,更新订单明细及订单状态
                    List<WrkDetl> wrkDetlList = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
                    if (!wrkDetlList.isEmpty()) {
                        List<String> brands = wrkDetlList.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList());
                        // 查询订单明细
                        List<OrderDetl> orderDetlList = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().in("brand", brands));
                        if (!orderDetlList.isEmpty()) {
                            // 更新明细为已备货
                            orderDetlMapper.updateOrderDetlStatusByPackageNo(brands,2);
                            // 获取订单号
                            String orderNo = orderDetlList.get(0).getOrderNo();
                            // 判断该订单明细是否全部已备货
                            Integer selectCount = orderDetlMapper.selectCount(new EntityWrapper<OrderDetl>().eq("order_no", orderNo).ne("inspect", 2));
                            if (selectCount == 0) {
                                // 更新订单为备货完成
                                orderMapper.updateStatusByOrderNo(orderNo,2,29);
                            }
                        }
                    }
                    // 修改源库位状态 ==> O
                    LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
                    if (null != sourceLoc) {