|
|
@@ -2,6 +2,8 @@ package com.xjrsoft.module.student.service.impl;
|
|
|
|
|
|
import cn.dev33.satoken.secure.BCrypt;
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
@@ -21,12 +23,16 @@ import com.xjrsoft.common.utils.LocalDateUtil;
|
|
|
import com.xjrsoft.common.utils.RedisUtil;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.config.CommonPropertiesConfig;
|
|
|
+import com.xjrsoft.module.banding.entity.BandingTask;
|
|
|
import com.xjrsoft.module.banding.entity.BandingTaskClass;
|
|
|
import com.xjrsoft.module.banding.entity.BandingTaskClassStudent;
|
|
|
import com.xjrsoft.module.banding.service.IBandingTaskClassService;
|
|
|
import com.xjrsoft.module.banding.service.IBandingTaskClassStudentService;
|
|
|
+import com.xjrsoft.module.banding.service.IBandingTaskService;
|
|
|
import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
+import com.xjrsoft.module.base.entity.BaseGrade;
|
|
|
import com.xjrsoft.module.base.mapper.BaseClassMapper;
|
|
|
+import com.xjrsoft.module.base.mapper.BaseGradeMapper;
|
|
|
import com.xjrsoft.module.organization.dto.GetUserByParamDto;
|
|
|
import com.xjrsoft.module.organization.entity.User;
|
|
|
import com.xjrsoft.module.organization.entity.UserRoleRelation;
|
|
|
@@ -63,6 +69,8 @@ import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
@@ -91,6 +99,8 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
|
|
|
private final RedisUtil redisUtil;
|
|
|
private final IBandingTaskClassStudentService taskClassStudentService;
|
|
|
private final IBandingTaskClassService taskClassService;
|
|
|
+ private final IBandingTaskService taskService;
|
|
|
+ private final BaseGradeMapper gradeMapper;
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -325,22 +335,49 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
|
|
|
record.setModifyUserId(StpUtil.getLoginIdAsLong());
|
|
|
record.setModifyDate(new Date());
|
|
|
this.updateById(record);
|
|
|
-
|
|
|
- //先查询是否已经存在这个班级,如果存在就更新,不存在就新增
|
|
|
- BaseClass baseClass = classMapper.selectOne(
|
|
|
- new MPJLambdaWrapper<BaseClass>()
|
|
|
- .select(BaseClass::getId)
|
|
|
- .select(BaseClass.class, x -> VoToColumnUtil.fieldsToColumns(BaseClass.class).contains(x.getProperty()))
|
|
|
- .innerJoin(BandingTaskClass.class, BandingTaskClass::getName, BaseClass::getName)
|
|
|
+ BandingTaskClass taskClass = taskClassService.getOne(
|
|
|
+ new MPJLambdaWrapper<BandingTaskClass>()
|
|
|
+ .select(BandingTaskClass::getId)
|
|
|
+ .select(BandingTaskClass.class, x -> VoToColumnUtil.fieldsToColumns(BandingTaskClass.class).contains(x.getProperty()))
|
|
|
.innerJoin(BandingTaskClassStudent.class, BandingTaskClassStudent::getBandingTaskClassId, BandingTaskClass::getId)
|
|
|
.eq(BandingTaskClassStudent::getNewStudentId, student.getId())
|
|
|
.eq(BandingTaskClassStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
.eq(BandingTaskClassStudent::getEnabledMark, EnabledMark.ENABLED.getCode())
|
|
|
.eq(BandingTaskClass::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
.eq(BandingTaskClass::getEnabledMark, EnabledMark.ENABLED.getCode())
|
|
|
- .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
- .eq(BaseClass::getEnabledMark, EnabledMark.ENABLED.getCode())
|
|
|
);
|
|
|
+
|
|
|
+ //先查询是否已经存在这个班级,如果存在就更新,不存在就新增
|
|
|
+ BaseClass baseClass = classMapper.selectById(taskClass.getBaseClassId());
|
|
|
+ if(baseClass == null){
|
|
|
+ BandingTask task = taskService.getById(taskClass.getBandingTaskId());
|
|
|
+ List<BaseClass> classList = classMapper.selectList(
|
|
|
+ new QueryWrapper<BaseClass>().lambda()
|
|
|
+ .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .eq(BaseClass::getGradeId, task.getGradeId())
|
|
|
+ .eq(BaseClass::getEnrollType, task.getEnrollType())
|
|
|
+ );
|
|
|
+ BaseGrade baseGrade = gradeMapper.selectById(task.getGradeId());
|
|
|
+ List<BaseClass> classCodes = classList.stream().filter(x -> x.getCode() != null).collect(Collectors.toList());
|
|
|
+ Collections.sort(classCodes, Comparator.comparing(BaseClass::getCode));
|
|
|
+ String classCode = null;
|
|
|
+ if(!classCodes.isEmpty()){
|
|
|
+ classCode = classCodes.get(0).getCode();
|
|
|
+ }
|
|
|
+
|
|
|
+ baseClass = new BaseClass();
|
|
|
+ BeanUtil.copyProperties(taskClass, baseClass);
|
|
|
+ baseClass.setCreateDate(new Date());
|
|
|
+ baseClass.setCreateUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ int i = 0;
|
|
|
+ if(NumberUtil.isNumber(classCode)){
|
|
|
+ i = Integer.parseInt(classCode.trim().substring(classCode.length() - 3));
|
|
|
+ i ++;
|
|
|
+ baseClass.setCode(baseGrade.getTitle().replace("年", "") + String.format("%03d", i));
|
|
|
+ }
|
|
|
+
|
|
|
+ classMapper.insert(baseClass);
|
|
|
+ }
|
|
|
//根据身份证号查询这个学生是否存在
|
|
|
User user = userService.getOne(
|
|
|
new QueryWrapper<User>().lambda()
|
|
|
@@ -386,22 +423,22 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
|
|
|
}};
|
|
|
studentService.save(baseStudent);
|
|
|
|
|
|
- BaseStudentSchoolRoll schoolRoll = new BaseStudentSchoolRoll() {{
|
|
|
- setUserId(xjrUser.getId());
|
|
|
- if(student.getScore() != null){
|
|
|
- setGraduatedScore(student.getScore().doubleValue());
|
|
|
- }
|
|
|
+ BaseStudentSchoolRoll schoolRoll = new BaseStudentSchoolRoll();
|
|
|
+ schoolRoll.setUserId(xjrUser.getId());
|
|
|
+ if(student.getScore() != null){
|
|
|
+ schoolRoll.setGraduatedScore(student.getScore().doubleValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ schoolRoll.setGraduatedUniversity(student.getGraduateSchool());
|
|
|
+ schoolRoll.setClassId(baseClass.getId());
|
|
|
+ schoolRoll.setMajorSetId(baseClass.getMajorSetId());
|
|
|
+ schoolRoll.setStduyStatus(student.getStduyStatus());
|
|
|
+ schoolRoll.setEnrollType(baseClass.getEnrollType());
|
|
|
+ schoolRoll.setStudentSource(student.getSource());
|
|
|
+ schoolRoll.setGradeId(baseClass.getGradeId());
|
|
|
+ schoolRoll.setArchivesStatus(ArchivesStatusEnum.FB2901.getCode());
|
|
|
+ schoolRoll.setCreateDate(now);
|
|
|
|
|
|
- setGraduatedUniversity(student.getGraduateSchool());
|
|
|
- setClassId(baseClass.getId());
|
|
|
- setMajorSetId(baseClass.getMajorSetId());
|
|
|
- setStduyStatus(student.getStduyStatus());
|
|
|
- setEnrollType(baseClass.getEnrollType());
|
|
|
- setStudentSource(student.getSource());
|
|
|
- setGradeId(baseClass.getGradeId());
|
|
|
- setArchivesStatus(ArchivesStatusEnum.FB2901.getCode());
|
|
|
- setCreateDate(now);
|
|
|
- }};
|
|
|
rollService.save(schoolRoll);
|
|
|
|
|
|
BaseStudentFamily studentFamily = new BaseStudentFamily() {{
|