瀏覽代碼

format code style

deason 3 年之前
父節點
當前提交
d044b3779b
共有 100 個文件被更改,包括 3428 次插入3012 次删除
  1. 5 3
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/bean/ExamRecordDataBeanConvert.java
  2. 23 0
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/bean/ExamRecordDataDomain.java
  3. 64 63
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/bean/IllegallyTypeDomain.java
  4. 31 34
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/BaseInfoController.java
  5. 55 66
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamAuditController.java
  6. 2 0
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamCaptureController.java
  7. 3 1
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamControlController.java
  8. 14 20
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordController.java
  9. 5 4
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordDataController.java
  10. 22 24
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordPaperStructController.java
  11. 24 26
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordQuestionsController.java
  12. 9 16
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamScoreController.java
  13. 32 47
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamStudentController.java
  14. 1 1
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExportTaskController.java
  15. 6 7
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/IllegallyTypeController.java
  16. 40 46
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/OfflineExamController.java
  17. 20 18
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/PracticeController.java
  18. 6 6
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordCloudServiceProvider.java
  19. 5 1
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordForMarkingCloudServiceProvider.java
  20. 24 23
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordPaperStructProvider.java
  21. 1 0
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordQuestionsCloudServiceProvider.java
  22. 45 46
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamScoreCloudServiceProvider.java
  23. 15 14
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamScoreNoticeQueueCloudServiceProvider.java
  24. 13 14
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamScoreObtainQueueCloudServiceProvider.java
  25. 2 0
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamStudentCloudServiceProvider.java
  26. 24 19
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamStudentDataCloudServiceProvider.java
  27. 22 23
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/OeAdminScorePushCloudServiceProvider.java
  28. 78 93
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/SyncCloudServiceProvider.java
  29. 27 7
      examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/SyncExamDataCloudServiceProvider.java
  30. 8 7
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/AsyncExportService.java
  31. 5 6
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamAuditService.java
  32. 3 1
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamBossService.java
  33. 1 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamCaptureService.java
  34. 1 4
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordDataCacheService.java
  35. 2 2
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordDataService.java
  36. 45 42
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordForMarkingService.java
  37. 8 7
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordPaperStructService.java
  38. 48 43
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordQuestionsService.java
  39. 32 28
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordService.java
  40. 15 14
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScoreNoticeQueueService.java
  41. 24 24
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScoreObtainQueueService.java
  42. 11 16
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScorePushQueueService.java
  43. 11 12
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScorePushService.java
  44. 16 19
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScoreQueueService.java
  45. 13 10
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScoreService.java
  46. 2 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamStudentFinalScoreService.java
  47. 9 13
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamStudentService.java
  48. 5 5
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExportTaskService.java
  49. 48 46
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/GainBaseDataService.java
  50. 17 17
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/IllegallyTypeService.java
  51. 19 17
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/LocalCacheService.java
  52. 40 37
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/OfflineExamService.java
  53. 28 26
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/PracticeService.java
  54. 2 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/ExamProcessRecordInfo.java
  55. 25 10
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/ExamRecordQuestionsInfo.java
  56. 4 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/ExamStudentEffectiveScoreInfo.java
  57. 76 76
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/ExamStudentQuestionInfo.java
  58. 57 61
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/IllegallyTypeInfo.java
  59. 30 22
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/NotifyUrlInfo.java
  60. 133 132
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/OfflineExamCourseInfo.java
  61. 28 27
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/OnHandExamInfo.java
  62. 35 33
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/PaperStructInfo.java
  63. 138 138
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/PracticeCourseInfo.java
  64. 62 62
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/PracticeDetailInfo.java
  65. 159 129
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/PracticeRecordInfo.java
  66. 59 59
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/SubjectiveQuestionScoreInfo.java
  67. 14 17
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditEntityConvert.java
  68. 33 15
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditExcel.java
  69. 56 22
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditInfo.java
  70. 50 27
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditQuery.java
  71. 74 74
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/RedoAuditInfo.java
  72. 100 86
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examcapture/ExamCaptureAuditInfo.java
  73. 23 17
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examcapture/ExamCaptureInfo.java
  74. 39 3
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordDataBean.java
  75. 25 26
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordEntityConvert.java
  76. 7 3
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordFileAnswerInfo.java
  77. 121 66
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordInfo.java
  78. 66 43
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordQuery.java
  79. 118 89
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamStudentQuestionScoreInfo.java
  80. 4 4
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ExamScoreEntityConvert.java
  81. 46 22
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ExamScoreInfo.java
  82. 9 9
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ExamScoreQuery.java
  83. 116 116
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ObjectiveScoreInfo.java
  84. 8 2
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/CourseCompleteProgressExcel.java
  85. 89 90
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/CourseProgressInfo.java
  86. 277 276
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentBean.java
  87. 11 12
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentEntityConvert.java
  88. 12 2
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentExcel.java
  89. 2 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentFinishedStatistic.java
  90. 56 31
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentInfo.java
  91. 6 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentOrgStatistic.java
  92. 4 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentPartInfo.java
  93. 50 38
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentQuery.java
  94. 13 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentUnFinishedExcel.java
  95. 8 2
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/OrgCompleteProgressExcel.java
  96. 84 83
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTask.java
  97. 16 17
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTaskInfo.java
  98. 1 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTaskListReq.java
  99. 23 23
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTaskListResp.java
  100. 30 30
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/cache/ExamRecordPropertyCache.java

+ 5 - 3
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/bean/ExamRecordDataBeanConvert.java

@@ -8,7 +8,6 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.bean;
 
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
-import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
 
 /**
@@ -18,13 +17,15 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
  * @since: 2018/8/17
  */
 public class ExamRecordDataBeanConvert implements JsonSerializable {
+
     /**
      * 将数据库实体转换为业务实体
+     *
      * @param erdEntity
      * @return
      */
-    public static ExamRecordDataDomain copyFrom(ExamRecordDataEntity erdEntity){
-        if (erdEntity==null){
+    public static ExamRecordDataDomain copyFrom(ExamRecordDataEntity erdEntity) {
+        if (erdEntity == null) {
             return null;
         }
 
@@ -58,4 +59,5 @@ public class ExamRecordDataBeanConvert implements JsonSerializable {
         result.setWarn(erdEntity.getIsWarn());
         return result;
     }
+
 }

+ 23 - 0
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/bean/ExamRecordDataDomain.java

@@ -16,38 +16,47 @@ import java.util.Date;
  * @Version 1.0
  */
 public class ExamRecordDataDomain implements JsonSerializable {
+
     private static final long serialVersionUID = 5819718857965384297L;
+
     private Long id;
 
     /**
      * 考试作答记录id
      */
     private String examRecordQuestionsId;
+
     /**
      * 考试记录状态(考试中,考试结束,考试过期,考试作废)
      */
     @Enumerated(EnumType.STRING)
     private ExamRecordStatus examRecordStatus;
+
     /**
      * 考试开始时间
      */
     private Date startTime;
+
     /**
      * 考试结束时间
      */
     private Date endTime;
+
     /**
      * 考试被清理时间
      */
     private Date cleanTime;
+
     /**
      * 是否异常数据
      */
     private Boolean isWarn;
+
     /**
      * 是否被审核过
      */
     private Boolean isAudit;
+
     /**
      * 是否违纪
      */
@@ -57,50 +66,62 @@ public class ExamRecordDataDomain implements JsonSerializable {
      * 考试时长
      */
     private Long usedExamTime;
+
     /**
      * 第几次考试
      */
     private Integer examOrder;
+
     /**
      * 是否为重考
      */
     private Boolean isReexamine;
+
     /**
      * 是否断点续考
      */
     private Boolean isContinued;
+
     /**
      * 是否是全客观题卷  1:是   0:否
      */
     private Boolean isAllObjectivePaper;
+
     /**
      * 断点续考次数
      */
     private Integer continuedCount;
+
     /**
      * 是否达到最大断点限制
      */
     private Boolean isExceed;
+
     /**
      * 抓拍比对成功次数
      */
     private Integer faceSuccessCount;
+
     /**
      * 抓拍比对失败次数
      */
     private Integer faceFailedCount;
+
     /**
      * 抓拍存在陌生人的次数
      */
     private Integer faceStrangerCount;
+
     /**
      * 抓拍比对总次数
      */
     private Integer faceTotalCount;
+
     /**
      * 抓拍比对成功比率
      */
     private Double faceSuccessPercent;
+
     /**
      * @see cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess
      * 活体检测结果
@@ -112,6 +133,7 @@ public class ExamRecordDataDomain implements JsonSerializable {
      * 百度人脸活体检测通过率
      */
     private Double baiduFaceLivenessSuccessPercent;
+
     /**
      * 人脸五官坐标比对值
      */
@@ -347,4 +369,5 @@ public class ExamRecordDataDomain implements JsonSerializable {
     public void setCreationTime(Date creationTime) {
         this.creationTime = creationTime;
     }
+
 }

+ 64 - 63
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/bean/IllegallyTypeDomain.java

@@ -6,91 +6,92 @@ import java.util.Date;
 
 public class IllegallyTypeDomain implements JsonSerializable {
 
-	private static final long serialVersionUID = 239263456816448160L;
+    private static final long serialVersionUID = 239263456816448160L;
 
-	private Long id;
+    private Long id;
 
-	private String code;
+    private String code;
 
-	private String name;
+    private String name;
 
-	private Long rootOrgId;
+    private Long rootOrgId;
 
-	private Boolean enable;
+    private Boolean enable;
 
-	/**
-	 * 排序号
-	 */
-	private Integer sortNo;
+    /**
+     * 排序号
+     */
+    private Integer sortNo;
 
-	/**
-	 * 数据分类
-	 */
-	private String dataCategory;
+    /**
+     * 数据分类
+     */
+    private String dataCategory;
 
-	private Date updateTime;
+    private Date updateTime;
 
-	public Long getId() {
-		return id;
-	}
+    public Long getId() {
+        return id;
+    }
 
-	public void setId(Long id) {
-		this.id = id;
-	}
+    public void setId(Long id) {
+        this.id = id;
+    }
 
-	public String getCode() {
-		return code;
-	}
+    public String getCode() {
+        return code;
+    }
 
-	public void setCode(String code) {
-		this.code = code;
-	}
+    public void setCode(String code) {
+        this.code = code;
+    }
 
-	public String getName() {
-		return name;
-	}
+    public String getName() {
+        return name;
+    }
 
-	public void setName(String name) {
-		this.name = name;
-	}
+    public void setName(String name) {
+        this.name = name;
+    }
 
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
+    public Long getRootOrgId() {
+        return rootOrgId;
+    }
 
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
+    public void setRootOrgId(Long rootOrgId) {
+        this.rootOrgId = rootOrgId;
+    }
 
-	public Boolean getEnable() {
-		return enable;
-	}
+    public Boolean getEnable() {
+        return enable;
+    }
 
-	public void setEnable(Boolean enable) {
-		this.enable = enable;
-	}
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
 
-	public Integer getSortNo() {
-		return sortNo;
-	}
+    public Integer getSortNo() {
+        return sortNo;
+    }
 
-	public void setSortNo(Integer sortNo) {
-		this.sortNo = sortNo;
-	}
+    public void setSortNo(Integer sortNo) {
+        this.sortNo = sortNo;
+    }
 
-	public String getDataCategory() {
-		return dataCategory;
-	}
+    public String getDataCategory() {
+        return dataCategory;
+    }
 
-	public void setDataCategory(String dataCategory) {
-		this.dataCategory = dataCategory;
-	}
+    public void setDataCategory(String dataCategory) {
+        this.dataCategory = dataCategory;
+    }
 
-	public Date getUpdateTime() {
-		return updateTime;
-	}
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
 
-	public void setUpdateTime(Date updateTime) {
-		this.updateTime = updateTime;
-	}
 }

+ 31 - 34
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/BaseInfoController.java

@@ -1,55 +1,52 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.core.basic.api.OrgCloudService;
 import cn.com.qmth.examcloud.core.basic.api.bean.OrgBean;
 import cn.com.qmth.examcloud.core.basic.api.request.GetOrgsReq;
 import cn.com.qmth.examcloud.core.basic.api.response.GetOrgsResp;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
- * 
  * @author chenken
- *
  */
 @Api(tags = "考试记录审核相关接口")
 @RestController
 @RequestMapping("${$rmp.ctr.oe}/baseInfo")
 public class BaseInfoController extends ControllerSupport {
-	
-	@Autowired
-	private OrgCloudService orgCloudService;
 
-	@GetMapping("/org/list")
-	public List<OrgBean> queryOrg(){
-		List<OrgBean> orgBeanList = new ArrayList<OrgBean>();
-		Long start = 1l;
+    @Autowired
+    private OrgCloudService orgCloudService;
+
+    @GetMapping("/org/list")
+    public List<OrgBean> queryOrg() {
+        List<OrgBean> orgBeanList = new ArrayList<OrgBean>();
+        Long start = 1l;
         GetOrgsReq req = new GetOrgsReq();
         req.setRootOrgId(this.getRootOrgId());
-        while(true){
-        	req.setStart(start);
-     		GetOrgsResp getOrgsResp = orgCloudService.getOrgs(req);
-     		List<OrgBean> subOrgBeanList = getOrgsResp.getOrgBeanList();
-     		for(OrgBean orgBean:subOrgBeanList){
- 				if(orgBean.getEnable()){
- 					orgBeanList.add(orgBean);
- 				}
-     		}
-     		if(start.equals(getOrgsResp.getNext())){
-             	break;
-            }else {
-             	start = getOrgsResp.getNext();
- 			}
+        while (true) {
+            req.setStart(start);
+            GetOrgsResp getOrgsResp = orgCloudService.getOrgs(req);
+            List<OrgBean> subOrgBeanList = getOrgsResp.getOrgBeanList();
+            for (OrgBean orgBean : subOrgBeanList) {
+                if (orgBean.getEnable()) {
+                    orgBeanList.add(orgBean);
+                }
+            }
+            if (start.equals(getOrgsResp.getNext())) {
+                break;
+            } else {
+                start = getOrgsResp.getNext();
+            }
         }
-		return orgBeanList;
-	}
-	
+        return orgBeanList;
+    }
+
 }

+ 55 - 66
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamAuditController.java

@@ -7,24 +7,6 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletResponse;
-
-import cn.com.qmth.examcloud.core.oe.admin.service.AsyncExportService;
-import cn.com.qmth.examcloud.core.oe.admin.service.util.AsyncExportConcurrentUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.commons.util.JsonMapper;
@@ -37,12 +19,10 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.IllegallyTypeEntity;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.AuditStatus;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.SelectType;
+import cn.com.qmth.examcloud.core.oe.admin.service.AsyncExportService;
 import cn.com.qmth.examcloud.core.oe.admin.service.ExamAuditService;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditEntityConvert;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditExcel;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditInfo;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditQuery;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.RedoAuditInfo;
+import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.*;
+import cn.com.qmth.examcloud.core.oe.admin.service.util.AsyncExportConcurrentUtil;
 import cn.com.qmth.examcloud.reports.commons.bean.AdminOperateReport;
 import cn.com.qmth.examcloud.reports.commons.util.ReportsUtil;
 import cn.com.qmth.examcloud.support.enums.ExamProperties;
@@ -53,6 +33,15 @@ import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.web.support.Naked;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * 考试记录审核相关接口
@@ -70,7 +59,7 @@ public class ExamAuditController extends ControllerSupport {
 
     @Autowired
     private ExamRecordDataRepo examRecordDataRepo;
-    
+
     @Autowired
     private IllegallyTypeRepo illegallyTypeRepo;
 
@@ -93,10 +82,10 @@ public class ExamAuditController extends ControllerSupport {
     @GetMapping("export/async")
     @ApiOperation(value = "导出“监考已审”(异步)")
     public void exportExamAuditList(@RequestParam String query) {
-        User user=getAccessUser();
+        User user = getAccessUser();
         asyncExportService.exportExamAuditList(query, user);
         AsyncExportConcurrentUtil.checkOrStartJob();
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "监考已审-导出","导出条件:"+query));
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "监考已审-导出", "导出条件:" + query));
     }
 
     @PostMapping("/discipline/list")
@@ -143,22 +132,22 @@ public class ExamAuditController extends ControllerSupport {
         }
         User user = getAccessUser();
         examAuditService.singleAudit(examRecordDataId, isPass, disciplineDetail, disciplineType, user, illegallyTypeId);
-        StringBuilder sb=new StringBuilder();
-        sb.append("考试记录ID:"+examRecordDataId);
-        if(isPass) {
-        	sb.append(" 审核状态:通过");
-        }else {
-        	sb.append(" 审核状态:不通过");
-        }
-        if(illegallyTypeId!=null) {
-        	IllegallyTypeEntity illegallyType =
-        		GlobalHelper.getEntity(illegallyTypeRepo, illegallyTypeId, IllegallyTypeEntity.class);
-        	sb.append(" 违纪类型:"+illegallyType.getName());
-        }
-        if(StringUtils.isNotEmpty(disciplineDetail)) {
-        	sb.append(" 详情描述:"+disciplineDetail);
-        }
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "监考待审-审核",sb.toString()));
+        StringBuilder sb = new StringBuilder();
+        sb.append("考试记录ID:" + examRecordDataId);
+        if (isPass) {
+            sb.append(" 审核状态:通过");
+        } else {
+            sb.append(" 审核状态:不通过");
+        }
+        if (illegallyTypeId != null) {
+            IllegallyTypeEntity illegallyType =
+                    GlobalHelper.getEntity(illegallyTypeRepo, illegallyTypeId, IllegallyTypeEntity.class);
+            sb.append(" 违纪类型:" + illegallyType.getName());
+        }
+        if (StringUtils.isNotEmpty(disciplineDetail)) {
+            sb.append(" 详情描述:" + disciplineDetail);
+        }
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "监考待审-审核", sb.toString()));
     }
 
     @PostMapping(value = "/batch/audit")
@@ -178,14 +167,14 @@ public class ExamAuditController extends ControllerSupport {
         for (Long examRecordDataId : examRecordDataIds) {
             examAuditService.singleAudit(examRecordDataId, isPass, disciplineDetail, disciplineType, user, illegallyTypeId);
         }
-        StringBuilder sb=new StringBuilder();
-        if(isPass) {
-        	sb.append("审核状态:通过");
-        }else {
-        	sb.append("审核状态:不通过");
+        StringBuilder sb = new StringBuilder();
+        if (isPass) {
+            sb.append("审核状态:通过");
+        } else {
+            sb.append("审核状态:不通过");
         }
-        sb.append(" 审核条数:"+examRecordDataIds.size());
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "监考待审-批量审核",sb.toString()));
+        sb.append(" 审核条数:" + examRecordDataIds.size());
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "监考待审-批量审核", sb.toString()));
     }
 
     @PostMapping(value = "/redoAudit")
@@ -218,26 +207,26 @@ public class ExamAuditController extends ControllerSupport {
                 ExamCacheTransferHelper.getDefaultCachedExamProperty(examId, ExamProperties.MARKING_TASK_BUILDED.name()).getValue();
         if (StringUtils.isNotBlank(markingTaskBuilt) && Constants.isTrue.equals(markingTaskBuilt)) {
             if (!redoAuditInfo.getIsPass()) {
-            throw new StatusException("redoAudit-005", "该考试评卷任务已生成,不允许重审");
+                throw new StatusException("redoAudit-005", "该考试评卷任务已生成,不允许重审");
             }
         }
         examAuditService.redoAudit(redoAuditInfo, user);
-        StringBuilder sb=new StringBuilder();
-        sb.append("考试记录ID:"+redoAuditInfo.getExamRecordDataIds().get(0));
-        if(redoAuditInfo.getIsPass()) {
-        	sb.append(" 审核状态:通过");
-        }else {
-        	sb.append(" 审核状态:不通过");
-        }
-        if(redoAuditInfo.getIllegallyTypeId()!=null) {
-        	IllegallyTypeEntity illegallyType =
-        		GlobalHelper.getEntity(illegallyTypeRepo, redoAuditInfo.getIllegallyTypeId(), IllegallyTypeEntity.class);
-        	sb.append(" 违纪类型:"+illegallyType.getName());
-        }
-        if(StringUtils.isNotEmpty(redoAuditInfo.getDisciplineDetail())) {
-        	sb.append(" 详情描述:"+redoAuditInfo.getDisciplineDetail());
-        }
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试明细-重审",sb.toString()));
+        StringBuilder sb = new StringBuilder();
+        sb.append("考试记录ID:" + redoAuditInfo.getExamRecordDataIds().get(0));
+        if (redoAuditInfo.getIsPass()) {
+            sb.append(" 审核状态:通过");
+        } else {
+            sb.append(" 审核状态:不通过");
+        }
+        if (redoAuditInfo.getIllegallyTypeId() != null) {
+            IllegallyTypeEntity illegallyType =
+                    GlobalHelper.getEntity(illegallyTypeRepo, redoAuditInfo.getIllegallyTypeId(), IllegallyTypeEntity.class);
+            sb.append(" 违纪类型:" + illegallyType.getName());
+        }
+        if (StringUtils.isNotEmpty(redoAuditInfo.getDisciplineDetail())) {
+            sb.append(" 详情描述:" + redoAuditInfo.getDisciplineDetail());
+        }
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试明细-重审", sb.toString()));
     }
 
 }

+ 2 - 0
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamCaptureController.java

@@ -31,8 +31,10 @@ import java.util.List;
 @Api(tags = "考试抓拍检测相关接口")
 @RequestMapping("${$rmp.ctr.oe}/exam/capture")
 public class ExamCaptureController extends ControllerSupport {
+
     @Autowired
     private ExamCaptureService examCaptureService;
+
     @Autowired
     private ExamProcessRecordService examProcessRecordService;
 

+ 3 - 1
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamControlController.java

@@ -32,8 +32,10 @@ public class ExamControlController extends ControllerSupport {
 
     @Autowired
     private ExamStudentService examStudentService;
+
     @Autowired
     private ExamRecordDataRepo examRecordDataRepo;
+
     @Autowired
     private ExamRecordDataCloudService examRecordDataCloudService;
 
@@ -70,7 +72,7 @@ public class ExamControlController extends ControllerSupport {
     @GetMapping("/queryHomeworkList")
     public List<OnHandExamInfo> queryHomeworkList() {
         User user = getAccessUser();
-        return examStudentService.queryOnlineExamList(user.getUserId(),ExamType.ONLINE_HOMEWORK);
+        return examStudentService.queryOnlineExamList(user.getUserId(), ExamType.ONLINE_HOMEWORK);
     }
 
     /**

+ 14 - 20
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordController.java

@@ -7,23 +7,6 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.api.commons.enums.ExamType;
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.util.JsonMapper;
@@ -49,6 +32,16 @@ import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.web.support.Naked;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 考试记录相关接口
@@ -182,10 +175,10 @@ public class ExamRecordController extends ControllerSupport {
     @GetMapping("/detail/list/export/async")
     @ApiOperation(value = "导出“考试明细”列表(异步)", notes = "参数示例:query={\"rootOrgId\":0,\"examId\":1}")
     public void exportExamRecordDetails(@RequestParam String query) {
-    	User user=getAccessUser();
-        asyncExportService.exportExamRecordDetails(query,user);
+        User user = getAccessUser();
+        asyncExportService.exportExamRecordDetails(query, user);
         AsyncExportConcurrentUtil.checkOrStartJob();
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试明细-导出","导出条件:"+query));
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试明细-导出", "导出条件:" + query));
     }
 
     @PostMapping(value = "/refresh/capture/statistic")
@@ -220,4 +213,5 @@ public class ExamRecordController extends ControllerSupport {
                 examRecordService.getExamStudentQuestionScoreList(examId, courseCode);
         ExportUtils.exportEXCEL("考试明细列表", ExamStudentQuestionScoreInfo.class, examRecordInfoList, response);
     }
+
 }

+ 5 - 4
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordDataController.java

@@ -25,15 +25,15 @@ public class ExamRecordDataController {
 
     @Autowired
     private ExamRecordDataRepo examRecordDataRepo;
-    
+
     @Autowired
     private ExamRecordDataSyncService examRecordDataSyncService;
 
     @GetMapping("/findExamRecordDataEntity")
-    public ExamRecordDataDomain findExamRecordDataEntity(@RequestParam Long examRecordDataId,@RequestParam(required = false) String fromCache) {
-        if(fromCache!=null) {
+    public ExamRecordDataDomain findExamRecordDataEntity(@RequestParam Long examRecordDataId, @RequestParam(required = false) String fromCache) {
+        if (fromCache != null) {
             examRecordDataId = examRecordDataSyncService.getExamRecordDataIdByCacheId(examRecordDataId);
-            if(examRecordDataId==null) {
+            if (examRecordDataId == null) {
                 throw new StatusException("1001", "未找到数据");
             }
         }
@@ -54,4 +54,5 @@ public class ExamRecordDataController {
         }
         return examRecordDataList;
     }
+
 }

+ 22 - 24
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordPaperStructController.java

@@ -1,11 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.oe.admin.base.utils.Check;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordPaperStructEntity;
@@ -14,36 +8,40 @@ import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordPaperStructService;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
- * 
- * @author  	chenken
- * @date    	2018年9月5日 下午4:02:15
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年9月5日 下午4:02:15
+ * @company QMTH
  * @description 考试记录-试卷结构controller
  */
 @Api(tags = "考试记录-试卷结构")
 @RestController
 @RequestMapping("${$rmp.ctr.oe}/examRecordPaperStruct")
-public class ExamRecordPaperStructController extends ControllerSupport{
+public class ExamRecordPaperStructController extends ControllerSupport {
+
+    @Autowired
+    private ExamRecordPaperStructService examRecordPaperStructService;
 
-	@Autowired
-	private ExamRecordPaperStructService examRecordPaperStructService;
-	
     @Autowired
     private ExamRecordDataSyncService examRecordDataSyncService;
-	
-	@ApiOperation(value = "获取考试记录试卷结构")
-	@GetMapping("/getExamRecordPaperStruct")
-	public ExamRecordPaperStructEntity getExamRecordPaperStruct(@RequestParam Long examRecordDataId,@RequestParam(required = false) String fromCache){
-		Check.isNull(examRecordDataId, "examRecordDataId不能为空");
-		if(fromCache!=null) {
+
+    @ApiOperation(value = "获取考试记录试卷结构")
+    @GetMapping("/getExamRecordPaperStruct")
+    public ExamRecordPaperStructEntity getExamRecordPaperStruct(@RequestParam Long examRecordDataId, @RequestParam(required = false) String fromCache) {
+        Check.isNull(examRecordDataId, "examRecordDataId不能为空");
+        if (fromCache != null) {
             examRecordDataId = examRecordDataSyncService.getExamRecordDataIdByCacheId(examRecordDataId);
-            if(examRecordDataId==null) {
+            if (examRecordDataId == null) {
                 throw new StatusException("1001", "未找到数据");
             }
         }
-		return examRecordPaperStructService.getExamRecordPaperStruct(examRecordDataId);
-	}
-	
+        return examRecordPaperStructService.getExamRecordPaperStruct(examRecordDataId);
+    }
+
 }

+ 24 - 26
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordQuestionsController.java

@@ -1,55 +1,53 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordQuestionsService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.oe.admin.base.utils.Check;
 import cn.com.qmth.examcloud.core.oe.admin.dao.ExamRecordQuestionsRepo;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordQuestionsEntity;
 import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordDataSyncService;
+import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordQuestionsService;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 
 /**
- * 
- * @author  	chenken
- * @date    	2018年10月12日 上午9:48:47
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年10月12日 上午9:48:47
+ * @company QMTH
  * @description ExamRecordQuestionsController.java
  */
 @Api(tags = "考试结束后-作答记录接口")
 @RestController
 @RequestMapping("${$rmp.ctr.oe}/examRecordQuestions")
-public class ExamRecordQuestionsController extends ControllerSupport{
+public class ExamRecordQuestionsController extends ControllerSupport {
 
-	@Autowired
-	private ExamRecordQuestionsRepo examRecordQuestionsRepo;
+    @Autowired
+    private ExamRecordQuestionsRepo examRecordQuestionsRepo;
 
-	@Autowired
-	private ExamRecordQuestionsService examRecordQuestionsService;
+    @Autowired
+    private ExamRecordQuestionsService examRecordQuestionsService;
 
     @Autowired
     private ExamRecordDataSyncService examRecordDataSyncService;
-	
-	@ApiOperation(value = "获取交卷之后的所有试题作答信息")
-	@GetMapping("/getExamRecordQuestions")
-	public ExamRecordQuestionsEntity getExamRecordQuestions(@RequestParam Long examRecordDataId,@RequestParam(required = false) String fromCache){
-		Check.isNull(examRecordDataId, "examRecordDataId不能为空");
-		if(fromCache!=null) {
+
+    @ApiOperation(value = "获取交卷之后的所有试题作答信息")
+    @GetMapping("/getExamRecordQuestions")
+    public ExamRecordQuestionsEntity getExamRecordQuestions(@RequestParam Long examRecordDataId, @RequestParam(required = false) String fromCache) {
+        Check.isNull(examRecordDataId, "examRecordDataId不能为空");
+        if (fromCache != null) {
             examRecordDataId = examRecordDataSyncService.getExamRecordDataIdByCacheId(examRecordDataId);
-            if(examRecordDataId==null) {
+            if (examRecordDataId == null) {
                 throw new StatusException("1001", "未找到数据");
             }
         }
 
-		return examRecordQuestionsService.getExamRecordQuestionsAndFixExamRecordDataIfNecessary(examRecordDataId);
-	}
-	
+        return examRecordQuestionsService.getExamRecordQuestionsAndFixExamRecordDataIfNecessary(examRecordDataId);
+    }
+
 }

+ 9 - 16
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamScoreController.java

@@ -7,19 +7,6 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import java.util.List;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.commons.util.JsonMapper;
@@ -45,6 +32,12 @@ import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.web.support.Naked;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 考试分数相关接口
@@ -92,10 +85,10 @@ public class ExamScoreController extends ControllerSupport {
     @ApiOperation(value = "导出“成绩统计”列表(异步)",
             notes = "参数示例:query={\"rootOrgId\":0,\"examId\":1,\"startLimit\":1,\"endLimit\":1}")
     public void exportExamScores(@RequestParam String query) {
-    	User user=getAccessUser();
-        asyncExportService.exportExamScoreStatistics(query,user);
+        User user = getAccessUser();
+        asyncExportService.exportExamScoreStatistics(query, user);
         AsyncExportConcurrentUtil.checkOrStartJob();
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "成绩统计-导出","导出条件:"+query));
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "成绩统计-导出", "导出条件:" + query));
     }
 
     @ApiOperation(value = "根据examStudentId获取客观分信息")

+ 32 - 47
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamStudentController.java

@@ -7,25 +7,6 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.util.JsonMapper;
 import cn.com.qmth.examcloud.core.basic.api.bean.CourseBean;
@@ -35,16 +16,7 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.IllegallyTypeRepo;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.IllegallyTypeEntity;
 import cn.com.qmth.examcloud.core.oe.admin.service.AsyncExportService;
 import cn.com.qmth.examcloud.core.oe.admin.service.ExamStudentService;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.CourseCompleteProgressExcel;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.CourseProgressInfo;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentEntityConvert;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentExcel;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentFinishedStatistic;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentInfo;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentOrgStatistic;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentQuery;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentUnFinishedExcel;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.OrgCompleteProgressExcel;
+import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.*;
 import cn.com.qmth.examcloud.core.oe.admin.service.util.AsyncExportConcurrentUtil;
 import cn.com.qmth.examcloud.reports.commons.bean.AdminOperateReport;
 import cn.com.qmth.examcloud.reports.commons.util.ReportsUtil;
@@ -55,6 +27,14 @@ import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.web.support.Naked;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * 考生信息接口
@@ -66,13 +46,16 @@ import io.swagger.annotations.ApiOperation;
 @Api(tags = "考生信息相关接口")
 @RequestMapping("${$rmp.ctr.oe}/exam/student")
 public class ExamStudentController extends ControllerSupport {
+
     @Autowired
     private ExamStudentService examStudentService;
+
     @Autowired
     private AsyncExportService asyncExportService;
-    
+
     @Autowired
     private IllegallyTypeRepo illegallyTypeRepo;
+
     /**
      * 查询课程本地缓存
      */
@@ -86,10 +69,12 @@ public class ExamStudentController extends ControllerSupport {
     }
 
     class CleanCourseBeanCacheTask extends TimerTask {
+
         @Override
         public void run() {
             courseBeanLocalCache.clear();
         }
+
     }
 
     public ExamStudentController() {
@@ -120,16 +105,16 @@ public class ExamStudentController extends ControllerSupport {
         List<ExamStudentInfo> examStudentInfoList = examStudentService.getExamStudentInfoList(newQuery);
         List<ExamStudentExcel> list = ExamStudentEntityConvert.ofExcel(examStudentInfoList);
         ExportUtils.exportEXCEL("考试详情列表", ExamStudentExcel.class, list, response);
-//        ExcelExportUtil.exportExcel("考试详情列表", ExamStudentExcel.class, list, response);
+        //        ExcelExportUtil.exportExcel("考试详情列表", ExamStudentExcel.class, list, response);
     }
-    
+
     @GetMapping("/examScheduling/list/export/async")
     @ApiOperation(value = "导出“考试进度详情”列表(异步)", notes = "参数示例:query={\"pageNo\":1,\"pageSize\":10,\"examId\":123, ...}")
     public void exportExamSchedulingAsync(@RequestParam String query) {
-    	User user = getAccessUser();
-        asyncExportService.exportExamScheduling(query,user);
+        User user = getAccessUser();
+        asyncExportService.exportExamScheduling(query, user);
         AsyncExportConcurrentUtil.checkOrStartJob();
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试进度详情-导出","导出条件:"+query));
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试进度详情-导出", "导出条件:" + query));
     }
 
     @PostMapping("/unfinished/list")
@@ -180,18 +165,18 @@ public class ExamStudentController extends ControllerSupport {
         }
         examStudentService.setReexamine(examStudentId, reexamineType, reexamineDetail);
         User user = getAccessUser();
-        StringBuilder sb=new StringBuilder();
-        sb.append("考生ID:"+examStudentId);
-        if(StringUtils.isNotEmpty(reexamineType)) {
-        	IllegallyTypeEntity it=illegallyTypeRepo.findByRootOrgIdAndCode(-1L, reexamineType);
-        	if(it!=null) {
-        		sb.append(" 重考理由:"+it.getName());
-        	}
+        StringBuilder sb = new StringBuilder();
+        sb.append("考生ID:" + examStudentId);
+        if (StringUtils.isNotEmpty(reexamineType)) {
+            IllegallyTypeEntity it = illegallyTypeRepo.findByRootOrgIdAndCode(-1L, reexamineType);
+            if (it != null) {
+                sb.append(" 重考理由:" + it.getName());
+            }
         }
-        if(StringUtils.isNotEmpty(reexamineDetail)) {
-        	sb.append(" 详情描述:"+reexamineDetail);
+        if (StringUtils.isNotEmpty(reexamineDetail)) {
+            sb.append(" 详情描述:" + reexamineDetail);
         }
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "设置重考-设置重考",sb.toString()));
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "设置重考-设置重考", sb.toString()));
     }
 
     @PostMapping("/statistic/by/finished")
@@ -239,8 +224,8 @@ public class ExamStudentController extends ControllerSupport {
     @GetMapping("/findCoursesByExamIdAndOrgId")
     @ApiOperation(value = "查询课程")
     public List<CourseCacheBean> findCoursesByExamIdAndOrgId(@RequestParam Long examId,
-                                                        @RequestParam(required = false) Long examStageId,
-                                                        @RequestParam(required = false) Long orgId) {
+                                                             @RequestParam(required = false) Long examStageId,
+                                                             @RequestParam(required = false) Long orgId) {
         if (examId == null) {
             return null;
         }

+ 1 - 1
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExportTaskController.java

@@ -30,7 +30,7 @@ public class ExportTaskController extends ControllerSupport {
         User user = getAccessUser();
         req.setRootOrgId(user.getRootOrgId());
 
-        return exportTaskService.getExportTaskList(req,user.getUserId());
+        return exportTaskService.getExportTaskList(req, user.getUserId());
     }
 
     @PostMapping("/delete")

+ 6 - 7
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/IllegallyTypeController.java

@@ -8,7 +8,6 @@ import cn.com.qmth.examcloud.commons.util.PathUtil;
 import cn.com.qmth.examcloud.core.oe.admin.api.bean.IllegallyTypeDomain;
 import cn.com.qmth.examcloud.core.oe.admin.dao.ExamAuditRepo;
 import cn.com.qmth.examcloud.core.oe.admin.dao.IllegallyTypeRepo;
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamAuditEntity;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.IllegallyTypeEntity;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.DisciplineType;
 import cn.com.qmth.examcloud.core.oe.admin.service.IllegallyTypeService;
@@ -19,7 +18,6 @@ import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections.CollectionUtils;
@@ -27,7 +25,6 @@ import org.apache.commons.fileupload.disk.DiskFileItem;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.io.ClassPathResource;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
@@ -40,8 +37,10 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile;
 import javax.persistence.criteria.Predicate;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
-import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -150,7 +149,6 @@ public class IllegallyTypeController extends ControllerSupport {
     }
 
     /**
-     *
      * @param name
      * @param code
      * @param enable
@@ -162,7 +160,7 @@ public class IllegallyTypeController extends ControllerSupport {
     public List<IllegallyTypeEntity> query(@RequestParam(required = false) String name,
                                            @RequestParam(required = false) String code,
                                            @RequestParam(required = false) Boolean enable,
-                                           @RequestParam(required = false,defaultValue = "all") String queryScope) {
+                                           @RequestParam(required = false, defaultValue = "all") String queryScope) {
 
         User accessUser = getAccessUser();
         Long rootOrgId = accessUser.getRootOrgId();
@@ -382,4 +380,5 @@ public class IllegallyTypeController extends ControllerSupport {
 
         FileUtils.deleteQuietly(file);
     }
+
 }

+ 40 - 46
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/OfflineExamController.java

@@ -1,26 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import cn.com.qmth.examcloud.core.oe.admin.service.ExamStudentService;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
 import cn.com.qmth.examcloud.api.commons.enums.ExamType;
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
@@ -28,6 +7,7 @@ import cn.com.qmth.examcloud.commons.util.MD5;
 import cn.com.qmth.examcloud.core.oe.admin.base.utils.Check;
 import cn.com.qmth.examcloud.core.oe.admin.dao.ExamRecordDataRepo;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
+import cn.com.qmth.examcloud.core.oe.admin.service.ExamStudentService;
 import cn.com.qmth.examcloud.core.oe.admin.service.OfflineExamService;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.OfflineExamCourseInfo;
 import cn.com.qmth.examcloud.reports.commons.bean.AdminOperateReport;
@@ -40,6 +20,17 @@ import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.List;
 
 
 /**
@@ -52,7 +43,9 @@ import io.swagger.annotations.ApiParam;
 @RestController
 @RequestMapping("${$rmp.ctr.oe}/offlineExam")
 public class OfflineExamController extends ControllerSupport {
-	private static final Logger log = LoggerFactory.getLogger(OfflineExamController.class);
+
+    private static final Logger log = LoggerFactory.getLogger(OfflineExamController.class);
+
     @Autowired
     private OfflineExamService offlineExamService;
 
@@ -64,6 +57,7 @@ public class OfflineExamController extends ControllerSupport {
 
     @Autowired
     SystemProperties systemConfig;
+
     /**
      * 答案文件最大限制
      * 单位:M
@@ -97,7 +91,7 @@ public class OfflineExamController extends ControllerSupport {
         Check.isNull(examStudentId, "examStudentId不能为空");
 
         boolean isEnable = examStudentService.isEnableExamStudent(examStudentId);
-        if(!isEnable){
+        if (!isEnable) {
             throw new StatusException("000500", "当前考生已禁用!");
         }
 
@@ -120,7 +114,7 @@ public class OfflineExamController extends ControllerSupport {
         }
 
         boolean isEnable = examStudentService.isEnableExamStudent(examRecordData.getExamStudentId());
-        if(!isEnable){
+        if (!isEnable) {
             throw new StatusException("000500", "当前考生已禁用!");
         }
 
@@ -151,18 +145,18 @@ public class OfflineExamController extends ControllerSupport {
 
         File f = getUploadFile(file);
 
-        offlineExamService.submitPaper(examRecordDataId, f,fileSuffix);
+        offlineExamService.submitPaper(examRecordDataId, f, fileSuffix);
 
-        User user=getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试进度详情-上传作答","考试记录ID:"+examRecordDataId+" 考生ID:"+examRecordData.getExamStudentId()));
+        User user = getAccessUser();
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试进度详情-上传作答", "考试记录ID:" + examRecordDataId + " 考生ID:" + examRecordData.getExamStudentId()));
     }
 
     /**
      * 交卷
      *
-     * @param fileArray            文件数组
+     * @param fileArray        文件数组
      * @param examRecordDataId 考试记录id
-     * @param fileMd5Array        文件摘要信息
+     * @param fileMd5Array     文件摘要信息
      * @throws Exception
      */
     @ApiOperation(value = "离线考试:多文件交卷")
@@ -183,7 +177,7 @@ public class OfflineExamController extends ControllerSupport {
         }
 
         boolean isEnable = examStudentService.isEnableExamStudent(examRecordData.getExamStudentId());
-        if(!isEnable){
+        if (!isEnable) {
             throw new StatusException("000500", "当前考生已禁用!");
         }
 
@@ -194,20 +188,20 @@ public class OfflineExamController extends ControllerSupport {
             throw new StatusException("OfflineExamController-submitPaper-003", "当前考试设置不允许上传附件");
         }
 
-        String upperFileType=fileType.toUpperCase();
-        if (("PDF".equals(upperFileType) || "ZIP".equals(upperFileType))&&fileArray.length>1){
-        	StringBuilder sb=new StringBuilder();
-        	for (int i = 0; i < fileArray.length; i++) {
+        String upperFileType = fileType.toUpperCase();
+        if (("PDF".equals(upperFileType) || "ZIP".equals(upperFileType)) && fileArray.length > 1) {
+            StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < fileArray.length; i++) {
                 MultipartFile file = fileArray[i];
                 String fileName = file.getOriginalFilename();
                 sb.append(fileName).append(",");
-        	}
-        	sb.deleteCharAt(sb.length()-1);
-        	log.error("batchSubmitPaper-duplicate:"+examRecordDataId+":"+sb);
-        	throw new StatusException("000500", "上传"+upperFileType+"类型文件时只能传一个文件");
+            }
+            sb.deleteCharAt(sb.length() - 1);
+            log.error("batchSubmitPaper-duplicate:" + examRecordDataId + ":" + sb);
+            throw new StatusException("000500", "上传" + upperFileType + "类型文件时只能传一个文件");
         }
-        
-        List<File> resultFiles=new ArrayList<>();
+
+        List<File> resultFiles = new ArrayList<>();
         for (int i = 0; i < fileArray.length; i++) {
             MultipartFile file = fileArray[i];
             String fileName = file.getOriginalFilename();
@@ -225,13 +219,12 @@ public class OfflineExamController extends ControllerSupport {
             }
 
 
-
             //图片类型特殊处理
             if (fileSuffix.equals("JPG") || fileSuffix.equals("JPEG") || fileSuffix.equals("PNG")) {
-                if (offlineUploadFileType.indexOf("IMAGE")<0) {
+                if (offlineUploadFileType.indexOf("IMAGE") < 0) {
                     throw new StatusException("100004", "当前考试允许上传文件格式为:" + offlineUploadFileType);
                 }
-            }else{
+            } else {
                 if (offlineUploadFileType.indexOf(fileSuffix) < 0) {
                     throw new StatusException("OfflineExamController-submitPaper-004", "当前考试允许上传文件格式为:" + offlineUploadFileType);
                 }
@@ -254,14 +247,14 @@ public class OfflineExamController extends ControllerSupport {
             resultFiles.add(f);
         }
 
-        offlineExamService.batchSubmitPaper(examRecordDataId,resultFiles,fileType);
+        offlineExamService.batchSubmitPaper(examRecordDataId, resultFiles, fileType);
 
         //最后删除临时文件
         for (File tempFile : resultFiles) {
             tempFile.delete();
         }
-        User user=getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试进度详情-上传作答","考试记录ID:"+examRecordDataId+" 考生ID:"+examRecordData.getExamStudentId()));
+        User user = getAccessUser();
+        ReportsUtil.report(new AdminOperateReport(user.getRootOrgId(), user.getUserId(), "考试进度详情-上传作答", "考试记录ID:" + examRecordDataId + " 考生ID:" + examRecordData.getExamStudentId()));
     }
 
     private File getUploadFile(MultipartFile file) {
@@ -285,4 +278,5 @@ public class OfflineExamController extends ControllerSupport {
         }
         return tempFile;
     }
+
 }

+ 20 - 18
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/PracticeController.java

@@ -1,13 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.oe.admin.base.utils.Check;
@@ -19,32 +11,40 @@ import cn.com.qmth.examcloud.core.oe.admin.service.bean.PracticeRecordInfo;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
 
 /**
- *
- * @author      chenken
- * @date        2018年9月7日 上午11:12:28
- * @company     QMTH
+ * @author chenken
+ * @date 2018年9月7日 上午11:12:28
+ * @company QMTH
  * @description PracticeController.java
  */
 @Api(tags = "练习相关接口")
 @RestController
 @RequestMapping("${$rmp.ctr.oe}/practice")
-public class PracticeController extends ControllerSupport{
+public class PracticeController extends ControllerSupport {
 
     @Autowired
     private PracticeService practiceService;
 
     @Autowired
     private ExamRecordDataSyncService examRecordDataSyncService;
+
     /**
      * 练习课程列表
+     *
      * @param examId
      * @return
      */
     @ApiOperation(value = "练习课程列表")
     @GetMapping("/queryPracticeCourseList")
-    public List<PracticeCourseInfo> queryPracticeCourseList(@RequestParam Long examId){
+    public List<PracticeCourseInfo> queryPracticeCourseList(@RequestParam Long examId) {
         Check.isNull(examId, "examId不能为空");
         User user = getAccessUser();
         return practiceService.queryPracticeCourseList(examId, user.getUserId());
@@ -52,27 +52,29 @@ public class PracticeController extends ControllerSupport{
 
     /**
      * 课程练习记录详情
+     *
      * @param examStudentId
      * @return
      */
     @ApiOperation(value = "课程练习记录详情")
     @GetMapping("/queryPracticeRecordList")
-    public List<PracticeRecordInfo> queryPracticeRecordList(@RequestParam Long examStudentId){
+    public List<PracticeRecordInfo> queryPracticeRecordList(@RequestParam Long examStudentId) {
         Check.isNull(examStudentId, "examStudentId不能为空");
         return practiceService.queryPracticeRecordList(examStudentId);
     }
 
     /**
      * 单次练习答题情况统计
+     *
      * @return
      */
     @ApiOperation(value = "单次练习答题情况统计")
     @GetMapping("/getPracticeDetailInfo")
-    public PracticeDetailInfo getPracticeDetailInfo(@RequestParam Long examRecordDataId,@RequestParam(required = false) String fromCache){
+    public PracticeDetailInfo getPracticeDetailInfo(@RequestParam Long examRecordDataId, @RequestParam(required = false) String fromCache) {
         Check.isNull(examRecordDataId, "examRecordDataId不能为空");
-        if(fromCache!=null) {
+        if (fromCache != null) {
             examRecordDataId = examRecordDataSyncService.getExamRecordDataIdByCacheId(examRecordDataId);
-            if(examRecordDataId==null) {
+            if (examRecordDataId == null) {
                 throw new StatusException("1001", "未找到数据");
             }
         }

+ 6 - 6
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordCloudServiceProvider.java

@@ -642,14 +642,14 @@ public class ExamRecordCloudServiceProvider extends ControllerSupport implements
         return res;
     }
 
-	@Override
-	@ApiOperation(value = "检查试卷是否已使用")
+    @Override
+    @ApiOperation(value = "检查试卷是否已使用")
     @PostMapping("/checkPaperInExam")
-	public CheckPaperInExamResp checkPaperInExam(@RequestBody CheckPaperInExamReq req) {
-		if (org.apache.commons.lang3.StringUtils.isBlank(req.getBasePaperId())) {
+    public CheckPaperInExamResp checkPaperInExam(@RequestBody CheckPaperInExamReq req) {
+        if (org.apache.commons.lang3.StringUtils.isBlank(req.getBasePaperId())) {
             throw new StatusException("500", "basePaperId不允许为空");
         }
-		return examRecordDataService.checkPaperInExam(req);
-	}
+        return examRecordDataService.checkPaperInExam(req);
+    }
 
 }

+ 5 - 1
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordForMarkingCloudServiceProvider.java

@@ -61,15 +61,19 @@ public class ExamRecordForMarkingCloudServiceProvider extends ControllerSupport
 
     @Autowired
     private ExamRecordForMarkingService examRecordForMarkingService;
+
     @Autowired
     private ExamStudentRepo examStudentRepo;
+
     @Autowired
     private ExamRecordDataRepo examRecordDataRepo;
+
     @Autowired
     private ExamRecordForMarkingRepo examRecordForMarkingRepo;
 
     @Autowired
     private ExamRecordQuestionsService examRecordQuestionsService;
+
     @Autowired
     private ExamRecordFileAnswerRepo examRecordFileAnswerRepo;
 
@@ -95,7 +99,7 @@ public class ExamRecordForMarkingCloudServiceProvider extends ControllerSupport
             examRecordForMarkingBean.setPaperType(entity.getPaperType());
             examRecordForMarkingBean.setCourseId(entity.getCourseId());
 
-            if(entity.getExamRecordDataId() == null){
+            if (entity.getExamRecordDataId() == null) {
                 throw new StatusException("500101", "阅卷信息错误,考试记录ID存在空值!");
             }
 

+ 24 - 23
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordPaperStructProvider.java

@@ -1,11 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.provider;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.core.oe.admin.api.ExamPaperStructCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.GetExamRecordPaperStructReq;
 import cn.com.qmth.examcloud.core.oe.admin.api.response.GetExamRecordPaperStructResp;
@@ -15,30 +9,37 @@ import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordPaperStructService;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 @Api(tags = "考试记录-试卷结构")
 @RestController
 @RequestMapping("${$rmp.cloud.oe}/examRecordPaperStruct")
 public class ExamRecordPaperStructProvider extends ControllerSupport implements ExamPaperStructCloudService {
 
-	/**
-     * 
+    /**
+     *
      */
     private static final long serialVersionUID = 9057798814755020949L;
+
     @Autowired
-	private ExamRecordPaperStructService examRecordPaperStructService;
-	
-	@ApiOperation(value = "获取考试记录试卷结构")
-	@PostMapping("/getExamRecordPaperStruct")
-	@Override
-	public GetExamRecordPaperStructResp getExamRecordPaperStruct(@RequestBody GetExamRecordPaperStructReq req) {
-		Check.isNull(req.getExamRecordDataId(), "考试记录id不能为空");
-		ExamRecordPaperStructEntity examRecordPaperStructEntity = examRecordPaperStructService.getExamRecordPaperStruct(req.getExamRecordDataId());
-		GetExamRecordPaperStructResp resp = new GetExamRecordPaperStructResp();
-		if (null == examRecordPaperStructEntity){
-			return null;
-		}
-		resp.setDefaultPaper(examRecordPaperStructEntity.getDefaultPaper());
-		return resp;
-	}
+    private ExamRecordPaperStructService examRecordPaperStructService;
+
+    @ApiOperation(value = "获取考试记录试卷结构")
+    @PostMapping("/getExamRecordPaperStruct")
+    @Override
+    public GetExamRecordPaperStructResp getExamRecordPaperStruct(@RequestBody GetExamRecordPaperStructReq req) {
+        Check.isNull(req.getExamRecordDataId(), "考试记录id不能为空");
+        ExamRecordPaperStructEntity examRecordPaperStructEntity = examRecordPaperStructService.getExamRecordPaperStruct(req.getExamRecordDataId());
+        GetExamRecordPaperStructResp resp = new GetExamRecordPaperStructResp();
+        if (null == examRecordPaperStructEntity) {
+            return null;
+        }
+        resp.setDefaultPaper(examRecordPaperStructEntity.getDefaultPaper());
+        return resp;
+    }
+
 }

+ 1 - 0
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordQuestionsCloudServiceProvider.java

@@ -287,4 +287,5 @@ public class ExamRecordQuestionsCloudServiceProvider extends ControllerSupport i
 
         return studentAnswer;
     }
+
 }

+ 45 - 46
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamScoreCloudServiceProvider.java

@@ -1,14 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.provider;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.core.oe.admin.api.ExamScoreCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamScoreBean;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.QueryExamScoreReq;
@@ -18,48 +9,56 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamScoreEntity;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
 
 
 @Api(tags = "考试分数信息相关接口")
 @RestController
 @RequestMapping("${$rmp.cloud.oe}/examScore")
-public class ExamScoreCloudServiceProvider extends ControllerSupport implements ExamScoreCloudService{
+public class ExamScoreCloudServiceProvider extends ControllerSupport implements ExamScoreCloudService {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -1957765271029136836L;
+
+    @Autowired
+    private ExamScoreRepo examScoreRepo;
+
+    @Override
+    @ApiOperation(value = "分数查询")
+    @PostMapping("/queryExamScore")
+    public QueryExamScoreResp queryExamScore(@RequestBody QueryExamScoreReq req) {
+        List<Long> examRecordDataIds = req.getExamRecordDataIds();
+
+        if (examRecordDataIds == null || examRecordDataIds.size() == 0) {
+            return null;
+        }
+
+        List<ExamScoreEntity> examScoreList = examScoreRepo.findByExamRecordDataIdIn(req.getExamRecordDataIds());
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -1957765271029136836L;
-	
-	@Autowired
-	private ExamScoreRepo examScoreRepo;
-	
-	@Override
-	@ApiOperation(value = "分数查询")
-	@PostMapping("/queryExamScore")
-	public QueryExamScoreResp queryExamScore(@RequestBody QueryExamScoreReq req) {
-		List<Long> examRecordDataIds = req.getExamRecordDataIds();
-		
-		if(examRecordDataIds == null || examRecordDataIds.size() == 0){
-			return null;
-		}
-		
-		List<ExamScoreEntity> examScoreList = examScoreRepo.findByExamRecordDataIdIn(req.getExamRecordDataIds());
-		
-		List<ExamScoreBean> examScoreBeans = new ArrayList<ExamScoreBean>();
-		for(ExamScoreEntity examScore:examScoreList){
-			ExamScoreBean examScoreBean = new ExamScoreBean();
-			examScoreBean.setId(examScore.getId());
-			examScoreBean.setExamRecordDataId(examScore.getExamRecordDataId());
-			examScoreBean.setObjectiveAccuracy(examScore.getObjectiveAccuracy());
-			examScoreBean.setObjectiveScore(examScore.getObjectiveScore());
-			examScoreBean.setSubjectiveScore(examScore.getSubjectiveScore());
-			examScoreBean.setSuccPercent(examScore.getSuccPercent());
-			examScoreBean.setTotalScore(examScore.getTotalScore());
-			examScoreBeans.add(examScoreBean);
-		}
-		QueryExamScoreResp queryExamScoreResp = new QueryExamScoreResp();
-		queryExamScoreResp.setExamScoreBeans(examScoreBeans);
-		return queryExamScoreResp;
-	}
+        List<ExamScoreBean> examScoreBeans = new ArrayList<ExamScoreBean>();
+        for (ExamScoreEntity examScore : examScoreList) {
+            ExamScoreBean examScoreBean = new ExamScoreBean();
+            examScoreBean.setId(examScore.getId());
+            examScoreBean.setExamRecordDataId(examScore.getExamRecordDataId());
+            examScoreBean.setObjectiveAccuracy(examScore.getObjectiveAccuracy());
+            examScoreBean.setObjectiveScore(examScore.getObjectiveScore());
+            examScoreBean.setSubjectiveScore(examScore.getSubjectiveScore());
+            examScoreBean.setSuccPercent(examScore.getSuccPercent());
+            examScoreBean.setTotalScore(examScore.getTotalScore());
+            examScoreBeans.add(examScoreBean);
+        }
+        QueryExamScoreResp queryExamScoreResp = new QueryExamScoreResp();
+        queryExamScoreResp.setExamScoreBeans(examScoreBeans);
+        return queryExamScoreResp;
+    }
 
 }

+ 15 - 14
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamScoreNoticeQueueCloudServiceProvider.java

@@ -1,13 +1,17 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.provider;
 
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import java.util.Date;
-import java.util.List;
-
+import cn.com.qmth.examcloud.commons.util.OKHttpUtil;
+import cn.com.qmth.examcloud.core.oe.admin.api.ExamScoreNoticeQueueCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.AddExamScoreNoticeQueueReq;
 import cn.com.qmth.examcloud.core.oe.admin.api.response.AddExamScoreNoticeQueueResp;
+import cn.com.qmth.examcloud.core.oe.admin.dao.ExamScoreNoticeQueueRepo;
+import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamScoreNoticeQueueEntity;
 import cn.com.qmth.examcloud.core.oe.admin.service.ExamScoreNoticeQueueService;
+import cn.com.qmth.examcloud.core.oe.admin.service.ExamScoreObtainQueueService;
+import cn.com.qmth.examcloud.core.oe.admin.service.bean.NotifyUrlInfo;
+import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -15,15 +19,10 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import cn.com.qmth.examcloud.commons.util.OKHttpUtil;
-import cn.com.qmth.examcloud.core.oe.admin.api.ExamScoreNoticeQueueCloudService;
-import cn.com.qmth.examcloud.core.oe.admin.dao.ExamScoreNoticeQueueRepo;
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamScoreNoticeQueueEntity;
-import cn.com.qmth.examcloud.core.oe.admin.service.ExamScoreObtainQueueService;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.NotifyUrlInfo;
-import cn.com.qmth.examcloud.web.support.ControllerSupport;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import java.net.SocketException;
+import java.net.UnknownHostException;
+import java.util.Date;
+import java.util.List;
 
 @Api(tags = "定时发送获取分数通知接口")
 @RestController
@@ -38,8 +37,10 @@ public class ExamScoreNoticeQueueCloudServiceProvider extends ControllerSupport
 
     @Autowired
     private ExamScoreNoticeQueueRepo examScoreNoticeQueueRepo;
+
     @Autowired
     private ExamScoreObtainQueueService examScoreObtainQueueService;
+
     @Autowired
     private ExamScoreNoticeQueueService examScoreNoticeQueueService;
 

+ 13 - 14
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamScoreObtainQueueCloudServiceProvider.java

@@ -1,16 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.provider;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.core.oe.admin.api.ExamScoreObtainQueueCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.DeleteExamScoreQueueReq;
 import cn.com.qmth.examcloud.core.oe.admin.api.request.GetTopExamScoreQueueReq;
@@ -25,6 +14,16 @@ import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 @Api(tags = "考试分数队列接口")
 @RestController
@@ -33,7 +32,7 @@ public class ExamScoreObtainQueueCloudServiceProvider extends ControllerSupport
         implements ExamScoreObtainQueueCloudService {
 
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = 9204539038969246524L;
 
@@ -77,7 +76,6 @@ public class ExamScoreObtainQueueCloudServiceProvider extends ControllerSupport
 
     /**
      * 定时更新获取分数通知队列
-     * 
      */
     @ApiOperation(value = "定时更新获取分数通知队列")
     @PostMapping("/updateObtainScoreNodifyQueue")
@@ -94,7 +92,7 @@ public class ExamScoreObtainQueueCloudServiceProvider extends ControllerSupport
         }
         // 1.2如果存在,则创建相应组织机构的通知队列
         List<Long> rootOrgList = toObtainQueueList.stream().map(ExamScoreObtainQueueEntity::getRootOrgId).distinct()
-                .collect(Collectors.<Long> toList());
+                .collect(Collectors.<Long>toList());
         List<ExamScoreNoticeQueueEntity> noticeQueueEntityList = new ArrayList<ExamScoreNoticeQueueEntity>();
         rootOrgList.forEach(ro -> {
             ExamScoreNoticeQueueEntity noticeQueueEntity = new ExamScoreNoticeQueueEntity();
@@ -105,4 +103,5 @@ public class ExamScoreObtainQueueCloudServiceProvider extends ControllerSupport
         // 批量插入通知队列
         examScoreNoticeQueueRepo.saveAll(noticeQueueEntityList);
     }
+
 }

+ 2 - 0
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamStudentCloudServiceProvider.java

@@ -43,6 +43,7 @@ import java.util.stream.Collectors;
 @RestController
 @RequestMapping("${$rmp.cloud.oe}/exam/student")
 public class ExamStudentCloudServiceProvider extends ControllerSupport implements OeExamStudentCloudService {
+
     /**
      *
      */
@@ -209,4 +210,5 @@ public class ExamStudentCloudServiceProvider extends ControllerSupport implement
         }
         return examStudentBeans;
     }
+
 }

+ 24 - 19
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamStudentDataCloudServiceProvider.java

@@ -1,18 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.provider;
 
-import java.util.ArrayList;
-import java.util.DoubleSummaryStatistics;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import cn.com.qmth.examcloud.support.enums.ExamProperties;
-import cn.com.qmth.examcloud.support.helper.ExamCacheTransferHelper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.oe.admin.api.ExamStudentDataCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamStudentDataBean;
@@ -27,10 +14,22 @@ import cn.com.qmth.examcloud.core.oe.admin.service.ExamStudentService;
 import cn.com.qmth.examcloud.core.oe.admin.service.GainBaseDataService;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.ExamStudentEffectiveScoreInfo;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentInfo;
+import cn.com.qmth.examcloud.support.enums.ExamProperties;
+import cn.com.qmth.examcloud.support.helper.ExamCacheTransferHelper;
 import cn.com.qmth.examcloud.web.bootstrap.PropertyHolder;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.DoubleSummaryStatistics;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description 获取考生考试相关数据接口
@@ -42,16 +41,21 @@ import io.swagger.annotations.ApiOperation;
 @RestController
 @RequestMapping("${$rmp.cloud.oe}/examStudentData")
 public class ExamStudentDataCloudServiceProvider extends ControllerSupport implements ExamStudentDataCloudService {
+
     /**
      *
      */
     private static final long serialVersionUID = 4538819077863159166L;
+
     @Autowired
     ExamRecordQuestionsRepo examRecordQuestionsRepo;
+
     @Autowired
     private ExamStudentService examStudentService;
+
     @Autowired
     private GainBaseDataService gainBaseDataService;
+
     @Autowired
     private ExamRecordService examRecordService;
 
@@ -131,12 +135,12 @@ public class ExamStudentDataCloudServiceProvider extends ControllerSupport imple
                     //试卷总分
                     List<ExamRecordQuestionsEntity> curQuestionList = questionList.stream().
                             filter(p -> p.getExamRecordDataId().equals(finalScore.getExamRecordDataId())).collect(Collectors.toList());
-//                    if (curQuestionList==null || curQuestionList.isEmpty()){
-//                        //正常的数据不会出现这种情况con,暂时先记日志
-//                        log.error("[GETEXAMSTUDENTDATA]200106考试作答记录数据异常,examRecordDataId:"+finalScore.getExamRecordDataId());
-////                        throw new StatusException("200106","考试作答记录数据异常");
-//                        continue;
-//                    }
+                    //                    if (curQuestionList==null || curQuestionList.isEmpty()){
+                    //                        //正常的数据不会出现这种情况con,暂时先记日志
+                    //                        log.error("[GETEXAMSTUDENTDATA]200106考试作答记录数据异常,examRecordDataId:"+finalScore.getExamRecordDataId());
+                    ////                        throw new StatusException("200106","考试作答记录数据异常");
+                    //                        continue;
+                    //                    }
                     ExamRecordQuestionsEntity examRecordQuestionsEntity = curQuestionList.get(0);
                     List<ExamQuestionEntity> examQuestionList = examRecordQuestionsEntity.getExamQuestionEntities();
                     DoubleSummaryStatistics questionScoreStatistics = examQuestionList.stream().
@@ -177,4 +181,5 @@ public class ExamStudentDataCloudServiceProvider extends ControllerSupport imple
             throw new StatusException("200104", "该接口一次最多只能返回" + maxSize + "条数据");
         }
     }
+
 }

+ 22 - 23
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/OeAdminScorePushCloudServiceProvider.java

@@ -1,39 +1,38 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.provider;
 
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.core.oe.admin.api.OeAdminScorePushCloudService;
 import cn.com.qmth.examcloud.core.oe.admin.dao.ExamRecordDataRepo;
 import cn.com.qmth.examcloud.core.oe.admin.dao.ExamScorePushQueueRepo;
 import cn.com.qmth.examcloud.core.oe.admin.service.ExamScoreQueueService;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 
 @Api(tags = "推送成绩接口")
 @RestController
 @RequestMapping("${$rmp.cloud.oe}/oeAdminScorePush")
-public class OeAdminScorePushCloudServiceProvider extends ControllerSupport implements OeAdminScorePushCloudService{
-
-	private static final long serialVersionUID = -113490665725775879L;
-
-	@Autowired
-	private ExamScoreQueueService examScoreQueueService;
-	
-	@Autowired
-	private ExamScorePushQueueRepo examScorePushQueueRepo;
-	
-	@Autowired
-	private ExamRecordDataRepo examRecordDataRepo;
-	
-	@Override
-	@PostMapping("/disposeScoreQueue")
-	public void disposeScoreQueue() {
-		examScoreQueueService.disposeScoreQueue();
-	}
+public class OeAdminScorePushCloudServiceProvider extends ControllerSupport implements OeAdminScorePushCloudService {
+
+    private static final long serialVersionUID = -113490665725775879L;
+
+    @Autowired
+    private ExamScoreQueueService examScoreQueueService;
+
+    @Autowired
+    private ExamScorePushQueueRepo examScorePushQueueRepo;
+
+    @Autowired
+    private ExamRecordDataRepo examRecordDataRepo;
+
+    @Override
+    @PostMapping("/disposeScoreQueue")
+    public void disposeScoreQueue() {
+        examScoreQueueService.disposeScoreQueue();
+    }
 
 }

+ 78 - 93
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/SyncCloudServiceProvider.java

@@ -1,17 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.provider;
 
-import java.util.List;
-
-import cn.com.qmth.examcloud.support.Constants;
-import cn.com.qmth.examcloud.web.helpers.SequenceLockHelper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.google.common.collect.Lists;
-
 import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamStudentBeanConvert;
 import cn.com.qmth.examcloud.core.oe.admin.dao.ExamRecordDataRepo;
 import cn.com.qmth.examcloud.core.oe.admin.dao.ExamStudentRepo;
@@ -20,109 +8,107 @@ import cn.com.qmth.examcloud.core.oe.admin.service.ExamStudentService;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentInfo;
 import cn.com.qmth.examcloud.core.oe.admin.service.cache.ExamStudentCache;
 import cn.com.qmth.examcloud.global.api.HandleSyncCloudService;
-import cn.com.qmth.examcloud.global.api.request.SyncCourseReq;
-import cn.com.qmth.examcloud.global.api.request.SyncExamReq;
-import cn.com.qmth.examcloud.global.api.request.SyncExamStudentReq;
-import cn.com.qmth.examcloud.global.api.request.SyncOrgReq;
-import cn.com.qmth.examcloud.global.api.request.SyncSpecialtyReq;
-import cn.com.qmth.examcloud.global.api.request.SyncStudentReq;
-import cn.com.qmth.examcloud.global.api.request.SyncUserReq;
-import cn.com.qmth.examcloud.global.api.response.SyncCourseResp;
-import cn.com.qmth.examcloud.global.api.response.SyncExamResp;
-import cn.com.qmth.examcloud.global.api.response.SyncExamStudentResp;
-import cn.com.qmth.examcloud.global.api.response.SyncOrgResp;
-import cn.com.qmth.examcloud.global.api.response.SyncSpecialtyResp;
-import cn.com.qmth.examcloud.global.api.response.SyncStudentResp;
-import cn.com.qmth.examcloud.global.api.response.SyncUserResp;
+import cn.com.qmth.examcloud.global.api.request.*;
+import cn.com.qmth.examcloud.global.api.response.*;
+import cn.com.qmth.examcloud.support.Constants;
+import cn.com.qmth.examcloud.web.helpers.SequenceLockHelper;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
+import com.google.common.collect.Lists;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
 
 /**
- * 
- * @author  	chenken
- * @date    	2018年10月29日 下午4:39:24
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年10月29日 下午4:39:24
+ * @company QMTH
  * @description 数据同步相关接口
  */
 @Api(tags = "数据同步相关接口")
 @RestController
 @RequestMapping("${$rmp.cloud.oe}/exam/dataSync")
-public class SyncCloudServiceProvider  extends ControllerSupport implements HandleSyncCloudService {
-	
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -4093980356473146740L;
-
-	@Autowired
+public class SyncCloudServiceProvider extends ControllerSupport implements HandleSyncCloudService {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -4093980356473146740L;
+
+    @Autowired
     private ExamStudentService examStudentService;
-	
+
     @Autowired
     private ExamStudentRepo examStudentRepo;
+
     @Autowired
     private ExamRecordDataRepo examRecordDataRepo;
-    
+
     @Autowired
     private ExamStudentCache examStudentCache;
 
-	@ApiOperation(value = "同步考生")
+    @ApiOperation(value = "同步考生")
     @PostMapping("/syncExamStudent")
     public SyncExamStudentResp syncExamStudent(@RequestBody SyncExamStudentReq req) {
-		//此锁是为了保证同步考生和交卷后更新考生信息不冲突
-		String sequenceLockKey = Constants.EXAM_CONTROL_LOCK_PREFIX + req.getStudentId();
-
-		try {
-			//添加考试控制全局锁
-			SequenceLockHelper.getLockSimple(sequenceLockKey);
-
-			if("delete".equals(req.getSyncType())){
-				ExamStudentEntity examStudent = examStudentRepo.findByExamStudentId(req.getId());
-				if(examStudent != null && (examStudent.getFinished() == null || !examStudent.getFinished())){
-					examStudentRepo.delete(examStudent);
-					examStudentCache.remove(examStudent.getId());
-				}
-			}else if("update".equals(req.getSyncType())){
-				ExamStudentInfo examStudent = ExamStudentBeanConvert.of(req);
-				List<Long> examStudentIdList = examStudentService.saveExamStudentList(Lists.newArrayList(examStudent));
-				for (Long cur : examStudentIdList) {
-					examStudentCache.refresh(cur);
-				}
-			}
-
-			SyncExamStudentResp resp = new SyncExamStudentResp();
-			return resp;
-		} finally {
-			SequenceLockHelper.releaseLockSimple(sequenceLockKey);
-		}
-	}
+        //此锁是为了保证同步考生和交卷后更新考生信息不冲突
+        String sequenceLockKey = Constants.EXAM_CONTROL_LOCK_PREFIX + req.getStudentId();
+
+        try {
+            //添加考试控制全局锁
+            SequenceLockHelper.getLockSimple(sequenceLockKey);
+
+            if ("delete".equals(req.getSyncType())) {
+                ExamStudentEntity examStudent = examStudentRepo.findByExamStudentId(req.getId());
+                if (examStudent != null && (examStudent.getFinished() == null || !examStudent.getFinished())) {
+                    examStudentRepo.delete(examStudent);
+                    examStudentCache.remove(examStudent.getId());
+                }
+            } else if ("update".equals(req.getSyncType())) {
+                ExamStudentInfo examStudent = ExamStudentBeanConvert.of(req);
+                List<Long> examStudentIdList = examStudentService.saveExamStudentList(Lists.newArrayList(examStudent));
+                for (Long cur : examStudentIdList) {
+                    examStudentCache.refresh(cur);
+                }
+            }
+
+            SyncExamStudentResp resp = new SyncExamStudentResp();
+            return resp;
+        } finally {
+            SequenceLockHelper.releaseLockSimple(sequenceLockKey);
+        }
+    }
 
     @ApiOperation(value = "同步课程")
     @PostMapping("/syncCourse")
     public SyncCourseResp syncCourse(@RequestBody SyncCourseReq req) {
-    	Long courseId = req.getId();
-    	String courseLevel = req.getLevel();
-    	examStudentRepo.updateCourse(courseId, courseLevel);
-		examRecordDataRepo.updateCourse(courseId, courseLevel);
+        Long courseId = req.getId();
+        String courseLevel = req.getLevel();
+        examStudentRepo.updateCourse(courseId, courseLevel);
+        examRecordDataRepo.updateCourse(courseId, courseLevel);
         return null;
     }
 
     @ApiOperation(value = "同步学生")
     @PostMapping("/syncStudent")
     public SyncStudentResp syncStudent(@RequestBody SyncStudentReq req) {
-    	//考生表和考试记录表
-    	long studentId = req.getId();
-    	String studentName = req.getName();
-
-//		examStudentRepo.updateStudentNameAndStudentCode(studentId, studentName, studentCode);
-//    	examRecordRepo.updateStudentNameAndStudentCode(studentId, studentName, studentCode);
-		examStudentRepo.updateStudentName(studentId,studentName);
-		examRecordDataRepo.updateStudentName(studentId, studentName);
-		//如果有需要解绑的学号信息,需要对学号进行解绑
-		if (null != req.getUnboundStudentCodeList() && !req.getUnboundStudentCodeList().isEmpty()) {
-			examStudentRepo.updateExamStudentCode(req.getIdentityNumber(), req.getUnboundStudentCodeList());
-		}
-    	return null;
+        //考生表和考试记录表
+        long studentId = req.getId();
+        String studentName = req.getName();
+
+        //		examStudentRepo.updateStudentNameAndStudentCode(studentId, studentName, studentCode);
+        //    	examRecordRepo.updateStudentNameAndStudentCode(studentId, studentName, studentCode);
+        examStudentRepo.updateStudentName(studentId, studentName);
+        examRecordDataRepo.updateStudentName(studentId, studentName);
+        //如果有需要解绑的学号信息,需要对学号进行解绑
+        if (null != req.getUnboundStudentCodeList() && !req.getUnboundStudentCodeList().isEmpty()) {
+            examStudentRepo.updateExamStudentCode(req.getIdentityNumber(), req.getUnboundStudentCodeList());
+        }
+        return null;
     }
 
     @ApiOperation(value = "同步机构")
@@ -130,7 +116,7 @@ public class SyncCloudServiceProvider  extends ControllerSupport implements Hand
     public SyncOrgResp syncOrg(@RequestBody SyncOrgReq req) {
         return null;
     }
-    
+
     @ApiOperation(value = "同步专业")
     @PostMapping("syncSpecialty")
     public SyncSpecialtyResp syncSpecialty(@RequestBody SyncSpecialtyReq req) {
@@ -143,12 +129,11 @@ public class SyncCloudServiceProvider  extends ControllerSupport implements Hand
         return null;
     }
 
-	@Override
-	public SyncUserResp syncUser(SyncUserReq req) {
-		// TODO Auto-generated method stub
-		return null;
-	}
+    @Override
+    public SyncUserResp syncUser(SyncUserReq req) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 
-	
-	
 }

+ 27 - 7
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/SyncExamDataCloudServiceProvider.java

@@ -53,44 +53,64 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
 
     @Autowired
     private ExamRecordForMarkingService examRecordForMarkingService;
+
     @Autowired
     private ExamScorePushQueueService examScorePushQueueService;
+
     @Autowired
     private ExamScoreObtainQueueService examScoreObtainQueueService;
+
     @Autowired
     private ExamRecordDataRepo examRecordDataRepo;
+
     @Autowired
     private ExamStudentRepo examStudentRepo;
+
     @Autowired
     private ExamSyncCaptureRepo examSyncCaptureRepo;
+
     @Autowired
     private ExamCaptureRepo examCaptureRepo;
+
     @Autowired
     private ExamFaceLivenessVerifyRepo examFaceLivenessVerifyRepo;
+
     @Autowired
     private ExamRecordPaperStructRepo examRecordPaperStructRepo;
+
     @Autowired
     private ExamRecordQuestionsRepo examRecordQuestionsRepo;
+
     @Autowired
     private FaceBiopsyRepo faceBiopsyRepo;
+
     @Autowired
     private FaceBiopsyItemRepo faceBiopsyItemRepo;
+
     @Autowired
     private FaceBiopsyItemStepRepo faceBiopsyItemStepRepo;
+
     @Autowired
     private ExamAuditService examAuditService;
+
     @Autowired
     private ExamRecordDataSyncRepo examRecordDataSyncRepo;
+
     @Autowired
     private ExamScoreRepo examScoreRepo;
+
     @Autowired
     private ExamStudentCache examStudentCache;
+
     @Autowired
     private ExamStudentFinalScoreService examStudentFinalScoreService;
+
     @Autowired
     private ExamContinuedRecordRepo examContinuedRecordRepo;
+
     @Autowired
     private ExamProcessRecordRepo examProcessRecordRepo;
+
     @Autowired
     private RedisClient redisClient;
 
@@ -132,8 +152,8 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         Long realExamRecordDataId = syncExamRecordData(transitionExamRecordData);
 
         //header校验错误
-        Boolean hasWarn = redisClient.get("OE_SESSION_WARN_"+transitionExamRecordDataId, Boolean.class);
-        if(hasWarn !=null && hasWarn){
+        Boolean hasWarn = redisClient.get("OE_SESSION_WARN_" + transitionExamRecordDataId, Boolean.class);
+        if (hasWarn != null && hasWarn) {
             examAuditService.saveHeaderWarnAudit(realExamRecordDataId);
         }
 
@@ -173,8 +193,8 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
             syncExamSyncCapture(req.getExamSyncCapture(), realExamRecordDataId);
         } else {
             //且开启摄像头
-            if(FaceBiopsyHelper.isFaceEnable(transitionExamRecordData.getRootOrgId()
-                    , transitionExamRecordData.getExamId(), transitionExamRecordData.getStudentId())){
+            if (FaceBiopsyHelper.isFaceEnable(transitionExamRecordData.getRootOrgId()
+                    , transitionExamRecordData.getExamId(), transitionExamRecordData.getStudentId())) {
                 examAuditService.saveHeaderWarnAudit(realExamRecordDataId);
             }
         }
@@ -362,7 +382,7 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         result.setRootOrgId(examRecordData.getRootOrgId());
         result.setBasePaperId(examRecordData.getBasePaperId());
 
-//        result.setPaperStructId(examRecordData.getPaperStructId());
+        //        result.setPaperStructId(examRecordData.getPaperStructId());
         result.setPaperType(examRecordData.getPaperType());
 
         CourseCacheBean course = CacheHelper.getCourse(examRecordData.getCourseId());
@@ -685,7 +705,7 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         return entity;
     }
 
-    private ExamContinuedRecordEntity copyExamContinuedRecordFrom(ExamContinuedRecordBean bean,Long examRecordDataId){
+    private ExamContinuedRecordEntity copyExamContinuedRecordFrom(ExamContinuedRecordBean bean, Long examRecordDataId) {
         ExamContinuedRecordEntity entity = new ExamContinuedRecordEntity();
         entity.setExamRecordDataId(examRecordDataId);
         entity.setContinuedTime(bean.getContinuedTime());
@@ -695,7 +715,7 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         return entity;
     }
 
-    private ExamProcessRecordEntity copyExamProcessRecordFrom(ExamProcessRecordBean bean,Long examRecordDataId){
+    private ExamProcessRecordEntity copyExamProcessRecordFrom(ExamProcessRecordBean bean, Long examRecordDataId) {
         ExamProcessRecordEntity entity = new ExamProcessRecordEntity();
         entity.setExamRecordDataId(examRecordDataId);
         entity.setProcessName(bean.getProcessName());

+ 8 - 7
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/AsyncExportService.java

@@ -16,19 +16,20 @@ import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentQ
  */
 public interface AsyncExportService {
 
-    void exportExamRecordDetails(String jsonParams,User user);
+    void exportExamRecordDetails(String jsonParams, User user);
 
-    void exportExamScoreStatistics(String jsonParams,User user);
-    
-    void exportExamScheduling(String jsonParams,User user);
+    void exportExamScoreStatistics(String jsonParams, User user);
+
+    void exportExamScheduling(String jsonParams, User user);
 
     void exportExamAuditList(String query, User user);
 
-	void asyncExportExamScheduling(Long taskId, ExamStudentQuery req);
+    void asyncExportExamScheduling(Long taskId, ExamStudentQuery req);
 
-	void asyncExportExamRecordDetails(Long taskId, ExamRecordQuery req);
+    void asyncExportExamRecordDetails(Long taskId, ExamRecordQuery req);
 
-	void asyncExportExamScoreStatistics(Long taskId, ExamScoreQuery req);
+    void asyncExportExamScoreStatistics(Long taskId, ExamScoreQuery req);
 
     void asyncExportExamAuditList(Long taskId, ExamAuditQuery query);
+
 }

+ 5 - 6
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamAuditService.java

@@ -7,16 +7,14 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import java.util.List;
-
-import org.springframework.data.domain.Page;
-
+import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamAuditEntity;
-import cn.com.qmth.examcloud.core.oe.admin.dao.enums.DisciplineType;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditInfo;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.ExamAuditQuery;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit.RedoAuditInfo;
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
+import org.springframework.data.domain.Page;
+
+import java.util.List;
 
 /**
  * 考试记录审核相关接口
@@ -95,4 +93,5 @@ public interface ExamAuditService {
     void saveExamAuditByNoPhoto(Long examRecordDataId);
 
     void saveHeaderWarnAudit(Long realExamRecordDataId);
+
 }

+ 3 - 1
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamBossService.java

@@ -11,7 +11,6 @@ import cn.com.qmth.examcloud.support.examing.ExamBoss;
 public interface ExamBossService {
 
     /**
-     *
      * @param examStudentId
      * @param eb
      */
@@ -19,6 +18,7 @@ public interface ExamBossService {
 
     /**
      * 获取
+     *
      * @param examStudentId
      * @return
      */
@@ -26,7 +26,9 @@ public interface ExamBossService {
 
     /**
      * 删除
+     *
      * @param examStudentId
      */
     public void deleteExamBoss(Long examStudentId);
+
 }

+ 1 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamCaptureService.java

@@ -38,6 +38,7 @@ public interface ExamCaptureService {
 
     /**
      * 获取虚拟摄像头名称
+     *
      * @param examRecordDataId
      * @return
      */

+ 1 - 4
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordDataCacheService.java

@@ -1,9 +1,5 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import cn.com.qmth.examcloud.core.basic.api.bean.CourseBean;
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentBean;
-import cn.com.qmth.examcloud.examwork.api.bean.ExamBean;
 import cn.com.qmth.examcloud.support.examing.ExamRecordData;
 
 /**
@@ -13,6 +9,7 @@ import cn.com.qmth.examcloud.support.examing.ExamRecordData;
  * @Version 1.0
  */
 public interface ExamRecordDataCacheService {
+
     /**
      * 保存考试记录
      *

+ 2 - 2
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordDataService.java

@@ -28,8 +28,8 @@ public interface ExamRecordDataService {
                                                      String basePaperId,
                                                      String paperStructId, Boolean fullyObjective);
 
-	Long getGetAwaitingAuditCount(Long rootOrgId, Long examId);
+    Long getGetAwaitingAuditCount(Long rootOrgId, Long examId);
 
-	CheckPaperInExamResp checkPaperInExam(CheckPaperInExamReq req);
+    CheckPaperInExamResp checkPaperInExam(CheckPaperInExamReq req);
 
 }

+ 45 - 42
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordForMarkingService.java

@@ -1,58 +1,61 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import java.util.List;
-
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordForMarkingEntity;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord.ExamRecordDataBean;
 
+import java.util.List;
+
 /**
- *
- * @author  	chenken
- * @date    	2018年9月17日 下午3:57:58
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年9月17日 下午3:57:58
+ * @company QMTH
  * @description ExamRecordForMarkingService.java
  */
 public interface ExamRecordForMarkingService {
 
-	/**
-	 * 获取 有效考试记录
-	 */
-	List<ExamRecordForMarkingEntity> queryValidExamRecordList(Long examId, Long courseId);
-
-	/**
-	 * 根据条件查询阅卷需要的信息
-	 * @param id
-	 * @param examId
-	 * @param courseId
-	 * @param batchNum
-	 * @return
-	 */
-	List<ExamRecordForMarkingEntity> findExamRecordForMarkingInfo(Long id, Long examId, Long courseId,String batchNum);
-
-	List<ExamRecordForMarkingEntity> queryValidExamRecordInfoByStuIds(Long examId, Long courseId,
-			List<Long> examStudentIds,String batchNum);
-
-	/**
+    /**
+     * 获取 有效考试记录
+     */
+    List<ExamRecordForMarkingEntity> queryValidExamRecordList(Long examId, Long courseId);
+
+    /**
+     * 根据条件查询阅卷需要的信息
+     *
+     * @param id
+     * @param examId
+     * @param courseId
+     * @param batchNum
+     * @return
+     */
+    List<ExamRecordForMarkingEntity> findExamRecordForMarkingInfo(Long id, Long examId, Long courseId, String batchNum);
+
+    List<ExamRecordForMarkingEntity> queryValidExamRecordInfoByStuIds(Long examId, Long courseId,
+                                                                      List<Long> examStudentIds, String batchNum);
+
+    /**
      * 离线考试-保存阅卷相关数据-对内
+     *
      * @param examRecordData
      * @param fileName
      * @param fileUrl
      */
-	void saveOffLineExamRecordForMarking(ExamRecordDataBean examRecordData, String fileName, String fileUrl);
-
-	void saveOffLineExamRecordForMarking(ExamRecordDataBean examRecordData);
-
-	/**
-	 * 在线考试-保存阅卷相关数据-对内
-	 * @param examRecordDataId
-	 */
-	void saveExamRecordForMarking(Long examRecordDataId,Double objectiveScore);
-
-	/**
-	 * 获取某个考生的有效考试记录
-	 * @param examStudentId 考生id集合
-	 * @return
-	 */
-	List<ExamRecordForMarkingEntity> queryValidExamRecordList(Long examStudentId);
+    void saveOffLineExamRecordForMarking(ExamRecordDataBean examRecordData, String fileName, String fileUrl);
+
+    void saveOffLineExamRecordForMarking(ExamRecordDataBean examRecordData);
+
+    /**
+     * 在线考试-保存阅卷相关数据-对内
+     *
+     * @param examRecordDataId
+     */
+    void saveExamRecordForMarking(Long examRecordDataId, Double objectiveScore);
+
+    /**
+     * 获取某个考生的有效考试记录
+     *
+     * @param examStudentId 考生id集合
+     * @return
+     */
+    List<ExamRecordForMarkingEntity> queryValidExamRecordList(Long examStudentId);
+
 }

+ 8 - 7
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordPaperStructService.java

@@ -4,11 +4,12 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordPaperStructEntit
 
 public interface ExamRecordPaperStructService {
 
-	/**
-	 * 根据examRecordDataId查询考试记录试卷结构
-	 * @param examRecordDataId
-	 * @return
-	 */
-	public ExamRecordPaperStructEntity getExamRecordPaperStruct(Long examRecordDataId);
-	
+    /**
+     * 根据examRecordDataId查询考试记录试卷结构
+     *
+     * @param examRecordDataId
+     * @return
+     */
+    public ExamRecordPaperStructEntity getExamRecordPaperStruct(Long examRecordDataId);
+
 }

+ 48 - 43
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordQuestionsService.java

@@ -1,55 +1,60 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import java.util.List;
-
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamQuestionEntity;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordQuestionsEntity;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.ExamStudentQuestionInfo;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.SubjectiveQuestionScoreInfo;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
 
+import java.util.List;
+
 public interface ExamRecordQuestionsService {
 
-	/**
-	 * 获取考生主观题答案
-	 * @param examRecordDataId	考试记录ID
-	 * @return
-	 */
-	List<ExamQuestionEntity> querySubjectiveAnswerList(Long examRecordDataId);
-	
-	/**
-	 * 保存主观题得分
-	 * @param subjectiveQuestionScoreInfoList
-	 */
-	void saveSubjectiveQuestionScore(Long examRecordDataId, List<SubjectiveQuestionScoreInfo> subjectiveQuestionScoreInfoList);
-
-	/**
-	 * 计算主观题作答总长度
-	 * @param examRecordDataId
-	 * @return
-	 */
-	Integer calculationSubjectiveAnswerLength(Long examRecordDataId);
-
-	/**
-	 * 初始化ExamQuestion
-	 * @param examRecordDataId
-	 * @param paperStructByReorder
-	 */
-	ExamRecordQuestionsEntity createExamRecordQuestions(Long examRecordDataId, DefaultPaper paperStructByReorder);
-
-	/**
-	 * 获取考试作答记录并修复考试记录表的数据(如有必要)
-	 * @param examRecordData 考试记录
-	 * @return
-	 */
-	ExamRecordQuestionsEntity getExamRecordQuestionsAndFixExamRecordDataIfNecessary(ExamRecordDataEntity examRecordData);
-
-	/**
-	 *  获取考试作答记录并修复考试记录表的数据(如有必要)
-	 * @param examRecordDataId 考试记录id
-	 * @return
-	 */
-	ExamRecordQuestionsEntity getExamRecordQuestionsAndFixExamRecordDataIfNecessary(Long examRecordDataId);
+    /**
+     * 获取考生主观题答案
+     *
+     * @param examRecordDataId 考试记录ID
+     * @return
+     */
+    List<ExamQuestionEntity> querySubjectiveAnswerList(Long examRecordDataId);
+
+    /**
+     * 保存主观题得分
+     *
+     * @param subjectiveQuestionScoreInfoList
+     */
+    void saveSubjectiveQuestionScore(Long examRecordDataId, List<SubjectiveQuestionScoreInfo> subjectiveQuestionScoreInfoList);
+
+    /**
+     * 计算主观题作答总长度
+     *
+     * @param examRecordDataId
+     * @return
+     */
+    Integer calculationSubjectiveAnswerLength(Long examRecordDataId);
+
+    /**
+     * 初始化ExamQuestion
+     *
+     * @param examRecordDataId
+     * @param paperStructByReorder
+     */
+    ExamRecordQuestionsEntity createExamRecordQuestions(Long examRecordDataId, DefaultPaper paperStructByReorder);
+
+    /**
+     * 获取考试作答记录并修复考试记录表的数据(如有必要)
+     *
+     * @param examRecordData 考试记录
+     * @return
+     */
+    ExamRecordQuestionsEntity getExamRecordQuestionsAndFixExamRecordDataIfNecessary(ExamRecordDataEntity examRecordData);
+
+    /**
+     * 获取考试作答记录并修复考试记录表的数据(如有必要)
+     *
+     * @param examRecordDataId 考试记录id
+     * @return
+     */
+    ExamRecordQuestionsEntity getExamRecordQuestionsAndFixExamRecordDataIfNecessary(Long examRecordDataId);
 
 }

+ 32 - 28
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamRecordService.java

@@ -12,7 +12,6 @@ import cn.com.qmth.examcloud.core.oe.admin.service.bean.ExamStudentEffectiveScor
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord.ExamRecordInfo;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord.ExamRecordQuery;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord.ExamStudentQuestionScoreInfo;
-
 import org.springframework.data.domain.Page;
 
 import java.util.List;
@@ -57,15 +56,15 @@ public interface ExamRecordService {
      */
     List<ExamRecordInfo> getExamRecordWaitingAudit(ExamRecordQuery query);
 
-	/**
-	 * Description 查询“监考待审”下一条记录
-	 *
-	 * @param query
-	 * @param examRecordDataId
-	 * @param next
-	 * @return java.lang.Long
-	 */
-	Long getExamRecordWaitingAuditNextId(ExamRecordQuery query, Long examRecordDataId, String next);
+    /**
+     * Description 查询“监考待审”下一条记录
+     *
+     * @param query
+     * @param examRecordDataId
+     * @param next
+     * @return java.lang.Long
+     */
+    Long getExamRecordWaitingAuditNextId(ExamRecordQuery query, Long examRecordDataId, String next);
 
     /**
      * 获取正在考试的考生ID列表
@@ -85,35 +84,40 @@ public interface ExamRecordService {
 
     /**
      * 查询“考试明细” 是否存在待审数据
+     *
      * @param query
      * @return
      */
-	Long existsWarnExamRecordDetail(ExamRecordQuery query);
-	
-	/**
-	 * 根据条件查询 “考试明细”
-	 * @param newQuery
-	 * @return
-	 */
-	List<ExamRecordInfo> getExamRecordDetailList(ExamRecordQuery newQuery);
-
-	/**
-	 * 根据考试id和课程代码获取学生作答成绩
-	 * @param examId
-	 * @param courseCode
-	 * @return
-	 */
-	List<ExamStudentQuestionScoreInfo> getExamStudentQuestionScoreList(Long examId, String courseCode);
+    Long existsWarnExamRecordDetail(ExamRecordQuery query);
+
+    /**
+     * 根据条件查询 “考试明细”
+     *
+     * @param newQuery
+     * @return
+     */
+    List<ExamRecordInfo> getExamRecordDetailList(ExamRecordQuery newQuery);
+
+    /**
+     * 根据考试id和课程代码获取学生作答成绩
+     *
+     * @param examId
+     * @param courseCode
+     * @return
+     */
+    List<ExamStudentQuestionScoreInfo> getExamStudentQuestionScoreList(Long examId, String courseCode);
 
     /**
      * 获取考生的最终有效成绩
+     *
      * @param markingType
      * @param examStudentIdList
      * @return
      */
     List<ExamStudentEffectiveScoreInfo> getExamStudentEffectiveScoreList(String markingType, List<Long> examStudentIdList);
 
-	List<ExamRecordInfo> getExamRecordDetailListForAsync(ExamRecordQuery query);
+    List<ExamRecordInfo> getExamRecordDetailListForAsync(ExamRecordQuery query);
+
+    void refreshCaptureStatistic(Long examId);
 
-	void refreshCaptureStatistic(Long examId);
 }

+ 15 - 14
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScoreNoticeQueueService.java

@@ -1,24 +1,25 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamScoreNoticeQueueEntity;
-
 /**
- * 
  * @author lideyin
  * @date 2019年3月11日 下午1:42:04
  * @description 发送成绩短信队列服务接口
  */
 public interface ExamScoreNoticeQueueService {
 
-	/**
-	 * 添加成绩通知队列
-	 * @param rootOrgId 顶级组织机构id
-	 */
-	public void addExamScoreNoticeQueue(Long rootOrgId);
-	/**
-	 * 当前机构是否存在通知队列
-	 * @param rootOrgId 顶级组织机构id
-	 * @return
-	 */
-	public boolean isExistExamScoreNoticeQueue(Long rootOrgId);
+    /**
+     * 添加成绩通知队列
+     *
+     * @param rootOrgId 顶级组织机构id
+     */
+    public void addExamScoreNoticeQueue(Long rootOrgId);
+
+    /**
+     * 当前机构是否存在通知队列
+     *
+     * @param rootOrgId 顶级组织机构id
+     * @return
+     */
+    public boolean isExistExamScoreNoticeQueue(Long rootOrgId);
+
 }

+ 24 - 24
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScoreObtainQueueService.java

@@ -1,35 +1,35 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import javax.validation.constraints.NotNull;
-
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.NotifyUrlInfo;
 
+import javax.validation.constraints.NotNull;
+
 /**
- * 
- * @author  	chenken
- * @date    	2018年11月27日 下午2:21:40
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年11月27日 下午2:21:40
+ * @company QMTH
  * @description 成绩获取队列接口
  */
 public interface ExamScoreObtainQueueService {
 
-	/**
-	 * 保存获取成绩队列,并发送通知
-	 * @param examRecordDataId
-	 */
-	void saveExamScoreObtainQueue(Long examRecordDataId);
-	
-	/**
-	 * 发送获取分数通知
-	 */
-	void sendObtainScoreNotify(Long rootOrgId);
+    /**
+     * 保存获取成绩队列,并发送通知
+     *
+     * @param examRecordDataId
+     */
+    void saveExamScoreObtainQueue(Long examRecordDataId);
+
+    /**
+     * 发送获取分数通知
+     */
+    void sendObtainScoreNotify(Long rootOrgId);
+
+    /**
+     * 根据组织机构id获取通知路径相关信息
+     *
+     * @param rootOrgId 组织机构id
+     * @return
+     */
+    @NotNull NotifyUrlInfo getNotifyUrlInfo(Long rootOrgId);
 
-	/**
-	 * 根据组织机构id获取通知路径相关信息
-	 * @param rootOrgId 组织机构id
-	 * @return
-	 */
-	@NotNull NotifyUrlInfo getNotifyUrlInfo(Long rootOrgId);
-	
 }

+ 11 - 16
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScorePushQueueService.java

@@ -1,23 +1,18 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamRecordDataEntity;
-
-
-
-
 /**
- * 
- * @author  	chenken
- * @date    	2018年9月8日 上午10:45:36
- * @company 	QMTH
- * @description 分数推送队列服务接口 
+ * @author chenken
+ * @date 2018年9月8日 上午10:45:36
+ * @company QMTH
+ * @description 分数推送队列服务接口
  */
 public interface ExamScorePushQueueService {
 
-	/**
-	 * 保存分数推送数据
-	 * @param examRecordDataId
-	 */
-	void saveScoreDataInfoToQueue(Long examRecordDataId,Long examScoreId);
-	
+    /**
+     * 保存分数推送数据
+     *
+     * @param examRecordDataId
+     */
+    void saveScoreDataInfoToQueue(Long examRecordDataId, Long examScoreId);
+
 }

+ 11 - 12
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScorePushService.java

@@ -3,21 +3,20 @@ package cn.com.qmth.examcloud.core.oe.admin.service;
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamScorePushQueue;
 
 
-
 /**
- * 
- * @author  	chenken
- * @date    	2018年9月8日 上午11:16:50
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年9月8日 上午11:16:50
+ * @company QMTH
  * @description 推送分数接口
  */
 public interface ExamScorePushService {
 
-	/**
-	 * 机构推送成绩逻辑
-	 * @param examScorePushQueue
-	 * @throws Exception
-	 */
-	public void scorePush(ExamScorePushQueue examScorePushQueue);
-	
+    /**
+     * 机构推送成绩逻辑
+     *
+     * @param examScorePushQueue
+     * @throws Exception
+     */
+    public void scorePush(ExamScorePushQueue examScorePushQueue);
+
 }

+ 16 - 19
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScoreQueueService.java

@@ -4,26 +4,23 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamScorePushQueue;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.ExamScoreQueueStatus;
 
 
-
-
 /**
- * 
- * @author  	chenken
- * @date    	2018年9月8日 上午10:45:36
- * @company 	QMTH
- * @description 分数推送队列服务接口 
+ * @author chenken
+ * @date 2018年9月8日 上午10:45:36
+ * @company QMTH
+ * @description 分数推送队列服务接口
  */
 public interface ExamScoreQueueService {
-	
-	/**
-	 * 处理推分队列
-	 */
-	public void disposeScoreQueue();
-	
-	/**
-	 * 
-	 * @param errorMsg
-	 * @param examScorePushQueue
-	 */
-	public void saveExamScorePushQueue(String returnMsg,ExamScorePushQueue examScorePushQueue,ExamScoreQueueStatus examScoreQueueStatus);
+
+    /**
+     * 处理推分队列
+     */
+    public void disposeScoreQueue();
+
+    /**
+     * @param errorMsg
+     * @param examScorePushQueue
+     */
+    public void saveExamScorePushQueue(String returnMsg, ExamScorePushQueue examScorePushQueue, ExamScoreQueueStatus examScoreQueueStatus);
+
 }

+ 13 - 10
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamScoreService.java

@@ -7,14 +7,13 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import java.util.List;
-
-import org.springframework.data.domain.Page;
-
 import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamScoreEntity;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examscore.ExamScoreInfo;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examscore.ExamScoreQuery;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.examscore.ObjectiveScoreInfo;
+import org.springframework.data.domain.Page;
+
+import java.util.List;
 
 /**
  * 考试分数相关接口
@@ -30,27 +29,31 @@ public interface ExamScoreService {
 
     /**
      * 获取所有的考试分数集合
-     * @param examId 考试id
+     *
+     * @param examId         考试id
      * @param identityNumber 身份证号
-     * @param courseId 课程代码
+     * @param courseId       课程代码
      * @return ExamScoreEntity
      */
     List<ExamScoreEntity> getAllExamScoreList(Long examId, String identityNumber, Long courseId);
 
     /**
      * 离线考试初始化得分
+     *
      * @param examRecordDataId
      */
     public void createExamScoreWithOffline(Long examRecordDataId);
-    
-    
+
+
     /**
-     * 使用考生ID查询客观分信息 
+     * 使用考生ID查询客观分信息
      * 客观分是指考生完成过一次考试后,有效的客观分,
      * 如此条考试记录需要监考审核则显示为"待审",客观分显示时,展示次数(第几次考试)、开始时间、交卷时间,客观分;
+     *
      * @return
      */
     public List<ObjectiveScoreInfo> queryObjectiveScoreList(Long examStudentId);
 
-	List<ExamScoreInfo> exportExamScoreListForAsync(ExamScoreQuery query);
+    List<ExamScoreInfo> exportExamScoreListForAsync(ExamScoreQuery query);
+
 }

+ 2 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamStudentFinalScoreService.java

@@ -9,7 +9,9 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamStudentFinalScoreEntit
  * @Version 1.0
  */
 public interface ExamStudentFinalScoreService {
+
     ExamStudentFinalScoreEntity calcAndSaveFinalScore(Long examStudentId);
 
     ExamStudentFinalScoreEntity getFinalEffectiveExamScore(Long examStudentId);
+
 }

+ 9 - 13
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExamStudentService.java

@@ -7,18 +7,12 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import java.util.List;
-
 import cn.com.qmth.examcloud.api.commons.enums.ExamType;
+import cn.com.qmth.examcloud.core.oe.admin.service.bean.OnHandExamInfo;
+import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.*;
 import org.springframework.data.domain.Page;
 
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.OnHandExamInfo;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.CourseProgressInfo;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentFinishedStatistic;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentInfo;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentOrgStatistic;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentPartInfo;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentQuery;
+import java.util.List;
 
 /**
  * 考生信息接口
@@ -77,7 +71,7 @@ public interface ExamStudentService {
      * @param examId
      * @return
      */
-    ExamStudentFinishedStatistic getExamStudentStatisticByFinished(Long examId,Long examStageId);
+    ExamStudentFinishedStatistic getExamStudentStatisticByFinished(Long examId, Long examStageId);
 
     /**
      * 考试概况-按学习中心统计
@@ -87,7 +81,7 @@ public interface ExamStudentService {
      * @param examStageId
      * @return
      */
-    List<ExamStudentOrgStatistic> getExamStudentStatisticByOrg(Long examId,Long examStageId, Long orgId);
+    List<ExamStudentOrgStatistic> getExamStudentStatisticByOrg(Long examId, Long examStageId, Long orgId);
 
     /**
      * 获取考生信息
@@ -99,6 +93,7 @@ public interface ExamStudentService {
 
     /**
      * 判断考生是否启用
+     *
      * @param examStudentId
      * @return
      */
@@ -111,7 +106,7 @@ public interface ExamStudentService {
      * @param orgId
      * @return
      */
-    List<Long> findCoursesFromExamStudent(Long examId,Long examStageId, Long orgId);
+    List<Long> findCoursesFromExamStudent(Long examId, Long examStageId, Long orgId);
 
     /**
      * 设置重考
@@ -128,7 +123,7 @@ public interface ExamStudentService {
      * @param examId
      * @param courseId
      */
-    public List<CourseProgressInfo> queryCourseProgressInfos(Long examId,Long examStageId, Long courseId, String orderColumn);
+    public List<CourseProgressInfo> queryCourseProgressInfos(Long examId, Long examStageId, Long courseId, String orderColumn);
 
     /**
      * @return java.util.List<cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent.ExamStudentInfo>
@@ -151,4 +146,5 @@ public interface ExamStudentService {
     List<ExamStudentInfo> getExamStudentInfoListForAsync(ExamStudentQuery query);
 
     List<OnHandExamInfo> queryOnlineExamEndList(Long userId, ExamType online);
+
 }

+ 5 - 5
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/ExportTaskService.java

@@ -28,14 +28,14 @@ public interface ExportTaskService {
 
     boolean existUnFinishTask(ExportTaskType type, Long rootOrgId, Long examId);
 
-    Page<ExportTaskListResp> getExportTaskList(ExportTaskListReq req,Long userId);
+    Page<ExportTaskListResp> getExportTaskList(ExportTaskListReq req, Long userId);
 
-	ExportTaskEntity findExportTaskToDispose();
+    ExportTaskEntity findExportTaskToDispose();
 
-	void updateExportTaskStatus(Long taskId, ExportTaskStatus status);
+    void updateExportTaskStatus(Long taskId, ExportTaskStatus status);
 
-	void startExportTask(Long taskId);
+    void startExportTask(Long taskId);
 
-	void endExportTask(Long taskId);
+    void endExportTask(Long taskId);
 
 }

+ 48 - 46
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/GainBaseDataService.java

@@ -1,59 +1,61 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
 import cn.com.qmth.examcloud.core.basic.api.bean.CourseBean;
-import cn.com.qmth.examcloud.core.basic.api.bean.OrgBean;
 import cn.com.qmth.examcloud.core.basic.api.bean.StudentBean;
-import cn.com.qmth.examcloud.examwork.api.bean.ExamBean;
 import cn.com.qmth.examcloud.examwork.api.bean.ExamStudentBean;
 import cn.com.qmth.examcloud.support.cache.bean.OrgCacheBean;
 
 /**
- * 
- * @author  	chenken
- * @date    	2018年10月17日 下午2:28:30
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年10月17日 下午2:28:30
+ * @company QMTH
  * @description 获取基础数据接口
  */
 public interface GainBaseDataService {
 
-	/**
-	 * 获取课程 
-	 * @param courseId
-	 * @param rootOrgId
-	 * @return
-	 */
-	public CourseBean getCourseBean(Long courseId,Long rootOrgId);
-
-	CourseBean getCourseBean(String courseCode, Long rootOrgId);
-
-	/**
-	 * 获取机构
-	 * @param orgId
-	 * @return
-	 */
-	public OrgCacheBean getOrgBean(Long orgId);
-
-	/**
-	 * 获取学生
-	 * @param studentId
-	 * @return
-	 */
-	public StudentBean getStudentBean(Long studentId);
-
-	StudentBean getStudentBean(String studentCode,Long rootOrgId);
-
-	/**
-	 * 获取考生
-	 * @param examStudentId
-	 * @return
-	 */
-	public ExamStudentBean getExamStudentBean(Long examStudentId);
-	
-	/**
-	 * 获取系统设置
-	 * @param key
-	 * @return
-	 */
-	public String getSysConfig(String key);
-	
+    /**
+     * 获取课程
+     *
+     * @param courseId
+     * @param rootOrgId
+     * @return
+     */
+    public CourseBean getCourseBean(Long courseId, Long rootOrgId);
+
+    CourseBean getCourseBean(String courseCode, Long rootOrgId);
+
+    /**
+     * 获取机构
+     *
+     * @param orgId
+     * @return
+     */
+    public OrgCacheBean getOrgBean(Long orgId);
+
+    /**
+     * 获取学生
+     *
+     * @param studentId
+     * @return
+     */
+    public StudentBean getStudentBean(Long studentId);
+
+    StudentBean getStudentBean(String studentCode, Long rootOrgId);
+
+    /**
+     * 获取考生
+     *
+     * @param examStudentId
+     * @return
+     */
+    public ExamStudentBean getExamStudentBean(Long examStudentId);
+
+    /**
+     * 获取系统设置
+     *
+     * @param key
+     * @return
+     */
+    public String getSysConfig(String key);
+
 }

+ 17 - 17
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/IllegallyTypeService.java

@@ -20,22 +20,22 @@ public interface IllegallyTypeService {
     List<IllegallyTypeEntity> getSystemIllegallyTypes();
 
     /**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param info
-	 * @return
-	 */
-	IllegallyTypeEntity saveIllegallyType(IllegallyTypeInfo info);
-
-	/**
-	 * 导入专业
-	 *
-	 * @author WANGWEI
-	 * @param rootOrgId
-	 * @param file
-	 * @return
-	 */
-	List<Map<String, Object>> importIllegallyType(Long rootOrgId, File file);
+     * 方法注释
+     *
+     * @param info
+     * @return
+     * @author WANGWEI
+     */
+    IllegallyTypeEntity saveIllegallyType(IllegallyTypeInfo info);
+
+    /**
+     * 导入专业
+     *
+     * @param rootOrgId
+     * @param file
+     * @return
+     * @author WANGWEI
+     */
+    List<Map<String, Object>> importIllegallyType(Long rootOrgId, File file);
 
 }

+ 19 - 17
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/LocalCacheService.java

@@ -1,27 +1,29 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import java.util.Map;
-
-import cn.com.qmth.examcloud.core.basic.api.bean.CourseBean;
-import cn.com.qmth.examcloud.core.basic.api.bean.OrgBean;
 import cn.com.qmth.examcloud.examwork.api.bean.ExamStudentBean;
 
+import java.util.Map;
+
 /**
  * 本地缓存服务
- * @author chenken
  *
+ * @author chenken
  */
 public interface LocalCacheService {
-	/**
-	 * 获取学生电话
-	 * @param studentId
-	 * @return
-	 */
-	public String getStudentPhotoNumber(Map<String, Object> cahcheMap, Long studentId);
-	
-	/**
-	 * 获取考生
-	 * @return
-	 */
-	public ExamStudentBean getExamStudentBean(Map<String, Object> cahcheMap,Long examStudentId);
+
+    /**
+     * 获取学生电话
+     *
+     * @param studentId
+     * @return
+     */
+    public String getStudentPhotoNumber(Map<String, Object> cahcheMap, Long studentId);
+
+    /**
+     * 获取考生
+     *
+     * @return
+     */
+    public ExamStudentBean getExamStudentBean(Map<String, Object> cahcheMap, Long examStudentId);
+
 }

+ 40 - 37
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/OfflineExamService.java

@@ -1,50 +1,53 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
+import cn.com.qmth.examcloud.core.oe.admin.service.bean.OfflineExamCourseInfo;
+
 import java.io.File;
 import java.util.List;
 
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.OfflineExamCourseInfo;
-
 
 /**
- *
- * @author  	chenken
- * @date    	2018年9月5日 上午10:35:18
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年9月5日 上午10:35:18
+ * @company QMTH
  * @description 离线考试服务接口
  */
 public interface OfflineExamService {
 
-	/**
-	 * 获取待考课程列表
-	 * @param studentId
-	 * @return
-	 */
-	List<OfflineExamCourseInfo> getOfflineCourse(Long studentId);
-
-	/**
-	 * 开始离线考试
-	 * @param token
-	 * @param examStudentId
-	 * @param studentId
-	 * @return
-	 */
-	void startOfflineExam(Long examStudentId);
-
-	/**
-	 * 上传作答
-	 * @param examRecordDataId
-	 * @param tempFile
-	 * @param fileType
-	 */
-	void submitPaper(Long examRecordDataId, File tempFile,String fileType)  throws Exception;
-
-	/**
-	 * 上传作答
-	 * @param examRecordDataId 考试记录id
-	 * @param tempFiles 文件集合
-	 * @param fileType 文件类型
-	 */
-	void batchSubmitPaper(Long examRecordDataId,List<File> tempFiles,String fileType)  throws Exception;
+    /**
+     * 获取待考课程列表
+     *
+     * @param studentId
+     * @return
+     */
+    List<OfflineExamCourseInfo> getOfflineCourse(Long studentId);
+
+    /**
+     * 开始离线考试
+     *
+     * @param token
+     * @param examStudentId
+     * @param studentId
+     * @return
+     */
+    void startOfflineExam(Long examStudentId);
+
+    /**
+     * 上传作答
+     *
+     * @param examRecordDataId
+     * @param tempFile
+     * @param fileType
+     */
+    void submitPaper(Long examRecordDataId, File tempFile, String fileType) throws Exception;
+
+    /**
+     * 上传作答
+     *
+     * @param examRecordDataId 考试记录id
+     * @param tempFiles        文件集合
+     * @param fileType         文件类型
+     */
+    void batchSubmitPaper(Long examRecordDataId, List<File> tempFiles, String fileType) throws Exception;
 
 }

+ 28 - 26
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/PracticeService.java

@@ -1,39 +1,41 @@
 package cn.com.qmth.examcloud.core.oe.admin.service;
 
-import java.util.List;
-
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.PracticeCourseInfo;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.PracticeDetailInfo;
 import cn.com.qmth.examcloud.core.oe.admin.service.bean.PracticeRecordInfo;
 
+import java.util.List;
+
 /**
- * 
- * @author  	chenken
- * @date    	2018年9月7日 上午11:04:59
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年9月7日 上午11:04:59
+ * @company QMTH
  * @description PracticeService.java
  */
 public interface PracticeService {
 
-	/**
-	 * 练习课程列表
-	 * @param examId
-	 * @param studentId
-	 * @return
-	 */
-	List<PracticeCourseInfo> queryPracticeCourseList(Long examId, Long studentId);
-	
-	/**
-	 * 课程练习记录详情
-	 * @param examStudentId
-	 * @return
-	 */
-	List<PracticeRecordInfo> queryPracticeRecordList(Long examStudentId);
-	
-	/**
-	 * 单次练习答题情况统计
-	 * @return
-	 */
-	PracticeDetailInfo getPracticeDetailInfo(Long examRecordDataId);
+    /**
+     * 练习课程列表
+     *
+     * @param examId
+     * @param studentId
+     * @return
+     */
+    List<PracticeCourseInfo> queryPracticeCourseList(Long examId, Long studentId);
+
+    /**
+     * 课程练习记录详情
+     *
+     * @param examStudentId
+     * @return
+     */
+    List<PracticeRecordInfo> queryPracticeRecordList(Long examStudentId);
+
+    /**
+     * 单次练习答题情况统计
+     *
+     * @return
+     */
+    PracticeDetailInfo getPracticeDetailInfo(Long examRecordDataId);
 
 }

+ 2 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/ExamProcessRecordInfo.java

@@ -9,6 +9,7 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
  * @Version 1.0
  */
 public class ExamProcessRecordInfo implements JsonSerializable {
+
     private static final long serialVersionUID = 5667104330981650606L;
 
     /**
@@ -75,4 +76,5 @@ public class ExamProcessRecordInfo implements JsonSerializable {
     public void setSourceIp(String sourceIp) {
         this.sourceIp = sourceIp;
     }
+
 }

+ 25 - 10
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/ExamRecordQuestionsInfo.java

@@ -8,13 +8,13 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean;
 
 
+import cn.com.qmth.examcloud.core.oe.admin.base.utils.NewQuestionType;
+
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import cn.com.qmth.examcloud.core.oe.admin.base.utils.NewQuestionType;
-
 /**
  * 考试作答试题集合
  *
@@ -22,10 +22,15 @@ import cn.com.qmth.examcloud.core.oe.admin.base.utils.NewQuestionType;
  * @since: 2018/9/11
  */
 public class ExamRecordQuestionsInfo implements Serializable {
+
     private static final long serialVersionUID = -1688201571728312142L;
+
     private String id;
+
     private Long examRecordDataId;
+
     private Date creationTime;
+
     private List<ExamQuestionEntity> examQuestionEntities;
 
     public void addExamQuestion(ExamQuestionEntity examQuestion) {
@@ -72,47 +77,57 @@ public class ExamRecordQuestionsInfo implements Serializable {
     }
 
     public static class ExamQuestionEntity {
+
         /**
          * 大题号
          */
         private Integer mainNumber;
+
         /**
          * 原题ID
          */
         private String questionId;
+
         /**
          * 顺序
          */
         private Integer order;
+
         /**
          * 小题分数
          */
         private Float questionScore;
+
         /**
          * 小题类型
          */
         private NewQuestionType questionType;
+
         /**
          * 标准答案
          */
         private String correctAnswer;
+
         /**
          * 考生作答
          */
         private String studentAnswer;
+
         /**
          * 学生小题得分
          */
         private Float studentScore;
+
         /**
          * 是否作答
          */
         private Boolean isAnswer;
+
         /**
          * 是否标记
          */
         private Boolean isSign;
-        
+
         private Integer[] optionPermutation;
 
         public Integer getMainNumber() {
@@ -195,14 +210,14 @@ public class ExamRecordQuestionsInfo implements Serializable {
             this.isSign = sign;
         }
 
-		public Integer[] getOptionPermutation() {
-			return optionPermutation;
-		}
+        public Integer[] getOptionPermutation() {
+            return optionPermutation;
+        }
+
+        public void setOptionPermutation(Integer[] optionPermutation) {
+            this.optionPermutation = optionPermutation;
+        }
 
-		public void setOptionPermutation(Integer[] optionPermutation) {
-			this.optionPermutation = optionPermutation;
-		}
-        
     }
 
 }

+ 4 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/ExamStudentEffectiveScoreInfo.java

@@ -16,7 +16,9 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
  * @Version 1.0
  */
 public class ExamStudentEffectiveScoreInfo implements JsonSerializable {
+
     private static final long serialVersionUID = -8096091096954899775L;
+
     private Long examStudentId;
 
     private Long rootOrgId;
@@ -38,6 +40,7 @@ public class ExamStudentEffectiveScoreInfo implements JsonSerializable {
      * 试卷得分
      */
     private Double score;
+
     /**
      * 考试记录id
      */
@@ -114,4 +117,5 @@ public class ExamStudentEffectiveScoreInfo implements JsonSerializable {
     public void setExamRecordDataId(Long examRecordDataId) {
         this.examRecordDataId = examRecordDataId;
     }
+
 }

+ 76 - 76
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/ExamStudentQuestionInfo.java

@@ -7,82 +7,82 @@ import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
 
 /**
- * 
- * @author  	chenken
- * @date    	2018年9月25日 上午9:43:19
- * @company 	QMTH
- * @description 考生作答信息 
+ * @author chenken
+ * @date 2018年9月25日 上午9:43:19
+ * @company QMTH
+ * @description 考生作答信息
  */
 public class ExamStudentQuestionInfo implements JsonSerializable {
-	
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 8080615797817377990L;
-
-	/**
-	 * 题目序号
-	 */
-	private Integer order;
-	
-	/**
-	 * 是否标记
-	 */
-	private Boolean isSign;
-	
-	/**
-	 * 考生作答
-	 */
-	private String studentAnswer;
-	
-	/**
-	 * 音频播放次数
-	 */
-	private String audioPlayTimes;
-	/**
-	 * 题目作答类型
-	 */
-	@Enumerated(EnumType.STRING)
-	private AnswerType answerType;
-
-	public Integer getOrder() {
-		return order;
-	}
-
-	public void setOrder(Integer order) {
-		this.order = order;
-	}
-
-	public String getStudentAnswer() {
-		return studentAnswer;
-	}
-
-	public void setStudentAnswer(String studentAnswer) {
-		this.studentAnswer = studentAnswer;
-	}
-
-	public Boolean getIsSign() {
-		return isSign;
-	}
-
-	public void setIsSign(Boolean isSign) {
-		this.isSign = isSign;
-	}
-
-	public String getAudioPlayTimes() {
-		return audioPlayTimes;
-	}
-
-	public void setAudioPlayTimes(String audioPlayTimes) {
-		this.audioPlayTimes = audioPlayTimes;
-	}
-
-	public AnswerType getAnswerType() {
-		return answerType;
-	}
-
-	public void setAnswerType(AnswerType answerType) {
-		this.answerType = answerType;
-	}
-	
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 8080615797817377990L;
+
+    /**
+     * 题目序号
+     */
+    private Integer order;
+
+    /**
+     * 是否标记
+     */
+    private Boolean isSign;
+
+    /**
+     * 考生作答
+     */
+    private String studentAnswer;
+
+    /**
+     * 音频播放次数
+     */
+    private String audioPlayTimes;
+
+    /**
+     * 题目作答类型
+     */
+    @Enumerated(EnumType.STRING)
+    private AnswerType answerType;
+
+    public Integer getOrder() {
+        return order;
+    }
+
+    public void setOrder(Integer order) {
+        this.order = order;
+    }
+
+    public String getStudentAnswer() {
+        return studentAnswer;
+    }
+
+    public void setStudentAnswer(String studentAnswer) {
+        this.studentAnswer = studentAnswer;
+    }
+
+    public Boolean getIsSign() {
+        return isSign;
+    }
+
+    public void setIsSign(Boolean isSign) {
+        this.isSign = isSign;
+    }
+
+    public String getAudioPlayTimes() {
+        return audioPlayTimes;
+    }
+
+    public void setAudioPlayTimes(String audioPlayTimes) {
+        this.audioPlayTimes = audioPlayTimes;
+    }
+
+    public AnswerType getAnswerType() {
+        return answerType;
+    }
+
+    public void setAnswerType(AnswerType answerType) {
+        this.answerType = answerType;
+    }
+
 }

+ 57 - 61
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/IllegallyTypeInfo.java

@@ -1,89 +1,85 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean;
 
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
-import cn.com.qmth.examcloud.support.enums.DataCategory;
-
-import javax.persistence.Column;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
 
 public class IllegallyTypeInfo implements JsonSerializable {
 
-	private static final long serialVersionUID = 239263456816448160L;
+    private static final long serialVersionUID = 239263456816448160L;
+
+    private Long id;
 
-	private Long id;
+    private String code;
 
-	private String code;
+    private String name;
 
-	private String name;
+    private Long rootOrgId;
 
-	private Long rootOrgId;
+    private Boolean enable;
 
-	private Boolean enable;
+    /**
+     * 排序号
+     */
+    private Integer sortNo;
 
-	/**
-	 * 排序号
-	 */
-	private Integer sortNo;
+    /**
+     * 数据分类
+     */
+    private String dataCategory;
 
-	/**
-	 * 数据分类
-	 */
-	private String dataCategory;
+    public Long getId() {
+        return id;
+    }
 
-	public Long getId() {
-		return id;
-	}
+    public void setId(Long id) {
+        this.id = id;
+    }
 
-	public void setId(Long id) {
-		this.id = id;
-	}
+    public String getCode() {
+        return code;
+    }
 
-	public String getCode() {
-		return code;
-	}
+    public void setCode(String code) {
+        this.code = code;
+    }
 
-	public void setCode(String code) {
-		this.code = code;
-	}
+    public String getName() {
+        return name;
+    }
 
-	public String getName() {
-		return name;
-	}
+    public void setName(String name) {
+        this.name = name;
+    }
 
-	public void setName(String name) {
-		this.name = name;
-	}
+    public Long getRootOrgId() {
+        return rootOrgId;
+    }
 
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
+    public void setRootOrgId(Long rootOrgId) {
+        this.rootOrgId = rootOrgId;
+    }
 
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
+    public Boolean getEnable() {
+        return enable;
+    }
 
-	public Boolean getEnable() {
-		return enable;
-	}
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
 
-	public void setEnable(Boolean enable) {
-		this.enable = enable;
-	}
+    public Integer getSortNo() {
+        return sortNo;
+    }
 
-	public Integer getSortNo() {
-		return sortNo;
-	}
+    public void setSortNo(Integer sortNo) {
+        this.sortNo = sortNo;
+    }
 
-	public void setSortNo(Integer sortNo) {
-		this.sortNo = sortNo;
-	}
+    public String getDataCategory() {
+        return dataCategory;
+    }
 
-	public String getDataCategory() {
-		return dataCategory;
-	}
+    public void setDataCategory(String dataCategory) {
+        this.dataCategory = dataCategory;
+    }
 
-	public void setDataCategory(String dataCategory) {
-		this.dataCategory = dataCategory;
-	}
 }

+ 30 - 22
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/NotifyUrlInfo.java

@@ -5,30 +5,38 @@ import cn.com.qmth.examcloud.commons.util.HttpMethod;
 
 /**
  * 自定义通知路径相关信息
+ *
  * @author lideyin
  * @date 2019年5月16日 下午5:54:59
  * @description
  */
-public class NotifyUrlInfo  implements JsonSerializable{
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -4804279990944267151L;
-	//发送通知的地址
-	private String notifyUrl;
-	//发关请求的方式(eg:post/get/put/delete)
-	private HttpMethod httpMethod;
-	public String getNotifyUrl() {
-		return notifyUrl;
-	}
-	public void setNotifyUrl(String notifyUrl) {
-		this.notifyUrl = notifyUrl;
-	}
-	public HttpMethod getHttpMethod() {
-		return httpMethod;
-	}
-	public void setHttpMethod(HttpMethod httpMethod) {
-		this.httpMethod = httpMethod;
-	}
-	
+public class NotifyUrlInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -4804279990944267151L;
+
+    //发送通知的地址
+    private String notifyUrl;
+
+    //发关请求的方式(eg:post/get/put/delete)
+    private HttpMethod httpMethod;
+
+    public String getNotifyUrl() {
+        return notifyUrl;
+    }
+
+    public void setNotifyUrl(String notifyUrl) {
+        this.notifyUrl = notifyUrl;
+    }
+
+    public HttpMethod getHttpMethod() {
+        return httpMethod;
+    }
+
+    public void setHttpMethod(HttpMethod httpMethod) {
+        this.httpMethod = httpMethod;
+    }
+
 }

+ 133 - 132
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/OfflineExamCourseInfo.java

@@ -1,195 +1,196 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean;
 
+import cn.com.qmth.examcloud.core.oe.admin.dao.enums.ExamRecordStatus;
+import cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord.ExamRecordFileAnswerInfo;
+
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-import cn.com.qmth.examcloud.core.oe.admin.dao.enums.ExamRecordStatus;
-import cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord.ExamRecordFileAnswerInfo;
-
 
 /**
  * 离线考试课程
- * @author ting.yin
  *
+ * @author ting.yin
  */
 public class OfflineExamCourseInfo implements Serializable {
 
-	private static final long serialVersionUID = 4102608764528925537L;
+    private static final long serialVersionUID = 4102608764528925537L;
+
+    private Long examId;
+
+    private String examName;
+
+    private String orgName;//学校名称
 
-	private Long examId;
+    private Long examStudentId;
 
-	private String examName;
+    private String courseName;
 
-	private String orgName;//学校名称
+    private String courseCode;
 
-	private Long examStudentId;
+    private String courseLevel;
 
-	private String courseName;
+    private String studentCode;
 
-	private String courseCode;
+    private String studentName;
 
-	private String courseLevel;
+    private Date startTime;// 考试时间范围开始时间
 
-	private String studentCode;
+    private Date endTime; // 考试时间范围结束时间
 
-	private String studentName;
+    private String specialtyName;
 
-	private Date startTime;// 考试时间范围开始时间
+    private Long examRecordDataId;
 
-	private Date endTime; // 考试时间范围结束时间
+    private ExamRecordStatus status;//用于判断是否上传
 
-	private String specialtyName;
+    private String paperId;
 
-	private Long examRecordDataId;
+    /**
+     * 是否有效
+     */
+    private Boolean isvalid;
 
-	private ExamRecordStatus status;//用于判断是否上传
+    /**
+     * 离线考试作答文件集合
+     */
+    private List<ExamRecordFileAnswerInfo> offlineFiles;
 
-	private String paperId;
+    public Long getExamId() {
+        return examId;
+    }
 
-	/**
-	 * 是否有效
-	 */
-	private Boolean isvalid;
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
 
-	/**
-	 * 离线考试作答文件集合
-	 */
-	private List<ExamRecordFileAnswerInfo> offlineFiles;
+    public Long getExamStudentId() {
+        return examStudentId;
+    }
 
-	public Long getExamId() {
-		return examId;
-	}
+    public void setExamStudentId(Long examStudentId) {
+        this.examStudentId = examStudentId;
+    }
 
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
+    public String getCourseName() {
+        return courseName;
+    }
 
-	public Long getExamStudentId() {
-		return examStudentId;
-	}
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
 
-	public void setExamStudentId(Long examStudentId) {
-		this.examStudentId = examStudentId;
-	}
+    public String getCourseCode() {
+        return courseCode;
+    }
 
-	public String getCourseName() {
-		return courseName;
-	}
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
 
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
+    public String getStudentCode() {
+        return studentCode;
+    }
 
-	public String getCourseCode() {
-		return courseCode;
-	}
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
 
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
+    public String getStudentName() {
+        return studentName;
+    }
 
-	public String getStudentCode() {
-		return studentCode;
-	}
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
 
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
+    public Date getStartTime() {
+        return startTime;
+    }
 
-	public String getStudentName() {
-		return studentName;
-	}
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
 
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
+    public Date getEndTime() {
+        return endTime;
+    }
 
-	public Date getStartTime() {
-		return startTime;
-	}
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
 
-	public void setStartTime(Date startTime) {
-		this.startTime = startTime;
-	}
+    public String getExamName() {
+        return examName;
+    }
 
-	public Date getEndTime() {
-		return endTime;
-	}
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
 
-	public void setEndTime(Date endTime) {
-		this.endTime = endTime;
-	}
+    public String getCourseLevel() {
+        return courseLevel;
+    }
 
-	public String getExamName() {
-		return examName;
-	}
+    public void setCourseLevel(String courseLevel) {
+        this.courseLevel = courseLevel;
+    }
 
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
+    public String getSpecialtyName() {
+        return specialtyName;
+    }
 
-	public String getCourseLevel() {
-		return courseLevel;
-	}
+    public void setSpecialtyName(String specialtyName) {
+        this.specialtyName = specialtyName;
+    }
 
-	public void setCourseLevel(String courseLevel) {
-		this.courseLevel = courseLevel;
-	}
+    public Long getExamRecordDataId() {
+        return examRecordDataId;
+    }
 
-	public String getSpecialtyName() {
-		return specialtyName;
-	}
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
 
-	public void setSpecialtyName(String specialtyName) {
-		this.specialtyName = specialtyName;
-	}
+    public Boolean getIsvalid() {
+        return isvalid;
+    }
 
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-	public Boolean getIsvalid() {
-		return isvalid;
-	}
+    public void setIsvalid(Boolean isvalid) {
+        this.isvalid = isvalid;
+    }
 
-	public void setIsvalid(Boolean isvalid) {
-		this.isvalid = isvalid;
-	}
+    public String getPaperId() {
+        return paperId;
+    }
 
-	public String getPaperId() {
-		return paperId;
-	}
+    public void setPaperId(String paperId) {
+        this.paperId = paperId;
+    }
 
-	public void setPaperId(String paperId) {
-		this.paperId = paperId;
-	}
+    public ExamRecordStatus getStatus() {
+        return status;
+    }
 
-	public ExamRecordStatus getStatus() {
-		return status;
-	}
+    public void setStatus(ExamRecordStatus status) {
+        this.status = status;
+    }
 
-	public void setStatus(ExamRecordStatus status) {
-		this.status = status;
-	}
+    public String getOrgName() {
+        return orgName;
+    }
 
-	public String getOrgName() {
-		return orgName;
-	}
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
 
-	public void setOrgName(String orgName) {
-		this.orgName = orgName;
-	}
+    public List<ExamRecordFileAnswerInfo> getOfflineFiles() {
+        return offlineFiles;
+    }
 
-	public List<ExamRecordFileAnswerInfo> getOfflineFiles() {
-		return offlineFiles;
-	}
+    public void setOfflineFiles(List<ExamRecordFileAnswerInfo> offlineFiles) {
+        this.offlineFiles = offlineFiles;
+    }
 
-	public void setOfflineFiles(List<ExamRecordFileAnswerInfo> offlineFiles) {
-		this.offlineFiles = offlineFiles;
-	}
 }

+ 28 - 27
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/OnHandExamInfo.java

@@ -1,12 +1,11 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean;
 
-import java.util.Date;
-
+import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 import com.alibaba.fastjson.JSONArray;
 
-import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+import java.util.Date;
 
-public class OnHandExamInfo implements JsonSerializable{
+public class OnHandExamInfo implements JsonSerializable {
 
     /**
      * 待考列表信息
@@ -64,10 +63,12 @@ public class OnHandExamInfo implements JsonSerializable{
      * 是否有效
      */
     //private Boolean isvalid;
+
     /**
      * 是否启用人脸识别
      */
     private Boolean faceEnable;
+
     /**
      * 进入考试是否验证人脸识别(强制、非强制)
      */
@@ -84,10 +85,10 @@ public class OnHandExamInfo implements JsonSerializable{
     private Boolean appExamEnabled;
 
     private Boolean examCycleEnabled;
-    
+
     private JSONArray examCycleWeek;
-    
-    private JSONArray examCycleTimeRange ;
+
+    private JSONArray examCycleTimeRange;
 
     public String getStudentName() {
         return studentName;
@@ -306,29 +307,29 @@ public class OnHandExamInfo implements JsonSerializable{
         this.appExamEnabled = appExamEnabled;
     }
 
-	public Boolean getExamCycleEnabled() {
-		return examCycleEnabled;
-	}
+    public Boolean getExamCycleEnabled() {
+        return examCycleEnabled;
+    }
+
+    public void setExamCycleEnabled(Boolean examCycleEnabled) {
+        this.examCycleEnabled = examCycleEnabled;
+    }
+
+    public JSONArray getExamCycleWeek() {
+        return examCycleWeek;
+    }
 
-	public void setExamCycleEnabled(Boolean examCycleEnabled) {
-		this.examCycleEnabled = examCycleEnabled;
-	}
+    public void setExamCycleWeek(JSONArray examCycleWeek) {
+        this.examCycleWeek = examCycleWeek;
+    }
 
-	public JSONArray getExamCycleWeek() {
-		return examCycleWeek;
-	}
+    public JSONArray getExamCycleTimeRange() {
+        return examCycleTimeRange;
+    }
 
-	public void setExamCycleWeek(JSONArray examCycleWeek) {
-		this.examCycleWeek = examCycleWeek;
-	}
+    public void setExamCycleTimeRange(JSONArray examCycleTimeRange) {
+        this.examCycleTimeRange = examCycleTimeRange;
+    }
 
-	public JSONArray getExamCycleTimeRange() {
-		return examCycleTimeRange;
-	}
 
-	public void setExamCycleTimeRange(JSONArray examCycleTimeRange) {
-		this.examCycleTimeRange = examCycleTimeRange;
-	}
-    
-    
 }

+ 35 - 33
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/PaperStructInfo.java

@@ -8,7 +8,7 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.enums.QuesStructType;
  * 试卷结构。一套试卷结构包含多条数据,即多个大题
  * Created by zhengmin on 2016/8/18.
  */
-public class PaperStructInfo implements JsonSerializable{
+public class PaperStructInfo implements JsonSerializable {
 
     private static final long serialVersionUID = 3386140600282845440L;
 
@@ -46,19 +46,21 @@ public class PaperStructInfo implements JsonSerializable{
      * 每小题分
      */
     private String score;
-    
-	/**
-	 * 答对数量
-	 */
-	private int succQuestionNum;
-	/**
-	 * 答错数量
-	 */
-	private int failQuestionNum;
-	/**
-	 * 未作答
-	 */
-	private Integer notAnsweredCount;
+
+    /**
+     * 答对数量
+     */
+    private int succQuestionNum;
+
+    /**
+     * 答错数量
+     */
+    private int failQuestionNum;
+
+    /**
+     * 未作答
+     */
+    private Integer notAnsweredCount;
 
     public int getIndex() {
         return index;
@@ -116,28 +118,28 @@ public class PaperStructInfo implements JsonSerializable{
         this.questionCount = questionCount;
     }
 
-	public int getSuccQuestionNum() {
-		return succQuestionNum;
-	}
+    public int getSuccQuestionNum() {
+        return succQuestionNum;
+    }
+
+    public void setSuccQuestionNum(int succQuestionNum) {
+        this.succQuestionNum = succQuestionNum;
+    }
 
-	public void setSuccQuestionNum(int succQuestionNum) {
-		this.succQuestionNum = succQuestionNum;
-	}
+    public int getFailQuestionNum() {
+        return failQuestionNum;
+    }
 
-	public int getFailQuestionNum() {
-		return failQuestionNum;
-	}
+    public void setFailQuestionNum(int failQuestionNum) {
+        this.failQuestionNum = failQuestionNum;
+    }
 
-	public void setFailQuestionNum(int failQuestionNum) {
-		this.failQuestionNum = failQuestionNum;
-	}
+    public Integer getNotAnsweredCount() {
+        return notAnsweredCount;
+    }
 
-	public Integer getNotAnsweredCount() {
-		return notAnsweredCount;
-	}
+    public void setNotAnsweredCount(Integer notAnsweredCount) {
+        this.notAnsweredCount = notAnsweredCount;
+    }
 
-	public void setNotAnsweredCount(Integer notAnsweredCount) {
-		this.notAnsweredCount = notAnsweredCount;
-	}
-    
 }

+ 138 - 138
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/PracticeCourseInfo.java

@@ -1,22 +1,21 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean;
 
-import java.util.Date;
-
+import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 import com.alibaba.fastjson.JSONArray;
 
-import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+import java.util.Date;
 
-public class PracticeCourseInfo implements JsonSerializable{
+public class PracticeCourseInfo implements JsonSerializable {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 3648502707781974505L;
+    /**
+     *
+     */
+    private static final long serialVersionUID = 3648502707781974505L;
+
+    private Long examId;
 
-	private Long examId;
-	    
     private String examName;
-    
+
     private String examType;
 
     private Long examStudentId;
@@ -33,10 +32,12 @@ public class PracticeCourseInfo implements JsonSerializable{
      * 练习次数
      */
     private long practiceCount;
+
     /**
      * 最高正确率
      */
     private double maxObjectiveAccuracy;
+
     /**
      * 平均正确率
      */
@@ -50,150 +51,149 @@ public class PracticeCourseInfo implements JsonSerializable{
     private Date startTime;//考试时间范围开始时间
 
     private Date endTime; //考试时间范围结束时间
-    
+
     private Boolean examCycleEnabled;
-    
+
     private JSONArray examCycleWeek;
-    
-    private JSONArray examCycleTimeRange ;
 
-	public Long getExamId() {
-		return examId;
-	}
+    private JSONArray examCycleTimeRange;
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
+    public Long getExamStudentId() {
+        return examStudentId;
+    }
+
+    public void setExamStudentId(Long examStudentId) {
+        this.examStudentId = examStudentId;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+
+    public long getPracticeCount() {
+        return practiceCount;
+    }
+
+    public void setPracticeCount(long practiceCount) {
+        this.practiceCount = practiceCount;
+    }
+
+    public double getMaxObjectiveAccuracy() {
+        return maxObjectiveAccuracy;
+    }
+
+    public void setMaxObjectiveAccuracy(double maxObjectiveAccuracy) {
+        this.maxObjectiveAccuracy = maxObjectiveAccuracy;
+    }
+
+    public double getAveObjectiveAccuracy() {
+        return aveObjectiveAccuracy;
+    }
+
+    public void setAveObjectiveAccuracy(double aveObjectiveAccuracy) {
+        this.aveObjectiveAccuracy = aveObjectiveAccuracy;
+    }
+
+    public double getRecentObjectiveAccuracy() {
+        return recentObjectiveAccuracy;
+    }
 
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
+    public void setRecentObjectiveAccuracy(double recentObjectiveAccuracy) {
+        this.recentObjectiveAccuracy = recentObjectiveAccuracy;
+    }
 
-	public String getExamName() {
-		return examName;
-	}
+    public Date getStartTime() {
+        return startTime;
+    }
 
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
 
-	public Long getExamStudentId() {
-		return examStudentId;
-	}
+    public Date getEndTime() {
+        return endTime;
+    }
 
-	public void setExamStudentId(Long examStudentId) {
-		this.examStudentId = examStudentId;
-	}
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
 
-	public String getCourseName() {
-		return courseName;
-	}
+    public String getExamType() {
+        return examType;
+    }
 
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
+    public void setExamType(String examType) {
+        this.examType = examType;
+    }
 
-	public String getCourseCode() {
-		return courseCode;
-	}
+    public Boolean getExamCycleEnabled() {
+        return examCycleEnabled;
+    }
 
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getStudentName() {
-		return studentName;
-	}
-
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
-
-	public long getPracticeCount() {
-		return practiceCount;
-	}
-
-	public void setPracticeCount(long practiceCount) {
-		this.practiceCount = practiceCount;
-	}
-
-	public double getMaxObjectiveAccuracy() {
-		return maxObjectiveAccuracy;
-	}
-
-	public void setMaxObjectiveAccuracy(double maxObjectiveAccuracy) {
-		this.maxObjectiveAccuracy = maxObjectiveAccuracy;
-	}
-
-	public double getAveObjectiveAccuracy() {
-		return aveObjectiveAccuracy;
-	}
-
-	public void setAveObjectiveAccuracy(double aveObjectiveAccuracy) {
-		this.aveObjectiveAccuracy = aveObjectiveAccuracy;
-	}
-
-	public double getRecentObjectiveAccuracy() {
-		return recentObjectiveAccuracy;
-	}
-
-	public void setRecentObjectiveAccuracy(double recentObjectiveAccuracy) {
-		this.recentObjectiveAccuracy = recentObjectiveAccuracy;
-	}
-
-	public Date getStartTime() {
-		return startTime;
-	}
-
-	public void setStartTime(Date startTime) {
-		this.startTime = startTime;
-	}
-
-	public Date getEndTime() {
-		return endTime;
-	}
+    public void setExamCycleEnabled(Boolean examCycleEnabled) {
+        this.examCycleEnabled = examCycleEnabled;
+    }
 
-	public void setEndTime(Date endTime) {
-		this.endTime = endTime;
-	}
 
-	public String getExamType() {
-		return examType;
-	}
+    public JSONArray getExamCycleWeek() {
+        return examCycleWeek;
+    }
 
-	public void setExamType(String examType) {
-		this.examType = examType;
-	}
+    public void setExamCycleWeek(JSONArray examCycleWeek) {
+        this.examCycleWeek = examCycleWeek;
+    }
 
-	public Boolean getExamCycleEnabled() {
-		return examCycleEnabled;
-	}
+    public JSONArray getExamCycleTimeRange() {
+        return examCycleTimeRange;
+    }
 
-	public void setExamCycleEnabled(Boolean examCycleEnabled) {
-		this.examCycleEnabled = examCycleEnabled;
-	}
+    public void setExamCycleTimeRange(JSONArray examCycleTimeRange) {
+        this.examCycleTimeRange = examCycleTimeRange;
+    }
 
-	
-	public JSONArray getExamCycleWeek() {
-		return examCycleWeek;
-	}
-
-	public void setExamCycleWeek(JSONArray examCycleWeek) {
-		this.examCycleWeek = examCycleWeek;
-	}
-
-	public JSONArray getExamCycleTimeRange() {
-		return examCycleTimeRange;
-	}
-
-	public void setExamCycleTimeRange(JSONArray examCycleTimeRange) {
-		this.examCycleTimeRange = examCycleTimeRange;
-	}
-	
-	
 
 }

+ 62 - 62
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/PracticeDetailInfo.java

@@ -1,73 +1,73 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean;
 
-import java.util.List;
-
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 
+import java.util.List;
+
 /**
- * 
- * @author  	chenken
- * @date    	2018年9月7日 上午10:23:19
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年9月7日 上午10:23:19
+ * @company QMTH
  * @description 答题情况统计
  */
 public class PracticeDetailInfo implements JsonSerializable {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1712307616138306152L;
-
-	private Long id;
-
-	private String courseName;
-
-	private String courseCode;
-	/**
-	 * 客观题正确率
-	 */
-	private double objectiveAccuracy;
-	
-	private List<PaperStructInfo> paperStructInfos;
-	
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public String getCourseName() {
-		return courseName;
-	}
-
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public double getObjectiveAccuracy() {
-		return objectiveAccuracy;
-	}
-
-	public void setObjectiveAccuracy(double objectiveAccuracy) {
-		this.objectiveAccuracy = objectiveAccuracy;
-	}
-
-	public List<PaperStructInfo> getPaperStructInfos() {
-		return paperStructInfos;
-	}
-
-	public void setPaperStructInfos(List<PaperStructInfo> paperStructInfos) {
-		this.paperStructInfos = paperStructInfos;
-	}
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1712307616138306152L;
+
+    private Long id;
+
+    private String courseName;
+
+    private String courseCode;
+
+    /**
+     * 客观题正确率
+     */
+    private double objectiveAccuracy;
+
+    private List<PaperStructInfo> paperStructInfos;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public double getObjectiveAccuracy() {
+        return objectiveAccuracy;
+    }
+
+    public void setObjectiveAccuracy(double objectiveAccuracy) {
+        this.objectiveAccuracy = objectiveAccuracy;
+    }
+
+    public List<PaperStructInfo> getPaperStructInfos() {
+        return paperStructInfos;
+    }
+
+    public void setPaperStructInfos(List<PaperStructInfo> paperStructInfos) {
+        this.paperStructInfos = paperStructInfos;
+    }
 
 }

+ 159 - 129
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/PracticeRecordInfo.java

@@ -1,135 +1,165 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean;
 
+import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+
 import java.util.Date;
 
-import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
+public class PracticeRecordInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -5420413503946583744L;
+
+    private Long id;
+
+    private String examName;
+
+    private String courseName;
+
+    private String courseCode;
+
+    private Date startTime;
+
+    private Date endTime;
+
+    /**
+     * 考生考试使用的考试时长
+     */
+    private Long usedExamTime;
+
+    /**
+     * 题目数量
+     */
+    private Integer totalQuestionCount;
+
+    /**
+     * 答对数量
+     */
+    private Integer succQuestionNum;
+
+    /**
+     * 答错数量
+     */
+    private Integer failQuestionNum;
+
+    /**
+     * 未作答
+     */
+    private Integer notAnsweredCount;
+
+    /**
+     * 客观题正确率
+     */
+    private Double objectiveAccuracy;
+
+    /**
+     * 客观题数量
+     */
+    private Integer objectiveNum;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Long getUsedExamTime() {
+        return usedExamTime;
+    }
+
+    public void setUsedExamTime(Long usedExamTime) {
+        this.usedExamTime = usedExamTime;
+    }
+
+    public Integer getTotalQuestionCount() {
+        return totalQuestionCount;
+    }
+
+    public void setTotalQuestionCount(Integer totalQuestionCount) {
+        this.totalQuestionCount = totalQuestionCount;
+    }
+
+    public Integer getSuccQuestionNum() {
+        return succQuestionNum;
+    }
+
+    public void setSuccQuestionNum(Integer succQuestionNum) {
+        this.succQuestionNum = succQuestionNum;
+    }
+
+    public Integer getFailQuestionNum() {
+        return failQuestionNum;
+    }
+
+    public void setFailQuestionNum(Integer failQuestionNum) {
+        this.failQuestionNum = failQuestionNum;
+    }
+
+    public Integer getNotAnsweredCount() {
+        return notAnsweredCount;
+    }
+
+    public void setNotAnsweredCount(Integer notAnsweredCount) {
+        this.notAnsweredCount = notAnsweredCount;
+    }
+
+    public Double getObjectiveAccuracy() {
+        return objectiveAccuracy;
+    }
+
+    public void setObjectiveAccuracy(Double objectiveAccuracy) {
+        this.objectiveAccuracy = objectiveAccuracy;
+    }
+
+    public Integer getObjectiveNum() {
+        return objectiveNum;
+    }
+
+    public void setObjectiveNum(Integer objectiveNum) {
+        this.objectiveNum = objectiveNum;
+    }
 
-public class PracticeRecordInfo implements JsonSerializable{
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -5420413503946583744L;
-
-	private Long id;
-
-	private String examName;
-
-	private String courseName;
-
-	private String courseCode;
-
-	private Date startTime;
-
-	private Date endTime;
-
-	/**
-	 * 考生考试使用的考试时长
-	 */
-	private Long usedExamTime;
-
-	/**
-	 * 题目数量
-	 */
-	private Integer totalQuestionCount;
-	/**
-	 * 答对数量
-	 */
-	private Integer succQuestionNum;
-	/**
-	 * 答错数量
-	 */
-	private Integer failQuestionNum;
-	/**
-	 * 未作答
-	 */
-	private Integer notAnsweredCount;
-	/**
-	 * 客观题正确率
-	 */
-	private Double objectiveAccuracy;
-	/**
-	 * 客观题数量
-	 */
-	private Integer objectiveNum;
-	
-	public Long getId() {
-		return id;
-	}
-	public void setId(Long id) {
-		this.id = id;
-	}
-	public String getExamName() {
-		return examName;
-	}
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
-	public String getCourseName() {
-		return courseName;
-	}
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-	public String getCourseCode() {
-		return courseCode;
-	}
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-	public Date getStartTime() {
-		return startTime;
-	}
-	public void setStartTime(Date startTime) {
-		this.startTime = startTime;
-	}
-	public Date getEndTime() {
-		return endTime;
-	}
-	public void setEndTime(Date endTime) {
-		this.endTime = endTime;
-	}
-	public Long getUsedExamTime() {
-		return usedExamTime;
-	}
-	public void setUsedExamTime(Long usedExamTime) {
-		this.usedExamTime = usedExamTime;
-	}
-	public Integer getTotalQuestionCount() {
-		return totalQuestionCount;
-	}
-	public void setTotalQuestionCount(Integer totalQuestionCount) {
-		this.totalQuestionCount = totalQuestionCount;
-	}
-	public Integer getSuccQuestionNum() {
-		return succQuestionNum;
-	}
-	public void setSuccQuestionNum(Integer succQuestionNum) {
-		this.succQuestionNum = succQuestionNum;
-	}
-	public Integer getFailQuestionNum() {
-		return failQuestionNum;
-	}
-	public void setFailQuestionNum(Integer failQuestionNum) {
-		this.failQuestionNum = failQuestionNum;
-	}
-	public Integer getNotAnsweredCount() {
-		return notAnsweredCount;
-	}
-	public void setNotAnsweredCount(Integer notAnsweredCount) {
-		this.notAnsweredCount = notAnsweredCount;
-	}
-	public Double getObjectiveAccuracy() {
-		return objectiveAccuracy;
-	}
-	public void setObjectiveAccuracy(Double objectiveAccuracy) {
-		this.objectiveAccuracy = objectiveAccuracy;
-	}
-	public Integer getObjectiveNum() {
-		return objectiveNum;
-	}
-	public void setObjectiveNum(Integer objectiveNum) {
-		this.objectiveNum = objectiveNum;
-	}
-	
 }

+ 59 - 59
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/SubjectiveQuestionScoreInfo.java

@@ -2,63 +2,63 @@ package cn.com.qmth.examcloud.core.oe.admin.service.bean;
 
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 
-public class SubjectiveQuestionScoreInfo implements JsonSerializable{
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 4161659045086103440L;
-
-	/**
-	 * 考试记录ID
-	 */
-	private Long examRecordDataId;
-	
-	/**
-	 * 
-	 */
-	private String questionId;
-	
-	/**
-	 * 小题序号
-	 */
-	private Integer order;
-	
-	/**
-	 * 得分
-	 */
-	private Double score;
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-	public String getQuestionId() {
-		return questionId;
-	}
-
-	public void setQuestionId(String questionId) {
-		this.questionId = questionId;
-	}
-
-	public Integer getOrder() {
-		return order;
-	}
-
-	public void setOrder(Integer order) {
-		this.order = order;
-	}
-
-	public Double getScore() {
-		return score;
-	}
-
-	public void setScore(Double score) {
-		this.score = score;
-	}
-	
+public class SubjectiveQuestionScoreInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 4161659045086103440L;
+
+    /**
+     * 考试记录ID
+     */
+    private Long examRecordDataId;
+
+    /**
+     *
+     */
+    private String questionId;
+
+    /**
+     * 小题序号
+     */
+    private Integer order;
+
+    /**
+     * 得分
+     */
+    private Double score;
+
+    public Long getExamRecordDataId() {
+        return examRecordDataId;
+    }
+
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
+
+    public String getQuestionId() {
+        return questionId;
+    }
+
+    public void setQuestionId(String questionId) {
+        this.questionId = questionId;
+    }
+
+    public Integer getOrder() {
+        return order;
+    }
+
+    public void setOrder(Integer order) {
+        this.order = order;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
 }

+ 14 - 17
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditEntityConvert.java

@@ -7,22 +7,19 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.mysql.cj.util.StringUtils;
-import org.apache.commons.beanutils.BeanUtils;
-import org.springframework.data.domain.Page;
-
-import com.google.common.collect.Lists;
-
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.AuditStatus;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.CourseLevel;
-import cn.com.qmth.examcloud.core.oe.admin.dao.enums.DisciplineType;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess;
+import com.google.common.collect.Lists;
+import com.mysql.cj.util.StringUtils;
+import org.apache.commons.beanutils.BeanUtils;
+import org.springframework.data.domain.Page;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 类信息转换
@@ -50,10 +47,10 @@ public class ExamAuditEntityConvert {
                     info.setFaceVerifyResult(result.getDesc());
                 }
 
-//                DisciplineType disciplineType = DisciplineType.tramsformByType(info.getDisciplineType());
-//                if (disciplineType != null) {
-//                    info.setDisciplineType(disciplineType.getName());
-//                }
+                //                DisciplineType disciplineType = DisciplineType.tramsformByType(info.getDisciplineType());
+                //                if (disciplineType != null) {
+                //                    info.setDisciplineType(disciplineType.getName());
+                //                }
 
                 list.add(info);
             } catch (Exception e) {
@@ -88,7 +85,7 @@ public class ExamAuditEntityConvert {
             excel.setFaceTotalCount(e.getFaceTotalCount());
             excel.setFaceSuccessPercent(e.getFaceSuccessPercent());
             if (!StringUtils.isNullOrEmpty(e.getDisciplineDetail()) && e.getDisciplineDetail().indexOf("&&") != -1) {
-                excel.setDisciplineDetail(e.getDisciplineDetail().replace("&&","\r\n"));
+                excel.setDisciplineDetail(e.getDisciplineDetail().replace("&&", "\r\n"));
             } else {
                 excel.setDisciplineDetail(e.getDisciplineDetail());
             }

+ 33 - 15
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditExcel.java

@@ -17,60 +17,77 @@ import cn.com.qmth.examcloud.support.excel.ExcelProperty;
  * @since: 2018/8/15
  */
 public class ExamAuditExcel implements JsonSerializable {
+
     /**
-	 * 
-	 */
-	private static final long serialVersionUID = 1269194645888320744L;
-	@ExcelProperty(name = "考试记录ID", index = 2)
+     *
+     */
+    private static final long serialVersionUID = 1269194645888320744L;
+
+    @ExcelProperty(name = "考试记录ID", index = 2)
     private Long examRecordDataId;
+
     @ExcelProperty(name = "学习中心", index = 2)
     private String orgName;
+
     @ExcelProperty(name = "违纪类型", index = 13)
     private String disciplineType;
+
     @ExcelProperty(name = "批次名称", index = 1)
     private String examName;
+
     @ExcelProperty(name = "学号", index = 7)
     private String studentCode;
+
     @ExcelProperty(name = "姓名", index = 8)
     private String studentName;
+
     @ExcelProperty(name = "科目代码", index = 4)
     private String courseCode;
+
     @ExcelProperty(name = "考试科目", index = 3)
     private String courseName;
+
     @ExcelProperty(name = "课程层次", index = 6)
     private String courseLevel;
+
     @ExcelProperty(name = "成功次数", index = 10)
     private Integer faceSuccessCount;
+
     @ExcelProperty(name = "陌生人记录", index = 11)
     private Integer faceStrangerCount;
+
     @ExcelProperty(name = "校验次数", index = 9)
     private Integer faceTotalCount;
+
     @ExcelProperty(name = "成功率", index = 12)
     private Double faceSuccessPercent;
+
     @ExcelProperty(name = "客观题总分", index = 5)
     private Double objectiveScore;
+
     @ExcelProperty(name = "违纪描述", index = 14)
     private String disciplineDetail;
+
     @ExcelProperty(name = "Ip", index = 15)
     private String ip;
 
     public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
+        return examRecordDataId;
+    }
 
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
 
     public String getDisciplineType() {
-		return disciplineType;
-	}
+        return disciplineType;
+    }
 
-	public void setDisciplineType(String disciplineType) {
-		this.disciplineType = disciplineType;
-	}
+    public void setDisciplineType(String disciplineType) {
+        this.disciplineType = disciplineType;
+    }
 
-	public String getExamName() {
+    public String getExamName() {
         return examName;
     }
 
@@ -181,4 +198,5 @@ public class ExamAuditExcel implements JsonSerializable {
     public void setIp(String ip) {
         this.ip = ip;
     }
+
 }

+ 56 - 22
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditInfo.java

@@ -17,11 +17,13 @@ import cn.com.qmth.examcloud.support.excel.ExcelProperty;
  * @since: 2018/8/15
  */
 public class ExamAuditInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -7260035187571848686L;
+
     /**
-	 *
-	 */
-	private static final long serialVersionUID = -7260035187571848686L;
-	/**
      * 主键
      */
     private Long id;
@@ -34,6 +36,7 @@ public class ExamAuditInfo implements JsonSerializable {
      */
     @ExcelProperty(name = "审核结果", width = 30, index = 13)
     private String status;
+
     /**
      * 违纪详情
      */
@@ -41,6 +44,7 @@ public class ExamAuditInfo implements JsonSerializable {
 
     @ExcelProperty(name = "审核说明", width = 30, index = 12)
     private String disciplineType;
+
     /**
      * 审核人姓名
      */
@@ -51,128 +55,157 @@ public class ExamAuditInfo implements JsonSerializable {
      * 考试ID
      */
     private Long examId;
+
     /**
      * 考试名称
      */
     private String examName;
+
     /**
      * 考试类型
      */
     private String examType;
+
     /**
      * 考生ID
      */
     private Long examStudentId;
+
     /**
      * 学生ID
      */
     private Long studentId;
+
     /**
      * 学号
      */
     @ExcelProperty(name = "学号", width = 30, index = 4)
     private String studentCode;
+
     /**
      * 学生姓名
      */
     @ExcelProperty(name = "姓名", width = 30, index = 2)
     private String studentName;
+
     /**
      * 身份证号
      */
     @ExcelProperty(name = "身份证号", width = 30, index = 3)
     private String identityNumber;
+
     /**
      * 课程ID
      */
     private Long courseId;
+
     /**
      * 课程Code
      */
     private String courseCode;
+
     /**
      * 课程名称
      */
     @ExcelProperty(name = "课程", width = 30, index = 5)
     private String courseName;
+
     /**
      * 课程层次
      */
     @ExcelProperty(name = "课程层次", width = 30, index = 6)
     private String courseLevel;
+
     /**
      * 学习中心ID
      */
     private Long orgId;
+
     /**
      * 学习中名称
      */
     private String orgName;
+
     /**
      * 是否异常数据
      */
     private Boolean isWarn;
+
     /**
      * 是否被审核过
      */
     private Boolean isAudit;
+
     /**
      * 是否违纪
      */
     private Boolean isIllegality;
+
     /**
      * 考试记录状态(考试中,考试结束,考试过期,考试作废)
      */
     private String examRecordStatus;
+
     /**
      * 考试时长
      */
     private Long usedExamTime;
+
     /**
      * 第几次考试
      */
     @ExcelProperty(name = "考试次数", width = 30, index = 11)
     private Integer examOrder;
+
     /**
      * 是否为重考
      */
     private Boolean isReexamine;
+
     /**
      * 是否断点续考
      */
     private Boolean isContinued;
+
     /**
      * 断点续考次数
      */
     private Integer continuedCount;
+
     /**
      * 抓拍比对成功次数
      */
     @ExcelProperty(name = "成功次数", width = 30, index = 8)
     private Integer faceSuccessCount;
+
     /**
      * 抓拍比对失败次数
      */
     private Integer faceFailedCount;
+
     /**
      * 抓拍存在陌生人的次数
      */
     @ExcelProperty(name = "陌生人记录", width = 30, index = 9)
     private Integer faceStrangerCount;
+
     /**
      * 抓拍比对总次数
      */
     @ExcelProperty(name = "校验次数", width = 30, index = 7)
     private Integer faceTotalCount;
+
     /**
      * 抓拍比对成功比率
      */
     @ExcelProperty(name = "人脸识别成功率(%)", width = 30, index = 10)
     private Double faceSuccessPercent;
+
     /**
      * 活体检测结果
      */
     private String faceVerifyResult;
+
     /**
      * 人脸五官坐标比对值
      */
@@ -459,29 +492,29 @@ public class ExamAuditInfo implements JsonSerializable {
         this.faceLandmarkVal = faceLandmarkVal;
     }
 
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
+    public Long getExamRecordDataId() {
+        return examRecordDataId;
+    }
 
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
 
-	public String getDisciplineType() {
-		return disciplineType;
-	}
+    public String getDisciplineType() {
+        return disciplineType;
+    }
 
-	public void setDisciplineType(String disciplineType) {
-		this.disciplineType = disciplineType;
-	}
+    public void setDisciplineType(String disciplineType) {
+        this.disciplineType = disciplineType;
+    }
 
-	public String getAuditUserName() {
-		return auditUserName;
-	}
+    public String getAuditUserName() {
+        return auditUserName;
+    }
 
-	public void setAuditUserName(String auditUserName) {
-		this.auditUserName = auditUserName;
-	}
+    public void setAuditUserName(String auditUserName) {
+        this.auditUserName = auditUserName;
+    }
 
     public String getOrgName() {
         return orgName;
@@ -530,4 +563,5 @@ public class ExamAuditInfo implements JsonSerializable {
     public void setIp(String ip) {
         this.ip = ip;
     }
+
 }

+ 50 - 27
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditQuery.java

@@ -20,48 +20,70 @@ import io.swagger.annotations.ApiModelProperty;
  */
 @ApiModel
 public class ExamAuditQuery implements JsonSerializable {
+
     @ApiModelProperty("当前页数")
     private Integer pageNo;
+
     @ApiModelProperty("每页条数")
     private Integer pageSize;
+
     @ApiModelProperty("学习中心ID")
     private Long orgId;
+
     @ApiModelProperty("机构ID")
     private Long rootOrgId;
+
     @ApiModelProperty("考试ID")
     private Long examId;
+
     @ApiModelProperty("场次ID")
     private Long examStageId;
+
     @ApiModelProperty("学号")
     private String studentCode;
+
     @ApiModelProperty("学生姓名")
     private String studentName;
+
     @ApiModelProperty("身份证号")
     private String identityNumber;
+
     @ApiModelProperty("课程ID")
     private Long courseId;
+
     @ApiModelProperty("课程层次")
     private String courseLevel;
+
     @ApiModelProperty("考试记录ID")
     private Long examRecordDataId;
+
     @ApiModelProperty("审核状态")
     private String status;
+
     @ApiModelProperty("违纪类型")
     private String disciplineType;
+
     @ApiModelProperty("审核人")
     private String auditUserName;
+
     @ApiModelProperty("开考起始时间")
     private String startTime;
+
     @ApiModelProperty("开考截止时间")
     private String endTime;
+
     @ApiModelProperty("交卷起始时间")
     private String submitStartTime;
+
     @ApiModelProperty("交卷截止时间")
     private String submitEndTime;
+
     @ApiModelProperty("审核起始时间")
     private String auditStartTime;
+
     @ApiModelProperty("审核截止时间")
     private String auditEndTime;
+
     @ApiModelProperty("Ip")
     private String ip;
 
@@ -158,41 +180,41 @@ public class ExamAuditQuery implements JsonSerializable {
         this.status = status;
     }
 
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
+    public Long getRootOrgId() {
+        return rootOrgId;
+    }
 
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
+    public void setRootOrgId(Long rootOrgId) {
+        this.rootOrgId = rootOrgId;
+    }
 
-	public SelectType getSelectType() {
-		return selectType;
-	}
+    public SelectType getSelectType() {
+        return selectType;
+    }
 
-	public void setSelectType(SelectType selectType) {
-		this.selectType = selectType;
-	}
+    public void setSelectType(SelectType selectType) {
+        this.selectType = selectType;
+    }
 
-	public String getDisciplineType() {
-		return disciplineType;
-	}
+    public String getDisciplineType() {
+        return disciplineType;
+    }
 
-	public void setDisciplineType(String disciplineType) {
-		this.disciplineType = disciplineType;
-	}
+    public void setDisciplineType(String disciplineType) {
+        this.disciplineType = disciplineType;
+    }
 
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
 
-	public String getAuditUserName() {
-		return auditUserName;
-	}
+    public String getAuditUserName() {
+        return auditUserName;
+    }
 
-	public void setAuditUserName(String auditUserName) {
-		this.auditUserName = auditUserName;
-	}
+    public void setAuditUserName(String auditUserName) {
+        this.auditUserName = auditUserName;
+    }
 
     public Long getExamStageId() {
         return examStageId;
@@ -257,4 +279,5 @@ public class ExamAuditQuery implements JsonSerializable {
     public void setIp(String ip) {
         this.ip = ip;
     }
+
 }

+ 74 - 74
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/RedoAuditInfo.java

@@ -1,83 +1,83 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit;
 
-import java.util.List;
-
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 
+import java.util.List;
+
 
 /**
- *
- * @author  	chenken
- * @date    	2019年1月15日 上午9:59:14
- * @company 	QMTH
+ * @author chenken
+ * @date 2019年1月15日 上午9:59:14
+ * @company QMTH
  * @description 重新审核
  */
-public class RedoAuditInfo implements JsonSerializable{
-
-	/**
-	 *
-	 */
-	private static final long serialVersionUID = 5158278733859663008L;
-
-	private List<Long> examRecordDataIds;
-
-	/**
-	 * 是否通过
-	 */
-	private Boolean isPass;
-
-	/**
-	 * 违纪类型id
-	 */
-	private Long illegallyTypeId;
-
-	/**
-	 * 违纪类型
-	 */
-	private String disciplineType;
-
-	/**
-	 * 违纪详情
-	 */
-	private String disciplineDetail;
-
-	public List<Long> getExamRecordDataIds() {
-		return examRecordDataIds;
-	}
-
-	public void setExamRecordDataIds(List<Long> examRecordDataIds) {
-		this.examRecordDataIds = examRecordDataIds;
-	}
-
-	public Boolean getIsPass() {
-		return isPass;
-	}
-
-	public void setIsPass(Boolean isPass) {
-		this.isPass = isPass;
-	}
-
-	public String getDisciplineType() {
-		return disciplineType;
-	}
-
-	public void setDisciplineType(String disciplineType) {
-		this.disciplineType = disciplineType;
-	}
-
-	public String getDisciplineDetail() {
-		return disciplineDetail;
-	}
-
-	public void setDisciplineDetail(String disciplineDetail) {
-		this.disciplineDetail = disciplineDetail;
-	}
-
-	public Long getIllegallyTypeId() {
-		return illegallyTypeId;
-	}
-
-	public void setIllegallyTypeId(Long illegallyTypeId) {
-		this.illegallyTypeId = illegallyTypeId;
-	}
+public class RedoAuditInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 5158278733859663008L;
+
+    private List<Long> examRecordDataIds;
+
+    /**
+     * 是否通过
+     */
+    private Boolean isPass;
+
+    /**
+     * 违纪类型id
+     */
+    private Long illegallyTypeId;
+
+    /**
+     * 违纪类型
+     */
+    private String disciplineType;
+
+    /**
+     * 违纪详情
+     */
+    private String disciplineDetail;
+
+    public List<Long> getExamRecordDataIds() {
+        return examRecordDataIds;
+    }
+
+    public void setExamRecordDataIds(List<Long> examRecordDataIds) {
+        this.examRecordDataIds = examRecordDataIds;
+    }
+
+    public Boolean getIsPass() {
+        return isPass;
+    }
+
+    public void setIsPass(Boolean isPass) {
+        this.isPass = isPass;
+    }
+
+    public String getDisciplineType() {
+        return disciplineType;
+    }
+
+    public void setDisciplineType(String disciplineType) {
+        this.disciplineType = disciplineType;
+    }
+
+    public String getDisciplineDetail() {
+        return disciplineDetail;
+    }
+
+    public void setDisciplineDetail(String disciplineDetail) {
+        this.disciplineDetail = disciplineDetail;
+    }
+
+    public Long getIllegallyTypeId() {
+        return illegallyTypeId;
+    }
+
+    public void setIllegallyTypeId(Long illegallyTypeId) {
+        this.illegallyTypeId = illegallyTypeId;
+    }
+
 }

+ 100 - 86
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examcapture/ExamCaptureAuditInfo.java

@@ -16,15 +16,16 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
  * @since: 2018/8/31
  */
 public class ExamCaptureAuditInfo implements JsonSerializable {
+
     /**
-	 *
-	 */
-	private static final long serialVersionUID = 6991258456890821018L;
+     *
+     */
+    private static final long serialVersionUID = 6991258456890821018L;
 
-	/**
+    /**
      * 考试记录ID
      */
-	private Long examRecordDataId;
+    private Long examRecordDataId;
 
     private Long studentId;
 
@@ -43,47 +44,59 @@ public class ExamCaptureAuditInfo implements JsonSerializable {
      * 审核状态
      */
     private String status;
+
     /**
      * 违纪详情
      */
     private String disciplineDetail;
+
     private String disciplineType;
+
     /**
      * 是否异常数据
      */
     private Boolean isWarn;
+
     /**
      * 是否被审核过
      */
     private Boolean isAudit;
+
     /**
      * 是否违纪
      */
     private Boolean isIllegality;
+
     /**
      * 抓拍比对成功次数
      */
     private Integer faceSuccessCount;
+
     /**
      * 抓拍比对失败次数
      */
     private Integer faceFailedCount;
+
     /**
      * 抓拍存在陌生人的次数
      */
     private Integer faceStrangerCount;
+
     /**
      * 抓拍比对总次数
      */
     private Integer faceTotalCount;
+
     /**
      * 抓拍比对成功比率
      */
     private Double faceSuccessPercent;
+
     /**
      * 活体检测结果
      */
     private String faceVerifyResult;
+
     /**
      * 人脸五官坐标比对值
      */
@@ -99,7 +112,7 @@ public class ExamCaptureAuditInfo implements JsonSerializable {
      */
     private String virtualCameraNames;
 
-/**
+    /**
      * 同步抓拍照片URL
      */
     private String syncCaptureFileUrl;
@@ -201,112 +214,112 @@ public class ExamCaptureAuditInfo implements JsonSerializable {
         this.faceLandmarkVal = faceLandmarkVal;
     }
 
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
+    public Long getExamRecordDataId() {
+        return examRecordDataId;
+    }
 
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
 
-	public String getDisciplineType() {
-		return disciplineType;
-	}
+    public String getDisciplineType() {
+        return disciplineType;
+    }
 
-	public void setDisciplineType(String disciplineType) {
-		this.disciplineType = disciplineType;
-	}
+    public void setDisciplineType(String disciplineType) {
+        this.disciplineType = disciplineType;
+    }
 
-	public String getStudentName() {
-		return studentName;
-	}
+    public String getStudentName() {
+        return studentName;
+    }
 
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
 
-	public String getStudentCode() {
-		return studentCode;
-	}
+    public String getStudentCode() {
+        return studentCode;
+    }
 
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
 
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
+    public String getIdentityNumber() {
+        return identityNumber;
+    }
 
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
+    public void setIdentityNumber(String identityNumber) {
+        this.identityNumber = identityNumber;
+    }
 
-	public String getCourseCode() {
-		return courseCode;
-	}
+    public String getCourseCode() {
+        return courseCode;
+    }
 
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
 
-	public String getCourseName() {
-		return courseName;
-	}
+    public String getCourseName() {
+        return courseName;
+    }
 
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
 
-	public Boolean getIsWarn() {
-		return isWarn;
-	}
+    public Boolean getIsWarn() {
+        return isWarn;
+    }
 
-	public void setIsWarn(Boolean isWarn) {
-		this.isWarn = isWarn;
-	}
+    public void setIsWarn(Boolean isWarn) {
+        this.isWarn = isWarn;
+    }
 
-	public Long getStudentId() {
-		return studentId;
-	}
+    public Long getStudentId() {
+        return studentId;
+    }
 
-	public void setStudentId(Long studentId) {
-		this.studentId = studentId;
-	}
+    public void setStudentId(Long studentId) {
+        this.studentId = studentId;
+    }
 
-	public Boolean getIsAudit() {
-		return isAudit;
-	}
+    public Boolean getIsAudit() {
+        return isAudit;
+    }
 
-	public void setIsAudit(Boolean isAudit) {
-		this.isAudit = isAudit;
-	}
+    public void setIsAudit(Boolean isAudit) {
+        this.isAudit = isAudit;
+    }
 
-	public Boolean getIsIllegality() {
-		return isIllegality;
-	}
+    public Boolean getIsIllegality() {
+        return isIllegality;
+    }
 
-	public void setIsIllegality(Boolean isIllegality) {
-		this.isIllegality = isIllegality;
-	}
+    public void setIsIllegality(Boolean isIllegality) {
+        this.isIllegality = isIllegality;
+    }
 
-	public Double getBaiduFaceLivenessSuccessPercent() {
-		return baiduFaceLivenessSuccessPercent;
-	}
+    public Double getBaiduFaceLivenessSuccessPercent() {
+        return baiduFaceLivenessSuccessPercent;
+    }
 
-	public void setBaiduFaceLivenessSuccessPercent(
-			Double baiduFaceLivenessSuccessPercent) {
-		this.baiduFaceLivenessSuccessPercent = baiduFaceLivenessSuccessPercent;
-	}
+    public void setBaiduFaceLivenessSuccessPercent(
+            Double baiduFaceLivenessSuccessPercent) {
+        this.baiduFaceLivenessSuccessPercent = baiduFaceLivenessSuccessPercent;
+    }
 
-	public String getVirtualCameraNames() {
-		return virtualCameraNames;
-	}
+    public String getVirtualCameraNames() {
+        return virtualCameraNames;
+    }
 
-	public void setVirtualCameraNames(String virtualCameraNames) {
-		this.virtualCameraNames = virtualCameraNames;
-	}
+    public void setVirtualCameraNames(String virtualCameraNames) {
+        this.virtualCameraNames = virtualCameraNames;
+    }
 
-	public String getSyncCaptureFileUrl() {
+    public String getSyncCaptureFileUrl() {
         return syncCaptureFileUrl;
     }
 
@@ -353,4 +366,5 @@ public class ExamCaptureAuditInfo implements JsonSerializable {
     public void setSwitchScreenCount(Integer switchScreenCount) {
         this.switchScreenCount = switchScreenCount;
     }
+
 }

+ 23 - 17
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examcapture/ExamCaptureInfo.java

@@ -16,22 +16,27 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
  * @since: 2018/8/31
  */
 public class ExamCaptureInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 3199275931294184644L;
+
     /**
-	 * 
-	 */
-	private static final long serialVersionUID = 3199275931294184644L;
-	/**
      * 主键
      */
     private Long id;
+
     /**
      * ec_oe_exam_record_data_ID
      */
     private Long examRecordDataId;
+
     /**
      * 文件URL
      */
     private String fileUrl;
+
     /**
      * 返回信息(JSON)
      */
@@ -41,6 +46,7 @@ public class ExamCaptureInfo implements JsonSerializable {
      * 人脸比较是否通过
      */
     private Boolean isPass;
+
     /**
      * 是否有陌生人 1是 0否
      * 就是摄像头拍到不止考生一人
@@ -51,7 +57,7 @@ public class ExamCaptureInfo implements JsonSerializable {
      * 百度活体检测是否通过
      */
     private Boolean isFacelivenessPass;
-    
+
     /**
      * 虚拟摄像头名称
      */
@@ -105,20 +111,20 @@ public class ExamCaptureInfo implements JsonSerializable {
         this.isStranger = stranger;
     }
 
-	public Boolean getIsFacelivenessPass() {
-		return isFacelivenessPass;
-	}
+    public Boolean getIsFacelivenessPass() {
+        return isFacelivenessPass;
+    }
 
-	public void setIsFacelivenessPass(Boolean isFacelivenessPass) {
-		this.isFacelivenessPass = isFacelivenessPass;
-	}
+    public void setIsFacelivenessPass(Boolean isFacelivenessPass) {
+        this.isFacelivenessPass = isFacelivenessPass;
+    }
 
-	public String getVirtualCameraNames() {
-		return virtualCameraNames;
-	}
+    public String getVirtualCameraNames() {
+        return virtualCameraNames;
+    }
 
-	public void setVirtualCameraNames(String virtualCameraNames) {
-		this.virtualCameraNames = virtualCameraNames;
-	}
+    public void setVirtualCameraNames(String virtualCameraNames) {
+        this.virtualCameraNames = virtualCameraNames;
+    }
 
 }

+ 39 - 3
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordDataBean.java

@@ -1,63 +1,76 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord;
 
-import java.util.Date;
-
 import cn.com.qmth.examcloud.api.commons.enums.ExamType;
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.ExamRecordStatus;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess;
 
+import java.util.Date;
+
 public class ExamRecordDataBean implements JsonSerializable {
+
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = 1341159150606432450L;
+
     /**
      * 主键
      */
     private Long id;
+
     /**
      * 考试ID
      */
     private Long examId;
+
     /**
      * 考试类型
      */
     private ExamType examType;
+
     /**
      * 考生ID
      */
     private Long examStudentId;
+
     /**
      * 学生ID
      */
     private Long studentId;
+
     /**
      * 学号
      */
     private String studentCode;
+
     /**
      * 学生姓名
      */
     private String studentName;
+
     /**
      * 身份证号
      */
     private String identityNumber;
+
     /**
      * 课程ID
      */
     private Long courseId;
 
     private String courseLevel;
+
     /**
      * 学习中心ID
      */
     private Long orgId;
+
     /**
      * 顶级机构ID
      */
     private Long rootOrgId;
+
     /**
      * 基础试卷ID
      */
@@ -67,10 +80,12 @@ public class ExamRecordDataBean implements JsonSerializable {
      * 试卷类型
      */
     private String paperType;
+
     /**
      * 试卷结构 ID
      */
     private String paperStructId;
+
     /**
      * 采集人
      */
@@ -80,30 +95,37 @@ public class ExamRecordDataBean implements JsonSerializable {
      * 考试作答记录id
      */
     private String examRecordQuestionsId;
+
     /**
      * 考试记录状态(考试中,考试结束,考试过期,考试作废)
      */
     private ExamRecordStatus examRecordStatus;
+
     /**
      * 考试开始时间
      */
     private Date startTime;
+
     /**
      * 考试结束时间
      */
     private Date endTime;
+
     /**
      * 考试被清理时间
      */
     private Date cleanTime;
+
     /**
      * 是否异常数据
      */
     private Boolean isWarn;
+
     /**
      * 是否被审核过
      */
     private Boolean isAudit;
+
     /**
      * 是否违纪
      */
@@ -113,50 +135,62 @@ public class ExamRecordDataBean implements JsonSerializable {
      * 考试时长
      */
     private Long usedExamTime;
+
     /**
      * 第几次考试
      */
     private Integer examOrder;
+
     /**
      * 是否为重考
      */
     private Boolean isReexamine;
+
     /**
      * 是否断点续考
      */
     private Boolean isContinued;
+
     /**
      * 是否是全客观题卷  1:是   0:否
      */
     private Boolean isAllObjectivePaper;
+
     /**
      * 断点续考次数
      */
     private Integer continuedCount;
+
     /**
      * 是否达到最大断点限制
      */
     private Boolean isExceed;
+
     /**
      * 抓拍比对成功次数
      */
     private Integer faceSuccessCount;
+
     /**
      * 抓拍比对失败次数
      */
     private Integer faceFailedCount;
+
     /**
      * 抓拍存在陌生人的次数
      */
     private Integer faceStrangerCount;
+
     /**
      * 抓拍比对总次数
      */
     private Integer faceTotalCount;
+
     /**
      * 抓拍比对成功比率
      */
     private Double faceSuccessPercent;
+
     /**
      * @see cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess
      * 活体检测结果
@@ -167,6 +201,7 @@ public class ExamRecordDataBean implements JsonSerializable {
      * 百度人脸活体检测通过率
      */
     private Double baiduFaceLivenessSuccessPercent;
+
     /**
      * 人脸五官坐标比对值
      */
@@ -489,4 +524,5 @@ public class ExamRecordDataBean implements JsonSerializable {
     public void setExamRecordQuestionsId(String examRecordQuestionsId) {
         this.examRecordQuestionsId = examRecordQuestionsId;
     }
+
 }

+ 25 - 26
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordEntityConvert.java

@@ -7,20 +7,6 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageImpl;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
-import org.springframework.stereotype.Component;
-
-import com.google.common.collect.Lists;
-
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.oe.admin.base.Constants;
 import cn.com.qmth.examcloud.core.oe.admin.base.utils.DateUtils;
@@ -37,6 +23,18 @@ import cn.com.qmth.examcloud.support.cache.bean.CourseCacheBean;
 import cn.com.qmth.examcloud.support.cache.bean.OrgCacheBean;
 import cn.com.qmth.examcloud.support.helper.ExamCacheTransferHelper;
 import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 类信息转换
@@ -47,8 +45,8 @@ import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
 @Component
 public class ExamRecordEntityConvert {
 
-	@Autowired
-	private ExamRecordDataRepo examRecordDataRepo;
+    @Autowired
+    private ExamRecordDataRepo examRecordDataRepo;
 
     @Autowired
     private GainBaseDataService gainBaseDataService;
@@ -56,11 +54,11 @@ public class ExamRecordEntityConvert {
     @Autowired
     private ExamScoreRepo examScoreRepo;
 
-    public  ExamRecordInfo of(ExamRecordDataEntity recordData,Map<String,Object> cahcheMap) {
+    public ExamRecordInfo of(ExamRecordDataEntity recordData, Map<String, Object> cahcheMap) {
         if (recordData == null) {
             return null;
         }
-        ExamRecordDataEntity record = GlobalHelper.getEntity(examRecordDataRepo,recordData.getId(),ExamRecordDataEntity.class);
+        ExamRecordDataEntity record = GlobalHelper.getEntity(examRecordDataRepo, recordData.getId(), ExamRecordDataEntity.class);
         if (record == null) {
             throw new StatusException(Constants.OE_CODE_500, "考试记录基础信息不存在!");
         }
@@ -159,7 +157,7 @@ public class ExamRecordEntityConvert {
 
         return info;
     }
-    
+
 
     public Page<ExamRecordInfo> of(Page<ExamRecordDataEntity> page) {
         Pageable pageable = PageRequest.of(page.getNumber(), page.getSize());
@@ -168,23 +166,24 @@ public class ExamRecordEntityConvert {
             return new PageImpl<ExamRecordInfo>(Lists.newArrayList(), pageable, page.getTotalElements());
         }
         //缓存
-        Map<String,Object> cahcheMap = new HashMap<String, Object>();
-        List<ExamRecordInfo> list = entities.stream().map(entity -> of(entity,cahcheMap)).collect(Collectors.toList());
+        Map<String, Object> cahcheMap = new HashMap<String, Object>();
+        List<ExamRecordInfo> list = entities.stream().map(entity -> of(entity, cahcheMap)).collect(Collectors.toList());
         return new PageImpl<ExamRecordInfo>(list, pageable, page.getTotalElements());
     }
 
     public List<ExamRecordInfo> ofList(List<ExamRecordDataEntity> entities) {
         //缓存
-        Map<String,Object> cahcheMap = new HashMap<>();
-        List<ExamRecordInfo> list = entities.stream().map(entity -> of(entity,cahcheMap)).collect(Collectors.toList());
+        Map<String, Object> cahcheMap = new HashMap<>();
+        List<ExamRecordInfo> list = entities.stream().map(entity -> of(entity, cahcheMap)).collect(Collectors.toList());
         return list;
     }
 
 
     public List<ExamRecordInfo> of(List<ExamRecordDataEntity> entities) {
-    	//缓存
-        Map<String,Object> cahcheMap = new HashMap<String, Object>();
-        List<ExamRecordInfo> list = entities.stream().map(entity -> of(entity,cahcheMap)).collect(Collectors.toList());
+        //缓存
+        Map<String, Object> cahcheMap = new HashMap<String, Object>();
+        List<ExamRecordInfo> list = entities.stream().map(entity -> of(entity, cahcheMap)).collect(Collectors.toList());
         return list;
     }
+
 }

+ 7 - 3
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordFileAnswerInfo.java

@@ -16,10 +16,12 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
  * @Version 1.0
  */
 public class ExamRecordFileAnswerInfo implements JsonSerializable {
+
     /**
-	 *
-	 */
-	private static final long serialVersionUID = -735354536432038902L;
+     *
+     */
+    private static final long serialVersionUID = -735354536432038902L;
+
     private Long id;
 
     /**
@@ -31,6 +33,7 @@ public class ExamRecordFileAnswerInfo implements JsonSerializable {
      * 文件路径:离线考试
      */
     private String offlineFileUrl;
+
     /**
      * 文件名称:离线考试
      */
@@ -119,4 +122,5 @@ public class ExamRecordFileAnswerInfo implements JsonSerializable {
     public void setOriginalFileName(String originalFileName) {
         this.originalFileName = originalFileName;
     }
+
 }

+ 121 - 66
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordInfo.java

@@ -7,15 +7,15 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord;
 
-import java.util.Date;
-import java.util.List;
-
 import cn.com.qmth.examcloud.api.commons.enums.ExamType;
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.ExamRecordStatus;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess;
 import cn.com.qmth.examcloud.support.excel.ExcelProperty;
 
+import java.util.Date;
+import java.util.List;
+
 /**
  * 考试记录
  *
@@ -23,254 +23,308 @@ import cn.com.qmth.examcloud.support.excel.ExcelProperty;
  * @since: 2018/8/15
  */
 public class ExamRecordInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -735354536432038902L;
+
     /**
-	 *
-	 */
-	private static final long serialVersionUID = -735354536432038902L;
-	/**
      * 考试记录ID
      */
     @ExcelProperty(name = "考试编码", width = 30, index = 14)
     private Long id;
+
     /**
      * 考试记录详细ID
      */
     private Long dataId;
+
     /**
      * 考试ID
      */
     private Long examId;
+
     /**
      * 考试类型
      */
     private String examType;
-    
+
     private ExamType examTypeValue;
+
     /**
      * 考试批次
      */
     @ExcelProperty(name = "考试批次", width = 30, index = 13)
     private String examName;
+
     /**
      * 考生ID
      */
     private Long examStudentId;
+
     /**
      * 学生ID
      */
     private Long studentId;
+
     /**
      * 学号
      */
     @ExcelProperty(name = "学号", width = 30, index = 2)
     private String studentCode;
+
     /**
      * 学生姓名
      */
     @ExcelProperty(name = "姓名", width = 30, index = 1)
     private String studentName;
+
     /**
      * 准考证号
      */
     @ExcelProperty(name = "准考证号", width = 30, index = 21)
     private String studentNumber;
+
     /**
      * 身份证号
      */
     @ExcelProperty(name = "身份证号", width = 30, index = 12)
     private String identityNumber;
+
     /**
      * 课程ID
      */
     private Long courseId;
+
     /**
      * 课程Code
      */
     @ExcelProperty(name = "课程代码", width = 30, index = 11)
     private String courseCode;
+
     /**
      * 课程名称
      */
     @ExcelProperty(name = "课程名称", width = 30, index = 7)
     private String courseName;
+
     /**
      * 课程名称(课程代码)
      */
     @ExcelProperty(name = "课程名称(课程代码)", width = 30, index = 10)
     private String courseNameAndCode;
+
     /**
      * 课程层次
      */
     @ExcelProperty(name = "层次", width = 30, index = 4)
     private String courseLevel;
+
     /**
      * 年级
      */
     @ExcelProperty(name = "年级", width = 30, index = 5)
     private String grade;
+
     /**
      * 专业
      */
     @ExcelProperty(name = "专业", width = 30, index = 6)
     private String specialtyName;
+
     /**
      * 学习中心ID
      */
     private Long orgId;
+
     /**
      * 学习中心名称
      */
     @ExcelProperty(name = "学习中心", width = 30, index = 3)
     private String orgName;
+
     /**
      * 顶级机构ID
      */
     private Long rootOrgId;
+
     /**
      * 基础试卷ID
      */
     private String basePaperId;
+
     /**
      * 试卷结构 ID
      */
     private String paperStructId;
+
     /**
      * 考试开始时间
      */
     private Date startTime;
+
     /**
      * 考试进入时间
      */
     @ExcelProperty(name = "考试进入时间", width = 30, index = 8)
     private String paperStartTime;
+
     /**
      * 考试结束时间
      */
     private Date endTime;
+
     /**
      * 考试被清理时间
      */
     private Date cleanTime;
+
     /**
      * 是否异常数据
      */
     private Boolean isWarn;
+
     /**
      * 是否被审核过
      */
     private Boolean isAudit;
+
     /**
      * 是否违纪
      */
     @ExcelProperty(name = "是否违纪(终审)", width = 30, index = 26)
     private String isIllegality;
-    
+
     private Boolean isIllegalityValue;
+
     /**
      * 考试记录状态(考试中,考试结束,考试过期,考试作废)
      */
     private String examRecordStatus;
-    
+
     private ExamRecordStatus examRecordStatusValue;
+
     /**
      * 采集人
      */
     @ExcelProperty(name = "信息采集人", width = 30, index = 29)
     private String infoCollector;
+
     /**
      * 考试时长
      */
     private Long usedExamTime;
+
     /**
      * 每次考试持续时间
      */
     @ExcelProperty(name = "每次考试持续时间", width = 30, index = 16)
     private String examTime;
+
     /**
      * 第几次考试
      */
     @ExcelProperty(name = "考试次数", width = 30, index = 15)
     private Integer examOrder;
+
     /**
      * 是否为重考
      */
     private Boolean isReexamine;
+
     /**
      * 是否断点续考
      */
     private Boolean isContinued;
+
     /**
      * 断点续考次数
      */
     @ExcelProperty(name = "断点续考次数", width = 30, index = 20)
     private Integer continuedCount;
+
     /**
      * 抓拍比对成功次数
      */
     @ExcelProperty(name = "成功次数", width = 30, index = 18)
     private Integer faceSuccessCount;
+
     /**
      * 抓拍比对失败次数
      */
     private Integer faceFailedCount;
+
     /**
      * 抓拍存在陌生人的次数
      */
     private Integer faceStrangerCount;
+
     /**
      * 抓拍比对总次数
      */
     @ExcelProperty(name = "校验次数", width = 30, index = 17)
     private Integer faceTotalCount;
+
     /**
      * 抓拍比对成功比率
      */
     @ExcelProperty(name = "成功率", width = 30, index = 19)
     private Double faceSuccessPercent;
+
     /**
      * 活体检测结果
      */
     private String faceVerifyResult;
-    
+
     private IsSuccess faceVerifyResultValue;
+
     /**
      * 人脸五官坐标比对值
      */
     private Double faceLandmarkVal;
+
     /**
      * 百度人脸活体检测通过率
      */
     private Double baiduFaceLivenessSuccessPercent;
+
     /**
      * 卷面总分
      */
     @ExcelProperty(name = "卷面总分", width = 30, index = 24)
     private String paperTotalScore;
+
     /**
      * 是否提交试卷
      */
     @ExcelProperty(name = "是否提交交卷", width = 30, index = 27)
     private String isSubmit;
+
     /**
      * 考试交卷时间
      */
     @ExcelProperty(name = "考试交卷时间", width = 30, index = 9)
     private String paperSubmitTime;
+
     /**
      * 客观题总分
      */
     @ExcelProperty(name = "客观题总分", width = 30, index = 22)
     private String objectiveTotalScore;
+
     /**
      * 主观题总分
      */
     @ExcelProperty(name = "主观题总分", width = 30, index = 23)
     private String subjectiveTotalScore;
+
     /**
      * 违纪标志
      */
     @ExcelProperty(name = "违纪标志", width = 30, index = 25)
     private String disciplineSign;
+
     /**
      * 学生电话
      */
@@ -686,46 +740,46 @@ public class ExamRecordInfo implements JsonSerializable {
         this.paperStartTime = paperStartTime;
     }
 
-	public Boolean getIsWarn() {
-		return isWarn;
-	}
+    public Boolean getIsWarn() {
+        return isWarn;
+    }
 
-	public void setIsWarn(Boolean isWarn) {
-		this.isWarn = isWarn;
-	}
+    public void setIsWarn(Boolean isWarn) {
+        this.isWarn = isWarn;
+    }
 
-	public Boolean getIsAudit() {
-		return isAudit;
-	}
+    public Boolean getIsAudit() {
+        return isAudit;
+    }
 
-	public void setIsAudit(Boolean isAudit) {
-		this.isAudit = isAudit;
-	}
+    public void setIsAudit(Boolean isAudit) {
+        this.isAudit = isAudit;
+    }
 
-	public Boolean getIsReexamine() {
-		return isReexamine;
-	}
+    public Boolean getIsReexamine() {
+        return isReexamine;
+    }
 
-	public void setIsReexamine(Boolean isReexamine) {
-		this.isReexamine = isReexamine;
-	}
+    public void setIsReexamine(Boolean isReexamine) {
+        this.isReexamine = isReexamine;
+    }
 
-	public Boolean getIsContinued() {
-		return isContinued;
-	}
+    public Boolean getIsContinued() {
+        return isContinued;
+    }
 
-	public void setIsContinued(Boolean isContinued) {
-		this.isContinued = isContinued;
-	}
+    public void setIsContinued(Boolean isContinued) {
+        this.isContinued = isContinued;
+    }
 
-	public Double getBaiduFaceLivenessSuccessPercent() {
-		return baiduFaceLivenessSuccessPercent;
-	}
+    public Double getBaiduFaceLivenessSuccessPercent() {
+        return baiduFaceLivenessSuccessPercent;
+    }
 
-	public void setBaiduFaceLivenessSuccessPercent(
-			Double baiduFaceLivenessSuccessPercent) {
-		this.baiduFaceLivenessSuccessPercent = baiduFaceLivenessSuccessPercent;
-	}
+    public void setBaiduFaceLivenessSuccessPercent(
+            Double baiduFaceLivenessSuccessPercent) {
+        this.baiduFaceLivenessSuccessPercent = baiduFaceLivenessSuccessPercent;
+    }
 
     public List<ExamRecordFileAnswerInfo> getOfflineFiles() {
         return offlineFiles;
@@ -752,37 +806,37 @@ public class ExamRecordInfo implements JsonSerializable {
         this.ip = ip;
     }
 
-	public ExamType getExamTypeValue() {
-		return examTypeValue;
-	}
+    public ExamType getExamTypeValue() {
+        return examTypeValue;
+    }
 
-	public void setExamTypeValue(ExamType examTypeValue) {
-		this.examTypeValue = examTypeValue;
-	}
+    public void setExamTypeValue(ExamType examTypeValue) {
+        this.examTypeValue = examTypeValue;
+    }
 
-	public Boolean getIsIllegalityValue() {
-		return isIllegalityValue;
-	}
+    public Boolean getIsIllegalityValue() {
+        return isIllegalityValue;
+    }
 
-	public void setIsIllegalityValue(Boolean isIllegalityValue) {
-		this.isIllegalityValue = isIllegalityValue;
-	}
+    public void setIsIllegalityValue(Boolean isIllegalityValue) {
+        this.isIllegalityValue = isIllegalityValue;
+    }
 
-	public ExamRecordStatus getExamRecordStatusValue() {
-		return examRecordStatusValue;
-	}
+    public ExamRecordStatus getExamRecordStatusValue() {
+        return examRecordStatusValue;
+    }
 
-	public void setExamRecordStatusValue(ExamRecordStatus examRecordStatusValue) {
-		this.examRecordStatusValue = examRecordStatusValue;
-	}
+    public void setExamRecordStatusValue(ExamRecordStatus examRecordStatusValue) {
+        this.examRecordStatusValue = examRecordStatusValue;
+    }
 
-	public IsSuccess getFaceVerifyResultValue() {
-		return faceVerifyResultValue;
-	}
+    public IsSuccess getFaceVerifyResultValue() {
+        return faceVerifyResultValue;
+    }
 
-	public void setFaceVerifyResultValue(IsSuccess faceVerifyResultValue) {
-		this.faceVerifyResultValue = faceVerifyResultValue;
-	}
+    public void setFaceVerifyResultValue(IsSuccess faceVerifyResultValue) {
+        this.faceVerifyResultValue = faceVerifyResultValue;
+    }
 
     public String getAuditUserName() {
         return auditUserName;
@@ -799,4 +853,5 @@ public class ExamRecordInfo implements JsonSerializable {
     public void setHasVirtual(Boolean hasVirtual) {
         this.hasVirtual = hasVirtual;
     }
+
 }

+ 66 - 43
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordQuery.java

@@ -7,16 +7,14 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import com.alibaba.fastjson.JSON;
-import org.apache.commons.lang3.StringUtils;
-
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 import cn.com.qmth.examcloud.core.oe.admin.dao.enums.ExamRecordStatus;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 考试记录查询条件类
@@ -35,55 +33,79 @@ public class ExamRecordQuery implements JsonSerializable {
 
     @ApiModelProperty("当前页数")
     private Integer pageNo;
+
     @ApiModelProperty("每页条数")
     private Integer pageSize;
+
     @ApiModelProperty("学习中心ID")
     private Long orgId;
+
     @ApiModelProperty("考试ID")
     private Long examId;
+
     @ApiModelProperty("场次ID")
     private Long examStageId;
+
     @ApiModelProperty("学号")
     private String studentCode;
+
     @ApiModelProperty("学生姓名")
     private String studentName;
+
     @ApiModelProperty("身份证号")
     private String identityNumber;
+
     @ApiModelProperty("课程ID")
     private Long courseId;
+
     @ApiModelProperty("课程层次")
     private String courseLevel;
+
     @ApiModelProperty("考试记录ID")
     private Long examRecordId;
+
     @ApiModelProperty("审核状态")
     private Boolean isAudit;
+
     @ApiModelProperty("是否需要审核")
     private Boolean isWarn;
+
     @ApiModelProperty("是否有陌生人脸")
     private Boolean hasStranger;
+
     @ApiModelProperty("人脸识别成功率下限")
     private Double faceSuccessPercentLower;
+
     @ApiModelProperty("人脸识别成功率上限")
     private Double faceSuccessPercentUpper;
+
     @ApiModelProperty("人脸真实性比率下限")
     private Double livenessSuccessPercentLower;
+
     @ApiModelProperty("人脸真实性比率上限")
     private Double livenessSuccessPercentUpper;
+
     @ApiModelProperty("考试记录状态:EXAM_ING、EXAM_END、EXAM_OVERDUE、EXAM_INVALID")
     private List<String> recordStatuses;
+
     @ApiModelProperty("采集人")
     private String infoCollector;
+
     @ApiModelProperty("开考起始时间")
     private String startTime;
+
     @ApiModelProperty("开考截止时间")
     private String endTime;
+
     @ApiModelProperty("是否有虚拟设备")
     private Boolean hasVirtual;
+
     @ApiModelProperty("交卷起始时间")
     private String submitStartTime;
+
     @ApiModelProperty("交卷截止时间")
     private String submitEndTime;
-    
+
     @ApiModelProperty("是否违纪")
     private Boolean isIllegality;
 
@@ -240,22 +262,22 @@ public class ExamRecordQuery implements JsonSerializable {
     }
 
     public Double getLivenessSuccessPercentLower() {
-		return livenessSuccessPercentLower;
-	}
+        return livenessSuccessPercentLower;
+    }
 
-	public void setLivenessSuccessPercentLower(Double livenessSuccessPercentLower) {
-		this.livenessSuccessPercentLower = livenessSuccessPercentLower;
-	}
+    public void setLivenessSuccessPercentLower(Double livenessSuccessPercentLower) {
+        this.livenessSuccessPercentLower = livenessSuccessPercentLower;
+    }
 
-	public Double getLivenessSuccessPercentUpper() {
-		return livenessSuccessPercentUpper;
-	}
+    public Double getLivenessSuccessPercentUpper() {
+        return livenessSuccessPercentUpper;
+    }
 
-	public void setLivenessSuccessPercentUpper(Double livenessSuccessPercentUpper) {
-		this.livenessSuccessPercentUpper = livenessSuccessPercentUpper;
-	}
+    public void setLivenessSuccessPercentUpper(Double livenessSuccessPercentUpper) {
+        this.livenessSuccessPercentUpper = livenessSuccessPercentUpper;
+    }
 
-	public String getInfoCollector() {
+    public String getInfoCollector() {
         return infoCollector;
     }
 
@@ -279,29 +301,29 @@ public class ExamRecordQuery implements JsonSerializable {
         this.endTime = endTime;
     }
 
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
+    public Long getExamRecordDataId() {
+        return examRecordDataId;
+    }
 
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
 
-	public Boolean getIsAudit() {
-		return isAudit;
-	}
+    public Boolean getIsAudit() {
+        return isAudit;
+    }
 
-	public void setIsAudit(Boolean isAudit) {
-		this.isAudit = isAudit;
-	}
+    public void setIsAudit(Boolean isAudit) {
+        this.isAudit = isAudit;
+    }
 
-	public Boolean getIsWarn() {
-		return isWarn;
-	}
+    public Boolean getIsWarn() {
+        return isWarn;
+    }
 
-	public void setIsWarn(Boolean isWarn) {
-		this.isWarn = isWarn;
-	}
+    public void setIsWarn(Boolean isWarn) {
+        this.isWarn = isWarn;
+    }
 
 
     public Boolean getHasVirtual() {
@@ -337,13 +359,13 @@ public class ExamRecordQuery implements JsonSerializable {
         this.submitEndTime = submitEndTime;
     }
 
-	public Long getCreator() {
-		return creator;
-	}
+    public Long getCreator() {
+        return creator;
+    }
 
-	public void setCreator(Long creator) {
-		this.creator = creator;
-	}
+    public void setCreator(Long creator) {
+        this.creator = creator;
+    }
 
     public Boolean getIsIllegality() {
         return isIllegality;
@@ -368,4 +390,5 @@ public class ExamRecordQuery implements JsonSerializable {
     public void setAuditUserName(String auditUserName) {
         this.auditUserName = auditUserName;
     }
+
 }

+ 118 - 89
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamStudentQuestionScoreInfo.java

@@ -1,126 +1,155 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examrecord;
+
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 import cn.com.qmth.examcloud.support.excel.ExcelProperty;
+
 /**
- * 
  * @author lideyin
  * @date 2019年3月14日 下午2:37:57
  * @description 考生作答得分详情
  */
 public class ExamStudentQuestionScoreInfo implements JsonSerializable {
 
-	private static final long serialVersionUID = -735354116432038902L;
-	/**
+    private static final long serialVersionUID = -735354116432038902L;
+
+    /**
      * 考试记录ID
      */
-	@ExcelProperty(name = "考试记录ID", width = 30, index = 1)
-	private Long examRecordDataId;
+    @ExcelProperty(name = "考试记录ID", width = 30, index = 1)
+    private Long examRecordDataId;
+
     /**
      * 课程代码
      */
-	@ExcelProperty(name = "课程代码", width = 30, index = 2)
-	private String courseCode;
+    @ExcelProperty(name = "课程代码", width = 30, index = 2)
+    private String courseCode;
+
     /**
      * 课程名称
      */
-	@ExcelProperty(name = "课程名称", width = 30, index = 3)
-	private String courseName;
+    @ExcelProperty(name = "课程名称", width = 30, index = 3)
+    private String courseName;
+
     /**
      * 考试名称
      */
-	@ExcelProperty(name = "考试名称", width = 30, index = 4)
-	private String examName;
-   /**
-    * 学号
-    */
-	@ExcelProperty(name = "学号", width = 30, index = 5)
-	private String studentCode;
+    @ExcelProperty(name = "考试名称", width = 30, index = 4)
+    private String examName;
+
+    /**
+     * 学号
+     */
+    @ExcelProperty(name = "学号", width = 30, index = 5)
+    private String studentCode;
+
     /**
      * 原始试卷Id
      */
-	@ExcelProperty(name = "原始试卷Id", width = 30, index = 6)
-	private String basePaperId;
+    @ExcelProperty(name = "原始试卷Id", width = 30, index = 6)
+    private String basePaperId;
+
     /**
      * 大题号
      */
-	@ExcelProperty(name = "大题号", width = 30, index = 7)
-	private Integer mainNumber;
+    @ExcelProperty(name = "大题号", width = 30, index = 7)
+    private Integer mainNumber;
+
     /**
      * 顺序/小题号
      */
-	@ExcelProperty(name = "小题号", width = 30, index = 8)
-	private Integer order;
+    @ExcelProperty(name = "小题号", width = 30, index = 8)
+    private Integer order;
+
     /**
      * 每题得分
      */
-	@ExcelProperty(name = "每题得分", width = 30, index = 9)
-	private Double studentScore;
+    @ExcelProperty(name = "每题得分", width = 30, index = 9)
+    private Double studentScore;
+
     /**
      * 考生作答
      */
-	@ExcelProperty(name = "考生作答", width = 30, index = 10)
-	private String studentAnswer;
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-	public String getCourseCode() {
-		return courseCode;
-	}
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-	
-	public String getExamName() {
-		return examName;
-	}
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
-	public String getStudentCode() {
-		return studentCode;
-	}
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-	
-	public String getCourseName() {
-		return courseName;
-	}
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-	public String getBasePaperId() {
-		return basePaperId;
-	}
-	public void setBasePaperId(String basePaperId) {
-		this.basePaperId = basePaperId;
-	}
-	public Integer getMainNumber() {
-		return mainNumber;
-	}
-	public void setMainNumber(Integer mainNumber) {
-		this.mainNumber = mainNumber;
-	}
-	public Integer getOrder() {
-		return order;
-	}
-	public void setOrder(Integer order) {
-		this.order = order;
-	}
-	public Double getStudentScore() {
-		return studentScore;
-	}
-	public void setStudentScore(Double studentScore) {
-		this.studentScore = studentScore;
-	}
-	public String getStudentAnswer() {
-		return studentAnswer;
-	}
-	public void setStudentAnswer(String studentAnswer) {
-		this.studentAnswer = studentAnswer;
-	}
-    
+    @ExcelProperty(name = "考生作答", width = 30, index = 10)
+    private String studentAnswer;
+
+    public Long getExamRecordDataId() {
+        return examRecordDataId;
+    }
+
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getBasePaperId() {
+        return basePaperId;
+    }
+
+    public void setBasePaperId(String basePaperId) {
+        this.basePaperId = basePaperId;
+    }
+
+    public Integer getMainNumber() {
+        return mainNumber;
+    }
+
+    public void setMainNumber(Integer mainNumber) {
+        this.mainNumber = mainNumber;
+    }
+
+    public Integer getOrder() {
+        return order;
+    }
+
+    public void setOrder(Integer order) {
+        this.order = order;
+    }
+
+    public Double getStudentScore() {
+        return studentScore;
+    }
+
+    public void setStudentScore(Double studentScore) {
+        this.studentScore = studentScore;
+    }
+
+    public String getStudentAnswer() {
+        return studentAnswer;
+    }
+
+    public void setStudentAnswer(String studentAnswer) {
+        this.studentAnswer = studentAnswer;
+    }
+
 }

+ 4 - 4
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ExamScoreEntityConvert.java

@@ -29,10 +29,10 @@ public class ExamScoreEntityConvert {
         studentQuery.setIdentityNumber(scoreQuery.getIdentityNumber());
         studentQuery.setCourseId(scoreQuery.getCourseId());
         studentQuery.setCourseLevel(scoreQuery.getCourseLevel());
-        if(scoreQuery.getFinished()!=null){
-        	studentQuery.setFinished(scoreQuery.getFinished()?1:0);
-        }else{
-        	studentQuery.setFinished(null);
+        if (scoreQuery.getFinished() != null) {
+            studentQuery.setFinished(scoreQuery.getFinished() ? 1 : 0);
+        } else {
+            studentQuery.setFinished(null);
         }
         studentQuery.setStartLimit(scoreQuery.getStartLimit());
         studentQuery.setEndLimit(scoreQuery.getEndLimit());

+ 46 - 22
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ExamScoreInfo.java

@@ -17,99 +17,118 @@ import cn.com.qmth.examcloud.support.excel.ExcelProperty;
  * @since: 2018/8/31
  */
 public class ExamScoreInfo implements JsonSerializable {
+
     /**
      * 考试ID
      */
     private Long examId;
+
     /**
      * 考试名称
      */
     @ExcelProperty(name = "批次名称", width = 30, index = 10)
     private String examName;
+
     /**
      * 学生ID
      */
     private Long studentId;
+
     /**
      * 学号
      */
     @ExcelProperty(name = "学号", width = 30, index = 2)
     private String studentCode;
+
     /**
      * 学生姓名
      */
     @ExcelProperty(name = "姓名", width = 30, index = 1)
     private String studentName;
+
     /**
      * 身份证号
      */
     @ExcelProperty(name = "身份证号", width = 30, index = 3)
     private String identityNumber;
+
     /**
      * 课程ID
      */
     private Long courseId;
+
     /**
      * 课程Code
      */
     @ExcelProperty(name = "课程代码", width = 30, index = 9)
     private String courseCode;
+
     /**
      * 课程名称
      */
     private String courseName;
+
     /**
      * 课程层次
      */
     @ExcelProperty(name = "层次", width = 30, index = 5)
     private String courseLevel;
+
     /**
      * 课程名称(课程代码)
      */
     @ExcelProperty(name = "课程名称(课程代码)", width = 30, index = 8)
     private String courseNameAndCode;
+
     /**
      * 学习中心ID
      */
     private Long orgId;
+
     /**
      * 学习中心代码
      */
     private String orgCode;
+
     /**
      * 学习中心名称
      */
     @ExcelProperty(name = "学习中心", width = 30, index = 4)
     private String orgName;
+
     /**
      * 专业名称
      */
     @ExcelProperty(name = "专业", width = 30, index = 7)
     private String specialtyName;
+
     /**
      * 年级
      */
     @ExcelProperty(name = "年级", width = 30, index = 6)
     private String grade;
+
     /**
      * 是否完成考试
      */
     private String isFinished;
-    
-    
+
+
     @ExcelProperty(name = "是否缺考", width = 30, index = 13)
     private String isAbsent;
-    
+
     /**
      * 最终成绩
      */
     @ExcelProperty(name = "考试最终成绩", width = 30, index = 17)
     private String finalExamScore;
+
     /**
      * 客观题得分总分
      */
     @ExcelProperty(name = "客观题得分", width = 30, index = 15)
     private String objectiveScore;
+
     /**
      * 主观题得分总分
      */
@@ -121,27 +140,31 @@ public class ExamScoreInfo implements JsonSerializable {
      */
     @ExcelProperty(name = "违纪次数", width = 30, index = 11)
     private String disciplineCount;
+
     /**
      * 正常提交试卷次数
      */
     @ExcelProperty(name = "正常提交试卷次数", width = 30, index = 12)
     private String submitCount;
+
     /**
      * 考试开始时间
      */
     @ExcelProperty(name = "成绩统计时间", width = 31, index = 14)
     private String startTime;
-    
+
     /**
      * 剩余考试次数
      */
     @ExcelProperty(name = "剩余考试次数", width = 31, index = 19)
     private Long leftExamTimes;
+
     /**
      * 采集人
      */
     @ExcelProperty(name = "采集人", width = 30, index = 18)
     private String infoCollector;
+
     public Long getExamId() {
         return examId;
     }
@@ -310,29 +333,29 @@ public class ExamScoreInfo implements JsonSerializable {
         this.startTime = startTime;
     }
 
-	public String getIsAbsent() {
-		return isAbsent;
-	}
+    public String getIsAbsent() {
+        return isAbsent;
+    }
 
-	public void setIsAbsent(String isAbsent) {
-		this.isAbsent = isAbsent;
-	}
+    public void setIsAbsent(String isAbsent) {
+        this.isAbsent = isAbsent;
+    }
 
-	public Long getLeftExamTimes() {
-		return leftExamTimes;
-	}
+    public Long getLeftExamTimes() {
+        return leftExamTimes;
+    }
 
-	public void setLeftExamTimes(Long leftExamTimes) {
-		this.leftExamTimes = leftExamTimes;
-	}
+    public void setLeftExamTimes(Long leftExamTimes) {
+        this.leftExamTimes = leftExamTimes;
+    }
 
-	public String getInfoCollector() {
-		return infoCollector;
-	}
+    public String getInfoCollector() {
+        return infoCollector;
+    }
 
-	public void setInfoCollector(String infoCollector) {
-		this.infoCollector = infoCollector;
-	}
+    public void setInfoCollector(String infoCollector) {
+        this.infoCollector = infoCollector;
+    }
 
     public String getObjectiveScore() {
         return objectiveScore;
@@ -349,4 +372,5 @@ public class ExamScoreInfo implements JsonSerializable {
     public void setSubjectiveScore(String subjectiveScore) {
         this.subjectiveScore = subjectiveScore;
     }
+
 }

+ 9 - 9
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ExamScoreQuery.java

@@ -53,7 +53,7 @@ public class ExamScoreQuery implements JsonSerializable {
 
     @ApiModelProperty("创建人ID")
     private Long creator;
-    
+
     public Long getRootOrgId() {
         return rootOrgId;
     }
@@ -166,13 +166,13 @@ public class ExamScoreQuery implements JsonSerializable {
         this.examStageId = examStageId;
     }
 
-	public Long getCreator() {
-		return creator;
-	}
+    public Long getCreator() {
+        return creator;
+    }
+
+    public void setCreator(Long creator) {
+        this.creator = creator;
+    }
+
 
-	public void setCreator(Long creator) {
-		this.creator = creator;
-	}
-    
-    
 }

+ 116 - 116
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ObjectiveScoreInfo.java

@@ -1,125 +1,125 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examscore;
 
 
-import java.util.Date;
-
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 
+import java.util.Date;
+
 /**
- * 
- * @author  	chenken
- * @date    	2018年9月27日 下午3:45:58
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年9月27日 下午3:45:58
+ * @company QMTH
  * @description 客观分信息
  */
-public class ObjectiveScoreInfo implements JsonSerializable{
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 3722050952090373601L;
-
-	/**
-	 * 考试记录ID
-	 */
-	private Long examRecordDataId;
-	
-	/**
-	 * 客观分总分
-	 */
-	private Double objectiveScore;
-	
-	/**
-	 * 第几次考
-	 */
-	private Integer examOrder;
-	
-	/**
-	 * 开始时间
-	 */
-	private Date startTime;
-	
-	/**
-	 * 交卷时间
-	 */
-	private Date endTime;
-	
-	/**
-	 * 是否待审核
-	 */
-	private Boolean isAuditing;
-	
-	/**
-	 * 是否违纪
-	 */
-	private Boolean isIllegality;
-
-	/**
-	 * 考试是否已结束
-	 */
-	private Boolean isExamEnded;
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-	public Double getObjectiveScore() {
-		return objectiveScore;
-	}
-
-	public void setObjectiveScore(Double objectiveScore) {
-		this.objectiveScore = objectiveScore;
-	}
-
-	public Integer getExamOrder() {
-		return examOrder;
-	}
-
-	public void setExamOrder(Integer examOrder) {
-		this.examOrder = examOrder;
-	}
-
-	public Date getStartTime() {
-		return startTime;
-	}
-
-	public void setStartTime(Date startTime) {
-		this.startTime = startTime;
-	}
-
-	public Date getEndTime() {
-		return endTime;
-	}
-
-	public void setEndTime(Date endTime) {
-		this.endTime = endTime;
-	}
-
-	public Boolean getIsAuditing() {
-		return isAuditing;
-	}
-
-	public void setIsAuditing(Boolean isAuditing) {
-		this.isAuditing = isAuditing;
-	}
-
-	public Boolean getIsIllegality() {
-		return isIllegality;
-	}
-
-	public void setIsIllegality(Boolean isIllegality) {
-		this.isIllegality = isIllegality;
-	}
-
-	public Boolean getIsExamEnded() {
-		return isExamEnded;
-	}
-
-	public void setIsExamEnded(Boolean examEnded) {
-		isExamEnded = examEnded;
-	}
+public class ObjectiveScoreInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 3722050952090373601L;
+
+    /**
+     * 考试记录ID
+     */
+    private Long examRecordDataId;
+
+    /**
+     * 客观分总分
+     */
+    private Double objectiveScore;
+
+    /**
+     * 第几次考
+     */
+    private Integer examOrder;
+
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 交卷时间
+     */
+    private Date endTime;
+
+    /**
+     * 是否待审核
+     */
+    private Boolean isAuditing;
+
+    /**
+     * 是否违纪
+     */
+    private Boolean isIllegality;
+
+    /**
+     * 考试是否已结束
+     */
+    private Boolean isExamEnded;
+
+    public Long getExamRecordDataId() {
+        return examRecordDataId;
+    }
+
+    public void setExamRecordDataId(Long examRecordDataId) {
+        this.examRecordDataId = examRecordDataId;
+    }
+
+    public Double getObjectiveScore() {
+        return objectiveScore;
+    }
+
+    public void setObjectiveScore(Double objectiveScore) {
+        this.objectiveScore = objectiveScore;
+    }
+
+    public Integer getExamOrder() {
+        return examOrder;
+    }
+
+    public void setExamOrder(Integer examOrder) {
+        this.examOrder = examOrder;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Boolean getIsAuditing() {
+        return isAuditing;
+    }
+
+    public void setIsAuditing(Boolean isAuditing) {
+        this.isAuditing = isAuditing;
+    }
+
+    public Boolean getIsIllegality() {
+        return isIllegality;
+    }
+
+    public void setIsIllegality(Boolean isIllegality) {
+        this.isIllegality = isIllegality;
+    }
+
+    public Boolean getIsExamEnded() {
+        return isExamEnded;
+    }
+
+    public void setIsExamEnded(Boolean examEnded) {
+        isExamEnded = examEnded;
+    }
+
 }

+ 8 - 2
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/CourseCompleteProgressExcel.java

@@ -8,10 +8,10 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent;
 
 
-import java.io.Serializable;
-
 import cn.com.qmth.examcloud.support.excel.ExcelProperty;
 
+import java.io.Serializable;
+
 /**
  * @Description 课程完成进度
  * @Author lideyin
@@ -19,16 +19,21 @@ import cn.com.qmth.examcloud.support.excel.ExcelProperty;
  * @Version 1.0
  */
 public class CourseCompleteProgressExcel implements Serializable {
+
     private static final long serialVersionUID = -8556362551712685945L;
 
     @ExcelProperty(name = "课程名称", index = 1)
     private String courseName;
+
     @ExcelProperty(name = "课程代码", index = 2)
     private String courseCode;
+
     @ExcelProperty(name = "报考人数", index = 3)
     private Integer allNum;
+
     @ExcelProperty(name = "实考人数", index = 4)
     private Integer completedNum;
+
     @ExcelProperty(name = "完成比率", index = 5)
     private Double completedProportion;
 
@@ -71,4 +76,5 @@ public class CourseCompleteProgressExcel implements Serializable {
     public void setCompletedProportion(Double completedProportion) {
         this.completedProportion = completedProportion;
     }
+
 }

+ 89 - 90
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/CourseProgressInfo.java

@@ -4,97 +4,96 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 
 
 /**
- * 
- * @author  	chenken
- * @date    	2018年10月25日 下午2:46:03
- * @company 	QMTH
+ * @author chenken
+ * @date 2018年10月25日 下午2:46:03
+ * @company QMTH
  * @description 课程进度
  */
 public class CourseProgressInfo implements JsonSerializable {
-	
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 5188606307210455329L;
-
-	private Long examId;
-	
-	private Long courseId;
-	
-	private String courseCode;
-	
-	private String courseName;
-	
-	private Integer completedNum;
-	
-	private Integer noCompletedNum;
-	
-	private Integer allNum;
-	
-	private Double completedProportion;
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public String getCourseName() {
-		return courseName;
-	}
-
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-
-	public Integer getCompletedNum() {
-		return completedNum;
-	}
-
-	public void setCompletedNum(Integer completedNum) {
-		this.completedNum = completedNum;
-	}
-
-	public Integer getNoCompletedNum() {
-		return noCompletedNum;
-	}
-
-	public void setNoCompletedNum(Integer noCompletedNum) {
-		this.noCompletedNum = noCompletedNum;
-	}
-
-	public Integer getAllNum() {
-		return allNum;
-	}
-
-	public void setAllNum(Integer allNum) {
-		this.allNum = allNum;
-	}
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-	public Long getCourseId() {
-		return courseId;
-	}
-
-	public void setCourseId(Long courseId) {
-		this.courseId = courseId;
-	}
-
-	public Double getCompletedProportion() {
-		return completedProportion;
-	}
-
-	public void setCompletedProportion(Double completedProportion) {
-		this.completedProportion = completedProportion;
-	}
-	
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 5188606307210455329L;
+
+    private Long examId;
+
+    private Long courseId;
+
+    private String courseCode;
+
+    private String courseName;
+
+    private Integer completedNum;
+
+    private Integer noCompletedNum;
+
+    private Integer allNum;
+
+    private Double completedProportion;
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public Integer getCompletedNum() {
+        return completedNum;
+    }
+
+    public void setCompletedNum(Integer completedNum) {
+        this.completedNum = completedNum;
+    }
+
+    public Integer getNoCompletedNum() {
+        return noCompletedNum;
+    }
+
+    public void setNoCompletedNum(Integer noCompletedNum) {
+        this.noCompletedNum = noCompletedNum;
+    }
+
+    public Integer getAllNum() {
+        return allNum;
+    }
+
+    public void setAllNum(Integer allNum) {
+        this.allNum = allNum;
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public Long getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Long courseId) {
+        this.courseId = courseId;
+    }
+
+    public Double getCompletedProportion() {
+        return completedProportion;
+    }
+
+    public void setCompletedProportion(Double completedProportion) {
+        this.completedProportion = completedProportion;
+    }
+
 }

+ 277 - 276
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentBean.java

@@ -5,307 +5,308 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 public class ExamStudentBean implements JsonSerializable {
 
 
-	/**
+    /**
      *
      */
     private static final long serialVersionUID = -205239358290227432L;
 
     /**
-	 * 不做业务字段使用
-	 */
-	private Long id;
-
-	/**
-	 * 考生ID(与考务的考生ID一致) 跟其他表关联使用
-	 */
-	private Long examStudentId;
-
-	/**
-	 * 考试ID
-	 */
-	private Long examId;
-
-	/**
-	 * 学生ID
-	 */
-	private Long studentId;
-
-	/**
-	 * 学号
-	 */
-	private String studentCode;
-
-	/**
-	 * 学生姓名
-	 */
-	private String studentName;
-
-	/**
-	 * 身份证号
-	 */
-	private String identityNumber;
-
-	/**
-	 * 课程ID
-	 */
-	private Long courseId;
-
-	/**
-	 * 课程Code
-	 */
-	private String courseCode;
-
-	/**
-	 * 课程层次
-	 */
-	private String courseLevel;
-
-	/**
-	 * 学习中心ID
-	 */
-	private Long orgId;
-
-	/**
-	 * 顶级机构ID
-	 */
-	private Long rootOrgId;
-
-	/**
-	 * 专业code
-	 */
-	private String specialtyCode;
-
-	/**
-	 * 专业名称
-	 */
-	private String specialtyName;
-
-	/**
-	 * 试卷类型
-	 */
-	private String paperType;
-
-	/**
-	 * 采集人
-	 */
-	private String infoCollector;
-
-	/**
-	 * 是否完成考试
-	 */
-	private Boolean finished;
-
-	/**
-	 * 已经考试的次数
-	 */
-	private Integer usedNum;
-
-	/**
-	 * 补加的考试次数
-	 */
-	private Integer extraNum;
-
-	/**
-	 * 年级
-	 */
-	private String grade;
-
-	/**
-	 * 是否可用
-	 */
-	private Boolean enable;
-
-	/**
-	 * 场次id
-	 */
-	private Long examStageId;
-
-	/**
-	 * 场次号
-	 */
-	private Integer examStageOrder;
-
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public Long getExamStudentId() {
-		return examStudentId;
-	}
-
-	public void setExamStudentId(Long examStudentId) {
-		this.examStudentId = examStudentId;
-	}
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-	public Long getStudentId() {
-		return studentId;
-	}
-
-	public void setStudentId(Long studentId) {
-		this.studentId = studentId;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getStudentName() {
-		return studentName;
-	}
-
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public Long getCourseId() {
-		return courseId;
-	}
-
-	public void setCourseId(Long courseId) {
-		this.courseId = courseId;
-	}
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public String getCourseLevel() {
-		return courseLevel;
-	}
-
-	public void setCourseLevel(String courseLevel) {
-		this.courseLevel = courseLevel;
-	}
+     * 不做业务字段使用
+     */
+    private Long id;
+
+    /**
+     * 考生ID(与考务的考生ID一致) 跟其他表关联使用
+     */
+    private Long examStudentId;
+
+    /**
+     * 考试ID
+     */
+    private Long examId;
+
+    /**
+     * 学生ID
+     */
+    private Long studentId;
+
+    /**
+     * 学号
+     */
+    private String studentCode;
+
+    /**
+     * 学生姓名
+     */
+    private String studentName;
+
+    /**
+     * 身份证号
+     */
+    private String identityNumber;
+
+    /**
+     * 课程ID
+     */
+    private Long courseId;
+
+    /**
+     * 课程Code
+     */
+    private String courseCode;
+
+    /**
+     * 课程层次
+     */
+    private String courseLevel;
+
+    /**
+     * 学习中心ID
+     */
+    private Long orgId;
+
+    /**
+     * 顶级机构ID
+     */
+    private Long rootOrgId;
+
+    /**
+     * 专业code
+     */
+    private String specialtyCode;
+
+    /**
+     * 专业名称
+     */
+    private String specialtyName;
+
+    /**
+     * 试卷类型
+     */
+    private String paperType;
+
+    /**
+     * 采集人
+     */
+    private String infoCollector;
+
+    /**
+     * 是否完成考试
+     */
+    private Boolean finished;
+
+    /**
+     * 已经考试的次数
+     */
+    private Integer usedNum;
+
+    /**
+     * 补加的考试次数
+     */
+    private Integer extraNum;
+
+    /**
+     * 年级
+     */
+    private String grade;
+
+    /**
+     * 是否可用
+     */
+    private Boolean enable;
+
+    /**
+     * 场次id
+     */
+    private Long examStageId;
+
+    /**
+     * 场次号
+     */
+    private Integer examStageOrder;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getExamStudentId() {
+        return examStudentId;
+    }
+
+    public void setExamStudentId(Long examStudentId) {
+        this.examStudentId = examStudentId;
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public Long getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Long studentId) {
+        this.studentId = studentId;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+
+    public String getIdentityNumber() {
+        return identityNumber;
+    }
+
+    public void setIdentityNumber(String identityNumber) {
+        this.identityNumber = identityNumber;
+    }
+
+    public Long getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Long courseId) {
+        this.courseId = courseId;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseLevel() {
+        return courseLevel;
+    }
+
+    public void setCourseLevel(String courseLevel) {
+        this.courseLevel = courseLevel;
+    }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public Long getRootOrgId() {
+        return rootOrgId;
+    }
+
+    public void setRootOrgId(Long rootOrgId) {
+        this.rootOrgId = rootOrgId;
+    }
+
+    public String getSpecialtyCode() {
+        return specialtyCode;
+    }
 
-	public Long getOrgId() {
-		return orgId;
-	}
-
-	public void setOrgId(Long orgId) {
-		this.orgId = orgId;
-	}
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public String getSpecialtyCode() {
-		return specialtyCode;
-	}
+    public void setSpecialtyCode(String specialtyCode) {
+        this.specialtyCode = specialtyCode;
+    }
 
-	public void setSpecialtyCode(String specialtyCode) {
-		this.specialtyCode = specialtyCode;
-	}
+    public String getSpecialtyName() {
+        return specialtyName;
+    }
 
-	public String getSpecialtyName() {
-		return specialtyName;
-	}
+    public void setSpecialtyName(String specialtyName) {
+        this.specialtyName = specialtyName;
+    }
 
-	public void setSpecialtyName(String specialtyName) {
-		this.specialtyName = specialtyName;
-	}
+    public String getPaperType() {
+        return paperType;
+    }
 
-	public String getPaperType() {
-		return paperType;
-	}
+    public void setPaperType(String paperType) {
+        this.paperType = paperType;
+    }
 
-	public void setPaperType(String paperType) {
-		this.paperType = paperType;
-	}
+    public String getInfoCollector() {
+        return infoCollector;
+    }
 
-	public String getInfoCollector() {
-		return infoCollector;
-	}
+    public void setInfoCollector(String infoCollector) {
+        this.infoCollector = infoCollector;
+    }
 
-	public void setInfoCollector(String infoCollector) {
-		this.infoCollector = infoCollector;
-	}
+    public Boolean getFinished() {
+        return finished;
+    }
 
-	public Boolean getFinished() {
-		return finished;
-	}
+    public void setFinished(Boolean finished) {
+        this.finished = finished;
+    }
 
-	public void setFinished(Boolean finished) {
-		this.finished = finished;
-	}
+    public Integer getUsedNum() {
+        return usedNum;
+    }
 
-	public Integer getUsedNum() {
-		return usedNum;
-	}
+    public void setUsedNum(Integer usedNum) {
+        this.usedNum = usedNum;
+    }
 
-	public void setUsedNum(Integer usedNum) {
-		this.usedNum = usedNum;
-	}
+    public Integer getExtraNum() {
+        return extraNum;
+    }
 
-	public Integer getExtraNum() {
-		return extraNum;
-	}
+    public void setExtraNum(Integer extraNum) {
+        this.extraNum = extraNum;
+    }
 
-	public void setExtraNum(Integer extraNum) {
-		this.extraNum = extraNum;
-	}
+    public String getGrade() {
+        return grade;
+    }
 
-	public String getGrade() {
-		return grade;
-	}
+    public void setGrade(String grade) {
+        this.grade = grade;
+    }
 
-	public void setGrade(String grade) {
-		this.grade = grade;
-	}
+    public Boolean getEnable() {
+        return enable;
+    }
 
-	public Boolean getEnable() {
-		return enable;
-	}
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
 
-	public void setEnable(Boolean enable) {
-		this.enable = enable;
-	}
+    public Long getExamStageId() {
+        return examStageId;
+    }
 
-	public Long getExamStageId() {
-		return examStageId;
-	}
+    public void setExamStageId(Long examStageId) {
+        this.examStageId = examStageId;
+    }
 
-	public void setExamStageId(Long examStageId) {
-		this.examStageId = examStageId;
-	}
+    public Integer getExamStageOrder() {
+        return examStageOrder;
+    }
 
-	public Integer getExamStageOrder() {
-		return examStageOrder;
-	}
+    public void setExamStageOrder(Integer examStageOrder) {
+        this.examStageOrder = examStageOrder;
+    }
 
-	public void setExamStageOrder(Integer examStageOrder) {
-		this.examStageOrder = examStageOrder;
-	}
 }

+ 11 - 12
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentEntityConvert.java

@@ -7,24 +7,22 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent;
 
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
+import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
+import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamStudentEntity;
+import cn.com.qmth.examcloud.core.oe.admin.dao.enums.CourseLevel;
+import com.google.common.collect.Lists;
 import org.apache.commons.beanutils.BeanUtils;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 
-import com.google.common.collect.Lists;
-
-import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamStudentEntity;
-import cn.com.qmth.examcloud.core.oe.admin.dao.enums.CourseLevel;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 类信息转换
@@ -254,4 +252,5 @@ public class ExamStudentEntityConvert {
 
         return resultList;
     }
+
 }

+ 12 - 2
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentExcel.java

@@ -8,10 +8,10 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent;
 
 
-import java.io.Serializable;
-
 import cn.com.qmth.examcloud.support.excel.ExcelProperty;
 
+import java.io.Serializable;
+
 /**
  * 考生信息-Excel格式
  *
@@ -19,24 +19,34 @@ import cn.com.qmth.examcloud.support.excel.ExcelProperty;
  * @since: 2018/8/30
  */
 public class ExamStudentExcel implements Serializable {
+
     @ExcelProperty(name = "学号", index = 1)
     private String studentCode;
+
     @ExcelProperty(name = "考生姓名", index = 2)
     private String studentName;
+
     @ExcelProperty(name = "身份证号", index = 3)
     private String identityNumber;
+
     @ExcelProperty(name = "学生电话", index = 4)
     private String phone;
+
     @ExcelProperty(name = "年级", index = 5)
     private String grade;
+
     @ExcelProperty(name = "采集人", index = 6)
     private String infoCollector;
+
     @ExcelProperty(name = "课程代码", index = 7)
     private String courseCode;
+
     @ExcelProperty(name = "课程", index = 8)
     private String courseName;
+
     @ExcelProperty(name = "学习中心", index = 9)
     private String orgName;
+
     @ExcelProperty(name = "完成状态", index = 10)
     private String finished;
 

+ 2 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentFinishedStatistic.java

@@ -16,10 +16,12 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
  * @since: 2018/8/30
  */
 public class ExamStudentFinishedStatistic implements JsonSerializable {
+
     /**
      * 完成数
      */
     private Integer finished;
+
     /**
      * 未完成数
      */

+ 56 - 31
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentInfo.java

@@ -19,18 +19,22 @@ import java.util.List;
  * @since: 2018/8/15
  */
 public class ExamStudentInfo implements JsonSerializable {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -3697944484049914650L;
+
     /**
-	 *
-	 */
-	private static final long serialVersionUID = -3697944484049914650L;
-	/**
      * 主键
      */
     private Long id;
+
     /**
      * 考生ID(与考务的考生ID一致)
      */
     private Long examStudentId;
+
     /**
      * 考试ID
      */
@@ -42,66 +46,82 @@ public class ExamStudentInfo implements JsonSerializable {
      * 学生ID
      */
     private Long studentId;
+
     /**
      * 学号
      */
     private String studentCode;
+
     /**
      * 学生姓名
      */
     private String studentName;
+
     /**
      * 身份证号
      */
     private String identityNumber;
+
     /**
      * 课程ID
      */
     private Long courseId;
+
     /**
      * 课程Code
      */
     private String courseCode;
+
     /**
      * 课程名称
      */
     private String courseName;
+
     /**
      * 课程层次
      */
     private String courseLevel;
+
     /**
      * 学习中心ID
      */
     private Long orgId;
+
     /**
      * 学习中心代码
      */
     private String orgCode;
+
     /**
      * 学习中心名称
      */
     private String orgName;
+
     /**
      * 顶级机构ID
      */
     private Long rootOrgId;
+
     /**
      * 专业code
      */
     private String specialtyCode;
+
     /**
      * 专业名称
      */
     private String specialtyName;
+
     /**
      * 试卷类型
      */
     private String paperType;
+
     /**
      * 采集人
      */
     private String infoCollector;
+
     /**
      * 是否完成考试
      */
@@ -118,27 +138,31 @@ public class ExamStudentInfo implements JsonSerializable {
      * 离线考试作答文件集合
      */
     private List<ExamRecordFileAnswerInfo> offlineFiles;
+
     /**
      * 考点
      */
     private String examSiteName;
+
     /**
      * 学生电话
      */
     private String phone;
+
     /**
      * 年级
      */
     private String grade;
+
     /**
      * 是否允许上传附件
      */
     private Boolean canUploadAttachment;
 
     /**
-	 * 是否可用
-	 */
-	private Boolean enable;
+     * 是否可用
+     */
+    private Boolean enable;
 
     /**
      * 已经考试的次数
@@ -344,37 +368,37 @@ public class ExamStudentInfo implements JsonSerializable {
         this.grade = grade;
     }
 
-	public String getExamType() {
-		return examType;
-	}
+    public String getExamType() {
+        return examType;
+    }
 
-	public void setExamType(String examType) {
-		this.examType = examType;
-	}
+    public void setExamType(String examType) {
+        this.examType = examType;
+    }
 
-	public Boolean getCanUploadAttachment() {
-		return canUploadAttachment;
-	}
+    public Boolean getCanUploadAttachment() {
+        return canUploadAttachment;
+    }
 
-	public void setCanUploadAttachment(Boolean canUploadAttachment) {
-		this.canUploadAttachment = canUploadAttachment;
-	}
+    public void setCanUploadAttachment(Boolean canUploadAttachment) {
+        this.canUploadAttachment = canUploadAttachment;
+    }
 
-	public String getFinishedStatus() {
-		return finishedStatus;
-	}
+    public String getFinishedStatus() {
+        return finishedStatus;
+    }
 
-	public void setFinishedStatus(String finishedStatus) {
-		this.finishedStatus = finishedStatus;
-	}
+    public void setFinishedStatus(String finishedStatus) {
+        this.finishedStatus = finishedStatus;
+    }
 
-	public Boolean getEnable() {
-		return enable;
-	}
+    public Boolean getEnable() {
+        return enable;
+    }
 
-	public void setEnable(Boolean enable) {
-		this.enable = enable;
-	}
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
 
     public Integer getUsedNum() {
         return usedNum;
@@ -415,4 +439,5 @@ public class ExamStudentInfo implements JsonSerializable {
     public void setExamStageOrder(Integer examStageOrder) {
         this.examStageOrder = examStageOrder;
     }
+
 }

+ 6 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentOrgStatistic.java

@@ -16,26 +16,32 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
  * @since: 2018/8/15
  */
 public class ExamStudentOrgStatistic implements JsonSerializable {
+
     /**
      * 学习中心ID
      */
     private Long orgId;
+
     /**
      * 学习中心代码
      */
     private String orgCode;
+
     /**
      * 学习中心名称
      */
     private String orgName;
+
     /**
      * 报考人数(计划数)
      */
     private Integer totalCount;
+
     /**
      * 实考人数(完成数)
      */
     private Integer finishedCount;
+
     /**
      * 完成比率(%)
      */

+ 4 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentPartInfo.java

@@ -16,18 +16,22 @@ import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
  * @since: 2018/8/15
  */
 public class ExamStudentPartInfo implements JsonSerializable {
+
     /**
      * 学生ID
      */
     private Long studentId;
+
     /**
      * 学号
      */
     private String studentCode;
+
     /**
      * 学生姓名
      */
     private String studentName;
+
     /**
      * 身份证号
      */

+ 50 - 38
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentQuery.java

@@ -20,35 +20,47 @@ import io.swagger.annotations.ApiModelProperty;
  */
 @ApiModel
 public class ExamStudentQuery implements JsonSerializable {
+
     /**
-	 *
-	 */
-	private static final long serialVersionUID = 4853280464208226631L;
-	
-	private Long rootOrgId;
+     *
+     */
+    private static final long serialVersionUID = 4853280464208226631L;
 
-	@ApiModelProperty("当前页数")
+    private Long rootOrgId;
+
+    @ApiModelProperty("当前页数")
     private Integer pageNo;
+
     @ApiModelProperty("每页条数")
     private Integer pageSize;
+
     @ApiModelProperty("学习中心ID")
     private Long orgId;
+
     @ApiModelProperty("考试ID")
     private Long examId;
+
     @ApiModelProperty("场次ID")
     private Long examStageId;
+
     @ApiModelProperty("学号")
     private String studentCode;
+
     @ApiModelProperty("学生姓名")
     private String studentName;
+
     @ApiModelProperty("身份证号")
     private String identityNumber;
+
     @ApiModelProperty("课程ID")
     private Long courseId;
+
     @ApiModelProperty("课程层次")
     private String courseLevel;
+
     @ApiModelProperty("是否完成考试")
     private Integer finished;
+
     @ApiModelProperty("采集人")
     private String infoCollector;
 
@@ -144,37 +156,37 @@ public class ExamStudentQuery implements JsonSerializable {
         this.finished = finished;
     }
 
-	public SelectType getSelectType() {
-		return selectType;
-	}
+    public SelectType getSelectType() {
+        return selectType;
+    }
 
-	public void setSelectType(SelectType selectType) {
-		this.selectType = selectType;
-	}
+    public void setSelectType(SelectType selectType) {
+        this.selectType = selectType;
+    }
 
-	public Integer getStartLimit() {
-		return startLimit;
-	}
+    public Integer getStartLimit() {
+        return startLimit;
+    }
 
-	public void setStartLimit(Integer startLimit) {
-		this.startLimit = startLimit;
-	}
+    public void setStartLimit(Integer startLimit) {
+        this.startLimit = startLimit;
+    }
 
-	public Integer getEndLimit() {
-		return endLimit;
-	}
+    public Integer getEndLimit() {
+        return endLimit;
+    }
 
-	public void setEndLimit(Integer endLimit) {
-		this.endLimit = endLimit;
-	}
+    public void setEndLimit(Integer endLimit) {
+        this.endLimit = endLimit;
+    }
 
-	public String getInfoCollector() {
-		return infoCollector;
-	}
+    public String getInfoCollector() {
+        return infoCollector;
+    }
 
-	public void setInfoCollector(String infoCollector) {
-		this.infoCollector = infoCollector;
-	}
+    public void setInfoCollector(String infoCollector) {
+        this.infoCollector = infoCollector;
+    }
 
     public Boolean getIgnoreUploadOfflineAnswer() {
         return ignoreUploadOfflineAnswer;
@@ -192,13 +204,13 @@ public class ExamStudentQuery implements JsonSerializable {
         this.examStageId = examStageId;
     }
 
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
+    public Long getRootOrgId() {
+        return rootOrgId;
+    }
+
+    public void setRootOrgId(Long rootOrgId) {
+        this.rootOrgId = rootOrgId;
+    }
+
 
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-    
-    
 }

+ 13 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentUnFinishedExcel.java

@@ -17,30 +17,43 @@ import cn.com.qmth.examcloud.support.excel.ExcelProperty;
  * @since: 2018/8/15
  */
 public class ExamStudentUnFinishedExcel implements JsonSerializable {
+
     @ExcelProperty(name = "姓名", index = 1)
     private String studentName;
+
     @ExcelProperty(name = "学号", index = 2)
     private String studentCode;
+
     @ExcelProperty(name = "身份证号", index = 3)
     private String identityNumber;
+
     @ExcelProperty(name = "学习中心代码", index = 4)
     private String orgCode;
+
     @ExcelProperty(name = "学习中心名称", index = 5)
     private String orgName;
+
     @ExcelProperty(name = "课程代码", index = 6)
     private String courseCode;
+
     @ExcelProperty(name = "课程名称", index = 7)
     private String courseName;
+
     @ExcelProperty(name = "试卷类型", index = 8)
     private String paperType;
+
     @ExcelProperty(name = "专业名称", index = 9)
     private String specialtyName;
+
     @ExcelProperty(name = "信息采集人", index = 11)
     private String infoCollector;
+
     @ExcelProperty(name = "考点", index = 10)
     private String examSiteName;
+
     @ExcelProperty(name = "学生电话", index = 12)
     private String phone;
+
     @ExcelProperty(name = "年级", index = 13)
     private String grade;
 

+ 8 - 2
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/OrgCompleteProgressExcel.java

@@ -8,10 +8,10 @@
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examstudent;
 
 
-import java.io.Serializable;
-
 import cn.com.qmth.examcloud.support.excel.ExcelProperty;
 
+import java.io.Serializable;
+
 /**
  * @Description 学习中心完成进度
  * @Author lideyin
@@ -21,26 +21,31 @@ import cn.com.qmth.examcloud.support.excel.ExcelProperty;
 public class OrgCompleteProgressExcel implements Serializable {
 
     private static final long serialVersionUID = 122373352029233388L;
+
     /**
      * 学习中心代码
      */
     @ExcelProperty(name = "学习中心代码", index = 1)
     private String orgCode;
+
     /**
      * 学习中心名称
      */
     @ExcelProperty(name = "学习中心名称", index = 2)
     private String orgName;
+
     /**
      * 报考人数(计划数)
      */
     @ExcelProperty(name = "报考人数", index = 3)
     private Integer totalCount;
+
     /**
      * 实考人数(完成数)
      */
     @ExcelProperty(name = "实考人数", index = 4)
     private Integer finishedCount;
+
     /**
      * 完成比率(%)
      */
@@ -86,4 +91,5 @@ public class OrgCompleteProgressExcel implements Serializable {
     public void setFinishedPercent(String finishedPercent) {
         this.finishedPercent = finishedPercent;
     }
+
 }

+ 84 - 83
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTask.java

@@ -17,98 +17,99 @@ import org.slf4j.LoggerFactory;
 
 public class ExportTask extends Thread {
 
-	private static final Logger log = LoggerFactory.getLogger(ExportTask.class);
+    private static final Logger log = LoggerFactory.getLogger(ExportTask.class);
 
-	private static int cacheLockTimeout = 60 * 2;
+    private static int cacheLockTimeout = 60 * 2;
 
-	private AsyncExportService asyncExportService = SpringContextHolder.getBean(AsyncExportService.class);
+    private AsyncExportService asyncExportService = SpringContextHolder.getBean(AsyncExportService.class);
 
-	private ExportTaskService exportTaskService = SpringContextHolder.getBean(ExportTaskService.class);
+    private ExportTaskService exportTaskService = SpringContextHolder.getBean(ExportTaskService.class);
 
-	private RedisClient redisClient = SpringContextHolder.getBean(RedisClient.class);
+    private RedisClient redisClient = SpringContextHolder.getBean(RedisClient.class);
 
-	@Override
-	public void run() {
-		for (;;) {
-			try {
-				log.info("ExportTask start");
-				ExportTaskEntity et = exportTaskService.findExportTaskToDispose();
-				if (et == null) {
-					log.info("ExportTask sleep 30s");
-					Util.sleep(30);
-					continue;
-				}
+    @Override
+    public void run() {
+        for (; ; ) {
+            try {
+                log.info("ExportTask start");
+                ExportTaskEntity et = exportTaskService.findExportTaskToDispose();
+                if (et == null) {
+                    log.info("ExportTask sleep 30s");
+                    Util.sleep(30);
+                    continue;
+                }
 
-				String cacheLock = "$_CACHE_LOCK:OE_EXPORT_TASK:" + et.getId();
-				Boolean lock = redisClient.setIfAbsent(cacheLock, cacheLock, cacheLockTimeout);
-				if (!lock) {
-					log.info("ExportTask lock... " + cacheLock);
-					continue;
-				}
+                String cacheLock = "$_CACHE_LOCK:OE_EXPORT_TASK:" + et.getId();
+                Boolean lock = redisClient.setIfAbsent(cacheLock, cacheLock, cacheLockTimeout);
+                if (!lock) {
+                    log.info("ExportTask lock... " + cacheLock);
+                    continue;
+                }
 
-				try {
-					exportTaskService.startExportTask(et.getId());
-					if (ExportTaskType.EXAM_DETAIL.equals(et.getType())) {
-						examRecordDetails(et);
-					} else if (ExportTaskType.SCORE_STATISTIC.equals(et.getType())) {
-						examScores(et);
-					} else if (ExportTaskType.EXAM_SCHEDULING.equals(et.getType())) {
-						examScheduling(et);
-					} else if (ExportTaskType.AUDIT.equals(et.getType())) {
-						examAudit(et);
-					}
-					exportTaskService.endExportTask(et.getId());
-				} finally {
-					redisClient.delete(cacheLock);
-				}
-				log.info("ExportTask end");
-			} catch (Exception e) {
-				log.error("ExportTask error " + e.getMessage(), e);
-			}
-		}
-	}
+                try {
+                    exportTaskService.startExportTask(et.getId());
+                    if (ExportTaskType.EXAM_DETAIL.equals(et.getType())) {
+                        examRecordDetails(et);
+                    } else if (ExportTaskType.SCORE_STATISTIC.equals(et.getType())) {
+                        examScores(et);
+                    } else if (ExportTaskType.EXAM_SCHEDULING.equals(et.getType())) {
+                        examScheduling(et);
+                    } else if (ExportTaskType.AUDIT.equals(et.getType())) {
+                        examAudit(et);
+                    }
+                    exportTaskService.endExportTask(et.getId());
+                } finally {
+                    redisClient.delete(cacheLock);
+                }
+                log.info("ExportTask end");
+            } catch (Exception e) {
+                log.error("ExportTask error " + e.getMessage(), e);
+            }
+        }
+    }
 
-	/**
-	 * 监考已审
-	 *
-	 * @param et
-	 */
-	private void examAudit(ExportTaskEntity et) {
-		ExamAuditQuery req = new JsonMapper().parseJson(et.getExportParam(), ExamAuditQuery.class);
-		req.setRootOrgId(et.getRootOrgId());
-		asyncExportService.asyncExportExamAuditList(et.getId(), req);
-	}
+    /**
+     * 监考已审
+     *
+     * @param et
+     */
+    private void examAudit(ExportTaskEntity et) {
+        ExamAuditQuery req = new JsonMapper().parseJson(et.getExportParam(), ExamAuditQuery.class);
+        req.setRootOrgId(et.getRootOrgId());
+        asyncExportService.asyncExportExamAuditList(et.getId(), req);
+    }
 
-	/**
-	 * 考试明细
-	 *
-	 * @param et
-	 */
-	private void examRecordDetails(ExportTaskEntity et) {
-		ExamRecordQuery req = new JsonMapper().parseJson(et.getExportParam(), ExamRecordQuery.class);
-		req.setRootOrgId(et.getRootOrgId());
-		asyncExportService.asyncExportExamRecordDetails(et.getId(), req);
-	}
+    /**
+     * 考试明细
+     *
+     * @param et
+     */
+    private void examRecordDetails(ExportTaskEntity et) {
+        ExamRecordQuery req = new JsonMapper().parseJson(et.getExportParam(), ExamRecordQuery.class);
+        req.setRootOrgId(et.getRootOrgId());
+        asyncExportService.asyncExportExamRecordDetails(et.getId(), req);
+    }
 
-	/**
-	 * 成绩统计
-	 *
-	 * @param et
-	 */
-	private void examScores(ExportTaskEntity et) {
-		ExamScoreQuery req = new JsonMapper().parseJson(et.getExportParam(), ExamScoreQuery.class);
-		req.setRootOrgId(et.getRootOrgId());
-		asyncExportService.asyncExportExamScoreStatistics(et.getId(), req);
-	}
+    /**
+     * 成绩统计
+     *
+     * @param et
+     */
+    private void examScores(ExportTaskEntity et) {
+        ExamScoreQuery req = new JsonMapper().parseJson(et.getExportParam(), ExamScoreQuery.class);
+        req.setRootOrgId(et.getRootOrgId());
+        asyncExportService.asyncExportExamScoreStatistics(et.getId(), req);
+    }
+
+    /**
+     * 考试进度
+     *
+     * @param et
+     */
+    private void examScheduling(ExportTaskEntity et) {
+        ExamStudentQuery req = new JsonMapper().parseJson(et.getExportParam(), ExamStudentQuery.class);
+        req.setRootOrgId(et.getRootOrgId());
+        asyncExportService.asyncExportExamScheduling(et.getId(), req);
+    }
 
-	/**
-	 * 考试进度
-	 *
-	 * @param et
-	 */
-	private void examScheduling(ExportTaskEntity et) {
-		ExamStudentQuery req = new JsonMapper().parseJson(et.getExportParam(), ExamStudentQuery.class);
-		req.setRootOrgId(et.getRootOrgId());
-		asyncExportService.asyncExportExamScheduling(et.getId(), req);
-	}
 }

+ 16 - 17
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTaskInfo.java

@@ -34,10 +34,10 @@ public class ExportTaskInfo implements JsonSerializable {
 
     @ApiModelProperty("文件路径")
     private String filePath;
-    
+
     @ApiModelProperty("创建人ID")
     private Long creator;
-    
+
     private String jsonParams;
 
     public Long getId() {
@@ -96,22 +96,21 @@ public class ExportTaskInfo implements JsonSerializable {
         this.filePath = filePath;
     }
 
-	public Long getCreator() {
-		return creator;
-	}
+    public Long getCreator() {
+        return creator;
+    }
+
+    public void setCreator(Long creator) {
+        this.creator = creator;
+    }
+
+    public String getJsonParams() {
+        return jsonParams;
+    }
 
-	public void setCreator(Long creator) {
-		this.creator = creator;
-	}
+    public void setJsonParams(String jsonParams) {
+        this.jsonParams = jsonParams;
+    }
 
-	public String getJsonParams() {
-		return jsonParams;
-	}
 
-	public void setJsonParams(String jsonParams) {
-		this.jsonParams = jsonParams;
-	}
-    
-	
-    
 }

+ 1 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTaskListReq.java

@@ -79,4 +79,5 @@ public class ExportTaskListReq implements JsonSerializable {
     public void setExamId(Long examId) {
         this.examId = examId;
     }
+
 }

+ 23 - 23
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/exporttask/ExportTaskListResp.java

@@ -48,12 +48,12 @@ public class ExportTaskListResp implements JsonSerializable {
 
     @ApiModelProperty("更新时间")
     private Date updateTime;
-    
+
     private String createName;
-    
+
     @ApiModelProperty("开始处理时间")
     private Date startTime;
-    
+
     @ApiModelProperty("结束处理时间")
     private Date endTime;
 
@@ -145,29 +145,29 @@ public class ExportTaskListResp implements JsonSerializable {
         this.updateTime = updateTime;
     }
 
-	public String getCreateName() {
-		return createName;
-	}
+    public String getCreateName() {
+        return createName;
+    }
 
-	public void setCreateName(String createName) {
-		this.createName = createName;
-	}
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
 
-	public Date getStartTime() {
-		return startTime;
-	}
+    public Date getStartTime() {
+        return startTime;
+    }
 
-	public void setStartTime(Date startTime) {
-		this.startTime = startTime;
-	}
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
 
-	public Date getEndTime() {
-		return endTime;
-	}
 
-	public void setEndTime(Date endTime) {
-		this.endTime = endTime;
-	}
-    
-    
 }

+ 30 - 30
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/cache/ExamRecordPropertyCache.java

@@ -11,35 +11,35 @@ import org.springframework.stereotype.Service;
 @Service
 public class ExamRecordPropertyCache extends RandomObjectRedisCache<ExamRecordPropertyCacheBean> {
 
-	@Autowired
-	ExamRecordDataRepo examRecordDataRepo;
-
-	@Override
-	public ExamRecordPropertyCacheBean loadFromResource(Object... keys) {
-		if(keys== null) {
-			return null;
-		}
-		Long examRecordDataId = (Long) keys[0];
-		ExamRecordDataEntity examRecordData = GlobalHelper.getEntity(examRecordDataRepo, examRecordDataId, ExamRecordDataEntity.class);
-		
-		if (null == examRecordData) {
-			return null;
-		}
-		ExamRecordPropertyCacheBean b = new ExamRecordPropertyCacheBean();
-		b.setExamId(examRecordData.getExamId());
-		b.setOrgId(examRecordData.getOrgId());
-		return b;
-	}
-
-	@Override
-	protected String getKeyPrefix() {
-		return "OE_EXAM_RECORD_PROP:";
-	}
-
-	@Override
-	protected int getTimeout() {
-		// 2分钟
-		return 60 * 2;
-	}
+    @Autowired
+    ExamRecordDataRepo examRecordDataRepo;
+
+    @Override
+    public ExamRecordPropertyCacheBean loadFromResource(Object... keys) {
+        if (keys == null) {
+            return null;
+        }
+        Long examRecordDataId = (Long) keys[0];
+        ExamRecordDataEntity examRecordData = GlobalHelper.getEntity(examRecordDataRepo, examRecordDataId, ExamRecordDataEntity.class);
+
+        if (null == examRecordData) {
+            return null;
+        }
+        ExamRecordPropertyCacheBean b = new ExamRecordPropertyCacheBean();
+        b.setExamId(examRecordData.getExamId());
+        b.setOrgId(examRecordData.getOrgId());
+        return b;
+    }
+
+    @Override
+    protected String getKeyPrefix() {
+        return "OE_EXAM_RECORD_PROP:";
+    }
+
+    @Override
+    protected int getTimeout() {
+        // 2分钟
+        return 60 * 2;
+    }
 
 }

部分文件因文件數量過多而無法顯示