guoshilong
2023-08-09 f0c26b9f4a033e03dfe4710776c102440e44f9e8
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
@@ -13,6 +13,8 @@
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -32,9 +34,7 @@
      if (hsybGetFuturePo != null && hsybGetFuturePo.getRespCode().equals("200")){
         List<List<String>> data = hsybGetFuturePo.getData();
         //过滤空值数据,过滤过去时间
         List<List<String>> collect =
            data.stream().filter(item -> item.get(0) != null).filter(item -> CommonUtil.strToDate(item.get(0)).after(DateUtil.now())).collect(Collectors.toList());
         List<List<String>> collect = filterPredictData(data);
         return collect;
      }else {
         return null;
@@ -66,4 +66,50 @@
      return null;
   }
   /**
    * 对预测数据进行过滤
    *
    * @param data
    * @return
    */
   public List<List<String>> filterPredictData(List<List<String>> data) {
      String formatter = "yyyy-MM-dd";
      String today = DateUtil.format(new Date(), formatter);
      Long time = new Date().getTime() + 60 * 60 * 24 * 1000;
      Date tomorrowDate = new Date(time);
      String tomorrow = DateUtil.format(tomorrowDate, formatter);
      //过滤空值数据,过滤过去时间
      List<List<String>> collect = data.stream().filter(item -> item.get(0) != null).collect(Collectors.toList());
      Integer index = findIndex(collect, "/");
      if (index>-1){
         collect.get(index).set(0,tomorrow  + collect.get(index).get(0).substring(5));
      }
      for (int i = 0; i < collect.size(); i++) {
         if (i<index && index>-1){
            collect.get(i).set(0,today + " " + collect.get(i).get(0));
         }else if (i>index && index>-1){
            collect.get(i).set(0,tomorrow + " " + collect.get(i).get(0));
         }else if ( i!= index && index == -1){
            collect.get(i).set(0,today + " " + collect.get(i).get(0));
         }
      }
      List<List<String>> filterData =  data.stream().filter(item -> item.get(0) != null).filter(item -> CommonUtil.strToDate(item.get(0)).after(DateUtil.now())).collect(Collectors.toList());
      return filterData;
   }
   public Integer findIndex(List<List<String>> list,String reg){
      for (int i = 0; i < list.size(); i++) {
         if (list.get(i).get(0).indexOf(reg)>-1){
            return    i;
         }
      }
      return -1;
   }
}