|
@@ -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;
|
|
|
}
|
|
|
|