dzx преди 8 месеца
родител
ревизия
78d41fc58c

+ 3 - 0
src/main/java/com/xjrsoft/module/banding/dto/ChangeClassDto.java

@@ -28,4 +28,7 @@ public class ChangeClassDto implements Serializable {
     @ApiModelProperty("是否手动分班(1:是 0:否)")
     private Integer isHandle = 0;
 
+    @ApiModelProperty("分班备注")
+    private String remarks;
+
 }

+ 1 - 0
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassStudentServiceImpl.java

@@ -195,6 +195,7 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
             for (BaseNewStudent student : list) {
                 student.setStatus(1);
                 student.setOperateMode(2);
+                student.setRemarks(dto.getRemarks());
                 updateList.add(student);
             }
             if(!updateList.isEmpty()){

+ 61 - 24
src/main/java/com/xjrsoft/module/student/service/impl/StudentReportRecordServiceImpl.java

@@ -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() {{