From 681ec99f23667750e1a99022e945864e10551ab6 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Mon, 8 Jun 2026 10:15:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(event):=20=E6=B7=BB=E5=8A=A0=E6=9A=82?= =?UTF-8?q?=E6=80=81=E4=BA=8B=E4=BB=B6=E6=95=B0=E6=8D=AE=E5=88=86=E6=9E=90?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在CsEventPO中新增暂态事件相关字段:暂态事件落点、暂降源关系、瞬态有效值和电压变化 - 扩展DataGroupEventVO和EventDetailVO以支持事件落点、暂降原因、暂降类型等新属性 - 重构CsEquipmentDeliveryServiceImpl中的数据集添加逻辑,实现按序号排序的数据集管理 - 更新设备数据集结构,将原有数据类型调整为实时、历史、暂态、运行等分类 - 修改CsUpgradeLogsController将GET请求改为POST请求以支持请求体参数 - 在LineTargetServiceImpl中修复数据类型转换问题,确保toUpperCase调用正确 - 优化统计数据显示逻辑,在StatisticsDataDataServiceImpl中修复完整性计算公式 - 为EleEpdPqdMapper添加数据源注解以支持多数据库操作 --- .../csdevice/pojo/vo/DataGroupEventVO.java | 12 ++++++ .../csdevice/pojo/vo/DeviceManagerVO.java | 3 ++ .../equipment/CsUpgradeLogsController.java | 7 +++- .../impl/CsEquipmentDeliveryServiceImpl.java | 38 +++++++++++-------- .../njcn/csharmonic/pojo/po/CsEventPO.java | 21 ++++++++++ .../csharmonic/pojo/vo/EventDetailVO.java | 9 +++++ .../mapper/mapping/CsEventUserPOMapper.xml | 7 +++- .../service/impl/LineTargetServiceImpl.java | 4 +- .../impl/StatisticsDataDataServiceImpl.java | 4 +- .../CsEventMonitorReportServiceImpl.java | 4 +- .../njcn/cssystem/mapper/EleEpdPqdMapper.java | 2 + 11 files changed, 86 insertions(+), 25 deletions(-) diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupEventVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupEventVO.java index 52e812e..5d78e3e 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupEventVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DataGroupEventVO.java @@ -70,4 +70,16 @@ public class DataGroupEventVO { @ApiModelProperty("波形路径") private String wavePath; + @ApiModelProperty("事件落点") + private String landPoint; + + @ApiModelProperty("暂降原因") + private String advanceReason; + + @ApiModelProperty("暂降类型") + private String advanceType; + + @ApiModelProperty("暂降源与监测位置关系 0-未知、1-上游、2-下游") + private String sagSource; + } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DeviceManagerVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DeviceManagerVO.java index e94d1fb..592c21f 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DeviceManagerVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DeviceManagerVO.java @@ -62,5 +62,8 @@ public class DeviceManagerVO { @ApiModelProperty(value = "数据类型 rt:实时数据 history:历史数据") private String type; + + @ApiModelProperty(value = "排序") + private Integer sort; } } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsUpgradeLogsController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsUpgradeLogsController.java index 4c3630e..0857e66 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsUpgradeLogsController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsUpgradeLogsController.java @@ -16,7 +16,10 @@ import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -45,7 +48,7 @@ public class CsUpgradeLogsController extends BaseController { } @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.ADD) - @GetMapping("/getByDevId") + @PostMapping("/getByDevId") @ApiOperation("查询指定devId的所有升级日志") @ApiImplicitParam(name = "devId", value = "装置Id", required = true) public HttpResult> getByDevId(@RequestBody String devId) { diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index 9adbf2e..1759919 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -511,6 +511,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl strings = JSONArray.parseArray(role, String.class); if (strings.contains(AppRoleEnum.ENGINEERING_USER.getCode()) || strings.contains(AppRoleEnum.OPERATION_MANAGER.getCode()) || strings.contains(AppRoleEnum.ROOT.getCode())) { - addDataSet(dataSetList, item, "模块数据", "moduleData"); + addDataSet(dataSetList, item, "模块数据", "moduleData",3); } + addDataSet(dataSetList, item, "历史数据", "trenddata",2); + addDataSet(dataSetList, item, "暂态数据", "event",4); + addDataSet(dataSetList, item, "运行数据", "devRunTrend",5); } else { - addDataSet(dataSetList, item, "电度数据", "kilowattHour"); + addDataSet(dataSetList, item, "实时数据", "realtimedata",1); + addDataSet(dataSetList, item, "历史数据", "trenddata",2); + addDataSet(dataSetList, item, "暂态数据", "event",4); + addDataSet(dataSetList, item, "运行数据", "devRunTrend",5); + addDataSet(dataSetList, item, "电度数据", "kilowattHour",6); } if (isPortableDevice) { // 便携式设备特有的数据集 - addDataSet(dataSetList, item, "实时数据", "realtimedata"); - addDataSet(dataSetList, item, "暂态事件", "event"); - addDataSet(dataSetList, item, "测试项日志", "items"); + addDataSet(dataSetList, item, "测试项数据", "items",7); } - if (isCLdDevice) { - // 云前置数据集 - addDataSet(dataSetList, item, "实时数据", "realtimedata"); - addDataSet(dataSetList, item, "暂态事件", "event"); - } - addDataSet(dataSetList, item, "运行趋势", "devRunTrend"); +// if (isCLdDevice) { +// // 云前置数据集 +// addDataSet(dataSetList, item, "实时数据", "realtimedata"); +// addDataSet(dataSetList, item, "暂态数据", "event"); +// } + deviceManagerVo.setDataLevel(item.getDataLevel()); } + if (CollUtil.isNotEmpty(dataSetList)) { + dataSetList.sort(Comparator.comparing(DeviceManagerVO.DataSetVO::getSort)); + } deviceManagerVo.setDataSetList(dataSetList); List csLinePOS = csLinePOService.findByNdid(csEquipmentDeliveryPo.getNdid()); if (!csLinePOS.isEmpty()) { @@ -554,11 +561,12 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl dataSetList, CsDataSet item, String name, String type) { + private void addDataSet(List dataSetList, CsDataSet item, String name, String type, Integer sort) { DeviceManagerVO.DataSetVO dataSetVO = new DeviceManagerVO.DataSetVO(); dataSetVO.setId(item.getId()); dataSetVO.setName(name); dataSetVO.setType(type); + dataSetVO.setSort(sort); dataSetList.add(dataSetVO); } diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsEventPO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsEventPO.java index 4df70da..d03356c 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsEventPO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/po/CsEventPO.java @@ -142,6 +142,27 @@ public class CsEventPO extends BaseEntity { @TableField(value = "advance_type") private String advanceType; + /** + * 暂态事件落点(A区/B区/C区/D区;解析失败或未匹配返回 null) + */ @TableField(value = "land_point") private String landPoint; + + /** + * 暂降源与监测位置关系 0-未知、1-上游、2-下游 + */ + @TableField(value = "sag_source") + private String sagSource; + + /** + * 瞬态-有效值 + */ + @TableField(value = "rms") + private Double rms; + + /** + * 瞬态-电压变化 + */ + @TableField(value = "uchg") + private Double uchg; } \ No newline at end of file diff --git a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/EventDetailVO.java b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/EventDetailVO.java index 13e0aca..7c4d941 100644 --- a/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/EventDetailVO.java +++ b/cs-harmonic/cs-harmonic-api/src/main/java/com/njcn/csharmonic/pojo/vo/EventDetailVO.java @@ -139,4 +139,13 @@ public class EventDetailVO { @ApiModelProperty("事件落点") private String landPoint; + @ApiModelProperty("暂降原因") + private String advanceReason; + + @ApiModelProperty("暂降类型") + private String advanceType; + + @ApiModelProperty("暂降源与监测位置关系 0-未知、1-上游、2-下游") + private String sagSource; + } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml index d470216..c378b77 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/mapper/mapping/CsEventUserPOMapper.xml @@ -169,7 +169,10 @@ b.LEVEL LEVEL, b.location location, c.dev_type devType, - b.land_point landPoint + b.land_point landPoint, + b.advance_reason advanceReason, + b.advance_type advanceType, + b.sag_source sagSource ,d.NAME lineName @@ -240,7 +243,7 @@ select DISTINCT b.id id, b.device_id deviceId,b.line_id lineId,b.code code, b.start_time startTime,b.tag tag ,b.wave_path wavePath,b.instant_pics,b.rms_pics , b.type type,b.level level,b.location location,b.cl_did clDid - ,d.name lineName + ,d.name lineName,b.advance_reason advanceReason,b.advance_type advanceType,b.sag_source sagSource from cs_event b left join cs_line d on d.line_id=b.line_id where 1=1 diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java index ae1dc2d..70fada4 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java @@ -272,7 +272,7 @@ public class LineTargetServiceImpl implements ILineTargetService { */ public CsRtDataVO getLineRtData(String id,String lineId, String tableName, String columnName, String phasic, String dataType, String target, String cldId) { CsRtDataVO csRtDataVO = new CsRtDataVO(); - StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,tableName,columnName,phasic,dataType,cldId); + StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,tableName,columnName,phasic,dataType.toUpperCase(),cldId); if(Objects.isNull(statisticalDataDTO)){ statisticalDataDTO = new StatisticalDataDTO(); statisticalDataDTO.setLineId(lineId); @@ -304,7 +304,7 @@ public class LineTargetServiceImpl implements ILineTargetService { public CsRtDataVO getLineRtDataNew(String id,String lineId, String tableName, String columnName, String phasic, String dataType, String target,String uint) { CsRtDataVO csRtDataVO = new CsRtDataVO(); String clDid = influxDbParamUtil.getClDidByLineId(lineId); - StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,tableName,columnName,phasic,dataType,clDid); + StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,tableName,columnName,phasic,dataType.toUpperCase(),clDid); if(Objects.isNull(statisticalDataDTO)){ statisticalDataDTO = new StatisticalDataDTO(); statisticalDataDTO.setLineId(lineId); diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StatisticsDataDataServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StatisticsDataDataServiceImpl.java index d9429ab..9ca9347 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StatisticsDataDataServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StatisticsDataDataServiceImpl.java @@ -154,7 +154,7 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService BigDecimal.valueOf(l1.stream().mapToDouble(RStatIntegrityD::getDueTime).sum()), 2, RoundingMode.HALF_UP ).doubleValue(); - vo.setIntegrity(ratio); + vo.setIntegrity(Math.max(ratio,100.0)); } else { vo.setIntegrity(0.0); } @@ -163,7 +163,7 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService if (CollectionUtil.isNotEmpty(l2)) { int onlineMin = l2.stream().mapToInt(RStatOnlineRateD::getOnlineMin).sum(); double ratio = new BigDecimal(onlineMin * 100.0 / (1440 * l2.size())).setScale(2,RoundingMode.HALF_UP).doubleValue(); - vo.setOnlineRate(ratio); + vo.setOnlineRate(Math.max(ratio,100.0)); } else { vo.setOnlineRate(0.0); } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/CsEventMonitorReportServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/CsEventMonitorReportServiceImpl.java index a710620..23e25d1 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/CsEventMonitorReportServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/event/CsEventMonitorReportServiceImpl.java @@ -7,14 +7,13 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.njcn.csdevice.api.CsLineFeignClient; import com.njcn.csdevice.pojo.vo.LineDetailDataVO; import com.njcn.csharmonic.service.event.CsEventMonitorReportService; -import com.njcn.echarts.util.DrawPicUtil; import com.njcn.event.common.pojo.dto.LineDetailDataCommDTO; import com.njcn.event.common.service.CommMonitorEventReportService; import com.njcn.event.pojo.param.ExportParam; -import com.njcn.system.api.DicDataFeignClient; import lombok.RequiredArgsConstructor; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.springframework.stereotype.Service; + import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.ParseException; @@ -43,6 +42,7 @@ public class CsEventMonitorReportServiceImpl implements CsEventMonitorReportServ LineDetailDataCommDTO lineDetailDataCommDTO = new LineDetailDataCommDTO(); LineDetailDataVO lineDetailDataVO = csLineFeignClient.getLineDetailData(exportParam.getLineId()).getData(); BeanUtil.copyProperties(lineDetailDataVO,lineDetailDataCommDTO); + lineDetailDataCommDTO.setIsDip(true); monitorEventReportService.getLineExport(exportParam,lineDetailDataCommDTO, response); } } diff --git a/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/mapper/EleEpdPqdMapper.java b/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/mapper/EleEpdPqdMapper.java index d60a130..3ce72f9 100644 --- a/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/mapper/EleEpdPqdMapper.java +++ b/cs-system/cs-system-boot/src/main/java/com/njcn/cssystem/mapper/EleEpdPqdMapper.java @@ -1,5 +1,6 @@ package com.njcn.cssystem.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.cssystem.pojo.po.EleEpdPqd; @@ -12,6 +13,7 @@ import com.njcn.cssystem.pojo.po.EleEpdPqd; * @author xuyang * @since 2023-05-24 */ +@DS("sjzx") public interface EleEpdPqdMapper extends BaseMapper {