fix(alarm): 修复报警服务中的消息发送逻辑

- 移除注释掉的appNotificationService调用代码
- 修复事件服务中消息发送参数的条件判断逻辑
- 更新设备模型服务中监测点模板生成逻辑,支持不同设备类型
- 修复心跳服务中设备离线通知逻辑,暂时关闭消息发送功能
- 添加对直接连接设备和便携式设备的特殊处理逻辑
- 优化监测点名称生成规则,增加输出侧监测点支持
This commit is contained in:
xy
2026-07-14 14:42:53 +08:00
parent c6f46cc319
commit 3c369d0244
4 changed files with 49 additions and 31 deletions

View File

@@ -43,6 +43,7 @@ import com.njcn.system.pojo.param.CsWaveParam;
import com.njcn.system.pojo.param.EleEpdPqdParam;
import com.njcn.system.pojo.param.EleEvtParam;
import com.njcn.system.pojo.po.EleEpdPqd;
import com.njcn.system.pojo.po.SysDicTreePO;
import com.njcn.system.pojo.vo.DictTreeVO;
import com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor;
@@ -125,7 +126,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
//2.录入数据集、详细数据(主设备、模块、监测设备、便携式设备...)
analysisDataSet(templateDto,csDevModelPo.getId());
//3.录入监测点模板表(记录当前模板有几个监测点治理类型的模板目前规定1个监测点电能质量模板根据逻辑子设备来)
addCsLineModel(templateDto,csDevModelPo.getId());
addCsLineModel(templateDto,csDevModelPo.getId(),devType);
//4.如果是云前置的模板录入,重新录入完需要将模板关系信息重新录入
if (Objects.equals(devType,DicDataEnum.DEV_CLD.getCode())) {
List<CsEquipmentDeliveryPO> list = eequipmentFeignClient.getAll().getData();
@@ -1205,7 +1206,7 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
/**
* 根据模板文件来录入监测点模板
*/
private void addCsLineModel(TemplateDto templateDto,String pId) {
private void addCsLineModel(TemplateDto templateDto,String pId,String devType) {
List<CsLineModel> result = new ArrayList<>();
//fixme 先用数据类型来区分模板的类型
if (templateDto.getDataList().contains("Apf") || templateDto.getDataList().contains("Dvr")){
@@ -1217,19 +1218,36 @@ public class CsDevModelServiceImpl implements ICsDevModelService {
result.add(csLineModel);
} else {
List<ClDevDto> list = templateDto.getClDevDtoList();
list.forEach(item->{
CsLineModel csLineModel = new CsLineModel();
csLineModel.setLineId(IdUtil.fastSimpleUUID());
csLineModel.setPid(pId);
if (Objects.equals(item.getClDid(),1) || Objects.equals(item.getLocation(), TypeEnum.GUID.getCode())){
csLineModel.setName("电网侧监测点");
csLineModel.setPosition(dicDataFeignClient.getDicDataByCode(DicDataEnum.GRID_SIDE.getCode()).getData().getId());
} else if (Objects.equals(item.getClDid(),2) || Objects.equals(item.getLocation(), TypeEnum.LOAD.getCode())){
csLineModel.setName("负载侧监测点");
csLineModel.setPosition(dicDataFeignClient.getDicDataByCode(DicDataEnum.LOAD_SIDE.getCode()).getData().getId());
}
result.add(csLineModel);
});
//根据设备型号获取设备类型,根据设备类型生成监测点模板表数据
DictTreeVO vo1 = dictTreeFeignClient.queryByCode(devType).getData();
SysDicTreePO po1 = dictTreeFeignClient.queryById(vo1.getPid()).getData();
if (Objects.equals(po1.getCode(),"Direct_Connected_Device") || Objects.equals(po1.getCode(),"Portable")){
list.forEach(item->{
CsLineModel csLineModel = new CsLineModel();
csLineModel.setLineId(IdUtil.fastSimpleUUID());
csLineModel.setPid(pId);
if (Objects.equals(item.getClDid(),1) || Objects.equals(item.getLocation(), TypeEnum.GUID.getCode())){
csLineModel.setName("电网侧监测点");
csLineModel.setPosition(dicDataFeignClient.getDicDataByCode(DicDataEnum.GRID_SIDE.getCode()).getData().getId());
} else if (Objects.equals(item.getClDid(),2) || Objects.equals(item.getLocation(), TypeEnum.LOAD.getCode())){
csLineModel.setName("负载侧监测点");
csLineModel.setPosition(dicDataFeignClient.getDicDataByCode(DicDataEnum.LOAD_SIDE.getCode()).getData().getId());
} else {
csLineModel.setName("输出侧监测点");
csLineModel.setPosition(dicDataFeignClient.getDicDataByCode(DicDataEnum.OUTPUT_SIDE.getCode()).getData().getId());
}
result.add(csLineModel);
});
} else {
list.forEach(item->{
CsLineModel csLineModel = new CsLineModel();
csLineModel.setLineId(IdUtil.fastSimpleUUID());
csLineModel.setPid(pId);
csLineModel.setName(item.getClDid() + "#监测点");
csLineModel.setPosition("");
result.add(csLineModel);
});
}
}
if (CollectionUtil.isNotEmpty(result)){
csLineModelService.addList(result);

View File

@@ -122,7 +122,8 @@ public class CsHeartServiceImpl implements ICsHeartService {
csEquipmentDeliveryService.updateRunStatusBynDid(nDid, AccessEnum.OFFLINE.getCode());
//装置调整为注册状态
csEquipmentDeliveryService.updateStatusBynDid(nDid,AccessEnum.REGISTERED.getCode(),null,null);
sendMessage(nDid);
//设备离线通知关闭
//sendMessage(nDid);
//记录装置掉线时间
PqsCommunicateDto dto = new PqsCommunicateDto();
dto.setTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));