自动化立体仓库 - WMS系统
whycq
2024-05-16 111bb26289ea4d8b855b288cbca4793e3722c2bf
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -326,7 +326,7 @@
        if (Cools.isEmpty(agvBasDevp)) {
            throw new CoolException("暂无"+ station + "站点");
        }
        if (containerType == 40 && agvBasDevp.getFloor() == 3) {
        if (containerType == 40) {
            locType = 5;
        } else if (containerType == 21 && agvBasDevp.getFloor() == 3) {
            locType = 4;
@@ -600,14 +600,35 @@
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
            // 移库取消
        }else if(wrkMast.getIoType() == 108) {
        } else if( wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
            //源库位
            String locNo = wrkMast.getSourceLocNo();
            //目标站点
            String devNo = wrkMast.getLocNo();
            // 目标库位
            String targetLocNo = wrkMast.getLocNo();
            agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
            if(devNo.contains("@")){
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
            agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
            // 自动调拨出库取消
        } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111) {
            // 源库位
            String locNo = wrkMast.getSourceLocNo();
            // 目标库位
            String targetLocNo = wrkMast.getLocNo();
            agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0);
            if (wrkMast.getIoType() == 108) {
                agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
            } else {
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
            }
            List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
            // 更新订单
            for (AgvLocDetl agvLocDetl : agvLocDetls) {
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
                orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
                if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
                    throw new CoolException("修改订单明细失败,请联系管理员"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
                }
            }
            //出库取消
        } else {
@@ -616,9 +637,7 @@
            //目标站点
            String devNo = wrkMast.getLocNo();
            agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
            if(devNo.contains("@")){
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
            }
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
        }
        if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10){