package com.dhcc.finance.main.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.dhcc.common.model.CurrencyMeta;
import com.dhcc.common.model.response.RestfulResponse;
import com.dhcc.finance.main.model.CwProjectCheckWeb;
import com.github.pagehelper.PageInfo;

/**
 * 功能描述：财务检验信息接口
 * @author leiyu
 * @date 2020年4月21日 下午17:29:05
 * @修改日志：
 */
public interface CwProjectCheckService {
	/**
	 * 功能描述：查询单个科目余额为负
	 * @param xtxmbh
	 * @param xtzxmbh
	 * @param userId
	 * @param jzrq
	 * @return RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta>
	 * @author leiyu
	 * @date 2020年4月21日 下午17:29:05
	 * @修改日志：
	 */
	RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectSingleSubjectBalance(String xtxmbh,
			String xtzxmbh, String userId, String jzrq, int pageNum, int pageSize, int navigatePages);


	/**
	 * 功能描述：查询未结束项目无信托规模
	 * @param xtxmbh
	 * @param xtzxmbh
	 * @param userId
	 * @param jzrq
	 * @return RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta>
	 * @author suh
	 * @date 2020年4月26日 下午17:00:05
	 * @修改日志：
	 */
	RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectNoScaleNoClosed(String xtxmbh,
			String xtzxmbh, String userId, String jzrq, int pageNum, int pageSize, int navigatePages);




	
	/**
	 * 功能描述：校验：未分配利润出现负数
	 * @param xtxmbh
	 * @param xtzxmbh
	 * @param userId
	 * @param jzrq
	 * @return RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta>
	 * @author leiyu
	 * @date 2020年4月23日 上午10:20:38
	 * @修改日志：
	 */
	RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectUndistributedProfit(String xtxmbh,
			String xtzxmbh, String userId, String jzrq, int pageNum, int pageSize, int navigatePages);
	/**
	 * 功能描述   校验：科目余额与辅助账余额不一致
	 * @return List<CwProjectCheckWeb>
	 * @param kmlx
	 * @param xtxmbh
	 * @param xtzxmbh
	 * @param userId
	 * @author leiyu
	 * @date 2020年4月24日 下午17:12:29
	 * 修改日志
	 */
	RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectDifferentBalance(String kmlx,String xtxmbh,
			String xtzxmbh, String userId, String jzrq, int pageNum, int pageSize, int navigatePages);
	
	/**
	 * 功能描述   校验：已结束项目存在信托规模
	 * @return List<CwProjectCheckWeb>
	 * @param xtxmbh
	 * @param xtzxmbh
	 * @param userId
	 * @param xmzzr
	 * @author leiyu
	 * @date 2020年4月22日 下午16:22:35
	 * 修改日志
	 */
	RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectScaleOfClosedProjects(String xtxmbh,
			String xtzxmbh, String userId, String xmyjzzr, int pageNum, int pageSize, int navigatePages);
	
	/**
     * 功能描述   校验：未归还固有代垫款项目
     * @return List<CwProjectCheckWeb>
     * @param xtxmbh
     * @param xtzxmbh
     * @param userId
     * @param xmzzr
     * @author jiangyoushun
     * @date 2020年4月23日 
     * 修改日志
     */
    RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectEntrustRewardBalance(String xtxmbh, String xtzxmbh,
            String userId, String jzrq, int pageNum, int pageSize, int navigatePages);

    /**
     * 功能描述   校验：其他应付款余额超过100万
     * @return List<CwProjectCheckWeb>
     * @param xtxmbh
     * @param xtzxmbh
     * @param userId
     * @param xmzzr
     * @author jiangyoushun
     * @date 2020年4月23日 
     * 修改日志
     */
    RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectOtherPayablesBalance(String xtxmbh, String xtzxmbh,
            String userId, String jzrq, int pageNum, int pageSize, int navigatePages);
    
    /**
     * 功能描述   校验：应付受益人收益有余额
     * @return List<CwProjectCheckWeb>
     * @param xtxmbh
     * @param xtzxmbh
     * @param userId
     * @param xmzzr
     * @author jiangyoushun
     * @date 2020年4月23日 
     * 修改日志
     */
    RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectAccruedIncomeBalance(String xtxmbh, String xtzxmbh,
            String userId, String jzrq, int pageNum, int pageSize, int navigatePages);

    /**
     * 功能描述   校验：科目辅助账存在负数
     * @return List<CwProjectCheckWeb>
     * @param xtxmbh
     * @param xtzxmbh
     * @param userId
     * @param xmzzr
     * @author jiangyoushun
     * @date 2020年4月23日 
     * 修改日志
     */
    RestfulResponse<PageInfo<CwProjectCheckWeb>, CurrencyMeta> selectAssetAccountBalance(String kmlx,String xtxmbh, String xtzxmbh,
            String userId, String jzrq, int pageNum, int pageSize, int navigatePages);


}
