自动化立体仓库 - WMS系统
whycq
2024-05-29 f1a1915b575c435f7172fdb59d48e13726ff4ff0
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -599,14 +599,29 @@
            //目标库位
            String locNo = wrkMast.getLocNo();
            agvLocMastService.updateLocStsByLocNo(locNo,"O","",null);
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
            if (wrkMast.getIoType() == 58) {
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
            } else {
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",wrkMast.getWhsType().shortValue());
            }
            if (wrkMast.getIoType() == 1) {
                List<AgvWaitPakin> agvWaitPakins = agvWaitPakinService.selectByContainerCode2(wrkMast.getBarcode());
                for (AgvWaitPakin agvWaitPakin : agvWaitPakins) {
                    if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSupp()))) {
                    // 回滚入库订单
                    OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvWaitPakin.getThreeCode()).eq("matnr", agvWaitPakin.getMatnr()).eq("order_no", agvWaitPakin.getOrderNo()));
                    orderDetl.setQty(orderDetl.getQty() - agvWaitPakin.getAnfme());
                    if (!orderDetlService.updateById(orderDetl)) {
                        throw new CoolException("订单回滚失败");
                    }
                    // 删除组托档
                    if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) {
                        throw new CoolException("入库通知档取消失败");
                    }
                }
            }
@@ -934,6 +949,27 @@
        }
    }
    @Override
    @Transactional
    public void changeType(String workNo, Long userId) {
        AgvWrkMast wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
        if (Cools.isEmpty(wrkMast)) {
            throw new CoolException("暂无\n" + workNo + "\n工作");
        }
        if (wrkMast.getWrkSts() != 22) {
            throw new CoolException("当前任务已分配目标库位,暂不支持调整");
        }
        if (wrkMast.getIoType() == 108) {
            wrkMast.setIoType(111);
            agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
        } else if(wrkMast.getIoType() == 111) {
            wrkMast.setIoType(108);
            agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
        }
    }
    private void addInQty(String devno){
        AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devno);
        if(!Cools.isEmpty(agvBasDevp)){