/** * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). *

* 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 *

* http://www.apache.org/licenses/LICENSE-2.0 *

* 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 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> 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> 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); } } }