zxl
19 小时以前 7a4700480cadfc11564a4325dae17d4e29a6003b
订单发货问题
1个文件已修改
26 ■■■■ 已修改文件
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -1246,12 +1246,31 @@
        orderLogService.saveBatch(orderLogList);
        //判断订单货物是否全部发货完毕
        Boolean delivery = true;
        log.info("打印订单货物:{}",orderItemList);
        //需要再此处判断订单是否有申请售后状态
        for (OrderItem orderItem : orderItemList) {
            if (orderItem.getDeliverNumber() < orderItem.getNum()) {
                delivery = false;
                break;
            // 先判断是否是未申请售后的订单
            if (OrderItemAfterSaleStatusEnum.NOT_APPLIED.name().equals(orderItem.getAfterSaleStatus())){
                // 发货数量小于订单数量则全发
                log.info("打印发货数量:{},该商品订单数量货物对应的:{}",orderItem.getDeliverNumber(),orderItem.getNum());
                if (orderItem.getDeliverNumber() < orderItem.getNum()) {
                    delivery = false;
                    break;
                }
            }else{
                //全部退回情况
                if(Objects.equals(orderItem.getReturnGoodsNumber(), orderItem.getNum())){
                    break;
                }
                //存在情况 退回数量不是全部退回而是部分退回
                if (orderItem.getReturnGoodsNumber() + orderItem.getDeliverNumber() < orderItem.getNum()) {
                    delivery = false;
                    break;
                }
            }
        }
        log.info("delivery状态:{}",delivery);
        //是否全部发货
        if (delivery) {
            return delivery(orderSn, invoiceNumber, logisticsId);
@@ -1283,6 +1302,7 @@
            for (Order unpaidOrder : unpaidOrders) {
                this.systemCancel(unpaidOrder.getSn(), "拼团活动结束订单未付款,系统自动取消订单", false);
            }
        }
        List<Order> paidOrders = listMap.get(PayStatusEnum.PAID.name());
        //如待参团人数大于0,并已开启虚拟成团