xuhy
2024-09-24 ae4c93dd2e2aef79332360fb5dec13c5b2c961f3
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java
@@ -298,9 +298,13 @@
            e.setGeneratorId(dataGenerator.getId());
            e.setOrderNum(OrderNumConstants.SALE + CodeGenerateUtils.generateVolumeSn());
            e.setIsCover(0);
            e.setStatus(2);
        });
        List<TOrderSaleGoods> orderSaleGoods = orderSales.stream().map(TOrderSale::getOrderSaleGoods).flatMap(Collection::stream).collect(Collectors.toList());
        TOrderStock orderStockLast = orderStockService.getOne(Wrappers.lambdaQuery(TOrderStock.class)
                .eq(TOrderStock::getShopId, dto.getShopId())
                .orderByDesc(TOrderStock::getStockTime)
                .last("LIMIT 1"));
        // 生成进货数据
        List<TOrderStock> stockList = new ArrayList<>();
        stockDataSets.stream().sorted(Comparator.comparing(TStockDataSet::getStockDate));
@@ -342,6 +346,9 @@
                stockList.add(orderStock);
            }else if(i==0 && Objects.nonNull(stockDataSet)){
                if(Objects.nonNull(orderStockLast)){
                    // 查询商品进价
                    List<TOrderStockGoods> orderStockGoodsList = orderStockGoodsService.list(Wrappers.lambdaQuery(TOrderStockGoods.class).eq(TOrderStockGoods::getOrderId, orderStockLast.getId()));
                // 第一次 第一次的进货时间为上一次的结束时间  开始时间为上一次的开始时间
                LocalDate startTime1 = stockDataSet.getStockDate();
                List<TOrderSale> collect = orderSales.stream().filter(e -> e.getOrderTime().compareTo(startTime) < 0).collect(Collectors.toList());
@@ -357,9 +364,9 @@
                // 删除上一次的数据生成   新生成一条数据
                TOrderStock orderStock = new TOrderStock();
                orderStock.setStockNum(OrderNumConstants.STOCK + CodeGenerateUtils.generateVolumeSn());
                orderStock.setStockTime(startTime);
                    orderStock.setStockTime(orderStockLast.getStockTime());
                orderStock.setIsCover(0);
                orderStock.setGeneratorId(dataGenerator.getId());
                    orderStock.setGeneratorId(orderStockLast.getGeneratorId());
                orderStock.setShopId(dto.getShopId());
                Map<String, List<TOrderSaleGoods>> goodsList = list.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getGoodsName));
@@ -370,7 +377,10 @@
                    tOrderStockGoods.setGoodsNum(v.get(0).getGoodsNum());
                    tOrderStockGoods.setCostPrice(v.get(0).getGoodsCostPrice());
                    tOrderStockGoods.setSalePrice(v.get(0).getGoodsSalePrice());
//                    tOrderStockGoods.setThisCostPrice(v.get(0).getThisSalePrice());
                        TOrderStockGoods orderStockGoods1 = orderStockGoodsList.stream().filter(e -> e.getGoodsName().equals(k)).findFirst().orElse(null);
                        if(Objects.nonNull(orderStockGoods1)){
                            tOrderStockGoods.setThisCostPrice(orderStockGoods1.getThisCostPrice());
                        }
                    tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
                    tOrderStockGoods.setGoodsId(v.get(0).getGoodsId());
                    int sum = v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum();
@@ -381,6 +391,7 @@
                });
                orderStock.setOrderStockGoods(orderStockGoods);
                stockList.add(orderStock);
                }
                // 处理第一次到下一次的数据
                TStockDataSet end = stockDataSets.get(i + 1);
@@ -457,12 +468,8 @@
            return;
        }
        // 删除上一次的数据生成
        TOrderStock orderStock = orderStockService.getOne(Wrappers.lambdaQuery(TOrderStock.class)
                .eq(TOrderStock::getShopId, dto.getShopId())
                .orderByDesc(TOrderStock::getStockTime)
                .last("LIMIT 1"));
        if(Objects.nonNull(orderStock)){
            orderStockService.removeById(orderStock);
        if(Objects.nonNull(orderStockLast)){
            orderStockService.removeById(orderStockLast);
        }
        orderSaleService.saveBatch(orderSales);
        for (TOrderSale orderSale : orderSales) {