wangliang 23 hours ago
parent
commit
bfd60d02cc

+ 10 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TRBasicInfoController.java

@@ -12,6 +12,7 @@ import com.qmth.boot.api.exception.ApiException;
 import com.qmth.boot.core.rateLimit.annotation.RateLimit;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCourse;
 import com.qmth.teachcloud.common.entity.BasicSchool;
@@ -22,6 +23,7 @@ import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.enums.ImportTemplateEnum;
 import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.FileUploadService;
 import com.qmth.teachcloud.common.util.*;
@@ -116,6 +118,9 @@ public class TRBasicInfoController {
     @Resource
     RedisUtil redisUtil;
 
+    @Resource
+    BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @ApiOperation(value = "报告管理列表")
     @RequestMapping(value = "/report/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "分页查询", response = ObeScoreResult.class)})
@@ -147,8 +152,10 @@ public class TRBasicInfoController {
             throw ExceptionResultEnum.ERROR.exception("未找到试卷蓝图信息");
         }
         MarkPaper markPaper = printCommonService.getMarkPaper(examId, tcPaperStruct.getPaperNumber(), courseId);
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
         if (CollectionUtils.isEmpty(trBasicInfoList)) {
-            trBasicInfoList = trBasicInfoService.getReportView(markPaper, obeCourseWeightResult, cultureProgramId, courseId, examId, paperNumber);
+            trBasicInfoList = trBasicInfoService.getReportView(markPaper, obeCourseWeightResult, cultureProgramId, courseId, examId, paperNumber, dpr);
             trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId,
                     Objects.nonNull(tcPaperStruct.getDimensionSign())
                             && tcPaperStruct.getDimensionSign().longValue()
@@ -191,7 +198,7 @@ public class TRBasicInfoController {
                             Objects.nonNull(tcPaperStruct.getDimensionSign())
                                     && tcPaperStruct.getDimensionSign().longValue()
                                     != obeCourseWeightResult.getDimensionSign().longValue());
-                    trBasicInfoList = trBasicInfoService.getReportView(markPaper, obeCourseWeightResult, cultureProgramId, courseId, examId, paperNumber);
+                    trBasicInfoList = trBasicInfoService.getReportView(markPaper, obeCourseWeightResult, cultureProgramId, courseId, examId, paperNumber, dpr);
                 } else {
                     ReportCourseBasicInfoDto reportCourseBasicInfoDto = new ReportCourseBasicInfoDto(trBasicInfo);
                     ReportCourseEvaluationSpreadDto reportCourseEvaluationSpreadDto = Objects.nonNull(trBasicInfo.getCourseEvaluationSpread()) ?
@@ -209,7 +216,6 @@ public class TRBasicInfoController {
         }
         //课程目标达成评价明细结果-课程目标达成评价值图
         List<ReportResult> reportResultList = new ArrayList<>(trBasicInfoList.size());
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysConfig sysConfig = commonCacheService.addSysConfigCache(sysUser.getSchoolId(), SystemConstant.SCHOOL_COURSE_DEGREE_COMPREHENSIVE_SCORE_SHOW);
         trBasicInfoList.stream().peek(s -> {
             if (Objects.nonNull(sysConfig) && Objects.nonNull(sysConfig.getConfigValue())) {
@@ -250,7 +256,7 @@ public class TRBasicInfoController {
                             != obeCourseWeightResult.getDimensionSign().longValue());
 
             trBasicInfoAgainCalculateList = trBasicInfoService.getReportView(markPaper,
-                    obeCourseWeightResult, cultureProgramId, courseId, Objects.nonNull(examId) ? examId : markPaper.getExamId(), Objects.nonNull(paperNumber) ? paperNumber : markPaper.getPaperNumber());
+                    obeCourseWeightResult, cultureProgramId, courseId, Objects.nonNull(examId) ? examId : markPaper.getExamId(), Objects.nonNull(paperNumber) ? paperNumber : markPaper.getPaperNumber(), null);
             if (!CollectionUtils.isEmpty(trBasicInfoList) && !CollectionUtils.isEmpty(trBasicInfoAgainCalculateList)) {
                 trBasicInfoAgainCalculateList.stream().peek(s -> s.setCalculate(trBasicInfoList.get(0))).collect(Collectors.toList());
             }

+ 5 - 2
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TRBasicInfoService.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.obe.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.deepoove.poi.data.ChartMultiSeriesRenderData;
 import com.deepoove.poi.data.TableRenderData;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.obe.been.dto.CourseWeightDto;
 import com.qmth.teachcloud.obe.been.obe.CourseSuggestDto;
@@ -68,10 +69,11 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      * @param trBasicInfo
      * @param paperStructDimensionResultList
      * @param obeCourseWeightResult
+     * @param dpr
      * @return
      */
     public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList,
-                                                        ObeCourseWeightResult obeCourseWeightResult);
+                                                        ObeCourseWeightResult obeCourseWeightResult, DataPermissionRule dpr);
 
     /**
      * 计算课程考核成绩评价结果
@@ -91,9 +93,10 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      * @param courseId
      * @param examId
      * @param paperNumber
+     * @param dpr
      * @return
      */
-    public List<TRBasicInfo> getReportView(MarkPaper markPaper, ObeCourseWeightResult obeCourseWeightResult, Long cultureProgramId, Long courseId, Long examId, String paperNumber);
+    public List<TRBasicInfo> getReportView(MarkPaper markPaper, ObeCourseWeightResult obeCourseWeightResult, Long cultureProgramId, Long courseId, Long examId, String paperNumber, DataPermissionRule dpr);
 
     /**
      * 构建word动态表格1-课程目标与毕业要求指标点的对应关系

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

@@ -337,6 +337,7 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      * @param courseId
      * @param teachClassName
      * @param userId
+     * @param dpr
      * @return
      */
     @Override

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

@@ -185,13 +185,12 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
      * @param trBasicInfo
      * @param paperStructDimensionResultList
      * @param obeCourseWeightResult
+     * @param dpr
      * @return
      */
     @Override
-    public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, ObeCourseWeightResult obeCourseWeightResult) {
+    public Map<String, Object> getReportCalculateParams(TRBasicInfo trBasicInfo, List<PaperStructDimensionResult> paperStructDimensionResultList, ObeCourseWeightResult obeCourseWeightResult, DataPermissionRule dpr) {
         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, dpr);//考生成绩
         if (CollectionUtils.isEmpty(finalScoreResultList)) {
@@ -467,18 +466,17 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
      * @param courseId
      * @param examId
      * @param paperNumber
+     * @param dpr
      * @return
      */
     @Override
     @Transactional
-    public List<TRBasicInfo> getReportView(MarkPaper markPaper, ObeCourseWeightResult obeCourseWeightResult, Long cultureProgramId, Long courseId, Long examId, String paperNumber) {
+    public List<TRBasicInfo> getReportView(MarkPaper markPaper, ObeCourseWeightResult obeCourseWeightResult, Long cultureProgramId, Long courseId, Long examId, String paperNumber, DataPermissionRule dpr) {
         ObeCourseOutline obeCourseOutline = obeCourseOutlineService.findByCultureProgramIdAndCourseId(cultureProgramId, courseId);
         Objects.requireNonNull(obeCourseOutline, "未找到课程大纲信息");
         BasicSemester basicSemester = basicSemesterService.getById(obeCourseOutline.getSemesterId());
         Objects.requireNonNull(basicSemester, "未找到学期信息");
 
-        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("未找到学生成绩,报告生成失败,请成绩管理录入学生成绩");
@@ -522,7 +520,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
                 trBasicInfo.getReportResult().setCourseEvaluationSpreadInfo(reportCourseEvaluationSpreadDto);
             }
 
-            Map<String, Object> paramsMap = trBasicInfoService.getReportCalculateParams(trBasicInfo, paperStructDimensionResultList, obeCourseWeightResult);
+            Map<String, Object> paramsMap = trBasicInfoService.getReportCalculateParams(trBasicInfo, paperStructDimensionResultList, obeCourseWeightResult, dpr);
 
             //课程目标达成评价明细结果-考生集合
             List<ReportExamStudentDto> examStudentNewList = trExamStudentService.getExamStudentReportDetail(trBasicInfo, paramsMap);