Browse Source

feat:新增字典管理批量删除(专业、班级、学生)
fix:学生列表查询新增学院专业级联条件

caozixuan 3 years ago
parent
commit
f582c46b57

+ 3 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicClazzController.java

@@ -26,6 +26,7 @@ import javax.validation.constraints.Min;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description: 基础班级管理前端控制器
  * @Description: 基础班级管理前端控制器
@@ -68,8 +69,8 @@ public class BasicClazzController {
     @ApiOperation(value = "班级基本信息管理-批量删除(逻辑)")
     @ApiOperation(value = "班级基本信息管理-批量删除(逻辑)")
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
-    public Result deleteBasicClazz(@ApiParam(value = "选择的要删除的班级id集合", required = true) @RequestParam List<Long> idList) {
-        return ResultUtil.ok(basicClazzService.removeBasicClazzBatch(idList));
+    public Result deleteBasicClazz(@ApiParam(value = "选择的要删除的班级id集合", required = true) @RequestParam List<String> idList) {
+        return ResultUtil.ok(basicClazzService.removeBasicClazzBatch(idList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList())));
     }
     }
 
 
     @ApiOperation(value = "班级基本信息管理-批量导入(异步)")
     @ApiOperation(value = "班级基本信息管理-批量导入(异步)")

+ 9 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMajorController.java

@@ -5,6 +5,7 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.teachcloud.common.bean.params.BasicMajorParams;
 import com.qmth.teachcloud.common.bean.params.BasicMajorParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicMajorService;
 import com.qmth.teachcloud.common.service.BasicMajorService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
@@ -18,6 +19,8 @@ import javax.annotation.Resource;
 import javax.validation.Valid;
 import javax.validation.Valid;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import javax.validation.constraints.Min;
+import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -58,7 +61,11 @@ public class BasicMajorController {
     @ApiOperation(value = "专业管理-删除(逻辑)")
     @ApiOperation(value = "专业管理-删除(逻辑)")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
-    public Result deleteBasicMajor(@ApiParam(value = "专业id", required = true) @RequestParam String id) {
-        return ResultUtil.ok(basicMajorService.deleteBasicMajorById(SystemConstant.convertIdToLong(id)));
+    public Result deleteBasicMajor(@ApiParam(value = "专业id", required = true) @RequestParam List<String> idList) {
+        if (idList.size() == 0){
+            throw ExceptionResultEnum.ERROR.exception("请选择要删除的专业");
+        }
+        List<Long> newIdList = idList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
+        return ResultUtil.ok(basicMajorService.deleteBasicMajorByIdList(newIdList));
     }
     }
 }
 }

+ 35 - 11
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicStudentController.java

@@ -4,6 +4,7 @@ package com.qmth.distributed.print.api;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.teachcloud.common.bean.params.BasicStudentParams;
 import com.qmth.teachcloud.common.bean.params.BasicStudentParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncStudentDataImportService;
 import com.qmth.distributed.print.business.templete.execute.AsyncStudentDataImportService;
@@ -25,6 +26,7 @@ import javax.validation.Valid;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import javax.validation.constraints.Min;
 import java.util.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -52,17 +54,18 @@ public class BasicStudentController {
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result findBasicStudentList(@ApiParam(value = "查询参数(学生学号或姓名)") @RequestParam(required = false) String queryParams,
     public Result findBasicStudentList(@ApiParam(value = "查询参数(学生学号或姓名)") @RequestParam(required = false) String queryParams,
                                        @ApiParam(value = "校区主键") @RequestParam(required = false) String campusId,
                                        @ApiParam(value = "校区主键") @RequestParam(required = false) String campusId,
+                                       @ApiParam(value = "学院主键") @RequestParam(required = false) String collegeId,
+                                       @ApiParam(value = "专业主键") @RequestParam(required = false) String majorId,
                                        @ApiParam(value = "班级主键") @RequestParam(required = false) String clazzId,
                                        @ApiParam(value = "班级主键") @RequestParam(required = false) String clazzId,
-                                      @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
-                                      @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+                                       @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                                       @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         Set<Long> clazzIdSet = new HashSet<>();
         Set<Long> clazzIdSet = new HashSet<>();
-        if (SystemConstant.strNotNull(clazzId)){
+        if (SystemConstant.strNotNull(clazzId)) {
             clazzIdSet.add(SystemConstant.convertIdToLong(clazzId));
             clazzIdSet.add(SystemConstant.convertIdToLong(clazzId));
-        }else {
+        } else {
             clazzIdSet = null;
             clazzIdSet = null;
         }
         }
-
-        return ResultUtil.ok(basicStudentService.basicStudentPage(queryParams,SystemConstant.convertIdToLong(campusId),clazzIdSet, pageNumber, pageSize));
+        return ResultUtil.ok(basicStudentService.basicStudentPage(queryParams, SystemConstant.convertIdToLong(campusId), SystemConstant.convertIdToLong(collegeId), SystemConstant.convertIdToLong(majorId), clazzIdSet, pageNumber, pageSize));
     }
     }
 
 
     @ApiOperation(value = "学生基本信息管理-新增/编辑")
     @ApiOperation(value = "学生基本信息管理-新增/编辑")
@@ -73,14 +76,35 @@ public class BasicStudentController {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
         }
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(basicStudentService.saveBasicStudent(basicStudentParams,sysUser));
+        return ResultUtil.ok(basicStudentService.saveBasicStudent(basicStudentParams, sysUser));
     }
     }
 
 
-    @ApiOperation(value = "学生基本信息管理-批量删除(逻辑)")
+    @ApiOperation(value = "学生基本信息管理-批量删除(物理)")
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
     @RequestMapping(value = "/delete_batch", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
-    public Result deleteBasicStudent(@ApiParam(value = "选择的要删除的学生id集合",required = true) @RequestParam List<Long> idList) {
-        return ResultUtil.ok(basicStudentService.removeBasicStudentBatch(idList));
+    public Result deleteBasicStudent(@ApiParam(value = "选择的要删除的学生id集合", required = true) @RequestParam List<String> idList) {
+        return ResultUtil.ok(basicStudentService.removeBasicStudentBatch(idList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList())));
+    }
+
+    @ApiOperation(value = "学生基本信息管理-根据条件删除(物理)")
+    @RequestMapping(value = "/delete_by_condition", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
+    public Result deleteBasicStudentByCondition(@ApiParam(value = "查询参数(学生学号或姓名)") @RequestParam(required = false) String queryParams,
+                                                @ApiParam(value = "校区主键") @RequestParam(required = false) String campusId,
+                                                @ApiParam(value = "学院主键") @RequestParam(required = false) String collegeId,
+                                                @ApiParam(value = "专业主键") @RequestParam(required = false) String majorId,
+                                                @ApiParam(value = "班级主键") @RequestParam(required = false) String clazzId) {
+        Set<Long> clazzIdSet = new HashSet<>();
+        if (SystemConstant.strNotNull(clazzId)) {
+            clazzIdSet.add(SystemConstant.convertIdToLong(clazzId));
+        } else {
+            clazzIdSet = null;
+        }
+        if (!SystemConstant.strNotNull(queryParams) && !SystemConstant.strNotNull(campusId) && !SystemConstant.strNotNull(collegeId) && !SystemConstant.strNotNull(majorId) && clazzIdSet == null) {
+            throw ExceptionResultEnum.ERROR.exception("请选择要删除的条件");
+        }
+        return ResultUtil.ok(basicStudentService.removeBasicStudentByCondition(queryParams, SystemConstant.convertIdToLong(campusId),
+                SystemConstant.convertIdToLong(collegeId), SystemConstant.convertIdToLong(majorId), clazzIdSet));
     }
     }
 
 
     @ApiOperation(value = "学生基本信息管理-批量导入(异步)")
     @ApiOperation(value = "学生基本信息管理-批量导入(异步)")
@@ -89,7 +113,7 @@ public class BasicStudentController {
     public Result basicStudentImportAysnc(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws Exception {
     public Result basicStudentImportAysnc(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws Exception {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.STUDENT_IMPORT);
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.STUDENT_IMPORT);
-        map.put(SystemConstant.SYS_USER,sysUser);
+        map.put(SystemConstant.SYS_USER, sysUser);
 
 
         asyncStudentDataImportService.importTask(map);
         asyncStudentDataImportService.importTask(map);
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -804,7 +804,7 @@ public class ExamTaskController {
                                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
                                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         Set<Long> classIds = Arrays.stream(classId.split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
         Set<Long> classIds = Arrays.stream(classId.split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
-        return ResultUtil.ok(basicStudentService.basicStudentPage(null, null, classIds, pageNumber, pageSize));
+        return ResultUtil.ok(basicStudentService.basicStudentPage(null, null, null,null,classIds, pageNumber, pageSize));
     }
     }
 
 
     /**
     /**

+ 30 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -416,4 +416,34 @@ public class SystemConstant {
         Optional.ofNullable(flowSchoolCodeMap).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置学校流程code"));
         Optional.ofNullable(flowSchoolCodeMap).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置学校流程code"));
         return flowSchoolCodeMap;
         return flowSchoolCodeMap;
     }
     }
+
+    /**
+     * 验证参数任意一个为空
+     *
+     * @param objects 要非空校验的参数
+     */
+    public static boolean isOneNull(Object... objects) {
+        boolean result = false;
+        for (Object object : objects) {
+            if (Objects.isNull(object)) {
+                result = true;
+            } else if (object instanceof String) {
+                String param = String.valueOf(object);
+                if (param.length() == 0 || param.equals("null")) {
+                    result = true;
+                }
+            } else if (object instanceof Long) {
+                Long param = SystemConstant.convertIdToLong(String.valueOf(object));
+                if (param == null || param == 0) {
+                    result = true;
+                }
+            } else if (object instanceof Integer) {
+                int param = Integer.parseInt(String.valueOf(object));
+                if (param == 0) {
+                    result = true;
+                }
+            }
+        }
+        return result;
+    }
 }
 }

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicStudentMapper.java

@@ -28,6 +28,8 @@ public interface BasicStudentMapper extends BaseMapper<BasicStudent> {
                                                    @Param("queryParams") String queryParams,
                                                    @Param("queryParams") String queryParams,
                                                    @Param("schoolId") Long schoolId,
                                                    @Param("schoolId") Long schoolId,
                                                    @Param("campusId") Long campusId,
                                                    @Param("campusId") Long campusId,
+                                                   @Param("collegeId") Long collegeId,
+                                                   @Param("majorId") Long majorId,
                                                    @Param("clazzIdList") Set<Long> clazzIdList,
                                                    @Param("clazzIdList") Set<Long> clazzIdList,
                                                    @Param("orgIds") Set<Long> orgIds);
                                                    @Param("orgIds") Set<Long> orgIds);
 }
 }

+ 4 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicMajorService.java

@@ -8,6 +8,8 @@ import com.qmth.teachcloud.common.bean.result.BasicMajorResult;
 import com.qmth.teachcloud.common.entity.BasicMajor;
 import com.qmth.teachcloud.common.entity.BasicMajor;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 专业字典表 服务类
  * 专业字典表 服务类
@@ -37,8 +39,8 @@ public interface BasicMajorService extends IService<BasicMajor> {
 
 
     /**
     /**
      * 专业删除
      * 专业删除
-     * @param id 专业主键
+     * @param idList 专业主键id集合
      * @return 是否删除成功
      * @return 是否删除成功
      */
      */
-    boolean deleteBasicMajorById(Long id);
+    boolean deleteBasicMajorByIdList(List<Long> idList);
 }
 }

+ 25 - 7
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicStudentService.java

@@ -27,39 +27,57 @@ public interface BasicStudentService extends IService<BasicStudent> {
     IPage<BasicStudent> listPage(Page<BasicStudent> page, String classId);
     IPage<BasicStudent> listPage(Page<BasicStudent> page, String classId);
 
 
     List<TaskPrintClassDto> listByClass(Long schoolId, Set<String> stringList);
     List<TaskPrintClassDto> listByClass(Long schoolId, Set<String> stringList);
+
     /**
     /**
      * 学生基础信息分页查询
      * 学生基础信息分页查询
+     *
      * @param queryParams 查询参数(学生学号或姓名)
      * @param queryParams 查询参数(学生学号或姓名)
-     * @param campusId 校区主键
+     * @param campusId    校区主键
+     * @param collegeId   校区主键
+     * @param majorId     专业主键
      * @param clazzIdList 班级主键集合
      * @param clazzIdList 班级主键集合
-     * @param pageNumber 分页页码
-     * @param pageSize 分页容量
+     * @param pageNumber  分页页码
+     * @param pageSize    分页容量
      * @return 分页结果
      * @return 分页结果
      */
      */
-    IPage<BasicStudentResult> basicStudentPage(String queryParams,Long campusId, Set<Long> clazzIdList, int pageNumber,int pageSize);
+    IPage<BasicStudentResult> basicStudentPage(String queryParams, Long campusId, Long collegeId, Long majorId, Set<Long> clazzIdList, int pageNumber, int pageSize);
 
 
     /**
     /**
      * 新增/编辑 学生基础信息
      * 新增/编辑 学生基础信息
+     *
      * @param basicStudentParams 基础学生信息参数
      * @param basicStudentParams 基础学生信息参数
-     * @param requestUser 新增或编辑的校区id
+     * @param requestUser        新增或编辑的校区id
      * @return
      * @return
      */
      */
     Long saveBasicStudent(BasicStudentParams basicStudentParams, SysUser requestUser);
     Long saveBasicStudent(BasicStudentParams basicStudentParams, SysUser requestUser);
 
 
     /**
     /**
      * 批量新增或更新基础学生信息
      * 批量新增或更新基础学生信息
+     *
      * @param basicStudentParamsList 学生参数集合
      * @param basicStudentParamsList 学生参数集合
-     * @param requestUser 请求人
+     * @param requestUser            请求人
      */
      */
-    void saveOrUpdateBasicStudentBatch(List<BasicStudentParams> basicStudentParamsList,SysUser requestUser);
+    void saveOrUpdateBasicStudentBatch(List<BasicStudentParams> basicStudentParamsList, SysUser requestUser);
 
 
     /**
     /**
      * 批量删除学生基本信息(逻辑)
      * 批量删除学生基本信息(逻辑)
+     *
      * @param idList 要删除的学生主键集合
      * @param idList 要删除的学生主键集合
      * @return 是否删除成功
      * @return 是否删除成功
      */
      */
     Boolean removeBasicStudentBatch(List<Long> idList);
     Boolean removeBasicStudentBatch(List<Long> idList);
 
 
+    /**
+     * 根据条件删除基础学生信息
+     * @param queryParams 学生参数(学号或姓名)
+     * @param campusId 校区主键
+     * @param collegeId 学院主键
+     * @param majorId 专业主键
+     * @param clazzIdList 班级主键集合
+     * @return 是否删除成功
+     */
+    Boolean removeBasicStudentByCondition(String queryParams, Long campusId, Long collegeId, Long majorId, Set<Long> clazzIdList);
+
     /**
     /**
      * 执行批量导入学生逻辑
      * 执行批量导入学生逻辑
      *
      *

+ 19 - 6
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicMajorServiceImpl.java

@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -101,15 +102,27 @@ public class BasicMajorServiceImpl extends ServiceImpl<BasicMajorMapper, BasicMa
 
 
     @Transactional
     @Transactional
     @Override
     @Override
-    public boolean deleteBasicMajorById(Long id) {
-        List<BasicClazz> basicClazzList = basicClazzService.list(new QueryWrapper<BasicClazz>().lambda().eq(BasicClazz::getMajorId,id));
+    public boolean deleteBasicMajorByIdList(List<Long> idList) {
+        // 判断班级
+        List<BasicClazz> basicClazzList = basicClazzService.list(new QueryWrapper<BasicClazz>().lambda().in(BasicClazz::getMajorId,idList));
         if (basicClazzList.size() > 0){
         if (basicClazzList.size() > 0){
-            throw ExceptionResultEnum.ERROR.exception("该专业被班级绑定,无法优先删除");
+            List<Long> majorIdList = basicClazzList.stream().map(BasicClazz::getMajorId).distinct().collect(Collectors.toList());
+            String majorNames = this.list(new QueryWrapper<BasicMajor>().lambda().in(BasicMajor::getId,majorIdList))
+                    .stream()
+                    .map(BasicMajor::getName)
+                    .collect(Collectors.joining(","));
+            throw ExceptionResultEnum.ERROR.exception("专业【" + majorNames + "】被班级绑定,无法优先删除");
         }
         }
-        List<BasicStudent> basicStudentList = basicStudentService.list(new QueryWrapper<BasicStudent>().lambda().eq(BasicStudent::getMajorId,id));
+        // 判断学生
+        List<BasicStudent> basicStudentList = basicStudentService.list(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getMajorId,idList));
         if (basicStudentList.size() > 0){
         if (basicStudentList.size() > 0){
-            throw ExceptionResultEnum.ERROR.exception("该专业被学生绑定,无法优先删除");
+            List<Long> majorIdList = basicStudentList.stream().map(BasicStudent::getMajorId).distinct().collect(Collectors.toList());
+            String majorNames = this.list(new QueryWrapper<BasicMajor>().lambda().in(BasicMajor::getId,majorIdList))
+                    .stream()
+                    .map(BasicMajor::getName)
+                    .collect(Collectors.joining(","));
+            throw ExceptionResultEnum.ERROR.exception("专业【" + majorNames + "】被学生绑定,无法优先删除");
         }
         }
-        return this.removeById(id);
+        return this.removeByIds(idList);
     }
     }
 }
 }

+ 25 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicStudentServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.common.service.impl;
 package com.qmth.teachcloud.common.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -49,12 +50,12 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
     private BasicCampusService basicCampusService;
     private BasicCampusService basicCampusService;
 
 
     @Override
     @Override
-    public IPage<BasicStudentResult> basicStudentPage(String queryParams, Long campusId, Set<Long> clazzIdList, int pageNumber, int pageSize) {
+    public IPage<BasicStudentResult> basicStudentPage(String queryParams, Long campusId,Long collegeId,Long majorId, Set<Long> clazzIdList, int pageNumber, int pageSize) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
 //        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
 //        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Set<Long> orgIds = null;
         Set<Long> orgIds = null;
         queryParams = SystemConstant.translateSpecificSign(queryParams);
         queryParams = SystemConstant.translateSpecificSign(queryParams);
-        return basicStudentMapper.findBasicStudentPage(new Page<>(pageNumber, pageSize), queryParams, schoolId, campusId, clazzIdList, orgIds);
+        return basicStudentMapper.findBasicStudentPage(new Page<>(pageNumber, pageSize), queryParams, schoolId, campusId,collegeId,majorId, clazzIdList, orgIds);
     }
     }
 
 
     @Override
     @Override
@@ -96,6 +97,28 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
         return this.remove(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getId, idList));
         return this.remove(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getId, idList));
     }
     }
 
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public Boolean removeBasicStudentByCondition(String queryParams, Long campusId, Long collegeId, Long majorId, Set<Long> clazzIdList) {
+        LambdaQueryWrapper<BasicStudent> basicStudentQueryWrapper = new QueryWrapper<BasicStudent>().lambda();
+        if (SystemConstant.strNotNull(queryParams)){
+            basicStudentQueryWrapper.and(e -> e.like(BasicStudent::getStudentName,queryParams).or().like(BasicStudent::getStudentCode,queryParams));
+        }
+        if (SystemConstant.longNotNull(campusId)){
+            basicStudentQueryWrapper.eq(BasicStudent::getCampusId,campusId);
+        }
+        if (SystemConstant.longNotNull(collegeId)){
+            basicStudentQueryWrapper.eq(BasicStudent::getBelongOrgId,collegeId);
+        }
+        if (SystemConstant.longNotNull(majorId)){
+            basicStudentQueryWrapper.eq(BasicStudent::getMajorId,majorId);
+        }
+        if (clazzIdList != null && clazzIdList.size() > 0){
+            basicStudentQueryWrapper.in(BasicStudent::getClazzId,clazzIdList);
+        }
+        return this.remove(basicStudentQueryWrapper);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
     public Map<String, Object> executeBasicStudentImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws IllegalAccessException {
     public Map<String, Object> executeBasicStudentImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws IllegalAccessException {

+ 6 - 0
teachcloud-common/src/main/resources/mapper/BasicStudentMapper.xml

@@ -67,6 +67,12 @@
             <if test="campusId != null and campusId != ''">
             <if test="campusId != null and campusId != ''">
                 and stu.campus_Id = #{campusId}
                 and stu.campus_Id = #{campusId}
             </if>
             </if>
+            <if test="collegeId != null and collegeId != ''">
+                and stu.belong_org_id = #{collegeId}
+            </if>
+            <if test="majorId != null and majorId != ''">
+                and stu.major_id = #{majorId}
+            </if>
             <if test="clazzIdList != null">
             <if test="clazzIdList != null">
                 AND stu.clazz_id IN
                 AND stu.clazz_id IN
                 <foreach collection="clazzIdList" item="item" index="index" open="(" separator="," close=")">
                 <foreach collection="clazzIdList" item="item" index="index" open="(" separator="," close=")">