|
@@ -88,52 +88,26 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
|
|
|
BigDecimal syPremium = insOrdersCosts.getSyPremium() == null ? BigDecimal.ZERO : insOrdersCosts.getSyPremium();
|
|
BigDecimal syPremium = insOrdersCosts.getSyPremium() == null ? BigDecimal.ZERO : insOrdersCosts.getSyPremium();
|
|
|
BigDecimal jyPremium = insOrdersCosts.getJyPremium() == null ? BigDecimal.ZERO : insOrdersCosts.getJyPremium();
|
|
BigDecimal jyPremium = insOrdersCosts.getJyPremium() == null ? BigDecimal.ZERO : insOrdersCosts.getJyPremium();
|
|
|
|
|
|
|
|
- // 从页面获取【新比例】
|
|
|
|
|
- BigDecimal newJqCommissionRatio = covertPercent(ptlAgreementCostRatioVo.getJqCommissionRatio());
|
|
|
|
|
- BigDecimal newSyCommissionRatio = covertPercent(ptlAgreementCostRatioVo.getSyCommissionRatio());
|
|
|
|
|
- BigDecimal newJyCommissionRatio = covertPercent(ptlAgreementCostRatioVo.getJyCommissionRatio());
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal newJqInletRatio = covertPercent(ptlAgreementCostRatioVo.getJqInletRatio());
|
|
|
|
|
- BigDecimal newSyInletRatio = covertPercent(ptlAgreementCostRatioVo.getSyInletRatio());
|
|
|
|
|
- BigDecimal newJyInletRatio = covertPercent(ptlAgreementCostRatioVo.getJyInletRatio());
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal newJqFollowRatio = covertPercent(ptlAgreementCostRatioVo.getJqFollowRatio());
|
|
|
|
|
- BigDecimal newSyFollowRatio = covertPercent(ptlAgreementCostRatioVo.getSyFollowRatio());
|
|
|
|
|
- BigDecimal newJyFollowRatio = covertPercent(ptlAgreementCostRatioVo.getJyFollowRatio());
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal newJqAddThrowRatio = covertPercent(ptlAgreementCostRatioVo.getJqAdditionalRatio());
|
|
|
|
|
- BigDecimal newSyAddThrowRatio = covertPercent(ptlAgreementCostRatioVo.getSyAdditionalRatio());
|
|
|
|
|
- BigDecimal newJyAddThrowRatio = covertPercent(ptlAgreementCostRatioVo.getJyAdditionalRatio());
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal newJqKeepPointRatio = covertPercent(ptlAgreementCostRatioVo.getJqKeepPointRatio());
|
|
|
|
|
- BigDecimal newSyKeepPointRatio = covertPercent(ptlAgreementCostRatioVo.getSyKeepPointRatio());
|
|
|
|
|
- BigDecimal newJyKeepPointRatio = covertPercent(ptlAgreementCostRatioVo.getJyKeepPointRatio());
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal newJqExportRatio = covertPercent(ptlAgreementCostRatioVo.getJqExportRatio());
|
|
|
|
|
- BigDecimal newSyExportRatio = covertPercent(ptlAgreementCostRatioVo.getSyExportRatio());
|
|
|
|
|
- BigDecimal newJyExportRatio = covertPercent(ptlAgreementCostRatioVo.getJyExportRatio());
|
|
|
|
|
-
|
|
|
|
|
- BigDecimal newJqExportKeepPointRatio = covertPercent(ptlAgreementCostRatioVo.getJqExportKeepPointRatio());
|
|
|
|
|
- BigDecimal newSyExportKeepPointRatio = covertPercent(ptlAgreementCostRatioVo.getSyExportKeepPointRatio());
|
|
|
|
|
- BigDecimal newJyExportKeepPointRatio = covertPercent(ptlAgreementCostRatioVo.getJyExportKeepPointRatio());
|
|
|
|
|
|
|
+ // 更新对象中的比例字段
|
|
|
|
|
+ saveRatio(ptlAgreementCostRatioVo, insFeeOrders);
|
|
|
|
|
|
|
|
// 核心:规则重新计算所有费用
|
|
// 核心:规则重新计算所有费用
|
|
|
// 1. 交强险
|
|
// 1. 交强险
|
|
|
calculatePremiumByRule(insFeeOrders, "jq", jqPremium,
|
|
calculatePremiumByRule(insFeeOrders, "jq", jqPremium,
|
|
|
- newJqCommissionRatio, newJqInletRatio, newJqFollowRatio,
|
|
|
|
|
- newJqAddThrowRatio, newJqKeepPointRatio, newJqExportRatio, newJqExportKeepPointRatio,
|
|
|
|
|
|
|
+ insFeeOrders.getJqCommissionRatio(), insFeeOrders.getJqInletRatio(), insFeeOrders.getJqFollowRatio(),
|
|
|
|
|
+ insFeeOrders.getJqAdditionalRatio(), insFeeOrders.getJqKeepPointRatio(), insFeeOrders.getJqExportRatio(), insFeeOrders.getJqExportKeepPointRatio(),
|
|
|
withTax, TAX_RATE, SCALE);
|
|
withTax, TAX_RATE, SCALE);
|
|
|
|
|
|
|
|
// 2. 商业险
|
|
// 2. 商业险
|
|
|
calculatePremiumByRule(insFeeOrders, "sy", syPremium,
|
|
calculatePremiumByRule(insFeeOrders, "sy", syPremium,
|
|
|
- newSyCommissionRatio, newSyInletRatio, newSyFollowRatio,
|
|
|
|
|
- newSyAddThrowRatio, newSyKeepPointRatio, newSyExportRatio, newSyExportKeepPointRatio,
|
|
|
|
|
|
|
+ insFeeOrders.getSyCommissionRatio(), insFeeOrders.getSyInletRatio(), insFeeOrders.getSyFollowRatio(),
|
|
|
|
|
+ insFeeOrders.getSyAdditionalRatio(), insFeeOrders.getSyKeepPointRatio(), insFeeOrders.getSyExportRatio(), insFeeOrders.getSyExportKeepPointRatio(),
|
|
|
withTax, TAX_RATE, SCALE);
|
|
withTax, TAX_RATE, SCALE);
|
|
|
|
|
|
|
|
// 3. 驾乘险
|
|
// 3. 驾乘险
|
|
|
calculatePremiumByRule(insFeeOrders, "jy", jyPremium,
|
|
calculatePremiumByRule(insFeeOrders, "jy", jyPremium,
|
|
|
- newJyCommissionRatio, newJyInletRatio, newJyFollowRatio,
|
|
|
|
|
- newJyAddThrowRatio, newJyKeepPointRatio, newJyExportRatio, newJyExportKeepPointRatio,
|
|
|
|
|
|
|
+ insFeeOrders.getJyCommissionRatio(), insFeeOrders.getJyInletRatio(), insFeeOrders.getJyFollowRatio(),
|
|
|
|
|
+ insFeeOrders.getJyAdditionalRatio(), insFeeOrders.getJyKeepPointRatio(), insFeeOrders.getJyExportRatio(), insFeeOrders.getJyExportKeepPointRatio(),
|
|
|
withTax, TAX_RATE, SCALE);
|
|
withTax, TAX_RATE, SCALE);
|
|
|
|
|
|
|
|
// 重新统计总应收、总应付
|
|
// 重新统计总应收、总应付
|
|
@@ -144,7 +118,6 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
|
|
|
insFeeOrders.setTotalReceivablePremium(scale(totalReceivable, SCALE));
|
|
insFeeOrders.setTotalReceivablePremium(scale(totalReceivable, SCALE));
|
|
|
|
|
|
|
|
// 保存比例
|
|
// 保存比例
|
|
|
- saveRatio(ptlAgreementCostRatioVo, insFeeOrders);
|
|
|
|
|
this.updateById(insFeeOrders);
|
|
this.updateById(insFeeOrders);
|
|
|
return insFeeOrders;
|
|
return insFeeOrders;
|
|
|
}
|
|
}
|
|
@@ -175,10 +148,14 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
|
|
|
BigDecimal commission = base.multiply(commissionRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
BigDecimal commission = base.multiply(commissionRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
BigDecimal inlet = base.multiply(inletRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
BigDecimal inlet = base.multiply(inletRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
BigDecimal follow = base.multiply(followRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
BigDecimal follow = base.multiply(followRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
- BigDecimal addThrow = base.multiply(addThrowRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
|
|
- BigDecimal keepPoint = base.multiply(keepPointRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
|
|
- BigDecimal export = base.multiply(exportRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
|
|
- BigDecimal exportKeepPoint = base.multiply(exportKeepPointRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 加投直接乘
|
|
|
|
|
+ BigDecimal addThrow = premium.multiply(addThrowRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
|
|
+ // 出口直接乘
|
|
|
|
|
+ BigDecimal export = premium.multiply(exportRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
|
|
+ BigDecimal exportKeepPoint = premium.multiply(exportKeepPointRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
|
|
+ // 留点比例直接乘
|
|
|
|
|
+ BigDecimal keepPoint = premium.multiply(keepPointRatio).setScale(scale, RoundingMode.HALF_EVEN);
|
|
|
|
|
|
|
|
// 赋值到实体(自动匹配 jq / sy / jy)
|
|
// 赋值到实体(自动匹配 jq / sy / jy)
|
|
|
if ("jq".equals(type)) {
|
|
if ("jq".equals(type)) {
|