feat(alarm): 添加可视化大屏物联网设备报警功能
parent
203692baab
commit
3884605533
|
|
@ -1,4 +1,4 @@
|
||||||
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/5/27 09:58:05) App/iotalarm"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
|
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/5/28 17:15:10) App/iotalarm"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
|
||||||
const APP_ENV = {
|
const APP_ENV = {
|
||||||
antd: {
|
antd: {
|
||||||
'ant-prefix': 'micro-temp',
|
'ant-prefix': 'micro-temp',
|
||||||
|
|
@ -20,4 +20,4 @@
|
||||||
redirect: '',
|
redirect: '',
|
||||||
FRAMEWORK: APP_ENV.antd
|
FRAMEWORK: APP_ENV.antd
|
||||||
};
|
};
|
||||||
})();</script><script defer="defer" src="/iotalarm/static/js/692.af6ab5c0031679cbddc3.js"></script><script defer="defer" src="/iotalarm/static/js/267.5d17f26c6b6d0853e68b.js"></script><script defer="defer" src="/iotalarm/static/js/867.e56a598fea96a2b1b4fa.js"></script><script defer="defer" src="/iotalarm/static/js/main.efb0f4abab73ee923073.js"></script><link href="/iotalarm/static/css/main.64b082dca17390b0b36f.css" rel="stylesheet"></head><body><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative;overflow-y: auto"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息、构建时间 */console.log("%c@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/5/27 09:58:05) App/iotalarm Version/main Java/<branch-name>", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>
|
})();</script><script defer="defer" src="/iotalarm/static/js/692.af6ab5c0031679cbddc3.js"></script><script defer="defer" src="/iotalarm/static/js/267.5d17f26c6b6d0853e68b.js"></script><script defer="defer" src="/iotalarm/static/js/867.e56a598fea96a2b1b4fa.js"></script><script defer="defer" src="/iotalarm/static/js/main.e1495a14be2402b9ed1a.js"></script><link href="/iotalarm/static/css/main.64b082dca17390b0b36f.css" rel="stylesheet"></head><body><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative;overflow-y: auto"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息、构建时间 */console.log("%c@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/5/28 17:15:10) App/iotalarm Version/main Java/<branch-name>", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>
|
||||||
|
|
@ -6,8 +6,10 @@ import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.zcloud.api.AlarmRecordServiceI;
|
import com.zcloud.api.AlarmRecordServiceI;
|
||||||
import com.zcloud.dto.AlarmRecordPageQry;
|
import com.zcloud.dto.AlarmRecordPageQry;
|
||||||
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
||||||
|
import com.zcloud.dto.AlarmRecordScreenPageQry;
|
||||||
import com.zcloud.dto.AppAlarmDisposePageQry;
|
import com.zcloud.dto.AppAlarmDisposePageQry;
|
||||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||||
|
import com.zcloud.dto.clientobject.AlarmRecordScreenCO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
|
@ -78,4 +80,10 @@ public class AlarmRecordController {
|
||||||
|
|
||||||
return MultiResponse.of(alarmRecordCOList);
|
return MultiResponse.of(alarmRecordCOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("可视化大屏-物联网设备情况报警")
|
||||||
|
@PostMapping("/screenIotDeviceAlarmPage")
|
||||||
|
public PageResponse<AlarmRecordScreenCO> screenIotDeviceAlarmPage(@RequestBody AlarmRecordScreenPageQry qry) {
|
||||||
|
return alarmRecordService.screenIotDeviceAlarmPage(qry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.zcloud.dto.AlarmRecordPageQry;
|
import com.zcloud.dto.AlarmRecordPageQry;
|
||||||
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
||||||
|
import com.zcloud.dto.AlarmRecordScreenPageQry;
|
||||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||||
|
import com.zcloud.dto.clientobject.AlarmRecordScreenCO;
|
||||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
import com.zcloud.persistence.dataobject.SensorDeviceDO;
|
||||||
|
|
@ -56,6 +58,11 @@ public class AlarmRecordQueryExe {
|
||||||
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PageResponse<AlarmRecordScreenCO> screenIotDeviceAlarmPage(AlarmRecordScreenPageQry qry) {
|
||||||
|
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
|
||||||
|
return alarmRecordRepository.screenIotDeviceAlarmPage(params);
|
||||||
|
}
|
||||||
|
|
||||||
public SingleResponse<AlarmRecordCO> getById(Long id) {
|
public SingleResponse<AlarmRecordCO> getById(Long id) {
|
||||||
AlarmRecordDO d = alarmRecordRepository.detailView(id);
|
AlarmRecordDO d = alarmRecordRepository.detailView(id);
|
||||||
if (d == null || "TRUE".equals(d.getDeleteEnum())) {
|
if (d == null || "TRUE".equals(d.getDeleteEnum())) {
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,10 @@ import com.zcloud.command.query.AppAlarmDisposeQueryExe;
|
||||||
import com.zcloud.command.query.AppAlarmRecordQueryExe;
|
import com.zcloud.command.query.AppAlarmRecordQueryExe;
|
||||||
import com.zcloud.dto.AlarmRecordPageQry;
|
import com.zcloud.dto.AlarmRecordPageQry;
|
||||||
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
||||||
|
import com.zcloud.dto.AlarmRecordScreenPageQry;
|
||||||
import com.zcloud.dto.AppAlarmDisposePageQry;
|
import com.zcloud.dto.AppAlarmDisposePageQry;
|
||||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||||
|
import com.zcloud.dto.clientobject.AlarmRecordScreenCO;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|
@ -31,6 +33,11 @@ public class AlarmRecordServiceImpl implements AlarmRecordServiceI {
|
||||||
return alarmRecordQueryExe.listBySensorDevice(qry);
|
return alarmRecordQueryExe.listBySensorDevice(qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<AlarmRecordScreenCO> screenIotDeviceAlarmPage(AlarmRecordScreenPageQry qry) {
|
||||||
|
return alarmRecordQueryExe.screenIotDeviceAlarmPage(qry);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleResponse<AlarmRecordCO> info(Long id) {
|
public SingleResponse<AlarmRecordCO> info(Long id) {
|
||||||
return alarmRecordQueryExe.getById(id);
|
return alarmRecordQueryExe.getById(id);
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,11 @@ import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.zcloud.dto.AlarmRecordPageQry;
|
import com.zcloud.dto.AlarmRecordPageQry;
|
||||||
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
import com.zcloud.dto.AlarmRecordSensorPageQry;
|
||||||
|
import com.zcloud.dto.AlarmRecordScreenPageQry;
|
||||||
import com.zcloud.dto.AppAlarmDisposePageQry;
|
import com.zcloud.dto.AppAlarmDisposePageQry;
|
||||||
import com.zcloud.dto.AppAlarmRecordPageQry;
|
import com.zcloud.dto.AppAlarmRecordPageQry;
|
||||||
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
import com.zcloud.dto.clientobject.AlarmRecordCO;
|
||||||
|
import com.zcloud.dto.clientobject.AlarmRecordScreenCO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AlarmRecordServiceI - 报警记录服务接口
|
* AlarmRecordServiceI - 报警记录服务接口
|
||||||
|
|
@ -24,6 +26,14 @@ public interface AlarmRecordServiceI {
|
||||||
|
|
||||||
PageResponse<AlarmRecordCO> listBySensorDevice(AlarmRecordSensorPageQry qry);
|
PageResponse<AlarmRecordCO> listBySensorDevice(AlarmRecordSensorPageQry qry);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏物联网设备情况报警分页查询
|
||||||
|
*
|
||||||
|
* @param qry 查询条件
|
||||||
|
* @return 分页结果
|
||||||
|
*/
|
||||||
|
PageResponse<AlarmRecordScreenCO> screenIotDeviceAlarmPage(AlarmRecordScreenPageQry qry);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报警详情
|
* 报警详情
|
||||||
* @param id
|
* @param id
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.zcloud.dto;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏物联网设备情况报警分页请求
|
||||||
|
*
|
||||||
|
* @Author wangyan
|
||||||
|
* @Date 2026-07-16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AlarmRecordScreenPageQry extends PageQuery {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "所属单位ID,可以为空")
|
||||||
|
private Long corpinfoId;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.zcloud.dto.clientobject;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可视化大屏物联网设备情况报警返回对象
|
||||||
|
*
|
||||||
|
* @Author wangyan
|
||||||
|
* @Date 2026-07-16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AlarmRecordScreenCO extends ClientObject {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "报警来源,DCS三方报警,THRESHOLD阈值报警")
|
||||||
|
private String alarmSource;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "设备类型")
|
||||||
|
private String alarmSourceName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "所属单位名称")
|
||||||
|
private String corpName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "报警类型")
|
||||||
|
private String alarmType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "报警类型名称")
|
||||||
|
private String alarmTypeName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "处置状态,10报警中,20未处置,30已消警")
|
||||||
|
private Integer status;
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
import com.jjb.saas.framework.datascope.annotation.DataScope;
|
||||||
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
import com.jjb.saas.framework.datascope.annotation.DataScopes;
|
||||||
|
import com.zcloud.dto.clientobject.AlarmRecordScreenCO;
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
@ -25,6 +26,8 @@ public interface AlarmRecordMapper extends BaseMapper<AlarmRecordDO> {
|
||||||
|
|
||||||
IPage<AlarmRecordDO> listBySensorDevice(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
IPage<AlarmRecordDO> listBySensorDevice(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
IPage<AlarmRecordScreenCO> screenIotDeviceAlarmPage(IPage<AlarmRecordScreenCO> page, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
IPage<AlarmRecordDO> disposeListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
IPage<AlarmRecordDO> disposeListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
IPage<AlarmRecordDO> appListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
IPage<AlarmRecordDO> appListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.zcloud.persistence.repository;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
import com.zcloud.dto.clientobject.AlarmRecordScreenCO;
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -17,6 +18,8 @@ public interface AlarmRecordRepository extends BaseRepository<AlarmRecordDO> {
|
||||||
|
|
||||||
PageResponse<AlarmRecordDO> listBySensorDevice(Map<String, Object> params);
|
PageResponse<AlarmRecordDO> listBySensorDevice(Map<String, Object> params);
|
||||||
|
|
||||||
|
PageResponse<AlarmRecordScreenCO> screenIotDeviceAlarmPage(Map<String, Object> params);
|
||||||
|
|
||||||
PageResponse<AlarmRecordDO> disposeListPage(Map<String, Object> params);
|
PageResponse<AlarmRecordDO> disposeListPage(Map<String, Object> params);
|
||||||
|
|
||||||
PageResponse<AlarmRecordDO> appListPage(Map<String, Object> params);
|
PageResponse<AlarmRecordDO> appListPage(Map<String, Object> params);
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.jjb.saas.framework.repository.common.PageHelper;
|
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||||
import com.zcloud.domain.enums.MenuEnum;
|
import com.zcloud.domain.enums.MenuEnum;
|
||||||
|
import com.zcloud.dto.clientobject.AlarmRecordScreenCO;
|
||||||
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
import com.zcloud.persistence.dataobject.AlarmRecordDO;
|
||||||
import com.zcloud.persistence.mapper.AlarmRecordMapper;
|
import com.zcloud.persistence.mapper.AlarmRecordMapper;
|
||||||
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
import com.zcloud.persistence.repository.AlarmRecordRepository;
|
||||||
|
|
@ -43,6 +44,13 @@ public class AlarmRecordRepositoryImpl extends BaseRepositoryImpl<AlarmRecordMap
|
||||||
return PageHelper.pageToResponse(result, result.getRecords());
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<AlarmRecordScreenCO> screenIotDeviceAlarmPage(Map<String, Object> params) {
|
||||||
|
IPage<AlarmRecordScreenCO> page = new Query<AlarmRecordScreenCO>().getPage(params);
|
||||||
|
IPage<AlarmRecordScreenCO> result = alarmRecordMapper.screenIotDeviceAlarmPage(page, params);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResponse<AlarmRecordDO> disposeListPage(Map<String, Object> params) {
|
public PageResponse<AlarmRecordDO> disposeListPage(Map<String, Object> params) {
|
||||||
IPage<AlarmRecordDO> page = new Query<AlarmRecordDO>().getPage(params);
|
IPage<AlarmRecordDO> page = new Query<AlarmRecordDO>().getPage(params);
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,30 @@
|
||||||
ORDER BY ar.alarm_time DESC
|
ORDER BY ar.alarm_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="screenIotDeviceAlarmPage" resultType="com.zcloud.dto.clientobject.AlarmRecordScreenCO">
|
||||||
|
SELECT
|
||||||
|
ar.alarm_source AS alarmSource,
|
||||||
|
CASE ar.alarm_source
|
||||||
|
WHEN 'DCS' THEN '三方报警'
|
||||||
|
WHEN 'THRESHOLD' THEN '阈值报警'
|
||||||
|
ELSE ar.alarm_source
|
||||||
|
END AS alarmSourceName,
|
||||||
|
ci.corp_name AS corpName,
|
||||||
|
ar.alarm_type AS alarmType,
|
||||||
|
ar.alarm_type_name AS alarmTypeName,
|
||||||
|
ar.status AS status
|
||||||
|
FROM iot_alarm_record ar
|
||||||
|
LEFT JOIN corp_info ci ON ar.tenant_id = ci.id
|
||||||
|
<where>
|
||||||
|
ar.delete_enum = 'FALSE'
|
||||||
|
AND ar.status != 40
|
||||||
|
<if test="params.corpinfoId != null">
|
||||||
|
AND ar.corpinfo_id = #{params.corpinfoId}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY ar.alarm_time DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="disposeListPage" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
|
<select id="disposeListPage" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
|
||||||
SELECT
|
SELECT
|
||||||
<include refid="alarmRecordBaseColumns"/>
|
<include refid="alarmRecordBaseColumns"/>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue