| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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.*; |
| | | |
| | | /** |
| | |
| | | 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(); |
| | | //站点名称 |
| | |
| | | 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(); |
| | | //预警流量 |
| | |
| | | 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); |
| | |
| | | |
| | | /** |
| | | * 主要河流导出预警模板 |
| | | * |
| | | * @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"; |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |