cl
2 天以前 c94101e403cdaf332e0b80cbedab747a03a5df93
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -632,8 +632,18 @@
            return R.ok(resultList);
        }
        
        // 有ASN单号时:DirectWaitPakin 启用则从收货区查可组托物料,未启用则从订单明细查(可组盘数量 = 计划 - 已组托 - 已上架)
        // 有ASN单号时:仅在单据存在时按单据限制组托
        WkOrder asnOrder = null;
        if (!Cools.isEmpty(asnCode)) {
            asnOrder = asnOrderMapper.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, asnCode));
            if (asnOrder == null) {
                logger.info("未找到ASN单号: {},按无单据组托模式返回物料信息", asnCode);
                asnCode = null;
            }
        }
        // 有ASN单号且单据存在时:DirectWaitPakin 启用则从收货区查可组托物料,未启用则从订单明细查
        if (!Cools.isEmpty(asnCode) && asnOrder != null) {
            Config directPakinConfig = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.DIRECT_WAIT_PAKIN));
            if (directPakinConfig != null && Boolean.parseBoolean(directPakinConfig.getVal())) {
                LambdaQueryWrapper<WarehouseAreasItem> receiptWrapper = new LambdaQueryWrapper<WarehouseAreasItem>().eq(WarehouseAreasItem::getAsnCode, asnCode);
@@ -668,11 +678,7 @@
                logger.info("=== 从收货区查询可组托物料(DirectWaitPakin)asnCode: {} 返回 {} 条", asnCode, receiptList.size());
                return R.ok(receiptList);
            }
            WkOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, asnCode));
            if (order == null) {
                logger.info("未找到ASN单号: {}", asnCode);
                return R.ok(Collections.emptyList());
            }
            WkOrder order = asnOrder;
            List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getAsnId, order.getId()).eq(WaitPakinItem::getDeleted, 0));
            Map<Long, Double> palletizedByItemId = pakinItems.stream()
                    .collect(Collectors.groupingBy(WaitPakinItem::getAsnItemId, Collectors.summingDouble(w -> w.getAnfme() != null ? w.getAnfme() : 0.0)));