package com.prolog.rdc.tms.service.basicData;

import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import com.prolog.framework.common.message.RestMessage;
import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.IntfErrorLogDTO;
import com.prolog.rdc.tms.model.dto.basicData.ItemCategoryCheckDTO;
import com.prolog.rdc.tms.model.dto.basicData.ItemCategoryPagingQueryDTO;
import com.prolog.rdc.tms.model.dto.basicData.ItemCategoryPopupDTO;
import com.prolog.rdc.tms.model.vo.ItemCategorySaveVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.ImportPageVO;
import com.prolog.rdc.tms.model.vo.basicData.ItemCategoryAddVO;
import com.prolog.rdc.tms.model.vo.basicData.ItemCategoryBatchDeleteVO;
import com.prolog.rdc.tms.model.vo.basicData.ItemCategoryCheckVO;
import com.prolog.rdc.tms.model.vo.basicData.ItemCategoryModifyVO;
import com.prolog.rdc.tms.model.vo.basicData.ItemCategoryPagingQueryVO;
import com.prolog.rdc.tms.model.vo.basicData.ItemCategoryPopupVO;
import com.prolog.rdc.tms.model.vo.basicData.ItemCategoryWhetherEnableVO;

/**
 *
 * 基础数据-商品品类管理服务层
 *
 * @className :ItemCategoryService
 * @author :fanzw
 * @date :2022/2/23
 * @description :
 * @version :1.2.1
 */
public interface ItemCategoryService {

	/**
	 * 商品品类分页查询
	 * 
	 * @param itemCategoryPagingQueryVO
	 * @return
	 */
	Page<ItemCategoryPagingQueryDTO> pageItemCategoryData(ItemCategoryPagingQueryVO itemCategoryPagingQueryVO);

	/**
	 * 商品品类查看
	 * 
	 * @param itemCategoryCheckVO
	 * @return
	 */
	ItemCategoryCheckDTO getItemCategoryData(ItemCategoryCheckVO itemCategoryCheckVO);

	/**
	 * 商品品类弹窗
	 * 
	 * @param itemCategoryPopupVO
	 * @return
	 */
	Page<ItemCategoryPopupDTO> popupItemCategoryData(ItemCategoryPopupVO itemCategoryPopupVO);

	/**
	 * 商品品类新增
	 * 
	 * @param itemCategoryAddVO
	 * @return
	 */
	void addItemCategoryData(ItemCategoryAddVO itemCategoryAddVO);

	/**
	 * 商品品类修改
	 * 
	 * @param itemCategoryModifyVO
	 * @return
	 */
	void modifyItemCategoryData(ItemCategoryModifyVO itemCategoryModifyVO);

	/**
	 * 商品品类批量删除
	 * 
	 * @param itemCategoryBatchDeleteVOs
	 * @return
	 */
	void batchDeleteItemCategoryData(List<ItemCategoryBatchDeleteVO> itemCategoryBatchDeleteVOs);

	/**
	 * 商品品类是否启用
	 * 
	 * @param itemCategoryWhetherEnableVO
	 * @return
	 */
	void whetherEnableItemCategoryData(ItemCategoryWhetherEnableVO itemCategoryWhetherEnableVO);

	/**
	 * 商品品类批量导入
	 * 
	 * @param file
	 */
	void importItemCategoryData(MultipartFile file) throws Exception;

	/**
	 * 导入撤销
	 * 
	 * @param batchno
	 */
	void rollbackData(String batchno);

	/**
	 * 商品品类导入分页查询
	 * 
	 * @param importPageVO
	 */
	RestMessage<Object> pageItemCategoryByImportBatchNumberData(ImportPageVO importPageVO);

	/**
	 * 根据商品品类名称查看商品品类资料
	 *
	 * @param itemCategoryCheckVO
	 * @return
	 */
	ItemCategoryCheckDTO getItemCategoryByNameData(ItemCategoryCheckVO itemCategoryCheckVO);

	/**
	 * 商品品类接口转TMS
	 * 
	 * @param itemCategorySaveVOs
	 */
	List<IntfErrorLogDTO> saveItemCategoryInterfaceData(List<ItemCategorySaveVO> itemCategorySaveVOs);

}
