Browse Source

dateMerge 报错问题修改

chenzhenguo 1 năm trước cách đây
mục cha
commit
1e9c5eac24

+ 19 - 16
dgtis-modules/dgtis-modules-data/src/main/java/com/dgtis/data/api/CustomerApiController.java

@@ -1835,26 +1835,29 @@ public class CustomerApiController {
 
     public List<PolicyDate> dateMerge(List<PolicyDate> policyDates) {
         List<PolicyDate> rst = new ArrayList<>();
-        rst.add(policyDates.get(0));
-        for (int i = 1, j = 0; i < policyDates.size(); i++) {
-            PolicyDate ip = policyDates.get(i);
-            PolicyDate jp = rst.get(j);
-            int isje = ip.getStartDate().compareTo(jp.getEndDate());
-            if (isje <= 0) {
-                // next start 在 last end之前,要判断next end位置
-                int ieje = ip.getEndDate().compareTo(jp.getEndDate());
-                if (ieje <= 0) {
-                    //nothing 说明下一个时间范围包含在上一个时间范围内,不做任何操作
+        if(null!=policyDates&&policyDates.size()>0){
+            rst.add(policyDates.get(0));
+            for (int i = 1, j = 0; i < policyDates.size(); i++) {
+                PolicyDate ip = policyDates.get(i);
+                PolicyDate jp = rst.get(j);
+                int isje = ip.getStartDate().compareTo(jp.getEndDate());
+                if (isje <= 0) {
+                    // next start 在 last end之前,要判断next end位置
+                    int ieje = ip.getEndDate().compareTo(jp.getEndDate());
+                    if (ieje <= 0) {
+                        //nothing 说明下一个时间范围包含在上一个时间范围内,不做任何操作
+                    } else {
+                        // 说明下一个结束时间在上一个结束时间之后,更新结束时间
+                        jp.setEndDate(ip.getEndDate());
+                    }
                 } else {
-                    // 说明下一个结束时间在上一个结束时间之后,更新结束时间
-                    jp.setEndDate(ip.getEndDate());
+                    // 下一个开始时间在上一个结束时间之后,说明这又是一个新的时间范围,加入rst
+                    rst.add(ip);
+                    j++;
                 }
-            } else {
-                // 下一个开始时间在上一个结束时间之后,说明这又是一个新的时间范围,加入rst
-                rst.add(ip);
-                j++;
             }
         }
+
         return rst;
     }