Quellcode durchsuchen

分班自动生成班级代码

dzx vor 6 Monaten
Ursprung
Commit
6951492718

+ 11 - 2
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskServiceImpl.java

@@ -35,9 +35,11 @@ import com.xjrsoft.module.banding.vo.BandingTaskClassSureListVo;
 import com.xjrsoft.module.banding.vo.BandingTaskPageVo;
 import com.xjrsoft.module.banding.vo.IdManyCountVo;
 import com.xjrsoft.module.base.entity.BaseClass;
+import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.entity.BaseMajorSet;
 import com.xjrsoft.module.base.mapper.BaseMajorSetMapper;
 import com.xjrsoft.module.base.service.IBaseClassService;
+import com.xjrsoft.module.base.service.IBaseGradeService;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.entity.UserRoleRelation;
 import com.xjrsoft.module.organization.service.IUserRoleRelationService;
@@ -97,7 +99,7 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
     private final IBaseStudentSchoolRollService schoolRollService;
     private final IBaseStudentService studentService;
     private final IBaseStudentFamilyService familyService;
-
+    private final IBaseGradeService gradeService;
     private final BaseMajorSetMapper majorSetMapper;
 
 
@@ -575,7 +577,6 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
         Map<Long, Integer> classBoy = classSure.stream().collect(Collectors.toMap(BandingTaskClassSureListVo::getId, BandingTaskClassSureListVo::getMaleCount));
         Map<Long, Integer> classGirl = classSure.stream().collect(Collectors.toMap(BandingTaskClassSureListVo::getId, BandingTaskClassSureListVo::getFemaleCount));
 
-
         //生成班级数据
         Map<Long, Long> classMap = new HashMap<>();
         Map<Long, Long> taskClassMajorMap = new HashMap<>();
@@ -583,6 +584,13 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
         List<Long> classIds = classStudents.stream().map(BandingTaskClassStudent::getBandingTaskClassId).collect(Collectors.toList());
         List<BandingTaskClass> classList = taskClassMapper.selectList(new QueryWrapper<BandingTaskClass>().lambda().in(BandingTaskClass::getId, classIds));
 
+        long maxCode = classService.count(
+                new QueryWrapper<BaseClass>().lambda()
+                        .eq(BaseClass::getGradeId, bandingTask.getGradeId())
+        );
+        BaseGrade baseGrade = gradeService.getById(bandingTask.getGradeId());
+        String gradeCode = baseGrade.getTitle().replace("年", "");
+
         Map<Long, Long> majorDeptMap = majorSetMapper.selectList(new QueryWrapper<BaseMajorSet>()).stream().collect(Collectors.toMap(BaseMajorSet::getId, BaseMajorSet::getDepartmentId));
         for (BandingTaskClass taskClass : classList) {
             BaseClass baseClass = new BaseClass() {{
@@ -595,6 +603,7 @@ public class BandingTaskServiceImpl extends MPJBaseServiceImpl<BandingTaskMapper
                 setDeleteMark(DeleteMark.NODELETE.getCode());
                 setEnrollType(bandingTask.getEnrollType());
                 setOrgId(majorDeptMap.get(taskClass.getMajorSetId()));
+                setCode(gradeCode + String.format("%03d", maxCode));
             }};
 
             classService.save(baseClass);