guoshilong
2023-08-16 69fed82b8803220f661eebbda8eb5645f09bd136
水位预报数据处理
1 files modified
57 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java 57 ●●●●● patch | view | raw | blame | history
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){