package com.unis.base.server.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.unis.base.common.vo.BaseKcVO;
import com.unis.base.common.vo.DCfxxsjyUpdateLogVO;
import com.unis.base.common.vo.DCfxxsjyVO;
import com.unis.base.common.vo.PageResult;
import com.unis.base.server.entity.DCfxxsjyDO;
import com.unis.common.utils.ResponseWrapper;
import java.util.List;


/**
 * @author huangxing
 * @version 1.0
 * @Title: DCfxxsjyService
 * @ProjectName baseservice
 * @Description:
 * @date 2019/7/22 17:47
 */

public interface DCfxxsjyService {

	/**
	 * 根据参数获取仓房列表
	 * @param dCfxxsjyVO
	 * @return
	 */
	List<DCfxxsjyVO> getDCfxxxsjyList(DCfxxsjyVO dCfxxsjyVO);

	/**
	 * 根据参数获取成品粮仓房列表
	 * @param dCfxxsjyVO
	 * @return
	 */
	List<DCfxxsjyVO> getChengPinList(DCfxxsjyVO dCfxxsjyVO);

	/**
	 * 根据参数获取原粮仓房列表
	 * @param dCfxxsjyVO
	 * @return
	 */
	List<BaseKcVO> getYuanLiangList(DCfxxsjyVO dCfxxsjyVO);

	/**
	 * 根据仓房编号获取仓房信息
	 * @param dCfxxsjyVO
	 * @return
	 */
	ResponseWrapper selectById(DCfxxsjyVO dCfxxsjyVO);

	/**
	 * 根据仓房编号获取仓房信息
	 * @param cfbh 仓房编号
	 * @return
	 */
	DCfxxsjyVO getDCfxxxsjyInfo(String cfbh);

	/**
	 * @param dCfxxsjyVO
	 * @param pageNum
	 * @param pageSize
	 * @return 分页获取列表
	 */
	List<DCfxxsjyVO> getDCfxxxsjyPage(DCfxxsjyVO dCfxxsjyVO, Integer pageNum, Integer pageSize);

	/**
	 * 根据仓房编号获取仓房信息
	 * @param cfbh 仓房编号
	 * @return
	 */
	DCfxxsjyVO getDCfxxxsjyInfoBycfbh(String cfbh);

	/**
	 * 更新仓房信息
	 * @param dCfxxsjyVO
	 * @return
	 */
	int update(DCfxxsjyVO dCfxxsjyVO);

	/**
	 * 带状态更新
	 * @param dCfxxsjyVO
	 * @return
	 */
	int warehouseUpdate(DCfxxsjyVO dCfxxsjyVO);

	/**
	 * 删除仓房信息
	 * @param cfbh
	 * @return
	 */
	int delete(String kddm,String cfxh);

	/**
	 * 添加仓房信息
	 * @param dAjxxsjyVO
	 * @return
	 */
	int insert(DCfxxsjyVO dAjxxsjyVO);

	/**
	 * 根据库点代码删除仓房信息列表
	 * @param kddm
	 * @return
	 */
	int deleteList(String kddm);

	/**
	 * 根据库点代码获取仓房列表
	 * @param kddm
	 * @return
	 */
	List<DCfxxsjyVO> getWarehouseListByKddm(String kddm,String grainType);

	List<DCfxxsjyVO> selectByEntity(DCfxxsjyVO dCfxxsjyVO);

	/**
	 * 备案主表状态
	 * @param dCfxxsjyVO
	 * @return
	 */
	int updateFiling(DCfxxsjyVO dCfxxsjyVO);
	/**
	 * 更新仓房信息 参数为null可入库
	 * @param dCfxxsjyVO
	 * @return
	 */
	int updateAll(DCfxxsjyVO dCfxxsjyVO);

	PageResult<DCfxxsjyVO> selectDCfxxxsjyPage(DCfxxsjyVO dCfxxsjyVO, Integer pageNum, Integer pageSize);

	List<DCfxxsjyVO> warehouseListNew(DCfxxsjyVO dCfxxsjyVO);

	List<DCfxxsjyVO> getDCfxxxsjyListCbl(DCfxxsjyVO dCfxxsjyVO);

	DCfxxsjyVO getWarehouseDetail(DCfxxsjyVO dCfxxsjyVO);

	Integer updateDCfxxsjy(DCfxxsjyVO dCfxxsjyVO);

	List<DCfxxsjyVO> getDCfxxxsjyPageNew(DCfxxsjyVO dCfxxsjyVO, Integer pageNum, Integer pageSize);

	List<DCfxxsjyVO> getDCfxxxsjyListNew(DCfxxsjyVO dCfxxsjyVO);

	List<DCfxxsjyVO> selectCfxxsjy(DCfxxsjyVO dCfxxsjyVO);

    List<DCfxxsjyUpdateLogVO> pageUpdateLog(DCfxxsjyUpdateLogVO params, Integer pageNum, Integer pageSize);
}
