From 36c501252915714d02775c5721b66e1d7dd6d0df Mon Sep 17 00:00:00 2001 From: igor Date: Mon, 8 Jul 2024 12:17:50 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D0=B5=20=D1=82=D0=BE=D1=87=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/kz/locust/CCALM/AcceptASDC.java | 315 ++++++++++-------- src/main/java/kz/locust/CCALM/AcceptJSON.java | 274 +++++++++++++++ src/main/java/kz/locust/CCALM/Products.java | 155 +++++++++ .../webapp/WEB-INF/views/engine/index.jsp | 42 ++- src/main/webapp/WEB-INF/views/test.jsp | 2 +- .../engine/images/icons/marker_p.png | Bin 0 -> 5079 bytes src/main/webapp/resources/engine/index.js | 92 +++++ 7 files changed, 729 insertions(+), 151 deletions(-) create mode 100644 src/main/webapp/resources/engine/images/icons/marker_p.png diff --git a/src/main/java/kz/locust/CCALM/AcceptASDC.java b/src/main/java/kz/locust/CCALM/AcceptASDC.java index 3667137..134a0d1 100644 --- a/src/main/java/kz/locust/CCALM/AcceptASDC.java +++ b/src/main/java/kz/locust/CCALM/AcceptASDC.java @@ -474,6 +474,8 @@ public class AcceptASDC implements ServletContextAware { +" observer=?,\n" +" date=?,\n" +" timezone=?::interval,\n" + +" lat_center=?,\n" + +" lon_center=?,\n" +" lat1=?,\n" +" lon1=?,\n" +" lat2=?,\n" @@ -563,6 +565,8 @@ public class AcceptASDC implements ServletContextAware { +" observer,\n" +" date,\n" +" timezone,\n" + +" lat_center,\n" + +" lon_center,\n" +" lat1,\n" +" lon1,\n" +" lat2,\n" @@ -640,66 +644,68 @@ public class AcceptASDC implements ServletContextAware { +" ?,\n" //13 observer +" ?,\n" //14 date +" ?::interval,\n" //15 timezone - +" ?,\n" //16 lat1 - +" ?,\n" //17 lon1 - +" ?,\n" //18 lat2 - +" ?,\n" //19 lon2 - +" ?,\n" //20 lat3 - +" ?,\n" //21 lon3 - +" ?,\n" //22 lat4 - +" ?,\n" //23 lon4 - +" ?,\n" //24 lat5 - +" ?,\n" //25 lon5 - +" ?,\n" //26 lat6 - +" ?,\n" //27 lon6 - +" ?,\n" //28 bio_hectare - +" ?,\n" //29 bio_biotope_id - +" ?,\n" //30 bio_greenery_id - +" ?,\n" //31 bio_greenery_cover_id - +" ?,\n" //32 bio_temperature - +" ?,\n" //33 bio_wind - +" ?,\n" //34 locust_have - +" ?,\n" //35 locust_type_id - +" ?,\n" //36 locust_populated - +" ?,\n" //37 eggs_capsules_area - +" ?,\n" //38 eggs_capsules_density - +" ?,\n" //39 eggs_capsules_density_to - +" ?,\n" //40 eggs_capsules - +" ?,\n" //41 eggs_live - +" ?,\n" //42 eggs_enemies_id - +" ?,\n" //43 larva_born_id - +" ?,\n" //44 larva_age_id - +" ?,\n" //45 larva_painting_id - +" ?,\n" //46 larva_behavior_id - +" ?,\n" //47 larva_density - +" ?,\n" //48 larva_density_to - +" ?,\n" //49 kuliguli_age_id - +" ?,\n" //50 kuliguli_density - +" ?,\n" //51 kuliguli_density_to - +" ?,\n" //52 kuliguli_size - +" ?,\n" //53 kuliguli_count - +" ?,\n" //54 kuliguli_action_id - +" ?,\n" //55 imago_wing_id - +" ?,\n" //56 imago_maturity - +" ?,\n" //57 imago_phase_id - +" ?,\n" //58 imago_action_id - +" ?,\n" //59 imago_density - +" ?,\n" //60 imago_density_ga - +" ?,\n" //61 imago_feeding - +" ?,\n" //62 imago_copulation - +" ?,\n" //63 imago_laying - +" ?,\n" //64 imago_flying - +" ?,\n" //65 swarm_maturity - +" ?,\n" //66 swarm_density_id - +" ?,\n" //67 swarm_size - +" ?,\n" //68 swarm_count - +" ?,\n" //69 swarm_copulation - +" ?,\n" //70 swarm_laying - +" ?,\n" //71 swarm_flying_direction_id - +" ?,\n" //72 swarm_height_id - +" ?,\n" //73 description - +" ST_SetSRID(ST_GeomFromGeoJSON(?),4326),\n" //74 geom - +" ?\n" //75 test + +" ?,\n" //16 lat_center + +" ?,\n" //17 lon_center + +" ?,\n" //18 lat1 + +" ?,\n" //19 lon1 + +" ?,\n" //20 lat2 + +" ?,\n" //21 lon2 + +" ?,\n" //22 lat3 + +" ?,\n" //23 lon3 + +" ?,\n" //24 lat4 + +" ?,\n" //25 lon4 + +" ?,\n" //26 lat5 + +" ?,\n" //27 lon5 + +" ?,\n" //28 lat6 + +" ?,\n" //29 lon6 + +" ?,\n" //30 bio_hectare + +" ?,\n" //31 bio_biotope_id + +" ?,\n" //32 bio_greenery_id + +" ?,\n" //33 bio_greenery_cover_id + +" ?,\n" //34 bio_temperature + +" ?,\n" //35 bio_wind + +" ?,\n" //36 locust_have + +" ?,\n" //37 locust_type_id + +" ?,\n" //38 locust_populated + +" ?,\n" //39 eggs_capsules_area + +" ?,\n" //40 eggs_capsules_density + +" ?,\n" //41 eggs_capsules_density_to + +" ?,\n" //42 eggs_capsules + +" ?,\n" //43 eggs_live + +" ?,\n" //44 eggs_enemies_id + +" ?,\n" //45 larva_born_id + +" ?,\n" //46 larva_age_id + +" ?,\n" //47 larva_painting_id + +" ?,\n" //48 larva_behavior_id + +" ?,\n" //49 larva_density + +" ?,\n" //50 larva_density_to + +" ?,\n" //51 kuliguli_age_id + +" ?,\n" //52 kuliguli_density + +" ?,\n" //53 kuliguli_density_to + +" ?,\n" //54 kuliguli_size + +" ?,\n" //55 kuliguli_count + +" ?,\n" //56 kuliguli_action_id + +" ?,\n" //57 imago_wing_id + +" ?,\n" //58 imago_maturity + +" ?,\n" //59 imago_phase_id + +" ?,\n" //60 imago_action_id + +" ?,\n" //61 imago_density + +" ?,\n" //62 imago_density_ga + +" ?,\n" //63 imago_feeding + +" ?,\n" //64 imago_copulation + +" ?,\n" //65 imago_laying + +" ?,\n" //66 imago_flying + +" ?,\n" //67 swarm_maturity + +" ?,\n" //68 swarm_density_id + +" ?,\n" //69 swarm_size + +" ?,\n" //70 swarm_count + +" ?,\n" //71 swarm_copulation + +" ?,\n" //72 swarm_laying + +" ?,\n" //73 swarm_flying_direction_id + +" ?,\n" //74 swarm_height_id + +" ?,\n" //75 description + +" ST_SetSRID(ST_GeomFromGeoJSON(?),4326),\n" //76 geom + +" ?\n" //77 test +")"; try { stmt = conn.prepareStatement(sql); @@ -733,10 +739,19 @@ public class AcceptASDC implements ServletContextAware { String date=getCdataValue(reqNode, "date"); String timezone=getCdataValue(reqNode, "timezone"); timezone=Tools.numConvert(timezone); + String lat1=getCdataValue(reqNode, "lat1"); if(lat1==null) { lat1=getCdataValue(reqNode, "lat"); } String lon1=getCdataValue(reqNode, "lon1"); if(lon1==null) { lon1=getCdataValue(reqNode, "lon"); } + + String lat_center=getCdataValue(reqNode, "lat_center"); + if(lat_center==null) { lat_center=lat1; } + String lon_center=getCdataValue(reqNode, "lon_center"); + if(lon_center==null) { lon_center=lon1; } + if(lat1==null) { lat1=lat_center; } + if(lon1==null) { lon1=lon_center; } + String lat2=getCdataValue(reqNode, "lat2"); String lon2=getCdataValue(reqNode, "lon2"); String lat3=getCdataValue(reqNode, "lat3"); @@ -845,108 +860,112 @@ public class AcceptASDC implements ServletContextAware { stmt.setString(15,timezone); - if(lat1==null) stmt.setNull(16, Types.DOUBLE, null); else stmt.setDouble(16,Double.parseDouble(lat1)); - if(lon1==null) stmt.setNull(17, Types.DOUBLE, null); else stmt.setDouble(17,Double.parseDouble(lon1)); - if(lat2==null) stmt.setNull(18, Types.DOUBLE, null); else stmt.setDouble(18,Double.parseDouble(lat2)); - if(lon2==null) stmt.setNull(19, Types.DOUBLE, null); else stmt.setDouble(19,Double.parseDouble(lon2)); - if(lat3==null) stmt.setNull(20, Types.DOUBLE, null); else stmt.setDouble(20,Double.parseDouble(lat3)); - if(lon3==null) stmt.setNull(21, Types.DOUBLE, null); else stmt.setDouble(21,Double.parseDouble(lon3)); - if(lat4==null) stmt.setNull(22, Types.DOUBLE, null); else stmt.setDouble(22,Double.parseDouble(lat4)); - if(lon4==null) stmt.setNull(23, Types.DOUBLE, null); else stmt.setDouble(23,Double.parseDouble(lon4)); - if(lat5==null) stmt.setNull(24, Types.DOUBLE, null); else stmt.setDouble(24,Double.parseDouble(lat5)); - if(lon5==null) stmt.setNull(25, Types.DOUBLE, null); else stmt.setDouble(25,Double.parseDouble(lon5)); - if(lat6==null) stmt.setNull(26, Types.DOUBLE, null); else stmt.setDouble(26,Double.parseDouble(lat6)); - if(lon6==null) stmt.setNull(27, Types.DOUBLE, null); else stmt.setDouble(27,Double.parseDouble(lon6)); - - if(bio_hectare==null) stmt.setNull(28, Types.DOUBLE, null); else stmt.setDouble(28,Double.parseDouble(bio_hectare)); //������������� �������(��) - if(bio_biotope_id==null) stmt.setNull(29, Types.INTEGER, null); else stmt.setInt(29,Integer.parseInt(bio_biotope_id)); - if(bio_greenery_id==null) stmt.setNull(30, Types.INTEGER, null); else stmt.setInt(30,Integer.parseInt(bio_greenery_id)); - if(bio_greenery_cover_id==null) stmt.setNull(31, Types.INTEGER, null); else stmt.setInt(31,Integer.parseInt(bio_greenery_cover_id)); - if(bio_temperature==null) stmt.setNull(32, Types.DOUBLE, null); else stmt.setDouble(32,Double.parseDouble(bio_temperature)); - if(bio_wind==null) stmt.setNull(33, Types.DOUBLE, null); else stmt.setDouble(33,Double.parseDouble(bio_wind)); - if(locust_have==null) stmt.setNull(34, Types.INTEGER, null); else stmt.setInt(34,Integer.parseInt(locust_have)); - if(locust_type_id==null) stmt.setNull(35, Types.INTEGER, null); else stmt.setInt(35,Integer.parseInt(locust_type_id)); //��� ������� - if(locust_populated==null) stmt.setNull(36, Types.DOUBLE, null); else stmt.setDouble(36,Double.parseDouble(locust_populated)); //��������� �������(��) - - if(eggs_capsules_area==null) stmt.setNull(37, Types.DOUBLE, null); else stmt.setDouble(37,Double.parseDouble(eggs_capsules_area)); - if(eggs_capsules_density==null) stmt.setNull(38, Types.DOUBLE, null); else stmt.setDouble(38,Double.parseDouble(eggs_capsules_density)); - if(eggs_capsules_density_to==null) stmt.setNull(39, Types.DOUBLE, null); else stmt.setDouble(39,Double.parseDouble(eggs_capsules_density_to)); - if(eggs_capsules==null) stmt.setNull(40, Types.DOUBLE, null); else stmt.setDouble(40,Double.parseDouble(eggs_capsules)); - if(eggs_live==null) stmt.setNull(41, Types.DOUBLE, null); else stmt.setDouble(41,Double.parseDouble(eggs_live)); - if(eggs_enemies_id==null) stmt.setNull(42, Types.INTEGER, null); else stmt.setInt(42,Integer.parseInt(eggs_enemies_id)); //������� ������������ ������(�����?) - - if(larva_born_id==null) stmt.setNull(43, Types.INTEGER, null); else stmt.setInt(43,Integer.parseInt(larva_born_id)); - if(larva_age_id==null) stmt.setNull(44, Types.INTEGER, null); else stmt.setInt(44,Integer.parseInt(larva_age_id)); - if(larva_painting_id==null) stmt.setNull(45, Types.INTEGER, null); else stmt.setInt(45,Integer.parseInt(larva_painting_id)); - if(larva_behavior_id==null) stmt.setNull(46, Types.INTEGER, null); else stmt.setInt(46,Integer.parseInt(larva_behavior_id)); - - if(larva_density==null) stmt.setNull(47, Types.DOUBLE, null); else stmt.setDouble(47,Double.parseDouble(larva_density)); - if(larva_density_to==null) stmt.setNull(48, Types.DOUBLE, null); else stmt.setDouble(48,Double.parseDouble(larva_density_to)); - if(kuliguli_age_id==null) stmt.setNull(49, Types.INTEGER, null); else stmt.setInt(49,Integer.parseInt(kuliguli_age_id)); //c�. �������(������� ������� �������) - - if(kuliguli_density==null) stmt.setNull(50, Types.DOUBLE, null); else stmt.setDouble(50,Double.parseDouble(kuliguli_density)); - if(kuliguli_density_to==null) stmt.setNull(51, Types.DOUBLE, null); else stmt.setDouble(51,Double.parseDouble(kuliguli_density_to)); - if(kuliguli_size==null) stmt.setNull(52, Types.DOUBLE, null); else stmt.setDouble(52,Double.parseDouble(kuliguli_size)); - if(kuliguli_count==null) stmt.setNull(53, Types.DOUBLE, null); else stmt.setDouble(53,Double.parseDouble(kuliguli_count)); - if(kuliguli_action_id==null) stmt.setNull(54, Types.INTEGER, null); else stmt.setInt(54,Integer.parseInt(kuliguli_action_id)); - if(imago_wing_id==null) stmt.setNull(55, Types.INTEGER, null); else stmt.setInt(55,Integer.parseInt(imago_wing_id)); - if(imago_maturity==null) stmt.setNull(56, Types.BOOLEAN, null); - else { - if(imago_maturity.equals("1")) stmt.setBoolean(56,true); - else stmt.setBoolean(56,false); - } - if(imago_phase_id==null) stmt.setNull(57, Types.INTEGER, null); else stmt.setInt(57,Integer.parseInt(imago_phase_id)); //����(���������S, �����o���� �, �������G) - if(imago_action_id==null) stmt.setNull(58, Types.INTEGER, null); else stmt.setInt(58,Integer.parseInt(imago_action_id)); + if(lat_center==null) stmt.setNull(16, Types.DOUBLE, null); else stmt.setDouble(16,Double.parseDouble(lat_center)); + if(lon_center==null) stmt.setNull(17, Types.DOUBLE, null); else stmt.setDouble(17,Double.parseDouble(lon_center)); - if(imago_density==null) stmt.setNull(59, Types.DOUBLE, null); else stmt.setDouble(59,Double.parseDouble(imago_density)); - if(imago_density_ga==null) stmt.setNull(60, Types.DOUBLE, null); else stmt.setDouble(60,Double.parseDouble(imago_density_ga)); - if(imago_feeding==null) stmt.setNull(61, Types.BOOLEAN, null); + if(lat1==null) stmt.setNull(18, Types.DOUBLE, null); else stmt.setDouble(18,Double.parseDouble(lat1)); + if(lon1==null) stmt.setNull(19, Types.DOUBLE, null); else stmt.setDouble(19,Double.parseDouble(lon1)); + if(lat2==null) stmt.setNull(20, Types.DOUBLE, null); else stmt.setDouble(20,Double.parseDouble(lat2)); + if(lon2==null) stmt.setNull(21, Types.DOUBLE, null); else stmt.setDouble(21,Double.parseDouble(lon2)); + if(lat3==null) stmt.setNull(22, Types.DOUBLE, null); else stmt.setDouble(22,Double.parseDouble(lat3)); + if(lon3==null) stmt.setNull(23, Types.DOUBLE, null); else stmt.setDouble(23,Double.parseDouble(lon3)); + if(lat4==null) stmt.setNull(24, Types.DOUBLE, null); else stmt.setDouble(24,Double.parseDouble(lat4)); + if(lon4==null) stmt.setNull(25, Types.DOUBLE, null); else stmt.setDouble(25,Double.parseDouble(lon4)); + if(lat5==null) stmt.setNull(26, Types.DOUBLE, null); else stmt.setDouble(26,Double.parseDouble(lat5)); + if(lon5==null) stmt.setNull(27, Types.DOUBLE, null); else stmt.setDouble(27,Double.parseDouble(lon5)); + if(lat6==null) stmt.setNull(28, Types.DOUBLE, null); else stmt.setDouble(28,Double.parseDouble(lat6)); + if(lon6==null) stmt.setNull(29, Types.DOUBLE, null); else stmt.setDouble(29,Double.parseDouble(lon6)); + + if(bio_hectare==null) stmt.setNull(30, Types.DOUBLE, null); else stmt.setDouble(30,Double.parseDouble(bio_hectare)); //������������� �������(��) + if(bio_biotope_id==null) stmt.setNull(31, Types.INTEGER, null); else stmt.setInt(31,Integer.parseInt(bio_biotope_id)); + if(bio_greenery_id==null) stmt.setNull(32, Types.INTEGER, null); else stmt.setInt(32,Integer.parseInt(bio_greenery_id)); + if(bio_greenery_cover_id==null) stmt.setNull(33, Types.INTEGER, null); else stmt.setInt(33,Integer.parseInt(bio_greenery_cover_id)); + if(bio_temperature==null) stmt.setNull(34, Types.DOUBLE, null); else stmt.setDouble(34,Double.parseDouble(bio_temperature)); + if(bio_wind==null) stmt.setNull(35, Types.DOUBLE, null); else stmt.setDouble(35,Double.parseDouble(bio_wind)); + if(locust_have==null) stmt.setNull(36, Types.INTEGER, null); else stmt.setInt(36,Integer.parseInt(locust_have)); + if(locust_type_id==null) stmt.setNull(37, Types.INTEGER, null); else stmt.setInt(37,Integer.parseInt(locust_type_id)); //��� ������� + if(locust_populated==null) stmt.setNull(38, Types.DOUBLE, null); else stmt.setDouble(38,Double.parseDouble(locust_populated)); //��������� �������(��) + + if(eggs_capsules_area==null) stmt.setNull(39, Types.DOUBLE, null); else stmt.setDouble(39,Double.parseDouble(eggs_capsules_area)); + if(eggs_capsules_density==null) stmt.setNull(40, Types.DOUBLE, null); else stmt.setDouble(40,Double.parseDouble(eggs_capsules_density)); + if(eggs_capsules_density_to==null) stmt.setNull(41, Types.DOUBLE, null); else stmt.setDouble(41,Double.parseDouble(eggs_capsules_density_to)); + if(eggs_capsules==null) stmt.setNull(42, Types.DOUBLE, null); else stmt.setDouble(42,Double.parseDouble(eggs_capsules)); + if(eggs_live==null) stmt.setNull(43, Types.DOUBLE, null); else stmt.setDouble(43,Double.parseDouble(eggs_live)); + if(eggs_enemies_id==null) stmt.setNull(44, Types.INTEGER, null); else stmt.setInt(44,Integer.parseInt(eggs_enemies_id)); //������� ������������ ������(�����?) + + if(larva_born_id==null) stmt.setNull(45, Types.INTEGER, null); else stmt.setInt(45,Integer.parseInt(larva_born_id)); + if(larva_age_id==null) stmt.setNull(46, Types.INTEGER, null); else stmt.setInt(46,Integer.parseInt(larva_age_id)); + if(larva_painting_id==null) stmt.setNull(47, Types.INTEGER, null); else stmt.setInt(47,Integer.parseInt(larva_painting_id)); + if(larva_behavior_id==null) stmt.setNull(48, Types.INTEGER, null); else stmt.setInt(48,Integer.parseInt(larva_behavior_id)); + + if(larva_density==null) stmt.setNull(49, Types.DOUBLE, null); else stmt.setDouble(49,Double.parseDouble(larva_density)); + if(larva_density_to==null) stmt.setNull(50, Types.DOUBLE, null); else stmt.setDouble(50,Double.parseDouble(larva_density_to)); + if(kuliguli_age_id==null) stmt.setNull(51, Types.INTEGER, null); else stmt.setInt(51,Integer.parseInt(kuliguli_age_id)); //c�. �������(������� ������� �������) + + if(kuliguli_density==null) stmt.setNull(52, Types.DOUBLE, null); else stmt.setDouble(52,Double.parseDouble(kuliguli_density)); + if(kuliguli_density_to==null) stmt.setNull(53, Types.DOUBLE, null); else stmt.setDouble(53,Double.parseDouble(kuliguli_density_to)); + if(kuliguli_size==null) stmt.setNull(54, Types.DOUBLE, null); else stmt.setDouble(54,Double.parseDouble(kuliguli_size)); + if(kuliguli_count==null) stmt.setNull(55, Types.DOUBLE, null); else stmt.setDouble(55,Double.parseDouble(kuliguli_count)); + if(kuliguli_action_id==null) stmt.setNull(56, Types.INTEGER, null); else stmt.setInt(56,Integer.parseInt(kuliguli_action_id)); + if(imago_wing_id==null) stmt.setNull(57, Types.INTEGER, null); else stmt.setInt(57,Integer.parseInt(imago_wing_id)); + if(imago_maturity==null) stmt.setNull(58, Types.BOOLEAN, null); else { - if(imago_feeding.equals("1")) stmt.setBoolean(61,true); - else stmt.setBoolean(61,false); - } - if(imago_copulation==null) stmt.setNull(62, Types.BOOLEAN, null); - else { - if(imago_copulation.equals("1")) stmt.setBoolean(62,true); - else stmt.setBoolean(62,false); - } - if(imago_laying==null) stmt.setNull(63, Types.BOOLEAN, null); - else { - if(imago_laying.equals("1")) stmt.setBoolean(63,true); + if(imago_maturity.equals("1")) stmt.setBoolean(58,true); + else stmt.setBoolean(58,false); + } + if(imago_phase_id==null) stmt.setNull(59, Types.INTEGER, null); else stmt.setInt(59,Integer.parseInt(imago_phase_id)); //����(���������S, �����o���� �, �������G) + if(imago_action_id==null) stmt.setNull(60, Types.INTEGER, null); else stmt.setInt(60,Integer.parseInt(imago_action_id)); + + if(imago_density==null) stmt.setNull(61, Types.DOUBLE, null); else stmt.setDouble(61,Double.parseDouble(imago_density)); + if(imago_density_ga==null) stmt.setNull(62, Types.DOUBLE, null); else stmt.setDouble(62,Double.parseDouble(imago_density_ga)); + if(imago_feeding==null) stmt.setNull(63, Types.BOOLEAN, null); + else { + if(imago_feeding.equals("1")) stmt.setBoolean(63,true); else stmt.setBoolean(63,false); } - if(imago_flying==null) stmt.setNull(64, Types.BOOLEAN, null); - else { - if(imago_flying.equals("1")) stmt.setBoolean(64,true); + + if(imago_copulation==null) stmt.setNull(64, Types.BOOLEAN, null); + else { + if(imago_copulation.equals("1")) stmt.setBoolean(64,true); else stmt.setBoolean(64,false); } - if(swarm_maturity==null) stmt.setNull(65, Types.BOOLEAN, null); - else { - if(swarm_maturity.equals("1")) stmt.setBoolean(65,true); + if(imago_laying==null) stmt.setNull(65, Types.BOOLEAN, null); + else { + if(imago_laying.equals("1")) stmt.setBoolean(65,true); else stmt.setBoolean(65,false); } - if(swarm_density_id==null) stmt.setNull(66, Types.INTEGER, null); else stmt.setInt(66,Integer.parseInt(swarm_density_id)); - if(swarm_size==null) stmt.setNull(67, Types.DOUBLE, null); else stmt.setDouble(67,Double.parseDouble(swarm_size)); - if(swarm_count==null) stmt.setNull(68, Types.DOUBLE, null); else stmt.setDouble(68,Double.parseDouble(swarm_count)); - if(swarm_copulation==null) stmt.setNull(69, Types.BOOLEAN, null); + if(imago_flying==null) stmt.setNull(66, Types.BOOLEAN, null); else { - if(swarm_copulation.equals("1")) stmt.setBoolean(69,true); - else stmt.setBoolean(69,false); + if(imago_flying.equals("1")) stmt.setBoolean(66,true); + else stmt.setBoolean(66,false); + } + if(swarm_maturity==null) stmt.setNull(67, Types.BOOLEAN, null); + else { + if(swarm_maturity.equals("1")) stmt.setBoolean(67,true); + else stmt.setBoolean(67,false); + } + if(swarm_density_id==null) stmt.setNull(68, Types.INTEGER, null); else stmt.setInt(68,Integer.parseInt(swarm_density_id)); + if(swarm_size==null) stmt.setNull(69, Types.DOUBLE, null); else stmt.setDouble(69,Double.parseDouble(swarm_size)); + if(swarm_count==null) stmt.setNull(70, Types.DOUBLE, null); else stmt.setDouble(70,Double.parseDouble(swarm_count)); + if(swarm_copulation==null) stmt.setNull(71, Types.BOOLEAN, null); + else { + if(swarm_copulation.equals("1")) stmt.setBoolean(71,true); + else stmt.setBoolean(71,false); } - if(swarm_laying==null) stmt.setNull(70, Types.BOOLEAN, null); + if(swarm_laying==null) stmt.setNull(72, Types.BOOLEAN, null); else { - if(swarm_laying.equals("1")) stmt.setBoolean(70,true); - else stmt.setBoolean(70,false); + if(swarm_laying.equals("1")) stmt.setBoolean(72,true); + else stmt.setBoolean(72,false); } - if(swarm_flying_direction_id==null) stmt.setNull(71, Types.INTEGER, null); else stmt.setInt(71,Integer.parseInt(swarm_flying_direction_id)); - if(swarm_height_id==null) stmt.setNull(72, Types.INTEGER, null); else stmt.setInt(72,Integer.parseInt(swarm_height_id)); //������(������- �������- �������) + if(swarm_flying_direction_id==null) stmt.setNull(73, Types.INTEGER, null); else stmt.setInt(73,Integer.parseInt(swarm_flying_direction_id)); + if(swarm_height_id==null) stmt.setNull(74, Types.INTEGER, null); else stmt.setInt(74,Integer.parseInt(swarm_height_id)); //������(������- �������- �������) - stmt.setString(73,description); - stmt.setString(74,geom); - if(test==null) stmt.setNull(75, Types.BOOLEAN, null); + stmt.setString(75,description); + stmt.setString(76,geom); + if(test==null) stmt.setNull(77, Types.BOOLEAN, null); else { - if(test.equals("1")) stmt.setBoolean(75,true); - else stmt.setBoolean(75,false); + if(test.equals("1")) stmt.setBoolean(77,true); + else stmt.setBoolean(77,false); } } catch (SQLException ex) { diff --git a/src/main/java/kz/locust/CCALM/AcceptJSON.java b/src/main/java/kz/locust/CCALM/AcceptJSON.java index eccaaac..6dcca31 100644 --- a/src/main/java/kz/locust/CCALM/AcceptJSON.java +++ b/src/main/java/kz/locust/CCALM/AcceptJSON.java @@ -73,6 +73,280 @@ public class AcceptJSON implements ServletContextAware { public void setServletContext(ServletContext servletContext) { this.context=servletContext; } + + + @RequestMapping(value = "/AcceptJSON_KAZ", method = { RequestMethod.GET, RequestMethod.POST }) + public String acceptJSON_KAZ(@ModelAttribute User user, Model model,@RequestParam(required=false,name="file") MultipartFile file,@RequestParam(required=false,name="skip",defaultValue = "0") Boolean skip) { + + String db_url=""; + String db_login=""; + String db_password=""; + //Load DB configuration + try { + //String fullPath = context.getRealPath("/WEB-INF/config.xml"); + //File fXmlFile = new File(fullPath); + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + //Document doc = dBuilder.parse(fXmlFile); + Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream()); + Element nMain=doc.getDocumentElement(); + NodeList nl=nMain.getChildNodes(); + for (int i = 0; i =0) { + + String description=""; + description += "city: "+jsonObj.getString("city")+"\n"; + description += "message_type: "+jsonObj.getString("message_type")+"\n"; + if(jsonObj.has("development_stage") && !jsonObj.isNull("development_stage")) + description += "stage: "+jsonObj.getString("development_stage")+"\n"; + + try { + stmt.setLong(1, 0); + stmt.setDouble(2,jsonObj.getDouble("latitude")); + stmt.setDouble(3,jsonObj.getDouble("longitude")); + stmt.setString(4,jsonObj.getString("examination_date")); //2023-03-20T06:23:20.000Z + if(jsonObj.has("village") && !jsonObj.isNull("village")) + stmt.setString(5,jsonObj.getString("village")); + else + stmt.setNull(5, Types.VARCHAR); + if(jsonObj.has("farm") && !jsonObj.isNull("farm")) + stmt.setString(6,jsonObj.getString("farm")); + else + stmt.setNull(6, Types.VARCHAR); + stmt.setString(7,jsonObj.getString("district")); + stmt.setInt(8,5); //country_id + + + int region_id=-1; + switch (jsonObj.getString("region")) { + case "Туркестанская": //5 false -215739 1691403679 5 "Түркістан облысы (Туркестанская область)" + region_id=5; + break; + case "Жамбылская": //4 false -215722 1691403679 5 "Жамбыл облысы (Жамбылская область)" + region_id=4; + break; + case "Алматинская": //3 false -215718 1691403679 5 "Алматы облысы (Алматинская область)" + region_id=3; + break; + case "Карагандинская": //2 false -215776 1691403679 5 "Қарағанды облысы (Карагандинская область)" + region_id=2; + break; + case "Жетысу": //478 false -14312169 1691403679 5 "Жетісу облысы" + region_id=478; + break; + case "Кызылординская": //6 false -215727 1691403679 5 "Қызылорда облысы (Кызылординская область)" + region_id=6; + break; + case "Атырауская": //13 false -214834 1691403679 5 "Атырау облысы (Атырауская область)" + region_id=13; + break; + case "Западно-Казахстанская": //12 false -215441 1691403679 5 "Батыс Қазақстан облысы (Западно-Казахстанская область)" + region_id=12; + break; + case "Акмолинская": //10 false -215743 1691403679 5 "Ақмола облысы (Акмолинская область)" + region_id=10; + break; + case "Восточно-Казахстанская": //1 false -215699 1691403679 5 "Шығыс Қазақстан облысы (Восточно-Казахстанская область)" + region_id=1; + break; + case "Абай": //477 false -14243026 1691473439 5 "Абай облысы" + region_id=477; + break; + case "Костанайская": //8 false -1288730 1691403679 5 "Қостанай облысы (Костанайская область)" + region_id=8; + break; + case "Павлодарская": //11 false -215772 1691403679 5 "Павлодар облысы (Павлодарская область)" + region_id=11; + break; + case "Северо-Казахстанская": //9 false -215760 1691403679 5 "Солтүстік Қазақстан облысы (Северо-Казахстанская область)" + region_id=9; + break; + case "Актюбинская": //7 false -215683 1691403679 5 "Ақтөбе облысы (Актюбинская область)" + region_id=7; + break; + case "Мангистауская": //14 false -215686 1691403679 5 "Маңғыстау облысы (Мангистауская область)" + region_id=14; + break; + case "Улытау": //479 false -14312737 1691462768 5 "Ұлытау облысы" + region_id=14; + break; + default: + System.out.println(jsonObj.getString("region")); + } + stmt.setInt(9,region_id); //region_id + + //Вид саранчи + int locust_id=-1; + switch (jsonObj.getString("grasshopper_type")) { + case "Мароккская саранча": + locust_id=2; + break; + case "Итальянский прус": + locust_id=1; + break; + case "Азиатская саранча": + locust_id=3; + break; + default: + System.out.println(jsonObj.getString("grasshopper_type")); + } + stmt.setInt(10,locust_id); //locust_id + + //Обследованно + if(jsonObj.has("examination_area") && !jsonObj.isNull("examination_area")) + stmt.setDouble(11,Double.parseDouble(jsonObj.get("examination_area").toString())); + else + stmt.setNull(11, Types.DOUBLE); + + //Площадь заселения + if(jsonObj.has("settlement_area") && !jsonObj.isNull("settlement_area")) + stmt.setDouble(12,Double.parseDouble(jsonObj.get("settlement_area").toString())); + else + stmt.setNull(12, Types.DOUBLE); + + //Прочее описание + stmt.setString(13,description); //description + + + if(region_id!=-1) { + stmt.execute(); + }else { + System.out.println("region: "+jsonObj.getString("region")); + } + } catch (SQLException ex) { + ex.printStackTrace(); + model.addAttribute("PreviewTable","Error set data"); + return "json"; + } + + + + } + + i++; + } + System.out.println("Proc count = "+String.valueOf(i)); + + /*String filePath = "O:\\temp\\123.txt"; + try { + FileWriter fileWriter = new FileWriter(filePath); + BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); + bufferedWriter.write(str); + bufferedWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + }*/ + + } + return "json"; + } @RequestMapping(value = "/AcceptJSON", method = { RequestMethod.GET, RequestMethod.POST }) public String acceptCSV(@ModelAttribute User user, Model model,@RequestParam(required=false,name="file") MultipartFile file,@RequestParam(required=false,name="skip",defaultValue = "0") Boolean skip) { diff --git a/src/main/java/kz/locust/CCALM/Products.java b/src/main/java/kz/locust/CCALM/Products.java index 216093a..d02eaf8 100644 --- a/src/main/java/kz/locust/CCALM/Products.java +++ b/src/main/java/kz/locust/CCALM/Products.java @@ -688,6 +688,161 @@ public class Products implements ServletContextAware { } } + @RequestMapping(value = "/get_checkpoints",method = RequestMethod.POST, produces = "application/json;charset=UTF-8") + @ResponseBody + public String getCheckpoints(@ModelAttribute User user,@RequestBody byte[] reqData,@RequestParam(required=false,name="lng") String language_id) { + + int errorCode=0; + String errorMessage=""; + + //Load configuration from "config.xml" + String db_url = ""; + String db_login = ""; + String db_password = ""; + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + //Document doc = dBuilder.parse(fXmlFile); + Document doc = dBuilder.parse(new ClassPathResource("config.xml").getInputStream()); + Element nMain = doc.getDocumentElement(); + NodeList nl = nMain.getChildNodes(); + for (int i = 0; i < nl.getLength(); i++) { + if (nl.item(i).getNodeName().equals("db-url")) + db_url = nl.item(i).getTextContent(); + if (nl.item(i).getNodeName().equals("db-login")) + db_login = nl.item(i).getTextContent(); + if (nl.item(i).getNodeName().equals("db-password")) + db_password = nl.item(i).getTextContent(); + } + } catch (Exception ex) { + errorCode=1; + errorMessage+="Internal server error, settings."; + logger.info(ex.getMessage()); + } + + Connection conn = null; + try { + Class.forName("org.postgresql.Driver"); + conn = DriverManager.getConnection(db_url, db_login, db_password); + if (conn != null) { + logger.info("Connect is OK!"); + } else { + errorCode=1; + errorMessage+="An error occurred while connecting to the database!"; + } + } catch (Exception ex) { + logger.info(ex.getMessage()); + errorCode=1; + errorMessage+="An error occurred while connecting to the database!"; + } + + try { + Statement stt0 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); + //st.executeUpdate("SET TIME ZONE 'UTC';"); зачем коментил? + stt0.executeUpdate("SET TIME ZONE 'Asia/Almaty';"); + stt0.close(); + } catch (SQLException ex) { + logger.info(ex.getMessage()); + errorCode=1; + errorMessage+="Failed to execute SQL query!"; + } + + JSONObject doc=null; + InputStream body; + if(reqData!=null) { + + + body = new ByteArrayInputStream(reqData); + + String text=""; + try { + text = new String(body.readAllBytes(), StandardCharsets.UTF_8); + } catch (IOException e) { + e.printStackTrace(); + } + logger.info(text); + + //JSONParser jsonParser = new JSONParser(); + //doc = (JSONObject)jsonParser.parse(text); + //doc = new JSONObject(body); + doc = new JSONObject(text); + } + + JSONArray array=new JSONArray(); //Результирующий набор данных + + String sql_query = ""; + Statement stt=null; + ResultSet rs=null; + try { + stt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); + sql_query = "select id," + + " country_id," + + " lat," + + " lon" + + " from main.frmcheckpoints where" + + " del=false" + + " and (${country_id} is null or (${country_id}=-1 and country_id in (7,3,4,2)) or (${country_id}=-2 and country_id in (7,1,5,6,8,9,10)) or ${country_id}=country_id)" + + " order by id desc;"; + + PreparedStatementNamed stmtn = new PreparedStatementNamed(conn, sql_query); + if(doc!=null) { + //stmtn.setInt("_user_id", Integer.parseInt(user.id)); + + if(doc.isNull("country_id")) stmtn.setNULLInt("country_id"); + else stmtn.setInt("country_id",doc.getInt("country_id")); + } + PreparedStatement stmt=stmtn.getPreparedStatement(); + + rs = stmt.executeQuery(); + if (rs != null) { + try { + while(rs.next()) { + + JSONObject obj = new JSONObject(); + obj.put("id", rs.getLong("id")); + + double lat=0; + double lon=0; + lat=rs.getDouble("lat"); + lon=rs.getDouble("lon"); + obj.put("lat", lat); + obj.put("lon", lon); + + array.put(obj); + } + rs.close(); + } catch (SQLException ex) { + errorCode=4; + errorMessage+="Internal server error, sampling."; + ex.printStackTrace(); + logger.info(ex.getMessage()); + } + } + } catch (SQLException ex) { + errorCode=5; + errorMessage+="Internal server error, sampling. "; + ex.printStackTrace(); + logger.info(ex.getMessage()); + }finally { + if(rs!=null) try{rs.close();}catch(SQLException ex){} + if(stt!=null) try{stt.close();}catch(SQLException ex){} + } + + + if(errorCode!=0) { + JSONObject obj = new JSONObject(); + obj.put("errorCode",errorCode); + obj.put("errorMessage", errorMessage); + return obj.toString(); + }else { + JSONObject obj = new JSONObject(); + obj.put("errorCode",0); + obj.put("errorMessage", ""); + obj.put("data",array); + return obj.toString(); + } + } + @Override public void setServletContext(ServletContext servletContext) { this.context=servletContext; diff --git a/src/main/webapp/WEB-INF/views/engine/index.jsp b/src/main/webapp/WEB-INF/views/engine/index.jsp index 4e3bd5f..6ff7157 100644 --- a/src/main/webapp/WEB-INF/views/engine/index.jsp +++ b/src/main/webapp/WEB-INF/views/engine/index.jsp @@ -145,6 +145,7 @@ var g_user=null; //var g_WinLegend1 = null; //var m_FrmLocust=null; //var m_FrmLocustDel=null; +var g_FrmCheckpoints=null; //Decode URL parameters. @@ -715,6 +716,30 @@ if(field!=null) } + +
+ + + + + + + + + + + + +
Контрольные точки
${Country}
+
+ +