xiaofei 1 жил өмнө
parent
commit
b84c990f9c
15 өөрчлөгдсөн 109 нэмэгдсэн , 269 устгасан
  1. 0 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPaperStructureMapper.java
  2. 0 20
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPaperStructureService.java
  3. 12 13
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncReportServiceImpl.java
  4. 0 116
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPaperStructureServiceImpl.java
  5. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  6. 31 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradePaperStructServiceImpl.java
  7. 0 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBSyncTaskServiceImpl.java
  8. 0 91
      distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml
  9. 4 4
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskAuditController.java
  10. 7 11
      distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java
  11. 10 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkPaper.java
  12. 4 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperMapper.java
  13. 3 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperService.java
  14. 19 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java
  15. 18 2
      teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml

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

@@ -18,7 +18,4 @@ import java.util.List;
  * @author xf
  */
 public interface ExamPaperStructureMapper extends BaseMapper<ExamPaperStructure> {
-    IPage<ExamPaperStructurePageDto> listByPropositionTeacherId(@Param("page") Page<ExamPaperStructure> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("syncStatus") String syncStatus, @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("ready") Boolean ready,@Param("dpr") DataPermissionRule dpr);
 }

+ 0 - 20
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPaperStructureService.java

@@ -1,21 +1,7 @@
 package com.qmth.distributed.print.business.service;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.distributed.print.business.bean.dto.ExamPaperStructurePageDto;
-import com.qmth.distributed.print.business.bean.marking.CardJpgResult;
-import com.qmth.distributed.print.business.bean.marking.ClassMarker;
-import com.qmth.distributed.print.business.bean.marking.GroupInfo;
-import com.qmth.distributed.print.business.bean.marking.Question;
 import com.qmth.distributed.print.business.entity.ExamPaperStructure;
-import com.qmth.teachcloud.common.bean.dto.UserRoleDto;
-import com.qmth.teachcloud.common.bean.dto.stmms.ExamCloudPaperStructDto;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.enums.QuestionType;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -26,18 +12,12 @@ import java.util.Map;
  */
 public interface ExamPaperStructureService extends IService<ExamPaperStructure> {
 
-    IPage<ExamPaperStructurePageDto> listByPropositionTeacherId(Long semesterId, Long examId, Integer pageNumber, Integer pageSize, Boolean ready);
-
-
     /**
      * 解析云阅卷试卷结构
      *
      * @param examCloudPaperStructDtoList 云阅卷试卷结构集合
      * @return 标准题目集合 <OBJECTIVE,list> <SUBJECTIVE,list>
      */
-    Map<QuestionType, List<Question>> parseExamCloudPaperStruct(List<ExamCloudPaperStructDto> examCloudPaperStructDtoList);
-
-    long countByPropositionTeacherId(Boolean ready);
 
 
 }

+ 12 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncReportServiceImpl.java

@@ -3,11 +3,13 @@ package com.qmth.distributed.print.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.ExamPaperStructure;
 import com.qmth.distributed.print.business.entity.GradeBatch;
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
 import com.qmth.distributed.print.business.entity.TBSyncTask;
-import com.qmth.distributed.print.business.service.*;
+import com.qmth.distributed.print.business.service.DataSyncReportService;
+import com.qmth.distributed.print.business.service.GradeBatchPaperService;
+import com.qmth.distributed.print.business.service.GradeBatchService;
+import com.qmth.distributed.print.business.service.TBSyncTaskService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSemester;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -51,9 +53,6 @@ public class DataSyncReportServiceImpl implements DataSyncReportService {
     @Resource
     private TeachCloudReportTaskUtils teachCloudReportTaskUtils;
 
-    @Resource
-    private ExamPaperStructureService examPaperStructureService;
-
     @Async
     @Override
     public void syncGradeBatch(GradeBatch gradeBatch, TBSyncTask tbSyncTask) {
@@ -187,14 +186,14 @@ public class DataSyncReportServiceImpl implements DataSyncReportService {
                         remark = paperNumber;
                         errorMessage = errorMessage.substring(0, errorMessage.indexOf("["));
                         // 更新状态(structureChange)
-                        UpdateWrapper<ExamPaperStructure> updateWrapper = new UpdateWrapper<>();
-                        updateWrapper.lambda().set(ExamPaperStructure::getStructureChange, true).eq(ExamPaperStructure::getSchoolId, schoolId).eq(ExamPaperStructure::getPaperNumber, paperNumber);
-                        if (errorMessage.contains("(") && errorMessage.contains(")")) {
-                            String paperType = errorMessage.substring(errorMessage.indexOf("(") + 1, errorMessage.indexOf(")"));
-                            remark = paperNumber + "(" + paperType + ")";
-                            updateWrapper.lambda().eq(ExamPaperStructure::getPaperType, paperType);
-                        }
-                        examPaperStructureService.update(updateWrapper);
+//                        UpdateWrapper<ExamPaperStructure> updateWrapper = new UpdateWrapper<>();
+//                        updateWrapper.lambda().set(ExamPaperStructure::getStructureChange, true).eq(ExamPaperStructure::getSchoolId, schoolId).eq(ExamPaperStructure::getPaperNumber, paperNumber);
+//                        if (errorMessage.contains("(") && errorMessage.contains(")")) {
+//                            String paperType = errorMessage.substring(errorMessage.indexOf("(") + 1, errorMessage.indexOf(")"));
+//                            remark = paperNumber + "(" + paperType + ")";
+//                            updateWrapper.lambda().eq(ExamPaperStructure::getPaperType, paperType);
+//                        }
+//                        examPaperStructureService.update(updateWrapper);
                     }
                 }
             }

+ 0 - 116
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPaperStructureServiceImpl.java

@@ -1,38 +1,11 @@
 package com.qmth.distributed.print.business.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.distributed.print.business.bean.dto.ExamPaperStructurePageDto;
-import com.qmth.distributed.print.business.bean.marking.Question;
 import com.qmth.distributed.print.business.entity.ExamPaperStructure;
-import com.qmth.distributed.print.business.entity.ExamTaskDetail;
-import com.qmth.distributed.print.business.entity.TBSyncTask;
-import com.qmth.distributed.print.business.enums.ExamTaskSyncStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamPaperStructureMapper;
 import com.qmth.distributed.print.business.service.ExamPaperStructureService;
-import com.qmth.distributed.print.business.service.ExamTaskDetailService;
-import com.qmth.distributed.print.business.service.TBSyncTaskService;
-import com.qmth.teachcloud.common.bean.auth.AuthBean;
-import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
-import com.qmth.teachcloud.common.bean.dto.stmms.ExamCloudPaperStructDto;
-import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.enums.PushTypeEnum;
-import com.qmth.teachcloud.common.enums.QuestionType;
-import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
-import com.qmth.teachcloud.common.service.CommonCacheService;
-import com.qmth.teachcloud.common.util.ExamTaskUtil;
-import com.qmth.teachcloud.common.util.ServletUtil;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.util.*;
-
 /**
  * <p>
  * 试卷结构 服务实现类
@@ -41,94 +14,5 @@ import java.util.*;
 @Service
 public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructureMapper, ExamPaperStructure> implements ExamPaperStructureService {
 
-    @Resource
-    ExamTaskDetailService examTaskDetailService;
-
-    @Resource
-    TBSyncTaskService tbSyncTaskService;
-
-    @Resource
-    private BasicRoleDataPermissionService basicRoleDataPermissionService;
-
-    @Resource
-    CommonCacheService commonCacheService;
-
-    @Override
-    public IPage<ExamPaperStructurePageDto> listByPropositionTeacherId(Long semesterId, Long examId, Integer pageNumber, Integer pageSize, Boolean ready) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        String url = "/api/admin/exam/structure/list";
-        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, sysUser.getId(), url);
-        Page<ExamPaperStructure> page = new Page<>(pageNumber, pageSize);
-        String syncStatus = ExamTaskSyncStatusEnum.FINISH.name();
-        // 查看是否有评卷参数管理权限
-        AuthBean authBean = commonCacheService.userAuthCache(sysUser.getId());
-        Set<String> urls = authBean.getUrls();
-        int privilegeCount = Objects.nonNull(urls) ? (int) urls.stream().filter(s -> s.equalsIgnoreCase(url)).count() : 0;
-        if (privilegeCount == 0) {
-            syncStatus = null;
-        }
-        IPage<ExamPaperStructurePageDto> examPaperStructureIPage = this.baseMapper.listByPropositionTeacherId(page, schoolId, semesterId, examId, syncStatus, ready, dpr);
-        examPaperStructureIPage.getRecords().forEach(m -> {
-            // 试卷结构同步任务状态
-            if (m.getId() != null) {
-                QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
-                queryWrapper.lambda().eq(TBSyncTask::getObjectId, m.getId()).eq(TBSyncTask::getType, PushTypeEnum.STRUCTURE_GROUP_PUSH);
-                TBSyncTask tbSyncTask = tbSyncTaskService.getOne(queryWrapper);
-                m.setTaskStatus(tbSyncTask == null ? null : tbSyncTask.getStatus().name());
-            }
-
-            ExamTaskDetail examTaskDetail = examTaskDetailService.getOne(new QueryWrapper<ExamTaskDetail>().lambda()
-                    .eq(ExamTaskDetail::getExamTaskId, m.getExamTaskId()));
-            if (examTaskDetail != null && StringUtils.isNotBlank(examTaskDetail.getPaperAttachmentIds())) {
-                List<PaperInfoVo> paperInfoVoList = ExamTaskUtil.parsePaperAttachmentPath(examTaskDetail.getPaperAttachmentIds(), m.getPaperType());
-                if (CollectionUtils.isNotEmpty(paperInfoVoList)) {
-                    m.setCardId(String.valueOf(paperInfoVoList.get(0).getCardId()));
-                }
-            }
-        });
-        return examPaperStructureIPage;
-    }
-
-
-    @Override
-    public Map<QuestionType, List<Question>> parseExamCloudPaperStruct(List<ExamCloudPaperStructDto> examCloudPaperStructDtoList) {
-        Map<QuestionType, List<Question>> result = new HashMap<>();
-        List<Question> objList = new ArrayList<>();
-        List<Question> subList = new ArrayList<>();
-        for (ExamCloudPaperStructDto examCloudPaperStructDto : examCloudPaperStructDtoList) {
-            boolean objective = examCloudPaperStructDto.getObjective();
-            String mainTitle = examCloudPaperStructDto.getMainTitle();
-            Integer mainNumber = examCloudPaperStructDto.getMainNumber();
-            Integer subNumber = examCloudPaperStructDto.getSubNumber();
-            double totalScore = examCloudPaperStructDto.getTotalScore();
-            String answer = examCloudPaperStructDto.getAnswer();
-
-            Question question = new Question();
-            question.setMainTitle(mainTitle);
-            question.setMainNumber(mainNumber);
-            question.setSubNumber(String.valueOf(subNumber));
-            question.setTotalScore(BigDecimal.valueOf(totalScore));
-            question.setAnswer(answer);
-            if (objective) {
-                objList.add(question);
-            } else {
-                subList.add(question);
-            }
-        }
-        result.put(QuestionType.OBJECTIVE, objList);
-        result.put(QuestionType.SUBJECTIVE, subList);
-        return result;
-    }
-
-    @Override
-    public long countByPropositionTeacherId(Boolean ready) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, sysUser.getId(), "/api/admin/exam/structure/list");
-        List<ExamPaperStructure> examPaperStructureList = this.baseMapper.listByPropositionTeacherId(schoolId, null, null, sysUser.getId(), ExamTaskSyncStatusEnum.FINISH.name(), ready, dpr);
-        return CollectionUtils.isEmpty(examPaperStructureList) ? 0 : examPaperStructureList.size();
-    }
-
 
 }

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

@@ -694,7 +694,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
                 .eq(TBSyncTask::getPaperNumber, paperNumber);
         tbSyncTaskService.update(tbSyncTaskUpdateWrapper);
 
-        // 评卷参数表改为作废
+        // 评卷参数表改为作废 todo xf 20231023
         UpdateWrapper<ExamPaperStructure> examPaperStructureUpdateWrapper = new UpdateWrapper<>();
         examPaperStructureUpdateWrapper.lambda().set(ExamPaperStructure::getPaperNumber, paperNumberCancel)
                 .eq(ExamPaperStructure::getSchoolId, examTask.getSchoolId())

+ 31 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradePaperStructServiceImpl.java

@@ -83,7 +83,7 @@ public class GradePaperStructServiceImpl extends ServiceImpl<GradePaperStructMap
             if (SystemConstant.strNotNull(cloudInfoJson)) {
                 // 如果云阅卷同步回来的结构不为空,优先使用云阅卷的
                 List<ExamCloudPaperStructDto> examCloudPaperStructDtoList = JSON.parseArray(cloudInfoJson, ExamCloudPaperStructDto.class);
-                Map<QuestionType, List<Question>> examCloudPaperStructMap = examPaperStructureService.parseExamCloudPaperStruct(examCloudPaperStructDtoList);
+                Map<QuestionType, List<Question>> examCloudPaperStructMap = parseExamCloudPaperStruct(examCloudPaperStructDtoList);
                 examPaperObjList = examCloudPaperStructMap.get(QuestionType.OBJECTIVE);
                 examPaperSubList = examCloudPaperStructMap.get(QuestionType.SUBJECTIVE);
             } else {
@@ -377,7 +377,7 @@ public class GradePaperStructServiceImpl extends ServiceImpl<GradePaperStructMap
         if (SystemConstant.strNotNull(cloudInfoJson)) {
             // 优先与云阅卷对比
             List<ExamCloudPaperStructDto> examCloudPaperStructDtoList = JSON.parseArray(cloudInfoJson, ExamCloudPaperStructDto.class);
-            Map<QuestionType, List<Question>> questionTypeListMap = examPaperStructureService.parseExamCloudPaperStruct(examCloudPaperStructDtoList);
+            Map<QuestionType, List<Question>> questionTypeListMap = parseExamCloudPaperStruct(examCloudPaperStructDtoList);
             examPaperObjList = questionTypeListMap.get(QuestionType.OBJECTIVE);
             examPaperSubList = questionTypeListMap.get(QuestionType.SUBJECTIVE);
             comparison = "云阅卷";
@@ -424,4 +424,33 @@ public class GradePaperStructServiceImpl extends ServiceImpl<GradePaperStructMap
                     "】的分析试卷结构和 [" + comparison + "] 试卷结构在【" + QuestionType.SUBJECTIVE.getDesc() + "】上不一致");
         }
     }
+
+    private Map<QuestionType, List<Question>> parseExamCloudPaperStruct(List<ExamCloudPaperStructDto> examCloudPaperStructDtoList) {
+        Map<QuestionType, List<Question>> result = new HashMap<>();
+        List<Question> objList = new ArrayList<>();
+        List<Question> subList = new ArrayList<>();
+        for (ExamCloudPaperStructDto examCloudPaperStructDto : examCloudPaperStructDtoList) {
+            boolean objective = examCloudPaperStructDto.getObjective();
+            String mainTitle = examCloudPaperStructDto.getMainTitle();
+            Integer mainNumber = examCloudPaperStructDto.getMainNumber();
+            Integer subNumber = examCloudPaperStructDto.getSubNumber();
+            double totalScore = examCloudPaperStructDto.getTotalScore();
+            String answer = examCloudPaperStructDto.getAnswer();
+
+            Question question = new Question();
+            question.setMainTitle(mainTitle);
+            question.setMainNumber(mainNumber);
+            question.setSubNumber(String.valueOf(subNumber));
+            question.setTotalScore(BigDecimal.valueOf(totalScore));
+            question.setAnswer(answer);
+            if (objective) {
+                objList.add(question);
+            } else {
+                subList.add(question);
+            }
+        }
+        result.put(QuestionType.OBJECTIVE, objList);
+        result.put(QuestionType.SUBJECTIVE, subList);
+        return result;
+    }
 }

+ 0 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBSyncTaskServiceImpl.java

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.TBSyncTask;
 import com.qmth.distributed.print.business.mapper.TBSyncTaskMapper;
-import com.qmth.distributed.print.business.service.ExamPaperStructureService;
 import com.qmth.distributed.print.business.service.GradeBatchPaperService;
 import com.qmth.distributed.print.business.service.GradeBatchService;
 import com.qmth.distributed.print.business.service.TBSyncTaskService;
@@ -35,9 +34,6 @@ import java.util.Objects;
 @Service
 public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncTask> implements TBSyncTaskService {
 
-    @Resource
-    ExamPaperStructureService examPaperStructureService;
-
     @Resource
     AsyncTeachCloudReportService asyncTeachCloudReportService;
 

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

@@ -1,95 +1,4 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.qmth.distributed.print.business.mapper.ExamPaperStructureMapper">
-    <select id="listByPropositionTeacherId"
-            resultType="com.qmth.distributed.print.business.bean.dto.ExamPaperStructurePageDto">
-        select
-            temp.*,
-            eps.objective_structure objectiveStructure,
-            eps.subjective_structure subjectiveStructure,
-            eps.paper_info_json paperInfoJson,
-            eps.paper_answer paperAnswer,
-            eps.mark_leader markLeader,
-            eps.open_class_reading openClassReading,
-            su.login_name loginName,
-            su.real_name realName
-            from
-            (SELECT
-            distinct eps.id,
-            et.id as examTaskId,
-            et.sequence,
-            et.org_id orgId,
-            ifnull(eps.proposition_teacher_id, et.user_id) propositionTeacherId,
-            et.transfer_id transferId,
-            ed.school_id schoolId,
-            ed.exam_id examId,
-            edc.paper_number paperNumber,
-            edc.course_code courseCode,
-            edc.course_name courseName,
-            edcpt.paper_type paperType,
-            ets.third_relate_id thirdRelateId,
-            ets.sync_start_time syncStartTime,
-            tsse.exam_name thirdRelateName,
-            IFNULL(eps.status, '{}') status
-        FROM
-            exam_detail ed
-                left join exam_detail_course edc on
-            ed.id = edc.exam_detail_id
-                left join exam_detail_course_paper_type edcpt on
-            edc.id = edcpt.exam_detail_course_id
-                left join exam_task_sync ets on
-            edc.school_id = ets.school_id
-            and ed.exam_id = ets.exam_id
-            and edc.paper_number = ets.paper_number
-            and edcpt.paper_type = ets.paper_type
-                left join t_sync_stmms_exam tsse on
-            edc.school_id = tsse.school_id
-            and ets.third_relate_id = tsse.exam_id
-                left join basic_exam be on
-            ed.exam_id = be.id
-                left join exam_task et on
-            et.school_id = ed.school_id
-            and et.paper_number = edc.paper_number
-            and et.exam_id = ed.exam_id
-                left join exam_paper_structure eps on
-            eps.school_id = ets.school_id
-            and eps.exam_id = ets.exam_id
-            and eps.paper_number = ets.paper_number
-            and eps.paper_type = ets.paper_type
-        <where>
-            and ed.school_id = #{schoolId}
-            AND ets.sync_status = #{syncStatus}
-            AND be.enable = TRUE AND ed.status = 'FINISH'
-            <if test="semesterId != null">
-                and be.semester_id = #{semesterId}
-            </if>
-            <if test="examId != null">
-                and be.id = #{examId}
-            </if>
-            <if test="ready != null">
-                <if test="ready == false">
-                    and (eps.is_finish = #{ready} or eps.is_finish is null)
-                </if>
-                <if test="ready == true">
-                    and eps.is_finish = #{ready}
-                </if>
-            </if>
-            <if test="dpr != null">
-                <if test="dpr.requestUserId != null">
-                    and (et.transfer_id = #{dpr.requestUserId} or 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 ets.sync_start_time desc
-        ) temp
-        left join exam_paper_structure eps on
-        eps.id = temp.id
-        left join sys_user su on temp.propositionTeacherId = su.id
-    </select>
 </mapper>

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

@@ -18,6 +18,7 @@ import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.service.MarkPaperService;
 import io.swagger.annotations.*;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.task.Task;
@@ -66,11 +67,10 @@ public class ExamTaskAuditController {
     @Resource
     ActivitiService activitiService;
 
-    @Resource
-    ExamPaperStructureService examPaperStructureService;
-
     @Resource
     GradeInitializeService gradeInitializeService;
+    @Resource
+    MarkPaperService markPaperService;
 
 
     @ApiOperation(value = "审核-印刷员驳回后命题老师修改")
@@ -166,7 +166,7 @@ public class ExamTaskAuditController {
     @RequestMapping(value = "/review_list_audited_count", method = RequestMethod.POST)
     public Result taskReviewListAuditedCount() {
         int taskReviewAuditedCount = examTaskService.listTaskReviewAudited(null, null, null, null, null, null, null, null, null, null, null, null, SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE).getRecords().size();
-        long paperCount = examPaperStructureService.countByPropositionTeacherId(true);
+        long paperCount = markPaperService.countByPropositionTeacherId(true);
         long gradeCount = gradeInitializeService.countByPropositionTeacherId(GradeAnalyzePaperStatusEnum.SETTING_GRADE_PAPER_PARAM, true);
         return ResultUtil.ok(taskReviewAuditedCount + paperCount + gradeCount);
     }

+ 7 - 11
distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java

@@ -3,7 +3,6 @@ package com.qmth.distributed.print.api;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
-import com.qmth.distributed.print.business.service.ExamPaperStructureService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.GradeInitializeService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -12,8 +11,8 @@ import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.service.MarkPaperService;
 import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -34,18 +33,15 @@ import javax.validation.constraints.Min;
 @Api(tags = "工作台Controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_WORK)
-//@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 @Validated
 public class WorkController {
 
     @Resource
-    ExamTaskService examTaskService;
-
-    @Autowired
-    ExamPaperStructureService examPaperStructureService;
-
+    private ExamTaskService examTaskService;
+    @Resource
+    private MarkPaperService markPaperService;
     @Resource
-    GradeInitializeService gradeInitializeService;
+    private GradeInitializeService gradeInitializeService;
 
     @ApiOperation(value = "获取待办接口")
     @RequestMapping(value = "/exam/task/ready", method = RequestMethod.POST)
@@ -72,7 +68,7 @@ public class WorkController {
     @ApiOperation(value = "阅卷待办任务-数量")
     @RequestMapping(value = "/structure/task/ready_count", method = RequestMethod.POST)
     public Result countStructure() {
-        return ResultUtil.ok(examPaperStructureService.countByPropositionTeacherId(false));
+        return ResultUtil.ok(markPaperService.countByPropositionTeacherId(false));
     }
 
     /**
@@ -84,7 +80,7 @@ public class WorkController {
     @RequestMapping(value = "/structure/task/ready", method = RequestMethod.POST)
     public Result list(@RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(2) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        return ResultUtil.ok(examPaperStructureService.listByPropositionTeacherId(null, null, pageNumber, pageSize, false));
+        return ResultUtil.ok(markPaperService.listPaperSetting(null, null, null, false, pageNumber, pageSize));
     }
 
     /**

+ 10 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkPaper.java

@@ -107,6 +107,8 @@ public class MarkPaper implements Serializable {
     private Boolean openMarkClass;
 
     private MarkPaperStatus status;
+    @ApiModelProperty(value = "命题老师ID")
+    private Long userId;
 
     public MarkPaper() {
     }
@@ -343,6 +345,14 @@ public class MarkPaper implements Serializable {
         this.status = status;
     }
 
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
     @Override
     public String toString() {
         return "MarkPaper{" +

+ 4 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperMapper.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.mark.mapper;
 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.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.mark.MarkSettingDto;
 import com.qmth.teachcloud.mark.dto.mark.score.CheckScoreListDto;
 import com.qmth.teachcloud.mark.dto.mark.score.MarkPaperPackageDto;
@@ -21,11 +22,13 @@ import java.util.List;
  */
 public interface MarkPaperMapper extends BaseMapper<MarkPaper> {
 
-    IPage<MarkSettingDto> listPaperSetting(@Param("page") Page<MarkSettingDto> page, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("groupStatus") Boolean groupStatus);
+    IPage<MarkSettingDto> listPaperSetting(@Param("page") Page<MarkSettingDto> page, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("groupStatus") Boolean groupStatus, @Param("dpr") DataPermissionRule dpr);
 
     List<MarkPaper> listQualityMarkPaperByStatus(@Param("status") String status, @Param("uploadCount") int uploadCount);
 
     IPage<CheckScoreListDto> listStudentScoreList(@Param("page") Page<CheckScoreListDto> page, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber);
 
     IPage<MarkPaperPackageDto> listPackage(@Param("page") Page<MarkPaperPackageDto> page, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("packageCode") String packageCode);
+
+    List<MarkSettingDto> listPaperSetting(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("groupStatus") boolean groupStatus, @Param("dpr") DataPermissionRule dpr);
 }

+ 3 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperService.java

@@ -45,4 +45,7 @@ public interface MarkPaperService extends IService<MarkPaper> {
 	List<MarkPaper> listByExamAndPackage(Long examId, String packageCode);
 
     void updateGroupStatusByExamIdAndPaperNumber(boolean groupStatus, Long examId, String paperNumber);
+
+    int countByPropositionTeacherId(boolean status);
+
 }

+ 19 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -6,10 +6,14 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.bean.dto.mark.MarkSettingDto;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
+import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.dto.mark.score.CheckScoreListDto;
 import com.qmth.teachcloud.mark.dto.mark.score.MarkPaperPackageDto;
 import com.qmth.teachcloud.mark.entity.MarkPaper;
@@ -17,6 +21,7 @@ import com.qmth.teachcloud.mark.entity.ScanPackage;
 import com.qmth.teachcloud.mark.mapper.MarkPaperMapper;
 import com.qmth.teachcloud.mark.service.MarkPaperService;
 import com.qmth.teachcloud.mark.service.ScanPackageService;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
@@ -40,12 +45,16 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
     private ScanPackageService scanPackageService;
     @Resource
     private TeachcloudCommonService teachcloudCommonService;
+    @Resource
+    private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
 
     @Override
     public IPage<MarkSettingDto> listPaperSetting(Long examId, String courseCode, String paperNumber, Boolean groupStatus, Integer pageNumber, Integer pageSize) {
         Page<MarkSettingDto> page = new Page<>(pageNumber, pageSize);
-        IPage<MarkSettingDto> markSettingDtoIPage = this.baseMapper.listPaperSetting(page, examId, courseCode, paperNumber, groupStatus);
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+        IPage<MarkSettingDto> markSettingDtoIPage = this.baseMapper.listPaperSetting(page, examId, courseCode, paperNumber, groupStatus, dpr);
         for (MarkSettingDto record : markSettingDtoIPage.getRecords()) {
             if (Objects.nonNull(record.getMarkMode())) {
                 record.setMarkModeDisplay(record.getMarkMode().getName());
@@ -171,4 +180,13 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
                 .eq(MarkPaper::getPaperNumber, paperNumber);
         this.update(updateWrapper);
     }
+
+    @Override
+    public int countByPropositionTeacherId(boolean status) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), "/api/admin/mark/setting/list");
+        List<MarkSettingDto> markSettingDtoList = this.baseMapper.listPaperSetting(null, null,null, status, dpr);
+        return CollectionUtils.isEmpty(markSettingDtoList) ? 0 : markSettingDtoList.size();
+    }
+
 }

+ 18 - 2
teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml

@@ -38,8 +38,12 @@
             mp.group_status groupStatus
         FROM
             mark_paper mp
-        WHERE
-            mp.exam_id = #{examId}
+                LEFT JOIN
+            sys_user su ON mp.user_id = su.id
+        <where>
+            <if test="examId != null">
+                mp.exam_id = #{examId}
+            </if>
             <if test="courseCode != null and courseCode != ''">
                 and mp.course_code = #{courseCode}
             </if>
@@ -49,6 +53,18 @@
             <if test="groupStatus != null">
                 and mp.group_status = #{groupStatus}
             </if>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    and mp.user_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null">
+                    AND su.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </if>
+        </where>
     </select>
     <select id="listQualityMarkPaperByStatus" resultType="com.qmth.teachcloud.mark.entity.MarkPaper">
         SELECT