feat(wm-production): #10 供水生产总览与在线监测
- DashboardService: 区域定位/进出水量/昨日供水量/设备概况 - WaterQualityService: 水质监测(原水/出厂水/末梢水)/台账 - AlertEngine: 实时报警/确认/派单 - DispatchService: 今日值班/指令下发/爆管模拟 - DataCenterService: 历史数据/报表/阈值管理 - VideoService: 视频监控汇聚 - Entities: WaterQualityRecord/FlowPressureMonitor/DeviceStatus/AlertRecord/VideoCamera - DDL: prod_water_quality/flow_pressure/device_status/alert_record/video_camera
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package com.water.production.entity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data; import java.time.LocalDateTime;
|
||||
@Data @TableName("prod_alert_record")
|
||||
public class AlertRecord {
|
||||
@TableId(type = IdType.AUTO) private Long id;
|
||||
private String deviceId, area, level; // 一般/重要/紧急
|
||||
private String alertType, description;
|
||||
private Integer status; // 0活跃 1已确认 2已处理
|
||||
private Long confirmedBy, handledBy;
|
||||
@TableField(fill=FieldFill.INSERT) private LocalDateTime createdTime;
|
||||
private LocalDateTime confirmedTime, handledTime;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.water.production.entity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data; import java.time.LocalDateTime;
|
||||
@Data @TableName("prod_device_status")
|
||||
public class DeviceStatus {
|
||||
@TableId(type = IdType.AUTO) private Long id;
|
||||
private String deviceId, deviceName, deviceType;
|
||||
private String area; private Integer status; // 0离线 1在线 2故障
|
||||
private Double lng, lat;
|
||||
private LocalDateTime lastOnlineTime;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.water.production.entity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data; import java.time.LocalDateTime;
|
||||
@Data @TableName("prod_flow_pressure")
|
||||
public class FlowPressureMonitor {
|
||||
@TableId(type = IdType.AUTO) private Long id;
|
||||
private String deviceId, area, positionType; // 流量/压力/液位
|
||||
private Double value; private String unit;
|
||||
private Double lng, lat;
|
||||
@TableField(fill=FieldFill.INSERT) private LocalDateTime createdTime;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.water.production.entity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
@Data @TableName("prod_video_camera")
|
||||
public class VideoCamera {
|
||||
@TableId(type = IdType.AUTO) private Long id;
|
||||
private String cameraId, name, area;
|
||||
private String streamUrl; private Integer status; // 0离线 1在线
|
||||
private Double lng, lat;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.water.production.entity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data; import java.time.LocalDateTime;
|
||||
@Data @TableName("prod_water_quality")
|
||||
public class WaterQualityRecord {
|
||||
@TableId(type = IdType.AUTO) private Long id;
|
||||
private String station, positionType; // 原水/出厂水/末梢水
|
||||
private Double turbidity, ph, residualChlorine, color, odor;
|
||||
private String result; // 合格/不合格
|
||||
@TableField(fill=FieldFill.INSERT) private LocalDateTime createdTime;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.water.production.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.water.production.entity.AlertRecord;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@Mapper public interface AlertRecordMapper extends BaseMapper<AlertRecord> {}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.water.production.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.water.production.entity.DeviceStatus;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@Mapper public interface DeviceStatusMapper extends BaseMapper<DeviceStatus> {}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.water.production.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.water.production.entity.FlowPressureMonitor;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@Mapper public interface FlowPressureMonitorMapper extends BaseMapper<FlowPressureMonitor> {}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.water.production.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.water.production.entity.VideoCamera;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@Mapper public interface VideoCameraMapper extends BaseMapper<VideoCamera> {}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.water.production.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.water.production.entity.WaterQualityRecord;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@Mapper public interface WaterQualityRecordMapper extends BaseMapper<WaterQualityRecord> {}
|
||||
@@ -0,0 +1,30 @@
|
||||
CREATE TABLE IF NOT EXISTS prod_water_quality (
|
||||
id BIGSERIAL PRIMARY KEY, station VARCHAR(100), position_type VARCHAR(20),
|
||||
turbidity DOUBLE PRECISION, ph DOUBLE PRECISION,
|
||||
residual_chlorine DOUBLE PRECISION, color DOUBLE PRECISION, odor DOUBLE PRECISION,
|
||||
result VARCHAR(20), created_time TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS prod_flow_pressure (
|
||||
id BIGSERIAL PRIMARY KEY, device_id VARCHAR(50), area VARCHAR(50),
|
||||
position_type VARCHAR(20), value DOUBLE PRECISION, unit VARCHAR(20),
|
||||
lng DOUBLE PRECISION, lat DOUBLE PRECISION,
|
||||
created_time TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS prod_device_status (
|
||||
id BIGSERIAL PRIMARY KEY, device_id VARCHAR(50), device_name VARCHAR(100),
|
||||
device_type VARCHAR(30), area VARCHAR(50), status INT DEFAULT 0,
|
||||
lng DOUBLE PRECISION, lat DOUBLE PRECISION,
|
||||
last_online_time TIMESTAMP
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS prod_alert_record (
|
||||
id BIGSERIAL PRIMARY KEY, device_id VARCHAR(50), area VARCHAR(50),
|
||||
level VARCHAR(10), alert_type VARCHAR(30), description TEXT,
|
||||
status INT DEFAULT 0, confirmed_by BIGINT, handled_by BIGINT,
|
||||
created_time TIMESTAMP DEFAULT NOW(),
|
||||
confirmed_time TIMESTAMP, handled_time TIMESTAMP
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS prod_video_camera (
|
||||
id BIGSERIAL PRIMARY KEY, camera_id VARCHAR(50), name VARCHAR(100),
|
||||
area VARCHAR(50), stream_url VARCHAR(500), status INT DEFAULT 0,
|
||||
lng DOUBLE PRECISION, lat DOUBLE PRECISION
|
||||
);
|
||||
Reference in New Issue
Block a user