From aeb87acc50065316b9788b143ae493a9def8540f Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Wed, 08 Sep 2021 09:13:15 +0800
Subject: [PATCH] 1.单位

---
 src/main/java/org/springblade/modules/regionWeight/service/IRegionWeightService.java         |    2 
 src/main/java/org/springblade/modules/regionWeight/controller/RegionWeightController.java    |  154 ++++++++++++++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.java            |    4 +
 src/main/java/org/springblade/modules/regionWeight/service/impl/RegionWeightServiceImpl.java |   10 ++
 src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.xml             |   60 ++++++++++++++
 5 files changed, 228 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/springblade/modules/regionWeight/controller/RegionWeightController.java b/src/main/java/org/springblade/modules/regionWeight/controller/RegionWeightController.java
index 1f109f5..3a26f88 100644
--- a/src/main/java/org/springblade/modules/regionWeight/controller/RegionWeightController.java
+++ b/src/main/java/org/springblade/modules/regionWeight/controller/RegionWeightController.java
@@ -743,4 +743,158 @@
 
 	}
 
+	@GetMapping("/selectReDc")
+	public R selectReDc(String beginTime, String endTime) {
+		String substring = beginTime.substring(0, 10);
+		String r = beginTime.substring(11, 13);
+		//截取月日
+		String[] strs = substring.split("-");
+		//月
+		String year = strs[1].toString();
+		//日
+		String day = strs[2].toString();
+		String substrings = endTime.substring(0, 10);
+		String rs = endTime.substring(11, 13);
+		//截取月日
+		String[] strss = substrings.split("-");
+		//月
+		String years = strss[1].toString();
+		//日
+		String days = strss[2].toString();
+		//List<Map<String, Object>> maps = regionWeightService.selectYjs(beginTime, endTime);
+		String s = regionWeightService.selectCode();
+		String[] split = s.split(",");
+		String strArrays = "";
+		for (int i = 0; i < split.length; i++) {
+			strArrays += "'" + split[i] + "',";
+		}
+		String code = strArrays.substring(0, strArrays.length() - 1);
+		List<Map<String, Object>> maps = regionWeightService.ss(beginTime, endTime, code);
+		List<Map<String, Object>> lists = new ArrayList<>();
+		Map<String, Object> map = new HashMap<String, Object>();
+		String text = "";
+		String yday = year + "月" + day + "日" + r + "时-" + years + "月" + days + "日" + rs + "时。";
+		//0-10降雨量范围
+		List lista = new ArrayList<>();
+		//10-25降雨量范围
+		List listb = new ArrayList<>();
+		//25-50降雨量范围
+		List listc = new ArrayList<>();
+		//50-100降雨量范围
+		List listd = new ArrayList<>();
+		//100-250降雨量范围
+		List liste = new ArrayList<>();
+		//250降雨量范围
+		List listf = new ArrayList<>();
+		for (int i = 0; i < maps.size(); i++) {
+			if (i < 3) {
+				String addvnm = maps.get(i).get("ADDVNM").toString();
+				String stnm = maps.get(i).get("STNM").toString();
+				BigDecimal bigDecimaldyp = (BigDecimal) maps.get(i).get("dyp");//日雨量
+				double dyp = bigDecimaldyp.doubleValue();
+				if (dyp > 0 && dyp <= 10) {
+					lista.add(maps.get(i));
+				} else if (dyp > 10 && dyp <= 25) {
+					listb.add(maps.get(i));
+				} else if (dyp > 25 && dyp <= 50) {
+					listc.add(maps.get(i));
+				} else if (dyp > 50 && dyp <= 100) {
+					listd.add(maps.get(i));
+				} else if (dyp > 100 && dyp <= 250) {
+					liste.add(maps.get(i));
+				} else if (dyp > 250) {
+					listf.add(maps.get(i));
+				}
+				text += stnm + "站" + dyp + "毫米,";
+			} else {
+				BigDecimal bigDecimaldyp = (BigDecimal) maps.get(i).get("dyp");//日雨量
+				double dyp = bigDecimaldyp.doubleValue();
+				if (dyp > 0 && dyp <= 10) {
+					lista.add(maps.get(i));
+				} else if (dyp > 10 && dyp <= 25) {
+					listb.add(maps.get(i));
+				} else if (dyp > 25 && dyp <= 50) {
+					listc.add(maps.get(i));
+				} else if (dyp > 50 && dyp <= 100) {
+					listd.add(maps.get(i));
+				} else if (dyp > 100 && dyp <= 250) {
+					liste.add(maps.get(i));
+				} else if (dyp > 250) {
+					listf.add(maps.get(i));
+				}
+			}
+		}
+		//0-10
+		map.put("one", lista);
+		//10-25
+		map.put("two", listb);
+		//25-50
+		map.put("three", listc);
+		//50-100
+		map.put("four", listd);
+		//100-250
+		map.put("five", liste);
+		//250
+		map.put("six", listf);
+		String a = "";
+		if (maps.size() == 0) {
+			a = yday + "暂无降雨信息。";
+		} else {
+			a = yday + "点降雨量前三为:" + text.substring(0,text.length()-1)+"。";
+		}
+		map.put("text", a);
+		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("lon");
+		cell = row.createCell((short) 1);
+		cell.setCellValue("lat");
+		cell = row.createCell((short) 2);
+		cell.setCellValue("rain");
+		for (int i = 0; i < maps.size(); i++) {
+			// 第四步,创建单元格,并设置值
+			row = sheet.createRow((int) i + 1);
+			HSSFCell celli = row.createCell((short) 0);
+			row.createCell((short) 0).setCellValue(maps.get(i).get("LGTD").toString());
+			row.createCell((short) 1).setCellValue(maps.get(i).get("LTTD").toString());
+			row.createCell((short) 2).setCellValue(maps.get(i).get("dyp").toString());
+		}
+		// 第六步,将文件存到指定位置
+		try {
+			fileName = "D:/pptnd.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\\fz.py");
+			BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+			String line = null;
+			while ((line = in.readLine()) != null) {
+				System.out.println(line);
+			}
+			in.close();
+			proc.waitFor();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
+		return R.data(lists);
+	}
+
+
 }
diff --git a/src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.java b/src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.java
index 85ffa57..ddc160d 100644
--- a/src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.java
+++ b/src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.java
@@ -17,6 +17,7 @@
 package org.springblade.modules.regionWeight.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import liquibase.pro.packaged.S;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.regionWeight.entity.RegionWeight;
 import org.springblade.modules.regionWeight.excel.regionExcel;
@@ -58,6 +59,7 @@
 	List<Map<String, Object>>  selectWeight();
 	List<Map<String, Object>>  selectWeights();
 	List<Map<String, Object>> selectYjs(String beginTime,String endTime);
+	List<Map<String, Object>> ss(String beginTime, String endTime, String code);
 	List<Map<String, Object>> selectAll();
 	List<Map<String, Object>> selectLALL();
 	List<Map<String, Object>> selectLNam();
@@ -66,4 +68,6 @@
 	 */
 	List<regionExcel> exportRegion(String beginTime,String endTime);
 	List<Map<String, Object>> selectppyj(String time, String dateBegin1,String dateBegin3,String dateBegin6,String times);
+
+	String selectCode();
 }
diff --git a/src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.xml b/src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.xml
index 9bef9c1..f4fde0f 100644
--- a/src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.xml
+++ b/src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.xml
@@ -70,7 +70,8 @@
                st.STTP
         FROM (SELECT STCD, SUM(DRP) AS DRP
               FROM dbo.ST_PPTN_R
-              WHERE TM &gt; #{beginTime} AND TM &lt;= #{endTime}
+              WHERE TM &gt; #{beginTime}
+                AND TM &lt;= #{endTime}
               GROUP BY STCD) cs1
                  INNER JOIN (SELECT STATION_CODE, STATION_NAME, REGION_NAME, WEIGHT, REGION_CODE
                              FROM ZHSW_REGION_WEIGHT) s ON s.STATION_CODE = cs1.STCD
@@ -162,7 +163,8 @@
                  FROM dbo.ST_STBPRP_B st
                           INNER JOIN dbo.ST_ADDVCD_D ad on ad.ADDVCD = st.ADDVCD
                  WHERE st.STTP = 'PP'
-                    OR st.STTP = 'ZQ' OR st.STTP='ZZ'
+                    OR st.STTP = 'ZQ'
+                    OR st.STTP = 'ZZ'
              ) c
                  INNER JOIN (
             SELECT SUM
@@ -285,5 +287,59 @@
             GROUP BY STCD
         ) csd ON csd.STCD = c.STCD
     </select>
+
+
+    <select id="selectCode" resultType="java.lang.String">
+        SELECT stuff((
+            SELECT ',' + CONVERT(VARCHAR (25), STCD)
+            FROM dbo.ST_STBPRP_B st
+                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
+            WHERE st.STTP = 'PP'
+               OR st.STTP = 'ZQ'
+               OR st.STTP = 'ZZ' FOR XML PATH ('')),
+		1,
+		1,
+	''
+	) AS siteids
+    </select>
+
+    <select id="ss" resultType="java.util.Map">
+        SELECT c.STCD,
+               c.STNM,
+               c.STLC,
+               c.ADDVNM,
+               c.RVNM,
+               c.HNNM,
+               c.LTTD,
+               c.LGTD,
+               ISNULL(csd.dyp, 0) AS dyp
+        FROM (
+                 SELECT SUM
+                            (strd.DRP) AS dyp,
+                        STCD
+                 FROM dbo.ST_PPTN_R strd
+                 WHERE strd.TM &gt; #{beginTime}
+                   AND strd.TM &lt;= #{endTime}
+                   AND STCD IN (${code})
+                 GROUP BY STCD
+             ) csd
+                 LEFT JOIN (
+            SELECT STCD,
+                   st.STNM,
+                   st.ADDVCD,
+                   st.STLC,
+                   st.LTTD,
+                   st.LGTD,
+                   st.RVNM,
+                   st.HNNM,
+                   ad.ADDVNM
+            FROM dbo.ST_STBPRP_B st
+                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
+        ) c ON c.STCD = csd.STCD
+        WHERE c.ADDVNM != '井冈山市'
+        AND c.ADDVNM != '吉水县'
+        ORDER BY
+            csd.dyp DESC
+    </select>
 </mapper>
 
diff --git a/src/main/java/org/springblade/modules/regionWeight/service/IRegionWeightService.java b/src/main/java/org/springblade/modules/regionWeight/service/IRegionWeightService.java
index c073e2b..036cc51 100644
--- a/src/main/java/org/springblade/modules/regionWeight/service/IRegionWeightService.java
+++ b/src/main/java/org/springblade/modules/regionWeight/service/IRegionWeightService.java
@@ -58,4 +58,6 @@
 	List<Map<String, Object>> selectLALL();
 	List<Map<String, Object>> selectLNam();
 	List<Map<String, Object>> selectppyj(String time, String dateBegin1,String dateBegin3,String dateBegin6,String times);
+	String selectCode();
+	List<Map<String, Object>> ss(String beginTime, String endTime, String code);
 }
diff --git a/src/main/java/org/springblade/modules/regionWeight/service/impl/RegionWeightServiceImpl.java b/src/main/java/org/springblade/modules/regionWeight/service/impl/RegionWeightServiceImpl.java
index 18a9c15..bd16523 100644
--- a/src/main/java/org/springblade/modules/regionWeight/service/impl/RegionWeightServiceImpl.java
+++ b/src/main/java/org/springblade/modules/regionWeight/service/impl/RegionWeightServiceImpl.java
@@ -103,4 +103,14 @@
 	public List<Map<String, Object>> selectppyj(String time, String dateBegin1, String dateBegin3, String dateBegin6, String times) {
 		return baseMapper.selectppyj(time, dateBegin1, dateBegin3, dateBegin6, times);
 	}
+
+	@Override
+	public String selectCode() {
+		return baseMapper.selectCode();
+	}
+
+	@Override
+	public List<Map<String, Object>> ss(String beginTime, String endTime, String code) {
+		return baseMapper.ss(beginTime, endTime, code);
+	}
 }

--
Gitblit v1.9.3