浏览代码

试卷结构上传-同步方法优化

xiaof 3 年之前
父节点
当前提交
3c7ddc73f4

+ 17 - 16
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -145,7 +145,7 @@ public class DataSyncServiceImpl implements DataSyncService {
             List<ExamPrintPlan> examPrintPlans = examPrintPlanService.list(printPlanQueryWrapper);
             List<ExamPrintPlan> examPrintPlans = examPrintPlanService.list(printPlanQueryWrapper);
             ExamPrintPlan examPrintPlan = examPrintPlans.stream().max(Comparator.comparingLong(ExamPrintPlan::getExamEndTime)).get();
             ExamPrintPlan examPrintPlan = examPrintPlans.stream().max(Comparator.comparingLong(ExamPrintPlan::getExamEndTime)).get();
             String examTime = DateUtil.format(new Date(examPrintPlan.getExamEndTime()), DATE_FORMAT);
             String examTime = DateUtil.format(new Date(examPrintPlan.getExamEndTime()), DATE_FORMAT);
-            syncDataParam.setThirdRelateId(stmmsUtils.syncExam(time, syncDataParam.getThirdRelateName(), examTime));
+            syncDataParam.setThirdRelateId(stmmsUtils.syncExam(examPrintPlan.getSchoolId(), time, syncDataParam.getThirdRelateName(), examTime));
         }
         }
 
 
         for (Long printPlanId : printPlans) {
         for (Long printPlanId : printPlans) {
@@ -178,14 +178,14 @@ public class DataSyncServiceImpl implements DataSyncService {
 
 
             // 同步试卷文件
             // 同步试卷文件
             File paperFile = downFileFromFss(paper, paperType, SyncFileTypeEnum.PAPER);
             File paperFile = downFileFromFss(paper, paperType, SyncFileTypeEnum.PAPER);
-            boolean syncPaperFile = stmmsUtils.syncFile(String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber(), SyncFileTypeEnum.PAPER, paperFile);
+            boolean syncPaperFile = stmmsUtils.syncFile(examPaperStructure.getSchoolId(), String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber(), SyncFileTypeEnum.PAPER, paperFile);
             if (syncPaperFile) {
             if (syncPaperFile) {
                 status = ExamPaperStructureStatusEnum.PAPER_FINISH;
                 status = ExamPaperStructureStatusEnum.PAPER_FINISH;
             }
             }
 
 
             // 同步标答文件
             // 同步标答文件
             File answerFile = downFileFromFss(paper, paperType, SyncFileTypeEnum.PAPER);
             File answerFile = downFileFromFss(paper, paperType, SyncFileTypeEnum.PAPER);
-            boolean syncAnswerFile = stmmsUtils.syncFile(String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber(), SyncFileTypeEnum.ANSWER, answerFile);
+            boolean syncAnswerFile = stmmsUtils.syncFile(examPaperStructure.getSchoolId(), String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber(), SyncFileTypeEnum.ANSWER, answerFile);
             if (syncAnswerFile) {
             if (syncAnswerFile) {
                 status = ExamPaperStructureStatusEnum.ANSWER_FINISH;
                 status = ExamPaperStructureStatusEnum.ANSWER_FINISH;
             }
             }
@@ -213,7 +213,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                 syncStructureData.setAnswer(m.getAnswer());
                 syncStructureData.setAnswer(m.getAnswer());
                 return syncStructureData;
                 return syncStructureData;
             }).collect(Collectors.toList());
             }).collect(Collectors.toList());
-            boolean syncObjectiveStructure = stmmsUtils.syncPaperStructure(String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber(), true, objectivePaperType, syncObjectiveStructureDatas);
+            boolean syncObjectiveStructure = stmmsUtils.syncPaperStructure(examPaperStructure.getSchoolId(), String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber() + objectivePaperType, true, objectivePaperType, syncObjectiveStructureDatas);
             if (syncObjectiveStructure) {
             if (syncObjectiveStructure) {
                 status = ExamPaperStructureStatusEnum.OBJECTIVE_FINISH;
                 status = ExamPaperStructureStatusEnum.OBJECTIVE_FINISH;
             }
             }
@@ -227,11 +227,11 @@ public class DataSyncServiceImpl implements DataSyncService {
                 throw ExceptionResultEnum.ERROR.exception("主观题文件未上传");
                 throw ExceptionResultEnum.ERROR.exception("主观题文件未上传");
             }
             }
             String subjectivePaperType = subjectiveJson.getString("paperType");
             String subjectivePaperType = subjectiveJson.getString("paperType");
-            String subjectieContent = subjectiveJson.getString("content");
-            if (StringUtils.isAnyBlank(subjectivePaperType, subjectieContent)) {
+            String subjectiveContent = subjectiveJson.getString("content");
+            if (StringUtils.isAnyBlank(subjectivePaperType, subjectiveContent)) {
                 throw ExceptionResultEnum.ERROR.exception("没有找到主观题数据");
                 throw ExceptionResultEnum.ERROR.exception("没有找到主观题数据");
             }
             }
-            List<ExamPaperSubjectiveStructureDto> subjectiveStructureDtos = JSONObject.parseArray(subjectieContent, ExamPaperSubjectiveStructureDto.class);
+            List<ExamPaperSubjectiveStructureDto> subjectiveStructureDtos = JSONObject.parseArray(subjectiveContent, ExamPaperSubjectiveStructureDto.class);
             List<SyncStructureData> syncSubjectiveStructureDatas = subjectiveStructureDtos.stream().map(m -> {
             List<SyncStructureData> syncSubjectiveStructureDatas = subjectiveStructureDtos.stream().map(m -> {
                 SyncStructureData syncStructureData = new SyncStructureData();
                 SyncStructureData syncStructureData = new SyncStructureData();
                 syncStructureData.setMainNumber(Integer.valueOf(m.getMainNumber()));
                 syncStructureData.setMainNumber(Integer.valueOf(m.getMainNumber()));
@@ -240,7 +240,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                 syncStructureData.setTotalScore(Double.valueOf(m.getScore()));
                 syncStructureData.setTotalScore(Double.valueOf(m.getScore()));
                 return syncStructureData;
                 return syncStructureData;
             }).collect(Collectors.toList());
             }).collect(Collectors.toList());
-            boolean syncSubjectiveStructure = stmmsUtils.syncPaperStructure(String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber(), true, subjectivePaperType, syncSubjectiveStructureDatas);
+            boolean syncSubjectiveStructure = stmmsUtils.syncPaperStructure(examPaperStructure.getSchoolId(), String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber() + subjectivePaperType, true, subjectivePaperType, syncSubjectiveStructureDatas);
             if (syncSubjectiveStructure) {
             if (syncSubjectiveStructure) {
                 status = ExamPaperStructureStatusEnum.SUBJECTIVE_FINISH;
                 status = ExamPaperStructureStatusEnum.SUBJECTIVE_FINISH;
             }
             }
@@ -286,8 +286,8 @@ public class DataSyncServiceImpl implements DataSyncService {
             // 考试同步成功,才能同步考生和题卡
             // 考试同步成功,才能同步考生和题卡
             if (Objects.nonNull(thirdRelateId)) {
             if (Objects.nonNull(thirdRelateId)) {
                 updateWrapper.lambda().set(ExamPrintPlan::getThirdRelateId, thirdRelateId).set(ExamPrintPlan::getThirdRelateName, thirdRelateName);
                 updateWrapper.lambda().set(ExamPrintPlan::getThirdRelateId, thirdRelateId).set(ExamPrintPlan::getThirdRelateName, thirdRelateName);
-                saveStudent(examPrintPlan.getId(), thirdRelateId);
-                cardUpload(examPrintPlan.getId(), thirdRelateId);
+                saveStudent(examPrintPlan.getSchoolId(), examPrintPlan.getId(), thirdRelateId);
+                cardUpload(examPrintPlan.getSchoolId(), examPrintPlan.getId(), thirdRelateId);
             } else {
             } else {
                 throw ExceptionResultEnum.ERROR.exception("无法获取云阅卷考试,同步数据失败");
                 throw ExceptionResultEnum.ERROR.exception("无法获取云阅卷考试,同步数据失败");
             }
             }
@@ -323,7 +323,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                 String code = String.valueOf(examPrintPlan.getId());
                 String code = String.valueOf(examPrintPlan.getId());
                 String name = examPrintPlan.getName();
                 String name = examPrintPlan.getName();
                 String examTime = DateUtil.format(new Date(examPrintPlan.getExamEndTime()), DATE_FORMAT);
                 String examTime = DateUtil.format(new Date(examPrintPlan.getExamEndTime()), DATE_FORMAT);
-                thirdRelateId = stmmsUtils.syncExam(code, name, examTime);
+                thirdRelateId = stmmsUtils.syncExam(examPrintPlan.getSchoolId(), code, name, examTime);
             }
             }
             return thirdRelateId;
             return thirdRelateId;
         } catch (Exception e) {
         } catch (Exception e) {
@@ -336,7 +336,7 @@ public class DataSyncServiceImpl implements DataSyncService {
      *
      *
      * @return
      * @return
      */
      */
-    public void saveStudent(Long examPrintPlanId, Long thirdRelateId) {
+    public void saveStudent(Long schoolId, Long examPrintPlanId, Long thirdRelateId) {
         List<SyncExamStudentDto> examStudents = examStudentService.listStudentByPrintPlanIdAndSyncStatus(examPrintPlanId);
         List<SyncExamStudentDto> examStudents = examStudentService.listStudentByPrintPlanIdAndSyncStatus(examPrintPlanId);
         for (SyncExamStudentDto examStudent : examStudents) {
         for (SyncExamStudentDto examStudent : examStudents) {
             try {
             try {
@@ -348,9 +348,9 @@ public class DataSyncServiceImpl implements DataSyncService {
                 String college = "无";
                 String college = "无";
                 String className = getClassName(examStudent.getExtendFields());
                 String className = getClassName(examStudent.getExtendFields());
                 String teacher = "无";
                 String teacher = "无";
-                String subjectCode = examStudent.getPaperNumber(); // 取试卷编号
+                String subjectCode = examStudent.getPaperNumber() + examStudent.getPaperType(); // 取试卷编号
                 String subjectName = examStudent.getCourseName();
                 String subjectName = examStudent.getCourseName();
-                boolean syncStudent = stmmsUtils.syncStudent(examId, examNumber, studentCode, name, college, className, teacher, subjectCode, subjectName, null, null, null, null);
+                boolean syncStudent = stmmsUtils.syncStudent(schoolId, examId, examNumber, studentCode, name, college, className, teacher, subjectCode, subjectName, null, null, null, null);
 
 
                 if (syncStudent) {
                 if (syncStudent) {
                     UpdateWrapper<ExamStudent> updateWrapper = new UpdateWrapper<>();
                     UpdateWrapper<ExamStudent> updateWrapper = new UpdateWrapper<>();
@@ -368,7 +368,7 @@ public class DataSyncServiceImpl implements DataSyncService {
      *
      *
      * @return
      * @return
      */
      */
-    public void cardUpload(Long examPrintPlanId, Long thirdRelateId) {
+    public void cardUpload(Long schoolId, Long examPrintPlanId, Long thirdRelateId) {
         List<ExamDetailCourse> examDetailCourses = examDetailService.listSyncPaperNumberByPrintPlanId(examPrintPlanId);
         List<ExamDetailCourse> examDetailCourses = examDetailService.listSyncPaperNumberByPrintPlanId(examPrintPlanId);
         if (CollectionUtils.isEmpty(examDetailCourses)) {
         if (CollectionUtils.isEmpty(examDetailCourses)) {
             return;
             return;
@@ -393,7 +393,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                     String filePath = getTempDir(SyncFileTypeEnum.CARD);
                     String filePath = getTempDir(SyncFileTypeEnum.CARD);
                     file = createJsonFile(filePath, syncExamCardDto.getContent());
                     file = createJsonFile(filePath, syncExamCardDto.getContent());
                     if (file.exists()) {
                     if (file.exists()) {
-                        boolean uploadCard = stmmsUtils.syncFile(String.valueOf(thirdRelateId), syncExamCardDto.getPaperNumber(), SyncFileTypeEnum.CARD, file);
+                        boolean uploadCard = stmmsUtils.syncFile(schoolId, String.valueOf(thirdRelateId), syncExamCardDto.getPaperNumber(), SyncFileTypeEnum.CARD, file);
                         if (uploadCard) {
                         if (uploadCard) {
                             UpdateWrapper<ExamCard> updateWrapper = new UpdateWrapper<>();
                             UpdateWrapper<ExamCard> updateWrapper = new UpdateWrapper<>();
                             updateWrapper.lambda().set(ExamCard::getSyncStatus, true).eq(ExamCard::getId, syncExamCardDto.getId());
                             updateWrapper.lambda().set(ExamCard::getSyncStatus, true).eq(ExamCard::getId, syncExamCardDto.getId());
@@ -444,6 +444,7 @@ public class DataSyncServiceImpl implements DataSyncService {
 
 
     /**
     /**
      * 上传文件临时目录
      * 上传文件临时目录
+     *
      * @param type
      * @param type
      * @return
      * @return
      */
      */

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

@@ -29,6 +29,7 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
         QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
         QueryWrapper<TBSyncTask> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(TBSyncTask::getSchoolId, examPrintPlan.getSchoolId())
         queryWrapper.lambda().eq(TBSyncTask::getSchoolId, examPrintPlan.getSchoolId())
                 .eq(TBSyncTask::getPrintPlanId, examPrintPlan.getId())
                 .eq(TBSyncTask::getPrintPlanId, examPrintPlan.getId())
+                .eq(TBSyncTask::getType, PushTypeEnum.ADMIN_PUSH)
                 .ne(TBSyncTask::getStatus, TaskStatusEnum.FINISH);
                 .ne(TBSyncTask::getStatus, TaskStatusEnum.FINISH);
         TBSyncTask tbSyncTask = this.getOne(queryWrapper);
         TBSyncTask tbSyncTask = this.getOne(queryWrapper);
         if (tbSyncTask != null) {
         if (tbSyncTask != null) {
@@ -39,6 +40,7 @@ public class TBSyncTaskServiceImpl extends ServiceImpl<TBSyncTaskMapper, TBSyncT
             tbSyncTask.setSchoolId(examPrintPlan.getSchoolId());
             tbSyncTask.setSchoolId(examPrintPlan.getSchoolId());
             tbSyncTask.setPrintPlanId(examPrintPlan.getId());
             tbSyncTask.setPrintPlanId(examPrintPlan.getId());
             tbSyncTask.setPrintPlanName(examPrintPlan.getName());
             tbSyncTask.setPrintPlanName(examPrintPlan.getName());
+            tbSyncTask.setType(PushTypeEnum.ADMIN_PUSH);
             tbSyncTask.setStatus(TaskStatusEnum.INIT);
             tbSyncTask.setStatus(TaskStatusEnum.INIT);
             tbSyncTask.setCreateTime(System.currentTimeMillis());
             tbSyncTask.setCreateTime(System.currentTimeMillis());
         }
         }

+ 3 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/PushLogicServiceImpl.java

@@ -81,10 +81,11 @@ public class PushLogicServiceImpl implements PushLogicService {
      */
      */
     @Override
     @Override
     public Map<String, Object> executeScorePushLogic(Map<String, Object> map) throws Exception {
     public Map<String, Object> executeScorePushLogic(Map<String, Object> map) throws Exception {
+        SysUser sysUser = (SysUser) map.get(SystemConstant.SYS_USER);
         Integer examId = (Integer) map.get("examId");
         Integer examId = (Integer) map.get("examId");
         String examCode = (String) map.get("examCode");
         String examCode = (String) map.get("examCode");
         try {
         try {
-            int totalCount = stmmsUtils.getStudentCount(examId, examCode, null, null, null, null, null, null);
+            int totalCount = stmmsUtils.getStudentCount(sysUser.getSchoolId(), examId, examCode, null, null, null, null, null, null);
             log.info("云阅卷:考试成绩考生数量查询接口调用,返回数量:{}", totalCount);
             log.info("云阅卷:考试成绩考生数量查询接口调用,返回数量:{}", totalCount);
 //            List<Map> paramList = new ArrayList<>();
 //            List<Map> paramList = new ArrayList<>();
             if (totalCount > 0) {
             if (totalCount > 0) {
@@ -92,7 +93,7 @@ public class PushLogicServiceImpl implements PushLogicService {
                 int mod = totalCount % pageSize;
                 int mod = totalCount % pageSize;
                 int pageNos = mod == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
                 int pageNos = mod == 0 ? totalCount / pageSize : totalCount / pageSize + 1;
                 for (int i = 1; i <= pageNos; i++) {
                 for (int i = 1; i <= pageNos; i++) {
-                    List<Map> students = stmmsUtils.getStudentScore(examId, examCode, null, null, null, null, null, null, i, pageSize);
+                    List<Map> students = stmmsUtils.getStudentScore(sysUser.getSchoolId(), examId, examCode, null, null, null, null, null, null, i, pageSize);
                     for (Map student : students) {
                     for (Map student : students) {
                         String jxbId = String.valueOf(student.get("className"));
                         String jxbId = String.valueOf(student.get("className"));
                         String xhId = String.valueOf(student.get("studentCode"));
                         String xhId = String.valueOf(student.get("studentCode"));

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/PushTypeEnum.java

@@ -8,8 +8,8 @@ import java.util.Objects;
  * @Date: 2021-11-01
  * @Date: 2021-11-01
  */
  */
 public enum PushTypeEnum {
 public enum PushTypeEnum {
-    USER_PUSH("用户推送")
-    ;
+    USER_PUSH("用户推送"),
+    ADMIN_PUSH("考试推送");
 
 
     PushTypeEnum(String title) {
     PushTypeEnum(String title) {
         this.title = title;
         this.title = title;

+ 27 - 22
teachcloud-common/src/main/java/com/qmth/teachcloud/common/sync/StmmsUtils.java

@@ -12,7 +12,6 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.SyncFileTypeEnum;
 import com.qmth.teachcloud.common.enums.SyncFileTypeEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.HttpKit;
 import com.qmth.teachcloud.common.util.HttpKit;
-import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
@@ -57,7 +56,7 @@ public class StmmsUtils {
      * @param examTime 考试时间
      * @param examTime 考试时间
      * @return
      * @return
      */
      */
-    public Long syncExam(String code, String name, String examTime) {
+    public Long syncExam(Long schoolId, String code, String name, String examTime) {
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
         String examSaveUrl = dictionaryConfig.syncDataDomain().getExamSaveUrl();
         String examSaveUrl = dictionaryConfig.syncDataDomain().getExamSaveUrl();
         validUrl(hostUrl, examSaveUrl);
         validUrl(hostUrl, examSaveUrl);
@@ -69,7 +68,7 @@ public class StmmsUtils {
         map.put("examTime", validParam(examTime, null, true, "考试时间"));
         map.put("examTime", validParam(examTime, null, true, "考试时间"));
         map.put("type", SAVE_EXAM_TYPE);
         map.put("type", SAVE_EXAM_TYPE);
 
 
-        String result = HttpKit.sendPost(postUrl, getHeaders(examSaveUrl), map, null, null, null);
+        String result = HttpKit.sendPost(postUrl, getHeaders(schoolId, examSaveUrl), map, null, null, null);
         JSONObject jsonObject = JSONObject.parseObject(result);
         JSONObject jsonObject = JSONObject.parseObject(result);
         if (jsonObject.containsKey("id")) {
         if (jsonObject.containsKey("id")) {
             return Long.valueOf(jsonObject.get("id").toString());
             return Long.valueOf(jsonObject.get("id").toString());
@@ -81,6 +80,7 @@ public class StmmsUtils {
     /**
     /**
      * 考生创建/更新接口
      * 考生创建/更新接口
      *
      *
+     * @param schoolId
      * @param examId      考试ID
      * @param examId      考试ID
      * @param examNumber  准考证号
      * @param examNumber  准考证号
      * @param studentCode 学号
      * @param studentCode 学号
@@ -95,7 +95,7 @@ public class StmmsUtils {
      * @param examSite    考点
      * @param examSite    考点
      * @param examRoom    考场
      * @param examRoom    考场
      */
      */
-    public boolean syncStudent(String examId, String examNumber, String studentCode, String name, String college,
+    public boolean syncStudent(Long schoolId, String examId, String examNumber, String studentCode, String name, String college,
                                String className, String teacher, String subjectCode, String subjectName,
                                String className, String teacher, String subjectCode, String subjectName,
                                String packageCode, String paperType, String examSite, String examRoom) {
                                String packageCode, String paperType, String examSite, String examRoom) {
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
@@ -119,7 +119,7 @@ public class StmmsUtils {
             map.put("examSite", validParam(examSite, null, false, "考点"));
             map.put("examSite", validParam(examSite, null, false, "考点"));
             map.put("examRoom", validParam(examRoom, null, false, "考场"));
             map.put("examRoom", validParam(examRoom, null, false, "考场"));
 
 
-            String result = HttpKit.sendPost(postUrl, getHeaders(studentSaveUrl), map, null, null, null);
+            String result = HttpKit.sendPost(postUrl, getHeaders(schoolId, studentSaveUrl), map, null, null, null);
             JSONObject jsonObject = JSONObject.parseObject(result);
             JSONObject jsonObject = JSONObject.parseObject(result);
             if (jsonObject.containsKey("updateTime")) {
             if (jsonObject.containsKey("updateTime")) {
                 return true;
                 return true;
@@ -134,12 +134,13 @@ public class StmmsUtils {
     /**
     /**
      * 文件公共上传接口
      * 文件公共上传接口
      *
      *
+     * @param schoolId
      * @param examId      考试ID
      * @param examId      考试ID
      * @param subjectCode 科目代码
      * @param subjectCode 科目代码
      * @param type        文件类型  SyncFileTypeEnum枚举
      * @param type        文件类型  SyncFileTypeEnum枚举
      * @param file        文件
      * @param file        文件
      */
      */
-    public boolean syncFile(String examId, String subjectCode, SyncFileTypeEnum type, File file) {
+    public boolean syncFile(Long schoolId, String examId, String subjectCode, SyncFileTypeEnum type, File file) {
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
         String fileUploadUrl = dictionaryConfig.syncDataDomain().getFileUploadUrl();
         String fileUploadUrl = dictionaryConfig.syncDataDomain().getFileUploadUrl();
         validUrl(hostUrl, fileUploadUrl);
         validUrl(hostUrl, fileUploadUrl);
@@ -170,7 +171,7 @@ public class StmmsUtils {
             formText.put("format", suffix);
             formText.put("format", suffix);
             formText.put("md5", DigestUtils.md5Hex(new FileInputStream(file)));
             formText.put("md5", DigestUtils.md5Hex(new FileInputStream(file)));
 
 
-            String result = HttpKit.sendPost(postUrl, getHeaders(fileUploadUrl), formText, files, null, null);
+            String result = HttpKit.sendPost(postUrl, getHeaders(schoolId, fileUploadUrl), formText, files, null, null);
             JSONObject jsonObject = JSONObject.parseObject(result);
             JSONObject jsonObject = JSONObject.parseObject(result);
             if (jsonObject.containsKey("success")) {
             if (jsonObject.containsKey("success")) {
                 String success = jsonObject.get("success").toString();
                 String success = jsonObject.get("success").toString();
@@ -189,13 +190,14 @@ public class StmmsUtils {
     /**
     /**
      * 试卷结构创建/更新接口
      * 试卷结构创建/更新接口
      *
      *
+     * @param schoolId
      * @param examId      考试ID
      * @param examId      考试ID
      * @param subjectCode 科目代码
      * @param subjectCode 科目代码
      * @param objective   是否客观题
      * @param objective   是否客观题
      * @param paperType   试卷类型
      * @param paperType   试卷类型
      * @param questions   试卷结构JSON
      * @param questions   试卷结构JSON
      */
      */
-    public boolean syncPaperStructure(String examId, String subjectCode, Boolean objective,
+    public boolean syncPaperStructure(Long schoolId, String examId, String subjectCode, Boolean objective,
                                       String paperType, List<SyncStructureData> questions) {
                                       String paperType, List<SyncStructureData> questions) {
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
         String structureUrl = dictionaryConfig.syncDataDomain().getStructureUrl();
         String structureUrl = dictionaryConfig.syncDataDomain().getStructureUrl();
@@ -212,7 +214,7 @@ public class StmmsUtils {
 
 
             String jsonData = JSONObject.toJSONString(map);
             String jsonData = JSONObject.toJSONString(map);
 
 
-            String result = HttpKit.sendPost(postUrl, jsonData, getHeaders(structureUrl));
+            String result = HttpKit.sendPost(postUrl, jsonData, getHeaders(schoolId, structureUrl));
             JSONObject jsonObject = JSONObject.parseObject(result);
             JSONObject jsonObject = JSONObject.parseObject(result);
             if (jsonObject.containsKey("updateTime")) {
             if (jsonObject.containsKey("updateTime")) {
                 return true;
                 return true;
@@ -267,7 +269,7 @@ public class StmmsUtils {
             map.put("account", prefix + sysUser.getLoginName());
             map.put("account", prefix + sysUser.getLoginName());
             map.put("name", sysUser.getLoginName());
             map.put("name", sysUser.getLoginName());
             map.put("time", time);
             map.put("time", time);
-            map.put("authorization", createSign(time, loginUrl));
+            map.put("authorization", createSign(sysUser.getSchoolId(), time, loginUrl));
             return map;
             return map;
         } catch (Exception e) {
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception("登录信息获取失败");
             throw ExceptionResultEnum.ERROR.exception("登录信息获取失败");
@@ -279,10 +281,10 @@ public class StmmsUtils {
      *
      *
      * @param url 请求URL
      * @param url 请求URL
      */
      */
-    private Map<String, String> getHeaders(String url) {
+    private Map<String, String> getHeaders(Long schoolId, String url) {
         long time = System.currentTimeMillis();
         long time = System.currentTimeMillis();
         Map<String, String> header = new HashMap<>();
         Map<String, String> header = new HashMap<>();
-        header.put(SystemConstant.HEADER_AUTHORIZATION, createSign(time, url));
+        header.put(SystemConstant.HEADER_AUTHORIZATION, createSign(schoolId, time, url));
         header.put(SystemConstant.HEADER_TIME, String.valueOf(time));
         header.put(SystemConstant.HEADER_TIME, String.valueOf(time));
         return header;
         return header;
     }
     }
@@ -293,8 +295,7 @@ public class StmmsUtils {
      * @param time 时间戳
      * @param time 时间戳
      * @param url  请求URL
      * @param url  请求URL
      */
      */
-    private String createSign(long time, String url) {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+    private String createSign(Long schoolId, long time, String url) {
         BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
         BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
         if (basicSchool == null) {
         if (basicSchool == null) {
             throw ExceptionResultEnum.ERROR.exception("学校不存在");
             throw ExceptionResultEnum.ERROR.exception("学校不存在");
@@ -310,15 +311,15 @@ public class StmmsUtils {
      * 校验参数值并返回(字符型)
      * 校验参数值并返回(字符型)
      *
      *
      * @param value       参数值
      * @param value       参数值
-     * @param defaulValue 默认值
+     * @param defaultValue 默认值
      * @param require     是否必填(true:是,false:否)
      * @param require     是否必填(true:是,false:否)
      * @param name        参数名称
      * @param name        参数名称
      */
      */
-    private String validParam(String value, String defaulValue, boolean require, String name) {
-        if (require && StringUtils.isAnyBlank(value, defaulValue)) {
+    private String validParam(String value, String defaultValue, boolean require, String name) {
+        if (require && StringUtils.isAllBlank(value, defaultValue)) {
             throw ExceptionResultEnum.ERROR.exception((StringUtils.isBlank(name) ? "" : name) + "值必填");
             throw ExceptionResultEnum.ERROR.exception((StringUtils.isBlank(name) ? "" : name) + "值必填");
         }
         }
-        return StringUtils.isBlank(value) ? defaulValue : value;
+        return StringUtils.isBlank(value) ? defaultValue : value;
 
 
     }
     }
 
 
@@ -371,6 +372,8 @@ public class StmmsUtils {
     /**
     /**
      * 考试成绩考生数量查询接口
      * 考试成绩考生数量查询接口
      *
      *
+     *
+     * @param schoolId
      * @param examId
      * @param examId
      * @param examCode
      * @param examCode
      * @param examNumber
      * @param examNumber
@@ -381,7 +384,7 @@ public class StmmsUtils {
      * @param teacher
      * @param teacher
      * @return
      * @return
      */
      */
-    public int getStudentCount(Integer examId, String examCode, String examNumber, String studentCode, String subjectCode, String college, String className, String teacher) {
+    public int getStudentCount(Long schoolId, Integer examId, String examCode, String examNumber, String studentCode, String subjectCode, String college, String className, String teacher) {
         Map<String, String> map = new HashMap<>();
         Map<String, String> map = new HashMap<>();
         map.put("examId", validParam(String.valueOf(examId), null, true, "考试ID"));
         map.put("examId", validParam(String.valueOf(examId), null, true, "考试ID"));
         map.put("examCode", validParam(examCode, null, false, "考试编码"));
         map.put("examCode", validParam(examCode, null, false, "考试编码"));
@@ -400,7 +403,7 @@ public class StmmsUtils {
         //请求
         //请求
         String res;
         String res;
         try {
         try {
-            res = HttpKit.sendPost(postUrl, getHeaders(studentCountUrl), map, null, null, null);
+            res = HttpKit.sendPost(postUrl, getHeaders(schoolId, studentCountUrl), map, null, null, null);
         } catch (Exception e) {
         } catch (Exception e) {
             log.info("云阅卷:调用考试成绩考生数量查询接口请求异常,{}", e.getMessage());
             log.info("云阅卷:调用考试成绩考生数量查询接口请求异常,{}", e.getMessage());
             throw new RuntimeException("云阅卷:调用考试成绩考生数量查询接口请求异常," + e.getMessage());
             throw new RuntimeException("云阅卷:调用考试成绩考生数量查询接口请求异常," + e.getMessage());
@@ -416,6 +419,8 @@ public class StmmsUtils {
     /**
     /**
      * 考试成绩考生查询接口
      * 考试成绩考生查询接口
      *
      *
+     *
+     * @param schoolId
      * @param examId
      * @param examId
      * @param examCode
      * @param examCode
      * @param examNumber
      * @param examNumber
@@ -428,7 +433,7 @@ public class StmmsUtils {
      * @param pageSize
      * @param pageSize
      * @return
      * @return
      */
      */
-    public List<Map> getStudentScore(Integer examId, String examCode, String examNumber, String studentCode, String subjectCode, String college, String className, String teacher, int pageNo, int pageSize) {
+    public List<Map> getStudentScore(Long schoolId, Integer examId, String examCode, String examNumber, String studentCode, String subjectCode, String college, String className, String teacher, int pageNo, int pageSize) {
         Map<String, String> map = new HashMap<>();
         Map<String, String> map = new HashMap<>();
         map.put("examId", validParam(String.valueOf(examId), null, true, "考试ID"));
         map.put("examId", validParam(String.valueOf(examId), null, true, "考试ID"));
         map.put("examCode", validParam(examCode, null, false, "考试编码"));
         map.put("examCode", validParam(examCode, null, false, "考试编码"));
@@ -448,7 +453,7 @@ public class StmmsUtils {
         //请求
         //请求
         String res;
         String res;
         try {
         try {
-            res = HttpKit.sendPost(postUrl, getHeaders(studentScoreUrl), map, null, null, null);
+            res = HttpKit.sendPost(postUrl, getHeaders(schoolId, studentScoreUrl), map, null, null, null);
         } catch (Exception e) {
         } catch (Exception e) {
             log.info("云阅卷:调用考试成绩考生查询接口请求异常,{}", e.getMessage());
             log.info("云阅卷:调用考试成绩考生查询接口请求异常,{}", e.getMessage());
             throw new RuntimeException("云阅卷:调用考试成绩考生查询接口请求异常," + e.getMessage());
             throw new RuntimeException("云阅卷:调用考试成绩考生查询接口请求异常," + e.getMessage());