Преглед на файлове

新生报到逻辑调整

dzx преди 6 месеца
родител
ревизия
88d5b9b108

+ 6 - 2
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassStudentServiceImpl.java

@@ -393,7 +393,7 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
         newStudentService.updateBatchById(studentList);
 
         //修改班级信息
-        Map<Long, Long> bandingTaskClassMap = syncStudentDataList.stream().collect(Collectors.toMap(SyncStudentDataListVo::getNewStudentId, SyncStudentDataListVo::getBandingTaskClassId));
+        Map<Long, Long> bandingTaskClassMap = syncStudentDataList.stream().filter(x -> x.getBandingTaskClassId() != null).collect(Collectors.toMap(SyncStudentDataListVo::getNewStudentId, SyncStudentDataListVo::getBandingTaskClassId));
 
         List<BandingTaskClass> taskClassList = taskClassMapper.selectList(
                 new QueryWrapper<BandingTaskClass>().lambda()
@@ -403,8 +403,12 @@ public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<Bandi
 
         List<BandingTaskClassStudent> insertList = new ArrayList<>();
         for (BaseNewStudent student : studentList) {
+            Long bandingTaskClassId = bandingTaskClassMap.get(student.getId());
+            if(bandingTaskClassId == null){
+                continue;
+            }
             insertList.add(new BandingTaskClassStudent(){{
-                setBandingTaskClassId(taskClassMap.get(bandingTaskClassMap.get(student.getId())));
+                setBandingTaskClassId(taskClassMap.get(bandingTaskClassId));
                 setNewStudentId(student.getId());
                 setCreateDate(new Date());
                 setStatus(1);

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

@@ -210,7 +210,7 @@
         INNER JOIN base_new_student t2 ON t1.user_id = t2.id
         INNER JOIN xjr_user t3 ON t2.credential_number = t3.credential_number
         INNER JOIN base_student_school_roll t4 ON t3.id = t4.user_id
-        INNER JOIN banding_task_class t5 ON t4.class_id = t5.base_class_id
+        LEFT JOIN banding_task_class t5 ON t4.class_id = t5.base_class_id
         LEFT JOIN banding_task_class_student t6 ON t2.id = t6.new_student_id AND t6.delete_mark = 0
         WHERE t1.delete_mark = 0 AND t1.student_report_plan_id = #{studentReportPlanId}
     </select>