|
|
@@ -724,7 +724,7 @@ public class QuoteVerificationAspect {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 转换百分比为小数(如:50 -> 0.5)
|
|
|
+ * 转换百分比为小数
|
|
|
*/
|
|
|
private BigDecimal convertPercent(BigDecimal percent) {
|
|
|
return percent.divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
@@ -828,4 +828,196 @@ public class QuoteVerificationAspect {
|
|
|
insFeeOrders.setTotalReceivablePremium(totalReceivable);
|
|
|
insFeeOrders.setTotalPayablePremium(totalPayable);
|
|
|
}
|
|
|
+
|
|
|
+ // // 获取协议录入的 手续费比例 保留百分比
|
|
|
+// BigDecimal jqEntranceFeeRatio = agreementInfoVo.getAgreement().getJqEntranceFeeRatio().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal syEntranceFeeRatio = agreementInfoVo.getAgreement().getSyEntranceFeeRatio().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal jyEntranceFeeRatio = agreementInfoVo.getAgreement().getJyEntranceFeeRatio().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// // 开始计算费用
|
|
|
+// // 通过费用id查询入口出口比例
|
|
|
+// List<PtlAgreementCostTypeVo> costTypeList = orgClient.queryByCostId(costId);
|
|
|
+// PtlAgreementCostTypeVo jqCostType = costTypeList.stream().filter(c -> "交强险".equals(c.getCostType())).findFirst().orElse(null);
|
|
|
+// PtlAgreementCostTypeVo syCostType = costTypeList.stream().filter(c -> "商业险".equals(c.getCostType())).findFirst().orElse(null);
|
|
|
+// PtlAgreementCostTypeVo jyCostType = costTypeList.stream().filter(c -> "驾意险".equals(c.getCostType())).findFirst().orElse(null);
|
|
|
+// // 计算跟单费比例 入口比例 - 手续费比例 = 跟单比例 (保留百分比)
|
|
|
+// BigDecimal jqFollowRatio = (jqCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN).subtract(jqEntranceFeeRatio));
|
|
|
+// BigDecimal syFollowRatio = (syCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN).subtract(syEntranceFeeRatio));
|
|
|
+// BigDecimal jyFollowRatio = (jyCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN).subtract(jyEntranceFeeRatio));
|
|
|
+// // 当协议是平台协议时
|
|
|
+// if (agreementType.equals("1")) {
|
|
|
+// // 初始化交强应收 应付金额
|
|
|
+// BigDecimal jqReceivablePremium = BigDecimal.ZERO;
|
|
|
+// BigDecimal jqPayablePremium = BigDecimal.ZERO;
|
|
|
+// // 交强险保费 * 入口手续费比例 + 交强险保费 * 跟单费比例 + 交强险保费 * 加投比例 = 交强应收(不含车船税);
|
|
|
+// // 交强险保费 * 出口比例 = 交强应付;
|
|
|
+// if (jqCostType != null) {
|
|
|
+// // 转换百分比
|
|
|
+// BigDecimal inletPercent = jqCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal addThrowPercent = jqCostType.getAddThrow().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal exportPercent = jqCostType.getExport().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// // 交强应收
|
|
|
+// jqReceivablePremium = insOrdersCosts.getJqPremium().multiply(inletPercent)
|
|
|
+// .add(insOrdersCosts.getJqPremium().multiply(addThrowPercent))
|
|
|
+// .add(insOrdersCosts.getJqPremium().multiply(jqFollowRatio)).setScale(5, RoundingMode.HALF_EVEN);
|
|
|
+// // 交强应付
|
|
|
+// jqPayablePremium = insOrdersCosts.getJqPremium().multiply(exportPercent.setScale(2, RoundingMode.DOWN));
|
|
|
+// // 交强手续费费用
|
|
|
+// insFeeOrders.setJqCommissionPremium(insOrdersCosts.getJqPremium().multiply(jqEntranceFeeRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 交强跟单费费用
|
|
|
+// insFeeOrders.setJqFollowPremium(insOrdersCosts.getJqPremium().multiply(jqFollowRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 交强加投费费用
|
|
|
+// insFeeOrders.setJqAdditionalPremium(insOrdersCosts.getJqPremium().multiply(addThrowPercent).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// }
|
|
|
+// insFeeOrders.setJqReceivablePremium(jqReceivablePremium);
|
|
|
+// insFeeOrders.setJqPayablePremium(jqPayablePremium);
|
|
|
+//
|
|
|
+// // 初始化商业应收 应付金额
|
|
|
+// BigDecimal syReceivablePremium = BigDecimal.ZERO;
|
|
|
+// BigDecimal syPayablePremium = BigDecimal.ZERO;
|
|
|
+// // 商业险保费 * 入口手续费比例 + 商业险保费 * 跟单费比例 + 商业险保费 * 加投比例 = 商业应收
|
|
|
+// // 商业险保费 * 出口比例 = 商业应付;
|
|
|
+// if (syCostType != null) {
|
|
|
+// // 转换百分比
|
|
|
+// BigDecimal inletPercent = syCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal addThrowPercent = syCostType.getAddThrow().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal exportPercent = syCostType.getExport().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// // 商业应收
|
|
|
+// syReceivablePremium = insOrdersCosts.getSyPremium().multiply(inletPercent)
|
|
|
+// .add(insOrdersCosts.getSyPremium().multiply(addThrowPercent))
|
|
|
+// .add(insOrdersCosts.getSyPremium().multiply(syFollowRatio)).setScale(5, RoundingMode.HALF_EVEN);
|
|
|
+// // 商业应付
|
|
|
+// syPayablePremium = insOrdersCosts.getSyPremium().multiply(exportPercent.setScale(2, RoundingMode.DOWN));
|
|
|
+// // 商业手续费费用
|
|
|
+// insFeeOrders.setSyCommissionPremium(insOrdersCosts.getSyPremium().multiply(syEntranceFeeRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 商业跟单费费用
|
|
|
+// insFeeOrders.setSyFollowPremium(insOrdersCosts.getSyPremium().multiply(syFollowRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 商业加投费费用
|
|
|
+// insFeeOrders.setSyAdditionalPremium(insOrdersCosts.getSyPremium().multiply(addThrowPercent).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// }
|
|
|
+// insFeeOrders.setSyReceivablePremium(syReceivablePremium);
|
|
|
+// insFeeOrders.setSyPayablePremium(syPayablePremium);
|
|
|
+//
|
|
|
+// // 初始化驾意应收 应付金额
|
|
|
+// BigDecimal jyReceivablePremium = BigDecimal.ZERO;
|
|
|
+// BigDecimal jyPayablePremium = BigDecimal.ZERO;
|
|
|
+// // 驾意险保费 * 入口手续费比例 + 驾意险保费 * 跟单费比例 + 驾意险保费 * 加投比例 = 商业应收
|
|
|
+// // 驾意险保费 * 出口比例 = 驾意险应付;
|
|
|
+// if (jyCostType != null) {
|
|
|
+// // 转换百分比
|
|
|
+// BigDecimal inletPercent = jyCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal addThrowPercent = jyCostType.getAddThrow().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal exportPercent = jyCostType.getExport().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// // 驾意应收
|
|
|
+// jyReceivablePremium = insOrdersCosts.getJyPremium().multiply(inletPercent)
|
|
|
+// .add(insOrdersCosts.getJyPremium().multiply(addThrowPercent))
|
|
|
+// .add(insOrdersCosts.getJyPremium().multiply(jyFollowRatio)).setScale(5, RoundingMode.HALF_EVEN);
|
|
|
+// // 驾意应付
|
|
|
+// jyPayablePremium = insOrdersCosts.getJyPremium().multiply(exportPercent.setScale(2, RoundingMode.DOWN));
|
|
|
+// // 驾意手续费费用
|
|
|
+// insFeeOrders.setJyCommissionPremium(insOrdersCosts.getJyPremium().multiply(jyEntranceFeeRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 驾意跟单费费用
|
|
|
+// insFeeOrders.setJyFollowPremium(insOrdersCosts.getJyPremium().multiply(jyFollowRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 驾意加投费费用
|
|
|
+// insFeeOrders.setJyAdditionalPremium(insOrdersCosts.getJyPremium().multiply(addThrowPercent).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// }
|
|
|
+// insFeeOrders.setJyReceivablePremium(jyReceivablePremium);
|
|
|
+// insFeeOrders.setJyPayablePremium(jyPayablePremium);
|
|
|
+// // 应收总金额
|
|
|
+// BigDecimal totalReceivablePremium = jqReceivablePremium.add(syReceivablePremium).add(jyReceivablePremium).setScale(5, RoundingMode.HALF_EVEN);
|
|
|
+// insFeeOrders.setTotalReceivablePremium(totalReceivablePremium);
|
|
|
+// // 应付总金额
|
|
|
+// BigDecimal totalPayablePremium = jqPayablePremium.add(syPayablePremium).add(jyPayablePremium).setScale(2, RoundingMode.DOWN);
|
|
|
+// insFeeOrders.setTotalPayablePremium(totalPayablePremium);
|
|
|
+// insFeeOrdersService.save(insFeeOrders);
|
|
|
+// }
|
|
|
+// // 当协议类型是私有协议时
|
|
|
+// if (!agreementType.equals("1")) {
|
|
|
+// // 固定税收 1.06
|
|
|
+// BigDecimal fixedTax = new BigDecimal("1.06");
|
|
|
+// // 初始化交强应收 应付金额
|
|
|
+// BigDecimal jqReceivablePremium = BigDecimal.ZERO;
|
|
|
+// BigDecimal jqPayablePremium = BigDecimal.ZERO;
|
|
|
+// // 交强险保费 * 入口手续费比例 + 交强险保费 * 跟单费比例 + 交强险保费 * 加投比例 = 交强应收(不含车船税);
|
|
|
+// // 交强险保费 * 出口比例 = 交强应付;
|
|
|
+// if (jqCostType != null) {
|
|
|
+// // 转换百分比
|
|
|
+// BigDecimal inletPercent = jqCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal addThrowPercent = jqCostType.getAddThrow().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal exportPercent = jqCostType.getExport().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// // 交强应收
|
|
|
+// jqReceivablePremium = (insOrdersCosts.getJqPremium().divide(fixedTax)).multiply(inletPercent)
|
|
|
+// .add((insOrdersCosts.getJqPremium().divide(fixedTax)).multiply(addThrowPercent))
|
|
|
+// .add((insOrdersCosts.getJqPremium().divide(fixedTax)).multiply(jqFollowRatio)).setScale(5, RoundingMode.HALF_EVEN);
|
|
|
+// // 交强应付
|
|
|
+// jqPayablePremium = insOrdersCosts.getJqPremium().multiply(exportPercent.setScale(2, RoundingMode.DOWN));
|
|
|
+// // 交强手续费费用
|
|
|
+// insFeeOrders.setJqCommissionPremium(insOrdersCosts.getJqPremium().multiply(jqEntranceFeeRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 交强跟单费费用
|
|
|
+// insFeeOrders.setJqFollowPremium(insOrdersCosts.getJqPremium().multiply(jqFollowRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 交强加投费费用
|
|
|
+// insFeeOrders.setJqAdditionalPremium(insOrdersCosts.getJqPremium().multiply(addThrowPercent).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// }
|
|
|
+// insFeeOrders.setJqReceivablePremium(jqReceivablePremium);
|
|
|
+// insFeeOrders.setJqPayablePremium(jqPayablePremium);
|
|
|
+//
|
|
|
+// // 初始化商业应收 应付金额
|
|
|
+// BigDecimal syReceivablePremium = BigDecimal.ZERO;
|
|
|
+// BigDecimal syPayablePremium = BigDecimal.ZERO;
|
|
|
+// // 商业险保费 * 入口手续费比例 + 商业险保费 * 跟单费比例 + 商业险保费 * 加投比例 = 商业应收
|
|
|
+// // 商业险保费 * 出口比例 = 商业应付;
|
|
|
+// if (syCostType != null) {
|
|
|
+// // 转换百分比
|
|
|
+// BigDecimal inletPercent = syCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal addThrowPercent = syCostType.getAddThrow().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal exportPercent = syCostType.getExport().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// // 商业应收
|
|
|
+// syReceivablePremium = (insOrdersCosts.getSyPremium().divide(fixedTax)).multiply(inletPercent)
|
|
|
+// .add((insOrdersCosts.getSyPremium().divide(fixedTax)).multiply(addThrowPercent))
|
|
|
+// .add((insOrdersCosts.getSyPremium().divide(fixedTax)).multiply(syFollowRatio)).setScale(5, RoundingMode.HALF_EVEN);
|
|
|
+// // 商业应付
|
|
|
+// syPayablePremium = insOrdersCosts.getSyPremium().multiply(exportPercent.setScale(2, RoundingMode.DOWN));
|
|
|
+// // 商业手续费费用
|
|
|
+// insFeeOrders.setSyCommissionPremium(insOrdersCosts.getSyPremium().multiply(syEntranceFeeRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 商业跟单费费用
|
|
|
+// insFeeOrders.setSyFollowPremium(insOrdersCosts.getSyPremium().multiply(syFollowRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 商业加投费费用
|
|
|
+// insFeeOrders.setSyAdditionalPremium(insOrdersCosts.getSyPremium().multiply(addThrowPercent).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// }
|
|
|
+// insFeeOrders.setSyReceivablePremium(syReceivablePremium);
|
|
|
+// insFeeOrders.setSyPayablePremium(syPayablePremium);
|
|
|
+//
|
|
|
+// // 初始化驾意应收 应付金额
|
|
|
+// BigDecimal jyReceivablePremium = BigDecimal.ZERO;
|
|
|
+// BigDecimal jyPayablePremium = BigDecimal.ZERO;
|
|
|
+// // 驾意险保费 * 入口手续费比例 + 驾意险保费 * 跟单费比例 + 驾意险保费 * 加投比例 = 商业应收
|
|
|
+// // 驾意险保费 * 出口比例 = 驾意险应付;
|
|
|
+// if (jyCostType != null) {
|
|
|
+// // 转换百分比
|
|
|
+// BigDecimal inletPercent = jyCostType.getInlet().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal addThrowPercent = jyCostType.getAddThrow().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// BigDecimal exportPercent = jyCostType.getExport().divide(BigDecimal.valueOf(100), 10, RoundingMode.HALF_EVEN);
|
|
|
+// // 驾意应收
|
|
|
+// jyReceivablePremium = (insOrdersCosts.getJyPremium().divide(fixedTax)).multiply(inletPercent)
|
|
|
+// .add((insOrdersCosts.getJyPremium().divide(fixedTax)).multiply(addThrowPercent))
|
|
|
+// .add((insOrdersCosts.getJyPremium().divide(fixedTax)).multiply(jyFollowRatio)).setScale(5, RoundingMode.HALF_EVEN);
|
|
|
+// // 驾意应付
|
|
|
+// jyPayablePremium = insOrdersCosts.getJyPremium().multiply(exportPercent.setScale(2, RoundingMode.DOWN));
|
|
|
+// // 驾意手续费费用
|
|
|
+// insFeeOrders.setJyCommissionPremium(insOrdersCosts.getJyPremium().multiply(jyEntranceFeeRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 驾意跟单费费用
|
|
|
+// insFeeOrders.setJyFollowPremium(insOrdersCosts.getJyPremium().multiply(jyFollowRatio).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// // 驾意加投费费用
|
|
|
+// insFeeOrders.setJyAdditionalPremium(insOrdersCosts.getJyPremium().multiply(addThrowPercent).setScale(5, RoundingMode.HALF_EVEN));
|
|
|
+// }
|
|
|
+// insFeeOrders.setJyReceivablePremium(jyReceivablePremium);
|
|
|
+// insFeeOrders.setJyPayablePremium(jyPayablePremium);
|
|
|
+// // 应收总金额
|
|
|
+// BigDecimal totalReceivablePremium = jqReceivablePremium.add(syReceivablePremium).add(jyReceivablePremium).setScale(5, RoundingMode.HALF_EVEN);
|
|
|
+// insFeeOrders.setTotalReceivablePremium(totalReceivablePremium);
|
|
|
+// // 应付总金额
|
|
|
+// BigDecimal totalPayablePremium = jqPayablePremium.add(syPayablePremium).add(jyPayablePremium).setScale(2, RoundingMode.DOWN);
|
|
|
+// insFeeOrders.setTotalPayablePremium(totalPayablePremium);
|
|
|
+// insFeeOrdersService.save(insFeeOrders);
|
|
|
+//
|
|
|
+// }
|
|
|
}
|