@@ -187,7 +187,7 @@ public class CommMonitorEventReportServiceImpl implements CommMonitorEventReport
createTitle ( doc , " 4. 总汇信息 " , " 标题 1 " , 0 , 15 ) ;
//查询参数
StatisticsParam param = new StatisticsParam ( exportParam . getLineId ( ) , exportParam . getSearchBeginTime ( ) , exportParam . getSearchEndTime ( ) , exportParam . getFlag ( ) ) ;
StatisticsParam param = new StatisticsParam ( exportParam . getLineId ( ) , exportParam . getSearchBeginTime ( ) , exportParam . getSearchEndTime ( ) , exportParam . getFlag ( ) , lineDetailData . getIsDip ( ) );
//获取暂降原因字典
List < DictData > reasonData = dicDataFeignClient . getDicDataByTypeName ( DicDataTypeEnum . EVENT_REASON . getName ( ) ) . getData ( ) ;
//获取暂降类型字典
@@ -476,391 +476,6 @@ public class CommMonitorEventReportServiceImpl implements CommMonitorEventReport
} catch ( Exception e ) {
throw new BusinessException ( CommonResponseEnum . FAIL , " 导出监测点暂降报告异常 " ) ;
}
}
@Override
public void getWlLineExport ( ExportParam exportParam , LineDetailDataCommDTO lineDetailData , HttpServletResponse response ) {
//创建word文档(poi生成word)
XWPFDocument doc = new XWPFDocument ( ) ; //创建Word文件
//设置标题样式
WordUtils . setHeadingStyle ( doc ) ;
XWPFParagraph p = doc . createParagraph ( ) ; //新建一个段落
//设置对齐
p . setAlignment ( ParagraphAlignment . CENTER ) ;
p . setVerticalAlignment ( TextAlignment . CENTER ) ;
XWPFRun r = p . createRun ( ) ; //创建段落文本
r . addBreak ( ) ;
r . addBreak ( ) ;
r . addBreak ( ) ;
r . addBreak ( ) ;
r . addBreak ( ) ;
r . addBreak ( ) ;
r . setText ( " " ) ;
r . setBold ( true ) ; //设置为粗体
r . setFontSize ( 14 ) ; //字体大小
r . addBreak ( ) ;
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . CENTER ) ;
XWPFRun r1 = p . createRun ( ) ; //创建段落文本
r1 . setText ( " 电压暂降事件分析报告 " ) ;
r1 . setBold ( true ) ; //设置为粗体
r1 . setFontSize ( 36 ) ; //字体大小
r1 . addBreak ( ) ;
r1 . addBreak ( ) ;
r1 . addBreak ( ) ;
r1 . addBreak ( ) ;
r1 . addBreak ( ) ;
r1 . addBreak ( ) ;
r1 . addBreak ( ) ;
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . CENTER ) ;
XWPFRun r2 = p . createRun ( ) ; //创建段落文本
//获取当前时间
Date date = new Date ( ) ;
SimpleDateFormat dateFormat = new SimpleDateFormat ( " yyyy 年 MM 月 dd 日 " ) ;
String time = dateFormat . format ( date ) ;
r2 . setText ( " 日期: " + time ) ;
r2 . setBold ( true ) ; //设置为粗体
r2 . setFontSize ( 14 ) ; //字体大小
r2 . addBreak ( ) ;
r2 . addBreak ( ) ;
r2 . addBreak ( ) ;
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . CENTER ) ;
XWPFRun r3 = p . createRun ( ) ; //创建段落文本
r3 . setText ( " 电压暂降事件区域报告 " ) ;
r3 . setFontSize ( 24 ) ; //字体大小
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . LEFT ) ;
createTitle ( doc , " 1. 引言 " , " 标题 1 " , 0 , 15 ) ;
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . BOTH ) ;
XWPFRun r5 = p . createRun ( ) ; //创建段落文本
r5 . setText ( " 对所选中区间内电压暂降事件进行分析,能够直观清晰查看响应的暂降事件信息。 " ) ;
r5 . setFontSize ( 11 ) ; //字体大小
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . LEFT ) ;
createTitle ( doc , " 2. 报告分析对象 " , " 标题 1 " , 0 , 15 ) ;
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . BOTH ) ;
XWPFRun r7 = p . createRun ( ) ; //创建段落文本
r7 . setText ( exportParam . getLineName ( ) ) ;
r7 . setFontSize ( 11 ) ; //字体大小
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . LEFT ) ;
createTitle ( doc , " 3. 报告分析时间 " , " 标题 1 " , 0 , 15 ) ;
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . BOTH ) ;
XWPFRun r9 = p . createRun ( ) ; //创建段落文本
r9 . setText ( exportParam . getSearchBeginTime ( ) + " 至 " + exportParam . getSearchEndTime ( ) ) ;
r9 . setFontSize ( 11 ) ; //字体大小
p = doc . createParagraph ( ) ; //新建一个段落
p . setAlignment ( ParagraphAlignment . LEFT ) ;
createTitle ( doc , " 4. 总汇信息 " , " 标题 1 " , 0 , 15 ) ;
//查询参数
StatisticsParam param = new StatisticsParam ( exportParam . getLineId ( ) , exportParam . getSearchBeginTime ( ) , exportParam . getSearchEndTime ( ) , exportParam . getFlag ( ) ) ;
//获取暂降原因字典
List < DictData > reasonData = dicDataFeignClient . getDicDataByTypeName ( DicDataTypeEnum . EVENT_REASON . getName ( ) ) . getData ( ) ;
//获取暂降类型字典
List < DictData > typeData = dicDataFeignClient . getDicDataByTypeName ( DicDataTypeEnum . EVENT_TYPE . getName ( ) ) . getData ( ) ;
//influxdb查询结果( pqs_eventdetail表)
List < EventDetail > info = info ( param , true ) ;
//记录数
int i = 1 ;
//1.监测点信息
if ( exportParam . isXq ( ) ) {
createTitle ( doc , " 4. " + i + " 监测点信息 " , " 标题 2 " , 200 , 15 ) ;
XWPFTable table = createTable ( doc ) ;
XWPFParagraph centerParagraph = WordUtils . getCenterParagraph ( doc ) ;
insertRow ( doc , table , centerParagraph , true , " 项目 " , " 描述 " ) ;
insertRow ( doc , table , centerParagraph , false , " 监测点名称 " , lineDetailData . getLineName ( ) ) ;
insertRow ( doc , table , centerParagraph , false , " 电压等级 " , lineDetailData . getScale ( ) ) ;
insertRow ( doc , table , centerParagraph , false , " PT变比 " , lineDetailData . getPt ( ) ) ;
insertRow ( doc , table , centerParagraph , false , " CT变比 " , lineDetailData . getCt ( ) ) ;
insertRow ( doc , table , centerParagraph , false , " 协议容量 " , lineDetailData . getDealCapacity ( ) + " " ) ;
insertRow ( doc , table , centerParagraph , false , " 设备容量 " , lineDetailData . getDevCapacity ( ) + " " ) ;
insertRow ( doc , table , centerParagraph , false , " 最小短路容量 " , lineDetailData . getShortCapacity ( ) + " " ) ;
insertRow ( doc , table , centerParagraph , false , " 接线方式 " , lineDetailData . getPtType ( ) ) ;
if ( exportParam . getType ( ) = = 0 ) {
insertRow ( doc , table , centerParagraph , false , " 基准容量 " , lineDetailData . getStandardCapacity ( ) + " " ) ;
}
i + + ;
}
//2.暂降事件暂降事件列表和暂降点图
//2.1.判断列表和点图是否是要导出
if ( exportParam . isLb ( ) | | exportParam . isSjdF47 ( ) | | exportParam . isSjdITIC ( ) ) {
List < EventDetail > plot = eventReportService . getPlot ( info , reasonData , typeData ) ;
//暂降事件列表
if ( exportParam . isLb ( ) ) {
createTitle ( doc , " 4. " + i + " 暂降事件列表 " , " 标题 2 " , 200 , 15 ) ;
XWPFTable table = createTable ( doc ) ;
XWPFParagraph centerParagraph = WordUtils . getCenterParagraph ( doc ) ;
insertRow ( doc , table , centerParagraph , true , " 序号 " , " 暂降发生时刻 " , " 暂降幅值(%) " , " 持续时间(s) " , " 暂降类型 " , " 暂降原因 " , " 严重度 " ) ;
for ( int j = 0 ; j < plot . size ( ) ; j + + ) {
EventDetail eventDetail = plot . get ( j ) ;
String s = eventDetail . getStartTime ( ) . format ( DateTimeFormatter . ofPattern ( " yyyy-MM-dd HH:mm:ss.SSS " ) ) ;
insertRow ( doc , table , centerParagraph , false , j + 1 + " " , s , BigDecimal . valueOf ( eventDetail . getFeatureAmplitude ( ) * 100 ) . setScale ( 2 , RoundingMode . HALF_UP ) . toString ( ) , eventDetail . getDuration ( ) + " " , Objects . isNull ( eventDetail . getAdvanceType ( ) ) ? " / " : eventDetail . getAdvanceType ( ) , Objects . isNull ( eventDetail . getAdvanceReason ( ) ) ? " / " : eventDetail . getAdvanceReason ( ) , Objects . isNull ( eventDetail . getSeverity ( ) ) ? " / " : eventDetail . getSeverity ( ) + " " ) ;
}
i + + ;
}
//暂降事件点图
if ( exportParam . isSjdF47 ( ) | | exportParam . isSjdITIC ( ) ) {
ArrayList < List < Double > > ass = getAss ( plot ) ;
createTitle ( doc , " 4. " + i + " 暂降事件点图 " , " 标题 2 " , 200 , 15 ) ;
int two = 1 ;
if ( exportParam . isSjdITIC ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " ITIC 曲线 " , " 标题 3 " , 400 , 15 ) ;
String itic = drawPicUtil . drawItic ( ass ) ;
createPic ( doc , itic , " ITIC曲线 " ) ;
two + + ;
}
if ( exportParam . isSjdF47 ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " F47 曲线 " , " 标题 3 " , 400 , 15 ) ;
String f47 = drawPicUtil . drawF47 ( ass ) ;
createPic ( doc , f47 , " SEMI F47曲线 " ) ;
two + + ;
}
i + + ;
}
}
//3.暂降密度
if ( exportParam . isMdbg ( ) | | exportParam . isMdtx ( ) ) {
createTitle ( doc , " 4. " + i + " 暂降密度 " , " 标题 2 " , 200 , 15 ) ;
int two = 1 ;
if ( exportParam . isMdtx ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " 暂降密度点图 " , " 标题 3 " , 400 , 15 ) ;
Integer [ ] [ ] eventDensityData = eventReportService . getCoords ( info ) ;
String str = drawPicUtil . drawEventDensity ( eventDensityData ) ;
createPic ( doc , str , " 暂降密度图 " ) ;
two + + ;
}
if ( exportParam . isMdbg ( ) ) {
XWPFParagraph centerParagraph = WordUtils . getCenterParagraph ( doc ) ;
createTitle ( doc , " 4. " + i + " . " + two + " DISDIP 表格:国际发配电联盟(UNIPEDE) " , " 标题 3 " , 400 , 15 ) ;
// List<DISDIPVO> eventDisdip = eventAnalysisService.eventDisdip(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag()));
List < DISDIPVO > eventDisdip = eventReportService . eventDisdip ( info ) ;
XWPFTable table1 = createTable ( doc ) ;
insertRow ( doc , table1 , centerParagraph , true , " 剩余电压 " , " 20ms " , " 100ms " , " 500ms " , " 1s " , " 3s " , " 20s " , " 60s " , " 180s " ) ;
for ( int j = 0 ; j < eventDisdip . size ( ) ; j + + ) {
DISDIPVO disdipvo = eventDisdip . get ( j ) ;
insertRow ( doc , table1 , centerParagraph , false , disdipvo . getName ( ) , disdipvo . getTwentyMs ( ) , disdipvo . getOneHundredMs ( ) , disdipvo . getFiveHundredMs ( ) , disdipvo . getOneS ( ) , disdipvo . getThreeS ( ) , disdipvo . getTwentyS ( ) , disdipvo . getSixtyS ( ) , disdipvo . getOneEightyS ( ) ) ;
}
two + + ;
createTitle ( doc , " 4. " + i + " . " + two + " IEC 61000-4-11:(用电终端的电压暂降抗度) " , " 标题 3 " , 400 , 15 ) ;
// List<IEC411VO> iec411VOS = eventAnalysisService.IEC411(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag()));
List < IEC411VO > iec411VOS = eventReportService . IEC411 ( info ) ;
XWPFTable table2 = createTable ( doc ) ;
insertRow ( doc , table2 , centerParagraph , true , " 剩余电压 " , " 10~20ms " , " 20~100ms " , " 0.1~0.2s " , " 0.2~0.5s " , " 0.5~1s " , " >1s " ) ;
for ( int j = 0 ; j < iec411VOS . size ( ) ; j + + ) {
IEC411VO iec411VO = iec411VOS . get ( j ) ;
insertRow ( doc , table2 , centerParagraph , false , iec411VO . getName ( ) , iec411VO . getTenTwentyMs ( ) , iec411VO . getTwentyOneHundredMs ( ) , iec411VO . getZeroPiontOneTwoS ( ) , iec411VO . getZeroPiontTwoFiveS ( ) , iec411VO . getZeroPiontFive1S ( ) , iec411VO . getGreater1S ( ) ) ;
}
two + + ;
createTitle ( doc , " 4. " + i + " . " + two + " IEC 61000-2-8:(公共电网电压暂降测量统计) " , " 标题 3 " , 400 , 15 ) ;
// List<IEC28VO> iec28VOS = eventAnalysisService.IEC28(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag()));
List < IEC28VO > iec28VOS = eventReportService . IEC28 ( info ) ;
XWPFTable table3 = createTable ( doc ) ;
insertRow ( doc , table3 , centerParagraph , true , " 剩余电压 " , " 0.02~0.1s " , " 0.1~0.25s " , " 0.25~0.5s " , " 0.5s~1s " , " 1~3s " , " 3~20s " , " 20~60s " , " 60~180s " ) ;
for ( int j = 0 ; j < iec28VOS . size ( ) ; j + + ) {
IEC28VO iec28VO = iec28VOS . get ( j ) ;
insertRow ( doc , table3 , centerParagraph , false , iec28VO . getName ( ) , iec28VO . getQ ( ) , iec28VO . getW ( ) , iec28VO . getE ( ) , iec28VO . getR ( ) , iec28VO . getT ( ) , iec28VO . getY ( ) , iec28VO . getU ( ) , iec28VO . getI ( ) ) ;
}
two + + ;
}
i + + ;
}
//4.暂降幅值概率分布
if ( exportParam . isGlfbfz ( ) | | exportParam . isGlfbsj ( ) ) {
createTitle ( doc , " 4. " + i + " 暂降幅值概率分布图 " , " 标题 2 " , 200 , 15 ) ;
// ProbabilityVO probabilityVO = eventAnalysisService.getProbabilityDistribution(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag()));
ProbabilityVO probabilityVO = eventReportService . getProbabilityDistribution ( info ) ;
int two = 1 ;
if ( exportParam . isGlfbfz ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " 暂降幅值的概率分函数 " , " 标题 3 " , 400 , 15 ) ;
List < String > ybardata = probabilityVO . getPereventvalue ( ) ;
List < String > ylinedata = probabilityVO . getEventvalue ( ) ;
String fz = drawPicUtil . drawEventAmplitude ( ylinedata , ybardata ) ;
createPic ( doc , fz , " 暂降幅值的概率分布函数 " ) ;
two + + ;
}
if ( exportParam . isGlfbsj ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " 持续时间的概率分函数 " , " 标题 3 " , 400 , 15 ) ;
List < String > ybardata = probabilityVO . getPersisttime ( ) ;
List < String > ylinedata = probabilityVO . getSisttime ( ) ;
String sj = drawPicUtil . drawPersistentTime ( ylinedata , ybardata ) ;
createPic ( doc , sj , " 持续时间的概率分布函数 " ) ;
two + + ;
}
i + + ;
}
//5.月份统计
if ( exportParam . isTjbg ( ) | | exportParam . isTjtx ( ) ) {
createTitle ( doc , " 4. " + i + " 月份统计 " , " 标题 2 " , 200 , 15 ) ;
int two = 1 ;
List < TimeVO > reasonTypeTime = eventAnalysisService . getReasonTypeTime ( param ) ;
//暂时时间端按月查询不能查询
// List<TimeVO> reasonTypeTime = eventReportService.getReasonTypeTime(param,null);
if ( exportParam . isTjtx ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " 月份统计图 " , " 标题 3 " , 400 , 15 ) ;
List < Integer > count = new ArrayList < > ( ) ;
List < String > name = new ArrayList < > ( ) ;
if ( exportParam . getFlag ( ) = = 0 ) {
for ( TimeVO timeVO : reasonTypeTime ) {
name . add ( timeVO . getMonth ( ) + " " ) ;
count . add ( Integer . parseInt ( timeVO . getTimes ( ) ) ) ;
}
} else {
for ( TimeVO timeVO : reasonTypeTime ) {
name . add ( timeVO . getDay ( ) + " " ) ;
count . add ( Integer . parseInt ( timeVO . getTimes ( ) ) ) ;
}
}
String yftj = drawPicUtil . drawMonth ( name , count , reasonTypeTime . get ( 0 ) . getYear ( ) , exportParam . getFlag ( ) ) ;
createPic ( doc , yftj , " 月份统计图 " ) ;
two + + ;
}
if ( exportParam . isTjbg ( ) ) {
XWPFParagraph centerParagraph = WordUtils . getCenterParagraph ( doc ) ;
createTitle ( doc , " 4. " + i + " . " + two + " 时间统计表格 " , " 标题 3 " , 400 , 15 ) ;
XWPFTable table1 = createTable ( doc ) ;
if ( exportParam . getFlag ( ) = = 0 ) {
insertRow ( doc , table1 , centerParagraph , true , " 时间(月) " , " 电压暂降次数 " ) ;
} else {
insertRow ( doc , table1 , centerParagraph , true , " 时间(天) " , " 电压暂降次数 " ) ;
}
if ( exportParam . getFlag ( ) = = 0 ) {
for ( int j = 0 ; j < reasonTypeTime . size ( ) ; j + + ) {
TimeVO timeVO = reasonTypeTime . get ( j ) ;
insertRow ( doc , table1 , centerParagraph , false , timeVO . getMonth ( ) , timeVO . getTimes ( ) ) ;
}
} else {
for ( int j = 0 ; j < reasonTypeTime . size ( ) ; j + + ) {
TimeVO timeVO = reasonTypeTime . get ( j ) ;
insertRow ( doc , table1 , centerParagraph , false , timeVO . getFulltime ( ) , timeVO . getTimes ( ) ) ;
}
}
two + + ;
}
i + + ;
}
//6.原因统计
//6.1整合提出查询语句
Boolean fly = exportParam . isYybg ( ) | | exportParam . isYytx ( ) | | exportParam . isLxbg ( ) | | exportParam . isLxtx ( ) ;
if ( fly ) {
List < DictData > tempDictType = dicDataFeignClient . getDicDataByTypeCode ( DicDataTypeEnum . EVENT_STATIS . getCode ( ) ) . getData ( ) ;
List < String > typeIds = tempDictType . stream ( ) . filter ( x - > DicDataEnum . VOLTAGE_DIP . getCode ( ) . equals ( x . getCode ( ) ) | | DicDataEnum . SHORT_INTERRUPTIONS . getCode ( ) . equals ( x . getCode ( ) ) )
. map ( DictData : : getId ) . collect ( Collectors . toList ( ) ) ;
List < EventDetail > tempInfo = info . stream ( ) . filter ( temp - > typeIds . contains ( temp . getEventType ( ) ) ) . collect ( Collectors . toList ( ) ) ;
StatisticVO statistic = eventReportService . getStatistic ( tempInfo , reasonData , typeData ) ;
if ( exportParam . isYybg ( ) | | exportParam . isYytx ( ) ) {
createTitle ( doc , " 4. " + i + " 原因统计 " , " 标题 2 " , 200 , 15 ) ;
// StatisticVO statistic = eventAnalysisService.getStatistic(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag()));
int two = 1 ;
if ( exportParam . isYytx ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " 原因统计图 " , " 标题 3 " , 400 , 15 ) ;
List < String > xdata = new ArrayList < > ( ) ;
List < Map < String , Object > > reasonList = new ArrayList < > ( ) ;
List < ReasonsVO > reason = statistic . getReason ( ) ;
for ( ReasonsVO reasonsVO : reason ) {
Map < String , Object > map = new LinkedHashMap < > ( ) ;
map . put ( " value " , reasonsVO . getTimes ( ) ) ;
map . put ( " name " , reasonsVO . getReason ( ) ) ;
reasonList . add ( map ) ;
xdata . add ( reasonsVO . getReason ( ) ) ;
}
String tr = drawPicUtil . drawReason ( xdata , reasonList ) ;
createPic ( doc , tr , " 暂降原因图 " ) ;
two + + ;
}
if ( exportParam . isYybg ( ) ) {
XWPFParagraph centerParagraph = WordUtils . getCenterParagraph ( doc ) ;
createTitle ( doc , " 4. " + i + " . " + two + " 原因统计表格 " , " 标题 3 " , 400 , 15 ) ;
XWPFTable table1 = createTable ( doc ) ;
insertRow ( doc , table1 , centerParagraph , true , " 暂降原因 " , " 电压暂降次数 " ) ;
List < ReasonsVO > reason = statistic . getReason ( ) ;
for ( int j = 0 ; j < reason . size ( ) ; j + + ) {
ReasonsVO reasonsVO = reason . get ( j ) ;
insertRow ( doc , table1 , centerParagraph , false , reasonsVO . getReason ( ) , reasonsVO . getTimes ( ) + " " ) ;
}
two + + ;
}
i + + ;
}
//7.类型统计
if ( exportParam . isLxbg ( ) | | exportParam . isLxtx ( ) ) {
createTitle ( doc , " 4. " + i + " 类型统计 " , " 标题 2 " , 200 , 15 ) ;
// StatisticVO statistic = eventAnalysisService.getStatistic(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag()));
int two = 1 ;
if ( exportParam . isLxtx ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " 类型统计图 " , " 标题 3 " , 400 , 15 ) ;
List < String > xdata = new ArrayList < > ( ) ;
List < TypesVO > types = statistic . getTypes ( ) ;
List < Map < String , Object > > reasonList = new ArrayList < > ( ) ;
for ( TypesVO type : types ) {
Map < String , Object > map = new LinkedHashMap < > ( ) ;
map . put ( " value " , type . getTimes ( ) ) ;
map . put ( " name " , type . getType ( ) ) ;
reasonList . add ( map ) ;
xdata . add ( type . getType ( ) ) ;
}
String tr = drawPicUtil . drawType ( xdata , reasonList ) ;
createPic ( doc , tr , " 暂降类型图 " ) ;
two + + ;
}
if ( exportParam . isLxbg ( ) ) {
createTitle ( doc , " 4. " + i + " . " + two + " 类型统计表格 " , " 标题 3 " , 400 , 15 ) ;
XWPFParagraph centerParagraph = WordUtils . getCenterParagraph ( doc ) ;
XWPFTable table1 = createTable ( doc ) ;
insertRow ( doc , table1 , centerParagraph , true , " 暂降原因 " , " 电压暂降次数 " ) ;
List < TypesVO > types = statistic . getTypes ( ) ;
for ( int j = 0 ; j < types . size ( ) ; j + + ) {
TypesVO typesVO = types . get ( j ) ;
insertRow ( doc , table1 , centerParagraph , false , typesVO . getType ( ) , typesVO . getTimes ( ) + " " ) ;
}
two + + ;
}
i + + ;
}
}
try {
ServletOutputStream outputStream = response . getOutputStream ( ) ;
String fileName = URLEncoder . encode ( exportParam . getLineName ( ) + " .docx " , " UTF-8 " ) ;
response . setHeader ( " Content-Disposition " , " attachment; filename= \" " + fileName + " \" " ) ;
response . setContentType ( " application/octet-stream;charset=UTF-8 " ) ;
doc . write ( outputStream ) ;
outputStream . close ( ) ;
} catch ( Exception e ) {
throw new BusinessException ( CommonResponseEnum . FAIL , " 导出监测点暂降报告异常 " ) ;
}
}
/**
@@ -965,30 +580,13 @@ public class CommMonitorEventReportServiceImpl implements CommMonitorEventReport
* @return
*/
private List < EventDetail > info ( StatisticsParam statisticsParam ) {
// //获取事件类型
// List<DictData> dictType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
// List<String> typeIds = dictType.stream().filter(x -> DicDataEnum.VOLTAGE_DIP.getCode().equals(x.getCode()) || DicDataEnum.SHORT_INTERRUPTIONS.getCode().equals(x.getCode()))
// .map(DictData::getId).collect(Collectors.toList());
//数据暂降查询
List < RmpEventDetailPO > info = rmpEventDetailMapper . selectList ( new LambdaQueryWrapper < RmpEventDetailPO > ( )
. eq ( RmpEventDetailPO : : getMeasurementPointId , statisticsParam . getLineIndex ( ) )
// .in(RmpEventDetailPO::getEventType, typeIds)
. ge ( StrUtil . isNotBlank ( statisticsParam . getStartTime ( ) ) , RmpEventDetailPO : : getStartTime , DateUtil . beginOfDay ( DateUtil . parse ( statisticsParam . getStartTime ( ) ) ) )
. le ( StrUtil . isNotBlank ( statisticsParam . getEndTime ( ) ) , RmpEventDetailPO : : getStartTime , DateUtil . endOfDay ( DateUtil . parse ( statisticsParam . getEndTime ( ) ) ) )
. orderByDesc ( RmpEventDetailPO : : getStartTime )
) ;
return BeanUtil . copyToList ( info , EventDetail . class ) ;
}
private List < EventDetail > info ( StatisticsParam statisticsParam , Boolean dip ) {
// 构建查询条件
LambdaQueryWrapper < RmpEventDetailPO > queryWrapper = new LambdaQueryWrapper < RmpEventDetailPO > ( )
. eq ( RmpEventDetailPO : : getMeasurementPointId , statisticsParam . getLineIndex ( ) )
. ge ( StrUtil . isNotBlank ( statisticsParam . getStartTime ( ) ) , RmpEventDetailPO : : getStartTime , DateUtil . beginOfDay ( DateUtil . parse ( statisticsParam . getStartTime ( ) ) ) )
. le ( StrUtil . isNotBlank ( statisticsParam . getEndTime ( ) ) , RmpEventDetailPO : : getStartTime , DateUtil . endOfDay ( DateUtil . parse ( statisticsParam . getEndTime ( ) ) ) )
. orderByDesc ( RmpEventDetailPO : : getStartTime ) ;
if ( dip ) {
if ( ! Objects . isNull ( statisticsParam . getIsDip ( ) ) & & statisticsParam . getIsDip ( ) ) {
List < DictData > data = dicDataFeignClient . getDicDataByTypeCode ( DicDataTypeEnum . EVENT_STATIS . getCode ( ) ) . getData ( ) ;
List < String > typeList = data . stream ( ) . filter ( it - > it . getCode ( ) . equals ( DicDataEnum . VOLTAGE_DIP . getCode ( ) ) | | it . getCode ( ) . equals ( DicDataEnum . SHORT_INTERRUPTIONS . getCode ( ) ) ) . map ( DictData : : getId ) . collect ( Collectors . toList ( ) ) ; List < TimeVO > list = new ArrayList < > ( ) ;
queryWrapper . in ( RmpEventDetailPO : : getEventType , typeList ) ;