Bladeren bron

3.0.1-同步云阅卷bug修改

xiaof 3 jaren geleden
bovenliggende
commit
0d32b14b5f
13 gewijzigde bestanden met toevoegingen van 102 en 72 verwijderingen
  1. 19 7
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TSyncExamStudentScoreResult.java
  2. 11 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamPaperStructure.java
  3. 2 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TSyncExamStudentScoreMapper.java
  4. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPaperStructureService.java
  5. 2 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TSyncExamStudentScoreService.java
  6. 23 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  7. 8 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPaperStructureServiceImpl.java
  8. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSyncExamStudentScoreServiceImpl.java
  9. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncCloudMarkingTaskService.java
  10. 6 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  11. 9 6
      distributed-print-business/src/main/resources/mapper/TSyncExamStudentScoreMapper.xml
  12. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPaperStructureController.java
  13. 14 23
      distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java

+ 19 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TSyncExamStudentScoreResult.java

@@ -32,6 +32,10 @@ public class TSyncExamStudentScoreResult implements Serializable {
     @ApiModelProperty(value = "学期")
     String semesterName;
 
+    @ExcelProperty(name = "考试", width = 30, index = 2)
+    @ApiModelProperty(value = "考试")
+    String examName;
+
     @ApiModelProperty(value = "云阅卷考试id")
     @JsonSerialize(using = ToStringSerializer.class)
     Long examId;
@@ -39,11 +43,11 @@ public class TSyncExamStudentScoreResult implements Serializable {
     @ApiModelProperty(value = "云阅卷考试编码")
     String examCode;
 
-    @ExcelProperty(name = "姓名", width = 30, index = 2)
+    @ExcelProperty(name = "姓名", width = 30, index = 3)
     @ApiModelProperty(value = "考生姓名")
     String name;
 
-    @ExcelProperty(name = "学号", width = 30, index = 3)
+    @ExcelProperty(name = "学号", width = 30, index = 4)
     @ApiModelProperty(value = "学号")
     String studentCode;
 
@@ -54,7 +58,7 @@ public class TSyncExamStudentScoreResult implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     Long orgId;
 
-    @ExcelProperty(name = "院系", width = 30, index = 4)
+    @ExcelProperty(name = "院系", width = 30, index = 5)
     @ApiModelProperty(value = "学院名称")
     String orgName;
 
@@ -63,21 +67,21 @@ public class TSyncExamStudentScoreResult implements Serializable {
     Long majorId;
 
     @ApiModelProperty(value = "专业名称")
-    @ExcelProperty(name = "专业", width = 30, index = 5)
+    @ExcelProperty(name = "专业", width = 30, index = 6)
     String majorName;
 
     @ApiModelProperty(value = "班级id")
     @JsonSerialize(using = ToStringSerializer.class)
     Long clazzId;
 
-    @ExcelProperty(name = "班级", width = 30, index = 6)
+    @ExcelProperty(name = "班级", width = 30, index = 7)
     @ApiModelProperty(value = "班级")
     String clazzName;
 
     @ApiModelProperty(value = "课程编码")
     String courseCode;
 
-    @ExcelProperty(name = "课程名称", width = 30, index = 7)
+    @ExcelProperty(name = "课程名称", width = 30, index = 8)
     @ApiModelProperty(value = "课程名称")
     String courseName;
 
@@ -99,7 +103,7 @@ public class TSyncExamStudentScoreResult implements Serializable {
     @ApiModelProperty(value = "原卷url")
     private String sheetUrls;
 
-    @ExcelProperty(name = "成绩总分", width = 30, index = 8)
+    @ExcelProperty(name = "成绩总分", width = 30, index = 9)
     @ApiModelProperty(value = "总分")
     private Double totalScore;
 
@@ -152,6 +156,14 @@ public class TSyncExamStudentScoreResult implements Serializable {
         this.semesterName = semesterName;
     }
 
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
     public String getName() {
         return name;
     }

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamPaperStructure.java

@@ -84,6 +84,9 @@ public class ExamPaperStructure extends BaseEntity implements Serializable {
      * 状态
      */
     private ExamPaperStructureStatusEnum status;
+
+    @TableField(exist = false)
+    private String statusStr;
     /**
      * 试卷原卷和标答附件ID
      */
@@ -206,6 +209,14 @@ public class ExamPaperStructure extends BaseEntity implements Serializable {
         this.status = status;
     }
 
+    public String getStatusStr() {
+        return statusStr;
+    }
+
+    public void setStatusStr(String statusStr) {
+        this.statusStr = statusStr;
+    }
+
     public String getPaperAnswer() {
         return paperAnswer;
     }

+ 2 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TSyncExamStudentScoreMapper.java

@@ -34,8 +34,7 @@ public interface TSyncExamStudentScoreMapper extends BaseMapper<TSyncExamStudent
     public IPage<TSyncExamStudentScoreResult> list(IPage<Map> iPage,
                                                    @Param("schoolId") Long schoolId,
                                                    @Param("semesterId") Long semesterId,
-                                                   @Param("orgId") Long orgId,
-                                                   @Param("majorId") Long majorId,
+                                                   @Param("examId") Long examId,
                                                    @Param("clazzId") Long clazzId,
                                                    @Param("courseCode") String courseCode);
 
@@ -52,8 +51,7 @@ public interface TSyncExamStudentScoreMapper extends BaseMapper<TSyncExamStudent
      */
     public List<TSyncExamStudentScoreResult> export(@Param("schoolId") Long schoolId,
                                                     @Param("semesterId") Long semesterId,
-                                                    @Param("orgId") Long orgId,
-                                                    @Param("majorId") Long majorId,
+                                                    @Param("examId") Long examId,
                                                     @Param("clazzId") Long clazzId,
                                                     @Param("courseCode") String courseCode);
 

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

@@ -25,7 +25,7 @@ public interface ExamPaperStructureService extends IService<ExamPaperStructure>
 
     ExamPaperStructure upload(String examPaperStructure, String md5, String keys, MultipartFile[] files);
 
-    ExamPaperStructure uploadAnswer(Long id, String md5, MultipartFile file);
+    ExamPaperStructure uploadAnswer(String id, String md5, MultipartFile file);
 
     void updateStatusById(Long id, ExamPaperStructureStatusEnum startSync);
 

+ 2 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TSyncExamStudentScoreService.java

@@ -33,8 +33,7 @@ public interface TSyncExamStudentScoreService extends IService<TSyncExamStudentS
      */
     public IPage<TSyncExamStudentScoreResult> list(IPage<Map> iPage,
                                                    Long semesterId,
-                                                   Long orgId,
-                                                   Long majorId,
+                                                   Long examId,
                                                    Long clazzId,
                                                    String courseCode);
 
@@ -51,8 +50,7 @@ public interface TSyncExamStudentScoreService extends IService<TSyncExamStudentS
      */
     public List<TSyncExamStudentScoreResult> export(Long schoolId,
                                                     Long semesterId,
-                                                    Long orgId,
-                                                    Long majorId,
+                                                    Long examId,
                                                     Long clazzId,
                                                     String courseCode);
 

+ 23 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -164,6 +164,7 @@ public class DataSyncServiceImpl implements DataSyncService {
         ExamPaperStructureStatusEnum structureStatus = ExamPaperStructureStatusEnum.INIT;
         // 同步初始参数
         TaskResultEnum result = null;
+        String mainProgress = "<b>步骤:删除分组->主观题结构->主观题分组->绑定评卷员</b><br>";
         String errorMessage = "";
         try {
             String paperTypes = examPaperStructure.getPaperType();
@@ -180,6 +181,11 @@ public class DataSyncServiceImpl implements DataSyncService {
             // 同步中
             tbSyncTaskService.updateStatusAndResultById(tbSyncTask.getId(), examPaperStructure.getThirdRelateId(), TaskStatusEnum.RUNNING, null, null);
 
+            // 同步分组(检查,若存在,先删除)
+            errorMessage = "[删除分组]";
+            int i = 0;
+            deleteGroup(schoolId, examId, subjectCode, i);
+
             // 同步主观题
             errorMessage = "[主观题结构]";
             String subjectiveStructure = examPaperStructure.getSubjectiveStructure();
@@ -199,9 +205,6 @@ public class DataSyncServiceImpl implements DataSyncService {
             structureStatus = ExamPaperStructureStatusEnum.SUBJECTIVE_FINISH;
 
             errorMessage = "[主观题分组]";
-            // 同步分组(检查,若存在,先删除)
-            deleteGroup(schoolId, examId, subjectCode);
-
             List<ExamPaperGroup> examPaperGroups = examPaperGroupService.listByExamPaperStructureId(examPaperStructure.getId());
             if (!CollectionUtils.isEmpty(examPaperGroups)) {
                 List<GroupDetailDTO> groupDetailDTOS = new ArrayList<>();
@@ -252,7 +255,7 @@ public class DataSyncServiceImpl implements DataSyncService {
             examPaperStructure.setStatus(structureStatus);
             examPaperStructureService.updateById(examPaperStructure);
 
-            tbSyncTaskService.updateStatusAndResultById(tbSyncTask.getId(), examPaperStructure.getThirdRelateId(), TaskStatusEnum.FINISH, result, errorMessage);
+            tbSyncTaskService.updateStatusAndResultById(tbSyncTask.getId(), examPaperStructure.getThirdRelateId(), TaskStatusEnum.FINISH, result, mainProgress + errorMessage);
         }
     }
 
@@ -263,13 +266,19 @@ public class DataSyncServiceImpl implements DataSyncService {
      * @param examId      考试ID
      * @param subjectCode 科目代码
      */
-    private boolean deleteGroup(Long schoolId, String examId, String subjectCode) {
+    private boolean deleteGroup(Long schoolId, String examId, String subjectCode, int i) {
+        if (i >= 5) {
+            throw ExceptionResultEnum.ERROR.exception("云阅卷分组未删除");
+        }
         // 同步分组
         int countGroup = cloudMarkingTaskUtils.countGroup(schoolId, examId, subjectCode);
         // 如果存在分组,先删掉
-        boolean deleteGroup;
+        boolean deleteGroup = false;
         if (countGroup > 0) {
-            deleteGroup = cloudMarkingTaskUtils.deleteGroup(schoolId, examId, subjectCode);
+            // 第一次进行调用删除
+            if (i == 0) {
+                deleteGroup = cloudMarkingTaskUtils.deleteGroup(schoolId, examId, subjectCode);
+            }
         } else {
             return true;
         }
@@ -277,7 +286,13 @@ public class DataSyncServiceImpl implements DataSyncService {
         if (deleteGroup) {
             countGroup = cloudMarkingTaskUtils.countGroup(schoolId, examId, subjectCode);
             if (countGroup > 0) {
-                deleteGroup(schoolId, examId, subjectCode);
+                // 等待3秒
+                try {
+                    Thread.sleep(3000);
+                } catch (InterruptedException ignored) {
+                }
+                i++;
+                deleteGroup(schoolId, examId, subjectCode, i);
             }
         } else {
             throw ExceptionResultEnum.ERROR.exception("云阅卷分组删除异常");

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

@@ -90,7 +90,11 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Page<ExamPaperStructure> page = new Page<>(pageNumber, pageSize);
-        return this.baseMapper.listByPropositionTeacherId(page, schoolId, semesterId, examId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums);
+        IPage<ExamPaperStructure> examPaperStructureIPage = this.baseMapper.listByPropositionTeacherId(page, schoolId, semesterId, examId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums);
+        examPaperStructureIPage.getRecords().forEach(m->{
+            m.setStatusStr(ExamPaperStructureStatusEnum.INIT.equals(m.getStatus()) ? "未提交" : "已提交");
+        });
+        return examPaperStructureIPage;
     }
 
     @Transactional
@@ -196,11 +200,11 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
 
     @Transactional
     @Override
-    public ExamPaperStructure uploadAnswer(Long id, String md5, MultipartFile file) {
-        ExamPaperStructure examPaperStructure = this.getById(id);
-        if (examPaperStructure == null) {
+    public ExamPaperStructure uploadAnswer(String id, String md5, MultipartFile file) {
+        if (id == null) {
             throw ExceptionResultEnum.ERROR.exception("请先设置试卷结构和分组");
         }
+        ExamPaperStructure examPaperStructure = this.getById(id);
         // 组装ExamPaperStructureDto
         List<BasicAttachment> basicAttachmentList = new ArrayList<>();
         List<Map<String, Object>> paperAnswerList = new ArrayList<>();

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

@@ -58,9 +58,9 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
      * @return
      */
     @Override
-    public IPage<TSyncExamStudentScoreResult> list(IPage<Map> iPage, Long semesterId, Long orgId, Long majorId, Long clazzId, String courseCode) {
+    public IPage<TSyncExamStudentScoreResult> list(IPage<Map> iPage, Long semesterId, Long examId, Long clazzId, String courseCode) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return tSyncExamStudentScoreMapper.list(iPage, sysUser.getSchoolId(), semesterId, orgId, majorId, clazzId, courseCode);
+        return tSyncExamStudentScoreMapper.list(iPage, sysUser.getSchoolId(), semesterId, examId, clazzId, courseCode);
     }
 
     /**
@@ -75,8 +75,8 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
      * @return
      */
     @Override
-    public List<TSyncExamStudentScoreResult> export(Long schoolId, Long semesterId, Long orgId, Long majorId, Long clazzId, String courseCode) {
-        return tSyncExamStudentScoreMapper.export(schoolId, semesterId, orgId, majorId, clazzId, courseCode);
+    public List<TSyncExamStudentScoreResult> export(Long schoolId, Long semesterId, Long examId, Long clazzId, String courseCode) {
+        return tSyncExamStudentScoreMapper.export(schoolId, semesterId, examId, clazzId, courseCode);
     }
 
     /**

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncCloudMarkingTaskService.java

@@ -81,7 +81,7 @@ public class AsyncCloudMarkingTaskService {
      */
     public void syncPaperAndAnswer(ExamPaperStructure examPaperStructure) {
         if (examPaperStructure == null) {
-            throw ExceptionResultEnum.ERROR.exception("未找到同步数据");
+            throw ExceptionResultEnum.ERROR.exception("请先设置评卷参数");
         }
         if (isSync()) {
             TBSyncTask tbSyncTask = tbSyncTaskService.saveTask(examPaperStructure.getSchoolId(), examPaperStructure.getId(), PushTypeEnum.PAPER_ANSWER_FILE_PUSH);
@@ -96,7 +96,7 @@ public class AsyncCloudMarkingTaskService {
      */
     public void syncObjectiveStructure(ExamPaperStructure examPaperStructure) {
         if (examPaperStructure == null) {
-            throw ExceptionResultEnum.ERROR.exception("未找到同步数据");
+            throw ExceptionResultEnum.ERROR.exception("请先设置评卷参数");
         }
         if (isSync()) {
             TBSyncTask tbSyncTask = tbSyncTaskService.saveTask(examPaperStructure.getSchoolId(), examPaperStructure.getId(), PushTypeEnum.OBJECTIVE_ANSWER_PUSH);

+ 6 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -1507,16 +1507,15 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         ByteArrayOutputStream fos = null;
         try {
             SysUser sysUser = (SysUser) map.get(SystemConstant.USER);
-            Long semesterId = null, orgId = null, majorId = null, clazzId = null;
+            Long semesterId = null, examId = null, clazzId = null;
             String courseCode = null;
             semesterId = Objects.nonNull(map.get("semesterId")) ? (Long) map.get(semesterId) : null;
-            orgId = Objects.nonNull(map.get("orgId")) ? (Long) map.get(orgId) : null;
-            majorId = Objects.nonNull(map.get("majorId")) ? (Long) map.get("majorId") : null;
+            examId = Objects.nonNull(map.get("examId")) ? (Long) map.get(examId) : null;
             clazzId = Objects.nonNull(map.get("clazzId")) ? (Long) map.get("clazzId") : null;
             courseCode = Objects.nonNull(map.get("courseCode")) ? (String) map.get("courseCode") : null;
 
             fos = new ByteArrayOutputStream();
-            List<TSyncExamStudentScoreResult> tSyncExamStudentScoreResultList = tSyncExamStudentScoreService.export(sysUser.getSchoolId(), semesterId, orgId, majorId, clazzId, courseCode);
+            List<TSyncExamStudentScoreResult> tSyncExamStudentScoreResultList = tSyncExamStudentScoreService.export(sysUser.getSchoolId(), semesterId, examId, clazzId, courseCode);
             ExcelUtil.excelMake(TSyncExamStudentScoreResult.class, tSyncExamStudentScoreResultList, fos);
             String excelExportFilePath = printCommonService.saveTaskAttachment(fos, (boolean) map.get(SystemConstant.OSS));
             map.computeIfAbsent("count", v -> Objects.isNull(tSyncExamStudentScoreResultList) ? 0 : tSyncExamStudentScoreResultList.size());
@@ -1548,15 +1547,14 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         List<TSyncExamStudentScore> errorTSyncExamStudentScoreList = null;
         try {
             SysUser sysUser = (SysUser) map.get(SystemConstant.USER);
-            Long semesterId = null, orgId = null, majorId = null, clazzId = null;
+            Long semesterId = null, examId = null, clazzId = null;
             String courseCode = null;
             semesterId = Objects.nonNull(map.get("semesterId")) ? (Long) map.get("semesterId") : null;
-            orgId = Objects.nonNull(map.get("orgId")) ? (Long) map.get("orgId") : null;
-            majorId = Objects.nonNull(map.get("majorId")) ? (Long) map.get("majorId") : null;
+            examId = Objects.nonNull(map.get("examId")) ? (Long) map.get("examId") : null;
             clazzId = Objects.nonNull(map.get("clazzId")) ? (Long) map.get("clazzId") : null;
             courseCode = Objects.nonNull(map.get("courseCode")) ? (String) map.get("courseCode") : null;
 
-            List<TSyncExamStudentScoreResult> tSyncExamStudentScoreResultList = tSyncExamStudentScoreService.export(sysUser.getSchoolId(), semesterId, orgId, majorId, clazzId, courseCode);
+            List<TSyncExamStudentScoreResult> tSyncExamStudentScoreResultList = tSyncExamStudentScoreService.export(sysUser.getSchoolId(), semesterId, examId, clazzId, courseCode);
             if (Objects.nonNull(tSyncExamStudentScoreResultList) && tSyncExamStudentScoreResultList.size() > 0) {
                 List<TSyncExamStudentScore> tSyncExamStudentScoreList = new Gson().fromJson(JacksonUtil.parseJson(tSyncExamStudentScoreResultList), new TypeToken<List<TSyncExamStudentScore>>() {
                 }.getType());

+ 9 - 6
distributed-print-business/src/main/resources/mapper/TSyncExamStudentScoreMapper.xml

@@ -7,6 +7,7 @@
             distinct tsess.id,
             bs.id as semesterId,
             bs.name as semesterName,
+            be.name examName,
             tsess.exam_id as examId,
             tsess.exam_code as examCode,
             tsess.name,
@@ -33,7 +34,8 @@
             bs.id = tsess.semester_id
         join basic_student bs2 on
             bs2.school_id = tsess.school_id and bs2.student_code = tsess.student_code
-        join basic_clazz bc on
+        join (select id,clazz_name from basic_clazz where school_id = #{schoolId}
+                union all select id,teach_clazz_name clazz_name from teach_clazz where school_id = #{schoolId} ) bc on
             bc.id = tsess.clazz_id
         join exam_student es on
             es.school_id = tsess.school_id and es.student_code = tsess.student_code
@@ -43,6 +45,10 @@
             so.id = tsess.org_id
         join exam_detail_course edc on
 		    edc.school_id = tsess.school_id and concat(edc.paper_number,edc.paper_type,'-',edc.course_name) = tsess.subject_name
+        join exam_task et on
+            bs.school_id = et.school_id and edc.course_code = et.course_code and edc.paper_number = et.paper_number
+        join basic_exam be on
+            et.exam_id = be.id
     </sql>
 
     <sql id="footCommonSql">
@@ -53,11 +59,8 @@
             <if test="semesterId != null and semesterId != ''">
                 and tsess.semester_id = #{semesterId}
             </if>
-            <if test="orgId != null and orgId != ''">
-                and tsess.org_id = #{orgId}
-            </if>
-            <if test="majorId != null and majorId != ''">
-                and tsess.major_id = #{majorId}
+            <if test="examId != null and examId != ''">
+                and et.exam_id = #{examId}
             </if>
             <if test="clazzId != null and clazzId != ''">
                 and tsess.clazz_id = #{clazzId}

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPaperStructureController.java

@@ -94,7 +94,7 @@ public class ExamPaperStructureController {
      */
     @ApiOperation(value = "上传试卷标答文件")
     @RequestMapping(value = "/upload_answer", method = RequestMethod.POST)
-    public Result uploadAnswer(@RequestParam("id") Long id,
+    public Result uploadAnswer(@RequestParam("id") String id,
                                @RequestParam("md5") String md5,
                                @RequestParam("file") MultipartFile file) {
         ExamPaperStructure examPaperStructure = examPaperStructureService.uploadAnswer(id, md5, file);

+ 14 - 23
distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java

@@ -83,42 +83,35 @@ public class TSyncExamStudentScoreController {
     @ApiOperation(value = "成绩归档查询列表")
     @ApiResponses({@ApiResponse(code = 200, message = "成绩查询信息", response = TSyncExamStudentScoreResult.class)})
     @RequestMapping(value = "/score/list", method = RequestMethod.POST)
-    public Result list(@ApiParam(value = "学期id", required = true) @RequestParam String semesterId,
-                       @ApiParam(value = "学院id", required = false) @RequestParam(required = false) String orgId,
-                       @ApiParam(value = "专业id", required = false) @RequestParam(required = false) String majorId,
+    public Result list(@ApiParam(value = "学期ID", required = true) @RequestParam String semesterId,
+                       @ApiParam(value = "考试ID", required = true) @RequestParam(required = true) String examId,
                        @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,
                        @ApiParam(value = "课程编码", required = true) @RequestParam String courseCode,
                        @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) {
-        return ResultUtil.ok(tSyncExamStudentScoreService.list(new Page<>(pageNumber, pageSize), SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(orgId), SystemConstant.convertIdToLong(majorId), SystemConstant.convertIdToLong(clazzId), courseCode));
+        return ResultUtil.ok(tSyncExamStudentScoreService.list(new Page<>(pageNumber, pageSize), SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), SystemConstant.convertIdToLong(clazzId), courseCode));
     }
 
     @ApiOperation(value = "成绩导出")
     @ApiResponses({@ApiResponse(code = 200, message = "同步信息", response = TBTask.class)})
     @RequestMapping(value = "/score/export", method = RequestMethod.POST)
-    public Result export(@ApiParam(value = "学期id", required = true) @RequestParam String semesterId,
-                         @ApiParam(value = "学院id", required = false) @RequestParam(required = false) String orgId,
-                         @ApiParam(value = "专业id", required = false) @RequestParam(required = false) String majorId,
+    public Result export(@ApiParam(value = "学期ID", required = true) @RequestParam String semesterId,
+                         @ApiParam(value = "考试ID", required = true) @RequestParam(required = true) String examId,
                          @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,
                          @ApiParam(value = "课程编码", required = true) @RequestParam String courseCode) {
-        return createScoreTbTask(TaskTypeEnum.SCORE_EXPORT, semesterId, orgId, majorId, clazzId, courseCode);
+        return createScoreTbTask(TaskTypeEnum.SCORE_EXPORT, semesterId, examId, clazzId, courseCode);
     }
 
     @ApiOperation(value = "成绩查询同步")
     @ApiResponses({@ApiResponse(code = 200, message = "同步异步任务信息", response = TBSyncTask.class)})
     @RequestMapping(value = "/score/sync", method = RequestMethod.POST)
-    public Result sync(@ApiParam(value = "学期id", required = true) @RequestParam String semesterId,
+    public Result sync(@ApiParam(value = "学期ID", required = true) @RequestParam String semesterId,
+                       @ApiParam(value = "考试ID", required = true) @RequestParam String examId,
                        @ApiParam(value = "课程编码", required = true) @RequestParam String courseCode) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Set<Long> examIdSet = basicExamService.list(new QueryWrapper<BasicExam>()
-                .lambda()
-                .eq(BasicExam::getSemesterId,semesterId))
-                .stream()
-                .map(BaseEntity::getId)
-                .collect(Collectors.toSet());
         QueryWrapper<ExamPrintPlan> examPrintPlanQueryWrapper = new QueryWrapper<ExamPrintPlan>();
         examPrintPlanQueryWrapper.select(" DISTINCT third_relate_id ").eq("school_id", sysUser.getSchoolId())
-                .in("exam_id", examIdSet)
+                .eq("exam_id", examId)
                 .eq("sync_status", ExamPrintPlanSyncStatusEnum.FINISH);
         List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(examPrintPlanQueryWrapper);
         if (Objects.isNull(examPrintPlanList) || examPrintPlanList.size() == 0) {
@@ -158,11 +151,10 @@ public class TSyncExamStudentScoreController {
     @ApiResponses({@ApiResponse(code = 200, message = "同步信息", response = TBTask.class)})
     @RequestMapping(value = "/score/batch_download", method = RequestMethod.POST)
     public Result batchDownload(@ApiParam(value = "学期id", required = true) @RequestParam String semesterId,
-                                @ApiParam(value = "学院id", required = false) @RequestParam(required = false) String orgId,
-                                @ApiParam(value = "专业id", required = false) @RequestParam(required = false) String majorId,
+                                @ApiParam(value = "考试ID", required = false) @RequestParam(required = false) String examId,
                                 @ApiParam(value = "班级id", required = false) @RequestParam(required = false) String clazzId,
                                 @ApiParam(value = "课程编码", required = true) @RequestParam String courseCode) {
-        return createScoreTbTask(TaskTypeEnum.SCORE_DOWNLOAD, semesterId, orgId, majorId, clazzId, courseCode);
+        return createScoreTbTask(TaskTypeEnum.SCORE_DOWNLOAD, semesterId, examId, clazzId, courseCode);
     }
 
     /**
@@ -180,10 +172,9 @@ public class TSyncExamStudentScoreController {
         }
         Map<String, Object> map = printCommonService.saveTask(taskTypeEnum);
         map.computeIfAbsent("semesterId", v -> SystemConstant.convertIdToLong(params[0]));
-        map.computeIfAbsent("orgId", v -> SystemConstant.convertIdToLong(params[1]));
-        map.computeIfAbsent("majorId", v -> SystemConstant.convertIdToLong(params[2]));
-        map.computeIfAbsent("clazzId", v -> SystemConstant.convertIdToLong(params[3]));
-        map.computeIfAbsent("courseCode", v -> params[4]);
+        map.computeIfAbsent("examId", v -> SystemConstant.convertIdToLong(params[1]));
+        map.computeIfAbsent("clazzId", v -> SystemConstant.convertIdToLong(params[2]));
+        map.computeIfAbsent("courseCode", v -> params[3]);
         map.computeIfAbsent(SystemConstant.OSS, v -> dictionaryConfig.sysDomain().isOss());
         if (taskTypeEnum == TaskTypeEnum.SCORE_EXPORT) {
             asyncScoreExportService.exportTask(map);