Commit 63570385 authored by chenfm's avatar chenfm

告警查询

parent b6dbd9ae
...@@ -26,7 +26,7 @@ public class DataPermHandler implements TenantHandler { ...@@ -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 @Override
public Expression getTenantId(boolean where) { public Expression getTenantId(boolean where) {
......
package com.esv.datacenter.iot.module.alarm.controller; 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.common.response.EResponse;
import com.esv.datacenter.iot.module.alarm.dto.DeviceDataAlarmDTO; 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.form.AlarmListForm;
import com.esv.datacenter.iot.module.alarm.service.DeviceDataAlarmService; import com.esv.datacenter.iot.module.alarm.service.DeviceDataAlarmService;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List; import java.util.List;
...@@ -19,20 +19,44 @@ import java.util.List; ...@@ -19,20 +19,44 @@ import java.util.List;
* @createTime: 2020/8/7 14:21 * @createTime: 2020/8/7 14:21
* @version: 1.0 * @version: 1.0
*/ */
@RestController
@RequestMapping("alarm/show") @RequestMapping("alarm/show")
public class DeviceDataAlarmController { public class DeviceDataAlarmController {
private DeviceDataAlarmService deviceDataAlarmService; private DeviceDataAlarmService deviceDataAlarmService;
@Autowired
public DeviceDataAlarmController(DeviceDataAlarmService deviceDataAlarmService) { public DeviceDataAlarmController(DeviceDataAlarmService deviceDataAlarmService) {
this.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") @PostMapping("list")
public EResponse<List<DeviceDataAlarmDTO>> list(@RequestBody AlarmListForm alarmListForm) { 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; package com.esv.datacenter.iot.module.alarm.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.entity.DeviceDataAlarmEntity;
import com.esv.datacenter.iot.module.alarm.form.AlarmListForm;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 设备数据模型映射表 * 设备数据模型映射表
...@@ -13,5 +18,8 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -13,5 +18,8 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface DeviceDataAlarmDao extends BaseMapper<DeviceDataAlarmEntity> { 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; package com.esv.datacenter.iot.module.alarm.dto;
import com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
/** /**
* @description: * @description:
...@@ -11,6 +13,49 @@ import lombok.Data; ...@@ -11,6 +13,49 @@ import lombok.Data;
* @createTime: 2020/8/7 14:19 * @createTime: 2020/8/7 14:19
* @version: 1.0 * @version: 1.0
*/ */
@EqualsAndHashCode(callSuper = true)
@Data @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 { ...@@ -36,6 +36,12 @@ public class DeviceDataAlarmEntity {
* createTime 2020/8/7 14:14 * createTime 2020/8/7 14:14
**/ **/
private Long alarmRuleId; private Long alarmRuleId;
/**
* description 上报值
* author chenfm
* createTime 2020/8/7 15:22
**/
private String reportValue;
/** /**
* description 数据上报时间 * description 数据上报时间
* author chenfm * author chenfm
......
...@@ -13,4 +13,7 @@ import lombok.Data; ...@@ -13,4 +13,7 @@ import lombok.Data;
*/ */
@Data @Data
public class AlarmListForm { public class AlarmListForm {
private String deviceName;
} }
package com.esv.datacenter.iot.module.alarm.service; package com.esv.datacenter.iot.module.alarm.service;
import com.baomidou.mybatisplus.extension.service.IService; 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.entity.DeviceDataAlarmEntity;
import com.esv.datacenter.iot.module.alarm.form.AlarmListForm;
import java.util.List;
/** /**
* @description: * @description:
...@@ -13,4 +17,9 @@ import com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity; ...@@ -13,4 +17,9 @@ import com.esv.datacenter.iot.module.alarm.entity.DeviceDataAlarmEntity;
* @version: 1.0 * @version: 1.0
*/ */
public interface DeviceDataAlarmService extends IService<DeviceDataAlarmEntity> { 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; ...@@ -2,10 +2,14 @@ package com.esv.datacenter.iot.module.alarm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.esv.datacenter.iot.module.alarm.dao.DeviceDataAlarmDao; 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.entity.DeviceDataAlarmEntity;
import com.esv.datacenter.iot.module.alarm.form.AlarmListForm;
import com.esv.datacenter.iot.module.alarm.service.DeviceDataAlarmService; import com.esv.datacenter.iot.module.alarm.service.DeviceDataAlarmService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @description: * @description:
* @project: datacenter-iot-service * @project: datacenter-iot-service
...@@ -17,4 +21,13 @@ import org.springframework.stereotype.Service; ...@@ -17,4 +21,13 @@ import org.springframework.stereotype.Service;
*/ */
@Service("deviceDataAlarmService") @Service("deviceDataAlarmService")
public class DeviceDataAlarmServiceImpl extends ServiceImpl<DeviceDataAlarmDao, DeviceDataAlarmEntity> implements 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