From 39caebba35fc84824f5cd51d189fe322d5145803 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Tue, 09 Nov 2021 16:15:14 +0800
Subject: [PATCH] 1.山洪
---
src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java | 259 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 234 insertions(+), 25 deletions(-)
diff --git a/src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java b/src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java
index c13ac6e..53acc7c 100644
--- a/src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java
+++ b/src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java
@@ -15,31 +15,44 @@
*/
package org.springblade.modules.mountainrain.controller;
-import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import jodd.io.PathUtil;
import lombok.AllArgsConstructor;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springblade.core.boot.ctrl.BladeController;
-import org.springblade.core.excel.util.ExcelUtil;
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.excel.BgrExcel;
-import org.springblade.modules.mountainrain.excel.BgrImporter;
import org.springblade.modules.mountainrain.service.IBigriverService;
import org.springblade.modules.mountainrain.wrapper.BigriverWrapper;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.security.MessageDigest;
import java.util.*;
/**
- * 控制器
+ * 控制器
*
* @author Blade
* @since 2019-11-07
@@ -53,11 +66,11 @@
private IBigriverService iBigriverService;
/**
- * 详情
- */
+ * 详情
+ */
@ApiLog("详情")
@GetMapping("/detail")
- @ApiOperationSupport(order = 1)
+ @ApiOperationSupport(order = 1)
@ApiOperation(value = "详情", notes = "site")
public R<Yucbig> detail(Yucbig yucbig) {
Yucbig detail = iBigriverService.getOne(Condition.getQueryWrapper(yucbig));
@@ -66,37 +79,37 @@
/**
- * 新增
- */
+ * 新增
+ */
@ApiLog("新增")
@PostMapping("/save")
- @ApiOperationSupport(order = 4)
+ @ApiOperationSupport(order = 4)
@ApiOperation(value = "新增", notes = "传入site")
public R save(@Valid @RequestBody Yucbig yucbig) {
return R.status(iBigriverService.save(yucbig));
}
/**
- * 修改
- */
+ * 修改
+ */
@ApiLog("修改")
@PostMapping("/update")
- @ApiOperationSupport(order = 5)
+ @ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入site")
public R update(@Valid @RequestBody Yucbig yucbig) {
return R.status(iBigriverService.updateById(yucbig));
}
- /**
- * 大江大河预报数据导入
- */
- @PostMapping("import-bgr")
- public R importbgr(MultipartFile file) {
- BgrImporter bgrImporter = new BgrImporter(iBigriverService, false);
- ExcelUtil.save(file, bgrImporter, BgrExcel.class);
- return R.success("导入成功");
- }
+// /**
+// * 大江大河预报数据导入
+// */
+// @PostMapping("import-bgr")
+// public R importbgr(MultipartFile file) {
+// BgrImporter bgrImporter = new BgrImporter(iBigriverService, false);
+// ExcelUtil.save(file, bgrImporter, BgrExcel.class);
+// return R.success("导入成功");
+// }
/**
* 大江大河预警
@@ -131,4 +144,200 @@
return R.data(list);
}
+
+ @PostMapping("import-bgr")
+ public void importbgr(MultipartFile file) throws IOException, InvalidFormatException {
+ InputStream is = file.getInputStream();
+ HSSFWorkbook workbook = new HSSFWorkbook(is);
+ //确定版本
+ boolean isExcel2003 = file.getOriginalFilename().endsWith("xls") ? true : false;
+ List<Map<String, Object>> returnMap;//返回execlClass类见下
+ if (isExcel2003) { //判断版本
+ HSSFSheet sheet = workbook.getSheetAt(1);
+ sheet.getRow(4).getCell(12).setCellType(CellType.STRING);
+ sheet.getRow(4).getCell(13).setCellType(CellType.STRING);
+ sheet.getRow(4).getCell(14).setCellType(CellType.STRING);
+ sheet.getRow(4).getCell(15).setCellType(CellType.STRING);
+ sheet.getRow(4).getCell(3).setCellType(CellType.STRING);
+ sheet.getRow(4).getCell(8).setCellType(CellType.STRING);
+ sheet.getRow(4).getCell(9).setCellType(CellType.STRING);
+ sheet.getRow(4).getCell(10).setCellType(CellType.STRING);
+ sheet.getRow(4).getCell(11).setCellType(CellType.STRING);
+ //发布时间
+ 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 yue;
+ if (yues.length()==1){
+ yue=0+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 river = sheet.getRow(4).getCell(0).getStringCellValue();
+ //站点名称
+ String stnames = sheet.getRow(4).getCell(1).getStringCellValue();
+ String stcd = iBigriverService.selectINfo(stnames);
+ //降雨量
+ String drp = sheet.getRow(4).getCell(3).getStringCellValue();
+ //降雨起止时间
+ String drptime = sheet.getRow(4).getCell(4).getStringCellValue();
+ //起涨时间
+ String qztime = sheet.getRow(4).getCell(7).getStringCellValue();
+ //起涨流量
+ String qzll = sheet.getRow(4).getCell(9).getStringCellValue();
+ //发布水位
+ String fbsw = sheet.getRow(4).getCell(10).getStringCellValue();
+ //发布流量
+ String fbll = sheet.getRow(4).getCell(11).getStringCellValue();
+ //预报时间
+ String ytimes = sheet.getRow(4).getCell(12).getStringCellValue();
+ String[] split = ytimes.split(",");
+ String a;
+ if (split[0].length()==1){
+ a=0+yues;
+ }
+ else {
+ a=yues;
+ }
+ String ytime=year+"-"+a+"-"+split[1]+" "+split[2]+":00:00";
+ //预测水位
+ String yuz = sheet.getRow(4).getCell(13).getStringCellValue();
+ //预警流量
+ String yq = sheet.getRow(4).getCell(14).getStringCellValue();
+ //预警水位
+ String yjsw = sheet.getRow(4).getCell(15).getStringCellValue();
+ //预报水位与警戒水位比较
+ String dbi = sheet.getRow(4).getCell(16).getStringCellValue();
+ //起涨水位
+ String qzsw = sheet.getRow(4).getCell(8).getStringCellValue();
+ Yucbig yucbig=new Yucbig();
+ yucbig.setStcd(stcd);
+ yucbig.setStname(stnames);
+ yucbig.setRiver(river);
+ yucbig.setFtime(ftime);
+ yucbig.setYjsw(yjsw);
+ yucbig.setYtime(ytime);
+ yucbig.setYuz(yuz);
+ yucbig.setYq(yq);
+ yucbig.setQzsw(qzsw);
+ yucbig.setDrp(drp);
+ yucbig.setDrptime(drptime);
+ yucbig.setQztime(qztime);
+ yucbig.setQzsw(qzsw);
+ yucbig.setQzll(qzll);
+ yucbig.setFbsw(fbsw);
+ yucbig.setFbll(fbll);
+ yucbig.setDbi(dbi);
+ iBigriverService.save(yucbig);
+ } else {
+ //有多少个sheet
+ int sheets = workbook.getNumberOfSheets();
+ System.out.println("其他:" + sheets);
+ }
+ }
+
+
+ /**
+ * 主要河流导出预警模板
+ * @param emp01
+ * @throws IOException
+ * @throws InvalidFormatException
+ */
+ @PostMapping("createEmpExcel")
+ 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";
+
+ File fi = new File(importFilePath);
+ InputStream in = new FileInputStream(fi);
+ Workbook wb = WorkbookFactory.create(in);
+ Sheet sheet = wb.getSheetAt(1); //示意访问sheet
+// //读取excel模板
+// XSSFWorkbook wb = new XSSFWorkbook(in);
+// //读取了模板内所有sheet内容
+// XSSFSheet sheet = wb.getSheetAt(0);
+ //如果这行没有了,整个公式都不会有自动计算的效果的
+ sheet.setForceFormulaRecalculation(true);
+ //河名
+ sheet.getRow(4).getCell(0).setCellValue(emp01.get("river").toString());
+ //站名
+ sheet.getRow(4).getCell(1).setCellValue(emp01.get("stname").toString());
+ //pa
+ sheet.getRow(4).getCell(2).setCellValue(emp01.get("pa").toString());
+ //降雨量
+ sheet.getRow(4).getCell(3).setCellValue(emp01.get("drp").toString());
+ //降雨起止时间
+ sheet.getRow(4).getCell(4).setCellValue(emp01.get("drptime").toString());
+ CellRangeAddress region = new CellRangeAddress(4, 4, 4, 6);
+ sheet.addMergedRegion(region);
+ //起涨时间
+ sheet.getRow(4).getCell(7).setCellValue(emp01.get("qztime").toString());
+ //起涨水位
+ sheet.getRow(4).getCell(8).setCellValue(emp01.get("qzsw").toString());
+ //起涨流量
+ sheet.getRow(4).getCell(9).setCellValue(emp01.get("qzll").toString());
+ //发布时间水位
+ sheet.getRow(4).getCell(10).setCellValue(emp01.get("fbsw").toString());
+ //发布时间流量
+ sheet.getRow(4).getCell(11).setCellValue(emp01.get("fbll").toString());
+ //预报时间
+ sheet.getRow(4).getCell(12).setCellValue(emp01.get("ytime").toString());
+ //预报水位
+ sheet.getRow(4).getCell(13).setCellValue(emp01.get("Z").toString());
+ //预报流量
+ sheet.getRow(4).getCell(14).setCellValue(emp01.get("yq").toString());
+ //警戒水位
+ sheet.getRow(4).getCell(15).setCellValue(emp01.get("yjsw").toString());
+ //预报水位与警戒水位比较
+ sheet.getRow(4).getCell(16).setCellValue(emp01.get("dbi").toString());
+ //防洪对象
+ sheet.getRow(5).getCell(3).setCellValue(emp01.get("fh").toString());
+ CellRangeAddress regions = new CellRangeAddress(5, 6, 3, 16);
+ sheet.addMergedRegion(regions);
+ //发布时间
+ 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");
+ wb.write(out);
+ out.close();
+ }
+
+ /***
+ * MD5加码 生成32位md5码
+ */
+ 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 "";
+ }
+ 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));
+ }
+ return hexValue.toString();
+
+ }
+
+
}
--
Gitblit v1.9.3