Quellcode durchsuchen

新生分班调整

dzx vor 6 Monaten
Ursprung
Commit
afd93cb389

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

@@ -88,4 +88,7 @@ public class BandingTaskClassStudentSure implements Serializable {
     @ApiModelProperty("状态(0:未确认 1:已确认)")
     private Integer status;
 
+    @ApiModelProperty("就读方式")
+    private String stduyStatus;
+
 }

+ 7 - 13
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskServiceImpl.java

@@ -860,7 +860,7 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
             }
         }
         //确认分班时,将已经分班的数据固化下来,后续查询也需要进行调整
-        lockData(bandingTask);
+        lockData(bandingTask.getId(), classStudents, list);
 
         bandingTask.setStatus(1);
         bandingTask.setModifyDate(new Date());
@@ -895,20 +895,14 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
     /**
      * 确认后,将分班数的数据情况固化
      */
-    void lockData(BandingTask task){
-        taskClassStudentSureMapper.deleteByTaskId(task.getId());
-        List<BandingTaskClassStudent> studentList = classStudentService.list(
-                new MPJLambdaWrapper<BandingTaskClassStudent>()
-                        .select(BandingTaskClassStudent::getId)
-                        .select(BandingTaskClassStudent.class, x -> VoToColumnUtil.fieldsToColumns(BandingTaskClassStudent.class).contains(x.getProperty()))
-                        .innerJoin(BandingTaskClass.class, BandingTaskClass::getId, BandingTaskClassStudent::getBandingTaskClassId)
-                        .eq(BandingTaskClassStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
-                        .eq(BandingTaskClass::getDeleteMark, DeleteMark.NODELETE.getCode())
-                        .eq(BandingTaskClass::getBandingTaskId, task.getId())
-        );
+    void lockData(Long taskId, List<BandingTaskClassStudent> classStudents, List<BaseNewStudent> newStudents){
+        taskClassStudentSureMapper.deleteByTaskId(taskId);
+
+        Map<Long, String> newStudentMaps = newStudents.stream().collect(Collectors.toMap(BaseNewStudent::getId, BaseNewStudent::getStduyStatus));
 
-        for (BandingTaskClassStudent bandingTaskClassStudent : studentList) {
+        for (BandingTaskClassStudent bandingTaskClassStudent : classStudents) {
             BandingTaskClassStudentSure studentSure = BeanUtil.toBean(bandingTaskClassStudent, BandingTaskClassStudentSure.class);
+            studentSure.setStduyStatus(newStudentMaps.get(bandingTaskClassStudent.getNewStudentId()));
             taskClassStudentSureMapper.insert(studentSure);
         }
     }

+ 1 - 1
src/main/resources/mapper/banding/BandingTaskClassMapper.xml

@@ -205,7 +205,7 @@
         LEFT JOIN xjr_dictionary_detail t4 ON t1.gender = t4.code
         LEFT JOIN base_major_set t5 ON t1.first_ambition = t5.id
         LEFT JOIN base_major_set t6 ON t1.second_ambition = t6.id
-        LEFT JOIN xjr_dictionary_detail t7 ON t1.stduy_status = t7.code
+        LEFT JOIN xjr_dictionary_detail t7 ON t2.stduy_status = t7.code
         LEFT JOIN xjr_user t8 ON t3.teacher_id = t8.id
         INNER JOIN enrollment_plan t9 ON t1.enrollment_plan_id = t9.id
         WHERE t1.delete_mark = 0 and t1.is_can_banding = 1