-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuml.puml
174 lines (152 loc) · 3.84 KB
/
uml.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
@startuml
enum DataStruct.SupplyType {
+ MO
+ MRP
+ PLAN
+ PO
+ PR
+ SO
}
class Domain.Listen.BaseReNewResourceListener {
}
class Domain.AbstractPerishable {
# String id
}
class Utils.RandomStringGenerator {
- {static} String CHARACTERS
- {static} SecureRandom RANDOM
}
class App.DataProcessing {
- {static} Logger logger
}
abstract class DataStruct.Labeled {
- String id
}
class Domain.Scheduler {
- List<ResourceNode> resourceNodes
- List<Allocation> allocations
- HardMediumSoftScore hardMediumSoftScore
- List<Task> tasks
- int startSchedulingTime
- int frozenSeconds
}
class DataStruct.TimeSlot {
- String shiftID
- long start
- long end
}
enum DataStruct.TaskType {
+ PARENT
+ CHILD
}
class DataStruct.ResourceRequirement {
- ResourceNode resourceNode
}
class Domain.GroupSchedulingFilter {
}
class DataStruct.Task {
- {static} Logger logger
- String materialId
- String materialDescription
- float quantity
- List<Operation> craftPath
- List<MasterDemand> masterDemands
- SupplyType supplyType
- Integer priority
- Long earliestStartTime
- Long latestStartTime
- Long materialSetTime
- String groupSchedulingIndicator
}
class DataStruct.MasterDemand {
- Long requiredDate
- Long deliveryDate
- Long breachDate
- Long promisedDate
- Long prePromisedDate
}
class DataStruct.Operation {
- String name
- Task parentTask
- Long batchSize
- Integer order
- long quantity
- List<ExecutionMode> executionModes
- List<Operation> previousOperations
- List<Operation> nextOperations
- ProductionMethod productionMethod
- int resourceOccupiedPostTime
- int NonResourceOccupiedPostTime
- int resourceOccupiedPreparation
- int NonResourceOccupiedPreparation
- OperationStartRelationShip operationStartRelationShip
- boolean isCriticalPath
- boolean isLocked
- Long plannedStartTime
- Long plannedEndTime
- ResourceNode plannedResource
- boolean isFrozen
- Object frozenPrevious
- boolean isFirst
- boolean isLast
}
class Domain.Allocation.Allocation {
- Operation operation
- List<Allocation> predecessorsAllocations
- List<Allocation> successorsAllocations
- List<ResourceNode> allResources
- List<Allocation> allAllocations
- List<AllocationOrResource> possiblePreviousAllocation
- AllocationOrResource previous
- ResourceNode resourceNode
- Long startTime
- Long endTime
}
class Domain.DAGLoopDetectionFilter {
- {static} Logger logger
}
class Domain.Listen.StartTimeListener {
}
class Domain.SchedulerConstraintProvider {
}
enum DataStruct.OperationStartRelationShip {
+ ES
+ SSEE
}
class DataStruct.ExecutionMode {
- Operation operation
- ResourceRequirement resourceRequirement
- Integer priority
- float beat
- float quantityPerBeat
}
enum DataStruct.ProductionMethod {
+ SELF
+ OUTSOURCING
}
abstract class Domain.Allocation.AllocationOrResource {
- Allocation next
}
class App.Main {
- {static} String filePath
- {static} Logger logger
}
class DataStruct.ResourceNode {
- String name
- List<TimeSlot> timeSlots
}
ai.timefold.solver.core.api.domain.variable.VariableListener <|.. Domain.Listen.BaseReNewResourceListener
Domain.AbstractPerishable <|-- Domain.Scheduler
DataStruct.Labeled <|-- DataStruct.ResourceRequirement
ai.timefold.solver.core.api.domain.entity.PinningFilter <|.. Domain.GroupSchedulingFilter
DataStruct.Labeled <|-- DataStruct.Task
DataStruct.Labeled <|-- DataStruct.MasterDemand
DataStruct.Labeled <|-- DataStruct.Operation
Domain.Allocation.AllocationOrResource <|-- Domain.Allocation.Allocation
ai.timefold.solver.core.impl.heuristic.selector.common.decorator.SelectionFilter <|.. Domain.DAGLoopDetectionFilter
ai.timefold.solver.core.api.domain.variable.VariableListener <|.. Domain.Listen.StartTimeListener
Domain.ConstraintProvider <|.. Domain.SchedulerConstraintProvider
DataStruct.Labeled <|-- DataStruct.ExecutionMode
Domain.AbstractPerishable <|-- Domain.Allocation.AllocationOrResource
Domain.Allocation.AllocationOrResource <|-- DataStruct.ResourceNode
@enduml