瀏覽代碼

规则开发

zhoutg 3 年之前
父節點
當前提交
823e3dd62d

+ 14 - 9
src/main/java/com/diagbot/rule/CommonRule.java

@@ -401,15 +401,20 @@ public class CommonRule {
             List<T> orginNameList = map.get(ruleBaseDTO.getBaseLibName());
             if (map.get(ruleBaseDTO.getBaseLibName()) != null) {
                 for (T bean : orginNameList) {
-                    String orginName = ReflectUtil.getProperty(bean, "name");
-                    // A与B不宜同时进行, B与A不宜同时进行 只能提示一个
-                    if (!set.contains(ruleSimpleDTO.getLibName() + "******" + orginName)) {
-                        set.add(ruleSimpleDTO.getLibName() + "******" + orginName);
-                        set.add(orginName + "******" + ruleSimpleDTO.getLibName());
-                        ruleSimpleDTO.setContent(orginName);
-                        ruleSimpleDTO.setConType(conType);
-                        BillMsg billMsg = msgNewUtil.getCommonBillMsg(ruleSimpleDTO);
-                        CoreUtil.addBeanToList(billMsgList, billMsg);
+                    String orderDateValue = ReflectUtil.getProperty(ruleSimpleDTO, "dateValue");
+                    String beanDateValue = ReflectUtil.getProperty(bean, "dateValue");
+                    int dateFlag = CoreUtil.compareTime(beanDateValue, orderDateValue);
+                    if (dateFlag == 1) {
+                        String orginName = ReflectUtil.getProperty(bean, "name");
+                        // A与B不宜同时进行, B与A不宜同时进行 只能提示一个
+                        // if (!set.contains(ruleSimpleDTO.getLibName() + "******" + orginName)) {
+                        //     set.add(ruleSimpleDTO.getLibName() + "******" + orginName);
+                        //     set.add(orginName + "******" + ruleSimpleDTO.getLibName());
+                            ruleSimpleDTO.setContent(orginName);
+                            ruleSimpleDTO.setConType(conType);
+                            BillMsg billMsg = msgNewUtil.getCommonBillMsg(ruleSimpleDTO);
+                            CoreUtil.addBeanToList(billMsgList, billMsg);
+                        // }
                     }
                 }
             }

+ 10 - 11
src/main/java/com/diagbot/rule/GroupRule.java

@@ -137,25 +137,24 @@ public class GroupRule {
                     break;
                 case "未经产妇":
                     regex = "(\\d)-(\\d)-(\\d)-(\\d)";
-                    if(sex == 2 && StringUtil.isNotBlank(marital) && RegexUtil.getRegexRes(marital,regex)){
-                        if(Integer.parseInt(RegexUtil.getRegexData(marital,regex,1))
-                                + Integer.parseInt(RegexUtil.getRegexData(marital,regex,2))
-                                +Integer.parseInt(RegexUtil.getRegexData(marital,regex,3)) == 0){
+                    if (sex == 2 && StringUtil.isNotBlank(marital) && RegexUtil.getRegexRes(marital, regex)) {
+                        if (Integer.parseInt(RegexUtil.getRegexData(marital, regex, 1))
+                                + Integer.parseInt(RegexUtil.getRegexData(marital, regex, 2))
+                                + Integer.parseInt(RegexUtil.getRegexData(marital, regex, 3)) == 0) {
                             flag = true;
                         }
-                        break;
                     }
+                    break;
                 case "经产妇":
                     regex = "(\\d)-(\\d)-(\\d)-(\\d)";
-                    if(sex == 2 && StringUtil.isNotBlank(marital) && RegexUtil.getRegexRes(marital,regex)){
-                        if(Integer.parseInt(RegexUtil.getRegexData(marital,regex,1))
-                                + Integer.parseInt(RegexUtil.getRegexData(marital,regex,2))
-                                +Integer.parseInt(RegexUtil.getRegexData(marital,regex,3)) >= 1){
+                    if (sex == 2 && StringUtil.isNotBlank(marital) && RegexUtil.getRegexRes(marital, regex)) {
+                        if (Integer.parseInt(RegexUtil.getRegexData(marital, regex, 1))
+                                + Integer.parseInt(RegexUtil.getRegexData(marital, regex, 2))
+                                + Integer.parseInt(RegexUtil.getRegexData(marital, regex, 3)) >= 1) {
                             flag = true;
                         }
-                        break;
                     }
-
+                    break;
                 default:
                     break;
             }

+ 27 - 0
src/main/java/com/diagbot/util/CoreUtil.java

@@ -1241,6 +1241,33 @@ public class CoreUtil {
         return flag;
     }
 
+    /**
+     * 比较时间,endDateStr >= startDateStr
+     * @param startDateStr
+     * @param endDateStr
+     * @return -1:无法比较或出错,0:endDateStr < startDateStr,1:endDateStr >= startDateStr
+     */
+    public static int compareTime(String startDateStr, String endDateStr) {
+        int flag = -1;
+        if (StringUtil.isBlank(startDateStr) || StringUtil.isBlank(endDateStr)) {
+            return flag;
+        }
+        try {
+            Date startDate = CatalogueUtil.parseStringDate(startDateStr);
+            Date endDate = CatalogueUtil.parseStringDate(endDateStr);
+            Long timeStart = startDate.getTime();
+            Long timeEnd = endDate.getTime();
+            if (timeEnd >= timeStart) {
+                flag = 1;
+            } else {
+                flag = 0;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return flag;
+    }
+
     public static void main(String[] args) {
         List<PushBaseDTO> pushBaseDTOList = ListUtil.newArrayList();
         PushBaseDTO pushBaseDTO = new PushBaseDTO();