tangzy
2021-11-09 39caebba35fc84824f5cd51d189fe322d5145803
src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -55,6 +55,7 @@
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -759,64 +760,71 @@
   }
//   /**
//    * 土壤湿度计算
//    *
//    * @return
//    */
//   @GetMapping("/soleval")
//   public R soleval() {
   /**
    * 土壤湿度计算
    *
    * @return
    */
   @GetMapping("/soleval")
   public R soleval(String time, int b) {
      //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      //String dateNow = sdf.format(new Date());
      String dateNow = time;
//      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 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) {
//               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("成功");
//   }
      int intervals = 32 + b;
      ArrayList passDaysList = new ArrayList<>();
      for (int i = 1 + b; i < intervals; i++) {
         passDaysList.add(getDays(i, 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.success("成功");
   }
   public static double formatDouble1(double d) {
      return (double) Math.round(d * 10) / 10;
@@ -973,7 +981,7 @@
    * @return
    */
   @GetMapping("/selectsmriver")
   public R selectsmriver(String time) {
   public R selectsmriver(String time) throws ParseException {
      Date date = null;
      // 把Date按照格式转换成字符串
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -983,7 +991,13 @@
         e.printStackTrace();
      }
      String dateEnd = sdf.format(date);
      List<Map<String, Object>> selctsmriver = mountainrainService.selctsmriver(time, dateEnd);
      DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      Date datess = sdfc.parse(time);
      String now = sdfc.format(datess);
      //当前时间的前24小时
      Date beforeHour1 = beforeHourToNowDate(now, 24);
      String begintime24 = sdf.format(beforeHour1);
      List<Map<String, Object>> selctsmriver = mountainrainService.selctsmriver(time, dateEnd, begintime24);
      //预警数据
      List listyj = new ArrayList();
      //无预警数据
@@ -1016,7 +1030,7 @@
    * @return
    */
   @GetMapping("/selectbgriver")
   public R selectbgriver(String time) {
   public R selectbgriver(String time) throws ParseException {
      Date date = null;
      // 把Date按照格式转换成字符串
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -1026,7 +1040,13 @@
         e.printStackTrace();
      }
      String dateEnd = sdf.format(date);
      List<Map<String, Object>> selctsmriver = mountainrainService.selctbgriver(time, dateEnd);
      DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      Date datess = sdfc.parse(time);
      String now = sdfc.format(datess);
      //当前时间的前24小时
      Date beforeHour1 = beforeHourToNowDate(now, 24);
      String begintime24 = sdf.format(beforeHour1);
      List<Map<String, Object>> selctsmriver = mountainrainService.selctbgriver(time, dateEnd, begintime24);
      //预警数据
      List listyj = new ArrayList();
      //无预警数据
@@ -1135,16 +1155,23 @@
         String times = time;
         String dateEnd1 = dateEnds1;
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Date date = null;
         try {
            date = sdf.parse(time);
         } catch (ParseException e) {
            e.printStackTrace();
         }
         String stime = sdf.format(date);
         //对应雨量站
         String s = mountainrainService.selectCode();
         String[] split = s.split(",");
         String strArrays = "";
         for (int i = 0; i < split.length; i++) {
            System.out.println(split.length);
            strArrays += "'" + split[i] + "',";
         }
         String code = strArrays.substring(0, strArrays.length() - 1);
         List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainYi(times, dateEnd1, code);
         List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainYi(times, dateEnd1, code, stime);
         List<Map<String, Object>> lists = new ArrayList<>();
         for (int i = 0; i < mountainrainsCVOS.size(); i++) {
            if (mountainrainsCVOS.get(i).getCenconding() == null) {
@@ -1192,6 +1219,14 @@
            }
         }
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         lists.add(m);
         Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
         //色斑图
         String file = "";
         // 第一步,创建一个webbook,对应一个Excel文件
@@ -1247,10 +1282,6 @@
            e.printStackTrace();
         }
         Process proc;
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         String[] args1 = new String[]{"python", "D:\\fz\\mou.py", String.valueOf(url)};
         try {
            proc = Runtime.getRuntime().exec(args1);
@@ -1266,7 +1297,9 @@
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         lists.add(m);
            }
         });
         thread.start();
         return R.data(lists);
      }
@@ -1303,6 +1336,14 @@
            map.put("List", list.get(i));
            lists.add(map);
         }
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         lists.add(m);
         Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
         String fileName = "";
         // 第一步,创建一个webbook,对应一个Excel文件
         HSSFWorkbook wb = new HSSFWorkbook();
@@ -1346,10 +1387,6 @@
            e.printStackTrace();
         }
         Process proc;
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         String[] args1 = new String[]{"python", "D:\\fz\\moup.py", String.valueOf(url)};
         try {
            proc = Runtime.getRuntime().exec(args1);
@@ -1365,7 +1402,9 @@
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         lists.add(m);
            }
         });
         thread.start();
         return R.data(lists);
      }
@@ -1383,7 +1422,14 @@
         //2个小时前的时间
         String dateEnd2 = dateEnds2;
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Date date = null;
         try {
            date = sdf.parse(time);
         } catch (ParseException e) {
            e.printStackTrace();
         }
         String stime = sdf.format(date);
         //对应雨量站
         String s = mountainrainService.selectCode();
         String[] split = s.split(",");
@@ -1392,7 +1438,7 @@
            strArrays += "'" + split[i] + "',";
         }
         String code = strArrays.substring(0, strArrays.length() - 1);
         List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainYi(times, dateEnd2, code);
         List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainTw(times, dateEnd2, code, stime);
         List<Map<String, Object>> lists = new ArrayList<>();
         for (int i = 0; i < mountainrainsCVOS.size(); i++) {
            if (mountainrainsCVOS.get(i).getCenconding() == null) {
@@ -1456,6 +1502,14 @@
            }
         }
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         lists.add(m);
         Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
         //色斑图
         String file = "";
         // 第一步,创建一个webbook,对应一个Excel文件
@@ -1517,10 +1571,6 @@
            e.printStackTrace();
         }
         Process proc;
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         String[] args1 = new String[]{"python", "D:\\fz\\mou.py", String.valueOf(url)};
         try {
            proc = Runtime.getRuntime().exec(args1);
@@ -1536,7 +1586,9 @@
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         lists.add(m);
            }
         });
         thread.start();
         return R.data(lists);
      }
@@ -1572,6 +1624,14 @@
            map.put("List", list.get(i));
            lists.add(map);
         }
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         lists.add(m);
         Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
         String fileName = "";
         // 第一步,创建一个webbook,对应一个Excel文件
         HSSFWorkbook wb = new HSSFWorkbook();
@@ -1634,7 +1694,9 @@
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         lists.add(m);
            }
         });
         thread.start();
         return R.data(lists);
      }
@@ -1653,7 +1715,14 @@
         //2个小时前的时间
         String dateEnd3 = dateEnds3;
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Date date = null;
         try {
            date = sdf.parse(time);
         } catch (ParseException e) {
            e.printStackTrace();
         }
         String stime = sdf.format(date);
         //对应雨量站
         String s = mountainrainService.selectCode();
         String[] split = s.split(",");
@@ -1662,7 +1731,7 @@
            strArrays += "'" + split[i] + "',";
         }
         String code = strArrays.substring(0, strArrays.length() - 1);
         List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainTr(times, dateEnd3, code);
         List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.MountainTr(times, dateEnd3, code, stime);
         List<Map<String, Object>> lists = new ArrayList<>();
         for (int i = 0; i < mountainrainsCVOS.size(); i++) {
            if (mountainrainsCVOS.get(i).getCenconding() == null) {
@@ -1710,6 +1779,14 @@
            }
         }
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         lists.add(m);
         Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
         //色斑图
         String file = "";
         // 第一步,创建一个webbook,对应一个Excel文件
@@ -1765,10 +1842,6 @@
            e.printStackTrace();
         }
         Process proc;
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         String[] args1 = new String[]{"python", "D:\\fz\\mou.py", String.valueOf(url)};
         try {
            proc = Runtime.getRuntime().exec(args1);
@@ -1784,7 +1857,9 @@
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         lists.add(m);
            }
         });
         thread.start();
         return R.data(lists);
      }
@@ -1820,6 +1895,14 @@
            map.put("List", list.get(i));
            lists.add(map);
         }
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         lists.add(m);
         Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
         String fileName = "";
         // 第一步,创建一个webbook,对应一个Excel文件
         HSSFWorkbook wb = new HSSFWorkbook();
@@ -1864,10 +1947,6 @@
            e.printStackTrace();
         }
         Process proc;
         Timestamp timestamp = new Timestamp(System.currentTimeMillis());
         long url = timestamp.getTime();
         Map m = new HashMap();
         m.put("url", url + ".png");
         String[] args1 = new String[]{"python", "D:\\fz\\moup.py", String.valueOf(url)};
         try {
            proc = Runtime.getRuntime().exec(args1);
@@ -1883,7 +1962,9 @@
         } catch (InterruptedException e) {
            e.printStackTrace();
         }
         lists.add(m);
            }
         });
         thread.start();
         return R.data(lists);
      }
@@ -1894,7 +1975,7 @@
    */
   @GetMapping("/selectS")
   public R selectS(String time) {
      List<Map<String, Object>> list = mountainrainService.selectS();
      List<Map<String, Object>> list = mountainrainService.selectS(time);
      String fileName = "";
      // 第一步,创建一个webbook,对应一个Excel文件
      HSSFWorkbook wb = new HSSFWorkbook();
@@ -1998,6 +2079,16 @@
      return R.data(m);
   }
   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);
      } catch (Exception e) {
         e.printStackTrace();
      }
      return c.getTime();
   }
}