xuhy
2024-08-31 80206642e27a501ab2f2725d4104c7579698793d
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java
@@ -4,21 +4,19 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.OrderNumConstants;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.CodeGenerateUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.dto.*;
import com.ruoyi.system.dto.OrderMealGeneratorCountDTO;
import com.ruoyi.system.dto.OrderMealGeneratorDTO;
import com.ruoyi.system.dto.OrderSaleGeneratorDTO;
import com.ruoyi.system.mapper.TDataGeneratorMapper;
import com.ruoyi.system.query.TDataGeneratorQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.SysUserVO;
import com.ruoyi.system.vo.TDataGeneratorVO;
import com.ruoyi.system.vo.TFoundationConfigVO;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -58,16 +56,18 @@
    @Autowired
    private TOrderStockGoodsService orderStockGoodsService;
    @Autowired
    private TokenService tokenService;
    @Autowired
    private TStockDataSetService stockDataSetService;
    @Autowired
    private TGoodsTypeService goodsTypeService;
    @Autowired
    private RedisCache redisCache;
    @Override
    public void mealDataGenerator(OrderMealGeneratorDTO dto) {
        // 存储数据生成数据
        TDataGenerator dataGenerator = new TDataGenerator();
        dataGenerator.setUserId(tokenService.getLoginUser().getUserId());
        dataGenerator.setUserName(tokenService.getLoginUser().getNickName());
        dataGenerator.setUserId(dto.getUserId());
        dataGenerator.setUserName(dto.getNickName());
        dataGenerator.setShopId(dataGenerator.getShopId());
        dataGenerator.setStartTime(dto.getStartTime());
        dataGenerator.setEndTime(dto.getEndTime());
@@ -187,14 +187,25 @@
            allOrderMeals.addAll(otherOrderMeals);
            allOrderMeals.forEach(e->{
                e.setIsCover(0);
                e.setShopId(dataGenerator.getShopId());
                e.setGeneratorId(dataGenerator.getId());
            });
            // 判断是否进行了终止操作
            if(redisCache.hasKey(OrderNumConstants.MEAL+"_"+dto.getShopId())){
                redisCache.deleteObject(OrderNumConstants.MEAL+"_"+dto.getShopId());
                return;
            }
            orderMealService.saveBatch(allOrderMeals);
            for (TOrderMeal orderMeal : allOrderMeals) {
                orderMeal.getMealOrderGoods().forEach(e->e.setOrderId(orderMeal.getId()));
            }
            orderMealGoodsService.saveBatch(allOrderMeals.stream().map(TOrderMeal::getMealOrderGoods).flatMap(Collection::stream).collect(Collectors.toList()));
            List<TGoodsType> list = goodsTypeService.list();
            List<TOrderMealGoods> collect = allOrderMeals.stream().map(TOrderMeal::getMealOrderGoods).flatMap(Collection::stream).collect(Collectors.toList());
            collect.forEach(e->e.setTypeName(list.stream().filter(m->m.getId().equals(e.getTypeId())).findFirst().get().getTypeName()));
            orderMealGoodsService.saveBatch(collect);
            // 存储
            long end = System.currentTimeMillis() - start;
            System.err.println("相差时间========="+end);
@@ -218,8 +229,8 @@
                .last("limit 1"));
        // 存储数据生成数据
        TDataGenerator dataGenerator = new TDataGenerator();
        dataGenerator.setUserId(tokenService.getLoginUser().getUserId());
        dataGenerator.setUserName(tokenService.getLoginUser().getNickName());
        dataGenerator.setUserId(dto.getUserId());
        dataGenerator.setUserName(dto.getNickName());
        dataGenerator.setShopId(dataGenerator.getShopId());
        dataGenerator.setStartTime(dto.getStartTime());
        dataGenerator.setEndTime(dto.getEndTime());
@@ -234,12 +245,7 @@
        // 添加销售订单数
        List<TOrderSale> orderSales = dto.getOrderSales();
        orderSaleService.saveBatch(orderSales);
        for (TOrderSale orderSale : orderSales) {
            orderSale.getOrderSaleGoods().forEach(e->e.setOrderId(orderSale.getId()));
        }
        List<TOrderSaleGoods> orderSaleGoods = orderSales.stream().map(TOrderSale::getOrderSaleGoods).flatMap(Collection::stream).collect(Collectors.toList());
        orderSaleGoodsService.saveBatch(orderSaleGoods);
        // 生成进货数据
        List<TOrderStock> stockList = new ArrayList<>();
@@ -367,6 +373,11 @@
                stockList.add(orderStock);
            }
        }
        // 判断是否进行了终止操作
        if(redisCache.hasKey(OrderNumConstants.STOCK+"_"+dto.getShopId())){
            redisCache.deleteObject(OrderNumConstants.STOCK+"_"+dto.getShopId());
            return;
        }
        // 删除上一次的数据生成
        TOrderStock orderStock = orderStockService.getOne(Wrappers.lambdaQuery(TOrderStock.class)
                .eq(TOrderStock::getShopId, dto.getShopId())
@@ -375,7 +386,15 @@
        if(Objects.nonNull(orderStock)){
            orderStockService.removeById(orderStock);
        }
        orderSaleService.saveBatch(orderSales);
        for (TOrderSale orderSale : orderSales) {
            orderSale.getOrderSaleGoods().forEach(e->e.setOrderId(orderSale.getId()));
        }
        List<TGoodsType> list = goodsTypeService.list();
        orderSaleGoods.forEach(e->e.setTypeName(list.stream().filter(m->m.getId().equals(e.getTypeId())).findFirst().get().getTypeName()));
        orderSaleGoodsService.saveBatch(orderSaleGoods);
        // 添加数据
        stockList.forEach(e->e.setShopId(dataGenerator.getShopId()));
        orderStockService.saveBatch(stockList);
        for (TOrderStock stock : stockList) {
            stock.getOrderStockGoods().forEach(e->e.setOrderId(stock.getId()));