|
@@ -52,6 +52,7 @@ import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -97,6 +98,7 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public Boolean changeClass(ChangeClassDto dto) {
|
|
|
this.baseMapper.delete(
|
|
@@ -137,132 +139,152 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
|
|
|
if(!updateList.isEmpty()){
|
|
|
newStudentService.updateBatchById(updateList);
|
|
|
}
|
|
|
- createStudentData(taskClass.getBandingTaskId(), dataList, updateList);
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
+ {
|
|
|
+ Date createDate = new Date();
|
|
|
+ BandingTask bandingTask = bandingTaskMapper.selectById(taskClass.getBandingTaskId());
|
|
|
+ List<BandingTaskClassSureListVo> classSure = taskClassMapper.getClassSure(new BandingTaskClassStudentPageDto() {{
|
|
|
+ setBandingTaskId(taskClass.getBandingTaskId());
|
|
|
+ }});
|
|
|
|
|
|
- void createStudentData(Long badingTaskId,List<BandingTaskClassStudent> classStudents, List<BaseNewStudent> updateList){
|
|
|
- Date createDate = new Date();
|
|
|
- BandingTask bandingTask = bandingTaskMapper.selectById(badingTaskId);
|
|
|
- List<BandingTaskClassSureListVo> classSure = taskClassMapper.getClassSure(new BandingTaskClassStudentPageDto() {{
|
|
|
- setBandingTaskId(badingTaskId);
|
|
|
- }});
|
|
|
+ Map<Long, Integer> classTotal = classSure.stream().collect(Collectors.toMap(BandingTaskClassSureListVo::getId, BandingTaskClassSureListVo::getNumber));
|
|
|
+ Map<Long, Integer> classBoy = classSure.stream().collect(Collectors.toMap(BandingTaskClassSureListVo::getId, BandingTaskClassSureListVo::getMaleCount));
|
|
|
+ Map<Long, Integer> classGirl = classSure.stream().collect(Collectors.toMap(BandingTaskClassSureListVo::getId, BandingTaskClassSureListVo::getFemaleCount));
|
|
|
|
|
|
- Map<Long, Integer> classTotal = classSure.stream().collect(Collectors.toMap(BandingTaskClassSureListVo::getId, BandingTaskClassSureListVo::getNumber));
|
|
|
- Map<Long, Integer> classBoy = classSure.stream().collect(Collectors.toMap(BandingTaskClassSureListVo::getId, BandingTaskClassSureListVo::getMaleCount));
|
|
|
- Map<Long, Integer> classGirl = classSure.stream().collect(Collectors.toMap(BandingTaskClassSureListVo::getId, BandingTaskClassSureListVo::getFemaleCount));
|
|
|
|
|
|
+ //生成班级数据
|
|
|
+ Map<Long, Long> classMap = new HashMap<>();
|
|
|
+ Map<Long, Long> taskClassMajorMap = new HashMap<>();
|
|
|
+ //查询出需要新增的班级信息
|
|
|
+ Map<Long, Long> majorDeptMap = majorSetMapper.selectList(
|
|
|
+ new QueryWrapper<BaseMajorSet>()
|
|
|
+ ).stream().collect(Collectors.toMap(BaseMajorSet::getId, BaseMajorSet::getDepartmentId));
|
|
|
+ //先查询是否已经存在这个班级,如果存在就更新,不存在就新增
|
|
|
+ BaseClass baseClass = classService.getOne(
|
|
|
+ new QueryWrapper<BaseClass>().lambda()
|
|
|
+ .eq(BaseClass::getName, taskClass.getName())
|
|
|
+ .eq(BaseClass::getClassroomId, taskClass.getClassroomId())
|
|
|
+ .eq(BaseClass::getTeacherId, taskClass.getTeacherId())
|
|
|
+ .eq(BaseClass::getMajorSetId, taskClass.getMajorSetId())
|
|
|
+ .eq(BaseClass::getGradeId, bandingTask.getGradeId())
|
|
|
+ .eq(BaseClass::getEnrollType, bandingTask.getEnrollType())
|
|
|
+ );
|
|
|
+ if(baseClass == null){
|
|
|
+ baseClass = new BaseClass() {{
|
|
|
+ setName(taskClass.getName());
|
|
|
+ setClassroomId(taskClass.getClassroomId());
|
|
|
+ setTeacherId(taskClass.getTeacherId());
|
|
|
+ setIsGraduate(1);
|
|
|
+ setMajorSetId(taskClass.getMajorSetId());
|
|
|
+ setOrgId(majorDeptMap.get(taskClass.getMajorSetId()));
|
|
|
+ setIsOrderClass(taskClass.getIsOrderClass()==null?0:taskClass.getIsOrderClass().intValue());
|
|
|
+ setGradeId(bandingTask.getGradeId());
|
|
|
+ setDeleteMark(DeleteMark.NODELETE.getCode());
|
|
|
+ setEnrollType(bandingTask.getEnrollType());
|
|
|
+ }};
|
|
|
|
|
|
- //生成班级数据
|
|
|
- Map<Long, Long> classMap = new HashMap<>();
|
|
|
- Map<Long, Long> taskClassMajorMap = new HashMap<>();
|
|
|
- //查询出需要新增的班级信息
|
|
|
- List<Long> classIds = classStudents.stream().map(BandingTaskClassStudent::getBandingTaskClassId).collect(Collectors.toList());
|
|
|
- List<BandingTaskClass> classList = taskClassMapper.selectList(new QueryWrapper<BandingTaskClass>().lambda().in(BandingTaskClass::getId, classIds));
|
|
|
- Map<Long, Long> majorDeptMap = majorSetMapper.selectList(new QueryWrapper<BaseMajorSet>()).stream().collect(Collectors.toMap(BaseMajorSet::getId, BaseMajorSet::getDepartmentId));
|
|
|
- for (BandingTaskClass taskClass : classList) {
|
|
|
- BaseClass baseClass = new BaseClass() {{
|
|
|
- setName(taskClass.getName());
|
|
|
- setClassroomId(taskClass.getClassroomId());
|
|
|
- setTeacherId(taskClass.getTeacherId());
|
|
|
- setIsGraduate(1);
|
|
|
- setOrgId(majorDeptMap.get(taskClass.getMajorSetId()));
|
|
|
- setIsOrderClass(taskClass.getIsOrderClass()==null?0:taskClass.getIsOrderClass().intValue());
|
|
|
- setGradeId(bandingTask.getGradeId());
|
|
|
- setDeleteMark(DeleteMark.NODELETE.getCode());
|
|
|
- setEnrollType(bandingTask.getEnrollType());
|
|
|
- }};
|
|
|
+ classService.save(baseClass);
|
|
|
|
|
|
- classService.save(baseClass);
|
|
|
+ BaseClassMajorSet majorSet = new BaseClassMajorSet() {{
|
|
|
+ setCreateDate(createDate);
|
|
|
+ setMajorSetId(taskClass.getMajorSetId());
|
|
|
+ setPlanTotalStudent(taskClass.getNumber());
|
|
|
+ setTotalStudent(classTotal.get(taskClass.getId()));
|
|
|
+ setBoyNum(classBoy.get(taskClass.getId()));
|
|
|
+ setGirlNum(classGirl.get(taskClass.getId()));
|
|
|
+ }};
|
|
|
+ majorSet.setClassId(baseClass.getId());
|
|
|
+ classMajorSetMapper.insert(majorSet);
|
|
|
+ }
|
|
|
|
|
|
- BaseClassMajorSet majorSet = new BaseClassMajorSet() {{
|
|
|
- setCreateDate(createDate);
|
|
|
- setMajorSetId(taskClass.getMajorSetId());
|
|
|
- setClassId(baseClass.getId());
|
|
|
- setPlanTotalStudent(taskClass.getNumber());
|
|
|
- setTotalStudent(classTotal.get(taskClass.getId()));
|
|
|
- setBoyNum(classBoy.get(taskClass.getId()));
|
|
|
- setGirlNum(classGirl.get(taskClass.getId()));
|
|
|
- }};
|
|
|
- classMajorSetMapper.insert(majorSet);
|
|
|
|
|
|
- classMap.put(taskClass.getId(), baseClass.getId());
|
|
|
- taskClassMajorMap.put(taskClass.getId(), taskClass.getMajorSetId());
|
|
|
- }
|
|
|
+ classMap.put(taskClass.getId(), baseClass.getId());
|
|
|
+ taskClassMajorMap.put(taskClass.getId(), taskClass.getMajorSetId());
|
|
|
|
|
|
- /**
|
|
|
- * 新增学生数据
|
|
|
- * 1、新增用户xjr_user
|
|
|
- * 2、新增用户与角色的关系xjr_user_role_relation
|
|
|
- * 3、新增学生基本信息base_student
|
|
|
- * 4、新增学籍信息表base_student_school_roll
|
|
|
- * 5、新增家庭信息表base_student_family
|
|
|
- */
|
|
|
- LocalDateTime now = LocalDateTime.now();
|
|
|
- Map<Long, Long> studentClassRelation = classStudents.stream().collect(Collectors.toMap(BandingTaskClassStudent::getNewStudentId, BandingTaskClassStudent::getBandingTaskClassId));
|
|
|
- for (BaseNewStudent student : updateList) {
|
|
|
- LocalDate birthDate = getBirthDate(student.getCredentialNumber());
|
|
|
- User xjrUser = new User() {{
|
|
|
- setCreateDate(now);
|
|
|
- setPassword(BCrypt.hashpw(propertiesConfig.getDefaultPassword(), BCrypt.gensalt()));
|
|
|
- setName(student.getName());
|
|
|
- setUserName(student.getCredentialNumber());
|
|
|
- setCredentialNumber(student.getCredentialNumber());
|
|
|
- setCredentialType("ZZLS10007");
|
|
|
- setMobile(student.getMobile());
|
|
|
- setEnabledMark(EnabledMark.DISABLED.getCode());
|
|
|
- setGender(student.getGender());
|
|
|
- setIsChangePassword(1);
|
|
|
- setBirthDate(birthDate.atStartOfDay());
|
|
|
- }};
|
|
|
- userService.save(xjrUser);
|
|
|
+ /**
|
|
|
+ * 新增学生数据
|
|
|
+ * 1、新增用户xjr_user
|
|
|
+ * 2、新增用户与角色的关系xjr_user_role_relation
|
|
|
+ * 3、新增学生基本信息base_student
|
|
|
+ * 4、新增学籍信息表base_student_school_roll
|
|
|
+ * 5、新增家庭信息表base_student_family
|
|
|
+ */
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ List<String> idNumbers = updateList.stream().map(BaseNewStudent::getCredentialNumber).collect(Collectors.toList());
|
|
|
+ List<User> students = userService.list(new QueryWrapper<User>().lambda().in(User::getCredentialNumber, idNumbers));
|
|
|
+ Set<String> userSet = students.stream().map(User::getCredentialNumber).collect(Collectors.toSet());
|
|
|
+ Map<Long, Long> studentClassRelation = dataList.stream().collect(Collectors.toMap(BandingTaskClassStudent::getNewStudentId, BandingTaskClassStudent::getBandingTaskClassId));
|
|
|
+ for (BaseNewStudent student : updateList) {
|
|
|
+ if(userSet.contains(student.getCredentialNumber())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ LocalDate birthDate = getBirthDate(student.getCredentialNumber());
|
|
|
+ User xjrUser = new User() {{
|
|
|
+ setCreateDate(now);
|
|
|
+ setPassword(BCrypt.hashpw(propertiesConfig.getDefaultPassword(), BCrypt.gensalt()));
|
|
|
+ setName(student.getName());
|
|
|
+ setUserName(student.getCredentialNumber());
|
|
|
+ setCredentialNumber(student.getCredentialNumber());
|
|
|
+ setCredentialType("ZZLS10007");
|
|
|
+ setMobile(student.getMobile());
|
|
|
+ setEnabledMark(EnabledMark.DISABLED.getCode());
|
|
|
+ setGender(student.getGender());
|
|
|
+ setIsChangePassword(1);
|
|
|
+ setBirthDate(birthDate.atStartOfDay());
|
|
|
+ }};
|
|
|
+ userService.save(xjrUser);
|
|
|
|
|
|
- UserRoleRelation userRoleRelation = new UserRoleRelation() {{
|
|
|
- setRoleId(RoleEnum.STUDENT.getCode());
|
|
|
- setUserId(xjrUser.getId());
|
|
|
- }};
|
|
|
- roleRelationService.save(userRoleRelation);
|
|
|
+ UserRoleRelation userRoleRelation = new UserRoleRelation() {{
|
|
|
+ setRoleId(RoleEnum.STUDENT.getCode());
|
|
|
+ setUserId(xjrUser.getId());
|
|
|
+ }};
|
|
|
+ roleRelationService.save(userRoleRelation);
|
|
|
|
|
|
- BaseStudent baseStudent = new BaseStudent() {{
|
|
|
- setUserId(xjrUser.getId());
|
|
|
- setCreateDate(now);
|
|
|
- setStudentId(student.getCredentialNumber());
|
|
|
- if(student.getHeight() != null){
|
|
|
- setHeight(student.getHeight().doubleValue());
|
|
|
- }
|
|
|
- if(student.getWeight() != null){
|
|
|
- setWeight(student.getWeight().doubleValue());
|
|
|
- }
|
|
|
- }};
|
|
|
- studentService.save(baseStudent);
|
|
|
+ BaseStudent baseStudent = new BaseStudent() {{
|
|
|
+ setUserId(xjrUser.getId());
|
|
|
+ setCreateDate(now);
|
|
|
+ setStudentId(student.getCredentialNumber());
|
|
|
+ if(student.getHeight() != null){
|
|
|
+ setHeight(student.getHeight().doubleValue());
|
|
|
+ }
|
|
|
+ if(student.getWeight() != null){
|
|
|
+ setWeight(student.getWeight().doubleValue());
|
|
|
+ }
|
|
|
+ }};
|
|
|
+ studentService.save(baseStudent);
|
|
|
|
|
|
- BaseStudentSchoolRoll schoolRoll = new BaseStudentSchoolRoll() {{
|
|
|
- setUserId(xjrUser.getId());
|
|
|
- if(student.getScore() != null){
|
|
|
- setGraduatedScore(student.getScore().doubleValue());
|
|
|
- }
|
|
|
+ BaseStudentSchoolRoll schoolRoll = new BaseStudentSchoolRoll() {{
|
|
|
+ setUserId(xjrUser.getId());
|
|
|
+ if(student.getScore() != null){
|
|
|
+ setGraduatedScore(student.getScore().doubleValue());
|
|
|
+ }
|
|
|
|
|
|
- setGraduatedUniversity(student.getGraduateSchool());
|
|
|
- setClassId(classMap.get(studentClassRelation.get(student.getId())));
|
|
|
- setMajorSetId(taskClassMajorMap.get(studentClassRelation.get(student.getId())));
|
|
|
- setStduyStatus(student.getStduyStatus());
|
|
|
- setEnrollType(bandingTask.getEnrollType());
|
|
|
- setStudentSource(student.getSource());
|
|
|
- setGradeId(bandingTask.getGradeId());
|
|
|
- setArchivesStatus(ArchivesStatusEnum.FB2901.getCode());
|
|
|
- setCreateDate(now);
|
|
|
- }};
|
|
|
- schoolRollService.save(schoolRoll);
|
|
|
+ setGraduatedUniversity(student.getGraduateSchool());
|
|
|
+ setClassId(classMap.get(studentClassRelation.get(student.getId())));
|
|
|
+ setMajorSetId(taskClassMajorMap.get(studentClassRelation.get(student.getId())));
|
|
|
+ setStduyStatus(student.getStduyStatus());
|
|
|
+ setEnrollType(bandingTask.getEnrollType());
|
|
|
+ setStudentSource(student.getSource());
|
|
|
+ setGradeId(bandingTask.getGradeId());
|
|
|
+ setArchivesStatus(ArchivesStatusEnum.FB2901.getCode());
|
|
|
+ setCreateDate(now);
|
|
|
+ }};
|
|
|
+ schoolRollService.save(schoolRoll);
|
|
|
|
|
|
- BaseStudentFamily studentFamily = new BaseStudentFamily() {{
|
|
|
- setCreateDate(now);
|
|
|
- setUserId(xjrUser.getId());
|
|
|
- setTelephone(student.getFamilyMobile());
|
|
|
- setAddress(student.getFamilyAddress());
|
|
|
- }};
|
|
|
- familyService.save(studentFamily);
|
|
|
+ BaseStudentFamily studentFamily = new BaseStudentFamily() {{
|
|
|
+ setCreateDate(now);
|
|
|
+ setUserId(xjrUser.getId());
|
|
|
+ setTelephone(student.getFamilyMobile());
|
|
|
+ setAddress(student.getFamilyAddress());
|
|
|
+ }};
|
|
|
+ familyService.save(studentFamily);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ void createStudentData(Long badingTaskId,List<BandingTaskClassStudent> classStudents, List<BaseNewStudent> updateList){
|
|
|
+
|
|
|
}
|
|
|
|
|
|
LocalDate getBirthDate(String idCardNumber){
|