feat(event): 添加暂态事件数据分析功能并优化数据集排序

- 在CsEventPO中新增暂态事件相关字段:暂态事件落点、暂降源关系、瞬态有效值和电压变化
- 扩展DataGroupEventVO和EventDetailVO以支持事件落点、暂降原因、暂降类型等新属性
- 重构CsEquipmentDeliveryServiceImpl中的数据集添加逻辑,实现按序号排序的数据集管理
- 更新设备数据集结构,将原有数据类型调整为实时、历史、暂态、运行等分类
- 修改CsUpgradeLogsController将GET请求改为POST请求以支持请求体参数
- 在LineTargetServiceImpl中修复数据类型转换问题,确保toUpperCase调用正确
- 优化统计数据显示逻辑,在StatisticsDataDataServiceImpl中修复完整性计算公式
- 为EleEpdPqdMapper添加数据源注解以支持多数据库操作
This commit is contained in:
xy
2026-06-08 10:15:18 +08:00
parent 16c0620dd3
commit 681ec99f23
11 changed files with 86 additions and 25 deletions

View File

@@ -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;
}

View File

@@ -62,5 +62,8 @@ public class DeviceManagerVO {
@ApiModelProperty(value = "数据类型 rt:实时数据 history:历史数据")
private String type;
@ApiModelProperty(value = "排序")
private Integer sort;
}
}

View File

@@ -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<List<CsUpgradeLogs>> getByDevId(@RequestBody String devId) {

View File

@@ -511,6 +511,7 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
dataSetVO.setName(item.getAnotherName());
dataSetVO.setType("rt");
dataSetList.add(dataSetVO);
dataSetVO.setSort(item.getIdx());
deviceManagerVo.setDataLevel(item.getDataLevel());
}
} else {
@@ -518,33 +519,39 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
boolean isPortableDevice = DataParam.portableDevType.equals(csEquipmentDeliveryPo.getDevType());
boolean isCLdDevice = DicDataEnum.DEV_CLD.getCode().equals(dictTreeFeignClient.queryById(csEquipmentDeliveryPo.getDevType()).getData().getCode());
addDataSet(dataSetList, item, "最新数据", "rt");
addDataSet(dataSetList, item, "历史统计数据", "history");
addDataSet(dataSetList, item, "历史趋势", "trenddata");
addDataSet(dataSetList, item, "最新数据", "rt",0);
if (item.getClDev() == 0 && item.getType() == 0) {
//限制角色展示
String role = RequestUtil.getUserRole();
List<String> 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<CsLinePO> csLinePOS = csLinePOService.findByNdid(csEquipmentDeliveryPo.getNdid());
if (!csLinePOS.isEmpty()) {
@@ -554,11 +561,12 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
}
}
private void addDataSet(List<DeviceManagerVO.DataSetVO> dataSetList, CsDataSet item, String name, String type) {
private void addDataSet(List<DeviceManagerVO.DataSetVO> 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);
}