Class ImmediateSchedulingTeamExclusionOutput
- All Implemented Interfaces:
ConstraintValidator<DynO.Valid,,DynO> Serializable,overit.geocall.timezone.model.TimeZoned
Contains:
- List of alive teams (teams that have not been excluded)
- Team-WorkOrder compatibility matrix: for each team, the set of work orders they can handle
The compatibility matrix is progressively refined by each exclusion task:
- Initially, all teams can handle all work orders
- Each exclusion task removes incompatible work orders from each team's set
- If a team ends up with no compatible work orders, it is removed from aliveTeams
Example flow:
- Initial state: Team Alpha can handle WO [101, 109, 178]
- Distance exclusion task: Removes WO 101 (too far) → Team Alpha can handle [109, 178]
- Skills exclusion task: Removes WO 109, 178 (missing skills) → Team Alpha can handle []
- Result: Team Alpha is removed from aliveTeams because it cannot handle any work order
- Since:
- 22.0
- See Also:
- GCApi:
- bo
-
Nested Class Summary
Nested classes/interfaces inherited from class overit.geocall.model.DynO
DynO.SpanFields, DynO.SpanTable, DynO.Valid -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGets the map of foreman (team leader) IDs by alive team.Gets the map of foreman resource ID by team ID for recalibration.Gets the map of alive workshifts by team.Gets the map of foreman workshift ID by team ID for recalibration.Gets the map of team composition (resource IDs) by team ID.Gets the team-work order compatibility matrix.Gets the map of workshift ID by resource ID for ALL team members (foreman + assistants).voidsetForemanByAliveTeam(Map<Long, Long> foremanByAliveTeam) Sets the map of foreman IDs by alive team.voidsetForemanByTeamForRecalibration(Map<Long, Long> foremanByTeamForRecalibration) Sets the map of foreman resource ID by team ID for recalibration.voidsetForemanWorkshiftByAliveTeam(Map<Long, Long> foremanWorkshiftByAliveTeam) Sets the map of alive workshifts by team.voidsetForemanWorkshiftByTeamForRecalibration(Map<Long, Long> foremanWorkshiftByTeamForRecalibration) Sets the map of foreman workshift ID by team ID for recalibration.voidsetTeamCompositionByTeamId(Map<Long, List<Long>> teamCompositionByTeamId) Sets the map of team composition (resource IDs) by team ID.voidsetTeamWorkOrderCompatibility(Map<Long, Set<Long>> teamWorkOrderCompatibility) Sets the team-work order compatibility matrix.voidsetWorkshiftByResourceId(Map<Long, Long> workshiftByResourceId) Sets the map of workshift ID by resource ID for ALL team members.Methods inherited from class overit.geocall.model.DynO
addExtension, extract, extract, fields, from, from, getCriteria, getCriteriaNotExploded, getExtension, getFakeFilter, getUnknownAttributes, getUnknownCriteria, getVariant, getZone, insert, insert, isValid, make, removeCriteria, removeExtensionAttribute, setCriteria, setCriteriaNotExploded, setExtension, setFakeFilter, setUnknownAttributes, setUnknownCriteria, setVariant, setZone, toFlatMap, toFlatMap, toMap, toMap, toString, update, validateMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface jakarta.validation.ConstraintValidator
initializeMethods inherited from interface overit.geocall.timezone.model.TimeZoned
hasZone
-
Constructor Details
-
ImmediateSchedulingTeamExclusionOutput
public ImmediateSchedulingTeamExclusionOutput()
-
-
Method Details
-
getTeamWorkOrderCompatibility
Gets the team-work order compatibility matrix.For each team ID, contains the set of work order operation IDs that the team can handle.
- Returns:
- the compatibility matrix (team ID → set of compatible work order operation IDs)
-
setTeamWorkOrderCompatibility
Sets the team-work order compatibility matrix.- Parameters:
teamWorkOrderCompatibility- the compatibility matrix
-
getForemanByAliveTeam
Gets the map of foreman (team leader) IDs by alive team.For each alive team ID, contains the corresponding foreman resource ID. This map is filtered to include only teams that passed all exclusion filters.
- Returns:
- the map of team ID → foreman resource ID
-
setForemanByAliveTeam
Sets the map of foreman IDs by alive team.- Parameters:
foremanByAliveTeam- the map of team ID → foreman resource ID
-
getForemanWorkshiftByAliveTeam
Gets the map of alive workshifts by team.For each alive team ID, contains the corresponding workshift ID (ARSHID) for the current day. This map is used to identify which resource calendar to use for each team during recalibration.
- Returns:
- the map of team ID → workshift ID (ARSHID)
-
setForemanWorkshiftByAliveTeam
Sets the map of alive workshifts by team.- Parameters:
foremanWorkshiftByAliveTeam- the map of team ID → workshift ID (ARSHID)
-
getTeamCompositionByTeamId
Gets the map of team composition (resource IDs) by team ID.For each team ID, contains the list of resource IDs that are part of the team. This map only includes teams that have a shift calendar for the current day.
- Returns:
- the map of team ID → list of resource IDs
-
setTeamCompositionByTeamId
Sets the map of team composition (resource IDs) by team ID.- Parameters:
teamCompositionByTeamId- the map of team ID → list of resource IDs
-
getForemanByTeamForRecalibration
Gets the map of foreman resource ID by team ID for recalibration.This map contains teams that should be recalibrated (RITARA), which may include teams that are excluded from assignment due to soft filters (skill, distance, requirements).
In reprocessing mode, this map will contain more teams than
getForemanByAliveTeam().- Returns:
- the map of team ID → foreman resource ID for recalibration
-
setForemanByTeamForRecalibration
Sets the map of foreman resource ID by team ID for recalibration.- Parameters:
foremanByTeamForRecalibration- the map of team ID → foreman resource ID for recalibration
-
getForemanWorkshiftByTeamForRecalibration
Gets the map of foreman workshift ID by team ID for recalibration.This map contains workshifts for teams that should be recalibrated (RITARA), which may include teams that are excluded from assignment due to soft filters (skill, distance, requirements).
In reprocessing mode, this map will contain more teams than
getForemanWorkshiftByAliveTeam().- Returns:
- the map of team ID → foreman workshift ID (ARSHID) for recalibration
-
setForemanWorkshiftByTeamForRecalibration
public void setForemanWorkshiftByTeamForRecalibration(Map<Long, Long> foremanWorkshiftByTeamForRecalibration) Sets the map of foreman workshift ID by team ID for recalibration.- Parameters:
foremanWorkshiftByTeamForRecalibration- the map of team ID → foreman workshift ID for recalibration
-
getWorkshiftByResourceId
Gets the map of workshift ID by resource ID for ALL team members (foreman + assistants).For each resource ID, contains the corresponding workshift ID (ARSHID) for the current day. This map is used to find workshifts for all team members during travel time calculation.
- Returns:
- the map of resource ID → workshift ID (ARSHID)
-
setWorkshiftByResourceId
Sets the map of workshift ID by resource ID for ALL team members.- Parameters:
workshiftByResourceId- the map of resource ID → workshift ID (ARSHID)
-