guoshilong
2023-08-16 69fed82b8803220f661eebbda8eb5645f09bd136
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
@@ -3,8 +3,6 @@
import cn.gistack.common.utils.CommonUtil;
import cn.gistack.nky.resultpojo.HsybGetFuturePo;
import cn.gistack.nky.service.IHsybService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.http.HttpEntity;
@@ -82,37 +80,54 @@
      Date tomorrowDate = new Date(time);
      String tomorrow = DateUtil.format(tomorrowDate, formatter);
      //过滤空值数据,过滤过去时间
      String nowHour = DateUtil.format(new Date(),"HH");
      //过滤空值数据
      List<List<String>> collect = data.stream().filter(item -> item.get(0) != null).collect(Collectors.toList());
      Integer index = findIndex(collect, "/");
      //对0点时间添加日期
      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));
      //切割过去数据
      Integer nowIndex = findIndex(collect, nowHour);
      List<List<String>> subList = collect.subList(nowIndex, collect.size());
      int index = -1;
      //添加日期
      for (int i = 0; i < subList.size(); i++) {
         List<String> temp = subList.get(i);
         if (index == -1 && temp.get(0).indexOf("/")>-1){
            index = i;
            temp.set(0,tomorrow + " " +temp.get(0).substring(5));
         }
         if (index != -1){
            temp.set(0,tomorrow + " " + temp.get(0).substring(5));
         }else {
            //给后面的时间添加今天的日期
            temp.set(0,today + " " +  temp.get(0));
         }
      }
      //筛选出未来时间
      List<List<String>> filterData =  collect.stream().filter(item -> CommonUtil.strToDate(item.get(0)).after(DateUtil.now())).collect(Collectors.toList());
      //截取掉时间部分
      filterData.forEach(e->{
      subList.forEach(e->{
         e.set(0,e.get(0).split(" ")[0]);
      });
      //去除重复数据
      List<List<String>> collect1 = filterData.stream().distinct().collect(Collectors.toList());
      List<List<String>> distinctList = subList.stream().distinct().collect(Collectors.toList());
      return collect1;
      //去重
      for  ( int  i  =   0 ; i  <  distinctList.size()  -   1 ; i ++ )  {
         for  ( int  j  =  distinctList.size()  -   1 ; j  >  i; j -- )  {
            // 这里是对象的比较,如果去重条件不一样,在这里修改即可
            if  (distinctList.get(j).get(0).equals(distinctList.get(i).get(0)))  {
               distinctList.remove(i);
            }
         }
      }
      return distinctList;
   }
   public Integer findIndex(List<List<String>> list,String reg){