diff --git a/zc-business/src/main/java/com/zc/business/task/ExternalInterfaceMonitoringTask.java b/zc-business/src/main/java/com/zc/business/task/ExternalInterfaceMonitoringTask.java index dbc03869..1746bba4 100644 --- a/zc-business/src/main/java/com/zc/business/task/ExternalInterfaceMonitoringTask.java +++ b/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.exception.HttpException; import com.zc.common.core.httpclient.request.RequestParams; -import io.swagger.annotations.ApiParam; import okhttp3.*; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; import java.io.IOException; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.zip.GZIPInputStream; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; /** * 外部接口监控 @@ -45,11 +41,17 @@ import java.util.zip.GZIPInputStream; @Component public class ExternalInterfaceMonitoringTask { + // 视频平台token + private static String videoTOKEN; + + // 语音广播token + private static String voiceBroadcastingToken; + @Resource private ExternalInterfaceMonitoringMapper externalInterfaceMonitoringMapper; @Resource 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 private WeatherForecastController weatherForecastController; @@ -69,22 +71,23 @@ public class ExternalInterfaceMonitoringTask { 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(),"断面小时车流量分车型"); - // 交通流 - 各收费站入口分车型 ------------ 有开始时间、结束时间 ,出入口 1,2 - dcTrafficStatisticsCurrencyTollStation(UniversalEnum.EACH_TOLL_STATION_ENTRANCE_BY_TYPE_OF_HOURLY_TRAFFIC_FLOW.getValue(),"各收费站入口分车型",UniversalEnum.ONE.getValue()); -//边坡数据 获取边坡测点列表 + dcTrafficStatisticsCurrencyVehicle(UniversalEnum.SECTION_HOURLY_TRAFFIC_FLOW_BY_VEHICLE_TYPE.getValue(), "断面小时车流量分车型"); + // 交通流 - 各收费站入口分车型 ------------ 有开始时间、结束时间 ,出入口 1,2 + dcTrafficStatisticsCurrencyTollStation(UniversalEnum.EACH_TOLL_STATION_ENTRANCE_BY_TYPE_OF_HOURLY_TRAFFIC_FLOW.getValue(), "各收费站入口分车型", UniversalEnum.ONE.getValue()); + + //边坡数据 获取边坡测点列表 Response response = getMeasurePointList(); - getMeasure(response,"获取边坡测点列表"); -//获取边坡历史数据 + getMeasure(response, "获取边坡测点列表"); + //获取边坡历史数据 Response response1 = GetPointDataListAsync(); - getMeasure(response1,"获取边坡历史数据"); + getMeasure(response1, "获取边坡历史数据"); // 全国气象数据 - 雷达数据 getRadarData(); @@ -96,6 +99,19 @@ public class ExternalInterfaceMonitoringTask { // 天气预报 - 当前气象预警信息查询 currentWeatherWarningInformationQuery(); + // 视频平台 - 查询同步相机数据接口 + querySynchronizationCameraDataInterface(); + // 视频平台 - 获取视频流信息 + getVideoStreamInformation(); + // 视频平台 - 查询预置位列表 + queryPresetPositionList(); + // 视频平台 - 根据组织机构获取摄像机信息 + obtainCameraInformationBasedOnOrganizationalStructure(); + // 视频平台 - 云平台控制 + cloudPlatformControl(); + + // 语音广播 - 查询终端 + queryTerminal(); } @@ -107,9 +123,9 @@ public class ExternalInterfaceMonitoringTask { // 插入 insertIntoExternalInterface(externalInterfaceMonitoring, response); } -//获取边坡历史数据 + + //获取边坡历史数据 private Response getMeasurePointList() throws HttpException, IOException { - JSONObject jsonResult = null; OkHttp okHttp = new OkHttp(); RequestParams requestParams = new RequestParams(); @@ -117,16 +133,15 @@ public class ExternalInterfaceMonitoringTask { requestParams.put("unitCode", configService.selectConfigByKey("unitCode")); Object accessToken = redisCache.getCacheObject("accessToken"); - if (accessToken==null){ + if (accessToken == null) { JSONObject authenticate = authenticate(); 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秒 } - // http://jsgl.sdgsbim.com:8616/api/RoadMajorPlatform/GetMeasurePointList?proCode=JHGKJ&unitCode=60-01.0002.00.00 Map header = new HashMap<>(); - header.put("Authorization", "Bearer "+accessToken.toString()); + header.put("Authorization", "Bearer " + accessToken.toString()); Response response // 请求响应 = okHttp .headers(header) @@ -155,8 +170,9 @@ public class ExternalInterfaceMonitoringTask { externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode()); externalInterfaceMonitoring.setInterfaceName(operationName); // 插入 - insertIntoExternalInterface(externalInterfaceMonitoring,response); + insertIntoExternalInterface(externalInterfaceMonitoring, response); } + //车辆 public void dcTrafficStatisticsCurrencyVehicle(String path, String operationName) throws Exception { 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.setInterfaceName(operationName); // 插入 - insertIntoExternalInterface(externalInterfaceMonitoring,response); + insertIntoExternalInterface(externalInterfaceMonitoring, response); } + //获取门架指标数据 public void obtainTheShelfIndicatorData(String path, String operationName) throws Exception { // 计算一小时前的时间点 @@ -199,7 +216,7 @@ public class ExternalInterfaceMonitoringTask { RequestParams requestParams = new RequestParams(); - requestParams.put("sysid", UniversalEnum.SYS_ID.getValue()); + requestParams.put("sysid", UniversalEnum.SYS_ID.getValue()); JSONObject parameters = new JSONObject() { { @@ -224,40 +241,41 @@ public class ExternalInterfaceMonitoringTask { externalInterfaceMonitoring.setInterfaceOwnership(InterfaceOwnershipEnum.TRAFFIC_FLOW.getCode()); 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 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 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 { externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber()); - externalInterfaceMonitoring.setOperationResult(response.message()); + externalInterfaceMonitoring.setOperationResult(response.toString()); } externalInterfaceMonitoring.setId(IdUtils.fastSimpleUUID()); externalInterfaceMonitoring.setOperatorName("系统"); @@ -347,19 +365,245 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation insertIntoExternalInterface(externalInterfaceMonitoring, response); } + /** + * 查询同步相机数据 + */ + public void querySynchronizationCameraDataInterface() throws Exception { + JSONObject cameraInfo = JSONObject.parseObject(configService.selectConfigByKey("dc.cameraInfo")); + + Map 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 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 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 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 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 { ResponseBody body = response.body(); + if (response.code() == UniversalEnum.TWO_HUNDRED.getNumber()) { externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ONE.getNumber()); - if (body != null) { - externalInterfaceMonitoring.setOperationResult(body.string()); + } else { + 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 { externalInterfaceMonitoring.setOperationStatus(UniversalEnum.ZERO.getNumber()); - externalInterfaceMonitoring.setOperationResult(response.message()); + externalInterfaceMonitoring.setOperationResult(response.toString()); } externalInterfaceMonitoring.setId(IdUtils.fastSimpleUUID()); externalInterfaceMonitoring.setOperatorName("系统"); @@ -377,6 +621,17 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation .get(); // 请求方法 } + /** + * Get请求 有头 有参 + */ + public Response getRequestByHeadersByParam(Map headers, String url, RequestParams requestParams) throws Exception { + OkHttp okHttp = new OkHttp(); + return okHttp.headers(headers) + .url(url) // 请求地址 + .data(requestParams) + .get(); // 请求方法 + } + /** * Post请求 有头 有参 */ @@ -401,6 +656,7 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation externalInterfaceMonitoring.setOperationResult(ajaxResult.get("msg").toString()); } } + //边坡获取token public JSONObject authenticate() throws IOException { OkHttpClient client = new OkHttpClient(); @@ -430,64 +686,32 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation 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 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 { //今天零点的时间戳 long todayStartTimestamp = getTodayStartTimestamp(); // 获取当前时间的时间戳(毫秒数) long currentTimestamp = getCurrentTimestamp(); - JSONObject jsonResult = null; - JSONArray jsonArray = null; OkHttp okHttp = new OkHttp(); 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("meaPointNum", "PR-YLJ01-067441-05/05");//测点编号如 PR-YLJ01-067441-05/05 requestParams.put("starttime", todayStartTimestamp);//开始时间如 1713369599000 requestParams.put("endtime", currentTimestamp);//结束时间 如 1713887999000 Object accessToken = redisCache.getCacheObject("accessToken"); - if (accessToken==null){ + if (accessToken == null) { JSONObject authenticate = authenticate(); 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秒 } - // http://jsgl.sdgsbim.com:8616/api/RoadMajorPlatform/GetMeasurePointList?proCode=JHGKJ&unitCode=60-01.0002.00.00 Map header = new HashMap<>(); - header.put("Authorization", "Bearer "+accessToken.toString()); + header.put("Authorization", "Bearer " + accessToken.toString()); Response response // 请求响应 = okHttp .headers(header) @@ -495,38 +719,10 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation .data(requestParams) // 请求参数 .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数据 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() { LocalDate today = LocalDate.now(); @@ -538,4 +734,44 @@ public void dcTrafficStatisticsCurrencyTollStation(String path, String operation public static long getCurrentTimestamp() { 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"); + } + } }