diff --git a/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java b/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java index a695162..74a7d8a 100644 --- a/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java +++ b/src/main/java/cn/teammodel/controller/admin/service/impl/TeacherServiceImpl.java @@ -173,17 +173,26 @@ public class TeacherServiceImpl implements TeacherService { if (teacherInfos != null) { //转换为GpTeacherVo对象数组 List teachersList = convertToGpTeacherVoList(teacherInfos, teacherDto.getCode()); + //过滤掉status为delete的数据 + teachersList = teachersList.stream() + .filter(t -> !t.getStatus().equals("delete")) + .collect(Collectors.toList()); String code = String.format(PK.PTTEACHER, teacherDto.getCode()); List ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherDto.getCode(),code); //根据ID筛选出teachersList中不在ptTeacherInfos中的数据 - existingTeachers = teachersList.stream() - .filter(t -> ptTeacherInfos.stream().anyMatch(pt -> pt.getId().equals(t.getId()))) + Set ptIds = ptTeacherInfos.stream() + .map(PtTeacherInfo::getId) + .collect(Collectors.toSet()); + + List result = teachersList.stream() + .filter(t -> !ptIds.contains(t.getId())) .collect(Collectors.toList()); - res.put("Add", existingTeachers); + res.put("Add", result); //根据source属性 筛选出ptTeacherInfos中source为ies 缺在teachersList没被找到的数据 + List finalTeachersList = teachersList; List toDeactivate = ptTeacherInfos.stream() .filter(pt -> pt.getSource().equals("ies")) - .filter(pt -> teachersList.stream().noneMatch(t -> t.getId().equals(pt.getId()))) + .filter(pt -> finalTeachersList.stream().noneMatch(t -> t.getId().equals(pt.getId()))) .collect(Collectors.toList()); res.put("Delete", toDeactivate);