From 0cfec24a4eb3807acc3014b92b7e2ebc7b804f1c Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Sat, 25 Sep 2021 10:09:41 +0800
Subject: [PATCH] 1.山洪

---
 src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml             |   28 ++++
 src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java    |   53 ++++++--
 src/main/java/org/springblade/modules/mountainrain/service/impl/MountainrainServiceImpl.java |   11 +
 src/main/java/org/springblade/modules/mountainrain/entity/Yucpptn.java                       |   43 +++++++
 src/main/java/org/springblade/modules/mountainrain/service/IMountainrainService.java         |    4 
 src/main/java/org/springblade/modules/mountainrain/controller/ss.java                        |   92 +++++++++++++++
 src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.java            |  118 ++++++++++++-------
 7 files changed, 284 insertions(+), 65 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 c870d42..cb963c6 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -32,6 +32,7 @@
 import org.springblade.modules.mountain.service.IMountainService;
 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.service.IMountainrainService;
 import org.springblade.modules.mountainrain.vo.*;
 import org.springblade.modules.mountainrain.wrapper.MountainrainWrapper;
@@ -44,6 +45,8 @@
 
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.text.DateFormat;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
@@ -572,6 +575,7 @@
 			List<Map<String, Object>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
 			List<Map<String, Object>> lists = new ArrayList<>();
 			for (int i = 0; i < list.size(); i++) {
+				Map<String, Object> map = new HashMap<String, Object>();
 				BigDecimal w1 = (BigDecimal) list.get(i).get("drp1");
 				double drp1 = w1.doubleValue();
 				BigDecimal w2 = (BigDecimal) list.get(i).get("drp2");
@@ -579,37 +583,23 @@
 				BigDecimal w3 = (BigDecimal) list.get(i).get("drp3");
 				double drp3 = w3.doubleValue();
 				if (drp1 > 30) {
-					Map<String, Object> map = new HashMap<String, Object>();
-					map.put("List", list.get(i));
 					map.put("flage1", "true");
-					map.put("flage2", "false");
-					map.put("flage3", "false");
-					lists.add(map);
 				}
 				if (drp2 > 50) {
-					Map<String, Object> map = new HashMap<String, Object>();
-					map.put("List", list.get(i));
-					map.put("flage1", "false");
 					map.put("flage2", "true");
-					map.put("flage3", "false");
 					lists.add(map);
 				}
 				if (drp3 > 80) {
-					Map<String, Object> map = new HashMap<String, Object>();
-					map.put("List", list.get(i));
-					map.put("flage1", "false");
-					map.put("flage2", "false");
 					map.put("flage3", "true");
 					lists.add(map);
 				} else {
-					Map<String, Object> map = new HashMap<String, Object>();
-					map.put("List", list.get(i));
 					map.put("flage1", "false");
 					map.put("flage2", "false");
 					map.put("flage3", "false");
 					lists.add(map);
 				}
-
+				map.put("List", list.get(i));
+				lists.add(map);
 			}
 			return R.data(lists);
 		}
@@ -621,7 +611,6 @@
 	 *
 	 * @return
 	 */
-	@Scheduled(cron = "0 0 8 * * ?")
 	@GetMapping("/soleval")
 	public R soleval() {
 		mountainrainService.soildel();
@@ -692,4 +681,34 @@
 		return result;
 	}
 
+
+	/**
+	 * 山洪预报
+	 *
+	 * @param addvcd 行政区编码
+	 * @param time   时间
+	 * @param intv   降雨时段
+	 * @return
+	 */
+	@GetMapping("/yuc")
+	public R yuc(String addvcd, String time, String intv) throws ParseException {
+		List<Yucpptn> yucpptnList = new ArrayList<Yucpptn>();
+		//通过行政区查询站点编码
+		List<Map<String, Object>> list = mountainrainService.selectAddvcd(addvcd);
+		for (int i = 0; i < list.size(); i++) {
+			Yucpptn yucpptn = new Yucpptn();
+			//站点编码
+			String stcd = list.get(i).get("STCD").toString();
+			yucpptn.setSTCD(stcd);
+			DateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			Date date = sf.parse(time);
+			java.sql.Date sqlDate = new java.sql.Date(date.getTime());
+			yucpptn.setINTV(intv);
+			yucpptnList.add(yucpptn);
+		}
+		//预警信息添加
+		mountainrainService.insertYuc(yucpptnList);
+		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
new file mode 100644
index 0000000..1d350f4
--- /dev/null
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/ss.java
@@ -0,0 +1,92 @@
+package org.springblade.modules.mountainrain.controller;
+
+import org.springblade.core.tool.api.R;
+import org.springblade.modules.mountain.service.IMountainService;
+import org.springblade.modules.mountainrain.service.IMountainrainService;
+import org.springblade.modules.regionWeight.service.IRegionWeightService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Component
+public class ss {
+	@Autowired
+	private IMountainrainService mountainrainService;
+
+	@Scheduled(cron = "0 0 8 * * ?")
+	public R soleval() {
+		mountainrainService.soildel();
+		int intervals = 31;
+		ArrayList passDaysList = new ArrayList<>();
+		for (int i = 0; i < intervals; i++) {
+			passDaysList.add(getDays(i, false));
+		}
+		Collections.sort(passDaysList);
+		String s = mountainrainService.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 (v1 > 60) {
+				mountainrainService.soleInster(stcd, "60");
+			} else {
+				String a = String.valueOf(v1);
+				mountainrainService.soleInster(stcd, a);
+			}
+		}
+
+		return R.success("成功");
+	}
+
+	public static double formatDouble1(double d) {
+		return (double) Math.round(d * 10) / 10;
+	}
+
+	private static String getDays(int i, 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);
+		}
+		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/entity/Yucpptn.java b/src/main/java/org/springblade/modules/mountainrain/entity/Yucpptn.java
new file mode 100644
index 0000000..eebb2d5
--- /dev/null
+++ b/src/main/java/org/springblade/modules/mountainrain/entity/Yucpptn.java
@@ -0,0 +1,43 @@
+package org.springblade.modules.mountainrain.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@TableName("sys_yucpptn")
+@ApiModel(value = "Yucpptn对象", description = "Yucpptn对象")
+public class Yucpptn {
+
+	/**
+	 * 对应雨量站
+	 */
+	@ApiModelProperty(value = "对应雨量站")
+	private String STCD;
+
+	/**
+	 * 时间
+	 */
+	@ApiModelProperty(value = "时间")
+	@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
+	private Date TM;
+
+	/**
+	 * 时段降水量
+	 */
+	@ApiModelProperty(value = "时段降水量")
+	private String DRP;
+
+	/**
+	 * 时段长
+	 */
+	@ApiModelProperty(value = "时段长")
+	private String INTV;
+}
diff --git a/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.java b/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.java
index f46d91d..d4377cc 100644
--- a/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.java
+++ b/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.java
@@ -19,13 +19,14 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.mountainrain.entity.Mountainrain;
+import org.springblade.modules.mountainrain.entity.Yucpptn;
 import org.springblade.modules.mountainrain.vo.*;
 
 import java.util.List;
 import java.util.Map;
 
 /**
- *  Mapper 接口
+ * Mapper 接口
  *
  * @author BladeX
  * @since 2020-02-27
@@ -43,6 +44,7 @@
 
 	/**
 	 * 判断是否正常
+	 *
 	 * @param dateBegin
 	 * @param dateEnd
 	 * @return
@@ -50,16 +52,20 @@
 	List<MountainrainsVO> selectALl(String dateBegin, String dateEnd);
 
 
+	List<MountainrainsCVO> selectcInfo(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
 
-	List<MountainrainsCVO> selectcInfo(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
-	List<MountainrainsCVO> selectaInfo(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
+	List<MountainrainsCVO> selectaInfo(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
 
 
-	List<MountainrainsCVO> selectcInfos(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
-	List<MountainrainsCVO> Mountains(String times,String dateEnd1,String dateEnd2,String dateEnd3,String code);
-	List<MountainrainsCVO> selectcInfosdx(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String addvnm);
-	List<MountainrainsCVO> selectaInfos(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
-	List<MountainrainsCVO> selectaInfosdx(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String addvnm);
+	List<MountainrainsCVO> selectcInfos(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
+
+	List<MountainrainsCVO> Mountains(String times, String dateEnd1, String dateEnd2, String dateEnd3, String code);
+
+	List<MountainrainsCVO> selectcInfosdx(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String addvnm);
+
+	List<MountainrainsCVO> selectaInfos(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
+
+	List<MountainrainsCVO> selectaInfosdx(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String addvnm);
 
 
 	List<MountainrainSSVO> selectNoticePage(IPage<MountainrainSSVO> page, MountainrainSSVO mountainrainSSVO);
@@ -69,53 +75,75 @@
 	List<MountainrainSSVO> selectNoticeList(String query);
 
 	List<MountainrainSSVO> queryXZ();
+
 	List<Map<String, Object>> queryZY();
+
 	List<MountainrainsDPVO> queryZL();
 
 
-	List<Map<String, Object>> selectMon(String begintime24,String time,String pid,String timess);
-	List<Map<String, Object>> selectMoncs(String begintime24,String time,String timess);
-	List<Map<String, Object>> selectMoncss(String begintime24,String time,String timess);
+	List<Map<String, Object>> selectMon(String begintime24, String time, String pid, String timess);
+
+	List<Map<String, Object>> selectMoncs(String begintime24, String time, String timess);
+
+	List<Map<String, Object>> selectMoncss(String begintime24, String time, String timess);
+
 	String selectPId();
+
 	String selectFd(String pid);
+
 	String selectGrid(String fd);
-	Map<String, Integer> selectThree(String beg0,String end0,
-									 String beg1,String end1,
-									 String beg2,String end2,
-									 String beg3,String end3,
-									 String beg4,String end4,
-									 String beg5,String end5,
-									 String beg6,String end6,
-									 String beg7,String end7,
-									 String fymdh,String s2);
 
-	Map<String, Integer> selectSix(String beg60,String end60,
-								   String beg61,String end61,
-								   String beg62,String end62,
-								   String fymdh,String s2);
+	Map<String, Integer> selectThree(String beg0, String end0,
+									 String beg1, String end1,
+									 String beg2, String end2,
+									 String beg3, String end3,
+									 String beg4, String end4,
+									 String beg5, String end5,
+									 String beg6, String end6,
+									 String beg7, String end7,
+									 String fymdh, String s2);
 
-	String selectMax1(String fymdh,String begtime,String endtime,String s2);
-	List<Map<String, Object>> selectdYc(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String pid,String timess);
-	List<Map<String, Object>> selectdYcs(String time, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
-	List<Map<String, Object>> selectdYcss(String time, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
-	Map<String, Integer> selectAllmax(String beg0,String end0,
-									  String beg1,String end1,
-									  String beg2,String end2,
-									  String beg3,String end3,
-									  String beg4,String end4,
-									  String beg5,String end5,
-									  String beg6,String end6,
-									  String beg7,String end7,
-									  String beg60,String end60,
-									  String beg61,String end61,
-									  String beg62,String end62,
-									  String begtime,String endtime,
-									  String fymdh,String s2);
+	Map<String, Integer> selectSix(String beg60, String end60,
+								   String beg61, String end61,
+								   String beg62, String end62,
+								   String fymdh, String s2);
 
-	Integer selectCount(String beginTime,String endTime);
+	String selectMax1(String fymdh, String begtime, String endtime, String s2);
+
+	List<Map<String, Object>> selectdYc(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String pid, String timess);
+
+	List<Map<String, Object>> selectdYcs(String time, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
+
+	List<Map<String, Object>> selectdYcss(String time, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
+
+	Map<String, Integer> selectAllmax(String beg0, String end0,
+									  String beg1, String end1,
+									  String beg2, String end2,
+									  String beg3, String end3,
+									  String beg4, String end4,
+									  String beg5, String end5,
+									  String beg6, String end6,
+									  String beg7, String end7,
+									  String beg60, String end60,
+									  String beg61, String end61,
+									  String beg62, String end62,
+									  String begtime, String endtime,
+									  String fymdh, String s2);
+
+	Integer selectCount(String beginTime, String endTime);
+
 	String selectCode();
-	List<Map<String, Object>> selecMone(String times,String dateEnd1,String dateEnd2,String dateEnd3,String code);
-	List<Map<String, Object>> selectMtwo(String time3,String time,String code);
-	void soleInster(String stcd,String soilval);
+
+	List<Map<String, Object>> selecMone(String times, String dateEnd1, String dateEnd2, String dateEnd3, String code);
+
+	List<Map<String, Object>> selectMtwo(String time3, String time, String code);
+
+	List<Map<String, Object>> selectAddvcd(String addvcd);
+
+	void soleInster(String stcd, String soilval);
+
 	void soildel();
+
+	//预报信息新增
+	int insertYuc(List<Yucpptn> yucpptnList);
 }
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 f2529eb..35f2187 100644
--- a/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml
+++ b/src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml
@@ -358,9 +358,9 @@
                cs.HNNM,
                cs.LTTD,
                cs.LGTD,
-            isnull(a.drp1, 0) as drp1,
-            isnull(b.drp2,0) as drp2,
-            isnull(c.drp3,0) as drp3
+               isnull(a.drp1, 0) as drp1,
+               isnull(b.drp2, 0) as drp2,
+               isnull(c.drp3, 0) as drp3
         FROM (
                  SELECT SUM(str.DRP) AS drp1,
                         STCD
@@ -426,4 +426,26 @@
         DELETE
         FROM sys_soleval
     </delete>
+
+
+    <!--通过行政区编码查询站点-->
+    <select id="selectAddvcd" resultType="java.util.Map" >
+        SELECT STCD
+        FROM dbo.ST_STBPRP_B
+        WHERE STTP='RR' AND ADDVCD=#{addvcd}
+    </select>
+
+    <!-- 批量插入预报信息-->
+    <insert id ="insertYuc" parameterType="java.util.List" >
+        insert into sys_yucpptn
+        (STCD, TM, DRP, INTV)
+        values
+        <foreach collection ="list" item="reddemCode" index= "index" separator =",">
+            (
+            #{reddemCode.STCD}, #{reddemCode.TM},
+            #{reddemCode.DRP},
+            #{reddemCode.INTV}
+            )
+        </foreach >
+    </insert >
 </mapper>
diff --git a/src/main/java/org/springblade/modules/mountainrain/service/IMountainrainService.java b/src/main/java/org/springblade/modules/mountainrain/service/IMountainrainService.java
index 954b48b..7b4ca0d 100644
--- a/src/main/java/org/springblade/modules/mountainrain/service/IMountainrainService.java
+++ b/src/main/java/org/springblade/modules/mountainrain/service/IMountainrainService.java
@@ -20,6 +20,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.core.mp.support.Query;
 import org.springblade.modules.mountainrain.entity.Mountainrain;
+import org.springblade.modules.mountainrain.entity.Yucpptn;
 import org.springblade.modules.mountainrain.vo.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -125,6 +126,7 @@
 	List<MountainrainsCVO> Mountains(String times,String dateEnd1,String dateEnd2,String dateEnd3,String code);
 	List<Map<String, Object>> selecMone(String times,String dateEnd1,String dateEnd2,String dateEnd3,String code);
 	List<Map<String, Object>> selectMtwo(String time3,String time,String code);
+	List<Map<String, Object>> selectAddvcd(String addvcd);
 	/**
 	 *三小时
 	 * @param gthour 三小时准备转移雨量
@@ -134,4 +136,6 @@
 	String selectCode();
 	void soleInster(String stcd,String soilval);
 	void soildel();
+	//预报信息新增
+	int insertYuc(List<Yucpptn> yucpptnList);
 }
diff --git a/src/main/java/org/springblade/modules/mountainrain/service/impl/MountainrainServiceImpl.java b/src/main/java/org/springblade/modules/mountainrain/service/impl/MountainrainServiceImpl.java
index e1aef5a..e8909fe 100644
--- a/src/main/java/org/springblade/modules/mountainrain/service/impl/MountainrainServiceImpl.java
+++ b/src/main/java/org/springblade/modules/mountainrain/service/impl/MountainrainServiceImpl.java
@@ -30,6 +30,7 @@
 import org.springblade.modules.mountain.entity.Mountain;
 import org.springblade.modules.mountain.service.IMountainService;
 import org.springblade.modules.mountainrain.entity.Mountainrain;
+import org.springblade.modules.mountainrain.entity.Yucpptn;
 import org.springblade.modules.mountainrain.mapper.MountainrainMapper;
 import org.springblade.modules.mountainrain.service.IMountainrainService;
 import org.springblade.modules.mountainrain.vo.*;
@@ -393,6 +394,11 @@
 	}
 
 	@Override
+	public List<Map<String, Object>> selectAddvcd(String addvcd) {
+		return baseMapper.selectAddvcd(addvcd);
+	}
+
+	@Override
 	public int rainthree(int number, Integer gthour) {
 		if (number<=gthour){
 			return 0;//正常
@@ -419,6 +425,11 @@
 		baseMapper.soildel();
 	}
 
+	@Override
+	public int insertYuc(List<Yucpptn> yucpptnList) {
+		return 0;
+	}
+
 
 	/*
 	 * 计算最大值

--
Gitblit v1.9.3