package nc.itf.mmbd.bchange.bchangemaster;

import java.util.Map;

import nc.vo.pub.BusinessException;

import nc.vo.bchange.bchange.BchangeMasterVO;

public interface  IBchangeMasterVOService{


	/**
	 * 主实体的主表VO查询操作
	 * 根据主键条件查询Agg数组
	 * @param pk主键
	 * @return 结果数组
	 */
	public BchangeMasterVO[] listBchangeMasterVOByPk(String[] pks, boolean blazyLoad ) throws BusinessException;

	/**
	 * 主实体的主表VO查询操作
	 * 根据主键条件查询Agg对象
	 * @param pk 主键
	 * @return 结果对象
	 */
	public  BchangeMasterVO findBchangeMasterVOByPk(String pk,  boolean blazyLoad) throws BusinessException;

	/**
	 * 主实体的主表VO查询操作
	 * 根据条件字符串查询Agg数组
	 * @param condition 主键
	 * @return 结果数组
	 */
	public  BchangeMasterVO[] listBchangeMasterVOByPk(String condition,  boolean blazyLoad) throws BusinessException;
	/**
	 * 主实体的主表pk查询操作
	 * 根据条件字符串查询pk数组数组
	 * @param condition 查询方案+
	 * @return 结果数组
	 */
	public String[] listBchangeMasterVOPkByCond(String condition) throws BusinessException;

	/**
	 * 主实体的主表pk查询操作
	 * 根据条件字符串查询pk数组数组
	 * @param condition 查询方案+
	 * @return 结果数组
	 */
	public String[] listBchangeMasterVOPkByCond(String condition,String[] orderPath) throws BusinessException;
	/**
	 * 给主实体vo设置默认值
	 * @param vo
	 */
	public void initDefaultData(BchangeMasterVO vo);


	/**
	 * 预新增操作主实体数据
	 * @param userJson  新增时需要的扩展参数对象
	 */
	public BchangeMasterVO preAddBchangeMasterVO(Map<String,Object> userJson) throws BusinessException;

	public BchangeMasterVO preAddBchangeMasterVO(BchangeMasterVO vo,Map<String,Object> userJson) throws BusinessException;
	 /**
	 * 预编辑操作主实体数据
	 * @param userJson  新增时需要的扩展参数对象
	 */
	public BchangeMasterVO preEditBchangeMasterVO(String pk) throws BusinessException;

	 /**
	 * 复制操作主实体数据
	 *
	 */
	public BchangeMasterVO copyBchangeMasterVO(String pk) throws BusinessException;
	/**
	 * 保存操作主实体数据
	 * @param vos 保存对象
	 * @return @
	 */

	public BchangeMasterVO[] saveBchangeMasterVO(BchangeMasterVO vo) throws BusinessException;
	public BchangeMasterVO[] saveBchangeMasterVO(BchangeMasterVO[] vos) throws BusinessException;

	public BchangeMasterVO[] saveBchangeMasterVO(BchangeMasterVO vo, String node) throws BusinessException;
	public BchangeMasterVO[] saveBchangeMasterVO(BchangeMasterVO[] vos, String node) throws BusinessException;

	/**
	 * 删除操作主实体数据
	 * @param vos 删除对象
	 * @return @
	 */
	public BchangeMasterVO[] deleteBchangeMasterVOs(Map<String,String> tsMap) throws BusinessException;
	public BchangeMasterVO[] deleteBchangeMasterVOs(Map<String,String> tsMap, String nodetype) throws BusinessException;

	/**
	 * 加载树类型数据主实体
	 * @param vos 对象
	 * @return @
	 */
	public <T> T[] loadTreeData(Class<T> clazz,Map<String,Object> userJson) throws BusinessException;


}
