предупреждение по прознозу
This commit is contained in:
@ -10,7 +10,7 @@ spring:
|
|||||||
application:
|
application:
|
||||||
name: org.ccalm.main
|
name: org.ccalm.main
|
||||||
datasource:
|
datasource:
|
||||||
url: jdbc:postgresql://91.201.214.156:5432/CCALM
|
url: jdbc:postgresql://ccalm.org:5432/CCALM
|
||||||
username: postgres
|
username: postgres
|
||||||
password: PasSecrKey1
|
password: PasSecrKey1
|
||||||
driver-class-name: org.postgresql.Driver
|
driver-class-name: org.postgresql.Driver
|
||||||
|
|||||||
@ -31,7 +31,6 @@ import org.springframework.web.bind.annotation.SessionAttributes;
|
|||||||
import org.springframework.web.context.ServletContextAware;
|
import org.springframework.web.context.ServletContextAware;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
//@SessionAttributes( { "user" }) //Сесионный объект
|
|
||||||
public class SendMail implements ServletContextAware {
|
public class SendMail implements ServletContextAware {
|
||||||
|
|
||||||
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SendMail.class);
|
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SendMail.class);
|
||||||
|
|||||||
99
src/main/java/org/ccalm/main/SendWarning.java
Normal file
99
src/main/java/org/ccalm/main/SendWarning.java
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
package org.ccalm.main;
|
||||||
|
|
||||||
|
import jakarta.servlet.ServletContext;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.*;
|
||||||
|
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
|
||||||
|
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
import tools.DBTools;
|
||||||
|
import tools.User;
|
||||||
|
|
||||||
|
import java.sql.Types;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
public class SendWarning {
|
||||||
|
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SendWarning.class);
|
||||||
|
|
||||||
|
private final RestTemplate restTemplate = new RestTemplate();
|
||||||
|
private final NamedParameterJdbcTemplate jdbcTemplate;
|
||||||
|
|
||||||
|
private ServletContext context;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public SendWarning(NamedParameterJdbcTemplate jdbcTemplate) {
|
||||||
|
this.jdbcTemplate = jdbcTemplate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JSONObject getSoilTemperature(double lat,double lon){
|
||||||
|
JSONObject result=null;
|
||||||
|
// Формируем JSON-запрос
|
||||||
|
Map<String, Object> request = new HashMap<>();
|
||||||
|
request.put("date", null); //NULL to select the latest date available in the database
|
||||||
|
request.put("hours", 0);
|
||||||
|
request.put("lon", lon);
|
||||||
|
request.put("lat", lat);
|
||||||
|
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(request, headers);
|
||||||
|
String url = "https://geoserver2.ccalm.org/geodatalist/getAirTemperature";
|
||||||
|
try {
|
||||||
|
ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.POST, entity, Map.class);
|
||||||
|
if (response.getStatusCode() == HttpStatus.OK && response.getBody() != null) {
|
||||||
|
Object date = response.getBody().get("date");
|
||||||
|
Object value = response.getBody().get("value");
|
||||||
|
if (value != null && date != null) {
|
||||||
|
result = new JSONObject();
|
||||||
|
result.put("date", date);
|
||||||
|
result.put("value", value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
logger.error(uuid,e);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/api/main/v01/SendWarning",method = RequestMethod.GET,produces = "text/html;charset=UTF-8")
|
||||||
|
@ResponseBody
|
||||||
|
public ResponseEntity<Object> send(@ModelAttribute User user, @RequestParam(required=false,name="lng") String language_id) {
|
||||||
|
Map<String, Object> result = new HashMap<>();
|
||||||
|
|
||||||
|
String sql = """
|
||||||
|
select
|
||||||
|
t.lat,
|
||||||
|
t.lon,
|
||||||
|
t.temperature
|
||||||
|
from
|
||||||
|
main.frmcheckpoints t
|
||||||
|
where
|
||||||
|
t.del=false
|
||||||
|
and t.warn=true
|
||||||
|
""";
|
||||||
|
|
||||||
|
MapSqlParameterSource parameters = new MapSqlParameterSource();
|
||||||
|
//parameters.addValue("language_id", language_id, Types.INTEGER);
|
||||||
|
List<String> ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper());
|
||||||
|
for (String jsonString : ret) {
|
||||||
|
JSONObject obj = new JSONObject(jsonString);
|
||||||
|
JSONObject tmp = getSoilTemperature(obj.getDouble("lat"),obj.getDouble("lon"));
|
||||||
|
if(tmp!=null) {
|
||||||
|
double temperature = obj.getDouble("temperature");
|
||||||
|
if (temperature < tmp.getDouble("val")) {
|
||||||
|
System.out.println(tmp.getDouble("val"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ResponseEntity<>(result, HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user