Sfoglia il codice sorgente

新生分班调整

dzx 8 mesi fa
parent
commit
4b8acd52f0

+ 3 - 0
src/main/java/com/xjrsoft/module/banding/entity/BandingTaskClass.java

@@ -124,4 +124,7 @@ public class BandingTaskClass implements Serializable {
 
     @ApiModelProperty("是否锁定(0:否 1:是)")
     private Integer status;
+
+    @ApiModelProperty("班级id(base_class)")
+    private Long baseClassId;
 }

+ 46 - 41
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassServiceImpl.java

@@ -34,14 +34,11 @@ import com.xjrsoft.module.base.service.IBaseClassroomService;
 import com.xjrsoft.module.base.service.IBaseMajorSetService;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.service.IUserService;
-import com.xjrsoft.module.student.dto.StudentReportRecordPageDto;
 import com.xjrsoft.module.student.dto.StudentTryReadingReportPageDto;
 import com.xjrsoft.module.student.entity.EnrollmentPlan;
 import com.xjrsoft.module.student.entity.StudentReportPlan;
 import com.xjrsoft.module.student.mapper.EnrollmentPlanMapper;
-import com.xjrsoft.module.student.mapper.StudentReportPlanMapper;
 import com.xjrsoft.module.student.mapper.StudentReportRecordMapper;
-import com.xjrsoft.module.student.service.IEnrollmentPlanService;
 import com.xjrsoft.module.student.service.IStudentReportPlanService;
 import com.xjrsoft.module.student.vo.StudentReportRecordPlanPageVo;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
@@ -249,9 +246,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                         .eq(BaseClass::getEnrollType, task.getEnrollType())
         );
 
-        Map<String, BaseClass> classMap = classList.stream().collect(Collectors.toMap(BaseClass::getName, x -> x));
-        List<BaseClass> updateClassList = new ArrayList<>();//修改班级
-        List<BaseClass> insertClassList = new ArrayList<>();//修改班级
+        Map<Long, BaseClass> classMap = classList.stream().collect(Collectors.toMap(BaseClass::getId, x -> x));
 
         List<BaseMajorSet> majorSetList = majorSetService.list(
                 new QueryWrapper<BaseMajorSet>().lambda()
@@ -272,29 +267,50 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 }
             }
 
-            BandingTaskClass taskClass = BeanUtil.toBean(dto, BandingTaskClass.class);
-            if(taskClass.getId() != null){
-                taskClass.setModifyDate(new Date());
-                if(taskClass.getSortCode() == null){
-                    updNullList.add(taskClass);
+            if(dto.getId() != null){
+                //修改
+                BandingTaskClass sourceObj = this.getById(dto.getId());
+                BeanUtil.copyProperties(dto, sourceObj);
+                sourceObj.setModifyDate(new Date());
+
+                if(sourceObj.getBaseClassId() != null){
+                    BaseClass baseClass = classMap.get(sourceObj.getBaseClassId());
+                    baseClass.setName(sourceObj.getName());
+                    baseClass.setClassType(sourceObj.getClassType());
+                    baseClass.setTeacherId(sourceObj.getTeacherId());
+                    baseClass.setMajorSetId(sourceObj.getMajorSetId());
+                    baseClass.setClassroomId(sourceObj.getClassroomId());
+                    baseClass.setIsOrderClass(sourceObj.getIsOrderClass());
+                    baseClass.setOrgId(majorDeptMap.get(sourceObj.getMajorSetId()));
+                    baseClass.setEnrollType(task.getEnrollType());
+                    classMapper.updateById(baseClass);
                 }else{
-                    updList.add(taskClass);
+                    BaseClass baseClass = new BaseClass();
+                    baseClass.setClassType(sourceObj.getClassType());
+                    baseClass.setTeacherId(sourceObj.getTeacherId());
+                    baseClass.setMajorSetId(sourceObj.getMajorSetId());
+                    baseClass.setClassroomId(sourceObj.getClassroomId());
+                    baseClass.setIsOrderClass(sourceObj.getIsOrderClass());
+                    baseClass.setOrgId(majorDeptMap.get(sourceObj.getMajorSetId()));
+                    baseClass.setName(sourceObj.getName());
+                    baseClass.setGradeId(task.getGradeId());
+                    baseClass.setEnrollType(task.getEnrollType());
+                    baseClass.setIsGraduate(1);
+                    baseClass.setCreateUserId(StpUtil.getLoginIdAsLong());
+                    baseClass.setCreateDate(new Date());
+                    classMapper.insert(baseClass);
+                    sourceObj.setBaseClassId(baseClass.getId());
+                }
+                if(sourceObj.getSortCode() == null){
+                    updNullList.add(sourceObj);
+                }else{
+                    updList.add(sourceObj);
                 }
             }else{
+                //新增
+                BandingTaskClass taskClass = BeanUtil.toBean(dto, BandingTaskClass.class);
                 taskClass.setCreateDate(new Date());
-                insList.add(taskClass);
-            }
-            if(classMap.containsKey(taskClass.getName())){
-                BaseClass baseClass = classMap.get(taskClass.getName());
-                baseClass.setClassType(taskClass.getClassType());
-                baseClass.setTeacherId(taskClass.getTeacherId());
-                baseClass.setMajorSetId(taskClass.getMajorSetId());
-                baseClass.setClassroomId(taskClass.getClassroomId());
-                baseClass.setIsOrderClass(taskClass.getIsOrderClass());
-                baseClass.setOrgId(majorDeptMap.get(taskClass.getMajorSetId()));
-                baseClass.setEnrollType(task.getEnrollType());
-                updateClassList.add(baseClass);
-            }else{
+
                 BaseClass baseClass = new BaseClass();
                 baseClass.setClassType(taskClass.getClassType());
                 baseClass.setTeacherId(taskClass.getTeacherId());
@@ -308,7 +324,10 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 baseClass.setIsGraduate(1);
                 baseClass.setCreateUserId(StpUtil.getLoginIdAsLong());
                 baseClass.setCreateDate(new Date());
-                insertClassList.add(baseClass);
+                classMapper.insert(baseClass);
+
+                taskClass.setBaseClassId(baseClass.getId());
+                insList.add(taskClass);
             }
         }
         if(!errorList.isEmpty()){
@@ -319,16 +338,6 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
             this.updateNull(updNullList);
         }
 
-        if(!insertClassList.isEmpty()){
-            for (BaseClass baseClass : insertClassList) {
-                classMapper.insert(baseClass);
-            }
-        }
-        if(!updateClassList.isEmpty()){
-            for (BaseClass baseClass : updateClassList) {
-                classMapper.updateById(baseClass);
-            }
-        }
 
         this.saveBatch(insList);
         return this.updateBatchById(updList);
@@ -355,12 +364,8 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 new MPJLambdaWrapper<BandingTaskClass>()
                         .select(BandingTaskClass::getId)
                         .select(BandingTaskClass.class, x -> VoToColumnUtil.fieldsToColumns(BandingTaskClass.class).contains(x.getProperty()))
-                        .innerJoin(BandingTask.class, BandingTask::getId, BandingTaskClass::getBandingTaskId)
                         .eq(BandingTaskClass::getDeleteMark, DeleteMark.NODELETE.getCode())
-                        .eq(BandingTaskClass::getName, baseClass.getName())
-                        .eq(BandingTask::getGradeId, baseClass.getGradeId())
-                        .eq(BandingTask::getEnrollType, baseClass.getEnrollType())
-                        .eq(BandingTask::getStatus, 0)
+                        .eq(BandingTaskClass::getBaseClassId, baseClass.getId())
         );
         if(one == null){
             BandingTask task = bandingTasks.get(0);

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

@@ -76,6 +76,8 @@ 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(
@@ -84,6 +86,7 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
                         .eq(StudentReportPlan::getEnabledMark, EnabledMark.ENABLED.getCode())
                         .eq(StudentReportPlan::getSemesterId, semester.getId())
                         .eq(StudentReportPlan::getCategory, 2)
+                        .eq(StudentReportPlan::getBandingTaskId, taskClass.getBandingTaskId())
         );
 
         List<BandingTaskClassStudent> dataList = new ArrayList<>();

+ 1 - 2
src/main/java/com/xjrsoft/module/job/WfCourseAdjustTask.java

@@ -53,8 +53,7 @@ public class WfCourseAdjustTask {
                     " AND t1.course_name = t2.course_name" +
                     " AND t1.site_id = t2.site_id" +
                     " AND t1.teacher_name = t2.teacher_name";
-            long count = SqlRunnerAdapter.db().selectCount(sql);
-            if(count > 0){
+            if(!SqlRunnerAdapter.db().selectList(sql).isEmpty()){
                 continue;
             }
             courseTableService.adjustCourse(wfCourseAdjust);

+ 3 - 4
src/main/java/com/xjrsoft/module/student/controller/StudentTryReadingReportController.java

@@ -184,7 +184,7 @@ public class StudentTryReadingReportController {
     @PostMapping("/change-class-batch")
     @ApiOperation(value = "批量调整班级")
     @SaCheckPermission("tryreadingreport:change-class")
-    @XjrLog(value = "调整班级")
+    @XjrLog(value = "批量调整班级")
     public RT<Boolean> changeClassBatch(@Valid @RequestBody StudentReportChangeClassBatchDto dto){
         boolean isSuccess = recordService.changeClassBatch(dto);
         return RT.ok(isSuccess);
@@ -438,12 +438,11 @@ public class StudentTryReadingReportController {
                         .orderByDesc(BaseGrade::getTitle)
         );
         List<ItemCountVo> gradeDataList = new ArrayList<>();
-        for (int i = 0; i < gradeList.size(); i ++){
+        for (int i = 0; i < 3; i ++){
             BaseGrade baseGrade = gradeList.get(i);
 
             List<EnrollmentPlan> enrollmentPlans = enrollmentPlanService.list(
                     new QueryWrapper<EnrollmentPlan>().lambda()
-                            .eq(EnrollmentPlan::getEnrollType, dto.getEnrollType())
                             .eq(EnrollmentPlan::getGradeId, baseGrade.getId())
                             .eq(EnrollmentPlan::getDeleteMark, DeleteMark.NODELETE.getCode())
                             .eq(EnrollmentPlan::getEnabledMark, EnabledMark.ENABLED.getCode())
@@ -454,7 +453,7 @@ public class StudentTryReadingReportController {
                 StudentTryReadingReportPageDto gradeRecordPageDto = new StudentTryReadingReportPageDto();
                 gradeRecordPageDto.setEnrollmentPlanId(enrollmentPlan.getId());
                 gradeRecordPageDto.setIsReport(1);
-                gradeCount += recordService.getTryReadingList(recordPageDto).size();
+                gradeCount += recordService.getTryReadingList(gradeRecordPageDto).size();
             }
             ItemCountVo itemCountVo = new ItemCountVo();
             itemCountVo.setItem(baseGrade.getName());

+ 4 - 0
src/main/resources/sqlScript/20250310_sql.sql

@@ -8,3 +8,7 @@ ALTER TABLE `student_report_plan`
   
 ALTER TABLE `student_report_plan`   
   ADD COLUMN `banding_task_id` BIGINT NULL   COMMENT '分班任务id';
+
+
+ALTER TABLE `banding_task_class`   
+  ADD COLUMN `base_class_id` BIGINT NULL   COMMENT '班级id(base_class)' AFTER `status`;