wangliang 1 天之前
父节点
当前提交
4ed42c3fa4

+ 2 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/mapper/TCFinalScoreMapper.java

@@ -71,9 +71,10 @@ public interface TCFinalScoreMapper extends BaseMapper<TCFinalScore> {
      * @param paperNumber
      * @param teachClassName
      * @param userId
+     * @param dpr
      * @return
      */
-    public List<FinalScoreResult> examStudentOverview(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("teachClassName") String teachClassName, @Param("userId") Long userId);
+    public List<FinalScoreResult> examStudentOverview(@Param("cultureProgramId") Long cultureProgramId, @Param("courseId") Long courseId, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("teachClassName") String teachClassName, @Param("userId") Long userId, @Param("dpr") DataPermissionRule dpr);
 
     /**
      * 根据考试id/课程编码/试卷编码查询数据库数据

+ 4 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TCFinalScoreService.java

@@ -2,10 +2,12 @@ package com.qmth.teachcloud.obe.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.obe.been.dto.FinalScoreDto;
 import com.qmth.teachcloud.obe.been.result.FinalScoreResult;
 import com.qmth.teachcloud.obe.been.result.ObeScoreResult;
 import com.qmth.teachcloud.obe.entity.TCFinalScore;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
@@ -84,9 +86,10 @@ public interface TCFinalScoreService extends IService<TCFinalScore> {
      * @param courseId
      * @param teachClassName
      * @param userId
+     * @param dpr
      * @return
      */
-    public List<FinalScoreResult> examStudentOverview(Long examId, String paperNumber, Long cultureProgramId, Long courseId, String teachClassName, Long userId);
+    public List<FinalScoreResult> examStudentOverview(Long examId, String paperNumber, Long cultureProgramId, Long courseId, String teachClassName, Long userId, DataPermissionRule dpr);
 
     /**
      * 同步期末成绩

+ 2 - 2
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCFinalScoreServiceImpl.java

@@ -340,8 +340,8 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      * @return
      */
     @Override
-    public List<FinalScoreResult> examStudentOverview(Long examId, String paperNumber, Long cultureProgramId, Long courseId, String teachClassName, Long userId) {
-        return this.baseMapper.examStudentOverview(cultureProgramId, courseId, examId, paperNumber, teachClassName, userId);
+    public List<FinalScoreResult> examStudentOverview(Long examId, String paperNumber, Long cultureProgramId, Long courseId, String teachClassName, Long userId, DataPermissionRule dpr) {
+        return this.baseMapper.examStudentOverview(cultureProgramId, courseId, examId, paperNumber, teachClassName, userId, dpr);
     }
 
     /**

+ 7 - 3
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TRBasicInfoServiceImpl.java

@@ -190,8 +190,10 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
     @Override
     public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, ObeCourseWeightResult obeCourseWeightResult) {
         Map<String, Object> paramsMap = new HashMap<>();
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
         //查询考生数据
-        List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(trBasicInfo.getExamId(), trBasicInfo.getPaperNumber(), trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getTeachClassName(), Objects.nonNull(trBasicInfo.getCreateId()) && trBasicInfo.getCreateId().longValue() != -1 ? trBasicInfo.getCreateId() : null);//考生成绩
+        List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(trBasicInfo.getExamId(), trBasicInfo.getPaperNumber(), trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getTeachClassName(), Objects.nonNull(trBasicInfo.getCreateId()) && trBasicInfo.getCreateId().longValue() != -1 ? trBasicInfo.getCreateId() : null, dpr);//考生成绩
         if (CollectionUtils.isEmpty(finalScoreResultList)) {
             throw ExceptionResultEnum.ERROR.exception("成绩数据异常,平时成绩与期末成绩里考生名单不一致,请检查");
         }
@@ -475,9 +477,11 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         BasicSemester basicSemester = basicSemesterService.getById(obeCourseOutline.getSemesterId());
         Objects.requireNonNull(basicSemester, "未找到学期信息");
 
-        List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(Objects.nonNull(examId) ? examId : markPaper.getExamId(), Objects.nonNull(paperNumber) ? paperNumber : markPaper.getPaperNumber(), cultureProgramId, courseId, null, null);//考生成绩
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+        List<FinalScoreResult> finalScoreResultList = tcFinalScoreService.examStudentOverview(Objects.nonNull(examId) ? examId : markPaper.getExamId(), Objects.nonNull(paperNumber) ? paperNumber : markPaper.getPaperNumber(), cultureProgramId, courseId, null, null, dpr);//考生成绩
         if (CollectionUtils.isEmpty(finalScoreResultList)) {
-            throw ExceptionResultEnum.ERROR.exception("成绩数据异常,平时成绩与期末成绩里考生名单不一致,请检查");
+            throw ExceptionResultEnum.ERROR.exception("未找到学生成绩,报告生成失败,请成绩管理录入学生成绩");
         }
 
         Set<ScoreParamDto> scoreParamDtoSet = new LinkedHashSet<>();

+ 16 - 0
teachcloud-obe/src/main/resources/mapper/TCFinalScoreMapper.xml

@@ -114,6 +114,7 @@
         tcus.culture_program_id and tcfs.student_code = tcus.student_code
         left join basic_exam_student bes on bes.exam_id = tcfs.exam_id and bes.paper_number = tcfs.paper_number and
         bes.student_code = tcfs.student_code
+        LEFT JOIN basic_course bc ON tcfs.course_id = bc.id and tcus.course_id = bc.id
         <where>
             <if test="cultureProgramId != null and cultureProgramId != ''">
                 and tcfs.culture_program_id = #{cultureProgramId}
@@ -133,6 +134,21 @@
             <if test="userId != null and userId != ''">
                 and tcfs.create_id = #{userId}
             </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    and bes.teacher_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.courseUserId != null">
+                    AND EXISTS( SELECT 1 FROM (select course_id from teach_course where user_id = #{dpr.courseUserId})
+                    tc WHERE tc.course_id = bc.id)
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND bc.teaching_room_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
             and tcfs.enable = true and tcus.enable = true and tcfs.score is not null and tcus.score is not null
         </where>
         group by tcfs.name,