tangzy
2022-07-21 a98b1db4392c357304036e8b3cdd01646920300d
src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java
@@ -19,6 +19,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jodd.io.PathUtil;
import liquibase.pro.packaged.S;
import lombok.AllArgsConstructor;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -31,12 +32,14 @@
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.python.antlr.ast.Str;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.log.annotation.ApiLog;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.api.R;
import org.springblade.modules.mountainrain.entity.Yucbig;
import org.springblade.modules.mountainrain.service.IBigriverService;
import org.springblade.modules.mountainrain.vo.BigriverVO;
import org.springblade.modules.mountainrain.wrapper.BigriverWrapper;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@@ -48,7 +51,11 @@
import javax.validation.Valid;
import java.awt.image.BufferedImage;
import java.io.*;
import java.math.BigDecimal;
import java.security.MessageDigest;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -167,17 +174,16 @@
         String ftimes = sheet.getRow(1).getCell(11).getStringCellValue();
         String substring = ftimes.substring(5, ftimes.length());
         String year = substring.substring(0, substring.lastIndexOf("年"));
         String yues = substring.substring(substring.indexOf("年")+1, substring.lastIndexOf("月"));
         String yues = substring.substring(substring.indexOf("年") + 1, substring.lastIndexOf("月"));
         String yue;
         if (yues.length()==1){
             yue=0+yues;
         if (yues.length() == 1) {
            yue = 0 + yues;
         } else {
            yue = yues;
         }
         else {
             yue=yues;
         }
         String r = substring.substring(substring.indexOf("月")+1, substring.lastIndexOf("日"));
         String ms = substring.substring(substring.indexOf("日")+1, substring.lastIndexOf("时"));
         String ftime=year+"-"+yue+"-"+r+" "+ms+":00:00";
         String r = substring.substring(substring.indexOf("月") + 1, substring.lastIndexOf("日"));
         String ms = substring.substring(substring.indexOf("日") + 1, substring.lastIndexOf("时"));
         String ftime = year + "-" + yue + "-" + r + " " + ms + ":00:00";
         //河名
         String river = sheet.getRow(4).getCell(0).getStringCellValue();
         //站点名称
@@ -199,13 +205,12 @@
         String ytimes = sheet.getRow(4).getCell(12).getStringCellValue();
         String[] split = ytimes.split(",");
         String a;
         if (split[0].length()==1){
            a=0+yues;
         if (split[0].length() == 1) {
            a = 0 + yues;
         } else {
            a = yues;
         }
         else {
            a=yues;
         }
         String ytime=year+"-"+a+"-"+split[1]+" "+split[2]+":00:00";
         String ytime = year + "-" + a + "-" + split[1] + " " + split[2] + ":00:00";
         //预测水位
         String yuz = sheet.getRow(4).getCell(13).getStringCellValue();
         //预警流量
@@ -216,7 +221,7 @@
         String dbi = sheet.getRow(4).getCell(16).getStringCellValue();
         //起涨水位
         String qzsw = sheet.getRow(4).getCell(8).getStringCellValue();
         Yucbig yucbig=new Yucbig();
         Yucbig yucbig = new Yucbig();
         yucbig.setStcd(stcd);
         yucbig.setStname(stnames);
         yucbig.setRiver(river);
@@ -245,12 +250,13 @@
   /**
    * 主要河流导出预警模板
    *
    * @param emp01
    * @throws IOException
    * @throws InvalidFormatException
    */
   @PostMapping("createEmpExcel")
   public  void createEmpExcel(@RequestBody Map<String, Object> emp01) throws IOException, InvalidFormatException {
   public void createEmpExcel(@RequestBody Map<String, Object> emp01) throws IOException, InvalidFormatException {
      // import為需要導入的EXCEL模板,exportFilePath為生成的員工EXCEL文件
      String importFilePath = "D://excel//temple.xls";
      //String exportFilePath = "D:\\Excel";
@@ -302,42 +308,187 @@
      CellRangeAddress regions = new CellRangeAddress(5, 6, 3, 16);
      sheet.addMergedRegion(regions);
      //发布时间
      sheet.getRow(1).getCell(11).setCellValue("发布时间:"+emp01.get("ftime").toString());
      sheet.getRow(1).getCell(11).setCellValue("发布时间:" + emp01.get("ftime").toString());
      CellRangeAddress regionf = new CellRangeAddress(1, 1, 11, 16);
      sheet.addMergedRegion(regionf);
      FileOutputStream out = new FileOutputStream( "D://Software//nginx-1.20.0//dist//fzswz//excel//主要河流预警.xls");
      FileOutputStream out = new FileOutputStream("D://Software//nginx-1.20.0//dist//fzswz//excel//主要河流预警.xls");
      //FileOutputStream out = new FileOutputStream("D://Temp//主要河流预警.xls");
      wb.write(out);
      out.close();
   }
   /***
    * MD5加码 生成32位md5码
   /**
    * 大江大河预报库读取
    *
    * @return
    */
   public static String string2MD5(String inStr) {
      MessageDigest md5 = null;
      try {
         md5 = MessageDigest.getInstance("MD5");
      } catch (Exception e) {
         System.out.println(e.toString());
         e.printStackTrace();
         return "";
   @GetMapping("/selectYb")
   public R selectYb(String time) throws ParseException {
      //预警数据
      List listyj = new ArrayList();
      //无预警数据
      List listzc = new ArrayList();
      Map mnum = new HashMap();
      String s = iBigriverService.selectCode();
      String[] split = s.split(",");
      String strArrays = "";
      for (int i = 0; i < split.length; i++) {
         strArrays += "'" + split[i] + "',";
      }
      char[] charArray = inStr.toCharArray();
      byte[] byteArray = new byte[charArray.length];
      for (int i = 0; i < charArray.length; i++)
         byteArray[i] = (byte) charArray[i];
      byte[] md5Bytes = md5.digest(byteArray);
      StringBuffer hexValue = new StringBuffer();
      for (int i = 0; i < md5Bytes.length; i++) {
         int val = ((int) md5Bytes[i]) & 0xff;
         if (val < 16)
            hexValue.append("0");
         hexValue.append(Integer.toHexString(val));
      String code = strArrays.substring(0, strArrays.length() - 1);
      String substrings = time.substring(0, 10);
      String ftimez = substrings + " 08:00:00";
      List<BigriverVO> list = iBigriverService.selectYb(ftimez, code);
      for (int i = 0; i < list.size(); i++) {
         String stcd = list.get(i).getStcd();
         String ftime = list.get(i).getFtime();
         String substring = ftime.substring(0, 13);
         String times = substring + ":00:00";
         String endTime = times;
         Date dates = beforeHourToNowDate(time, 1);
         DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
         String beginTime = sdfc.format(dates);
         List<Map<String, Object>> list1 = iBigriverService.selecF(stcd, times, beginTime, endTime);
         for (int c = 0; c < list1.size(); c++) {
            list.get(i).setFbsw(list1.get(c).get("fbsw").toString());
            list.get(i).setFbll(list1.get(c).get("fbll").toString());
            list.get(i).setQzll(list1.get(c).get("qzll").toString());
            list.get(i).setQztime(list1.get(c).get("qztime").toString());
            list.get(i).setQzsw(list1.get(c).get("qzsw").toString());
         }
      }
      return hexValue.toString();
      for (int i = 0; i < list.size(); i++) {
         String yjsw = list.get(i).getYjsw();
         Double yjz = Double.parseDouble(yjsw);
         BigDecimal ybsws = list.get(i).getYbsw();
         Double ybsw = ybsws.doubleValue();
         if (ybsw > yjz) {
            if (mnum.containsKey(list.get(i).getStcd()) == true) {
            } else {
               mnum.put(list.get(i).getStcd(), i);
               listyj.add(list.get(i));
            }
         } else {
            if (mnum.containsKey(list.get(i).getStcd()) == true) {
            } else {
               mnum.put(list.get(i).getStcd(), i);
               listzc.add(list.get(i));
            }
         }
      }
      Map map = new HashMap();
      map.put("yj", listyj);
      map.put("zc", listzc);
      List lists = new ArrayList();
      lists.add(map);
      return R.data(lists);
   }
   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);
         c.set(Calendar.DATE, c.get(Calendar.DATE) - hours);
      } catch (Exception e) {
         e.printStackTrace();
      }
      return c.getTime();
   }
   @GetMapping("/ss")
   public void ss() {
      String s = iBigriverService.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);
      System.out.println(code);
   }
   /**
    * 大江大河预报库读取
    *
    * @return
    */
   @GetMapping("/selectYbs")
   public R selectYbs(String time) throws ParseException {
      //预警数据
      List listyj = new ArrayList();
      //无预警数据
      List listzc = new ArrayList();
      Map mnum = new HashMap();
      String s = iBigriverService.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>> listz = new ArrayList<Map<String, Object>>();
      List<BigriverVO> list = iBigriverService.selectYb(time, code);
      for (int i = 0; i < list.size(); i++) {
         Map<String, Object> map = new HashMap<String, Object>();
         String stcd = list.get(i).getStcd();
         String ftime = list.get(i).getFtime();
         String substring = ftime.substring(0, 13);
         String times = substring + ":00:00";
         String endTime = times;
         Date dates = beforeHourToNowDate(time, 1);
         DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
         String beginTime = sdfc.format(dates);
         map.put("beginTime", beginTime);
         map.put("endTime", endTime);
         map.put("stcd", stcd);
         map.put("times", times);
         listz.add(map);
      }
      List<Map<String, Object>> list1 = iBigriverService.selectStation(listz);
      for (int i = 0; i < list.size(); i++) {
         for (int c = 0; c < list1.size(); c++) {
            String stcd = list.get(i).getStcd();
            String stcdz = list1.get(i).get("STCD").toString();
            if (stcd == stcdz) {
               list.get(i).setFbsw(list1.get(c).get("fbsw").toString());
               list.get(i).setFbll(list1.get(c).get("fbll").toString());
               list.get(i).setQzll(list1.get(c).get("qzll").toString());
               list.get(i).setQztime(list1.get(c).get("qztime").toString());
               list.get(i).setQzsw(list1.get(c).get("qzsw").toString());
            } else {
               continue;
            }
         }
      }
      for (int i = 0; i < list.size(); i++) {
         String yjsw = list.get(i).getYjsw();
         Double yjz = Double.parseDouble(yjsw);
         BigDecimal ybsws = list.get(i).getYbsw();
         Double ybsw = ybsws.doubleValue();
         if (ybsw > yjz) {
            if (mnum.containsKey(list.get(i).getStcd()) == true) {
            } else {
               mnum.put(list.get(i).getStcd(), i);
               listyj.add(list.get(i));
            }
         } else {
            if (mnum.containsKey(list.get(i).getStcd()) == true) {
            } else {
               mnum.put(list.get(i).getStcd(), i);
               listzc.add(list.get(i));
            }
         }
      }
      Map map = new HashMap();
      map.put("yj", listyj);
      map.put("zc", listzc);
      List lists = new ArrayList();
      lists.add(map);
      return R.data(lists);
   }
}