From 4e9322d24f71d814f6ba9b989d87a8a6342ae6e3 Mon Sep 17 00:00:00 2001 From: mh Date: Tue, 14 Jan 2025 17:41:43 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=BF=90=E7=BB=B4=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=9A=E6=8A=A5=E8=AD=A6=E8=A7=84=E5=88=99=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E3=80=81=E6=8A=A5=E8=AD=A6=E7=BC=96=E7=A0=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operation/AlarmCodeController.java | 88 +++++ .../operation/AlarmRulesController.java | 88 +++++ .../common/core/domain/entity/AlarmCode.java | 120 +++++++ .../common/core/domain/entity/AlarmRules.java | 304 ++++++++++++++++++ .../domain/entity/CollectionParamsManage.java | 31 +- .../core/domain/entity/GatewayManage.java | 1 - .../mapper/operation/AlarmCodeMapper.java | 16 + .../mapper/operation/AlarmRulesMapper.java | 16 + .../service/operation/IAlarmCodeService.java | 24 ++ .../service/operation/IAlarmRulesService.java | 24 ++ .../operation/impl/AlarmCodeServiceImpl.java | 86 +++++ .../operation/impl/AlarmRulesServiceImpl.java | 82 +++++ sql/表结构设计.sql | 101 +++++- 13 files changed, 962 insertions(+), 19 deletions(-) create mode 100644 mh-admin/src/main/java/com/mh/web/controller/operation/AlarmCodeController.java create mode 100644 mh-admin/src/main/java/com/mh/web/controller/operation/AlarmRulesController.java create mode 100644 mh-common/src/main/java/com/mh/common/core/domain/entity/AlarmCode.java create mode 100644 mh-common/src/main/java/com/mh/common/core/domain/entity/AlarmRules.java create mode 100644 mh-system/src/main/java/com/mh/system/mapper/operation/AlarmCodeMapper.java create mode 100644 mh-system/src/main/java/com/mh/system/mapper/operation/AlarmRulesMapper.java create mode 100644 mh-system/src/main/java/com/mh/system/service/operation/IAlarmCodeService.java create mode 100644 mh-system/src/main/java/com/mh/system/service/operation/IAlarmRulesService.java create mode 100644 mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmCodeServiceImpl.java create mode 100644 mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmRulesServiceImpl.java diff --git a/mh-admin/src/main/java/com/mh/web/controller/operation/AlarmCodeController.java b/mh-admin/src/main/java/com/mh/web/controller/operation/AlarmCodeController.java new file mode 100644 index 0000000..48ec9cd --- /dev/null +++ b/mh-admin/src/main/java/com/mh/web/controller/operation/AlarmCodeController.java @@ -0,0 +1,88 @@ +package com.mh.web.controller.operation; + +import com.mh.common.annotation.Log; +import com.mh.common.core.controller.BaseController; +import com.mh.common.core.domain.AjaxResult; +import com.mh.common.core.domain.entity.AlarmCode; +import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; +import com.mh.system.service.operation.IAlarmCodeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 仪表编码页面请求 + * @date 2025-01-14 16:40:58 + */ +@RestController +@RequestMapping("/operation/ac") +public class AlarmCodeController extends BaseController { + + @Autowired + private IAlarmCodeService alarmCodeService; + + /** + * 获取报警编码记录列表内容数据 + */ + @PreAuthorize("@ss.hasPermi('system:ac:list')") + @GetMapping("/list") + public TableDataInfo list(AlarmCode alarmCode) + { + startPage(); + List list = alarmCodeService.selectAlarmCodeList(alarmCode); + return getDataTable(list); + } + + /** + * 根据报警编码记录id获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:ac:query')") + @GetMapping(value = "/{acId}") + public AjaxResult getInfo(@PathVariable String acId) + { + return success(alarmCodeService.selectAlarmCodeById(acId)); + } + + /** + * 新增报警编码记录 + */ + @PreAuthorize("@ss.hasPermi('system:ac:add')") + @Log(title = "报警编码记录管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody AlarmCode alarmCode) + { + alarmCode.setCreateBy(getUsername()); + return toAjax(alarmCodeService.insertAlarmCode(alarmCode)); + } + + /** + * 修改报警编码记录信息 + */ + @PreAuthorize("@ss.hasPermi('system:ac:edit')") + @Log(title = "报警编码记录管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody AlarmCode alarmCode) + { + alarmCode.setUpdateBy(getUsername()); + return toAjax(alarmCodeService.updateAlarmCode(alarmCode)); + } + + /** + * 删除报警编码记录管理 + */ + @PreAuthorize("@ss.hasPermi('system:ac:remove')") + @Log(title = "报警编码记录管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{acIds}") + public AjaxResult remove(@PathVariable String[] acIds) + { + return toAjax(alarmCodeService.deleteAlarmCodeByIds(acIds)); + } + +} diff --git a/mh-admin/src/main/java/com/mh/web/controller/operation/AlarmRulesController.java b/mh-admin/src/main/java/com/mh/web/controller/operation/AlarmRulesController.java new file mode 100644 index 0000000..221446e --- /dev/null +++ b/mh-admin/src/main/java/com/mh/web/controller/operation/AlarmRulesController.java @@ -0,0 +1,88 @@ +package com.mh.web.controller.operation; + +import com.mh.common.annotation.Log; +import com.mh.common.core.controller.BaseController; +import com.mh.common.core.domain.AjaxResult; +import com.mh.common.core.domain.entity.AlarmRules; +import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; +import com.mh.system.service.operation.IAlarmRulesService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 仪表报警规则 + * @date 2025-01-14 17:32:55 + */ +@RestController +@RequestMapping("/operation/ar") +public class AlarmRulesController extends BaseController { + + @Autowired + private IAlarmRulesService alarmRulesService; + + /** + * 获取报警规则记录列表内容数据 + */ + @PreAuthorize("@ss.hasPermi('system:ar:list')") + @GetMapping("/list") + public TableDataInfo list(AlarmRules alarmRules) + { + startPage(); + List list = alarmRulesService.selectAlarmRulesList(alarmRules); + return getDataTable(list); + } + + /** + * 根据报警规则记录id获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:ar:query')") + @GetMapping(value = "/{acId}") + public AjaxResult getInfo(@PathVariable String acId) + { + return success(alarmRulesService.selectAlarmRulesById(acId)); + } + + /** + * 新增报警规则记录 + */ + @PreAuthorize("@ss.hasPermi('system:ar:add')") + @Log(title = "报警规则记录管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody AlarmRules alarmRules) + { + alarmRules.setCreateBy(getUsername()); + return toAjax(alarmRulesService.insertAlarmRules(alarmRules)); + } + + /** + * 修改报警规则记录信息 + */ + @PreAuthorize("@ss.hasPermi('system:ar:edit')") + @Log(title = "报警规则记录管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody AlarmRules alarmRules) + { + alarmRules.setUpdateBy(getUsername()); + return toAjax(alarmRulesService.updateAlarmRules(alarmRules)); + } + + /** + * 删除报警规则记录管理 + */ + @PreAuthorize("@ss.hasPermi('system:ar:remove')") + @Log(title = "报警规则记录管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{acIds}") + public AjaxResult remove(@PathVariable String[] acIds) + { + return toAjax(alarmRulesService.deleteAlarmRulesByIds(acIds)); + } + +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/AlarmCode.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/AlarmCode.java new file mode 100644 index 0000000..448dde6 --- /dev/null +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/AlarmCode.java @@ -0,0 +1,120 @@ +package com.mh.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mh.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 报警编码管理(类似模板消息) + * @date 2025-01-14 15:46:02 + */ +@TableName("alarm_code") +public class AlarmCode extends BaseEntity { + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 消息编码 + */ + private String msgCode; + + /** + * 采集类别 + */ + private String collectionType; + + /** + * 事件类型 + */ + private String eventType; + + /** + * 报警等级 + */ + private String alarmLevel; + + /** + * 消息标题 + */ + private String msgTitle; + + /** + * 消息内容 + */ + private String msgContent; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMsgCode() { + return msgCode; + } + + public void setMsgCode(String msgCode) { + this.msgCode = msgCode; + } + + public String getCollectionType() { + return collectionType; + } + + public void setCollectionType(String collectionType) { + this.collectionType = collectionType; + } + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getMsgTitle() { + return msgTitle; + } + + public void setMsgTitle(String msgTitle) { + this.msgTitle = msgTitle; + } + + public String getMsgContent() { + return msgContent; + } + + public void setMsgContent(String msgContent) { + this.msgContent = msgContent; + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("msgCode", msgCode) + .append("collectionType", collectionType) + .append("eventType", eventType) + .append("alarmLevel", alarmLevel) + .append("msgTitle", msgTitle) + .append("msgContent", msgContent) + .toString(); + } +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/AlarmRules.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/AlarmRules.java new file mode 100644 index 0000000..9c84761 --- /dev/null +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/AlarmRules.java @@ -0,0 +1,304 @@ +package com.mh.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mh.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; + +import java.util.Date; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 仪表报警规则 + * @date 2025-01-14 15:46:02 + */ +@TableName("alarm_rules") +public class AlarmRules extends BaseEntity { + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 事件类型 + */ + private String eventType; + + /** + * 报警等级 + */ + private String alarmLevel; + + /** + * 报警类型 + */ + private String alarmType; + + /** + * 设备台账id + */ + private String ledgerId; + + /** + * 设备名称 + */ + private String deviceName; + + /** + * 采集仪表参数id + */ + private String cpmId; + + /** + * 采集仪表参数名称 + */ + private String cpmName; + + /** + * 参数编号(仪表编号) + */ + private String cpmMtNum; + + /** + * 报警延时时间 + */ + private Integer delayTimes; + + /** + * 报警时段设置标志(0:全时段,1:自定义时段) + */ + private Integer timePeriodSet; + + /** + * 自定义时段开始时间 + */ + private Date beginTime; + + /** + * 自定义时段结束时间 + */ + private Date endTime; + + /** + * 选择遥信事件显示:触发事件(0:开,1:关) + */ + private Integer triggerEvent; + + /** + * 条件1 + */ + private String condition1; + + /** + * 阈值1 + */ + private String threshold1; + + /** + * 条件2 + */ + private String condition2; + + /** + * 阈值2 + */ + private String threshold2; + + /** + * 能源节点 + */ + private String energyNode; + + /** + * 能源类型 + */ + private String energyType; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getEventType() { + return eventType; + } + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + public String getAlarmLevel() { + return alarmLevel; + } + + public void setAlarmLevel(String alarmLevel) { + this.alarmLevel = alarmLevel; + } + + public String getAlarmType() { + return alarmType; + } + + public void setAlarmType(String alarmType) { + this.alarmType = alarmType; + } + + public String getLedgerId() { + return ledgerId; + } + + public void setLedgerId(String ledgerId) { + this.ledgerId = ledgerId; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public String getCpmId() { + return cpmId; + } + + public void setCpmId(String cpmId) { + this.cpmId = cpmId; + } + + public String getCpmName() { + return cpmName; + } + + public void setCpmName(String cpmName) { + this.cpmName = cpmName; + } + + public String getCpmMtNum() { + return cpmMtNum; + } + + public void setCpmMtNum(String cpmMtNum) { + this.cpmMtNum = cpmMtNum; + } + + public Integer getDelayTimes() { + return delayTimes; + } + + public void setDelayTimes(Integer delayTimes) { + this.delayTimes = delayTimes; + } + + public Integer getTimePeriodSet() { + return timePeriodSet; + } + + public void setTimePeriodSet(Integer timePeriodSet) { + this.timePeriodSet = timePeriodSet; + } + + public Date getBeginTime() { + return beginTime; + } + + public void setBeginTime(Date beginTime) { + this.beginTime = beginTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Integer getTriggerEvent() { + return triggerEvent; + } + + public void setTriggerEvent(Integer triggerEvent) { + this.triggerEvent = triggerEvent; + } + + public String getCondition1() { + return condition1; + } + + public void setCondition1(String condition1) { + this.condition1 = condition1; + } + + public String getThreshold1() { + return threshold1; + } + + public void setThreshold1(String threshold1) { + this.threshold1 = threshold1; + } + + public String getCondition2() { + return condition2; + } + + public void setCondition2(String condition2) { + this.condition2 = condition2; + } + + public String getThreshold2() { + return threshold2; + } + + public void setThreshold2(String threshold2) { + this.threshold2 = threshold2; + } + + public String getEnergyNode() { + return energyNode; + } + + public void setEnergyNode(String energyNode) { + this.energyNode = energyNode; + } + + public String getEnergyType() { + return energyType; + } + + public void setEnergyType(String energyType) { + this.energyType = energyType; + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("eventType", eventType) + .append("alarmLevel", alarmLevel) + .append("alarmType", alarmType) + .append("ledgerId", ledgerId) + .append("deviceName", deviceName) + .append("cpmId", cpmId) + .append("cpmName", cpmName) + .append("cpmMtNum", cpmMtNum) + .append("delayTimes", delayTimes) + .append("timePeriodSet", timePeriodSet) + .append("beginTime", beginTime) + .append("endTime", endTime) + .append("triggerEvent", triggerEvent) + .append("condition1", condition1) + .append("threshold1", threshold1) + .append("condition2", condition2) + .append("threshold2", threshold2) + .append("energyNode", energyNode) + .append("energyType", energyType) + .toString(); + } +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/CollectionParamsManage.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/CollectionParamsManage.java index c280dff..cced3c3 100644 --- a/mh-common/src/main/java/com/mh/common/core/domain/entity/CollectionParamsManage.java +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/CollectionParamsManage.java @@ -132,11 +132,6 @@ public class CollectionParamsManage extends BaseEntity { */ private String communicationType; - /** - * 备注 - */ - private String remark; - /** * 读取响应的寄存器大小(创建指令的时候需要) */ @@ -147,6 +142,20 @@ public class CollectionParamsManage extends BaseEntity { */ private Integer isUse; + /** + * 别名 + * @return + */ + private String otherName; + + public String getOtherName() { + return otherName; + } + + public void setOtherName(String otherName) { + this.otherName = otherName; + } + public String getId() { return id; } @@ -331,16 +340,6 @@ public class CollectionParamsManage extends BaseEntity { this.communicationType = communicationType; } - @Override - public String getRemark() { - return remark; - } - - @Override - public void setRemark(String remark) { - this.remark = remark; - } - public Integer getRegisterSize() { return registerSize; } @@ -383,9 +382,9 @@ public class CollectionParamsManage extends BaseEntity { .append("paramId", paramId) .append("protocolType", protocolType) .append("communicationType", communicationType) - .append("remark", remark) .append("registerSize", registerSize) .append("isUse", isUse) + .append("otherName", otherName) .toString(); } } diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/GatewayManage.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/GatewayManage.java index 02cda48..a2b1d0d 100644 --- a/mh-common/src/main/java/com/mh/common/core/domain/entity/GatewayManage.java +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/GatewayManage.java @@ -152,7 +152,6 @@ public class GatewayManage extends BaseEntity { .append("internetCard", internetCard) .append("operatorType", operatorType) .append("communicationType", communicationType) - .append("remark", remark) .append("grade", grade) .append("status", status) .toString(); diff --git a/mh-system/src/main/java/com/mh/system/mapper/operation/AlarmCodeMapper.java b/mh-system/src/main/java/com/mh/system/mapper/operation/AlarmCodeMapper.java new file mode 100644 index 0000000..e029fa8 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/mapper/operation/AlarmCodeMapper.java @@ -0,0 +1,16 @@ +package com.mh.system.mapper.operation; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.common.core.domain.entity.AlarmCode; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 报警编码mapper + * @date 2025-01-14 17:23:32 + */ +@Mapper +public interface AlarmCodeMapper extends BaseMapper { +} diff --git a/mh-system/src/main/java/com/mh/system/mapper/operation/AlarmRulesMapper.java b/mh-system/src/main/java/com/mh/system/mapper/operation/AlarmRulesMapper.java new file mode 100644 index 0000000..7fd7c84 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/mapper/operation/AlarmRulesMapper.java @@ -0,0 +1,16 @@ +package com.mh.system.mapper.operation; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.common.core.domain.entity.AlarmRules; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 报警编码mapper + * @date 2025-01-14 17:23:32 + */ +@Mapper +public interface AlarmRulesMapper extends BaseMapper { +} diff --git a/mh-system/src/main/java/com/mh/system/service/operation/IAlarmCodeService.java b/mh-system/src/main/java/com/mh/system/service/operation/IAlarmCodeService.java new file mode 100644 index 0000000..4d785db --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/operation/IAlarmCodeService.java @@ -0,0 +1,24 @@ +package com.mh.system.service.operation; + +import com.mh.common.core.domain.entity.AlarmCode; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 报警编码页面请求 + * @date 2025-01-14 16:52:23 + */ +public interface IAlarmCodeService { + List selectAlarmCodeList(AlarmCode alarmCode); + + AlarmCode selectAlarmCodeById(String acId); + + int insertAlarmCode(AlarmCode alarmCode); + + int updateAlarmCode(AlarmCode alarmCode); + + int deleteAlarmCodeByIds(String[] acIds); +} diff --git a/mh-system/src/main/java/com/mh/system/service/operation/IAlarmRulesService.java b/mh-system/src/main/java/com/mh/system/service/operation/IAlarmRulesService.java new file mode 100644 index 0000000..cb0e432 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/operation/IAlarmRulesService.java @@ -0,0 +1,24 @@ +package com.mh.system.service.operation; + +import com.mh.common.core.domain.entity.AlarmRules; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 报警规则处理接口 + * @date 2025-01-14 16:52:23 + */ +public interface IAlarmRulesService { + List selectAlarmRulesList(AlarmRules alarmCode); + + AlarmRules selectAlarmRulesById(String acId); + + int insertAlarmRules(AlarmRules alarmCode); + + int updateAlarmRules(AlarmRules alarmCode); + + int deleteAlarmRulesByIds(String[] acIds); +} diff --git a/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmCodeServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmCodeServiceImpl.java new file mode 100644 index 0000000..0412d08 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmCodeServiceImpl.java @@ -0,0 +1,86 @@ +package com.mh.system.service.operation.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mh.common.core.domain.entity.AlarmCode; +import com.mh.common.utils.StringUtils; +import com.mh.system.mapper.operation.AlarmCodeMapper; +import com.mh.system.service.operation.IAlarmCodeService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 报警编码页面请求实现类 + * @date 2025-01-14 16:53:08 + */ +@Service +public class AlarmCodeServiceImpl implements IAlarmCodeService { + + @Resource + private AlarmCodeMapper alarmCodeMapper; + + @Override + public List selectAlarmCodeList(AlarmCode alarmCode) { + if (alarmCode == null) { + return List.of(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 消息编码 + if (!StringUtils.isEmpty(alarmCode.getMsgCode())) { + queryWrapper.like("msg_code", alarmCode.getMsgCode()); + } + // 采集类别 + if (!StringUtils.isEmpty(alarmCode.getCollectionType())) { + queryWrapper.eq("collection_type", alarmCode.getCollectionType()); + } + // 事件类型 + if (!StringUtils.isEmpty(alarmCode.getEventType())) { + queryWrapper.eq("event_type", alarmCode.getEventType()); + } + // 报警等级 + if (!StringUtils.isEmpty(alarmCode.getAlarmLevel())) { + queryWrapper.eq("alarm_level", alarmCode.getAlarmLevel()); + } + queryWrapper.orderByDesc("create_time"); + return alarmCodeMapper.selectList(queryWrapper); + } + + @Override + public AlarmCode selectAlarmCodeById(String acId) { + if (StringUtils.isEmpty(acId)) { + return null; + } + return alarmCodeMapper.selectById(acId); + } + + @Override + public int insertAlarmCode(AlarmCode alarmCode) { + if (alarmCode != null) { + return alarmCodeMapper.insert(alarmCode); + } + return 0; + } + + @Override + public int updateAlarmCode(AlarmCode alarmCode) { + if (alarmCode != null) { + return alarmCodeMapper.updateById(alarmCode); + } + return 0; + } + + @Override + public int deleteAlarmCodeByIds(String[] acIds) { + if (acIds != null && acIds.length > 0) { + for (String acId : acIds) { + alarmCodeMapper.deleteById(acId); + } + return acIds.length; + } + return 0; + } +} diff --git a/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmRulesServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmRulesServiceImpl.java new file mode 100644 index 0000000..60f2301 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/operation/impl/AlarmRulesServiceImpl.java @@ -0,0 +1,82 @@ +package com.mh.system.service.operation.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mh.common.core.domain.entity.AlarmRules; +import com.mh.common.utils.StringUtils; +import com.mh.system.mapper.operation.AlarmRulesMapper; +import com.mh.system.service.operation.IAlarmRulesService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 报警编码页面请求实现类 + * @date 2025-01-14 16:53:08 + */ +@Service +public class AlarmRulesServiceImpl implements IAlarmRulesService { + + @Resource + private AlarmRulesMapper alarmRulesMapper; + + @Override + public List selectAlarmRulesList(AlarmRules alarmRules) { + if (alarmRules == null) { + return List.of(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 报警类型 + if (!StringUtils.isEmpty(alarmRules.getAlarmType())) { + queryWrapper.eq("alarm_type", alarmRules.getAlarmType()); + } + // 事件类型 + if (!StringUtils.isEmpty(alarmRules.getEventType())) { + queryWrapper.eq("event_type", alarmRules.getEventType()); + } + // 报警等级 + if (!StringUtils.isEmpty(alarmRules.getAlarmLevel())) { + queryWrapper.eq("alarm_level", alarmRules.getAlarmLevel()); + } + queryWrapper.orderByDesc("create_time"); + return alarmRulesMapper.selectList(queryWrapper); + } + + @Override + public AlarmRules selectAlarmRulesById(String acId) { + if (StringUtils.isEmpty(acId)) { + return null; + } + return alarmRulesMapper.selectById(acId); + } + + @Override + public int insertAlarmRules(AlarmRules alarmRules) { + if (alarmRules != null) { + return alarmRulesMapper.insert(alarmRules); + } + return 0; + } + + @Override + public int updateAlarmRules(AlarmRules alarmRules) { + if (alarmRules != null) { + return alarmRulesMapper.updateById(alarmRules); + } + return 0; + } + + @Override + public int deleteAlarmRulesByIds(String[] acIds) { + if (acIds != null && acIds.length > 0) { + for (String acId : acIds) { + alarmRulesMapper.deleteById(acId); + } + return acIds.length; + } + return 0; + } +} diff --git a/sql/表结构设计.sql b/sql/表结构设计.sql index a5050de..56c6e82 100644 --- a/sql/表结构设计.sql +++ b/sql/表结构设计.sql @@ -95,6 +95,7 @@ CREATE TABLE collection_params_manage ( device_ledger_id varchar(36) NULL, -- 设备台账id mt_type varchar(10), -- 设备类型(字典) mt_num VARCHAR(20) NULL, -- 设备地址 + other_name VARCHAR(100) NULL, -- 别称 mt_code VARCHAR(20) NULL, -- 设备采集地址 register_addr VARCHAR(20) NULL, -- 寄存器地址 func_code VARCHAR(20) NULL, -- 功能码 @@ -129,7 +130,6 @@ COMMENT ON TABLE collection_params_manage IS '仪表管理表,用于记录各 -- 为各列添加备注 COMMENT ON COLUMN collection_params_manage.id IS '自增主键'; COMMENT ON COLUMN collection_params_manage.mt_type IS '仪表类型ID'; -COMMENT ON COLUMN collection_params_manage.mt_name IS '仪表名称'; COMMENT ON COLUMN collection_params_manage.other_name IS '其他名称'; COMMENT ON COLUMN collection_params_manage.mt_brand IS '仪表品牌'; COMMENT ON COLUMN collection_params_manage.mt_num IS '仪表编号'; @@ -213,7 +213,7 @@ CREATE TABLE device_in_out_manage ( spare_name VARCHAR(100) NULL, -- 备件名称 opera_type VARCHAR(10) NULL, -- 出入库操作类型(0:入库,1:出库) int_out_num INT NULL, -- 出入库数量 - inventory_levels INT NULL, -- 当前库存量 + inventory_levels INT NULL, -- 当前库c存量 create_time TIMESTAMP NULL, -- 记录创建的时间戳 update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳 create_by VARCHAR(100) NULL, -- 创建该记录的用户 @@ -374,3 +374,100 @@ COMMENT ON COLUMN maintain_info.exec_time IS '执行维修时间'; COMMENT ON COLUMN maintain_info.spend_times IS '维修花费时间'; + +-- 报警编码管理(类似模板消息) +CREATE TABLE alarm_code ( + id VARCHAR(36) NOT NULL, -- id + msg_code VARCHAR(36) NULL, -- 消息编码 + collection_type varchar(10) NULL, -- 采集类别:0:遥测(连续变化参数),1:遥信(离散开关状态) + event_type VARCHAR(10) NULL, -- 事件类型 + alarm_level VARCHAR(10) NULL, -- 报警等级 + msg_title varchar(100) NULL, -- 消息标题 + msg_content varchar(500) null, -- 消息内容 + create_time TIMESTAMP NULL, -- 记录创建的时间戳 + update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳 + create_by VARCHAR(100) NULL, -- 创建该记录的用户 + update_by VARCHAR(100) NULL, -- 更新该记录的用户 + PRIMARY KEY (id) +); + +COMMENT ON COLUMN alarm_code.id IS '唯一标识符'; +COMMENT ON COLUMN alarm_code.msg_code IS '消息编码'; +COMMENT ON COLUMN alarm_code.collection_type IS '采集类别:0:遥测(连续变化参数),1:遥信(离散开关状态)'; +COMMENT ON COLUMN alarm_code.event_type IS '事件类型(字典)'; +COMMENT ON COLUMN alarm_code.alarm_level IS '报警等级(字典)'; +COMMENT ON COLUMN alarm_code.msg_title IS '消息标题'; +COMMENT ON COLUMN alarm_code.msg_content IS '消息内容'; +COMMENT ON COLUMN alarm_code.create_time IS '记录创建的时间戳'; +COMMENT ON COLUMN alarm_code.update_time IS '记录最后一次更新的时间戳'; +COMMENT ON COLUMN alarm_code.create_by IS '创建该记录的用户'; +COMMENT ON COLUMN alarm_code.update_by IS '更新该记录的用户'; + +-- 添加索引 +CREATE INDEX idx_alarm_code_msg_code ON alarm_code (msg_code); +CREATE INDEX idx_alarm_code_collection_type ON alarm_code (collection_type); +CREATE INDEX idx_alarm_code_event_type ON alarm_code (event_type); +CREATE INDEX idx_alarm_code_alarm_level ON alarm_code (alarm_level); +CREATE INDEX idx_alarm_code_msg_title ON alarm_code (msg_title); +CREATE INDEX idx_alarm_code_create_time_desc ON alarm_code (create_time DESC); + +-- 仪表报警规则 +CREATE TABLE alarm_rules ( + id VARCHAR(36) NOT NULL, -- id + alarm_type varchar(10) null, -- 报警类型 + event_type VARCHAR(10) NULL, -- 事件类型 + alarm_level VARCHAR(10) NULL, -- 报警等级 + ledger_id varchar(36) null, -- 设备台账id + device_name VARCHAR(50) NULL, -- 设备名称 + cpm_id varchar(36) NULL, -- 仪表参数id + cpm_name varchar(100) null, -- 参数名称 + cpm_mt_num varchar(100) null, -- 参数编号(仪表编号) + delay_times int NULL, -- 报警延时时间 + time_period_set int null, -- 时段设置(0:全时段,1:自定义时段) + begin_time timestamp null, -- 自定义开始时段 + end_time timestamp null, -- 自定义结束时段 + trigger_event int null, -- 选择遥信事件显示:触发事件(0:开,1:关) + condition1 varchar(10) null, -- 选择越限事件显示:条件1:>\<\!=\=\>=\<= + threshold1 varchar(10) null, -- 选择越限事件显示:阈值1 + condition2 varchar(10) null, -- 选择越限事件显示:条件2:>\<\!=\=\>=\<= + threshold2 varchar(10) null, -- 选择越限事件显示:阈值2 + energy_node varchar(36) null, -- 能源节点(预留是能耗方面的) + energy_type varchar(20) null, -- 能源类型(预留是能耗方面的) + remark INT NULL, -- 消息说明 + create_time TIMESTAMP NULL, -- 记录创建的时间戳 + update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳 + create_by VARCHAR(100) NULL, -- 创建该记录的用户 + update_by VARCHAR(100) NULL, -- 更新该记录的用户 + PRIMARY KEY (id) +); +COMMENT ON COLUMN alarm_rules.id IS '唯一标识符'; +COMMENT ON COLUMN alarm_rules.event_type IS '事件类型(字典)'; +COMMENT ON COLUMN alarm_rules.alarm_type IS '报警类型(字典)'; +COMMENT ON COLUMN alarm_rules.alarm_level IS '报警等级(字典)'; +COMMENT ON COLUMN alarm_rules.ledger_id IS '设备台账ID'; +COMMENT ON COLUMN alarm_rules.device_name IS '设备名称'; +COMMENT ON COLUMN alarm_rules.cpm_id IS '仪表参数ID'; +COMMENT ON COLUMN alarm_rules.cpm_name IS '参数名称'; +COMMENT ON COLUMN alarm_rules.cpm_mt_num IS '参数编号(仪表编号)'; +COMMENT ON COLUMN alarm_rules.delay_times IS '报警延时时间'; +COMMENT ON COLUMN alarm_rules.time_period_set IS '时段设置(0:全时段,1:自定义时段)'; +COMMENT ON COLUMN alarm_rules.begin_time IS '自定义开始时段'; +COMMENT ON COLUMN alarm_rules.end_time IS '自定义结束时段'; +COMMENT ON COLUMN alarm_rules.trigger_event IS '选择遥信事件显示:触发事件(0:开,1:关)'; +COMMENT ON COLUMN alarm_rules.condition1 IS '选择越限事件显示:条件1:>\<\!=\=\>=\<=' ; +COMMENT ON COLUMN alarm_rules.threshold1 IS '选择越限事件显示:阈值1'; +COMMENT ON COLUMN alarm_rules.condition2 IS '选择越限事件显示:条件2:>\<\!=\=\>=\<='; +COMMENT ON COLUMN alarm_rules.threshold2 IS '选择越限事件显示:阈值2'; +COMMENT ON COLUMN alarm_rules.energy_node IS '能源节点(预留用于能耗方面)'; +COMMENT ON COLUMN alarm_rules.energy_type IS '能源类型(预留用于能耗方面)'; +COMMENT ON COLUMN alarm_rules.remark IS '消息说明'; +COMMENT ON COLUMN alarm_rules.create_time IS '记录创建的时间戳'; +COMMENT ON COLUMN alarm_rules.update_time IS '记录最后一次更新的时间戳'; +COMMENT ON COLUMN alarm_rules.create_by IS '创建该记录的用户'; +COMMENT ON COLUMN alarm_rules.update_by IS '更新该记录的用户'; + +-- 添加索引 +CREATE INDEX idx_alarm_rules_event_type ON alarm_rules (event_type); +CREATE INDEX idx_alarm_rules_alarm_level ON alarm_rules (alarm_level); +CREATE INDEX idx_alarm_rules_alarm_type ON alarm_rules (alarm_type); +CREATE INDEX idx_alarm_rules_create_time_desc ON alarm_rules (create_time DESC); \ No newline at end of file