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 328f1ad..b90077d 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 @@ -230,12 +230,12 @@ public class TeacherServiceImpl implements TeacherService { //asyncTeacherService.syncSavePtTeacherInfos(teachersList); // 假设改为同步方法 // 优化查询与匹配 - Set teacherIds = teachersList.stream() + /* Set teacherIds = teachersList.stream() .map(GpTeacherVo::getId) - .collect(Collectors.toSet()); + .collect(Collectors.toSet());*/ String code = String.format(PK.PTTEACHER, teacherDto.getCode()); - List ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherIds, teacherDto.getCode(),code); + List ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherDto.getCode(),code); // Map idToPtTeacherInfo = ptTeacherInfos.stream() // .collect(Collectors.toMap(PtTeacherInfo::getId, Function.identity())); // @@ -1599,7 +1599,7 @@ public class TeacherServiceImpl implements TeacherService { ptTeacherInfo.setTeachingAge(teacher.getTeachingAge()); ptTeacherInfo.setStatus(teacher.getStatus()); ptTeacherInfo.setJoinTime(teacher.getJoinTime()); - ptTeacherInfo.setSchool(teacher.getCode()); + ptTeacherInfo.setSchool(schoolCode); ptTeacherInfo.setVersion(ptTeacherInfo.getVersion() + 1); // 版本号递增 } else { // 新增记录:生成新ID @@ -1621,9 +1621,11 @@ public class TeacherServiceImpl implements TeacherService { ptTeacherInfo.setPeriodId(teacher.getPeriodId()); ptTeacherInfo.setAge(teacher.getAge()); ptTeacherInfo.setTeachingAge(teacher.getTeachingAge()); - ptTeacherInfo.setStatus(teacher.getStatus()); + ptTeacherInfo.setStatus("join"); ptTeacherInfo.setJoinTime(teacher.getJoinTime()); - ptTeacherInfo.setState(1); + ptTeacherInfo.setSchool(schoolCode); + ptTeacherInfo.setSource("import"); + ptTeacherInfo.setState(teacher.getState()); ptTeacherInfo.setIdentity(Collections.singletonList("teacher")); ptTeacherInfo.setVersion(1); } @@ -1704,7 +1706,6 @@ public class TeacherServiceImpl implements TeacherService { ptTeacherInfo.setPeriodId(teacher.getPeriodId()); ptTeacherInfo.setAge(teacher.getAge()); ptTeacherInfo.setTeachingAge(teacher.getTeachingAge()); - ptTeacherInfo.setStatus(teacher.getStatus()); ptTeacherInfo.setJoinTime(teacher.getJoinTime()); ptTeacherInfo.setSchool(schoolCode); ptTeacherInfo.setVersion(ptTeacherInfo.getVersion() + 1); // 版本号递增 @@ -1721,6 +1722,7 @@ public class TeacherServiceImpl implements TeacherService { ptTeacherInfo.setPicture(teacher.getPicture()); ptTeacherInfo.setJob(teacher.getJob()); ptTeacherInfo.setSubjectIds(teacher.getSubjectIds()); + ptTeacherInfo.setSubjectNames(teacher.getSubjectNames()); ptTeacherInfo.setRoles(teacher.getRoles()); ptTeacherInfo.setDegree(teacher.getDegree()); ptTeacherInfo.setGender(teacher.getGender()); @@ -1728,10 +1730,11 @@ public class TeacherServiceImpl implements TeacherService { ptTeacherInfo.setPeriodId(teacher.getPeriodId()); ptTeacherInfo.setAge(teacher.getAge()); ptTeacherInfo.setTeachingAge(teacher.getTeachingAge()); - ptTeacherInfo.setStatus(teacher.getStatus()); + ptTeacherInfo.setStatus("join"); ptTeacherInfo.setJoinTime(teacher.getJoinTime()); ptTeacherInfo.setSchool(schoolCode); - ptTeacherInfo.setState(1); + ptTeacherInfo.setState(teacher.getState()); + ptTeacherInfo.setSource(teacher.getSource()); ptTeacherInfo.setIdentity(Collections.singletonList("teacher")); ptTeacherInfo.setVersion(1); } diff --git a/src/main/java/cn/teammodel/model/entity/teacher/PtTeacherInfo.java b/src/main/java/cn/teammodel/model/entity/teacher/PtTeacherInfo.java index ab323f5..cef6d7c 100644 --- a/src/main/java/cn/teammodel/model/entity/teacher/PtTeacherInfo.java +++ b/src/main/java/cn/teammodel/model/entity/teacher/PtTeacherInfo.java @@ -45,4 +45,5 @@ public class PtTeacherInfo extends BaseItem { //该基础信息是否有效 public Integer state = 1; public Integer version = 1; + public String source; } diff --git a/src/main/java/cn/teammodel/model/vo/admin/GpTeacherVo.java b/src/main/java/cn/teammodel/model/vo/admin/GpTeacherVo.java index 0c3b53d..66835e6 100644 --- a/src/main/java/cn/teammodel/model/vo/admin/GpTeacherVo.java +++ b/src/main/java/cn/teammodel/model/vo/admin/GpTeacherVo.java @@ -23,11 +23,14 @@ public class GpTeacherVo { public Integer age ; public Integer teachingAge ; public String status ; + //表示数据是否有效 + public Integer state; public List grade; public String periodId ; public Long joinTime ; public List identity; public String title ; + public String source; public Integer version = 1; } diff --git a/src/main/java/cn/teammodel/repository/PtTeacherRepository.java b/src/main/java/cn/teammodel/repository/PtTeacherRepository.java index 71191cf..c26edbe 100644 --- a/src/main/java/cn/teammodel/repository/PtTeacherRepository.java +++ b/src/main/java/cn/teammodel/repository/PtTeacherRepository.java @@ -14,11 +14,11 @@ import java.util.List; public interface PtTeacherRepository extends CosmosRepository { PtTeacherInfo findByIdAndCode(String id, String code); - @Query(value = "SELECT * FROM c WHERE ARRAY_CONTAINS(@pairs, {id: c.id, code: c.code}, true) and c.pk = 'PtTeacher'") + @Query(value = "SELECT * FROM c WHERE ARRAY_CONTAINS(@pairs, {id: c.id, code: c.code}, true) and c.pk = 'PtTeacher' and c.state = 1") List findByIdCodePairs(@Param("pairs") List pairs); - @Query(value = "SELECT * FROM c WHERE c.pk = 'PtTeacher' and c.id in (@ids) and c.school = @school and c.code = @code ") - List findAllTeacher(Collection ids, String school,String code); - @Query(value = "SELECT * FROM c WHERE c.pk = 'PtTeacher' and c.code = @code") + @Query(value = "SELECT * FROM c WHERE c.pk = 'PtTeacher' and c.school = @school and c.code = @code and c.state = 1") + List findAllTeacher(String school,String code); + @Query(value = "SELECT * FROM c WHERE c.pk = 'PtTeacher' and c.code = @code and c.state = 1") List findByCode(String code); } diff --git a/src/main/java/cn/teammodel/test/AsyncTeacherService.java b/src/main/java/cn/teammodel/test/AsyncTeacherService.java index f6e99fc..cfa7aa1 100644 --- a/src/main/java/cn/teammodel/test/AsyncTeacherService.java +++ b/src/main/java/cn/teammodel/test/AsyncTeacherService.java @@ -44,10 +44,13 @@ public class AsyncTeacherService { .filter(pt -> pt.getId() != null && !incomingIds.contains(pt.getId())) .collect(Collectors.toList()); - // 更新停用教师的状态和版本 + // 更新停用教师的状态和版本 根据属性source等于pt 无需改变状态和版本 + toDeactivate.removeIf(pt -> pt.getSource().equals("pt")); toDeactivate.forEach(pt -> { - pt.setState(2); - pt.setVersion(pt.getVersion() + 1); + { + pt.setState(2); + pt.setVersion(pt.getVersion() + 1); + } }); // 保存停用教师到数据库并更新缓存 @@ -95,16 +98,17 @@ public class AsyncTeacherService { return createNewPtTeacherInfo(teacher, code); } // 检查字段是否有变化 - boolean isChanged = !Objects.equals(existing.getName(), teacher.getName()) - || !Objects.equals(existing.getPicture(), teacher.getPicture()) || - !Objects.equals(existing.getEmail(), teacher.getEmail()) || - !Objects.equals(existing.getPhone(), teacher.getPhone()) || - !Objects.equals(existing.getSubjectIds(), teacher.getSubjectIds()) || - !Objects.equals(existing.getRoles(), teacher.getRoles()) || - !Objects.equals(existing.getStatus(), teacher.getStatus()) || - !Objects.equals(existing.getJob(), teacher.getJob()) || - !Objects.equals(existing.getPeriodId(), teacher.getPeriodId()) - ; +// boolean isChanged = !Objects.equals(existing.getName(), teacher.getName()) +// || !Objects.equals(existing.getPicture(), teacher.getPicture()) || +// !Objects.equals(existing.getEmail(), teacher.getEmail()) || +// !Objects.equals(existing.getPhone(), teacher.getPhone()) || +// !Objects.equals(existing.getSubjectIds(), teacher.getSubjectIds()) || +// !Objects.equals(existing.getRoles(), teacher.getRoles()) || +// !Objects.equals(existing.getStatus(), teacher.getStatus()) || +// !Objects.equals(existing.getJob(), teacher.getJob()) || +// !Objects.equals(existing.getPeriodId(), teacher.getPeriodId()) +// ; + boolean isChanged = false; // 无变化则返回null,表示无需更新 if (!isChanged) { @@ -179,6 +183,7 @@ public class AsyncTeacherService { ptTeacherInfo.setGrade(teacher.getGrade() != null ? teacher.getGrade() : Collections.emptyList()); ptTeacherInfo.setPeriodId(teacher.getPeriodId() != null ? teacher.getPeriodId() : ""); ptTeacherInfo.setTitle(teacher.getTitle() != null ? teacher.getTitle() : ""); + ptTeacherInfo.setSource("ies"); // 版本号初始化 ptTeacherInfo.setVersion(1);