Procházet zdrojové kódy

新生分班确认时增加新生报到数据

dzx před 8 měsíci
rodič
revize
88d43dfe51

+ 15 - 0
src/main/java/com/xjrsoft/common/enums/EnrollTypeEnum.java

@@ -1,5 +1,8 @@
 package com.xjrsoft.common.enums;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * @description: 招生类型
  * @Author: SZS
@@ -19,6 +22,14 @@ public enum EnrollTypeEnum {
     final String code;
     final String value;
 
+    private static final Map<String, String> lookup = new HashMap<>();
+
+    static {
+        for (ArchivesStatusEnum s : ArchivesStatusEnum.values()) {
+            lookup.put(s.getCode(), s.getValue());
+        }
+    }
+
     public String getCode() {
         return this.code;
     }
@@ -31,4 +42,8 @@ public enum EnrollTypeEnum {
         this.code = code;
         this.value = message;
     }
+
+    public static String fromCode(String code) {
+        return lookup.get(code);
+    }
 }

+ 72 - 31
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskServiceImpl.java

@@ -11,6 +11,7 @@ import com.xjrsoft.common.constant.GlobalConstant;
 import com.xjrsoft.common.enums.ArchivesStatusEnum;
 import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.EnabledMark;
+import com.xjrsoft.common.enums.EnrollTypeEnum;
 import com.xjrsoft.common.enums.GenderDictionaryEnum;
 import com.xjrsoft.common.enums.RoleEnum;
 import com.xjrsoft.common.exception.MyException;
@@ -763,43 +764,83 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
             newStudentService.updateBatchById(updateList);
         }
 
-        //新增报到计划,如果有多个分班任务确认,需要保证试读报到计划只有一个
-        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, dto.getId())
-        );
-        if(plan == null){
-            plan = new StudentReportPlan() {{
-                setName(bandingTask.getName());
-                setCategory(2);
-                setSemesterId(semester.getId());
-                setBandingTaskId(dto.getId());
-                setCreateDate(new Date());
-                setCreateUserId(StpUtil.getLoginIdAsLong());
-            }};
+        //新增试读报到计划,如果有多个分班任务确认,需要保证试读报到计划只有一个
+        {
+            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, dto.getId())
+            );
+            if(plan == null){
+                BaseGrade grade = gradeService.getById(bandingTask.getGradeId());
+                plan = new StudentReportPlan() {{
+                    setCategory(2);
+                    setName(grade.getName() + EnrollTypeEnum.fromCode(bandingTask.getEnrollType()) + "试读报到");
+                    setSemesterId(semester.getId());
+                    setBandingTaskId(dto.getId());
+                    setCreateDate(new Date());
+                    setCreateUserId(StpUtil.getLoginIdAsLong());
+                }};
 
-            reportPlanService.save(plan);
-        }
+                reportPlanService.save(plan);
+            }
 
 
-        //将新生数据初始化到报到表中
-        for (BaseNewStudent student : updateList) {
-            StudentReportRecord record = new StudentReportRecord();
-            record.setCreateDate(new Date());
-            record.setCreateUserId(StpUtil.getLoginIdAsLong());
-            record.setUserId(student.getId());
-            record.setStudentReportPlanId(plan.getId());
-            record.setDeleteMark(DeleteMark.NODELETE.getCode());
-            record.setEnabledMark(EnabledMark.ENABLED.getCode());
-            reportRecordMapper.insert(record);
+            //将新生数据初始化到报到表中
+            for (BaseNewStudent student : updateList) {
+                StudentReportRecord record = new StudentReportRecord();
+                record.setCreateDate(new Date());
+                record.setCreateUserId(StpUtil.getLoginIdAsLong());
+                record.setUserId(student.getId());
+                record.setStudentReportPlanId(plan.getId());
+                record.setDeleteMark(DeleteMark.NODELETE.getCode());
+                record.setEnabledMark(EnabledMark.ENABLED.getCode());
+                reportRecordMapper.insert(record);
+            }
         }
 
+        //新增新生报到计划,如果有多个分班任务确认,需要保证试读报到计划只有一个
+        {
+            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, 3)
+                            .eq(StudentReportPlan::getBandingTaskId, dto.getId())
+            );
+            if(plan == null){
+                BaseGrade grade = gradeService.getById(bandingTask.getGradeId());
+                plan = new StudentReportPlan() {{
+                    setCategory(3);
+                    setName(grade.getName() + EnrollTypeEnum.fromCode(bandingTask.getEnrollType()) + "新生报到");
+                    setSemesterId(semester.getId());
+                    setBandingTaskId(dto.getId());
+                    setCreateDate(new Date());
+                    setCreateUserId(StpUtil.getLoginIdAsLong());
+                }};
+
+                reportPlanService.save(plan);
+            }
+
 
+            //将新生数据初始化到报到表中
+            for (BaseNewStudent student : updateList) {
+                StudentReportRecord record = new StudentReportRecord();
+                record.setCreateDate(new Date());
+                record.setCreateUserId(StpUtil.getLoginIdAsLong());
+                record.setUserId(student.getId());
+                record.setStudentReportPlanId(plan.getId());
+                record.setDeleteMark(DeleteMark.NODELETE.getCode());
+                record.setEnabledMark(EnabledMark.ENABLED.getCode());
+                reportRecordMapper.insert(record);
+            }
+        }
 
         bandingTask.setStatus(1);
         bandingTask.setModifyDate(new Date());