Browse Source

Merge remote-tracking branch 'origin/develop' into develop

develop
zhaoxianglong 8 months ago
parent
commit
1452524049
  1. 494
      zc-business/src/main/java/com/zc/business/task/ExternalInterfaceMonitoringTask.java

494
zc-business/src/main/java/com/zc/business/task/ExternalInterfaceMonitoringTask.java

@ -20,24 +20,20 @@ import com.zc.business.service.impl.DcTrafficStatisticsServiceImpl;
import com.zc.common.core.httpclient.OkHttp; import com.zc.common.core.httpclient.OkHttp;
import com.zc.common.core.httpclient.exception.HttpException; import com.zc.common.core.httpclient.exception.HttpException;
import com.zc.common.core.httpclient.request.RequestParams; import com.zc.common.core.httpclient.request.RequestParams;
import io.swagger.annotations.ApiParam;
import okhttp3.*; import okhttp3.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.Date;
import java.util.zip.GZIPInputStream; import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/** /**
* 外部接口监控 * 外部接口监控
@ -45,11 +41,17 @@ import java.util.zip.GZIPInputStream;
@Component @Component
public class ExternalInterfaceMonitoringTask { public class ExternalInterfaceMonitoringTask {
// 视频平台token
private static String videoTOKEN;
// 语音广播token
private static String voiceBroadcastingToken;
@Resource @Resource
private ExternalInterfaceMonitoringMapper externalInterfaceMonitoringMapper; private ExternalInterfaceMonitoringMapper externalInterfaceMonitoringMapper;
@Resource @Resource
private RedisCache redisCache; private RedisCache redisCache;
public static final MediaType JSO= MediaType.get("application/json; charset=utf-8"); public static final MediaType JSO = MediaType.get("application/json; charset=utf-8");
@Resource @Resource
private WeatherForecastController weatherForecastController; private WeatherForecastController weatherForecastController;
@ -69,22 +71,23 @@ public class ExternalInterfaceMonitoringTask {
dcTrafficStatisticsCurrency(UniversalEnum.GETS_THE_URI_OF_THE_CURRENT_CONGESTION_EVENT.getValue(), dcTrafficStatisticsCurrency(UniversalEnum.GETS_THE_URI_OF_THE_CURRENT_CONGESTION_EVENT.getValue(),
"获取当前拥堵事件信息"); "获取当前拥堵事件信息");
// 交通流 - 获取车道占有率信息 ------------- 有起始桩号、结束桩号 // 交通流 - 获取车道占有率信息 ------------- 有起始桩号、结束桩号
dcTrafficStatisticsCurrencyVehicle(UniversalEnum.GETS_THE_LANE_OCCUPANCY_URI.getValue(),"获取车道占有率信息"); dcTrafficStatisticsCurrencyVehicle(UniversalEnum.GETS_THE_LANE_OCCUPANCY_URI.getValue(), "获取车道占有率信息");
// 交通流 - 获取门架指标数据 ------------- 有开始时间、结束时间 // 交通流 - 获取门架指标数据 ------------- 有开始时间、结束时间
obtainTheShelfIndicatorData(UniversalEnum.OBTAIN_THE_SHELF_INDICATOR_DATA.getValue(),"获取门架指标数据"); obtainTheShelfIndicatorData(UniversalEnum.OBTAIN_THE_SHELF_INDICATOR_DATA.getValue(), "获取门架指标数据");
// 交通流 - 断面小时车流量分车型 ------------ 有开始时间、结束时间 // 交通流 - 断面小时车流量分车型 ------------ 有开始时间、结束时间
dcTrafficStatisticsCurrencyVehicle(UniversalEnum.SECTION_HOURLY_TRAFFIC_FLOW_BY_VEHICLE_TYPE.getValue(),"断面小时车流量分车型"); dcTrafficStatisticsCurrencyVehicle(UniversalEnum.SECTION_HOURLY_TRAFFIC_FLOW_BY_VEHICLE_TYPE.getValue(), "断面小时车流量分车型");
// 交通流 - 各收费站入口分车型 ------------ 有开始时间、结束时间 ,出入口 1,2 // 交通流 - 各收费站入口分车型 ------------ 有开始时间、结束时间 ,出入口 1,2
dcTrafficStatisticsCurrencyTollStation(UniversalEnum.EACH_TOLL_STATION_ENTRANCE_BY_TYPE_OF_HOURLY_TRAFFIC_FLOW.getValue(),"各收费站入口分车型",UniversalEnum.ONE.getValue()); dcTrafficStatisticsCurrencyTollStation(UniversalEnum.EACH_TOLL_STATION_ENTRANCE_BY_TYPE_OF_HOURLY_TRAFFIC_FLOW.getValue(), "各收费站入口分车型", UniversalEnum.ONE.getValue());
//边坡数据 获取边坡测点列表
//边坡数据 获取边坡测点列表
Response response = getMeasurePointList(); Response response = getMeasurePointList();
getMeasure(response,"获取边坡测点列表"); getMeasure(response, "获取边坡测点列表");
//获取边坡历史数据
//获取边坡历史数据
Response response1 = GetPointDataListAsync(); Response response1 = GetPointDataListAsync();
getMeasure(response1,"获取边坡历史数据"); getMeasure(response1, "获取边坡历史数据");
// 全国气象数据 - 雷达数据 // 全国气象数据 - 雷达数据
getRadarData(); getRadarData();
@ -96,6 +99,19 @@ public class ExternalInterfaceMonitoringTask {
// 天气预报 - 当前气象预警信息查询 // 天气预报 - 当前气象预警信息查询
currentWeatherWarningInformationQuery(); currentWeatherWarningInformationQuery();
// 视频平台 - 查询同步相机数据接口
querySynchronizationCameraDataInterface();
// 视频平台 - 获取视频流信息
getVideoStreamInformation();
// 视频平台 - 查询预置位列表
queryPresetPositionList();
// 视频平台 - 根据组织机构获取摄像机信息
obtainCameraInformationBasedOnOrganizationalStructure();
// 视频平台 - 云平台控制
cloudPlatformControl();
// 语音广播 - 查询终端
queryTerminal();
} }
@ -107,9 +123,9 @@ public class ExternalInterfaceMonitoringTask {
// 插入 // 插入
insertIntoExternalInterface(externalInterfaceMonitoring, response); insertIntoExternalInterface(externalInterfaceMonitoring, response);
} }
//获取边坡历史数据
//获取边坡历史数据
private Response getMeasurePointList() throws HttpException, IOException { private Response getMeasurePointList() throws HttpException, IOException {
JSONObject jsonResult = null;
OkHttp okHttp = new OkHttp(); OkHttp okHttp = new OkHttp();
RequestParams requestParams = new RequestParams(); RequestParams requestParams = new RequestParams();
@ -117,16 +133,15 @@ public class ExternalInterfaceMonitoringTask {
requestParams.put("unitCode", configService.selectConfigByKey("unitCode")); requestParams.put("unitCode", configService.selectConfigByKey("unitCode"));
Object accessToken = redisCache.getCacheObject("accessToken"); Object accessToken = redisCache.getCacheObject("accessToken");
if (accessToken==null){ if (accessToken == null) {
JSONObject authenticate = authenticate(); JSONObject authenticate = authenticate();
accessToken = authenticate.getJSONObject("result").getString("accessToken"); accessToken = authenticate.getJSONObject("result").getString("accessToken");
redisCache.setCacheObject("accessToken",accessToken); redisCache.setCacheObject("accessToken", accessToken);
redisCache.expire("accessToken", UniversalEnum.THREE.getNumber() * UniversalEnum.TWENTY_FOUR.getNumber() * UniversalEnum.THREE_THOUSAND_SIX_HUNDRED.getNumber());//设置过期时间s秒 redisCache.expire("accessToken", UniversalEnum.THREE.getNumber() * UniversalEnum.TWENTY_FOUR.getNumber() * UniversalEnum.THREE_THOUSAND_SIX_HUNDRED.getNumber());//设置过期时间s秒
} }
// http://jsgl.sdgsbim.com:8616/api/RoadMajorPlatform/GetMeasurePointList?proCode=JHGKJ&unitCode=60-01.0002.00.00
Map<String, String> header = new HashMap<>(); Map<String, String> header = new HashMap<>();
header.put("Authorization", "Bearer "+accessToken.toString()); header.put("Authorization", "Bearer " + accessToken.toString());
Response response // 请求响应 Response response // 请求响应
= okHttp = okHttp
.headers(header) .headers(header)
@ -155,8 +170,9 @@ public class ExternalInterfaceMonitoringTask {
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode()); externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode());
externalInterfaceMonitoring.setInterfaceName(operationName); externalInterfaceMonitoring.setInterfaceName(operationName);
// 插入 // 插入
insertIntoExternalInterface(externalInterfaceMonitoring,response); insertIntoExternalInterface(externalInterfaceMonitoring, response);
} }
//车辆 //车辆
public void dcTrafficStatisticsCurrencyVehicle(String path, String operationName) throws Exception { public void dcTrafficStatisticsCurrencyVehicle(String path, String operationName) throws Exception {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UniversalEnum.TIME_FORMAT_YEARS_MONTH_DAY.getValue()); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UniversalEnum.TIME_FORMAT_YEARS_MONTH_DAY.getValue());
@ -186,8 +202,9 @@ public class ExternalInterfaceMonitoringTask {
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode()); externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode());
externalInterfaceMonitoring.setInterfaceName(operationName); externalInterfaceMonitoring.setInterfaceName(operationName);
// 插入 // 插入
insertIntoExternalInterface(externalInterfaceMonitoring,response); insertIntoExternalInterface(externalInterfaceMonitoring, response);
} }
//获取门架指标数据 //获取门架指标数据
public void obtainTheShelfIndicatorData(String path, String operationName) throws Exception { public void obtainTheShelfIndicatorData(String path, String operationName) throws Exception {
// 计算一小时前的时间点 // 计算一小时前的时间点
@ -199,7 +216,7 @@ public class ExternalInterfaceMonitoringTask {
RequestParams requestParams = new RequestParams(); RequestParams requestParams = new RequestParams();
requestParams.put("sysid", UniversalEnum.SYS_ID.getValue()); requestParams.put("sysid", UniversalEnum.SYS_ID.getValue());
JSONObject parameters = new JSONObject() { JSONObject parameters = new JSONObject() {
{ {
@ -224,40 +241,41 @@ public class ExternalInterfaceMonitoringTask {
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode()); externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode());
externalInterfaceMonitoring.setInterfaceName(operationName); externalInterfaceMonitoring.setInterfaceName(operationName);
// 插入 // 插入
insertIntoExternalInterface(externalInterfaceMonitoring,response); insertIntoExternalInterface(externalInterfaceMonitoring, response);
}
//收费站 TollStation
public void dcTrafficStatisticsCurrencyTollStation(String path, String operationName, String stationType) throws Exception {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UniversalEnum.TIME_FORMAT_YEARS_MONTH_DAY.getValue());
LocalDate currentDate = LocalDate.now();
String nowYear = currentDate.format(formatter);
// 参数
RequestParams requestParams = new RequestParams();
requestParams.put("sysid", UniversalEnum.SYS_ID.getValue());
JSONObject parameters = new JSONObject() {
{
put("start_date", nowYear);
put("end_date", nowYear);
put("station_type", stationType);
}
};
requestParams.put("parameters", parameters.toJSONString());
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", DcTrafficStatisticsServiceImpl.getAccessToken());
String url = UniversalEnum.DATA_CENTER_TRAFFIC_STATISTICS_IP_PORT.getValue() + path;
// 请求
Response response = postRequestByHeadersAndParams(headers, url, requestParams);
// 构造
ExternalInterfaceMonitoring externalInterfaceMonitoring = new ExternalInterfaceMonitoring();
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode());
externalInterfaceMonitoring.setInterfaceName(operationName);
// 插入
insertIntoExternalInterface(externalInterfaceMonitoring, response);
} }
//收费站 TollStation
public void dcTrafficStatisticsCurrencyTollStation(String path, String operationName, String stationType) throws Exception {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UniversalEnum.TIME_FORMAT_YEARS_MONTH_DAY.getValue());
LocalDate currentDate = LocalDate.now();
String nowYear = currentDate.format(formatter);
// 参数
RequestParams requestParams = new RequestParams();
requestParams.put("sysid", UniversalEnum.SYS_ID.getValue());
JSONObject parameters = new JSONObject() {
{
put("start_date", nowYear);
put("end_date", nowYear);
put("station_type", stationType);
}
};
requestParams.put("parameters", parameters.toJSONString());
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", DcTrafficStatisticsServiceImpl.getAccessToken());
String url = UniversalEnum.DATA_CENTER_TRAFFIC_STATISTICS_IP_PORT.getValue() + path;
// 请求
Response response = postRequestByHeadersAndParams(headers, url, requestParams);
// 构造
ExternalInterfaceMonitoring externalInterfaceMonitoring = new ExternalInterfaceMonitoring();
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode());
externalInterfaceMonitoring.setInterfaceName(operationName);
// 插入
insertIntoExternalInterface(externalInterfaceMonitoring,response);
}
/** /**
* 全国气象数据 - 雷达数据 * 全国气象数据 - 雷达数据
@ -279,7 +297,7 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation
} }
} else { } else {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber()); externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber());
externalInterfaceMonitoring.setOperationResult(response.message()); externalInterfaceMonitoring.setOperationResult(response.toString());
} }
externalInterfaceMonitoring.setId(IdUtils.fastSimpleUUID()); externalInterfaceMonitoring.setId(IdUtils.fastSimpleUUID());
externalInterfaceMonitoring.setOperatorName("系统"); externalInterfaceMonitoring.setOperatorName("系统");
@ -347,19 +365,245 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation
insertIntoExternalInterface(externalInterfaceMonitoring, response); insertIntoExternalInterface(externalInterfaceMonitoring, response);
} }
/**
* 查询同步相机数据
*/
public void querySynchronizationCameraDataInterface() throws Exception {
JSONObject cameraInfo = JSONObject.parseObject(configService.selectConfigByKey("dc.cameraInfo"));
Map<String, String> header = new HashMap<>();
if (ExternalInterfaceMonitoringTask.videoTOKEN == null) {
getVideoToken();
}
header.put("Authorization", videoTOKEN);
Response response = getRequestByHeaders(header,
cameraInfo.getString("URL") + UniversalEnum.EXAMPLE_QUERY_SYNC_CAMERA_DATA.getValue());
//构造
ExternalInterfaceMonitoring externalInterfaceMonitoring = new ExternalInterfaceMonitoring();
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.VIDEO.getCode());
externalInterfaceMonitoring.setInterfaceName("查询同步相机数据");
//插入
videoResultInsertInto(externalInterfaceMonitoring, response);
}
/**
* 获取视频流信息
*/
public void getVideoStreamInformation() throws Exception {
JSONObject cameraInfo = JSONObject.parseObject(configService.selectConfigByKey("dc.cameraInfo"));
RequestParams requestParams = new RequestParams();
requestParams.put("type", UniversalEnum.ONE.getValue());
requestParams.put("camId", "57941");
Map<String, String> header = new HashMap<>();
if (ExternalInterfaceMonitoringTask.videoTOKEN == null) {
getVideoToken();
}
header.put("Authorization", videoTOKEN);
Response response = postRequestByHeadersAndParams(header,
cameraInfo.getString("URL") + UniversalEnum.GET_VIDEO_STREAM_INFORMATION.getValue(),
requestParams);
//构造
ExternalInterfaceMonitoring externalInterfaceMonitoring = new ExternalInterfaceMonitoring();
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.VIDEO.getCode());
externalInterfaceMonitoring.setInterfaceName("获取视频流信息");
//插入
videoResultInsertInto(externalInterfaceMonitoring, response);
}
/**
* 查询预置位列表
*/
public void queryPresetPositionList() throws Exception {
JSONObject cameraInfo = JSONObject.parseObject(configService.selectConfigByKey("dc.cameraInfo"));
OkHttp okHttp = new OkHttp();
RequestParams requestParams = new RequestParams();
requestParams.put("camId", "57941");
Map<String, String> header = new HashMap<>();
if (ExternalInterfaceMonitoringTask.videoTOKEN == null) {
getVideoToken();
}
header.put("Authorization", videoTOKEN);
Response response = getRequestByHeadersByParam(header,
cameraInfo.getString("URL") + UniversalEnum.EXAMPLE_QUERY_THE_PRESET_BIT_LIST.getValue(),
requestParams);
//构造
ExternalInterfaceMonitoring externalInterfaceMonitoring = new ExternalInterfaceMonitoring();
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.VIDEO.getCode());
externalInterfaceMonitoring.setInterfaceName("查询预置位列表");
//插入
videoResultInsertInto(externalInterfaceMonitoring, response);
}
/**
* 根据组织机构获取摄像机信息
*/
public void obtainCameraInformationBasedOnOrganizationalStructure() throws Exception {
JSONObject cameraInfo = JSONObject.parseObject(configService.selectConfigByKey("dc.cameraInfo"));
RequestParams requestParams = new RequestParams();
requestParams.put("deptId", cameraInfo.getString("CAM_DEPT_ID"));
Map<String, String> header = new HashMap<>();
if (ExternalInterfaceMonitoringTask.videoTOKEN == null) {
getVideoToken();
}
header.put("Authorization", videoTOKEN);
Response response = getRequestByHeadersByParam(header,
cameraInfo.getString("URL") + UniversalEnum.GET_CAMERA_INFORMATION_BY_ORGANIZATION.getValue(),
requestParams);
//构造
ExternalInterfaceMonitoring externalInterfaceMonitoring = new ExternalInterfaceMonitoring();
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.VIDEO.getCode());
externalInterfaceMonitoring.setInterfaceName("根据组织机构获取摄像机信息");
//插入
videoResultInsertInto(externalInterfaceMonitoring, response);
}
/**
* 云平台控制
*/
public void cloudPlatformControl() throws Exception {
JSONObject cameraInfo = JSONObject.parseObject(configService.selectConfigByKey("dc.cameraInfo"));
RequestParams requestParams = new RequestParams();
requestParams.put("msgType", UniversalEnum.THREE.getValue());
requestParams.put("camId", "57941");
// (关雨刷)
requestParams.put("cmdType", "48");
requestParams.put("speed", "10");
Map<String, String> header = new HashMap<>();
header.put("Authorization", videoTOKEN);
Response response = getRequestByHeadersByParam(header,
cameraInfo.getString("URL") + UniversalEnum.CLOUD_PLATFORM_CONTROL.getValue(),
requestParams);
//构造
ExternalInterfaceMonitoring externalInterfaceMonitoring = new ExternalInterfaceMonitoring();
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.VIDEO.getCode());
externalInterfaceMonitoring.setInterfaceName("云平台控制");
//插入
videoResultInsertInto(externalInterfaceMonitoring, response);
}
/**
* 查询终端
*/
public void queryTerminal() {
JSONObject broadcast = JSONObject.parseObject(configService.selectConfigByKey("broadcast"));
//构造
ExternalInterfaceMonitoring externalInterfaceMonitoring = new ExternalInterfaceMonitoring();
externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.RADIO_BROADCAST.getCode());
externalInterfaceMonitoring.setInterfaceName("查询终端");
try {
if (voiceBroadcastingToken == null) {
getVoiceBroadcastingToken();
}
RequestParams requestParams = new RequestParams();
requestParams.put("zoneId", UniversalEnum.ASTERISK_ASTERISK_SIX_THOUSAND_AND_ONE.getValue());
requestParams.put("termDN", UniversalEnum.EMPTY_STRING.getValue());
OkHttp okHttp = new OkHttp(15);
Response response // 请求响应
= okHttp
.headers(new HashMap<>())
.data(requestParams) // 请求参数
.url(broadcast.getString("URL") + UniversalEnum.QUERY_TERM_DO_ACCESS_TOKEN.getValue() + voiceBroadcastingToken) // 请求地址
.post(); // 请求方法
//插入
ResponseBody body = response.body();
if (body != null) {
JSONObject jsonResult = JSONObject.parseObject(body.string());
if (jsonResult.get("retCode").equals(UniversalEnum.ZERO.getValue())) {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ONE.getNumber());
} else {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber());
}
externalInterfaceMonitoring.setOperationResult(JSON.toJSONString(jsonResult));
} else {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber());
externalInterfaceMonitoring.setOperationResult(response.toString());
}
}catch (Exception e) {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber());
externalInterfaceMonitoring.setOperationResult(e.toString());
}finally {
externalInterfaceMonitoring.setId(IdUtils.fastSimpleUUID());
externalInterfaceMonitoring.setOperatorName("系统");
externalInterfaceMonitoring.setOperationTime(new Date());
externalInterfaceMonitoringMapper.insert(externalInterfaceMonitoring);
}
}
/** /**
* 存储外部接口监测数据 * 存储外部接口监测数据
*/ */
public void insertIntoExternalInterface(ExternalInterfaceMonitoring externalInterfaceMonitoring, Response response) throws Exception { public void insertIntoExternalInterface(ExternalInterfaceMonitoring externalInterfaceMonitoring, Response response) throws Exception {
ResponseBody body = response.body(); ResponseBody body = response.body();
if (response.code() == UniversalEnum.TWO_HUNDRED.getNumber()) { if (response.code() == UniversalEnum.TWO_HUNDRED.getNumber()) {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ONE.getNumber()); externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ONE.getNumber());
if (body != null) { } else {
externalInterfaceMonitoring.setOperationResult(body.string()); externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber());
}
if (body != null) {
externalInterfaceMonitoring.setOperationResult(body.string());
} else {
externalInterfaceMonitoring.setOperationResult(response.toString());
}
externalInterfaceMonitoring.setId(IdUtils.fastSimpleUUID());
externalInterfaceMonitoring.setOperatorName("系统");
externalInterfaceMonitoring.setOperationTime(new Date());
externalInterfaceMonitoringMapper.insert(externalInterfaceMonitoring);
}
/**
* 视频流结果处理
*
* @param externalInterfaceMonitoring
* @param response
* @throws Exception
*/
public void videoResultInsertInto(ExternalInterfaceMonitoring externalInterfaceMonitoring, Response response) throws Exception {
ResponseBody body = response.body();
if (body != null) {
JSONObject jsonResult = JSONObject.parseObject(body.string());
if (jsonResult.get("code").equals(UniversalEnum.TWO_HUNDRED.getNumber())) {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ONE.getNumber());
} else {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber());
} }
externalInterfaceMonitoring.setOperationResult(JSON.toJSONString(jsonResult));
} else { } else {
externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber()); externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber());
externalInterfaceMonitoring.setOperationResult(response.message()); externalInterfaceMonitoring.setOperationResult(response.toString());
} }
externalInterfaceMonitoring.setId(IdUtils.fastSimpleUUID()); externalInterfaceMonitoring.setId(IdUtils.fastSimpleUUID());
externalInterfaceMonitoring.setOperatorName("系统"); externalInterfaceMonitoring.setOperatorName("系统");
@ -377,6 +621,17 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation
.get(); // 请求方法 .get(); // 请求方法
} }
/**
* Get请求 有头 有参
*/
public Response getRequestByHeadersByParam(Map<String, String> headers, String url, RequestParams requestParams) throws Exception {
OkHttp okHttp = new OkHttp();
return okHttp.headers(headers)
.url(url) // 请求地址
.data(requestParams)
.get(); // 请求方法
}
/** /**
* Post请求 有头 有参 * Post请求 有头 有参
*/ */
@ -401,6 +656,7 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation
externalInterfaceMonitoring.setOperationResult(ajaxResult.get("msg").toString()); externalInterfaceMonitoring.setOperationResult(ajaxResult.get("msg").toString());
} }
} }
//边坡获取token //边坡获取token
public JSONObject authenticate() throws IOException { public JSONObject authenticate() throws IOException {
OkHttpClient client = new OkHttpClient(); OkHttpClient client = new OkHttpClient();
@ -430,64 +686,32 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation
return jsonResult; return jsonResult;
} }
} }
//获取边坡测点列表
public Response GetMeasurePointList() throws IOException, HttpException {
JSONObject jsonResult = null;
OkHttp okHttp = new OkHttp();
RequestParams requestParams = new RequestParams();
requestParams.put("proCode", configService.selectConfigByKey("proCode"));
requestParams.put("unitCode", configService.selectConfigByKey("unitCode"));
Object accessToken = redisCache.getCacheObject("accessToken");
if (accessToken==null){
JSONObject authenticate = authenticate();
accessToken = authenticate.getJSONObject("result").getString("accessToken");
redisCache.setCacheObject("accessToken",accessToken);
redisCache.expire("accessToken", UniversalEnum.THREE.getNumber() * UniversalEnum.TWENTY_FOUR.getNumber() * UniversalEnum.THREE_THOUSAND_SIX_HUNDRED.getNumber());//设置过期时间s秒
}
// http://jsgl.sdgsbim.com:8616/api/RoadMajorPlatform/GetMeasurePointList?proCode=JHGKJ&unitCode=60-01.0002.00.00
Map<String, String> header = new HashMap<>();
header.put("Authorization", "Bearer "+accessToken.toString());
Response response // 请求响应
= okHttp
.headers(header)
.url(configService.selectConfigByKey("GetMeasurePointListAPI")) // 请求地址
.data(requestParams) // 请求参数
.get(); // 请求方法
// 正确解析响应体中的JSON数据
return response ;
}
public Response GetPointDataListAsync() throws IOException, HttpException { public Response GetPointDataListAsync() throws IOException, HttpException {
//今天零点的时间戳 //今天零点的时间戳
long todayStartTimestamp = getTodayStartTimestamp(); long todayStartTimestamp = getTodayStartTimestamp();
// 获取当前时间的时间戳(毫秒数) // 获取当前时间的时间戳(毫秒数)
long currentTimestamp = getCurrentTimestamp(); long currentTimestamp = getCurrentTimestamp();
JSONObject jsonResult = null;
JSONArray jsonArray = null;
OkHttp okHttp = new OkHttp(); OkHttp okHttp = new OkHttp();
RequestParams requestParams = new RequestParams(); RequestParams requestParams = new RequestParams();
requestParams.put("projCode",configService.selectConfigByKey("proCode"));//项目编号 如 JHGKJ requestParams.put("projCode", configService.selectConfigByKey("proCode"));//项目编号 如 JHGKJ
requestParams.put("unitCode", configService.selectConfigByKey("unitCode"));//项目单位工程编号 如 60-01.0002.00.00 requestParams.put("unitCode", configService.selectConfigByKey("unitCode"));//项目单位工程编号 如 60-01.0002.00.00
requestParams.put("meaPointNum", "PR-YLJ01-067441-05/05");//测点编号如 PR-YLJ01-067441-05/05 requestParams.put("meaPointNum", "PR-YLJ01-067441-05/05");//测点编号如 PR-YLJ01-067441-05/05
requestParams.put("starttime", todayStartTimestamp);//开始时间如 1713369599000 requestParams.put("starttime", todayStartTimestamp);//开始时间如 1713369599000
requestParams.put("endtime", currentTimestamp);//结束时间 如 1713887999000 requestParams.put("endtime", currentTimestamp);//结束时间 如 1713887999000
Object accessToken = redisCache.getCacheObject("accessToken"); Object accessToken = redisCache.getCacheObject("accessToken");
if (accessToken==null){ if (accessToken == null) {
JSONObject authenticate = authenticate(); JSONObject authenticate = authenticate();
accessToken = authenticate.getJSONObject("result").getString("accessToken"); accessToken = authenticate.getJSONObject("result").getString("accessToken");
redisCache.setCacheObject("accessToken",accessToken); redisCache.setCacheObject("accessToken", accessToken);
redisCache.expire("accessToken", UniversalEnum.THREE.getNumber() * UniversalEnum.TWENTY_FOUR.getNumber() * UniversalEnum.THREE_THOUSAND_SIX_HUNDRED.getNumber());//设置过期时间s秒 redisCache.expire("accessToken", UniversalEnum.THREE.getNumber() * UniversalEnum.TWENTY_FOUR.getNumber() * UniversalEnum.THREE_THOUSAND_SIX_HUNDRED.getNumber());//设置过期时间s秒
} }
// http://jsgl.sdgsbim.com:8616/api/RoadMajorPlatform/GetMeasurePointList?proCode=JHGKJ&unitCode=60-01.0002.00.00
Map<String, String> header = new HashMap<>(); Map<String, String> header = new HashMap<>();
header.put("Authorization", "Bearer "+accessToken.toString()); header.put("Authorization", "Bearer " + accessToken.toString());
Response response // 请求响应 Response response // 请求响应
= okHttp = okHttp
.headers(header) .headers(header)
@ -495,38 +719,10 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation
.data(requestParams) // 请求参数 .data(requestParams) // 请求参数
.get(); // 请求方法 .get(); // 请求方法
/* if (response.body() != null) {
jsonResult = JSONObject.parseObject(response.body().string());
String jsonObjec =jsonResult.getString("result").replace("\r\n", UniversalEnum.EMPTY_STRING.getValue());
jsonArray = extracted(jsonObjec);
}*/
// 正确解析响应体中的JSON数据 // 正确解析响应体中的JSON数据
return response; return response;
} }
/**
* Base64解码
*/
private JSONArray extracted(String base64EncodedCompressedData) throws IOException {
// Base64解码
byte[] compressedData = Base64.getDecoder().decode(base64EncodedCompressedData);
StringBuilder output = new StringBuilder();
// 解压缩
try (ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(compressedData);
GZIPInputStream gzipInputStream = new GZIPInputStream(byteArrayInputStream);
InputStreamReader inputStreamReader = new InputStreamReader(gzipInputStream, StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
output.append(line);
}
}
// 将StringBuilder转换为字符串
String jsonString = output.toString();
// 将字符串转换为JSONObject
JSONArray jsonObject = JSONArray.parseArray(jsonString);
return jsonObject;
}
// 获取今天零点的时间戳(毫秒数) // 获取今天零点的时间戳(毫秒数)
public static long getTodayStartTimestamp() { public static long getTodayStartTimestamp() {
LocalDate today = LocalDate.now(); LocalDate today = LocalDate.now();
@ -538,4 +734,44 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation
public static long getCurrentTimestamp() { public static long getCurrentTimestamp() {
return System.currentTimeMillis(); return System.currentTimeMillis();
} }
/**
* 获取视频平台 token
*
* @throws Exception
*/
public void getVideoToken() throws Exception {
JSONObject cameraInfo = JSONObject.parseObject(configService.selectConfigByKey("dc.cameraInfo"));
RequestParams requestParams = new RequestParams();
requestParams.put("username", cameraInfo.getString("USERNAME"));
requestParams.put("password", cameraInfo.getString("PASSWORD"));
Response response = postRequestByHeadersAndParams(new HashMap<>(),
cameraInfo.getString("URL") + UniversalEnum.GET_THE_CAMERA_TOKEN.getValue(),
requestParams);
if (response.body() != null) {
JSONObject jsonResult = JSONObject.parseObject(response.body().string());
if (jsonResult.containsKey("token")) {
ExternalInterfaceMonitoringTask.videoTOKEN = jsonResult.getString("token");
}
}
}
/**
* 获取语音广播token
*/
public void getVoiceBroadcastingToken() throws Exception {
JSONObject broadcast = JSONObject.parseObject(configService.selectConfigByKey("broadcast"));
RequestParams requestParams = new RequestParams();
requestParams.put("id", broadcast.getString("ID"));
requestParams.put("secret", broadcast.getString("SECRET"));
requestParams.put("callbackUrl", broadcast.getString("CALLBACKURL"));
Response response = postRequestByHeadersAndParams(new HashMap<>(), UniversalEnum.BROADCAST_LOG_URL.getValue(), requestParams);
if (response.body() != null) {
voiceBroadcastingToken = JSONObject.parseObject(response.body().string()).getString("accessToken");
}
}
} }

Loading…
Cancel
Save