Commit c027df0f by 刘鑫

FIX: 多技能组查询容量时 工程师需同时满足所有技能

1 parent dd8f43dd
...@@ -129,22 +129,25 @@ public class CapacityQueryServiceImpl implements CapacityQueryService { ...@@ -129,22 +129,25 @@ public class CapacityQueryServiceImpl implements CapacityQueryService {
//3. 查询分站下拥有对应技能的工程师(排重) 技能码转换为对应的技能汉字 //3. 查询分站下拥有对应技能的工程师(排重) 技能码转换为对应的技能汉字
List<SkillInfoEntity> querySkillGroup = new ArrayList<>(); List<SkillInfoEntity> querySkillGroup = new ArrayList<>();
Set<EngineerInfoEntity> allFulfillEngineer = Sets.newConcurrentHashSet(); Set<String> skillGroupCodes = Sets.newConcurrentHashSet();
for (CapacityQueryDTO.Service service : services) { for (CapacityQueryDTO.Service service : services) {
Set<EngineerInfoEntity> engineerInfoEntities = engineerInfoDao.listByBrandAndTypeAndSkillAndTeamId(service.getBrand(),
service.getProductType(), service.getServiceType(), teamId);
//查询对应的技能信息 //查询对应的技能信息
SkillInfoEntity skillInfo = skillInfoDao.getByBrandAndTypeAndSkill(service.getBrand(), SkillInfoEntity skillInfo = skillInfoDao.getByBrandAndTypeAndSkill(service.getBrand(),
service.getProductType(), service.getServiceType()); service.getProductType(), service.getServiceType());
skillGroupCodes.add(skillInfo.getSkillGroupCode());
querySkillGroup.add(skillInfo); querySkillGroup.add(skillInfo);
allFulfillEngineer.addAll(engineerInfoEntities);
} }
log.info("[matchCapacityData]【符合技能要求的工程师总数为:{} 个】", allFulfillEngineer.size());
if (CollectionUtils.isEmpty(querySkillGroup)) { if (CollectionUtils.isEmpty(querySkillGroup)) {
throw new BusinessException("查询不到对应的技能组信息"); throw new BusinessException("查询不到对应的技能组信息");
} }
Set<EngineerInfoEntity> allFulfillEngineer = engineerInfoDao.listBySkillGroupCode(skillGroupCodes,
skillGroupCodes.size());
//查询同时拥有技能组代码的人员信息
log.info("[matchCapacityData]【符合技能要求的工程师总数为:{} 个】", allFulfillEngineer.size());
//计算所有查询技能的所需耗时 (querySkillGroup) //计算所有查询技能的所需耗时 (querySkillGroup)
final int totalTakeTime = querySkillGroup.stream() final int totalTakeTime = querySkillGroup.stream()
.mapToInt(SkillInfoEntity::getTakeTime) .mapToInt(SkillInfoEntity::getTakeTime)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!