王磊——数据库类和接口 #23
Merged
hnu202326010106
merged 1 commits from wanglei_branch into develop 2 months ago
@ -0,0 +1,45 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "admin")
|
||||
public class Admin {
|
||||
@Id
|
||||
@Column(name = "admin_id", length = 50)
|
||||
private String adminId;
|
||||
|
||||
@Column(name = "admin_name", length = 50)
|
||||
private String adminName;
|
||||
|
||||
@Column(name = "password", length = 200)
|
||||
private String password;
|
||||
|
||||
@Column(name = "phone", length = 20)
|
||||
private String phone;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "role", length = 50)
|
||||
private AdminRole role = AdminRole.area_admin;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status", length = 50)
|
||||
private AdminStatus status = AdminStatus.active;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
@Column(name = "updated_time")
|
||||
private LocalDateTime updatedTime = LocalDateTime.now();
|
||||
|
||||
public enum AdminRole {
|
||||
super_admin, area_admin, viewer
|
||||
}
|
||||
|
||||
public enum AdminStatus {
|
||||
active, inactive
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "alert")
|
||||
public class Alert {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "alert_id")
|
||||
private Long alertId;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "alert_type", length = 50)
|
||||
private String alertType;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "alert_level", length = 50)
|
||||
private AlertLevel alertLevel;
|
||||
|
||||
@Column(name = "alert_message", columnDefinition = "TEXT")
|
||||
private String alertMessage;
|
||||
|
||||
@Column(name = "area_id", length = 20)
|
||||
private String areaId;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status", length = 50)
|
||||
private AlertStatus status = AlertStatus.pending;
|
||||
|
||||
@Column(name = "timestamp")
|
||||
private LocalDateTime timestamp = LocalDateTime.now();
|
||||
|
||||
@Column(name = "resolved_time")
|
||||
private LocalDateTime resolvedTime;
|
||||
|
||||
@Column(name = "resolved_by", length = 50)
|
||||
private String resolvedBy;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
@Column(name = "updated_time")
|
||||
private LocalDateTime updatedTime = LocalDateTime.now();
|
||||
|
||||
public enum AlertLevel {
|
||||
info, warning, error, critical
|
||||
}
|
||||
|
||||
public enum AlertStatus {
|
||||
pending, processing, resolved, closed
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "area")
|
||||
public class Area {
|
||||
@Id
|
||||
@Column(name = "area_id", length = 20)
|
||||
private String areaId;
|
||||
|
||||
@Column(name = "area_name", length = 100)
|
||||
private String areaName;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "area_type", length = 50)
|
||||
private AreaType areaType;
|
||||
|
||||
@Column(name = "parent_area_id", length = 20)
|
||||
private String parentAreaId;
|
||||
|
||||
@Column(length = 200)
|
||||
private String address;
|
||||
|
||||
@Column(length = 50)
|
||||
private String manager;
|
||||
|
||||
@Column(name = "manager_phone", length = 20) // 确保这个字段存在
|
||||
private String managerPhone;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
@Column(name = "updated_time")
|
||||
private LocalDateTime updatedTime = LocalDateTime.now();
|
||||
|
||||
public enum AreaType {
|
||||
campus, building, zone
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "device")
|
||||
public class Device {
|
||||
@Id
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "device_name", length = 100)
|
||||
private String deviceName;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "device_type", length = 50)
|
||||
private DeviceType deviceType;
|
||||
|
||||
@Column(name = "area_id", length = 20) // 确保这个字段存在
|
||||
private String areaId;
|
||||
|
||||
@Column(name = "install_location", length = 200)
|
||||
private String installLocation;
|
||||
|
||||
@Column(name = "install_date")
|
||||
private LocalDate installDate;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status", length = 50)
|
||||
private DeviceStatus status = DeviceStatus.online;
|
||||
|
||||
@Column(name = "create_time")
|
||||
private LocalDateTime createTime = LocalDateTime.now();
|
||||
|
||||
public enum DeviceType {
|
||||
water_maker, water_supply
|
||||
}
|
||||
|
||||
public enum DeviceStatus {
|
||||
online, offline, fault
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "device_terminal_mapping")
|
||||
public class DeviceTerminalMapping {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "mapping_id")
|
||||
private Integer mappingId;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "terminal_id", length = 20)
|
||||
private String terminalId;
|
||||
|
||||
@Column(name = "terminal_name", length = 100)
|
||||
private String terminalName;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "terminal_status", length = 50)
|
||||
private TerminalStatus terminalStatus;
|
||||
|
||||
@Column(name = "install_date")
|
||||
private LocalDate installDate;
|
||||
|
||||
public enum TerminalStatus {
|
||||
active, inactive
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "drink_recommendation")
|
||||
public class DrinkRecommendation {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "recommendation_id")
|
||||
private Integer recommendationId;
|
||||
|
||||
@Column(name = "student_id", length = 50)
|
||||
private String studentId;
|
||||
|
||||
@Column(name = "daily_target", precision = 6, scale = 2)
|
||||
private Double dailyTarget;
|
||||
|
||||
@Column(name = "current_progress", precision = 6, scale = 2)
|
||||
private Double currentProgress;
|
||||
|
||||
@Column(name = "recommendation_date")
|
||||
private LocalDate recommendationDate;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "drink_record")
|
||||
public class DrinkRecord {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "record_id")
|
||||
private Long recordId;
|
||||
|
||||
@Column(name = "student_id", length = 50)
|
||||
private String studentId;
|
||||
|
||||
@Column(name = "terminal_id", length = 20)
|
||||
private String terminalId;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "volume", precision = 6, scale = 2)
|
||||
private Double volume;
|
||||
|
||||
@Column(name = "water_quality", length = 50)
|
||||
private String waterQuality;
|
||||
|
||||
@Column(name = "tds_value", precision = 8, scale = 2)
|
||||
private Double tdsValue;
|
||||
|
||||
@Column(name = "drink_date")
|
||||
private LocalDate drinkDate;
|
||||
|
||||
@Column(name = "drink_time")
|
||||
private LocalTime drinkTime;
|
||||
|
||||
@Column(name = "location", length = 200)
|
||||
private String location;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "inspection_record")
|
||||
public class InspectionRecord {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "inspection_id")
|
||||
private Integer inspectionId;
|
||||
|
||||
@Column(name = "order_id", length = 30)
|
||||
private String orderId;
|
||||
|
||||
@Column(name = "repairman_id", length = 50)
|
||||
private String repairmanId;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "inspection_status", length = 50)
|
||||
private InspectionStatus inspectionStatus;
|
||||
|
||||
@Column(name = "abnormal_description", columnDefinition = "LONGTEXT")
|
||||
private String abnormalDescription;
|
||||
|
||||
@Column(name = "inspection_photo", columnDefinition = "LONGTEXT")
|
||||
private String inspectionPhoto;
|
||||
|
||||
@Column(name = "inspection_time")
|
||||
private LocalDateTime inspectionTime;
|
||||
|
||||
@Column(name = "submitted_at")
|
||||
private LocalDateTime submittedAt = LocalDateTime.now();
|
||||
|
||||
public enum InspectionStatus {
|
||||
normal, abnormal
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "maintenance_plan")
|
||||
public class MaintenancePlan {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "plan_id")
|
||||
private Integer planId;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "maintenance_type", length = 50)
|
||||
private String maintenanceType;
|
||||
|
||||
@Column(name = "cycle_days")
|
||||
private Integer cycleDays;
|
||||
|
||||
@Column(name = "last_maintenance_date")
|
||||
private LocalDate lastMaintenanceDate;
|
||||
|
||||
@Column(name = "next_maintenance_date")
|
||||
private LocalDate nextMaintenanceDate;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "plan_status", length = 50)
|
||||
private PlanStatus planStatus;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
public enum PlanStatus {
|
||||
effective, expired, closed
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "message_push")
|
||||
public class MessagePush {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "message_id")
|
||||
private Integer messageId;
|
||||
|
||||
@Column(name = "student_id", length = 50)
|
||||
private String studentId;
|
||||
|
||||
@Column(name = "admin_id", length = 50)
|
||||
private String adminId;
|
||||
|
||||
@Column(name = "repairman_id", length = 50)
|
||||
private String repairmanId;
|
||||
|
||||
@Column(name = "user_id", length = 50)
|
||||
private String userId;
|
||||
|
||||
@Column(name = "user_type", length = 50)
|
||||
private String userType;
|
||||
|
||||
@Column(name = "message_type", length = 50)
|
||||
private String messageType;
|
||||
|
||||
@Column(name = "title", length = 200)
|
||||
private String title;
|
||||
|
||||
@Column(name = "content", columnDefinition = "LONGTEXT")
|
||||
private String content;
|
||||
|
||||
@Column(name = "is_read")
|
||||
private Boolean isRead = false;
|
||||
|
||||
@Column(name = "push_time")
|
||||
private LocalDateTime pushTime = LocalDateTime.now();
|
||||
|
||||
@Column(name = "related_id", length = 50)
|
||||
private String relatedId;
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "repairer_auth")
|
||||
public class RepairerAuth {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "auth_id")
|
||||
private Long authId;
|
||||
|
||||
@Column(name = "repairman_id", length = 50)
|
||||
private String repairmanId;
|
||||
|
||||
@Column(name = "username", length = 50)
|
||||
private String username;
|
||||
|
||||
@Column(name = "password", length = 200)
|
||||
private String password;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "account_status", length = 50)
|
||||
private AccountStatus accountStatus = AccountStatus.active;
|
||||
|
||||
@Column(name = "last_login")
|
||||
private LocalDateTime lastLogin;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
@Column(name = "updated_time")
|
||||
private LocalDateTime updatedTime = LocalDateTime.now();
|
||||
|
||||
public enum AccountStatus {
|
||||
active, inactive, locked
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "repairman")
|
||||
public class Repairman {
|
||||
@Id
|
||||
@Column(name = "repairman_id", length = 50)
|
||||
private String repairmanId;
|
||||
|
||||
@Column(name = "repairman_name", length = 100)
|
||||
private String repairmanName;
|
||||
|
||||
@Column(length = 20)
|
||||
private String phone;
|
||||
|
||||
@Column(name = "area_id", length = 20)
|
||||
private String areaId;
|
||||
|
||||
@Column(name = "skills", length = 200)
|
||||
private String skills;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status", length = 50)
|
||||
private RepairmanStatus status = RepairmanStatus.idle;
|
||||
|
||||
@Column(name = "work_count")
|
||||
private Integer workCount = 0;
|
||||
|
||||
@Column(name = "rating", precision = 3, scale = 2)
|
||||
private Double rating = 5.0;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
public enum RepairmanStatus {
|
||||
idle, busy, vacation
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "terminal_usage_stats")
|
||||
public class TerminalUsageStats {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "stat_id")
|
||||
private Long statId;
|
||||
|
||||
@Column(name = "terminal_id", length = 20)
|
||||
private String terminalId;
|
||||
|
||||
@Column(name = "stat_date")
|
||||
private LocalDate statDate;
|
||||
|
||||
@Column(name = "usage_count")
|
||||
private Integer usageCount = 0;
|
||||
|
||||
@Column(name = "total_water_output", precision = 10, scale = 2)
|
||||
private Double totalWaterOutput = 0.0;
|
||||
|
||||
@Column(name = "avg_water_per_use", precision = 6, scale = 2)
|
||||
private Double avgWaterPerUse = 0.0;
|
||||
|
||||
@Column(name = "peak_hour", length = 5)
|
||||
private String peakHour;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
@Column(name = "updated_time")
|
||||
private LocalDateTime updatedTime = LocalDateTime.now();
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "user")
|
||||
public class User {
|
||||
@Id
|
||||
@Column(name = "student_id", length = 50)
|
||||
private String studentId;
|
||||
|
||||
@Column(name = "student_name", length = 50)
|
||||
private String studentName;
|
||||
|
||||
@Column(name = "password", length = 200)
|
||||
private String password;
|
||||
|
||||
@Column(name = "phone", length = 20)
|
||||
private String phone;
|
||||
|
||||
@Column(name = "email", length = 100)
|
||||
private String email;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status", length = 50)
|
||||
private UserStatus status = UserStatus.active;
|
||||
|
||||
@Column(name = "create_time")
|
||||
private LocalDateTime createTime = LocalDateTime.now();
|
||||
|
||||
@Column(name = "updated_time")
|
||||
private LocalDateTime updatedTime = LocalDateTime.now();
|
||||
|
||||
public enum UserStatus {
|
||||
active, inactive
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "water_maker_realtime_data")
|
||||
public class WaterMakerRealtimeData {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "tds_value", precision = 8, scale = 2)
|
||||
private Double tdsValue;
|
||||
|
||||
@Column(name = "water_flow", precision = 8, scale = 2)
|
||||
private Double waterFlow;
|
||||
|
||||
@Column(name = "water_pressure", precision = 8, scale = 2)
|
||||
private Double waterPressure;
|
||||
|
||||
@Column(name = "filter_life")
|
||||
private Integer filterLife;
|
||||
|
||||
@Column(name = "leakage")
|
||||
private Boolean leakage = false;
|
||||
|
||||
@Column(name = "temperature", precision = 5, scale = 2)
|
||||
private Double temperature;
|
||||
|
||||
@Column(name = "humidity", precision = 5, scale = 2)
|
||||
private Double humidity;
|
||||
|
||||
@Column(name = "water_quality", length = 50)
|
||||
private String waterQuality;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status", length = 50)
|
||||
private DeviceStatus status = DeviceStatus.normal;
|
||||
|
||||
@Column(name = "timestamp")
|
||||
private LocalDateTime timestamp = LocalDateTime.now();
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
public enum DeviceStatus {
|
||||
normal, warning, error
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "water_quality_history")
|
||||
public class WaterQualityHistory {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@Column(name = "terminal_id", length = 20)
|
||||
private String terminalId;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "tds_value", precision = 8, scale = 2)
|
||||
private Double tdsValue;
|
||||
|
||||
@Column(name = "water_quality", length = 50)
|
||||
private String waterQuality;
|
||||
|
||||
@Column(name = "temperature", precision = 5, scale = 2)
|
||||
private Double temperature;
|
||||
|
||||
@Column(name = "timestamp")
|
||||
private LocalDateTime timestamp = LocalDateTime.now();
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "water_supply_realtime_data")
|
||||
public class WaterSupplyRealtimeData {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "water_flow", precision = 8, scale = 2)
|
||||
private Double waterFlow;
|
||||
|
||||
@Column(name = "water_pressure", precision = 8, scale = 2)
|
||||
private Double waterPressure;
|
||||
|
||||
@Column(name = "water_level", precision = 8, scale = 2)
|
||||
private Double waterLevel;
|
||||
|
||||
@Column(name = "temperature", precision = 5, scale = 2)
|
||||
private Double temperature;
|
||||
|
||||
@Column(name = "humidity", precision = 5, scale = 2)
|
||||
private Double humidity;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status", length = 50)
|
||||
private DeviceStatus status = DeviceStatus.normal;
|
||||
|
||||
@Column(name = "timestamp")
|
||||
private LocalDateTime timestamp = LocalDateTime.now();
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
public enum DeviceStatus {
|
||||
normal, warning, error
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
package com.campus.water.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "work_order")
|
||||
public class WorkOrder {
|
||||
@Id
|
||||
@Column(name = "order_id", length = 30)
|
||||
private String orderId;
|
||||
|
||||
@Column(name = "alert_id")
|
||||
private Long alertId;
|
||||
|
||||
@Column(name = "device_id", length = 20)
|
||||
private String deviceId;
|
||||
|
||||
@Column(name = "area_id", length = 20)
|
||||
private String areaId;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "order_type", length = 50)
|
||||
private OrderType orderType;
|
||||
|
||||
@Column(name = "description", columnDefinition = "TEXT")
|
||||
private String description;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "priority", length = 50)
|
||||
private OrderPriority priority;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "status", length = 50)
|
||||
private OrderStatus status = OrderStatus.pending;
|
||||
|
||||
@Column(name = "assigned_repairman_id", length = 50)
|
||||
private String assignedRepairmanId;
|
||||
|
||||
@Column(name = "created_time")
|
||||
private LocalDateTime createdTime = LocalDateTime.now();
|
||||
|
||||
@Column(name = "grabbed_time")
|
||||
private LocalDateTime grabbedTime;
|
||||
|
||||
@Column(name = "deadline")
|
||||
private LocalDateTime deadline;
|
||||
|
||||
@Column(name = "completed_time")
|
||||
private LocalDateTime completedTime;
|
||||
|
||||
@Column(name = "deal_note", columnDefinition = "TEXT")
|
||||
private String dealNote;
|
||||
|
||||
@Column(name = "img_url", length = 500)
|
||||
private String imgUrl;
|
||||
|
||||
@Column(name = "created_by", length = 50)
|
||||
private String createdBy;
|
||||
|
||||
@Column(name = "updated_time")
|
||||
private LocalDateTime updatedTime = LocalDateTime.now();
|
||||
|
||||
public enum OrderType {
|
||||
repair, maintenance, inspection
|
||||
}
|
||||
|
||||
public enum OrderPriority {
|
||||
low, medium, high, urgent
|
||||
}
|
||||
|
||||
public enum OrderStatus {
|
||||
pending, grabbed, processing, completed, closed, timeout
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.system.Admin;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
public interface AdminRepository extends JpaRepository<Admin, String> {
|
||||
Optional<Admin> findByAdminId(String adminId);
|
||||
List<Admin> findByAdminNameContaining(String adminName);
|
||||
List<Admin> findByRole(Admin.AdminRole role);
|
||||
List<Admin> findByStatus(Admin.AdminStatus status);
|
||||
Optional<Admin> findByPhone(String phone);
|
||||
|
||||
@Query("SELECT a FROM Admin a WHERE a.role = ?1 AND a.status = ?2")
|
||||
List<Admin> findByRoleAndStatus(Admin.AdminRole role, Admin.AdminStatus status);
|
||||
|
||||
boolean existsByAdminId(String adminId);
|
||||
boolean existsByPhone(String phone);
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.sensor.Alert;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface AlertRepository extends JpaRepository<Alert, Long> {
|
||||
List<Alert> findByDeviceId(String deviceId);
|
||||
List<Alert> findByAlertType(String alertType);
|
||||
List<Alert> findByStatus(Alert.AlertStatus status);
|
||||
List<Alert> findByAlertLevel(Alert.AlertLevel alertLevel);
|
||||
List<Alert> findByAreaId(String areaId);
|
||||
List<Alert> findByTimestampBetween(LocalDateTime start, LocalDateTime end);
|
||||
List<Alert> findByStatusAndAlertLevel(Alert.AlertStatus status, Alert.AlertLevel level);
|
||||
List<Alert> findByTimestampAfter(LocalDateTime timestamp);
|
||||
List<Alert> findByResolvedBy(String resolvedBy);
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.system.Area;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface AreaRepository extends JpaRepository<Area, String> {
|
||||
List<Area> findByAreaType(Area.AreaType areaType);
|
||||
List<Area> findByParentAreaId(String parentAreaId);
|
||||
List<Area> findByManager(String manager);
|
||||
|
||||
// 修复:使用正确的字段名 managerPhone
|
||||
List<Area> findByManagerPhone(String managerPhone);
|
||||
|
||||
@Query("SELECT a FROM Area a WHERE a.areaType = ?1 AND a.parentAreaId IS NULL")
|
||||
List<Area> findRootAreasByType(Area.AreaType areaType);
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.system.DeviceTerminalMapping;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
public interface DeviceTerminalMappingRepository extends JpaRepository<DeviceTerminalMapping, Integer> {
|
||||
Optional<DeviceTerminalMapping> findByTerminalId(String terminalId);
|
||||
List<DeviceTerminalMapping> findByDeviceId(String deviceId);
|
||||
List<DeviceTerminalMapping> findByTerminalStatus(DeviceTerminalMapping.TerminalStatus status);
|
||||
Optional<DeviceTerminalMapping> findByDeviceIdAndTerminalId(String deviceId, String terminalId);
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.business.DrinkRecommendation;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
public interface DrinkRecommendationRepository extends JpaRepository<DrinkRecommendation, Long> {
|
||||
List<DrinkRecommendation> findByStudentId(String studentId);
|
||||
List<DrinkRecommendation> findByRecommendationDate(LocalDate recommendationDate);
|
||||
List<DrinkRecommendation> findByRecommendationDateBetween(LocalDate start, LocalDate end);
|
||||
|
||||
@Query("SELECT d FROM DrinkRecommendation d WHERE d.studentId = ?1 AND d.recommendationDate = ?2")
|
||||
Optional<DrinkRecommendation> findByStudentIdAndRecommendationDate(String studentId, LocalDate date);
|
||||
|
||||
@Query("SELECT d FROM DrinkRecommendation d WHERE d.studentId = ?1 AND d.recommendationDate BETWEEN ?2 AND ?3 ORDER BY d.recommendationDate DESC")
|
||||
List<DrinkRecommendation> findByStudentIdAndRecommendationDateBetween(String studentId, LocalDate start, LocalDate end);
|
||||
|
||||
@Query("SELECT SUM(d.currentProgress) FROM DrinkRecommendation d WHERE d.studentId = ?1 AND d.recommendationDate = ?2")
|
||||
Double getTotalProgressByStudentIdAndDate(String studentId, LocalDate date);
|
||||
|
||||
@Query("SELECT AVG(d.dailyTarget) FROM DrinkRecommendation d WHERE d.studentId = ?1 AND d.recommendationDate BETWEEN ?2 AND ?3")
|
||||
Double getAverageDailyTargetByStudentIdAndPeriod(String studentId, LocalDate start, LocalDate end);
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.business.DrinkRecord;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface DrinkRecordRepository extends JpaRepository<DrinkRecord, Long> {
|
||||
// 现有方法...
|
||||
List<DrinkRecord> findByStudentId(String studentId);
|
||||
List<DrinkRecord> findByTerminalId(String terminalId);
|
||||
List<DrinkRecord> findByDeviceId(String deviceId);
|
||||
|
||||
// 新增基于drinkDate的查询方法
|
||||
List<DrinkRecord> findByStudentIdAndDrinkDate(String studentId, LocalDate drinkDate);
|
||||
List<DrinkRecord> findByStudentIdAndDrinkDateBetween(String studentId, LocalDate start, LocalDate end);
|
||||
|
||||
@Query("SELECT SUM(d.volume) FROM DrinkRecord d WHERE d.studentId = ?1 AND d.drinkDate = ?2")
|
||||
Double getTotalVolumeByStudentIdAndDate(String studentId, LocalDate date);
|
||||
|
||||
@Query("SELECT d FROM DrinkRecord d WHERE d.studentId = ?1 AND d.drinkDate BETWEEN ?2 AND ?3 ORDER BY d.drinkDate DESC, d.drinkTime DESC")
|
||||
List<DrinkRecord> findByStudentIdAndDrinkDateBetweenOrdered(String studentId, LocalDate start, LocalDate end);
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.business.InspectionRecord;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface InspectionRecordRepository extends JpaRepository<InspectionRecord, Long> {
|
||||
List<InspectionRecord> findByOrderId(String orderId);
|
||||
List<InspectionRecord> findByRepairmanId(String repairmanId);
|
||||
List<InspectionRecord> findByDeviceId(String deviceId);
|
||||
List<InspectionRecord> findByInspectionStatus(InspectionRecord.InspectionStatus status);
|
||||
List<InspectionRecord> findByInspectionTimeBetween(LocalDateTime start, LocalDateTime end);
|
||||
List<InspectionRecord> findByRepairmanIdAndInspectionTimeBetween(String repairmanId, LocalDateTime start, LocalDateTime end);
|
||||
List<InspectionRecord> findBySubmittedAtBetween(LocalDateTime start, LocalDateTime end);
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.business.MaintenancePlan;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface MaintenancePlanRepository extends JpaRepository<MaintenancePlan, Long> {
|
||||
List<MaintenancePlan> findByDeviceId(String deviceId);
|
||||
List<MaintenancePlan> findByPlanStatus(MaintenancePlan.PlanStatus planStatus);
|
||||
List<MaintenancePlan> findByMaintenanceType(String maintenanceType);
|
||||
List<MaintenancePlan> findByNextMaintenanceDateBefore(LocalDate date);
|
||||
List<MaintenancePlan> findByNextMaintenanceDateBetween(LocalDate start, LocalDate end);
|
||||
List<MaintenancePlan> findByDeviceIdAndPlanStatus(String deviceId, MaintenancePlan.PlanStatus planStatus);
|
||||
|
||||
@Query("SELECT mp FROM MaintenancePlan mp WHERE mp.nextMaintenanceDate <= ?1 AND mp.planStatus = 'active'")
|
||||
List<MaintenancePlan> findDueMaintenancePlans(LocalDate date);
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.business.MessagePush;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface MessagePushRepository extends JpaRepository<MessagePush, Integer> {
|
||||
List<MessagePush> findByStudentId(String studentId);
|
||||
List<MessagePush> findByAdminId(String adminId);
|
||||
List<MessagePush> findByRepairmanId(String repairmanId);
|
||||
List<MessagePush> findByUserType(String userType);
|
||||
List<MessagePush> findByMessageType(String messageType);
|
||||
List<MessagePush> findByIsRead(Boolean isRead);
|
||||
|
||||
@Query("SELECT m FROM MessagePush m WHERE m.userId = ?1 AND m.userType = ?2")
|
||||
List<MessagePush> findByUserIdAndUserType(String userId, String userType);
|
||||
|
||||
@Query("SELECT m FROM MessagePush m WHERE m.pushTime BETWEEN ?1 AND ?2")
|
||||
List<MessagePush> findByPushTimeBetween(LocalDateTime start, LocalDateTime end);
|
||||
|
||||
@Query("SELECT m FROM MessagePush m WHERE m.relatedId = ?1")
|
||||
List<MessagePush> findByRelatedId(String relatedId);
|
||||
|
||||
@Query("SELECT COUNT(m) FROM MessagePush m WHERE m.userId = ?1 AND m.isRead = false")
|
||||
Long countUnreadMessagesByUserId(String userId);
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.system.RepairerAuth;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
public interface RepairerAuthRepository extends JpaRepository<RepairerAuth, Long> {
|
||||
Optional<RepairerAuth> findByUsername(String username);
|
||||
Optional<RepairerAuth> findByRepairmanId(String repairmanId);
|
||||
List<RepairerAuth> findByAccountStatus(RepairerAuth.AccountStatus accountStatus);
|
||||
|
||||
@Query("SELECT ra FROM RepairerAuth ra WHERE ra.username = ?1 AND ra.accountStatus = 'active'")
|
||||
Optional<RepairerAuth> findActiveByUsername(String username);
|
||||
|
||||
boolean existsByUsername(String username);
|
||||
boolean existsByRepairmanId(String repairmanId);
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.system.Repairman;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface RepairmanRepository extends JpaRepository<Repairman, String> {
|
||||
List<Repairman> findByAreaId(String areaId);
|
||||
List<Repairman> findByStatus(Repairman.RepairmanStatus status);
|
||||
List<Repairman> findBySkillsContaining(String skill);
|
||||
List<Repairman> findByAreaIdAndStatus(String areaId, Repairman.RepairmanStatus status);
|
||||
List<Repairman> findByRatingGreaterThanEqual(Double minRating);
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.business.TerminalUsageStats;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
public interface TerminalUsageStatsRepository extends JpaRepository<TerminalUsageStats, Long> {
|
||||
List<TerminalUsageStats> findByTerminalId(String terminalId);
|
||||
List<TerminalUsageStats> findByStatDate(LocalDate statDate);
|
||||
List<TerminalUsageStats> findByStatDateBetween(LocalDate start, LocalDate end);
|
||||
|
||||
@Query("SELECT t FROM TerminalUsageStats t WHERE t.terminalId = ?1 AND t.statDate BETWEEN ?2 AND ?3")
|
||||
List<TerminalUsageStats> findByTerminalIdAndStatDateBetween(String terminalId, LocalDate start, LocalDate end);
|
||||
|
||||
@Query("SELECT t FROM TerminalUsageStats t WHERE t.usageCount > ?1")
|
||||
List<TerminalUsageStats> findByUsageCountGreaterThan(Integer usageCount);
|
||||
|
||||
@Query("SELECT t FROM TerminalUsageStats t WHERE t.totalWaterOutput > ?1")
|
||||
List<TerminalUsageStats> findByTotalWaterOutputGreaterThan(Double totalWaterOutput);
|
||||
|
||||
@Query("SELECT t FROM TerminalUsageStats t WHERE t.terminalId = ?1 AND t.statDate = ?2")
|
||||
Optional<TerminalUsageStats> findByTerminalIdAndStatDate(String terminalId, LocalDate statDate);
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.business.User;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
public interface UserRepository extends JpaRepository<User, String> {
|
||||
Optional<User> findByStudentId(String studentId);
|
||||
List<User> findByStudentNameContaining(String studentName);
|
||||
List<User> findByStatus(User.UserStatus status);
|
||||
Optional<User> findByPhone(String phone);
|
||||
Optional<User> findByEmail(String email);
|
||||
|
||||
@Query("SELECT u FROM User u WHERE u.studentName LIKE %?1% AND u.status = ?2")
|
||||
List<User> findByStudentNameContainingAndStatus(String studentName, User.UserStatus status);
|
||||
|
||||
boolean existsByStudentId(String studentId);
|
||||
boolean existsByPhone(String phone);
|
||||
boolean existsByEmail(String email);
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.sensor.WaterMakerRealtimeData;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface WaterMakerRealtimeDataRepository extends JpaRepository<WaterMakerRealtimeData, Long> {
|
||||
List<WaterMakerRealtimeData> findByDeviceId(String deviceId);
|
||||
|
||||
@Query("SELECT w FROM WaterMakerRealtimeData w WHERE w.timestamp BETWEEN ?1 AND ?2 ORDER BY w.timestamp DESC")
|
||||
List<WaterMakerRealtimeData> findByTimestampBetween(LocalDateTime start, LocalDateTime end);
|
||||
|
||||
@Query("SELECT w FROM WaterMakerRealtimeData w WHERE w.deviceId = ?1 AND w.timestamp BETWEEN ?2 AND ?3 ORDER BY w.timestamp DESC")
|
||||
List<WaterMakerRealtimeData> findByDeviceIdAndTimestampBetween(String deviceId, LocalDateTime start, LocalDateTime end);
|
||||
|
||||
@Query(value = "SELECT * FROM water_maker_realtime_data w WHERE w.device_id = ?1 ORDER BY w.timestamp DESC LIMIT 10", nativeQuery = true)
|
||||
List<WaterMakerRealtimeData> findTop10ByDeviceIdOrderByTimestampDesc(String deviceId);
|
||||
|
||||
List<WaterMakerRealtimeData> findByLeakage(Boolean leakage);
|
||||
List<WaterMakerRealtimeData> findByStatus(WaterMakerRealtimeData.DeviceStatus status);
|
||||
|
||||
@Query("SELECT w FROM WaterMakerRealtimeData w WHERE w.filterLife < ?1")
|
||||
List<WaterMakerRealtimeData> findByFilterLifeLessThan(Integer filterLife);
|
||||
|
||||
@Query("SELECT w FROM WaterMakerRealtimeData w WHERE w.tdsValue > ?1")
|
||||
List<WaterMakerRealtimeData> findByTdsValueGreaterThan(Double tdsValue);
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.sensor.WaterQualityHistory;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface WaterQualityHistoryRepository extends JpaRepository<WaterQualityHistory, Long> {
|
||||
List<WaterQualityHistory> findByTerminalId(String terminalId);
|
||||
List<WaterQualityHistory> findByDeviceId(String deviceId);
|
||||
|
||||
@Query("SELECT w FROM WaterQualityHistory w WHERE w.terminalId = ?1 AND w.timestamp BETWEEN ?2 AND ?3 ORDER BY w.timestamp DESC")
|
||||
List<WaterQualityHistory> findByTerminalIdAndTimestampBetween(String terminalId, LocalDateTime start, LocalDateTime end);
|
||||
|
||||
@Query(value = "SELECT * FROM water_quality_history w WHERE w.terminal_id = ?1 ORDER BY w.timestamp DESC LIMIT 5", nativeQuery = true)
|
||||
List<WaterQualityHistory> findTop5ByTerminalIdOrderByTimestampDesc(String terminalId);
|
||||
|
||||
@Query("SELECT w FROM WaterQualityHistory w WHERE w.waterQuality = ?1")
|
||||
List<WaterQualityHistory> findByWaterQuality(String waterQuality);
|
||||
|
||||
@Query("SELECT w FROM WaterQualityHistory w WHERE w.tdsValue > ?1")
|
||||
List<WaterQualityHistory> findByTdsValueGreaterThan(Double tdsValue);
|
||||
|
||||
@Query("SELECT w FROM WaterQualityHistory w WHERE w.deviceId = ?1 AND w.timestamp BETWEEN ?2 AND ?3 ORDER BY w.timestamp DESC")
|
||||
List<WaterQualityHistory> findByDeviceIdAndTimestampBetween(String deviceId, LocalDateTime start, LocalDateTime end);
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.sensor.WaterSupplyRealtimeData;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface WaterSupplyRealtimeDataRepository extends JpaRepository<WaterSupplyRealtimeData, Long> {
|
||||
List<WaterSupplyRealtimeData> findByDeviceId(String deviceId);
|
||||
|
||||
@Query("SELECT w FROM WaterSupplyRealtimeData w WHERE w.timestamp BETWEEN ?1 AND ?2 ORDER BY w.timestamp DESC")
|
||||
List<WaterSupplyRealtimeData> findByTimestampBetween(LocalDateTime start, LocalDateTime end);
|
||||
|
||||
@Query("SELECT w FROM WaterSupplyRealtimeData w WHERE w.deviceId = ?1 AND w.timestamp BETWEEN ?2 AND ?3 ORDER BY w.timestamp DESC")
|
||||
List<WaterSupplyRealtimeData> findByDeviceIdAndTimestampBetween(String deviceId, LocalDateTime start, LocalDateTime end);
|
||||
|
||||
@Query(value = "SELECT * FROM water_supply_realtime_data w WHERE w.device_id = ?1 ORDER BY w.timestamp DESC LIMIT 10", nativeQuery = true)
|
||||
List<WaterSupplyRealtimeData> findTop10ByDeviceIdOrderByTimestampDesc(String deviceId);
|
||||
|
||||
List<WaterSupplyRealtimeData> findByStatus(WaterSupplyRealtimeData.DeviceStatus status);
|
||||
|
||||
@Query("SELECT w FROM WaterSupplyRealtimeData w WHERE w.waterLevel < ?1")
|
||||
List<WaterSupplyRealtimeData> findByWaterLevelLessThan(Double waterLevel);
|
||||
|
||||
@Query("SELECT w FROM WaterSupplyRealtimeData w WHERE w.temperature > ?1")
|
||||
List<WaterSupplyRealtimeData> findByTemperatureGreaterThan(Double temperature);
|
||||
|
||||
@Query("SELECT w FROM WaterSupplyRealtimeData w WHERE w.waterPressure < ?1")
|
||||
List<WaterSupplyRealtimeData> findByWaterPressureLessThan(Double waterPressure);
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.campus.water.mapper;
|
||||
|
||||
import datebaseclass.business.WorkOrder;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface WorkOrderRepository extends JpaRepository<WorkOrder, String> {
|
||||
List<WorkOrder> findByAreaId(String areaId);
|
||||
List<WorkOrder> findByStatus(WorkOrder.OrderStatus status);
|
||||
List<WorkOrder> findByAssignedRepairmanId(String assignedRepairmanId);
|
||||
List<WorkOrder> findByAreaIdAndStatus(String areaId, WorkOrder.OrderStatus status);
|
||||
List<WorkOrder> findByPriority(WorkOrder.OrderPriority priority);
|
||||
List<WorkOrder> findByDeviceId(String deviceId);
|
||||
List<WorkOrder> findByOrderType(WorkOrder.OrderType orderType);
|
||||
List<WorkOrder> findByCreatedTimeBetween(LocalDateTime start, LocalDateTime end);
|
||||
List<WorkOrder> findByDeadlineBeforeAndStatusNot(LocalDateTime deadline, WorkOrder.OrderStatus status);
|
||||
List<WorkOrder> findByAssignedRepairmanIdAndStatus(String assignedRepairmanId, WorkOrder.OrderStatus status);
|
||||
List<WorkOrder> findByAlertId(Long alertId);
|
||||
List<WorkOrder> findByCreatedBy(String createdBy);
|
||||
}
|
||||
Loading…
Reference in new issue