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/vo/BigriverVO.java | 5
src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java | 77 +++++++
src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.java | 9
src/main/java/org/springblade/modules/rsvr/mapper/RsvrRMapper.xml | 12
src/main/resources/excelTemplate/temple.xls | 0
src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml | 153 +++++++++++++
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml | 6
src/main/java/org/springblade/modules/mountainrain/service/impl/BigriverServiceImpl.java | 20 +
src/main/java/org/springblade/modules/mountainrain/excel/temple.xls | 0
src/main/java/org/springblade/modules/mountainrain/service/IBigriverService.java | 5
src/main/java/org/springblade/modules/rsvr/controller/RsvrRController.java | 65 ++++-
src/main/java/org/springblade/modules/mountainrain/controller/ss.java | 15 +
src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java | 237 +++++++++++++++++---
13 files changed, 527 insertions(+), 77 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);
+ }
}
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 8179737..aa4de65 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -2090,5 +2090,82 @@
}
return c.getTime();
}
+
+ private static String ss(int i, int j, boolean b) {
+ Calendar calendar = Calendar.getInstance();
+ if (b) {
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + i);
+ } else {
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - i);
+ }
+ calendar.add(Calendar.DATE, -j);
+ Date today = calendar.getTime();
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
+ String result = format.format(today);
+ return result;
+ }
+
+ @GetMapping("/cs")
+ public R cs() {
+ for (int c = 2; c < 25; c++) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.DATE, -c); //得到前一天
+ Date date = calendar.getTime();
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+ String dateNow = df.format(df.format(date));
+ int intervals = 31;
+ ArrayList passDaysList = new ArrayList<>();
+ for (int i = 0; i < intervals; i++) {
+ passDaysList.add(ss(i, c, false));
+ }
+ Collections.sort(passDaysList);
+ //String s = mountainrainService.selectCode();
+ String s = regionWeightService.selectCode();
+ String[] split = s.split(",");
+ String strArrays = "";
+ for (int i = 0; i < split.length; i++) {
+ strArrays += "'" + split[i] + "',";
+ }
+ String code = strArrays.substring(0, strArrays.length() - 1);
+ for (int i = 0; i < split.length; i++) {
+ Integer num = 30;
+ double v1 = 0;
+ String stcd = null;
+ for (int j = 0; j < passDaysList.size() - 2; j++) {
+ List<Map<String, Object>> map = mountainrainService.selectMtwo(passDaysList.get(j).toString(), passDaysList.get(j + 1).toString(), code);
+ if (map.size() == 0 || i > map.size() - 1) {
+ //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.data("成功");
+ }
}
diff --git a/src/main/java/org/springblade/modules/mountainrain/controller/ss.java b/src/main/java/org/springblade/modules/mountainrain/controller/ss.java
index 483f070..e805e52 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/ss.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/ss.java
@@ -10,6 +10,7 @@
import org.springframework.web.bind.annotation.GetMapping;
import java.math.BigDecimal;
+import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -97,4 +98,18 @@
return result;
}
+ private static String ss(int i,int j, boolean b) {
+ Calendar calendar = Calendar.getInstance();
+ if (b) {
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + i);
+ } else {
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - i);
+ }
+ calendar.add(Calendar.DATE, -j);
+ Date today = calendar.getTime();
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
+ String result = format.format(today);
+ return result;
+ }
+
}
diff --git a/src/main/java/org/springblade/modules/mountainrain/excel/temple.xls b/src/main/java/org/springblade/modules/mountainrain/excel/temple.xls
index 30e363f..dc10891 100644
--- a/src/main/java/org/springblade/modules/mountainrain/excel/temple.xls
+++ b/src/main/java/org/springblade/modules/mountainrain/excel/temple.xls
Binary files differ
diff --git a/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.java b/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.java
index cf43934..2d417d9 100644
--- a/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.java
+++ b/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
+import org.python.antlr.ast.Str;
import org.springblade.modules.mountainrain.entity.Mountainrain;
import org.springblade.modules.mountainrain.entity.Yucbig;
import org.springblade.modules.mountainrain.entity.Yucpptn;
@@ -35,6 +36,12 @@
*/
public interface BigriverMapper extends BaseMapper<Yucbig> {
List<Map<String, Object>> selctbgriver();
-
+ List<Map<String, Object>> selecF(String stcd, String times,String beginTime,String endTime);
+ List<Map<String, Object>> selectStation(List<Map<String, Object>> list);
String selectINfo(String stnm);
+
+
+ //大江大河预报库读取
+ List<BigriverVO> selectYb(String time,String code);
+ String selectCode();
}
diff --git a/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml b/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml
index e266341..b8b5db1 100644
--- a/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml
+++ b/src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml
@@ -2,12 +2,30 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.mountainrain.mapper.BigriverMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="Forecast" type="org.springblade.modules.mountainrain.vo.BigriverVO">
+ <result column="stcd" property="stcd"/>
+ <result column="ftime" property="ftime"/>
+ <result column="ytime" property="ytime"/>
+ <result column="ybsw" property="ybsw"/>
+ <result column="yq" property="yq"/>
+ <result column="river" property="river"/>
+ <result column="stname" property="stname"/>
+ <result column="yjsw" property="yjsw"/>
+ <result column="addvnm" property="addvnm"/>
+ <result column="fbsw" property="fbsw"/>
+ <result column="fbll" property="fbll"/>
+ <result column="qzsw" property="qzsw"/>
+ <result column="qztime" property="qztime"/>
+ <result column="qzll" property="qzll"/>
+ </resultMap>
<!--大江大河-->
<select id="selctbgriver" resultType="java.util.Map">
- SELECT cs1.stcd as STCD,
+ SELECT cs1.stcd as STCD,
cs1.ftime,
cs1.ytime,
- cs1.yuz as Z,
+ cs1.yuz as Z,
cs1.yjsw,
cs1.stname,
cs1.qzsw,
@@ -16,7 +34,7 @@
cs1.qztime,
cs1.drp,
cs1.qzll,
- cs1. fbsw,
+ cs1.fbsw,
cs1.fbll,
cs1.dbi,
ad.ADDVNM as addvnm,
@@ -30,15 +48,136 @@
FROM (SELECT stcd, ftime FROM sys_Yucbig) AS A
GROUP BY A.stcd
) cs
- INNER JOIN (SELECT stcd, stname, ftime, ytime, yuz, yjsw, river,qzsw,yq,drptime,qztime,drp,qzll,fbsw,fbll,dbi FROM sys_Yucbig) cs1
- ON cs.stcd = cs1.stcd and cs.ftime=cs1.ftime
- INNER JOIN (SELECT LGTD, LTTD, STCD,ADDVCD,HNNM FROM ST_STBPRP_B) st ON st.STCD = cs1.stcd
+ INNER JOIN (SELECT stcd,
+ stname,
+ ftime,
+ ytime,
+ yuz,
+ yjsw,
+ river,
+ qzsw,
+ yq,
+ drptime,
+ qztime,
+ drp,
+ qzll,
+ fbsw,
+ fbll,
+ dbi
+ FROM sys_Yucbig) cs1
+ ON cs.stcd = cs1.stcd and cs.ftime = cs1.ftime
+ INNER JOIN (SELECT LGTD, LTTD, STCD, ADDVCD, HNNM FROM ST_STBPRP_B) st ON st.STCD = cs1.stcd
INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
</select>
<select id="selectINfo" resultType="java.lang.String">
SELECT STCD
from dbo.ST_STBPRP_B
- where STNM =#{stnm}
+ where STNM = #{stnm}
+ </select>
+
+ <select id="selectYb" resultMap="Forecast">
+ SELECT A.STCD AS stcd,
+ CONVERT(VARCHAR (100), A.IYMDH, 120) AS ftime,
+ CONVERT(VARCHAR (100), A.YMDH, 120) AS ytime,
+ ISNULL(A.Z, 0) AS ybsw,
+ ISNULL(A.Q, 0) AS yq,
+ B.river,
+ B.stname,
+ B.yjsw,
+ B.addvnm
+ FROM (SELECT STCD, IYMDH, YMDH, Z, Q FROM dbo.ST_FORECAST_F WHERE YMDH = #{time} AND STCD IN (${code})) A
+ LEFT JOIN (SELECT stcd, river, stname, yjsw, addvnm
+ FROM sys_bigriver
+ GROUP BY stcd, river, stname, yjsw, addvnm) B ON A.STCD = B.stcd order by A.IYMDH desc
+ </select>
+
+ <select id="selectCode" resultType="java.lang.String">
+ SELECT stuff((
+ SELECT ',' + CONVERT(VARCHAR (25), stcd)
+ FROM sys_bigriver
+ GROUP BY stcd
+ FOR XML PATH ('')),
+ 1,
+ 1,
+ ''
+ ) AS siteids
+ </select>
+
+ <!-- <select id="selecF" resultType="java.util.Map">-->
+ <!-- SELECT ISNULL(Z, 0) as Z,-->
+ <!-- ISNULL(Q, 0) as Q-->
+ <!-- FROM dbo.ST_RIVER_R-->
+ <!-- WHERE STCD = #{stcd}-->
+ <!-- AND TM = #{times}-->
+ <!-- </select>-->
+
+ <select id="selecF" resultType="java.util.Map">
+ SELECT CONVERT(VARCHAR (100), A.minTM, 120) as qztime,
+ A.minZ AS qzsw,
+ ISNULL(B.Q, 0) AS qzll,
+ ISNULL(C.Z, 0) as fbsw,
+ ISNULL(C.Q, 0) as fbll
+ FROM (
+ SELECT DISTINCT s.STCD,
+ isnull(s.minZ, 0) AS minZ,
+ MAX(CASE s.minAgeNum WHEN 1 THEN s.TM ELSE '' END) OVER ( partition BY s.STCD ) minTM
+ FROM (
+ SELECT STCD,
+ TM,
+ MIN(Z) OVER ( partition BY STCD ) minZ,
+ RANK() OVER ( partition BY STCD ORDER BY Z ) minAgeNum
+ FROM dbo.ST_RIVER_R
+ WHERE TM >= #{beginTime}
+ AND TM <= #{endTime}
+ AND STCD = #{stcd}
+ ) s
+ ) A
+ LEFT JOIN (SELECT Q, TM, STCD FROM dbo.ST_RIVER_R WHERE STCD = #{stcd}) B ON A.minTM = B.TM
+ AND B.STCD = A.STCD
+ LEFT JOIN (
+ SELECT STCD,
+ ISNULL(Z, 0) AS Z,
+ ISNULL(Q, 0) AS Q
+ FROM dbo.ST_RIVER_R
+ WHERE STCD = #{stcd}
+ AND TM = #{times}
+ ) C ON C.STCD = A.STCD
+ </select>
+
+ <select id="selectStation" resultType="java.util.Map">
+ <foreach collection="list" item="item" open="" close="" separator="union ALL" index="index">
+ SELECT CONVERT(VARCHAR (100), A.minTM, 120) as qztime,
+ A.minZ AS qzsw,
+ ISNULL(B.Q, 0) AS qzll,
+ ISNULL(C.Z, 0) as fbsw,
+ ISNULL(C.Q, 0) as fbll,
+ A.STCD
+ FROM (
+ SELECT DISTINCT s.STCD,
+ isnull(s.minZ, 0) AS minZ,
+ MAX(CASE s.minAgeNum WHEN 1 THEN s.TM ELSE '' END) OVER ( partition BY s.STCD ) minTM
+ FROM (
+ SELECT STCD,
+ TM,
+ MIN(Z) OVER ( partition BY STCD ) minZ,
+ RANK() OVER ( partition BY STCD ORDER BY Z ) minAgeNum
+ FROM dbo.ST_RIVER_R
+ WHERE TM >= #{item.beginTime}
+ AND TM <= #{item.endTime}
+ AND STCD =#{item.stcd}
+ ) s
+ ) A
+ LEFT JOIN (SELECT Q, TM, STCD FROM dbo.ST_RIVER_R WHERE STCD = #{item.stcd}) B ON A.minTM = B.TM
+ AND B.STCD = A.STCD
+ LEFT JOIN (
+ SELECT STCD,
+ ISNULL(Z, 0) AS Z,
+ ISNULL(Q, 0) AS Q
+ FROM dbo.ST_RIVER_R
+ WHERE STCD =#{item.stcd}
+ AND TM =#{item.times}
+ ) C ON C.STCD = A.STCD
+ </foreach>
</select>
</mapper>
diff --git a/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml b/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml
index 1fcb5e0..d9c40c1 100644
--- a/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml
+++ b/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml
@@ -926,4 +926,10 @@
INNER JOIN dbo.ST_STBPRP_B st ON so.stcd = st.STCD
where datediff(day,stime, #{stime}) = 0
</select>
+
+
+<!-- <!–土壤湿度优化–>-->
+<!-- <select id="ss" resultType="java.util.Map">-->
+<!-- SELECT * FROM ST_PPTN_R WHERE DATEDIFF(dd, TM , '2021-06-29 08:00:00') <= 30 AND RIGHT(CONVERT(varchar(19),TM,120),5)='00:00'-->
+<!-- </select>-->
</mapper>
diff --git a/src/main/java/org/springblade/modules/mountainrain/service/IBigriverService.java b/src/main/java/org/springblade/modules/mountainrain/service/IBigriverService.java
index 9cce2ca..dc712ca 100644
--- a/src/main/java/org/springblade/modules/mountainrain/service/IBigriverService.java
+++ b/src/main/java/org/springblade/modules/mountainrain/service/IBigriverService.java
@@ -47,4 +47,9 @@
void importBgr(List<BgrExcel> data, Boolean isCovered);
List<Map<String, Object>> selctbgriver();
String selectINfo(String stnm);
+ //大江大河预报库读取
+ List<BigriverVO> selectYb(String time,String code);
+ String selectCode();
+ List<Map<String, Object>> selecF(String stcd, String times,String beginTime,String endTime);
+ List<Map<String, Object>> selectStation(List<Map<String, Object>> list);
}
diff --git a/src/main/java/org/springblade/modules/mountainrain/service/impl/BigriverServiceImpl.java b/src/main/java/org/springblade/modules/mountainrain/service/impl/BigriverServiceImpl.java
index d59f9c5..bebb564 100644
--- a/src/main/java/org/springblade/modules/mountainrain/service/impl/BigriverServiceImpl.java
+++ b/src/main/java/org/springblade/modules/mountainrain/service/impl/BigriverServiceImpl.java
@@ -83,4 +83,24 @@
public String selectINfo(String stnm) {
return baseMapper.selectINfo(stnm);
}
+
+ @Override
+ public List<BigriverVO> selectYb(String time,String code) {
+ return baseMapper.selectYb(time,code);
+ }
+
+ @Override
+ public String selectCode() {
+ return baseMapper.selectCode();
+ }
+
+ @Override
+ public List<Map<String, Object>> selecF(String stcd, String times,String beginTime,String endTime) {
+ return baseMapper.selecF(stcd,times,beginTime,endTime);
+ }
+
+ @Override
+ public List<Map<String, Object>> selectStation(List<Map<String, Object>> list) {
+ return baseMapper.selectStation(list);
+ }
}
diff --git a/src/main/java/org/springblade/modules/mountainrain/vo/BigriverVO.java b/src/main/java/org/springblade/modules/mountainrain/vo/BigriverVO.java
index 5de1c6f..c6d4dc7 100644
--- a/src/main/java/org/springblade/modules/mountainrain/vo/BigriverVO.java
+++ b/src/main/java/org/springblade/modules/mountainrain/vo/BigriverVO.java
@@ -5,7 +5,12 @@
import org.springblade.modules.mountain.entity.Mountain;
import org.springblade.modules.mountainrain.entity.Yucbig;
+import java.math.BigDecimal;
+
@Data
@EqualsAndHashCode(callSuper = true)
public class BigriverVO extends Yucbig {
+ private String addvnm;
+ private BigDecimal ybsw;
+ //private BigDecimal yq;
}
diff --git a/src/main/java/org/springblade/modules/rsvr/controller/RsvrRController.java b/src/main/java/org/springblade/modules/rsvr/controller/RsvrRController.java
index ffe42b5..e0f43eb 100644
--- a/src/main/java/org/springblade/modules/rsvr/controller/RsvrRController.java
+++ b/src/main/java/org/springblade/modules/rsvr/controller/RsvrRController.java
@@ -288,8 +288,12 @@
} else {
BigDecimal w = (BigDecimal) map.get(i).get("W");
double W = w.doubleValue();
- DecimalFormat df = new DecimalFormat("#0.00");
- texta += "蓄水量" + df.format(W) + "百万立方米、";
+ if (W == 0.000) {
+ texta += "蓄水量暂无数据、";
+ } else {
+ DecimalFormat df = new DecimalFormat("#0.00");
+ texta += "蓄水量" + df.format(W) + "百万立方米、";
+ }
}
if (map.get(i).get("OTQ") == null) {
texta += "出库流量暂无数据;";
@@ -325,8 +329,12 @@
} else {
BigDecimal w = (BigDecimal) map.get(i).get("W");
double W = w.doubleValue();
- DecimalFormat df = new DecimalFormat("#0.00");
- texth += "蓄水量" + df.format(W) + "百万立方米、";
+ if (W == 0.000) {
+ texth += "蓄水量暂无数据、";
+ } else {
+ DecimalFormat df = new DecimalFormat("#0.00");
+ texth += "蓄水量" + df.format(W) + "百万立方米、";
+ }
}
if (map.get(i).get("OTQ") == null) {
texth += "出库流量暂无数据。";
@@ -365,8 +373,12 @@
} else {
BigDecimal w = (BigDecimal) map.get(i).get("W");
double W = w.doubleValue();
- DecimalFormat df = new DecimalFormat("#0.00");
- texta += "蓄水量" + df.format(W) + "百万立方米、";
+ if (W == 0.000) {
+ texta += "蓄水量暂无数据、";
+ } else {
+ DecimalFormat df = new DecimalFormat("#0.00");
+ texta += "蓄水量" + df.format(W) + "百万立方米、";
+ }
}
if (map.get(i).get("OTQ") == null) {
texta += "出库流量暂无数据;";
@@ -396,8 +408,12 @@
} else {
BigDecimal w = (BigDecimal) map.get(i).get("W");
double W = w.doubleValue();
- DecimalFormat df = new DecimalFormat("#0.00");
- texth += "蓄水量" + df.format(W) + "百万立方米、";
+ if (W == 0.000) {
+ texth += "蓄水量暂无数据、";
+ } else {
+ DecimalFormat df = new DecimalFormat("#0.00");
+ texth += "蓄水量" + df.format(W) + "百万立方米、";
+ }
}
if (map.get(i).get("OTQ") == null) {
texth += "出库流量暂无数据。";
@@ -443,8 +459,12 @@
} else {
BigDecimal w = (BigDecimal) map.get(i).get("W");
double W = w.doubleValue();
- DecimalFormat df = new DecimalFormat("#0.00");
- texta += "蓄水量" + df.format(W) + "百万立方米、";
+ if (W == 0.000) {
+ texta += "蓄水量暂无数据、";
+ } else {
+ DecimalFormat df = new DecimalFormat("#0.00");
+ texta += "蓄水量" + df.format(W) + "百万立方米、";
+ }
}
if (map.get(i).get("OTQ") == null) {
texta += "出库流量暂无数据;";
@@ -474,8 +494,12 @@
} else {
BigDecimal w = (BigDecimal) map.get(i).get("W");
double W = w.doubleValue();
- DecimalFormat df = new DecimalFormat("#0.00");
- texth += "蓄水量" + df.format(W) + "百万立方米、";
+ if (W == 0.000) {
+ texth += "蓄水量暂无数据、";
+ } else {
+ DecimalFormat df = new DecimalFormat("#0.00");
+ texth += "蓄水量" + df.format(W) + "百万立方米、";
+ }
}
if (map.get(i).get("OTQ") == null) {
texth += "出库流量暂无数据。";
@@ -535,8 +559,7 @@
// //获取涨幅最大的信息
// }
if (beginTime.equals(endTime)) {
- }
- else {
+ } else {
if (m1.size() != 0) {
Object maxKey = getMaxKey(m1);
String s1 = m1.get(maxKey).toString();
@@ -1306,7 +1329,7 @@
}
String code = strArrays.substring(0, strArrays.length() - 1);
//水库水情预警信息
- List<Map<String, Object>> map = rsvrRService.selectskshi(egmd, edmd, timec, time,dateEnd,code);
+ List<Map<String, Object>> map = rsvrRService.selectskshi(egmd, edmd, timec, time, dateEnd, code);
//用来判断是否重复统计超警信息
Map mnum = new HashMap();
//定义list保存预警信息
@@ -1345,7 +1368,7 @@
if (RZ == 0) {
texta += "库水位暂无数据、";
} else {
- texta += "库水位" + RZ + "米、";
+ texta += "库水位" + dfc.format(RZ) + "米、";
}
if (v < 0) {
texta += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1390,7 +1413,7 @@
if (RZ == 0) {
texth += "库水位暂无数据、";
} else {
- texth += "库水位" + RZ + "米、";
+ texth += "库水位" + dfc.format(RZ) + "米、";
}
if (v < 0) {
texth += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1447,7 +1470,7 @@
if (RZ == 0) {
texta += "库水位暂无数据、";
} else {
- texta += "库水位" + RZ + "米、";
+ texta += "库水位" + dfc.format(RZ) + "米、";
}
if (v < 0) {
texta += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1488,7 +1511,7 @@
if (RZ == 0) {
texth += "库水位暂无数据、";
} else {
- texth += "库水位" + RZ + "米、";
+ texth += "库水位" + dfc.format(RZ) + "米、";
}
if (v < 0) {
texth += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1545,7 +1568,7 @@
if (RZ == 0) {
texta += "库水位暂无数据、";
} else {
- texta += "库水位" + RZ + "米、";
+ texta += "库水位" + dfc.format(RZ) + "米、";
}
if (v < 0) {
texta += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1590,7 +1613,7 @@
if (RZ == 0) {
texth += "库水位暂无数据、";
} else {
- texth += "库水位" + RZ + "米、";
+ texth += "库水位" + dfc.format(RZ) + "米、";
}
if (v < 0) {
texth += "比昨日8时下降" + Math.abs(v) + "米、";
diff --git a/src/main/java/org/springblade/modules/rsvr/mapper/RsvrRMapper.xml b/src/main/java/org/springblade/modules/rsvr/mapper/RsvrRMapper.xml
index 4f35d87..74e101b 100644
--- a/src/main/java/org/springblade/modules/rsvr/mapper/RsvrRMapper.xml
+++ b/src/main/java/org/springblade/modules/rsvr/mapper/RsvrRMapper.xml
@@ -88,7 +88,7 @@
GROUP BY STCD) cs4 ON cs4.STCD = rs.STCD
WHERE rs.TM > #{beginTime}
AND rs.TM <= #{endTime}
- ORDER BY rs.TM DESC
+ ORDER BY rs.RZ DESC
</select>
<select id="selectyjcd" resultType="java.util.HashMap">
@@ -314,14 +314,16 @@
<!--水库站水位流量过程接口-->
<select id="selectRsvrLists" resultType="java.util.HashMap">
- select * from dbo.ST_RIVER_R where STCD=#{code}
+ select rs.*,rv.WRZ from dbo.ST_RIVER_R rs
+ LEFT JOIN ( SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B ) rv ON rv.STCD = rs.STCD
+ where rs.STCD=#{code}
<if test="dateBegin!=null and dateBegin!=''">
- AND TM >=#{dateBegin}
+ AND rs.TM >=#{dateBegin}
</if>
<if test="dateEnd!=null and dateEnd!=''">
- and TM<=#{dateEnd}
+ and rs.TM<=#{dateEnd}
</if>
- ORDER BY TM DESC
+ ORDER BY rs.TM DESC
</select>
diff --git a/src/main/resources/excelTemplate/temple.xls b/src/main/resources/excelTemplate/temple.xls
index 310f545..1eba4fa 100644
--- a/src/main/resources/excelTemplate/temple.xls
+++ b/src/main/resources/excelTemplate/temple.xls
Binary files differ
--
Gitblit v1.9.3