package com.zfire.mall.manager.commonmapper;

import com.baomidou.mybatisplus.annotation.SqlParser;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zfire.mall.manager.bean.stock.OrderFullCostDayVO;
import com.zfire.mall.manager.bean.stock.OrderFullCostMonthVO;
import com.zfire.mall.manager.bean.stock.OrderFullCostVO;
import com.zfire.mall.manager.bean.stock.OrderFullDateVO;
import com.zfire.mall.manager.zfire.bean.ZfireParamBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface StockCostMapper {

    @SqlParser(filter = true)
    IPage<OrderFullCostVO> list(IPage page,
                                @Param("orderId") String orderId,
                                @Param("materialName") String materialName,
                                @Param("materialNumber") String materialNumber,
                                @Param("specification") String specification,
                                @Param("startTime") String startTime,
                                @Param("endTime") String endTime,
                                @Param("materialOldNumber") String materialOldNumber,
                                @Param("customerId") String customerId);

    @SqlParser(filter = true)
    IPage<OrderFullCostDayVO> listFullCost(Page page,
                                           @Param("ex") ZfireParamBean zfireParamBean,
                                           @Param("customerId") String customerId,
                                             @Param("serviceIds")List<String> serviceIds,
                                           @Param("k3CategoryIds")List<String> k3CategoryIds);

    IPage<OrderFullCostMonthVO> listMonthFullCost(Page page,
                                                  @Param("ex") ZfireParamBean zfireParamBean,
                                                  @Param("customerId") String customerId,
                                                  @Param("serviceIds")List<String> serviceIds,
                                                  @Param("k3CategoryIds")List<String> k3CategoryIds);


    @SqlParser(filter = true)
    IPage<OrderFullDateVO> listFullData(Page page,
                                        @Param("ex")ZfireParamBean zfireParamBean,
                                        @Param("customerId")String customerId,
                                        @Param("serviceIds")List<String> serviceIds,
                                        @Param("k3CategoryIds")List<String> k3CategoryIds);


}
