caozixuan 3 سال پیش
والد
کامیت
4e1302f12a

+ 2 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicStudentServiceImpl.java

@@ -50,13 +50,12 @@ public class BasicStudentServiceImpl extends ServiceImpl<BasicStudentMapper, Bas
     private BasicClazzService basicClazzService;
 
     @Override
-    public IPage<BasicStudentResult> basicStudentPage(String queryParams, Set<Long> clazzIdList,int pageNumber, int pageSize) {
+    public IPage<BasicStudentResult> basicStudentPage(String queryParams,Long campusId, Set<Long> clazzIdList,int pageNumber, int pageSize) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
 //        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Set<Long> orgIds = null;
         queryParams = SystemConstant.translateSpecificSign(queryParams);
-        // TODO: 2021/8/31 加入班级列表查询 
-        return basicStudentMapper.findBasicStudentPage(new Page<>(pageNumber, pageSize), queryParams, schoolId, clazzIdList,orgIds);
+        return basicStudentMapper.findBasicStudentPage(new Page<>(pageNumber, pageSize), queryParams, schoolId,campusId, clazzIdList,orgIds);
     }
 
     @Override

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

@@ -86,7 +86,7 @@ public class BasicClazzController {
     @ApiOperation(value = "班级数据源查询")
     @RequestMapping(value = "/datasource", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
-    public Result findBasicClazzList() {
-        return ResultUtil.ok(basicClazzService.findClazzDatasource());
+    public Result findBasicClazzList(@ApiParam(value = "校区主键") @RequestParam(required = false) String campusId) {
+        return ResultUtil.ok(basicClazzService.findClazzDatasource(SystemConstant.convertIdToLong(campusId)));
     }
 }

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

@@ -21,9 +21,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * <p>
@@ -49,9 +47,18 @@ public class BasicStudentController {
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result findBasicStudentList(@ApiParam(value = "查询参数(学生学号或姓名)") @RequestParam(required = false) String queryParams,
+                                       @ApiParam(value = "校区主键") @RequestParam(required = false) String campusId,
+                                       @ApiParam(value = "班级主键") @RequestParam(required = false) String clazzId,
                                       @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
                                       @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
-        return ResultUtil.ok(basicStudentService.basicStudentPage(queryParams,null, pageNumber, pageSize));
+        Set<Long> clazzIdSet = new HashSet<>();
+        if (SystemConstant.strNotNull(clazzId)){
+            clazzIdSet.add(SystemConstant.convertIdToLong(clazzId));
+        }else {
+            clazzIdSet = null;
+        }
+
+        return ResultUtil.ok(basicStudentService.basicStudentPage(queryParams,SystemConstant.convertIdToLong(campusId),clazzIdSet, pageNumber, pageSize));
     }
 
     @ApiOperation(value = "学生基本信息管理-新增/编辑")

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

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

+ 10 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicClazzMapper.java

@@ -7,6 +7,8 @@ import com.qmth.teachcloud.common.bean.result.BasicClazzResult;
 import com.qmth.teachcloud.common.entity.BasicClazz;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -20,4 +22,12 @@ public interface BasicClazzMapper extends BaseMapper<BasicClazz> {
                                                    @Param("queryParams") String queryParams,
                                                    @Param("schoolId") Long schoolId,
                                                    @Param("orgIds") Set<Long> orgIds);
+
+    /**
+     * 根据班级idList和学校id查询新命题任务数据
+     * @param schoolId 学校id
+     * @param clazzIds 班级idSet
+     * @return 数据
+     */
+    List<Map<Object,Object>> findExamTaskPrintByClazzIdSet(@Param("schoolId") Long schoolId,@Param("clazzIds") List<Long> clazzIds);
 }

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

@@ -27,6 +27,7 @@ public interface BasicStudentMapper extends BaseMapper<BasicStudent> {
     IPage<BasicStudentResult> findBasicStudentPage(@Param("iPage") Page<BasicStudentResult> iPage,
                                                    @Param("queryParams") String queryParams,
                                                    @Param("schoolId") Long schoolId,
+                                                   @Param("campusId") Long campusId,
                                                    @Param("clazzIdList") Set<Long> clazzIdList,
                                                    @Param("orgIds") Set<Long> orgIds);
 }

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicClazzService.java

@@ -55,5 +55,5 @@ public interface BasicClazzService extends IService<BasicClazz> {
      * 查询班级下拉数据源
      * @return 班级数据源
      */
-    List<ClazzDatasourceResult> findClazzDatasource();
+    List<ClazzDatasourceResult> findClazzDatasource(Long campusId);
 }

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicStudentService.java

@@ -30,12 +30,13 @@ public interface BasicStudentService extends IService<BasicStudent> {
     /**
      * 学生基础信息分页查询
      * @param queryParams 查询参数(学生学号或姓名)
+     * @param campusId 校区主键
      * @param clazzIdList 班级主键集合
      * @param pageNumber 分页页码
      * @param pageSize 分页容量
      * @return 分页结果
      */
-    IPage<BasicStudentResult> basicStudentPage(String queryParams,Set<Long> clazzIdList, int pageNumber,int pageSize);
+    IPage<BasicStudentResult> basicStudentPage(String queryParams,Long campusId, Set<Long> clazzIdList, int pageNumber,int pageSize);
 
     /**
      * 新增/编辑 学生基础信息

+ 7 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCampusServiceImpl.java

@@ -7,10 +7,12 @@ import com.qmth.teachcloud.common.bean.params.BasicCampusParams;
 import com.qmth.teachcloud.common.bean.result.BasicCampusResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCampus;
+import com.qmth.teachcloud.common.entity.BasicClazz;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.mapper.BasicCampusMapper;
 import com.qmth.teachcloud.common.service.BasicCampusService;
+import com.qmth.teachcloud.common.service.BasicClazzService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.omg.CORBA.OBJ_ADAPTER;
 import org.springframework.stereotype.Service;
@@ -32,6 +34,8 @@ import java.util.Objects;
 public class BasicCampusServiceImpl extends ServiceImpl<BasicCampusMapper, BasicCampus> implements BasicCampusService {
     @Resource
     private BasicCampusMapper basicCampusMapper;
+    @Resource
+    private BasicClazzService basicClazzService;
 
     @Override
     public List<BasicCampusResult> basicCampusList(Long schoolId) {
@@ -97,6 +101,9 @@ public class BasicCampusServiceImpl extends ServiceImpl<BasicCampusMapper, Basic
     @Override
     public Boolean removeBasicCampusById(Long id) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        if (basicClazzService.list(new QueryWrapper<BasicClazz>().lambda().eq(BasicClazz::getCampusId,id)).size() > 0){
+            throw ExceptionResultEnum.ERROR.exception("课程中绑定了要删除的校区,无法删除");
+        }
 
         UpdateWrapper<BasicCampus> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(BasicCampus::getEnable,false)

+ 13 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicClazzServiceImpl.java

@@ -10,6 +10,7 @@ import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
 import com.qmth.teachcloud.common.bean.params.BasicClazzParams;
 import com.qmth.teachcloud.common.bean.result.BasicClazzResult;
 import com.qmth.teachcloud.common.bean.result.ClazzDatasourceResult;
+import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -67,10 +68,20 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean removeBasicClazzBatch(List<Long> idList) {
+        Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
         if (idList.size() == 0) {
             throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
         }
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        // 业务处理 - 判断'exam_task_print'表中是否已经选中该班级
+        List<Map<Object,Object>> mapList = basicClazzMapper.findExamTaskPrintByClazzIdSet(schoolId,idList);
+        if (mapList.size() > 0){
+            StringBuilder clazzNames = new StringBuilder();
+            for (Map<Object, Object> map : mapList) {
+                clazzNames.append(map.get("clazzName")).append(",");
+            }
+            throw ExceptionResultEnum.ERROR.exception("【班级】 : " + clazzNames.substring(0,clazzNames.length() - 1) + "生成了考务文件,无法删除");
+        }
 
         // 异常处理
         String errorStudent = "";
@@ -184,10 +195,11 @@ public class BasicClazzServiceImpl extends ServiceImpl<BasicClazzMapper, BasicCl
     }
 
     @Override
-    public List<ClazzDatasourceResult> findClazzDatasource() {
+    public List<ClazzDatasourceResult> findClazzDatasource(Long campusId) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
         return this.list(new QueryWrapper<BasicClazz>().lambda()
                 .eq(BasicClazz::getEnable, true)
+                .eq(BasicClazz::getCampusId, campusId)
                 .eq(BasicClazz::getSchoolId, schoolId)).stream()
                 .map(e -> {
                     ClazzDatasourceResult clazzDatasourceResult = new ClazzDatasourceResult();

+ 0 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -18,14 +18,12 @@ import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import com.qmth.teachcloud.common.mapper.BasicCourseMapper;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import org.checkerframework.checker.units.qual.C;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.LinkedMultiValueMap;
 
 import javax.annotation.Resource;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * <p>

+ 15 - 0
teachcloud-common/src/main/resources/mapper/BasicClazzMapper.xml

@@ -37,4 +37,19 @@
         </where>
         ORDER BY clz.create_time DESC
     </select>
+    <select id="findExamTaskPrintByClazzIdSet" resultType="java.util.Map">
+        SELECT
+            id, class_id AS clazzId, class_name AS clazzName
+        FROM
+            exam_task_print
+        <where>
+            AND school_id = #{schoolId}
+            <if test="clazzIds != null">
+                AND class_id IN
+                <foreach collection="clazzIds" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -51,6 +51,9 @@
             <if test="schoolId != null and schoolId > 0">
                 and stu.school_id = #{schoolId}
             </if>
+            <if test="campusId != null and campusId > 0">
+                and stu.campus_Id = #{campusId}
+            </if>
             <if test="clazzIdList != null">
                 AND stu.clazz_id IN
                 <foreach collection="clazzIdList" item="item" index="index" open="(" separator="," close=")">