自动化立体仓库 - WMS系统
#
lty
2 天以前 d8c9b9afb41c368a08d7e05d0f624c98bf72042a
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -105,94 +105,97 @@
        Date now = new Date();
        // 无单组托
//        if (Cools.isEmpty(param.getOrderNo())) {
//
//            // 生成入库通知档
//            List<DetlDto> detlDtos = new ArrayList<>();
//            param.getCombMats().forEach(elem -> {
//                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
//                if (DetlDto.has(detlDtos, detlDto)) {
//                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
//                    assert one != null;
//                    one.setAnfme(one.getAnfme() + detlDto.getAnfme());
//                } else {
//                    detlDtos.add(detlDto);
//                }
//            });
//
//
//            for (DetlDto detlDto : detlDtos) {
//                Mat mat = matService.selectByMatnr(detlDto.getMatnr());
//                if (Cools.isEmpty(mat)) {
//                    throw new CoolException(detlDto.getMatnr() + "商品档案不存在");
//                }
//                WaitPakin waitPakin = new WaitPakin();
//                waitPakin.sync(mat);
//                waitPakin.setBatch(detlDto.getBatch());
//                waitPakin.setZpallet(param.getBarcode());   // 托盘码
//                waitPakin.setIoStatus("N");     // 入出状态
//                waitPakin.setAnfme(detlDto.getAnfme());  // 数量
//                waitPakin.setStatus("Y");    // 状态
//                waitPakin.setAppeUser(userId);
//                waitPakin.setAppeTime(now);
//                waitPakin.setModiUser(userId);
//                waitPakin.setModiTime(now);
//                if (!waitPakinService.insert(waitPakin)) {
//                    throw new CoolException("保存入库通知档失败");
//                }
//            }
//            // 关联组托
//        } else {
        if (Cools.isEmpty(param.getOrderNo())) {
        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("temp1", param.getOrderNo()));
        if (Cools.isEmpty(order) || order.getSettle() > 2) {
            throw new CoolException("单据编号已过期");
        }
        // 生成入库通知档
        List<DetlDto> detlDtos = new ArrayList<>();
        param.getCombMats().forEach(elem -> {
            // 生成入库通知档
            List<DetlDto> detlDtos = new ArrayList<>();
            param.getCombMats().forEach(elem -> {
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),elem.getProType(),elem.getTemp2(),elem.getOutOrderNo());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                    assert one != null;
                    one.setAnfme(one.getAnfme() + detlDto.getAnfme());
                } else {
                    detlDtos.add(detlDto);
                }
            });
            // 订单明细数量校验
            //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() );
            OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId());
            if (elem.getAnfme() > orderDetl.getEnableQty()) {
                throw new CoolException(orderDetl.getMatnr() + "入库数量不合法");
            for (DetlDto detlDto : detlDtos) {
                Mat mat = matService.selectByMatnr(detlDto.getMatnr());
                if (Cools.isEmpty(mat)) {
                    throw new CoolException(detlDto.getMatnr() + "商品档案不存在");
                }
                WaitPakin waitPakin = new WaitPakin();
                waitPakin.sync(mat);
                waitPakin.setProType(detlDto.getProType());
                waitPakin.setTemp2(detlDto.getTemp2());
                waitPakin.setOutOrderNo(detlDto.getOutOrderNo());
                waitPakin.setBatch(detlDto.getBatch());
                waitPakin.setZpallet(param.getBarcode());   // 托盘码
                waitPakin.setIoStatus("N");     // 入出状态
                waitPakin.setAnfme(detlDto.getAnfme());  // 数量
                waitPakin.setStatus("Y");    // 状态
                waitPakin.setAppeUser(userId);
                waitPakin.setAppeTime(now);
                waitPakin.setModiUser(userId);
                waitPakin.setModiTime(now);
                if (!waitPakinService.insert(waitPakin)) {
                    throw new CoolException("保存入库通知档失败");
                }
            }
            // 修改订单作业数量
            if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) {
                throw new CoolException("修改单据作业数量失败");
            }
            // 关联组托
        } else {
            Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
            if (Cools.isEmpty(mat)) {
                throw new CoolException(orderDetl.getMatnr() + "商品档案不存在");
            }
            WaitPakin waitPakin = new WaitPakin();
            waitPakin.sync(mat);
            waitPakin.setOrderNo(order.getOrderNo());   // 单据编号
            waitPakin.setBatch(orderDetl.getBatch());     // 序列码
            waitPakin.setZpallet(param.getBarcode());   // 托盘码
            waitPakin.setIoStatus("N");     // 入出状态
            waitPakin.setAnfme(orderDetl.getAnfme());  // 数量
            waitPakin.setStatus("Y");    // 状态
            waitPakin.setAppeUser(userId);
            waitPakin.setAppeTime(now);
            waitPakin.setModiUser(userId);
            waitPakin.setModiTime(now);
                Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", param.getOrderNo()));
                if (Cools.isEmpty(order) || order.getSettle() > 2) {
                    throw new CoolException("单据编号已过期");
                }
                // 生成入库通知档
                List<DetlDto> detlDtos = new ArrayList<>();
                param.getCombMats().forEach(elem -> {
            waitPakin.setBatch(orderDetl.getBatch());
            waitPakin.setSPgNO(orderDetl.getSPgNO());
            waitPakin.setOutOrderNo(orderDetl.getOutOrderNo());
            waitPakin.setProType(orderDetl.getProType());
            waitPakin.setLuHao(orderDetl.getLuHao());
            waitPakin.setPacking(orderDetl.getPacking());
            if (!waitPakinService.insert(waitPakin)) {
                throw new CoolException("保存入库通知档失败");
            }
        });
                    // 订单明细数量校验
                    //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() );
                    OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId());
                    if (elem.getAnfme() > orderDetl.getEnableQty()) {
                        throw new CoolException(orderDetl.getMatnr() + "入库数量不合法");
                    }
                    // 修改订单作业数量
                    if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) {
                        throw new CoolException("修改单据作业数量失败");
                    }
        orderService.updateSettle(order.getId(), 2L, userId);
        //  }
                    Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
                    if (Cools.isEmpty(mat)) {
                        throw new CoolException(orderDetl.getMatnr() + "商品档案不存在");
                    }
                    WaitPakin waitPakin = new WaitPakin();
                    waitPakin.sync(mat);
                    waitPakin.setOrderNo(order.getOrderNo());   // 单据编号
                    waitPakin.setBatch(orderDetl.getBatch());     // 序列码
                    waitPakin.setZpallet(param.getBarcode());   // 托盘码
                    waitPakin.setIoStatus("N");     // 入出状态
                    waitPakin.setAnfme(elem.getAnfme());  // 数量
                    waitPakin.setStatus("Y");    // 状态
                    waitPakin.setAppeUser(userId);
                    waitPakin.setAppeTime(now);
                    waitPakin.setModiUser(userId);
                    waitPakin.setModiTime(now);
                    waitPakin.setBatch(orderDetl.getBatch());
                    waitPakin.setSPgNO(orderDetl.getSPgNO());
                    waitPakin.setOutOrderNo(orderDetl.getOutOrderNo());
                    waitPakin.setProType(orderDetl.getProType());
                    waitPakin.setLuHao(orderDetl.getLuHao());
                    waitPakin.setPacking(orderDetl.getPacking());
                    if (!waitPakinService.insert(waitPakin)) {
                        throw new CoolException("保存入库通知档失败");
                    }
                });
                orderService.updateSettle(order.getId(), 2L, userId);
          }
    }