package cn.gistack.nky.service.impl;
|
|
import cn.gistack.common.utils.SpringContextUtil;
|
import cn.gistack.nky.resultpojo.*;
|
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.springblade.core.tool.utils.StringUtil;
|
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpMethod;
|
import org.springframework.http.ResponseEntity;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.client.RestTemplate;
|
|
import java.util.ArrayList;
|
import java.util.LinkedHashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @PROJECT_NAME: skjcmanager
|
* @DESCRIPTION:
|
* @USER: aix
|
* @DATE: 2023/7/28 17:16
|
*/
|
@Service
|
@Slf4j
|
public class ZtApiServiceImpl implements IZtApiService {
|
|
//本地测试
|
private static final String LOCAL = "https://sk.hubeishuiyi.cn";
|
//线上
|
private static final String ONLINE = "http://10.42.6.192";
|
|
|
private static final String API_KEY = "F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A";
|
|
/**
|
* 实时渗压监测
|
*/
|
private static final String LASTEST_OSMOTIC_PRESSURE = "/services/1234567890ABCDEFGHIJKLMN/monitor/lastest_osmotic_pressure/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
|
|
/**
|
* 位移监测
|
*/
|
private static final String WY_API ="/services/1234567890ABCDEFGHIJKLMN/monitor/wy/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
|
|
/**
|
* 渗流监测
|
*/
|
private static final String SL_API ="/services/1234567890ABCDEFGHIJKLMN/monitor/sl/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
|
|
private static final String RES_DAM_MONITOR ="/services/1234567890ABCDEFGHIJKLMN/res_dam_monitor/api?province_cd=420000000000&res_nm=";
|
private static final String BASE_CD ="/services/1234567890ABCDEFGHIJKLMN/base/cd/api";
|
|
|
int getSyCount = 0;
|
@Override
|
public List<DataResChildrenPo> getSy() {
|
getSyCount = getSyCount +1;
|
Map<String, Object> params = new LinkedHashMap<>();
|
try {
|
log.info("第{}次请求",getSyCount);
|
List<DataResChildrenPo> get = getData(LASTEST_OSMOTIC_PRESSURE, "get", params);
|
getSyCount = 0;
|
return get;
|
}catch (Exception e){
|
e.printStackTrace();
|
if (getSyCount<=5){
|
return this.getSy();
|
}else {
|
List<DataResChildrenPo> list = new ArrayList<>();
|
return list;
|
}
|
}
|
}
|
|
@Override
|
public List<DataResChildrenPo> getWy() {
|
Map<String, Object> params = new LinkedHashMap<>();
|
return getData(WY_API, "get", params);
|
}
|
|
int getResSyCount = 0;
|
@Override
|
public List<DataResPo> getResSy() {
|
getResSyCount = getResSyCount +1;
|
Map<String, Object> params = new LinkedHashMap<>();
|
try {
|
log.info("第{}次请求",getResSyCount);
|
List<DataResPo> get = getResData(LASTEST_OSMOTIC_PRESSURE, "get", params);
|
getResSyCount = 0;
|
return get;
|
}catch (Exception e){
|
e.printStackTrace();
|
if (getResSyCount<=5){
|
return this.getResSy();
|
}else {
|
List<DataResPo> list = new ArrayList<>();
|
return list;
|
}
|
}
|
}
|
|
@Override
|
public List<DataResPo> getResWy() {
|
Map<String, Object> params = new LinkedHashMap<>();
|
return getResData(WY_API, "get", params);
|
}
|
|
@Override
|
public List<DataResPo> getResSl() {
|
Map<String, Object> params = new LinkedHashMap<>();
|
return getResData(SL_API, "get", params);
|
}
|
|
@Override
|
public List<DataResChildrenPo> getSl() {
|
Map<String, Object> params = new LinkedHashMap<>();
|
return getData(SL_API, "get", params);
|
}
|
|
@Override
|
public List<ResDamMonitorResult> getResDamMonitor() {
|
Map<String, Object> params = new LinkedHashMap<>();
|
return getResDamMonitorResult(RES_DAM_MONITOR, "get", params);
|
}
|
|
@Override
|
public List<BaseCd> getBaseCd(String resGuid, String type) {
|
Map<String, Object> params = new LinkedHashMap<>();
|
String url = BASE_CD + StringUtil.format("?res_cd={}&type={}",resGuid,type);
|
// 获取环境
|
String activeProfile = SpringContextUtil.getActiveProfile();
|
if (activeProfile.equals("dev")) {
|
url = LOCAL+ url ;
|
}
|
if (activeProfile.equals("prod")) {
|
url = ONLINE+ url ;
|
}
|
if (activeProfile.equals("test")) {
|
url = ONLINE + url;
|
}
|
|
HttpMethod method;
|
method = HttpMethod.GET;
|
// 声明一个header变量
|
HttpHeaders headers = new HttpHeaders();
|
// 设置apikey
|
headers.set("apikey",API_KEY);
|
|
HttpEntity<String> httpEntity = new HttpEntity(null, headers);
|
log.info("中台请求地址:{}", url);
|
RestTemplate template = new RestTemplate();
|
ResponseEntity<ZtResultPo2> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo2.class,params);
|
List<BaseCd> returnResult = new ArrayList<>();
|
if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
|
returnResult = ztResultPojoResponseEntity.getBody().getData();
|
}
|
return returnResult;
|
}
|
|
private List<DataResChildrenPo> getData(String url, String type, Map<String, Object> params) {
|
// 获取环境
|
String activeProfile = SpringContextUtil.getActiveProfile();
|
if (activeProfile.equals("dev")) {
|
url = LOCAL+ url ;
|
}
|
if (activeProfile.equals("prod")) {
|
url = ONLINE+ url ;
|
}
|
if (activeProfile.equals("test")) {
|
url = ONLINE + url;
|
}
|
|
HttpMethod method;
|
if (type.toLowerCase().equals("get".toLowerCase())) {
|
method = HttpMethod.GET;
|
} else {
|
method = HttpMethod.POST;
|
}
|
// 声明一个header变量
|
HttpHeaders headers = new HttpHeaders();
|
// 设置apikey
|
headers.set("apikey",API_KEY);
|
|
HttpEntity<String> httpEntity = new HttpEntity(null, headers);
|
|
RestTemplate template = new RestTemplate();
|
log.info("中台请求地址:{}", url);
|
ResponseEntity<ZtResultPo> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo.class,params);
|
if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
|
List<DataResChildrenPo> children = new ArrayList<>();
|
List<DataResPo> data = ztResultPojoResponseEntity.getBody().getData().getData();
|
//遍历数据,存为测站子集
|
data.forEach(dataResPo -> {
|
if (dataResPo.getChildren() != null){
|
dataResPo.getChildren().forEach(dataResChildrenPo -> {
|
children.add(dataResChildrenPo);
|
});
|
}
|
});
|
return children;
|
}
|
return null;
|
}
|
|
private List<DataResPo> getResData(String url, String type, Map<String, Object> params){
|
|
// 获取环境
|
String activeProfile = SpringContextUtil.getActiveProfile();
|
if (activeProfile.equals("dev")) {
|
url = LOCAL+ url ;
|
}
|
if (activeProfile.equals("prod")) {
|
url = ONLINE+ url ;
|
}
|
if (activeProfile.equals("test")) {
|
url = ONLINE + url;
|
}
|
|
|
HttpMethod method;
|
if (type.toLowerCase().equals("get".toLowerCase())) {
|
method = HttpMethod.GET;
|
} else {
|
method = HttpMethod.POST;
|
}
|
// 声明一个header变量
|
HttpHeaders headers = new HttpHeaders();
|
// 设置apikey
|
headers.set("apikey",API_KEY);
|
|
HttpEntity<String> httpEntity = new HttpEntity(null, headers);
|
log.info("中台请求地址:{}", url);
|
RestTemplate template = new RestTemplate();
|
ResponseEntity<ZtResultPo> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo.class,params);
|
if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
|
List<DataResPo> data = ztResultPojoResponseEntity.getBody().getData().getData();
|
return data;
|
}
|
return null;
|
}
|
|
private List<ResDamMonitorResult> getResDamMonitorResult(String url, String type, Map<String, Object> params){
|
|
// 获取环境
|
String activeProfile = SpringContextUtil.getActiveProfile();
|
if (activeProfile.equals("dev")) {
|
url = LOCAL+ url ;
|
}
|
if (activeProfile.equals("prod")) {
|
url = ONLINE+ url ;
|
}
|
if (activeProfile.equals("test")) {
|
url = ONLINE + url;
|
}
|
|
|
HttpMethod method;
|
if (type.toLowerCase().equals("get".toLowerCase())) {
|
method = HttpMethod.GET;
|
} else {
|
method = HttpMethod.POST;
|
}
|
// 声明一个header变量
|
HttpHeaders headers = new HttpHeaders();
|
// 设置apikey
|
headers.set("apikey",API_KEY);
|
|
HttpEntity<String> httpEntity = new HttpEntity(null, headers);
|
log.info("中台请求地址:{}", url);
|
RestTemplate template = new RestTemplate();
|
ResponseEntity<ZtResult> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResult.class,params);
|
if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
|
List<ResDamMonitorResult> resDamMonitorResultList = ztResultPojoResponseEntity.getBody().getResultList();
|
return resDamMonitorResultList;
|
}
|
return null;
|
}
|
|
}
|