lbq
21 小时以前 3cc9e4551c42c1eb40c09f181857f2e0b1aa8355
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -622,13 +622,15 @@
            List<OutStockToTaskParams> tasks = new ArrayList<>();
            for (OrderOutItemDto orderOutItemDto : orderOutTaskItemAuto){
                OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto);
                outStockToTaskParams.setId(orderOutItemDto.getLocItem().getId());
                outStockToTaskParams.setOutQty(orderOutItemDto.getOutQty());
                outStockToTaskParams.setLocCode(orderOutItemDto.getLocItem().getLocCode());
                outStockToTaskParams.setBarcode(orderOutItemDto.getLocItem().getBarcode());
                outStockToTaskParams.setSiteNo(stationId);
                tasks.add(outStockToTaskParams);
                for (LocItem locItem : orderOutItemDto.getLocItemList()) {
                    OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto,locItem);
                    outStockToTaskParams.setId(locItem.getId());
                    outStockToTaskParams.setOutQty(locItem.getOutQty());
                    outStockToTaskParams.setLocCode(locItem.getLocCode());
                    outStockToTaskParams.setBarcode(locItem.getBarcode());
                    outStockToTaskParams.setSiteNo(stationId);
                    tasks.add(outStockToTaskParams);
                }
            }
            if (tasks.isEmpty()){
                log.warn("订单ID {} 没有找到可出库明细,跳过自动出库", orderId);
@@ -1122,6 +1124,32 @@
                }
            }
            // 仓库编码过滤
            if (StringUtils.isNotBlank(condition.getWareHouseAreaId())) {
                String wareHouseAreaId = condition.getWareHouseAreaId();
                LambdaQueryWrapper<WarehouseAreas> whWrapper = new LambdaQueryWrapper<>();
                whWrapper.eq(WarehouseAreas::getCode, wareHouseAreaId);
                // 调用WarehouseService查询仓库信息(复用Service层方法)
                List<WarehouseAreas> warehouses = warehouseAreasService.list(whWrapper);
                if (!warehouses.isEmpty()) {
                    Long targetWarehouseId = warehouses.get(0).getId();
                    // 过滤库位,只保留目标仓库的库位
                    locMap = locMap.entrySet().stream()
                            .filter(entry -> Objects.equals(entry.getValue().getAreaId(), targetWarehouseId))
                            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
                    // 过滤locItems,只保留目标仓库的
                    Set<Long> validLocIds = locMap.keySet();
                    locItems = locItems.stream()
                            .filter(item -> item.getLocId() != null && validLocIds.contains(item.getLocId()))
                            .collect(Collectors.toList());
                    List<Long> warehouseAreaIds = Collections.singletonList(targetWarehouseId);
                } else {
                    return R.ok().add(new ArrayList<>());
                }
            }
            // 调用WarehouseService查询仓库信息(复用Service层方法)
            Map<Long, Warehouse> warehouseMap = new HashMap<>();
            if (!warehouseIds.isEmpty()) {