package com.bonus.canteen.core.supply.purchase.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bonus.canteen.core.supply.purchase.domain.bo.DrpPurchasePlan;
import com.bonus.canteen.core.supply.purchase.domain.param.DrpPurMaterialInfoPageDTO;
import com.bonus.canteen.core.supply.purchase.domain.param.DrpPurMaterialPageDTO;
import com.bonus.canteen.core.supply.purchase.domain.param.DrpPurchasePlanPageDTO;
import com.bonus.canteen.core.supply.purchase.domain.vo.DrpProductionPlanMaterialCountVO;
import com.bonus.canteen.core.supply.purchase.domain.vo.DrpPurMaterialInfoPageVO;
import com.bonus.canteen.core.supply.purchase.domain.vo.DrpPurMaterialPageVO;
import com.bonus.canteen.core.supply.purchase.domain.vo.DrpPurchasePlanPageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface DrpPurchasePlanMapper extends BaseMapper<DrpPurchasePlan> {
   List<DrpPurchasePlanPageVO> selectAllList(@Param("content") DrpPurchasePlanPageDTO content, @Param("delFlag") Integer delFlag);
//
//   @Select({"select plan_id, pur_date, status, remark from drp_purchase_plan where pur_user_id = #{purUserId}"})
//   List<AndroidOrderListVO> selectPlanListByPur(Long purUserId);
//
//   List<DrpPurchasePlanImportPageVO> listPurchasePlanImport(@Param("content") DrpPurchasePlanListDTO content);
//
//   Page<DrpPurMaterialPageVO> pageMaterial(Page<DrpPurMaterialPageVO> page, @Param("content") DrpPurMaterialPageDTO content, @Param("pinyinInitials") String pinyinInitials, @Param("pinyinFull") String pinyinFull, @Param("delFlag") Integer delFlag, @Param("categoryIdList") List<Long> categoryIdList, @Param("warehouseId") Long warehouseId);

   List<DrpPurMaterialPageVO> pageMaterialInfo(@Param("content") DrpPurMaterialPageDTO content, @Param("pinyinInitials") String pinyinInitials, @Param("pinyinFull") String pinyinFull, @Param("delFlag") Integer delFlag, @Param("categoryIdList") List<Long> categoryIdList, @Param("warehouseId") Long warehouseId);
//
//   @Select({"select a.plan_id,a.pur_date,a.remark,a.crby,a.approve_status neApproveStatus from drp_purchase_plan a where a.plan_id = #{planId}"})
//   DrpExcelPurchasePlanVO selectExcelPurPlan(@Param("planId") String planId);

   List<DrpPurMaterialInfoPageVO> pagePurMaterialInfo(@Param("content") DrpPurMaterialInfoPageDTO content, @Param("pinyinInitials") String pinyinInitials, @Param("pinyinFull") String pinyinFull, @Param("delFlag") Integer delFlag, @Param("useStatus") Integer useStatus);
//
//   List<DrpPurMaterialInfoPageVO> pageRecentPriceMaterialInfo(@Param("content") DrpPurMaterialInfoPageDTO content, @Param("pinyinInitials") String pinyinInitials, @Param("pinyinFull") String pinyinFull, @Param("delFlag") Integer delFlag, @Param("intoStatus") Integer intoStatus);

   List<DrpProductionPlanMaterialCountVO> materialCount(@Param("content") DrpPurchasePlanPageDTO content);

   DrpPurchasePlanPageVO selectByPlanId(@Param("planId") String planId, @Param("delFlag") Integer delFlag);
//
//   List<PriceByMaterialIdVO> syncPurchasePrice(@Param("materialIds") List<Long> materialIds);
//
//   DrpPurchasePlanTotalVO queryTotal(@Param("crby") String crby);
//
//   List<DrpFetchMaterialImportPurPlanPageVO> pageFetchMaterialImportPurPlan(@Param("content") DrpFetchMaterialImportPurPlanPageDTO content, @Param("commitStatus") Integer commitStatus, @Param("approveStatus") Integer approveStatus);
}
