|
|
|
@ -173,17 +173,26 @@ public class TeacherServiceImpl implements TeacherService {
|
|
|
|
|
if (teacherInfos != null) {
|
|
|
|
|
//转换为GpTeacherVo对象数组
|
|
|
|
|
List<GpTeacherVo> 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<PtTeacherInfo> ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherDto.getCode(),code);
|
|
|
|
|
//根据ID筛选出teachersList中不在ptTeacherInfos中的数据
|
|
|
|
|
existingTeachers = teachersList.stream()
|
|
|
|
|
.filter(t -> ptTeacherInfos.stream().anyMatch(pt -> pt.getId().equals(t.getId())))
|
|
|
|
|
Set<String> ptIds = ptTeacherInfos.stream()
|
|
|
|
|
.map(PtTeacherInfo::getId)
|
|
|
|
|
.collect(Collectors.toSet());
|
|
|
|
|
|
|
|
|
|
List<GpTeacherVo> 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<GpTeacherVo> finalTeachersList = teachersList;
|
|
|
|
|
List<PtTeacherInfo> 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);
|
|
|
|
|
|
|
|
|
|