Class ImmediateSchedulingTeamExclusionOutput

java.lang.Object
overit.geocall.model.DynO
overit.geocallapp.wfm.scheduling.bl.immediatescheduling.teamexclusion.event.ImmediateSchedulingTeamExclusionOutput
All Implemented Interfaces:
ConstraintValidator<DynO.Valid,DynO>, Serializable, overit.geocall.timezone.model.TimeZoned

public class ImmediateSchedulingTeamExclusionOutput extends DynO
Output for the immediate scheduling team exclusion event.

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:

  1. Initial state: Team Alpha can handle WO [101, 109, 178]
  2. Distance exclusion task: Removes WO 101 (too far) → Team Alpha can handle [109, 178]
  3. Skills exclusion task: Removes WO 109, 178 (missing skills) → Team Alpha can handle []
  4. Result: Team Alpha is removed from aliveTeams because it cannot handle any work order
Since:
22.0
See Also:
GCApi:
bo
  • Constructor Details

    • ImmediateSchedulingTeamExclusionOutput

      public ImmediateSchedulingTeamExclusionOutput()
  • Method Details

    • getTeamWorkOrderCompatibility

      public Map<Long,Set<Long>> 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

      public void setTeamWorkOrderCompatibility(Map<Long,Set<Long>> teamWorkOrderCompatibility)
      Sets the team-work order compatibility matrix.
      Parameters:
      teamWorkOrderCompatibility - the compatibility matrix
    • getForemanByAliveTeam

      public Map<Long,Long> 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

      public void setForemanByAliveTeam(Map<Long,Long> foremanByAliveTeam)
      Sets the map of foreman IDs by alive team.
      Parameters:
      foremanByAliveTeam - the map of team ID → foreman resource ID
    • getForemanWorkshiftByAliveTeam

      public Map<Long,Long> 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

      public void setForemanWorkshiftByAliveTeam(Map<Long,Long> foremanWorkshiftByAliveTeam)
      Sets the map of alive workshifts by team.
      Parameters:
      foremanWorkshiftByAliveTeam - the map of team ID → workshift ID (ARSHID)
    • getTeamCompositionByTeamId

      public Map<Long,List<Long>> 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

      public void setTeamCompositionByTeamId(Map<Long,List<Long>> teamCompositionByTeamId)
      Sets the map of team composition (resource IDs) by team ID.
      Parameters:
      teamCompositionByTeamId - the map of team ID → list of resource IDs
    • getForemanByTeamForRecalibration

      public Map<Long,Long> 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

      public void setForemanByTeamForRecalibration(Map<Long,Long> foremanByTeamForRecalibration)
      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

      public Map<Long,Long> 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

      public Map<Long,Long> 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

      public void setWorkshiftByResourceId(Map<Long,Long> workshiftByResourceId)
      Sets the map of workshift ID by resource ID for ALL team members.
      Parameters:
      workshiftByResourceId - the map of resource ID → workshift ID (ARSHID)