package com.brilliance.isc.common.trtcre.service;

import com.brilliance.isc.bo.Trn;
import com.brilliance.isc.bo.model.Trtcre;
import com.brilliance.isc.vo.model.FinancVo;
import com.brilliance.isc.vo.model.TrtcreBizInfoVo;

public interface TrtcreService {

    //融资入口
    void assertTrtcre(Trtcre trtcreVo);

    void rollbackTrtcreDatas(Trn trn);

    void saveTrtcre(Trtcre trtcreVo);

    void defaultTrtcreIdtype(Trtcre trtcreVo);

    void defaultTrdgrpCbsMaxCurN900(Trtcre trtcreVo);

    void defaultTrdgrpRecIssdatN1000(Trtcre trtcreVo);

    void defaultTrtpPanstaN1000(Trtcre trtcreVo);

    void defaultTrdgrpFipPtsRefN1000(Trtcre trtcreVo);

    void defaultAmtPctExtrat(Trtcre trtcreVo);

    void defaultTrdgrpRecFintypN1000(Trtcre trtcreVo);

    void defaultTrdgrpRecNamN1000(Trtcre trtcreVo);

    void defaultBranchesN1000(Trtcre trtcreVo);

    void defaultFinCodN1000(Trtcre trtcreVo);

    void defaultAccountsN1000(Trtcre trtcreVo);

    void defaultTrdgrpRecGuaflgN1000(Trtcre trtcreVo);

    void defaultTrdgrpRecTendayN11100(Trtcre trtcreVo);

    void defaultTrdgrpRecStagodN1000(Trtcre trtcreVo);

    void defaultTrdgrpRecOppaccN1000(Trtcre trtcreVo);

    void defaultTrntypN1000(Trtcre trtcreVo);

    void defaultOppaccN1000(Trtcre trtcreVo);

    void defaultTrdgrpRecInvtypN1000(Trtcre trtcreVo);

    /**
     * 试算融资款项
     * @param rec
     * @return
     */
    void assertFinance(FinancVo financVo, TrtcreBizInfoVo rec);

}
