From 3990ad2b9ad256f4c0e04b18bf7db9b04b29a0f5 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Thu, 30 Apr 2026 15:49:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(data):=20=E4=BF=AE=E5=A4=8D=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E7=BB=9F=E8=AE=A1=E6=9F=A5=E8=AF=A2=E5=92=8C=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AE=8C=E6=95=B4=E6=80=A7=E5=A4=84=E7=90=86=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正事件统计查询中allNum字段的计算逻辑,从COUNT(*)改为按特定标签求和 - 在事件详情VO中新增ITIC描述和F47描述字段 - 补充通信状态数据的第一条记录,确保从0点开始的数据连续性 - 修复数据完整性服务中线路间隔为null或0时的处理逻辑,设置默认值为1 --- .../impl/InfluxdbCsCommunicateServiceImpl.java | 17 +++++++++++++++-- .../impl/RStatIntegrityDServiceImpl.java | 4 ++-- .../njcn/csharmonic/pojo/vo/EventDetailVO.java | 6 ++++++ .../mapper/mapping/CsEventUserPOMapper.xml | 2 +- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/InfluxdbCsCommunicateServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/InfluxdbCsCommunicateServiceImpl.java index bdbe4dc..fd1d6a1 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/InfluxdbCsCommunicateServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/InfluxdbCsCommunicateServiceImpl.java @@ -27,7 +27,6 @@ import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; /** @@ -95,6 +94,20 @@ public class InfluxdbCsCommunicateServiceImpl implements ICsCommunicateService { List result = new ArrayList<>(); int lastIndex = list.size() - 1; + // 获取第一条数据,补充0点数据(状态与第一条相反) + PqsCommunicate firstItem = list.get(0); + PqsCommunicateDto firstData = new PqsCommunicateDto(); + firstData.setTime(lineParam.getStartTime() + " 00:00:00"); + firstData.setDevId(lineParam.getLineId().get(0)); + if (Objects.equals(firstItem.getType(), 0)) { + firstData.setType(1); + firstData.setDescription("通讯正常"); + } else { + firstData.setType(0); + firstData.setDescription("通讯中断"); + } + result.add(firstData); + for (int i = 0; i < list.size(); i++) { PqsCommunicate item = list.get(i); PqsCommunicateDto dto = convertToDto(item); @@ -106,10 +119,10 @@ public class InfluxdbCsCommunicateServiceImpl implements ICsCommunicateService { result.add(endData); } } - return result; } + /** * 处理无数据的情况 */ diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RStatIntegrityDServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RStatIntegrityDServiceImpl.java index e6f0eff..a7d7739 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RStatIntegrityDServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/RStatIntegrityDServiceImpl.java @@ -68,8 +68,8 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl csLinePOList = csLineFeignClient.getLinesByDevList(devIdList).getData(); csLinePOList.forEach(item->{ //没有统计间隔就计算下一次监测点 - if (Objects.isNull(item.getLineInterval())) { - return; + if (Objects.isNull(item.getLineInterval()) || item.getLineInterval() == 0) { + item.setLineInterval(1); } //应收数据 int dueCount = 1440 / item.getLineInterval(); 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 5611de5..3deb8e0 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 @@ -130,4 +130,10 @@ public class EventDetailVO { @ApiModelProperty("逻辑子设备编码") private Integer clDid; + @ApiModelProperty("ITIC描述") + private String itic; + + @ApiModelProperty("F47描述") + private String f47; + } 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 a33bbe8..3bdf03e 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 @@ -374,7 +374,7 @@ SUM(CASE WHEN tag = 'Evt_Sys_DipStr' THEN 1 ELSE 0 END) AS eventDown, SUM(CASE WHEN tag = 'Evt_Sys_IntrStr' THEN 1 ELSE 0 END) AS eventOff, SUM(CASE WHEN tag = 'Evt_Sys_SwlStr' THEN 1 ELSE 0 END) AS eventUp, - COUNT(*) AS allNum + SUM(CASE WHEN tag IN ('Evt_Sys_DipStr', 'Evt_Sys_IntrStr', 'Evt_Sys_SwlStr') THEN 1 ELSE 0 END) AS allNum FROM cs_event WHERE