guoshilong
2024-01-29 733ca7545a278fe9ea6fa0be906cf28e3f036c60
南科院预测修改,大坝专题汛限水位返回
5 files modified
201 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java 182 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java 8 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java 7 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java 3 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageDetailMapper.xml 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
@@ -49,7 +49,7 @@
        });
    }
    private String resCd = "";
//    private String resCd = "";
    @Override
    public void predictData(String type) {
@@ -57,15 +57,122 @@
        //暂时筛选出这两个水库的数据
        List<DataResChildrenPo> collect = cdList.stream().filter(item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42128140006")).collect(Collectors.toList());
        predict(collect,type);
        if (type.equals("1")) {
            //渗压
            collect.forEach(dataResChildrenPo -> {
                //所有水库请求预报数据
//                if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
                //请求预报水位
                List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
                resCd = dataResChildrenPo.getRes_cd();
//
//        if (type.equals("1")) {
//            //渗压
//            collect.forEach(dataResChildrenPo -> {
//                //所有水库请求预报数据
////                if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
//                //请求预报水位
//                List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
//                resCd = dataResChildrenPo.getRes_cd();
//                if (future != null && future.size() > 0) {
//                    List<PredictWatersPo> po = new ArrayList<>();
//                    future.forEach(item -> {
//                        PredictWatersPo predictWatersPo = new PredictWatersPo();
//                        //设置时间
//                        predictWatersPo.setTime(item.get(0));
//                        //设置预测水位
//                        predictWatersPo.setValue(Double.parseDouble(item.get(2)));
//                        po.add(predictWatersPo);
//                    });
//                    HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type, po);
//                    //循环预测请求
//                    nkyService.hstPredict(arimaPredictReqPo);
//                }
////                }
//            });
//        } else if (type.equals("2")) {
//            //渗流
//            collect.forEach(dataResChildrenPo -> {
//                //所有水库请求预报数据
////                if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
//                //请求预报水位
//                List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
//                resCd = dataResChildrenPo.getRes_cd();
//                if (future != null && future.size() > 0) {
//                    List<PredictWatersPo> po = new ArrayList<>();
//                    future.forEach(item -> {
//                        PredictWatersPo predictWatersPo = new PredictWatersPo();
//                        //设置时间
//                        predictWatersPo.setTime(item.get(0));
//                        //设置预测水位
//                        predictWatersPo.setValue(Double.parseDouble(item.get(2)));
//                        po.add(predictWatersPo);
//                    });
//                    HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type, po);
//                    //循环预测请求
//                    nkyService.hstPredict(arimaPredictReqPo);
//                }
////                }
//            });
//
//
//        } else if (type.equals("3") || type.equals("4") || type.equals("5")) {
//            collect.forEach(dataResChildrenPo -> {
//                //所有水库请求预报数据
////                if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
//                //请求预报水位
//                List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
//                resCd = dataResChildrenPo.getRes_cd();
//                if (future != null && future.size() > 0) {
//                    List<PredictWatersPo> po = new ArrayList<>();
//                    future.forEach(item -> {
//                        PredictWatersPo predictWatersPo = new PredictWatersPo();
//                        //设置时间
//                        predictWatersPo.setTime(item.get(0));
//                        //设置预测水位
//                        predictWatersPo.setValue(Double.parseDouble(item.get(2)));
//                        po.add(predictWatersPo);
//                    });
//                    //循环预测请求(位移一起请求减少请求次数)
//                    HstPredictReqPo arimaPredictReqPoX = new HstPredictReqPo(dataResChildrenPo, "3", po);
//                    nkyService.hstPredict(arimaPredictReqPoX);
//
//                    HstPredictReqPo arimaPredictReqPoY = new HstPredictReqPo(dataResChildrenPo, "4", po);
//                    nkyService.hstPredict(arimaPredictReqPoY);
//
//                    HstPredictReqPo arimaPredictReqPoZ = new HstPredictReqPo(dataResChildrenPo, "5", po);
//                    nkyService.hstPredict(arimaPredictReqPoZ);
//                }
////                }
//            });
//        }
//        resCd = "";
    }
    private void predict(List<DataResChildrenPo> collect, String type) {
        String resCd = "";
        //无数据直接返回
        if (collect.size() == 0){
            return;
        }
        List<List<String>> future = new ArrayList<>();
        if (type.equals("1") || type.equals("2")){
            for (int i = 0; i < collect.size(); i++) {
                DataResChildrenPo dataResChildrenPo = collect.get(i);
                String currentResCd = dataResChildrenPo.getRes_cd();
                //第一个水库
                if (future.size() == 0 && resCd.equals("")){
                    future = hsybService.getFuture(currentResCd);
                    //当前水库
                    resCd = currentResCd;
                } else if (!resCd.equals(currentResCd)) {
                    //其他水库,获取新的预测数据
                    future = hsybService.getFuture(currentResCd);
                    //更换为新水库
                    resCd = currentResCd;
                }
                //预测数据构造请求数据
                if (future != null && future.size() > 0) {
                    List<PredictWatersPo> po = new ArrayList<>();
                    future.forEach(item -> {
@@ -80,41 +187,28 @@
                    //循环预测请求
                    nkyService.hstPredict(arimaPredictReqPo);
                }
//                }
            });
        } else if (type.equals("2")) {
            //渗流
            collect.forEach(dataResChildrenPo -> {
                //所有水库请求预报数据
//                if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
                //请求预报水位
                List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
                resCd = dataResChildrenPo.getRes_cd();
                if (future != null && future.size() > 0) {
                    List<PredictWatersPo> po = new ArrayList<>();
                    future.forEach(item -> {
                        PredictWatersPo predictWatersPo = new PredictWatersPo();
                        //设置时间
                        predictWatersPo.setTime(item.get(0));
                        //设置预测水位
                        predictWatersPo.setValue(Double.parseDouble(item.get(2)));
                        po.add(predictWatersPo);
                    });
                    HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type, po);
                    //循环预测请求
                    nkyService.hstPredict(arimaPredictReqPo);
            }
        }else if (type.equals("3") || type.equals("4") || type.equals("5")){
            for (int i = 0; i < collect.size(); i++) {
                DataResChildrenPo dataResChildrenPo = collect.get(i);
                String currentResCd = dataResChildrenPo.getRes_cd();
                //第一个水库
                if (future.size() == 0 && resCd.equals("")){
                    future = hsybService.getFuture(currentResCd);
                    //当前水库
                    resCd = currentResCd;
                } else if (!resCd.equals(currentResCd)) {
                    //其他水库,获取新的预测数据
                    future = hsybService.getFuture(currentResCd);
                    //更换为新水库
                    resCd = currentResCd;
                }
//                }
            });
        } else if (type.equals("3") || type.equals("4") || type.equals("5")) {
            collect.forEach(dataResChildrenPo -> {
                //所有水库请求预报数据
//                if (!resCd.equals(dataResChildrenPo.getRes_cd())) {
                //请求预报水位
                List<List<String>> future = hsybService.getFuture(dataResChildrenPo.getRes_cd());
                resCd = dataResChildrenPo.getRes_cd();
                //预测数据构造请求数据
                if (future != null && future.size() > 0) {
                    List<PredictWatersPo> po = new ArrayList<>();
                    future.forEach(item -> {
@@ -135,10 +229,8 @@
                    HstPredictReqPo arimaPredictReqPoZ = new HstPredictReqPo(dataResChildrenPo, "5", po);
                    nkyService.hstPredict(arimaPredictReqPoZ);
                }
//                }
            });
            }
        }
        resCd = "";
    }
    @Override
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
@@ -5,6 +5,7 @@
import cn.gistack.nky.resultpojo.HsybGetFuturePo;
import cn.gistack.nky.service.IHsybService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -19,6 +20,7 @@
@Service
@AllArgsConstructor
@Slf4j
public class HsybServiceImpl implements IHsybService {
    private static String ONLINE = "http://10.42.7.148:50001";
@@ -56,8 +58,8 @@
            url = ONLINE + url;
        }
//        Long param = Long.parseLong(jsonparams);
        System.out.println("请求参数:" + jsonparams);
        log.info("预测水位请求参数:" + jsonparams);
        // 声明一个header变量
        HttpHeaders headers = new HttpHeaders();
        // 设置为json格式
@@ -71,7 +73,7 @@
        RestTemplate template = new RestTemplate();
        try {
            HsybGetFuturePo hsybGetFuturePo = template.postForObject(url, httpEntity, HsybGetFuturePo.class);
            System.out.println(hsybGetFuturePo.toString());
            log.info("预测水位返回结果:" + hsybGetFuturePo.toString());
            return hsybGetFuturePo;
        } catch (Exception e) {
            System.out.println(e);
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/NkyServiceImpl.java
@@ -10,6 +10,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@@ -25,6 +26,7 @@
 */
@Service
@AllArgsConstructor
@Slf4j
public class NkyServiceImpl implements INkyService {
@@ -128,10 +130,11 @@
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        HttpEntity<String> httpEntity = new HttpEntity(jsonparams, headers);
        System.out.println("请求参数:"+ jsonparams);
        log.info("请求地址:"+ url);
        log.info("请求参数:"+ jsonparams);
        RestTemplate template = new RestTemplate();
        String resultStr = template.postForObject(url, httpEntity, String.class);
        System.out.println(resultStr);
        log.info("请求结果:"+ resultStr);
        JSONObject jsonObject = JSONObject.parseObject(resultStr);
        return jsonObject;
    }
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
@@ -7,6 +7,7 @@
import cn.gistack.nky.resultpojo.ZtResultPo;
import cn.gistack.nky.service.IZtApiService;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -27,6 +28,7 @@
 * @DATE: 2023/7/28 17:16
 */
@Service
@Slf4j
public class ZtApiServiceImpl implements IZtApiService {
    //本地测试
@@ -110,6 +112,7 @@
        HttpEntity<String> httpEntity = new HttpEntity(null, headers);
        RestTemplate template = new RestTemplate();
        log.info("请求的url为:{}", url);
        ResponseEntity<ZtResultPo> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo.class,params);
        if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
            List<DataResChildrenPo> children = new ArrayList<>();
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageDetailMapper.xml
@@ -92,6 +92,7 @@
            MAX(res_reg_code) res_reg_code,
            MAX(res_name) res_name,
            MAX(rz) rz,
            MAX(tb_flse_lim_stag) tb_flse_lim_stag,
            MAX(tb_weir_top_elevation) tb_weir_top_elevation,
            MAX(tb_norm_pool_stag) tb_norm_pool_stag,
            MAX(tb_control_z) tb_control_z,