소스 검색

Merge remote-tracking branch 'origin/dev_jzg_lipf_v20260622' into dev_jzg_lipf_v20260622

jiakai 2 달 전
부모
커밋
55b3141194

+ 34 - 17
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/OrderOperationLogAspect.java

@@ -1,10 +1,12 @@
 package com.jzg.quotation.summary.aop;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.VerifyAdjustParam;
+import com.jzg.commons.entity.finance.vo.BatchModifyVo;
 import com.jzg.commons.entity.orders.po.InsOrderAdjust;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCarInfo;
@@ -12,6 +14,7 @@ import com.jzg.commons.entity.orders.po.InsOrdersTrack;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.aggregated.*;
 import com.jzg.commons.entity.vo.AdjustAllRefundVo;
+import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
 import com.jzg.quotation.commons.constant.SpElMapping;
 import com.jzg.quotation.commons.utils.SpElFieldExtractor;
 import com.jzg.quotation.summary.aop.aspect.OrderOperationLog;
@@ -157,16 +160,16 @@ public class OrderOperationLogAspect {
             // 费用调整
             case 15:
                 logger.info("费用调整log.orderSpEl()=[{}]",log.orderSpEl());
+                PtlAgreementCostRatioVo vo = parser.parseExpression(log.orderSpEl()).getValue(context, PtlAgreementCostRatioVo.class);
                 result = joinPoint.proceed();
-                String orderNo01 = "001";
-                this.saveCostInfo(orderNo01,result,log);
+                this.saveCostInfo(result,log, vo);
                 break;
             // 批量修改比例
             case 16:
                 logger.info("批量修改比例.log.orderSpEl()=[{}]",log.orderSpEl());
+                BatchModifyVo batchModifyVo = parser.parseExpression(log.orderSpEl()).getValue(context, BatchModifyVo.class);
                 result = joinPoint.proceed();
-                String orderNo02 = "002";
-                this.batchModify(orderNo02,result,log);
+                this.batchModify(result,log, batchModifyVo);
                 break;
         }
         return result;
@@ -178,14 +181,25 @@ public class OrderOperationLogAspect {
      * @author lipf
      * @date 2026/7/8 15:29
      */
-    private void batchModify(String orderNo, Object result, OrderOperationLog log) {
-        InsOrdersTrack track = new InsOrdersTrack();
-        track.setModule("应收订单");
-        track.setSubModule("");
-        track.setOptType(16);
-        track.setOrderNo(orderNo);
-        track.setResult(JSONUtil.toJsonStr(result));
-        traceService.save(track);
+    private void batchModify(Object result, OrderOperationLog log, BatchModifyVo vo) {
+        List<String> orderNos = vo.getOrderNos();
+        if(CollUtil.isEmpty(orderNos)){
+            logger.info("批量修改没有传入订单号");
+            return;
+        }
+        for (String orderNo : orderNos) {
+            InsOrdersTrack track = new InsOrdersTrack();
+            track.setModule(log.module());
+            track.setSubModule(log.subModule());
+            track.setOptType(log.optType().getCode());
+            track.setOptContent(log.description());
+            track.setChangeAfter(JSONUtil.toJsonStr(vo));
+            track.setResult(JSONUtil.toJsonStr(result));
+            track.setOrderNo(orderNo);
+            traceService.save(track);
+
+        }
+
     }
 
     /**
@@ -193,12 +207,15 @@ public class OrderOperationLogAspect {
      * @author lipf
      * @date 2026/7/8 15:28
      */
-    private void saveCostInfo(String orderNo, Object result, OrderOperationLog log) {
+    private void saveCostInfo(Object result, OrderOperationLog log, PtlAgreementCostRatioVo vo) {
         InsOrdersTrack track = new InsOrdersTrack();
-        track.setModule("订单审核");
-        track.setSubModule("我的审核");
-        track.setOptType(15);
-        track.setOrderNo(orderNo);
+        track.setModule(log.module());
+        track.setSubModule(log.subModule());
+        track.setOptType(log.optType().getCode());
+        track.setOptContent(log.description());
+        track.setResult(JSONUtil.toJsonStr(result));
+        track.setChangeAfter(JSONUtil.toJsonStr(vo));
+        track.setOrderNo(vo.getOrderNo());
         track.setResult(JSONUtil.toJsonStr(result));
         traceService.save(track);
     }

+ 23 - 16
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -363,21 +363,21 @@ public class QuoteVerificationAspect {
                 insFeeOrders,
                 InsFeeOrders::setJqReceivablePremium, InsFeeOrders::setJqPayablePremium,
                 InsFeeOrders::setJqCommissionPremium, InsFeeOrders::setJqFollowPremium, InsFeeOrders::setJqAdditionalPremium,
-                InsFeeOrders::setJqKeepPointRatio,InsFeeOrders::setJqKeepPointPremium);
+                InsFeeOrders::setJqKeepPointRatio,InsFeeOrders::setJqKeepPointPremium, isrecordByLeader);
 
         processInsuranceType(
                 insOrdersCosts.getSyPremium(), syCostType, syEntranceFeeRatio, syFollowRatio, taxFactor,
                 insFeeOrders,
                 InsFeeOrders::setSyReceivablePremium, InsFeeOrders::setSyPayablePremium,
                 InsFeeOrders::setSyCommissionPremium, InsFeeOrders::setSyFollowPremium, InsFeeOrders::setSyAdditionalPremium,
-                InsFeeOrders::setSyKeepPointRatio,InsFeeOrders::setSyKeepPointPremium);
+                InsFeeOrders::setSyKeepPointRatio,InsFeeOrders::setSyKeepPointPremium, isrecordByLeader);
 
         processInsuranceType(
                 insOrdersCosts.getJyPremium(), jyCostType, jyEntranceFeeRatio, jyFollowRatio, taxFactor,
                 insFeeOrders,
                 InsFeeOrders::setJyReceivablePremium, InsFeeOrders::setJyPayablePremium,
                 InsFeeOrders::setJyCommissionPremium, InsFeeOrders::setJyFollowPremium, InsFeeOrders::setJyAdditionalPremium,
-                InsFeeOrders::setJyKeepPointRatio,InsFeeOrders::setJyKeepPointPremium);
+                InsFeeOrders::setJyKeepPointRatio,InsFeeOrders::setJyKeepPointPremium, isrecordByLeader);
 
         // 7. 计算分销费用  返回分销的差值
         BigDecimal distributionDiff = calculateDistributionFee(insOrdersCosts,insFeeOrders, insOrders);
@@ -429,19 +429,20 @@ public class QuoteVerificationAspect {
     /**
      * 处理单个险种的费用计算(核心复用方法)
      *
-     * @param premium         险种保费
-     * @param costType        险种费用类型配置
-     * @param commissionRatio 手续费比例
-     * @param followRatio     跟单费比例
-     * @param taxFactor       税率因子(平台协议为1,私有协议为1/1.06)
-     * @param insFeeOrders    费用订单对象
-     * @param setReceivable   应收金额setter
-     * @param setPayable      应付金额setter
-     * @param setCommission   手续费setter
-     * @param setFollow       跟单费setter
-     * @param setAdditional   加投费setter
-     * @param keepPointRate 留点比例
+     * @param premium          险种保费
+     * @param costType         险种费用类型配置
+     * @param commissionRatio  手续费比例
+     * @param followRatio      跟单费比例
+     * @param taxFactor        税率因子(平台协议为1,私有协议为1/1.06)
+     * @param insFeeOrders     费用订单对象
+     * @param setReceivable    应收金额setter
+     * @param setPayable       应付金额setter
+     * @param setCommission    手续费setter
+     * @param setFollow        跟单费setter
+     * @param setAdditional    加投费setter
+     * @param keepPointRate    留点比例
      * @param keepPointPremium 留点费用
+     * @param isrecordByLeader 是否是代课录单
      */
     private void processInsuranceType(
             BigDecimal premium,
@@ -456,7 +457,8 @@ public class QuoteVerificationAspect {
             BiConsumer<InsFeeOrders, BigDecimal> setFollow,
             BiConsumer<InsFeeOrders, BigDecimal> setAdditional,
             BiConsumer<InsFeeOrders, BigDecimal> keepPointRate,
-            BiConsumer<InsFeeOrders, BigDecimal> keepPointPremium) {
+            BiConsumer<InsFeeOrders, BigDecimal> keepPointPremium,
+            boolean isrecordByLeader) {
         // 若险种配置为空,默认应收应付为0
         if (costType == null) {
             setReceivable.accept(insFeeOrders, BigDecimal.ZERO);
@@ -472,6 +474,11 @@ public class QuoteVerificationAspect {
         BigDecimal addThrowPercent = convertPercent(costType.getAddThrow());
         BigDecimal exportPercent = convertPercent(costType.getExport());
 
+        if(isrecordByLeader){
+            // 如果是代客录单,出口比例减去一个百分比,也就是 0.01 2026年7月11日09:30:09
+            exportPercent = BigDecimalUtil.subtract(exportPercent, new BigDecimal("0.01"));
+        }
+
         // 去税保费金额
         BigDecimal taxablePremium = premium.divide(taxFactor,5,RoundingMode.HALF_EVEN);
 

+ 1 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -189,7 +189,7 @@ public class InsFeeAuditController {
             subModule = "我的审核",
             optType = QuoteNumberConstant.QuoteOptType.OPT_TYPE_15,
             description = "费用调整",
-            orderSpEl = "#quoteVo",
+            orderSpEl = "#param",
             feedbackSpEl = "#ret.code + ' - ' + #ret.msg+ ' - ' + #ret.data"
     )
     @PostMapping("/saveCostInfo")

+ 3 - 3
tenant/organization/src/main/java/com/jzg/organization/controller/ReceivableController.java

@@ -545,11 +545,11 @@ public class ReceivableController {
      * @date 2026/5/27 20:25
      */
     @OrderOperationLog(
-            module = "私有协议应收",
+            module = "私有/平台协议应收",
             subModule = "订单审核",
             optType = QuoteNumberConstant.QuoteOptType.OPT_TYPE_16,
-            description = "费用调整",
-            orderSpEl = "#quoteVo",
+            description = "批量修改",
+            orderSpEl = "#batchModifyVo",
             feedbackSpEl = "#ret.code + ' - ' + #ret.msg+ ' - ' + #ret.data"
     )
     @PostMapping("batchModify")