package com.ydtech.modules.fee.service; import com.ydtech.modules.ins.model.vo.QuoteRespVo; import com.ydtech.modules.order.entity.vo.*; import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew; import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew; import java.math.BigDecimal; import java.util.List; /** * 该类中只要包含费用的一些相关接口 * 跟单费用的获取、跟单费用的拆分等 */ public interface FeeRuleSchemeService { /** * 总处理费用匹配方法 * @param quoteInfoVo * @param quoteRespVo * @param agreementId * @param businessNo */ // public void dealFeeOrderInfo(BaseQuoteInfoVo quoteInfoVo, QuoteRespVo quoteRespVo, String agreementId,String businessNo); /** * 查询费用明细 * * @param companyId * @return */ public QueryOrderFeeVo queryFeeOrderInfo(String companyId); // public List convertOrderFeeVoData(QueryOrderFeeVo orderFeeVo); /** * 比较和更新总费用比例 * * @param insOrderNo * @param jqCostsProportionStr * @param syCostsProportionStr */ void compareAndUpdateFeeOrderInfo(String insOrderNo, String jqCostsProportionStr, String syCostsProportionStr, String dealUser); /** * 计算入口费用 * * @param premium 保费 * @param superviseCostsProportion 手续费比例 * @param otherCostsProportion 跟单比例 */ FeeOrderNewVo.EntranceFee calcEntranceFee(BigDecimal premium, BigDecimal superviseCostsProportion, BigDecimal otherCostsProportion, BigDecimal taxRate); /** * 计算机构管理费用 * * @param premium 保费 * @param level1Proportion 一级比例 * @param level2Proportion 二级比例 * @param level3Proportion 三级比例 * @param level4Proportion 四级比例 * @param level5Proportion 五级比例 * @return */ FeeOrderNewVo.DeptManagerFee calcDeptManagerFee(BigDecimal premium, BigDecimal level1Proportion, BigDecimal level2Proportion, BigDecimal level3Proportion, BigDecimal level4Proportion, BigDecimal level5Proportion); /** * 计算出口费用 * * @param premium 保费 * @param superviseCostsProportion 出口手续费 * @param entranceTotalProportion 入口总比例 * @param deptTotalProportion 机构管理费总比例 * @param retailTotalProportion 分销总比例 * @param taxRate 税率 * @return */ FeeOrderNewVo.ExportFee calcExportFee(BigDecimal premium, BigDecimal superviseCostsProportion, BigDecimal entranceTotalProportion, BigDecimal deptTotalProportion, BigDecimal retailTotalProportion, BigDecimal taxRate, BigDecimal enterProportion); /** * 计算分销费用 * * @param jqPremiums * @param jqProportion * @param syPremiums * @param syProportion * @param noPremiums * @param noProportion * @param jqRetailProportion */ FeeOrderNewVo.RetailFee calcRetail(BigDecimal jqPremiums, BigDecimal jqProportion, BigDecimal syPremiums, BigDecimal syProportion, BigDecimal noPremiums, BigDecimal noProportion, BigDecimal jqRetailProportion, BigDecimal syRetailProportion, BigDecimal noRetailProportion); FeeOrderNewVo newConvertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew, PtlAgreementProductCostsNew ptlAgreementProductCostsNew); FeeOrderNewVo.EntranceFee assignEntranceFee(String title, BigDecimal premium, BigDecimal superviseCostsProportion, BigDecimal otherCostsProportion, BigDecimal costsProportion, BigDecimal superviseCostsPremiums, BigDecimal otherCostsPremiums, BigDecimal costsPremiums); FeeOrderNewVo.DeptManagerFee assignDeptFee(String title, BigDecimal level1Proportion, BigDecimal level1Premium, BigDecimal level2Proportion, BigDecimal level2Premium, BigDecimal level3Proportion, BigDecimal level3Premium, BigDecimal level4Proportion, BigDecimal level4Premium, BigDecimal level5Proportion, BigDecimal level5Premium, BigDecimal profitMarginPremiums, BigDecimal externalProportion, BigDecimal externalPremiums ); FeeOrderNewVo.ExportFee assignExportFee(String title, BigDecimal premium, BigDecimal superviseCostsProportion, BigDecimal otherCostsProportion, BigDecimal superviseCostsPremiums, BigDecimal otherCostsPremiums ); /** * 推算比例是否正确 * * @param entranceFee 入口 * @param deptManagerFee 机构管理 * @param exportFee 出口 * @param retailRadio 分销比例 * @param premiums 保费 * @return */ boolean calculateProportion(FeeOrderNewVo.EntranceFee entranceFee, FeeOrderNewVo.DeptManagerFee deptManagerFee, FeeOrderNewVo.ExportFee exportFee, BigDecimal retailRadio, BigDecimal taxRadio, BigDecimal premiums); List converDistrbutionData(InsFeeOrderNew insFeeOrderNew); }