1
This commit is contained in:
387
Report/temp1.md
Normal file
387
Report/temp1.md
Normal file
@@ -0,0 +1,387 @@
|
||||
```plantuml
|
||||
@startuml
|
||||
skinparam classAttributeIconSize 0
|
||||
|
||||
' --- Enumeration classes (declaration-only for max compatibility) ---
|
||||
enum Gender {
|
||||
MALE,
|
||||
FEMALE,
|
||||
OTHER
|
||||
}
|
||||
enum Role {
|
||||
PUBLIC_SUPERVISOR,
|
||||
SUPERVISOR,
|
||||
GRID_WORKER,
|
||||
ADMIN,
|
||||
DECISION_MAKER
|
||||
|
||||
}
|
||||
enum UserStatus
|
||||
enum PollutionType
|
||||
enum SeverityLevel
|
||||
enum FeedbackStatus
|
||||
enum TaskStatus
|
||||
enum AssignmentStatus
|
||||
enum AssignmentMethod
|
||||
enum OperationType
|
||||
|
||||
|
||||
' --- Entity classes with full attributes and methods ---
|
||||
class UserAccount {
|
||||
- Long id
|
||||
- String name
|
||||
- String phone
|
||||
- String email
|
||||
- String password
|
||||
- Gender gender
|
||||
- Role role
|
||||
- UserStatus status
|
||||
- Integer gridX
|
||||
- Integer gridY
|
||||
+ isValid()
|
||||
}
|
||||
class Feedback {
|
||||
- Long id
|
||||
- String eventId
|
||||
- String title
|
||||
- PollutionType pollutionType
|
||||
- SeverityLevel severityLevel
|
||||
- FeedbackStatus status
|
||||
- Long submitterId
|
||||
+ process()
|
||||
+ approve()
|
||||
}
|
||||
class Task {
|
||||
- Long id
|
||||
- String title
|
||||
- String description
|
||||
- PollutionType pollutionType
|
||||
- SeverityLevel severityLevel
|
||||
- TaskStatus status
|
||||
- String textAddress
|
||||
- Integer gridX
|
||||
- Integer gridY
|
||||
- LocalDateTime assignedAt
|
||||
- LocalDateTime completedAt
|
||||
+ assignTo(workerId)
|
||||
+ complete()
|
||||
+ approve()
|
||||
}
|
||||
class Assignment {
|
||||
- Long id
|
||||
- String remarks
|
||||
- LocalDateTime assignmentTime
|
||||
- LocalDateTime deadline
|
||||
- AssignmentStatus status
|
||||
}
|
||||
class TaskHistory {
|
||||
- Long id
|
||||
- TaskStatus oldStatus
|
||||
- TaskStatus newStatus
|
||||
- String comments
|
||||
- LocalDateTime changedAt
|
||||
}
|
||||
class TaskSubmission {
|
||||
- Long id
|
||||
- String notes
|
||||
- LocalDateTime submittedAt
|
||||
}
|
||||
class Attachment {
|
||||
- Long id
|
||||
- String fileName
|
||||
- String fileType
|
||||
- String storedFileName
|
||||
- Long fileSize
|
||||
- LocalDateTime uploadDate
|
||||
}
|
||||
class Grid {
|
||||
- Long id
|
||||
- Integer gridX
|
||||
- Integer gridY
|
||||
- String cityName
|
||||
- String districtName
|
||||
- String description
|
||||
- boolean isObstacle
|
||||
}
|
||||
class MapGrid {
|
||||
- Long id
|
||||
- int x
|
||||
- int y
|
||||
- String cityName
|
||||
- boolean isObstacle
|
||||
- String terrainType
|
||||
}
|
||||
class PasswordResetToken {
|
||||
- Long id
|
||||
- String token
|
||||
- LocalDateTime expiryDate
|
||||
+ isExpired()
|
||||
}
|
||||
class OperationLog {
|
||||
- Long id
|
||||
- OperationType operationType
|
||||
- String description
|
||||
- String targetId
|
||||
- String targetType
|
||||
- String ipAddress
|
||||
- LocalDateTime createdAt
|
||||
}
|
||||
class AqiData {
|
||||
- Long id
|
||||
- Integer aqiValue
|
||||
- Double pm25
|
||||
- Double pm10
|
||||
- String primaryPollutant
|
||||
- LocalDateTime recordTime
|
||||
}
|
||||
class AqiRecord {
|
||||
- Long id
|
||||
- String cityName
|
||||
- Integer aqiValue
|
||||
- Double pm25
|
||||
- Double pm10
|
||||
- LocalDateTime recordTime
|
||||
}
|
||||
class AssignmentRecord {
|
||||
- Long id
|
||||
- AssignmentMethod assignmentMethod
|
||||
- String algorithmDetails
|
||||
- AssignmentStatus status
|
||||
- LocalDateTime createdAt
|
||||
}
|
||||
class PollutantThreshold {
|
||||
- Long id
|
||||
- PollutionType pollutionType
|
||||
- String pollutantName
|
||||
- Double threshold
|
||||
- String unit
|
||||
}
|
||||
|
||||
' --- Relationships (kept simple for compatibility) ---
|
||||
UserAccount --> Gender
|
||||
UserAccount --> Role
|
||||
UserAccount --> UserStatus
|
||||
Feedback --> PollutionType
|
||||
Feedback --> SeverityLevel
|
||||
Feedback --> FeedbackStatus
|
||||
Task --> TaskStatus
|
||||
Assignment --> AssignmentStatus
|
||||
AssignmentRecord --> AssignmentMethod
|
||||
OperationLog --> OperationType
|
||||
PollutantThreshold --> PollutionType
|
||||
Task --> Feedback
|
||||
Task -- Assignment
|
||||
Task -- TaskHistory
|
||||
Task -- TaskSubmission
|
||||
Feedback -- Attachment
|
||||
TaskSubmission -- Attachment
|
||||
AssignmentRecord --> Feedback
|
||||
UserAccount --> Feedback
|
||||
UserAccount --> Task
|
||||
Task -- UserAccount
|
||||
Assignment --> UserAccount
|
||||
TaskHistory --> UserAccount
|
||||
AssignmentRecord --> UserAccount
|
||||
OperationLog --> UserAccount
|
||||
PasswordResetToken --> UserAccount
|
||||
AqiData --> UserAccount
|
||||
Task ..> Grid
|
||||
UserAccount ..> Grid
|
||||
AqiData --> Grid
|
||||
AqiRecord --> Grid
|
||||
@enduml
|
||||
```
|
||||
|
||||
```plantuml
|
||||
|
||||
@startuml
|
||||
title EMS系统模型全景图 (Detailed View)
|
||||
|
||||
skinparam classAttributeIconSize 0
|
||||
|
||||
' --- Enumeration classes (declaration-only for max compatibility) ---
|
||||
enum Gender
|
||||
enum Role
|
||||
enum UserStatus
|
||||
enum PollutionType
|
||||
enum SeverityLevel
|
||||
enum FeedbackStatus
|
||||
enum TaskStatus
|
||||
enum AssignmentStatus
|
||||
enum AssignmentMethod
|
||||
enum OperationType
|
||||
|
||||
|
||||
' --- Entity classes with full attributes and methods ---
|
||||
class UserAccount {
|
||||
- Long id
|
||||
- String name
|
||||
- String phone
|
||||
- String email
|
||||
- String password
|
||||
- Gender gender
|
||||
- Role role
|
||||
- UserStatus status
|
||||
- Integer gridX
|
||||
- Integer gridY
|
||||
+ isValid()
|
||||
}
|
||||
class Feedback {
|
||||
- Long id
|
||||
- String eventId
|
||||
- String title
|
||||
- PollutionType pollutionType
|
||||
- SeverityLevel severityLevel
|
||||
- FeedbackStatus status
|
||||
- Long submitterId
|
||||
+ process()
|
||||
+ approve()
|
||||
}
|
||||
class Task {
|
||||
- Long id
|
||||
- String title
|
||||
- String description
|
||||
- PollutionType pollutionType
|
||||
- SeverityLevel severityLevel
|
||||
- TaskStatus status
|
||||
- String textAddress
|
||||
- Integer gridX
|
||||
- Integer gridY
|
||||
- LocalDateTime assignedAt
|
||||
- LocalDateTime completedAt
|
||||
+ assignTo(workerId)
|
||||
+ complete()
|
||||
+ approve()
|
||||
}
|
||||
class Assignment {
|
||||
- Long id
|
||||
- String remarks
|
||||
- LocalDateTime assignmentTime
|
||||
- LocalDateTime deadline
|
||||
- AssignmentStatus status
|
||||
}
|
||||
class TaskHistory {
|
||||
- Long id
|
||||
- TaskStatus oldStatus
|
||||
- TaskStatus newStatus
|
||||
- String comments
|
||||
- LocalDateTime changedAt
|
||||
}
|
||||
class TaskSubmission {
|
||||
- Long id
|
||||
- String notes
|
||||
- LocalDateTime submittedAt
|
||||
}
|
||||
class Attachment {
|
||||
- Long id
|
||||
- String fileName
|
||||
- String fileType
|
||||
- String storedFileName
|
||||
- Long fileSize
|
||||
- LocalDateTime uploadDate
|
||||
}
|
||||
class Grid {
|
||||
- Long id
|
||||
- Integer gridX
|
||||
- Integer gridY
|
||||
- String cityName
|
||||
- String districtName
|
||||
- String description
|
||||
- boolean isObstacle
|
||||
}
|
||||
class MapGrid {
|
||||
- Long id
|
||||
- int x
|
||||
- int y
|
||||
- String cityName
|
||||
- boolean isObstacle
|
||||
- String terrainType
|
||||
}
|
||||
class PasswordResetToken {
|
||||
- Long id
|
||||
- String token
|
||||
- LocalDateTime expiryDate
|
||||
+ isExpired()
|
||||
}
|
||||
class OperationLog {
|
||||
- Long id
|
||||
- OperationType operationType
|
||||
- String description
|
||||
- String targetId
|
||||
- String targetType
|
||||
- String ipAddress
|
||||
- LocalDateTime createdAt
|
||||
}
|
||||
class AqiData {
|
||||
- Long id
|
||||
- Integer aqiValue
|
||||
- Double pm25
|
||||
- Double pm10
|
||||
- String primaryPollutant
|
||||
- LocalDateTime recordTime
|
||||
}
|
||||
class AqiRecord {
|
||||
- Long id
|
||||
- String cityName
|
||||
- Integer aqiValue
|
||||
- Double pm25
|
||||
- Double pm10
|
||||
- LocalDateTime recordTime
|
||||
}
|
||||
class AssignmentRecord {
|
||||
- Long id
|
||||
- AssignmentMethod assignmentMethod
|
||||
- String algorithmDetails
|
||||
- AssignmentStatus status
|
||||
- LocalDateTime createdAt
|
||||
}
|
||||
class PollutantThreshold {
|
||||
- Long id
|
||||
- PollutionType pollutionType
|
||||
- String pollutantName
|
||||
- Double threshold
|
||||
- String unit
|
||||
}
|
||||
|
||||
' --- Relationships with Full Details ---
|
||||
|
||||
' --- Composition with Enums ---
|
||||
UserAccount "1" *-- "1" Gender
|
||||
UserAccount "1" *-- "1" Role
|
||||
UserAccount "1" *-- "1" UserStatus
|
||||
Feedback "1" *-- "1" PollutionType
|
||||
Feedback "1" *-- "1" SeverityLevel
|
||||
Feedback "1" *-- "1" FeedbackStatus
|
||||
Task "1" *-- "1" TaskStatus
|
||||
Assignment "1" *-- "1" AssignmentStatus
|
||||
AssignmentRecord "1" *-- "1" AssignmentMethod
|
||||
OperationLog "1" *-- "1" OperationType
|
||||
PollutantThreshold "1" *-- "1" PollutionType
|
||||
|
||||
' --- Aggregation & Association ---
|
||||
Task "1" --> "1" Feedback : "generated from"
|
||||
Task "1" o-- "1" Assignment : "has"
|
||||
Task "1" o-- "0..*" TaskHistory : "logs"
|
||||
Task "1" o-- "0..*" TaskSubmission : "receives"
|
||||
Feedback "1" o-- "0..*" Attachment : "has"
|
||||
TaskSubmission "1" o-- "0..*" Attachment : "has"
|
||||
AssignmentRecord "1" --> "1" Feedback : "for"
|
||||
UserAccount "1" --> "0..*" Feedback : "submits"
|
||||
UserAccount "1" --> "0..*" Task : "creates"
|
||||
Task "0..*" o-- "1" UserAccount : "assigned to"
|
||||
Assignment "1" --> "1" UserAccount : "assigned by"
|
||||
TaskHistory "1" --> "1" UserAccount : "changed by"
|
||||
AssignmentRecord "1" --> "1" UserAccount : "assigned to"
|
||||
AssignmentRecord "1" --> "1" UserAccount : "assigned by"
|
||||
OperationLog "1" --> "1" UserAccount : "performed by"
|
||||
PasswordResetToken "1" --> "1" UserAccount : "for"
|
||||
AqiData "1" --> "1" UserAccount : "reported by"
|
||||
|
||||
' --- Dependency & Other Associations ---
|
||||
Task "1" ..> "1" Grid : "located in"
|
||||
UserAccount "1" ..> "1" Grid : "operates in"
|
||||
AqiData "1" --> "1" Grid : "recorded at"
|
||||
AqiRecord "1" --> "1" Grid : "related to"
|
||||
|
||||
@enduml
|
||||
```
|
||||
Reference in New Issue
Block a user