feat: 新功能开发,设备告警信息、设备实时数据查看等。

This commit is contained in:
tianyongbao
2025-10-30 11:19:50 +08:00
parent a9187da813
commit 1d2e2e2513
31 changed files with 2310 additions and 1 deletions

View File

@@ -0,0 +1,128 @@
package com.intc.fishery.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.intc.common.tenant.core.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 告警电话通知记录对象 aqu_call_notice
*
* @author intc
* @date 2025-10-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("aqu_call_notice")
public class CallNotice extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 通知手机号
*/
private String mobilePhone;
/**
* 设备id
*/
private Long deviceId;
/**
* 设定的呼叫时间
*/
private Date callTime;
/**
* 呼叫的CallId
*/
private String callId;
/**
* 呼叫状态
*/
private Integer callStatus;
/**
* 主叫号码
*/
private String caller;
/**
* 通话时长
*/
private String duration;
/**
* 通话结束时间
*/
private String endTime;
/**
* 挂断方向
*/
private String hangupDirection;
/**
* 呼叫发起时间
*/
private String originateTime;
/**
* 扩展字段回传
*/
private String outId;
/**
* 被叫响铃时间
*/
private String ringTime;
/**
* 通话接通时间
*/
private String startTime;
/**
* 呼叫结果状态码
*/
private String statusCode;
/**
* 结果描述
*/
private String statusMsg;
/**
* 通话类型
*/
private String tollType;
/**
* 话单类型
*/
private String voiceType;
/**
* 塘口名称
*/
private String pondName;
}

View File

@@ -0,0 +1,46 @@
package com.intc.fishery.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.intc.common.tenant.core.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 告警消息和电话告警通知关系表对象 aqu_map_message_warn_call_notice
*
* @author intc
* @date 2025-10-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("aqu_map_message_warn_call_notice")
public class MapMessageWarnCallNotice extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 告警消息Id
*/
private Long messageWarnId;
/**
* 电话通知id
*/
private Long callNoticeId;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,71 @@
package com.intc.fishery.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.intc.common.tenant.core.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 设备告警记录对象 aqu_message_warn
*
* @author intc
* @date 2025-10-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("aqu_message_warn")
public class MessageWarn extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 设备id
*/
private Long deviceId;
/**
* 消息标题
*/
private String title;
/**
* 消息内容
*/
private String message;
/**
* 是否已读
*/
private Integer isRead;
/**
* 告警类型
*/
private Integer warnType;
/**
* 塘口名称
*/
private String pondName;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,132 @@
package com.intc.fishery.domain.bo;
import com.intc.common.core.validate.AddGroup;
import com.intc.common.core.validate.EditGroup;
import com.intc.fishery.domain.CallNotice;
import com.intc.common.mybatis.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 告警电话通知记录业务对象 aqu_call_notice
*
* @author intc
* @date 2025-10-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CallNotice.class, reverseConvertGenerate = false)
public class CallNoticeBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 用户id
*/
@NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long userId;
/**
* 通知手机号
*/
@NotBlank(message = "通知手机号不能为空", groups = { AddGroup.class, EditGroup.class })
private String mobilePhone;
/**
* 设备id
*/
@NotNull(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long deviceId;
/**
* 设定的呼叫时间
*/
@NotNull(message = "设定的呼叫时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date callTime;
/**
* 呼叫的CallId
*/
private String callId;
/**
* 呼叫状态
*/
@NotNull(message = "呼叫状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer callStatus;
/**
* 主叫号码
*/
private String caller;
/**
* 通话时长
*/
private String duration;
/**
* 通话结束时间
*/
private String endTime;
/**
* 挂断方向
*/
private String hangupDirection;
/**
* 呼叫发起时间
*/
private String originateTime;
/**
* 扩展字段回传
*/
private String outId;
/**
* 被叫响铃时间
*/
private String ringTime;
/**
* 通话接通时间
*/
private String startTime;
/**
* 呼叫结果状态码
*/
private String statusCode;
/**
* 结果描述
*/
private String statusMsg;
/**
* 通话类型
*/
private String tollType;
/**
* 话单类型
*/
private String voiceType;
/**
* 塘口名称
*/
@NotBlank(message = "塘口名称不能为空", groups = { AddGroup.class })
private String pondName;
}

View File

@@ -0,0 +1,46 @@
package com.intc.fishery.domain.bo;
import com.intc.common.core.validate.AddGroup;
import com.intc.common.core.validate.EditGroup;
import com.intc.fishery.domain.MapMessageWarnCallNotice;
import com.intc.common.mybatis.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 告警消息和电话告警通知关系表业务对象 aqu_map_message_warn_call_notice
*
* @author intc
* @date 2025-10-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = MapMessageWarnCallNotice.class, reverseConvertGenerate = false)
public class MapMessageWarnCallNoticeBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 告警消息Id
*/
@NotNull(message = "告警消息Id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long messageWarnId;
/**
* 电话通知id
*/
@NotNull(message = "电话通知id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long callNoticeId;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,75 @@
package com.intc.fishery.domain.bo;
import com.intc.common.core.validate.AddGroup;
import com.intc.common.core.validate.EditGroup;
import com.intc.fishery.domain.MessageWarn;
import com.intc.common.mybatis.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 设备告警记录业务对象 aqu_message_warn
*
* @author intc
* @date 2025-10-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = MessageWarn.class, reverseConvertGenerate = false)
public class MessageWarnBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 用户id
*/
@NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long userId;
/**
* 设备id
*/
@NotNull(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long deviceId;
/**
* 消息标题
*/
@NotBlank(message = "消息标题不能为空", groups = { AddGroup.class, EditGroup.class })
private String title;
/**
* 消息内容
*/
@NotBlank(message = "消息内容不能为空", groups = { AddGroup.class, EditGroup.class })
private String message;
/**
* 是否已读
*/
@NotNull(message = "是否已读不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer isRead;
/**
* 告警类型
*/
@NotNull(message = "告警类型不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer warnType;
/**
* 塘口名称
*/
private String pondName;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,196 @@
package com.intc.fishery.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.intc.fishery.domain.CallNotice;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.intc.common.excel.annotation.ExcelDictFormat;
import com.intc.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 告警电话通知记录视图对象 aqu_call_notice
*
* @author intc
* @date 2025-10-25
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CallNotice.class)
public class CallNoticeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 用户id
*/
@ExcelProperty(value = "用户id")
private Long userId;
/**
* 通知手机号
*/
@ExcelProperty(value = "通知手机号")
private String mobilePhone;
/**
* 设备id
*/
@ExcelProperty(value = "设备id")
private Long deviceId;
/**
* 呼叫状态
*/
@ExcelProperty(value = "呼叫状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "call_status")
private Integer callStatus;
/**
* 主叫号码
*/
@ExcelProperty(value = "主叫号码")
private String caller;
/**
* 通话时长
*/
@ExcelProperty(value = "通话时长")
private String duration;
/**
* 通话结束时间
*/
@ExcelProperty(value = "通话结束时间")
private String endTime;
/**
* 挂断方向
*/
@ExcelProperty(value = "挂断方向")
private String hangupDirection;
/**
* 呼叫发起时间
*/
@ExcelProperty(value = "呼叫发起时间")
private String originateTime;
/**
* 扩展字段回传
*/
@ExcelProperty(value = "扩展字段回传")
private String outId;
/**
* 被叫响铃时间
*/
@ExcelProperty(value = "被叫响铃时间")
private String ringTime;
/**
* 通话接通时间
*/
@ExcelProperty(value = "通话接通时间")
private String startTime;
/**
* 呼叫结果状态码
*/
@ExcelProperty(value = "呼叫结果状态码")
private String statusCode;
/**
* 设定的呼叫时间
*/
private Date callTime;
/**
* 结果描述
*/
@ExcelProperty(value = "结果描述")
private String statusMsg;
/**
* 通话类型
*/
@ExcelProperty(value = "通话类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "toll_type")
private String tollType;
/**
* 话单类型
*/
@ExcelProperty(value = "话单类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "voice_type")
private String voiceType;
private Date createTime;
private Date updateTime;
/**
* 用户名(关联查询)
*/
@ExcelProperty(value = "用户名")
private String userName;
/**
* 用户手机号(关联查询)
*/
@ExcelProperty(value = "用户手机号")
private String userMobilePhone;
/**
* 设备名称(关联查询)
*/
@ExcelProperty(value = "设备名称")
private String deviceName;
/**
* 设备编号(关联查询)
*/
@ExcelProperty(value = "设备编号")
private String serialNum;
/**
* 设备类型(关联查询)
*/
@ExcelProperty(value = "设备类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "aqu_device_type")
private Integer deviceType;
/**
* 告警类型(关联查询)
*/
@ExcelProperty(value = "告警类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "warn_type")
private Integer warnType;
/**
* 告警标题(关联查询)
*/
@ExcelProperty(value = "告警标题")
private String warnTitle;
/**
* 告警内容(关联查询)
*/
@ExcelProperty(value = "告警内容")
private String warnMessage;
}

View File

@@ -0,0 +1,58 @@
package com.intc.fishery.domain.vo;
import com.intc.fishery.domain.MapMessageWarnCallNotice;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import com.intc.common.excel.annotation.ExcelDictFormat;
import com.intc.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 告警消息和电话告警通知关系表视图对象 aqu_map_message_warn_call_notice
*
* @author intc
* @date 2025-10-25
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = MapMessageWarnCallNotice.class)
public class MapMessageWarnCallNoticeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 告警消息Id
*/
@ExcelProperty(value = "告警消息Id")
private Long messageWarnId;
/**
* 电话通知id
*/
@ExcelProperty(value = "电话通知id")
private Long callNoticeId;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
private Date createTime;
private Date updateTime;
}

View File

@@ -0,0 +1,121 @@
package com.intc.fishery.domain.vo;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import com.intc.common.excel.annotation.ExcelDictFormat;
import com.intc.common.excel.convert.ExcelDictConvert;
import com.intc.fishery.domain.MessageWarn;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
/**
* 设备告警记录视图对象 aqu_message_warn
*
* @author intc
* @date 2025-10-25
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = MessageWarn.class)
public class MessageWarnVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 用户id
*/
@ExcelProperty(value = "用户id")
private Long userId;
/**
* 设备id
*/
@ExcelProperty(value = "设备id")
private Long deviceId;
/**
* 消息标题
*/
@ExcelProperty(value = "消息标题")
private String title;
/**
* 消息内容
*/
@ExcelProperty(value = "消息内容")
private String message;
/**
* 是否已读
*/
@ExcelProperty(value = "是否已读", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "yes_no")
private Integer isRead;
/**
* 告警类型
*/
@ExcelProperty(value = "告警类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "warn_type")
private Integer warnType;
/**
* 塘口名称
*/
@ExcelProperty(value = "塘口名称")
private String pondName;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
private Date createTime;
private Date updateTime;
/**
* 用户名(关联查询)
*/
@ExcelProperty(value = "用户名")
private String userName;
/**
* 用户手机号(关联查询)
*/
@ExcelProperty(value = "用户手机号")
private String mobilePhone;
/**
* 设备名称(关联查询)
*/
@ExcelProperty(value = "设备名称")
private String deviceName;
/**
* 设备编号(关联查询)
*/
@ExcelProperty(value = "设备编号")
private String serialNum;
/**
* 电话通知次数(统计查询)
*/
@ExcelProperty(value = "电话通知次数")
private Long callNoticeCount;
}