区域稳态超标统计->报表下载
This commit is contained in:
@@ -2,7 +2,6 @@ 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;
|
||||
@@ -15,8 +14,6 @@ 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.user.pojo.param.UserParam;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
@@ -24,9 +21,11 @@ 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.*;
|
||||
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 javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
||||
@@ -47,5 +47,6 @@ public interface IAnalyzeService {
|
||||
Page<MonitorOverLimitVO> monitorOverLimitVO(OverAreaVO param);
|
||||
|
||||
|
||||
|
||||
String exportArea(OverAreaVO param, String methodDescribe);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.njcn.harmonic.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.CharUtil;
|
||||
import com.alibaba.nacos.shaded.com.google.common.collect.Lists;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.common.config.GeneralInfo;
|
||||
@@ -13,7 +14,7 @@ import com.njcn.device.pojo.dto.OverLimitLineDTO;
|
||||
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.dto.excel.area.AreaExcel;
|
||||
import com.njcn.harmonic.pojo.excel.area.AreaExcel;
|
||||
import com.njcn.harmonic.pojo.po.EventDetail;
|
||||
import com.njcn.harmonic.pojo.po.LimitRate;
|
||||
import com.njcn.harmonic.pojo.po.LimitTarget;
|
||||
@@ -26,6 +27,7 @@ import com.njcn.influxdb.utils.InfluxDbUtils;
|
||||
import com.njcn.poi.excel.ExcelUtil;
|
||||
import com.njcn.web.utils.RequestUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.influxdb.dto.QueryResult;
|
||||
import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -45,6 +47,7 @@ import java.util.stream.Collectors;
|
||||
* @version 1.0.0
|
||||
* @createTime 2022/4/29 14:48
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
@@ -421,8 +424,10 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
@Override
|
||||
public String exportArea(OverAreaVO param, String methodDescribe) {
|
||||
List<AreaExcel> result = new ArrayList<>();
|
||||
String fileName = methodDescribe + "_" + param.getSearchBeginTime()+ "-" + param.getSearchEndTime() + "_" + param.getStatisticalType().getName() +".xlsx";
|
||||
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<OverAreaLimitVO> list = getAreaData(param).getRecords();
|
||||
if (!CollectionUtil.isEmpty(list)) {
|
||||
@@ -488,31 +493,31 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
//超标监测点个数
|
||||
overAreaLimitVO.setOverLimitMonitorNumber(overLineCount);
|
||||
//超标监测点数占比
|
||||
overAreaLimitVO.setOverBiLi(BigDecimal.valueOf(overLineCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setOverBiLi(BigDecimal.valueOf(overLineCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
//频率偏差
|
||||
overAreaLimitVO.setFrequencyMonitorNumber(freqCount);
|
||||
overAreaLimitVO.setFrequencyBiLi(BigDecimal.valueOf(freqCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setFrequencyBiLi(BigDecimal.valueOf(freqCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
//电压偏差
|
||||
overAreaLimitVO.setVoltageMonitorNumber(voltageCount);
|
||||
overAreaLimitVO.setVoltageBiLi(BigDecimal.valueOf(voltageCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setVoltageBiLi(BigDecimal.valueOf(voltageCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
//谐波电压
|
||||
overAreaLimitVO.setHarmonicVoltageMonitorNumber(uharmCount);
|
||||
overAreaLimitVO.setHarmonicVoltageBiLi(BigDecimal.valueOf(uharmCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setHarmonicVoltageBiLi(BigDecimal.valueOf(uharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
//谐波电流
|
||||
overAreaLimitVO.setHarmonicCurrentMonitorNumber(iharmCount);
|
||||
overAreaLimitVO.setHarmonicCurrentBiLi(BigDecimal.valueOf(iharmCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setHarmonicCurrentBiLi(BigDecimal.valueOf(iharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
//三相电压不平衡度
|
||||
overAreaLimitVO.setThreePhaseVoltageMonitorNumber(ubalanceCount);
|
||||
overAreaLimitVO.setThreePhaseVoltageBiLi(BigDecimal.valueOf(ubalanceCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setThreePhaseVoltageBiLi(BigDecimal.valueOf(ubalanceCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
//闪变
|
||||
overAreaLimitVO.setFlickerMonitorNumber(flickerCount);
|
||||
overAreaLimitVO.setFlickerBiLi(BigDecimal.valueOf(flickerCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setFlickerBiLi(BigDecimal.valueOf(flickerCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
//负序电流
|
||||
overAreaLimitVO.setNegativeMonitorNumber(iNegCount);
|
||||
overAreaLimitVO.setNegativeBiLi(BigDecimal.valueOf(flickerCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setNegativeBiLi(BigDecimal.valueOf(iNegCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
//间谐波电压
|
||||
overAreaLimitVO.setInterHarmonicMonitorNumber(inuharmCount);
|
||||
overAreaLimitVO.setInterHarmonicBiLi(BigDecimal.valueOf(inuharmCount*1.0/data.size()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
overAreaLimitVO.setInterHarmonicBiLi(BigDecimal.valueOf(inuharmCount*1.0/data.size()*100).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
||||
}
|
||||
}
|
||||
Map<Instant,List<LimitTarget>> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime));
|
||||
|
||||
Reference in New Issue
Block a user