浏览代码

月经期规则修改

zhoutg 4 年之前
父节点
当前提交
36b35406ee
共有 2 个文件被更改,包括 22 次插入20 次删除
  1. 8 1
      src/main/java/com/diagbot/rule/GroupRule.java
  2. 14 19
      src/main/java/com/diagbot/util/CoreUtil.java

+ 8 - 1
src/main/java/com/diagbot/rule/GroupRule.java

@@ -57,7 +57,14 @@ public class GroupRule {
                     boolean rs = matcher.find();
                     Matcher matcher1 = pattern.matcher(menstrual);
                     boolean rs1 = matcher1.find();
-                    if (rs || rs1 || symptom.contains("经期") || menstrual.contains("经期")) {
+
+                    String regex2 = "(?<!上一次)经期";
+                    pattern = Pattern.compile(regex2);
+                    Matcher matcher2 = pattern.matcher(symptom);
+                    boolean rs2 = matcher2.find();
+                    Matcher matcher3 = pattern.matcher(menstrual);
+                    boolean rs3 = matcher3.find();
+                    if (rs || rs1 || rs2 || rs3) {
                         BillMsg commonBillMsg = MsgUtil.getCommonBillMsg(
                                 billNeoMaxDTO.getOrderName(), billNeoMaxDTO.getOrderStandName(),
                                 "月经期", type, billNeoMaxDTO.getType());

+ 14 - 19
src/main/java/com/diagbot/util/CoreUtil.java

@@ -950,24 +950,21 @@ public class CoreUtil {
                 .collect(Collectors.toList());
     }
 
-    public static <T> List<T> setUninameFromDetail(List<T> list, String targetProperty)  {
-        if (ListUtil.isEmpty(list)) {
-            return new ArrayList<>();
-        }
-        for (T r:list) {
-            if(StringUtil.isBlank((String)getFieldValue(r, "uniqueName"))){
-                Field bigField = getDeclaredField(r, "uniqueName") ;
-                bigField.setAccessible(true);
-                String detailName = (String)getFieldValue(r, targetProperty);
-
-                try {
-                    bigField.set(r, detailName);
-                } catch (IllegalAccessException e) {
-                    e.printStackTrace();
-                }
+    /**
+     * 将列表中uniqueName为空的值,用其他属性值赋值
+     *
+     * @param list
+     * @param targetProperty
+     * @param <T>
+     */
+    public static <T> void setUninameFromDetail(List<T> list, String targetProperty) {
+        for (T r : list) {
+            String value = (String)getFieldValue(r, "uniqueName");
+            if (StringUtil.isBlank(value)) {
+                String detailName = (String) getFieldValue(r, targetProperty);
+                setFieldValue(r, targetProperty, detailName);
             }
         }
-        return list;
     }
 
     /**
@@ -1117,9 +1114,7 @@ public class CoreUtil {
         Lis lis1 = new Lis();
         lis1.setDetailName("jjaj");
         lis.add(lis1);
-        List<Lis> lisList = setUninameFromDetail(lis, "detailName");
+        setUninameFromDetail(lis, "detailName");
         System.out.println();
-
-
     }
 }