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

import com.brilliance.isc.bo.Fale01;
import com.brilliance.isc.bo.model.Cfabop;
import com.brilliance.isc.common.setmod.vo.SetmodVo;

import java.util.List;

/**
 * 国内外汇贷款报送 聚合原 CFATRT 和 CFABRT 下模块和方法
 */
public interface CfabopService {

    /**
     * 业务交易下资本项目数据存储
     */
    void saveCfaData(Cfabop cfabop);


    /**
     * 资本外债报送数据试算
     * @param cfabop
     * @return
     */
    Cfabop calCfaData(Cfabop cfabop);

    /**
     * 读取前手交易报送数据 原 CFAGetDataFromXXX
     * @param cfabop
     * @param ownref 业务编号
     * @return
     */
    Cfabop getCfaPreData(Cfabop cfabop,String Cfatype,String ownref);


    /**
     * 资本外债报送数据回退删除数据库数据
     */
    void repairCfaData(String trninr);

    /**
     * 构建报送需要的业务要素
     */
    void registerCfabopBizInfo(Cfabop cfabop,String Cfatype);

    /**
     * 试算对外金融资产负债 E01表数据
     * @param setmodVo 账务费用模型
     * @return E01表记录列表
     */
    List<Fale01> calFale01Date(SetmodVo setmodVo);

    /**
     * E01数据保存
     * @param fale01List
     */
    void saveFale01Date(List<Fale01> fale01List);
}