自动化立体仓库 - WMS系统
#
野心家
2025-04-28 41cf941165039d0a8f55cd1a55f023d788f501ae
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -209,11 +209,18 @@
            // 获取库位
            LocMast locMast = locMastService.selectById(dto.getLocNo());
            if (Cools.isEmpty(locMast)) {
                throw new CoolException(dto.getLocNo()+"库位不存在");
            }
            if(!locMast.getLocSts().equals("F")){
                throw new CoolException(dto.getLocNo()+"托盘非在库状态");
            }
            Integer outSta = staNo.getDevNo();
            //2号堆垛机全板出库站指定为204站,拣料站指定为202
            if(locMast.getCrnNo()==2){
                outSta = ioType == 101 ? 204 : 202;
            }
//            if(locMast.getCrnNo()==2){
//                outSta = ioType == 101 ? 204 : 202;
//            }
            // 获取路径
            StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
@@ -324,6 +331,7 @@
            if (orderDetl == null) {
                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
            }
            Mat mat=matService.selectOne(new EntityWrapper<Mat>().eq("matnr",locDto.getMatnr()));
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(orderDetl);
            wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -331,6 +339,7 @@
            wrkDetl.setWrkNo(workNo);
            wrkDetl.setBatch(locDto.getBatch());
            wrkDetl.setOrderNo(locDto.getOrderNo());
            wrkDetl.setModel(mat.getModel());
            wrkDetl.setAnfme(locDto.getAnfme()); // 数量
            wrkDetl.setAppeTime(now);
            wrkDetl.setAppeUser(userId);
@@ -340,7 +349,7 @@
                throw new CoolException("保存工作档明细失败");
            }
            // 修改订单明细
            if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
                throw new CoolException("修改订单明细数量失败");
            }
            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
@@ -430,6 +439,9 @@
            LocMast locMast = locMastService.selectById(locNo);
            if (Cools.isEmpty(locMast)) {
                throw new CoolException(locNo+"库位不存在");
            }
            if(!locMast.getLocSts().equals("D")){
                throw new CoolException(locNo+"托盘非在库状态");
            }
            // 获取源站
            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
@@ -802,6 +814,7 @@
        if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
            for (WrkDetl wrkDetl : wrkDetls) {
                //字符串不为空
                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
                        throw new CoolException("订单数据回滚失败");