Kaynağa Gözat

feat(base): 添加管网基础数据和预警系统核心实体类

- 新增 MonitorPoint 实体类,用于关键监控点位管理
- 新增 PipeNetworkBase 实体类,用于管网基础设施信息管理
- 新增 WarningArchive 实体类,用于预警归档记录
- 新增 WarningAttachment 实体类,用于预警附件管理
- 新增 WarningDisposal 实体类,用于预警处置记录
- 新增 WarningItem 实体类,用于预警事项配置
- 新增 WarningReason 实体类,用于预警原因管理
- 新增 WarningSaveDTO 数据传输对象,用于预警保存功能
- 新增 WarningTodo 实体类,用于预警待办任务管理
林仔 1 hafta önce
ebeveyn
işleme
f4259c4d9d

+ 73 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/domain/MonitorPoint.java

@@ -0,0 +1,73 @@
+package com.zksy.base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 关键监控点位表
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("monitor_point")
+public class MonitorPoint {
+
+    @TableId(value = "point_id", type = IdType.ASSIGN_UUID)
+    @ApiModelProperty("监测点ID")
+    private String pointId;
+
+    @ApiModelProperty("监测点编码")
+    private String pointCode;
+
+    @ApiModelProperty("监测点名称")
+    private String pointName;
+
+    @ApiModelProperty("关联管网设施ID")
+    private String networkId;
+
+    @ApiModelProperty("监测点类型")
+    private String pointType;
+
+    @ApiModelProperty("位置描述")
+    private String location;
+
+    @ApiModelProperty("经度")
+    private BigDecimal longitude;
+
+    @ApiModelProperty("纬度")
+    private BigDecimal latitude;
+
+    @ApiModelProperty("安装日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date installationDate;
+
+    @ApiModelProperty("状态")
+    private String status;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("更新人")
+    private String updateBy;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime updateTime;
+}

+ 85 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/domain/PipeNetworkBase.java

@@ -0,0 +1,85 @@
+package com.zksy.base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 管网基础设施信息表
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("pipe_network_base")
+public class PipeNetworkBase {
+
+    @TableId(value = "network_id", type = IdType.ASSIGN_UUID)
+    @ApiModelProperty("管网设施ID")
+    private String networkId;
+
+    @ApiModelProperty("设施编码")
+    private String networkCode;
+
+    @ApiModelProperty("设施名称")
+    private String networkName;
+
+    @ApiModelProperty("设施类型")
+    private String networkType;
+
+    @ApiModelProperty("等级")
+    private String networkLevel;
+
+    @ApiModelProperty("管养单位")
+    private String managementUnit;
+
+    @ApiModelProperty("位置描述")
+    private String location;
+
+    @ApiModelProperty("经度")
+    private BigDecimal longitude;
+
+    @ApiModelProperty("纬度")
+    private BigDecimal latitude;
+
+    @ApiModelProperty("长度(米)")
+    private BigDecimal length;
+
+    @ApiModelProperty("管径(毫米)")
+    private BigDecimal diameter;
+
+    @ApiModelProperty("材质")
+    private String material;
+
+    @ApiModelProperty("建设日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date buildDate;
+
+    @ApiModelProperty("状态")
+    private String status;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("更新人")
+    private String updateBy;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime updateTime;
+}

+ 100 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/domain/WarningArchive.java

@@ -0,0 +1,100 @@
+package com.zksy.base.warning.domain;
+
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@TableName("warning_archive")
+@Api(value = "预警归档")
+@Data
+public class WarningArchive implements Serializable {
+
+    @TableId(value = "archive_id", type = IdType.ASSIGN_UUID)
+    @ApiModelProperty("归档ID")
+    private String archiveId;
+
+    @TableField("warning_id")
+    @ApiModelProperty("预警ID")
+    private String warningId;
+
+    @TableField("archive_no")
+    @ApiModelProperty("归档编号")
+    private String archiveNo;
+
+    @TableField("warning_no")
+    @ApiModelProperty("预警编号")
+    private String warningNo;
+
+    @TableField("warning_name")
+    @ApiModelProperty("预警名称")
+    private String warningName;
+
+    @TableField("warning_type")
+    @ApiModelProperty("预警类型")
+    private String warningType;
+
+    @TableField("warning_level")
+    @ApiModelProperty("预警级别")
+    private String warningLevel;
+
+    @TableField("location")
+    @ApiModelProperty("预警位置")
+    private String location;
+
+    @TableField("longitude")
+    @ApiModelProperty("经度")
+    private Double longitude;
+
+    @TableField("latitude")
+    @ApiModelProperty("纬度")
+    private Double latitude;
+
+    @TableField("ownership_unit")
+    @ApiModelProperty("权属单位")
+    private String ownershipUnit;
+
+    @TableField("publisher")
+    @ApiModelProperty("发布人")
+    private String publisher;
+
+    @TableField("publish_time")
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime publishTime;
+
+    @TableField("handler")
+    @ApiModelProperty("处置人")
+    private String handler;
+
+    @TableField("warning_content")
+    @ApiModelProperty("预警内容")
+    private String warningContent;
+
+    @TableField("archive_content")
+    @ApiModelProperty("归档内容")
+    private String archiveContent;
+
+    @TableField("archive_status")
+    @ApiModelProperty("归档状态")
+    private String archiveStatus;
+
+    @TableField("create_by")
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @TableField("create_time")
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 55 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/domain/WarningAttachment.java

@@ -0,0 +1,55 @@
+package com.zksy.base.warning.domain;
+
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@TableName("warning_attachment")
+@Api("预警附件")
+@Data
+public class WarningAttachment implements Serializable {
+
+    @TableId(value = "attachment_id", type = IdType.ASSIGN_UUID)
+    @ApiModelProperty("附件ID")
+    private String attachmentId;
+
+    @TableField("warning_id")
+    @ApiModelProperty("预警ID")
+    private String warningId;
+
+    @TableField("attachment_name")
+    @ApiModelProperty("附件名称")
+    private String attachmentName;
+
+    @TableField("attachment_url")
+    @ApiModelProperty("附件地址")
+    private String attachmentUrl;
+
+    @TableField("attachment_type")
+    @ApiModelProperty("附件类型")
+    private String attachmentType;
+
+    @TableField("attachment_size")
+    @ApiModelProperty("附件大小(字节)")
+    private Long attachmentSize;
+
+    @TableField("create_by")
+    @ApiModelProperty("上传人")
+    private String createBy;
+
+    @TableField("create_time")
+    @ApiModelProperty("上传时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 67 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/domain/WarningDisposal.java

@@ -0,0 +1,67 @@
+package com.zksy.base.warning.domain;
+
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@TableName("warning_disposal")
+@Api(value = "预警处置记录")
+@Data
+public class WarningDisposal implements Serializable {
+
+    @TableId(value = "disposal_id", type = IdType.ASSIGN_UUID)
+    @ApiModelProperty("处置记录ID")
+    private String disposalId;
+
+    @TableField("warning_id")
+    @ApiModelProperty("预警ID")
+    private String warningId;
+
+    @TableField("disposal_type")
+    @ApiModelProperty("处置类型")
+    private String disposalType;
+
+    @TableField("old_level")
+    @ApiModelProperty("原预警级别")
+    private String oldLevel;
+
+    @TableField("new_level")
+    @ApiModelProperty("新预警级别")
+    private String newLevel;
+
+    @TableField("disposal_user")
+    @ApiModelProperty("处置人")
+    private String disposalUser;
+
+    @TableField("disposal_content")
+    @ApiModelProperty("处置内容/意见")
+    private String disposalContent;
+
+    @TableField("supervision_user")
+    @ApiModelProperty("督办人员")
+    private String supervisionUser;
+
+    @TableField("supervision_content")
+    @ApiModelProperty("督办意见")
+    private String supervisionContent;
+
+    @TableField("notification_type")
+    @ApiModelProperty("通知方式")
+    private String notificationType;
+
+    @TableField("create_time")
+    @ApiModelProperty("处置时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 82 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/domain/WarningItem.java

@@ -0,0 +1,82 @@
+package com.zksy.base.warning.domain;
+
+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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@TableName("warning_item")
+@Data
+public class WarningItem implements Serializable {
+
+    @TableId(value = "item_id", type = IdType.ASSIGN_UUID)
+    @ApiModelProperty("事项ID")
+    private String itemId;
+
+    @TableField("item_code")
+    @ApiModelProperty("事项编码")
+    private String itemCode;
+
+    @TableField("item_name")
+    @ApiModelProperty("事项名称")
+    private String itemName;
+
+    @TableField("warning_type")
+    @ApiModelProperty("预警类型")
+    private String warningType;
+
+    @TableField("warning_level")
+    @ApiModelProperty("预警级别")
+    private String warningLevel;
+
+    @TableField("warning_special")
+    @ApiModelProperty("预警专项")
+    private String warningSpecial;
+
+    @TableField("industry")
+    @ApiModelProperty("所属行业")
+    private String industry;
+
+    @TableField("duration")
+    @ApiModelProperty("预警时长(小时)")
+    private Integer duration;
+
+    @TableField("link_config")
+    @ApiModelProperty("预警环节配置")
+    private String linkConfig;
+
+    @TableField("status")
+    @ApiModelProperty("状态(ENABLED-启用 DISABLED-禁用 INVALID-作废)")
+    private String status;
+
+    @TableField("create_by")
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @TableField("create_time")
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    @ApiModelProperty("更新人")
+    private String updateBy;
+
+    @TableField("update_time")
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime updateTime;
+
+    @TableField("remark")
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 70 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/domain/WarningReason.java

@@ -0,0 +1,70 @@
+package com.zksy.base.warning.domain;
+
+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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@TableName("warning_reason")
+@Data
+public class WarningReason implements Serializable {
+
+    @TableId(value = "reason_id", type = IdType.ASSIGN_UUID)
+    @ApiModelProperty("原因ID")
+    private String reasonId;
+
+    @TableField("reason_code")
+    @ApiModelProperty("原因编码")
+    private String reasonCode;
+
+    @TableField("reason_name")
+    @ApiModelProperty("原因名称")
+    private String reasonName;
+
+    @TableField("warning_type")
+    @ApiModelProperty("预警类型")
+    private String warningType;
+
+    @TableField("warning_level")
+    @ApiModelProperty("预警级别")
+    private String warningLevel;
+
+    @TableField("description")
+    @ApiModelProperty("原因描述")
+    private String description;
+
+    @TableField("sort_order")
+    @ApiModelProperty("排序")
+    private Integer sortOrder;
+
+    @TableField("status")
+    @ApiModelProperty("状态(0-正常 1-停用)")
+    private String status;
+
+    @TableField("create_by")
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @TableField("create_time")
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @TableField("update_by")
+    @ApiModelProperty("更新人")
+    private String updateBy;
+
+    @TableField("update_time")
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime updateTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 18 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/domain/WarningSaveDTO.java

@@ -0,0 +1,18 @@
+package com.zksy.base.warning.domain;
+
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+@Data
+public class WarningSaveDTO {
+    // 预警实体(JSON对象)
+    private EarlyWarning warning;
+    
+    // 数报警id
+    private List<String> alarmIds;
+
+    // 文件
+    private List<MultipartFile> files;
+}

+ 60 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/warning/domain/WarningTodo.java

@@ -0,0 +1,60 @@
+package com.zksy.base.warning.domain;
+
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@TableName("warning_todo")
+@Api(tags = "预警待办")
+@Data
+public class WarningTodo implements Serializable {
+
+    @TableId(value = "todo_id", type = IdType.ASSIGN_UUID)
+    @ApiModelProperty("待办ID")
+    private String todoId;
+
+    @TableField("warning_id")
+    @ApiModelProperty("预警ID")
+    private String warningId;
+
+    @TableField("user_id")
+    @ApiModelProperty("用户ID")
+    private String userId;
+
+    @TableField("user_name")
+    @ApiModelProperty("用户姓名")
+    private String userName;
+
+    @TableField("todo_type")
+    @ApiModelProperty("待办类型")
+    private String todoType;
+
+    @TableField("read_status")
+    @ApiModelProperty("阅读状态")
+    private String readStatus;
+
+    @TableField("task_name")
+    @ApiModelProperty("任务名称")
+    private String taskName;
+
+    @TableField("create_time")
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @TableField("complete_time")
+    @ApiModelProperty("完成时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime completeTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}