|
@@ -16,9 +16,13 @@ import com.ydtech.modules.fee.service.FeeRuleSchemeService;
|
|
|
import com.ydtech.modules.ins.model.vo.CarInfoVo;
|
|
import com.ydtech.modules.ins.model.vo.CarInfoVo;
|
|
|
import com.ydtech.modules.ins.model.vo.KindInfoVo;
|
|
import com.ydtech.modules.ins.model.vo.KindInfoVo;
|
|
|
import com.ydtech.modules.ins.model.vo.QuoteRespVo;
|
|
import com.ydtech.modules.ins.model.vo.QuoteRespVo;
|
|
|
|
|
+import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
import com.ydtech.modules.order.entity.InsFeeOrder;
|
|
import com.ydtech.modules.order.entity.InsFeeOrder;
|
|
|
import com.ydtech.modules.order.entity.InsOrders;
|
|
import com.ydtech.modules.order.entity.InsOrders;
|
|
|
import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
|
|
import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
|
|
|
|
|
+import com.ydtech.modules.order.entity.vo.OrderFeeVo;
|
|
|
|
|
+import com.ydtech.modules.order.entity.vo.QueryOrderFeeVo;
|
|
|
|
|
+import com.ydtech.modules.order.service.InsAreaCompanyService;
|
|
|
import com.ydtech.modules.order.service.InsFeeOrderService;
|
|
import com.ydtech.modules.order.service.InsFeeOrderService;
|
|
|
import com.ydtech.modules.order.service.InsOrdersService;
|
|
import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
|
|
import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
|
|
@@ -51,6 +55,10 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
|
|
|
private EsmRetailService esmRetailService;
|
|
private EsmRetailService esmRetailService;
|
|
|
@Resource
|
|
@Resource
|
|
|
private EsmUserReferrerService esmUserReferrerService;
|
|
private EsmUserReferrerService esmUserReferrerService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private InsAreaCompanyService insAreaCompanyService;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 根据跟单信息,以及配置的费用因子,获取合适的跟单费用
|
|
* 根据跟单信息,以及配置的费用因子,获取合适的跟单费用
|
|
@@ -671,24 +679,24 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
|
|
|
insFeeOrder.setJqSpilloverPremiums(getPremium(jqNoTaxPremium,insFeeOrder.getJqSpilloverProportion()));
|
|
insFeeOrder.setJqSpilloverPremiums(getPremium(jqNoTaxPremium,insFeeOrder.getJqSpilloverProportion()));
|
|
|
}
|
|
}
|
|
|
if(insFeeOrder.getSyPremium().doubleValue()>0){
|
|
if(insFeeOrder.getSyPremium().doubleValue()>0){
|
|
|
- syNoTaxPremium = insFeeOrder.getJqPremium().divide(new BigDecimal(1+0.06),BigDecimal.ROUND_HALF_UP,2);
|
|
|
|
|
|
|
+ syNoTaxPremium = insFeeOrder.getSyPremium().divide(new BigDecimal(1+0.06),BigDecimal.ROUND_HALF_UP,2);
|
|
|
insFeeOrder.setSyNoTaxPremium(syNoTaxPremium);
|
|
insFeeOrder.setSyNoTaxPremium(syNoTaxPremium);
|
|
|
//商业险总费用
|
|
//商业险总费用
|
|
|
- insFeeOrder.setSyCostsPremiums(getPremium(syNoTaxPremium,insFeeOrder.getJqCostsProportion()));
|
|
|
|
|
|
|
+ insFeeOrder.setSyCostsPremiums(getPremium(syNoTaxPremium,insFeeOrder.getSyCostsProportion()));
|
|
|
//监管费比例
|
|
//监管费比例
|
|
|
if("1".equals(feeSchemeReqDto.getIsNewCar())){
|
|
if("1".equals(feeSchemeReqDto.getIsNewCar())){
|
|
|
- insFeeOrder.setSySuperviseCostsProportion(new BigDecimal(feeSchemeResDto.getJqNewCarCostsProportion()));
|
|
|
|
|
|
|
+ insFeeOrder.setSySuperviseCostsProportion(new BigDecimal(feeSchemeResDto.getSyNewCarCostsProportion()));
|
|
|
}else if("0".equals(feeSchemeReqDto.getIsNewCar())){
|
|
}else if("0".equals(feeSchemeReqDto.getIsNewCar())){
|
|
|
- insFeeOrder.setSySuperviseCostsProportion(new BigDecimal(feeSchemeResDto.getJqOldCarCostsProportion()));
|
|
|
|
|
|
|
+ insFeeOrder.setSySuperviseCostsProportion(new BigDecimal(feeSchemeResDto.getSyOldCarCostsProportion()));
|
|
|
}else{
|
|
}else{
|
|
|
insFeeOrder.setSySuperviseCostsProportion(new BigDecimal(0));
|
|
insFeeOrder.setSySuperviseCostsProportion(new BigDecimal(0));
|
|
|
}
|
|
}
|
|
|
//监管费
|
|
//监管费
|
|
|
- insFeeOrder.setSySuperviseCostsPremiums(getPremium(syNoTaxPremium,insFeeOrder.getJqSuperviseCostsProportion()));
|
|
|
|
|
|
|
+ insFeeOrder.setSySuperviseCostsPremiums(getPremium(syNoTaxPremium,insFeeOrder.getSySuperviseCostsProportion()));
|
|
|
//溢出费比例 先搁置放0
|
|
//溢出费比例 先搁置放0
|
|
|
- insFeeOrder.setSySpilloverProportion(new BigDecimal(feeSchemeResDto.getJqSpilloverProportion()));
|
|
|
|
|
|
|
+ insFeeOrder.setSySpilloverProportion(new BigDecimal(feeSchemeResDto.getSySpilloverProportion()));
|
|
|
//溢出费 先搁置放0
|
|
//溢出费 先搁置放0
|
|
|
- insFeeOrder.setSySpilloverPremiums(getPremium(syNoTaxPremium,insFeeOrder.getJqSpilloverProportion()));
|
|
|
|
|
|
|
+ insFeeOrder.setSySpilloverPremiums(getPremium(syNoTaxPremium,insFeeOrder.getSySpilloverProportion()));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if(jqNoTaxPremium.doubleValue() >0 || syNoTaxPremium.doubleValue() >0){
|
|
if(jqNoTaxPremium.doubleValue() >0 || syNoTaxPremium.doubleValue() >0){
|
|
@@ -826,4 +834,134 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
|
|
|
}
|
|
}
|
|
|
return premium;
|
|
return premium;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public QueryOrderFeeVo queryFeeOrderInfo(String companyId){
|
|
|
|
|
+ QueryOrderFeeVo queryOrderFeeVo = new QueryOrderFeeVo();
|
|
|
|
|
+ OrderFeeVo jqOrderFeeVo = new OrderFeeVo();
|
|
|
|
|
+ OrderFeeVo syOrderFeeVo = new OrderFeeVo();
|
|
|
|
|
+ OrderFeeVo fcOrderFeeVo = new OrderFeeVo();
|
|
|
|
|
+
|
|
|
|
|
+ InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(companyId);
|
|
|
|
|
+ InsFeeOrder insFeeOrder = insFeeOrderService.getByInsOrderNo(insAreaCompany.getInsOrderNo());
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if(insFeeOrder.getJqPremium()!=null && insFeeOrder.getSyPremium()==null){//当为单交业务时
|
|
|
|
|
+ jqOrderFeeVo = packageOrderFeeInfoOne(insFeeOrder);
|
|
|
|
|
+ jqOrderFeeVo.setCostsPremiums(convertToString(insFeeOrder.getJqCostsPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setCostsProportion(convertToString(insFeeOrder.getJqCostsProportion()));
|
|
|
|
|
+ }else if(insFeeOrder.getJqPremium()==null && insFeeOrder.getSyPremium()!=null){//当为单商业务时
|
|
|
|
|
+ syOrderFeeVo = packageOrderFeeInfoOne(insFeeOrder);
|
|
|
|
|
+ syOrderFeeVo.setCostsPremiums(convertToString(insFeeOrder.getSyCostsPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setCostsProportion(convertToString(insFeeOrder.getSyCostsProportion()));
|
|
|
|
|
+ }else if(insFeeOrder.getJqPremium()!=null && insFeeOrder.getJqPremium().doubleValue()>0 && insFeeOrder.getSyPremium()!=null && insFeeOrder.getSyPremium().doubleValue()>0){//当为交商业务时
|
|
|
|
|
+ QueryOrderFeeVo queryOrderFeeVoTemp = packageOrderFeeInfoAll(insFeeOrder);
|
|
|
|
|
+ //获取交强险费用明细
|
|
|
|
|
+ jqOrderFeeVo = queryOrderFeeVoTemp.getJqCoderFeeVo();
|
|
|
|
|
+ jqOrderFeeVo.setCostsPremiums(convertToString(insFeeOrder.getJqCostsPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setCostsProportion(convertToString(insFeeOrder.getJqCostsProportion()));
|
|
|
|
|
+ //获取商业险费用明细
|
|
|
|
|
+ syOrderFeeVo = queryOrderFeeVoTemp.getSyCoderFeeVo();
|
|
|
|
|
+ syOrderFeeVo.setCostsPremiums(convertToString(insFeeOrder.getSyCostsPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setCostsProportion(convertToString(insFeeOrder.getSyCostsProportion()));
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ queryOrderFeeVo.setJqCoderFeeVo(jqOrderFeeVo);
|
|
|
|
|
+ queryOrderFeeVo.setSyCoderFeeVo(syOrderFeeVo);
|
|
|
|
|
+ queryOrderFeeVo.setFcCoderFeeVo(fcOrderFeeVo);
|
|
|
|
|
+ return queryOrderFeeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 按照组合单模式获取费用明细
|
|
|
|
|
+ * @param insFeeOrder
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private QueryOrderFeeVo packageOrderFeeInfoAll(InsFeeOrder insFeeOrder){
|
|
|
|
|
+ QueryOrderFeeVo queryOrderFeeVo = new QueryOrderFeeVo();
|
|
|
|
|
+ InsFeeOrder jqInsFeeOrderTemp = new InsFeeOrder();
|
|
|
|
|
+ //先利用交强费重算费用
|
|
|
|
|
+ jqInsFeeOrderTemp.setFirstDeptPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getFirstDeptProportion()));
|
|
|
|
|
+ jqInsFeeOrderTemp.setSecondDeptPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getSecondDeptProportion()));
|
|
|
|
|
+ jqInsFeeOrderTemp.setThirdDeptPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getThirdDeptProportion()));
|
|
|
|
|
+ jqInsFeeOrderTemp.setForthDeptPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getForthDeptProportion()));
|
|
|
|
|
+ jqInsFeeOrderTemp.setFifthDeptPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getFifthDeptProportion()));
|
|
|
|
|
+ jqInsFeeOrderTemp.setFirstRetailPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getFirstRetailProportion()));
|
|
|
|
|
+ jqInsFeeOrderTemp.setSecondRetailPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getSecondRetailProportion()));
|
|
|
|
|
+ jqInsFeeOrderTemp.setThirdRetailPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getThirdRetailProportion()));
|
|
|
|
|
+
|
|
|
|
|
+ //再利用总费-交强费,得出商业费
|
|
|
|
|
+ InsFeeOrder syInsFeeOrderTemp = new InsFeeOrder();
|
|
|
|
|
+ syInsFeeOrderTemp.setFirstDeptPremiums(insFeeOrder.getFirstDeptPremiums().subtract(jqInsFeeOrderTemp.getFirstDeptPremiums()));
|
|
|
|
|
+ syInsFeeOrderTemp.setSecondDeptPremiums(insFeeOrder.getSecondDeptPremiums().subtract(jqInsFeeOrderTemp.getSecondDeptPremiums()));
|
|
|
|
|
+ syInsFeeOrderTemp.setThirdDeptPremiums(insFeeOrder.getThirdDeptPremiums().subtract(jqInsFeeOrderTemp.getThirdDeptPremiums()));
|
|
|
|
|
+ syInsFeeOrderTemp.setForthDeptPremiums(insFeeOrder.getForthDeptPremiums().subtract(jqInsFeeOrderTemp.getForthDeptPremiums()));
|
|
|
|
|
+ syInsFeeOrderTemp.setFifthDeptPremiums(insFeeOrder.getFifthDeptPremiums().subtract(jqInsFeeOrderTemp.getFifthDeptPremiums()));
|
|
|
|
|
+ syInsFeeOrderTemp.setFirstRetailPremiums(insFeeOrder.getFirstRetailPremiums().subtract(jqInsFeeOrderTemp.getFirstRetailPremiums()));
|
|
|
|
|
+ syInsFeeOrderTemp.setSecondRetailPremiums(insFeeOrder.getSecondRetailPremiums().subtract(jqInsFeeOrderTemp.getSecondRetailPremiums()));
|
|
|
|
|
+ syInsFeeOrderTemp.setThirdRetailPremiums(insFeeOrder.getThirdRetailPremiums().subtract(jqInsFeeOrderTemp.getThirdRetailPremiums()));
|
|
|
|
|
+
|
|
|
|
|
+ //交强费转换赋值
|
|
|
|
|
+ OrderFeeVo jqOrderFeeVo = packageOrderFeeInfoOne(insFeeOrder);
|
|
|
|
|
+ jqOrderFeeVo.setFirstDeptPremiums(convertToString(jqInsFeeOrderTemp.getFirstDeptPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setSecondDeptPremiums(convertToString(jqInsFeeOrderTemp.getSecondDeptPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setThirdDeptPremiums(convertToString(jqInsFeeOrderTemp.getThirdDeptPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setForthDeptPremiums(convertToString(jqInsFeeOrderTemp.getForthDeptPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setFifthDeptPremiums(convertToString(jqInsFeeOrderTemp.getFifthDeptPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setFirstRetailPremiums(convertToString(jqInsFeeOrderTemp.getFirstRetailPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setSecondRetailPremiums(convertToString(jqInsFeeOrderTemp.getSecondRetailPremiums()));
|
|
|
|
|
+ jqOrderFeeVo.setThirdRetailPremiums(convertToString(jqInsFeeOrderTemp.getThirdRetailPremiums()));
|
|
|
|
|
+
|
|
|
|
|
+ //商业费转换赋值
|
|
|
|
|
+ OrderFeeVo syOrderFeeVo = packageOrderFeeInfoOne(insFeeOrder);
|
|
|
|
|
+ syOrderFeeVo.setFirstDeptPremiums(convertToString(syInsFeeOrderTemp.getFirstDeptPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setSecondDeptPremiums(convertToString(syInsFeeOrderTemp.getSecondDeptPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setThirdDeptPremiums(convertToString(syInsFeeOrderTemp.getThirdDeptPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setForthDeptPremiums(convertToString(syInsFeeOrderTemp.getForthDeptPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setFifthDeptPremiums(convertToString(syInsFeeOrderTemp.getFifthDeptPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setFirstRetailPremiums(convertToString(syInsFeeOrderTemp.getFirstRetailPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setSecondRetailPremiums(convertToString(syInsFeeOrderTemp.getSecondRetailPremiums()));
|
|
|
|
|
+ syOrderFeeVo.setThirdRetailPremiums(convertToString(syInsFeeOrderTemp.getThirdRetailPremiums()));
|
|
|
|
|
+
|
|
|
|
|
+ queryOrderFeeVo.setJqCoderFeeVo(jqOrderFeeVo);
|
|
|
|
|
+ queryOrderFeeVo.setSyCoderFeeVo(syOrderFeeVo);
|
|
|
|
|
+ return queryOrderFeeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 按照单险种方式获取费用明细
|
|
|
|
|
+ * @param insFeeOrder
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private OrderFeeVo packageOrderFeeInfoOne(InsFeeOrder insFeeOrder){
|
|
|
|
|
+ OrderFeeVo orderFeeVo = new OrderFeeVo();
|
|
|
|
|
+ orderFeeVo.setFirstDeptPremiums(convertToString(insFeeOrder.getFirstDeptPremiums()));
|
|
|
|
|
+ orderFeeVo.setFirstDeptProportion(convertToString(insFeeOrder.getFirstDeptProportion()));
|
|
|
|
|
+ orderFeeVo.setSecondDeptPremiums(convertToString(insFeeOrder.getSecondDeptPremiums()));
|
|
|
|
|
+ orderFeeVo.setSecondDeptProportion(convertToString(insFeeOrder.getSecondDeptProportion()));
|
|
|
|
|
+ orderFeeVo.setThirdDeptPremiums(convertToString(insFeeOrder.getThirdDeptPremiums()));
|
|
|
|
|
+ orderFeeVo.setThirdDeptProportion(convertToString(insFeeOrder.getThirdDeptProportion()));
|
|
|
|
|
+ orderFeeVo.setForthDeptPremiums(convertToString(insFeeOrder.getForthDeptPremiums()));
|
|
|
|
|
+ orderFeeVo.setForthDeptProportion(convertToString(insFeeOrder.getForthDeptProportion()));
|
|
|
|
|
+ orderFeeVo.setFifthDeptPremiums(convertToString(insFeeOrder.getFifthDeptPremiums()));
|
|
|
|
|
+ orderFeeVo.setFifthDeptProportion(convertToString(insFeeOrder.getFifthDeptProportion()));
|
|
|
|
|
+ orderFeeVo.setFirstRetailPremiums(convertToString(insFeeOrder.getFirstRetailPremiums()));
|
|
|
|
|
+ orderFeeVo.setFirstRetailProportion(convertToString(insFeeOrder.getFirstRetailProportion()));
|
|
|
|
|
+ orderFeeVo.setSecondRetailPremiums(convertToString(insFeeOrder.getSecondRetailPremiums()));
|
|
|
|
|
+ orderFeeVo.setSecondRetailProportion(convertToString(insFeeOrder.getSecondRetailProportion()));
|
|
|
|
|
+ orderFeeVo.setThirdRetailPremiums(convertToString(insFeeOrder.getThirdRetailPremiums()));
|
|
|
|
|
+ orderFeeVo.setThirdRetailProportion(convertToString(insFeeOrder.getThirdRetailProportion()));
|
|
|
|
|
+ return orderFeeVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private String convertToString(BigDecimal b){
|
|
|
|
|
+ if(b!=null){
|
|
|
|
|
+ if(b.doubleValue()==0){
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }else {
|
|
|
|
|
+ return b.toString();
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|