package com.gunshi.project.hsz.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.gunshi.core.dateformat.DateFormatString; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import lombok.Getter; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; /** * 描述: 预警规则配置表 * author: xusan * date: 2024-07-08 17:34:26 */ @Schema(description="预警规则配置表") @Data @TableName("public.osmotic_warn_rule") public class OsmoticWarnRule implements Serializable { @Getter public enum Type { PRESS(1), FLOW(2), SHIFT(3); private final int type; Type(int type) { this.type = type; } } @Getter public enum Status { DISABLE(0), ENABLE(1); private final int status; Status(int status) { this.status = status; } } @Getter public enum Relation { AND(1), OR(2); private final int rel; Relation(int rel) { this.rel = rel; } public static Relation match(int rel) { for (Relation value : values()) { if (value.rel == rel) { return value; } } return null; } } public enum Condition { GT(">"), GTE(">="), LT("<"), LTE("<="), EQ("="), NE("!="); private final String condition; Condition(String condition) { this.condition = condition; } public static Condition match(String condition) { for (Condition value : values()) { if (value.condition.equals(condition)) { return value; } } return null; } } private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value="id", type= IdType.AUTO) @Schema(description="主键") @NotNull(message = "主键不能为空") @JsonSerialize(using = ToStringSerializer.class) private Long id; /** * 测点编号 */ @TableField(value="station_code") @Schema(description="测点编号") @Size(max = 32,message = "测点编号最大长度要小于 32") @NotBlank(message = "测点编号不能为空") private String stationCode; /** * 告警类型(1渗压监测 2渗流监测 3位移监测) */ @TableField(value="type") @Schema(description="告警类型(1渗压监测 2渗流监测 3位移监测)") private Integer type; /** * 告警级别(1黄色 2红色) */ @TableField(value="level") @Schema(description="告警级别(1黄色 2红色)") private Integer level; /** * 校验规则描述 */ @TableField(value="rule_desc") @Schema(description="校验规则描述") @Size(max = 32,message = "校验规则描述最大长度要小于 32") private String ruleDesc; /** * 位移方向(x,y,z) */ @TableField(value="direction") @Schema(description="位移方向(x,y,h)") private String direction; /** * condition_one */ @TableField(value="condition_one") @Schema(description="condition_one") @Size(max = 32,message = "condition_one最大长度要小于 32") private String conditionOne; /** * value_one */ @TableField(value="value_one") @Schema(description="value_one") private BigDecimal valueOne; /** * condition_two */ @TableField(value="condition_two") @Schema(description="condition_two") @Size(max = 32,message = "condition_two最大长度要小于 32") private String conditionTwo; /** * 1且 2或 */ @TableField(value="condition") @Schema(description="1且 2或") private Integer condition; /** * value_two */ @TableField(value="value_two") @Schema(description="value_two") private BigDecimal valueTwo; /** * 是否启用(0否 1是) */ @TableField(value="status") @Schema(description="是否启用(0否 1是)") private BigDecimal status; /** * 创建时间 */ @TableField(value="create_time") @Schema(description="创建时间") @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8") private Date createTime; }