Переглянути джерело

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

xiaof 3 роки тому
батько
коміт
e6dd384fd6

+ 5 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -15,7 +15,7 @@ import com.qmth.distributed.print.business.enums.ExamPaperStructureStatusEnum;
 import com.qmth.distributed.print.business.enums.ExamPrintPlanSyncStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.service.*;
-import com.qmth.teachcloud.common.bean.dto.SyncStructureData;
+import com.qmth.teachcloud.common.bean.dto.QuestionDTO;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.SysConfig;
@@ -26,11 +26,9 @@ import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.SysConfigService;
-import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.sync.StmmsUtils;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import com.sun.corba.se.impl.orbutil.concurrent.SyncUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -300,8 +298,8 @@ public class DataSyncServiceImpl implements DataSyncService {
                 }
 
                 List<ExamPaperObjectiveStructureDto> objectiveStructureDtos = JSONObject.parseArray(objectiveContent, ExamPaperObjectiveStructureDto.class);
-                List<SyncStructureData> syncObjectiveStructureDatas = objectiveStructureDtos.stream().map(m -> {
-                    SyncStructureData syncStructureData = new SyncStructureData();
+                List<QuestionDTO> syncObjectiveStructureDatas = objectiveStructureDtos.stream().map(m -> {
+                    QuestionDTO syncStructureData = new QuestionDTO();
                     syncStructureData.setMainNumber(Integer.valueOf(m.getMainNumber()));
                     syncStructureData.setSubNumber(m.getSubNumber());
                     syncStructureData.setMainTitle(m.getMainName());
@@ -335,8 +333,8 @@ public class DataSyncServiceImpl implements DataSyncService {
                     throw ExceptionResultEnum.ERROR.exception("没有找到主观题数据");
                 }
                 List<ExamPaperSubjectiveStructureDto> subjectiveStructureDtos = JSONObject.parseArray(subjectiveContent, ExamPaperSubjectiveStructureDto.class);
-                List<SyncStructureData> syncSubjectiveStructureDatas = subjectiveStructureDtos.stream().map(m -> {
-                    SyncStructureData syncStructureData = new SyncStructureData();
+                List<QuestionDTO> syncSubjectiveStructureDatas = subjectiveStructureDtos.stream().map(m -> {
+                    QuestionDTO syncStructureData = new QuestionDTO();
                     syncStructureData.setMainNumber(Integer.valueOf(m.getMainNumber()));
                     syncStructureData.setSubNumber(m.getSubNumber());
                     syncStructureData.setMainTitle(m.getMainName());

+ 60 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/PaperDTO.java

@@ -0,0 +1,60 @@
+package com.qmth.teachcloud.common.bean.dto;
+
+import java.util.List;
+
+public class PaperDTO {
+
+    private Integer examId;
+
+    private String subjectCode;
+
+    private String paperType;
+
+    private Boolean objective;
+
+    private List<QuestionDTO> questions;
+
+    public PaperDTO() {
+    }
+
+    public Integer getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Integer examId) {
+        this.examId = examId;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public String getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
+
+    public Boolean getObjective() {
+        return objective;
+    }
+
+    public void setObjective(Boolean objective) {
+        this.objective = objective;
+    }
+
+    public List<QuestionDTO> getQuestions() {
+        return questions;
+    }
+
+    public void setQuestions(List<QuestionDTO> questions) {
+        this.questions = questions;
+    }
+
+}

+ 11 - 13
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/SyncStructureData.java → teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/QuestionDTO.java

@@ -1,9 +1,6 @@
 package com.qmth.teachcloud.common.bean.dto;
 
-/**
- * @Date: 2021/10/31.
- */
-public class SyncStructureData {
+public class QuestionDTO {
 
     private Integer mainNumber;
 
@@ -11,10 +8,10 @@ public class SyncStructureData {
 
     private String mainTitle;
 
-    private Double totalScore;
-
     private String answer;
 
+    private Double totalScore;
+
     public Integer getMainNumber() {
         return mainNumber;
     }
@@ -39,6 +36,14 @@ public class SyncStructureData {
         this.mainTitle = mainTitle;
     }
 
+    public String getAnswer() {
+        return answer;
+    }
+
+    public void setAnswer(String answer) {
+        this.answer = answer;
+    }
+
     public Double getTotalScore() {
         return totalScore;
     }
@@ -47,11 +52,4 @@ public class SyncStructureData {
         this.totalScore = totalScore;
     }
 
-    public String getAnswer() {
-        return answer;
-    }
-
-    public void setAnswer(String answer) {
-        this.answer = answer;
-    }
 }

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

@@ -3,7 +3,8 @@ package com.qmth.teachcloud.common.sync;
 import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.teachcloud.common.SignatureEntityTest;
-import com.qmth.teachcloud.common.bean.dto.SyncStructureData;
+import com.qmth.teachcloud.common.bean.dto.PaperDTO;
+import com.qmth.teachcloud.common.bean.dto.QuestionDTO;
 import com.qmth.teachcloud.common.bean.params.UserPushParam;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -244,22 +245,21 @@ public class StmmsUtils {
      * @param questions   试卷结构JSON
      */
     public boolean syncPaperStructure(Long schoolId, String examId, String subjectCode, Boolean objective,
-                                      String paperType, List<SyncStructureData> questions) {
+                                      String paperType, List<QuestionDTO> questions) {
         String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
         String structureUrl = dictionaryConfig.syncDataDomain().getStructureUrl();
         validUrl(hostUrl, structureUrl);
         String postUrl = hostUrl.concat(structureUrl);
         try {
             //参数
-            Map<String, Object> map = new HashMap<>();
-            map.put("examId", validParam(examId, null, true, "考试ID"));
-            map.put("subjectCode", validParam(subjectCode, null, true, "科目代码")); // 取试卷编号
-            map.put("objective", validParam(objective, true, true, "是否客观题"));
-            map.put("paperType", validParam(paperType, "", false, "试卷类型"));
-            SyncStructureData[] syncStructureData = questions.toArray(new SyncStructureData[questions.size()]);
-            map.put("questions", validParam(objective, syncStructureData));
+            PaperDTO paperDTO = new PaperDTO();
+            paperDTO.setExamId(Integer.valueOf(validParam(examId, null, true, "考试ID")));
+            paperDTO.setSubjectCode(validParam(subjectCode, null, true, "科目代码"));
+            paperDTO.setObjective(validParam(objective, true, true, "是否客观题"));
+            paperDTO.setPaperType(validParam(paperType, "#", false, "试卷类型"));
+            paperDTO.setQuestions(validParam(objective, questions));
 
-            String jsonData = JSONObject.toJSONString(map);
+            String jsonData = JSONObject.toJSONString(paperDTO);
 
             String result = HttpKit.sendPost(postUrl, jsonData, getHeaders(schoolId, structureUrl));
             JSONObject jsonObject = JSONObject.parseObject(result);
@@ -419,8 +419,8 @@ public class StmmsUtils {
      * @param objective 是否客观题
      * @param questions 试卷结构JSON
      */
-    private Object validParam(Boolean objective, SyncStructureData[] questions) {
-        for (SyncStructureData question : questions) {
+    private List<QuestionDTO> validParam(Boolean objective, List<QuestionDTO> questions) {
+        for (QuestionDTO question : questions) {
             validParam(String.valueOf(question.getMainNumber()), null, true, "大题号");
             validParam(question.getSubNumber(), null, true, "小题号");
             validParam(question.getMainTitle(), null, true, "大题名称");