| | |
| | | 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.*; |
| | |
| | | // 开台 |
| | | 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.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; |
| | | } |
| | | |
| | | } |