| | |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.domain.*; |
| | | import com.ruoyi.system.dto.*; |
| | | import com.ruoyi.system.export.SumGeneratorClient; |
| | | import com.ruoyi.system.export.SumGeneratorDetailClient; |
| | | import com.ruoyi.system.mapper.TOrderMealGoodsMapper; |
| | | import com.ruoyi.system.mapper.TOrderMealMapper; |
| | | import com.ruoyi.system.query.*; |
| | |
| | | } |
| | | PageInfo<TOrderMealVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); |
| | | List<TOrderMealVO> list = this.baseMapper.pageList(query,pageInfo); |
| | | if(CollectionUtils.isEmpty(list)){ |
| | | return new PageInfo<>(); |
| | | } |
| | | List<Long> ids = list.stream().map(TOrderMealVO::getId).collect(Collectors.toList()); |
| | | List<TOrderMealGoods> list1 = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class) |
| | | .in(TOrderMealGoods::getOrderId, ids)); |
| | | // 查询商品信息 |
| | | for (TOrderMealVO tOrderMealVO : list) { |
| | | List<TOrderMealGoods> list1 = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class) |
| | | .eq(TOrderMealGoods::getOrderId, tOrderMealVO.getId())); |
| | | tOrderMealVO.setOrderMealGoods(list1); |
| | | if(!CollectionUtils.isEmpty(list1)){ |
| | | Map<String, List<TOrderMealGoods>> map = list1.stream().collect(Collectors.groupingBy(TOrderMealGoods::getTypeName)); |
| | | List<TOrderMealGoods> collect = list1.stream().filter(e -> e.getOrderId().equals(tOrderMealVO.getId())).collect(Collectors.toList()); |
| | | tOrderMealVO.setOrderMealGoods(collect); |
| | | if(!CollectionUtils.isEmpty(collect)){ |
| | | Map<String, List<TOrderMealGoods>> map = collect.stream().collect(Collectors.groupingBy(TOrderMealGoods::getTypeName)); |
| | | List<String> goodsList = new ArrayList<>(); |
| | | map.forEach((k,v)->{ |
| | | goodsList.add(k+":"+v.stream().map(item->item.getGoodsName()+" "+(item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount())))).collect(Collectors.joining(","))); |
| | |
| | | // 开台 |
| | | board.setStatus(BoardEnum.WAITING_ORDER.getCode()); |
| | | boardService.updateById(board); |
| | | dto.setMealTime(LocalDate.now()); |
| | | dto.setMealTime(dto.getMealTime()); |
| | | dto.setOrderNum(OrderNumConstants.MEAL + CodeGenerateUtils.generateVolumeSn()); |
| | | this.save(dto); |
| | | } |
| | |
| | | return this.baseMapper.profitDetailsExport(query); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteByShopId(Long shopId) { |
| | | this.baseMapper.deleteByShopId(shopId); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Double> getDataGeneratorMealDetailOrderMoney(TDataGeneratorMealQuery query) { |
| | | return this.baseMapper.getDataGeneratorMealDetailOrderMoney(query); |
| | | } |
| | | |
| | | @Override |
| | | public SumGeneratorClient sumExport(ProfitDetailsQuery query) { |
| | | List<SumGeneratorDetailClient> sumGeneratorDetailClient = this.baseMapper.sumExport(query); |
| | | |
| | | for (SumGeneratorDetailClient generatorDetailClient : sumGeneratorDetailClient) { |
| | | generatorDetailClient.setSingleAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getOrderCount()),2,BigDecimal.ROUND_DOWN)); |
| | | generatorDetailClient.setPerAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getPerCount()),2,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | |
| | | SumGeneratorClient sumGeneratorClient = new SumGeneratorClient(); |
| | | if(!CollectionUtils.isEmpty(sumGeneratorDetailClient)){ |
| | | sumGeneratorClient.setActualAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get()); |
| | | sumGeneratorClient.setOrderCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getOrderCount).reduce(Integer::sum).get()); |
| | | sumGeneratorClient.setSingleAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getSingleAmount).reduce(BigDecimal::add).get()); |
| | | sumGeneratorClient.setPerCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerCount).reduce(Integer::sum).get()); |
| | | sumGeneratorClient.setPerAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerAmount).reduce(BigDecimal::add).get()); |
| | | |
| | | sumGeneratorClient.setAllMoney(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get()); |
| | | sumGeneratorClient.setSingleAvgAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getPerCountSum()),2,BigDecimal.ROUND_DOWN)); |
| | | sumGeneratorClient.setPerCapitaAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getOrderCountSum()),2,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | sumGeneratorClient.setOrderStatistics(sumGeneratorDetailClient); |
| | | |
| | | |
| | | return sumGeneratorClient; |
| | | } |
| | | |
| | | } |