From 0fa45101a494897fe93b90d805b3ff0aedd36e17 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Wed, 15 Sep 2021 16:24:35 +0800
Subject: [PATCH] 1.山洪
---
src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java | 267 ++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 180 insertions(+), 87 deletions(-)
diff --git a/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java b/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
index d829e5e..c870d42 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -41,6 +41,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
+
import javax.validation.Valid;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
@@ -49,7 +50,7 @@
import java.util.*;
/**
- * 控制器
+ * 控制器
*
* @author BladeX
* @since 2020-02-27
@@ -384,69 +385,68 @@
*/
@ApiLog("查询洪水预警")
@GetMapping("/ss")
- public R selectcInfos(int type,String time,String dateEnds1,String dateEnds3,String dateEnds6,String dateEnds24,int k,String timei) {
- if (type == 0 && k==13) {
+ public R selectcInfos(int type, String time, String dateEnds1, String dateEnds3, String dateEnds6, String dateEnds24, int k, String timei) {
+ if (type == 0 && k == 13) {
//当前时间
String times = time;
String dateEnd1 = dateEnds1;
- String timess=timei;
+ String timess = timei;
//三个小时前的时间
- String dateEnd3 =dateEnds3;
+ String dateEnd3 = dateEnds3;
//六个小时前的时间
- String dateEnd6 =dateEnds6;
+ String dateEnd6 = dateEnds6;
//二十四个小时前的时间
- String dateEnd24 =dateEnds24;
+ String dateEnd24 = dateEnds24;
//对应雨量站
- long startTime=System.currentTimeMillis();
- List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfos(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess);
+ long startTime = System.currentTimeMillis();
+ List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfos(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6, timess);
List<Map<String, Object>> lists = new ArrayList<>();
for (int i = 0; i < mountainrainsCVOS.size(); i++) {
- if (mountainrainsCVOS.get(i).getCenconding()==null){
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
continue;
}
Map<String, Object> map = new HashMap<String, Object>();
- int Max =mountainrainService .Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
- mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
- map.put("List", mountainrainsCVOS.get(i));
- map.put("Max", Max);
- lists.add(map);
+ int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
+ mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("Max", Max);
+ lists.add(map);
}
return R.data(lists);
- }
- else {
+ } else {
//当前时间
String times = time;
String dateEnd1 = dateEnds1;
- String timess=timei;
+ String timess = timei;
//三个小时前的时间
- String dateEnd3 =dateEnds3;
+ String dateEnd3 = dateEnds3;
//六个小时前的时间
- String dateEnd6 =dateEnds6;
+ String dateEnd6 = dateEnds6;
//二十四个小时前的时间
- String dateEnd24 =dateEnds24;
+ String dateEnd24 = dateEnds24;
//对应雨量站
- List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfo(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess);
+ List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfo(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6, timess);
List<Map<String, Object>> lists = new ArrayList<>();
for (int i = 0; i < mountainrainsCVOS.size(); i++) {
Map<String, Object> map = new HashMap<String, Object>();
- int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
- mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
- map.put("List", mountainrainsCVOS.get(i));
- map.put("Max", Max);
- lists.add(map);
+ int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
+ mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("Max", Max);
+ lists.add(map);
}
return R.data(lists);
@@ -460,19 +460,19 @@
*/
@ApiLog("查询洪水预警")
@GetMapping("/sss")
- public R selectcInfoss(int type,String time,String dateEnds1,String dateEnds2,String dateEnds3,int k) {
+ public R selectcInfoss(int type, String time, String dateEnds1, String dateEnds2, String dateEnds3) {
//第二种方式预警
- if (type == 0 && k==13) {
+ if (type == 0) {
//当前时间
String times = time;
String dateEnd1 = dateEnds1;
//2个小时前的时间
- String dateEnd2 =dateEnds2;
+ String dateEnd2 = dateEnds2;
//3个小时前的时间
- String dateEnd3 =dateEnds3;
+ String dateEnd3 = dateEnds3;
//对应雨量站
String s = mountainrainService.selectCode();
@@ -482,26 +482,65 @@
strArrays += "'" + split[i] + "',";
}
String code = strArrays.substring(0, strArrays.length() - 1);
- List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.Mountains(times, dateEnd1, dateEnd2, dateEnd3,code);
+ List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.Mountains(times, dateEnd1, dateEnd2, dateEnd3, code);
List<Map<String, Object>> lists = new ArrayList<>();
for (int i = 0; i < mountainrainsCVOS.size(); i++) {
- if (mountainrainsCVOS.get(i).getCenconding()==null){
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
continue;
}
Map<String, Object> map = new HashMap<String, Object>();
- if (mountainrainsCVOS.get(i).getSoilval()>30){
- int Max =mountainrainService .Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
- mountainrainsCVOS.get(i).getGohours(), mountainrainsCVOS.get(i).getGthours());
- map.put("List", mountainrainsCVOS.get(i));
- map.put("Max", Max);
- lists.add(map);
- }
- else {
- int Max =mountainrainService .Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
+// int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
+// mountainrainsCVOS.get(i).getGohours(), mountainrainsCVOS.get(i).getGthours());
+// map.put("List", mountainrainsCVOS.get(i));
+// map.put("Max", Max);
+// lists.add(map);
+ //0.8雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "true");
+ map.put("flage3", "false");
+ map.put("status", 2);
+ lists.add(map);
+ } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthours()) {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "false");
+ map.put("flage3", "true");
+ map.put("status", 2);
+ lists.add(map);
+ } else {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "false");
+ map.put("flage3", "false");
+ map.put("status", 2);
+ lists.add(map);
+ }
+ } else {
+ //0.5雨量湿度
+ int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
- map.put("List", mountainrainsCVOS.get(i));
- map.put("Max", Max);
- lists.add(map);
+// map.put("List", mountainrainsCVOS.get(i));
+// map.put("Max", Max);
+// lists.add(map);
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "true");
+ map.put("flage3", "false");
+ map.put("status", 1);
+ lists.add(map);
+ } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthour()) {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "false");
+ map.put("flage3", "true");
+ map.put("status", 1);
+ lists.add(map);
+ } else {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "false");
+ map.put("flage3", "false");
+ map.put("status", 1);
+ lists.add(map);
+ }
}
}
@@ -517,86 +556,140 @@
String dateEnd1 = dateEnds1;
//两个小时前的时间
- String dateEnd2 =dateEnds2;
+ String dateEnd2 = dateEnds2;
//三个小时前的时间
- String dateEnd3 =dateEnds3;
+ String dateEnd3 = dateEnds3;
String s = regionWeightService.selectCode();
+ //String s = "62334490";
String[] split = s.split(",");
String strArrays = "";
for (int i = 0; i < split.length; i++) {
strArrays += "'" + split[i] + "',";
}
String code = strArrays.substring(0, strArrays.length() - 1);
- List<Map<String, Integer>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
- List list1= new ArrayList();
- List list2= new ArrayList();
- List list3= new ArrayList();
- for (int i=0;i<list.size();i++){
- if (list.get(i).get("drp1")>=30){
- list1.add(list.get(i));
+ List<Map<String, Object>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
+ List<Map<String, Object>> lists = new ArrayList<>();
+ for (int i = 0; i < list.size(); i++) {
+ BigDecimal w1 = (BigDecimal) list.get(i).get("drp1");
+ double drp1 = w1.doubleValue();
+ BigDecimal w2 = (BigDecimal) list.get(i).get("drp2");
+ double drp2 = w2.doubleValue();
+ BigDecimal w3 = (BigDecimal) list.get(i).get("drp3");
+ double drp3 = w3.doubleValue();
+ if (drp1 > 30) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put("List", list.get(i));
+ map.put("flage1", "true");
+ map.put("flage2", "false");
+ map.put("flage3", "false");
+ lists.add(map);
}
- if (list.get(i).get("drp2")>=50) {
- list2.add(list.get(i));
+ if (drp2 > 50) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put("List", list.get(i));
+ map.put("flage1", "false");
+ map.put("flage2", "true");
+ map.put("flage3", "false");
+ lists.add(map);
}
- if (list.get(i).get("drp3")>=80) {
- list3.add(list.get(i));
+ if (drp3 > 80) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put("List", list.get(i));
+ map.put("flage1", "false");
+ map.put("flage2", "false");
+ map.put("flage3", "true");
+ lists.add(map);
+ } else {
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put("List", list.get(i));
+ map.put("flage1", "false");
+ map.put("flage2", "false");
+ map.put("flage3", "false");
+ lists.add(map);
}
}
- Map map = new HashMap();
- map.put("list1",list1);
- map.put("list2",list2);
- map.put("list2",list3);
- return R.data(map);
+ return R.data(lists);
}
}
/**
* 土壤湿度计算
+ *
* @return
*/
@Scheduled(cron = "0 0 8 * * ?")
@GetMapping("/soleval")
public R soleval() {
- SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd 08:00:00" );
- Date today = new Date();
- String endDate = sdf .format( today ); //当前日期
- //获取三十天前日期
- Calendar theCa = Calendar. getInstance ();
- theCa .setTime( today );
- theCa .add( theCa . DATE , -30); //最后一个数字30可改,30天的意思
- Date start = theCa .getTime();
- String startDate = sdf .format( start ); //三十天之前日期
+ mountainrainService.soildel();
+ int intervals = 31;
+ ArrayList passDaysList = new ArrayList<>();
+ for (int i = 0; i < intervals; i++) {
+ passDaysList.add(getDays(i, false));
+ }
+ Collections.sort(passDaysList);
String s = mountainrainService.selectCode();
String[] split = s.split(",");
String strArrays = "";
- Integer num=60;
for (int i = 0; i < split.length; i++) {
strArrays += "'" + split[i] + "',";
}
String code = strArrays.substring(0, strArrays.length() - 1);
- mountainrainService.soildel();
- List<Map<String, Object>> list = mountainrainService.selectMtwo(startDate, endDate, code);
- for (int i=0;i<list.size();i++){ ;
- BigDecimal w = (BigDecimal) list.get(i).get("drp");
- double drp = w.doubleValue();
- String stcd = list.get(i).get("STCD").toString();
- //计算湿度
- double v = (num + drp) * 0.85;
- if (v>60){
- mountainrainService.soleInster(stcd,"60");
+ for (int i = 0; i < split.length; i++) {
+ Integer num = 30;
+ double v1 = 0;
+ String stcd = null;
+ for (int j = 0; j < passDaysList.size() - 2; j++) {
+ List<Map<String, Object>> map = mountainrainService.selectMtwo(passDaysList.get(j).toString(), passDaysList.get(j + 1).toString(), code);
+ if (map.size() == 0 || i > map.size() - 1) {
+ break;
+ }
+ BigDecimal w = (BigDecimal) map.get(i).get("drp");
+ double drp = w.doubleValue();
+ stcd = map.get(i).get("STCD").toString();
+ //计算湿度
+ if (j == 0) {
+ v1 = formatDouble1((num + drp) * 0.85);
+ if (v1 > 60) {
+ v1 = 60;
+ }
+ } else {
+ v1 += drp;
+ v1 = formatDouble1(v1 * 0.85);
+ if (v1 > 60) {
+ v1 = 60;
+ }
+ }
}
- else {
- String a= String.valueOf(v);
- mountainrainService.soleInster(stcd,a);
+ if (v1 > 60) {
+ mountainrainService.soleInster(stcd, "60");
+ } else {
+ String a = String.valueOf(v1);
+ mountainrainService.soleInster(stcd, a);
}
}
+
return R.success("成功");
}
+ public static double formatDouble1(double d) {
+ return (double) Math.round(d * 10) / 10;
+ }
+
+ private static String getDays(int i, boolean b) {
+ Calendar calendar = Calendar.getInstance();
+ if (b) {
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + i);
+ } else {
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - i);
+ }
+ Date today = calendar.getTime();
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
+ String result = format.format(today);
+ return result;
+ }
}
-
--
Gitblit v1.9.3