Commit 1e3928a0 by wangli

只返回技术员支持的技能列表,不用返回所有技能的标记

1 parent 2fa3082b
...@@ -34,9 +34,6 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -34,9 +34,6 @@ public class EngineerServiceImpl implements EngineerService {
@Autowired @Autowired
private EngineerBusinessDao engineerBusinessDao; private EngineerBusinessDao engineerBusinessDao;
@Autowired
private ProductCategory2Dao productCategory2Dao;
@Transactional @Transactional
@Override @Override
public Result<?> getEngineerInfoList(long page, long size) { public Result<?> getEngineerInfoList(long page, long size) {
...@@ -80,11 +77,9 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -80,11 +77,9 @@ public class EngineerServiceImpl implements EngineerService {
// 获取技术员code列表 // 获取技术员code列表
List<String> engineerCodes = engineers.stream().map(EngineerInfo::getEngineerCode).collect(Collectors.toList()); List<String> engineerCodes = engineers.stream().map(EngineerInfo::getEngineerCode).collect(Collectors.toList());
// 获取所有技能分类 // 获取技术员的可用技能列表
List<String> skillIds = this.queryProductCategoryIds(); HashMap<String, List<String>> engineerSkills = this.queryEngineerSkills(engineerCodes);
List<String> emptySkills = Collections.emptyList();
// 获取所有技术员技能列表HashMap<engineerCode, HashMap<skillId, status>>
HashMap<String, HashMap<String, Integer>> engineerSkills = this.queryEngineerSkills(engineerCodes);
List<EngineerSkillListResp.EngineerSkill> items = new ArrayList<>(); List<EngineerSkillListResp.EngineerSkill> items = new ArrayList<>();
for(EngineerInfo e: engineers) { for(EngineerInfo e: engineers) {
...@@ -94,8 +89,7 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -94,8 +89,7 @@ public class EngineerServiceImpl implements EngineerService {
skill.setGroupName(groupNames.getOrDefault(e.getGroupId(), "")); skill.setGroupName(groupNames.getOrDefault(e.getGroupId(), ""));
// 获取一个工程师的技能列表 // 获取一个工程师的技能列表
HashMap<String, Integer> engineerSkill = engineerSkills.get(e.getEngineerCode()); skill.setSkills(engineerSkills.getOrDefault(e.getEngineerCode(), emptySkills));
skill.setSkills(this.getEngineerSkillIds(skillIds, engineerSkill));
items.add(skill); items.add(skill);
} }
...@@ -227,15 +221,16 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -227,15 +221,16 @@ public class EngineerServiceImpl implements EngineerService {
return map; return map;
} }
private HashMap<String, HashMap<String, Integer>> queryEngineerSkills(List<String> engineerCodes) { private HashMap<String, List<String>> queryEngineerSkills(List<String> engineerCodes) {
// 获取engineerCode对应的技能表, HashMap<engineerCode, HashMap<categoryId, status>> // 获取engineerCode对应的技能表, HashMap<engineerCode, List<skillId>>
HashMap<String, HashMap<String, Integer>> map = new HashMap<>(); HashMap<String, List<String>> map = new HashMap<>();
if (engineerCodes.isEmpty()) { if (engineerCodes.isEmpty()) {
return map; return map;
} }
LambdaQueryWrapper<EngineerSkill> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<EngineerSkill> lqw = new LambdaQueryWrapper<>();
lqw.in(EngineerSkill::getEngineerCode, engineerCodes); lqw.in(EngineerSkill::getEngineerCode, engineerCodes);
lqw.eq(EngineerSkill::getStatus, 1);
List<EngineerSkill> records = engineerSkillDao.selectList(lqw); List<EngineerSkill> records = engineerSkillDao.selectList(lqw);
Comparator<EngineerSkill> ec = Comparator.comparing(EngineerSkill::getEngineerCode, String.CASE_INSENSITIVE_ORDER); Comparator<EngineerSkill> ec = Comparator.comparing(EngineerSkill::getEngineerCode, String.CASE_INSENSITIVE_ORDER);
...@@ -245,11 +240,9 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -245,11 +240,9 @@ public class EngineerServiceImpl implements EngineerService {
Map<String, List<EngineerSkill>> g = results.stream().collect(Collectors.groupingBy(EngineerSkill::getEngineerCode)); Map<String, List<EngineerSkill>> g = results.stream().collect(Collectors.groupingBy(EngineerSkill::getEngineerCode));
for(String engineerCode: g.keySet()) { for(String engineerCode: g.keySet()) {
HashMap<String, Integer> skills = new HashMap<>(); // 技术员技能ID列表
for (EngineerSkill es: g.get(engineerCode)) { List<String> skillIds = g.get(engineerCode).stream().map(EngineerSkill::getCategoryId).collect(Collectors.toList());
skills.put(es.getCategoryId(), es.getStatus()); map.put(engineerCode, skillIds);
}
map.put(engineerCode, skills);
} }
return map; return map;
} }
...@@ -268,14 +261,6 @@ public class EngineerServiceImpl implements EngineerService { ...@@ -268,14 +261,6 @@ public class EngineerServiceImpl implements EngineerService {
return map; return map;
} }
private List<String> queryProductCategoryIds() {
// 获取所有技能分类
LambdaQueryWrapper<ProductCategory> lqw = new LambdaQueryWrapper<>();
lqw.select(ProductCategory::getProductCategoryId);
List<ProductCategory> records = productCategory2Dao.selectList(lqw);
return records.stream().map(ProductCategory::getProductCategoryId).collect(Collectors.toList());
}
private List<EngineerInfoListResp.EngineerInfo> packEngineerInfo(List<EngineerInfo> engineers, HashMap<String, String> groups) { private List<EngineerInfoListResp.EngineerInfo> packEngineerInfo(List<EngineerInfo> engineers, HashMap<String, String> groups) {
String groupName, age, workType; String groupName, age, workType;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!