caozixuan 2 жил өмнө
parent
commit
bb3cf6e2e4

+ 9 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/GradeBatchPaperService.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeBatchPaperParam;
+import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult;
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
 import com.qmth.teachcloud.common.entity.SysOrg;
@@ -70,8 +71,6 @@ public interface GradeBatchPaperService extends IService<GradeBatchPaper> {
      */
     void checkOperateAuth(Long schoolId, String paperNumber, String paperType);
 
-    SysOrg findTeachCollegeByOrgId(Long orgId);
-
     GradeBatchPaper findByThirdExamIdAndGradeCourseCode(Long schoolId, String thirdExamId, String gradeCourseCode);
 
     /**
@@ -96,4 +95,12 @@ public interface GradeBatchPaperService extends IService<GradeBatchPaper> {
      * @return 分析数据准备完成?true 是|| false 否
      */
     boolean analyzeDataReady(Long schoolId, String paperNumber, String paperType);
+
+    /**
+     * 根据考试id查询开课学院信息
+     * @param schoolId 学校id
+     * @param examId 考试id
+     * @return 结果
+     */
+    List<DictionaryResult> findTeachCollegeList(Long schoolId, Long examId);
 }

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

@@ -655,7 +655,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             examStudent.setCollegeName(collegeName);
             examStudent.setMajorName(majorName);
             examStudent.setClazzName(clazzName);
-            examStudent.setStudentClazzType(StudentClazzEnum.TEACH_CLAZZ);
+            examStudent.setStudentClazzType(StudentClazzEnum.BASIC_CLAZZ);
             examStudent.setCreateId(userId);
             examStudent.setUpdateId(userId);
             examStudent.setPaperNumber(paperNumber);

+ 38 - 30
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchPaperServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.params.analyze.AbleAnalyzePaperParam;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeBatchPaperParam;
+import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.mapper.GradeBatchPaperMapper;
@@ -16,7 +17,6 @@ import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
-import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import org.springframework.beans.BeanUtils;
@@ -55,6 +55,8 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
     GradeModuleDefineService gradeModuleDefineService;
     @Resource
     GradeModuleEvaluationService gradeModuleEvaluationService;
+    @Resource
+    ExamTaskService examTaskService;
 
     @Override
     public IPage<GradeBatchPaperResult> findGradeBatchPaperPage(Long batchId, Long examId, String courseName, int pageNumber, int pageSize, SysUser requestUser) {
@@ -63,7 +65,7 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
         IPage<GradeBatchPaperResult> datasource = this.baseMapper.findGradeBatchPaperPage(new Page<>(pageNumber, pageSize), batchId, examId, courseName, schoolId);
         for (GradeBatchPaperResult record : datasource.getRecords()) {
             Long teachingRoomId = record.getTeachingRoomId();
-            SysOrg teachCollege = this.findTeachCollegeByOrgId(teachingRoomId);
+            SysOrg teachCollege = sysOrgService.findTeachCollegeByOrgId(teachingRoomId);
             record.setTeachCollegeId(teachCollege.getId());
             record.setTeachCollegeName(teachCollege.getName());
         }
@@ -84,7 +86,7 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
         for (GradeBatchPaperResult gradeBatchPaperResult : datasource) {
             // 额外处理开课学院
             Long teachingRoomId = gradeBatchPaperResult.getTeachingRoomId();
-            SysOrg teachCollege = this.findTeachCollegeByOrgId(teachingRoomId);
+            SysOrg teachCollege = sysOrgService.findTeachCollegeByOrgId(teachingRoomId);
             if (SystemConstant.longNotNull(collegeId) && !collegeId.equals(teachCollege.getId())) {
                 continue;
             }
@@ -232,33 +234,6 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
         }
     }
 
-    /**
-     * 根据机构id查询开课学院
-     *
-     * @param orgId 机构id(课程所在教研室)
-     * @return 开课学院
-     */
-    @Override
-    public SysOrg findTeachCollegeByOrgId(Long orgId) {
-        if (!SystemConstant.longNotNull(orgId)) {
-            throw ExceptionResultEnum.ERROR.exception("机构id不存在");
-        }
-
-
-        List<SysOrg> orgList = sysOrgService.findParentsByOrgId(orgId).stream().distinct().collect(Collectors.toList());
-        List<SysOrg> schoolOrgList = orgList.stream().filter(e -> OrgTypeEnum.SCHOOL.equals(e.getType())).collect(Collectors.toList());
-        if (schoolOrgList.size() != 1){
-            throw ExceptionResultEnum.ERROR.exception("学校信息异常");
-        }
-        SysOrg schoolOrg = schoolOrgList.get(0);
-        Long schoolOrgId = schoolOrg.getId();
-        List<SysOrg> collegeOrgList = orgList.stream().filter(e -> schoolOrgId.equals(e.getParentId())).collect(Collectors.toList());;
-        if (collegeOrgList.size() != 1){
-            throw ExceptionResultEnum.ERROR.exception("开课学院异常");
-        }
-        return collegeOrgList.get(0);
-    }
-
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void updatePaperAndBatchStatus(Long schoolId, String paperNumber, String paperType) {
@@ -349,4 +324,37 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
                         .eq(GradeModuleEvaluation::getPaperType, paperType))
                 .size() > 0;
     }
+
+    @Override
+    public List<DictionaryResult> findTeachCollegeList(Long schoolId, Long examId) {
+        QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
+        examTaskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId);
+        if (SystemConstant.longNotNull(examId)) {
+            examTaskQueryWrapper.lambda().eq(ExamTask::getExamId, examId);
+        }
+        // 命题任务教研室id集合
+        List<Long> teachingRoomIdList = examTaskService.list(examTaskQueryWrapper)
+                .stream()
+                .map(ExamTask::getTeachingRoomId)
+                .distinct()
+                .collect(Collectors.toList());
+
+        List<SysOrg> teachOrgList = new ArrayList<>();
+        Map<Long, Long> keyMap = new HashMap<>();
+        for (Long orgId : teachingRoomIdList) {
+            SysOrg sysOrg = sysOrgService.findTeachCollegeByOrgId(orgId);
+            Long id = sysOrg.getId();
+            if (!keyMap.containsKey(id)) {
+                teachOrgList.add(sysOrg);
+                keyMap.put(id, id);
+            }
+        }
+
+        return teachOrgList.stream().flatMap(e -> {
+            DictionaryResult dictionaryResult = new DictionaryResult();
+            dictionaryResult.setName(e.getName());
+            dictionaryResult.setId(e.getId());
+            return Stream.of(dictionaryResult);
+        }).collect(Collectors.toList());
+    }
 }

+ 2 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java

@@ -86,10 +86,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
     ExamTaskService examTaskService;
 
     @Resource
-    TeachCloudReportTaskUtils teachCloudReportTaskUtils;
-
-    @Resource
-    DictionaryConfig dictionaryConfig;
+    SysOrgService sysOrgService;
 
     @Override
     public IPage<GradeBatchResult> gradeBatchPage(String batchName, int pageNumber, int pageSize, SysUser requestUser) {
@@ -475,7 +472,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
             List<Long> orgIds = dtoList.stream().map(m -> m.getCourseCode() + "##" + m.getPaperNumber()).distinct().map(m -> {
                 String[] strings = m.split("##");
                 ExamTask examTask = examTaskService.getByCourseCodeAndPaperNumber(schoolId, strings[0], strings[1]);
-                SysOrg sysOrg = gradeBatchPaperService.findTeachCollegeByOrgId(examTask.getTeachingRoomId());
+                SysOrg sysOrg = sysOrgService.findTeachCollegeByOrgId(examTask.getTeachingRoomId());
                 return sysOrg.getId();
             }).distinct().collect(Collectors.toList());
             if (orgIds.size() != 1) {

+ 9 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchPaperController.java

@@ -6,7 +6,6 @@ import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult;
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
 import com.qmth.distributed.print.business.service.GradeBatchPaperService;
-import com.qmth.distributed.print.business.service.GradeBatchService;
 import com.qmth.distributed.print.business.templete.execute.AsyncTeachCloudReportService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -43,12 +42,10 @@ public class GradeBatchPaperController {
     @Resource
     private GradeBatchPaperService gradeBatchPaperService;
 
-    @Resource
-    private GradeBatchService gradeBatchService;
-
     @Resource
     private AsyncTeachCloudReportService asyncTeachCloudReportService;
 
+
     @ApiOperation(value = "成绩分析批次课程-查询")
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeBatchPaperResult.class)})
@@ -65,6 +62,14 @@ public class GradeBatchPaperController {
         return ResultUtil.ok(gradeBatchPaperService.findGradeBatchPaperPage(SystemConstant.convertIdToLong(batchId), SystemConstant.convertIdToLong(examId), courseName, pageNumber, pageSize, requestUser));
     }
 
+    @ApiOperation(value = "成绩分析批次课程-查询开课学院")
+    @RequestMapping(value = "/find_teach_college", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeBatchPaperResult.class)})
+    public Result findGradeBatchPaperPage(@ApiParam(value = "考试id") @RequestParam(required = false) String examId) {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        return ResultUtil.ok(gradeBatchPaperService.findTeachCollegeList(requestUser.getSchoolId(), SystemConstant.convertIdToLong(examId)));
+    }
+
     @ApiOperation(value = "成绩分析批次课程-查询可分析试卷")
     @RequestMapping(value = "/able", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = GradeBatchPaperResult.class)})

+ 12 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -22,11 +22,12 @@ public interface SysOrgService extends IService<SysOrg> {
 
     /**
      * 机构树
+     *
      * @param specialPrivilegeEnum 特殊权限
-     * @param withoutPrintingRoom 是否去除印刷室机构
+     * @param withoutPrintingRoom  是否去除印刷室机构
      * @return 查询到的机构
      */
-    List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum,boolean withoutPrintingRoom);
+    List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum, boolean withoutPrintingRoom);
 
     /**
      * 获取所有机构
@@ -88,6 +89,7 @@ public interface SysOrgService extends IService<SysOrg> {
 
     /**
      * 查询符合条件的机构
+     *
      * @return 符合条件的机构
      */
     List<SysOrg> findDeepByOrgIdAndType(String orgType);
@@ -131,4 +133,12 @@ public interface SysOrgService extends IService<SysOrg> {
      * )
      */
     Map<String, Long> createOrGetOrgByOrgInfo(List<String> orgInfoList, SysUser requestUser);
+
+    /**
+     * 根据机构id查询开课学院
+     *
+     * @param orgId 机构id(课程所在教研室)
+     * @return 开课学院
+     */
+    SysOrg findTeachCollegeByOrgId(Long orgId);
 }

+ 22 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -396,6 +396,28 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         return map;
     }
 
+
+    @Override
+    public SysOrg findTeachCollegeByOrgId(Long orgId) {
+        if (!SystemConstant.longNotNull(orgId)) {
+            throw ExceptionResultEnum.ERROR.exception("机构id不存在");
+        }
+
+
+        List<SysOrg> orgList = this.findParentsByOrgId(orgId).stream().distinct().collect(Collectors.toList());
+        List<SysOrg> schoolOrgList = orgList.stream().filter(e -> OrgTypeEnum.SCHOOL.equals(e.getType())).collect(Collectors.toList());
+        if (schoolOrgList.size() != 1){
+            throw ExceptionResultEnum.ERROR.exception("学校信息异常");
+        }
+        SysOrg schoolOrg = schoolOrgList.get(0);
+        Long schoolOrgId = schoolOrg.getId();
+        List<SysOrg> collegeOrgList = orgList.stream().filter(e -> schoolOrgId.equals(e.getParentId())).collect(Collectors.toList());;
+        if (collegeOrgList.size() != 1){
+            throw ExceptionResultEnum.ERROR.exception("开课学院异常");
+        }
+        return collegeOrgList.get(0);
+    }
+
     /**
      * 根据子机构id深度优先搜索其父机构们
      *

+ 0 - 2
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/AnalyzeDataCheckServiceImpl.java

@@ -99,7 +99,6 @@ public class AnalyzeDataCheckServiceImpl implements AnalyzeDataCheckService {
                 .filter(e -> !e.getAbsent())
                 .collect(Collectors.toList());
         List<Long> effectStudentIdList = tbExamStudentList.stream().map(TBExamStudent::getId).collect(Collectors.toList());
-        int effectExamStudentCount = tbExamStudentList.size();
         // 有效的考生成绩记录
         List<TBExamRecord> effectTBExamRecordList = tbExamRecordList.stream().filter(e -> effectStudentIdList.contains(e.getExamStudentId())).collect(Collectors.toList());
         List<Long> effectRecordIdList = effectTBExamRecordList.stream().map(TBExamRecord::getId).collect(Collectors.toList());
@@ -110,7 +109,6 @@ public class AnalyzeDataCheckServiceImpl implements AnalyzeDataCheckService {
         // 作答
         // 1.考生人数对应检查 - 本地试卷结构数量 * 考生数 =? 考生作答总记录数
         List<TBAnswer> tbAnswerList = tbAnswerService.list(new QueryWrapper<TBAnswer>().lambda().in(TBAnswer::getExamRecordId,effectRecordIdList));
-        int answerCount = 0;
         Map<Integer,Long> recordAnswerCountCheckMap = new HashMap<>();
         Map<Long,List<TBAnswer>> recordAnswerMap = new HashMap<>();
         for (Long effectRecordId : effectRecordIdList) {