فهرست منبع

补录订单的费用计算和补录订单费用添加修改

wanghao 4 هفته پیش
والد
کامیت
034374f2fb

+ 6 - 1
commons/src/main/java/com/jzg/commons/entity/dto/PtlAgreementCostExternalEnd.java

@@ -71,7 +71,6 @@ public class PtlAgreementCostExternalEnd {
     public static class PtlAgreementCostExternalTypeAdd {
 
         @Schema(description = "费用类型1-交强险2-商业险3-驾意险")
-        @NotBlank(message = "费用类型不能为空")
         private String costType;
 
         @Schema(description = "入口比例")
@@ -80,6 +79,12 @@ public class PtlAgreementCostExternalEnd {
         @Schema(description = "出口比例")
         private BigDecimal export;
 
+        @Schema(description = "加投比例")
+        private BigDecimal addThrow;
+
+        @Schema(description = "留点比例")
+        private BigDecimal keepPointRatio;
+
         @Schema(description = "总费用比例")
         private BigDecimal totalCost;
 

+ 5 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -236,6 +236,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     private static BigDecimal capRatio(BigDecimal ratio, PtlAgreementCostTypeVo costType) {
         if (costType == null || costType.getInlet() == null) return ratio != null ? ratio : BigDecimal.ZERO;
         BigDecimal inlet = BigDecimalUtil.divide(costType.getInlet(), new BigDecimal(100)); // scale=5, HALF_EVEN
+        ratio = BigDecimalUtil.divide(ratio, new BigDecimal(100)); // scale=5, HALF_EVEN
         return BigDecimalUtil.subtract(ratio, inlet).compareTo(BigDecimal.ZERO) > 0 ? inlet : ratio;
     }
 
@@ -2182,13 +2183,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         feeOrders.setSyKeepPointRatio(nvl(feeOrders.getSyKeepPointRatio()));
         feeOrders.setJyKeepPointRatio(nvl(feeOrders.getJyKeepPointRatio()));
 
-        // —— 出口比例 = 出口比例 - 分销比例(对齐旧 saveRatio)
+        // 出口比例 = 入口比例 +加投比例 - 分销比例 -出口留点比例
         BigDecimal firstDist = nvl(feeOrders.getFirstDistributionRatio());
         BigDecimal secondDist = nvl(feeOrders.getSecondDistributionRatio());
         BigDecimal thirdDist = nvl(feeOrders.getThirdDistributionRatio());
-        feeOrders.setJqExportRatio(jqExport.compareTo(BigDecimal.ZERO) > 0 ? div100(jqExport).subtract(div100(firstDist)).subtract(div100(secondDist)).subtract(div100(thirdDist)) : BigDecimal.ZERO);
-        feeOrders.setSyExportRatio(syExport.compareTo(BigDecimal.ZERO) > 0 ? div100(syExport).subtract(div100(firstDist)).subtract(div100(secondDist)).subtract(div100(thirdDist)) : BigDecimal.ZERO);
-        feeOrders.setJyExportRatio(jyExport.compareTo(BigDecimal.ZERO) > 0 ? div100(jyExport).subtract(div100(firstDist)).subtract(div100(secondDist)).subtract(div100(thirdDist)) : BigDecimal.ZERO);
+        feeOrders.setJqExportRatio(jqInlet.compareTo(BigDecimal.ZERO) > 0 ? div100(jqInlet).add(div100(request.getJqAddThrow())).subtract(div100(firstDist)).subtract(div100(secondDist)).subtract(div100(thirdDist)).subtract(div100(jqEKP)) : BigDecimal.ZERO);
+        feeOrders.setSyExportRatio(syInlet.compareTo(BigDecimal.ZERO) > 0 ? div100(syInlet).add(div100(request.getSyAddThrow())).subtract(div100(firstDist)).subtract(div100(secondDist)).subtract(div100(thirdDist)).subtract(div100(syEKP)) : BigDecimal.ZERO);
+        feeOrders.setJyExportRatio(jyInlet.compareTo(BigDecimal.ZERO) > 0 ? div100(jyInlet).add(div100(request.getJyAddThrow())).subtract(div100(firstDist)).subtract(div100(secondDist)).subtract(div100(thirdDist)).subtract(div100(jyEKP)) : BigDecimal.ZERO);
 
         feeOrders.setJqExportKeepPointRatio(div100(jqEKP));
         feeOrders.setSyExportKeepPointRatio(div100(syEKP));