update 数据同步

develop
hhb@hotmail.com 3 weeks ago
parent ffe07a6e1b
commit 46d13294f3

@ -173,17 +173,26 @@ public class TeacherServiceImpl implements TeacherService {
if (teacherInfos != null) { if (teacherInfos != null) {
//转换为GpTeacherVo对象数组 //转换为GpTeacherVo对象数组
List<GpTeacherVo> teachersList = convertToGpTeacherVoList(teacherInfos, teacherDto.getCode()); 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()); String code = String.format(PK.PTTEACHER, teacherDto.getCode());
List<PtTeacherInfo> ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherDto.getCode(),code); List<PtTeacherInfo> ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherDto.getCode(),code);
//根据ID筛选出teachersList中不在ptTeacherInfos中的数据 //根据ID筛选出teachersList中不在ptTeacherInfos中的数据
existingTeachers = teachersList.stream() Set<String> ptIds = ptTeacherInfos.stream()
.filter(t -> ptTeacherInfos.stream().anyMatch(pt -> pt.getId().equals(t.getId()))) .map(PtTeacherInfo::getId)
.collect(Collectors.toSet());
List<GpTeacherVo> result = teachersList.stream()
.filter(t -> !ptIds.contains(t.getId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
res.put("Add", existingTeachers); res.put("Add", result);
//根据source属性 筛选出ptTeacherInfos中source为ies 缺在teachersList没被找到的数据 //根据source属性 筛选出ptTeacherInfos中source为ies 缺在teachersList没被找到的数据
List<GpTeacherVo> finalTeachersList = teachersList;
List<PtTeacherInfo> toDeactivate = ptTeacherInfos.stream() List<PtTeacherInfo> toDeactivate = ptTeacherInfos.stream()
.filter(pt -> pt.getSource().equals("ies")) .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()); .collect(Collectors.toList());
res.put("Delete", toDeactivate); res.put("Delete", toDeactivate);

Loading…
Cancel
Save