From 20cd42287efb95254ea788ce2b6d0c559e378e04 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 19 九月 2024 14:36:21 +0800 Subject: [PATCH] 修改接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java | 124 ++++++++++++++++++++++++++++++++++------- 1 files changed, 102 insertions(+), 22 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 4aa239d..0de1014 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 @@ -3,23 +3,31 @@ 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.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.dto.TOrderSaleDTO; import com.ruoyi.system.dto.TOrderStockDTO; 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.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.LocalDateTime; import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -38,27 +46,33 @@ @Override public void add(TOrderStockDTO dto) { // 进货单号 - dto.setStockNum("JH" + CodeGenerateUtils.generateOrderSn()); + dto.setStockNum(OrderNumConstants.STOCK + CodeGenerateUtils.generateVolumeSn()); List<TOrderStockGoods> orderStockGoods = dto.getOrderStockGoods(); - BigDecimal sum = orderStockGoods.stream().map(TOrderStockGoods::getStockPrice).reduce(BigDecimal::add).get(); - dto.setStockTotalPrice(sum); +// BigDecimal sum = orderStockGoods.stream().map(TOrderStockGoods::getStockPrice).reduce(BigDecimal::add).get(); +// dto.setStockTotalPrice(sum); this.save(dto); // 添加商品 - orderStockGoods.forEach(orderSaleGoods1 -> orderSaleGoods1.setOrderId(dto.getId())); + orderStockGoods.forEach(orderSaleGoods1 -> { + orderSaleGoods1.setId(null); + orderSaleGoods1.setOrderId(dto.getId()); + }); tOrderStockGoodsService.saveBatch(orderStockGoods); } @Override public void edit(TOrderStockDTO dto) { List<TOrderStockGoods> orderStockGoods = dto.getOrderStockGoods(); - BigDecimal sum = orderStockGoods.stream().map(TOrderStockGoods::getStockPrice).reduce(BigDecimal::add).get(); - dto.setStockTotalPrice(sum); +// BigDecimal sum = orderStockGoods.stream().map(TOrderStockGoods::getStockPrice).reduce(BigDecimal::add).get(); +// dto.setStockTotalPrice(sum); this.updateById(dto); // 刪除原有商品 tOrderStockGoodsService.remove(Wrappers.lambdaQuery(TOrderStockGoods.class) .eq(TOrderStockGoods::getOrderId,dto.getId())); // 添加商品 - orderStockGoods.forEach(orderSaleGoods1 -> orderSaleGoods1.setOrderId(dto.getId())); + orderStockGoods.forEach(orderSaleGoods1 -> { + orderSaleGoods1.setId(null); + orderSaleGoods1.setOrderId(dto.getId()); + }); tOrderStockGoodsService.saveBatch(orderStockGoods); } @@ -66,23 +80,90 @@ public PageInfo<TOrderStockVO> pageList(TOrderStockQuery query) { // 判断时间 - if (query.getType() != null) { - if (query.getType() == 1) { - query.setStartTime(LocalDateTime.now()); - query.setEndTime(LocalDateTime.now()); - } else if (query.getType() == 2) { - query.setStartTime(LocalDateTime.now().minusDays(1)); - query.setEndTime(LocalDateTime.now().minusDays(1)); - } else if (query.getType() == 3) { - query.setStartTime(LocalDateTime.now().minusDays(7)); - query.setEndTime(LocalDateTime.now()); - }else { - query.setStartTime(LocalDateTime.now().minusDays(30)); - query.setEndTime(LocalDateTime.now()); + 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)); } PageInfo<TOrderStockVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); List<TOrderStockVO> list = this.baseMapper.pageList(query,pageInfo); + // 查询商品 + List<Long> orderIds = list.stream().map(TOrderStockVO::getId).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(orderIds)){ + List<TOrderStockGoods> orderStockGoods = tOrderStockGoodsService.list(Wrappers.lambdaQuery(TOrderStockGoods.class) + .in(TOrderStockGoods::getOrderId, orderIds)); + list.forEach(orderStockVO -> { + List<TOrderStockGoods> collect = orderStockGoods.stream().filter(orderSaleGoods -> orderSaleGoods.getOrderId().equals(orderStockVO.getId())).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(collect)){ + orderStockVO.setOrderStockGoods(collect); + orderStockVO.setOrderStockCount(collect.size()); + orderStockVO.setTotalPrice(collect.stream().map(TOrderStockGoods::getCostPrice).reduce(BigDecimal::add).get()); + } + }); + } + pageInfo.setRecords(list); + return pageInfo; + } + + @Override + public Map<String, Object> getDataGeneratorStockDetail(TDataGeneratorStockQuery query) { + return this.baseMapper.getDataGeneratorStockDetail(query); + } + + @Override + public List<TOrderStockVO> stockGeneratorExport(TDataGeneratorStockQuery 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; + } + query.setStartTime(DateUtils.localDateTimeToDate(startTime)); + query.setEndTime(DateUtils.localDateTimeToDate(endTime)); + } + List<TOrderStockVO> list = this.baseMapper.stockGeneratorExport(query); // 查询商品 List<Long> orderIds = list.stream().map(TOrderStockVO::getId).collect(Collectors.toList()); List<TOrderStockGoods> orderStockGoods = tOrderStockGoodsService.list(Wrappers.lambdaQuery(TOrderStockGoods.class) @@ -91,7 +172,6 @@ List<TOrderStockGoods> collect = orderStockGoods.stream().filter(orderSaleGoods -> orderSaleGoods.getOrderId().equals(orderSale.getId())).collect(Collectors.toList()); orderSale.setOrderStockGoods(collect); }); - pageInfo.setRecords(list); - return pageInfo; + return list; } } -- Gitblit v1.7.1