fix(data): 修复事件统计查询和数据完整性处理问题
- 修正事件统计查询中allNum字段的计算逻辑,从COUNT(*)改为按特定标签求和 - 在事件详情VO中新增ITIC描述和F47描述字段 - 补充通信状态数据的第一条记录,确保从0点开始的数据连续性 - 修复数据完整性服务中线路间隔为null或0时的处理逻辑,设置默认值为1
This commit is contained in:
@@ -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<PqsCommunicateDto> 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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理无数据的情况
|
||||
*/
|
||||
|
||||
@@ -68,8 +68,8 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
|
||||
List<CsLinePO> 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();
|
||||
|
||||
@@ -130,4 +130,10 @@ public class EventDetailVO {
|
||||
@ApiModelProperty("逻辑子设备编码")
|
||||
private Integer clDid;
|
||||
|
||||
@ApiModelProperty("ITIC描述")
|
||||
private String itic;
|
||||
|
||||
@ApiModelProperty("F47描述")
|
||||
private String f47;
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user