/**
|
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
|
* <p>
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
* <p>
|
* http://www.apache.org/licenses/LICENSE-2.0
|
* <p>
|
* Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
* limitations under the License.
|
*/
|
package org.springblade.modules.mountainrain.controller;
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
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.ss.usermodel.CellType;
|
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.entity.Yucsma;
|
import org.springblade.modules.mountainrain.excel.MgrExcel;
|
import org.springblade.modules.mountainrain.excel.MgrImporter;
|
import org.springblade.modules.mountainrain.service.IBigriverService;
|
import org.springblade.modules.mountainrain.service.ISmariverService;
|
import org.springblade.modules.mountainrain.wrapper.SmariverWrapper;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.validation.Valid;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
/**
|
* 控制器
|
*
|
* @author Blade
|
* @since 2019-11-07
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/smariver")
|
@Api(value = "", tags = "接口")
|
public class SmariverController extends BladeController {
|
|
private ISmariverService iSmariverService;
|
private IBigriverService iBigriverService;
|
/**
|
* 详情
|
*/
|
@ApiLog("详情")
|
@GetMapping("/detail")
|
@ApiOperationSupport(order = 1)
|
@ApiOperation(value = "详情", notes = "site")
|
public R<Yucsma> detail(Yucsma yucsma) {
|
Yucsma detail = iSmariverService.getOne(Condition.getQueryWrapper(yucsma));
|
return R.data(SmariverWrapper.build().entityVO(detail));
|
}
|
|
|
/**
|
* 新增
|
*/
|
@ApiLog("新增")
|
@PostMapping("/save")
|
@ApiOperationSupport(order = 4)
|
@ApiOperation(value = "新增", notes = "传入site")
|
public R save(@Valid @RequestBody Yucsma yucsma) {
|
return R.status(iSmariverService.save(yucsma));
|
}
|
|
/**
|
* 修改
|
*/
|
@ApiLog("修改")
|
@PostMapping("/update")
|
@ApiOperationSupport(order = 5)
|
@ApiOperation(value = "修改", notes = "传入site")
|
public R update(@Valid @RequestBody Yucsma yucsma) {
|
return R.status(iSmariverService.updateById(yucsma));
|
}
|
|
// /**
|
// * 中小河流预报数据导入
|
// */
|
// @PostMapping("import-mgr")
|
// public R importmgr(MultipartFile file) {
|
// MgrImporter mgrImporter = new MgrImporter(iSmariverService, false);
|
// ExcelUtil.save(file, mgrImporter, MgrExcel.class);
|
// return R.success("操作成功");
|
// }
|
|
/**
|
* 中小河流预警
|
*
|
* @return
|
*/
|
@GetMapping("/selectsmriver")
|
public R selectsmriver() {
|
List<Map<String, Object>> selctsmriver = iSmariverService.selctsmriver();
|
//预警数据
|
List listyj = new ArrayList();
|
//无预警数据
|
List listzc = new ArrayList();
|
for (int i = 0; i < selctsmriver.size(); i++) {
|
//警戒水位
|
String yjsw = selctsmriver.get(i).get("yjsw").toString();
|
Double yjz = Double.parseDouble(yjsw);
|
//水位
|
String zs = selctsmriver.get(i).get("Z").toString();
|
Double z = Double.parseDouble(zs);
|
if (z > yjz) {
|
listyj.add(selctsmriver.get(i));
|
} else {
|
listzc.add(selctsmriver.get(i));
|
}
|
}
|
Map map = new HashMap();
|
map.put("yj", listyj);
|
map.put("zc", listzc);
|
List list = new ArrayList();
|
list.add(map);
|
return R.data(list);
|
}
|
|
|
|
@PostMapping("import-mgr")
|
public void importmgr(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(8).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 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 qzsw = sheet.getRow(4).getCell(8).getStringCellValue();
|
Yucsma yucsma=new Yucsma();
|
yucsma.setStcd(stcd);
|
yucsma.setStname(stnames);
|
yucsma.setRiver(river);
|
yucsma.setFtime(ftime);
|
yucsma.setYjsw(yjsw);
|
yucsma.setYtime(ytime);
|
yucsma.setYuz(yuz);
|
yucsma.setYq(yq);
|
yucsma.setQzsw(qzsw);
|
iSmariverService.save(yucsma);
|
} else {
|
//有多少个sheet
|
int sheets = workbook.getNumberOfSheets();
|
System.out.println("其他:" + sheets);
|
}
|
}
|
}
|