自动化立体仓库 - WMS系统
zyx
2024-03-27 0cdbbb60b9549be1c99ff7d5a37936dadac61649
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -38,6 +38,12 @@
    private OrderDetlService orderDetlService;
    @Autowired
    private AgvBasDevpService agvBasDevpService;
    @Autowired
    private AgvLocDetlService agvLocDetlService;
    @Autowired
    private AgvWrkMastService agvWrkMastService;
    @Autowired
    private AgvWorkService agvWorkService;
    /*
@@ -51,9 +57,18 @@
        }
        //检查是否已存在相同的托盘条码,存在则抛出异常
        if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().
                eq("supp_code", param.getBarcode()).eq("io_status", "N")) > 0) {
            throw new CoolException(param.getBarcode() + "数据正在进行入库");
        if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().eq("supp_code", param.getBarcode())) > 0) {
            throw new CoolException(param.getBarcode() + "料想码已存在AGV入库通知档中");
        }
        //检查库存是否有相同料箱,存在则抛出异常
        if(!Cools.isEmpty(agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("supp_code",param.getBarcode())))){
            throw new CoolException(param.getBarcode() + "料箱码已存在AGV库存明细中");
        }
        //查看工作档是否有相同料箱,存在则抛出异常
        if(!Cools.isEmpty(agvWrkMastService.selectByContainerCode(param.getBarcode()))){
            throw new CoolException(param.getBarcode() + "料箱码已存在AGV工作档中");
        }
        if (Cools.isEmpty(param.getOrderNo())) {
@@ -123,7 +138,7 @@
                checkOrderQty(order,combMat);
            }
            DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode());
            DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(), combMat.getIsoseq(),combMat.getContainerCode(),param.getLocType());
            //同一托盘下相同物料信息和批号转为一个入库通知档
            if (DetlDto.has(detlDtos, detlDto)) {
                DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(), detlDto.getCsocode(), detlDto.getIsoseq(),null);
@@ -142,7 +157,7 @@
     */
    private void checkOrderQty(Order order, CombParam.CombMat combMat){
        // 订单明细数量校验,如果作业数量大于单据数量则抛出异常
        OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch());
        OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getCsocode(),combMat.getIsoseq());
        if(Cools.isEmpty(orderDetl)){
            throw new CoolException("未匹配到该单据下的物料");
        }
@@ -150,7 +165,7 @@
            throw new CoolException(orderDetl.getMatnr() + "入库数量不合法");
        }
        // 修改订单明细数量
        if (!orderDetlService.increase(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) {
        if (!orderDetlService.increase(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), combMat.getCsocode(),combMat.getIsoseq())) {
            throw new CoolException("修改单据明细数量失败");
        }
    }
@@ -177,6 +192,8 @@
        waitPakin.setThreeCode(detlDto.getCsocode());
        //销售订单行号
        waitPakin.setDeadTime(detlDto.getIsoseq());
        waitPakin.setLocType(detlDto.getLocType());
        waitPakin.setAppeUser(userId);
@@ -221,6 +238,10 @@
        if(!"O".equals(agvBasDevp.getLocSts())){
            throw new CoolException(stationCode + "该站点货位状态非空");
        }
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvBasDevp.getDevNo()));
        if(!Cools.isEmpty(agvWrkMast)){
            throw new CoolException(stationCode + "该站点已被工作号为" + agvWrkMast.getWrkNo() + "占用,无法绑定");
        }
        agvBasDevp.setBarcode(barcode);
        agvBasDevp.setLocSts("F");
@@ -236,4 +257,20 @@
        }).collect(Collectors.toList());
    }
    @Override
    public void pakinEmpty(String devNo, boolean pakin) {
        //当前站点信息
        AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devNo);
        //寻找相同类型的库位
        //生成空盘工作档
        //更改库位状态以及站点状态
    }
    @Override
    public void pakoutEmpty(String devNo) {
    }
}