|
@@ -1,6 +1,5 @@
|
|
|
package com.qmth.themis.backend.api;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -11,7 +10,6 @@ import com.qmth.themis.business.annotation.ApiJsonProperty;
|
|
|
import com.qmth.themis.business.base.BasePage;
|
|
|
import com.qmth.themis.business.bean.backend.*;
|
|
|
import com.qmth.themis.business.cache.RedisKeyHelper;
|
|
|
-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;
|
|
@@ -29,11 +27,13 @@ import com.qmth.themis.common.util.ResultUtil;
|
|
|
import io.swagger.annotations.*;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* @Description: 监考信息 前端控制器
|
|
@@ -134,6 +134,43 @@ public class TIeInvigilateController {
|
|
|
return ResultUtil.ok(basePage);
|
|
|
}
|
|
|
|
|
|
+ @ApiOperation(value = "监考明细管理列表接口")
|
|
|
+ @RequestMapping(value = "/history/list", method = RequestMethod.POST)
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "监考明细信息", response = InvigilateListHistoryBean.class)})
|
|
|
+ public Result historyList(@ApiParam(value = "考试批次id") @RequestParam Long examId,
|
|
|
+ @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long examActivityId,
|
|
|
+ @ApiParam(value = "虚拟考场代码", required = false) @RequestParam(required = false) String roomCode,
|
|
|
+ @ApiParam(value = "科目代码", required = false) @RequestParam(required = false) String courseCode,
|
|
|
+ @ApiParam(value = "考生状态", required = false) @RequestParam(required = false) String status,
|
|
|
+ @ApiParam(value = "违纪状态", required = false) @RequestParam(required = false) Integer breachStatus,
|
|
|
+ @ApiParam(value = "交卷方式", required = false) @RequestParam(required = false) String finishType,
|
|
|
+ @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
|
|
|
+ @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
|
|
|
+ @ApiParam(value = "陌生人脸min", required = false) @RequestParam(required = false) Integer minMultipleFaceCount,
|
|
|
+ @ApiParam(value = "陌生人脸max", required = false) @RequestParam(required = false) Integer maxMultipleFaceCount,
|
|
|
+ @ApiParam(value = "异常处理min", required = false) @RequestParam(required = false) Integer minExceptionCount,
|
|
|
+ @ApiParam(value = "异常处理max", required = false) @RequestParam(required = false) Integer maxExceptionCount,
|
|
|
+ @ApiParam(value = "预警量min", required = false) @RequestParam(required = false) Integer minWarningCount,
|
|
|
+ @ApiParam(value = "预警量max", required = false) @RequestParam(required = false) Integer maxWarningCount,
|
|
|
+ @ApiParam(value = "客户端网络通信状态", required = false) @RequestParam(required = false) String clientWebsocketStatus,
|
|
|
+ @ApiParam(value = "监控设备通信状态", required = false) @RequestParam(required = false) String monitorStatusSource,
|
|
|
+ @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber,
|
|
|
+ @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) {
|
|
|
+ if (Objects.isNull(examId) || Objects.equals(examId, "")) {
|
|
|
+ throw new BusinessException(ExceptionResultEnum.EXAM_ID_IS_NULL);
|
|
|
+ }
|
|
|
+ TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
|
|
|
+ AuthDto authDto = (AuthDto) redisUtil.get(SystemConstant.userOauth + "::" + tbUser.getId());
|
|
|
+ //如果有监考员角色,只能查看自己所监考的考场,巡考员和管理员则可以查看全部考场
|
|
|
+ Long userId = null;
|
|
|
+ if (authDto.getRoleCodes().toString().contains(RoleEnum.INVIGILATE.name())) {
|
|
|
+ userId = tbUser.getId();
|
|
|
+ }
|
|
|
+ IPage<InvigilateListHistoryBean> invigilateListHistoryBeanIPage = tOeExamRecordService.invigilatePageListHistory(new Page<>(pageNumber, pageSize), examId, examActivityId, roomCode, courseCode, status, breachStatus, finishType, name, identity, minMultipleFaceCount, maxMultipleFaceCount, minExceptionCount, maxExceptionCount, minWarningCount, maxWarningCount, clientWebsocketStatus, monitorStatusSource, userId);
|
|
|
+ BasePage basePage = new BasePage(invigilateListHistoryBeanIPage.getRecords(), invigilateListHistoryBeanIPage.getCurrent(), invigilateListHistoryBeanIPage.getSize(), invigilateListHistoryBeanIPage.getTotal());
|
|
|
+ return ResultUtil.ok(basePage);
|
|
|
+ }
|
|
|
+
|
|
|
@ApiOperation(value = "实时监控台列表明细接口")
|
|
|
@RequestMapping(value = "/list/detail", method = RequestMethod.POST)
|
|
|
@ApiResponses({@ApiResponse(code = 200, message = "监考监控信息", response = InvigilateListDetailBean.class)})
|