Эх сурвалжийг харах

fix:教研分析部分改动(兼容模式四)

caozixuan 11 сар өмнө
parent
commit
39d03ec043

+ 23 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java

@@ -12,19 +12,17 @@ import com.qmth.distributed.print.business.bean.dto.ExamStudentCourseClassDto;
 import com.qmth.distributed.print.business.bean.dto.GradeBatchStudentClazzDto;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeBatchParam;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchResult;
-import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.GradeBatch;
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
 import com.qmth.distributed.print.business.entity.GradeBatchStudentClazz;
 import com.qmth.distributed.print.business.mapper.ExamStudentMapper;
 import com.qmth.distributed.print.business.mapper.GradeBatchMapper;
-import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.GradeBatchPaperService;
 import com.qmth.distributed.print.business.service.GradeBatchService;
 import com.qmth.distributed.print.business.service.GradeBatchStudentClazzService;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.SysRole;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUserRole;
@@ -36,6 +34,8 @@ import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.excel.ExcelError;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
+import com.qmth.teachcloud.mark.service.MarkPaperService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
@@ -87,13 +87,13 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
     SysUserRoleService sysUserRoleService;
 
     @Resource
-    ExamTaskService examTaskService;
+    MarkPaperService markPaperService;
 
     @Resource
-    SysOrgService sysOrgService;
+    BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     @Resource
-    BasicRoleDataPermissionService basicRoleDataPermissionService;
+    BasicCourseService basicCourseService;
 
     @Override
     public IPage<GradeBatchResult> gradeBatchPage(Long semesterId, Long examId, String batchName, int pageNumber, int pageSize, SysUser requestUser) {
@@ -429,6 +429,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
             throw ExceptionResultEnum.ERROR.exception("未找到批次信息");
         }
         Long schoolId = gradeBatch.getSchoolId();
+        Long examId = gradeBatch.getExamId();
 
         QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
         sysRoleQueryWrapper.lambda().eq(SysRole::getType, RoleTypeEnum.TEACHER).eq(SysRole::getEnable, true);
@@ -445,16 +446,23 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                 throw ExceptionResultEnum.ERROR.exception(key[0] + "找到多条用户记录");
             }
 
-            List<Long> orgIds = dtoList.stream().map(m -> m.getCourseCode() + "##" + m.getPaperNumber()).distinct().map(m -> {
-                String[] strings = m.split("##");
-                ExamTask examTask = examTaskService.getByExamIdAndPaperNumber(gradeBatch.getExamId(), strings[1]);
-                SysOrg sysOrg = sysOrgService.findCollegeLevelOrgByOrgId(examTask.getTeachingRoomId());
-                return sysOrg.getId();
-            }).distinct().collect(Collectors.toList());
-            if (orgIds.size() != 1) {
-                throw ExceptionResultEnum.ERROR.exception("任课老师" + key[0] + "对应课程不能属于不同学院");
+            GradeBatchStudentClazzDto dto = dtoList.get(0);
+            String paperNumber = dto.getPaperNumber();
+            String paperType = dto.getPaperType();
+            MarkPaper markPaper = markPaperService.getOne(
+                    new QueryWrapper<MarkPaper>().lambda().eq(MarkPaper::getExamId, examId).eq(MarkPaper::getPaperNumber, paperNumber).eq(MarkPaper::getPaperType, paperType)
+                            .last(SystemConstant.LIMIT1));
+            if (Objects.isNull(markPaper)) {
+                throw ExceptionResultEnum.ERROR.exception("未找到试卷信息");
             }
-            Long courseSecondaryOrgId = orgIds.get(0);
+
+            Long courseId = markPaper.getCourseId();
+            BasicCourse basicCourse = basicCourseService.getById(courseId);
+            if (Objects.isNull(basicCourse)) {
+                throw ExceptionResultEnum.ERROR.exception("未找到课程信息");
+            }
+
+            Long courseSecondaryOrgId = basicCourse.getTeachingRoomId();
 
             SysUser sysUser;
             if (sysUserList.isEmpty()) {

+ 1 - 3
distributed-print-business/src/main/resources/mapper/ExamStudentMapper.xml

@@ -179,7 +179,7 @@
             bc.name AS courseName,
             ms.paper_number AS paperNumber,
             ms.paper_type AS paperType,
-            btc.clazz_name AS clazzName,
+            bes.teach_class_name AS clazzName,
             teacher.login_name AS teacherNumber,
             teacher.real_name AS teacherName
         FROM
@@ -189,8 +189,6 @@
                 LEFT JOIN
             basic_course bc ON ms.course_id = bc.id
                 LEFT JOIN
-            basic_teach_clazz btc ON btc.id = bes.clazz_id
-                LEFT JOIN
             sys_user teacher ON teacher.id = bes.teacher_id
         <where>
             <if test="examId != null">

+ 4 - 4
distributed-print-business/src/main/resources/mapper/GradePaperDimensionMapper.xml

@@ -16,11 +16,11 @@
         FROM
             grade_paper_dimension gpd
                 LEFT JOIN
-            exam_task et ON gpd.school_id = et.school_id
-                AND gpd.exam_id = et.exam_id
-                AND gpd.paper_number = et.paper_number
+            mark_paper mp ON gpd.exam_id = mp.exam_id
+                AND gpd.paper_number = mp.paper_number
+                AND gpd.paper_type = mp.paper_type
                 LEFT JOIN
-            basic_course bc ON et.course_id = bc.id
+            basic_course bc ON mp.course_id = bc.id
         <where>
             <if test="schoolId != null and schoolId != ''">
                 AND gpd.school_id = #{schoolId}

+ 6 - 7
distributed-print-business/src/main/resources/mapper/GradePaperStructMapper.xml

@@ -41,17 +41,16 @@
             grade_paper_struct gps
                 LEFT JOIN
             (SELECT
-                 school_id,
                  exam_id,
                  paper_number,
-                 MAX(course_id) AS course_id
+                 paper_type,
+                 course_id
              FROM
-                 exam_task
-             GROUP BY school_id ,exam_id, paper_number) et ON gps.school_id = et.school_id
-                AND gps.exam_Id = et.exam_id
-                AND gps.paper_number = et.paper_number
+                 mark_paper) mp ON gps.exam_Id = mp.exam_id
+                AND gps.paper_number = mp.paper_number
+                AND gps.paper_type = mp.paper_type
                 LEFT JOIN
-            basic_course bc ON et.course_id = bc.id
+            basic_course bc ON mp.course_id = bc.id
         <where>
             <if test="schoolId != null and schoolId != ''">
                 AND gps.school_id = #{schoolId}

+ 7 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -299,11 +299,13 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
                             }
 
                             List<Long> intersectionPrivilegeIds = (List<Long>) CollectionUtils.intersection(relateIds, privilegeIds);
-                            QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper1 = new QueryWrapper<>();
-                            sysPrivilegeQueryWrapper1.lambda().in(SysPrivilege::getId, intersectionPrivilegeIds)
-                                    .eq(SysPrivilege::getType, PrivilegeEnum.URL)
-                                    .eq(SysPrivilege::getProperty, PrivilegePropertyEnum.AUTH);
-                            sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper1);
+                            if (CollectionUtils.isNotEmpty(intersectionPrivilegeIds)){
+                                QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper1 = new QueryWrapper<>();
+                                sysPrivilegeQueryWrapper1.lambda().in(SysPrivilege::getId, intersectionPrivilegeIds)
+                                        .eq(SysPrivilege::getType, PrivilegeEnum.URL)
+                                        .eq(SysPrivilege::getProperty, PrivilegePropertyEnum.AUTH);
+                                sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper1);
+                            }
                         }
                     }
                     authBean = new AuthBean(sysRoleList, sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toSet()), tbSchool, org);

+ 1 - 1
teachcloud-mark/src/main/resources/mapper/MarkQuestionMapper.xml

@@ -73,7 +73,7 @@
         FROM
             mark_question mq
                 LEFT JOIN
-            mark_paper mp ON mq.exam_id = mp.exam_id AND mq.paper_number = mp.paper_number
+            mark_paper mp ON mq.exam_id = mp.exam_id AND mq.paper_number = mp.paper_number AND mq.paper_type = mp.paper_type
                 LEFT JOIN
             basic_course bc ON mp.course_id = bc.id
         <where>

+ 1 - 3
teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

@@ -844,7 +844,7 @@
         bc.name courseName,
         bes.college_name,
         bes.major_name,
-        btc.clazz_name AS teachClassName,
+        bes.teach_class_name AS teachClassName,
         bes.class_name,
         su.real_name teacher,
         bes.teacher_id
@@ -856,8 +856,6 @@
         basic_course bc ON ms.course_id = bc.id
         LEFT JOIN
         sys_user su ON bes.teacher_id = su.id
-        LEFT JOIN
-        basic_teach_clazz btc ON bes.clazz_id = btc.id
         <where>
             <if test="markStudentQuery.id != null">
                 and ms.id = #{markStudentQuery.id}