package com.dhcc.finance.main.service;

import java.util.List;

import com.dhcc.common.model.CurrencyMeta;
import com.dhcc.common.model.response.RestfulResponse;
import com.dhcc.finance.main.domain.CwBdAccsubj;
import com.dhcc.finance.main.model.CwBdAccsubjManage;
import com.github.pagehelper.PageInfo;

/**
 * 功能描述：会计科目接口
 * @author dml
 * @date 2019年3月21日 下午9:25:06
 * @修改日志：
 */
public interface CwBdAccsubjService {
	/**
	 * 功能描述：新增会计科目
	 * @param cwBdAccsubj
	 * @return RestfulResponse<Object,CurrencyMeta>
	 * @author dml
	 * @date 2019年3月21日 下午9:34:39
	 * @修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> addCwBdAccsubj(CwBdAccsubjManage cwBdAccsubjManage);
	/**
	 * 功能描述：通过主键修改会计科目
	 * @param cwBdSubjscheme
	 * @return RestfulResponse<Object,CurrencyMeta>
	 * @author dml
	 * @date 2019年3月22日 上午9:03:56
	 * @修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> updateCwBdAccsubjByPk(CwBdAccsubj cwBdAccsubj);
	/**
	 * 功能描述：逻辑删除会计科目及相关信息
	 * @param cwBdAccsubj
	 * @return RestfulResponse<Object,CurrencyMeta>
	 * @author dml
	 * @date 2019年3月22日 上午9:08:41
	 * @修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> deleteCwBdAccsubjByPk(String pkAccsubj,String pkSubjscheme);
	/**
	 * 功能描述：查询某节点及该节点下边的数据
	 * @param pageNum
	 * @param pageSize
	 * @param navigatePages
	 * @return RestfulResponse<PageInfo<CwBdAccsubj>,CurrencyMeta>
	 * @author dml
	 * @date 2019年3月22日 上午9:15:12
	 * @修改日志：
	 */
	RestfulResponse<PageInfo<CwBdAccsubj>, CurrencyMeta> searchCwBdAccsubjByNode(String pkSubjscheme, String subjcode, int pageNum, int pageSize, int navigatePages);
	/**
	 * 功能描述：查询全部会计科目
	 * @param pageNum
	 * @param pageSize
	 * @param navigatePages
	 * @return RestfulResponse<PageInfo<CwBdAccsubj>,CurrencyMeta>
	 * @author dml
	 * @date 2019年3月22日 上午9:36:03
	 * @修改日志：
	 */
	RestfulResponse<List<CwBdAccsubj>, CurrencyMeta> searchCwBdAccsubjAllData(String pkSubjscheme);
	/**
	 * @param pkSubjscheme
	 * @param subjname
	 * @param pageNum
	 * @param pageSize
	 * @param navigatePages
	 * @return RestfulResponse<PageInfo<CwBdAccsubj>,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年3月29日 下午3:07:48
	 *@修改日志：
	 */
	RestfulResponse<PageInfo<CwBdAccsubj>, CurrencyMeta> searchCwBdAccsubjByName(String pkSubjscheme, String subjname,
			int pageNum, int pageSize, int navigatePages);
	/**
	 * 功能描述：查询现在正启用的版本下的所有科目
	 * @return List<CwBdAccsubj>
	 * @author dml
	 * @date 2019年4月2日 下午4:03:51
	 * @修改日志：
	 */
	RestfulResponse<List<CwBdAccsubj>, CurrencyMeta> selectNowUseCwBdAccsubj();
	/**
	 * @param pkAccsubj
	 * @return RestfulResponse<List<CwBdAccsubj>,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年4月28日 下午5:26:24
	 *@修改日志：
	 */
	RestfulResponse<CwBdAccsubj, CurrencyMeta> selectCwBdAccsubjByPk(String pkAccsubj);
}
