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,456 insertions(+), 80 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 0297cf2..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,20 +501,131 @@
 				}
 				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 {
-					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);
+					//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);
 
 		}
@@ -528,83 +650,173 @@
 				strArrays += "'" + split[i] + "',";
 			}
 			String code = strArrays.substring(0, strArrays.length() - 1);
-			List<Map<String, Integer>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
+			List<Map<String, Object>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
 			List<Map<String, Object>> lists = new ArrayList<>();
-			Map<String, Object> map = new HashMap<String, Object>();
 			for (int i = 0; i < list.size(); i++) {
-				if (list.get(i).get("drp1") >= 30) {
-					map.put("List", list.get(i));
-					map.put("Max", 1);
+				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 (list.get(i).get("drp2") >= 50) {
-					map.put("List", list.get(i));
-					map.put("Max", 2);
+				if (drp2 > 50) {
+					map.put("flage2", "true");
+				} else {
+					map.put("flage2", "false");
 				}
-				if (list.get(i).get("drp3") >= 80) {
-					map.put("List", list.get(i));
-					map.put("Max", 3);
+				if (drp3 > 80) {
+					map.put("flage3", "true");
+				} else {
+					map.put("flage3", "false");
 				}
-
+				map.put("List", list.get(i));
+				lists.add(map);
 			}
-			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
-	 */
-	//@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 s = "62310356,62310305";
-		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() - 1; j++) {
-			List<Map<String, Object>> map = mountainrainService.selectMtwo(passDaysList.get(j).toString(), passDaysList.get(j + 1).toString(), code);
-			if (map.size()==0){
-				continue;
-			}
-			BigDecimal w = (BigDecimal) map.get(i).get("drp");
-			double drp = w.doubleValue();
-			stcd = map.get(i).get("STCD").toString();
-			//计算湿度
-			if (i == 0) {
-				v1 = formatDouble1((num + drp) * 0.85);
-			} else {
-				v1 += drp;
-				v1 = formatDouble1(v1 * 0.85);
-			}
-		}
-			if (v1 > 60) {
-				mountainrainService.soleInster(stcd, "60");
-			} else {
-				String a = String.valueOf(v1);
-				mountainrainService.soleInster(stcd, a);
-			}
-		}
-
-		return R.success("成功");
-	}
+//	/**
+//	 * 土壤湿度计算
+//	 *
+//	 * @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;
@@ -623,5 +835,1169 @@
 		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));
+						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());
+					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);
+					}
+				}
+
+			}
+			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);
+
+		}
+		//第一种方式预警(雨量表数据)
+		else {
+			//当前时间
+			String times = time;
+
+			//一个小时前的时间
+			String dateEnd1 = dateEnds1;
+
+			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, 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();
+				if (drp1 > 30) {
+					double v = drp1 - 30;
+					double v1 = (double) Math.round(v * 100) / 100;
+					String a=String.valueOf(v1);
+					map.put("flage1", "true");
+					map.put("num", a);
+				} else {
+					map.put("flage1", "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 > 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);
+		}
+
+	}
+
+	/**
+	 * 查询预警2小时
+	 */
+	@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;
+				}
+				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 {
+					//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;
+					}
+				}
+			}
+			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());
+			}
+		}
+		// 第六步,将文件存到指定位置
+		try {
+			fileName = "D:/tur.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\\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