有功功率趋势定时任务算法完善
This commit is contained in:
@@ -2,10 +2,8 @@ package com.njcn.harmonic.service.activepowerrange.impl;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.njcn.harmonic.constant.Param;
|
||||
import com.njcn.harmonic.enums.HarmonicResponseEnum;
|
||||
import com.njcn.harmonic.pojo.param.PowerStatisticsParam;
|
||||
import com.njcn.harmonic.pojo.vo.PowerStatisticsExcelRangVO;
|
||||
import com.njcn.harmonic.pojo.vo.PowerStatisticsTargetVO;
|
||||
@@ -13,10 +11,12 @@ import com.njcn.harmonic.pojo.vo.PowerStatisticsVO;
|
||||
import com.njcn.harmonic.pojo.vo.ThdDataVO;
|
||||
import com.njcn.harmonic.service.activepowerrange.PowerStatisticsService;
|
||||
import com.njcn.influx.pojo.bo.CommonQueryParam;
|
||||
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
||||
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
|
||||
import com.njcn.influx.service.CommonService;
|
||||
import com.njcn.poi.util.PoiUtil;
|
||||
import com.njcn.prepare.harmonic.api.event.RActivePowerRangeFeignClient;
|
||||
import com.njcn.prepare.harmonic.pojo.param.RActivePowerRangeParam;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RActivePowerRangePO;
|
||||
import com.njcn.system.api.EpdFeignClient;
|
||||
import com.njcn.system.pojo.po.EleEpdPqd;
|
||||
@@ -29,9 +29,8 @@ import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 有功功率趋势统计 服务实现类
|
||||
@@ -61,7 +60,7 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
|
||||
RActivePowerRangePO rActivePowerRangePO = rActivePowerRangeFeignClient.getDataByLineId(powerStatisticsParam.getLineId(),
|
||||
powerStatisticsParam.getSearchBeginTime(),powerStatisticsParam.getSearchEndTime()).getData();
|
||||
if(rActivePowerRangePO == null){
|
||||
throw new BusinessException(HarmonicResponseEnum.NO_LINE_DATA.getMessage());
|
||||
rActivePowerRangePO = new RActivePowerRangePO();
|
||||
}
|
||||
PowerStatisticsVO powerStatisticsVO = new PowerStatisticsVO();
|
||||
BeanUtils.copyProperties(rActivePowerRangePO, powerStatisticsVO);
|
||||
@@ -87,21 +86,140 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
|
||||
|
||||
@Override
|
||||
public List<PowerStatisticsTargetVO> getTargetLimitById(PowerStatisticsParam powerStatisticsParam) {
|
||||
List<PowerStatisticsTargetVO> list = new ArrayList();
|
||||
for (int i = 0; i < (int) (Math.random() * 10 + 1); i++) {
|
||||
List<PowerStatisticsTargetVO> data = new ArrayList<>();
|
||||
|
||||
RActivePowerRangeParam rActivePowerRangeParam = new RActivePowerRangeParam();
|
||||
BeanUtil.copyProperties(powerStatisticsParam, rActivePowerRangeParam);
|
||||
rActivePowerRangeParam.setSearch(true);
|
||||
//重点说明:powerStatisticsTargetVO结构(维度)为:time可能多组相同,取决于功率表data_harmpower_p中的相别及统计方式,标识每个指标是否越限,总之一句话:当前时间中八个指标是否越限及他们的相别和统计方式是什么
|
||||
//基于record结构需要做维度的转换
|
||||
List<PowerStatisticsTargetVO> record = rActivePowerRangeFeignClient.record(rActivePowerRangeParam).getData();
|
||||
//根据时间分组:
|
||||
Map<String,List<PowerStatisticsTargetVO>> map = record.stream().collect(Collectors.groupingBy(PowerStatisticsTargetVO::getTime));
|
||||
map.forEach((key, value) ->{
|
||||
PowerStatisticsTargetVO powerStatisticsTargetVO = new PowerStatisticsTargetVO();
|
||||
powerStatisticsTargetVO.setTime("2023-02-10 09:00:0" + i);
|
||||
powerStatisticsTargetVO.setVoltageOffset(1);
|
||||
powerStatisticsTargetVO.setVTimes(0);
|
||||
powerStatisticsTargetVO.setITimes(1);
|
||||
powerStatisticsTargetVO.setUbalance(1);
|
||||
powerStatisticsTargetVO.setVoltageFluctuation(0);
|
||||
powerStatisticsTargetVO.setFlicker(0);
|
||||
powerStatisticsTargetVO.setInterHarmonic(1);
|
||||
powerStatisticsTargetVO.setSequenceCurrentUnbalance(1);
|
||||
list.add(powerStatisticsTargetVO);
|
||||
}
|
||||
return list;
|
||||
powerStatisticsTargetVO.setTime(key);
|
||||
ThdDataVO thdDataVO = new ThdDataVO();
|
||||
thdDataVO.init();
|
||||
Map<String,String> voltageOffsetPV = new HashMap<>();
|
||||
Map<String,String> vTimesPV = new HashMap<>();
|
||||
Map<String,String> iTimesPV = new HashMap<>();
|
||||
Map<String,String> ubalancePV = new HashMap<>();
|
||||
Map<String,String> voltageFluctuationPV = new HashMap<>();
|
||||
Map<String,String> flickerPV = new HashMap<>();
|
||||
Map<String,String> interHarmonicPV = new HashMap<>();
|
||||
Map<String,String> sequenceCurrentUnbalancePV = new HashMap<>();
|
||||
for(PowerStatisticsTargetVO vo : value){
|
||||
if(vo.getVoltageOffset() == 1){
|
||||
powerStatisticsTargetVO.setVoltageOffset(1);
|
||||
voltageOffsetPV.put(vo.getPhasicType(),vo.getValueType());
|
||||
}
|
||||
if(vo.getVTimes() == 1){
|
||||
powerStatisticsTargetVO.setVTimes(1);
|
||||
vTimesPV.put(vo.getPhasicType(),vo.getValueType());
|
||||
}
|
||||
if(vo.getITimes() == 1){
|
||||
powerStatisticsTargetVO.setITimes(1);
|
||||
iTimesPV.put(vo.getPhasicType(),vo.getValueType());
|
||||
}
|
||||
if(vo.getUbalance() == 1){
|
||||
powerStatisticsTargetVO.setUbalance(1);
|
||||
ubalancePV.put(vo.getPhasicType(),vo.getValueType());
|
||||
}
|
||||
if(vo.getVoltageFluctuation() == 1){
|
||||
powerStatisticsTargetVO.setVoltageFluctuation(1);
|
||||
voltageFluctuationPV.put(vo.getPhasicType(),vo.getValueType());
|
||||
}
|
||||
if(vo.getFlicker() == 1){
|
||||
powerStatisticsTargetVO.setFlicker(1);
|
||||
flickerPV.put(vo.getPhasicType(),vo.getValueType());
|
||||
}
|
||||
if(vo.getInterHarmonic() == 1){
|
||||
powerStatisticsTargetVO.setInterHarmonic(1);
|
||||
interHarmonicPV.put(vo.getPhasicType(),vo.getValueType());
|
||||
}
|
||||
if(vo.getSequenceCurrentUnbalance() == 1){
|
||||
powerStatisticsTargetVO.setSequenceCurrentUnbalance(1);
|
||||
sequenceCurrentUnbalancePV.put(vo.getPhasicType(),vo.getValueType());
|
||||
}
|
||||
}
|
||||
powerStatisticsTargetVO.setVoltageOffsetList(initPV(voltageOffsetPV,"电压偏差",value.get(0).getVoltageOffsetLimit()));
|
||||
powerStatisticsTargetVO.setVTimesList(initPV(vTimesPV,"谐波电压",value.get(0).getVTimesLimit()));
|
||||
powerStatisticsTargetVO.setITimestList(initPV(iTimesPV,"谐波电流",value.get(0).getITimesLimit()));
|
||||
powerStatisticsTargetVO.setUbalanceList(initPV(ubalancePV,"三相电压不平衡度",value.get(0).getUbalanceLimit()));
|
||||
powerStatisticsTargetVO.setVoltageFluctuationList(initPV(voltageFluctuationPV,"电压波动",value.get(0).getVoltageFluctuationLimit()));
|
||||
powerStatisticsTargetVO.setFlickerList(initPV(flickerPV,"闪变",value.get(0).getFlickerLimit()));
|
||||
powerStatisticsTargetVO.setInterHarmonicList(initPV(interHarmonicPV,"间谐波电压含有率",value.get(0).getInterHarmonicLimit()));
|
||||
powerStatisticsTargetVO.setSequenceCurrentUnbalanceList(initPV(sequenceCurrentUnbalancePV,"电流不平衡度",value.get(0).getSequenceCurrentUnbalanceLimit()));
|
||||
data.add(powerStatisticsTargetVO);
|
||||
});
|
||||
return data;
|
||||
}
|
||||
|
||||
private List<ThdDataVO> initPV(Map<String,String> pv,String name,Float limit){
|
||||
List<ThdDataVO> thdDataVOS = new ArrayList<>();
|
||||
ThdDataVO tdv = new ThdDataVO();
|
||||
tdv.setAnotherName(name);
|
||||
tdv.setLimit(limit);
|
||||
tdv.init();
|
||||
pv.forEach((phasicType, valueType) ->{
|
||||
switch (valueType){
|
||||
case InfluxDBTableConstant.AVG:
|
||||
switch (valueType){
|
||||
case InfluxDBTableConstant.PHASE_TYPE_A:
|
||||
tdv.setAVGPhaseA("1");
|
||||
break;
|
||||
case InfluxDBTableConstant.PHASE_TYPE_B:
|
||||
tdv.setAVGPhaseB("1");
|
||||
break;
|
||||
case InfluxDBTableConstant.PHASE_TYPE_C:
|
||||
tdv.setAVGPhaseC("1");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case InfluxDBTableConstant.CP95:
|
||||
switch (valueType){
|
||||
case InfluxDBTableConstant.PHASE_TYPE_A:
|
||||
tdv.setCP95PhaseA("1");
|
||||
break;
|
||||
case InfluxDBTableConstant.PHASE_TYPE_B:
|
||||
tdv.setCP95PhaseB("1");
|
||||
break;
|
||||
case InfluxDBTableConstant.PHASE_TYPE_C:
|
||||
tdv.setCP95PhaseC("1");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case InfluxDBTableConstant.MIN:
|
||||
switch (valueType){
|
||||
case InfluxDBTableConstant.PHASE_TYPE_A:
|
||||
tdv.setMINPhaseA("1");
|
||||
break;
|
||||
case InfluxDBTableConstant.PHASE_TYPE_B:
|
||||
tdv.setMINPhaseB("1");
|
||||
break;
|
||||
case InfluxDBTableConstant.PHASE_TYPE_C:
|
||||
tdv.setMINPhaseC("1");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case InfluxDBTableConstant.MAX:
|
||||
switch (valueType){
|
||||
case InfluxDBTableConstant.PHASE_TYPE_A:
|
||||
tdv.setMAXPhaseA("1");
|
||||
break;
|
||||
case InfluxDBTableConstant.PHASE_TYPE_B:
|
||||
tdv.setMAXPhaseB("1");
|
||||
break;
|
||||
case InfluxDBTableConstant.PHASE_TYPE_C:
|
||||
tdv.setMAXPhaseC("1");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
thdDataVOS.add(tdv);
|
||||
return thdDataVOS;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -190,71 +308,71 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
|
||||
commonQueryParam.setLineId(powerStatisticsParam.getLineId());
|
||||
commonQueryParam.setTableName(epdPqd.getClassId());
|
||||
commonQueryParam.setColumnName(columnName == null ? epdPqd.getOtherName():columnName);
|
||||
commonQueryParam.setStartTime(powerStatisticsParam.getSearchBeginTime());
|
||||
commonQueryParam.setEndTime(powerStatisticsParam.getSearchEndTime());
|
||||
commonQueryParam.setStartTime(powerStatisticsParam.getSearchBeginTime()+Param.START_TIME);
|
||||
commonQueryParam.setEndTime(powerStatisticsParam.getSearchEndTime()+ Param.END_TIME);
|
||||
commonQueryParam.setDataType(METHODS.get(0));
|
||||
commonQueryParam.setPhasic(PHASE.get(0));
|
||||
commonQueryParams.add(commonQueryParam);
|
||||
|
||||
List<StatisticalDataDTO> deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setAVGPhaseA(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setAVGPhaseA(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(0));
|
||||
commonQueryParam.setPhasic(PHASE.get(1));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setAVGPhaseB(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setAVGPhaseB(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(0));
|
||||
commonQueryParam.setPhasic(PHASE.get(2));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setAVGPhaseC(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setAVGPhaseC(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(1));
|
||||
commonQueryParam.setPhasic(PHASE.get(0));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setCP95PhaseA(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setCP95PhaseA(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(1));
|
||||
commonQueryParam.setPhasic(PHASE.get(1));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setCP95PhaseB(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setCP95PhaseB(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(1));
|
||||
commonQueryParam.setPhasic(PHASE.get(2));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setCP95PhaseC(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setCP95PhaseC(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(2));
|
||||
commonQueryParam.setPhasic(PHASE.get(0));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMINPhaseA(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMINPhaseA(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(2));
|
||||
commonQueryParam.setPhasic(PHASE.get(1));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMINPhaseB(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMINPhaseB(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(2));
|
||||
commonQueryParam.setPhasic(PHASE.get(2));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMINPhaseC(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMINPhaseC(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(3));
|
||||
commonQueryParam.setPhasic(PHASE.get(0));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMAXPhaseA(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMAXPhaseA(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(3));
|
||||
commonQueryParam.setPhasic(PHASE.get(1));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMAXPhaseB(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMAXPhaseB(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
|
||||
commonQueryParam.setDataType(METHODS.get(3));
|
||||
commonQueryParam.setPhasic(PHASE.get(2));
|
||||
deviceRtData = commonService.getNewDeviceRtDataByTime(commonQueryParams);
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMAXPhaseC(Double.valueOf(df.format(deviceRtData.get(0).getValue())));
|
||||
if(!deviceRtData.isEmpty()) thdDataVO.setMAXPhaseC(Double.valueOf(df.format(deviceRtData.get(0).getValue()))+"");
|
||||
return thdDataVO;
|
||||
}
|
||||
|
||||
@@ -263,40 +381,44 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
|
||||
PowerStatisticsVO powerStatisticsVO = getDataByLineId(powerStatisticsParam);
|
||||
//开始组装excel所需数据
|
||||
List<PowerStatisticsExcelRangVO> powerStatisticsVOS = new ArrayList<>();
|
||||
ExportParams exportParams = new ExportParams(powerStatisticsParam.getSearchValue(), "区间数据");
|
||||
//各区间数量
|
||||
PowerStatisticsExcelRangVO num = new PowerStatisticsExcelRangVO();
|
||||
num.setMinsNum0(powerStatisticsVO.getMinsNum0()+"");
|
||||
num.setMinsNum1(powerStatisticsVO.getMinsNum1()+"");
|
||||
num.setMinsNum2(powerStatisticsVO.getMinsNum2()+"");
|
||||
num.setMinsNum3(powerStatisticsVO.getMinsNum3()+"");
|
||||
num.setMinsNum4(powerStatisticsVO.getMinsNum4()+"");
|
||||
num.setMinsNum5(powerStatisticsVO.getMinsNum5()+"");
|
||||
num.setMinsNum6(powerStatisticsVO.getMinsNum6()+"");
|
||||
num.setMinsNum7(powerStatisticsVO.getMinsNum7()+"");
|
||||
num.setMinsNum8(powerStatisticsVO.getMinsNum8()+"");
|
||||
num.setMinsNum9(powerStatisticsVO.getMinsNum9()+"");
|
||||
num.setMinsNum0(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum0()+"");
|
||||
num.setMinsNum1(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum1()+"");
|
||||
num.setMinsNum2(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum2()+"");
|
||||
num.setMinsNum3(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum3()+"");
|
||||
num.setMinsNum4(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum4()+"");
|
||||
num.setMinsNum5(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum5()+"");
|
||||
num.setMinsNum6(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum6()+"");
|
||||
num.setMinsNum7(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum7()+"");
|
||||
num.setMinsNum8(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum8()+"");
|
||||
num.setMinsNum9(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getMinsNum9()+"");
|
||||
num.setText("个数");
|
||||
powerStatisticsVOS.add(num);
|
||||
//各区间是否越限
|
||||
PowerStatisticsExcelRangVO isOrNot = new PowerStatisticsExcelRangVO();
|
||||
isOrNot.setMinsNum0(powerStatisticsVO.getIsOrNot0()>0?"是":"否");
|
||||
isOrNot.setMinsNum1(powerStatisticsVO.getIsOrNot1()>0?"是":"否");
|
||||
isOrNot.setMinsNum2(powerStatisticsVO.getIsOrNot2()>0?"是":"否");
|
||||
isOrNot.setMinsNum3(powerStatisticsVO.getIsOrNot3()>0?"是":"否");
|
||||
isOrNot.setMinsNum4(powerStatisticsVO.getIsOrNot4()>0?"是":"否");
|
||||
isOrNot.setMinsNum5(powerStatisticsVO.getIsOrNot5()>0?"是":"否");
|
||||
isOrNot.setMinsNum6(powerStatisticsVO.getIsOrNot6()>0?"是":"否");
|
||||
isOrNot.setMinsNum7(powerStatisticsVO.getIsOrNot7()>0?"是":"否");
|
||||
isOrNot.setMinsNum8(powerStatisticsVO.getIsOrNot8()>0?"是":"否");
|
||||
isOrNot.setMinsNum9(powerStatisticsVO.getIsOrNot9()>0?"是":"否");
|
||||
isOrNot.setMinsNum0(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot0()>0?"是":"否");
|
||||
isOrNot.setMinsNum1(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot1()>0?"是":"否");
|
||||
isOrNot.setMinsNum2(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot2()>0?"是":"否");
|
||||
isOrNot.setMinsNum3(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot3()>0?"是":"否");
|
||||
isOrNot.setMinsNum4(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot4()>0?"是":"否");
|
||||
isOrNot.setMinsNum5(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot5()>0?"是":"否");
|
||||
isOrNot.setMinsNum6(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot6()>0?"是":"否");
|
||||
isOrNot.setMinsNum7(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot7()>0?"是":"否");
|
||||
isOrNot.setMinsNum8(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot8()>0?"是":"否");
|
||||
isOrNot.setMinsNum9(powerStatisticsVO.getLineId() == null? "":powerStatisticsVO.getIsOrNot9()>0?"是":"否");
|
||||
isOrNot.setText("是否越限");
|
||||
powerStatisticsVOS.add(isOrNot);
|
||||
//各区间占比
|
||||
PowerStatisticsExcelRangVO proportion = new PowerStatisticsExcelRangVO();
|
||||
int total = powerStatisticsVO.getMinsNum0() + powerStatisticsVO.getMinsNum1() + powerStatisticsVO.getMinsNum2()
|
||||
+ powerStatisticsVO.getMinsNum3() + powerStatisticsVO.getMinsNum4() + powerStatisticsVO.getMinsNum5()
|
||||
+ powerStatisticsVO.getMinsNum6() + powerStatisticsVO.getMinsNum7() + powerStatisticsVO.getMinsNum8()
|
||||
+ powerStatisticsVO.getMinsNum9();
|
||||
int total = 0;
|
||||
if(powerStatisticsVO.getLineId() != null){
|
||||
total = powerStatisticsVO.getMinsNum0() + powerStatisticsVO.getMinsNum1() + powerStatisticsVO.getMinsNum2()
|
||||
+ powerStatisticsVO.getMinsNum3() + powerStatisticsVO.getMinsNum4() + powerStatisticsVO.getMinsNum5()
|
||||
+ powerStatisticsVO.getMinsNum6() + powerStatisticsVO.getMinsNum7() + powerStatisticsVO.getMinsNum8()
|
||||
+ powerStatisticsVO.getMinsNum9();
|
||||
}
|
||||
if(total != 0){
|
||||
proportion.setMinsNum0(dftwo.format((double)powerStatisticsVO.getMinsNum0().intValue() / total * 100) + "%");
|
||||
proportion.setMinsNum1(dftwo.format((double)powerStatisticsVO.getMinsNum1().intValue() / total * 100) + "%");
|
||||
@@ -308,11 +430,21 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
|
||||
proportion.setMinsNum7(dftwo.format((double)powerStatisticsVO.getMinsNum7().intValue() / total * 100) + "%");
|
||||
proportion.setMinsNum8(dftwo.format((double)powerStatisticsVO.getMinsNum8().intValue() / total * 100) + "%");
|
||||
proportion.setMinsNum9(dftwo.format((double)powerStatisticsVO.getMinsNum9().intValue() / total * 100) + "%");
|
||||
}else{
|
||||
proportion.setMinsNum0("");
|
||||
proportion.setMinsNum1("");
|
||||
proportion.setMinsNum2("");
|
||||
proportion.setMinsNum3("");
|
||||
proportion.setMinsNum4("");
|
||||
proportion.setMinsNum5("");
|
||||
proportion.setMinsNum6("");
|
||||
proportion.setMinsNum7("");
|
||||
proportion.setMinsNum8("");
|
||||
proportion.setMinsNum9("");
|
||||
}
|
||||
proportion.setText("占比");
|
||||
powerStatisticsVOS.add(proportion);
|
||||
//数据准备完毕开始渲染excel
|
||||
ExportParams exportParams = new ExportParams("", "区间数据");
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, PowerStatisticsExcelRangVO.class, powerStatisticsVOS);
|
||||
Sheet sheet = workbook.getSheet("区间数据");
|
||||
Font redFont = workbook.createFont();
|
||||
@@ -347,8 +479,8 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
|
||||
//设置斜线的开始位置,我这里是从第0行到第1行,从第0列到第1列
|
||||
anchor.setCol1(0);
|
||||
anchor.setCol2(1);
|
||||
anchor.setRow1(0);
|
||||
anchor.setRow2(1);
|
||||
anchor.setRow1(1);
|
||||
anchor.setRow2(2);
|
||||
XSSFSimpleShape simpleShape = xssfDrawing.createSimpleShape((XSSFClientAnchor) anchor);
|
||||
//设置形状类型未线型
|
||||
simpleShape.setShapeType(ShapeTypes.LINE);
|
||||
@@ -359,18 +491,18 @@ public class PowerStatisticsServiceImpl implements PowerStatisticsService {
|
||||
//设置线的颜色
|
||||
simpleShape.setLineStyleColor(0,0,0);
|
||||
//删除第一行title
|
||||
sheet.removeRow(sheet.getRow(0));
|
||||
//sheet.removeRow(sheet.getRow(0));
|
||||
//上移(因为删除一行只是将数据清空了留下空行)
|
||||
sheet.shiftRows(1, sheet.getLastRowNum(), -1);
|
||||
PoiUtil.exportFileByWorkbook(workbook, "区间数据.xlsx", response);
|
||||
//sheet.shiftRows(1, sheet.getLastRowNum(), -1);
|
||||
PoiUtil.exportFileByWorkbook(workbook, powerStatisticsParam.getSearchValue()+".xlsx", response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exportExcelListTemplate(PowerStatisticsParam powerStatisticsParam, HttpServletResponse response) {
|
||||
ExportParams exportParams = new ExportParams("指标越限列表数据", "指标越限列表数据");
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, TerminalBaseExcel.class, new ArrayList<TerminalBaseExcel>());
|
||||
String fileName = "指标越限列表数据.xlsx";
|
||||
PoiUtil.exportFileByWorkbook(workbook, fileName, response);
|
||||
ExportParams exportParams = new ExportParams(powerStatisticsParam.getSearchValue(), "指标越限列表数据");
|
||||
List<PowerStatisticsTargetVO> powerStatisticsTargetVOS = getTargetLimitById(powerStatisticsParam);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, PowerStatisticsTargetVO.class, powerStatisticsTargetVOS);
|
||||
PoiUtil.exportFileByWorkbook(workbook, powerStatisticsParam.getSearchValue()+".xlsx", response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user