| | |
| | | import com.ruoyi.common.constant.OrderNumConstants; |
| | | import com.ruoyi.common.enums.BoardEnum; |
| | | import com.ruoyi.common.utils.CodeGenerateUtils; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.system.domain.*; |
| | | import com.ruoyi.system.dto.*; |
| | | import com.ruoyi.system.mapper.TOrderMealGoodsMapper; |
| | |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | |
| | | if(Objects.isNull(dto.getBoardId())){ |
| | | throw new RuntimeException("餐桌不能为空"); |
| | | } |
| | | TOrderMeal orderMeal = this.getById(dto.getId()); |
| | | orderMeal.setRemark(orderMeal.getRemark()+dto.getRemark()); |
| | | orderMeal.setMealType(dto.getMealType()); |
| | | orderMeal.setMealPerson(dto.getMealPerson()); |
| | | orderMeal.setMealTime(dto.getMealTime()); |
| | | orderMeal.setOrderMoney(dto.getOrderMoney()); |
| | | |
| | | // 查询菜品分类 |
| | | List<TGoodsType> list1 = goodsTypeService.list(); |
| | | // 查询餐桌 |
| | | TBoard board = boardService.getById(dto.getBoardId()); |
| | | // 如果菜品为空 |
| | | if(CollectionUtils.isEmpty(dto.getMealOrderGoodsDTOS())){ |
| | | // 开台 |
| | | board.setStatus(BoardEnum.WAITING_ORDER.getCode()); |
| | | this.save(dto); |
| | | }else { |
| | | if(!CollectionUtils.isEmpty(dto.getMealOrderGoodsDTOS())){ |
| | | board.setStatus(BoardEnum.DURING_MEAL.getCode()); |
| | | boardService.updateById(board); |
| | | // 订单金额,订单编号 |
| | | String orderNum = OrderNumConstants.MEAL+CodeGenerateUtils.generateOrderSn(); |
| | | String orderNum = OrderNumConstants.MEAL+CodeGenerateUtils.generateVolumeSn(); |
| | | dto.setOrderNum(orderNum); |
| | | List<TOrderMealGoods> orderMealGoods = new ArrayList<>(); |
| | | // 查询商品 |
| | |
| | | orderMealGood.setGoodsPicture(item1.getGoodsPicture()); |
| | | orderMealGood.setGoodsCount(item.getGoodsCount()); |
| | | orderMealGood.setGoodsSalePrice(item1.getSalePrice().multiply(new BigDecimal(item.getGoodsCount()))); |
| | | orderMealGood.setCostPrice(item1.getCostPrice().multiply(new BigDecimal(item.getGoodsCount()))); |
| | | // orderMealGood.setTypeId(item1.getTypeId()); |
| | | orderMealGood.setTypeName(list1.stream().filter(item2 -> item2.getId().equals(item1.getTypeId())).findFirst().get().getTypeName()); |
| | | orderMealGoods.add(orderMealGood); |
| | | }); |
| | | }); |
| | | this.saveOrUpdate(dto); |
| | | BigDecimal orderMoney = BigDecimal.ZERO; |
| | | // 添加菜品 |
| | | orderMealGoods.forEach(item -> { |
| | | item.setOrderId(dto.getId()); |
| | | }); |
| | | for (TOrderMealGoods orderMealGood : orderMealGoods) { |
| | | orderMealGood.setOrderId(dto.getId()); |
| | | orderMoney = orderMoney.add(orderMealGood.getGoodsSalePrice()); |
| | | } |
| | | orderMealGoodsService.saveBatch(orderMealGoods); |
| | | orderMeal.setOrderMoney(orderMoney); |
| | | this.updateById(orderMeal); |
| | | // 添加备注 |
| | | TOrderRemark tOrderRemark = new TOrderRemark(); |
| | | tOrderRemark.setOrderId(dto.getId()); |
| | | tOrderRemark.setRemark(dto.getRemark()); |
| | | tOrderRemark.setCreateTime(LocalDateTime.now()); |
| | | orderRemarkService.save(tOrderRemark); |
| | | // TOrderRemark tOrderRemark = new TOrderRemark(); |
| | | // tOrderRemark.setOrderId(dto.getId()); |
| | | // tOrderRemark.setRemark(dto.getRemark()); |
| | | // tOrderRemark.setCreateTime(LocalDateTime.now()); |
| | | // orderRemarkService.save(tOrderRemark); |
| | | } |
| | | boardService.updateById(board); |
| | | } |
| | | |
| | | @Override |
| | |
| | | }); |
| | | orderMealGoodsService.saveBatch(orderMealGoods); |
| | | // 添加备注 |
| | | TOrderRemark tOrderRemark = new TOrderRemark(); |
| | | tOrderRemark.setOrderId(dto.getOrderId()); |
| | | tOrderRemark.setRemark(dto.getRemark()); |
| | | tOrderRemark.setCreateTime(LocalDateTime.now()); |
| | | orderRemarkService.save(tOrderRemark); |
| | | // TOrderRemark tOrderRemark = new TOrderRemark(); |
| | | // tOrderRemark.setOrderId(dto.getOrderId()); |
| | | // tOrderRemark.setRemark(dto.getRemark()); |
| | | // tOrderRemark.setCreateTime(LocalDateTime.now()); |
| | | // orderRemarkService.save(tOrderRemark); |
| | | } |
| | | |
| | | @Override |
| | |
| | | endTime = LocalDateTime.now(); |
| | | break; |
| | | } |
| | | query.setStartTime(startTime); |
| | | query.setEndTime(endTime); |
| | | query.setStartTime(DateUtils.localDateTimeToDate(startTime)); |
| | | query.setEndTime(DateUtils.localDateTimeToDate(endTime)); |
| | | } |
| | | PageInfo<TOrderMealVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); |
| | | List<TOrderMealVO> list = this.baseMapper.pageList(query,pageInfo); |
| | |
| | | endTime = LocalDateTime.now(); |
| | | break; |
| | | } |
| | | query.setStartTime(startTime); |
| | | query.setEndTime(endTime); |
| | | query.setStartTime(DateUtils.localDateTimeToDate(startTime)); |
| | | query.setEndTime(DateUtils.localDateTimeToDate(endTime)); |
| | | } |
| | | List<TOrderMealVO> list = this.baseMapper.exportOrderMeal(query); |
| | | List<Long> ids = list.stream().map(TOrderMealVO::getId).collect(Collectors.toList()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, BigDecimal> getDataGeneratorMealDetail(TDataGeneratorMealQuery query) { |
| | | public Map<String, Double> getDataGeneratorMealDetail(TDataGeneratorMealQuery query) { |
| | | return this.baseMapper.getDataGeneratorMealDetail(query); |
| | | } |
| | | |
| | |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public void startMeal(TOrderMeal dto) { |
| | | // 查询餐桌 |
| | | TBoard board = boardService.getById(dto.getBoardId()); |
| | | // 开台 |
| | | board.setStatus(BoardEnum.WAITING_ORDER.getCode()); |
| | | boardService.updateById(board); |
| | | dto.setMealTime(LocalDate.now()); |
| | | dto.setOrderNum(OrderNumConstants.MEAL + CodeGenerateUtils.generateVolumeSn()); |
| | | this.save(dto); |
| | | } |
| | | |
| | | } |