предупреждение по прознозу
This commit is contained in:
@ -31,7 +31,6 @@ import org.springframework.web.bind.annotation.SessionAttributes;
|
||||
import org.springframework.web.context.ServletContextAware;
|
||||
|
||||
@Controller
|
||||
//@SessionAttributes( { "user" }) //Сесионный объект
|
||||
public class SendMail implements ServletContextAware {
|
||||
|
||||
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