From ae4c93dd2e2aef79332360fb5dec13c5b2c961f3 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 24 九月 2024 18:36:07 +0800 Subject: [PATCH] 修改接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java | 125 ++++++++++++++++++++++++++++------------- 1 files changed, 84 insertions(+), 41 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java index 2aadbc9..d1a483d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java @@ -6,16 +6,14 @@ import com.ruoyi.common.constant.OrderNumConstants; import com.ruoyi.common.utils.CodeGenerateUtils; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.*; import com.ruoyi.system.dto.CheckoutDTO; import com.ruoyi.system.dto.TOrderSaleDTO; import com.ruoyi.system.mapper.TOrderSaleGoodsMapper; import com.ruoyi.system.mapper.TOrderSaleMapper; import com.ruoyi.system.query.*; -import com.ruoyi.system.service.TGoodsService; -import com.ruoyi.system.service.TGoodsTypeService; -import com.ruoyi.system.service.TOrderSaleGoodsService; -import com.ruoyi.system.service.TOrderSaleService; +import com.ruoyi.system.service.*; import com.ruoyi.system.vo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,32 +42,43 @@ @Autowired private TOrderSaleGoodsService orderSaleGoodsService; @Autowired + private TOrderStockGoodsService orderStockGoodsService; + @Autowired private TOrderSaleGoodsMapper orderSaleGoodsMapper; - @Autowired - private TGoodsTypeService goodsTypeService; - @Autowired - private TGoodsService goodsService; @Override public void add(TOrderSaleDTO dto) { // 查询菜品分类 - List<TGoodsType> list1 = goodsTypeService.list(); +// List<TGoodsType> list1 = goodsTypeService.list(); // 销售单号 dto.setOrderNum(OrderNumConstants.SALE + CodeGenerateUtils.generateVolumeSn()); List<TOrderSaleGoods> orderSaleGoods = dto.getOrderSaleGoods(); - BigDecimal sum = orderSaleGoods.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get(); + BigDecimal sum = BigDecimal.ZERO; + for (TOrderSaleGoods orderSaleGood : orderSaleGoods) { + sum = sum.add(orderSaleGood.getThisSalePrice().multiply(new BigDecimal(orderSaleGood.getGoodsCount()))); + } dto.setOrderMoney(sum); this.save(dto); + + // 查询进货数据 + List<TOrderStockGoods> orderStockGoodsList = orderStockGoodsService.getListByTimeAndShopId(DateUtils.localDateToString(dto.getOrderTime()), dto.getShopId()); + // 添加商品 orderSaleGoods.forEach(orderSaleGoods1 -> { orderSaleGoods1.setOrderId(dto.getId()); orderSaleGoods1.setId(null); + TOrderStockGoods orderStockGoods = orderStockGoodsList.stream().filter(m -> m.getGoodsNum().equals(orderSaleGoods1.getGoodsNum())).findFirst().orElse(null); + if(Objects.nonNull(orderStockGoods)){ + orderSaleGoods1.setGoodsCostPrice(orderStockGoods.getThisCostPrice()); + }else { + orderSaleGoods1.setGoodsCostPrice(BigDecimal.ZERO); + } }); orderSaleGoodsService.saveBatch(orderSaleGoods); } @Override public PageInfo<TOrderSaleVO> pageList(TOrderSaleQuery query) { - if(Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){ + if(Objects.isNull(query.getStartTime()) && Objects.isNull(query.getEndTime())){ if(Objects.nonNull(query.getTimeType())){ LocalDateTime startTime = null; LocalDateTime endTime = null; @@ -109,10 +118,13 @@ List<TOrderSaleGoods> collect = list1.stream().filter(m -> m.getOrderId().equals(e.getId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(collect)){ BigDecimal goodsAmount = BigDecimal.ZERO; + Integer count = 0; for (TOrderSaleGoods tOrderSaleGoods : collect) { goodsAmount = goodsAmount.add(tOrderSaleGoods.getThisSalePrice().multiply(new BigDecimal(tOrderSaleGoods.getGoodsCount()))); + count = count+tOrderSaleGoods.getGoodsCount(); } e.setGoodsAmount(goodsAmount); + e.setGoodsCount(count); e.setOrderSaleGoods(collect); } }); @@ -122,8 +134,12 @@ } @Override - public AmountSumVO amountSum(TOrderMealQuery query) { - return this.baseMapper.amountSum(query); + public AmountSumVO amountSum(TOrderSaleQuery query) { + AmountSumVO amountSumVO = this.baseMapper.amountSum(query); + if(amountSumVO.getObligation().compareTo(BigDecimal.ZERO) < 0){ + amountSumVO.setObligation(BigDecimal.ZERO); + } + return amountSumVO; } @Override @@ -133,7 +149,10 @@ .add(salesVolumeVO.getMoneyPay()).add(salesVolumeVO.getAliPay())); // 查询成本 List<TOrderSale> list = this.list(Wrappers.lambdaQuery(TOrderSale.class) - .eq(TOrderSale::getShopId, query.getShopId())); + .eq(TOrderSale::getShopId, query.getShopId()) + .ge(TOrderSale::getOrderTime, query.getStartTime()) + .le(TOrderSale::getOrderTime, query.getEndTime()) + .eq(TOrderSale::getStatus,2)); List<Long> ids = list.stream().map(TOrderSale::getId).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(ids)){ BigDecimal costTotal = orderSaleGoodsService.costTotal(ids); @@ -160,33 +179,35 @@ @Override public List<TOrderSaleVO> exportOrderSale(TOrderMealQuery query) { - if(Objects.nonNull(query.getTimeType())){ - LocalDateTime startTime = null; - LocalDateTime endTime = null; - switch (query.getTimeType()){ - case 1: - // 今日 - startTime = DateUtils.getDayStart(LocalDateTime.now()); - endTime = DateUtils.getDayEnd(LocalDateTime.now()); - break; - case 2: - // 昨日 - startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1)); - endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1)); - break; - case 3: - // 近7天 - startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7)); - endTime = DateUtils.getDayEnd(LocalDateTime.now()); - break; - case 4: - // 近30天 - startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30)); - endTime = DateUtils.getDayEnd(LocalDateTime.now()); - break; + if(StringUtils.isEmpty(query.getStartTime()) && StringUtils.isEmpty(query.getEndTime())){ + if(Objects.nonNull(query.getTimeType())){ + LocalDateTime startTime = null; + LocalDateTime endTime = null; + switch (query.getTimeType()){ + case 1: + // 今日 + startTime = DateUtils.getDayStart(LocalDateTime.now()); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + case 2: + // 昨日 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1)); + endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1)); + break; + case 3: + // 近7天 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + case 4: + // 近30天 + startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30)); + endTime = DateUtils.getDayEnd(LocalDateTime.now()); + break; + } + query.setStartTime(DateUtils.localDateTimeToDate(startTime)); + query.setEndTime(DateUtils.localDateTimeToDate(endTime)); } - query.setStartTime(DateUtils.localDateTimeToDate(startTime)); - query.setEndTime(DateUtils.localDateTimeToDate(endTime)); } List<TOrderSaleVO> list = this.baseMapper.exportOrderSale(query); List<Long> ids = list.stream().map(TOrderSaleVO::getId).collect(Collectors.toList()); @@ -207,7 +228,7 @@ @Override public Map<String, Double> getDataGeneratorSaleDetail(TDataGeneratorSaleQuery query) { - if(Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){ + if(Objects.isNull(query.getStartTime()) && Objects.isNull(query.getEndTime())){ if(Objects.nonNull(query.getTimeType())){ LocalDateTime startTime = null; LocalDateTime endTime = null; @@ -326,4 +347,26 @@ } return list; } + + @Override + public ProfitDetailsVO profitDetails(ProfitDetailsQuery query) { + ProfitDetailsVO profitDetailsVO = new ProfitDetailsVO(); + // 查询商品盈利明细 + PageInfo<GoodsProfitVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); + List<GoodsProfitVO> list = this.baseMapper.profitDetails(query,pageInfo); + pageInfo.setRecords(list); + profitDetailsVO.setGoodsProfitVOS(pageInfo); + + // 统计商品金额 + Map<String,Double> map = this.baseMapper.profitDetailsStatistics(query); + profitDetailsVO.setTotalProfits(new BigDecimal(map.get("totalProfits").toString())); + profitDetailsVO.setTotalCosts(new BigDecimal(map.get("totalCosts").toString())); + profitDetailsVO.setTotalSales(new BigDecimal(map.get("totalSales").toString())); + return profitDetailsVO; + } + + @Override + public List<GoodsProfitVO> profitDetailsExport(ProfitDetailsQuery query) { + return this.baseMapper.profitDetailsExport(query); + } } -- Gitblit v1.7.1