package cn.iocoder.yudao.module.system.service.restaurant;


import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.excel.DailyExpensesExcelVO;
import cn.iocoder.yudao.module.system.controller.admin.biz.vo.excel.DishesOrderStatisticsExcelVO;
import cn.iocoder.yudao.module.system.controller.admin.restaurant.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.restaurant.DishesOrderReportTimeslotDO;
import cn.iocoder.yudao.module.system.dal.dataobject.restaurant.DishesOrderStatisticsDO;
import cn.iocoder.yudao.module.system.dal.dataobject.restaurant.EmployeeDishesOrderReportDO;
import cn.iocoder.yudao.module.system.dal.dataobject.restaurant.EmployeeDishesOrderReportVO;

import java.util.List;
import java.util.Map;

/**
 * 长者点餐统计 Service 接口
 *
 * @author 系统管理员
 */
public interface DishesOrderStatisticsService {


    void createDishesOrderStatistics(DishesOrderStatisticsSaveReqVO createReqVO);

    void deleteDishesOrderStatistics(Long[] ids);

    DishesOrderStatisticsRespVO getDishesOrderStatistics(Long id);

    void updateDishesOrderStatistics(DishesOrderStatisticsSaveReqVO updateReqVO);

    PageResult<DishesOrderStatisticsDO> getDishesOrderStatisticsPage(DishesOrderStatisticsPageReqVO pageReqVO);

    PageResult<DishesOrderExportVO> exportDishesOrderStatisticsPage(DishesOrderStatisticsPageReqVO pageReqVO);

    List<DishesOrderExportVO> exportDishesOrderItemExcel(Long id);

    void cancel(Long id);

    PageResult<EmployeeDishesOrderReportVO> getEmployeeDishesOrderReportPage(EmployeeDishesOrderReportPageReqVO pageReqVO);
    Map<String,Object> importDailyExpensesExcel(List<DishesOrderStatisticsExcelVO> list);

    void createReportTimeslot(List<DishesOrderReportTimeslotDO> dishesOrderReportTimeslotList);
    void updateReportTimeslot(List<DishesOrderReportTimeslotDO> dishesOrderReportTimeslotList);
    List<DishesOrderReportTimeslotDO> getReportTimeslot(Long tenantId);
}