소스 검색

分班调整

dzx 9 달 전
부모
커밋
2dc3cb65ae

+ 1 - 17
src/main/java/com/xjrsoft/module/banding/controller/BandingTaskClassController.java

@@ -7,7 +7,6 @@ import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.annotation.XjrLog;
-import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.banding.dto.AddBandingTaskClassDto;
@@ -21,7 +20,6 @@ import com.xjrsoft.module.banding.dto.SureBandingTaskDto;
 import com.xjrsoft.module.banding.dto.UpdateBandingClassDto;
 import com.xjrsoft.module.banding.entity.BandingTask;
 import com.xjrsoft.module.banding.entity.BandingTaskClass;
-import com.xjrsoft.module.banding.entity.BandingTaskClassStudent;
 import com.xjrsoft.module.banding.service.IBandingTaskClassService;
 import com.xjrsoft.module.banding.service.IBandingTaskClassStudentService;
 import com.xjrsoft.module.banding.service.IBandingTaskService;
@@ -158,21 +156,7 @@ public class BandingTaskClassController {
     @SaCheckPermission("bandingTaskClass:delete")
     @XjrLog(value = "删除新生分班")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        if(!ids.isEmpty()){
-
-
-            List<BandingTaskClassStudent> list = classStudentService.list(
-                    new QueryWrapper<BandingTaskClassStudent>().lambda()
-                            .in(BandingTaskClassStudent::getBandingTaskClassId, ids)
-                            .eq(BandingTaskClassStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
-            );
-            if(!list.isEmpty()){
-                return RT.error("该班级下已分配学生,无法删除");
-            }
-        }
-
-        return RT.ok(bandingTaskClassService.delete(ids));
-
+        return RT.ok(bandingTaskClassService.deleteClass(ids));
     }
     @PostMapping("/import")
     @ApiOperation(value = "导入")

+ 2 - 0
src/main/java/com/xjrsoft/module/banding/service/IBandingTaskClassService.java

@@ -65,4 +65,6 @@ public interface IBandingTaskClassService extends MPJBaseService<BandingTaskClas
     Boolean updateByBaseClass(BaseClass baseClass);
 
     Boolean initClassByBaseClass(BandingTask bandingTask);
+
+    Boolean deleteClass(List<Long> ids);
 }

+ 36 - 0
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassServiceImpl.java

@@ -10,6 +10,7 @@ import com.xjrsoft.common.enums.DeleteMark;
 import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.enums.YesOrNoEnum;
 import com.xjrsoft.common.exception.MyException;
+import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.banding.dto.BandingTaskClassPageDto;
 import com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto;
@@ -227,6 +228,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 new QueryWrapper<BaseClass>().lambda()
                         .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
                         .eq(BaseClass::getGradeId, task.getGradeId())
+                        .eq(BaseClass::getEnrollType, task.getEnrollType())
         );
 
         Map<String, BaseClass> classMap = classList.stream().collect(Collectors.toMap(BaseClass::getName, x -> x));
@@ -320,6 +322,7 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
                 new QueryWrapper<BandingTask>().lambda()
                         .eq(BandingTask::getDeleteMark, DeleteMark.NODELETE.getCode())
                         .eq(BandingTask::getGradeId, baseClass.getGradeId())
+                        .eq(BandingTask::getEnrollType, baseClass.getEnrollType())
                         .orderByDesc(BandingTask::getId)
                         .eq(BandingTask::getStatus, 0)
         );
@@ -398,4 +401,37 @@ public class BandingTaskClassServiceImpl extends MPJBaseServiceImpl<BandingTaskC
         }
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean deleteClass(List<Long> ids) {
+        if(!ids.isEmpty()){
+            List<BandingTaskClassStudent> list = classStudentMapper.selectList(
+                    new QueryWrapper<BandingTaskClassStudent>().lambda()
+                            .in(BandingTaskClassStudent::getBandingTaskClassId, ids)
+                            .eq(BandingTaskClassStudent::getDeleteMark, DeleteMark.NODELETE.getCode())
+            );
+            if(!list.isEmpty()){
+                throw new MyException("该班级下已分配学生,无法删除");
+            }
+        }
+
+        List<BandingTaskClass> classList = this.listByIds(ids);
+        for (BandingTaskClass taskClass : classList) {
+
+            BandingTask bandingTask = bandingTaskMapper.selectById(taskClass.getBandingTaskId());
+            BaseClass baseClass = classMapper.selectOne(
+                    new QueryWrapper<BaseClass>().lambda()
+                            .eq(BaseClass::getDeleteMark, DeleteMark.NODELETE.getCode())
+                            .eq(BaseClass::getGradeId, bandingTask.getGradeId())
+                            .eq(BaseClass::getName, taskClass.getName())
+                            .eq(BaseClass::getIsGraduate, 1)
+                            .eq(BaseClass::getEnrollType, bandingTask.getEnrollType())
+            );
+
+            classMapper.deleteById(baseClass);
+            this.removeById(taskClass);
+        }
+        return true;
+    }
 }