Quellcode durchsuchen

处理承保规则匹配的问题

lixiaolong vor 1 Monat
Ursprung
Commit
6b7e98a067

+ 0 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/FactorMatch.java

@@ -304,8 +304,6 @@ public class FactorMatch {
                 if (CollUtil.isNotEmpty(collect)) {
                     logs.append("<span style=\"color:red;\">规则匹配失败:" + collect.get(0).getAttrName() + "</span>\n");
                 }
-                //如果有一个匹配上就返回
-                return true;
             }
         }
         log.info("承保规则校验-所有条件均未命中, 规则组通过, useFlag={}", useFlag);

+ 12 - 4
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/AuditVerificationAspect.java

@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.agreement.dispatch.dto.PtlAgreementDispatchRulesAttrLink;
+import com.jzg.commons.entity.agreement.dispatch.vo.ValidateDispatchRuleVo;
 import com.jzg.commons.entity.orders.po.*;
 import com.jzg.commons.entity.po.*;
 import com.jzg.commons.entity.quote.vo.aggregated.UnderwritingVo;
@@ -25,6 +27,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.time.format.DateTimeFormatter;
@@ -249,13 +252,18 @@ public class AuditVerificationAspect {
 
             log.info("规则组[{}]匹配结果: ruleMatched={}, 错误日志=[{}]", groupIndex, ruleMatched, ruleLogs);
 
-            if (ruleMatched && StringUtils.isNotBlank(ruleLogs)) {//ruleLogs 不为空 表示有一个匹配上
+            allErrorLogs.append(ruleLogs);
+
+            if (ruleMatched) {
                 anyRuleMatched = true;
                 log.info("规则组[{}]匹配成功, 订单通过!", groupIndex);
-                log.info("=== 承保规则校验成功,规则组[{}]通过 ===", groupIndex);
-                throw new SystemException(ruleLogs.toString());
+                break; // OR关系:任一条规则通过即可
             }
-            allErrorLogs.append(ruleLogs);
+        }
+
+        if (!anyRuleMatched) {
+            log.info("=== 承保规则校验失败, 所有规则组均未通过, 抛出异常 ===");
+            throw new SystemException(allErrorLogs.toString());
         }
 
         if (!anyRuleMatched) {