From 139987154fa26282b30cf237c13d999f5f5547a2 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 13 Sep 2021 08:40:26 +0800
Subject: [PATCH] 1.山洪

---
 src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java |  145 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 104 insertions(+), 41 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 f479446..d829e5e 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -20,6 +20,7 @@
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import liquibase.pro.packaged.M;
 import lombok.AllArgsConstructor;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.annotation.ApiLog;
@@ -34,10 +35,17 @@
 import org.springblade.modules.mountainrain.service.IMountainrainService;
 import org.springblade.modules.mountainrain.vo.*;
 import org.springblade.modules.mountainrain.wrapper.MountainrainWrapper;
+import org.springblade.modules.regionWeight.service.IRegionWeightService;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import springfox.documentation.annotations.ApiIgnore;
 import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 
 /**
@@ -49,11 +57,13 @@
 @RestController
 @AllArgsConstructor
 @RequestMapping("/mountainrain")
+@Component
 @Api(value = "", tags = "接口")
 public class MountainrainController extends BladeController {
 
 	private IMountainrainService mountainrainService;
 	private IMountainService mountainService;
+	private final IRegionWeightService regionWeightService;
 
 
 	/**
@@ -395,7 +405,6 @@
 			//对应雨量站
 			long startTime=System.currentTimeMillis();
 			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfos(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess);
-			long endTime=System.currentTimeMillis(); //获取结束时间
 			List<Map<String, Object>> lists = new ArrayList<>();
 			for (int i = 0; i < mountainrainsCVOS.size(); i++) {
 				if (mountainrainsCVOS.get(i).getCenconding()==null){
@@ -408,7 +417,6 @@
 					map.put("Max", Max);
 					lists.add(map);
 			}
-			System.out.println("程序运行时间: "+(endTime-startTime)+"ms");
 			return R.data(lists);
 
 		}
@@ -436,9 +444,6 @@
 				Map<String, Object> map = new HashMap<String, Object>();
 					int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
 						mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
-				/*if(Max==0){
-					continue;
-				}*/
 					map.put("List", mountainrainsCVOS.get(i));
 					map.put("Max", Max);
 					lists.add(map);
@@ -455,23 +460,19 @@
 	 */
 	@ApiLog("查询洪水预警")
 	@GetMapping("/sss")
-	public R selectcInfoss(int type,String time,String dateEnds1,String dateEnds3,String dateEnds6,String dateEnds24,int k,String timei) {
+	public R selectcInfoss(int type,String time,String dateEnds1,String dateEnds2,String dateEnds3,int k) {
+		//第二种方式预警
 		if (type == 0 && k==13) {
 			//当前时间
 			String times = time;
 
 			String dateEnd1 = dateEnds1;
 
-			String timess=timei;
+			//2个小时前的时间
+			String dateEnd2 =dateEnds2;
 
-			//三个小时前的时间
+			//3个小时前的时间
 			String dateEnd3 =dateEnds3;
-
-			//六个小时前的时间
-			String dateEnd6 =dateEnds6;
-
-			//二十四个小时前的时间
-			String dateEnd24 =dateEnds24;
 
 			//对应雨量站
 			String s = mountainrainService.selectCode();
@@ -481,59 +482,121 @@
 				strArrays += "'" + split[i] + "',";
 			}
 			String code = strArrays.substring(0, strArrays.length() - 1);
-			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.Mountains(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess,code);
+			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.Mountains(times, dateEnd1, dateEnd2, dateEnd3,code);
 			List<Map<String, Object>> lists = new ArrayList<>();
 			for (int i = 0; i < mountainrainsCVOS.size(); i++) {
 				if (mountainrainsCVOS.get(i).getCenconding()==null){
 					continue;
 				}
 				Map<String, Object> map = new HashMap<String, Object>();
-				int Max =mountainrainService .Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
-					mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
-				map.put("List", mountainrainsCVOS.get(i));
-				map.put("Max", Max);
-				lists.add(map);
+				if (mountainrainsCVOS.get(i).getSoilval()>30){
+					int Max =mountainrainService .Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
+						mountainrainsCVOS.get(i).getGohours(), mountainrainsCVOS.get(i).getGthours());
+					map.put("List", mountainrainsCVOS.get(i));
+					map.put("Max", Max);
+					lists.add(map);
+				}
+				else {
+					int Max =mountainrainService .Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
+						mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
+					map.put("List", mountainrainsCVOS.get(i));
+					map.put("Max", Max);
+					lists.add(map);
+				}
+
 			}
 			return R.data(lists);
 
 		}
+		//第一种方式预警(雨量表数据)
 		else {
 			//当前时间
 			String times = time;
 
+			//一个小时前的时间
 			String dateEnd1 = dateEnds1;
 
-			String timess=timei;
+			//两个小时前的时间
+			String dateEnd2 =dateEnds2;
 
 			//三个小时前的时间
 			String dateEnd3 =dateEnds3;
 
-			//六个小时前的时间
-			String dateEnd6 =dateEnds6;
-
-			//二十四个小时前的时间
-			String dateEnd24 =dateEnds24;
-
-			//对应雨量站
-			List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfo(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess);
-			List<Map<String, Object>> lists = new ArrayList<>();
-			for (int i = 0; i < mountainrainsCVOS.size(); i++) {
-				Map<String, Object> map = new HashMap<String, Object>();
-				int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
-					mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
-				/*if(Max==0){
-					continue;
-				}*/
-				map.put("List", mountainrainsCVOS.get(i));
-				map.put("Max", Max);
-				lists.add(map);
+			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, Integer>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
+		    List list1= new ArrayList();
+		    List list2= new ArrayList();
+		    List list3= new ArrayList();
+			for (int i=0;i<list.size();i++){
+				if (list.get(i).get("drp1")>=30){
+						list1.add(list.get(i));
+				}
+				if (list.get(i).get("drp2")>=50) {
+					list2.add(list.get(i));
+				}
+				if (list.get(i).get("drp3")>=80) {
+					list3.add(list.get(i));
+				}
 
 			}
-			return R.data(lists);
+			Map map = new HashMap();
+			map.put("list1",list1);
+			map.put("list2",list2);
+			map.put("list2",list3);
+			return R.data(map);
 		}
 
 	}
 
+	/**
+	 * 土壤湿度计算
+	 * @return
+	 */
+	@Scheduled(cron = "0 0 8 * * ?")
+	@GetMapping("/soleval")
+	public R soleval() {
+		SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd 08:00:00" );
+		Date today = new Date();
+		String endDate = sdf .format( today ); //当前日期
+		//获取三十天前日期
+		Calendar theCa = Calendar. getInstance ();
+		theCa .setTime( today );
+		theCa .add( theCa . DATE , -30); //最后一个数字30可改,30天的意思
+		Date start = theCa .getTime();
+		String startDate = sdf .format( start ); //三十天之前日期
+		String s = mountainrainService.selectCode();
+		String[] split = s.split(",");
+		String strArrays = "";
+		Integer num=60;
+		for (int i = 0; i < split.length; i++) {
+			strArrays += "'" + split[i] + "',";
+		}
+		String code = strArrays.substring(0, strArrays.length() - 1);
+		mountainrainService.soildel();
+		List<Map<String, Object>> list = mountainrainService.selectMtwo(startDate, endDate, code);
+		for (int i=0;i<list.size();i++){ ;
+			BigDecimal w = (BigDecimal) list.get(i).get("drp");
+			double drp = w.doubleValue();
+			String stcd = list.get(i).get("STCD").toString();
+			//计算湿度
+			double v = (num + drp) * 0.85;
+			if (v>60){
+				mountainrainService.soleInster(stcd,"60");
+			}
+			else {
+				String a= String.valueOf(v);
+				mountainrainService.soleInster(stcd,a);
+			}
+		}
+		return R.success("成功");
+	}
+
 
 }
 

--
Gitblit v1.9.3