From d7fa8eea7a388d4a5cc6b0c2ba27c03c177503c9 Mon Sep 17 00:00:00 2001 From: igor Date: Wed, 8 Jan 2025 07:20:54 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BC=D0=B0=20=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- org_ccalm_weather.yml | 10 ++-- .../org/ccalm/weather/AirTemperature.java | 50 ++++++++----------- src/main/java/org/ccalm/weather/DBTools.java | 8 ++- .../org/ccalm/weather/MainController.java | 10 ++-- .../java/org/ccalm/weather/Precipitation.java | 36 +++++++------ .../org/ccalm/weather/SoilTmperature.java | 36 +++++++------ 6 files changed, 73 insertions(+), 77 deletions(-) diff --git a/org_ccalm_weather.yml b/org_ccalm_weather.yml index b7e913c..de17d0f 100644 --- a/org_ccalm_weather.yml +++ b/org_ccalm_weather.yml @@ -6,7 +6,7 @@ server: spring: application: - name: kz_mcp_weather + name: kz_ccalm_weather cache: type: none @@ -16,14 +16,14 @@ custom: data_dir: O:\\temp\\CCALM\\ #data_dir: /temp/CCALM/ db_all: - url: jdbc:postgresql://192.168.0.90:5432/weather?ApplicationName=kz_mcp_weather&sslmode=require + url: jdbc:postgresql://92.46.48.43:5444/weather?ApplicationName=kz_mcp_weather&sslmode=require + #url: jdbc:postgresql://192.168.0.90:5432/weather?ApplicationName=kz_mcp_weather&sslmode=require #url: jdbc:postgresql://127.0.0.1:5432/weather?ApplicationName=kz_mcp_weather&sslmode=require - #url: jdbc:postgresql://92.46.48.43:5433/weather?ApplicationName=kz_mcp_weather&sslmode=require login: postgres password: PasSecrKey1 db_ru: - url: jdbc:postgresql://192.168.0.90:5433/weather_ru?ApplicationName=kz_mcp_weather&sslmode=require - #url: jdbc:postgresql://92.46.48.43:5433/weather_ru?ApplicationName=kz_mcp_weather&sslmode=require + url: jdbc:postgresql://92.46.48.43:5444/weather_ru?ApplicationName=kz_mcp_weather&sslmode=require + #url: jdbc:postgresql://192.168.0.90:5433/weather_ru?ApplicationName=kz_mcp_weather&sslmode=require #url: jdbc:postgresql://127.0.0.1:5432/weather_ru?ApplicationName=kz_mcp_weather&sslmode=require login: postgres password: PasSecrKey1 diff --git a/src/main/java/org/ccalm/weather/AirTemperature.java b/src/main/java/org/ccalm/weather/AirTemperature.java index 68eece2..b448105 100644 --- a/src/main/java/org/ccalm/weather/AirTemperature.java +++ b/src/main/java/org/ccalm/weather/AirTemperature.java @@ -154,7 +154,7 @@ public class AirTemperature implements ServletContextAware { logger.error("N2:"+ex.getMessage(),ex); result+=ex.getMessage()+"
"; } - if(!strPos1.equals("")) + if(!strPos1.isEmpty()) { StringBuffer answer1=new StringBuffer(strPos1); CutBeforeFirst(answer1,":"); @@ -333,27 +333,31 @@ public class AirTemperature implements ServletContextAware { main.get_air_temperature_date(cast(to_timestamp(?, 'YYYYMMDD HH24') as timestamp without time zone),?) ); """; - String point_id=""; + String point_id=null; if(db_all) { point_id = DBTools.getPointId(st_all, country_id, lon, lat); - try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) { - pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); - pstmt.setLong(2, Long.valueOf(country_id)); - pstmt.setLong(3, Long.valueOf(point_id)); - pstmt.setString(4, date+" "+time); - pstmt.setInt(5, Integer.valueOf(forecast)); - pstmt.executeUpdate(); + if(point_id!=null) { + try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) { + pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); + pstmt.setLong(2, Long.valueOf(country_id)); + pstmt.setLong(3, Long.valueOf(point_id)); + pstmt.setString(4, date + " " + time); + pstmt.setInt(5, Integer.valueOf(forecast)); + pstmt.executeUpdate(); + } } } if(db_ru) { point_id = DBTools.getPointId(st_ru, country_id, lon, lat); - try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) { - pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); - pstmt.setLong(2, Long.valueOf(country_id)); - pstmt.setLong(3, Long.valueOf(point_id)); - pstmt.setString(4, date+" "+time); - pstmt.setInt(5, Integer.valueOf(forecast)); - pstmt.executeUpdate(); + if(point_id!=null) { + try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) { + pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); + pstmt.setLong(2, Long.valueOf(country_id)); + pstmt.setLong(3, Long.valueOf(point_id)); + pstmt.setString(4, date + " " + time); + pstmt.setInt(5, Integer.valueOf(forecast)); + pstmt.executeUpdate(); + } } } } catch (SQLException ex) { @@ -421,20 +425,6 @@ public class AirTemperature implements ServletContextAware { return result; } //--------------------------------------------------------------------------- - //@Autowired - @GetMapping("/geodatalist/AirTemperatureDates0") - @ResponseBody - public String getGeoDataList0(HttpServletResponse response) { - String headerValue = CacheControl.maxAge(60, TimeUnit.SECONDS).getHeaderValue(); - response.addHeader("Cache-Control", headerValue); - - String html=""; - html+="AirTemperatureDates

"; - html+="PrecipitationDates

"; - html+="SoilDates

"; - return html; - } - //--------------------------------------------------------------------------- //List of "Air temperature" dates from database in JSON //@CacheControl(maxAge = 300) @CrossOrigin diff --git a/src/main/java/org/ccalm/weather/DBTools.java b/src/main/java/org/ccalm/weather/DBTools.java index 6445906..fc9aad5 100644 --- a/src/main/java/org/ccalm/weather/DBTools.java +++ b/src/main/java/org/ccalm/weather/DBTools.java @@ -26,7 +26,7 @@ public class DBTools { } //--------------------------------------------------------------------------- public static String getPointId(Statement st, String country_id, double lon, double lat) { - String point_id = ""; + String point_id = null; PreparedStatement pstmt = null; try { String sql = "SELECT id FROM main.points WHERE lon = ? AND lat = ? LIMIT 1"; @@ -41,15 +41,13 @@ public class DBTools { } catch (SQLException ex) { logger.error("N9: " + ex.getMessage(), ex); } - if(point_id.isEmpty()){ + if(point_id==null){ try { - String sql = "insert into main.points(country_id,geom,lon,lat)values(?,ST_SetSRID(st_makepoint(?,?),4326),?,?) RETURNING id"; + String sql = "insert into main.points(country_id,lon,lat)values(?,?,?) RETURNING id"; pstmt = st.getConnection().prepareStatement(sql); pstmt.setLong(1, Long.valueOf(country_id)); pstmt.setDouble(2, lon); pstmt.setDouble(3, lat); - pstmt.setDouble(4, lon); - pstmt.setDouble(5, lat); try (ResultSet rs = pstmt.executeQuery()) { if (rs.next()) { point_id = rs.getString(1); // Получаем ID, возвращаемый SQL-запросом diff --git a/src/main/java/org/ccalm/weather/MainController.java b/src/main/java/org/ccalm/weather/MainController.java index a00b8d1..9f93080 100644 --- a/src/main/java/org/ccalm/weather/MainController.java +++ b/src/main/java/org/ccalm/weather/MainController.java @@ -23,11 +23,11 @@ public class MainController { @GetMapping("/geodatalist") @ResponseBody public String getGeoDataList(Model model) { - String html=""; - html+="AirTemperatureDates

"; - html+="PrecipitationDates

"; - html+="SoilDates

"; - return html; + return """ + AirTemperatureDates

+ PrecipitationDates

+ SoilDates

+ """; } } \ No newline at end of file diff --git a/src/main/java/org/ccalm/weather/Precipitation.java b/src/main/java/org/ccalm/weather/Precipitation.java index 8015cd1..df12bfc 100644 --- a/src/main/java/org/ccalm/weather/Precipitation.java +++ b/src/main/java/org/ccalm/weather/Precipitation.java @@ -178,7 +178,7 @@ public class Precipitation implements ServletContextAware { logger.error("N2:"+ex.getMessage(),ex); result+=ex.getMessage()+"
"; } - if(!strPos1.equals("")) + if(!strPos1.isEmpty()) { StringBuffer answer1=new StringBuffer(strPos1); CutBeforeFirst(answer1,":"); @@ -353,27 +353,31 @@ public class Precipitation implements ServletContextAware { main.get_precipitation_date(cast(to_timestamp(?, 'YYYYMMDD HH24') as timestamp without time zone),?) ); """; - String point_id=""; + String point_id=null; if(db_all) { point_id = DBTools.getPointId(st_all, country_id, lon, lat); - try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) { - pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); - pstmt.setLong(2, Long.valueOf(country_id)); - pstmt.setLong(3, Long.valueOf(point_id)); - pstmt.setString(4, date+" "+time); - pstmt.setInt(5, Integer.valueOf(forecast)); - pstmt.executeUpdate(); + if(point_id!=null) { + try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) { + pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); + pstmt.setLong(2, Long.valueOf(country_id)); + pstmt.setLong(3, Long.valueOf(point_id)); + pstmt.setString(4, date + " " + time); + pstmt.setInt(5, Integer.valueOf(forecast)); + pstmt.executeUpdate(); + } } } if(db_ru) { point_id = DBTools.getPointId(st_ru, country_id, lon, lat); - try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) { - pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); - pstmt.setLong(2, Long.valueOf(country_id)); - pstmt.setLong(3, Long.valueOf(point_id)); - pstmt.setString(4, date+" "+time); - pstmt.setInt(5, Integer.valueOf(forecast)); - pstmt.executeUpdate(); + if(point_id!=null) { + try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) { + pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); + pstmt.setLong(2, Long.valueOf(country_id)); + pstmt.setLong(3, Long.valueOf(point_id)); + pstmt.setString(4, date + " " + time); + pstmt.setInt(5, Integer.valueOf(forecast)); + pstmt.executeUpdate(); + } } } } catch (SQLException ex) { diff --git a/src/main/java/org/ccalm/weather/SoilTmperature.java b/src/main/java/org/ccalm/weather/SoilTmperature.java index 0c1bb5c..88d03f7 100644 --- a/src/main/java/org/ccalm/weather/SoilTmperature.java +++ b/src/main/java/org/ccalm/weather/SoilTmperature.java @@ -188,7 +188,7 @@ public class SoilTmperature implements ServletContextAware { logger.error("N2: "+ex.getMessage(),ex); result+=ex.getMessage()+"
"; } - if(!strPos1.equals("")) + if(!strPos1.isEmpty()) { //String strPos1 = "250:146339365:d=2017022818:TSOIL:0-0.1 m below ground:anl:" StringBuffer answer1=new StringBuffer(strPos1); @@ -372,27 +372,31 @@ public class SoilTmperature implements ServletContextAware { main.get_soil_temperature_date(cast(to_timestamp(?, 'YYYYMMDD HH24') as timestamp without time zone),?) ); """; - String point_id=""; + String point_id=null; if(db_all) { point_id = DBTools.getPointId(st_all, country_id, lon, lat); - try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) { - pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); - pstmt.setLong(2, Long.valueOf(country_id)); - pstmt.setLong(3, Long.valueOf(point_id)); - pstmt.setString(4, date+" "+time); - pstmt.setInt(5, Integer.valueOf(forecast)); - pstmt.executeUpdate(); + if(point_id!=null) { + try (PreparedStatement pstmt = conn_all.prepareStatement(sql)) { + pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); + pstmt.setLong(2, Long.valueOf(country_id)); + pstmt.setLong(3, Long.valueOf(point_id)); + pstmt.setString(4, date + " " + time); + pstmt.setInt(5, Integer.valueOf(forecast)); + pstmt.executeUpdate(); + } } } if(db_ru) { point_id = DBTools.getPointId(st_ru, country_id, lon, lat); - try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) { - pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); - pstmt.setLong(2, Long.valueOf(country_id)); - pstmt.setLong(3, Long.valueOf(point_id)); - pstmt.setString(4, date+" "+time); - pstmt.setInt(5, Integer.valueOf(forecast)); - pstmt.executeUpdate(); + if(point_id!=null) { + try (PreparedStatement pstmt = conn_ru.prepareStatement(sql)) { + pstmt.setFloat(1, dataArrayTmp.getFloat(pos)); + pstmt.setLong(2, Long.valueOf(country_id)); + pstmt.setLong(3, Long.valueOf(point_id)); + pstmt.setString(4, date + " " + time); + pstmt.setInt(5, Integer.valueOf(forecast)); + pstmt.executeUpdate(); + } } } } catch (SQLException ex) {