告警参数和辅控逻辑优化

This commit is contained in:
weitang 2025-04-30 12:08:05 +08:00
parent 68b03ba53f
commit b1ec3216a3
9 changed files with 132 additions and 15 deletions

View File

@ -2,6 +2,7 @@ package com.yfd.platform.modules.auxcontrol.controller;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.annotation.Log; import com.yfd.platform.annotation.Log;
import com.yfd.platform.config.ResponseResult; import com.yfd.platform.config.ResponseResult;
import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter; import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter;
@ -30,6 +31,29 @@ public class DeviceAlarmParameterController {
@Resource @Resource
private IDeviceAlarmParameterService deviceAlarmParameterService; private IDeviceAlarmParameterService deviceAlarmParameterService;
/**********************************
* 用途说明: 分页查询变电站辅控设备告警参数设置
* 参数说明
* alarmType 告警类型
* alarmLevel 告警等级
* deviceId 设备ID
* signalId 信号id
* pageNum 当前页
* 返回值说明: com.yfd.platform.config.ResponseResult 返回分页查询结果
***********************************/
@GetMapping("/page")
@ApiOperation("分页查询变电站辅控设备告警参数设置")
public ResponseResult getDeviceAlarmParameterPage(String meterDeviceId, String signalId, String alarmType, String alarmLevel, Page<DeviceAlarmParameter> page) {
//参数校验 设备id 信号id不能为空
if (StrUtil.isBlank(meterDeviceId) || StrUtil.isBlank(signalId)) {
return ResponseResult.error("参数为空");
}
//分页查询
Page<DeviceAlarmParameter> deviceAlarmParameterPage = deviceAlarmParameterService.getDeviceAlarmParameterPage(meterDeviceId, signalId, alarmType, alarmLevel, page);
return ResponseResult.successData(deviceAlarmParameterPage);
}
/*********************************** /***********************************
* 用途说明新增变电站辅控设备信息 * 用途说明新增变电站辅控设备信息
* 参数说明 * 参数说明

View File

@ -49,12 +49,12 @@ public class DeviceSignalController {
***********************************/ ***********************************/
@GetMapping("/page") @GetMapping("/page")
@ApiOperation("分页查询变电站辅控设备信号") @ApiOperation("分页查询变电站辅控设备信号")
public ResponseResult getDeviceSignalPage(String mainDeviceId, String componentId, String signalName, Page<DeviceSignal> page) { public ResponseResult getDeviceSignalPage(String mainDeviceId, String mainComponentId, String signalName, Page<DeviceSignal> page) {
//参数校验 辅控设备ID不能为空 //参数校验 辅控设备ID不能为空
if (StrUtil.isBlank(componentId)) { if (StrUtil.isBlank(mainComponentId)) {
return ResponseResult.error("参数为空"); return ResponseResult.error("参数为空");
} }
Page<DeviceSignal> deviceSignalPage = deviceSignalService.getDeviceSignalPage(mainDeviceId,componentId, signalName, page); Page<DeviceSignal> deviceSignalPage = deviceSignalService.getDeviceSignalPage(mainDeviceId,mainComponentId, signalName, page);
return ResponseResult.successData(deviceSignalPage); return ResponseResult.successData(deviceSignalPage);
} }

View File

@ -35,6 +35,11 @@ public class DeviceSignal implements Serializable {
@TableId(type = IdType.ASSIGN_UUID) @TableId(type = IdType.ASSIGN_UUID)
private String signalId; private String signalId;
/**
* 所属系统01-在线监测 02-消防系统 03-安防系统 04-动环系统 05-锁控系统 06-辅控系统 07-照明系统
*/
private String systemcode;
/** /**
* 辅控设备ID--fk_meter_device * 辅控设备ID--fk_meter_device
*/ */

View File

@ -1,5 +1,6 @@
package com.yfd.platform.modules.auxcontrol.mapper; package com.yfd.platform.modules.auxcontrol.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter; import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -13,4 +14,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface DeviceAlarmParameterMapper extends BaseMapper<DeviceAlarmParameter> { public interface DeviceAlarmParameterMapper extends BaseMapper<DeviceAlarmParameter> {
Page<DeviceAlarmParameter> getDeviceAlarmParameterPage(String meterDeviceId, String signalId, String alarmType, String alarmLevel, Page<DeviceAlarmParameter> page);
} }

View File

@ -1,5 +1,6 @@
package com.yfd.platform.modules.auxcontrol.service; package com.yfd.platform.modules.auxcontrol.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter; import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -27,4 +28,6 @@ public interface IDeviceAlarmParameterService extends IService<DeviceAlarmParame
***********************************/ ***********************************/
boolean updateDeviceAlarmParameter(DeviceAlarmParameter deviceAlarmParameter); boolean updateDeviceAlarmParameter(DeviceAlarmParameter deviceAlarmParameter);
Page<DeviceAlarmParameter> getDeviceAlarmParameterPage(String meterDeviceId, String signalId, String alarmType, String alarmLevel, Page<DeviceAlarmParameter> page);
} }

View File

@ -1,11 +1,14 @@
package com.yfd.platform.modules.auxcontrol.service.impl; package com.yfd.platform.modules.auxcontrol.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter; import com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter;
import com.yfd.platform.modules.auxcontrol.mapper.DeviceAlarmParameterMapper; import com.yfd.platform.modules.auxcontrol.mapper.DeviceAlarmParameterMapper;
import com.yfd.platform.modules.auxcontrol.service.IDeviceAlarmParameterService; import com.yfd.platform.modules.auxcontrol.service.IDeviceAlarmParameterService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/** /**
* <p> * <p>
* 变电站-辅控设备-告警参数设置 服务实现类 * 变电站-辅控设备-告警参数设置 服务实现类
@ -17,6 +20,9 @@ import org.springframework.stereotype.Service;
@Service @Service
public class DeviceAlarmParameterServiceImpl extends ServiceImpl<DeviceAlarmParameterMapper, DeviceAlarmParameter> implements IDeviceAlarmParameterService { public class DeviceAlarmParameterServiceImpl extends ServiceImpl<DeviceAlarmParameterMapper, DeviceAlarmParameter> implements IDeviceAlarmParameterService {
@Resource
private DeviceAlarmParameterMapper deviceAlarmParameterMapper;
/********************************** /**********************************
* 用途说明: 新增辅控设备告警参数 * 用途说明: 新增辅控设备告警参数
* 参数说明 deviceAlarmParameter 告警参数对象 * 参数说明 deviceAlarmParameter 告警参数对象
@ -36,4 +42,13 @@ public class DeviceAlarmParameterServiceImpl extends ServiceImpl<DeviceAlarmPara
public boolean updateDeviceAlarmParameter(DeviceAlarmParameter deviceAlarmParameter) { public boolean updateDeviceAlarmParameter(DeviceAlarmParameter deviceAlarmParameter) {
return this.saveOrUpdate(deviceAlarmParameter); return this.saveOrUpdate(deviceAlarmParameter);
} }
@Override
public Page<DeviceAlarmParameter> getDeviceAlarmParameterPage(String meterDeviceId, String signalId,
String alarmType, String alarmLevel,
Page<DeviceAlarmParameter> page) {
Page<DeviceAlarmParameter> deviceAlarmParameterPage = deviceAlarmParameterMapper.getDeviceAlarmParameterPage(meterDeviceId, signalId, alarmType, alarmLevel
, page);
return deviceAlarmParameterPage;
}
} }

View File

@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yfd.platform.modules.auxcontrol.domain.DeviceSignal; import com.yfd.platform.modules.auxcontrol.domain.DeviceSignal;
import com.yfd.platform.modules.auxcontrol.mapper.DeviceSignalMapper; import com.yfd.platform.modules.auxcontrol.mapper.DeviceSignalMapper;
@ -89,16 +90,34 @@ public class DeviceSignalServiceImpl extends ServiceImpl<DeviceSignalMapper, Dev
***********************************/ ***********************************/
@Override @Override
public boolean addDeviceSignal(DeviceSignal deviceSignal) { public boolean addDeviceSignal(DeviceSignal deviceSignal) {
deviceSignal.setLastmodifier(SecurityUtils.getCurrentUsername()); String componentId = deviceSignal.getMainComponentId();
deviceSignal.setLastmodifydate(new Timestamp(System.currentTimeMillis())); if (StrUtil.isBlank(componentId)) {
String compnentId = deviceSignal.getMainComponentId(); throw new RuntimeException("部件信息不能为空");
if (StrUtil.isNotBlank(compnentId)) { }
SubstationComponent substationComponent = substationComponentMapper.selectById(compnentId); SubstationComponent substationComponent = substationComponentMapper.selectById(componentId);
if (substationComponent == null) { if (substationComponent == null) {
throw new RuntimeException("当前部件不存在"); throw new RuntimeException("当前部件不存在");
} }
deviceSignal.setMainDeviceId(substationComponent.getMainDeviceId()); deviceSignal.setMainDeviceId(substationComponent.getMainDeviceId());
LambdaQueryWrapper<DeviceSignal> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DeviceSignal::getMainComponentId, deviceSignal.getMainComponentId());
int count = deviceSignalMapper.selectCount(queryWrapper);
//序号加1
int orderNo = count + 1;
deviceSignal.setOrderno(orderNo);
String signalCode = deviceSignal.getSignalCode();
if (StrUtil.isBlank(signalCode)) {
throw new RuntimeException("信号编号不能为空");
} }
LambdaQueryWrapper<DeviceSignal> signalCodeWrapper = new LambdaQueryWrapper<>();
signalCodeWrapper.eq(DeviceSignal::getSignalCode, signalCode);
int signalCount = deviceSignalMapper.selectCount(signalCodeWrapper);
if (signalCount > 0) {
throw new RuntimeException("当前信号编号已存在");
}
deviceSignal.setLastmodifier(SecurityUtils.getCurrentUsername());
deviceSignal.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
return this.saveOrUpdate(deviceSignal); return this.saveOrUpdate(deviceSignal);
} }
@ -109,8 +128,7 @@ public class DeviceSignalServiceImpl extends ServiceImpl<DeviceSignalMapper, Dev
***********************************/ ***********************************/
@Override @Override
public boolean updateDeviceSignal(DeviceSignal deviceSignal) { public boolean updateDeviceSignal(DeviceSignal deviceSignal) {
deviceSignal.setLastmodifier(SecurityUtils.getCurrentUsername());
deviceSignal.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
String componentId = deviceSignal.getMainComponentId(); String componentId = deviceSignal.getMainComponentId();
if (StrUtil.isNotBlank(componentId)) { if (StrUtil.isNotBlank(componentId)) {
SubstationComponent substationComponent = substationComponentMapper.selectById(componentId); SubstationComponent substationComponent = substationComponentMapper.selectById(componentId);
@ -119,6 +137,17 @@ public class DeviceSignalServiceImpl extends ServiceImpl<DeviceSignalMapper, Dev
} }
deviceSignal.setMainDeviceId(substationComponent.getMainDeviceId()); deviceSignal.setMainDeviceId(substationComponent.getMainDeviceId());
} }
String signalCode = deviceSignal.getSignalCode();
if (StrUtil.isNotBlank(signalCode)) {
LambdaQueryWrapper<DeviceSignal> signalCodeWrapper = new LambdaQueryWrapper<>();
signalCodeWrapper.ne(DeviceSignal::getSignalId, deviceSignal.getSignalId()).eq(DeviceSignal::getSignalCode, signalCode);
int signalCount = deviceSignalMapper.selectCount(signalCodeWrapper);
if (signalCount > 0) {
throw new RuntimeException("当前信号编号已存在");
}
}
deviceSignal.setLastmodifier(SecurityUtils.getCurrentUsername());
deviceSignal.setLastmodifydate(new Timestamp(System.currentTimeMillis()));
return this.saveOrUpdate(deviceSignal); return this.saveOrUpdate(deviceSignal);
} }

View File

@ -138,7 +138,6 @@ public class GatewayDeviceServiceImpl extends ServiceImpl<GatewayDeviceMapper, G
throw new RuntimeException("当前ip已经有网关机绑定"); throw new RuntimeException("当前ip已经有网关机绑定");
} }
} }
if (StrUtil.isNotBlank(gatewayDevice.getIpAddr()) && !Validator.isIpv4(gatewayDevice.getIpAddr())) { if (StrUtil.isNotBlank(gatewayDevice.getIpAddr()) && !Validator.isIpv4(gatewayDevice.getIpAddr())) {
throw new RuntimeException("当前ip地址不规范"); throw new RuntimeException("当前ip地址不规范");
} }

View File

@ -2,4 +2,43 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yfd.platform.modules.auxcontrol.mapper.DeviceAlarmParameterMapper"> <mapper namespace="com.yfd.platform.modules.auxcontrol.mapper.DeviceAlarmParameterMapper">
<select id="getDeviceAlarmParameterPage"
resultType="com.yfd.platform.modules.auxcontrol.domain.DeviceAlarmParameter">
SELECT
dap.*,
sdi1.dictname AS alarmTypeName,
sdi2.dictname AS alarmLevelName,
COALESCE (
(
SELECT
GROUP_CONCAT( dictname ORDER BY itemcode SEPARATOR ',' )
FROM
sys_dictionary_items
WHERE
dictid = 'd3a5c69ef214012abcdb31495ef4e772'
AND FIND_IN_SET( itemcode, dap.notice_type ) > 0
),
''
) AS noticeTypeName
FROM
fk_device_alarm_parameter dap
LEFT JOIN sys_dictionary_items sdi1 ON sdi1.dictid = 'aad92e9fd54d05e090b074f3e0666c8c'
AND sdi1.itemcode = dap.alarm_type
LEFT JOIN sys_dictionary_items sdi2 ON sdi2.dictid = '138d15a0ce89e5abd516389a1176db6e'
AND sdi2.itemcode = dap.alarm_level
WHERE 1 =1
<if test="signalId != null and signalId != ''">
and dap.signal_id= #{signalId}
</if>
<if test="meterDeviceId != null and meterDeviceId != ''">
and dap.device_id= #{meterDeviceId}
</if>
<if test="alarmType != null and alarmType != ''">
and dap.alarm_type= #{alarmType}
</if>
<if test="alarmLevel != null and alarmLevel != ''">
and dap.alarm_level= #{alarmLevel}
</if>
</select>
</mapper> </mapper>