From 87204491aac135822f96f3fff297ddca400ea8c9 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Wed, 20 Oct 2021 15:09:32 +0800
Subject: [PATCH] 1.山洪
---
src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java | 1536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 1,422 insertions(+), 114 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 c870d42..07a9204 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -20,9 +20,10 @@
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import liquibase.pro.packaged.M;
import lombok.AllArgsConstructor;
+import org.apache.poi.hssf.usermodel.*;
import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
@@ -32,22 +33,32 @@
import org.springblade.modules.mountain.service.IMountainService;
import org.springblade.modules.mountain.vo.MountainVO;
import org.springblade.modules.mountainrain.entity.Mountainrain;
+import org.springblade.modules.mountainrain.entity.Yucpptn;
+import org.springblade.modules.mountainrain.excel.BgrExcel;
+import org.springblade.modules.mountainrain.excel.BgrImporter;
+import org.springblade.modules.mountainrain.excel.MgrExcel;
+import org.springblade.modules.mountainrain.excel.MgrImporter;
import org.springblade.modules.mountainrain.service.IMountainrainService;
import org.springblade.modules.mountainrain.vo.*;
import org.springblade.modules.mountainrain.wrapper.MountainrainWrapper;
import org.springblade.modules.regionWeight.service.IRegionWeightService;
-import org.springframework.scheduling.annotation.Scheduled;
+import org.springblade.modules.system.excel.UserExcel;
+import org.springblade.modules.system.excel.UserImporter;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
+import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
+import java.io.*;
import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.sql.Timestamp;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
import java.util.*;
+import java.util.stream.Collectors;
/**
* 控制器
@@ -490,11 +501,377 @@
}
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);
+ //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雨量湿度
+ 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);
+ }
+ }
+
+ }
+ //色斑图
+ String file = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("山洪预警表");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue("lon");
+ cell = row.createCell((short) 1);
+ cell.setCellValue("lat");
+ cell = row.createCell((short) 2);
+ cell.setCellValue("rain");
+ for (int i = 0; i < mountainrainsCVOS.size(); i++) {
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ row.createCell((short) 0).setCellValue(mountainrainsCVOS.get(i).getDj());
+ row.createCell((short) 1).setCellValue(mountainrainsCVOS.get(i).getBw());
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
+ continue;
+ }
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
+ //0.8雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthours()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ } else {
+ //0.5雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthour()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ }
+ }
+ try {
+ file = "D:/mou.xlsx";
+ FileOutputStream fout = new FileOutputStream(file);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\mou.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ lists.add(m);
+ return R.data(lists);
+
+ }
+ //第一种方式预警(雨量表数据)
+ else {
+ //当前时间
+ String times = time;
+
+ //一个小时前的时间
+ String dateEnd1 = dateEnds1;
+
+ //两个小时前的时间
+ String dateEnd2 = dateEnds2;
+
+ //三个小时前的时间
+ String dateEnd3 = dateEnds3;
+
+ String s = regionWeightService.selectCode();
+ 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, Object>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
+ List<Map<String, Object>> lists = new ArrayList<>();
+ for (int i = 0; i < list.size(); i++) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ 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.put("flage1", "true");
+ } else {
+ map.put("flage1", "false");
+ }
+ if (drp2 > 50) {
+ map.put("flage2", "true");
+ } else {
+ map.put("flage2", "false");
+ }
+ if (drp3 > 80) {
+ map.put("flage3", "true");
+ } else {
+ map.put("flage3", "false");
+ }
+ map.put("List", list.get(i));
+ lists.add(map);
+ }
+ String fileName = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("山洪雨量表");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue(new HSSFRichTextString("lon"));
+ cell = row.createCell((short) 1);
+ cell.setCellValue(new HSSFRichTextString("lat"));
+ cell = row.createCell((short) 2);
+ cell.setCellValue(new HSSFRichTextString("rain"));
+ for (int i = 0; i < list.size(); i++) {
+ // 第四步,创建单元格,并设置值
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ 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();
+ row.createCell((short) 0).setCellValue(list.get(i).get("LGTD").toString());
+ row.createCell((short) 1).setCellValue(list.get(i).get("LTTD").toString());
+ if (drp1 > 30) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ }
+ if (drp2 > 50) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ }
+ if (drp3 > 80) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ }
+ // 第六步,将文件存到指定位置
+ try {
+ fileName = "D:/moup.xlsx";
+ FileOutputStream fout = new FileOutputStream(fileName);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\moup.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ lists.add(m);
+ return R.data(lists);
+ }
+
+ }
+
+// /**
+// * 土壤湿度计算
+// *
+// * @return
+// */
+// @GetMapping("/soleval")
+// public R soleval() {
+// 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 s = regionWeightService.selectCode();
+// 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);
+// 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;
+// }
+// }
+// }
+// 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;
+ }
+
+
+ /**
+ * 山洪预报
+ *
+ * @param addvcd 行政区编码
+ * @param time 时间
+ * @param intv 降雨时段
+ * @return
+ */
+ @GetMapping("/yuc")
+ public R yuc(String addvcd, String time, String intv, String drp, int type) throws ParseException {
+ mountainrainService.del();
+ List yucpptnList = new ArrayList<>();
+ //通过行政区查询站点编码
+ List<Map<String, Object>> list = mountainrainService.selectAddvcd(addvcd);
+ for (int i = 0; i < list.size(); i++) {
+ Yucpptn yucpptn = new Yucpptn();
+ //站点编码
+ String stcd = list.get(i).get("STCD").toString();
+ yucpptn.setSTCD(stcd);
+ yucpptn.setTM(time);
+ yucpptn.setDRP(drp);
+ yucpptn.setINTV(intv);
+ yucpptnList.add(yucpptn);
+ }
+ //预警信息添加
+ mountainrainService.insertYuc(yucpptnList);
+ //第二种预警
+ if (type == 0) {
+ List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectYum();
+ List<Map<String, Object>> lists = new ArrayList<>();
+ for (int i = 0; i < mountainrainsCVOS.size(); i++) {
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
+ continue;
+ }
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
//0.8雨量湿度
if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) {
map.put("List", mountainrainsCVOS.get(i));
@@ -519,9 +896,6 @@
//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);
if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
map.put("List", mountainrainsCVOS.get(i));
map.put("flage1", "true");
@@ -545,6 +919,355 @@
}
return R.data(lists);
+ } else {
+ //第一种方式预警(雨量表)
+ List<Map<String, Object>> list1 = mountainrainService.selectYup();
+ List<Map<String, Object>> listyp = new ArrayList<>();
+ for (int i = 0; i < list.size(); i++) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ String w1 = list1.get(i).get("drp").toString();
+ double drp1 = Double.parseDouble(w1);
+ String intv1 = list1.get(i).get("INTV").toString();
+ //一小时预警
+ if (intv1.equals("1")) {
+ if (drp1 > 30) {
+ map.put("flage1", "true");
+ map.put("flage2", "false");
+ map.put("flage3", "false");
+ } else {
+ map.put("flage1", "false");
+ map.put("flage2", "false");
+ map.put("flage3", "false");
+ }
+ } else if (intv1.equals("2")) {
+ if (drp1 > 50) {
+ map.put("flage2", "true");
+ map.put("flage1", "false");
+ map.put("flage3", "false");
+ } else {
+ map.put("flage1", "false");
+ map.put("flage2", "false");
+ map.put("flage3", "false");
+ }
+ } else {
+ if (drp1 > 80) {
+ map.put("flage3", "true");
+ map.put("flage1", "false");
+ map.put("flage2", "false");
+ } else {
+ map.put("flage1", "false");
+ map.put("flage2", "false");
+ map.put("flage3", "false");
+ }
+ }
+ map.put("List", list1.get(i));
+ listyp.add(map);
+ }
+ return R.data(listyp);
+ }
+ }
+
+ /**
+ * 中小河流预警
+ *
+ * @return
+ */
+ @GetMapping("/selectsmriver")
+ public R selectsmriver(String time) {
+ Date date = null;
+ // 把Date按照格式转换成字符串
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ date = sdf.parse(time);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ String dateEnd = sdf.format(date);
+ List<Map<String, Object>> selctsmriver = mountainrainService.selctsmriver(time, dateEnd);
+ //预警数据
+ List listyj = new ArrayList();
+ //无预警数据
+ List listzc = new ArrayList();
+ for (int i = 0; i < selctsmriver.size(); i++) {
+ //警戒水位
+ String yjsw = selctsmriver.get(i).get("yjsw").toString();
+ Double yjz = Double.parseDouble(yjsw);
+ //水位
+ String zs = selctsmriver.get(i).get("Z").toString();
+ Double z = Double.parseDouble(zs);
+ if (z > yjz) {
+ listyj.add(selctsmriver.get(i));
+ } else {
+ listzc.add(selctsmriver.get(i));
+ }
+ }
+ Map map = new HashMap();
+ map.put("yj", listyj);
+ map.put("zc", listzc);
+ List list = new ArrayList();
+ list.add(map);
+ return R.data(list);
+ }
+
+
+ /**
+ * 大江大河预警
+ *
+ * @return
+ */
+ @GetMapping("/selectbgriver")
+ public R selectbgriver(String time) {
+ Date date = null;
+ // 把Date按照格式转换成字符串
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ date = sdf.parse(time);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ String dateEnd = sdf.format(date);
+ List<Map<String, Object>> selctsmriver = mountainrainService.selctbgriver(time, dateEnd);
+ //预警数据
+ List listyj = new ArrayList();
+ //无预警数据
+ List listzc = new ArrayList();
+ for (int i = 0; i < selctsmriver.size(); i++) {
+ //警戒水位
+ String yjsw = selctsmriver.get(i).get("yjsw").toString();
+ Double yjz = Double.parseDouble(yjsw);
+ //水位
+ String zs = selctsmriver.get(i).get("Z").toString();
+ Double z = Double.parseDouble(zs);
+ if (z > yjz) {
+ listyj.add(selctsmriver.get(i));
+ } else {
+ listzc.add(selctsmriver.get(i));
+ }
+ }
+ Map map = new HashMap();
+ map.put("yj", listyj);
+ map.put("zc", listzc);
+ List list = new ArrayList();
+ list.add(map);
+ return R.data(list);
+ }
+
+ /**
+ * 土壤
+ *
+ * @return
+ */
+ @GetMapping("/selectTu")
+ public R selectTu() {
+ List<Map<String, Object>> maps = mountainrainService.selectTu();
+ List<Map<Object, Object>> list = new ArrayList();
+ //镇
+ List<Map<Object, Object>> listz = new ArrayList();
+ //乡
+ List<Map<Object, Object>> listx = new ArrayList();
+ Map mapZ = new HashMap();
+ for (int i = 0; i < maps.size(); i++) {
+ Map map = new HashMap();
+ String village = maps.get(i).get("village").toString();
+ String soilval = maps.get(i).get("soilval").toString();
+ String county = maps.get(i).get("county").toString();
+ String cenconding = maps.get(i).get("cenconding").toString();
+ //土壤湿度
+ Double soilv = Double.parseDouble(soilval);
+ boolean status = village.contains("镇");
+ if (status) {
+ String str1 = village.substring(0, village.indexOf("镇") + 1);
+ map.put("name", str1);
+ map.put("soilv", soilv);
+ map.put("addvnm", county);
+ map.put("cenconding", cenconding);
+ listz.add(map);
+ } else {
+ String str2 = village.substring(0, village.indexOf("乡") + 1);
+ map.put("name", str2);
+ map.put("soilv", soilv);
+ map.put("addvnm", county);
+ map.put("cenconding", cenconding);
+ listx.add(map);
+ }
+ }
+ System.out.println("镇" + listz.size());
+ System.out.println("乡" + listx.size());
+ Map<String, List<Map<Object, Object>>> mapMap = new HashMap<>();
+ for (Map<Object, Object> newMap : listz) {
+ List<Map<Object, Object>> newl = new ArrayList<>();
+ // map是否包含此key,若已经包含则添加一个新的数字到对应value集合中
+ if (mapMap.containsKey(newMap.get("name").toString())) {
+ //mapList.add(Integer.valueOf(newMap.get("C").toString()),newMap);
+ mapMap.get(newMap.get("name").toString()).add(newMap);
+ } else {
+ newl.add(newMap);
+ mapMap.put(newMap.get("name").toString(), newl);
+ }
+ }
+ mapZ.put("listz", mapMap);
+ //乡
+ Map<String, List<Map<Object, Object>>> mapMapx = new HashMap<>();
+ for (Map<Object, Object> newMap : listx) {
+ List<Map<Object, Object>> newl = new ArrayList<>();
+ // map是否包含此key,若已经包含则添加一个新的数字到对应value集合中
+ if (mapMapx.containsKey(newMap.get("name").toString())) {
+ //mapList.add(Integer.valueOf(newMap.get("C").toString()),newMap);
+ mapMapx.get(newMap.get("name").toString()).add(newMap);
+ } else {
+ newl.add(newMap);
+ mapMapx.put(newMap.get("name").toString(), newl);
+ }
+ }
+ mapZ.put("listx", mapMapx);
+ list.add(mapZ);
+ return R.data(list);
+ }
+
+ /**
+ * 查询预警1小时
+ */
+ @GetMapping("/Yi")
+ public R Yi(int type, String time, String dateEnds1) {
+ //第二种方式预警
+ if (type == 0) {
+ //当前时间
+ String times = time;
+
+ String dateEnd1 = dateEnds1;
+ //对应雨量站
+ String s = mountainrainService.selectCode();
+ String[] split = s.split(",");
+ String strArrays = "";
+ for (int i = 0; i < split.length; i++) {
+ System.out.println(split.length);
+ strArrays += "'" + split[i] + "',";
+ }
+ String code = strArrays.substring(0, strArrays.length() - 1);
+ List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainYi(times, dateEnd1, code);
+ List<Map<String, Object>> lists = new ArrayList<>();
+ for (int i = 0; i < mountainrainsCVOS.size(); i++) {
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
+ continue;
+ }
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
+ //0.8雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) {
+ int drp1 = mountainrainsCVOS.get(i).getDrp1();
+ Integer gohours = mountainrainsCVOS.get(i).getGohours();
+ float i1 = (float)drp1 - gohours;
+ float v = (float) (Math.round(i1 * 10)) / 10;
+ String a= String.valueOf(v);
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "true");
+ map.put("status", 2);
+ map.put("num", a);
+ lists.add(map);
+ } else {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "false");
+ map.put("status", 2);
+ lists.add(map);
+ }
+ } else {
+ //0.5雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
+ int drp1 = mountainrainsCVOS.get(i).getDrp1();
+ Integer gohour = mountainrainsCVOS.get(i).getGohour();
+ float i1 = (float)drp1 - gohour;
+ float v = (float) (Math.round(i1 * 10)) / 10;
+ String a= String.valueOf(v);
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "true");
+ map.put("status", 1);
+ map.put("num", a);
+ lists.add(map);
+ } else {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "false");
+ map.put("status", 1);
+ lists.add(map);
+ }
+ }
+
+ }
+ //色斑图
+ String file = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("山洪预警表");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue("lon");
+ cell = row.createCell((short) 1);
+ cell.setCellValue("lat");
+ cell = row.createCell((short) 2);
+ cell.setCellValue("rain");
+ for (int i = 0; i < mountainrainsCVOS.size(); i++) {
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ row.createCell((short) 0).setCellValue(mountainrainsCVOS.get(i).getDj());
+ row.createCell((short) 1).setCellValue(mountainrainsCVOS.get(i).getBw());
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
+ continue;
+ }
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
+ //0.8雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ } else {
+ //0.5雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ }
+ }
+ try {
+ file = "D:/mou.xlsx";
+ FileOutputStream fout = new FileOutputStream(file);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\mou.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ lists.add(m);
+ return R.data(lists);
}
//第一种方式预警(雨量表数据)
@@ -555,141 +1278,726 @@
//一个小时前的时间
String dateEnd1 = dateEnds1;
- //两个小时前的时间
- String dateEnd2 = dateEnds2;
-
- //三个小时前的时间
- 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, Object>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
+ List<Map<String, Object>> list = mountainrainService.selecMoneYi(times, dateEnd1, code);
List<Map<String, Object>> lists = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
+ Map<String, Object> map = new HashMap<String, Object>();
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));
+ double v = drp1 - 30;
+ double v1 = (double) Math.round(v * 100) / 100;
+ String a=String.valueOf(v1);
map.put("flage1", "true");
- map.put("flage2", "false");
- map.put("flage3", "false");
- lists.add(map);
- }
- 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 (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);
+ map.put("num", a);
} 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.put("List", list.get(i));
+ lists.add(map);
}
+ String fileName = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("山洪雨量表");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue(new HSSFRichTextString("lon"));
+ cell = row.createCell((short) 1);
+ cell.setCellValue(new HSSFRichTextString("lat"));
+ cell = row.createCell((short) 2);
+ cell.setCellValue(new HSSFRichTextString("rain"));
+ for (int i = 0; i < list.size(); i++) {
+ // 第四步,创建单元格,并设置值
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ BigDecimal w1 = (BigDecimal) list.get(i).get("drp1");
+ double drp1 = w1.doubleValue();
+ row.createCell((short) 0).setCellValue(list.get(i).get("LGTD").toString());
+ row.createCell((short) 1).setCellValue(list.get(i).get("LTTD").toString());
+ if (drp1 > 30) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ }
+ // 第六步,将文件存到指定位置
+ try {
+ fileName = "D:/moup.xlsx";
+ FileOutputStream fout = new FileOutputStream(fileName);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\moup.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ lists.add(m);
return R.data(lists);
}
}
/**
- * 土壤湿度计算
- *
- * @return
+ * 查询预警2小时
*/
- @Scheduled(cron = "0 0 8 * * ?")
- @GetMapping("/soleval")
- public R soleval() {
- 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 = "";
- for (int i = 0; i < split.length; i++) {
- strArrays += "'" + split[i] + "',";
- }
- String code = strArrays.substring(0, strArrays.length() - 1);
- 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;
+ @GetMapping("/Tw")
+ public R Tw(int type, String time, String dateEnds2) {
+ //第二种方式预警
+ if (type == 0) {
+ //当前时间
+ String times = time;
+
+ //2个小时前的时间
+ String dateEnd2 = dateEnds2;
+
+ //对应雨量站
+ String s = mountainrainService.selectCode();
+ 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<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainYi(times, dateEnd2, code);
+ List<Map<String, Object>> lists = new ArrayList<>();
+ for (int i = 0; i < mountainrainsCVOS.size(); i++) {
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
+ continue;
}
- 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;
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
+ //0.8雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) {
+ int drp1 = mountainrainsCVOS.get(i).getDrp1();
+ Integer gohours = mountainrainsCVOS.get(i).getGohours();
+ float i1 = (float)drp1 - gohours;
+ float v = (float) (Math.round(i1 * 10)) / 10;
+ String a= String.valueOf(v);
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "true");
+ map.put("flage3", "false");
+ map.put("status", 2);
+ map.put("num", a);
+ 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 {
- v1 += drp;
- v1 = formatDouble1(v1 * 0.85);
- if (v1 > 60) {
- v1 = 60;
+ //0.5雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
+ int drp1 = mountainrainsCVOS.get(i).getDrp1();
+ Integer gohour = mountainrainsCVOS.get(i).getGohour();
+ float i1 = (float)drp1 - gohour;
+ float v = (float) (Math.round(i1 * 10)) / 10;
+ String a= String.valueOf(v);
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage1", "true");
+ map.put("flage3", "false");
+ map.put("status", 1);
+ map.put("num", a);
+ 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);
+ }
+ }
+
+ }
+ //色斑图
+ String file = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("山洪预警表");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue("lon");
+ cell = row.createCell((short) 1);
+ cell.setCellValue("lat");
+ cell = row.createCell((short) 2);
+ cell.setCellValue("rain");
+ for (int i = 0; i < mountainrainsCVOS.size(); i++) {
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ row.createCell((short) 0).setCellValue(mountainrainsCVOS.get(i).getDj());
+ row.createCell((short) 1).setCellValue(mountainrainsCVOS.get(i).getBw());
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
+ continue;
+ }
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
+ //0.8雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthours()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ } else {
+ //0.5雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthour()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
}
}
}
- if (v1 > 60) {
- mountainrainService.soleInster(stcd, "60");
- } else {
- String a = String.valueOf(v1);
- mountainrainService.soleInster(stcd, a);
+ try {
+ file = "D:/mou.xlsx";
+ FileOutputStream fout = new FileOutputStream(file);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\mou.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ lists.add(m);
+ return R.data(lists);
+
+ }
+ //第一种方式预警(雨量表数据)
+ else {
+ //当前时间
+ String times = time;
+
+ //两个小时前的时间
+ String dateEnd2 = dateEnds2;
+
+ String s = regionWeightService.selectCode();
+ 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, Object>> list = mountainrainService.selecMoneYi(times, dateEnd2, code);
+ List<Map<String, Object>> lists = new ArrayList<>();
+ for (int i = 0; i < list.size(); i++) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ BigDecimal w1 = (BigDecimal) list.get(i).get("drp1");
+ double drp1 = w1.doubleValue();
+ if (drp1 > 50) {
+ double v = drp1 - 50;
+ double v1 = (double) Math.round(v * 10) / 10;
+ map.put("flage2", "true");
+ map.put("num", v1);
+ } else {
+ map.put("flage2", "false");
+ }
+ map.put("List", list.get(i));
+ lists.add(map);
+ }
+ String fileName = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("山洪雨量表");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue(new HSSFRichTextString("lon"));
+ cell = row.createCell((short) 1);
+ cell.setCellValue(new HSSFRichTextString("lat"));
+ cell = row.createCell((short) 2);
+ cell.setCellValue(new HSSFRichTextString("rain"));
+ for (int i = 0; i < list.size(); i++) {
+ // 第四步,创建单元格,并设置值
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ BigDecimal w1 = (BigDecimal) list.get(i).get("drp1");
+ double drp1 = w1.doubleValue();
+ row.createCell((short) 0).setCellValue(list.get(i).get("LGTD").toString());
+ row.createCell((short) 1).setCellValue(list.get(i).get("LTTD").toString());
+ if (drp1 > 50) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ }
+ // 第六步,将文件存到指定位置
+ try {
+ fileName = "D:/moup.xlsx";
+ FileOutputStream fout = new FileOutputStream(fileName);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\moup.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ lists.add(m);
+ return R.data(lists);
+ }
+
+ }
+
+
+ /**
+ * 查询预警3小时
+ */
+ @GetMapping("/Tr")
+ public R Tr(int type, String time, String dateEnds3) {
+ //第二种方式预警
+ if (type == 0) {
+ //当前时间
+ String times = time;
+
+ //2个小时前的时间
+ String dateEnd3 = dateEnds3;
+
+ //对应雨量站
+ String s = mountainrainService.selectCode();
+ 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<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainTr(times, dateEnd3, code);
+ List<Map<String, Object>> lists = new ArrayList<>();
+ for (int i = 0; i < mountainrainsCVOS.size(); i++) {
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
+ continue;
+ }
+ Map<String, Object> map = new HashMap<String, Object>();
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
+ //0.8雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGthours()) {
+ int drp1 = mountainrainsCVOS.get(i).getDrp1();
+ Integer gohours = mountainrainsCVOS.get(i).getGohours();
+ float i1 = (float)drp1 - gohours;
+ float v = (float) (Math.round(i1 * 10)) / 10;
+ String a= String.valueOf(v);
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage3", "true");
+ map.put("status", 2);
+ map.put("num", a);
+ lists.add(map);
+ } else {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage3", "false");
+ map.put("status", 2);
+ lists.add(map);
+ }
+ } else {
+ //0.5雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGthour()) {
+ int drp1 = mountainrainsCVOS.get(i).getDrp1();
+ Integer gohour = mountainrainsCVOS.get(i).getGohour();
+ float i1 = (float)drp1 - gohour;
+ float v = (float) (Math.round(i1 * 10)) / 10;
+ String a= String.valueOf(v);
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage3", "true");
+ map.put("status", 1);
+ map.put("num", a);
+ lists.add(map);
+ } else {
+ map.put("List", mountainrainsCVOS.get(i));
+ map.put("flage3", "false");
+ map.put("status", 1);
+ lists.add(map);
+ }
+ }
+
+ }
+ //色斑图
+ String file = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("山洪预警表");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue("lon");
+ cell = row.createCell((short) 1);
+ cell.setCellValue("lat");
+ cell = row.createCell((short) 2);
+ cell.setCellValue("rain");
+ for (int i = 0; i < mountainrainsCVOS.size(); i++) {
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ row.createCell((short) 0).setCellValue(mountainrainsCVOS.get(i).getDj());
+ row.createCell((short) 1).setCellValue(mountainrainsCVOS.get(i).getBw());
+ if (mountainrainsCVOS.get(i).getCenconding() == null) {
+ continue;
+ }
+ if (mountainrainsCVOS.get(i).getSoilval() > 30) {
+ //0.8雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGthours()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ } else {
+ //0.5雨量湿度
+ if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGthour()) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ }
+ }
+ try {
+ file = "D:/mou.xlsx";
+ FileOutputStream fout = new FileOutputStream(file);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\mou.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ lists.add(m);
+ return R.data(lists);
+
+ }
+ //第一种方式预警(雨量表数据)
+ else {
+ //当前时间
+ String times = time;
+
+ //两个小时前的时间
+ String dateEnd3 = dateEnds3;
+
+ String s = regionWeightService.selectCode();
+ 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, Object>> list = mountainrainService.selecMoneYi(times, dateEnd3, code);
+ List<Map<String, Object>> lists = new ArrayList<>();
+ for (int i = 0; i < list.size(); i++) {
+ Map<String, Object> map = new HashMap<String, Object>();
+ BigDecimal w1 = (BigDecimal) list.get(i).get("drp1");
+ double drp1 = w1.doubleValue();
+ if (drp1 > 80) {
+ double v = drp1 - 80;
+ double v1 = (double) Math.round(v * 10) / 10;
+ map.put("flage3", "true");
+ map.put("num", v1);
+ } else {
+ map.put("flage3", "false");
+ }
+ map.put("List", list.get(i));
+ lists.add(map);
+ }
+ String fileName = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("山洪雨量表");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue(new HSSFRichTextString("lon"));
+ cell = row.createCell((short) 1);
+ cell.setCellValue(new HSSFRichTextString("lat"));
+ cell = row.createCell((short) 2);
+ cell.setCellValue(new HSSFRichTextString("rain"));
+ for (int i = 0; i < list.size(); i++) {
+ // 第四步,创建单元格,并设置值
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ BigDecimal w1 = (BigDecimal) list.get(i).get("drp1");
+ double drp1 = w1.doubleValue();
+ row.createCell((short) 0).setCellValue(list.get(i).get("LGTD").toString());
+ row.createCell((short) 1).setCellValue(list.get(i).get("LTTD").toString());
+ if (drp1 > 80) {
+ row.createCell((short) 2).setCellValue(2);
+ continue;
+
+ } else {
+ row.createCell((short) 2).setCellValue(1);
+ continue;
+ }
+ }
+ // 第六步,将文件存到指定位置
+ try {
+ fileName = "D:/moup.xlsx";
+ FileOutputStream fout = new FileOutputStream(fileName);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\moup.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ lists.add(m);
+ return R.data(lists);
+ }
+
+ }
+
+ /**
+ * 土壤色斑图
+ */
+ @GetMapping("/selectS")
+ public R selectS(String time) {
+ List<Map<String, Object>> list = mountainrainService.selectS();
+ String fileName = "";
+ // 第一步,创建一个webbook,对应一个Excel文件
+ HSSFWorkbook wb = new HSSFWorkbook();
+ // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
+ HSSFSheet sheet = wb.createSheet("土壤色斑图");
+ // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
+ HSSFRow row = sheet.createRow((int) 0);
+ // 第四步,创建单元格,并设置值表头 设置表头居中
+ HSSFCellStyle style = wb.createCellStyle();
+ //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
+ HSSFCell cell = row.createCell((short) 0);
+ cell.setCellValue(new HSSFRichTextString("lon"));
+ cell = row.createCell((short) 1);
+ cell.setCellValue(new HSSFRichTextString("lat"));
+ cell = row.createCell((short) 2);
+ cell.setCellValue(new HSSFRichTextString("rain"));
+ for (int i = 0; i < list.size(); i++) {
+ String stcd = list.get(i).get("stcd").toString();
+ // 第四步,创建单元格,并设置值
+ row = sheet.createRow((int) i + 1);
+ HSSFCell celli = row.createCell((short) 0);
+ row.createCell((short) 0).setCellValue(list.get(i).get("LGTD").toString());
+ row.createCell((short) 1).setCellValue(list.get(i).get("LTTD").toString());
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ if (stcd.equals("62455350")) {
+ row.createCell((short) 0).setCellValue("117.344876");
+ row.createCell((short) 1).setCellValue("27.827067");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ }
+ if (stcd.equals("62334845")) {
+ row.createCell((short) 0).setCellValue("115.625720");
+ row.createCell((short) 1).setCellValue("27.152794");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ }
+ if (stcd.equals("62433800")) {
+ row.createCell((short) 0).setCellValue("115.618546");
+ row.createCell((short) 1).setCellValue("27.683604");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ }
+ if (stcd.equals("62436760")) {
+ row.createCell((short) 0).setCellValue("116.060889");
+ row.createCell((short) 1).setCellValue("28.216806");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ }
+ if (stcd.equals("62437250")) {
+ row.createCell((short) 0).setCellValue("116.622783");
+ row.createCell((short) 1).setCellValue("28.489384");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ }
+ if (stcd.equals("62433700")) {
+ row.createCell((short) 0).setCellValue("115.558771");
+ row.createCell((short) 1).setCellValue("27.518623");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ }
+ if (stcd.equals("62425740")) {
+ row.createCell((short) 0).setCellValue("117.208587");
+ row.createCell((short) 1).setCellValue("27.298647");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ }
+ if (stcd.equals("62437235")) {
+ row.createCell((short) 0).setCellValue("116.780591");
+ row.createCell((short) 1).setCellValue("28.391352");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
+ }
+ if (stcd.equals("62437250")) {
+ row.createCell((short) 0).setCellValue("116.555834");
+ row.createCell((short) 1).setCellValue("28.518077");
+ row.createCell((short) 2).setCellValue(list.get(i).get("soilval").toString());
}
}
-
- 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);
+ // 第六步,将文件存到指定位置
+ try {
+ fileName = "D:/tur.xlsx";
+ FileOutputStream fout = new FileOutputStream(fileName);
+ wb.write(fout);
+ fout.close();
+ wb.close();
+ } catch (Exception e) {
+ e.printStackTrace();
}
- Date today = calendar.getTime();
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
- String result = format.format(today);
- return result;
+ Process proc;
+ Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+ long url = timestamp.getTime();
+ Map m = new HashMap();
+ m.put("url", url + ".png");
+ String[] args1 = new String[]{"python", "D:\\fz\\tur.py", String.valueOf(url)};
+ try {
+ proc = Runtime.getRuntime().exec(args1);
+ BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ System.out.println(line);
+ }
+ in.close();
+ proc.waitFor();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return R.data(m);
}
+
}
+
--
Gitblit v1.9.3