Przeglądaj źródła

3.3.0 课程、试卷编号、校区、考场查询

xiaofei 1 rok temu
rodzic
commit
a86c7144be
16 zmienionych plików z 280 dodań i 51 usunięć
  1. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicExamService.java
  2. 0 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ConditionService.java
  3. 0 10
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamServiceImpl.java
  4. 0 29
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java
  5. 20 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ConditionController.java
  6. 28 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/CampusExamRoomDto.java
  7. 68 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/CoursePaperNumberDto.java
  8. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicSemesterMapper.java
  9. 3 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicSemesterService.java
  10. 6 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicSemesterServiceImpl.java
  11. 9 0
      teachcloud-common/src/main/resources/mapper/BasicSemesterMapper.xml
  12. 2 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java
  13. 20 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/ScanConditionService.java
  14. 10 7
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java
  15. 8 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java
  16. 103 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanConditionServiceImpl.java

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicExamService.java

@@ -53,5 +53,5 @@ public interface BasicExamService extends IService<BasicExam> {
      */
     boolean enable(Long id, Boolean enable);
 
-    List<BasicExam> listBySemesterId(Long schoolId, Long id);
+
 }

+ 0 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ConditionService.java

@@ -1,7 +1,6 @@
 package com.qmth.distributed.print.business.service;
 
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
-import com.qmth.teachcloud.common.bean.dto.SemesterExamDto;
 import com.qmth.teachcloud.common.entity.*;
 
 import java.util.List;
@@ -26,6 +25,4 @@ public interface ConditionService {
     List<BasicClazz> listClazz(Long semesterId, Long examId, String courseCode, String clazzName);
 
     List<SysOrg> listCollege();
-
-    List<SemesterExamDto> scanSemesterList(Boolean enable);
 }

+ 0 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamServiceImpl.java

@@ -147,14 +147,4 @@ public class BasicExamServiceImpl extends ServiceImpl<BasicExamMapper, BasicExam
         return this.update(updateWrapper);
     }
 
-    @Override
-    public List<BasicExam> listBySemesterId(Long schoolId, Long semesterId) {
-        QueryWrapper<BasicExam> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(BasicExam::getSchoolId, schoolId)
-                .eq(BasicExam::getSemesterId, semesterId)
-                .orderByDesc(BasicExam::getId);
-        return this.list(queryWrapper);
-    }
-
-
 }

+ 0 - 29
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ConditionServiceImpl.java

@@ -9,13 +9,11 @@ import com.qmth.distributed.print.business.service.BasicExamService;
 import com.qmth.distributed.print.business.service.ConditionService;
 import com.qmth.distributed.print.business.service.TeachCourseService;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
-import com.qmth.teachcloud.common.bean.dto.SemesterExamDto;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -173,31 +171,4 @@ public class ConditionServiceImpl implements ConditionService {
         return sysOrgService.list(queryWrapper);
     }
 
-    @Override
-    public List<SemesterExamDto> scanSemesterList(Boolean enable) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        List<BasicSemester> semesterList = basicSemesterService.list(schoolId, enable);
-        List<SemesterExamDto> list = new ArrayList<>();
-        for (BasicSemester basicSemester : semesterList) {
-            SemesterExamDto semesterExamDto = new SemesterExamDto();
-            semesterExamDto.setId(String.valueOf(basicSemester.getId()));
-            semesterExamDto.setName(basicSemester.getName());
-            semesterExamDto.setEnable(basicSemester.getEnable());
-
-            List<BasicExam> examList = basicExamService.listBySemesterId(schoolId, basicSemester.getId());
-            if (CollectionUtils.isNotEmpty(examList)){
-                List<SemesterExamDto.ExamDto> examDtoList = new ArrayList<>();
-                for (BasicExam basicExam : examList) {
-                    SemesterExamDto.ExamDto examDto = new SemesterExamDto.ExamDto();
-                    examDto.setId(String.valueOf(basicExam.getId()));
-                    examDto.setName(basicExam.getName());
-                    examDto.setEnable(basicExam.getEnable());
-                    examDtoList.add(examDto);
-                }
-                semesterExamDto.setExamList(examDtoList);
-                list.add(semesterExamDto);
-            }
-        }
-        return list;
-    }
 }

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

@@ -9,6 +9,7 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.mark.service.ScanConditionService;
 import io.swagger.annotations.*;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -29,6 +30,9 @@ public class ConditionController {
     @Resource
     private ConditionService conditionService;
 
+    @Resource
+    private ScanConditionService scanConditionService;
+
     @ApiOperation(value = "学期")
     @RequestMapping(value = "/list_semester", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = BasicSemester.class)})
@@ -94,6 +98,21 @@ public class ConditionController {
     @RequestMapping(value = "/scan/semester/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Map.class)})
     public Result scanSemesterList(@ApiParam(value = "启用/禁用") @RequestParam(required = false, defaultValue = "true") Boolean enable) {
-        return ResultUtil.ok(conditionService.scanSemesterList(enable));
+        return ResultUtil.ok(scanConditionService.scanSemesterList(enable));
+    }
+
+    @ApiOperation(value = "获取课程、试卷编号列表")
+    @RequestMapping(value = "/scan/course/list", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Map.class)})
+    public Result scanCourseList(@ApiParam(value = "考试ID", required = true) @RequestParam(value = "examId") Long examId) {
+        return ResultUtil.ok(scanConditionService.scanCourseList(examId));
+    }
+
+    @ApiOperation(value = "获取校区、考场")
+    @RequestMapping(value = "/scan/campus/list", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Map.class)})
+    public Result scanCampusList(@ApiParam(value = "考试ID", required = true) @RequestParam(value = "examId") Long examId,
+                                 @ApiParam(value = "试卷编号", required = true) @RequestParam(value = "coursePaperId") String coursePaperId) {
+        return ResultUtil.ok(scanConditionService.scanCampusList(examId, coursePaperId));
     }
 }

+ 28 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/CampusExamRoomDto.java

@@ -0,0 +1,28 @@
+package com.qmth.teachcloud.common.bean.dto;
+
+import java.util.List;
+
+/**
+ * 校区、考场
+ */
+public class CampusExamRoomDto {
+
+    private String name;
+    private List<String> examRoomList;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<String> getExamRoomList() {
+        return examRoomList;
+    }
+
+    public void setExamRoomList(List<String> examRoomList) {
+        this.examRoomList = examRoomList;
+    }
+}

+ 68 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/CoursePaperNumberDto.java

@@ -0,0 +1,68 @@
+package com.qmth.teachcloud.common.bean.dto;
+
+import java.util.List;
+
+/**
+ * 课程、试卷编号
+ */
+public class CoursePaperNumberDto {
+
+    private String code;
+    private String name;
+    private List<PaperNumberDto> paperNumberList;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<PaperNumberDto> getPaperNumberList() {
+        return paperNumberList;
+    }
+
+    public void setPaperNumberList(List<PaperNumberDto> paperNumberList) {
+        this.paperNumberList = paperNumberList;
+    }
+
+    public static class PaperNumberDto{
+        private String coursePaperNumber;
+        private String coursePaperId;
+        private Boolean markFinished;
+
+        public String getCoursePaperNumber() {
+            return coursePaperNumber;
+        }
+
+        public void setCoursePaperNumber(String coursePaperNumber) {
+            this.coursePaperNumber = coursePaperNumber;
+        }
+
+        public String getCoursePaperId() {
+            return coursePaperId;
+        }
+
+        public void setCoursePaperId(String coursePaperId) {
+            this.coursePaperId = coursePaperId;
+        }
+
+        public Boolean getMarkFinished() {
+            return markFinished;
+        }
+
+        public void setMarkFinished(Boolean markFinished) {
+            this.markFinished = markFinished;
+        }
+    }
+
+}

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

@@ -42,4 +42,6 @@ public interface BasicSemesterMapper extends BaseMapper<BasicSemester> {
     int countBasicExamBySemesterId(@Param("semesterId") Long semesterId);
 
     BasicSemester selectByExamId(Long examId);
+
+    List<BasicExam> listBySemesterId(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId);
 }

+ 3 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicSemesterService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
 import com.qmth.teachcloud.common.bean.result.BasicSemesterResult;
+import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.BasicSemester;
 import com.qmth.teachcloud.common.entity.SysUser;
 
@@ -70,4 +71,6 @@ public interface BasicSemesterService extends IService<BasicSemester> {
     BasicSemester selectByExamId(Long examId);
 
     boolean enable(Long id, Boolean enable);
+
+    List<BasicExam> listBySemesterId(Long schoolId, Long id);
 }

+ 6 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicSemesterServiceImpl.java

@@ -9,6 +9,7 @@ import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
 import com.qmth.teachcloud.common.bean.result.BasicSemesterResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.BasicSemester;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -137,4 +138,9 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
         updateWrapper.lambda().set(BasicSemester::getEnable, enable).eq(BasicSemester::getId, id);
         return this.update(updateWrapper);
     }
+
+    @Override
+    public List<BasicExam> listBySemesterId(Long schoolId, Long semesterId) {
+        return this.baseMapper.listBySemesterId(schoolId, semesterId);
+    }
 }

+ 9 - 0
teachcloud-common/src/main/resources/mapper/BasicSemesterMapper.xml

@@ -54,4 +54,13 @@
                     WHERE
                         bs.id = be.semester_id AND be.id = #{examId})
     </select>
+    <select id="listBySemesterId" resultType="com.qmth.teachcloud.common.entity.BasicExam">
+        SELECT
+            id, name, enable
+        FROM
+            basic_exam
+        WHERE
+            school_id = #{schoolId} AND semester_id = #{semesterId}
+        ORDER BY id
+    </select>
 </mapper>

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java

@@ -68,4 +68,6 @@ public interface MarkStudentService extends IService<MarkStudent> {
 	StudentVo findOne(StudentQuery query);
 
     int countByExamIdAndSecretNumber(Long examId, String secretNumber);
+
+    List<MarkStudent> listByExamIdAndCoursePaperId(Long examId, String coursePaperId);
 }

+ 20 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/ScanConditionService.java

@@ -0,0 +1,20 @@
+package com.qmth.teachcloud.mark.service;
+
+import com.qmth.teachcloud.common.bean.dto.CampusExamRoomDto;
+import com.qmth.teachcloud.common.bean.dto.CoursePaperNumberDto;
+import com.qmth.teachcloud.common.bean.dto.SemesterExamDto;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 查询条件 服务类
+ * </p>
+ */
+public interface ScanConditionService {
+    List<SemesterExamDto> scanSemesterList(Boolean enable);
+
+    List<CoursePaperNumberDto> scanCourseList(Long examId);
+
+    List<CampusExamRoomDto> scanCampusList(Long examId, String coursePaperId);
+}

+ 10 - 7
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -17,6 +17,7 @@ import com.qmth.teachcloud.mark.entity.ScanPackage;
 import com.qmth.teachcloud.mark.mapper.MarkPaperMapper;
 import com.qmth.teachcloud.mark.service.MarkPaperService;
 import com.qmth.teachcloud.mark.service.ScanPackageService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -150,13 +151,15 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
         wrapper.last("LIMIT 1");
         return this.getOne(wrapper);
     }
-    
-	@Override
-	public List<MarkPaper> listByExamAndPackage(Long examId, String packageCode) {
-		QueryWrapper<MarkPaper> wrapper = new QueryWrapper<>();
+
+    @Override
+    public List<MarkPaper> listByExamAndPackage(Long examId, String packageCode) {
+        QueryWrapper<MarkPaper> wrapper = new QueryWrapper<>();
         LambdaQueryWrapper<MarkPaper> lw = wrapper.lambda();
         lw.eq(MarkPaper::getExamId, examId);
-        lw.eq(MarkPaper::getPackageCode, packageCode);
-		return this.list(wrapper);
-	}
+        if (StringUtils.isNotBlank(packageCode)) {
+            lw.eq(MarkPaper::getPackageCode, packageCode);
+        }
+        return this.list(wrapper);
+    }
 }

+ 8 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -434,4 +434,12 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                 .eq(MarkStudent::getSecretNumber, secretNumber);
         return this.count(queryWrapper);
     }
+
+    @Override
+    public List<MarkStudent> listByExamIdAndCoursePaperId(Long examId, String coursePaperId) {
+        QueryWrapper<MarkStudent> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(MarkStudent::getExamId, examId)
+                .eq(MarkStudent::getCoursePaperId, coursePaperId);
+        return this.list(queryWrapper);
+    }
 }

+ 103 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanConditionServiceImpl.java

@@ -0,0 +1,103 @@
+package com.qmth.teachcloud.mark.service.impl;
+
+import com.qmth.teachcloud.common.bean.dto.CampusExamRoomDto;
+import com.qmth.teachcloud.common.bean.dto.CoursePaperNumberDto;
+import com.qmth.teachcloud.common.bean.dto.SemesterExamDto;
+import com.qmth.teachcloud.common.entity.BasicExam;
+import com.qmth.teachcloud.common.entity.BasicSemester;
+import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
+import com.qmth.teachcloud.common.service.BasicSemesterService;
+import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
+import com.qmth.teachcloud.mark.entity.MarkStudent;
+import com.qmth.teachcloud.mark.service.MarkPaperService;
+import com.qmth.teachcloud.mark.service.MarkStudentService;
+import com.qmth.teachcloud.mark.service.ScanConditionService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 查询条件 服务实现类
+ * </p>
+ */
+@Service
+public class ScanConditionServiceImpl implements ScanConditionService {
+
+    @Resource
+    private BasicSemesterService basicSemesterService;
+    @Resource
+    private MarkPaperService markPaperService;
+    @Resource
+    private MarkStudentService markStudentService;
+
+    @Resource
+    public List<SemesterExamDto> scanSemesterList(Boolean enable) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        List<BasicSemester> semesterList = basicSemesterService.list(schoolId, enable);
+        List<SemesterExamDto> list = new ArrayList<>();
+        for (BasicSemester basicSemester : semesterList) {
+            SemesterExamDto semesterExamDto = new SemesterExamDto();
+            semesterExamDto.setId(String.valueOf(basicSemester.getId()));
+            semesterExamDto.setName(basicSemester.getName());
+            semesterExamDto.setEnable(basicSemester.getEnable());
+
+            List<BasicExam> examList = basicSemesterService.listBySemesterId(schoolId, basicSemester.getId());
+            if (CollectionUtils.isNotEmpty(examList)) {
+                List<SemesterExamDto.ExamDto> examDtoList = new ArrayList<>();
+                for (BasicExam basicExam : examList) {
+                    SemesterExamDto.ExamDto examDto = new SemesterExamDto.ExamDto();
+                    examDto.setId(String.valueOf(basicExam.getId()));
+                    examDto.setName(basicExam.getName());
+                    examDto.setEnable(basicExam.getEnable());
+                    examDtoList.add(examDto);
+                }
+                semesterExamDto.setExamList(examDtoList);
+                list.add(semesterExamDto);
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public List<CoursePaperNumberDto> scanCourseList(Long examId) {
+        List<MarkPaper> markPaperList = markPaperService.listByExamAndPackage(examId, null);
+        Map<String, List<MarkPaper>> map = markPaperList.stream().collect(Collectors.groupingBy(m -> m.getCourseCode()));
+        List<CoursePaperNumberDto> coursePaperNumberDtoList = new ArrayList<>();
+        for (Map.Entry<String, List<MarkPaper>> entry : map.entrySet()) {
+            CoursePaperNumberDto coursePaperNumberDto = new CoursePaperNumberDto();
+            coursePaperNumberDto.setCode(entry.getKey());
+            coursePaperNumberDto.setName(entry.getValue().get(0).getCourseName());
+            List<CoursePaperNumberDto.PaperNumberDto> paperNumberDtoList = new ArrayList<>();
+            for (MarkPaper markPaper : entry.getValue()) {
+                CoursePaperNumberDto.PaperNumberDto paperNumberDto = new CoursePaperNumberDto.PaperNumberDto();
+                paperNumberDto.setCoursePaperNumber(markPaper.getPaperNumber());
+                paperNumberDto.setCoursePaperId(markPaper.getCoursePaperId());
+                paperNumberDto.setMarkFinished(markPaper.getStatus() != null && markPaper.getStatus().equals(MarkPaperStatus.FINISH));
+                paperNumberDtoList.add(paperNumberDto);
+            }
+            coursePaperNumberDtoList.add(coursePaperNumberDto);
+        }
+        return coursePaperNumberDtoList;
+    }
+
+    @Override
+    public List<CampusExamRoomDto> scanCampusList(Long examId, String coursePaperId) {
+        List<MarkStudent> markStudentList = markStudentService.listByExamIdAndCoursePaperId(examId, coursePaperId);
+        Map<String, List<MarkStudent>> map = markStudentList.stream().collect(Collectors.groupingBy(x -> x.getExamPlace()));
+        List<CampusExamRoomDto> campusExamRoomDtoList = new ArrayList<>();
+        for (Map.Entry<String, List<MarkStudent>> entry : map.entrySet()) {
+            CampusExamRoomDto campusExamRoomDto = new CampusExamRoomDto();
+            campusExamRoomDto.setName(entry.getKey());
+            campusExamRoomDto.setExamRoomList(entry.getValue().stream().map(MarkStudent::getExamRoom).distinct().collect(Collectors.toList()));
+            campusExamRoomDtoList.add(campusExamRoomDto);
+        }
+        return campusExamRoomDtoList;
+    }
+}