Forráskód Böngészése

到知学知考里教研分析模块

caozixuan 2 éve
szülő
commit
8106b9666f
32 módosított fájl, 375 hozzáadás és 169 törlés
  1. 12 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradeBatch.java
  2. 12 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradeBatchPaper.java
  3. 5 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailMapper.java
  4. 3 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPaperStructureMapper.java
  5. 3 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java
  6. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskDetailMapper.java
  7. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java
  8. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/GradeBatchMapper.java
  9. 5 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/GradeBatchPaperMapper.java
  10. 3 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/GradeInitializeMapper.java
  11. 6 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java
  12. 24 20
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java
  13. 8 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPaperStructureServiceImpl.java
  14. 14 9
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  15. 15 13
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  16. 17 9
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  17. 10 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchPaperServiceImpl.java
  18. 12 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java
  19. 6 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeInitializeServiceImpl.java
  20. 40 20
      distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml
  21. 11 0
      distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml
  22. 20 10
      distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml
  23. 10 5
      distributed-print-business/src/main/resources/mapper/ExamTaskDetailMapper.xml
  24. 53 16
      distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml
  25. 11 0
      distributed-print-business/src/main/resources/mapper/GradeBatchMapper.xml
  26. 21 5
      distributed-print-business/src/main/resources/mapper/GradeBatchPaperMapper.xml
  27. 10 2
      distributed-print-business/src/main/resources/mapper/GradeInitializeMapper.xml
  28. 19 13
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java
  29. 3 8
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java
  30. 0 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java
  31. 6 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicRoleDataPermissionService.java
  32. 7 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicRoleDataPermissionServiceImpl.java

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradeBatch.java

@@ -30,6 +30,10 @@ public class GradeBatch extends BaseEntity implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long schoolId;
 
+    @ApiModelProperty(value = "机构id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long orgId;
+
     @ApiModelProperty(value = "学期id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long semesterId;
@@ -120,6 +124,14 @@ public class GradeBatch extends BaseEntity implements Serializable {
         this.schoolId = schoolId;
     }
 
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
     public Long getSemesterId() {
         return semesterId;
     }

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/GradeBatchPaper.java

@@ -28,6 +28,10 @@ public class GradeBatchPaper extends BaseEntity implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long schoolId;
 
+    @ApiModelProperty(value = "机构id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long orgId;
+
     @ApiModelProperty(value = "分析批次id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long batchId;
@@ -73,6 +77,14 @@ public class GradeBatchPaper extends BaseEntity implements Serializable {
         this.schoolId = schoolId;
     }
 
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
     public Long getBatchId() {
         return batchId;
     }

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailMapper.java

@@ -11,6 +11,7 @@ import com.qmth.distributed.print.business.bean.result.ExaminationDetailResult;
 import com.qmth.distributed.print.business.bean.result.ExaminationResult;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -41,7 +42,7 @@ public interface ExamDetailMapper extends BaseMapper<ExamDetail> {
                                       @Param("printStartTime") Long printStartTime,
                                       @Param("printEndTime") Long printEndTime,
                                       @Param("printHouseId") Long printHouseId,
-                                      @Param("orgIds") Set<Long> orgIds);
+                                      @Param("dpr") DataPermissionRule dpr);
 
     IPage<ExaminationResult> findBriefPage(@Param("page") Page<ExaminationResult> page,
                                            @Param("schoolId") Long schoolId,
@@ -55,7 +56,7 @@ public interface ExamDetailMapper extends BaseMapper<ExamDetail> {
                                            @Param("packageCode") String packageCode,
                                            @Param("startDate") Long startDate,
                                            @Param("endDate") Long endDate,
-                                           @Param("orgIds") Set<Long> orgIds);
+                                           @Param("dpr") DataPermissionRule dpr);
 
     IPage<ExaminationDetailResult> findDetailPage(@Param("page") Page<ExaminationDetailResult> page,
                                                   @Param("schoolId") Long schoolId,
@@ -86,7 +87,7 @@ public interface ExamDetailMapper extends BaseMapper<ExamDetail> {
                                     @Param("printStartTime") Long printStartTime,
                                     @Param("printEndTime") Long printEndTime,
                                     @Param("printHouseId") Long printHouseId,
-                                    @Param("orgIds") Set<Long> orgIds);
+                                    @Param("dpr") DataPermissionRule dpr);
 
     IPage<ClientExamStudentDto> listClientExamStudentPage(Page<ClientExamStudentDto> page, @Param("schoolId") Long schoolId, @Param("examDetailId") Long examDetailId, @Param("ticketNumber") String ticketNumber, @Param("studentName") String studentName, @Param("courseCode") String courseCode);
 
@@ -103,7 +104,7 @@ public interface ExamDetailMapper extends BaseMapper<ExamDetail> {
                              @Param("examStartTime") Long examStartTime,
                              @Param("examEndTime") Long examEndTime,
                              @Param("printHouseId") Long printHouseId,
-                             @Param("orgIds") Set<Long> orgIds);
+                             @Param("dpr") DataPermissionRule dpr);
 
     List<ExamDetailCourse> listSyncPaperNumberByPrintPlanId(@Param("printPlanId") Long printPlanId);
 

+ 3 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPaperStructureMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.entity.ExamPaperStructure;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -16,7 +17,7 @@ import java.util.List;
  * @author xf
  */
 public interface ExamPaperStructureMapper extends BaseMapper<ExamPaperStructure> {
-    IPage<ExamPaperStructure> listByPropositionTeacherId(@Param("page") Page<ExamPaperStructure> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums, @Param("ready") Boolean ready);
+    IPage<ExamPaperStructure> listByPropositionTeacherId(@Param("page") Page<ExamPaperStructure> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums, @Param("ready") Boolean ready,@Param("dpr") DataPermissionRule dpr);
 
-    List<ExamPaperStructure> listByPropositionTeacherId(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums, @Param("ready") Boolean ready);
+    List<ExamPaperStructure> listByPropositionTeacherId(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums, @Param("ready") Boolean ready,@Param("dpr") DataPermissionRule dpr);
 }

+ 3 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java

@@ -8,6 +8,7 @@ import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -30,7 +31,7 @@ public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
                                              @Param("status") PrintPlanStatusEnum status,
                                              @Param("startTime") Long startTime,
                                              @Param("endTime") Long endTime,
-                                             @Param("orgIds") Set<Long> orgIds);
+                                             @Param("dpr") DataPermissionRule dpr);
 
     IPage<PrintPlanResult> findPrintPlanSyncPage(@Param("iPage") Page<PrintPlanResult> iPage,
                                                  @Param("schoolId") Long schoolId,
@@ -42,7 +43,7 @@ public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
                                                  @Param("endTime") Long endTime,
                                                  @Param("orgIds") Set<Long> orgIds);
 
-    List<PrintPlanBrief> list(@Param("schoolId") Long schoolId, @Param("source") String source, @Param("module") String module, @Param("status") String[] status, @Param("orgIds") Set<Long> orgIds);
+    List<PrintPlanBrief> list(@Param("schoolId") Long schoolId, @Param("source") String source, @Param("module") String module, @Param("status") String[] status, @Param("dpr") DataPermissionRule dpr);
 
     IPage<ClientPrintTaskDto> listClientPrintTask(Page<ClientPrintTaskDto> page, @Param("schoolId") Long schoolId, @Param("machineCode") String machineCode, @Param("printPlanId") String printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("isDownload") Boolean isDownload, @Param("validate") Boolean validate, @Param("orgId") Long orgId, @Param("examDetailStatus") String[] examDetailStatus);
 

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskDetailMapper.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.dto.ExamTaskDetailDto;
 import com.qmth.distributed.print.business.bean.dto.ExamTaskDetailPdfDownloadDto;
 import com.qmth.distributed.print.business.entity.ExamTaskDetail;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -20,7 +21,7 @@ import java.util.Set;
  * @since 2021-03-23
  */
 public interface ExamTaskDetailMapper extends BaseMapper<ExamTaskDetail> {
-    IPage<ExamTaskDetailDto> listPage(Page<ExamTaskDetailDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("relateType") String relateType, @Param("printPlanIdList") List<Long> printPlanIdList, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userName") String userName, @Param("cardRuleId") Long cardRuleId, @Param("orgIds") Set<Long> orgIds);
+    IPage<ExamTaskDetailDto> listPage(Page<ExamTaskDetailDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("relateType") String relateType, @Param("printPlanIdList") List<Long> printPlanIdList, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userName") String userName, @Param("cardRuleId") Long cardRuleId, @Param("dpr") DataPermissionRule dpr);
 
     List<String> listExamDetailCourse(@Param("schoolId") Long schoolId, @Param("paperType") String paperType, @Param("printPlanId") Long printPlanId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber);
 

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java

@@ -27,19 +27,19 @@ import java.util.Set;
  */
 public interface ExamTaskMapper extends BaseMapper<ExamTask> {
 
-    IPage<ExamTaskDto> listPage(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable, @Param("status") String status, @Param("cardRuleId") Long cardRuleId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("orgIds") Set<Long> orgIds, @Param("userName") String userName, @Param("createName") String createName);
+    IPage<ExamTaskDto> listPage(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("enable") Boolean enable, @Param("status") String status, @Param("cardRuleId") Long cardRuleId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("dpr") DataPermissionRule dpr, @Param("userName") String userName, @Param("createName") String createName);
 
     List<BlurryUserDto> listUser(@Param("schoolId") Long schoolId, @Param("param") String param, @Param("orgIds") Set<Long> orgIds);
 
-    IPage<ExamTaskDto> listTaskApply(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("auditStatus") String auditStatus, @Param("cardRuleId") Long cardRuleId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("userId") Long userId, @Param("orgIds") Set<Long> orgIds, @Param("userName") String userName);
+    IPage<ExamTaskDto> listTaskApply(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("auditStatus") String auditStatus, @Param("cardRuleId") Long cardRuleId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("userId") Long userId, @Param("dpr") DataPermissionRule dpr, @Param("userName") String userName);
 
-    IPage<ExamTaskDto> listTaskReviewUnaudited(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("cardRuleId") Long cardRuleId, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("orgIds") Set<Long> orgIds, @Param("startCreateTime") Long startCreateTime, @Param("endCreateTime") Long endCreateTime, @Param("createName") String createName, @Param("currentUserId") Long currentUserId);
+    IPage<ExamTaskDto> listTaskReviewUnaudited(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("cardRuleId") Long cardRuleId, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("dpr") DataPermissionRule dpr, @Param("startCreateTime") Long startCreateTime, @Param("endCreateTime") Long endCreateTime, @Param("createName") String createName, @Param("currentUserId") Long currentUserId);
 
     IPage<ExamTaskDto> listTaskReviewAudited(Page<ExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("reviewStatus") String reviewStatus, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("userId") Long userId, @Param("cardRuleId") Long cardRuleId, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("orgIds") Set<Long> orgIds, @Param("startCreateTime") Long startCreateTime, @Param("endCreateTime") Long endCreateTime, @Param("createName") String createName, @Param("currentUserId") Long currentUserId);
 
-    IPage<ExamTaskDetailDto> listTaskPaper(Page<ExamTaskDetailDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("orgIds") Set<Long> orgIds, @Param("containsQuestionTeacher") boolean containsQuestionTeacher, @Param("userId") Long userId, @Param("makeMethod") MakeMethodEnum makeMethod, @Param("cardRuleId") Long cardRuleId);
+    IPage<ExamTaskDetailDto> listTaskPaper(Page<ExamTaskDetailDto> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("dpr") DataPermissionRule dpr, @Param("containsQuestionTeacher") boolean containsQuestionTeacher, @Param("userId") Long userId, @Param("makeMethod") MakeMethodEnum makeMethod, @Param("cardRuleId") Long cardRuleId);
 
-    List<RelatePaperDto> listPaperNumbers(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("status") String status);
+    List<RelatePaperDto> listPaperNumbers(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("status") String status,@Param("dpr") DataPermissionRule dpr);
 
     ExamTaskDetailCardDto applyGetOne(@Param("examTaskId") Long examTaskId, @Param("source") String source);
 

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/GradeBatchMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchResult;
 import com.qmth.distributed.print.business.entity.GradeBatch;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -24,5 +25,5 @@ public interface GradeBatchMapper extends BaseMapper<GradeBatch> {
      * @param schoolId  学校id
      * @return 分页结果
      */
-    IPage<GradeBatchResult> findGradeBatchPage(@Param("iPage") Page<GradeBatchResult> iPage, @Param("batchName") String batchName, @Param("schoolId") Long schoolId);
+    IPage<GradeBatchResult> findGradeBatchPage(@Param("iPage") Page<GradeBatchResult> iPage, @Param("batchName") String batchName, @Param("schoolId") Long schoolId,@Param("dpr") DataPermissionRule dpr);
 }

+ 5 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/GradeBatchPaperMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult;
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -34,7 +35,8 @@ public interface GradeBatchPaperMapper extends BaseMapper<GradeBatchPaper> {
                                                          @Param("batchId") Long batchId,
                                                          @Param("examId") Long examId,
                                                          @Param("courseName") String courseName,
-                                                         @Param("schoolId") Long schoolId);
+                                                         @Param("schoolId") Long schoolId,
+                                                         @Param("dpr") DataPermissionRule dpr);
 
     /**
      * 查询可以分析的试卷数据
@@ -44,7 +46,7 @@ public interface GradeBatchPaperMapper extends BaseMapper<GradeBatchPaper> {
      * @param collegeId   开课学院id
      * @param courseCode  课程编号
      * @param teacherName 命题教师名称
-     * @param orgIds      数据权限
+     * @param dpr      数据权限
      * @param schoolId    学校id
      * @return 查询结果
      */
@@ -53,7 +55,7 @@ public interface GradeBatchPaperMapper extends BaseMapper<GradeBatchPaper> {
                                                      @Param("collegeId") Long collegeId,
                                                      @Param("courseCode") String courseCode,
                                                      @Param("teacherName") String teacherName,
-                                                     @Param("orgIds") Set<Long> orgIds,
+                                                     @Param("dpr") DataPermissionRule dpr,
                                                      @Param("schoolId") Long schoolId);
 
 

+ 3 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/GradeInitializeMapper.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.mapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeInitResult;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -21,7 +22,7 @@ public interface GradeInitializeMapper {
      * @param semesterId 学期id
      * @param examId     考试id
      * @param courseCode 课程编号
-     * @param userId     命题教师id
+     * @param dpr     命题教师id
      * @param schoolId   学校id
      * @return 结果
      */
@@ -29,7 +30,7 @@ public interface GradeInitializeMapper {
                                                  @Param("semesterId") Long semesterId,
                                                  @Param("examId") Long examId,
                                                  @Param("courseCode") String courseCode,
-                                                 @Param("userId") Long userId,
+                                                 @Param("dpr") DataPermissionRule dpr,
                                                  @Param("schoolId") Long schoolId);
 
     List<GradeInitResult> listNeedAnalyzedPaperToWork(@Param("schoolId") Long schoolId, @Param("userId") Long userId, @Param("status") String status, @Param("ready") Boolean ready);

+ 6 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java

@@ -11,6 +11,8 @@ import com.qmth.distributed.print.business.bean.result.SummarizedDataResult;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 import com.qmth.distributed.print.business.enums.ExamDataSourceEnum;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.entity.BasicRoleDataPermission;
 import com.qmth.teachcloud.common.entity.SysUser;
 
 import javax.servlet.http.HttpServletResponse;
@@ -84,11 +86,11 @@ public interface ExamDetailService extends IService<ExamDetail> {
      * @param startDate       考试开始日期
      * @param endDate         考试结束日期
      * @param pageSize        分页数量
-     * @param orgIds          权限控制参数
+     * @param dpr          权限控制参数
      * @return 查询结果
      */
     IPage<ExaminationResult> findExaminationBriefPage(Long schoolId, Long semesterId, Long examId, List<Long> printPlanIdList, String courseCode, String paperNumber,
-                                                      String examPlace, String examRoom, String packageCode, Long startDate, Long endDate, int pageNumber, int pageSize, Set<Long> orgIds);
+                                                      String examPlace, String examRoom, String packageCode, Long startDate, Long endDate, int pageNumber, int pageSize, DataPermissionRule dpr);
 
     /**
      * 查询考务数据-汇总数据查询
@@ -104,11 +106,11 @@ public interface ExamDetailService extends IService<ExamDetail> {
      * @param packageCode     卷袋编号
      * @param startDate       考试日期-起始
      * @param endDate         考试日期-终止
-     * @param orgIds          权限控制参数
+     * @param dpr          权限控制参数
      * @return 查询结果
      */
     SummarizedDataResult findSummarizedData(Long schoolId, Long semesterId, Long examId, List<Long> printPlanIdList, String courseCode, String paperNumber,
-                                            String examPlace, String examRoom, String packageCode, Long startDate, Long endDate, Set<Long> orgIds);
+                                            String examPlace, String examRoom, String packageCode, Long startDate, Long endDate, DataPermissionRule dpr);
 
 
     /**

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

@@ -18,6 +18,7 @@ import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.mapper.ExamDetailMapper;
 import com.qmth.distributed.print.business.service.*;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.bean.params.BasicStudentExtrasParam;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -39,7 +40,6 @@ import org.apache.poi.xssf.usermodel.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -94,19 +94,19 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Resource
     ConvertUtil convertUtil;
 
-    @Autowired
+    @Resource
     private ClientPrintDataService clientPrintDataService;
 
-    @Autowired
+    @Resource
     ClientStatusService clientStatusService;
 
     @Resource
     TeachcloudCommonService teachcloudCommonService;
 
-    @Autowired
+    @Resource
     BasicCampusService basicCampusService;
 
-    @Autowired
+    @Resource
     ExamTaskService examTaskService;
 
     @Resource
@@ -118,6 +118,9 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Resource
     TeachClazzService teachClazzService;
 
+    @Resource
+    BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public double calculateTotalSubjects(Long printPlanId) {
@@ -135,20 +138,22 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Override
     public IPage<PrintTaskDto> listPrintTask(Long semesterId, Long examId, Long printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Long printStartTime, Long printEndTime, Long printHouseId, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
         Page<PrintTaskDto> page = new Page<>(pageNumber, pageSize);
-        return this.baseMapper.listPrintTask(page, schoolId, semesterId, examId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, printHouseId, orgIds);
+        return this.baseMapper.listPrintTask(page, schoolId, semesterId, examId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, printHouseId, dpr);
     }
 
     @Override
     public PrintTaskTotalDto taskTotalData(Long printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Long printStartTime, Long printEndTime, Long printHouseId) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
-        PrintTaskTotalDto printTaskTotalDto = this.baseMapper.taskTotalData(schoolId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, printHouseId, orgIds);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
+        PrintTaskTotalDto printTaskTotalDto = this.baseMapper.taskTotalData(schoolId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printStartTime, printEndTime, printHouseId, dpr);
 
         if (printTaskTotalDto != null) {
             // 试卷总计
-            Integer paperCount = this.baseMapper.selectPaperCount(schoolId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printHouseId, orgIds);
+            Integer paperCount = this.baseMapper.selectPaperCount(schoolId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, printHouseId, dpr);
             printTaskTotalDto.setPaperCount(paperCount == null ? 0 : paperCount);
         }
         return printTaskTotalDto;
@@ -263,8 +268,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public IPage<ExaminationResult> findExaminationBriefPage(Long schoolId, Long semesterId, Long examId, List<Long> printPlanIdList, String courseCode, String paperNumber, String examPlace, String examRoom, String packageCode, Long startDate, Long endDate, int pageNumber, int pageSize, Set<Long> orgIds) {
-        IPage<ExaminationResult> page = examDetailMapper.findBriefPage(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, printPlanIdList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate, orgIds);
+    public IPage<ExaminationResult> findExaminationBriefPage(Long schoolId, Long semesterId, Long examId, List<Long> printPlanIdList, String courseCode, String paperNumber, String examPlace, String examRoom, String packageCode, Long startDate, Long endDate, int pageNumber, int pageSize, DataPermissionRule dpr) {
+        IPage<ExaminationResult> page = examDetailMapper.findBriefPage(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, printPlanIdList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate, dpr);
         List<ExaminationResult> list = page.getRecords();
         for (ExaminationResult examinationResult : list) {
             String examDetailCourseIds = examinationResult.getExamDetailCourseIds();
@@ -303,8 +308,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public SummarizedDataResult findSummarizedData(Long schoolId, Long semesterId, Long examId, List<Long> printPlanIdList, String courseCode, String paperNumber, String examPlace, String examRoom, String packageCode, Long startDate, Long endDate, Set<Long> orgIds) {
-        IPage<ExaminationResult> page = this.findExaminationBriefPage(schoolId, semesterId, examId, printPlanIdList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate, SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE, orgIds);
+    public SummarizedDataResult findSummarizedData(Long schoolId, Long semesterId, Long examId, List<Long> printPlanIdList, String courseCode, String paperNumber, String examPlace, String examRoom, String packageCode, Long startDate, Long endDate, DataPermissionRule dpr) {
+        IPage<ExaminationResult> page = this.findExaminationBriefPage(schoolId, semesterId, examId, printPlanIdList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate, SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE, dpr);
         List<ExaminationResult> list = page.getRecords();
         int totalSubjects = 0;
         for (ExaminationResult examinationResult : list) {
@@ -707,7 +712,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         }
         List<Long> printPlanIdList = null;
         if (map.get("printPlanIdList") != null) {
-            printPlanIdList = (List<Long>) map.get("printPlanIdList");
+            printPlanIdList = JSON.parseArray(map.get("printPlanIdList").toString(),Long.class);
         }
         String courseCode = null;
         if (map.get("courseCode") != null) {
@@ -737,17 +742,16 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         if (map.get("endDate") != null) {
             endDate = Long.valueOf(String.valueOf(map.get("endDate")));
         }
-        Set<Long> orgIds = new HashSet<>();
-        if (Objects.nonNull(map.get("orgIds"))) {
-            orgIds = (Set<Long>) map.get("orgIds");
+        DataPermissionRule dpr = new DataPermissionRule();
+        if (Objects.nonNull(map.get("dpr"))) {
+            dpr = (DataPermissionRule) map.get("dpr");
         }
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
-        Long userId = tbTask.getCreateId();
         Long schoolId = tbTask.getSchoolId();
 
         List<ExaminationResult> examinationResultList = this.findExaminationBriefPage(schoolId, semesterId, examId,
                 printPlanIdList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate,
-                SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE, orgIds).getRecords();
+                SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE, dpr).getRecords();
         int index = 0;
         List<ExaminationExportDto> examinationExportDtoList = new ArrayList<>();
         for (ExaminationResult examinationResult : examinationResultList) {

+ 8 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPaperStructureServiceImpl.java

@@ -18,6 +18,7 @@ import com.qmth.distributed.print.business.enums.ExamPaperStructureStatusEnum;
 import com.qmth.distributed.print.business.enums.ExamPrintPlanSyncStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamPaperStructureMapper;
 import com.qmth.distributed.print.business.service.*;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.stmms.ExamCloudPaperStructDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
@@ -28,6 +29,7 @@ import com.qmth.teachcloud.common.enums.PushTypeEnum;
 import com.qmth.teachcloud.common.enums.QuestionType;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.sync.CloudMarkingTaskUtils;
@@ -92,12 +94,16 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
     @Resource
     TBSyncTaskService tbSyncTaskService;
 
+    @Resource
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @Override
     public IPage<ExamPaperStructure> listByPropositionTeacherId(Long semesterId, Long examId, Integer pageNumber, Integer pageSize, String[] structureStatusEnums, Boolean ready) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, sysUser.getId(), ServletUtil.getRequest().getServletPath());
         Page<ExamPaperStructure> page = new Page<>(pageNumber, pageSize);
-        IPage<ExamPaperStructure> examPaperStructureIPage = this.baseMapper.listByPropositionTeacherId(page, schoolId, semesterId, examId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums, ready);
+        IPage<ExamPaperStructure> examPaperStructureIPage = this.baseMapper.listByPropositionTeacherId(page, schoolId, semesterId, examId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums, ready, dpr);
         examPaperStructureIPage.getRecords().forEach(m -> {
             m.setStatusStr(ExamPaperStructureStatusEnum.INIT.equals(m.getStatus()) ? "未提交" : "已提交");
 
@@ -316,7 +322,7 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         String[] structureStatusEnums = new String[]{ExamPaperStructureStatusEnum.FINISH.name()};
-        List<ExamPaperStructure> examPaperStructureList = this.baseMapper.listByPropositionTeacherId(schoolId, null, null, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums, ready);
+        List<ExamPaperStructure> examPaperStructureList = this.baseMapper.listByPropositionTeacherId(schoolId, null, null, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums, ready,null);
         return CollectionUtils.isEmpty(examPaperStructureList) ? 0 : examPaperStructureList.size();
     }
 

+ 14 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -20,6 +20,7 @@ import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamPrintPlanMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCloudMarkingTaskService;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicSchool;
@@ -64,28 +65,28 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Resource
     private BasicSchoolService basicSchoolService;
 
-    @Autowired
+    @Resource
     private ExamTaskService examTaskService;
 
-    @Autowired
+    @Resource
     private BasicAttachmentService basicAttachmentService;
 
     @Resource
     private BasicExamRuleService basicExamRuleService;
 
-    @Autowired
+    @Resource
     private BasicMessageService basicMessageService;
 
     @Resource
     private TBTaskService tbTaskService;
 
-    @Autowired
+    @Resource
     private ClientPrintDataService clientPrintDataService;
 
     @Resource
     TeachcloudCommonService teachcloudCommonService;
 
-    @Autowired
+    @Resource
     BasicClazzService basicClazzService;
 
     @Resource
@@ -103,11 +104,15 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Resource
     BasicTemplateService basicTemplateService;
 
+    @Resource
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public IPage<PrintPlanResult> printPlanPage(Long schoolId, Long semesterId, Long examId, List<Long> printPlanIdList, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize) {
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
-        IPage<PrintPlanResult> page = examPrintPlanMapper.findPrintPlanPage(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, printPlanIdList, status, startTime, endTime, orgIds);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
+        IPage<PrintPlanResult> page = examPrintPlanMapper.findPrintPlanPage(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, printPlanIdList, status, startTime, endTime, dpr);
         List<PrintPlanResult> list = page.getRecords();
         for (PrintPlanResult printPlanResult : list) {
             List<Map> variableContent = JSONObject.parseArray(printPlanResult.getVariableContentTemp(), Map.class);
@@ -169,9 +174,9 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
             String[] status = {PrintPlanStatusEnum.READY.name(), PrintPlanStatusEnum.PRINTING.name(), PrintPlanStatusEnum.PRINT_FINISH.name()};
             list = this.baseMapper.listToClient(schoolId, source, module, status, sysUser.getOrgId());
         } else {
-            Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+            DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission();
             String[] status = {PrintPlanStatusEnum.READY.name(), PrintPlanStatusEnum.PRINTING.name(), PrintPlanStatusEnum.PRINT_FINISH.name()};
-            list = this.baseMapper.list(schoolId, source, module, status, orgIds);
+            list = this.baseMapper.list(schoolId, source, module, status, dpr);
         }
         return list;
     }

+ 15 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -16,15 +16,13 @@ import com.qmth.distributed.print.business.enums.FlowJoinTypeEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamTaskDetailMapper;
 import com.qmth.distributed.print.business.service.*;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.*;
-import com.qmth.teachcloud.common.service.CommonCacheService;
-import com.qmth.teachcloud.common.service.SysUserService;
-import com.qmth.teachcloud.common.service.TBTaskService;
-import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.activiti.engine.TaskService;
@@ -52,23 +50,23 @@ import java.util.stream.Collectors;
 @Service
 public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper, ExamTaskDetail> implements ExamTaskDetailService {
 
-    @Autowired
+    @Resource
     private ExamTaskService examTaskService;
 
-    @Autowired
+    @Resource
     private ExamDetailService examDetailService;
 
-    @Autowired
+    @Resource
     private ExamDetailCourseService examDetailCourseService;
 
-    @Autowired
+    @Resource
     private ExamStudentService examStudentService;
 
-    @Autowired
+    @Resource
     @Lazy
     private PrintCommonService printCommonService;
 
-    @Autowired
+    @Resource
     private ExamPrintPlanService examPrintPlanService;
 
     @Resource
@@ -86,7 +84,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     @Resource
     TaskService taskService;
 
-    @Autowired
+    @Resource
     TFFlowApproveService tfFlowApproveService;
 
     @Resource
@@ -101,6 +99,9 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     @Resource
     ExamTaskDetailMapper examTaskDetailMapper;
 
+    @Resource
+    BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @Transactional
     @Override
     public boolean enable(ExamTaskDetail examTaskDetail) {
@@ -255,9 +256,10 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     public IPage<ExamTaskDetailDto> list(Long semesterId, Long examId, String relateType, List<Long> printPlanIdList, String courseCode, String paperNumber, String userName, Long cardRuleId, Integer pageNumber, Integer pageSize) {
         userName = SystemConstant.translateSpecificSign(userName);
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
         Page<ExamTaskDetailDto> page = new Page<>(pageNumber, pageSize);
-        IPage<ExamTaskDetailDto> examDetailDtoIPage = this.baseMapper.listPage(page, schoolId, semesterId, examId, relateType, printPlanIdList, courseCode, paperNumber, userName, cardRuleId, orgIds);
+        IPage<ExamTaskDetailDto> examDetailDtoIPage = this.baseMapper.listPage(page, schoolId, semesterId, examId, relateType, printPlanIdList, courseCode, paperNumber, userName, cardRuleId, dpr);
         examDetailDtoIPage.getRecords().stream().map(m -> {
             String paperType = StringUtils.isBlank(m.getRelatePaperType()) ? null : m.getRelatePaperType();
             Long printPlanIdT = Long.valueOf(m.getPrintPlanId());

+ 17 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -28,6 +28,7 @@ import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.distributed.print.business.util.CreatePdfUtil;
 import com.qmth.distributed.print.business.util.HtmlToPdfUtil;
 import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.bean.dto.excel.DescribeImportDto;
 import com.qmth.teachcloud.common.bean.params.BasicStudentExtrasParam;
@@ -215,6 +216,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Resource
     TaskLogicService taskLogicService;
 
+    @Resource
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @Override
     public List<ExamTask> listByCourseCode(Long schoolId, String code) {
         QueryWrapper<ExamTask> queryWrapper = new QueryWrapper<>();
@@ -227,9 +231,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         userName = SystemConstant.translateSpecificSign(userName);
         createName = SystemConstant.translateSpecificSign(createName);
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
         Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
-        IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listPage(page, schoolId, semesterId, examId, enable, status, cardRuleId, courseCode, paperNumber, startTime, endTime, orgIds, userName, createName);
+        IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listPage(page, schoolId, semesterId, examId, enable, status, cardRuleId, courseCode, paperNumber, startTime, endTime, dpr, userName, createName);
         for (ExamTaskDto record : examTaskDtoIPage.getRecords()) {
             // 判断审批表状态
             String cellPaperNumber = record.getPaperNumber();
@@ -768,8 +773,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         userName = SystemConstant.translateSpecificSign(userName);
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
-        IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskApply(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, auditStatus, cardRuleId, courseCode, paperNumber, startTime, endTime, sysUser.getId(), orgIds, userName);
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,sysUser.getId(),ServletUtil.getRequest().getServletPath());
+        IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listTaskApply(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, auditStatus, cardRuleId, courseCode, paperNumber, startTime, endTime, sysUser.getId(), dpr, userName);
         for (ExamTaskDto record : examTaskDtoIPage.getRecords()) {
             if ((record.getReview() && FlowStatusEnum.FINISH.name().equals(record.getAuditStatus()) && !ExamModelEnum.MODEL3.equals(record.getExamModel()))) {
                 record.setApproveFormStatus(true);
@@ -786,8 +791,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         createName = SystemConstant.translateSpecificSign(createName);
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
-        return this.baseMapper.listTaskReviewUnaudited(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, courseCode, paperNumber, userId, cardRuleId, startTime, endTime, orgIds, startCreateTime, endCreateTime, createName, sysUser.getId());
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,sysUser.getId(),ServletUtil.getRequest().getServletPath());
+        return this.baseMapper.listTaskReviewUnaudited(new Page<>(pageNumber, pageSize), schoolId, semesterId, examId, courseCode, paperNumber, userId, cardRuleId, startTime, endTime, dpr, startCreateTime, endCreateTime, createName, sysUser.getId());
     }
 
     @Override
@@ -830,15 +835,18 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 //        boolean containsQuestionTeacher = list.stream().anyMatch(m -> RoleTypeEnum.QUESTION_TEACHER.equals(m.getType()));
         boolean containsQuestionTeacher = false;
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
         Page<ExamTaskDetailDto> page = new Page<>(pageNumber, pageSize);
-        return this.baseMapper.listTaskPaper(page, schoolId, semesterId, examId, courseCode, paperNumber, startTime, endTime, orgIds, containsQuestionTeacher, sysUser.getId(), makeMethod, cardRuleId);
+        return this.baseMapper.listTaskPaper(page, schoolId, semesterId, examId, courseCode, paperNumber, startTime, endTime, dpr, containsQuestionTeacher, sysUser.getId(), makeMethod, cardRuleId);
     }
 
     @Override
     public List<RelatePaperDto> listPaperTypes(Long examTaskId, Long printPlanId, String courseCode) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        List<RelatePaperDto> list = this.baseMapper.listPaperNumbers(schoolId, courseCode, ExamStatusEnum.SUBMIT.name());
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
+        List<RelatePaperDto> list = this.baseMapper.listPaperNumbers(schoolId, courseCode, ExamStatusEnum.SUBMIT.name(),dpr);
         for (RelatePaperDto relatePaperDto : list) {
             QueryWrapper<ExamTaskDetail> queryWrapper = new QueryWrapper<>();
             queryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, relatePaperDto.getId()).eq(ExamTaskDetail::getEnable, true);

+ 10 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchPaperServiceImpl.java

@@ -12,13 +12,16 @@ import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperRe
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.mapper.GradeBatchPaperMapper;
 import com.qmth.distributed.print.business.service.*;
+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.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -57,12 +60,15 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
     GradeModuleEvaluationService gradeModuleEvaluationService;
     @Resource
     ExamTaskService examTaskService;
+    @Resource
+    BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     @Override
     public IPage<GradeBatchPaperResult> findGradeBatchPaperPage(Long batchId, Long examId, String courseName, int pageNumber, int pageSize, SysUser requestUser) {
         Long schoolId = requestUser.getSchoolId();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
         courseName = SystemConstant.translateSpecificSign(courseName);
-        IPage<GradeBatchPaperResult> datasource = this.baseMapper.findGradeBatchPaperPage(new Page<>(pageNumber, pageSize), batchId, examId, courseName, schoolId);
+        IPage<GradeBatchPaperResult> datasource = this.baseMapper.findGradeBatchPaperPage(new Page<>(pageNumber, pageSize), batchId, examId, courseName, schoolId, dpr);
         for (GradeBatchPaperResult record : datasource.getRecords()) {
             Long teachingRoomId = record.getTeachingRoomId();
             SysOrg teachCollege = sysOrgService.findCollegeLevelOrgByOrgId(teachingRoomId);
@@ -75,13 +81,13 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
     @Override
     public List<GradeBatchPaperResult> findAbleAnalyzePaperList(Long batchId, Long examId, Long collegeId, String courseCode, String teacherName, SysUser requestUser) {
         Long schoolId = requestUser.getSchoolId();
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
         GradeBatch gradeBatch = gradeBatchService.getById(batchId);
         if (Objects.isNull(gradeBatch)) {
             throw ExceptionResultEnum.ERROR.exception("教研分析批次不存在");
         }
 
-        List<GradeBatchPaperResult> datasource = this.baseMapper.findAbleAnalyzePaper(gradeBatch.getSemesterId(), examId, collegeId, courseCode, SystemConstant.translateSpecificSign(teacherName), orgIds, schoolId);
+        List<GradeBatchPaperResult> datasource = this.baseMapper.findAbleAnalyzePaper(gradeBatch.getSemesterId(), examId, collegeId, courseCode, SystemConstant.translateSpecificSign(teacherName), dpr, schoolId);
         List<GradeBatchPaperResult> needAddList = new ArrayList<>();
         for (GradeBatchPaperResult gradeBatchPaperResult : datasource) {
             // 额外处理开课学院
@@ -148,6 +154,7 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
                 gradeBatchPaper.setStatus(GradeAnalyzePaperStatusEnum.PUSH_GRADE_BATCH);
                 gradeBatchPaper.setEnable(true);
                 gradeBatchPaper.setPublishStatus(false);
+                gradeBatchPaper.setOrgId(requestUser.getOrgId());
                 updateBatchStatus.set(true);
 
                 // 更新批次状态为PUSH_GRADE_BATCH

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

@@ -22,6 +22,7 @@ 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.SysRole;
@@ -90,10 +91,14 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
     @Resource
     SysOrgService sysOrgService;
 
+    @Resource
+    BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @Override
     public IPage<GradeBatchResult> gradeBatchPage(String batchName, int pageNumber, int pageSize, SysUser requestUser) {
         batchName = SystemConstant.translateSpecificSign(batchName);
-        IPage<GradeBatchResult> page = this.baseMapper.findGradeBatchPage(new Page<>(pageNumber, pageSize), batchName, requestUser.getSchoolId());
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission();
+        IPage<GradeBatchResult> page = this.baseMapper.findGradeBatchPage(new Page<>(pageNumber, pageSize), batchName, requestUser.getSchoolId(),dpr);
         for (GradeBatchResult record : page.getRecords()) {
             String txtPath = record.getReportFilePath();
             if (SystemConstant.strNotNull(txtPath)) {
@@ -129,12 +134,14 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
         gradeBatch.setSchoolId(schoolId);
         gradeBatch.setSemesterId(semesterId);
         if (!SystemConstant.longNotNull(id)) {
-            id = SystemConstant.getDbUuid();
+            // 新增
+            gradeBatch.insertInfo(requestUser.getId());
+            gradeBatch.setOrgId(requestUser.getOrgId());
+        }else {
+            gradeBatch.updateInfo(requestUser.getId());
         }
-        gradeBatch.setId(id);
-
         this.saveOrUpdate(gradeBatch);
-        return id;
+        return gradeBatch.getId();
     }
 
     @Override

+ 6 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeInitializeServiceImpl.java

@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeInitResult;
 import com.qmth.distributed.print.business.mapper.GradeInitializeMapper;
 import com.qmth.distributed.print.business.service.GradeInitializeService;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
 
@@ -26,17 +28,19 @@ import java.util.Objects;
 public class GradeInitializeServiceImpl implements GradeInitializeService {
     @Resource
     GradeInitializeMapper gradeInitializeMapper;
+    @Resource
+    BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     @Override
     public IPage<GradeInitResult> findNeedAnalyzedPaper(Long semesterId, Long examId, String courseCode, SysUser requestUser, int pageNumber, int pageSize) {
         Long schoolId = requestUser.getSchoolId();
-        Long userId = requestUser.getId();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
 
         List<String> finished = new ArrayList<>();
         finished.add(GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE.name());
         finished.add(GradeAnalyzePaperStatusEnum.CALCULATING.name());
         finished.add(GradeAnalyzePaperStatusEnum.FINISH_CALCULATE.name());
-        IPage<GradeInitResult> page = gradeInitializeMapper.findNeedAnalyzedPaper(new Page<>(pageNumber, pageSize), semesterId, examId, courseCode, userId, schoolId);
+        IPage<GradeInitResult> page = gradeInitializeMapper.findNeedAnalyzedPaper(new Page<>(pageNumber, pageSize), semesterId, examId, courseCode, dpr, schoolId);
         for (GradeInitResult record : page.getRecords()) {
             String status = record.getStatus();
             if (SystemConstant.strNotNull(status)) {

+ 40 - 20
distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml

@@ -120,11 +120,16 @@
                 <if test="printHouseId != null and printHouseId != ''">
                     and b.print_house_id = #{printHouseId}
                 </if>
-                <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                    AND d.org_id IN
-                    <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                        #{item}
-                    </foreach>
+                <if test="dpr != null">
+                    <if test="dpr.requestUserId != null">
+                        AND a.create_id = #{dpr.requestUserId}
+                    </if>
+                    <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                        AND a.org_id IN
+                        <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                            #{item}
+                        </foreach>
+                    </if>
                 </if>
             </where>
         ORDER BY a.id desc, b.id desc
@@ -195,11 +200,16 @@
             <if test="examId != null and examId != ''">
                 AND be.id = #{examId}
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size() > 0">
-                AND b.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND det.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND det.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
         GROUP BY det.id order by det.id desc
@@ -394,11 +404,16 @@
             <if test="printHouseId != null and printHouseId != ''">
                 and b.print_house_id = #{printHouseId}
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND d.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND a.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND a.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
     </select>
@@ -494,11 +509,16 @@
             <if test="printHouseId != null and printHouseId != ''">
                 and b.print_house_id = #{printHouseId}
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND d.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND a.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND a.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
     </select>

+ 11 - 0
distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml

@@ -81,5 +81,16 @@
             </otherwise>
         </choose>
         </if>
+        <if test="dpr != null">
+            <if test="dpr.requestUserId != null">
+                AND et.create_id = #{dpr.requestUserId}
+            </if>
+            <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                AND et.org_id IN
+                <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </if>
     </select>
 </mapper>

+ 20 - 10
distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml

@@ -93,11 +93,16 @@
             <if test="examId != null and examId != ''">
                 and a.exam_id = #{examId}
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND b.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND b.id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND b.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
         ORDER BY a.id DESC
@@ -185,11 +190,16 @@
                     #{item}
                 </foreach>
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND b.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND b.id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND b.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
     </select>

+ 10 - 5
distributed-print-business/src/main/resources/mapper/ExamTaskDetailMapper.xml

@@ -110,11 +110,16 @@
             <if test="userName != null and userName != ''">
                 and f.real_name like concat('%',#{userName},'%')
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND g.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND c.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND c.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
         order by c.id desc

+ 53 - 16
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -97,11 +97,16 @@
             <if test="semesterId != null and semesterId != ''">
                 and g.id = #{semesterId}
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND d.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND a.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND a.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
             <if test="enable != null">
                 and a.enable = #{enable}
@@ -254,6 +259,17 @@
             <if test="userName != null and userName != ''">
                 and c.real_name like concat('%',#{userName},'%')
             </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND a.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND a.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
         </where>
         order by a.id desc
     </select>
@@ -357,12 +373,17 @@
             <if test="createName != null and createName != ''">
                 and d.real_name like concat('%',#{createName},'%')
             </if>
-            <!--<if test="orgIds != null">
-                AND a.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
-            </if>-->
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND a.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND a.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
         </where>
         ) t
         order by t.id desc
@@ -574,11 +595,16 @@
             <if test="makeMethod != null">
                 and f.make_method = #{makeMethod}
             </if>
-            <if test="!containsQuestionTeacher and orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND a.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND a.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND a.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
         order by IFNULL(g.update_time, a.update_time) desc, a.paper_number desc
@@ -594,6 +620,17 @@
         exam_task
         <where>
             school_id = #{schoolId} and course_code = #{courseCode} and status = #{status} and enable = true
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
         </where>
     </select>
     <select id="applyGetOne" resultType="com.qmth.distributed.print.business.bean.dto.ExamTaskDetailCardDto">

+ 11 - 0
distributed-print-business/src/main/resources/mapper/GradeBatchMapper.xml

@@ -34,6 +34,17 @@
             <if test="batchName != null and batchName != ''">
                 AND gb.batch_name LIKE CONCAT('%',#{batchName},'%')
             </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND gb.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND gb.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
         </where>
     </select>
 </mapper>

+ 21 - 5
distributed-print-business/src/main/resources/mapper/GradeBatchPaperMapper.xml

@@ -63,6 +63,17 @@
             <if test="courseName != null and courseName != ''">
                 AND et.course_name like concat('%',#{courseName} ,'%')
             </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND gbp.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND gbp.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
         </where>
         order by gbp.create_id
     </select>
@@ -107,11 +118,16 @@
             <if test="teacherName != null and teacherName != ''">
                 AND et.teacher_name LIKE CONCAT('%',#{teacherName} ,'%')
             </if>
-            <if test="orgIds != null and orgIds != '' and orgIds.size > 0">
-                AND et.org_id IN
-                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND et.create_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND et.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
     </select>

+ 10 - 2
distributed-print-business/src/main/resources/mapper/GradeInitializeMapper.xml

@@ -55,8 +55,16 @@
             <if test="courseCode != null and courseCode != ''">
                 AND et.course_code = #{courseCode}
             </if>
-            <if test="userId != null and userId != ''">
-                AND et.user_id = #{userId}
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND et.user_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND et.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
         </where>
         ORDER BY bs.name , be.name , et.course_code , et.paper_number , pnpt.paper_type

+ 19 - 13
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java

@@ -8,12 +8,14 @@ import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.templete.execute.AsyncExaminationExportTemplateService;
 import com.qmth.distributed.print.business.templete.execute.AsyncExaminationImportTemplateService;
 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.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
 import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.TBTaskService;
-import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -29,7 +31,10 @@ import javax.annotation.Resource;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -57,9 +62,8 @@ public class ExamDetailController {
     private PrintCommonService printCommonService;
     @Resource
     private ExamStudentService examStudentService;
-
     @Resource
-    TeachcloudCommonService teachcloudCommonService;
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     @ApiOperation(value = "异步考务数据批量导入接口")
     @RequestMapping(value = "/data_import", method = RequestMethod.POST)
@@ -90,13 +94,15 @@ public class ExamDetailController {
                                        @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                                        @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
         if (Objects.isNull(printPlanIdList)) {
             printPlanIdList = new ArrayList<>();
         }
         List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+
         return ResultUtil.ok(examDetailService.findExaminationBriefPage(schoolId, SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId),
-                idList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate, pageNumber, pageSize, orgIds));
+                idList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate, pageNumber, pageSize, dpr));
     }
 
     @ApiOperation(value = "考务数据导入-汇总数据查询")
@@ -115,12 +121,12 @@ public class ExamDetailController {
                                      @ApiParam(value = "考试日期-终止") @RequestParam(required = false) Long endDate) {
 
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission();
         if (Objects.isNull(printPlanIdList)) {
             printPlanIdList = new ArrayList<>();
         }
         List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
-        return ResultUtil.ok(examDetailService.findSummarizedData(schoolId, SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), idList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate, orgIds));
+        return ResultUtil.ok(examDetailService.findSummarizedData(schoolId, SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), idList, courseCode, paperNumber, examPlace, examRoom, packageCode, startDate, endDate, dpr));
     }
 
     @ApiOperation(value = "考务数据导入-查看明细")
@@ -145,7 +151,7 @@ public class ExamDetailController {
         }
         List<Long> idList = printPlanIdList.stream().map(SystemConstant::convertIdToLong).collect(Collectors.toList());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        return ResultUtil.ok(examDetailService.findExaminationDetail(schoolId,SystemConstant.convertIdToLong(semesterId),SystemConstant.convertIdToLong(examId), idList,
+        return ResultUtil.ok(examDetailService.findExaminationDetail(schoolId, SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), idList,
                 courseCode, paperNumber, examPlace, examRoom, studentParams, startDate, endDate, pageNumber, pageSize));
     }
 
@@ -219,7 +225,7 @@ public class ExamDetailController {
                              @ApiParam(value = "卷袋号") @RequestParam(required = false) String packageCode,
                              @ApiParam(value = "考试日期-起始") @RequestParam(required = false) Long startDate,
                              @ApiParam(value = "考试日期-终止") @RequestParam(required = false) Long endDate) {
-        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission();
         if (Objects.isNull(printPlanIdList)) {
             printPlanIdList = new ArrayList<>();
         }
@@ -229,8 +235,8 @@ public class ExamDetailController {
             printId = idList.get(0);
         }
         Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.EXAMINATION_EXPORT, printId);
-        map.put("semesterId",semesterId);
-        map.put("examId",examId);
+        map.put("semesterId", semesterId);
+        map.put("examId", examId);
         map.put("printPlanIdList", idList);
         map.put("courseCode", courseCode);
         map.put("paperNumber", paperNumber);
@@ -239,7 +245,7 @@ public class ExamDetailController {
         map.put("packageCode", packageCode);
         map.put("startDate", startDate);
         map.put("endDate", endDate);
-        map.put("orgIds", orgIds);
+        map.put("dpr", dpr);
         asyncExaminationExportTemplateService.exportTask(map);
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
         return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");

+ 3 - 8
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java

@@ -32,7 +32,6 @@ import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -60,18 +59,14 @@ import java.util.stream.Collectors;
 public class ExamPrintPlanController {
     @Resource
     private ExamPrintPlanService examPrintPlanService;
-    @Autowired
+    @Resource
     private ExamTaskService examTaskService;
-
-    @Autowired
+    @Resource
     private ExamTaskDetailService examTaskDetailService;
-
-    @Autowired
+    @Resource
     private ExamDetailService examDetailService;
-
     @Resource
     TBTaskService tbTaskService;
-
     @Resource
     AsyncDownloadPdfTempleteService asyncDownloadPdfTempleteService;
 

+ 0 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -10,7 +10,6 @@ import com.qmth.distributed.print.business.bean.params.ApproveFormParams;
 import com.qmth.distributed.print.business.bean.params.ExamTaskApplyParam;
 import com.qmth.distributed.print.business.bean.params.ExamTaskPrintParams;
 import com.qmth.distributed.print.business.bean.params.ExamTaskReApplyParam;
-import com.qmth.distributed.print.business.bean.result.CalculateNotifyResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
@@ -29,11 +28,9 @@ import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import com.sun.jna.platform.unix.X11;
 import io.swagger.annotations.*;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.task.Task;
-import org.redisson.MapWriterTask;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.validation.BindingResult;

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

@@ -38,4 +38,10 @@ public interface BasicRoleDataPermissionService extends IService<BasicRoleDataPe
      * @return 数据权限查询集合
      */
     DataPermissionRule findDataPermission(Long schoolId, Long requestUserId, String url);
+
+    /**
+     * 查询数据权限
+     * @return 数据权限查询集合
+     */
+    DataPermissionRule findDataPermission();
 }

+ 7 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicRoleDataPermissionServiceImpl.java

@@ -152,6 +152,13 @@ public class BasicRoleDataPermissionServiceImpl extends ServiceImpl<BasicRoleDat
         return result;
     }
 
+    @Override
+    public DataPermissionRule findDataPermission() {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        return this.findDataPermission(schoolId,requestUser.getId(),ServletUtil.getRequest().getServletPath());
+    }
+
     /**
      * 递归搜索角色的数据权限
      *