Browse Source

字段修改

wangliang 4 years ago
parent
commit
078e25d788

+ 2 - 28
themis-business/src/main/java/com/qmth/themis/business/bean/exam/ExamActivityUnFinishBean.java

@@ -1,6 +1,7 @@
 package com.qmth.themis.business.bean.exam;
 
 import com.qmth.themis.business.cache.bean.ExamCacheBean;
+import com.qmth.themis.business.dto.response.TEExamActivityDto;
 
 /**
  * @Description: 未完成的考试activity
@@ -9,12 +10,9 @@ import com.qmth.themis.business.cache.bean.ExamCacheBean;
  * @Author: wangliang
  * @Date: 2020/8/8
  */
-public class ExamActivityUnFinishBean extends ExamCacheBean {
+public class ExamActivityUnFinishBean extends TEExamActivityDto {
 
     private Long recordId;
-    private String courseCode;
-    private String courseName;
-    private Long examStudentId;
 
     public Long getRecordId() {
         return recordId;
@@ -23,28 +21,4 @@ public class ExamActivityUnFinishBean extends ExamCacheBean {
     public void setRecordId(Long recordId) {
         this.recordId = recordId;
     }
-
-    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 Long getExamStudentId() {
-        return examStudentId;
-    }
-
-    public void setExamStudentId(Long examStudentId) {
-        this.examStudentId = examStudentId;
-    }
 }

+ 12 - 8
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamActivityCacheBean.java

@@ -51,6 +51,18 @@ public class ExamActivityCacheBean implements Serializable {
 		this.code = code;
 	}
 
+	public Integer getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Integer enable) {
+		this.enable = enable;
+	}
+
+	public static long getSerialVersionUID() {
+		return serialVersionUID;
+	}
+
 	public Integer getPrepareSeconds() {
 		return prepareSeconds;
 	}
@@ -67,14 +79,6 @@ public class ExamActivityCacheBean implements Serializable {
 		this.maxDurationSeconds = maxDurationSeconds;
 	}
 
-	public Integer getEnable() {
-		return enable;
-	}
-
-	public void setEnable(Integer enable) {
-		this.enable = enable;
-	}
-
 	public Integer getOpeningSeconds() {
 		return openingSeconds;
 	}

+ 71 - 44
themis-business/src/main/java/com/qmth/themis/business/cache/bean/ExamCacheBean.java

@@ -3,22 +3,13 @@ package com.qmth.themis.business.cache.bean;
 import java.io.Serializable;
 import java.util.Date;
 
-import com.qmth.themis.business.enums.EntryAuthenticationPolicyEnum;
-import com.qmth.themis.business.enums.ExamModeEnum;
-import com.qmth.themis.business.enums.InProcessLivenessJudgePolicyEnum;
-import com.qmth.themis.business.enums.ObjectiveScorePolicyEnum;
-import com.qmth.themis.business.enums.RecordSelectStrategyEnum;
-import com.qmth.themis.business.enums.ScoreStatusEnum;
-
-public class ExamCacheBean implements Serializable {
-
-    /**
-	 * 
-	 */
-	private static final long serialVersionUID = 146145141337738358L;
-	// 主键
-	private Long id;
-	
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.qmth.themis.business.base.BaseEntity;
+import com.qmth.themis.business.enums.*;
+import io.swagger.annotations.ApiModelProperty;
+
+public class ExamCacheBean extends BaseEntity {
+
 	//机构ID
     private Long orgId;
 
@@ -130,6 +121,54 @@ public class ExamCacheBean implements Serializable {
     //是否开始监控转录,0:开启,1:不开启
     private Integer monitorRecord;
 
+    @ApiModelProperty(value = "是否允许使用移动端拍照答题,0:不开启,1:开启")
+    @TableField(value = "mobile_photo_upload")
+    private Integer mobilePhotoUpload;
+
+    @ApiModelProperty(value = "考试过程中活体检测间隔时间")
+    @TableField(value = "in_process_liveness_fixed_range")
+    private String inProcessLivenessFixedRange;
+
+    @ApiModelProperty(value = "算分进度")
+    @TableField(value = "progress")
+    private Double progress;
+
+    @ApiModelProperty(value = "监考人工审核,now:实时审核,later:事后审核")
+    @TableField(value = "invigilate_verify")
+    private InvigilateVerifyEnum invigilateVerify;
+
+    public InvigilateVerifyEnum getInvigilateVerify() {
+        return invigilateVerify;
+    }
+
+    public void setInvigilateVerify(InvigilateVerifyEnum invigilateVerify) {
+        this.invigilateVerify = invigilateVerify;
+    }
+
+    public Double getProgress() {
+        return progress;
+    }
+
+    public void setProgress(Double progress) {
+        this.progress = progress;
+    }
+
+    public Integer getMobilePhotoUpload() {
+        return mobilePhotoUpload;
+    }
+
+    public void setMobilePhotoUpload(Integer mobilePhotoUpload) {
+        this.mobilePhotoUpload = mobilePhotoUpload;
+    }
+
+    public String getInProcessLivenessFixedRange() {
+        return inProcessLivenessFixedRange;
+    }
+
+    public void setInProcessLivenessFixedRange(String inProcessLivenessFixedRange) {
+        this.inProcessLivenessFixedRange = inProcessLivenessFixedRange;
+    }
+
     public String getMonitorVideoSource() {
         return monitorVideoSource;
     }
@@ -170,22 +209,6 @@ public class ExamCacheBean implements Serializable {
         this.archived = archived;
     }
 
-    public Integer getOpeningSeconds() {
-        return openingSeconds;
-    }
-
-    public void setOpeningSeconds(Integer openingSeconds) {
-        this.openingSeconds = openingSeconds;
-    }
-
-    public Integer getMaxDurationSeconds() {
-        return maxDurationSeconds;
-    }
-
-    public void setMaxDurationSeconds(Integer maxDurationSeconds) {
-        this.maxDurationSeconds = maxDurationSeconds;
-    }
-
     public Integer getForceFinish() {
         return forceFinish;
     }
@@ -274,10 +297,6 @@ public class ExamCacheBean implements Serializable {
         this.scoreStatus = scoreStatus;
     }
 
-    public static long getSerialVersionUID() {
-        return serialVersionUID;
-    }
-
     public Long getOrgId() {
         return orgId;
     }
@@ -350,6 +369,22 @@ public class ExamCacheBean implements Serializable {
         this.minDurationSeconds = minDurationSeconds;
     }
 
+    public Integer getOpeningSeconds() {
+        return openingSeconds;
+    }
+
+    public void setOpeningSeconds(Integer openingSeconds) {
+        this.openingSeconds = openingSeconds;
+    }
+
+    public Integer getMaxDurationSeconds() {
+        return maxDurationSeconds;
+    }
+
+    public void setMaxDurationSeconds(Integer maxDurationSeconds) {
+        this.maxDurationSeconds = maxDurationSeconds;
+    }
+
     public String getPreNotice() {
         return preNotice;
     }
@@ -429,12 +464,4 @@ public class ExamCacheBean implements Serializable {
     public void setObjectiveScorePolicy(ObjectiveScorePolicyEnum objectiveScorePolicy) {
         this.objectiveScorePolicy = objectiveScorePolicy;
     }
-
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
 }

+ 5 - 5
themis-business/src/main/java/com/qmth/themis/business/dto/request/TEExamDto.java

@@ -131,7 +131,7 @@ public class TEExamDto extends BaseEntity {
 
     @ApiModelProperty(value = "考试过程中活体检测间隔时间")
     @TableField(value = "in_process_liveness_fixed_range")
-    private List<Long> inProcessLivenessFixedRange;
+    private List<Integer> inProcessLivenessFixedRange;
 
     @ApiModelProperty(value = "考试过程中活体检测结果判定规则,any:任意一次通过,all:全部都要通过,more:通过次数大于失败次数")
     @TableField(value = "in_process_liveness_judge_policy")
@@ -216,8 +216,8 @@ public class TEExamDto extends BaseEntity {
             String[] longs = teExam.getInProcessLivenessFixedRange().trim().replaceAll(" ", "").split(",");
             List inProcessLivenessFixedRange = new ArrayList();
             for (int i = 0; i < longs.length; i++) {
-                Long l = Long.valueOf(longs[i].trim().replaceAll(" ", ""));
-                inProcessLivenessFixedRange.add(l);
+                Integer integer = Integer.valueOf(longs[i].trim().replaceAll(" ", ""));
+                inProcessLivenessFixedRange.add(integer);
             }
             if (Objects.equals(inProcessLivenessFixedRange.toString().trim().replaceAll(" ",""), "")) {
                 setInProcessLivenessFixedRange(null);
@@ -485,11 +485,11 @@ public class TEExamDto extends BaseEntity {
         this.inProcessLivenessVerify = inProcessLivenessVerify;
     }
 
-    public List<Long> getInProcessLivenessFixedRange() {
+    public List<Integer> getInProcessLivenessFixedRange() {
         return inProcessLivenessFixedRange;
     }
 
-    public void setInProcessLivenessFixedRange(List<Long> inProcessLivenessFixedRange) {
+    public void setInProcessLivenessFixedRange(List<Integer> inProcessLivenessFixedRange) {
         this.inProcessLivenessFixedRange = inProcessLivenessFixedRange;
     }
 

+ 117 - 29
themis-business/src/main/java/com/qmth/themis/business/dto/response/TEExamActivityDto.java

@@ -1,8 +1,11 @@
 package com.qmth.themis.business.dto.response;
 
+import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
+import com.qmth.themis.business.cache.bean.ExamCacheBean;
+import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
+
 import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @Description: 考试场次dto
@@ -24,13 +27,13 @@ public class TEExamActivityDto implements Serializable {
     private Long maxFinishTime;
     private String monitorVideoSourceStr;
     private List<String> monitorVideoSource;
-    private Long openingSeconds;//允许开考开放时长(分钟),相当于迟到时间
-    private Long activityOpeningSeconds;//允许开考开放时长(分钟),相当于迟到时间
-    private Long prepareSeconds;//提前多长时间开始候考(分钟)
-    private Long activityPrepareSeconds;//提前多长时间开始候考(分钟)
-    private Long minDurationSeconds;//最短考试时长,相当于考试冻结时间(分钟)
-    private Long maxDurationSeconds;//最大考试时长
-    private Long activityMaxDurationSeconds;//最大考试时长
+    private Integer openingSeconds;//允许开考开放时长(分钟),相当于迟到时间
+    private Integer activityOpeningSeconds;//允许开考开放时长(分钟),相当于迟到时间
+    private Integer prepareSeconds;//提前多长时间开始候考(分钟)
+    private Integer activityPrepareSeconds;//提前多长时间开始候考(分钟)
+    private Integer minDurationSeconds;//最短考试时长,相当于考试冻结时间(分钟)
+    private Integer maxDurationSeconds;//最大考试时长
+    private Integer activityMaxDurationSeconds;//最大考试时长
     private Integer examCount;//允许考试次数
     private Integer fouceFinish;//是否在结束时间集中强制收卷,0:不强制,1:强制
     private String entryAuthenticationPolicy;//开考身份验证策略,off:关闭,face_verify_optional:非强制人脸验证,face_verify_force:强制人脸验证,liveness:活体验证
@@ -38,13 +41,98 @@ public class TEExamActivityDto implements Serializable {
     private Integer inProcessFaceStrangerIgnore;//考试过程中人脸检测是否忽略陌生人 ,0:不忽略,1:忽略
     private Integer inProcessLivenessVerify;//考试过程中是否启用活体检测 ,0:不启用,1:启用
     private String inProcessLivenessFixedRangeStr;
-    private List<Long> inProcessLivenessFixedRange;//考试过程中活体检测间隔时间
+    private List<Integer> inProcessLivenessFixedRange;//考试过程中活体检测间隔时间
     private String inProcessLivenessJudgePolicy;//考试过程中活体检测结果判定规则,any:任意一次通过,all:全部都要通过,more:通过次数大于失败次数
     private Integer cameraPhotoUpload;//是否允许使用摄像头拍照答题,0:不允许,1:允许
     private Date startTime;//考场开始时间
     private Date finishTime;//考场结束时间
     private Integer leftExamCount;//剩余考试次数
     private Integer mobilePhotoUpload;//是否允许使用移动端拍照答题,0:不开启,1:开启
+    private Boolean monitorAudioEnable;//客户端监控是否启用音频与麦克风
+    private List<String> hardwareTest;//硬件检测
+
+    public TEExamActivityDto() {
+
+    }
+
+    public TEExamActivityDto(ExamCacheBean ec, ExamActivityCacheBean examActivityCacheBean, ExamStudentCacheBean examStudentCacheBean, Long examStudentId) {
+        this.id = examActivityCacheBean.getId();
+        this.code = examActivityCacheBean.getCode();
+        this.examStudentId = examStudentId;
+        this.courseCode = examStudentCacheBean.getCourseCode();
+        this.courseName = examStudentCacheBean.getCourseName();
+        if (Objects.nonNull(examActivityCacheBean.getPrepareSeconds())) {
+            this.prepareTime = examActivityCacheBean.getStartTime().getTime() - (examActivityCacheBean.getPrepareSeconds() * 1000);
+        } else if (Objects.nonNull(ec.getPrepareSeconds())) {
+            this.prepareTime = examActivityCacheBean.getStartTime().getTime() - (ec.getPrepareSeconds() * 1000);
+        }
+        if (Objects.nonNull(ec.getMinDurationSeconds())) {
+            this.minStartTime = examActivityCacheBean.getStartTime().getTime() + (ec.getMinDurationSeconds() * 1000);
+        }
+        if (Objects.nonNull(examActivityCacheBean.getMaxDurationSeconds())) {
+            this.maxStartTime = examActivityCacheBean.getStartTime().getTime() + (examActivityCacheBean.getMaxDurationSeconds() * 1000);
+        } else if (Objects.nonNull(ec.getMaxDurationSeconds())) {
+            this.maxStartTime = examActivityCacheBean.getStartTime().getTime() + (ec.getMaxDurationSeconds() * 1000);
+        }
+        if (Objects.nonNull(examActivityCacheBean.getFinishTime())) {
+            this.maxFinishTime = examActivityCacheBean.getFinishTime().getTime();
+        } else if (Objects.nonNull(ec.getEndTime())) {
+            this.maxFinishTime = ec.getEndTime().getTime();
+        }
+        if (Objects.nonNull(ec.getMonitorVideoSource()) && !Objects.equals(ec.getMonitorVideoSource().toString().trim().replaceAll(" ", ""), "")) {
+            this.setMonitorVideoSource(Arrays.asList(ec.getMonitorVideoSource().trim().split(",")));
+        } else {
+            this.setMonitorVideoSource(null);
+        }
+        this.openingSeconds = ec.getOpeningSeconds();
+        this.activityOpeningSeconds = examActivityCacheBean.getOpeningSeconds();
+        this.prepareSeconds = ec.getPrepareSeconds();
+        this.activityPrepareSeconds = examActivityCacheBean.getPrepareSeconds();
+        this.minDurationSeconds = ec.getMinDurationSeconds();
+        this.maxDurationSeconds = ec.getMaxDurationSeconds();
+        this.activityMaxDurationSeconds = examActivityCacheBean.getMaxDurationSeconds();
+        this.examCount = ec.getExamCount();
+        this.fouceFinish = ec.getForceFinish();
+        this.entryAuthenticationPolicy = ec.getEntryAuthenticationPolicy().name();
+        this.inProcessFaceVerify = ec.getInProcessFaceVerify();
+        this.inProcessFaceStrangerIgnore = ec.getInProcessFaceStrangerIgnore();
+        this.inProcessLivenessVerify = ec.getInProcessLivenessVerify();
+        if (Objects.nonNull(ec.getInProcessLivenessFixedRange())) {
+            String[] longs = ec.getInProcessLivenessFixedRange().trim().split(",");
+            List inProcessLivenessFixedRange = new ArrayList();
+            for (int i = 0; i < longs.length; i++) {
+                Integer integer = Integer.valueOf(longs[i].trim());
+                inProcessLivenessFixedRange.add(integer);
+            }
+            if (Objects.equals(inProcessLivenessFixedRange.toString().trim().replaceAll(" ", ""), "")) {
+                this.setInProcessLivenessFixedRange(null);
+            } else {
+                this.setInProcessLivenessFixedRange(inProcessLivenessFixedRange);
+            }
+        }
+        this.inProcessLivenessJudgePolicy = ec.getInProcessLivenessJudgePolicy().name();
+        this.cameraPhotoUpload = ec.getCameraPhotoUpload();
+        this.startTime = examActivityCacheBean.getStartTime();
+        this.finishTime = examActivityCacheBean.getFinishTime();
+        this.leftExamCount = examStudentCacheBean.getLeftExamCount();
+        this.mobilePhotoUpload = ec.getMobilePhotoUpload();
+    }
+
+    public Boolean getMonitorAudioEnable() {
+        return monitorAudioEnable;
+    }
+
+    public void setMonitorAudioEnable(Boolean monitorAudioEnable) {
+        this.monitorAudioEnable = monitorAudioEnable;
+    }
+
+    public List<String> getHardwareTest() {
+        return hardwareTest;
+    }
+
+    public void setHardwareTest(List<String> hardwareTest) {
+        this.hardwareTest = hardwareTest;
+    }
 
     public Integer getMobilePhotoUpload() {
         return mobilePhotoUpload;
@@ -158,62 +246,66 @@ public class TEExamActivityDto implements Serializable {
         this.courseName = courseName;
     }
 
-    public Long getOpeningSeconds() {
+    public Integer getOpeningSeconds() {
         return openingSeconds;
     }
 
-    public void setOpeningSeconds(Long openingSeconds) {
+    public void setOpeningSeconds(Integer openingSeconds) {
         this.openingSeconds = openingSeconds;
     }
 
-    public Long getActivityOpeningSeconds() {
+    public Integer getActivityOpeningSeconds() {
         return activityOpeningSeconds;
     }
 
-    public void setActivityOpeningSeconds(Long activityOpeningSeconds) {
+    public void setActivityOpeningSeconds(Integer activityOpeningSeconds) {
         this.activityOpeningSeconds = activityOpeningSeconds;
     }
 
-    public Long getPrepareSeconds() {
+    public Integer getPrepareSeconds() {
         return prepareSeconds;
     }
 
-    public void setPrepareSeconds(Long prepareSeconds) {
+    public void setPrepareSeconds(Integer prepareSeconds) {
         this.prepareSeconds = prepareSeconds;
     }
 
-    public Long getActivityPrepareSeconds() {
+    public Integer getActivityPrepareSeconds() {
         return activityPrepareSeconds;
     }
 
-    public void setActivityPrepareSeconds(Long activityPrepareSeconds) {
+    public void setActivityPrepareSeconds(Integer activityPrepareSeconds) {
         this.activityPrepareSeconds = activityPrepareSeconds;
     }
 
-    public Long getMinDurationSeconds() {
+    public Integer getMinDurationSeconds() {
         return minDurationSeconds;
     }
 
-    public void setMinDurationSeconds(Long minDurationSeconds) {
+    public void setMinDurationSeconds(Integer minDurationSeconds) {
         this.minDurationSeconds = minDurationSeconds;
     }
 
-    public Long getMaxDurationSeconds() {
+    public Integer getMaxDurationSeconds() {
         return maxDurationSeconds;
     }
 
-    public void setMaxDurationSeconds(Long maxDurationSeconds) {
+    public void setMaxDurationSeconds(Integer maxDurationSeconds) {
         this.maxDurationSeconds = maxDurationSeconds;
     }
 
-    public Long getActivityMaxDurationSeconds() {
+    public Integer getActivityMaxDurationSeconds() {
         return activityMaxDurationSeconds;
     }
 
-    public void setActivityMaxDurationSeconds(Long activityMaxDurationSeconds) {
+    public void setActivityMaxDurationSeconds(Integer activityMaxDurationSeconds) {
         this.activityMaxDurationSeconds = activityMaxDurationSeconds;
     }
 
+    public void setInProcessLivenessFixedRange(List<Integer> inProcessLivenessFixedRange) {
+        this.inProcessLivenessFixedRange = inProcessLivenessFixedRange;
+    }
+
     public Integer getExamCount() {
         return examCount;
     }
@@ -262,14 +354,10 @@ public class TEExamActivityDto implements Serializable {
         this.inProcessLivenessVerify = inProcessLivenessVerify;
     }
 
-    public List<Long> getInProcessLivenessFixedRange() {
+    public List<Integer> getInProcessLivenessFixedRange() {
         return inProcessLivenessFixedRange;
     }
 
-    public void setInProcessLivenessFixedRange(List<Long> inProcessLivenessFixedRange) {
-        this.inProcessLivenessFixedRange = inProcessLivenessFixedRange;
-    }
-
     public String getInProcessLivenessJudgePolicy() {
         return inProcessLivenessJudgePolicy;
     }

+ 9 - 4
themis-exam/src/main/java/com/qmth/themis/exam/api/TEStudentController.java

@@ -8,11 +8,13 @@ import com.qmth.themis.business.bean.exam.ExamActivityUnFinishBean;
 import com.qmth.themis.business.bean.exam.ExamUnFinishBean;
 import com.qmth.themis.business.cache.ExamRecordCacheUtil;
 import com.qmth.themis.business.cache.RedisKeyHelper;
+import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
 import com.qmth.themis.business.cache.bean.ExamCacheBean;
 import com.qmth.themis.business.cache.bean.ExamStudentCacheBean;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.AuthDto;
 import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
+import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import com.qmth.themis.business.dto.response.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamResultDto;
 import com.qmth.themis.business.entity.TBSession;
@@ -82,6 +84,9 @@ public class TEStudentController {
     @Resource
     TEExamStudentService teExamStudentService;
 
+    @Resource
+    TEExamActivityService teExamActivityService;
+
     @ApiOperation(value = "学生登录接口")
     @RequestMapping(value = "/login", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "学生信息", response = TEExamResultDto.class)})
@@ -192,6 +197,7 @@ public class TEStudentController {
             Map<String, Object> objectMap = redisUtil.getHashEntries(RedisKeyHelper.examRecordCacheKey(recordId));
             Long examIdMap = Long.parseLong(String.valueOf(objectMap.get("examId")));
             Long examStudentId = Long.parseLong(String.valueOf(objectMap.get("examStudentId")));
+            Long examActivityId = Long.parseLong(String.valueOf(objectMap.get("examActivityId")));
             Integer durationSeconds = null;
             if (Objects.isNull(objectMap.get("durationSeconds"))) {
                 durationSeconds = 0;
@@ -199,6 +205,7 @@ public class TEStudentController {
                 durationSeconds = Integer.parseInt(String.valueOf(objectMap.get("durationSeconds")));
             }
             ExamCacheBean ec = teExamService.getExamCacheBean(examIdMap);//考试缓存
+            ExamActivityCacheBean examActivityCacheBean = teExamActivityService.getExamActivityCacheBean(examActivityId);//考试场次缓存
             ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudnetCacheBean(examStudentId);
 
             //获取最近同步时间
@@ -232,12 +239,10 @@ public class TEStudentController {
                     //发送mq,增加断点次数记录
                     MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.examBreakHistory.name(), JacksonUtil.parseJson(objectMap), MqEnum.EXAM_BREAK, String.valueOf(recordId), "增加断点记录");
                     mqDtoService.assembleSendOneWayMsg(mqDto);
+                    TEExamActivityDto teExamActivityDto = new TEExamActivityDto(ec, examActivityCacheBean, examStudentCacheBean, examStudentId);
                     Gson gson = new Gson();
-                    ExamActivityUnFinishBean examActivityUnFinishBean = gson.fromJson(gson.toJson(ec), ExamActivityUnFinishBean.class);
+                    ExamActivityUnFinishBean examActivityUnFinishBean = gson.fromJson(gson.toJson(teExamActivityDto), ExamActivityUnFinishBean.class);
                     examActivityUnFinishBean.setRecordId(recordId);
-                    examActivityUnFinishBean.setCourseCode(examStudentCacheBean.getCourseCode());
-                    examActivityUnFinishBean.setCourseName(examStudentCacheBean.getCourseName());
-                    examActivityUnFinishBean.setExamStudentId(examStudentId);
                     ExamUnFinishBean examUnFinishBean = new ExamUnFinishBean(ec.getId(), ec.getName(), ec.getPreNotice(), ec.getPreNoticeStaySeconds(), ec.getPostNotice(), examActivityUnFinishBean);
                     map.put("unFinished", examUnFinishBean);
                 }