Parcourir la source

查看试卷增加主观题明细

wangliang il y a 2 ans
Parent
commit
6faa16ca6f

+ 6 - 1
themis-admin/src/main/java/com/qmth/themis/admin/api/TEOpenController.java

@@ -132,7 +132,9 @@ public class TEOpenController {
     @ApiResponses({@ApiResponse(code = 200, message = "成绩查询同步信息", response = Result.class)})
     @RequestMapping(value = "/score/sync", method = RequestMethod.POST)
     public Result scoreSync(@ApiParam(value = "考试ID", required = true) @RequestParam String examId,
-                            @ApiParam(value = "课程编码", required = false) @RequestParam(required = false) String courseCode) {
+                            @ApiParam(value = "云阅卷考试id", required = true) @RequestParam String yunMarkExamId,
+                            @ApiParam(value = "accessKey", required = false) @RequestParam(required = false) String accessKey,
+                            @ApiParam(value = "accessSecret", required = false) @RequestParam(required = false) String accessSecret) {
         TBTaskHistory tbTaskHistory = null;
         try {
             ExamCacheBean examCacheBean = teExamService.getExamCacheBean(Long.parseLong(examId));
@@ -176,7 +178,10 @@ public class TEOpenController {
             transMap.put(SystemConstant.CREATE_ID, tbUser.getId());
             transMap.put(SystemConstant.ORG_ID, tbUser.getOrgId());
             transMap.put(SystemConstant.EXAM_ID, Long.parseLong(examId));
+            transMap.put("yunMarkExamId", Long.parseLong(yunMarkExamId));
             transMap.put(SystemConstant.EXAM_CODE, examCacheBean.getCode());
+            transMap.put(SystemConstant.ACCESS_KEY_ID, accessKey);
+            transMap.put(SystemConstant.ACCESS_KEY_SECRET, accessSecret);
             //mq发送消息start
             MqDto mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.MARK_CLOUD_SCORE_PUSH.name(),
                     transMap, MqTagEnum.MARK_CLOUD_SCORE_PUSH, String.valueOf(tbTaskHistory.getId()),

+ 14 - 1
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamRecordPaperViewBean.java

@@ -59,6 +59,9 @@ public class ExamRecordPaperViewBean implements Serializable {
     @ApiModelProperty(value = "乱序后的试卷结构json,没有则为null")
     private String randomPaperStructPath;
 
+    @ApiModelProperty(value = "主观题分数明细")
+    private String subjectiveScoreDetailJson;
+
     public ExamRecordPaperViewBean() {
 
     }
@@ -74,7 +77,8 @@ public class ExamRecordPaperViewBean implements Serializable {
                                    String paperStructJson,
                                    String answerJson,
                                    String examStudentAnswerJson,
-                                   String randomPaperStructPath) {
+                                   String randomPaperStructPath,
+                                   String subjectiveScoreDetailJson) {
         this.examRecordId = examRecordId;
         this.examStudentName = examStudentName;
         this.identity = identity;
@@ -87,6 +91,15 @@ public class ExamRecordPaperViewBean implements Serializable {
         this.answerJson = answerJson;
         this.examStudentAnswerJson = examStudentAnswerJson;
         this.randomPaperStructPath = randomPaperStructPath;
+        this.subjectiveScoreDetailJson = subjectiveScoreDetailJson;
+    }
+
+    public String getSubjectiveScoreDetailJson() {
+        return subjectiveScoreDetailJson;
+    }
+
+    public void setSubjectiveScoreDetailJson(String subjectiveScoreDetailJson) {
+        this.subjectiveScoreDetailJson = subjectiveScoreDetailJson;
     }
 
     public String getRandomPaperStructPath() {

+ 16 - 0
themis-business/src/main/java/com/qmth/themis/business/dao/TSyncExamStudentScoreMapper.java

@@ -0,0 +1,16 @@
+package com.qmth.themis.business.dao;
+
+import com.qmth.themis.business.base.CustomBaseMapper;
+import com.qmth.themis.business.entity.TSyncExamStudentScore;
+
+/**
+ * <p>
+ * 同步云阅卷考生成绩表 Mapper 接口
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-07-14
+ */
+public interface TSyncExamStudentScoreMapper extends CustomBaseMapper<TSyncExamStudentScore> {
+
+}

+ 315 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TSyncExamStudentScore.java

@@ -0,0 +1,315 @@
+package com.qmth.themis.business.entity;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.util.UidUtil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 同步云阅卷考生成绩表
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-07-14
+ */
+@ApiModel(value = "TSyncExamStudentScore对象", description = "同步云阅卷考生成绩表")
+public class TSyncExamStudentScore implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "考试批次id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examBatchId;
+
+    @ApiModelProperty(value = "学院")
+    private String college;
+
+    @ApiModelProperty(value = "客观题分数")
+    private Double objectiveScore;
+
+    @ApiModelProperty(value = "卷型")
+    private String paperType;
+
+    @ApiModelProperty(value = "考试编码")
+    private String examCode;
+
+    @ApiModelProperty(value = "学号")
+    private String studentCode;
+
+    @ApiModelProperty(value = "班级")
+    private String clazzName;
+
+    @ApiModelProperty(value = "主观题分数明细")
+    private String subjectiveScoreDetail;
+
+    @ApiModelProperty(value = "准考证号")
+    private String examNumber;
+
+    @ApiModelProperty(value = "总分")
+    private Double totalScore;
+
+    @ApiModelProperty(value = "原卷url")
+    private String sheetUrls;
+
+    @ApiModelProperty(value = "教师")
+    private String teacher;
+
+    @ApiModelProperty(value = "客观题分数明细")
+    private String objectiveScoreDetail;
+
+    @ApiModelProperty(value = "云阅卷考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examId;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "主观题分数")
+    private Double subjectiveScore;
+
+    @ApiModelProperty(value = "科目编码")
+    private String subjectCode;
+
+    @ApiModelProperty(value = "科目名称")
+    private String subjectName;
+
+    @ApiModelProperty(value = "考生状态,1-正常,2-缺考(包含未上传),3-违纪")
+    private Integer status;
+
+    @ApiModelProperty(value = "创建人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long createId;
+
+    @ApiModelProperty(value = "创建时间")
+    private Long createTime;
+
+    public TSyncExamStudentScore() {
+
+    }
+
+    public TSyncExamStudentScore(Map map) {
+        this.id = UidUtil.nextId();
+        this.examBatchId = Long.parseLong(String.valueOf(map.get("exam_batch_id")));
+        this.examId = Long.parseLong(String.valueOf(map.get("examId")));
+        this.examCode = (String) map.get("examCode");
+        this.examNumber = (String) map.get("examNumber");
+        this.studentCode = (String) map.get("studentCode");
+        this.name = (String) map.get("name");
+        this.subjectCode = (String) map.get("subjectCode");
+        this.subjectName = (String) map.get("subjectName");
+        this.paperType = (String) map.get("paperType");
+        this.college = (String) map.get("college");
+        this.clazzName = (String) map.get("className");
+        this.teacher = (String) map.get("teacher");
+        this.status = (Integer) map.get("status");
+        JSONArray jsonArray = (JSONArray) map.get("sheetUrls");
+        if (Objects.nonNull(jsonArray) && jsonArray.size() > 0) {
+            this.sheetUrls = jsonArray.toJSONString();
+        }
+        this.totalScore = Double.parseDouble(String.valueOf(map.get("totalScore")));
+        this.objectiveScore = Double.parseDouble(String.valueOf(map.get("objectiveScore")));
+        this.subjectiveScore = Double.parseDouble(String.valueOf(map.get("subjectiveScore")));
+        this.createId = (Long) map.get(SystemConstant.CREATE_ID);
+        this.createTime = System.currentTimeMillis();
+
+        JSONArray objectiveScoreDetailJsonArray = (JSONArray) map.get("objectiveScoreDetail");
+        JSONArray subjectiveScoreDetailJsonArray = (JSONArray) map.get("subjectiveScoreDetail");
+        if (Objects.nonNull(objectiveScoreDetailJsonArray) && objectiveScoreDetailJsonArray.size() > 0) {
+            this.objectiveScoreDetail = objectiveScoreDetailJsonArray.toJSONString();
+        }
+        if (Objects.nonNull(subjectiveScoreDetailJsonArray) && subjectiveScoreDetailJsonArray.size() > 0) {
+            this.subjectiveScoreDetail = subjectiveScoreDetailJsonArray.toJSONString();
+        }
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getExamBatchId() {
+        return examBatchId;
+    }
+
+    public void setExamBatchId(Long examBatchId) {
+        this.examBatchId = examBatchId;
+    }
+
+    public String getCollege() {
+        return college;
+    }
+
+    public void setCollege(String college) {
+        this.college = college;
+    }
+
+    public Double getObjectiveScore() {
+        return objectiveScore;
+    }
+
+    public void setObjectiveScore(Double objectiveScore) {
+        this.objectiveScore = objectiveScore;
+    }
+
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
+    public String getExamCode() {
+        return examCode;
+    }
+
+    public void setExamCode(String examCode) {
+        this.examCode = examCode;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getClazzName() {
+        return clazzName;
+    }
+
+    public void setClazzName(String clazzName) {
+        this.clazzName = clazzName;
+    }
+
+    public String getSubjectiveScoreDetail() {
+        return subjectiveScoreDetail;
+    }
+
+    public void setSubjectiveScoreDetail(String subjectiveScoreDetail) {
+        this.subjectiveScoreDetail = subjectiveScoreDetail;
+    }
+
+    public String getExamNumber() {
+        return examNumber;
+    }
+
+    public void setExamNumber(String examNumber) {
+        this.examNumber = examNumber;
+    }
+
+    public Double getTotalScore() {
+        return totalScore;
+    }
+
+    public void setTotalScore(Double totalScore) {
+        this.totalScore = totalScore;
+    }
+
+    public String getSheetUrls() {
+        return sheetUrls;
+    }
+
+    public void setSheetUrls(String sheetUrls) {
+        this.sheetUrls = sheetUrls;
+    }
+
+    public String getTeacher() {
+        return teacher;
+    }
+
+    public void setTeacher(String teacher) {
+        this.teacher = teacher;
+    }
+
+    public String getObjectiveScoreDetail() {
+        return objectiveScoreDetail;
+    }
+
+    public void setObjectiveScoreDetail(String objectiveScoreDetail) {
+        this.objectiveScoreDetail = objectiveScoreDetail;
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Double getSubjectiveScore() {
+        return subjectiveScore;
+    }
+
+    public void setSubjectiveScore(Double subjectiveScore) {
+        this.subjectiveScore = subjectiveScore;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Long getCreateId() {
+        return createId;
+    }
+
+    public void setCreateId(Long createId) {
+        this.createId = createId;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+}

+ 16 - 0
themis-business/src/main/java/com/qmth/themis/business/service/TSyncExamStudentScoreService.java

@@ -0,0 +1,16 @@
+package com.qmth.themis.business.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.themis.business.entity.TSyncExamStudentScore;
+
+/**
+ * <p>
+ * 同步云阅卷考生成绩表 服务类
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-07-14
+ */
+public interface TSyncExamStudentScoreService extends IService<TSyncExamStudentScore> {
+
+}

+ 10 - 1
themis-business/src/main/java/com/qmth/themis/business/service/impl/TOeExamRecordServiceImpl.java

@@ -20,6 +20,7 @@ import com.qmth.themis.business.dto.response.MarkResultDto;
 import com.qmth.themis.business.dto.response.TEExamUnFinishDto;
 import com.qmth.themis.business.entity.TOeExamAnswer;
 import com.qmth.themis.business.entity.TOeExamRecord;
+import com.qmth.themis.business.entity.TSyncExamStudentScore;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.*;
@@ -99,6 +100,9 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
     @Resource
     TOeExamAnswerService tOeExamAnswerService;
 
+    @Resource
+    TSyncExamStudentScoreService tSyncExamStudentScoreService;
+
     /**
      * 获取考试未完列表
      *
@@ -1445,6 +1449,10 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
         ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(tOeExamRecord.getExamStudentId());
         Optional.ofNullable(examStudentCacheBean).orElseThrow(() -> new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_STUDENT));
 
+        QueryWrapper<TSyncExamStudentScore> tSyncExamStudentScoreQueryWrapper = new QueryWrapper<>();
+        tSyncExamStudentScoreQueryWrapper.lambda().eq(TSyncExamStudentScore::getExamNumber, examRecordId);
+        TSyncExamStudentScore tSyncExamStudentScore = tSyncExamStudentScoreService.getOne(tSyncExamStudentScoreQueryWrapper);
+
         JSONObject paperStructJson = null, answerJson = null, randomPaperStructJson = null;
         String examStudentAnswerJson = null;
         if (Objects.nonNull(teExamPaper.getPaperViewPath())) {
@@ -1481,7 +1489,8 @@ public class TOeExamRecordServiceImpl extends ServiceImpl<TOeExamRecordMapper, T
                 Objects.nonNull(paperStructJson) ? paperStructJson.toJSONString() : null,
                 Objects.nonNull(answerJson) ? answerJson.toJSONString() : null,
                 examStudentAnswerJson,
-                Objects.nonNull(randomPaperStructJson) ? randomPaperStructJson.toJSONString() : null);
+                Objects.nonNull(randomPaperStructJson) ? randomPaperStructJson.toJSONString() : null,
+                Objects.nonNull(tSyncExamStudentScore) && Objects.nonNull(tSyncExamStudentScore.getSubjectiveScoreDetail()) ? tSyncExamStudentScore.getSubjectiveScoreDetail() : null);
     }
 
     /**

+ 20 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/TSyncExamStudentScoreServiceImpl.java

@@ -0,0 +1,20 @@
+package com.qmth.themis.business.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.themis.business.dao.TSyncExamStudentScoreMapper;
+import com.qmth.themis.business.entity.TSyncExamStudentScore;
+import com.qmth.themis.business.service.TSyncExamStudentScoreService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 同步云阅卷考生成绩表 服务实现类
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-07-14
+ */
+@Service
+public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStudentScoreMapper, TSyncExamStudentScore> implements TSyncExamStudentScoreService {
+
+}

+ 43 - 1
themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskSyncMarkCloudTemplete.java

@@ -1,7 +1,12 @@
 package com.qmth.themis.business.templete.impl;
 
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.dao.TSyncExamStudentScoreMapper;
+import com.qmth.themis.business.entity.TSyncExamStudentScore;
+import com.qmth.themis.business.enums.TaskStatusEnum;
+import com.qmth.themis.business.service.TSyncExamStudentScoreService;
 import com.qmth.themis.business.templete.TaskSyncCommon;
 import com.qmth.themis.business.templete.TaskSyncTemplete;
 import com.qmth.themis.business.util.CloudMarkUtil;
@@ -11,6 +16,7 @@ import com.qmth.themis.common.util.ResultUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.io.File;
@@ -33,6 +39,12 @@ public class TaskSyncMarkCloudTemplete implements TaskSyncTemplete {
     @Resource
     CloudMarkUtil cloudMarkUtil;
 
+    @Resource
+    TSyncExamStudentScoreService tSyncExamStudentScoreService;
+
+    @Resource
+    TSyncExamStudentScoreMapper tSyncExamStudentScoreMapper;
+
     /**
      * 同步模版
      *
@@ -50,7 +62,17 @@ public class TaskSyncMarkCloudTemplete implements TaskSyncTemplete {
         try {
             taskSyncCommon.getTxtList()
                     .add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->开始准备同步云阅卷成绩数据");
+            Object o = map.get("yunMarkExamId");
+            Long yunMarkExamId = null;
+            if (o instanceof Long) {
+                yunMarkExamId = (Long) o;
+            } else if (o instanceof Integer) {
+                yunMarkExamId = Long.parseLong(String.valueOf(o));
+            }
+            taskSyncCommon.getTbTaskHistory().setEntityId(yunMarkExamId);
+            Long examId = (Long) map.get(SystemConstant.EXAM_ID);
             Long orgId = (Long) map.get(SystemConstant.ORG_ID);
+            Long createId = (Long) map.get(SystemConstant.CREATE_ID);
             String examCode = (String) map.get(SystemConstant.EXAM_CODE);
 
             boolean oss = (boolean) taskSyncCommon.getOssEnv().get(SystemConstant.OSS);
@@ -62,7 +84,27 @@ public class TaskSyncMarkCloudTemplete implements TaskSyncTemplete {
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
-            List<Map> finalList = cloudMarkUtil.callStudentScore(orgId, null, examCode);
+            taskSyncCommon.getTbTaskHistory().setStatus(TaskStatusEnum.RUNNING);
+            taskSyncCommon.getTbTaskHistory().setSummary("正在同步数据");
+            taskSyncCommon.getTxtList().add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->" + taskSyncCommon.getTbTaskHistory().getSummary());
+            List<Map> finalList = cloudMarkUtil.callStudentScore(orgId, yunMarkExamId, examCode, String.valueOf(map.get(SystemConstant.ACCESS_KEY_ID)), String.valueOf(map.get(SystemConstant.ACCESS_KEY_SECRET)));
+            if (!CollectionUtils.isEmpty(finalList)) {
+                List<TSyncExamStudentScore> tSyncExamStudentScoreList = new ArrayList<>(finalList.size());
+                for (Map student : finalList) {
+                    student.put("exam_batch_id", examId);
+                    student.put(SystemConstant.CREATE_ID, createId);
+                    tSyncExamStudentScoreList.add(new TSyncExamStudentScore(student));
+                }
+                if (tSyncExamStudentScoreList.size() > 0) {
+                    tSyncExamStudentScoreService.remove(new QueryWrapper<TSyncExamStudentScore>().lambda().eq(TSyncExamStudentScore::getExamBatchId, examId).eq(TSyncExamStudentScore::getExamId, yunMarkExamId));
+                    tSyncExamStudentScoreMapper.insertBatch(tSyncExamStudentScoreList);
+                }
+
+                taskSyncCommon.getTbTaskHistory().setStatus(TaskStatusEnum.FINISH);
+                taskSyncCommon.getTbTaskHistory().setSummary("同步了" + finalList.size() + "条数据");
+                taskSyncCommon.getTbTaskHistory().setProgress(100D);
+                taskSyncCommon.getTxtList().add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->" + taskSyncCommon.getTbTaskHistory().getSummary());
+            }
             long end = System.currentTimeMillis();
             log.info("同步云阅卷成绩数据结束,============耗时============:{}秒", (end - start) / 1000);
         } catch (Exception e) {

+ 11 - 2
themis-business/src/main/java/com/qmth/themis/business/util/CloudMarkUtil.java

@@ -49,9 +49,12 @@ public class CloudMarkUtil {
      * @param orgId
      * @param examId
      * @param examCode
+     * @param accessKey
+     * @param accessSecret
      * @return
+     * @throws IOException
      */
-    public List<Map> callStudentScore(Long orgId, Long examId, String examCode) throws IOException {
+    public List<Map> callStudentScore(Long orgId, Long examId, String examCode, String accessKey, String accessSecret) throws IOException {
         String url = yunMarkDomain.getUrl() + yunMarkDomain.getStudentScoreApi();
         Map<String, Object> params = new HashMap<>();
         if (Objects.nonNull(examId)) {
@@ -62,6 +65,12 @@ public class CloudMarkUtil {
         TBOrg tbOrg = cacheService.addOrgCache(orgId);
         Optional.ofNullable(tbOrg).orElseThrow(() -> new BusinessException(ExceptionResultEnum.ORG_NO));
 
+        if (Objects.isNull(accessKey) || Objects.equals("", accessKey.trim())) {
+            accessKey = tbOrg.getAccessKey();
+        }
+        if (Objects.isNull(accessSecret) || Objects.equals("", accessSecret.trim())) {
+            accessSecret = tbOrg.getAccessSecret();
+        }
         int pageNumber = 1;
         int pageSize = 100;
         List<Map> students = null;
@@ -69,7 +78,7 @@ public class CloudMarkUtil {
             params.put("pageNumber", pageNumber);
             params.put("pageSize", pageSize);
             Long timestamp = System.currentTimeMillis();
-            String accessToken = SignatureInfo.build(SignatureType.SECRET, SystemConstant.METHOD, yunMarkDomain.getStudentScoreApi(), timestamp, tbOrg.getAccessKey(), tbOrg.getAccessSecret());
+            String accessToken = SignatureInfo.build(SignatureType.SECRET, SystemConstant.METHOD, yunMarkDomain.getStudentScoreApi(), timestamp, accessKey, accessSecret);
             String result = HttpUtil.post(url, params, accessToken, timestamp);
             result = StringEscapeUtils.unescapeHtml4(result);
             if (Objects.nonNull(result)) {

+ 5 - 0
themis-business/src/main/resources/mapper/TSyncExamStudentScoreMapper.xml

@@ -0,0 +1,5 @@
+<?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.themis.business.dao.TSyncExamStudentScoreMapper">
+
+</mapper>