From 39caebba35fc84824f5cd51d189fe322d5145803 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Tue, 09 Nov 2021 16:15:14 +0800
Subject: [PATCH] 1.山洪

---
 src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java | 1068 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 619 insertions(+), 449 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 3220316..8179737 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -23,6 +23,7 @@
 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;
@@ -33,10 +34,16 @@
 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.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;
@@ -47,6 +54,8 @@
 import java.io.*;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
+import java.sql.Timestamp;
+import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -598,8 +607,13 @@
 				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("python D:\\fz\\mou.py");
+				proc = Runtime.getRuntime().exec(args1);
 				BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
 				String line = null;
 				while ((line = in.readLine()) != null) {
@@ -612,6 +626,7 @@
 			} catch (InterruptedException e) {
 				e.printStackTrace();
 			}
+			lists.add(m);
 			return R.data(lists);
 
 		}
@@ -720,8 +735,13 @@
 				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("python D:\\fz\\moup.py");
+				proc = Runtime.getRuntime().exec(args1);
 				BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
 				String line = null;
 				while ((line = in.readLine()) != null) {
@@ -734,6 +754,7 @@
 			} catch (InterruptedException e) {
 				e.printStackTrace();
 			}
+			lists.add(m);
 			return R.data(lists);
 		}
 
@@ -745,11 +766,14 @@
 	 * @return
 	 */
 	@GetMapping("/soleval")
-	public R soleval() {
-		mountainrainService.soildel();
-		int intervals = 31;
+	public R soleval(String time, int b) {
+		//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		//String dateNow = sdf.format(new Date());
+		String dateNow = time;
+		//mountainrainService.soildel();
+		int intervals = 32 + b;
 		ArrayList passDaysList = new ArrayList<>();
-		for (int i = 0; i < intervals; i++) {
+		for (int i = 1 + b; i < intervals; i++) {
 			passDaysList.add(getDays(i, false));
 		}
 		Collections.sort(passDaysList);
@@ -757,44 +781,47 @@
 		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) {
+					//stcd=split[i];
+					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 (stcd != null) {
+				if (v1 > 60) {
+					mountainrainService.soleInster(stcd, "60", dateNow);
+				} else {
+					String a = String.valueOf(v1);
+					mountainrainService.soleInster(stcd, a, dateNow);
+				}
+			}
+
+		}
 
 		return R.success("成功");
 	}
@@ -954,7 +981,7 @@
 	 * @return
 	 */
 	@GetMapping("/selectsmriver")
-	public R selectsmriver(String time) {
+	public R selectsmriver(String time) throws ParseException {
 		Date date = null;
 		// 把Date按照格式转换成字符串
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -964,7 +991,13 @@
 			e.printStackTrace();
 		}
 		String dateEnd = sdf.format(date);
-		List<Map<String, Object>> selctsmriver = mountainrainService.selctsmriver(time, dateEnd);
+		DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		Date datess = sdfc.parse(time);
+		String now = sdfc.format(datess);
+		//当前时间的前24小时
+		Date beforeHour1 = beforeHourToNowDate(now, 24);
+		String begintime24 = sdf.format(beforeHour1);
+		List<Map<String, Object>> selctsmriver = mountainrainService.selctsmriver(time, dateEnd, begintime24);
 		//预警数据
 		List listyj = new ArrayList();
 		//无预警数据
@@ -997,7 +1030,7 @@
 	 * @return
 	 */
 	@GetMapping("/selectbgriver")
-	public R selectbgriver(String time) {
+	public R selectbgriver(String time) throws ParseException {
 		Date date = null;
 		// 把Date按照格式转换成字符串
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -1007,7 +1040,13 @@
 			e.printStackTrace();
 		}
 		String dateEnd = sdf.format(date);
-		List<Map<String, Object>> selctsmriver = mountainrainService.selctbgriver(time, dateEnd);
+		DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		Date datess = sdfc.parse(time);
+		String now = sdfc.format(datess);
+		//当前时间的前24小时
+		Date beforeHour1 = beforeHourToNowDate(now, 24);
+		String begintime24 = sdf.format(beforeHour1);
+		List<Map<String, Object>> selctsmriver = mountainrainService.selctbgriver(time, dateEnd, begintime24);
 		//预警数据
 		List listyj = new ArrayList();
 		//无预警数据
@@ -1116,6 +1155,14 @@
 			String times = time;
 
 			String dateEnd1 = dateEnds1;
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			Date date = null;
+			try {
+				date = sdf.parse(time);
+			} catch (ParseException e) {
+				e.printStackTrace();
+			}
+			String stime = sdf.format(date);
 			//对应雨量站
 			String s = mountainrainService.selectCode();
 			String[] split = s.split(",");
@@ -1124,7 +1171,7 @@
 				strArrays += "'" + split[i] + "',";
 			}
 			String code = strArrays.substring(0, strArrays.length() - 1);
-			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainYi(times, dateEnd1, code);
+			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainYi(times, dateEnd1, code, stime);
 			List<Map<String, Object>> lists = new ArrayList<>();
 			for (int i = 0; i < mountainrainsCVOS.size(); i++) {
 				if (mountainrainsCVOS.get(i).getCenconding() == null) {
@@ -1136,11 +1183,13 @@
 					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;
+						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", i1);
+						map.put("num", a);
 						lists.add(map);
 					} else {
 						map.put("List", mountainrainsCVOS.get(i));
@@ -1153,11 +1202,13 @@
 					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;
+						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", i1);
+						map.put("num", a);
 						lists.add(map);
 					} else {
 						map.put("List", mountainrainsCVOS.get(i));
@@ -1168,75 +1219,87 @@
 				}
 
 			}
-			//色斑图
-			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;
+			Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+			long url = timestamp.getTime();
+			Map m = new HashMap();
+			m.put("url", url + ".png");
+			lists.add(m);
+			Thread thread = new Thread(new Runnable() {
+				@Override
+				public void run() {
+					//色斑图
+					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;
+							}
+						}
 					}
-				} 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;
+					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();
 					}
 				}
-			}
-			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();
-			}
+			});
+			thread.start();
 			return R.data(lists);
 
 		}
@@ -1263,71 +1326,85 @@
 				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", v);
+					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;
+			Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+			long url = timestamp.getTime();
+			Map m = new HashMap();
+			m.put("url", url + ".png");
+			lists.add(m);
+			Thread thread = new Thread(new Runnable() {
+				@Override
+				public void run() {
+					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;
+					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();
+					}
 				}
-			}
-			// 第六步,将文件存到指定位置
-			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();
-			}
+			});
+			thread.start();
 			return R.data(lists);
 		}
 
@@ -1345,7 +1422,14 @@
 
 			//2个小时前的时间
 			String dateEnd2 = dateEnds2;
-
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			Date date = null;
+			try {
+				date = sdf.parse(time);
+			} catch (ParseException e) {
+				e.printStackTrace();
+			}
+			String stime = sdf.format(date);
 			//对应雨量站
 			String s = mountainrainService.selectCode();
 			String[] split = s.split(",");
@@ -1354,7 +1438,7 @@
 				strArrays += "'" + split[i] + "',";
 			}
 			String code = strArrays.substring(0, strArrays.length() - 1);
-			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainYi(times, dateEnd2, code);
+			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainTw(times, dateEnd2, code, stime);
 			List<Map<String, Object>> lists = new ArrayList<>();
 			for (int i = 0; i < mountainrainsCVOS.size(); i++) {
 				if (mountainrainsCVOS.get(i).getCenconding() == null) {
@@ -1366,12 +1450,14 @@
 					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;
+						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", i1);
+						map.put("num", a);
 						lists.add(map);
 					} else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthours()) {
 						map.put("List", mountainrainsCVOS.get(i));
@@ -1391,12 +1477,14 @@
 					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;
+						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", i1);
+						map.put("num", a);
 						lists.add(map);
 					} else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthour()) {
 						map.put("List", mountainrainsCVOS.get(i));
@@ -1414,81 +1502,93 @@
 				}
 
 			}
-			//色斑图
-			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;
+			Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+			long url = timestamp.getTime();
+			Map m = new HashMap();
+			m.put("url", url + ".png");
+			lists.add(m);
+			Thread thread = new Thread(new Runnable() {
+				@Override
+				public void run() {
+					//色斑图
+					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;
+							}
+						}
 					}
-				} 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;
+					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();
 					}
 				}
-			}
-			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();
-			}
+			});
+			thread.start();
 			return R.data(lists);
 
 		}
@@ -1515,71 +1615,88 @@
 				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", v);
+					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;
+			Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+			long url = timestamp.getTime();
+			Map m = new HashMap();
+			m.put("url", url + ".png");
+			lists.add(m);
+			Thread thread = new Thread(new Runnable() {
+				@Override
+				public void run() {
+					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();
+					}
 				}
-			}
-			// 第六步,将文件存到指定位置
-			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();
-			}
+			});
+			thread.start();
 			return R.data(lists);
 		}
 
@@ -1598,7 +1715,14 @@
 
 			//2个小时前的时间
 			String dateEnd3 = dateEnds3;
-
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			Date date = null;
+			try {
+				date = sdf.parse(time);
+			} catch (ParseException e) {
+				e.printStackTrace();
+			}
+			String stime = sdf.format(date);
 			//对应雨量站
 			String s = mountainrainService.selectCode();
 			String[] split = s.split(",");
@@ -1607,7 +1731,7 @@
 				strArrays += "'" + split[i] + "',";
 			}
 			String code = strArrays.substring(0, strArrays.length() - 1);
-			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainTr(times, dateEnd3, code);
+			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainTr(times, dateEnd3, code, stime);
 			List<Map<String, Object>> lists = new ArrayList<>();
 			for (int i = 0; i < mountainrainsCVOS.size(); i++) {
 				if (mountainrainsCVOS.get(i).getCenconding() == null) {
@@ -1619,11 +1743,13 @@
 					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;
+						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", i1);
+						map.put("num", a);
 						lists.add(map);
 					} else {
 						map.put("List", mountainrainsCVOS.get(i));
@@ -1636,11 +1762,13 @@
 					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;
+						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", i1);
+						map.put("num", a);
 						lists.add(map);
 					} else {
 						map.put("List", mountainrainsCVOS.get(i));
@@ -1651,75 +1779,87 @@
 				}
 
 			}
-			//色斑图
-			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;
+			Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+			long url = timestamp.getTime();
+			Map m = new HashMap();
+			m.put("url", url + ".png");
+			lists.add(m);
+			Thread thread = new Thread(new Runnable() {
+				@Override
+				public void run() {
+					//色斑图
+					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;
+							}
+						}
 					}
-				} 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;
+					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();
 					}
 				}
-			}
-			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();
-			}
+			});
+			thread.start();
 			return R.data(lists);
 
 		}
@@ -1746,72 +1886,85 @@
 				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", v);
+					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;
+			Timestamp timestamp = new Timestamp(System.currentTimeMillis());
+			long url = timestamp.getTime();
+			Map m = new HashMap();
+			m.put("url", url + ".png");
+			lists.add(m);
+			Thread thread = new Thread(new Runnable() {
+				@Override
+				public void run() {
+					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;
+						} 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;
+					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();
+					}
 				}
-			}
-			// 第六步,将文件存到指定位置
-			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();
-			}
+			});
+			thread.start();
 			return R.data(lists);
 		}
 
@@ -1821,8 +1974,8 @@
 	 * 土壤色斑图
 	 */
 	@GetMapping("/selectS")
-	public void selectS(){
-		List<Map<String, Object>> list = mountainrainService.selectS();
+	public R selectS(String time) {
+		List<Map<String, Object>> list = mountainrainService.selectS(time);
 		String fileName = "";
 		// 第一步,创建一个webbook,对应一个Excel文件
 		HSSFWorkbook wb = new HSSFWorkbook();
@@ -1847,47 +2000,47 @@
 			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")){
+			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")){
+			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")){
+			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")){
+			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")){
+			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")){
+			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")){
+			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")){
+			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")){
+			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());
@@ -1904,8 +2057,13 @@
 			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("python D:\\fz\\tur.py");
+			proc = Runtime.getRuntime().exec(args1);
 			BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
 			String line = null;
 			while ((line = in.readLine()) != null) {
@@ -1918,7 +2076,19 @@
 		} catch (InterruptedException e) {
 			e.printStackTrace();
 		}
+		return R.data(m);
+	}
 
-}
+	public static Date beforeHourToNowDate(String date, int hours) {
+		Calendar c = Calendar.getInstance();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		try {
+			c.setTime(sdf.parse(date));
+			c.set(Calendar.HOUR_OF_DAY, c.get(Calendar.HOUR_OF_DAY) - hours);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return c.getTime();
+	}
 }
 

--
Gitblit v1.9.3