Ver Fonte

Merge remote-tracking branch 'origin/master'

Qchen há 2 semanas atrás
pai
commit
e67d010f62
16 ficheiros alterados com 88 adições e 12 exclusões
  1. 3 0
      commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersOther.java
  2. 10 0
      commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java
  3. 3 0
      commons/src/main/java/com/jzg/commons/entity/vo/InsOrdersOtherInfoVo.java
  4. 28 0
      commons/src/main/java/com/jzg/commons/util/StringUtils.java
  5. 1 0
      gateway/src/main/resources/application-prod.yml
  6. 3 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  7. 4 2
      tenant/insurance/quotation-summary/src/main/resources/application-prod.yaml
  8. 2 1
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml
  9. 1 0
      tenant/organization/src/main/java/com/jzg/organization/controller/NewCarJudgeRulesController.java
  10. 2 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationMapper.java
  11. 2 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationUserLinkServiceMapper.java
  12. 6 5
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementCostServiceImpl.java
  13. 9 1
      tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementUndwrtRulesServiceImpl.java
  14. 2 2
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysOrganizationUserLinkServiceImpl.java
  15. 4 1
      tenant/organization/src/main/resources/mapper/PtlAgreementCostMapper.xml
  16. 8 0
      tenant/organization/src/main/resources/mapper/SysOrganizationUserLinkServiceMapper.xml

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrdersOther.java

@@ -85,5 +85,8 @@ public class InsOrdersOther {
     @Schema(description = "商业险是否有费用")
     private String ciMessage;
 
+    @Schema(description = "未匹配费用原因")
+    private String feeNoDescription;
+
 
 }

+ 10 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java

@@ -247,6 +247,11 @@ public class QuoteEchoVo extends QuoteVo {
      */
     private String errorMessage;
 
+    /**
+     * 未匹配费用原因
+     */
+    private String feeNoDescription;
+
     /**
      * 影像资料
      */
@@ -496,6 +501,11 @@ public class QuoteEchoVo extends QuoteVo {
         this.scoreVo.setSyLossRation(Objects.isNull(insOrdersVo.getInsOrdersOtherInfo().getSyLossRation()) ? null : insOrdersVo.getInsOrdersOtherInfo().getSyLossRation().toString());
         this.scoreVo.setScoreJson(insOrdersVo.getInsOrdersOtherInfo().getScoreJson());
 
+        // 未匹配费用原因
+        if(Objects.nonNull(insOrdersVo.getInsOrdersOtherInfo())) {
+            this.setFeeNoDescription(insOrdersVo.getInsOrdersOtherInfo().getFeeNoDescription());
+        }
+
         //驾意险存储
         List<AccidentalDrivingVo> accidentalDrivings = insOrdersVo.getAccidentalDrivings();
 

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/InsOrdersOtherInfoVo.java

@@ -117,4 +117,7 @@ public class InsOrdersOtherInfoVo {
      */
     @Schema(description = "出口费用是否需要扣减1%")
     private boolean isrecordByLeader;
+
+    @Schema(description = "费用未完成描述")
+    private String feeNoDescription;
 }

+ 28 - 0
commons/src/main/java/com/jzg/commons/util/StringUtils.java

@@ -783,4 +783,32 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
         StrSubstitutor strSubstitutor = new StrSubstitutor(valuesMap, "%", "%");
         return strSubstitutor.replace(content);
     }
+
+    /**
+     * 将字符串中两个及以上相邻的逗号(中文","或英文",")替换为"或"字
+     * 例如:"a,,b" -> "a或b";"a,,b" -> "a或b";"a,b"(单个逗号)保持原样
+     *
+     * @param str 原始字符串,可为null
+     * @return 替换后的字符串,若入参为null则返回null
+     */
+    public static String convertAdjacentCommaToOr(String str) {
+        if (str == null) {
+            return null;
+        }
+        return str.replaceAll("[,,]{2,}", ";\t或\t");
+    }
+
+    /**
+     * 将字符串中两个及以上相邻的逗号(中文","或英文",")合并为一个逗号(中文",")
+     * 例如:"a,,b" -> "a,b";"a,,b" -> "a,b";"a,b"(单个逗号)保持原样
+     *
+     * @param str 原始字符串,可为null
+     * @return 替换后的字符串,若入参为null则返回null
+     */
+    public static String mergeAdjacentComma(String str) {
+        if (str == null) {
+            return null;
+        }
+        return str.replaceAll("[,,]{2,}", ";\t\t");
+    }
 }

+ 1 - 0
gateway/src/main/resources/application-prod.yml

@@ -118,6 +118,7 @@ spring:
                   - /adjust/**
                   - /rightsGrant/**
                   - /insOrderRights/**
+                  - /order/searchHistory/**
 
         - id: costsorrule_route
           uri: http://172.24.144.225:8085/

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

@@ -145,6 +145,9 @@ public class QuoteVerificationAspect {
             } else {
                 logs.append("没有找到该协议的费用信息" + "\n");
             }
+            // 数据库更新费用匹配的原因
+            insOrdersOther.setFeeNoDescription(logs.toString());
+            insOrdersOtherService.updateById(insOrdersOther);
             result.getData().setFeeNoDescription(logs.toString());
         }
     }

+ 4 - 2
tenant/insurance/quotation-summary/src/main/resources/application-prod.yaml

@@ -252,7 +252,9 @@ feign:
     jzg-partner:
       url: http://172.24.144.227:8087/
     jeecg-boot:
-      url: https://life.baoxianzhanggui.com/jeecg-pro-boot/
+      url: https://life.baoxianzhanggui.com/locallive-pro-java
+    unifiedAccountClient:
+      url: https://test.baoxianzhanggui.com/user-api/usercenter
 # 和生活服务平台约定的appkey、appSeCret,用于获取token
 live:
   service:
@@ -260,6 +262,6 @@ live:
     appSeCret: y4PJIzlijRo5eqt37IfgzqQTcMLQT4ytMDX27ncY_QA
 
 localLive:
-  base-url: https://life.baoxianzhanggui.com/jeecg-pro-boot/
+  base-url: https://life.baoxianzhanggui.com/locallive-pro-java
   app-key: OSCB2iyvt4-CgMQjTtqUe6r7gyk6xAhlpx3z_6Q-u-Y
   app-secret: y4PJIzlijRo5eqt37IfgzqQTcMLQT4ytMDX27ncY_QA

+ 2 - 1
tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

@@ -774,7 +774,8 @@
         co.sum_premium,
         co.tax_premium,
         p.jq_policy_no,
-        p.sy_policy_no
+        p.sy_policy_no,
+        ot.fee_no_description
         FROM ins_orders_other ot
         LEFT JOIN ins_orders o ON o.quote_no = ot.order_no and o.is_delete = 0
         LEFT JOIN ins_orders_costs co ON co.order_no = ot.order_no and co.is_delete = 0

+ 1 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/NewCarJudgeRulesController.java

@@ -59,6 +59,7 @@ public class NewCarJudgeRulesController extends BaseController {
     @Operation(summary = "添加新旧车规则")
     @PostMapping("addNewCar")
     public HttpResult addNewCar(@RequestBody PtlNewCarJudgeRules newCarJudgeRules){
+        newCarJudgeRules.setSystemCode(getUserSystemCode());
         return newCarJudgeRulesService.addNewCar(newCarJudgeRules) ? HttpResult.ok("添加新旧车规则成功") : HttpResult.error("添加新旧车规则失败");
     }
 

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationMapper.java

@@ -27,6 +27,8 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
      * @date 2026/4/27 10:09
      */
     List<SysOrganizationVO> queryUserBindOrganization(String systemCode);
+
+
     /**
      * 获取团队下的人员列表分页
      *

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationUserLinkServiceMapper.java

@@ -13,4 +13,6 @@ public interface SysOrganizationUserLinkServiceMapper extends BaseMapper<SysOrga
     List<SysOrganizationUserLink> getOrganizationUser(@Param("userId") Long userId, @Param("systemCode") String systemCode);
 
     void deleteOrganizationUser(@Param("userId")String userId);
+
+    Long selectByOrgIdCount(String orgId);
 }

+ 6 - 5
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementCostServiceImpl.java

@@ -1,7 +1,6 @@
 package com.jzg.organization.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
@@ -45,9 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -214,7 +211,9 @@ public class PtlAgreementCostServiceImpl extends ServiceImpl<PtlAgreementCostMap
         if (CollectionUtils.isEmpty(list)){
             return null;
         }
-        return BuildDescUtils.buildDesc(companyId, BeanUtil.copyToList(list, PtlAgreementUndwrtRulesAttr.class), agreementUndwrtRulesAttrService.getUndwrtRulesAttrList());
+        String desc = BuildDescUtils.buildDesc(companyId, BeanUtil.copyToList(list, PtlAgreementUndwrtRulesAttr.class), agreementUndwrtRulesAttrService.getUndwrtRulesAttrList());
+        // 两个及以上相邻的逗号(中文","或英文",")合并为一个逗号
+        return StringUtils.mergeAdjacentComma(desc);
     }
 
     public boolean verify(PtlAgreementCostAdd ptlAgreementCostAdd){
@@ -265,7 +264,7 @@ public class PtlAgreementCostServiceImpl extends ServiceImpl<PtlAgreementCostMap
                 if (StringUtils.isNotEmpty(ruleCondition.getMin()) && ruleCondition.getMin().contains(",")){
                     ruleCondition.setMinArray(Arrays.asList(ruleCondition.getMin().split(",")));
                 }else {
-                    ruleCondition.setMinArray(Arrays.asList(ruleCondition.getMin()));
+                    ruleCondition.setMinArray(Collections.singletonList(ruleCondition.getMin()));
                     //ruleCondition.setMinArray(Collections.singletonList(ruleCondition.getMin()));
                 }
 
@@ -412,6 +411,8 @@ public class PtlAgreementCostServiceImpl extends ServiceImpl<PtlAgreementCostMap
             if(item.getRuleDescription() != null && !item.getRuleDescription().isEmpty()){
                 item.setRuleDescription(item.getRuleDescription().substring(0,item.getRuleDescription().length()-1));
             }
+            // ruleDescription中出现两个相邻的","或","时,转换为"或"字
+            item.setRuleDescription(StringUtils.convertAdjacentCommaToOr(item.getRuleDescription()));
             item.setAuditPersonName(userName2Name.getOrDefault(item.getAuditPerson(),item.getAuditPerson()));
         });
         return HttpResult.ok(costManagementVoPage);

+ 9 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementUndwrtRulesServiceImpl.java

@@ -14,6 +14,7 @@ import com.jzg.commons.entity.po.*;
 import com.jzg.commons.entity.vo.AgreementRulesVo;
 import com.jzg.commons.entity.vo.CostListVo;
 import com.jzg.commons.exception.SystemException;
+import com.jzg.commons.util.StringUtils;
 import com.jzg.commons.util.idgen.IdGenerate;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesAttrLinkMapper;
 import com.jzg.organization.mapper.PtlAgreementUndwrtRulesMapper;
@@ -80,6 +81,8 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
             }
             // 相同parentId的规则合并为一条,ruleDescription以","拼接
             rulesVos = mergeByParentId(rulesVos);
+            // ruleDescription中出现两个相邻的","或","时,转换为"或"字
+            rulesVos.forEach(vo -> vo.setRuleDescription(StringUtils.convertAdjacentCommaToOr(vo.getRuleDescription())));
             // 查询费用:对合并后的规则,匹配同一parentId下所有规则的费用
             for (AgreementRulesVo rulesVo : rulesVos) {
                 List<CostListVo> allCostVos = new ArrayList<>();
@@ -109,6 +112,8 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
                         } else {
                             vo.setIsValid(1);  // 已失效
                         }
+                        // costRules中出现两个及以上相邻的逗号(中文","或英文",")时,合并为一个逗号
+                        vo.setCostRules(StringUtils.mergeAdjacentComma(vo.getCostRules()));
                     }));
                 }
                 rulesVo.setCostVoList(allCostVos);
@@ -390,6 +395,8 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
                 String ruleDescription = CollUtil.isNotEmpty(andAttrLinks)
                         ? buildDesc(andAttrLinks, undwrtRulesAttrList)
                         : oldRuleDescription;
+                // 相邻的","或","转换为"或"字
+                ruleDescription = StringUtils.convertAdjacentCommaToOr(ruleDescription);
 
                 if (isExisting) {
                     // 使用 LambdaUpdateWrapper 显式指定更新字段,避免 updateById 将 null 字段写入 SQL
@@ -716,7 +723,8 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
                 }
             }
         }
-        return desc.toString();
+        // 相邻的","或","转换为"或"字
+        return StringUtils.convertAdjacentCommaToOr(desc.toString());
     }
 
     private String radioIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {

+ 2 - 2
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysOrganizationUserLinkServiceImpl.java

@@ -29,8 +29,8 @@ public class SysOrganizationUserLinkServiceImpl extends ServiceImpl<SysOrganizat
     private SysUserJzgInfoService sysUserJzgInfoService;
 
     @Override
-    public Long selectByOrgIdCount(String id) {
-        return sysOrganizationUserLinkServiceMapper.selectCount(new LambdaQueryWrapper<SysOrganizationUserLink>().eq(SysOrganizationUserLink::getOrganizationId, id));
+    public Long selectByOrgIdCount(String orgId) {
+        return sysOrganizationUserLinkServiceMapper.selectByOrgIdCount(orgId);
     }
 
     /**

+ 4 - 1
tenant/organization/src/main/resources/mapper/PtlAgreementCostMapper.xml

@@ -434,6 +434,9 @@
                         #{productId}
                 </foreach>
             </if>
+            <if test="costParam.productId != null and costParam.productId != '' ">
+                AND pc.product_id = #{costParam.productId}
+            </if>
             <if test="costParam.agreementId != null and costParam.agreementId != ''">
                 AND pc.ptl_agreement_id = #{costParam.agreementId}
             </if>
@@ -460,7 +463,7 @@
             <if test="costParam.costRules != null and costParam.costRules.length > 0">
                 AND
                 <foreach collection="costParam.costRules" item="keyword" separator="AND">
-                    pc.cost_rules LIKE CONCAT('%', #{keyword}, '%')
+                    pc.cost_describe LIKE CONCAT('%', #{keyword}, '%')
                 </foreach>
             </if>
             <if test="costParam.agreementStatus != null and costParam.agreementStatus != ''">

+ 8 - 0
tenant/organization/src/main/resources/mapper/SysOrganizationUserLinkServiceMapper.xml

@@ -35,5 +35,13 @@
         </where>
         ORDER BY a.id DESC
     </select>
+    <select id="selectByOrgIdCount" resultType="java.lang.Long">
+        SELECT COUNT(*)
+        FROM sys_organization_user_link soul
+                 INNER JOIN sys_user su ON su.id = soul.user_id AND su.is_delete = 0
+                 INNER JOIN sys_user_jzg_info suji ON suji.user_id = soul.user_id AND suji.is_delete = 0
+        WHERE soul.organization_id = #{orgId}
+          AND soul.is_delete = 0
+    </select>
 
 </mapper>