update 调整数据更新操作

develop
hhb@hotmail.com 2 days ago
parent 94db10d2f4
commit fc7c95682c

@ -230,12 +230,12 @@ public class TeacherServiceImpl implements TeacherService {
//asyncTeacherService.syncSavePtTeacherInfos(teachersList); // 假设改为同步方法
// 优化查询与匹配
Set<String> teacherIds = teachersList.stream()
/* Set<String> teacherIds = teachersList.stream()
.map(GpTeacherVo::getId)
.collect(Collectors.toSet());
.collect(Collectors.toSet());*/
String code = String.format(PK.PTTEACHER, teacherDto.getCode());
List<PtTeacherInfo> ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherIds, teacherDto.getCode(),code);
List<PtTeacherInfo> ptTeacherInfos = ptTeacherRepository.findAllTeacher(teacherDto.getCode(),code);
// Map<String, PtTeacherInfo> 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);
}

@ -45,4 +45,5 @@ public class PtTeacherInfo extends BaseItem {
//该基础信息是否有效
public Integer state = 1;
public Integer version = 1;
public String source;
}

@ -23,11 +23,14 @@ public class GpTeacherVo {
public Integer age ;
public Integer teachingAge ;
public String status ;
//表示数据是否有效
public Integer state;
public List<String> grade;
public String periodId ;
public Long joinTime ;
public List<String> identity;
public String title ;
public String source;
public Integer version = 1;
}

@ -14,11 +14,11 @@ import java.util.List;
public interface PtTeacherRepository extends CosmosRepository<PtTeacherInfo, String> {
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<PtTeacherInfo> findByIdCodePairs(@Param("pairs") List<IdCodePair> pairs);
@Query(value = "SELECT * FROM c WHERE c.pk = 'PtTeacher' and c.id in (@ids) and c.school = @school and c.code = @code ")
List<PtTeacherInfo> findAllTeacher(Collection<String> 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<PtTeacherInfo> findAllTeacher(String school,String code);
@Query(value = "SELECT * FROM c WHERE c.pk = 'PtTeacher' and c.code = @code and c.state = 1")
List<PtTeacherInfo> findByCode(String code);
}

@ -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);

Loading…
Cancel
Save