| | |
| | | import com.ruoyi.system.dto.TOrderSaleDTO; |
| | | import com.ruoyi.system.dto.TOrderStockDTO; |
| | | import com.ruoyi.system.mapper.TOrderStockMapper; |
| | | 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 java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | 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 = LocalDateTime.MIN; |
| | | endTime = LocalDateTime.MAX; |
| | | break; |
| | | case 2: |
| | | // 昨日 |
| | | startTime = LocalDateTime.now().minusDays(1); |
| | | endTime = LocalDateTime.now().minusDays(1); |
| | | break; |
| | | case 3: |
| | | // 近7天 |
| | | startTime = LocalDateTime.now().minusDays(7); |
| | | endTime = LocalDateTime.now(); |
| | | break; |
| | | case 4: |
| | | // 近30天 |
| | | startTime = LocalDateTime.now().minusDays(30); |
| | | endTime = LocalDateTime.now(); |
| | | break; |
| | | } |
| | | query.setStartTime(startTime); |
| | | query.setEndTime(endTime); |
| | | } |
| | | PageInfo<TOrderStockVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); |
| | | List<TOrderStockVO> list = this.baseMapper.pageList(query,pageInfo); |
| | |
| | | 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 = LocalDateTime.MIN; |
| | | endTime = LocalDateTime.MAX; |
| | | break; |
| | | case 2: |
| | | // 昨日 |
| | | startTime = LocalDateTime.now().minusDays(1); |
| | | endTime = LocalDateTime.now().minusDays(1); |
| | | break; |
| | | case 3: |
| | | // 近7天 |
| | | startTime = LocalDateTime.now().minusDays(7); |
| | | endTime = LocalDateTime.now(); |
| | | break; |
| | | case 4: |
| | | // 近30天 |
| | | startTime = LocalDateTime.now().minusDays(30); |
| | | endTime = LocalDateTime.now(); |
| | | break; |
| | | } |
| | | query.setStartTime(startTime); |
| | | query.setEndTime(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) |
| | | .in(TOrderStockGoods::getOrderId, orderIds)); |
| | | list.forEach(orderSale -> { |
| | | List<TOrderStockGoods> collect = orderStockGoods.stream().filter(orderSaleGoods -> orderSaleGoods.getOrderId().equals(orderSale.getId())).collect(Collectors.toList()); |
| | | orderSale.setOrderStockGoods(collect); |
| | | }); |
| | | return list; |
| | | } |
| | | } |