From a9f9c21b539f39c5a0bada00ca0fb38d008c932a Mon Sep 17 00:00:00 2001 From: zhaoxianglong Date: Mon, 24 Jun 2024 16:54:10 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zc/business/enums/UniversalEnum.java | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java b/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java index 57517a85..3611c4c6 100644 --- a/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java +++ b/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java @@ -28,6 +28,9 @@ public enum UniversalEnum { // Windows WINDOWS(0, "Windows"), + // http + HTTP(0, "http://"), + // weixintuisontoken WEIXINTUISONTOKEN(0, "weixintuisontoken"), @@ -184,6 +187,9 @@ public enum UniversalEnum { // 封闭数量统计 CLOSED_QUANTITY_STATISTICS(0, "封闭数量统计"), + // 节假日 基础数据数据 + HOLIDAY_BASIC_DATA_DATA(0, "节假日 基础数据数据"), + // 时间 TIME(0, "时间"), @@ -364,6 +370,9 @@ public enum UniversalEnum { //雨棚可变信息标志 AWNING_VARIABLE_INFORMATION_SIGN(0, "雨棚可变信息标志"), + //站前可变信息标志 + VARIABLE_MESSAGE_SIGN_IN_FRONT_OF_STATION(0, "站前可变信息标志"), + //站前悬臂式可变信息标志 CANTILEVER_VARIABLE_INFORMATION_SIGN_IN_FRONT_OF_STATION(0, "站前悬臂式可变信息标志"), @@ -760,6 +769,9 @@ public enum UniversalEnum { // 秒 SECONDS(0, "秒"), + // 交通流数据预警提醒 + TRAFFIC_FLOW_DATA_WARNING_REMINDER(0, "交通流数据预警提醒"), + // 总统计数 PRESIDENTIAL_COUNT(0, "总统计数"), @@ -1056,6 +1068,9 @@ public enum UniversalEnum { // 发生浓雾异常天气事件 AN_ABNORMAL_WEATHER_EVENT_OF_DENSE_FOG_OCCURRED(0, "发生浓雾异常天气事件"), + // SET + SET(0, "SET"), + // SETMD SETMD(0, "SETMD"), @@ -1410,6 +1425,9 @@ public enum UniversalEnum { // 一万 TEN_THOUSAND(10000, "10000"), + // 40001 + FORTY_THOUSAND_AND_ONE(40001, "40001"), + // 42001 FORTY_TWO_THOUSAND_ONE(42001, "42001"), @@ -1467,6 +1485,9 @@ public enum UniversalEnum { // 天气服务500 WEATHER_FORECAST_FIVE_HUNDRED(500, "请求失败:无响应或超时"), + // *6001 + ASTERISK_ASTERISK_SIX_THOUSAND_AND_ONE(500, "*6001"), + // 数据中心流量统计IP端口 DATA_CENTER_TRAFFIC_STATISTICS_IP_PORT(0, "http://10.166.139.16:8080"), @@ -1530,9 +1551,21 @@ public enum UniversalEnum { // 设备功能调用 /api/iot/device/functions/ DEVICE_FUNCTION_CALL(0, "/api/iot/device/functions/"), + // 雷达图 http://d1.weather.com.cn/newwebgis/radar/radar_list_new.json?_= + RADAR_MAP(0, "http://d1.weather.com.cn/newwebgis/radar/radar_list_new.json?_="), + + // 雷达图天气 http://www.weather.com.cn/ + RADAR_MAP_WEATHER(0, "http://www.weather.com.cn/"), + + // 雷达图返回 http://www.weather.com.cn/ + RADAR_MAP_BACK(0, "https://10.0.111.11/leidatu/"), + // 查询指定事件历史数据列表 /api/iot/device/events/history/ EXAMPLE_QUERY_THE_HISTORICAL_DATA_LIST_OF_A_SPECIFIED_EVENT(0, "/api/iot/device/events/history/"), + // 查询物联设备事件数据 https://apis.tianapi.com/jiejiari/index?key= + GET_HOLIDAYS(0, "https://apis.tianapi.com/jiejiari/index?key="), + // 查询物联设备事件数据 /api/iot/device/logs/ QUERY_EVENT_DATA_OF_IOT_DEVICES(0, "/api/iot/device/logs/"), @@ -1599,9 +1632,24 @@ public enum UniversalEnum { // 非机预警图片地址前缀 NON_MACHINE_WARNING_IMAGE_ADDRESS_PREFIX(0, "https://10.0.111.11/fjyj"), + // 设置预置位 :9021/preset/addPreset + SET_PRESET_BIT(0, ":9021/preset/addPreset"), + // currentWeatherAndForecastInformation CURRENT_WEATHER_AND_FORECAST_INFORMATION(0, "currentWeatherAndForecastInformation"), + // /preset/addPreset + NEW_PRESET_BIT(0, "/preset/addPreset"), + + // /preset/presetList + EXAMPLE_QUERY_THE_PRESET_BIT_LIST(0, "/preset/presetList"), + + // login.do + LOGIN_DO(0, "login.do"), + + // queryTerm.do?accessToken= + QUERY_TERM_DO_ACCESS_TOKEN(0, "queryTerm.do?accessToken="), + // dc_device_type DC_DEVICE_TYPE(0, "dc_device_type"), @@ -1626,6 +1674,12 @@ public enum UniversalEnum { // congestionEnd CONGESTION_END(0, "congestionEnd"), + // batchFunctions + BATCH_FUNCTIONS(0, "batchFunctions"), + + // functions + FUNCTIONS(0, "functions"), + // illegalParkingEnd ILLEGAL_PARKING_END(0, "illegalParkingEnd"), @@ -1671,6 +1725,9 @@ public enum UniversalEnum { // sbx-fun-kl SBX_FUN_KL(0, "sbx-fun-kl"), + // online + ON_LINE(0, "online"), + // POST POST(0, "POST"), @@ -1848,6 +1905,24 @@ public enum UniversalEnum { // MODIFY MODIFY(0, "MODIFY"), + // trafficPoliceStatus + TRAFFIC_POLICE_STATUS(0, "trafficPoliceStatus"), + + // planStatus + PLAN_STATUS(0, "planStatus"), + + // medicalStatus + MEDICAL_STATUS(0, "medicalStatus"), + + // boardStatus + BOARD_STATUS(0, "boardStatus"), + + // chemicalsStatus + CHEMICALS_STATUS(0, "chemicalsStatus"), + + // fireStatus + FIRE_STATUS(0, "fireStatus"), + // Add Add(0, "Add"), @@ -2016,6 +2091,9 @@ public enum UniversalEnum { // 2-1 TWO_ONE(2, "2-1"), + // 2-2 + TWO_TWO(2, "2-2"), + // 2-3 TWO_THREE(2, "2-3"), @@ -2100,6 +2178,9 @@ public enum UniversalEnum { // 8-3 EIGHT_THREE(8, "8-3"), + // 8-4 + EIGHT_FOUR(8, "8-4"), + // 9-1 NINE_ONE(9, "9-1"), @@ -2445,6 +2526,12 @@ public enum UniversalEnum { // 发送企业微信消息成功 SENDING_AN_ENTERPRISE_WECHAT_MESSAGE_SUCCEEDED_PROCEDURE(0, "发送企业微信消息成功"), + // 接口已关闭 + THE_INTERFACE_IS_CLOSED(0, "接口已关闭"), + + // 接口已关闭 + FUNCTIONAL_DEVELOPMENT(0, "功能开发中"), + // 发布失败 PUBLISHING_FAILURE(0, "发布失败"), From 09303f90d7e714ad211566b9b456649b277d85ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=85=B4=E7=90=B3?= <1911390090@qq.com> Date: Tue, 25 Jun 2024 09:16:50 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9D=9E=E6=9C=BA?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E8=B0=83=E7=94=A8=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zc/business/controller/NonAutomaticWarningController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java b/zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java index 3b1ee9bc..6f2fa88b 100644 --- a/zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java +++ b/zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java @@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.*; +import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -279,7 +280,7 @@ public class NonAutomaticWarningController extends BaseController { return AjaxResult.error(); } -// @PostConstruct + @PostConstruct public AjaxResult eventSubscriptionPostConstruct() throws Exception { NonAutomaticWarning stringStringHashMap = new NonAutomaticWarning(); JSONObject nonAutomaticWarning = JSONObject.parseObject(configService.selectConfigByKey("nonAutomaticWarning")); From 7b0c1de51318a38f2fdfc453d0c361f09507cf01 Mon Sep 17 00:00:00 2001 From: zhaoxianglong Date: Tue, 25 Jun 2024 09:55:11 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E7=B1=BB=20=E6=96=B0=E5=A2=9E=E6=B0=94=E8=B1=A1=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E5=BC=B9=E6=A1=86=E4=BF=A1=E6=81=AF=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WeatherForecastController.java | 264 ++++++++++++++---- .../com/zc/business/enums/UniversalEnum.java | 3 + 2 files changed, 212 insertions(+), 55 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/WeatherForecastController.java b/zc-business/src/main/java/com/zc/business/controller/WeatherForecastController.java index 2c16ff5f..d612aad8 100644 --- a/zc-business/src/main/java/com/zc/business/controller/WeatherForecastController.java +++ b/zc-business/src/main/java/com/zc/business/controller/WeatherForecastController.java @@ -7,16 +7,20 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.system.service.ISysConfigService; +import com.zc.business.domain.DcNoStakeWarningTable; import com.zc.business.domain.DcRegion; import com.zc.business.enums.UniversalEnum; +import com.zc.business.service.impl.DcNoStakeWarningTableServiceImpl; import com.zc.business.service.impl.DcRegionServiceImpl; import com.zc.common.core.httpclient.OkHttp; import com.zc.common.core.httpclient.exception.HttpException; import com.zc.common.core.httpclient.request.RequestParams; +import com.zc.common.core.websocket.WebSocketService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import okhttp3.Response; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -55,25 +59,175 @@ public class WeatherForecastController extends BaseController { @Autowired private ISysConfigService configService; + @Autowired + private DcNoStakeWarningTableServiceImpl noStakeWarningTableService; + + + /*** + * 定时查询气象预警信息并上报 + */ + @Scheduled(cron = "0 0/1 * * * ?") + public void updateDeviceState() { + + HashMap hashMap = new HashMap<>(); + hashMap.put("roadId", UniversalEnum.ROAD_ID.getValue()); + hashMap.put("earlyWorningLevel", UniversalEnum.EARLY_WORNING_LEVEL.getValue()); + //hashMap.put("managerId", UniversalEnum.MANAGER_ID.getValue()); + AjaxResult ajaxResult = currentWeatherWarningInformationQuery(hashMap); + + String code = String.valueOf(ajaxResult.get("code")); + if (!Objects.equals(code, UniversalEnum.TWO_HUNDRED.getValue())) { + return; + } + JSONArray data = (JSONArray) JSON.toJSON(ajaxResult.get("data")); + data.forEach(item -> { + JSONObject jsonObject = (JSONObject) JSON.toJSON(item); + String earlyWorningSignal = jsonObject.getString("earlyWorningSignal"); + String[] split = earlyWorningSignal.split(UniversalEnum.EMPTY_STRING.getValue()); + String earlyWarningType = split[UniversalEnum.ZERO.getNumber()]; + String warningLevel = split[UniversalEnum.THREE.getNumber()]; + + switch (warningLevel) { + case "0": + //蓝色预警 + jsonObject.put("warningLevelStringNumber", UniversalEnum.ZERO.getValue()); + jsonObject.put("warningLevelString", UniversalEnum.BLUE_ALERT.toString()); + break; + case "1": + //黄色预警 + jsonObject.put("warningLevelStringNumber", UniversalEnum.ONE.getValue()); + jsonObject.put("warningLevelString", UniversalEnum.YELLOW_ALERT.toString()); + break; + case "2": + //橙色预警 + jsonObject.put("warningLevelStringNumber", UniversalEnum.TWO.getValue()); + jsonObject.put("warningLevelString", UniversalEnum.ORANGE_ALERT.toString()); + break; + case "3": + //红色预警 + jsonObject.put("warningLevelStringNumber", UniversalEnum.THREE.getValue()); + jsonObject.put("warningLevelString", UniversalEnum.RED_ALERT.toString()); + break; + } + + switch (earlyWarningType) { + case "0": + //台风 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.ZERO.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.TYPHOON.toString()); + break; + case "1": + //暴雨 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.ONE.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.RAINSTORM.toString()); + break; + case "2": + //暴雪 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.TWO.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.BLIZZARD.toString()); + break; + case "3": + //寒潮 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.THREE.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.COLD_WAVE.toString()); + break; + case "4": + //大风 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.FOUR.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.GALE.toString()); + break; + case "5": + //沙尘暴 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.FIVE.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.SANDSTORM.toString()); + break; + case "6": + //高温 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.SIX.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.HYPERTHERMIA.toString()); + break; + case "7": + //干旱 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.SEVEN.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.ARIDITY.toString()); + break; + case "8": + //雷电 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.EIGHT.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.AEGIS.toString()); + break; + case "9": + //冰雹 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.NINE.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.HAILSTONE.toString()); + break; + case "10": + //霜冻 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.TEN.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.FROST.toString()); + break; + case "11": + //大雾 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.ELEVEN.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.HEAVY_FOG.toString()); + break; + case "12": + //霾 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.TWELVE.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.HAZE.toString()); + break; + case "13": + //道路结冰 + jsonObject.put("earlyWarningTypeStringNumber", UniversalEnum.THIRTEEN.getValue()); + jsonObject.put("earlyWarningTypeString", UniversalEnum.ICY_ROADS.toString()); + break; + } + + //List currentWeatherAndForecastInformation = redisCache.getCacheList(UniversalEnum.CURRENT_WEATHER_AND_FORECAST_INFORMATION.getValue()); + //List collect = currentWeatherAndForecastInformation.stream().filter(ite -> + // !Objects.equals(ite.getString("earlyWorningIssueDate"), jsonObject.getString("earlyWorningIssueDate")) + // && !Objects.equals(ite.getString("earlyWorningTitle"), jsonObject.getString("earlyWorningTitle")) + // && !Objects.equals(ite.getString("stationName"), jsonObject.getString("stationName"))).collect(Collectors.toList()); + List dcNoStakeWarningTables = noStakeWarningTableService.listDcNoStakeWarningTable(new DcNoStakeWarningTable(),null,null); + List collect = dcNoStakeWarningTables.stream().filter(ite -> + Objects.equals(ite.getWarningTime(), jsonObject.getDate("earlyWorningIssueDate")) + && Objects.equals(ite.getWarningDescription(), jsonObject.getString("earlyWorningContent")) + && Objects.equals(ite.getWarningType(), UniversalEnum.TWO.getValue())).collect(Collectors.toList()); + if (collect.size() == UniversalEnum.ZERO.getNumber()) { + WebSocketService.broadcast(UniversalEnum.THREE.getValue(), jsonObject); //推送事件消息 不是感知事件 + DcNoStakeWarningTable dcNoStakeWarningTable = new DcNoStakeWarningTable(); + dcNoStakeWarningTable.setWarningDescription(jsonObject.getString("earlyWorningContent")); + dcNoStakeWarningTable.setWarningType(UniversalEnum.TWO.getValue()); + dcNoStakeWarningTable.setWarningTime(jsonObject.getDate("earlyWorningIssueDate")); + dcNoStakeWarningTable.setOtherConfig(String.valueOf(jsonObject)); + noStakeWarningTableService.addDcNoStakeWarningTable(dcNoStakeWarningTable); + } + + }); + //redisCache.setCacheList(UniversalEnum.CURRENT_WEATHER_AND_FORECAST_INFORMATION.getValue(), data); + + + } + /* * 当前气象及预报信息查询 * */ @ApiOperation("当前气象及预报信息查询") @PostMapping(value = "/currentWeatherAndForecastInformation") - public AjaxResult currentWeatherAndForecastInformation(@RequestBody HashMap parameter) { + public AjaxResult currentWeatherAndForecastInformation(@RequestBody HashMap parameter) { String stakeNum = String.valueOf(parameter.get("stakeNum")); String[] split = stakeNum.split("[|]"); StringBuilder numStake = new StringBuilder(); - for (int i = 0; i < split.length; i++) { + for (int i = UniversalEnum.ZERO.getNumber(); i < split.length; i++) { String[] split1 = split[i].split("[+]"); - String k = split1[0].replace("K", ""); + String k = split1[UniversalEnum.ZERO.getNumber()].replace(UniversalEnum.CAPITAL_K.getValue(), UniversalEnum.EMPTY_STRING.getValue()); int parseInt = Integer.parseInt(k); - numStake.append("K").append(findNearestMultipleOfFive(parseInt)).append("+000"); - if (i != split.length - 1) { - numStake.append("|"); + numStake.append(UniversalEnum.CAPITAL_K.getValue()).append(findNearestMultipleOfFive(parseInt)).append("+000"); + if (i != split.length - UniversalEnum.ONE.getNumber()) { + numStake.append(UniversalEnum.VERTICAL_LINE.getValue()); } } @@ -98,31 +252,31 @@ public class WeatherForecastController extends BaseController { if (response.body() != null) { JSONObject jsonResult = JSONObject.parseObject(response.body().string()); - if (jsonResult.getInteger("code") == 200) { + if (jsonResult.getInteger("code") == UniversalEnum.TWO_HUNDRED.getNumber()) { JSONArray data = jsonResult.getJSONArray("data"); - if (data.size() != 0) { + if (data.size() != UniversalEnum.ZERO.getNumber()) { redisCache.setCacheList("currentWeatherAndForecastInformation", data); return AjaxResult.success(data); } else { return AjaxResult.success(redisCache.getCacheList("currentWeatherAndForecastInformation")); } } else { - return AjaxResult.error(jsonResult.getInteger("code"), "请求失败"); + return AjaxResult.error(jsonResult.getInteger("code"), UniversalEnum.REQUEST_FAILED.getValue()); } } } catch (Exception ignored) { } - return AjaxResult.error("请求失败"); + return AjaxResult.error(UniversalEnum.REQUEST_FAILED.getValue()); } public static int findNearestMultipleOfFive(int number) { // 计算除以5的余数 - int remainder = number % 5; + int remainder = number % UniversalEnum.FIVE.getNumber(); // 如果余数为0,则number已经是5的倍数 - if (remainder == 0) { + if (remainder == UniversalEnum.ZERO.getNumber()) { return number; } @@ -130,7 +284,7 @@ public class WeatherForecastController extends BaseController { // 要么是number加上(5 - 余数)(如果余数大于或等于3) // 这里选择的是较小的那个值(向上或向下取整) int lowerMultiple = number - remainder; - int higherMultiple = number + (5 - remainder); + int higherMultiple = number + (UniversalEnum.FIVE.getNumber() - remainder); // 返回两者中较小的那个 return (lowerMultiple < higherMultiple) ? lowerMultiple : higherMultiple; @@ -162,7 +316,7 @@ public class WeatherForecastController extends BaseController { if (response.body() != null) { JSONObject jsonResult = JSONObject.parseObject(response.body().string()); - if (jsonResult.getInteger("code") == 200) { + if (jsonResult.getInteger("code") == UniversalEnum.TWO_HUNDRED.getNumber()) { JSONArray jsonArray = jsonResult.getJSONArray("data"); List collect = jsonArray.stream().filter(item -> { JSONObject jsonObject = (JSONObject) JSON.toJSON(item); @@ -187,21 +341,21 @@ public class WeatherForecastController extends BaseController { // return false; //} }).collect(Collectors.toList()); - if (collect.size() != 0) { + if (collect.size() != UniversalEnum.ZERO.getNumber()) { redisCache.setCacheList("currentWeatherWarningInformationQuery", collect); return AjaxResult.success(collect); } else { return AjaxResult.success(redisCache.getCacheList("currentWeatherWarningInformationQuery")); } } else { - return AjaxResult.error(jsonResult.getInteger("code"), "请求失败"); + return AjaxResult.error(jsonResult.getInteger("code"), UniversalEnum.REQUEST_FAILED.getValue()); } } } catch (Exception ignored) { } - return AjaxResult.error("请求失败"); + return AjaxResult.error(UniversalEnum.REQUEST_FAILED.getValue()); } @@ -261,18 +415,18 @@ public class WeatherForecastController extends BaseController { Response response // 请求响应 = okHttp .headers(new HashMap<>()) - .url(weather.getString("METEOROLOGICALEARLYWARNINGURI") + dcRegion.getLongitude() + "," + dcRegion.getLatitude() + weather.getString("KEY") + weather.getString("METEOROLOGICALEARLYWARNINGKEY")) // 请求地址 + .url(weather.getString("METEOROLOGICALEARLYWARNINGURI") + dcRegion.getLongitude() + UniversalEnum.COMMA.getNumber() + dcRegion.getLatitude() + weather.getString("KEY") + weather.getString("METEOROLOGICALEARLYWARNINGKEY")) // 请求地址 .get(); // 请求方法 if (response.body() != null) { JSONObject jsonResult = JSONObject.parseObject(response.body().string()); - if (jsonResult.getInteger("code") == 200) { + if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_TWO_HUNDRED.getNumber()) { jsonObject.put(weather.getString("METEOROLOGICALEARLYWARNING") + dcRegion.getId(), extracted(jsonResult, "warning", dcRegion)); } else { - return AjaxResult.error(jsonResult.getInteger("code"), "请求失败"); + return AjaxResult.error(jsonResult.getInteger("code"), UniversalEnum.REQUEST_FAILED.getValue()); } } } catch (Exception e) { @@ -280,7 +434,7 @@ public class WeatherForecastController extends BaseController { } } } - redisCache.setCacheObject(weather.getString("METEOROLOGICALEARLYWARNING"), jsonObject, 13, TimeUnit.MINUTES); + redisCache.setCacheObject(weather.getString("METEOROLOGICALEARLYWARNING"), jsonObject, UniversalEnum.THIRTEEN.getNumber(), TimeUnit.MINUTES); JSONArray meteorologicalEarlyWarning1 = jsonObject.getJSONArray("meteorologicalEarlyWarning1"); JSONArray meteorologicalEarlyWarning2 = jsonObject.getJSONArray("meteorologicalEarlyWarning2"); JSONArray meteorologicalEarlyWarning3 = jsonObject.getJSONArray("meteorologicalEarlyWarning3"); @@ -289,14 +443,14 @@ public class WeatherForecastController extends BaseController { JSONArray meteorologicalEarlyWarning6 = jsonObject.getJSONArray("meteorologicalEarlyWarning6"); JSONArray meteorologicalEarlyWarning7 = jsonObject.getJSONArray("meteorologicalEarlyWarning7"); JSONArray meteorologicalEarlyWarning8 = jsonObject.getJSONArray("meteorologicalEarlyWarning8"); - return AjaxResult.success((meteorologicalEarlyWarning1 == null ? 0 : meteorologicalEarlyWarning1.size()) + - (meteorologicalEarlyWarning2 == null ? 0 : meteorologicalEarlyWarning2.size()) + - (meteorologicalEarlyWarning3 == null ? 0 : meteorologicalEarlyWarning3.size()) + - (meteorologicalEarlyWarning4 == null ? 0 : meteorologicalEarlyWarning4.size()) + - (meteorologicalEarlyWarning5 == null ? 0 : meteorologicalEarlyWarning5.size()) + - (meteorologicalEarlyWarning6 == null ? 0 : meteorologicalEarlyWarning6.size()) + - (meteorologicalEarlyWarning7 == null ? 0 : meteorologicalEarlyWarning7.size()) + - (meteorologicalEarlyWarning8 == null ? 0 : meteorologicalEarlyWarning8.size())); + return AjaxResult.success((meteorologicalEarlyWarning1 == null ? UniversalEnum.ZERO.getNumber() : meteorologicalEarlyWarning1.size()) + + (meteorologicalEarlyWarning2 == null ? UniversalEnum.ZERO.getNumber() : meteorologicalEarlyWarning2.size()) + + (meteorologicalEarlyWarning3 == null ? UniversalEnum.ZERO.getNumber() : meteorologicalEarlyWarning3.size()) + + (meteorologicalEarlyWarning4 == null ? UniversalEnum.ZERO.getNumber() : meteorologicalEarlyWarning4.size()) + + (meteorologicalEarlyWarning5 == null ? UniversalEnum.ZERO.getNumber() : meteorologicalEarlyWarning5.size()) + + (meteorologicalEarlyWarning6 == null ? UniversalEnum.ZERO.getNumber() : meteorologicalEarlyWarning6.size()) + + (meteorologicalEarlyWarning7 == null ? UniversalEnum.ZERO.getNumber() : meteorologicalEarlyWarning7.size()) + + (meteorologicalEarlyWarning8 == null ? UniversalEnum.ZERO.getNumber() : meteorologicalEarlyWarning8.size())); } @@ -324,13 +478,13 @@ public class WeatherForecastController extends BaseController { Response response // 请求响应 = okHttp .headers(new HashMap<>()) - .url(uri + dcRegion.getLongitude() + "," + dcRegion.getLatitude() + weather.getString("KEY") + accessKey) // 请求地址 + .url(uri + dcRegion.getLongitude() + UniversalEnum.COMMA.getValue() + dcRegion.getLatitude() + weather.getString("KEY") + accessKey) // 请求地址 .get(); // 请求方法 if (response.body() != null) { JSONObject jsonResult = JSONObject.parseObject(response.body().string()); - if (jsonResult.getInteger("code") == 200) { + if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_TWO_HUNDRED.getNumber()) { if (Objects.equals(redisKey, weather.getString("WEATHERFACTS"))) { @@ -345,7 +499,7 @@ public class WeatherForecastController extends BaseController { jsonObject.put(redisKey + dcRegion.getId(), extracted(jsonResult, "hourly", dcRegion)); } } else { - return AjaxResult.error(jsonResult.getInteger("code"), "请求失败"); + return AjaxResult.error(jsonResult.getInteger("code"), UniversalEnum.REQUEST_FAILED.getValue()); } } } catch (Exception e) { @@ -358,15 +512,15 @@ public class WeatherForecastController extends BaseController { if (Objects.equals(redisKey, weather.getString("WEATHERFACTS"))) { - redisCache.setCacheObject(redisKey, jsonObject, 13, TimeUnit.MINUTES); + redisCache.setCacheObject(redisKey, jsonObject, UniversalEnum.THIRTEEN.getNumber(), TimeUnit.MINUTES); } else if (Objects.equals(redisKey, weather.getString("METEOROLOGICALEARLYWARNING"))) { - redisCache.setCacheObject(redisKey, jsonObject, 13, TimeUnit.MINUTES); + redisCache.setCacheObject(redisKey, jsonObject, UniversalEnum.THIRTEEN.getNumber(), TimeUnit.MINUTES); } else if (Objects.equals(redisKey, weather.getString("HOURLYWEATHER"))) { - redisCache.setCacheObject(redisKey, jsonObject, 13, TimeUnit.MINUTES); + redisCache.setCacheObject(redisKey, jsonObject, UniversalEnum.THIRTEEN.getNumber(), TimeUnit.MINUTES); } return AjaxResult.success(jsonObject); @@ -376,7 +530,7 @@ public class WeatherForecastController extends BaseController { private static Object extracted(JSONObject jsonResult, String type, DcRegion dcRegion) { JSONObject jsonObject = new JSONObject(); jsonObject.put("code", jsonResult.getString("code")); - if (Objects.equals(jsonResult.getString("code"), "200")) { + if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_TWO_HUNDRED.getNumber()) { if (Objects.equals(type, "now")) { JSONObject object = jsonResult.getJSONObject(type); @@ -389,22 +543,22 @@ public class WeatherForecastController extends BaseController { }); return jsonArray; } - } else if (Objects.equals(jsonResult.getString("code"), "500")) { - jsonObject.put("msg", "请求失败:无响应或超时"); - } else if (Objects.equals(jsonResult.getString("code"), "429")) { - jsonObject.put("msg", "请求失败:每分钟访问次数过多,请稍后重试"); - } else if (Objects.equals(jsonResult.getString("code"), "404")) { - jsonObject.put("msg", "请求失败:查询的地区或者数据不存在"); - } else if (Objects.equals(jsonResult.getString("code"), "403")) { - jsonObject.put("msg", "请求失败:无访问权限,可能是绑定的PackageName、BundleID、域名IP地址不一致"); - } else if (Objects.equals(jsonResult.getString("code"), "402")) { - jsonObject.put("msg", "请求失败:超过访问次数或余额不足以支持继续访问服务"); - } else if (Objects.equals(jsonResult.getString("code"), "401")) { - jsonObject.put("msg", "请求失败:认证失败,可能使用了错误的KEY、数字签名错误、KEY的类型错误"); - } else if (Objects.equals(jsonResult.getString("code"), "400")) { - jsonObject.put("msg", "请求失败:请求错误,可能包含错误的请求参数或缺少必选的请求参数"); - } else if (Objects.equals(jsonResult.getString("code"), "204")) { - jsonObject.put("msg", "请求失败:请求成功,但你查询的地区暂时没有你需要的数据"); + } else if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_FIVE_HUNDRED.getNumber()) { + jsonObject.put("msg", UniversalEnum.WEATHER_FORECAST_FIVE_HUNDRED.getValue()); + } else if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_TWENTY_NINE.getNumber()) { + jsonObject.put("msg", UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_TWENTY_NINE.getValue()); + } else if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_AND_FOUR.getNumber()) { + jsonObject.put("msg", UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_AND_FOUR.getValue()); + } else if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_AND_THREE.getNumber()) { + jsonObject.put("msg", UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_AND_THREE.getValue()); + } else if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_AND_TWO.getNumber()) { + jsonObject.put("msg", UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_AND_TWO.getValue()); + } else if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_AND_ONE.getNumber()) { + jsonObject.put("msg", UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED_AND_ONE.getValue()); + } else if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED.getNumber()) { + jsonObject.put("msg", UniversalEnum.WEATHER_FORECAST_FOUR_HUNDRED.getValue()); + } else if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_TWO_HUNDRED_AND_FORTY.getNumber()) { + jsonObject.put("msg", UniversalEnum.WEATHER_FORECAST_TWO_HUNDRED_AND_FORTY.getValue()); } return jsonObject; } @@ -424,16 +578,16 @@ public class WeatherForecastController extends BaseController { Response response // 请求响应 = okHttp .headers(new HashMap<>()) - .url(weather.getString("WEATHERFACTSURI") + longitude + "," + latitude + weather.getString("KEY") + weather.getString("WEATHERFACTSKEY")) // 请求地址 + .url(weather.getString("WEATHERFACTSURI") + longitude + UniversalEnum.COMMA.getValue() + latitude + weather.getString("KEY") + weather.getString("WEATHERFACTSKEY")) // 请求地址 .get(); // 请求方法 if (response.body() != null) { JSONObject jsonResult = JSONObject.parseObject(response.body().string()); - if (jsonResult.getInteger("code") == 200) { + if (jsonResult.getInteger("code") == UniversalEnum.WEATHER_FORECAST_TWO_HUNDRED.getNumber()) { jsonObject.put("weatherInTheAreaWhereTheIncidentOccurred", jsonResult); } else { - return AjaxResult.error(jsonResult.getInteger("code"), "请求失败"); + return AjaxResult.error(jsonResult.getInteger("code"), UniversalEnum.REQUEST_FAILED.getValue()); } } return AjaxResult.success(jsonObject); diff --git a/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java b/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java index 3611c4c6..68208a6d 100644 --- a/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java +++ b/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java @@ -31,6 +31,9 @@ public enum UniversalEnum { // http HTTP(0, "http://"), + // https + HTTPS(0, "https://"), + // weixintuisontoken WEIXINTUISONTOKEN(0, "weixintuisontoken"), From 5519f679fd65b23613c03197d858c861fef9a62c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=85=B4=E7=90=B3?= <1911390090@qq.com> Date: Tue, 25 Jun 2024 10:25:46 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E5=B1=95=E7=A4=BA=E5=85=A8=E9=83=A8=20?= =?UTF-8?q?=E8=83=BD=E8=A7=81=E5=BA=A6=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DcMeteorologicalDetectorController.java | 1 + .../business/controller/DcTrafficStatisticsController.java | 3 ++- .../business/mapper/DcTollStationStatisticsDataMapper.java | 5 ++++- .../service/IDcTollStationStatisticsDataService.java | 4 +++- .../service/impl/DcTollStationStatisticsDataImpl.java | 7 ++----- .../mapper/business/DcMeteorologicalDetectorDataMapper.xml | 6 ++++-- .../mapper/business/DcTollStationStatisticsDataMapper.xml | 2 +- 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/DcMeteorologicalDetectorController.java b/zc-business/src/main/java/com/zc/business/controller/DcMeteorologicalDetectorController.java index 2c9f2f16..d42b6691 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcMeteorologicalDetectorController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcMeteorologicalDetectorController.java @@ -51,6 +51,7 @@ public class DcMeteorologicalDetectorController extends BaseController { @GetMapping("/listVisibility") public TableDataInfo listVisibility(DcMeteorologicalDetectorData dcMeteorologicalDetectorData) { + startPage(); List list = dcMeteorologicalDetectorDataService.selectlistVisibility(dcMeteorologicalDetectorData); return getDataTable(list); } diff --git a/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java b/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java index 91e83aed..30e81ce8 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java @@ -21,6 +21,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; import java.util.Map; +import java.util.Set; /** @@ -408,7 +409,7 @@ public AjaxResult trafficFlowAtTollStationEntrance(String startDate, String endD @ApiOperation("获取据库中收费站数数据") @GetMapping("/history/TollBoothStatistics") public AjaxResult TollBoothStatistics(String startDate,String accessType,String periodType) throws HttpException, IOException{ - List mapList = dcTollStationStatisticsDataService.TollBoothStatistics(startDate,accessType,periodType); + List> mapList = dcTollStationStatisticsDataService.TollBoothStatistics(startDate,accessType,periodType); // 将查询结果封装为成功响应并返回 return AjaxResult.success(mapList); } diff --git a/zc-business/src/main/java/com/zc/business/mapper/DcTollStationStatisticsDataMapper.java b/zc-business/src/main/java/com/zc/business/mapper/DcTollStationStatisticsDataMapper.java index ad336882..83bbec5f 100644 --- a/zc-business/src/main/java/com/zc/business/mapper/DcTollStationStatisticsDataMapper.java +++ b/zc-business/src/main/java/com/zc/business/mapper/DcTollStationStatisticsDataMapper.java @@ -2,11 +2,14 @@ package com.zc.business.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zc.business.domain.DcTollStationStatisticsData; +import com.zc.business.domain.DcTollStationStatisticsDataMap; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.Set; /** * 这是一个接口的注释,用于描述收费站数据统计的Mapper。 @@ -32,6 +35,6 @@ public interface DcTollStationStatisticsDataMapper extends BaseMapper TollBoothStatistics(@Param("startDate") String startDate, @Param("accessType") String accessType, @Param("periodType") String periodType); + List> TollBoothStatistics(@Param("startDate") String startDate, @Param("accessType") String accessType, @Param("periodType") String periodType); } diff --git a/zc-business/src/main/java/com/zc/business/service/IDcTollStationStatisticsDataService.java b/zc-business/src/main/java/com/zc/business/service/IDcTollStationStatisticsDataService.java index 3a240ba7..95b630b6 100644 --- a/zc-business/src/main/java/com/zc/business/service/IDcTollStationStatisticsDataService.java +++ b/zc-business/src/main/java/com/zc/business/service/IDcTollStationStatisticsDataService.java @@ -3,8 +3,10 @@ package com.zc.business.service; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.extension.service.IService; import com.zc.business.domain.DcTollStationStatisticsData; +import com.zc.business.domain.DcTollStationStatisticsDataMap; import java.util.List; +import java.util.Map; /** * 收费站数据统计接口。该接口扩展了IService接口,用于对DcTollStationStatisticsData类型的实体进行数据库操作。 @@ -39,5 +41,5 @@ public interface IDcTollStationStatisticsDataService extends IService accumulatedFlow(DcTollStationStatisticsData request); - List TollBoothStatistics(String startDate, String accessType, String periodType); + List> TollBoothStatistics(String startDate, String accessType, String periodType); } diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcTollStationStatisticsDataImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcTollStationStatisticsDataImpl.java index 2d89a62d..27aed6bb 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcTollStationStatisticsDataImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcTollStationStatisticsDataImpl.java @@ -25,10 +25,7 @@ import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.time.LocalDate; import java.time.ZoneId; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -234,7 +231,7 @@ public class DcTollStationStatisticsDataImpl extends ServiceImpl TollBoothStatistics(String startDate, String accessType, String periodType) { + public List> TollBoothStatistics(String startDate, String accessType, String periodType) { return dcTollStationStatisticsDataMapper.TollBoothStatistics(startDate,accessType,periodType); } diff --git a/zc-business/src/main/resources/mapper/business/DcMeteorologicalDetectorDataMapper.xml b/zc-business/src/main/resources/mapper/business/DcMeteorologicalDetectorDataMapper.xml index a68051b1..c04132fe 100644 --- a/zc-business/src/main/resources/mapper/business/DcMeteorologicalDetectorDataMapper.xml +++ b/zc-business/src/main/resources/mapper/business/DcMeteorologicalDetectorDataMapper.xml @@ -276,8 +276,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" m.visibility_type != 4 AND m.visibility_type = #{visibilityType} - AND DATE(m.create_time) = CURDATE() - +/* AND DATE(m.create_time) = CURDATE() +*/ + ORDER BY + m.create_time desc - SELECT fa.facility_name, fa.stake_mark, From bb48b5088674558970535f96949229678cfb1507 Mon Sep 17 00:00:00 2001 From: "Mr.Wang" Date: Tue, 25 Jun 2024 10:56:37 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=AE=A1=E6=8E=A7-?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=BE=E5=A4=87=E5=88=97=E8=A1=A8=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=8E=A7=E5=88=B6=E8=AE=B0=E5=BD=95=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E5=88=B0=E5=85=AC=E4=BC=97=E6=9C=8D=E5=8A=A1=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interfaces/OperationLogAspect.java | 2 +- .../impl/DcEmergencyPlansServiceImpl.java | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java b/zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java index d4071155..c43f1417 100644 --- a/zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java +++ b/zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java @@ -269,7 +269,7 @@ public class OperationLogAspect { dcPublishManage.setPublishChannels(7); } - dcPublishManage.setContentDetails(String.valueOf(pointArgs)); + dcPublishManage.setContentDetails(JSON.toJSONString(pointArgs)); dcPublishManageService.insertDcPublishManage(dcPublishManage); } } diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java index dca0f978..d73d9177 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcEmergencyPlansServiceImpl.java @@ -767,6 +767,7 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { try { // 根据不通设备类型,执行不通的功能操作 invokedFunction( + dcExecuteAction.getDeviceType(), id, dcEventAnDcEmergencyPlans.getOperationType(), dcDevices, @@ -820,11 +821,29 @@ public class DcEmergencyPlansServiceImpl implements DcEmergencyPlansService { /** * 根据不通设备类型,执行不通的功能操作 */ - public void invokedFunction(String eventId, + public void invokedFunction(int deviceType, + String eventId, Integer operationType, List dcDevices, JSONObject otherConfig, JSONArray resultArray) { + // 获取设备类型名称 + String deviceTypeName = Arrays.stream(DeviceTypeEnum.values()) + .filter(deviceTypeEnum -> deviceTypeEnum.getCode() == deviceType) + .findFirst() + .map(DeviceTypeEnum::getInfo) + .orElse("类型异常"); + + if (dcDevices.size() == 0) { + JSONObject result = new JSONObject(); + JSONObject errorResult = new JSONObject(); + errorResult.put("code",500); + errorResult.put("msg","操作失败"); + result.put("deviceName", deviceTypeName); + result.put("content", "未找到相关设备"); + result.put("result", errorResult); + resultArray.add(result); + } for (DcDevice device : dcDevices) { From 4f689a89ba2b4fd92335270de963fd2c6356607b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=85=B4=E7=90=B3?= <1911390090@qq.com> Date: Tue, 25 Jun 2024 15:00:02 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E4=BA=A4=E9=80=9A=E6=B5=81=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DcTrafficFlowWarning.java | 97 +++++++++++++------ .../DcTollStationStatisticsDataMapper.xml | 16 +-- 2 files changed, 75 insertions(+), 38 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/controller/DcTrafficFlowWarning.java b/zc-business/src/main/java/com/zc/business/controller/DcTrafficFlowWarning.java index 06dee7a5..9e11d6cf 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcTrafficFlowWarning.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcTrafficFlowWarning.java @@ -1,12 +1,13 @@ package com.zc.business.controller; import com.google.gson.Gson; -import com.ruoyi.common.utils.uuid.IdUtils; -import com.ruoyi.common.utils.uuid.UUID; import com.zc.business.domain.DcHolidays; import com.zc.business.domain.DcNoStakeWarningTable; +import com.zc.business.domain.DcTollStationStatisticsData; +import com.zc.business.domain.DcTollStationStatisticsDataMap; import com.zc.business.service.IDcGantryStatisticsDataService; import com.zc.business.service.IDcHolidaysService; +import com.zc.business.service.IDcTollStationStatisticsDataService; import com.zc.business.service.impl.DcNoStakeWarningTableServiceImpl; import com.zc.common.core.websocket.WebSocketService; import org.springframework.beans.factory.annotation.Autowired; @@ -14,9 +15,13 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; /** * @@ -31,11 +36,12 @@ public class DcTrafficFlowWarning { private IDcHolidaysService dcHolidaysService; @Autowired private IDcGantryStatisticsDataService dcGantryStatisticsDataService; - //@Scheduled(cron = "0/10 * * * * ?") - //@Scheduled(cron = "0 0/5 * * * ?") - public void DcTrafficFlow() { - System.out.println("每隔10秒执行一次:" + new Date()); + @Autowired + private IDcTollStationStatisticsDataService iDcTollStationStatisticsDataService; + //@Scheduled(cron = "0/10 * * * * ?") + @Scheduled(cron = "0 0 9 * * ?") + public void DcTrafficFlow() throws ParseException { // 获取当前日期 LocalDate currentDate = LocalDate.now(); // 获取当前年份 @@ -48,8 +54,10 @@ public class DcTrafficFlowWarning { LocalDate dateAfterSevenDays = currentDate.plusDays(7); // 格式化日期输出(可选) DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String formattedDate = dateAfterSevenDays.format(formatter); - //String formattedDate ="2024-05-01"; + DateTimeFormatter formatterStr = DateTimeFormatter.ofPattern("yyyy年M月d日"); + // String formattedDate = dateAfterSevenDays.format(formatter); + String formattedDateStr = dateAfterSevenDays.format(formatterStr); + String formattedDate ="2024-05-01"; for (DcHolidays holidays : dcHolidaysList) { String vacation = holidays.getVacation(); @@ -58,31 +66,55 @@ public class DcTrafficFlowWarning { if (formattedDate.equals(dates[0])) { //当前假期名称 String name = holidays.getName(); - dcHolidays.setDate(currentYear-1); + dcHolidays.setDate(currentYear - 1); - DcHolidays dcHolidaysLast = dcHolidaysService.selectDcHolidaysListNameByDate(currentYear-1,name); + DcHolidays dcHolidaysLast = dcHolidaysService.selectDcHolidaysListNameByDate(currentYear - 1, name); String vacation1 = dcHolidaysLast.getVacation(); String[] date = vacation1.split("\\|"); - Map>>> mapListOne = new HashMap<>(); + Map>>> mapListOne = new HashMap<>(); - Map>> map = new HashMap<>(); - Map>> map2 = new HashMap<>(); + Map>> map = new HashMap<>(); + Map>> map2 = new HashMap<>(); + Map>> map3 = new HashMap<>(); + Map>> map4 = new HashMap<>(); for (int i1 = 0; i1 < date.length; i1++) { - List> mapList = dcGantryStatisticsDataService.realTimeTrafficFlow( date[i1],"1","4"); - List> mapList2 = dcGantryStatisticsDataService.realTimeTrafficFlow(date[i1],"3","4"); + //交通流 + List> mapList = dcGantryStatisticsDataService.realTimeTrafficFlow(date[i1], "1", "4"); + List> mapList2 = dcGantryStatisticsDataService.realTimeTrafficFlow(date[i1], "3", "4"); + //收费站 + // access_type 1 入口 2出口 + // period_type 时间颗粒度 + List> dcTollStationStatisticsDataTwo = iDcTollStationStatisticsDataService.TollBoothStatistics(date[i1], "2", "4"); + List> dcTollStationStatisticsData = iDcTollStationStatisticsDataService.TollBoothStatistics(date[i1], "1", "4"); + // 计算当前日期加上七天后的日期 - LocalDate dateAfterSevenDay = currentDate.plusDays(7+i1); + LocalDate dateAfterSevenDay = currentDate.plusDays(7 + i1); DateTimeFormatter formattedDateLst = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String formatted = dateAfterSevenDay.format(formattedDateLst); - map.put(formatted,mapList); - map2.put(formatted,mapList2); + map.put(formatted, mapList); + map2.put(formatted, mapList2); + map3.put(formatted, dcTollStationStatisticsData); + map4.put(formatted, dcTollStationStatisticsDataTwo); } - - mapListOne.put("1",map); - mapListOne.put("3",map2); +/* //根据时间进行升序排序 + Map>> sortedMap = map3.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(Collectors.toMap( + Map.Entry::getKey, + Map.Entry::getValue, + (oldValue, newValue) -> oldValue, // 如果有重复的key,默认保留旧值 + LinkedHashMap::new // 为了保持排序,使用LinkedHashMap + )); + +// 用排序后的Map替换原来的map3 + map3 = sortedMap;*/ + mapListOne.put("1", map);//菏泽方向 + mapListOne.put("3", map2);//济南方向 + mapListOne.put("4", map3);//收费站入口 + mapListOne.put("5", map4);//收费站出口 // 创建Gson对象 Gson gson = new Gson(); @@ -90,21 +122,26 @@ public class DcTrafficFlowWarning { String jsonString = gson.toJson(mapListOne); DcNoStakeWarningTable dcNoStakeWarningTable = new DcNoStakeWarningTable(); - dcNoStakeWarningTable.setWarningDescription(name +"交通流数据预警提醒"); + // 计算当前日期加上七天的日期 + LocalDate dateAfterSevenDa = currentDate.plusDays(7+date.length); + // 计算当前日期加上七天的日期 + // 格式化日期输出(可选) + DateTimeFormatter formatte = DateTimeFormatter.ofPattern("M月d日"); + String formattedDa = dateAfterSevenDa.format(formatte); + + dcNoStakeWarningTable.setWarningDescription("预计"+ formattedDateStr+"-"+formattedDa+",高速车流量剧增。平台预警提醒您:提前调度路管人员前往匝道等交通事故多发路段巡查,以便及时救援。"); dcNoStakeWarningTable.setWarningType("1"); dcNoStakeWarningTable.setOtherConfig(jsonString); dcNoStakeWarningTable.setWarningTime(new Date()); - +//存入记录 dcNoStakeWarningTableService.addDcNoStakeWarningTable(dcNoStakeWarningTable); - - Map contentMap = new HashMap<>(); - contentMap.put("content",name +"交通流数据预警提醒"); - contentMap.put("trafficFlowDataEarlyWarning",jsonString); + Long id = dcNoStakeWarningTable.getId(); + Map contentMap = new HashMap<>(); + contentMap.put("content", "预计"+ formattedDateStr+"-"+formattedDa+",高速车流量剧增。平台预警提醒您:提前调度路管人员前往匝道等交通事故多发路段巡查,以便及时救援。"); + contentMap.put("id", id); WebSocketService.broadcast("trafficFlowDataEarlyWarning", contentMap); - // 打印JSON字符串 - System.out.println(jsonString.length()); - + System.out.println(jsonString); } } } diff --git a/zc-business/src/main/resources/mapper/business/DcTollStationStatisticsDataMapper.xml b/zc-business/src/main/resources/mapper/business/DcTollStationStatisticsDataMapper.xml index dec49031..a08b9fa8 100644 --- a/zc-business/src/main/resources/mapper/business/DcTollStationStatisticsDataMapper.xml +++ b/zc-business/src/main/resources/mapper/business/DcTollStationStatisticsDataMapper.xml @@ -103,14 +103,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"