Ver Fonte

1、新生分班添加班级是自动生成班级代码
2、学生退学规则添加禁用账号逻辑

dzx há 8 meses atrás
pai
commit
29d32b7fb2

+ 18 - 1
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassServiceImpl.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.banding.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -28,8 +29,10 @@ import com.xjrsoft.module.banding.vo.BandingTaskClassStudentListVo;
 import com.xjrsoft.module.banding.vo.BandingTaskClassSureListVo;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.entity.BaseClassroom;
+import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.entity.BaseMajorSet;
 import com.xjrsoft.module.base.mapper.BaseClassMapper;
+import com.xjrsoft.module.base.mapper.BaseGradeMapper;
 import com.xjrsoft.module.base.service.IBaseClassroomService;
 import com.xjrsoft.module.base.service.IBaseMajorSetService;
 import com.xjrsoft.module.organization.entity.User;
@@ -52,6 +55,8 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -78,6 +83,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
     private final StudentReportRecordMapper reportRecordMapper;
     private final EnrollmentPlanMapper enrollmentPlanMapper;
     private final IStudentReportPlanService reportPlanService;
+    private final BaseGradeMapper gradeMapper;
 
 
     @Override
@@ -245,6 +251,8 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                         .eq(BaseClass::getGradeId, task.getGradeId())
                         .eq(BaseClass::getEnrollType, task.getEnrollType())
         );
+        Collections.sort(classList, Comparator.nullsLast(Comparator.comparing(BaseClass::getCode)));
+        String classCode = classList.get(0).getCode();
 
         Map<Long, BaseClass> classMap = classList.stream().collect(Collectors.toMap(BaseClass::getId, x -> x));
 
@@ -252,8 +260,13 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 new QueryWrapper<BaseMajorSet>().lambda()
                         .eq(BaseMajorSet::getDeleteMark, DeleteMark.NODELETE.getCode())
         );
-        Map<Long, Long> majorDeptMap = majorSetList.stream().collect(Collectors.toMap(BaseMajorSet::getId, BaseMajorSet::getDepartmentId));
 
+        Map<Long, Long> majorDeptMap = majorSetList.stream().collect(Collectors.toMap(BaseMajorSet::getId, BaseMajorSet::getDepartmentId));
+        BaseGrade baseGrade = gradeMapper.selectById(task.getGradeId());
+        int i = 0;
+        if(NumberUtil.isNumber(classCode)){
+            i = Integer.parseInt(classCode.trim().substring(classCode.length() - 3));
+        }
         for (UpdateBandingClassDto dto : dtoList) {
             if(dto.getSortCode() != null){
                 List<BandingTaskClass> list = this.list(
@@ -285,6 +298,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                     baseClass.setEnrollType(task.getEnrollType());
                     classMapper.updateById(baseClass);
                 }else{
+                    i ++;
                     BaseClass baseClass = new BaseClass();
                     baseClass.setClassType(sourceObj.getClassType());
                     baseClass.setTeacherId(sourceObj.getTeacherId());
@@ -298,6 +312,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                     baseClass.setIsGraduate(1);
                     baseClass.setCreateUserId(StpUtil.getLoginIdAsLong());
                     baseClass.setCreateDate(new Date());
+                    baseClass.setCode(baseGrade.getTitle().replace("年", "") + String.format("%03d", i));
                     classMapper.insert(baseClass);
                     sourceObj.setBaseClassId(baseClass.getId());
                 }
@@ -308,6 +323,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 }
             }else{
                 //新增
+                i ++;
                 BandingTaskClass taskClass = BeanUtil.toBean(dto, BandingTaskClass.class);
                 taskClass.setCreateDate(new Date());
 
@@ -324,6 +340,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 baseClass.setIsGraduate(1);
                 baseClass.setCreateUserId(StpUtil.getLoginIdAsLong());
                 baseClass.setCreateDate(new Date());
+                baseClass.setCode(baseGrade.getTitle().replace("年", "") + String.format("%03d", i));
                 classMapper.insert(baseClass);
 
                 taskClass.setBaseClassId(baseClass.getId());

+ 1 - 0
src/main/java/com/xjrsoft/module/liteflow/node/StudentDropOutNode.java

@@ -113,6 +113,7 @@ public class StudentDropOutNode extends NodeComponent {
 
                         schoolRoll.setArchivesStatus(ArchivesStatusEnum.FB2904.getCode());
                         studentSchoolRollService.updateById(schoolRoll);
+                        studentSchoolRollService.disableStudent(schoolRoll.getUserId());
                     });
                 }
             });