Commit 63570385 authored by chenfm's avatar chenfm

告警查询

parent b6dbd9ae
......@@ -26,7 +26,7 @@ public class DataPermHandler implements TenantHandler {
/**
* 不需要数据权限查询的表
**/
private final List<String> filterTableNames = Arrays.asList("");
private final List<String> filterTableNames = Arrays.asList("device_data_alarm");
@Override
public Expression getTenantId(boolean where) {
......
package com.esv.datacenter.iot.module.alarm.controller;
import com.esv.datacenter.iot.common.response.ECode;
import com.esv.datacenter.iot.common.response.EResponse;
import com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO;
import com.esv.datacenter.iot.module.alarm.form.AlarmListForm;
import com.esv.datacenter.iot.module.alarm.service.DeviceDataAlarmService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -19,20 +19,44 @@ import java.util.List;
* @createTime: 2020/8/7 14:21
* @version: 1.0
*/
@RestController
@RequestMapping("alarm/show")
public class DeviceDataAlarmController {
private DeviceDataAlarmService deviceDataAlarmService;
@Autowired
public DeviceDataAlarmController(DeviceDataAlarmService deviceDataAlarmService) {
this.deviceDataAlarmService = deviceDataAlarmService;
}
/**
* description 告警查询
* param [alarmListForm]
* return com.esv.datacenter.iot.common.response.EResponse<java.util.List<com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO>>
* author chenfm
* createTime 2020/8/7 16:59
**/
@PostMapping("list")
public EResponse<List<DeviceDataAlarmDTO>> list(@RequestBody AlarmListForm alarmListForm) {
List<DeviceDataAlarmDTO> list = deviceDataAlarmService.alarmList(alarmListForm);
return EResponse.ok(list);
}
return EResponse.ok();
/**
* description 告警详情
* param [id]
* return com.esv.datacenter.iot.common.response.EResponse<com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO>
* author chenfm
* createTime 2020/8/7 17:00
**/
@GetMapping("detail")
public EResponse<DeviceDataAlarmDTO> detail(@RequestParam(value = "id") Long id) {
DeviceDataAlarmDTO deviceDataAlarmDTO = deviceDataAlarmService.alarmDetail(id);
if (deviceDataAlarmDTO == null) {
return EResponse.error(ECode.PARAM_ERROR);
}
return EResponse.ok(deviceDataAlarmDTO);
}
}
package com.esv.datacenter.iot.module.alarm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO;
import com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity;
import com.esv.datacenter.iot.module.alarm.form.AlarmListForm;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 设备数据模型映射表
......@@ -14,4 +19,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DeviceDataAlarmDao extends BaseMapper<DeviceDataAlarmEntity> {
List<DeviceDataAlarmDTO> alarmList(AlarmListForm alarmListForm);
DeviceDataAlarmDTO alarmDetail(@Param("id") Long id);
}
package com.esv.datacenter.iot.module.alarm.dto;
import com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @description:
......@@ -11,6 +13,49 @@ import lombok.Data;
* @createTime: 2020/8/7 14:19
* @version: 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class DeviceDataAlarmDTO {
public class DeviceDataAlarmDTO extends DeviceDataAlarmEntity {
/**
* 模型ID
*/
private Long deviceTypeId;
/**
* 模型名称
*/
private String deviceTypeName;
/**
* 实例名称
*/
private String deviceName;
/**
* 实例描述
*/
private String deviceDescription;
/**
* 模型名称
*/
private String dataModelName;
/**
* 属性代码
*/
private String propertyCode;
/**
* 属性名称
*/
private String propertyName;
/**
* 判定规则代码(字典表)
*/
private Integer ruleExpression;
/**
* 告警等级(字典表)
*/
private Integer alarmLevel;
/**
* 阈值
*/
private String threshold;
}
......@@ -36,6 +36,12 @@ public class DeviceDataAlarmEntity {
* createTime 2020/8/7 14:14
**/
private Long alarmRuleId;
/**
* description 上报值
* author chenfm
* createTime 2020/8/7 15:22
**/
private String reportValue;
/**
* description 数据上报时间
* author chenfm
......
......@@ -13,4 +13,7 @@ import lombok.Data;
*/
@Data
public class AlarmListForm {
private String deviceName;
}
package com.esv.datacenter.iot.module.alarm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO;
import com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity;
import com.esv.datacenter.iot.module.alarm.form.AlarmListForm;
import java.util.List;
/**
* @description:
......@@ -13,4 +17,9 @@ import com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity;
* @version: 1.0
*/
public interface DeviceDataAlarmService extends IService<DeviceDataAlarmEntity> {
List<DeviceDataAlarmDTO> alarmList(AlarmListForm alarmListForm);
DeviceDataAlarmDTO alarmDetail(Long id);
}
......@@ -2,10 +2,14 @@ package com.esv.datacenter.iot.module.alarm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.module.alarm.dao.DeviceDataAlarmDao;
import com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO;
import com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity;
import com.esv.datacenter.iot.module.alarm.form.AlarmListForm;
import com.esv.datacenter.iot.module.alarm.service.DeviceDataAlarmService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @project: datacenter-iot-service
......@@ -17,4 +21,13 @@ import org.springframework.stereotype.Service;
*/
@Service("deviceDataAlarmService")
public class DeviceDataAlarmServiceImpl extends ServiceImpl<DeviceDataAlarmDao, DeviceDataAlarmEntity> implements DeviceDataAlarmService {
@Override
public List<DeviceDataAlarmDTO> alarmList(AlarmListForm alarmListForm) {
return baseMapper.alarmList(alarmListForm);
}
@Override
public DeviceDataAlarmDTO alarmDetail(Long id) {
return baseMapper.alarmDetail(id);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.esv.datacenter.iot.module.alarm.dao.DeviceDataAlarmDao">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap id="deviceDataAlarmMap" type="com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity">
<id property="id" column="id" />
<result property="deviceId" column="device_id" />
<result property="alarmRuleId" column="alarm_rule_id" />
<result property="reportTime" column="report_time" />
<result property="alarmTime" column="alarm_time" />
</resultMap>
<select id="alarmList" resultType="com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO"
parameterType="com.esv.datacenter.iot.module.alarm.form.AlarmListForm">
select alarm.id, alarm.device_id, alarm.alarm_rule_id, alarm.report_value, alarm.report_time, alarm.alarm_time,
device.device_type_id, type.name device_type_name, device.name device_name, device.description device_description,
model.name data_model_name, property.property_code, property.property_name, rule.rule_expression, rule.alarm_level,
rule.threshold
from device_data_alarm alarm
left join device_instance device on alarm.device_id = device.id
left join device_type type on device.device_type_id = type.id
left join data_model_alarm_rule rule on alarm.alarm_rule_id = rule.id
left join data_model model on rule.model_id = model.id
left join data_model_property property on rule.property_id = property.id
</select>
<select id="alarmDetail" resultType="com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO">
select alarm.id, alarm.device_id, alarm.alarm_rule_id, alarm.report_value, alarm.report_time, alarm.alarm_time,
device.device_type_id, type.name device_type_name, device.name device_name, device.description device_description,
model.name data_model_name, property.property_code, property.property_name, rule.rule_expression, rule.alarm_level,
rule.threshold
from device_data_alarm alarm
left join device_instance device on alarm.device_id = device.id
left join device_type type on device.device_type_id = type.id
left join data_model_alarm_rule rule on alarm.alarm_rule_id = rule.id
left join data_model model on rule.model_id = model.id
left join data_model_property property on rule.property_id = property.id
where alarm.id = #{id}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment