Merge branch 'develop' of https://git.dirt.kz/igor/org.ccalm.main into develop

This commit is contained in:
Igor I
2025-03-28 13:22:57 +05:00
7 changed files with 282 additions and 225 deletions

View File

@ -1,5 +1,5 @@
server: server:
port: 8081 port: 8083
ssl: ssl:
enabled: true enabled: true
key-store: classpath:keystore.jks key-store: classpath:keystore.jks
@ -8,7 +8,7 @@ server:
spring: spring:
application: application:
name: org.ccalm.main name: org-ccalm-main
datasource: datasource:
#url: jdbc:postgresql://ccalm.org:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000 #url: jdbc:postgresql://ccalm.org:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000
url: jdbc:postgresql://127.0.0.1:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000 url: jdbc:postgresql://127.0.0.1:5432/CCALM?ApplicationName=org_ccalm_main&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000

View File

@ -155,7 +155,7 @@ public class AcceptASDCController implements ServletContextAware {
// Чтение файла // Чтение файла
BufferedReader reader = new BufferedReader(new FileReader("O:\\temp\\Новая папка\\errors.log")); BufferedReader reader = new BufferedReader(new FileReader("O:\\temp\\Новая папка\\errors.log"));
StringBuilder content = new StringBuilder(); StringBuilder content = new StringBuilder(1024);
String line; String line;
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
content.append(line); content.append(line);

View File

@ -136,7 +136,7 @@ public class AcceptJSON implements ServletContextAware {
ex.printStackTrace(); ex.printStackTrace();
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder(1024);
try try
{ {
String strURL="http://91.185.13.233:98/get_fito"; String strURL="http://91.185.13.233:98/get_fito";
@ -546,8 +546,8 @@ public class AcceptJSON implements ServletContextAware {
locust.district = jsonObj.getString("townName"); locust.district = jsonObj.getString("townName");
if (!jsonObj.isNull("point")) { if (!jsonObj.isNull("point")) {
locust.lon = jsonObj.getJSONObject("point").getJSONArray("coordinates").getDouble(0); locust.lon_center = String.valueOf(jsonObj.getJSONObject("point").getJSONArray("coordinates").getDouble(0));
locust.lat = jsonObj.getJSONObject("point").getJSONArray("coordinates").getDouble(1); locust.lat_center = String.valueOf(jsonObj.getJSONObject("point").getJSONArray("coordinates").getDouble(1));
} }
//Контур зоны распространения ВО Polygon (geoJSON) //Контур зоны распространения ВО Polygon (geoJSON)
@ -720,7 +720,7 @@ public class AcceptJSON implements ServletContextAware {
for (Object o2 : jsonArraySub) { for (Object o2 : jsonArraySub) {
JSONObject jsonObjSub = (JSONObject) o2; JSONObject jsonObjSub = (JSONObject) o2;
locust.eid = jsonObjSub.getInt("id"); locust.eid = String.valueOf(jsonObjSub.getInt("id"));
locust.phytoType = jsonObjSub.getString("phytoType"); //"Вредители" или "Обработка" locust.phytoType = jsonObjSub.getString("phytoType"); //"Вредители" или "Обработка"
if (locust.phytoType.equals("Обработка")) { if (locust.phytoType.equals("Обработка")) {
locust.insecticide_name = jsonObjSub.getString("nameSubject"); //Наименование действующего вещества locust.insecticide_name = jsonObjSub.getString("nameSubject"); //Наименование действующего вещества
@ -852,9 +852,9 @@ public class AcceptJSON implements ServletContextAware {
} }
try { try {
stmt.setLong(1, locust.eid); if (locust.eid == null) stmt.setNull(1, Types.INTEGER); else stmt.setLong(1, Long.parseLong(locust.eid));
stmt.setDouble(2, locust.lat); if (locust.lat_center == null) stmt.setNull(2, Types.DOUBLE); else stmt.setDouble(2, Double.parseDouble(locust.lat_center));
stmt.setDouble(3, locust.lon); if (locust.lon_center == null) stmt.setNull(3, Types.DOUBLE); else stmt.setDouble(3, Double.parseDouble(locust.lon_center));
stmt.setInt(4, 7); //country_id stmt.setInt(4, 7); //country_id
stmt.setInt(5, Integer.parseInt(locust.region_id)); //region_id stmt.setInt(5, Integer.parseInt(locust.region_id)); //region_id
stmt.setString(6, locust.district); //Пишу в поле "area" stmt.setString(6, locust.district); //Пишу в поле "area"
@ -1017,7 +1017,7 @@ public class AcceptJSON implements ServletContextAware {
} }
//Если те виды что нам нужны //Если те виды что нам нужны
if (regionName == null || regionName.isEmpty() || locust.lat == 0 || locust.lon == 0 || locust.locust.equals("Совка ипсилон") || locust.locust.equals("Восточный майский хрущ") || locust.locust.equals("Кукурузный стеблевой мотылек") || locust.locust.equals("Картофельная, или болотная совка, лиловатая яровая совка") || locust.locust.equals("Луговой мотылёк") || locust.locust.equals("Хлопковая совка") || locust.locust.equals("Стеблевой кукурузный мотылек") || locust.locust.equals("Восточная луговая совка") || locust.locust.equals("Коричневая щитовка") || locust.locust.equals("Продолговатая (чайная) подушечница") || locust.locust.equals("Яблоневая запятовидная щитовка") || locust.locust.equals("Виноградная филлоксера") || locust.locust.equals("Бахчевая коровка")) { if (regionName == null || regionName.isEmpty() || Double.parseDouble(locust.lat_center) == 0 || Double.parseDouble(locust.lon_center) == 0 || locust.locust.equals("Совка ипсилон") || locust.locust.equals("Восточный майский хрущ") || locust.locust.equals("Кукурузный стеблевой мотылек") || locust.locust.equals("Картофельная, или болотная совка, лиловатая яровая совка") || locust.locust.equals("Луговой мотылёк") || locust.locust.equals("Хлопковая совка") || locust.locust.equals("Стеблевой кукурузный мотылек") || locust.locust.equals("Восточная луговая совка") || locust.locust.equals("Коричневая щитовка") || locust.locust.equals("Продолговатая (чайная) подушечница") || locust.locust.equals("Яблоневая запятовидная щитовка") || locust.locust.equals("Виноградная филлоксера") || locust.locust.equals("Бахчевая коровка")) {
} else { } else {
@ -1076,7 +1076,7 @@ public class AcceptJSON implements ServletContextAware {
if (locust.region_id == null || locust.region_id.isEmpty() || locust.district_id == null || locust.district_id.isEmpty() || locust.locust_type_id == null || locust.locust_type_id.isEmpty()) { if (locust.region_id == null || locust.region_id.isEmpty() || locust.district_id == null || locust.district_id.isEmpty() || locust.locust_type_id == null || locust.locust_type_id.isEmpty()) {
row = "<tr style=\"background-color:red;\">"; row = "<tr style=\"background-color:red;\">";
} }
row += "<td>" + String.valueOf(cntO+cntV) + "</td><td>" + locust.eid + "</td><td>" + locust.lat + "</td><td>" + locust.lon + "</td><td>" + regionName + " = " + locust.region_id + "</td><td>" + locust.district + " = " + locust.district_id + "</td><td>" + locust.terrain + "</td><td>" + locust.village + "</td><td>" + locust.locust + " = " + locust.locust_type_id + "</td><td>" + locust.phase + " = " + locust.locust_have + "</td><td>" + locust.evp + "</td><td>" + locust.size + " = " + locust.drawPolygon + "</td><td>" + locust.date + "</td>"; row += "<td>" + String.valueOf(cntO+cntV) + "</td><td>" + locust.eid + "</td><td>" + locust.lat_center + "</td><td>" + locust.lon_center + "</td><td>" + regionName + " = " + locust.region_id + "</td><td>" + locust.district + " = " + locust.district_id + "</td><td>" + locust.terrain + "</td><td>" + locust.village + "</td><td>" + locust.locust + " = " + locust.locust_type_id + "</td><td>" + locust.phase + " = " + locust.locust_have + "</td><td>" + locust.evp + "</td><td>" + locust.size + " = " + locust.drawPolygon + "</td><td>" + locust.date + "</td>";
row += "</tr>\n"; row += "</tr>\n";
//Если записи не существует то вставляем если существует то обновляем //Если записи не существует то вставляем если существует то обновляем
@ -1183,9 +1183,9 @@ public class AcceptJSON implements ServletContextAware {
} }
try { try {
stmt.setLong(1, locust.eid); stmt.setLong(1, Long.parseLong(locust.eid));
stmt.setDouble(2, locust.lat); stmt.setDouble(2, Double.parseDouble(locust.lat_center));
stmt.setDouble(3, locust.lon); stmt.setDouble(3, Double.parseDouble(locust.lon_center));
stmt.setInt(4, 7); stmt.setInt(4, 7);
stmt.setInt(5, Integer.parseInt(locust.region_id)); stmt.setInt(5, Integer.parseInt(locust.region_id));
stmt.setString(6, locust.district); //Пишу в поле "area" stmt.setString(6, locust.district); //Пишу в поле "area"
@ -1422,8 +1422,9 @@ public class AcceptJSON implements ServletContextAware {
lastDate = LocalDate.parse(obj.getString("date")); lastDate = LocalDate.parse(obj.getString("date"));
} }
} }
if(lastDate==null) lastDate = LocalDate.parse("2024-10-01"); if(lastDate==null)
lastDate = LocalDate.parse("2025-02-11");
//lastDate = LocalDate.parse("2024-10-01");
//By number of day downloading data and write result of downloading to database, try or false, after repair need repeat download //By number of day downloading data and write result of downloading to database, try or false, after repair need repeat download
while(lastDate.isBefore(LocalDate.now().minusDays(3))){ while(lastDate.isBefore(LocalDate.now().minusDays(3))){
@ -2322,7 +2323,6 @@ public class AcceptJSON implements ServletContextAware {
} }
} }
} catch (CustomException e) { } catch (CustomException e) {
if(e.isSaveToLog()){ if(e.isSaveToLog()){
String uuid = UUID.randomUUID().toString(); String uuid = UUID.randomUUID().toString();
@ -2377,86 +2377,86 @@ public class AcceptJSON implements ServletContextAware {
FrmLocustModel result = new FrmLocustModel(); FrmLocustModel result = new FrmLocustModel();
result.company_uid = "dc271f2e-1a4b-4987-96ec-7afd91350684"; //Компания: "Узбекистан саранча" result.company_uid = "dc271f2e-1a4b-4987-96ec-7afd91350684"; //Компания: "Узбекистан саранча"
result.eid = obj.getInt("id"); result.eid = String.valueOf(obj.getInt("id"));
result.seq = obj.getLong("seq")*1000; result.seq = obj.getLong("seq")*1000;
result.country_id = 10; //Uzbekistan result.country_id = "10"; //Uzbekistan
result.country_uid = "05592f5a-1c8b-4d87-a47f-67697cc12c49"; //Uzbekistan result.country_uid = "05592f5a-1c8b-4d87-a47f-67697cc12c49"; //Uzbekistan
if(!obj.isNull("region_name")) { if(!obj.isNull("region_name") && !obj.optString("region_name","").isBlank()) {
switch (obj.getString("region_name")) { switch (obj.optString("region_name",null).trim()) {
case "Sirdaryo viloyati": case "Sirdaryo viloyati", "Сырдарьинская область":
result.region_id = "31"; result.region_id = "31";
result.region_uid = "8f4f586f-6159-4fbf-a627-2c8d637abb5e"; result.region_uid = "8f4f586f-6159-4fbf-a627-2c8d637abb5e";
break; break;
case "Toshkent shahri": case "Toshkent shahri", "Город Ташкент":
result.region_id = "156"; result.region_id = "156";
result.region_uid = "1ed7b6f3-47a8-4128-ae0a-c160f5c3af08"; result.region_uid = "1ed7b6f3-47a8-4128-ae0a-c160f5c3af08";
break; break;
case "Toshkent viloyati": case "Toshkent viloyati", "Ташкентская область":
result.region_id = "157"; result.region_id = "157";
result.region_uid = "c8fccdc4-256a-4699-ab09-16c51351bf28"; result.region_uid = "c8fccdc4-256a-4699-ab09-16c51351bf28";
break; break;
case "Surxondaryo viloyati": case "Surxondaryo viloyati", "Сурхандарьинская область":
result.region_id = "30"; result.region_id = "30";
result.region_uid = "369c296d-5ff5-4570-88ad-0e94ccf9cb7c"; result.region_uid = "369c296d-5ff5-4570-88ad-0e94ccf9cb7c";
break; break;
case "Jizzax viloyati": case "Jizzax viloyati", "Джизакская область":
result.region_id = "25"; result.region_id = "25";
result.region_uid = "a7185680-7afc-47f1-954e-3d0f8b296592"; result.region_uid = "a7185680-7afc-47f1-954e-3d0f8b296592";
break; break;
case "Республики Каракалпакстан": case "Qoraqalpogiston Respublikasi", "Республики Каракалпакстан":
result.region_id = "22"; result.region_id = "22";
result.region_uid = "421ce759-b571-454e-b390-a73bee9b8b2c"; result.region_uid = "421ce759-b571-454e-b390-a73bee9b8b2c";
break; break;
case "Xorazm viloyati": case "Xorazm viloyati", "Хорезмская область":
result.region_id = "34"; result.region_id = "34";
result.region_uid = "8bc74ac4-ce06-4317-9982-b1492c72edb7"; result.region_uid = "8bc74ac4-ce06-4317-9982-b1492c72edb7";
break; break;
case "Andijon viloyati": case "Andijon viloyati", "Андижанская область":
result.region_id = "23"; result.region_id = "23";
result.region_uid = "a045faa8-eb12-40db-be30-be6e41e59bb2"; result.region_uid = "a045faa8-eb12-40db-be30-be6e41e59bb2";
break; break;
case "Fargʻona viloyati": case "Fargʻona viloyati", "Ферганская область":
result.region_id = "33"; result.region_id = "33";
result.region_uid = "e97ac81d-dab5-4496-9e0f-0c5508972539"; result.region_uid = "e97ac81d-dab5-4496-9e0f-0c5508972539";
break; break;
case "Namangan viloyati": case "Namangan viloyati", "Наманганская область":
result.region_id = "28"; result.region_id = "28";
result.region_uid = "e931af2e-0035-4149-b3b9-00895e4e1453"; result.region_uid = "e931af2e-0035-4149-b3b9-00895e4e1453";
break; break;
case "Buxoro viloyati": case "Buxoro viloyati", "Бухарская область":
result.region_id = "24"; result.region_id = "24";
result.region_uid = "0caf3854-48ad-40ed-9602-302c28b1a5b8"; result.region_uid = "0caf3854-48ad-40ed-9602-302c28b1a5b8";
break; break;
case "Navoiy viloyati": case "Navoiy viloyati", "Навоийская область":
result.region_id = "27"; result.region_id = "27";
result.region_uid = "ef244a76-8e7c-4e16-ad80-058b740fa6ca"; result.region_uid = "ef244a76-8e7c-4e16-ad80-058b740fa6ca";
break; break;
case "Qashqadaryo viloyati": case "Qashqadaryo viloyati","Кашкадарьинская область":
result.region_id = "158"; result.region_id = "158";
result.region_uid = "cf9a0a6e-18fa-41a0-bd9d-39c5fd1260c1"; result.region_uid = "cf9a0a6e-18fa-41a0-bd9d-39c5fd1260c1";
break; break;
case "Samarqand viloyati": case "Samarqand viloyati", "Самаркандская область":
result.region_id = "29"; result.region_id = "29";
result.region_uid = "2a6adb56-19a7-4f28-9a00-87559db91db9"; result.region_uid = "2a6adb56-19a7-4f28-9a00-87559db91db9";
break; break;
default: default:
System.out.println(obj.getString("region_name")); System.out.println(obj.optString("region_name",null));
throw new CustomException(10000, "Not find region by region_name: " + obj.getString("region_name"), null, true); throw new CustomException(10000, "Not find region by region_name: " + obj.optString("region_name",null), null, true);
} }
} }
result.district = obj.getString("town_name"); result.district = obj.optString("town_name",null);
result.date = obj.getString("date"); result.date = obj.optString("date",null);
result.bio_hectare = obj.getString("surveyed_area"); result.bio_hectare = obj.optString("surveyed_area",null);
if (!obj.isNull("point")) { if (!obj.isNull("point")) {
result.lon = obj.getJSONObject("point").getJSONArray("coordinates").getDouble(0); result.lon_center = String.valueOf(obj.getJSONObject("point").getJSONArray("coordinates").getDouble(0));
result.lat = obj.getJSONObject("point").getJSONArray("coordinates").getDouble(1); result.lat_center = String.valueOf(obj.getJSONObject("point").getJSONArray("coordinates").getDouble(1));
} }
//Биотоп //Биотоп
if(!obj.isNull("biotope_type")) { if(!obj.isNull("biotope_type") && !obj.optString("biotope_type","").isBlank()) {
switch (obj.getString("biotope_type")) { switch (obj.optString("biotope_type",null).trim()) {
case "CIT степь","CIT steppe": case "CIT степь","CIT steppe":
result.bio_biotope_id = "1"; result.bio_biotope_id = "1";
result.bio_biotope_uid = "e6fa860a-ca2f-4cd7-8cfc-b97d86d2cd2d"; result.bio_biotope_uid = "e6fa860a-ca2f-4cd7-8cfc-b97d86d2cd2d";
@ -2517,129 +2517,144 @@ public class AcceptJSON implements ServletContextAware {
result.bio_biotope_id = "17"; result.bio_biotope_id = "17";
result.bio_biotope_uid = "c82f2609-b50a-4ca4-babc-ae3426f22b81"; result.bio_biotope_uid = "c82f2609-b50a-4ca4-babc-ae3426f22b81";
break; break;
case "Другое","Other locust": case "Other locust","Другое","DAL большая саксоулная горбатка в саксаулах","Другие саранчовые":
result.bio_biotope_id = "18"; result.bio_biotope_id = "18";
result.bio_biotope_uid = "e99a8868-2582-41e8-9c01-bef5fca8f0d1"; result.bio_biotope_uid = "e99a8868-2582-41e8-9c01-bef5fca8f0d1";
break; break;
default: default:
throw new CustomException(10000, "Not find biotopee: " + obj.getString("biotope_type"), null, true); throw new CustomException(10000, "Not find biotope_type: " + obj.optString("biotope_type",null), null, true);
} }
} }
//растительность //растительность
if(!obj.isNull("vegetation")) { if(!obj.isNull("vegetation") && !obj.optString("vegetation","").isBlank()) {
switch (obj.getString("vegetation")) { switch (obj.optString("vegetation",null).trim()) {
case "Plant absent": case "Plant absent","Растения отсутствуют","Отсутствует":
result.bio_greenery_id = "8"; result.bio_greenery_id = "8";
result.bio_greenery_uid = "5621f2f2-56e8-486f-abc0-7eba996b6724"; result.bio_greenery_uid = "5621f2f2-56e8-486f-abc0-7eba996b6724";
break; break;
case "Plant dry": case "Plant dry", "Засохшие трава", "Высохшая трава":
result.bio_greenery_id = "7"; result.bio_greenery_id = "7";
result.bio_greenery_uid = "04ba0a4a-0557-490f-a08b-0db51a83cf7c"; result.bio_greenery_uid = "04ba0a4a-0557-490f-a08b-0db51a83cf7c";
break; break;
case "Желтеющая трава": //Plant drying case "Plant drying", "Желтеющая трава":
result.bio_greenery_id = "6"; result.bio_greenery_id = "6";
result.bio_greenery_uid = "99381409-ad1a-4ac8-95df-415ccb1334e1"; result.bio_greenery_uid = "99381409-ad1a-4ac8-95df-415ccb1334e1";
break; break;
case "Plant green": case "Plant green", "Свежая проросщая трава", "Зелёная трава":
result.bio_greenery_id = "5"; result.bio_greenery_id = "5";
result.bio_greenery_uid = "8fab82b8-8924-458d-b3f1-90a18ed75f9b"; result.bio_greenery_uid = "8fab82b8-8924-458d-b3f1-90a18ed75f9b";
break; break;
case "Plant greening": case "Plant greening", "Всходы зеленых трав":
result.bio_greenery_id = "4"; result.bio_greenery_id = "4";
result.bio_greenery_uid = "682993e1-3e5b-4aa0-9f11-c2a30a9c5908"; result.bio_greenery_uid = "682993e1-3e5b-4aa0-9f11-c2a30a9c5908";
break; break;
default: default:
throw new CustomException(10000, "Not find vegetation: " + obj.getString("vegetation"), null, true); throw new CustomException(10000, "Not find vegetation: " + obj.optString("vegetation",null), null, true);
} }
} }
//Густота растительного покрова //Густота растительного покрова
if(!obj.isNull("vegetation_cover")) { if(!obj.isNull("vegetation_cover") && !obj.optString("vegetation_cover","").isBlank()) {
switch (obj.getString("vegetation_cover")) { switch (obj.optString("vegetation_cover",null).trim()) {
case "Sparse": //Sparse case "Sparse","Редкая": //Sparse
result.bio_greenery_cover_id = "8"; result.bio_greenery_cover_id = "8";
result.bio_greenery_cover_uid = "c70a145b-cfe4-4ad9-9ef8-814c9e3a1fac"; result.bio_greenery_cover_uid = "c70a145b-cfe4-4ad9-9ef8-814c9e3a1fac";
break; break;
case "Medium": //Medium case "Medium","Средняя": //Medium
result.bio_greenery_cover_id = "9"; result.bio_greenery_cover_id = "9";
result.bio_greenery_cover_uid = "d66bdde4-72a7-497f-b5e8-3174aebd7165"; result.bio_greenery_cover_uid = "d66bdde4-72a7-497f-b5e8-3174aebd7165";
break; break;
case "Густая": //Dense case "Dense","Густая": //Dense
result.bio_greenery_cover_id = "10"; result.bio_greenery_cover_id = "10";
result.bio_greenery_cover_uid = "4c12085b-4f42-4ba2-9236-465d5c5d0690"; result.bio_greenery_cover_uid = "4c12085b-4f42-4ba2-9236-465d5c5d0690";
break; break;
case "Absent": //Absent case "Absent","Отсутствует": //Absent
result.bio_greenery_cover_id = "0"; result.bio_greenery_cover_id = "0";
result.bio_greenery_cover_uid = "f712fe9a-2e42-44b9-b3dc-a7a1dc4767e8"; result.bio_greenery_cover_uid = "f712fe9a-2e42-44b9-b3dc-a7a1dc4767e8";
break; break;
default: default:
throw new CustomException(10000, "Not find vegetation_cover: " + obj.getString("vegetation_cover"), null, true); throw new CustomException(10000, "Not find vegetation_cover: " + obj.optString("vegetation_cover",null), null, true);
} }
} }
result.bio_temperature = obj.getString("air_temperature"); result.bio_temperature = obj.optString("air_temperature",null);
if(result.bio_temperature.isEmpty()) result.bio_temperature = null; if(result.bio_temperature!=null && result.bio_temperature.isEmpty()) result.bio_temperature = null;
result.bio_wind = obj.getString("wind_speed"); result.bio_wind = obj.optString("wind_speed",null);
if(result.bio_wind.isEmpty()) result.bio_wind = null; if(result.bio_wind!=null && result.bio_wind.isEmpty()) result.bio_wind = null;
//Вид саранчи //Вид саранчи
if(!obj.isNull("subject_name")) { if(!obj.isNull("subject_name") && !obj.optString("subject_name","").isBlank()) {
switch (obj.getString("subject_name")) { switch (obj.optString("subject_name",null).replace("'", "").trim()) {
case "Мароккская саранча": case "CIT - Italian locust", "CIT - итальянский прус", "Итальянский прус", "Итальянский прус, Кузнечики":
result.locust_type_id = "2";
break;
case "Итальянский прус":
result.locust_type_id = "1"; result.locust_type_id = "1";
result.locust_type_uid = "688e484b-babd-4a48-b318-be85e40682b0";
break; break;
case "Азиатская саранча": case "DMA - Moroccan locust", "DMA - мароккская саранча", "Мароккская саранча", "Мароккская саранча, Азиаткая саранча", "Мароккская саранча, Атбасарка", "Мароккская саранча, Туранский прус", "Мароккская саранча, Кузнечики":
result.locust_type_id = "2";
result.locust_type_uid = "8dd9e74f-d7ba-492a-8c75-7aed4f0847c6";
break;
case "LMI - Asian migratory locust", "LMI - азиатская перелетная саранча", "Азиаткая саранча":
result.locust_type_id = "3"; result.locust_type_id = "3";
result.locust_type_uid = "d61a5325-e8c7-497a-9cff-7ee4c4e1e37d";
break;
case "CIT & DMA", "Пустынная саранча, Мароккская саранча", "Итальянский прус, Мароккская саранча, Атбасарка, Кузнечики", "Итальянский прус, Мароккская саранча, Туранский прус", "Итальянский прус, Мароккская саранча, Кузнечики":
result.locust_type_id = "5";
result.locust_type_uid = "a85e8007-2303-4797-9f74-6cdc07da553f";
break;
case "CIT & LMI", "Пустынная саранча, Итальянский прус, Мароккская саранча", "Итальянский прус, Мароккская саранча":
result.locust_type_id = "6";
result.locust_type_uid = "4effd7bb-f19e-4a98-a724-691da12c163e";
break;
case "Other", "Другое", "Другие саранчовые", "Другие саранчовые, Пустынная саранча", "Другие саранчовые, Атбасарка, Кузнечики", "Большая саксаульная горбатка, Мароккская саранча", "Большая саксаульная горбатка, Туранский прус", "Другие саранчовые, Туранский прус", "Пустынная саранча, Итальянский прус", "Кузнечики", "Другие саранчовые, Атбасарка", "Другие саранчовые, Итальянский прус", "Другие саранчовые, Мароккская саранча", "Большая саксаульная горбатка", "Пустынная саранча", "Атбасарка", "Туранский прус", "Другие саранчовые, Большая саксаульная горбатка", "Другие саранчовые, Итальянский прус, Мароккская саранча", "Другие саранчовые, Кузнечики", "Другие саранчовые, Итальянский прус, Кузнечики", "Другие саранчовые, Мароккская саранча, Атбасарка", "Другие саранчовые, Мароккская саранча, Азиаткая саранча":
result.locust_type_id = "4";
result.locust_type_uid = "bf79cae1-1e01-4e7f-8ec1-deb06936a58e";
break; break;
default: default:
throw new CustomException(10000, "Not find vegetation_cover: " + obj.getString("vegetation_cover"), null, true); throw new CustomException(10000, "Not find subject_name: " + obj.optString("subject_name",null), null, true);
} }
} }
//Area infested (ha) //Area infested (ha)
result.locust_populated = obj.getString("infested_area"); result.locust_populated = obj.optString("infested_area",null);
result.eggs_capsules_area = obj.getString("eggs_bed_area"); result.eggs_capsules_area = obj.optString("eggs_bed_area",null);
result.eggs_capsules_density = obj.getString("eggs_pods_density_from_m2"); result.eggs_capsules_density = obj.optString("eggs_pods_density_from_m2",null);
result.eggs_capsules_density_to = obj.getString("eggs_pods_density_to_m2"); result.eggs_capsules_density_to = obj.optString("eggs_pods_density_to_m2",null);
result.eggs_capsules = obj.getString("eggs_average_number_egg_pod"); result.eggs_capsules = obj.optString("eggs_average_number_egg_pod",null);
result.eggs_live = obj.getString("eggs_viable"); result.eggs_live = obj.optString("eggs_viable",null);
if(!obj.isNull("eggs_natural_enemies")) { if(!obj.isNull("eggs_natural_enemies") && !obj.optString("eggs_natural_enemies","").isBlank()) {
switch (obj.getString("eggs_natural_enemies")) { switch (obj.optString("eggs_natural_enemies",null).replace("'", "").trim()) {
case "not", "Нет": case "not", "Нет", "Нет, Грибные заболевание":
result.eggs_enemies_id = "5"; result.eggs_enemies_id = "5";
result.eggs_enemies_uid = "52580c53-3d13-4b93-b84e-fcf9cbd50e01"; result.eggs_enemies_uid = "52580c53-3d13-4b93-b84e-fcf9cbd50e01";
break; break;
case "Other", "Другое": case "Other", "Другое", "Другое, Нет", "Другое, Личинки мух, Личинки жуков", "Другое, Личинки мух", "Другое, Естественные враги 2 ru":
result.eggs_enemies_id = "4"; result.eggs_enemies_id = "4";
result.eggs_enemies_uid = "d13c793f-f65e-4a34-9307-940289cd4265"; result.eggs_enemies_uid = "d13c793f-f65e-4a34-9307-940289cd4265";
break; break;
case "Larvae of beetles", "Личинки жуков": case "Larvae of beetles", "Личинки жуков", "Другое, Личинки жуков", "Личинки жуков, Нет":
result.eggs_enemies_id = "3"; result.eggs_enemies_id = "3";
result.eggs_enemies_uid = "76cf72d8-8ac5-44de-98f3-a7221d2c7985"; result.eggs_enemies_uid = "76cf72d8-8ac5-44de-98f3-a7221d2c7985";
break; break;
case "Larvae of flies", "Личинки мух": case "Larvae of flies", "Личинки мух", "Личинки мух, Личинки жуков":
result.eggs_enemies_id = "2"; result.eggs_enemies_id = "2";
result.eggs_enemies_uid = "e2e573a3-9859-46f9-99e6-f97d7fc37ea2"; result.eggs_enemies_uid = "e2e573a3-9859-46f9-99e6-f97d7fc37ea2";
break; break;
case "Fungal diseases", "Грибные заболевания": case "Fungal diseases", "Грибные заболевания", "Грибные заболевание":
result.eggs_enemies_id = "1"; result.eggs_enemies_id = "1";
result.eggs_enemies_uid = "d0cf06f4-6e1f-4da2-b836-45dfdef5da98"; result.eggs_enemies_uid = "d0cf06f4-6e1f-4da2-b836-45dfdef5da98";
break; break;
default: default:
throw new CustomException(10000, "Not find eggs_natural_enemies: " + obj.getString("eggs_natural_enemies"), null, true); throw new CustomException(10000, "Not find eggs_natural_enemies: " + obj.optString("eggs_natural_enemies",null), null, true);
} }
} }
result.larva_born = null; // not used result.larva_born = null; // not used
if(!obj.isNull("hoppers_hatching")){ if(!obj.isNull("hoppers_hatching") && !obj.optString("hoppers_hatching","").isBlank()){
switch (obj.getString("hoppers_hatching")) { switch (obj.optString("hoppers_hatching",null).replace("'", "").trim().trim()) {
case "Beginning","Начало": case "Beginning", "Начало":
result.larva_born_id="1"; result.larva_born_id="1";
result.larva_born_uid="392db9f2-bfaa-44e0-8ca3-bb3cf1ff937a"; result.larva_born_uid="392db9f2-bfaa-44e0-8ca3-bb3cf1ff937a";
break; break;
@ -2648,13 +2663,13 @@ public class AcceptJSON implements ServletContextAware {
result.larva_born_uid="3210fcfb-3885-4b0e-92c7-3c6f6a0b7134"; result.larva_born_uid="3210fcfb-3885-4b0e-92c7-3c6f6a0b7134";
break; break;
default: default:
throw new CustomException(10000, "Not find hoppers_hatching: " + obj.getString("hoppers_hatching"),null,true); throw new CustomException(10000, "Not find hoppers_hatching: " + obj.optString("hoppers_hatching",null),null,true);
} }
} }
//Hopper stages //Hopper stages
if(!obj.isNull("hoppers_stages")){ /*if(!obj.isNull("hoppers_appearance") && !obj.optString("hoppers_appearance","").isBlank()){
switch (obj.getString("hoppers_stages")) { switch (obj.optString("hoppers_appearance",null).replace("'", "").trim()) {
case "Early","Младшие": case "Early","Младшие":
result.larva_age_id="1"; result.larva_age_id="1";
result.larva_age_uid="becdbc31-094e-48bb-aef0-93f88abff12d"; result.larva_age_uid="becdbc31-094e-48bb-aef0-93f88abff12d";
@ -2676,13 +2691,13 @@ public class AcceptJSON implements ServletContextAware {
result.larva_age_uid="5acd65b3-e32f-4984-83ad-dfba2b7f0205"; result.larva_age_uid="5acd65b3-e32f-4984-83ad-dfba2b7f0205";
break; break;
default: default:
throw new CustomException(10000, "Not find hoppers_hatching: " + obj.getString("hoppers_hatching"),null,true); throw new CustomException(10000, "Not find hoppers_appearance: " + obj.optString("hoppers_appearance",null),null,true);
} }
} }*/
//Appearance //Appearance
if(!obj.isNull("hoppers_appearance")){ if(!obj.isNull("hoppers_stages") && !obj.optString("hoppers_stages","").isBlank()){
switch (obj.getString("hoppers_appearance")) { switch (obj.optString("hoppers_stages",null).replace("'", "").trim()) {
case "Solitary","Одиночная": case "Solitary","Одиночная":
result.larva_age_id="1"; result.larva_age_id="1";
result.larva_age_uid="30fa1f49-166e-4a17-9cd8-d611b36844f8"; result.larva_age_uid="30fa1f49-166e-4a17-9cd8-d611b36844f8";
@ -2696,13 +2711,13 @@ public class AcceptJSON implements ServletContextAware {
result.larva_age_uid="683cdba3-2f4c-4e61-b667-936c524136b4"; result.larva_age_uid="683cdba3-2f4c-4e61-b667-936c524136b4";
break; break;
default: default:
throw new CustomException(10000, "Not find hoppers_hatching: " + obj.getString("hoppers_hatching"),null,true); throw new CustomException(10000, "Not find hoppers_stages: " + obj.optString("hoppers_stages",null),null,true);
} }
} }
//Spatial distribution //Spatial distribution
if(!obj.isNull("hoppers_spatial_distribution")){ if(!obj.isNull("hoppers_spatial_distribution") && !obj.optString("hoppers_spatial_distribution","").isBlank()){
switch (obj.getString("hoppers_spatial_distribution")) { switch (obj.optString("hoppers_spatial_distribution",null).replace("'", "").trim()) {
case "Isolated","Одиночные": case "Isolated","Одиночные":
result.larva_behavior_id="1"; result.larva_behavior_id="1";
result.larva_behavior_uid="64a7a8f5-b44d-4fd7-b78c-3c0837f57b99"; result.larva_behavior_uid="64a7a8f5-b44d-4fd7-b78c-3c0837f57b99";
@ -2716,19 +2731,19 @@ public class AcceptJSON implements ServletContextAware {
result.larva_behavior_uid="bc8c7de0-0e79-4b40-8260-a74787e19902"; result.larva_behavior_uid="bc8c7de0-0e79-4b40-8260-a74787e19902";
break; break;
default: default:
throw new CustomException(10000, "Not find hoppers_spatial_distribution: " + obj.getString("hoppers_spatial_distribution"),null,true); throw new CustomException(10000, "Not find hoppers_spatial_distribution: " + obj.optString("hoppers_spatial_distribution",null),null,true);
} }
} }
result.larva_density = obj.getString("hoppers_density_from_m2"); //Hopper density numeric, result.larva_density = obj.optString("hoppers_density_from_m2",null); //Hopper density numeric,
result.larva_density_to = obj.getString("hoppers_density_to_m2"); //Hopper density to numeric, result.larva_density_to = obj.optString("hoppers_density_to_m2",null); //Hopper density to numeric,
result.kuliguli_density = obj.getString("bands_density_from_m2"); result.kuliguli_density = obj.optString("bands_density_from_m2",null);
result.kuliguli_density_to = obj.getString("bands_density_to_m2"); result.kuliguli_density_to = obj.optString("bands_density_to_m2",null);
result.kuliguli_size = obj.getString("bands_sizes_m2"); result.kuliguli_size = obj.optString("bands_sizes_m2",null);
result.kuliguli_count = obj.getString("bands_number_in_ha"); result.kuliguli_count = obj.optString("bands_number_in_ha",null);
if(!obj.isNull("bands_behaviour")){ if(!obj.isNull("bands_behaviour") && !obj.optString("bands_behaviour","").isBlank()){
switch (obj.getString("bands_behaviour")) { switch (obj.optString("bands_behaviour",null).replace("'", "").trim()) {
case "Marching","Миграция": case "Marching","Миграция","Миргация":
result.kuliguli_action_id="1"; result.kuliguli_action_id="1";
result.kuliguli_action_uid="4399f28c-b1ed-44f6-8af5-351cd944d408"; result.kuliguli_action_uid="4399f28c-b1ed-44f6-8af5-351cd944d408";
break; break;
@ -2740,7 +2755,7 @@ public class AcceptJSON implements ServletContextAware {
result.kuliguli_action_id="3"; result.kuliguli_action_id="3";
result.kuliguli_action_uid="0fca9acd-9447-4653-9ca7-7dcac7cb495e"; result.kuliguli_action_uid="0fca9acd-9447-4653-9ca7-7dcac7cb495e";
break; break;
case "Stupor","Оцепенение": case "Stupor","Оцепенение","Оцепененине":
result.kuliguli_action_id="4"; result.kuliguli_action_id="4";
result.kuliguli_action_uid="63bb9eba-c4ad-4e2d-a1cd-ada1695abac5"; result.kuliguli_action_uid="63bb9eba-c4ad-4e2d-a1cd-ada1695abac5";
break; break;
@ -2749,11 +2764,11 @@ public class AcceptJSON implements ServletContextAware {
result.kuliguli_action_uid="65bf377f-040b-4b5f-8dca-581e1d5d679f"; result.kuliguli_action_uid="65bf377f-040b-4b5f-8dca-581e1d5d679f";
break; break;
default: default:
throw new CustomException(10000, "Not find bands_behaviour: " + obj.getString("bands_behaviour"),null,true); throw new CustomException(10000, "Not find bands_behaviour: " + obj.optString("bands_behaviour",null),null,true);
} }
} }
if(!obj.isNull("bands_stages")){ /*if(!obj.isNull("bands_stages") && !obj.optString("bands_stages","").isBlank()){
switch (obj.getString("bands_stages")) { switch (obj.optString("bands_stages",null).replace("'", "").trim()) {
case "Early","Младшие": case "Early","Младшие":
result.kuliguli_age_id="1"; result.kuliguli_age_id="1";
result.kuliguli_age_uid="becdbc31-094e-48bb-aef0-93f88abff12d"; result.kuliguli_age_uid="becdbc31-094e-48bb-aef0-93f88abff12d";
@ -2775,39 +2790,11 @@ public class AcceptJSON implements ServletContextAware {
result.kuliguli_age_uid="5acd65b3-e32f-4984-83ad-dfba2b7f0205"; result.kuliguli_age_uid="5acd65b3-e32f-4984-83ad-dfba2b7f0205";
break; break;
default: default:
throw new CustomException(10000, "Not find bands_behaviour: " + obj.getString("bands_behaviour"),null,true); throw new CustomException(10000, "Not find bands_stages: " + obj.optString("bands_stages",null),null,true);
} }
} }*/
if(!obj.isNull("bands_stages") && !obj.optString("bands_stages","").isBlank()){ // Bands stages
//Adults (Имаго) switch (obj.optString("bands_stages",null).replace("'", "").trim()) {
if(!obj.isNull("adults_fledging")){
switch (obj.getString("adults_fledging")) {
case "Beginning","Начало":
result.imago_wing_id="7";
result.imago_wing_uid="312bf2ac-dbdb-40be-b716-7f02f751a65e";
break;
case "Mass","Массовое":
result.imago_wing_id="6";
result.imago_wing_uid="97d5a02c-c3ed-4627-ae14-4f92d6eb2945";
break;
default:
throw new CustomException(10000, "Not find adults_fledging: " + obj.getString("adults_fledging"),null,true);
}
}
if(!obj.isNull("adults_maturity")){ //Половозрелость (да, нет)
switch (obj.getString("adults_maturity").toLowerCase()) {
case "yes","да":
result.imago_maturity="true";
break;
case "no","нет":
result.imago_maturity="false";
break;
default:
throw new CustomException(10000, "Not find adults_maturity: " + obj.getString("adults_maturity"),null,true);
}
}
if(!obj.isNull("bands_stages")){ // Bands stages
switch (obj.getString("bands_stages")) {
case "Solitary","Стадная": case "Solitary","Стадная":
result.imago_phase_id="4"; result.imago_phase_id="4";
result.imago_phase_uid="a1325ab8-15f5-406a-be8d-d6ba78b18d11"; result.imago_phase_uid="a1325ab8-15f5-406a-be8d-d6ba78b18d11";
@ -2821,12 +2808,35 @@ public class AcceptJSON implements ServletContextAware {
result.imago_phase_uid="5a7cacb9-c0f5-48e1-aa8c-c354565bf2f1"; result.imago_phase_uid="5a7cacb9-c0f5-48e1-aa8c-c354565bf2f1";
break; break;
default: default:
throw new CustomException(10000, "Not find bands_stages: " + obj.getString("bands_stages"),null,true); throw new CustomException(10000, "Not find bands_stages: " + obj.optString("bands_stages",null),null,true);
} }
} }
if(!obj.isNull("adults_spatial_distribution")){ // Bands stages //Adults (Имаго)
switch (obj.getString("adults_spatial_distribution")) { if(!obj.isNull("adults_fledging") && !obj.optString("adults_fledging","").isBlank()){
switch (obj.optString("adults_fledging",null).replace("'", "").trim()) {
case "Beginning","Начало":
result.imago_wing_id="7";
result.imago_wing_uid="312bf2ac-dbdb-40be-b716-7f02f751a65e";
break;
case "Mass","Массовое":
result.imago_wing_id="6";
result.imago_wing_uid="97d5a02c-c3ed-4627-ae14-4f92d6eb2945";
break;
default:
throw new CustomException(10000, "Not find adults_fledging: " + obj.optString("adults_fledging",null),null,true);
}
}
if(!obj.isNull("adults_maturity") && !obj.optString("adults_maturity","").isBlank()){ //Половозрелость (да, нет)
if(obj.getBoolean("adults_maturity"))
result.imago_maturity="true";
else
result.imago_maturity="false";
}
if(!obj.isNull("adults_spatial_distribution") && !obj.optString("adults_spatial_distribution","").isBlank()){ // Bands stages
switch (obj.optString("adults_spatial_distribution",null).replace("'", "").trim()) {
case "Isolated","Одиночные": case "Isolated","Одиночные":
result.imago_action_id="1"; result.imago_action_id="1";
result.imago_action_uid="c0b25ce8-7454-459a-9a54-b459eea1573a"; result.imago_action_uid="c0b25ce8-7454-459a-9a54-b459eea1573a";
@ -2840,72 +2850,51 @@ public class AcceptJSON implements ServletContextAware {
result.imago_action_uid="c120254b-cbb9-415a-8e41-fc4bb0ffe983"; result.imago_action_uid="c120254b-cbb9-415a-8e41-fc4bb0ffe983";
break; break;
default: default:
throw new CustomException(10000, "Not find adults_spatial_distribution: " + obj.getString("adults_spatial_distribution"),null,true); throw new CustomException(10000, "Not find adults_spatial_distribution: " + obj.optString("adults_spatial_distribution",null),null,true);
} }
} }
result.imago_density = obj.getString("adults_density_m2"); result.imago_density = obj.optString("adults_density_m2",null);
result.imago_density_ga = obj.getString("adults_density_ha"); result.imago_density_ga = obj.optString("adults_density_ha",null);
if(!obj.isNull("adults_roosting")){ //Половозрелость (да, нет) if(!obj.isNull("adults_roosting") && !obj.optString("adults_roosting","").isBlank()){ //Половозрелость (да, нет)
switch (obj.getString("adults_roosting").toLowerCase()) { if(obj.getBoolean("adults_roosting"))
case "yes","да": result.imago_feeding="true";
result.imago_feeding="true"; else
break; result.imago_feeding="false";
case "no","нет": }
result.imago_feeding="false";
break; if(!obj.isNull("adults_copulation") && !obj.optString("adults_copulation","").isBlank()){ // Спаривание
default: if(obj.getBoolean("adults_copulation")){
throw new CustomException(10000, "Not find adults_roosting: " + obj.getString("adults_roosting"),null,true); result.imago_copulation = "true";
}else{
result.imago_copulation = "false";
} }
} }
if(!obj.isNull("adults_copulation")){ // Спаривание if(!obj.isNull("adults_laying") && !obj.optString("adults_laying","").isBlank()){ // Яйцекладка
switch (obj.getString("adults_copulation").toLowerCase()) { if(obj.getBoolean("adults_laying")){
case "yes","да": result.imago_laying="true";
result.imago_copulation = "true"; }else{
break; result.imago_laying="false";
case "no","нет":
result.imago_copulation = "false";
break;
default:
throw new CustomException(10000, "Not find adults_copulation: " + obj.getString("adults_copulation"),null,true);
}
}
//result.imago_laying = obj.getString("adults_laying");
if(!obj.isNull("adults_laying")){ // Яйцекладка
switch (obj.getString("adults_laying").toLowerCase()) {
case "yes","да":
result.imago_laying="true";
break;
case "no","нет":
result.imago_laying="false";
break;
default:
throw new CustomException(10000, "Not find adults_laying: " + obj.getString("adults_laying"),null,true);
}
}
//result.imago_flying = obj.getString("adults_flying");
if(!obj.isNull("adults_flying")){ // Полёты
switch (obj.getString("adults_flying").toLowerCase()) {
case "yes","да":
result.imago_flying="true";
break;
case "no","нет":
result.imago_flying="false";
break;
default:
throw new CustomException(10000, "Not find adults_flying: " + obj.getString("adults_flying"),null,true);
} }
} }
result.swarm_maturity = obj.getString("swarms_maturity"); // boolean, if(!obj.isNull("adults_flying") && !obj.optString("adults_flying","").isBlank()){ // Полёты
result.swarm_density_id = obj.getString("swarms_density"); // integer, if(obj.getBoolean("adults_flying")){
result.swarm_size = obj.getString("swarms_size"); // double precision, result.imago_flying="true";
result.swarm_count = obj.getString("swarms_count"); // double precision, }else{
//result.swarm_copulation = obj.getString(""); // boolean, result.imago_flying="false";
//result.swarm_laying = obj.getString(""); // boolean, }
result.swarm_flying_direction_id = obj.getString("swarms_flying_direction"); // integer, }
if(obj.getString("swarms_height")!=null) {
switch (obj.getString("swarms_height")) { result.swarm_maturity = obj.optString("swarms_maturity",null); // boolean,
result.swarm_density_id = obj.optString("swarms_density",null); // integer,
result.swarm_size = obj.optString("swarms_size",null); // double precision,
result.swarm_count = obj.optString("swarms_count",null); // double precision,
//result.swarm_copulation = obj.optString("",null); // boolean,
//result.swarm_laying = obj.optString("",null); // boolean,
result.swarm_flying_direction_id = obj.optString("swarms_flying_direction",null); // integer,
if(!obj.isNull("swarms_height") && !obj.optString("swarms_height","").isBlank()) {
switch (obj.optString("swarms_height",null).replace("'", "").trim()) {
case "Low height", "Низкая": case "Low height", "Низкая":
result.swarm_height_id = "1"; result.swarm_height_id = "1";
result.swarm_height_uid = "0d60a2d7-d732-4199-b966-bd72870a07cc"; result.swarm_height_uid = "0d60a2d7-d732-4199-b966-bd72870a07cc";
@ -2919,10 +2908,10 @@ public class AcceptJSON implements ServletContextAware {
result.swarm_height_uid = "305d3224-ac2e-4abe-8adc-058373f20127"; result.swarm_height_uid = "305d3224-ac2e-4abe-8adc-058373f20127";
break; break;
default: default:
throw new CustomException(10000, "Not find swarms_height: " + obj.getString("swarms_height"), null, true); throw new CustomException(10000, "Not find swarms_height: (" + obj.optString("swarms_height",null)+")", null, true);
} }
} }
result.description = obj.getString("description"); result.description = obj.optString("description",null);
//"status":2 не знаю что за поле //"status":2 не знаю что за поле
result.update(); result.update();

View File

@ -417,7 +417,7 @@ public class QGIS implements ServletContextAware {
public String fileToString(String fName) public String fileToString(String fName)
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder(1024);
try try
{ {
InputStream is = new FileInputStream(fName); InputStream is = new FileInputStream(fName);

View File

@ -115,7 +115,7 @@ public class SendWarning {
String email = obj.getString("email"); String email = obj.getString("email");
if(email.equals("irigm@mail.ru") || email.equals("ivanov.i@istt.kz")){ //TODO для тестирования потом удалить if(email.equals("irigm@mail.ru") || email.equals("ivanov.i@istt.kz")){ //TODO для тестирования потом удалить
StringBuilder html = new StringBuilder(); StringBuilder html = new StringBuilder(1024);
html.append("<html>") html.append("<html>")
.append("<head>") .append("<head>")
.append("<style>") .append("<style>")

View File

@ -2,6 +2,8 @@ package org.ccalm.main;
import org.ccalm.main.models.FrmLocustModel; import org.ccalm.main.models.FrmLocustModel;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import tools.DBTools; import tools.DBTools;
@ -15,6 +17,8 @@ import java.util.List;
public class UpdateLocust { public class UpdateLocust {
private static final Logger logger = LoggerFactory.getLogger(UpdateLocust.class);
private final NamedParameterJdbcTemplate jdbcTemplate; private final NamedParameterJdbcTemplate jdbcTemplate;
UpdateLocust(NamedParameterJdbcTemplate jdbcTemplate){ UpdateLocust(NamedParameterJdbcTemplate jdbcTemplate){
@ -25,13 +29,14 @@ public class UpdateLocust {
String sql; String sql;
boolean exists=false; //Is there a record. boolean exists=false; //Is there a record.
MapSqlParameterSource parameters;
//Если данные пришли из внешнего источника то проверяем по ID компании и eid //Если данные пришли из внешнего источника то проверяем по ID компании и eid
if(locust.eid!=null && locust.uid==null) { if(locust.eid!=null && locust.uid==null) {
sql = """ sql = """
select uid from main.frmlocust where eid=:eid and company_uid=CAST(:company_uid AS uuid) select uid from main.frmlocust where eid=:eid and company_uid=CAST(:company_uid AS uuid)
"""; """;
MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters = new MapSqlParameterSource();
parameters.addValue("eid", locust.eid, Types.BIGINT); parameters.addValue("eid", locust.eid, Types.BIGINT);
parameters.addValue("company_uid", locust.company_uid, Types.VARCHAR); parameters.addValue("company_uid", locust.company_uid, Types.VARCHAR);
List<String> ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper()); List<String> ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper());
@ -47,7 +52,7 @@ public class UpdateLocust {
sql= """ sql= """
select uid from main.frmlocust where uid=CAST(:uid AS uuid); select uid from main.frmlocust where uid=CAST(:uid AS uuid);
"""; """;
MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters = new MapSqlParameterSource();
parameters.addValue("uid", locust.uid, Types.VARCHAR); parameters.addValue("uid", locust.uid, Types.VARCHAR);
List<String> ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper()); List<String> ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper());
for (String s : ret) { for (String s : ret) {
@ -264,7 +269,7 @@ public class UpdateLocust {
) )
"""; """;
} }
MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters = new MapSqlParameterSource();
parameters.addValue("uid", locust.uid, Types.VARCHAR); parameters.addValue("uid", locust.uid, Types.VARCHAR);
if(locust.user_id == null) { parameters.addValue("user_id", null, Types.BIGINT); } else { parameters.addValue("user_id", Long.parseLong(locust.user_id), Types.BIGINT); } if(locust.user_id == null) { parameters.addValue("user_id", null, Types.BIGINT); } else { parameters.addValue("user_id", Long.parseLong(locust.user_id), Types.BIGINT); }
@ -292,21 +297,21 @@ public class UpdateLocust {
parameters.addValue("date", null, Types.DATE); parameters.addValue("date", null, Types.DATE);
}else }else
{ {
if(date.indexOf("-")==-1) //If old date format in UNIX time if(locust.date.indexOf("-")==-1) //If old date format in UNIX time
{ {
int uDate=Integer.parseInt(date)+1; int uDate=Integer.parseInt(locust.date)+1;
java.sql.Timestamp tm=new java.sql.Timestamp((long)uDate*1000); java.sql.Timestamp tm=new java.sql.Timestamp((long)uDate*1000);
stmt.setTimestamp(14, tm); parameters.addValue("date", locust.date, Types.DATE);
}else }else
{ {
java.sql.Timestamp tm=null; java.sql.Timestamp tm=null;
DateFormat dfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //2016-05-29 18:00:01 in "GMT" DateFormat dfm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //2016-05-29 18:00:01 in "GMT"
try{ try{
tm = new java.sql.Timestamp(dfm.parse(date).getTime()); tm = new java.sql.Timestamp(dfm.parse(locust.date).getTime());
} catch (Exception ex) { } catch (Exception ex) {
logger.error("Error",ex.getMessage()); logger.error("Error",ex.getMessage());
} }
stmt.setTimestamp(14, tm); parameters.addValue("date", locust.date, Types.DATE);
} }
} }

View File

@ -10,9 +10,11 @@ public class FrmLocustModel {
public String uid; public String uid;
public String eid; //Внешний идентификатор public String eid; //Внешний идентификатор
public long seq; public long seq;
public long country_id; public String country_id;
public String country_uid; public String country_uid;
public String user_id;
public String phytoType; //Вредители либо обработка public String phytoType; //Вредители либо обработка
public String observer; public String observer;
@ -28,8 +30,9 @@ public class FrmLocustModel {
public String region_id; //Область public String region_id; //Область
public String region_uid; //Область public String region_uid; //Область
public String area; //Rayon
public String district; //Район public String district; //Район
public String district_id; public String district_id; //
public String terrain=""; //Название месности public String terrain=""; //Название месности
@ -38,6 +41,7 @@ public class FrmLocustModel {
public String locust; //Вид саранчи public String locust; //Вид саранчи
//public String locust_id; //Вид саранчи //public String locust_id; //Вид саранчи
public String locust_type_id; //Locust species (Вид саранчи) public String locust_type_id; //Locust species (Вид саранчи)
public String locust_type_uid; //Locust species (Вид саранчи)
public String locust_populated; //Area infested (ha) public String locust_populated; //Area infested (ha)
public String bio_temperature; //air temperature public String bio_temperature; //air temperature
@ -53,10 +57,12 @@ public class FrmLocustModel {
public String drawPolygon="null"; //Область обследования GeoGSON public String drawPolygon="null"; //Область обследования GeoGSON
public String size; //Заселённая площадь (polygonArea Площадь контура зоны распространения, в случае если специалист указал его) public String size; //Заселённая площадь (polygonArea Площадь контура зоны распространения, в случае если специалист указал его)
public String date; //Дата public String date; //Дата
public String timezone;
public String description=""; public String description="";
//Hopper //Hopper
public String larva = null;
public String larva_born = null; //Hatching character varying(255) COLLATE pg_catalog."default" DEFAULT NULL::character varying, public String larva_born = null; //Hatching character varying(255) COLLATE pg_catalog."default" DEFAULT NULL::character varying,
public String larva_born_id = null; // integer, public String larva_born_id = null; // integer,
public String larva_born_uid = null; public String larva_born_uid = null;
@ -66,10 +72,11 @@ public class FrmLocustModel {
public String larva_behavior = null; //Behaviour character varying(50) COLLATE pg_catalog."default" DEFAULT NULL::character varying, public String larva_behavior = null; //Behaviour character varying(50) COLLATE pg_catalog."default" DEFAULT NULL::character varying,
public String larva_behavior_id = null; // integer, public String larva_behavior_id = null; // integer,
public String larva_behavior_uid = null; // integer, public String larva_behavior_uid = null; // integer,
public String larva_density = null; //Hopper density numeric, public String larva_density = null; //Hopper density numeric, (Плотность личинок)
public String larva_density_to = null; //Hopper density to numeric, public String larva_density_to = null; //Hopper density to numeric,
//Eggs //Eggs
public String eggs = null; // For CheckBox
public String eggs_capsules_area = null; //Egg-bed (surface in ha) public String eggs_capsules_area = null; //Egg-bed (surface in ha)
public String eggs_capsules_density = null; //Плотность яиц public String eggs_capsules_density = null; //Плотность яиц
public String eggs_capsules_density_to = null; //Egg-pods (density) to public String eggs_capsules_density_to = null; //Egg-pods (density) to
@ -80,6 +87,7 @@ public class FrmLocustModel {
//public String eggs_enemies = null; //not using TODO delete field from database //public String eggs_enemies = null; //not using TODO delete field from database
//Bands (кулиги) //Bands (кулиги)
public String kuliguli = null;
public String kuliguli_density=null; //Плотность кулиг на м² public String kuliguli_density=null; //Плотность кулиг на м²
public String kuliguli_density_to = null; //плотность максимальная в кулиге public String kuliguli_density_to = null; //плотность максимальная в кулиге
public String kuliguli_size = null; // Размер кулиг public String kuliguli_size = null; // Размер кулиг
@ -90,6 +98,7 @@ public class FrmLocustModel {
public String kuliguli_age_uid = null; // Возраст личинок public String kuliguli_age_uid = null; // Возраст личинок
//Adults (Имаго) //Adults (Имаго)
public String imago = null;
public String imago_wing_id = null; public String imago_wing_id = null;
public String imago_wing_uid = null; public String imago_wing_uid = null;
public String imago_maturity = null; public String imago_maturity = null;
@ -107,8 +116,6 @@ public class FrmLocustModel {
public String imago_flying = null; public String imago_flying = null;
public String larva_density=null; //Плотность личинок
public String bio_hectare=null; //Обследованная площадь public String bio_hectare=null; //Обследованная площадь
public String bio_biotope_id=null; //Тип тиотопа public String bio_biotope_id=null; //Тип тиотопа
public String bio_biotope_uid=null; //Тип тиотопа public String bio_biotope_uid=null; //Тип тиотопа
@ -135,6 +142,61 @@ public class FrmLocustModel {
public String test=null; public String test=null;
public void update(){ public void update(){
if(
larva_born != null ||
larva_born_id != null ||
larva_born_uid != null ||
larva_age_id != null ||
larva_age_uid != null ||
larva_painting_id != null ||
larva_behavior != null ||
larva_behavior_id != null ||
larva_behavior_uid != null ||
larva_density != null ||
larva_density_to != null
) larva = "true";
if(
eggs_capsules_area != null ||
eggs_capsules_density != null ||
eggs_capsules_density_to != null ||
eggs_capsules != null ||
eggs_live != null ||
eggs_enemies_id != null ||
eggs_enemies_uid != null
) eggs = "true";
//Bands (кулиги)
if(
kuliguli_density != null ||
kuliguli_density_to != null ||
kuliguli_size != null ||
kuliguli_count != null ||
kuliguli_action_id != null ||
kuliguli_action_uid != null ||
kuliguli_age_id != null ||
kuliguli_age_uid != null
) kuliguli = "true";
//Adults (Имаго)
if(
imago_wing_id != null ||
imago_wing_uid != null ||
imago_maturity != null ||
imago_phase_id != null ||
imago_phase_uid != null ||
imago_action != null ||
imago_action_id != null ||
imago_action_uid != null ||
imago_density != null ||
imago_density_ga != null ||
imago_feeding != null ||
imago_copulation != null ||
imago_laying != null ||
imago_flying != null
) imago = "true";
if( if(
swarm_maturity!=null || swarm_maturity!=null ||
swarm_density_id!=null || swarm_density_id!=null ||
@ -146,6 +208,7 @@ public class FrmLocustModel {
swarm_height_id!=null || swarm_height_id!=null ||
swarm_height_uid!=null swarm_height_uid!=null
) swarms = "true"; ) swarms = "true";
} }
} }