|
@@ -15,6 +15,7 @@ import com.qmth.themis.business.constant.SystemConstant;
|
|
import com.qmth.themis.business.dto.AuthDto;
|
|
import com.qmth.themis.business.dto.AuthDto;
|
|
import com.qmth.themis.business.dto.MqDto;
|
|
import com.qmth.themis.business.dto.MqDto;
|
|
import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
|
|
import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
|
|
|
|
+import com.qmth.themis.business.dto.response.TBExamInvigilateUserDto;
|
|
import com.qmth.themis.business.entity.*;
|
|
import com.qmth.themis.business.entity.*;
|
|
import com.qmth.themis.business.enums.*;
|
|
import com.qmth.themis.business.enums.*;
|
|
import com.qmth.themis.business.excel.ExportUtils;
|
|
import com.qmth.themis.business.excel.ExportUtils;
|
|
@@ -30,6 +31,7 @@ import com.qmth.themis.common.util.ResultUtil;
|
|
import io.swagger.annotations.*;
|
|
import io.swagger.annotations.*;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
@@ -38,6 +40,7 @@ import javax.validation.constraints.Max;
|
|
import javax.validation.constraints.Min;
|
|
import javax.validation.constraints.Min;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 监考信息 前端控制器
|
|
* @Description: 监考信息 前端控制器
|
|
@@ -86,6 +89,9 @@ public class TIeInvigilateController {
|
|
@Resource
|
|
@Resource
|
|
ThemisCacheService themisCacheService;
|
|
ThemisCacheService themisCacheService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ TBExamInvigilateUserService tbExamInvigilateUserService;
|
|
|
|
+
|
|
@ApiOperation(value = "实时监控台视频列表接口")
|
|
@ApiOperation(value = "实时监控台视频列表接口")
|
|
@RequestMapping(value = "/list/video", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/list/video", method = RequestMethod.POST)
|
|
@ApiResponses({@ApiResponse(code = 200, message = "监考监控信息", response = InvigilateListVideoBean.class)})
|
|
@ApiResponses({@ApiResponse(code = 200, message = "监考监控信息", response = InvigilateListVideoBean.class)})
|
|
@@ -317,7 +323,17 @@ public class TIeInvigilateController {
|
|
String roomName = examStudentCacheBean.getRoomName();
|
|
String roomName = examStudentCacheBean.getRoomName();
|
|
ExamActivityCacheBean examActivityCacheBean = teExamActivityService.getExamActivityCacheBean(examActivityId);
|
|
ExamActivityCacheBean examActivityCacheBean = teExamActivityService.getExamActivityCacheBean(examActivityId);
|
|
ExamCacheBean examCacheBean = teExamService.getExamCacheBean(examId);
|
|
ExamCacheBean examCacheBean = teExamService.getExamCacheBean(examId);
|
|
- InvigilateListDetailBean invigilateListDetailBean = new InvigilateListDetailBean(examCacheBean.getName(), examActivityCacheBean.getCode(), examId, examActivityId, examStudentId, examRecordId, identity, examStudentName, courseNameCode, status, roomCode, roomName, breachStatus, basePhotoPath);
|
|
|
|
|
|
+
|
|
|
|
+ IPage<TBExamInvigilateUserDto> tbExamInvigilateUserDtoIPage = tbExamInvigilateUserService.examInvigilateUserQuery(new Page<>(SystemConstant.PAGE_NUMBER_MIN, SystemConstant.SELECT_PAGE_SIZE_MAX), examId, roomCode, null, teStudent.getOrgId());
|
|
|
|
+ String invigilateUsers = null;
|
|
|
|
+ if (Objects.nonNull(tbExamInvigilateUserDtoIPage) && !CollectionUtils.isEmpty(tbExamInvigilateUserDtoIPage.getRecords())) {
|
|
|
|
+ invigilateUsers = tbExamInvigilateUserDtoIPage.getRecords().get(0).getName();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ InvigilateListDetailBean invigilateListDetailBean = new InvigilateListDetailBean(examCacheBean.getName(),
|
|
|
|
+ examActivityCacheBean.getCode(), examId, examActivityId, examStudentId, examRecordId, identity,
|
|
|
|
+ examStudentName, courseNameCode, status, roomCode, roomName, breachStatus, basePhotoPath,
|
|
|
|
+ examActivityCacheBean.getStartTime(), examActivityCacheBean.getFinishTime(), invigilateUsers);
|
|
|
|
|
|
//考生轨迹
|
|
//考生轨迹
|
|
QueryWrapper<TEExamStudentLog> teExamStudentLogQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<TEExamStudentLog> teExamStudentLogQueryWrapper = new QueryWrapper<>();
|
|
@@ -326,7 +342,7 @@ public class TIeInvigilateController {
|
|
// .ne(TEExamStudentLog::getType, SystemOperationEnum.BREACH_HANDLE.name())
|
|
// .ne(TEExamStudentLog::getType, SystemOperationEnum.BREACH_HANDLE.name())
|
|
// .ne(TEExamStudentLog::getType, SystemOperationEnum.BREACH_REVOKE.name())
|
|
// .ne(TEExamStudentLog::getType, SystemOperationEnum.BREACH_REVOKE.name())
|
|
.orderByAsc(TEExamStudentLog::getCreateTime);
|
|
.orderByAsc(TEExamStudentLog::getCreateTime);
|
|
-// .and(w -> w.ne(TEExamStudentLog::getType, SystemOperationEnum.BREACH_HANDLE.name()).or().ne(TEExamStudentLog::getType, SystemOperationEnum.BREACH_REVOKE.name()));
|
|
|
|
|
|
+ // .and(w -> w.ne(TEExamStudentLog::getType, SystemOperationEnum.BREACH_HANDLE.name()).or().ne(TEExamStudentLog::getType, SystemOperationEnum.BREACH_REVOKE.name()));
|
|
List<TEExamStudentLog> teExamStudentLogList = teExamStudentLogService.list(teExamStudentLogQueryWrapper);
|
|
List<TEExamStudentLog> teExamStudentLogList = teExamStudentLogService.list(teExamStudentLogQueryWrapper);
|
|
invigilateListDetailBean.setExamStudentLogList(teExamStudentLogList);
|
|
invigilateListDetailBean.setExamStudentLogList(teExamStudentLogList);
|
|
|
|
|