Bläddra i källkod

fix 承保规则中的费用规则如果出现两个“,”则改成一个“;”

liub 3 veckor sedan
förälder
incheckning
5849b36d1a

+ 15 - 1
commons/src/main/java/com/jzg/commons/util/StringUtils.java

@@ -795,6 +795,20 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
         if (str == null) {
             return null;
         }
-        return str.replaceAll("[,,]{2,}", "; 或 ");
+        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");
     }
 }

+ 3 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/PtlAgreementCostServiceImpl.java

@@ -211,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){

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

@@ -112,6 +112,8 @@ public class PtlAgreementUndwrtRulesServiceImpl extends ServiceImpl<PtlAgreement
                         } else {
                             vo.setIsValid(1);  // 已失效
                         }
+                        // costRules中出现两个及以上相邻的逗号(中文","或英文",")时,合并为一个逗号
+                        vo.setCostRules(StringUtils.mergeAdjacentComma(vo.getCostRules()));
                     }));
                 }
                 rulesVo.setCostVoList(allCostVos);