diff --git a/pqs-event/event-boot/pom.xml b/pqs-event/event-boot/pom.xml index 9b9f086e8..bb9e1c20f 100644 --- a/pqs-event/event-boot/pom.xml +++ b/pqs-event/event-boot/pom.xml @@ -94,6 +94,11 @@ advance-api ${project.version} + + com.njcn + event-common + 1.0.0 + diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventDetailController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventDetailController.java index 0c9c447f7..fee977b91 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventDetailController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventDetailController.java @@ -16,7 +16,7 @@ import com.njcn.event.pojo.param.EventCountParam; import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.po.RmpEventDetailPO; import com.njcn.event.pojo.vo.GeneralVO; -import com.njcn.event.service.majornetwork.EventDetailService; +import com.njcn.event.common.service.EventDetailService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventMonitorReportController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventMonitorReportController.java index e3fde02a6..242ff3def 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventMonitorReportController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/EventMonitorReportController.java @@ -7,7 +7,7 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.event.pojo.param.EventMonitorReportParam; import com.njcn.event.pojo.vo.*; -import com.njcn.event.service.majornetwork.EventMonitorReportService; +import com.njcn.event.common.service.EventMonitorReportService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -51,7 +51,7 @@ public class EventMonitorReportController extends BaseController { } /*** - * + * * @author jianghaifei * @date 2022-10-29 14:08 * @param eventMonitorReportParam @@ -67,7 +67,7 @@ public class EventMonitorReportController extends BaseController { } /*** - * + * * @author jianghaifei * @date 2022-10-29 14:08 * @param eventMonitorReportParam diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/MonitorPointController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/MonitorPointController.java index 2827dfbf0..e556f86c8 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/MonitorPointController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/MonitorPointController.java @@ -2,15 +2,13 @@ package com.njcn.event.controller.majornetwork; 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; import com.njcn.common.utils.HttpResultUtil; import com.njcn.event.pojo.param.*; -import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.vo.*; -import com.njcn.event.service.majornetwork.EventAnalysisService; +import com.njcn.event.common.service.EventAnalysisService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.*; import lombok.RequiredArgsConstructor; @@ -18,7 +16,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.util.List; diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/ReportController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/ReportController.java index 170fc15a8..5f27441b5 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/ReportController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/ReportController.java @@ -1,18 +1,29 @@ package com.njcn.event.controller.majornetwork; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.pojo.param.DeviceInfoParam; +import com.njcn.device.pq.pojo.vo.LineDetailDataVO; +import com.njcn.event.common.pojo.dto.LineDetailDataCommDTO; +import com.njcn.event.common.service.CommMonitorEventReportService; +import com.njcn.event.enums.EventResponseEnum; import com.njcn.event.pojo.param.*; import com.njcn.event.pojo.vo.DetailVO; import com.njcn.event.pojo.vo.GeneralVO; import com.njcn.event.pojo.vo.ReasonsVO; import com.njcn.event.pojo.vo.WaveTypeVO; import com.njcn.event.service.majornetwork.ReportService; +import com.njcn.system.api.DicDataFeignClient; import com.njcn.web.controller.BaseController; import freemarker.template.TemplateException; import io.swagger.annotations.Api; @@ -27,6 +38,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.ParseException; +import java.util.Arrays; import java.util.List; /** @@ -44,6 +56,14 @@ public class ReportController extends BaseController { private final ReportService reportService; + private final CommMonitorEventReportService commMonitorEventReportService; + + private final LineFeignClient lineFeignClient; + + private final MonitorClient monitorClient; + + private final DicDataFeignClient dicDataFeignClient; + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getGeneralSituation") @ApiOperation("暂态总体概况(区域)") @@ -149,7 +169,31 @@ public class ReportController extends BaseController { @ApiOperation("监测点报告导出") @ApiImplicitParam(name = "exportParam", value = "监测点报告导出参数", required = true) public void getLineExport(@RequestBody @Validated ExportParam exportParam, HttpServletResponse response) throws IOException, InvalidFormatException, TemplateException, ParseException { - reportService.getLineExport(exportParam, response); + + LineDetailDataCommDTO lineDetailDataCommDTO = new LineDetailDataCommDTO(); + if(exportParam.getType() == 0) { + LineDetailDataVO lineDetailData = lineFeignClient.getLineDetailData(exportParam.getLineId()).getData(); + if (ObjectUtil.isNull(lineDetailData)) { + throw new BusinessException(CommonResponseEnum.FAIL, "查询监测点失败"); + } + BeanUtil.copyProperties(lineDetailData,lineDetailDataCommDTO); + }else { + HttpResult> monitorList = monitorClient.getMonitorList(Arrays.asList(exportParam.getLineId())); + if (ObjectUtil.isNull(monitorList)) { + throw new BusinessException(EventResponseEnum.NOT_FOUND); + } + lineDetailDataCommDTO.setLineName(monitorList.getData().get(0).getName()); + lineDetailDataCommDTO.setScale(dicDataFeignClient.getDicDataById(monitorList.getData().get(0).getVoltageLevel()).getData().getName()); + lineDetailDataCommDTO.setPt(monitorList.getData().get(0).getPt1() + "/" + monitorList.getData().get(0).getPt2()); + lineDetailDataCommDTO.setPt(monitorList.getData().get(0).getCt1() + "/" + monitorList.getData().get(0).getCt2()); + lineDetailDataCommDTO.setDealCapacity(monitorList.getData().get(0).getUserAgreementCapacity()); +// insertRow(doc, table, centerParagraph, false, "基准容量", monitorList.getData().get(0).getMinShortCircuitCapacity() + ""); + lineDetailDataCommDTO.setDevCapacity(monitorList.getData().get(0).getPowerSupplyEqCapacity()); + lineDetailDataCommDTO.setShortCapacity(monitorList.getData().get(0).getMinShortCircuitCapacity()); + lineDetailDataCommDTO.setPtType(dicDataFeignClient.getDicDataById(monitorList.getData().get(0).getTerminalWiringMethod()).getData().getName()); + } + + commMonitorEventReportService.getLineExport(exportParam, lineDetailDataCommDTO,response); } /** diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/EventDistributionStatisticsMapper.xml b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/EventDistributionStatisticsMapper.xml index f3efe5c4e..7a08db6cd 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/EventDistributionStatisticsMapper.xml +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/EventDistributionStatisticsMapper.xml @@ -1,6 +1,6 @@ - + SELECT diff --git a/pqs-event/event-common/src/main/java/com/njcn/event/common/pojo/dto/LineDetailDataCommDTO.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/pojo/dto/LineDetailDataCommDTO.java new file mode 100644 index 000000000..73563366d --- /dev/null +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/pojo/dto/LineDetailDataCommDTO.java @@ -0,0 +1,133 @@ +package com.njcn.event.common.pojo.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * pqs + * + * @author cdf + * @date 2026/1/17 + */ +@Data +public class LineDetailDataCommDTO { + private String lineId; + + @ApiModelProperty(name = "id",value = "监测点序号") + private Integer id; + + @ApiModelProperty(name = "lineName",value = "监测点名称") + private String lineName; + + @ApiModelProperty(name = "areaName",value = "工程名称") + private String areaName; + + @ApiModelProperty(name = "gdName",value = "单位") + private String gdName; + + @ApiModelProperty(name = "bdName",value = "部门") + private String bdName; + + @ApiModelProperty(name = "scale",value = "电压等级") + private String scale; + + @ApiModelProperty(name = "manufacturer",value = "厂家") + private String manufacturer; + + @ApiModelProperty(name = "devId",value = "终端Id") + private String devId; + + @ApiModelProperty(name = "devName",value = "终端名称") + private String devName; + + @ApiModelProperty(name = "ip",value = "网络参数") + private String ip; + + @ApiModelProperty(name = "runFlag",value = "终端运行状态") + private String runFlag; + + @ApiModelProperty(name = "comFlag",value = "通讯状态") + private String comFlag; + + @ApiModelProperty(name = "loadType",value = "干扰源类型") + private String loadType; + + @ApiModelProperty(name = "businessType",value = "行业类型") + private String businessType; + + @ApiModelProperty(name = "objName",value = "监测点对象名称") + private String objName; + + @ApiModelProperty(name = "ptType",value = "接线方式") + private String ptType; + + @ApiModelProperty(name = "pt",value = "PT变比") + private String pt; + + @ApiModelProperty(name = "ct",value = "CT变比") + private String ct; + + @ApiModelProperty(name = "standardCapacity",value = "基准容量(MVA)") + private Float standardCapacity; + + @ApiModelProperty(name = "shortCapacity",value = "最小短路容量(MVA)") + private Float shortCapacity; + + @ApiModelProperty(name = "devCapacity",value = "供电设备容量(MVA)") + private Float devCapacity; + + @ApiModelProperty(name = "dealCapacity",value = "用户协议容量(MVA)") + private Float dealCapacity; + + @ApiModelProperty(name = "powerFlag",value = "电网标志(0-电网侧;1-非电网侧)") + private Integer powerFlag; + + /** + * 测量间隔(1-10分钟) + */ + @ApiModelProperty(name = "timeInterval",value = "测量间隔(1-10分钟)") + private Integer timeInterval; + + /** + * 监测点拥有者 + */ + @ApiModelProperty(name = "owner",value = "监测点拥有者") + private String owner; + + /** + * 拥有者职务 + */ + @ApiModelProperty(name = "ownerDuty",value = "拥有者职务") + private String ownerDuty; + + /** + * 拥有者联系方式 + */ + @ApiModelProperty(name = "ownerTel",value = "拥有者联系方式") + private String ownerTel; + + /** + * 接线图 + */ + @ApiModelProperty(name = "wiringDiagram",value = "接线图") + private String wiringDiagram; + @ApiModelProperty(name = "ptPhaseType",value = "监测点接线相别(0,单相,1,三相,默认三相)") + private Integer ptPhaseType; + + @ApiModelProperty(name = "投运日期") + private LocalDate loginTime; + + @ApiModelProperty(name = "最新数据时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ApiModelProperty(name = "监测对象信息ID") + private String objId; + + @ApiModelProperty(name = "对象类型大类") + private String bigObjType; +} diff --git a/pqs-event/event-common/src/main/java/com/njcn/event/common/service/CommMonitorEventReportService.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/CommMonitorEventReportService.java new file mode 100644 index 000000000..ae6a98d5d --- /dev/null +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/CommMonitorEventReportService.java @@ -0,0 +1,18 @@ +package com.njcn.event.common.service; + +import com.njcn.event.common.pojo.dto.LineDetailDataCommDTO; +import com.njcn.event.pojo.param.ExportParam; + +import javax.servlet.http.HttpServletResponse; + +/** + * pqs + * + * @author cdf + * @date 2026/1/17 + */ +public interface CommMonitorEventReportService { + + void getLineExport(ExportParam exportParam, LineDetailDataCommDTO lineDetailDataCommDTO, HttpServletResponse response); + +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventAnalysisService.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventAnalysisService.java similarity index 96% rename from pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventAnalysisService.java rename to pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventAnalysisService.java index 08a7103d7..0ff99c5cd 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventAnalysisService.java +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventAnalysisService.java @@ -1,4 +1,4 @@ -package com.njcn.event.service.majornetwork; +package com.njcn.event.common.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.event.pojo.param.*; @@ -55,7 +55,7 @@ public interface EventAnalysisService { * @param statisticsParam * @return */ - List getReasonTypeTime(StatisticsParam statisticsParam) throws ParseException; + List getReasonTypeTime(StatisticsParam statisticsParam); /** * 获取详细数据对象 diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventDetailService.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventDetailService.java similarity index 96% rename from pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventDetailService.java rename to pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventDetailService.java index f2df8912a..fcaaf5320 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventDetailService.java +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventDetailService.java @@ -1,4 +1,4 @@ -package com.njcn.event.service.majornetwork; +package com.njcn.event.common.service; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.event.pojo.dto.EventDeatilDTO; @@ -41,4 +41,4 @@ public interface EventDetailService extends IService { List getEventDetailLimit(List lineIndexes, String startTime, String endTime, Integer pageSize, Integer pageNum, List waveType); Boolean addEventDetail(EventDeatilDTO deatilDTO); -} \ No newline at end of file +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventMonitorReportService.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventMonitorReportService.java similarity index 94% rename from pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventMonitorReportService.java rename to pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventMonitorReportService.java index 38eb5ee86..72dfd90e3 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventMonitorReportService.java +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventMonitorReportService.java @@ -1,4 +1,4 @@ -package com.njcn.event.service.majornetwork; +package com.njcn.event.common.service; import com.njcn.event.pojo.param.EventMonitorReportParam; import com.njcn.event.pojo.vo.*; diff --git a/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventReportService.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventReportService.java new file mode 100644 index 000000000..e011afa0a --- /dev/null +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/EventReportService.java @@ -0,0 +1,78 @@ +package com.njcn.event.common.service; + +import com.njcn.event.pojo.param.StatisticsParam; +import com.njcn.event.pojo.po.EventDetail; +import com.njcn.event.pojo.vo.*; +import com.njcn.system.pojo.po.DictData; + +import java.text.ParseException; +import java.util.List; + +/** + * <监测点报表> + * + * @author wr + * @createTime: 2023-02-10 + */ +public interface EventReportService { + + /** + *获取Disdip表格(监测点报表专用) + * @param info influxdb查询结果(pqs_eventdetail表) + * @return + */ + List eventDisdip(List info); + + /** + * 获取IEC411数据 + * @param info influxdb查询结果(pqs_eventdetail表) + * @return + */ + List IEC411(List info); + + /** + * 获取IEC28数据 + * @param info influxdb查询结果(pqs_eventdetail表) + * @return + */ + List IEC28(List info); + + /** + *暂降幅值概率分布 + * @param info2 influxdb查询结果(pqs_eventdetail表) + * @return + */ + ProbabilityVO getProbabilityDistribution(List info2); + + /** + * 获取时间列表(月份统计) + * @param info influxdb查询结果(pqs_eventdetail表) + * @return + */ + List getReasonTypeTime(StatisticsParam statisticsParam,List info) throws ParseException; + + /** + * 获取点状表格数据2.1 + * @param info 结果集 + * @param reasonData 暂降原因 + * @param typeData 暂降类型 + * @return + */ + List getPlot(List info, List reasonData, List typeData); + + /** + * 获取详细数据对象 + * @param info + * @param reasonData + * @param typeData + * @return + */ + StatisticVO getStatistic(List info,List reasonData,ListtypeData); + + /** + * 获取密度点图 + * @param info + * @return + */ + Integer[][] getCoords(List info); +} diff --git a/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/CommMonitorEventReportServiceImpl.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/CommMonitorEventReportServiceImpl.java new file mode 100644 index 000000000..55d759c10 --- /dev/null +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/CommMonitorEventReportServiceImpl.java @@ -0,0 +1,589 @@ +package com.njcn.event.common.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.echarts.pojo.constant.PicCommonData; +import com.njcn.echarts.util.DrawPicUtil; +import com.njcn.event.common.mapper.RmpEventDetailMapper; +import com.njcn.event.common.pojo.dto.LineDetailDataCommDTO; +import com.njcn.event.common.service.EventAnalysisService; +import com.njcn.event.common.service.EventReportService; +import com.njcn.event.common.service.CommMonitorEventReportService; +import com.njcn.event.common.utils.WordUtils; +import com.njcn.event.pojo.param.ExportParam; +import com.njcn.event.pojo.param.StatisticsParam; +import com.njcn.event.pojo.po.EventDetail; +import com.njcn.event.pojo.po.RmpEventDetailPO; +import com.njcn.event.pojo.vo.*; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.util.Units; +import org.apache.poi.xwpf.usermodel.*; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth; +import org.springframework.stereotype.Service; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.math.RoundingMode; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; + + +/** + * pqs + * + * @author cdf + * @date 2026/1/17 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class CommMonitorEventReportServiceImpl implements CommMonitorEventReportService { + + + private final LineFeignClient lineFeignClient; + + private final DicDataFeignClient dicDataFeignClient; + + private final EventReportService eventReportService; + //调用暂降密度接口 + private final EventAnalysisService eventAnalysisService; + private final MonitorClient monitorClient; + private final RmpEventDetailMapper rmpEventDetailMapper; + + private final DrawPicUtil drawPicUtil; + + /** + * 监测点导出word + * + * @param exportParam . + * @param response . + */ + @Override + public void getLineExport(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 reasonData = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_REASON.getName()).getData(); + //获取暂降类型字典 + List typeData = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_TYPE.getName()).getData(); + //influxdb查询结果(pqs_eventdetail表) + List info = info(param); + + //记录数 + 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 plot = eventAnalysisService.getPlot(param); + List 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() + "", eventDetail.getAdvanceType(), eventDetail.getAdvanceReason(), eventDetail.getSeverity() + ""); + } + i++; + } + //暂降事件点图 + if (exportParam.isSjdF47() || exportParam.isSjdITIC()) { + ArrayList> 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 eventDisdip = eventAnalysisService.eventDisdip(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag())); + List 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 iec411VOS = eventAnalysisService.IEC411(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag())); + List 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 iec28VOS = eventAnalysisService.IEC28(new StatisticsParam(exportParam.getLineId(), exportParam.getSearchBeginTime(), exportParam.getSearchEndTime(),exportParam.getFlag())); + List 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 ybardata = probabilityVO.getPereventvalue(); + List 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 ybardata = probabilityVO.getPersisttime(); + List 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 reasonTypeTime = eventAnalysisService.getReasonTypeTime(param); + //暂时时间端按月查询不能查询 +// List reasonTypeTime = eventReportService.getReasonTypeTime(param,null); + if (exportParam.isTjtx()) { + createTitle(doc, "4." + i + "." + two + " 月份统计图", "标题 3", 400, 15); + List count = new ArrayList<>(); + List 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) { + StatisticVO statistic = eventReportService.getStatistic(info, 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 xdata = new ArrayList<>(); + List> reasonList = new ArrayList<>(); + + List reason = statistic.getReason(); + for (ReasonsVO reasonsVO : reason) { + Map 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 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 xdata = new ArrayList<>(); + List types = statistic.getTypes(); + + List> reasonList = new ArrayList<>(); + for (TypesVO type : types) { + Map 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 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,"导出监测点暂降报告异常"); + } + + } + + + /** + * 创建标题 + * + * @param document 文档 + * @param message 标题内容 + * @param style 标题等级 + * @param line 缩进 + * @param fontSize 字体大小 + */ + public void createTitle(XWPFDocument document, String message, String style, int line, int fontSize) { + XWPFParagraph summaeTableParagraph = WordUtils.getLeftParagraph(document); + summaeTableParagraph.setStyle(style); + summaeTableParagraph.setIndentationFirstLine(line); + XWPFRun summaeTableRun = summaeTableParagraph.createRun(); + WordUtils.addParagraph(summaeTableRun, "宋体", fontSize, "000000", message, false); + } + + /** + * 表格插入行数据 + * + * @param document 文档 + * @param table 表格 + * @param head 是否是表头 + * @param values 数据内容 + */ + public static void insertRow(XWPFDocument document, XWPFTable table, XWPFParagraph excelParagraph, boolean head, + String... values) { + if (head) { + XWPFTableRow summaTableRowOne = table.getRow(0); + WordUtils.setExcelHeadContent(excelParagraph, summaTableRowOne, values); + } else { + XWPFTableRow summaTableRowOne = table.createRow(); + WordUtils.setExcelContent(excelParagraph, summaTableRowOne, values); + } + } + + + /** + * 创建表格 + * + * @param document + * @return + */ + public XWPFTable createTable(XWPFDocument document) { + XWPFTable summaTable = document.createTable(); + // 列宽自动分割 + CTTblWidth summaTableWidth = summaTable.getCTTbl().addNewTblPr().addNewTblW(); + summaTableWidth.setType(STTblWidth.DXA); + summaTableWidth.setW(BigInteger.valueOf(8160)); + return summaTable; + } + + + public void setCellStyle(HSSFCell cellname, String value, HSSFCellStyle style) { + cellname.setCellValue(value); + cellname.setCellStyle(style); + } + + /** + * + * + * @param document 文档 + * @param image 图片base64 + * @param name 图片名 + * @throws IOException + * @throws InvalidFormatException + */ + public void createPic(XWPFDocument document, String image, String name) { + try { + XWPFParagraph picParagraph = WordUtils.getCenterParagraph(document); + XWPFRun createRun = picParagraph.createRun(); + if (image.contains(PicCommonData.PNG_PREFIX)) { + image = image.replace(PicCommonData.PNG_PREFIX, ""); + } + byte[] bytes = Base64.getDecoder().decode(image); + InputStream in = new ByteArrayInputStream(bytes); + createRun.addPicture(in, 5, name, Units.toEMU(410), Units.toEMU(170)); + }catch (Exception e){ + log.error("在word中创建图片异常:",e); + } + } + + + /** + * 监测点暂降事件点图赋值 + * + * @param plot + * @return + */ + private ArrayList> getAss(List plot) { + ArrayList> list = new ArrayList<>(); + for (EventDetail eventDetail : plot) { + ArrayList doubles = new ArrayList<>(); + doubles.add(eventDetail.getDuration()); + doubles.add(Double.parseDouble(String.valueOf(eventDetail.getFeatureAmplitude() * 100))); + list.add(doubles); + } + return list; + } + + + /** + * influxdb查询结果集 + * + * @param statisticsParam + * @return + */ + private List info(StatisticsParam statisticsParam) { + //获取事件类型 + List dictType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); + List 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 info = rmpEventDetailMapper.selectList(new LambdaQueryWrapper() + .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()))) + ); + + return BeanUtil.copyToList(info, EventDetail.class); + } + +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventAnalysisServiceImpl.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventAnalysisServiceImpl.java similarity index 99% rename from pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventAnalysisServiceImpl.java rename to pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventAnalysisServiceImpl.java index f73cfd45e..673103e52 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventAnalysisServiceImpl.java +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventAnalysisServiceImpl.java @@ -1,10 +1,9 @@ -package com.njcn.event.service.majornetwork.Impl; +package com.njcn.event.common.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.config.GeneralInfo; @@ -13,6 +12,7 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.pojo.vo.AreaLineInfoVO; import com.njcn.device.pq.pojo.vo.LineDetailDataVO; +import com.njcn.event.common.service.EventDetailService; import com.njcn.event.enums.EventResponseEnum; import com.njcn.event.file.pojo.enums.WaveFileResponseEnum; import com.njcn.event.pojo.param.EventBaseParam; @@ -20,8 +20,7 @@ import com.njcn.event.pojo.param.StatisticsParam; import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.po.RmpEventDetailPO; import com.njcn.event.pojo.vo.*; -import com.njcn.event.service.majornetwork.EventAnalysisService; -import com.njcn.event.service.majornetwork.EventDetailService; +import com.njcn.event.common.service.EventAnalysisService; import com.njcn.influx.utils.InfluxDbUtils; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; @@ -792,7 +791,7 @@ public class EventAnalysisServiceImpl implements EventAnalysisService { * @author xxy */ @Override - public List getReasonTypeTime(StatisticsParam statisticsParam) throws ParseException { + public List getReasonTypeTime(StatisticsParam statisticsParam) { //获取暂降字典信息 List data = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); List 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 list = new ArrayList<>(); diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventDetailServiceImpl.java similarity index 98% rename from pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java rename to pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventDetailServiceImpl.java index c8a5599ef..2ed52a256 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventDetailServiceImpl.java @@ -1,4 +1,4 @@ -package com.njcn.event.service.majornetwork.Impl; +package com.njcn.event.common.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; @@ -17,13 +17,13 @@ import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.pojo.po.DeptLine; import com.njcn.device.pq.pojo.vo.AreaLineInfoVO; import com.njcn.device.pq.pojo.vo.LineDetailDataVO; +import com.njcn.event.common.mapper.RmpEventDetailMapper; import com.njcn.event.pojo.vo.SendEventVO; import com.njcn.event.utils.EventUtil; -import com.njcn.event.mapper.majornetwork.EventDetailMapper; import com.njcn.event.pojo.dto.EventDeatilDTO; import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.po.RmpEventDetailPO; -import com.njcn.event.service.majornetwork.EventDetailService; +import com.njcn.event.common.service.EventDetailService; import com.njcn.influx.utils.InfluxDbUtils; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; @@ -53,7 +53,7 @@ import java.util.*; @Slf4j @Service @RequiredArgsConstructor -public class EventDetailServiceImpl extends ServiceImpl implements EventDetailService { +public class EventDetailServiceImpl extends ServiceImpl implements EventDetailService { private final InfluxDbUtils influxDbUtils; private final DicDataFeignClient dicDataFeignClient; diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventMonitorReportServiceImpl.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventMonitorReportServiceImpl.java similarity index 99% rename from pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventMonitorReportServiceImpl.java rename to pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventMonitorReportServiceImpl.java index f3a326b18..959f66c93 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventMonitorReportServiceImpl.java +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventMonitorReportServiceImpl.java @@ -1,4 +1,4 @@ -package com.njcn.event.service.majornetwork.Impl; +package com.njcn.event.common.service.impl; import cn.hutool.core.collection.CollUtil; import com.njcn.common.pojo.constant.BizParamConstant; @@ -7,12 +7,12 @@ import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.pms.api.MonitorClient; import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; import com.njcn.device.pms.pojo.param.PmsMonitorParam; -import com.njcn.event.mapper.majornetwork.EventDistributionStatisticsMapper; -import com.njcn.event.mapper.majornetwork.RmpEventDetailMapper; +import com.njcn.event.common.mapper.EventDistributionStatisticsMapper; +import com.njcn.event.common.service.EventMonitorReportService; +import com.njcn.event.common.mapper.RmpEventDetailMapper; import com.njcn.event.pojo.param.EventMonitorReportParam; import com.njcn.event.pojo.po.RmpEventDetailPO; import com.njcn.event.pojo.vo.*; -import com.njcn.event.service.majornetwork.EventMonitorReportService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventReportServiceImpl.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventReportServiceImpl.java similarity index 99% rename from pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventReportServiceImpl.java rename to pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventReportServiceImpl.java index 00ae5d872..0c5e0a6f0 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventReportServiceImpl.java +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/service/impl/EventReportServiceImpl.java @@ -1,13 +1,13 @@ -package com.njcn.event.service.majornetwork.Impl; +package com.njcn.event.common.service.impl; import cn.hutool.core.date.DateUtil; +import com.njcn.event.common.service.EventReportService; import com.njcn.event.pojo.constant.Param; import com.njcn.event.pojo.param.StatisticsParam; import com.njcn.event.pojo.po.EventDetail; import com.njcn.event.pojo.po.EventDetailNew; import com.njcn.event.pojo.vo.*; -import com.njcn.event.service.majornetwork.EventReportService; import com.njcn.influx.utils.InfluxDbUtils; import com.njcn.system.pojo.po.DictData; import lombok.RequiredArgsConstructor; diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/utils/WordUtils.java b/pqs-event/event-common/src/main/java/com/njcn/event/common/utils/WordUtils.java similarity index 98% rename from pqs-event/event-boot/src/main/java/com/njcn/event/utils/WordUtils.java rename to pqs-event/event-common/src/main/java/com/njcn/event/common/utils/WordUtils.java index 90fab2184..ece136272 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/utils/WordUtils.java +++ b/pqs-event/event-common/src/main/java/com/njcn/event/common/utils/WordUtils.java @@ -1,4 +1,4 @@ -package com.njcn.event.utils; +package com.njcn.event.common.utils; import java.io.File; import java.io.FileOutputStream; import java.math.BigInteger; @@ -28,7 +28,7 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.STStyleType; import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth; public class WordUtils { - + public static void main(String[] args)throws Exception { @@ -200,7 +200,7 @@ public class WordUtils { paragraph.setSpacingAfter(100); } - /** + /** * 返回指定格式的段落 居中型 * @param document 文档对象 */ @@ -211,8 +211,8 @@ public class WordUtils { paragraph.setVerticalAlignment(TextAlignment.CENTER); return paragraph; } - - /** + + /** * 返回指定格式的段落 居左型 * @param document 文档对象 */ @@ -223,7 +223,7 @@ public class WordUtils { return paragraph; } - + /** * 添加换行符 diff --git a/pqs-event/pom.xml b/pqs-event/pom.xml index ec9f0626a..db7b5b13c 100644 --- a/pqs-event/pom.xml +++ b/pqs-event/pom.xml @@ -13,10 +13,11 @@ event-api event-boot + event-common 8 8 pom - \ No newline at end of file + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java index d97dcab2c..23e4e6f52 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java @@ -13,7 +13,7 @@ import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.pq.pojo.vo.LineDetailDataVO; import com.njcn.event.enums.EventResponseEnum; import com.njcn.harmonic.common.pojo.dto.DeviceUnitCommDTO; -import com.njcn.harmonic.common.pojo.dto.LineDetailDataCommVO; +import com.njcn.harmonic.common.pojo.dto.HarmLineDetailDataCommDTO; import com.njcn.harmonic.common.pojo.dto.OverLimitInfoCommDTO; import com.njcn.harmonic.common.service.MonitorHarmonicReportService; import com.njcn.system.api.DicDataFeignClient; @@ -78,7 +78,7 @@ public class ExportModelController extends BaseController { @RequestPart(value ="file",required = false) MultipartFile file) throws IOException { String methodDescribe = getMethodDescribe("exportWorld"); - LineDetailDataCommVO lineDetailDataCommVO; + HarmLineDetailDataCommDTO harmLineDetailDataCommDTO; OverLimitInfoCommDTO overLimitInfoCommDTO; DeviceUnitCommDTO deviceUnitCommDTO; @@ -119,12 +119,12 @@ public class ExportModelController extends BaseController { //数据单位 deviceUnit = deviceUnitClient.lineUnitDetail(lineIndex).getData(); - lineDetailDataCommVO = BeanUtil.copyProperties(lineDto, LineDetailDataCommVO.class); + harmLineDetailDataCommDTO = BeanUtil.copyProperties(lineDto, HarmLineDetailDataCommDTO.class); overLimitInfoCommDTO = BeanUtil.copyProperties(overLimit, OverLimitInfoCommDTO.class); deviceUnitCommDTO = BeanUtil.copyProperties(deviceUnit, DeviceUnitCommDTO.class); - monitorHarmonicReportService.exportWorld(response,startTime,endTime,type,lineIndex,name,reportNumber,crmName,isUrl,file,lineDetailDataCommVO,overLimitInfoCommDTO,deviceUnitCommDTO); + monitorHarmonicReportService.exportWorld(response,startTime,endTime,type,lineIndex,name,reportNumber,crmName,isUrl,file, harmLineDetailDataCommDTO,overLimitInfoCommDTO,deviceUnitCommDTO); } } diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/mapping/ExcelRptTempMapper.xml b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/mapping/ExcelRptTempMapper.xml index a782d7fcc..006870d63 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/mapping/ExcelRptTempMapper.xml +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/mapping/ExcelRptTempMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/dto/LineDetailDataCommVO.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/dto/HarmLineDetailDataCommDTO.java similarity index 98% rename from pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/dto/LineDetailDataCommVO.java rename to pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/dto/HarmLineDetailDataCommDTO.java index 40c51b8f5..811421d9d 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/dto/LineDetailDataCommVO.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/dto/HarmLineDetailDataCommDTO.java @@ -14,7 +14,7 @@ import java.time.LocalDateTime; * @date 2026/1/17 */ @Data -public class LineDetailDataCommVO { +public class HarmLineDetailDataCommDTO { private String lineId; diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/CustomReportTableService.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/CustomReportTableService.java index 4dd6a785f..faf5f5f63 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/CustomReportTableService.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/CustomReportTableService.java @@ -3,6 +3,7 @@ package com.njcn.harmonic.common.service; import com.njcn.harmonic.pojo.param.ReportSearchParam; import javax.servlet.http.HttpServletResponse; +import java.util.Map; /** * pqs @@ -21,5 +22,5 @@ public interface CustomReportTableService { * @author qijian * @date 2022/10/18 */ - void getCustomReport(ReportSearchParam reportSearchParam, HttpServletResponse response); + void getCustomReport(ReportSearchParam reportSearchParam, Map newMap, HttpServletResponse response); } diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/MonitorHarmonicReportService.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/MonitorHarmonicReportService.java index 7bf3f873a..64853e817 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/MonitorHarmonicReportService.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/MonitorHarmonicReportService.java @@ -1,7 +1,7 @@ package com.njcn.harmonic.common.service; import com.njcn.harmonic.common.pojo.dto.DeviceUnitCommDTO; -import com.njcn.harmonic.common.pojo.dto.LineDetailDataCommVO; +import com.njcn.harmonic.common.pojo.dto.HarmLineDetailDataCommDTO; import com.njcn.harmonic.common.pojo.dto.OverLimitInfoCommDTO; import org.springframework.web.multipart.MultipartFile; @@ -25,5 +25,5 @@ public interface MonitorHarmonicReportService { String crmName, Boolean isUrl, MultipartFile file, - LineDetailDataCommVO lineDto, OverLimitInfoCommDTO overLimitData, DeviceUnitCommDTO deviceUnit); + HarmLineDetailDataCommDTO lineDto, OverLimitInfoCommDTO overLimitData, DeviceUnitCommDTO deviceUnit); } diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java index c0e456382..e07a61c56 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java @@ -13,6 +13,7 @@ import cn.hutool.json.JSONConfig; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONTokener; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.baomidou.mybatisplus.extension.toolkit.SqlRunner; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; @@ -91,7 +92,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { private final String VOLTAGE_DEV = "VOLTAGE_DEV"; @Override - public void getCustomReport(ReportSearchParam reportSearchParam, HttpServletResponse response) { + public void getCustomReport(ReportSearchParam reportSearchParam,Map newMap, HttpServletResponse response) { TimeInterval timeInterval = new TimeInterval(); ExcelRptTemp excelRptTemp = excelRptTempMapper.selectById(reportSearchParam.getTempId()); if (Objects.isNull(excelRptTemp)) { @@ -99,7 +100,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { } if (Objects.isNull(reportSearchParam.getCustomType())) { //通用报表 - analyzeReport(reportSearchParam, excelRptTemp, response); + analyzeReport(reportSearchParam, excelRptTemp, newMap,response); log.info("报表执行时间{}秒", timeInterval.intervalSecond()); } @@ -113,7 +114,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { * @date 2023/10/8 */ - private void analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp, HttpServletResponse response) { + private void analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp,Map newMap, HttpServletResponse response) { //定义一个线程集合 List> futures = new ArrayList<>(); //指标 @@ -162,7 +163,9 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { Map> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod)); //每张表开启一个独立线程查询 futures.add(executorService.submit(() -> { + DynamicDataSourceContextHolder.push("sjzx"); //avg.max,min,cp95 + try { valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> { //相别分组 Map> phaseMap = valueTypeVal.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getPhase)); @@ -180,8 +183,10 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { }); }); + }finally { + DynamicDataSourceContextHolder.poll(); + } })); - }); // 等待所有任务完成 @@ -197,7 +202,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { //处理指标最终判定合格还是不合格 dealTargetResult(assNoPassMap, limitTargetMapX, endList); } - resultAssemble(endList,reportSearchParam,terminalList,jsonArray); + resultAssemble(endList,reportSearchParam,terminalList,newMap,jsonArray); //导出自定义报表 downReport(jsonArray, response); } @@ -685,20 +690,13 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { * @author cdf * @date 2026/1/16 */ - public void resultAssemble(List endList,ReportSearchParam reportSearchParam,List terminalList,JSONArray jsonArray){ + public void resultAssemble(List endList,ReportSearchParam reportSearchParam,List terminalList,Map finalTerminalMap,JSONArray jsonArray){ if (CollUtil.isNotEmpty(endList)) { //数据单位信息 Map unit = unitMap(reportSearchParam); //进行反向赋值到模板 //1、根据itemName分组 Map> assMap = endList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getItemName)); - //处理台账信息 - Map finalTerminalMap; - if (CollUtil.isNotEmpty(terminalList)) { - finalTerminalMap = convertKeysToUpperCase(commTerminalGeneralClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData()); - }else { - finalTerminalMap = new HashMap<>(); - } //2、把itemName的value赋给v和m jsonArray.forEach(item -> { JSONObject jsonObject = (JSONObject) item; @@ -777,7 +775,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { /** * map key转大写 */ - public static Map convertKeysToUpperCase(Map originalMap) { + public Map convertKeysToUpperCase(Map originalMap) { Map newMap = new HashMap<>(); for (Map.Entry entry : originalMap.entrySet()) { newMap.put(entry.getKey().toUpperCase(), entry.getValue()); diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/MonitorCommReportServiceImpl.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/MonitorCommReportServiceImpl.java index 7de909629..c01f30c63 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/MonitorCommReportServiceImpl.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/MonitorCommReportServiceImpl.java @@ -561,8 +561,6 @@ public class MonitorCommReportServiceImpl implements MonitorCommReportService { int finalI = i; collect.forEach((key, value) -> { Map> valueTypeMap = value.stream().collect(Collectors.groupingBy(RStatDataIDPO::getValueType)); - - ReportValue reportValue = new ReportValue(); String attribute = ""; if (fly) { diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/MonitorHarmonicReportServiceImpl.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/MonitorHarmonicReportServiceImpl.java index 796379621..63952d924 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/MonitorHarmonicReportServiceImpl.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/MonitorHarmonicReportServiceImpl.java @@ -10,7 +10,6 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.utils.PubUtils; -import com.njcn.device.biz.pojo.po.PqsDeviceUnit; import com.njcn.device.pms.api.MonitorClient; import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pq.api.DeviceUnitClient; @@ -20,7 +19,7 @@ import com.njcn.harmonic.pojo.po.report.EnumPass; import com.njcn.harmonic.pojo.po.report.Pass; import com.njcn.harmonic.pojo.po.report.ReportTarget; import com.njcn.harmonic.pojo.vo.ReportValue; -import com.njcn.harmonic.common.pojo.dto.LineDetailDataCommVO; +import com.njcn.harmonic.common.pojo.dto.HarmLineDetailDataCommDTO; import com.njcn.harmonic.common.pojo.dto.OverLimitInfoCommDTO; import com.njcn.harmonic.common.service.MonitorCommReportService; import com.njcn.harmonic.common.service.MonitorHarmonicReportService; @@ -115,7 +114,7 @@ public class MonitorHarmonicReportServiceImpl implements MonitorHarmonicReportSe String crmName, Boolean isUrl, MultipartFile file, - LineDetailDataCommVO lineDto, OverLimitInfoCommDTO overLimit, DeviceUnitCommDTO deviceUnit) { + HarmLineDetailDataCommDTO lineDto, OverLimitInfoCommDTO overLimit, DeviceUnitCommDTO deviceUnit) { //获取监测点信息 String bdname; Integer pttype; @@ -187,8 +186,6 @@ public class MonitorHarmonicReportServiceImpl implements MonitorHarmonicReportSe param.setEndTime(DateUtil.format(endDate, "yyyy-MM-dd HH:mm:ss")); } param.setB(day == 0); - - if (Objects.isNull(overLimit)) { throw new BusinessException(CommonResponseEnum.FAIL,"限值获取为空"); } @@ -1198,7 +1195,7 @@ public class MonitorHarmonicReportServiceImpl implements MonitorHarmonicReportSe String strMap = "$RI"; String strCurrent = strMap + (i + 1) + "%"; - // 基波电压含有率 + // 谐波电流幅值 strCurrentA = judgeNull(this.listICurrent.get(i).getList().get(0).getCp95Value()); strCurrentB = judgeNull(this.listICurrent.get(i).getList().get(1).getCp95Value()); strCurrentC = judgeNull(this.listICurrent.get(i).getList().get(2).getCp95Value());