From 7d40840231f59554c8f993ce39f3a320b16c9b76 Mon Sep 17 00:00:00 2001 From: wangyan Date: Fri, 3 Apr 2026 18:23:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(mq):=20=E5=A2=9E=E5=8A=A0=E9=98=88?= =?UTF-8?q?=E5=80=BC=E5=92=8CDCS=E6=8A=A5=E8=AD=A6=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增ThresholdAlarmEvent和DcsAlarmEvent事件类 - 实现ThresholdAlarmEventConsumer,处理阈值报警事件,生成报警记录 - 实现DcsAlarmEventConsumer,处理DCS报警事件,生成报警记录 - 自动分配区域负责人并记录处置日志 - 发送报警自动推送消息给负责人 - 阈值报警增加负责人待办任务通知 - AlarmMessageService消息模板改为静态常量,移除配置注入 - SensorDeviceGateway新增根据传感器编码查询接口实现 - 配置文件中新增RocketMQ消费组和绑定设置 - 修改启动类主类配置为com.zcloud.Application --- .../persistence/dataobject/DepartmentDO.java | 27 +++ .../zcloud/persistence/dataobject/UserDO.java | 33 ++++ .../repository/DepartmentRepository.java | 11 ++ .../repository/UserRepository.java | 11 ++ .../impl/AlarmRecordRepositoryImpl.java | 54 ++++++ .../impl/DeviceRegionRepositoryImpl.java | 33 ++++ .../resources/mapper/AlarmRecordMapper.xml | 167 ++++++++++++++++++ .../resources/mapper/DeviceRegionMapper.xml | 44 +++++ .../resources/mapper/SensorDeviceMapper.xml | 48 +++++ .../resources/mapper/SensorTypeMapper.xml | 34 ++++ 10 files changed, 462 insertions(+) create mode 100644 web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/DepartmentDO.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/UserDO.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/persistence/repository/DepartmentRepository.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/persistence/repository/UserRepository.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/AlarmRecordRepositoryImpl.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/DeviceRegionRepositoryImpl.java create mode 100644 web-infrastructure/src/main/resources/mapper/AlarmRecordMapper.xml create mode 100644 web-infrastructure/src/main/resources/mapper/DeviceRegionMapper.xml create mode 100644 web-infrastructure/src/main/resources/mapper/SensorDeviceMapper.xml create mode 100644 web-infrastructure/src/main/resources/mapper/SensorTypeMapper.xml diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/DepartmentDO.java b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/DepartmentDO.java new file mode 100644 index 0000000..9e3d0ac --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/DepartmentDO.java @@ -0,0 +1,27 @@ +package com.zcloud.persistence.dataobject; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jjb.saas.framework.repository.basedo.BaseDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * DepartmentDO - 部门数据对象 + * @Author wangyan + * @Date 2026-04-03 00:00:00 + */ +@Data +@TableName("department") +@EqualsAndHashCode(callSuper = true) +public class DepartmentDO extends BaseDO { + + @ApiModelProperty(value = "业务主键ID") + private String departmentId; + + @ApiModelProperty(value = "部门名称") + private String name; + + @ApiModelProperty(value = "所属企业ID") + private Long corpinfoId; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/UserDO.java b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/UserDO.java new file mode 100644 index 0000000..4faf943 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/UserDO.java @@ -0,0 +1,33 @@ +package com.zcloud.persistence.dataobject; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jjb.saas.framework.repository.basedo.BaseDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * UserDO - 用户数据对象 + * @Author wangyan + * @Date 2026-04-03 00:00:00 + */ +@Data +@TableName("user") +@EqualsAndHashCode(callSuper = true) +public class UserDO extends BaseDO { + + @ApiModelProperty(value = "业务主键ID") + private String userId; + + @ApiModelProperty(value = "登录账号") + private String username; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "企业ID") + private Long corpinfoId; + + @ApiModelProperty(value = "部门ID") + private Long departmentId; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/DepartmentRepository.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/DepartmentRepository.java new file mode 100644 index 0000000..8296af9 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/DepartmentRepository.java @@ -0,0 +1,11 @@ +package com.zcloud.persistence.repository; + +import com.jjb.saas.framework.repository.repo.BaseRepository; +import com.zcloud.persistence.dataobject.DepartmentDO; + +/** + * DepartmentRepository - 部门仓储接口 + * @Author wangyan + * @Date 2026-04-03 00:00:00 + */ +public interface DepartmentRepository extends BaseRepository {} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/UserRepository.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/UserRepository.java new file mode 100644 index 0000000..c714c70 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/UserRepository.java @@ -0,0 +1,11 @@ +package com.zcloud.persistence.repository; + +import com.jjb.saas.framework.repository.repo.BaseRepository; +import com.zcloud.persistence.dataobject.UserDO; + +/** + * UserRepository - 用户仓储接口 + * @Author wangyan + * @Date 2026-04-03 00:00:00 + */ +public interface UserRepository extends BaseRepository {} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/AlarmRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/AlarmRecordRepositoryImpl.java new file mode 100644 index 0000000..10a115e --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/AlarmRecordRepositoryImpl.java @@ -0,0 +1,54 @@ +package com.zcloud.persistence.repository.impl; + +import com.alibaba.cola.dto.PageResponse; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.repository.common.PageHelper; +import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; +import com.zcloud.persistence.dataobject.AlarmRecordDO; +import com.zcloud.persistence.mapper.AlarmRecordMapper; +import com.zcloud.persistence.repository.AlarmRecordRepository; +import com.zcloud.utils.Query; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.Map; + +/** + * AlarmRecordRepositoryImpl - 报警记录仓储实现类 + * @Author wangyan + * @Date 2026-04-03 00:00:00 + */ +@Repository +@RequiredArgsConstructor +public class AlarmRecordRepositoryImpl extends BaseRepositoryImpl implements AlarmRecordRepository { + + private final AlarmRecordMapper alarmRecordMapper; + + @Override + public PageResponse listPage(Map params) { + IPage page = new Query().getPage(params); + IPage result = alarmRecordMapper.listPage(page, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse disposeListPage(Map params) { + IPage page = new Query().getPage(params); + IPage result = alarmRecordMapper.disposeListPage(page, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse appListPage(Map params) { + IPage page = new Query().getPage(params); + IPage result = alarmRecordMapper.appListPage(page, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse appDisposeListPage(Map params) { + IPage page = new Query().getPage(params); + IPage result = alarmRecordMapper.appDisposeListPage(page, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/DeviceRegionRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/DeviceRegionRepositoryImpl.java new file mode 100644 index 0000000..ca3936c --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/DeviceRegionRepositoryImpl.java @@ -0,0 +1,33 @@ +package com.zcloud.persistence.repository.impl; + +import com.alibaba.cola.dto.PageResponse; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.repository.common.PageHelper; +import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; +import com.zcloud.persistence.dataobject.DeviceRegionDO; +import com.zcloud.persistence.mapper.DeviceRegionMapper; +import com.zcloud.persistence.repository.DeviceRegionRepository; +import com.zcloud.utils.Query; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.Map; + +/** + * DeviceRegionRepositoryImpl - 设备区域仓储实现类 + * @Author wangyan + * @Date 2026-04-03 00:00:00 + */ +@Repository +@RequiredArgsConstructor +public class DeviceRegionRepositoryImpl extends BaseRepositoryImpl implements DeviceRegionRepository { + + private final DeviceRegionMapper deviceRegionMapper; + + @Override + public PageResponse listPage(Map params) { + IPage page = new Query().getPage(params); + IPage result = deviceRegionMapper.listPage(page, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } +} diff --git a/web-infrastructure/src/main/resources/mapper/AlarmRecordMapper.xml b/web-infrastructure/src/main/resources/mapper/AlarmRecordMapper.xml new file mode 100644 index 0000000..c7cd5c1 --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/AlarmRecordMapper.xml @@ -0,0 +1,167 @@ + + + + + + + ar.*, + sd.sensor_name AS sensorName, + u.name AS disposeUserName + + + + FROM iot_alarm_record ar + LEFT JOIN iot_alarm_sensor_device sd ON ar.sensor_id = sd.id AND sd.delete_enum = 'FALSE' + LEFT JOIN user u ON ar.dispose_user_id = u.id + + + + + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/DeviceRegionMapper.xml b/web-infrastructure/src/main/resources/mapper/DeviceRegionMapper.xml new file mode 100644 index 0000000..10c7b66 --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/DeviceRegionMapper.xml @@ -0,0 +1,44 @@ + + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/SensorDeviceMapper.xml b/web-infrastructure/src/main/resources/mapper/SensorDeviceMapper.xml new file mode 100644 index 0000000..8258a21 --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/SensorDeviceMapper.xml @@ -0,0 +1,48 @@ + + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/SensorTypeMapper.xml b/web-infrastructure/src/main/resources/mapper/SensorTypeMapper.xml new file mode 100644 index 0000000..5ea2dde --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/SensorTypeMapper.xml @@ -0,0 +1,34 @@ + + + + + + +