tangzy
2021-09-25 0cfec24a4eb3807acc3014b92b7e2ebc7b804f1c
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;
@@ -490,17 +493,57 @@
            }
            Map<String, Object> map = new HashMap<String, Object>();
            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);
//               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);
               //0.8雨量湿度
               if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) {
                  map.put("List", mountainrainsCVOS.get(i));
                  map.put("flage1", "true");
                  map.put("flage3", "false");
                  map.put("status", 2);
                  lists.add(map);
               } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthours()) {
                  map.put("List", mountainrainsCVOS.get(i));
                  map.put("flage1", "false");
                  map.put("flage3", "true");
                  map.put("status", 2);
                  lists.add(map);
               } else {
                  map.put("List", mountainrainsCVOS.get(i));
                  map.put("flage1", "false");
                  map.put("flage3", "false");
                  map.put("status", 2);
                  lists.add(map);
               }
            } else {
               //0.5雨量湿度
               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);
//               map.put("List", mountainrainsCVOS.get(i));
//               map.put("Max", Max);
//               lists.add(map);
               if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) {
                  map.put("List", mountainrainsCVOS.get(i));
                  map.put("flage1", "true");
                  map.put("flage3", "false");
                  map.put("status", 1);
                  lists.add(map);
               } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthour()) {
                  map.put("List", mountainrainsCVOS.get(i));
                  map.put("flage1", "false");
                  map.put("flage3", "true");
                  map.put("status", 1);
                  lists.add(map);
               } else {
                  map.put("List", mountainrainsCVOS.get(i));
                  map.put("flage1", "false");
                  map.put("flage3", "false");
                  map.put("status", 1);
                  lists.add(map);
               }
            }
         }
@@ -522,31 +565,42 @@
         String dateEnd3 = dateEnds3;
         String s = regionWeightService.selectCode();
         //String s = "62334490";
         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<Map<String, Object>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
         List<Map<String, Object>> lists = new ArrayList<>();
         Map<String, Object> map = new HashMap<String, Object>();
         for (int i = 0; i < list.size(); i++) {
            if (list.get(i).get("drp1") >= 30) {
               map.put("List", list.get(i));
               map.put("Max", 1);
            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");
            double drp2 = w2.doubleValue();
            BigDecimal w3 = (BigDecimal) list.get(i).get("drp3");
            double drp3 = w3.doubleValue();
            if (drp1 > 30) {
               map.put("flage1", "true");
            }
            if (list.get(i).get("drp2") >= 50) {
               map.put("List", list.get(i));
               map.put("Max", 2);
            if (drp2 > 50) {
               map.put("flage2", "true");
               lists.add(map);
            }
            if (list.get(i).get("drp3") >= 80) {
               map.put("List", list.get(i));
               map.put("Max", 3);
            if (drp3 > 80) {
               map.put("flage3", "true");
               lists.add(map);
            } else {
               map.put("flage1", "false");
               map.put("flage2", "false");
               map.put("flage3", "false");
               lists.add(map);
            }
            map.put("List", list.get(i));
            lists.add(map);
         }
         lists.add(map);
         return R.data(lists);
      }
@@ -557,7 +611,6 @@
    *
    * @return
    */
   //@Scheduled(cron = "0 0 8 * * ?")
   @GetMapping("/soleval")
   public R soleval() {
      mountainrainService.soildel();
@@ -568,7 +621,6 @@
      }
      Collections.sort(passDaysList);
      String s = mountainrainService.selectCode();
      //String s = "62310356,62310305";
      String[] split = s.split(",");
      String strArrays = "";
      for (int i = 0; i < split.length; i++) {
@@ -579,22 +631,28 @@
         Integer num = 30;
         double v1 = 0;
         String stcd = null;
      for (int j = 0; j < passDaysList.size() - 1; j++) {
         List<Map<String, Object>> map = mountainrainService.selectMtwo(passDaysList.get(j).toString(), passDaysList.get(j + 1).toString(), code);
         if (map.size()==0){
            continue;
         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) {
               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;
               }
            }
         }
         BigDecimal w = (BigDecimal) map.get(i).get("drp");
         double drp = w.doubleValue();
         stcd = map.get(i).get("STCD").toString();
         //计算湿度
         if (i == 0) {
            v1 = formatDouble1((num + drp) * 0.85);
         } else {
            v1 += drp;
            v1 = formatDouble1(v1 * 0.85);
         }
      }
         if (v1 > 60) {
            mountainrainService.soleInster(stcd, "60");
         } else {
@@ -623,5 +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("");
   }
}