Просмотр исходного кода

fix 费用管理承保规则显示或条件

liub 3 месяцев назад
Родитель
Сommit
41f95c06bd

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/vo/PtlAgreementCostRuleVo.java

@@ -11,7 +11,7 @@ import java.util.List;
 
 @Schema(description = "规则条件集合")
 @Data
-public class PtlAgreementCostRuleVo{
+public class  PtlAgreementCostRuleVo{
 
     @Schema(description = "ID")
     private String id;

+ 21 - 0
tenant/insurance/quotation-guoren/src/main/java/com/jzg/quotation/guoren/crawler/entity/dto/PrptengageListDTO.java

@@ -1,11 +1,14 @@
 package com.jzg.quotation.guoren.crawler.entity.dto;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jzg.quotation.guoren.api.entity.vo.GuoRenSpecialAgreementVo;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
 
 @Data
 @NoArgsConstructor
@@ -32,4 +35,22 @@ public class PrptengageListDTO implements Serializable {
     @JsonProperty("flag")
     private String flag;
 
+    public PrptengageListDTO(GuoRenSpecialAgreementVo specialAgreementVo, int serialNo) {
+        this.serialNo = serialNo;
+        this.clauseCode = specialAgreementVo.getClauseCode();
+        this.clauses = specialAgreementVo.getClauses();
+        this.clausesContext = specialAgreementVo.getClausesContext();
+    }
+
+    /**
+     * 将特约VO列表转换为PrptengageListDTO列表
+     */
+    public static List<PrptengageListDTO> fromSpecialAgreementVo(List<GuoRenSpecialAgreementVo> specialAgreementVos) {
+        List<PrptengageListDTO> result = new ArrayList<>();
+        for (int i = 0; i < specialAgreementVos.size(); i++) {
+            result.add(new PrptengageListDTO(specialAgreementVos.get(i), i + 1));
+        }
+        return result;
+    }
+
 }

+ 17 - 3
tenant/organization/src/main/resources/mapper/PtlAgreementCostMapper.xml

@@ -347,7 +347,13 @@
             pa.agreement_title,
             pa.agreement_abbreviation,
             pa.id as ptlAgreementId,
-            pr.rule_description,
+            CASE 
+                WHEN pr_raw.parent_id IS NOT NULL AND pr_raw.parent_id != '' 
+                THEN (SELECT GROUP_CONCAT(child.rule_description ORDER BY child.order_num ASC SEPARATOR ',') 
+                      FROM ptl_agreement_undwrt_rules child 
+                      WHERE child.parent_id = pr_raw.parent_id AND child.is_delete = 0)
+                ELSE pr_raw.rule_description
+            END AS rule_description,
             eic.name as company_name,
             pa.docking_person,
             pc.update_time,
@@ -360,7 +366,7 @@
         FROM
             ptl_agreement_cost pc
                 LEFT JOIN ptl_agreement pa ON pa.id = pc.ptl_agreement_id and pa.is_delete = 0
-                LEFT JOIN ptl_agreement_undwrt_rules pr ON pr.id = pc.cover_rule_id AND pr.agreement_id = pc.ptl_agreement_id and pr.is_delete = 0
+                LEFT JOIN ptl_agreement_undwrt_rules pr_raw ON pr_raw.id = pc.cover_rule_id AND pr_raw.is_delete = 0
         LEFT JOIN esm_ins_company eic on eic.id = pa.company_id
         <where>
             pc.is_delete = 0
@@ -374,7 +380,15 @@
                 AND pc.product_id = #{costParam.productId}
             </if>
             <if test="costParam.rulesName != null and costParam.rulesName != ''">
-                AND pr.rule_description  like concat('%',#{costParam.rulesName},'%')
+                AND (
+                    (pr_raw.parent_id IS NOT NULL AND pr_raw.parent_id != '' 
+                     AND EXISTS (SELECT 1 FROM ptl_agreement_undwrt_rules child 
+                                 WHERE child.parent_id = pr_raw.parent_id 
+                                   AND child.is_delete = 0 
+                                   AND child.rule_description LIKE concat('%',#{costParam.rulesName},'%')))
+                    OR (pr_raw.parent_id IS NULL OR pr_raw.parent_id = '')
+                    AND pr_raw.rule_description LIKE concat('%',#{costParam.rulesName},'%')
+                )
             </if>
             <if test="costParam.costRules != null and costParam.costRules != ''">
                 AND pc.cost_describe like concat('%',#{costParam.costRules},'%')