Skip to content

Commit 173a0ec

Browse files
committed
Added members for a team and exceptions for assigned personel
1 parent d3b5812 commit 173a0ec

File tree

12 files changed

+495
-47
lines changed

12 files changed

+495
-47
lines changed

README.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,22 @@ The diagram below illustrates Business Management Systems' DNO (Day, Night, Off)
1111

1212
A shift is defined with a name, description, starting time of day and duration. An off-shift period is associated with a shift. In the example above for Team1, there are two shifts followed by one off-shift period. Shifts can be overlapped (typically when a handoff of duties is important such as in the nursing profession). A rotation is a sequence of shifts and off-shift days. The DNO rotation is Day on, Night on and Night off. An instance of a shift has a starting date and time of day and has an associated shift definition.
1313

14+
*Break*
15+
16+
A break is a defined working period of time during a shift, for example lunch. A shift can have zero or more breaks.
17+
1418
*Team*
1519

1620
A team is defined with a name and description. It has a rotation with a starting date. The starting date shift will have an instance with that date and a starting time of day as defined by the shift. The same rotation can be shared between more than one team, but with different starting times.
1721

22+
*Team Member*
23+
24+
A team member is a person assigned to a team. The member is identified by a member ID (e.g. employee ID), name and description/title.
25+
26+
*Team Member Exception*
27+
28+
A team member exception is an addition and/or removal from the assigned members of a team for a specified shift instance. The instance is identified by the starting date and time.
29+
1830
*Work Schedule*
1931

2032
A work schedule is defined with a name and description. It has one or more teams. Zero or more non-working periods can be defined. A non-working period has a defined starting date and time of day and duration. For example, the New Year's Day holiday starting at midnight for 24 hours, or three consecutive days for preventive maintenance of manufacturing equipment starting at the end of the night shift.
@@ -218,13 +230,39 @@ Working shifts
218230
[7] Day: 2017-02-07
219231
(1) Team: Green, Shift: 24 Hour, Start : 2017-02-07T07:00, End : 2017-02-08T07:00
220232
```
233+
234+
For a fourth example, for a restaurant shift starting at 7 am on August 8, 2024, team member #1 called in sick and is to be replaced by member #10:
235+
```java
236+
// Sunday team
237+
Team sundayDay = schedule.createTeam("SundayDay", "Sunday day", dayRotation, LocalDate.of(2024, 7, 28);
238+
239+
// chef members
240+
TeamMember one = new TeamMember("Chef, One", "Chef", "1");
241+
TeamMember ten = new TeamMember("Ten", "Ten description", "10");
242+
243+
sundayDay.addMember(one);
244+
...
245+
// replace one with ten
246+
LocalDateTime exceptionShift = LocalDateTime.of(LocalDate.of(2024, 8, 11), LocalTime.of(7, 0, 0));
247+
TeamMemberException replacement = new TeamMemberException(exceptionShift);
248+
replacement.setRemoval(one);
249+
replacement.setAddition(ten);
250+
sundayDay.addMemberException(replacement);
251+
252+
// #1 is in the assigned list
253+
List<TeamMember> members = sundayDay.getAssignedMembers();
254+
255+
// but is replaced by #10 for that shift instance:
256+
members = sundayDay.getMembers(exceptionShift);
257+
```
258+
221259
## Maven Central Repository
222260
Add this dependency to your pom.xml file:
223261
```java
224262
<dependency>
225263
<groupId>org.point85</groupId>
226264
<artifactId>workschedule</artifactId>
227-
<version>1.1.4</version>
265+
<version>1.2.0</version>
228266
</dependency>
229267
```
230268

Release Notes.txt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@
22
RELEASE NOTES
33

44
(1) 1.1.4, February 6, 2024:
5-
- Created a Maven repository at org.point85.workschedule:
6-
<dependency>
7-
<groupId>org.point85</groupId>
8-
<artifactId>workschedule</artifactId>
9-
<version>1.1.4</version>
10-
</dependency>
11-
125
- Upgraded hamcrest to 2.2
13-
- Removed unused Maven dependencies
6+
- Removed unused Maven dependencies
7+
8+
(1) 1.2.0, December 15, 2024:
9+
- Added members for a team and exceptions for assigned personel
-353 KB
Binary file not shown.
389 KB
Binary file not shown.

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<modelVersion>4.0.0</modelVersion>
33
<groupId>org.point85</groupId>
44
<artifactId>workschedule</artifactId>
5-
<version>1.1.4</version>
5+
<version>1.2.0</version>
66
<packaging>jar</packaging>
77
<name>Work Schedule</name>
88
<description>Work schedule with shifts and teams.</description>

src/main/java/org/point85/workschedule/ShiftInstance.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,16 @@ public String toString() {
145145
String s = WorkSchedule.getMessage("shift");
146146
String ps = WorkSchedule.getMessage("period.start");
147147
String pe = WorkSchedule.getMessage("period.end");
148+
String members = WorkSchedule.getMessage("team.members");
148149

149-
return " " + t + ": " + getTeam().getName() + ", " + s + ": " + getShift().getName() + ", " + ps + ": "
150-
+ getStartTime() + ", " + pe + ": " + getEndTime();
150+
String text = " " + t + ": " + getTeam().getName() + " (" + team.getDescription() + ")" + ", " + s + ": " + getShift().getName() + ", " + ps + ": "
151+
+ getStartTime() + ", " + pe + ": " + getEndTime() + "\n" + members;
152+
153+
for (TeamMember member : getTeam().getMembers(getStartTime())) {
154+
text += "\n\t" + member;
155+
}
156+
157+
return text;
151158
}
152159

153160
}

0 commit comments

Comments
 (0)