|
@@ -11,24 +11,19 @@ import com.xjrsoft.common.enums.ArchivesStatusEnum;
|
|
|
import com.xjrsoft.common.enums.DeleteMark;
|
|
|
import com.xjrsoft.common.enums.EnabledMark;
|
|
|
import com.xjrsoft.common.enums.RoleEnum;
|
|
|
-import com.xjrsoft.common.exception.MyException;
|
|
|
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.dto.BandingTaskClassStudentPageDto;
|
|
|
import com.xjrsoft.module.banding.dto.ChangeClassDto;
|
|
|
import com.xjrsoft.module.banding.dto.StudentDto;
|
|
|
-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.mapper.BandingTaskClassMapper;
|
|
|
import com.xjrsoft.module.banding.mapper.BandingTaskClassStudentMapper;
|
|
|
import com.xjrsoft.module.banding.mapper.BandingTaskMapper;
|
|
|
import com.xjrsoft.module.banding.service.IBandingTaskClassStudentService;
|
|
|
-import com.xjrsoft.module.banding.vo.BandingTaskClassSureListVo;
|
|
|
import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
-import com.xjrsoft.module.base.entity.BaseMajorSet;
|
|
|
import com.xjrsoft.module.base.entity.BaseSemester;
|
|
|
import com.xjrsoft.module.base.mapper.BaseMajorSetMapper;
|
|
|
import com.xjrsoft.module.base.service.IBaseClassService;
|
|
@@ -38,7 +33,6 @@ import com.xjrsoft.module.organization.entity.UserRoleRelation;
|
|
|
import com.xjrsoft.module.organization.service.IUserRoleRelationService;
|
|
|
import com.xjrsoft.module.organization.service.IUserService;
|
|
|
import com.xjrsoft.module.student.dto.BaseNewStudentPageDto;
|
|
|
-import com.xjrsoft.module.student.entity.BaseClassMajorSet;
|
|
|
import com.xjrsoft.module.student.entity.BaseNewStudent;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudent;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudentFamily;
|
|
@@ -58,8 +52,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
@@ -123,74 +117,60 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
|
|
|
.in(BandingTaskClassStudent::getNewStudentId, dto.getNewStudentIds())
|
|
|
);
|
|
|
|
|
|
- BandingTaskClass taskClass = taskClassMapper.selectById(dto.getBandingTaskClassId());
|
|
|
-
|
|
|
-
|
|
|
- BaseSemester semester = semesterService.getCurrentSemester();
|
|
|
- StudentReportPlan plan = reportPlanService.getOne(
|
|
|
- new QueryWrapper<StudentReportPlan>().lambda()
|
|
|
- .eq(StudentReportPlan::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
- .eq(StudentReportPlan::getEnabledMark, EnabledMark.ENABLED.getCode())
|
|
|
- .eq(StudentReportPlan::getSemesterId, semester.getId())
|
|
|
- .eq(StudentReportPlan::getCategory, 2)
|
|
|
- .eq(StudentReportPlan::getBandingTaskId, taskClass.getBandingTaskId())
|
|
|
+ List<BaseNewStudent> list = newStudentService.list(
|
|
|
+ new QueryWrapper<BaseNewStudent>().lambda()
|
|
|
+ .in(BaseNewStudent::getId, dto.getNewStudentIds())
|
|
|
);
|
|
|
- if(plan == null){
|
|
|
- plan = new StudentReportPlan();
|
|
|
- plan.setStatus(0);
|
|
|
- plan.setCategory(2);
|
|
|
- plan.setBandingTaskId(taskClass.getBandingTaskId());
|
|
|
- plan.setDeleteMark(DeleteMark.NODELETE.getCode());
|
|
|
- plan.setEnabledMark(EnabledMark.ENABLED.getCode());
|
|
|
- plan.setCreateDate(new Date());
|
|
|
- plan.setCreateUserId(StpUtil.getLoginIdAsLong());
|
|
|
- reportPlanService.save(plan);
|
|
|
- }
|
|
|
|
|
|
List<BandingTaskClassStudent> dataList = new ArrayList<>();
|
|
|
long createUserId = StpUtil.getLoginIdAsLong();
|
|
|
|
|
|
- List<StudentReportRecord> insertList = new ArrayList<>();
|
|
|
- for (Long newStudentId : dto.getNewStudentIds()) {
|
|
|
- dataList.add(
|
|
|
- new BandingTaskClassStudent(){{
|
|
|
- setCreateDate(new Date());
|
|
|
- setNewStudentId(newStudentId);
|
|
|
- setBandingTaskClassId(dto.getBandingTaskClassId());
|
|
|
- setCreateUserId(createUserId);
|
|
|
- setStatus(0);
|
|
|
- if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
|
|
|
- setStatus(1);
|
|
|
- }
|
|
|
- }}
|
|
|
+ if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
|
|
|
+ BaseClass aClass = classService.getById(dto.getBandingTaskClassId());
|
|
|
+
|
|
|
+ BandingTaskClass taskClass = taskClassMapper.selectOne(
|
|
|
+ new QueryWrapper<BandingTaskClass>().lambda()
|
|
|
+ .eq(BandingTaskClass::getBaseClassId, aClass.getId())
|
|
|
);
|
|
|
- if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
|
|
|
- StudentReportRecord record = new StudentReportRecord();
|
|
|
- record.setCreateDate(new Date());
|
|
|
- record.setCreateUserId(StpUtil.getLoginIdAsLong());
|
|
|
- record.setUserId(newStudentId);
|
|
|
- record.setStudentReportPlanId(plan.getId());
|
|
|
- record.setDeleteMark(DeleteMark.NODELETE.getCode());
|
|
|
- record.setEnabledMark(EnabledMark.ENABLED.getCode());
|
|
|
- insertList.add(record);
|
|
|
+
|
|
|
+ for (Long newStudentId : dto.getNewStudentIds()) {
|
|
|
+ dataList.add(
|
|
|
+ new BandingTaskClassStudent(){{
|
|
|
+ setCreateDate(new Date());
|
|
|
+ setNewStudentId(newStudentId);
|
|
|
+ setBandingTaskClassId(taskClass.getId());
|
|
|
+ setCreateUserId(createUserId);
|
|
|
+ setStatus(0);
|
|
|
+ if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
|
|
|
+ setStatus(1);
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ );
|
|
|
}
|
|
|
- }
|
|
|
- if(!dataList.isEmpty()){
|
|
|
- this.saveBatch(dataList);
|
|
|
- }
|
|
|
+
|
|
|
+ BaseSemester semester = semesterService.getCurrentSemester();
|
|
|
+ List<StudentReportPlan> planList = reportPlanService.list(
|
|
|
+ new QueryWrapper<StudentReportPlan>().lambda()
|
|
|
+ .eq(StudentReportPlan::getDeleteMark, DeleteMark.NODELETE.getCode())
|
|
|
+ .eq(StudentReportPlan::getEnabledMark, EnabledMark.ENABLED.getCode())
|
|
|
+ .eq(StudentReportPlan::getSemesterId, semester.getId())
|
|
|
+ .in(StudentReportPlan::getCategory, Arrays.asList(2, 3))
|
|
|
+ );
|
|
|
|
|
|
- if(!insertList.isEmpty()){
|
|
|
- for (StudentReportRecord studentReportRecord : insertList) {
|
|
|
- reportRecordMapper.insert(studentReportRecord);
|
|
|
+ for (StudentReportPlan plan : planList) {
|
|
|
+ for (Long newStudentId : dto.getNewStudentIds()) {
|
|
|
+ StudentReportRecord record = new StudentReportRecord();
|
|
|
+ record.setCreateDate(new Date());
|
|
|
+ record.setCreateUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ record.setUserId(newStudentId);
|
|
|
+ record.setStudentReportPlanId(plan.getId());
|
|
|
+ record.setDeleteMark(DeleteMark.NODELETE.getCode());
|
|
|
+ record.setEnabledMark(EnabledMark.ENABLED.getCode());
|
|
|
+ reportRecordMapper.insert(record);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- List<Long> studentIds = dataList.stream().map(BandingTaskClassStudent::getNewStudentId).collect(Collectors.toList());
|
|
|
- List<BaseNewStudent> list = newStudentService.list(
|
|
|
- new QueryWrapper<BaseNewStudent>().lambda()
|
|
|
- .in(BaseNewStudent::getId, studentIds)
|
|
|
- );
|
|
|
- if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
|
|
|
+
|
|
|
List<BaseNewStudent> updateList = new ArrayList<>();
|
|
|
for (BaseNewStudent student : list) {
|
|
|
student.setStatus(1);
|
|
@@ -202,64 +182,6 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
|
|
|
newStudentService.updateBatchById(updateList);
|
|
|
}
|
|
|
{
|
|
|
- Date createDate = new Date();
|
|
|
- BandingTask bandingTask = bandingTaskMapper.selectById(taskClass.getBandingTaskId());
|
|
|
- List<BandingTaskClassSureListVo> classSure = taskClassMapper.getClassSure(new BandingTaskClassStudentPageDto() {{
|
|
|
- setBandingTaskId(taskClass.getBandingTaskId());
|
|
|
- }});
|
|
|
-
|
|
|
- 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::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());
|
|
|
- setCreateDate(new Date());
|
|
|
- }};
|
|
|
-
|
|
|
- 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);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- classMap.put(taskClass.getId(), baseClass.getId());
|
|
|
- taskClassMajorMap.put(taskClass.getId(), taskClass.getMajorSetId());
|
|
|
-
|
|
|
|
|
|
* 新增学生数据
|
|
|
* 1、新增用户xjr_user,需要先查询用户信息是否已经存在
|
|
@@ -282,10 +204,9 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
|
|
|
userSet.put(student.getCredentialNumber(), student.getId());
|
|
|
userDeleteMarkMap.put(student.getCredentialNumber(), student.getDeleteMark());
|
|
|
}
|
|
|
- Map<Long, Long> studentClassRelation = dataList.stream().collect(Collectors.toMap(BandingTaskClassStudent::getNewStudentId, BandingTaskClassStudent::getBandingTaskClassId));
|
|
|
for (BaseNewStudent student : updateList) {
|
|
|
if(userSet.containsKey(student.getCredentialNumber())){
|
|
|
- schoolRollService.updateStudentClass(classMap.get(studentClassRelation.get(student.getId())), userSet.get(student.getCredentialNumber()));
|
|
|
+ schoolRollService.updateStudentClass(dto.getBandingTaskClassId(), userSet.get(student.getCredentialNumber()));
|
|
|
Integer deleteMark = userDeleteMarkMap.get(student.getCredentialNumber());
|
|
|
if(deleteMark != null && deleteMark == 1){
|
|
|
userService.recoveryStudentInfo(userSet.get(student.getCredentialNumber()));
|
|
@@ -334,12 +255,12 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
|
|
|
}
|
|
|
|
|
|
setGraduatedUniversity(student.getGraduateSchool());
|
|
|
- setClassId(classMap.get(studentClassRelation.get(student.getId())));
|
|
|
- setMajorSetId(taskClassMajorMap.get(studentClassRelation.get(student.getId())));
|
|
|
+ setClassId(dto.getBandingTaskClassId());
|
|
|
+ setMajorSetId(aClass.getMajorSetId());
|
|
|
setStduyStatus(student.getStduyStatus());
|
|
|
- setEnrollType(bandingTask.getEnrollType());
|
|
|
+ setEnrollType(aClass.getEnrollType());
|
|
|
setStudentSource(student.getSource());
|
|
|
- setGradeId(bandingTask.getGradeId());
|
|
|
+ setGradeId(aClass.getGradeId());
|
|
|
setArchivesStatus(ArchivesStatusEnum.FB2901.getCode());
|
|
|
setCreateDate(now);
|
|
|
}};
|
|
@@ -370,6 +291,24 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
|
|
|
if(!updateList.isEmpty()){
|
|
|
newStudentService.updateBatchById(updateList);
|
|
|
}
|
|
|
+ for (Long newStudentId : dto.getNewStudentIds()) {
|
|
|
+ dataList.add(
|
|
|
+ new BandingTaskClassStudent(){{
|
|
|
+ setCreateDate(new Date());
|
|
|
+ setNewStudentId(newStudentId);
|
|
|
+ setBandingTaskClassId(dto.getBandingTaskClassId());
|
|
|
+ setCreateUserId(createUserId);
|
|
|
+ setStatus(0);
|
|
|
+ if(dto.getIsHandle() != null && dto.getIsHandle() == 1){
|
|
|
+ setStatus(1);
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!dataList.isEmpty()){
|
|
|
+ this.saveBatch(dataList);
|
|
|
}
|
|
|
return true;
|
|
|
}
|