feat:联动控制,定时控制,通知推送功能代码提交。

This commit is contained in:
tianyongbao
2025-10-23 14:24:02 +08:00
parent f50ee440ef
commit d135c85ec0
39 changed files with 1369 additions and 273 deletions

View File

@@ -0,0 +1,70 @@
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;
import java.util.Date;
/**
* 溶解氧联动控制对象 aqu_linked_ctrl
*
* @author intc
* @date 2025-10-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("aqu_linked_ctrl")
public class LinkedCtrl extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 设备id
*/
private Long deviceId;
/**
* 溶解氧上限开关
*/
private Integer oxyUpperOpen;
/**
* 溶解氧上限值
*/
private Double oxyUpperValue;
/**
* 溶解氧下限开关
*/
private Integer oxyLowerOpen;
/**
* 溶解氧下限值
*/
private Double oxyLowerValue;
/**
* 是否触发上限关闭操作
*/
private Integer isOxyUpperTrigger;
/**
* 备注
*/
private String remark;
private Date createTime;
private Date updateTime;
}

View File

@@ -0,0 +1,69 @@
package com.intc.fishery.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.intc.common.tenant.core.TenantEntity;
import com.intc.common.translation.annotation.Translation;
import com.intc.common.translation.constant.TransConstant;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 开关定时控制对象 aqu_timing_ctrl
*
* @author intc
* @date 2025-10-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("aqu_timing_ctrl")
public class TimingCtrl extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(value = "id")
private Long id;
/**
* 开关id
*/
private Long switchId;
/**
* 开启时间
*/
private Date openTime;
/**
* 关闭时间
*/
private Date closeTime;
/**
* 循环类型
*/
private Long loopType;
/**
* 是否启用
*/
private Long isOpen;
/**
* 备注
*/
private String remark;
private Date createTime;
private Date updateTime;
}

View File

@@ -0,0 +1,70 @@
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.LinkedCtrl;
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_linked_ctrl
*
* @author intc
* @date 2025-10-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = LinkedCtrl.class, reverseConvertGenerate = false)
public class LinkedCtrlBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 设备id
*/
@NotNull(message = "设备id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long deviceId;
/**
* 溶解氧上限开关
*/
@NotNull(message = "溶解氧上限开关不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer oxyUpperOpen;
/**
* 溶解氧上限值
*/
@NotNull(message = "溶解氧上限值不能为空", groups = { AddGroup.class, EditGroup.class })
private Double oxyUpperValue;
/**
* 溶解氧下限开关
*/
@NotNull(message = "溶解氧下限开关不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer oxyLowerOpen;
/**
* 溶解氧下限值
*/
@NotNull(message = "溶解氧下限值不能为空", groups = { AddGroup.class, EditGroup.class })
private Double oxyLowerValue;
/**
* 是否触发上限关闭操作
*/
@NotNull(message = "是否触发上限关闭操作不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer isOxyUpperTrigger;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,66 @@
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.TimingCtrl;
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_timing_ctrl
*
* @author intc
* @date 2025-10-23
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TimingCtrl.class, reverseConvertGenerate = false)
public class TimingCtrlBo extends BaseEntity {
/**
* 主键id
*/
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 开关id
*/
@NotNull(message = "开关id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long switchId;
/**
* 开启时间
*/
@NotNull(message = "开启时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date openTime;
/**
* 关闭时间
*/
@NotNull(message = "关闭时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date closeTime;
/**
* 循环类型
*/
@NotNull(message = "循环类型不能为空", groups = { AddGroup.class, EditGroup.class })
private Long loopType;
/**
* 是否启用
*/
@NotNull(message = "是否启用不能为空", groups = { AddGroup.class, EditGroup.class })
private Long isOpen;
/**
* 备注
*/
private String remark;
}

View File

@@ -1,18 +1,18 @@
package com.intc.fishery.domain.vo;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.intc.common.json.handler.DoubleSerializer;
import com.intc.fishery.domain.DeviceSwitch;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 测控一体机开关视图对象 aqu_device_switch
@@ -131,6 +131,24 @@ public class DeviceSwitchVo implements Serializable {
@ExcelProperty(value = "是否联动控制")
private Integer isLinkedCtrl;
/**
* 用户名
*/
@ExcelProperty(value = "用户名")
private String userName;
/**
* 用户手机号
*/
@ExcelProperty(value = "用户手机号")
private String mobilePhone;
/**
* 定时控制数量
*/
@ExcelProperty(value = "定时控制数量")
private Integer timingCtrlCount;
private Date createTime;

View File

@@ -0,0 +1,113 @@
package com.intc.fishery.domain.vo;
import java.io.Serial;
import java.io.Serializable;
import com.intc.common.excel.annotation.ExcelDictFormat;
import com.intc.common.excel.convert.ExcelDictConvert;
import com.intc.fishery.domain.LinkedCtrl;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
/**
* 溶解氧联动控制视图对象 aqu_linked_ctrl
*
* @author intc
* @date 2025-10-23
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = LinkedCtrl.class)
public class LinkedCtrlVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 设备id
*/
@ExcelProperty(value = "设备id")
private Long deviceId;
/**
* 溶解氧上限开关
*/
@ExcelProperty(value = "溶解氧上限开关", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "open_close")
private Integer oxyUpperOpen;
/**
* 溶解氧上限值
*/
@ExcelProperty(value = "溶解氧上限值")
private Double oxyUpperValue;
/**
* 溶解氧下限开关
*/
@ExcelProperty(value = "溶解氧下限开关", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "open_close")
private Integer oxyLowerOpen;
/**
* 溶解氧下限值
*/
@ExcelProperty(value = "溶解氧下限值")
private Double oxyLowerValue;
/**
* 是否触发上限关闭操作
*/
@ExcelProperty(value = "是否触发上限关闭操作", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "yes_no")
private Integer isOxyUpperTrigger;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 设备名称
*/
@ExcelProperty(value = "塘口名称")
private String pondName;
/**
* 设备名称
*/
@ExcelProperty(value = "设备名称")
private String deviceName;
/**
* 设备编号
*/
@ExcelProperty(value = "设备编号")
private String serialNum;
/**
* 用户手机号
*/
@ExcelProperty(value = "用户手机号")
private String mobilePhone;
/**
* 用户名
*/
@ExcelProperty(value = "用户名")
private String userName;
}

View File

@@ -0,0 +1,106 @@
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.TimingCtrl;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
/**
* 开关定时控制视图对象 aqu_timing_ctrl
*
* @author intc
* @date 2025-10-23
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TimingCtrl.class)
public class TimingCtrlVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@ExcelProperty(value = "主键id")
private Long id;
/**
* 开关id
*/
@ExcelProperty(value = "开关id")
private Long switchId;
/**
* 开启时间
*/
@ExcelProperty(value = "开启时间")
private Date openTime;
/**
* 关闭时间
*/
@ExcelProperty(value = "关闭时间")
private Date closeTime;
/**
* 循环类型
*/
@ExcelProperty(value = "循环类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "loop_type")
private Long loopType;
/**
* 是否启用
*/
@ExcelProperty(value = "是否启用")
private Long isOpen;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 开关名称
*/
@ExcelProperty(value = "开关名称")
private String switchName;
/**
* 设备名称
*/
@ExcelProperty(value = "设备名称")
private String deviceName;
/**
* 设备编号
*/
@ExcelProperty(value = "设备编号")
private String serialNum;
/**
* 用户手机号
*/
@ExcelProperty(value = "用户手机号")
private String mobilePhone;
/**
* 用户名
*/
@ExcelProperty(value = "用户名")
private String userName;
}