chen.lin
昨天 98d88ac8caf7f0991d741079474c262f1e252927
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
@@ -302,10 +302,13 @@
                //获取库存中订单库位
                Set<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toSet());
                Stock stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
                        .in(Stock::getId, longSet)
                        .eq(Stock::getType, OrderType.ORDER_IN.type)
                        .eq(Stock::getSourceCode, order.getCode()));
                Stock stocks = null;
                if (!longSet.isEmpty()) {
                    stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
                            .in(Stock::getId, longSet)
                            .eq(Stock::getType, OrderType.ORDER_IN.type)
                            .eq(Stock::getSourceCode, order.getCode()));
                }
                if (!Objects.isNull(stocks)) {
                    param.setZone(stocks.getLocCode());
                }
@@ -319,8 +322,8 @@
                        .setItemCode(orderItem.getMatnrCode())
                        .setEditUser(nickName)
                        .setEditDate(order.getUpdateTime())
                        .setZone(stocks.getLocCode())
                        .setGoodsNO(fields.get("crushNo"))
                        .setZone(stocks != null ? stocks.getLocCode() : null)
                        // .setGoodsNO(fields.get("crushNo"))  // 票号暂不使用
                        .setMemoDtl(order.getMemo());
                if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
@@ -393,6 +396,9 @@
                //过滤拣货入库明细,避免上报
                List<Stock> stockList = stocks.stream().filter(stock -> stock.getType().equals(OrderType.ORDER_OUT.type) && !Objects.isNull(stock.getSourceCode())).collect(Collectors.toList());
                List<Long> list = stockList.stream().map(Stock::getId).collect(Collectors.toList());
                if (list.isEmpty()) {
                    return;
                }
                List<StockItem> stockItems1 = stockItemService.list(new LambdaQueryWrapper<StockItem>().in(StockItem::getStockId, list));
                String finalNickName = nickName;
                stockItems1.forEach(stockItem -> {
@@ -407,7 +413,7 @@
                            .setItemCode(stockItem.getMatnrCode())
                            .setEditUser(finalNickName)
                            .setEditDate(order.getUpdateTime())
                            .setGoodsNO(fields.get("crushNo"))
                            // .setGoodsNO(fields.get("crushNo"))  // 票号暂不使用
                            .setMemoDtl(order.getMemo());
                    if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
                        //采购入库单
@@ -500,11 +506,14 @@
                    .eq(StockItem::getFieldsIndex, orderItem.getFieldsIndex()));
            //获取库存中订单库位
            List<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toList());
            //获取库存库位信息
            Stock stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
                    .in(Stock::getId, longSet)
                    .eq(Stock::getType, OrderType.ORDER_IN.type)
                    .eq(Stock::getSourceCode, order.getCode()));
            //获取库存库位信息(避免 longSet 为空时生成 stock_id IN () 导致 SQL 异常)
            Stock stocks = null;
            if (!longSet.isEmpty()) {
                stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
                        .in(Stock::getId, longSet)
                        .eq(Stock::getType, OrderType.ORDER_IN.type)
                        .eq(Stock::getSourceCode, order.getCode()));
            }
            if (!Objects.isNull(stocks)) {
                param.setZone(stocks.getLocCode());
            }
@@ -520,7 +529,7 @@
                .setItemCode(orderItem.getMatnrCode())
                .setEditUser(nickName)
                .setEditDate(order.getUpdateTime())
                .setGoodsNO(fields.get("crushNo"))
                // .setGoodsNO(fields.get("crushNo"))  // 票号暂不使用
                .setMemoDtl(order.getMemo());
        if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {