From 88e1ae77be3fd4bb803fe68b3d04b2478edac550 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 21 九月 2024 14:15:51 +0800 Subject: [PATCH] 修改接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java | 77 ++++++++++++++++++++++++++++++++++---- 1 files changed, 69 insertions(+), 8 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java index 0de1014..c365360 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java @@ -6,17 +6,17 @@ import com.ruoyi.common.constant.OrderNumConstants; import com.ruoyi.common.utils.CodeGenerateUtils; import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.system.domain.TOrderSaleGoods; -import com.ruoyi.system.domain.TOrderStock; -import com.ruoyi.system.domain.TOrderStockGoods; +import com.ruoyi.system.domain.*; import com.ruoyi.system.dto.TOrderSaleDTO; import com.ruoyi.system.dto.TOrderStockDTO; +import com.ruoyi.system.mapper.TDataGeneratorMapper; +import com.ruoyi.system.mapper.TOrderSaleGoodsMapper; +import com.ruoyi.system.mapper.TOrderSaleMapper; import com.ruoyi.system.mapper.TOrderStockMapper; import com.ruoyi.system.query.TDataGeneratorQuery; import com.ruoyi.system.query.TDataGeneratorStockQuery; import com.ruoyi.system.query.TOrderStockQuery; -import com.ruoyi.system.service.TOrderStockGoodsService; -import com.ruoyi.system.service.TOrderStockService; +import com.ruoyi.system.service.*; import com.ruoyi.system.vo.TDataGeneratorVO; import com.ruoyi.system.vo.TOrderStockVO; import org.springframework.beans.factory.annotation.Autowired; @@ -24,10 +24,9 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -43,6 +42,14 @@ @Autowired private TOrderStockGoodsService tOrderStockGoodsService; + @Autowired + private TOrderSaleMapper orderSaleMapper; + @Autowired + private TOrderSaleGoodsService orderSaleGoodsService; + @Autowired + private TStockDataSetService stockDataSetService; + @Autowired + private TDataGeneratorMapper dataGeneratorMapper; @Override public void add(TOrderStockDTO dto) { // 进货单号 @@ -50,6 +57,9 @@ List<TOrderStockGoods> orderStockGoods = dto.getOrderStockGoods(); // BigDecimal sum = orderStockGoods.stream().map(TOrderStockGoods::getStockPrice).reduce(BigDecimal::add).get(); // dto.setStockTotalPrice(sum); + if(dto.getIsGenerator().equals(2)){ + dto.setIsCover(0); + } this.save(dto); // 添加商品 orderStockGoods.forEach(orderSaleGoods1 -> { @@ -174,4 +184,55 @@ }); return list; } + + @Override + public void editGenerator(TOrderStockDTO dto) { + TDataGenerator dataGenerator = dataGeneratorMapper.selectById(dto.getGeneratorId()); + // 查询生成数据的配置 + List<TStockDataSet> list = stockDataSetService.list(Wrappers.lambdaQuery(TStockDataSet.class) + .eq(TStockDataSet::getGeneratorId, dto.getGeneratorId())); + list = list.stream().sorted(Comparator.comparing(TStockDataSet::getStockDate)).collect(Collectors.toList()); + String startTime = null; + String endTime = null; + Iterator<TStockDataSet> iterator = list.iterator(); + while (iterator.hasNext()){ + TStockDataSet next = iterator.next(); + if(next.getStockDate().compareTo(dto.getStockTime()) == 0){ + startTime = DateUtils.localDateToString(next.getStockDate()); + } + if(Objects.nonNull(startTime)){ + endTime = DateUtils.localDateToString(next.getStockDate()); + } + if(Objects.nonNull(endTime)){ + break; + } + } + if(Objects.isNull(endTime)){ + endTime = DateUtils.localDateToString(dataGenerator.getEndTime()); + } + // 查询该数据生成的销售单的数据 + List<TOrderSale> orderSales = orderSaleMapper.selectList(Wrappers.lambdaQuery(TOrderSale.class) + .eq(TOrderSale::getGeneratorId, dto.getGeneratorId()) + .between(TOrderSale::getOrderTime, startTime + " 00:00:00", endTime + " 23:59:59")); + List<Long> saleOrderIds = orderSales.stream().map(TOrderSale::getId).collect(Collectors.toList()); + List<TOrderStockGoods> orderStockGoods = dto.getOrderStockGoods(); + if(!CollectionUtils.isEmpty(saleOrderIds)){ + List<TOrderSaleGoods> orderSaleGoods = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class) + .in(TOrderSaleGoods::getOrderId, saleOrderIds)); + for (TOrderStockGoods orderStockGood : orderStockGoods) { + orderSaleGoods.stream().filter(e->e.getGoodsName().equals(orderStockGood.getGoodsName())).forEach(e->e.setGoodsCostPrice(orderStockGood.getThisCostPrice())); + } + orderSaleGoodsService.updateBatchById(orderSaleGoods); + } + this.updateById(dto); + // 刪除原有商品 + tOrderStockGoodsService.remove(Wrappers.lambdaQuery(TOrderStockGoods.class) + .eq(TOrderStockGoods::getOrderId,dto.getId())); + // 添加商品 + orderStockGoods.forEach(orderSaleGoods1 -> { + orderSaleGoods1.setId(null); + orderSaleGoods1.setOrderId(dto.getId()); + }); + tOrderStockGoodsService.saveBatch(orderStockGoods); + } } -- Gitblit v1.7.1