skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
@@ -3,31 +3,38 @@ import cn.gistack.nky.entity.HstPredict; import cn.gistack.nky.mapper.HstPredictMapper; import cn.gistack.nky.requestpojo.HstPredictReqPo; import cn.gistack.nky.requestpojo.PredictWatersPo; import cn.gistack.nky.requestpojo.QueryReqPo; import cn.gistack.nky.resultpojo.DataResChildrenPo; import cn.gistack.nky.service.IHstPredictService; import cn.gistack.nky.service.IHsybService; import cn.gistack.nky.service.INkyService; import cn.gistack.nky.service.IZtApiService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.utils.ObjectUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @AllArgsConstructor @Service public class HstPredictServiceImpl extends ServiceImpl<HstPredictMapper, HstPredict> implements IHstPredictService { @Autowired private INkyService nkyService; @Autowired private IZtApiService ztApiService; @Autowired private IHsybService hsybService; private final INkyService nkyService; private final IZtApiService ztApiService; @Override public void getData(String type) { List<DataResChildrenPo> cdList = getCdList(type); cdList.forEach(dataResChildrenPo -> { List<DataResChildrenPo> collect = cdList.stream().filter(item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42128140006")).collect(Collectors.toList()); collect.forEach(dataResChildrenPo -> { //循环请求预测结果 QueryReqPo queryReqPo = new QueryReqPo(dataResChildrenPo,type); //请求预测结果 @@ -39,14 +46,72 @@ }); } private String resCd = ""; @Override public void predictData(String type) { List<DataResChildrenPo> cdList = getCdList(type); cdList.forEach(dataResChildrenPo -> { HstPredictReqPo arimaPredictReqPo = new HstPredictReqPo(dataResChildrenPo, type); //暂时筛选出这两个水库的数据 List<DataResChildrenPo> collect = cdList.stream().filter(item -> item.getRes_cd().equals("42011640018") || item.getRes_cd().equals("42128140006")).collect(Collectors.toList()); 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")){ //渗流 }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 = ""; } @Override skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
New file @@ -0,0 +1,69 @@ package cn.gistack.nky.service.impl; 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; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import java.util.List; import java.util.stream.Collectors; @Service @AllArgsConstructor public class HsybServiceImpl implements IHsybService { private static String GET_FUTURE = "https://sk.hubeishuiyi.cn/hsybApi/api/fh-admin/skkr/getFuture"; private static String AUTHORIZATION = "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJBRE1JTiIsIlVzZXJJZCI6IjEiLCJzY29wZSI6WyJhbGwiXSwiVXNlclJlYWxOYW1lIjoi6LaF57qn566h55CG5ZGYIiwiVXNlclh6cWhkbSI6IjQyMDUiLCJleHAiOjI1MTk3NzIwMTAsImp0aSI6ImExNTcxYzk1LTBkNjMtNDkyYi1iOWEyLTE2ZTIzNTQ5ZTY1ZiIsImNsaWVudF9pZCI6InVzZXItc2VydmljZSJ9.ebNVZrw9LbhKaj2w6RR8b2wccQiDkhvBeq79SxxCK-yWiOlIFqBkotTN4TNJg8umcpyYvLILwvqXWRJhffEtgi25sX2y6MqLIWM4kMZ9d8ptdnSmTpBPhltSiQOM0KFa1kl5nSDCBwYOLn-pESJglam76cjpgZNoC88x3iNHacdiXDItY0rtY85HrQ26uyJu9UovKtmYmZRHsIbGMpDta5Q1p4vfaCIr-YUayDrCweZJiQDEEcOSpWJ7O7RMk3pRkX_4UmPHFzrOI2lMp1jQIhxnSTE7EVAz_4z8h8r46muSkpF54Ic4XSawHKqdSLHx8T05LB0MpvOzWMPS6c1uHA"; @Override public List<List<String>> getFuture(String resCd) { HsybGetFuturePo hsybGetFuturePo = apiRequest(GET_FUTURE, resCd); 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()); return collect; }else { return null; } } public HsybGetFuturePo apiRequest(String url, String jsonparams){ // Long param = Long.parseLong(jsonparams); System.out.println("请求参数:"+ jsonparams); // 声明一个header变量 HttpHeaders headers = new HttpHeaders(); // 设置为json格式 MediaType mediaType = MediaType.parseMediaType("application/json;charset=utf-8"); headers.setContentType(mediaType); //设置请求头 headers.set("Authorization",AUTHORIZATION); headers.add("Accept", MediaType.APPLICATION_JSON.toString()); HttpEntity<String> httpEntity = new HttpEntity(jsonparams, headers); RestTemplate template = new RestTemplate(); try { HsybGetFuturePo hsybGetFuturePo = template.postForObject(url, httpEntity, HsybGetFuturePo.class); System.out.println(hsybGetFuturePo.toString()); return hsybGetFuturePo; }catch (Exception e){ System.out.println(e); } return null; } } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ZtApiServiceImpl.java
@@ -5,6 +5,7 @@ import cn.gistack.nky.resultpojo.DataResPo; import cn.gistack.nky.resultpojo.ZtResultPo; import cn.gistack.nky.service.IZtApiService; import com.alibaba.fastjson.JSONObject; import org.springblade.core.tool.utils.ObjectUtil; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -26,6 +27,8 @@ */ @Service public class ZtApiServiceImpl implements IZtApiService { private static final String API_KEY = "F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A"; /** * 实时渗压监测 @@ -71,7 +74,7 @@ // 声明一个header变量 HttpHeaders headers = new HttpHeaders(); // 设置apikey headers.set("apikey","F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A"); headers.set("apikey",API_KEY); HttpEntity<String> httpEntity = new HttpEntity(null, headers); @@ -103,7 +106,7 @@ // 声明一个header变量 HttpHeaders headers = new HttpHeaders(); // 设置apikey headers.set("apikey","F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A"); headers.set("apikey",API_KEY); HttpEntity<String> httpEntity = new HttpEntity(null, headers);