Browse Source

3.0.1-同步云阅卷bug修改

xiaof 3 years ago
parent
commit
a1e5556c1c

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDto.java

@@ -20,6 +20,7 @@ public class ExamTaskDto {
     private String paperNumber;
     private String courseCode;
     private String courseName;
+    private String sequence;
     private String specialty;
     private String cardRuleId;
     private String cardRuleName;
@@ -163,6 +164,14 @@ public class ExamTaskDto {
         this.courseName = courseName;
     }
 
+    public String getSequence() {
+        return sequence;
+    }
+
+    public void setSequence(String sequence) {
+        this.sequence = sequence;
+    }
+
     public String getSpecialty() {
         return specialty;
     }

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/EnumType.java

@@ -27,7 +27,8 @@ public enum EnumType {
     EXAMINATION_DB_FIELDS_ENUM("考务数据导入-数据库所必须字段枚举"),
     CARD_TYPE("题卡类型"),
     SYSTEM_CODE_ENUM("系统编码类型"),
-    PUSH_TYPE_ENUM("同步云阅卷类型类型");
+    PUSH_TYPE_ENUM("同步云阅卷类型"),
+    TB_TASK_STATUS("同步云阅卷日志表状态类型");
 
     EnumType(String desc) {
         this.desc = desc;

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

@@ -18,5 +18,5 @@ import java.util.List;
 public interface ExamPaperStructureMapper extends BaseMapper<ExamPaperStructure> {
     IPage<ExamPaperStructure> listByPropositionTeacherId(@Param("page") Page<ExamPaperStructure> page, @Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums);
 
-    List<ExamPaperStructure> listByPropositionTeacherId(@Param("schoolId") Long schoolId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums);
+    List<ExamPaperStructure> listByPropositionTeacherId(@Param("schoolId") Long schoolId, @Param("semesterId") Long semesterId, @Param("examId") Long examId, @Param("propositionTeacherId") Long propositionTeacherId, @Param("syncStatus") String syncStatus, @Param("structureStatusEnums") String[] structureStatusEnums);
 }

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

@@ -273,7 +273,7 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         String[] structureStatusEnums = new String[]{ExamPaperStructureStatusEnum.FINISH.name()};
-        List<ExamPaperStructure> examPaperStructureList = this.baseMapper.listByPropositionTeacherId(schoolId, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums);
+        List<ExamPaperStructure> examPaperStructureList = this.baseMapper.listByPropositionTeacherId(schoolId,null, null, sysUser.getId(), ExamPrintPlanSyncStatusEnum.FINISH.name(), structureStatusEnums);
         return CollectionUtils.isEmpty(examPaperStructureList) ? 0 : examPaperStructureList.size();
     }
 

+ 1 - 0
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -35,6 +35,7 @@
         a.school_id schoolId,
         a.course_code courseCode,
         a.course_name courseName,
+        a.sequence,
         a.specialty,
         a.paper_number paperNumber,
         a.card_rule_id cardRuleId,

+ 1 - 0
distributed-print-business/src/main/resources/mapper/TBSyncTaskMapper.xml

@@ -6,6 +6,7 @@
             tbst.id,
             tbst.type,
             tbst.object_id objectId,
+            tbst.third_relate_id thirdRelateId,
             tbst.status,
             tbst.result,
             if(ISNULL(tbst.report_file_path),false,true) as hasReportFile,

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

@@ -101,8 +101,11 @@ public class EnumsController {
             // 系统自生成编码
             list = SystemCodeEnum.listTypes();
         } else if (type.equals(EnumType.PUSH_TYPE_ENUM.name())){
-            // 同步云阅卷类型类型
+            // 同步云阅卷类型
             list = PushTypeEnum.listTypes();
+        } else if (type.equals(EnumType.TB_TASK_STATUS.name())){
+            // 同步云阅卷日志表状态类型
+            list = TaskStatusEnum.listTypes();
         }
         return ResultUtil.ok(list);
     }

+ 12 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/result/SyncListResult.java

@@ -20,9 +20,12 @@ public class SyncListResult implements Serializable {
     @ApiModelProperty(value = "同步任务类型:USER_PUSH(用户推送),EXAM_PUSH(考试、考生、题卡推送),STRUCTURE_PUSH(试卷结构推送),SCORE_PUSH(成绩推送)")
     private String type;
 
-    @ApiModelProperty(value = "objectId")
+    @ApiModelProperty(value = "同步对象ID(包含计划ID、试卷结构ID)")
     private String objectId;
 
+    @ApiModelProperty(value = "云阅卷考试ID")
+    private String thirdRelateId;
+
     @ApiModelProperty(value = "任务状态,INIT:未开始,RUNNING:进行中,FINISH:已完成")
     private String status;
 
@@ -135,4 +138,12 @@ public class SyncListResult implements Serializable {
     public void setResultStr(String resultStr) {
         this.resultStr = resultStr;
     }
+
+    public String getThirdRelateId() {
+        return thirdRelateId;
+    }
+
+    public void setThirdRelateId(String thirdRelateId) {
+        this.thirdRelateId = thirdRelateId;
+    }
 }

+ 15 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/TaskStatusEnum.java

@@ -1,5 +1,7 @@
 package com.qmth.teachcloud.common.enums;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -41,4 +43,17 @@ public enum TaskStatusEnum {
         }
         return null;
     }
+
+    public static List<EnumResult> listTypes() {
+        List<EnumResult> list = new ArrayList<>();
+        for (TaskStatusEnum value : TaskStatusEnum.values()) {
+            EnumResult result = new EnumResult();
+            result.setName(value.name());
+            result.setOrdinal(value.ordinal());
+            result.setCode(null);
+            result.setDesc(value.getTitle());
+            list.add(result);
+        }
+        return list;
+    }
 }

+ 23 - 8
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/HttpKit.java

@@ -9,7 +9,7 @@ import org.slf4j.LoggerFactory;
 import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 public class HttpKit {
@@ -172,10 +172,10 @@ public class HttpKit {
     public static String sendPost(String requestUrl, Map<String, String> requestHeader, Map<String, Object> formTexts, Map<String, String> files, String requestEncoding, String responseEncoding) {
         OutputStream out = null;
         BufferedReader reader = null;
-        String result = "";
+        StringBuilder result = new StringBuilder();
         try {
             if (requestUrl == null || requestUrl.isEmpty()) {
-                return result;
+                return result.toString();
             }
             URL realUrl = new URL(requestUrl);
             HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
@@ -245,14 +245,29 @@ public class HttpKit {
             }
             out.flush();
             out.close();
-//            out = null;
-            reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), responseEncoding));
+
+
+            int responseCode = connection.getResponseCode();
+            if (responseCode >= 400) {
+//                reader = new BufferedReader(new InputStreamReader(connection.getErrorStream(), responseEncoding));
+                Map<String, List<String>> responseProperties = connection.getHeaderFields();
+                if (responseProperties.containsKey("error-info")) {
+                    List<String> strings = responseProperties.get("error-info");
+                    if (!strings.isEmpty()) {
+                        String message = String.join(";", strings);
+                        throw ExceptionResultEnum.ERROR.exception(message);
+                    }
+                }
+                throw ExceptionResultEnum.ERROR.exception("接口调用错误");
+            } else {
+                reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), responseEncoding));
+            }
             String line;
             while ((line = reader.readLine()) != null) {
-                result += line;
+                result.append(line);
             }
         } catch (Exception e) {
-            throw ExceptionResultEnum.ERROR.exception("发送POST请求出现异常:" + e.getMessage());
+            throw ExceptionResultEnum.ERROR.exception("调用异常:" + e.getMessage());
         } finally {
             try {
                 if (out != null) {
@@ -265,7 +280,7 @@ public class HttpKit {
                 log.error(SystemConstant.LOG_ERROR, ex);
             }
         }
-        return result;
+        return result.toString();
     }
 
 }