From a98b1db4392c357304036e8b3cdd01646920300d Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Thu, 21 Jul 2022 15:41:23 +0800
Subject: [PATCH] 1.山洪

---
 src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java |  237 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 194 insertions(+), 43 deletions(-)

diff --git a/src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java b/src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java
index 53acc7c..d84e7e8 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java
@@ -19,6 +19,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import jodd.io.PathUtil;
+import liquibase.pro.packaged.S;
 import lombok.AllArgsConstructor;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -31,12 +32,14 @@
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.python.antlr.ast.Str;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.annotation.ApiLog;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.tool.api.R;
 import org.springblade.modules.mountainrain.entity.Yucbig;
 import org.springblade.modules.mountainrain.service.IBigriverService;
+import org.springblade.modules.mountainrain.vo.BigriverVO;
 import org.springblade.modules.mountainrain.wrapper.BigriverWrapper;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
@@ -48,7 +51,11 @@
 import javax.validation.Valid;
 import java.awt.image.BufferedImage;
 import java.io.*;
+import java.math.BigDecimal;
 import java.security.MessageDigest;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -167,17 +174,16 @@
 			String ftimes = sheet.getRow(1).getCell(11).getStringCellValue();
 			String substring = ftimes.substring(5, ftimes.length());
 			String year = substring.substring(0, substring.lastIndexOf("年"));
-			String yues = substring.substring(substring.indexOf("年")+1, substring.lastIndexOf("月"));
+			String yues = substring.substring(substring.indexOf("年") + 1, substring.lastIndexOf("月"));
 			String yue;
-			if (yues.length()==1){
-				 yue=0+yues;
+			if (yues.length() == 1) {
+				yue = 0 + yues;
+			} else {
+				yue = yues;
 			}
-			else {
-				 yue=yues;
-			}
-			String r = substring.substring(substring.indexOf("月")+1, substring.lastIndexOf("日"));
-			String ms = substring.substring(substring.indexOf("日")+1, substring.lastIndexOf("时"));
-			String ftime=year+"-"+yue+"-"+r+" "+ms+":00:00";
+			String r = substring.substring(substring.indexOf("月") + 1, substring.lastIndexOf("日"));
+			String ms = substring.substring(substring.indexOf("日") + 1, substring.lastIndexOf("时"));
+			String ftime = year + "-" + yue + "-" + r + " " + ms + ":00:00";
 			//河名
 			String river = sheet.getRow(4).getCell(0).getStringCellValue();
 			//站点名称
@@ -199,13 +205,12 @@
 			String ytimes = sheet.getRow(4).getCell(12).getStringCellValue();
 			String[] split = ytimes.split(",");
 			String a;
-			if (split[0].length()==1){
-				a=0+yues;
+			if (split[0].length() == 1) {
+				a = 0 + yues;
+			} else {
+				a = yues;
 			}
-			else {
-				a=yues;
-			}
-			String ytime=year+"-"+a+"-"+split[1]+" "+split[2]+":00:00";
+			String ytime = year + "-" + a + "-" + split[1] + " " + split[2] + ":00:00";
 			//预测水位
 			String yuz = sheet.getRow(4).getCell(13).getStringCellValue();
 			//预警流量
@@ -216,7 +221,7 @@
 			String dbi = sheet.getRow(4).getCell(16).getStringCellValue();
 			//起涨水位
 			String qzsw = sheet.getRow(4).getCell(8).getStringCellValue();
-			Yucbig yucbig=new Yucbig();
+			Yucbig yucbig = new Yucbig();
 			yucbig.setStcd(stcd);
 			yucbig.setStname(stnames);
 			yucbig.setRiver(river);
@@ -245,12 +250,13 @@
 
 	/**
 	 * 主要河流导出预警模板
+	 *
 	 * @param emp01
 	 * @throws IOException
 	 * @throws InvalidFormatException
 	 */
 	@PostMapping("createEmpExcel")
-	public  void createEmpExcel(@RequestBody Map<String, Object> emp01) throws IOException, InvalidFormatException {
+	public void createEmpExcel(@RequestBody Map<String, Object> emp01) throws IOException, InvalidFormatException {
 		// import為需要導入的EXCEL模板,exportFilePath為生成的員工EXCEL文件
 		String importFilePath = "D://excel//temple.xls";
 		//String exportFilePath = "D:\\Excel";
@@ -302,42 +308,187 @@
 		CellRangeAddress regions = new CellRangeAddress(5, 6, 3, 16);
 		sheet.addMergedRegion(regions);
 		//发布时间
-		sheet.getRow(1).getCell(11).setCellValue("发布时间:"+emp01.get("ftime").toString());
+		sheet.getRow(1).getCell(11).setCellValue("发布时间:" + emp01.get("ftime").toString());
 		CellRangeAddress regionf = new CellRangeAddress(1, 1, 11, 16);
 		sheet.addMergedRegion(regionf);
-		FileOutputStream out = new FileOutputStream( "D://Software//nginx-1.20.0//dist//fzswz//excel//主要河流预警.xls");
+		FileOutputStream out = new FileOutputStream("D://Software//nginx-1.20.0//dist//fzswz//excel//主要河流预警.xls");
+		//FileOutputStream out = new FileOutputStream("D://Temp//主要河流预警.xls");
 		wb.write(out);
 		out.close();
 	}
 
-	/***
-	 * MD5加码 生成32位md5码
+
+	/**
+	 * 大江大河预报库读取
+	 *
+	 * @return
 	 */
-	public static String string2MD5(String inStr) {
-		MessageDigest md5 = null;
-		try {
-			md5 = MessageDigest.getInstance("MD5");
-		} catch (Exception e) {
-			System.out.println(e.toString());
-			e.printStackTrace();
-			return "";
+	@GetMapping("/selectYb")
+	public R selectYb(String time) throws ParseException {
+		//预警数据
+		List listyj = new ArrayList();
+		//无预警数据
+		List listzc = new ArrayList();
+		Map mnum = new HashMap();
+		String s = iBigriverService.selectCode();
+		String[] split = s.split(",");
+		String strArrays = "";
+		for (int i = 0; i < split.length; i++) {
+			strArrays += "'" + split[i] + "',";
 		}
-		char[] charArray = inStr.toCharArray();
-		byte[] byteArray = new byte[charArray.length];
-
-		for (int i = 0; i < charArray.length; i++)
-			byteArray[i] = (byte) charArray[i];
-		byte[] md5Bytes = md5.digest(byteArray);
-		StringBuffer hexValue = new StringBuffer();
-		for (int i = 0; i < md5Bytes.length; i++) {
-			int val = ((int) md5Bytes[i]) & 0xff;
-			if (val < 16)
-				hexValue.append("0");
-			hexValue.append(Integer.toHexString(val));
+		String code = strArrays.substring(0, strArrays.length() - 1);
+		String substrings = time.substring(0, 10);
+		String ftimez = substrings + " 08:00:00";
+		List<BigriverVO> list = iBigriverService.selectYb(ftimez, code);
+		for (int i = 0; i < list.size(); i++) {
+			String stcd = list.get(i).getStcd();
+			String ftime = list.get(i).getFtime();
+			String substring = ftime.substring(0, 13);
+			String times = substring + ":00:00";
+			String endTime = times;
+			Date dates = beforeHourToNowDate(time, 1);
+			DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
+			String beginTime = sdfc.format(dates);
+			List<Map<String, Object>> list1 = iBigriverService.selecF(stcd, times, beginTime, endTime);
+			for (int c = 0; c < list1.size(); c++) {
+				list.get(i).setFbsw(list1.get(c).get("fbsw").toString());
+				list.get(i).setFbll(list1.get(c).get("fbll").toString());
+				list.get(i).setQzll(list1.get(c).get("qzll").toString());
+				list.get(i).setQztime(list1.get(c).get("qztime").toString());
+				list.get(i).setQzsw(list1.get(c).get("qzsw").toString());
+			}
 		}
-		return hexValue.toString();
-
+		for (int i = 0; i < list.size(); i++) {
+			String yjsw = list.get(i).getYjsw();
+			Double yjz = Double.parseDouble(yjsw);
+			BigDecimal ybsws = list.get(i).getYbsw();
+			Double ybsw = ybsws.doubleValue();
+			if (ybsw > yjz) {
+				if (mnum.containsKey(list.get(i).getStcd()) == true) {
+				} else {
+					mnum.put(list.get(i).getStcd(), i);
+					listyj.add(list.get(i));
+				}
+			} else {
+				if (mnum.containsKey(list.get(i).getStcd()) == true) {
+				} else {
+					mnum.put(list.get(i).getStcd(), i);
+					listzc.add(list.get(i));
+				}
+			}
+		}
+		Map map = new HashMap();
+		map.put("yj", listyj);
+		map.put("zc", listzc);
+		List lists = new ArrayList();
+		lists.add(map);
+		return R.data(lists);
 	}
 
+	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);
+			c.set(Calendar.DATE, c.get(Calendar.DATE) - hours);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return c.getTime();
+	}
+
+	@GetMapping("/ss")
+	public void ss() {
+		String s = iBigriverService.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);
+		System.out.println(code);
+	}
+
+	/**
+	 * 大江大河预报库读取
+	 *
+	 * @return
+	 */
+	@GetMapping("/selectYbs")
+	public R selectYbs(String time) throws ParseException {
+		//预警数据
+		List listyj = new ArrayList();
+		//无预警数据
+		List listzc = new ArrayList();
+		Map mnum = new HashMap();
+		String s = iBigriverService.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>> listz = new ArrayList<Map<String, Object>>();
+		List<BigriverVO> list = iBigriverService.selectYb(time, code);
+		for (int i = 0; i < list.size(); i++) {
+			Map<String, Object> map = new HashMap<String, Object>();
+			String stcd = list.get(i).getStcd();
+			String ftime = list.get(i).getFtime();
+			String substring = ftime.substring(0, 13);
+			String times = substring + ":00:00";
+			String endTime = times;
+			Date dates = beforeHourToNowDate(time, 1);
+			DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
+			String beginTime = sdfc.format(dates);
+			map.put("beginTime", beginTime);
+			map.put("endTime", endTime);
+			map.put("stcd", stcd);
+			map.put("times", times);
+			listz.add(map);
+		}
+		List<Map<String, Object>> list1 = iBigriverService.selectStation(listz);
+		for (int i = 0; i < list.size(); i++) {
+			for (int c = 0; c < list1.size(); c++) {
+				String stcd = list.get(i).getStcd();
+				String stcdz = list1.get(i).get("STCD").toString();
+				if (stcd == stcdz) {
+					list.get(i).setFbsw(list1.get(c).get("fbsw").toString());
+					list.get(i).setFbll(list1.get(c).get("fbll").toString());
+					list.get(i).setQzll(list1.get(c).get("qzll").toString());
+					list.get(i).setQztime(list1.get(c).get("qztime").toString());
+					list.get(i).setQzsw(list1.get(c).get("qzsw").toString());
+				} else {
+					continue;
+				}
+
+			}
+		}
+		for (int i = 0; i < list.size(); i++) {
+			String yjsw = list.get(i).getYjsw();
+			Double yjz = Double.parseDouble(yjsw);
+			BigDecimal ybsws = list.get(i).getYbsw();
+			Double ybsw = ybsws.doubleValue();
+			if (ybsw > yjz) {
+				if (mnum.containsKey(list.get(i).getStcd()) == true) {
+				} else {
+					mnum.put(list.get(i).getStcd(), i);
+					listyj.add(list.get(i));
+				}
+			} else {
+				if (mnum.containsKey(list.get(i).getStcd()) == true) {
+				} else {
+					mnum.put(list.get(i).getStcd(), i);
+					listzc.add(list.get(i));
+				}
+			}
+		}
+		Map map = new HashMap();
+		map.put("yj", listyj);
+		map.put("zc", listzc);
+		List lists = new ArrayList();
+		lists.add(map);
+		return R.data(lists);
+	}
 
 }

--
Gitblit v1.9.3