报表导出

This commit is contained in:
2022-06-28 21:00:49 +08:00
parent d929fd22a5
commit 76747b5553
8 changed files with 403 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
@@ -14,6 +15,7 @@ import com.njcn.harmonic.pojo.vo.*;
import com.njcn.harmonic.service.IAnalyzeService;
import com.njcn.harmonic.service.IHarmonicService;
import com.njcn.harmonic.service.IPollutionService;
import com.njcn.poi.util.PoiUtil;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -21,11 +23,9 @@ import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -191,4 +191,32 @@ public class AnalyzeController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, IAnalyzeService.exportArea(param,methodDescribe), methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/exportHarmonicSubstation")
@ApiOperation("告警变电站明细导出")
@ApiImplicitParam(name = "param", value = "查询参数", required = true)
public HttpResult<String> exportHarmonicSubstation(@Validated @RequestBody OverAreaVO param) {
String methodDescribe = getMethodDescribe("exportHarmonicSubstation");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, IAnalyzeService.exportSubstation(param,methodDescribe), methodDescribe);
}
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/exportHarmonicMonitor")
@ApiOperation("监测点超标统计导出")
@ApiImplicitParam(name = "param", value = "查询参数", required = true)
public HttpResult<String> exportHarmonicMonitor(@Validated @RequestBody OverAreaVO param) {
String methodDescribe = getMethodDescribe("exportHarmonicMonitor");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, IAnalyzeService.exportMonitor(param,methodDescribe), methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DOWNLOAD)
@GetMapping("/exportDataExcel")
@ApiOperation("导出数据报表")
@ApiImplicitParam(name = "filePath", value = "报表路径", required = true)
public void exportDataExcel(String filePath, HttpServletResponse response) {
PoiUtil.exportFileByAbsolutePath(filePath,response);
}
}

View File

@@ -46,7 +46,33 @@ public interface IAnalyzeService {
*/
Page<MonitorOverLimitVO> monitorOverLimitVO(OverAreaVO param);
/**
* 功能描述: 获取下载地址
* @author xy
* @param param 参数
* @param methodDescribe 方法描述
* @date 2022/6/28 20:54
* @return 地址
*/
String exportArea(OverAreaVO param, String methodDescribe);
/**
* 功能描述: 获取下载地址
* @author xy
* @param param 参数
* @param methodDescribe 方法描述
* @date 2022/6/28 20:54
* @return 地址
*/
String exportSubstation(OverAreaVO param, String methodDescribe);
/**
* 功能描述: 获取下载地址
* @author xy
* @param param 参数
* @param methodDescribe 方法描述
* @date 2022/6/28 20:54
* @return 地址
*/
String exportMonitor(OverAreaVO param, String methodDescribe);
}

View File

@@ -15,6 +15,11 @@ import com.njcn.device.pojo.dto.PollutionParamDTO;
import com.njcn.device.pojo.dto.WarningSubstationDTO;
import com.njcn.harmonic.constant.Param;
import com.njcn.harmonic.pojo.excel.area.AreaExcel;
import com.njcn.harmonic.pojo.excel.monitor.ITimes;
import com.njcn.harmonic.pojo.excel.monitor.MonitorExcel;
import com.njcn.harmonic.pojo.excel.monitor.OverLimitDays;
import com.njcn.harmonic.pojo.excel.monitor.UTimes;
import com.njcn.harmonic.pojo.excel.substation.SubstationExcel;
import com.njcn.harmonic.pojo.po.EventDetail;
import com.njcn.harmonic.pojo.po.LimitRate;
import com.njcn.harmonic.pojo.po.LimitTarget;
@@ -147,6 +152,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
LimitRate limitRate = map.get(item2).get(0);
if (!Objects.isNull(limitRate)){
onlineMonitorCount++;
System.out.println("1==:" + limitRate.getFreqDevOverTime());
System.out.println("2==:" + limitRate.getVoltageDevOverTime());
if (limitRate.getFreqDevOverTime() > 0 || limitRate.getVoltageDevOverTime() > 0 || limitRate.getUBalanceOverTime() > 0 || limitRate.getFlickerOverTime() > 0 || limitRate.getINegOverTime() > 0 || limitRate.getUHarm2OverTime() > 0 || limitRate.getIHarm2OverTime() > 0 || limitRate.getInuHarm1OverTime() > 0){
alertMonitorCount++;
}
@@ -441,6 +448,64 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
return FileUtil.getAbsolutePath(excel);
}
@Override
public String exportSubstation(OverAreaVO param, String methodDescribe) {
List<SubstationExcel> result = new ArrayList<>();
String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime()+ CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() +".xlsx";
String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex();
log.error("文件路径" + targetDir);
log.error("文件名" + fileName);
File excel = new File(targetDir, fileName);
List<WarningSubstationVO> list = getWarningSubstation(param).getRecords();
if (!CollectionUtil.isEmpty(list)) {
list.forEach(item->{
SubstationExcel substationExcel = new SubstationExcel();
BeanUtil.copyProperties(item,substationExcel);
result.add(substationExcel);
});
}
ExcelUtil.exportExcelWithTargetFile(excel, param.getStatisticalType().getName(), methodDescribe, SubstationExcel.class, result);
return FileUtil.getAbsolutePath(excel);
}
@Override
public String exportMonitor(OverAreaVO param, String methodDescribe) {
List<MonitorExcel> result = new ArrayList<>();
String fileName = methodDescribe + CharUtil.UNDERLINE + param.getSearchBeginTime()+ CharUtil.DASHED + param.getSearchEndTime() + CharUtil.UNDERLINE + param.getStatisticalType().getName() +".xlsx";
String targetDir = generalInfo.getBusinessTempPath() + File.separator + RequestUtil.getUserIndex();
log.error("文件路径" + targetDir);
log.error("文件名" + fileName);
File excel = new File(targetDir, fileName);
List<MonitorOverLimitVO> list = monitorOverLimitVO(param).getRecords();
if (!CollectionUtil.isEmpty(list)) {
list.forEach(item->{
MonitorExcel monitorExcel = new MonitorExcel();
BeanUtil.copyProperties(item,monitorExcel);
OverLimitDays overLimitDays = new OverLimitDays();
List<UTimes> list1 = new ArrayList<>();
UTimes uTimes = new UTimes();
BeanUtil.copyProperties(item,uTimes);
list1.add(uTimes);
overLimitDays.setUTimes(list1);
List<ITimes> list2 = new ArrayList<>();
ITimes iTimes = new ITimes();
BeanUtil.copyProperties(item,iTimes);
list2.add(iTimes);
overLimitDays.setITimes(list2);
List<OverLimitDays> list3 = new ArrayList<>();
BeanUtil.copyProperties(item,overLimitDays);
list3.add(overLimitDays);
monitorExcel.setOverLimitDays(list3);
result.add(monitorExcel);
});
}
ExcelUtil.exportExcelWithTargetFile(excel, param.getStatisticalType().getName(), methodDescribe, MonitorExcel.class, result);
return FileUtil.getAbsolutePath(excel);
}
/**
* 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比