1.定义一个子类集合,子类集合需定义一个List children;以及父类的code和name用于接收值。
List<PfMinor> minorList = new ArrayList<>();
2.根据传入的父类code进行分割
String[] pfGroupIdList = pfGroupIds.split(",");
3.根据传入的父类code去子类里面进行查询
List<PfMinor> pfMinors = fscInfoMapper.getCheckMinor(pfGroupIdList, inOut);
4.把查询到子类集合根据唯一键进行排序
Map<String, List<PfMinor>> allMinorsListRes = pfMinors.stream().collect(Collectors.groupingBy(PfMinor::getGrCode));
5.循环map排序过后的唯一键code
for (Map.Entry<String, List<PfMinor>> entry : allMinorsListRes.entrySet()) {
6.循环传入的父类参数code
for (String item:pfGroupIdList) {
7.若父类的code和传入的code相同,则往子类定义的父类code和name set值
if (item.equals(entry.getKey())) {
PfMinor pfMinor = new PfMinor();
pfMinor.setGrCode(entry.getKey());
pfMinor.setGrName(entry.getValue().get(0).getGrName());
pfMinor.setChildren(entry.getValue());
minorList.add(pfMinor);
}
}
}