Class BTImmediateSchedulingTeamExclusionBySkill
java.lang.Object
overit.geocall.bl.BusinessTask<ImmediateSchedulingTeamExclusionEvent>
overit.geocallapp.wfm.orchestrator.scheduling.bl.immediatescheduling.teamexclusion.task.BTImmediateSchedulingTeamExclusion
overit.geocallapp.wfm.orchestrator.scheduling.bl.immediatescheduling.teamexclusion.task.BTImmediateSchedulingTeamExclusionBySkill
- All Implemented Interfaces:
Serializable,Tool
@Event(value=ImmediateSchedulingTeamExclusionEvent.class,
priority=40)
public class BTImmediateSchedulingTeamExclusionBySkill
extends BTImmediateSchedulingTeamExclusion
Business task that excludes teams based on skill requirements.
Exclusion criteria:
- Teams whose resources do not have the required skills for a work order operation are excluded from that operation
- Uses the SkillProvider's evaluateResourceSkillConfiguration event to check if resources have the required skills
This task listens to ImmediateSchedulingTeamExclusionEvent with priority 40.
- Since:
- 22.0
- See Also:
-
Field Summary
Fields inherited from class overit.geocallapp.wfm.orchestrator.scheduling.bl.immediatescheduling.teamexclusion.task.BTImmediateSchedulingTeamExclusion
integrationService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidfilter(ImmediateSchedulingTeamExclusionOutput output, ImmediateSchedulingTeamExclusionInput input, PoolKit poolKit) Applies the specific exclusion filter logic.filterTeamsBySkills(ImmediateSchedulingTeamExclusionOutput output, Map<Long, List<Long>> teamResources, ImmediateSchedulingTeamExclusionInput input, PoolKit poolKit) Filters teams by skills and updates the team-work order compatibility matrix.protected booleanChecks if the skill evaluation result indicates missing skills.protected booleanhasRequiredSkills(Long operationId, List<Long> resources, ImmediateSchedulingTeamExclusionInput exclusionInput, PoolKit poolKit) Checks if the team's resources have the required skills for a work order operation.Methods inherited from class overit.geocallapp.wfm.orchestrator.scheduling.bl.immediatescheduling.teamexclusion.task.BTImmediateSchedulingTeamExclusion
body, createInitialTeamCompatibilityMatrix, getIntegrationService, getOutput, recordResourceExclusions, removeTeamsWithoutWorkOrdersMethods inherited from class overit.geocall.bl.BusinessTask
start, start, startAlone, startInBackground
-
Constructor Details
-
BTImmediateSchedulingTeamExclusionBySkill
public BTImmediateSchedulingTeamExclusionBySkill()
-
-
Method Details
-
filter
protected void filter(ImmediateSchedulingTeamExclusionOutput output, ImmediateSchedulingTeamExclusionInput input, PoolKit poolKit) throws DAValidateException, DAException Description copied from class:BTImmediateSchedulingTeamExclusionApplies the specific exclusion filter logic. Implementations should: 1. Remove teams from output.getForemanByAliveTeam() that should be excluded 2. Remove incompatible work orders from output.getTeamWorkOrderCompatibility() 3. Log the excluded resources with appropriate messages Note: Teams are automatically removed byBTImmediateSchedulingTeamExclusion.removeTeamsWithoutWorkOrders(overit.geocallapp.wfm.scheduling.bl.immediatescheduling.teamexclusion.event.ImmediateSchedulingTeamExclusionOutput)if they have no compatible work orders.- Specified by:
filterin classBTImmediateSchedulingTeamExclusion- Parameters:
output- the current output from previous filters (modify foremanByAliveTeam and teamWorkOrderCompatibility)input- the event input containing scheduling model and reference datepoolKit- the pool kit- Throws:
DAValidateException- if a validation error occursDAException- if a data access error occurs
-
filterTeamsBySkills
protected List<Long> filterTeamsBySkills(ImmediateSchedulingTeamExclusionOutput output, Map<Long, List<Long>> teamResources, ImmediateSchedulingTeamExclusionInput input, PoolKit poolKit) throws DAValidateException, DAExceptionFilters teams by skills and updates the team-work order compatibility matrix. Removes work orders from teams that don't have the required skills. Returns the list of teams that are completely excluded (no compatible work orders left).- Parameters:
output- the output containing the compatibility matrixteamResources- map of team ID to list of resource IDsinput- the input containing the reference datepoolKit- the pool kit- Returns:
- list of team IDs that are completely excluded
- Throws:
DAValidateException- if a validation error occursDAException- if a data access error occurs
-
hasRequiredSkills
protected boolean hasRequiredSkills(Long operationId, List<Long> resources, ImmediateSchedulingTeamExclusionInput exclusionInput, PoolKit poolKit) Checks if the team's resources have the required skills for a work order operation.- Parameters:
operationId- the work order operation IDresources- the list of resource IDs in the teamexclusionInput- the input containing the reference datepoolKit- the pool kit- Returns:
- true if the team has the required skills, false otherwise (also returns false if an error occurs)
-
hasMissingSkills
Checks if the skill evaluation result indicates missing skills.- Parameters:
result- the skill evaluation result- Returns:
- true if there are missing skills, false otherwise
-