自动化立体仓库 - WMS系统
1
zhang
4 天以前 6d3b7e69524cdc6fd4c44fe9f37661a19a56c6ff
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -33,7 +33,7 @@
    private OrderDetlService orderDetlService;
    @Autowired
    private   InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
    private InventoryCheckOrderDetlService inventoryCheckOrderDetlService;
    @Autowired
    private DocTypeService docTypeService;
@@ -121,6 +121,9 @@
        if (null == docType) {
            return SUCCESS;
        }
//        if (docType.getDocName().equals("销售发货")) {
//            return SUCCESS;
//        }
        Order orderSou = orderService.selectByNo(order.getOrderNo());
        if (!orderSou.getSettle().equals(2L)) {
            return FAIL.setMsg("订单状态不正确,请联系管理员");
@@ -134,15 +137,29 @@
                if (orderDetl.getQty().equals(0D)) {
                    continue;
                }
                if (orderDetlSou.beSimilar(orderDetl)) {
                    double v = orderDetlSou.getAnfme() - orderDetlSou.getQty();
                    if (v < orderDetl.getQty() || orderDetl.getQty().equals(v)) {
                        orderDetlSou.setQty(orderDetlSou.getAnfme());
                        orderDetl.setQty(orderDetl.getQty() - v);
                        break;
                    } else {
                        orderDetlSou.setQty(orderDetlSou.getQty() + orderDetl.getQty());
                        orderDetl.setQty(0D);
                if (!Cools.isEmpty(orderDetlSou.getBatch())){
                    if (orderDetlSou.beSimilar(orderDetl)) {
                        double v = orderDetlSou.getAnfme() - orderDetlSou.getQty();
                        if (v < orderDetl.getQty() || orderDetl.getQty().equals(v)) {
                            orderDetlSou.setQty(orderDetlSou.getAnfme());
                            orderDetl.setQty(orderDetl.getQty() - v);
                            break;
                        } else {
                            orderDetlSou.setQty(orderDetlSou.getQty() + orderDetl.getQty());
                            orderDetl.setQty(0D);
                        }
                    }
                }else {
                    if (orderDetlSou.beSimilar2(orderDetl)) {
                        double v = orderDetlSou.getAnfme() - orderDetlSou.getQty();
                        if (v < orderDetl.getQty() || orderDetl.getQty().equals(v)) {
                            orderDetlSou.setQty(orderDetlSou.getAnfme());
                            orderDetl.setQty(orderDetl.getQty() - v);
                            break;
                        } else {
                            orderDetlSou.setQty(orderDetlSou.getQty() + orderDetl.getQty());
                            orderDetl.setQty(0D);
                        }
                    }
                }
            }
@@ -160,6 +177,40 @@
    }
    @Transactional
    public ReturnT<String> checkXSFH(Order order) {
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
            return SUCCESS;
        }
        if (!docType.getDocName().equals("销售发货")) {
            return SUCCESS;
        }
        Order orderSou = orderService.selectByNo(order.getOrderNo());
        if (!orderSou.getSettle().equals(2L)) {
            return FAIL.setMsg("订单状态不正确,请联系管理员");
        }
        List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
        boolean complete = true;
        for (OrderDetl orderDetl : orderDetls) {
            if (orderDetl.getAnfme() > orderDetl.getQty()) {
                complete = false;
                break;
            }
        }
        if (complete) {
            // 修改订单状态 2.作业中 ===>> 4.待上报
            if (!orderService.updateSettle(orderSou.getId(), 4L, null)) {
                throw new CoolException("服务器内部错误,请联系管理员");
            }
            // 修改订单状态 4.完成 ===>> 6.结束
            OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(), order.getId(), 6L, null);
        }
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> startOrderReport(Order order) {
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
@@ -175,11 +226,10 @@
    }
    @Transactional
    public ReturnT<String> reportCheck(InventoryCheckOrder checkOrder) {
        List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", checkOrder.getOrderNo()));
        for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls){
        for (InventoryCheckOrderDetl checkOrderDetl : checkOrderDetls) {
        }
        return SUCCESS;