From 2461281f7bdf6a4e7a016b528280ed5ec7b9f2a2 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Thu, 07 Oct 2021 14:28:15 +0800
Subject: [PATCH] 1.山洪

---
 src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java | 1325 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 1,268 insertions(+), 57 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 6ecac8b..3220316 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -20,8 +20,8 @@
 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.log.annotation.ApiLog;
 import org.springblade.core.mp.support.Condition;
@@ -37,20 +37,20 @@
 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.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.text.DateFormat;
+import java.net.URLEncoder;
 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;
 
 /**
  * 控制器
@@ -493,11 +493,6 @@
 				}
 				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));
@@ -520,11 +515,6 @@
 					}
 				} else {
 					//0.5雨量湿度
-					int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
-						mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
-//					map.put("List", mountainrainsCVOS.get(i));
-//					map.put("Max", Max);
-//					lists.add(map);
 					if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
 						map.put("List", mountainrainsCVOS.get(i));
 						map.put("flage1", "true");
@@ -547,6 +537,81 @@
 				}
 
 			}
+			//色斑图
+			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;
+			try {
+				proc = Runtime.getRuntime().exec("python D:\\fz\\mou.py");
+				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(lists);
 
 		}
@@ -565,7 +630,6 @@
 			String dateEnd3 = dateEnds3;
 
 			String s = regionWeightService.selectCode();
-			//String s = "62334490";
 			String[] split = s.split(",");
 			String strArrays = "";
 			for (int i = 0; i < split.length; i++) {
@@ -584,22 +648,91 @@
 				double drp3 = w3.doubleValue();
 				if (drp1 > 30) {
 					map.put("flage1", "true");
+				} else {
+					map.put("flage1", "false");
 				}
 				if (drp2 > 50) {
 					map.put("flage2", "true");
-					lists.add(map);
+				} else {
+					map.put("flage2", "false");
 				}
 				if (drp3 > 80) {
 					map.put("flage3", "true");
-					lists.add(map);
 				} else {
-					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();
+				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;
+			try {
+				proc = Runtime.getRuntime().exec("python D:\\fz\\moup.py");
+				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(lists);
 		}
@@ -620,46 +753,48 @@
 			passDaysList.add(getDays(i, false));
 		}
 		Collections.sort(passDaysList);
-		String s = mountainrainService.selectCode();
+		//String s = mountainrainService.selectCode();
+		String s = regionWeightService.selectCode();
 		String[] split = s.split(",");
 		String strArrays = "";
+		System.out.println("长度:"+split.length);
 		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);
-			}
-		}
+//		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("成功");
 	}
@@ -691,7 +826,8 @@
 	 * @return
 	 */
 	@GetMapping("/yuc")
-	public R yuc(String addvcd, String time, String intv,String drp) throws ParseException {
+	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);
@@ -707,7 +843,1082 @@
 		}
 		//预警信息添加
 		mountainrainService.insertYuc(yucpptnList);
-		return R.data("");
+		//第二种预警
+		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++) {
+				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();
+						int i1 = drp1 - gohours;
+						map.put("List", mountainrainsCVOS.get(i));
+						map.put("flage1", "true");
+						map.put("status", 2);
+						map.put("num", i1);
+						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();
+						int i1 = drp1 - gohour;
+						map.put("List", mountainrainsCVOS.get(i));
+						map.put("flage1", "true");
+						map.put("status", 1);
+						map.put("num", i1);
+						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;
+			try {
+				proc = Runtime.getRuntime().exec("python D:\\fz\\mou.py");
+				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(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;
+					map.put("flage1", "true");
+					map.put("num", v);
+				} 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;
+			try {
+				proc = Runtime.getRuntime().exec("python D:\\fz\\moup.py");
+				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(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();
+						int i1 = drp1 - gohours;
+						map.put("List", mountainrainsCVOS.get(i));
+						map.put("flage1", "true");
+						map.put("flage3", "false");
+						map.put("status", 2);
+						map.put("num", i1);
+						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();
+						int i1 = drp1 - gohour;
+						map.put("List", mountainrainsCVOS.get(i));
+						map.put("flage1", "true");
+						map.put("flage3", "false");
+						map.put("status", 1);
+						map.put("num", i1);
+						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;
+			try {
+				proc = Runtime.getRuntime().exec("python D:\\fz\\mou.py");
+				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(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;
+					map.put("flage2", "true");
+					map.put("num", v);
+				} 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;
+			try {
+				proc = Runtime.getRuntime().exec("python D:\\fz\\moup.py");
+				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(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();
+						int i1 = drp1 - gohours;
+						map.put("List", mountainrainsCVOS.get(i));
+						map.put("flage3", "true");
+						map.put("status", 2);
+						map.put("num", i1);
+						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();
+						int i1 = drp1 - gohour;
+						map.put("List", mountainrainsCVOS.get(i));
+						map.put("flage3", "true");
+						map.put("status", 1);
+						map.put("num", i1);
+						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;
+			try {
+				proc = Runtime.getRuntime().exec("python D:\\fz\\mou.py");
+				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(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;
+					map.put("flage3", "true");
+					map.put("num", v);
+				} 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;
+			try {
+				proc = Runtime.getRuntime().exec("python D:\\fz\\moup.py");
+				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(lists);
+		}
+
+	}
+
+	/**
+	 * 土壤色斑图
+	 */
+	@GetMapping("/selectS")
+	public void selectS(){
+		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;
+		try {
+			proc = Runtime.getRuntime().exec("python D:\\fz\\tur.py");
+			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();
+		}
+
 }
+}
+

--
Gitblit v1.9.3