|
@@ -1,10 +1,17 @@
|
|
|
package com.jiayue.ipp.idp.controller;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.io.IoUtil;
|
|
|
+import cn.hutool.poi.excel.ExcelReader;
|
|
|
+import cn.hutool.poi.excel.ExcelUtil;
|
|
|
+import cn.hutool.poi.excel.ExcelWriter;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.jiayue.ipp.common.data.entity.ElectricField;
|
|
|
import com.jiayue.ipp.common.data.entity.WindTurbineInfo;
|
|
|
+import com.jiayue.ipp.common.data.entity.WindTurbineStatusData;
|
|
|
import com.jiayue.ipp.idp.service.ElectricFieldService;
|
|
|
import com.jiayue.ipp.idp.service.WindTurbineInfoService;
|
|
|
import com.jiayue.ipp.idp.util.R;
|
|
@@ -12,10 +19,22 @@ import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.poi.hssf.usermodel.HSSFRow;
|
|
|
+import org.apache.poi.ss.format.CellFormat;
|
|
|
+import org.apache.poi.ss.usermodel.*;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
+import javax.servlet.ServletOutputStream;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.InputStream;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.net.URLEncoder;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -206,4 +225,81 @@ public class WindTurbineInfoController {
|
|
|
List<WindTurbineInfo> windTurbineInfoList = windTurbineInfoService.list(wrapper);
|
|
|
return R.ok(windTurbineInfoList);
|
|
|
}
|
|
|
+
|
|
|
+ @GetMapping(value = {"/exportTemplateEvent" })
|
|
|
+ public R exportTemplateEvent(HttpServletResponse response) {
|
|
|
+ try {
|
|
|
+ ExcelWriter writer = ExcelUtil.getWriter(true);
|
|
|
+ writer.renameSheet(0, "风机信息");
|
|
|
+ List<String> headFieldName = Arrays.asList("场站编号","设备编号","风机名称","经度","纬度","制造商","型号","安装时间(yyyy-MM-dd)","并网日期(yyyy-MM-dd)","是否样板(1=>是,0=>否)","是否上报(1=>是,0=>否)","入库时间间隔(1=>1分钟,5=>5分钟)","风机等级(整型数值)","设计空气密度(数值)","切入速度(数值)","额定风速(数值)","切出速度(数值)","生存风速(数值)","叶轮直径(数值)","最大转速(数值)","最小转速(数值)","额定转速(数值)","轮毂高度(数值)","使用寿命(数值)","最大功率(数值)","集电线路","分期");
|
|
|
+ List<List<String>> rowHeather = CollUtil.newArrayList();
|
|
|
+ rowHeather.add(headFieldName);
|
|
|
+ writer.write(rowHeather, true);
|
|
|
+ String fileName = "风机信息"+ ".xlsx";
|
|
|
+ response.setContentType("application/x-msdownload;charset=utf-8");
|
|
|
+ response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));
|
|
|
+ ServletOutputStream out = null;
|
|
|
+ out = response.getOutputStream();
|
|
|
+ writer.flush(out, true);
|
|
|
+ // 关闭writer,释放内存
|
|
|
+ writer.close();
|
|
|
+ //此处记得关闭输出Servlet流
|
|
|
+ IoUtil.close(out);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 上传升级文件
|
|
|
+ */
|
|
|
+ @PostMapping(value = "/uploadFjTemplate")
|
|
|
+ public R uploadFjTemplate(@RequestParam(value="file") MultipartFile file){
|
|
|
+ try (InputStream inputStream = file.getInputStream()) {
|
|
|
+ ExcelReader excelReader = ExcelUtil.getReader(inputStream, 0);
|
|
|
+ List<List<Object>> read = excelReader.read(1, excelReader.getRowCount());
|
|
|
+ List<WindTurbineInfo> list = new ArrayList<>();
|
|
|
+ for (List<Object> objects : read) {
|
|
|
+ WindTurbineInfo windTurbineInfo = new WindTurbineInfo();
|
|
|
+ // 读取某行第一列数据
|
|
|
+ windTurbineInfo.setStationCode(objects.get(0).toString());
|
|
|
+ // 读取某行第二列数据
|
|
|
+ windTurbineInfo.setEquipmentNo(objects.get(1).toString());
|
|
|
+ windTurbineInfo.setName(objects.get(2).toString());
|
|
|
+ windTurbineInfo.setLongitude(new BigDecimal(objects.get(3).toString()));
|
|
|
+ windTurbineInfo.setLatitude(new BigDecimal(objects.get(4).toString()));
|
|
|
+ windTurbineInfo.setManufacturer(objects.get(5).toString());
|
|
|
+ windTurbineInfo.setModelNumber(objects.get(6).toString());
|
|
|
+ windTurbineInfo.setInstallationTime(DateUtil.parse(objects.get(7).toString(),"yyyy-MM-dd"));
|
|
|
+ windTurbineInfo.setParallelInDate(DateUtil.parse(objects.get(8).toString(),"yyyy-MM-dd"));
|
|
|
+ windTurbineInfo.setSample(objects.get(9).toString());
|
|
|
+ windTurbineInfo.setReport(objects.get(10).toString());
|
|
|
+ windTurbineInfo.setTimeInterval(Integer.parseInt(objects.get(11).toString()));
|
|
|
+ windTurbineInfo.setGrade(Integer.parseInt(objects.get(12).toString()));
|
|
|
+ windTurbineInfo.setAirDensity(new BigDecimal(objects.get(13).toString()));
|
|
|
+ windTurbineInfo.setCutInSpeed(new BigDecimal(objects.get(14).toString()));
|
|
|
+ windTurbineInfo.setRatedWindSpeed(new BigDecimal(objects.get(15).toString()));
|
|
|
+ windTurbineInfo.setCutOutSpeed(new BigDecimal(objects.get(16).toString()));
|
|
|
+ windTurbineInfo.setLiveWindSpeed(new BigDecimal(objects.get(17).toString()));
|
|
|
+ windTurbineInfo.setWindWheelDiameter(new BigDecimal(objects.get(18).toString()));
|
|
|
+ windTurbineInfo.setWindWheelMaxSpeed(new BigDecimal(objects.get(19).toString()));
|
|
|
+ windTurbineInfo.setWindWheelMinSpeed(new BigDecimal(objects.get(20).toString()));
|
|
|
+ windTurbineInfo.setWindWheelRatedSpeed(new BigDecimal(objects.get(21).toString()));
|
|
|
+ windTurbineInfo.setHubHeight(new BigDecimal(objects.get(22).toString()));
|
|
|
+ windTurbineInfo.setLifeLength(new BigDecimal(objects.get(23).toString()));
|
|
|
+ windTurbineInfo.setMaxPower(new BigDecimal(objects.get(24).toString()));
|
|
|
+ windTurbineInfo.setCollectorCircuit(objects.get(25).toString());
|
|
|
+ windTurbineInfo.setDivideIntoDifferentPeriod(objects.get(26).toString());
|
|
|
+ list.add(windTurbineInfo);
|
|
|
+ }
|
|
|
+ windTurbineInfoService.saveBatch(list);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error("导入风机信息文件失败",e);
|
|
|
+ return R.failed("导入风机信息文件失败");
|
|
|
+ }
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
}
|