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 | 129 ++++++++++++++++++++++++++++++++---------- 1 files changed, 97 insertions(+), 32 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 0bc0826..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 @@ -5,26 +5,28 @@ import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.constant.OrderNumConstants; import com.ruoyi.common.utils.CodeGenerateUtils; -import com.ruoyi.system.domain.TOrderSaleGoods; -import com.ruoyi.system.domain.TOrderStock; -import com.ruoyi.system.domain.TOrderStockGoods; +import com.ruoyi.common.utils.DateUtils; +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; import org.springframework.stereotype.Service; 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; /** @@ -40,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) { // 进货单号 @@ -47,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 -> { @@ -83,27 +96,27 @@ switch (query.getTimeType()){ case 1: // 今日 - startTime = LocalDateTime.MIN; - endTime = LocalDateTime.MAX; + startTime = DateUtils.getDayStart(LocalDateTime.now()); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); break; case 2: // 昨日 - startTime = LocalDateTime.now().minusDays(1); - endTime = LocalDateTime.now().minusDays(1); + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1)); + endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1)); break; case 3: // 近7天 - startTime = LocalDateTime.now().minusDays(7); - endTime = LocalDateTime.now(); + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); break; case 4: // 近30天 - startTime = LocalDateTime.now().minusDays(30); - endTime = LocalDateTime.now(); + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); break; } - query.setStartTime(startTime); - query.setEndTime(endTime); + query.setStartTime(DateUtils.localDateTimeToDate(startTime)); + query.setEndTime(DateUtils.localDateTimeToDate(endTime)); } PageInfo<TOrderStockVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); List<TOrderStockVO> list = this.baseMapper.pageList(query,pageInfo); @@ -112,11 +125,12 @@ if(!CollectionUtils.isEmpty(orderIds)){ List<TOrderStockGoods> orderStockGoods = tOrderStockGoodsService.list(Wrappers.lambdaQuery(TOrderStockGoods.class) .in(TOrderStockGoods::getOrderId, orderIds)); - list.forEach(orderSale -> { - List<TOrderStockGoods> collect = orderStockGoods.stream().filter(orderSaleGoods -> orderSaleGoods.getOrderId().equals(orderSale.getId())).collect(Collectors.toList()); + list.forEach(orderStockVO -> { + List<TOrderStockGoods> collect = orderStockGoods.stream().filter(orderSaleGoods -> orderSaleGoods.getOrderId().equals(orderStockVO.getId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(collect)){ - orderSale.setOrderStockGoods(collect); - orderSale.setTotalPrice(collect.stream().map(TOrderStockGoods::getCostPrice).reduce(BigDecimal::add).get()); + orderStockVO.setOrderStockGoods(collect); + orderStockVO.setOrderStockCount(collect.size()); + orderStockVO.setTotalPrice(collect.stream().map(TOrderStockGoods::getCostPrice).reduce(BigDecimal::add).get()); } }); } @@ -137,27 +151,27 @@ switch (query.getTimeType()){ case 1: // 今日 - startTime = LocalDateTime.MIN; - endTime = LocalDateTime.MAX; + startTime = DateUtils.getDayStart(LocalDateTime.now()); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); break; case 2: // 昨日 - startTime = LocalDateTime.now().minusDays(1); - endTime = LocalDateTime.now().minusDays(1); + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1)); + endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1)); break; case 3: // 近7天 - startTime = LocalDateTime.now().minusDays(7); - endTime = LocalDateTime.now(); + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); break; case 4: // 近30天 - startTime = LocalDateTime.now().minusDays(30); - endTime = LocalDateTime.now(); + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); break; } - query.setStartTime(startTime); - query.setEndTime(endTime); + query.setStartTime(DateUtils.localDateTimeToDate(startTime)); + query.setEndTime(DateUtils.localDateTimeToDate(endTime)); } List<TOrderStockVO> list = this.baseMapper.stockGeneratorExport(query); // 查询商品 @@ -170,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