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