From 1a7fae8e70f1e34825b56bbbeb20b844de644f9f Mon Sep 17 00:00:00 2001 From: zhaoxianglong Date: Wed, 3 Jul 2024 10:09:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B0=94=E8=B1=A1=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E8=BF=94=E5=9B=9E=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WeatherForecastController.java | 285 ++++++++++-------- 1 file changed, 155 insertions(+), 130 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 f8c08c72..0f23decf 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 @@ -80,130 +80,133 @@ public class WeatherForecastController extends BaseController { return; } JSONArray data = (JSONArray) JSON.toJSON(ajaxResult.get("data")); - List dcNoStakeWarningTables = noStakeWarningTableService.listDcNoStakeWarningTable(new DcNoStakeWarningTable(),null,null); - 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; - } + if (data.size() > UniversalEnum.ZERO.getNumber()) { + + List dcNoStakeWarningTables = noStakeWarningTableService.listDcNoStakeWarningTable(new DcNoStakeWarningTable(), null, null); + 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; - } + 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 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); - } + //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 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); @@ -318,7 +321,33 @@ public class WeatherForecastController extends BaseController { JSONObject jsonResult = JSONObject.parseObject(response.body().string()); if (jsonResult.getInteger("code") == UniversalEnum.TWO_HUNDRED.getNumber()) { JSONArray jsonArray = jsonResult.getJSONArray("data"); - List collect = jsonArray.stream().filter(item -> { + //List collect = jsonArray.stream().filter(item -> { + // JSONObject jsonObject = (JSONObject) JSON.toJSON(item); + // return Objects.equals(jsonObject.getString("stationName"), UniversalEnum.CHANGQING_COUNTY.getValue()) + // || Objects.equals(jsonObject.getString("stationName"), UniversalEnum.PING_YIN.getValue()) + // || Objects.equals(jsonObject.getString("stationName"), UniversalEnum.DONG_PING.getValue()) + // || Objects.equals(jsonObject.getString("stationName"), UniversalEnum.MONKAMI.getValue()) + // || Objects.equals(jsonObject.getString("stationName"), UniversalEnum.LIANG_SHAN.getValue()) + // || Objects.equals(jsonObject.getString("stationName"), UniversalEnum.JIA_XIANG.getValue()) + // || Objects.equals(jsonObject.getString("stationName"), UniversalEnum.JU_YE.getValue()) + // || Objects.equals(jsonObject.getString("stationName"), UniversalEnum.YUNCHENG_A_COUNTY_IN_SHANDONG_PROVINCE.getValue()); + // //if (Objects.equals(jsonObject.getString("stationName"), "长清") + // // || Objects.equals(jsonObject.getString("stationName"), "平阴") + // // || Objects.equals(jsonObject.getString("stationName"), "东平") + // // || Objects.equals(jsonObject.getString("stationName"), "汶上") + // // || Objects.equals(jsonObject.getString("stationName"), "梁山") + // // || Objects.equals(jsonObject.getString("stationName"), "嘉祥") + // // || Objects.equals(jsonObject.getString("stationName"), "巨野") + // // || Objects.equals(jsonObject.getString("stationName"), "郓城")) { + // // return true; + // //} else { + // // return false; + // //} + //}).collect(Collectors.toList()); + //if (collect.size() != UniversalEnum.ZERO.getNumber()) { + // redisCache.deleteObject("currentWeatherWarningInformationQuery"); + // redisCache.setCacheList("currentWeatherWarningInformationQuery", collect); + return AjaxResult.success(jsonArray.stream().filter(item -> { JSONObject jsonObject = (JSONObject) JSON.toJSON(item); return Objects.equals(jsonObject.getString("stationName"), UniversalEnum.CHANGQING_COUNTY.getValue()) || Objects.equals(jsonObject.getString("stationName"), UniversalEnum.PING_YIN.getValue()) @@ -340,14 +369,10 @@ public class WeatherForecastController extends BaseController { //} else { // return false; //} - }).collect(Collectors.toList()); - if (collect.size() != UniversalEnum.ZERO.getNumber()) { - redisCache.deleteObject("currentWeatherWarningInformationQuery"); - redisCache.setCacheList("currentWeatherWarningInformationQuery", collect); - return AjaxResult.success(collect); - } else { - return AjaxResult.success(redisCache.getCacheList("currentWeatherWarningInformationQuery")); - } + }).collect(Collectors.toList())); + //} else { + // return AjaxResult.success(redisCache.getCacheList("currentWeatherWarningInformationQuery")); + //} } else { return AjaxResult.error(jsonResult.getInteger("code"), UniversalEnum.REQUEST_FAILED.getValue()); }