wangliang 4 роки тому
батько
коміт
11bf7a085e

+ 3 - 3
themis-backend/src/main/java/com/qmth/themis/backend/api/TIeInvigilateController.java

@@ -215,7 +215,7 @@ public class TIeInvigilateController {
             examActivityId = ExamRecordCacheUtil.getExamActivityId(examRecordId);
         }
         ExamRecordStatusEnum status = ExamRecordCacheUtil.getStatus(examRecordId);
-        Integer breachStatus = Objects.isNull(ExamRecordCacheUtil.getBreachStatus(examRecordId)) ? null : ExamRecordCacheUtil.getBreachStatus(examRecordId);
+        Integer breachStatus = Objects.isNull(ExamRecordCacheUtil.getBreachStatus(examRecordId)) ? 1 : ExamRecordCacheUtil.getBreachStatus(examRecordId);
         ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(examStudentId);
         TEStudent teStudent = teStudentService.getById(examStudentCacheBean.getStudentId());
         String basePhotoPath = systemConfig.getProperty("aliyun.oss.url") + File.separator + teStudent.getBasePhotoPath();
@@ -269,7 +269,7 @@ public class TIeInvigilateController {
         if (Objects.isNull(mapParameter.get("examRecordId")) || Objects.equals(mapParameter.get("examRecordId"), "")) {
             throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
         }
-        List<Long> recordIdList = (List<Long>) mapParameter.get("examRecordId");
+        List<String> recordIdList = (List<String>) mapParameter.get("examRecordId");
         if (Objects.isNull(mapParameter.get("type")) || Objects.equals(mapParameter.get("type"), "")) {
             throw new BusinessException(ExceptionResultEnum.FINISH_TYPE_IS_NULL);
         }
@@ -372,7 +372,7 @@ public class TIeInvigilateController {
         if (Objects.isNull(mapParameter.get("examRecordId")) || Objects.equals(mapParameter.get("examRecordId"), "")) {
             throw new BusinessException(ExceptionResultEnum.RECORD_ID_IS_NULL);
         }
-        List<Long> recordIdList = (List<Long>) mapParameter.get("examRecordId");
+        List<String> recordIdList = (List<String>) mapParameter.get("examRecordId");
         if (Objects.isNull(mapParameter.get("type")) || Objects.equals(mapParameter.get("type"), "")) {
             throw new BusinessException(ExceptionResultEnum.BREACH_TYPE_IS_NULL);
         }

+ 2 - 2
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamServiceImpl.java

@@ -848,7 +848,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         if (exam.getShowObjectiveScore() != null && exam.getShowObjectiveScore().intValue() == 1) {//实时出分
             if (InvigilateVerifyEnum.NOW.equals(exam.getInvigilateVerify())) {//实时审核
                 Integer warningCount = ExamRecordCacheUtil.getWarningCount(recordId);
-                Integer breachStatus = ExamRecordCacheUtil.getBreachStatus(recordId);
+                Integer breachStatus = Objects.isNull(ExamRecordCacheUtil.getBreachStatus(recordId)) ? 1 : ExamRecordCacheUtil.getBreachStatus(recordId);
                 if (warningCount != null && warningCount.intValue() > 0) {//有预警
                     if (breachStatus == null) {//无违纪结果
                         ret.setStatus(FinishExamResultEnum.AUDITING);
@@ -986,7 +986,7 @@ public class TEExamServiceImpl extends ServiceImpl<TEExamMapper, TEExam> impleme
         if (exam.getShowObjectiveScore() != null && exam.getShowObjectiveScore().intValue() == 1) {//实时出分
             if (InvigilateVerifyEnum.NOW.equals(exam.getInvigilateVerify())) {//实时审核
                 Integer warningCount = ExamRecordCacheUtil.getWarningCount(recordId);
-                Integer breachStatus = ExamRecordCacheUtil.getBreachStatus(recordId);
+                Integer breachStatus = Objects.isNull(ExamRecordCacheUtil.getBreachStatus(recordId)) ? 1 : ExamRecordCacheUtil.getBreachStatus(recordId);
                 if (warningCount != null && warningCount.intValue() > 0) {//有预警
                     if (breachStatus == null) {//无违纪结果
                         ret.setStatus(FinishExamResultEnum.AUDITING);

+ 1 - 1
themis-business/src/main/resources/db/init.sql

@@ -378,7 +378,7 @@ INSERT INTO `t_b_privilege` VALUES (11, '考情监控', 'ExamInvigilation', 'MEN
 INSERT INTO `t_b_privilege` VALUES (13, '在线巡考', 'OnlinePatrol', 'MENU', 10, 2, NULL, 1600932652000);
 INSERT INTO `t_b_privilege` VALUES (15, '实时监控台', 'RealtimeMonitoring', 'MENU', 10, 3, NULL, 1600932652000);
 INSERT INTO `t_b_privilege` VALUES (16, '监考明细管理', 'InvigilationDetail', 'MENU', 10, 4, NULL, 1600932652000);
-INSERT INTO `t_b_privilege` VALUES (17, '预警提醒', 'WainingManage', 'MENU', 10, 5, NULL, 1600932652000);
+INSERT INTO `t_b_privilege` VALUES (17, '预警提醒', 'WarningManage', 'MENU', 10, 5, NULL, 1600932652000);
 INSERT INTO `t_b_privilege` VALUES (18, '重考申请', 'ReexamApply', 'MENU', 10, 6, NULL, 1600932652000);
 INSERT INTO `t_b_privilege` VALUES (19, '进度查询', 'ProgressDetail', 'MENU', 10, 7, NULL, 1600932652000);
 INSERT INTO `t_b_privilege` VALUES (21, '重考待审', 'ReexamPending', 'MENU', 10, 8, NULL, 1600932652000);

+ 8 - 9
themis-task/src/main/java/com/qmth/themis/task/quartz/MqActivityJob.java

@@ -13,7 +13,6 @@ import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.service.TEExamStudentService;
 import com.qmth.themis.business.util.RedisUtil;
 import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.scheduling.quartz.QuartzJobBean;
@@ -23,13 +22,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
-/** 
-* @Description: 非强制交卷activity任务
-* @Param:  
-* @return:  
-* @Author: wangliang
-* @Date: 2020/9/22 
-*/ 
+/**
+ * @Description: 非强制交卷activity任务
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/9/22
+ */
 public class MqActivityJob extends QuartzJobBean {
     private final static Logger log = LoggerFactory.getLogger(MqActivityJob.class);
 
@@ -65,7 +64,7 @@ public class MqActivityJob extends QuartzJobBean {
                             objectMap.forEach((k, v) -> {
                                 ExamRecordStatusEnum examRecordStatusEnum = (ExamRecordStatusEnum) v;
                                 //获取该考试批次下所有未交卷的考生的考试记录
-                                if (Objects.nonNull(examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
+                                if (Objects.nonNull(examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.PERSISTED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
                                     Long recordId = Long.parseLong(k);
                                     Integer durationSeconds = ExamRecordCacheUtil.getDurationSeconds(recordId);
                                     Long examStudentId = ExamRecordCacheUtil.getExamStudentId(recordId);

+ 4 - 5
themis-task/src/main/java/com/qmth/themis/task/quartz/service/impl/QuartzLogicServiceImpl.java

@@ -18,7 +18,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.Date;
 import java.util.Map;
 import java.util.Objects;
 
@@ -65,10 +64,10 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
                     objectMap.forEach((k, v) -> {
                         ExamRecordStatusEnum examRecordStatusEnum = (ExamRecordStatusEnum) v;
                         //获取该考试批次下所有未交卷的考生的考试记录
-                        if (Objects.nonNull(examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum)) {
+                        if (Objects.nonNull(examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.PERSISTED, examRecordStatusEnum)) {
                             Long recordId = Long.parseLong(k);
                             Long recordEndTime = ExamRecordCacheUtil.getEndTime(recordId);
-                            if (examActivityCacheBean.getFinishTime() == recordEndTime) {
+                            if (examActivityCacheBean.getFinishTime().longValue() == recordEndTime.longValue()) {
                                 Integer durationSeconds = ExamRecordCacheUtil.getDurationSeconds(recordId);
                                 Long examStudentId = ExamRecordCacheUtil.getExamStudentId(recordId);
                                 ExamStudentCacheBean examStudentCacheBean = teExamStudentService.getExamStudentCacheBean(examStudentId);
@@ -83,7 +82,7 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
                     objectMap.forEach((k, v) -> {
                         ExamRecordStatusEnum examRecordStatusEnum = (ExamRecordStatusEnum) v;
                         //获取该考试批次下所有未交卷的考生的考试记录
-                        if (Objects.nonNull(examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
+                        if (Objects.nonNull(examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.PERSISTED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
                             Long recordId = Long.parseLong(k);
                             Long recordEndTime = ExamRecordCacheUtil.getEndTime(recordId);
                             if (examActivityCacheBean.getFinishTime() == recordEndTime) {
@@ -115,7 +114,7 @@ public class QuartzLogicServiceImpl implements QuartzLogicService {
         ExamRecordStatusEnum examRecordStatusEnum = ExamRecordCacheUtil.getStatus(recordId);
         ExamActivityCacheBean examActivityCacheBean = teExamActivityService.getExamActivityCacheBean(examStudentCacheBean.getExamActivityId());
         //获取该考试批次下所有未交卷的考生的考试记录
-        if (Objects.nonNull(examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
+        if (Objects.nonNull(examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum) && !Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
             Long recordEndTime = ExamRecordCacheUtil.getEndTime(recordId);
             if (examActivityCacheBean.getFinishTime() == recordEndTime) {
                 Integer durationSeconds = ExamRecordCacheUtil.getDurationSeconds(recordId);