Przeglądaj źródła

Merge branch 'dev'
1

wangliang 4 lat temu
rodzic
commit
b3ed9a6dd6

+ 52 - 72
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamStudentController.java

@@ -1,71 +1,38 @@
 package com.qmth.themis.backend.api;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import javax.annotation.Resource;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
+import com.qmth.themis.business.cache.bean.ExamCourseCacheBean;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.MqDto;
+import com.qmth.themis.business.dto.response.RoomCodeQueryDto;
 import com.qmth.themis.business.dto.response.TEExamStudentDto;
-import com.qmth.themis.business.entity.TBAttachment;
-import com.qmth.themis.business.entity.TBExamInvigilateUser;
-import com.qmth.themis.business.entity.TBOrg;
-import com.qmth.themis.business.entity.TBTaskHistory;
-import com.qmth.themis.business.entity.TBUser;
-import com.qmth.themis.business.entity.TEExam;
-import com.qmth.themis.business.entity.TEExamActivity;
-import com.qmth.themis.business.entity.TEExamStudent;
-import com.qmth.themis.business.entity.TEStudent;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.MqTopicEnum;
-import com.qmth.themis.business.enums.TaskStatusEnum;
-import com.qmth.themis.business.enums.TaskTypeEnum;
-import com.qmth.themis.business.enums.UploadFileEnum;
-import com.qmth.themis.business.service.MqDtoService;
-import com.qmth.themis.business.service.TBAttachmentService;
-import com.qmth.themis.business.service.TBExamInvigilateUserService;
-import com.qmth.themis.business.service.TBTaskHistoryService;
-import com.qmth.themis.business.service.TEExamActivityService;
-import com.qmth.themis.business.service.TEExamService;
-import com.qmth.themis.business.service.TEExamStudentService;
-import com.qmth.themis.business.service.TEStudentService;
+import com.qmth.themis.business.entity.*;
+import com.qmth.themis.business.enums.*;
+import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.ServletUtil;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 考生库 前端控制器
@@ -107,26 +74,29 @@ public class TEExamStudentController {
     @Resource
     TEStudentService teStudentService;
 
+    @Resource
+    TEExamCourseService teExamCourseService;
+
     @ApiOperation(value = "考生导出")
     @RequestMapping(value = "/export", method = RequestMethod.POST)
     public Result export(@ApiParam(value = "考试批次id", required = true) @RequestParam Long examId,
-                       @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long activityId,
-                       @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
-                       @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
-                       @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 grade,
-                       @ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable,
-                       @ApiParam(value = "教学班级", required = false) @RequestParam(required = false) String classNo,
-                       @ApiParam(value = "底照是否上传", required = false) @RequestParam(required = false) Integer hasPhoto) throws Exception {
-    	TBTaskHistory tbTaskHistory = null;
+                         @ApiParam(value = "考试场次id", required = false) @RequestParam(required = false) Long activityId,
+                         @ApiParam(value = "证件号", required = false) @RequestParam(required = false) String identity,
+                         @ApiParam(value = "姓名", required = false) @RequestParam(required = false) String name,
+                         @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 grade,
+                         @ApiParam(value = "是否启用", required = false) @RequestParam(required = false) Integer enable,
+                         @ApiParam(value = "教学班级", required = false) @RequestParam(required = false) String classNo,
+                         @ApiParam(value = "底照是否上传", required = false) @RequestParam(required = false) Integer hasPhoto) throws Exception {
+        TBTaskHistory tbTaskHistory = null;
         Map<String, Object> transMap = new HashMap<String, Object>();
         TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
         //往任务表里插一条数据
         tbTaskHistory = new TBTaskHistory(TaskTypeEnum.EXPORT_EXAM_STUDENT, TaskStatusEnum.INIT, SystemConstant.EXPORT_INIT, 0d, tbUser.getId());
         taskHistoryService.save(tbTaskHistory);
         transMap.put("tbTaskHistory", tbTaskHistory);
-        
+
         transMap.put("examId", examId);
         transMap.put("activityId", activityId);
         transMap.put("identity", identity);
@@ -137,12 +107,12 @@ public class TEExamStudentController {
         transMap.put("enable", enable);
         transMap.put("classNo", classNo);
         transMap.put("hasPhoto", hasPhoto);
-        
+
         transMap.put("createId", tbUser.getId());
 
         //mq发送消息start
         MqDto mqDto = new MqDto(MqTopicEnum.THEMIS_TOPIC.getCode(), MqTagEnum.EXAM_STUDENT_EXPORT.name(), transMap, MqTagEnum.EXAM_STUDENT_EXPORT, String.valueOf(tbTaskHistory.getId()), tbUser.getName());
-        
+
         mqDtoService.assembleSendOneWayMsg(mqDto);
         //mq发送消息end
         Map<String, Long> map = new HashMap<String, Long>();
@@ -243,9 +213,23 @@ public class TEExamStudentController {
                 teStudentUpdateWrapper.lambda().set(TEStudent::getName, s.getName()).eq(TEStudent::getIdentity,
                         s.getIdentity());
                 teStudentService.update(teStudentUpdateWrapper);
-
                 s.setUpdateId(tbUser.getId());
             }
+            ExamCourseCacheBean examCourseCacheBean = teExamCourseService.getExamCourseCacheBean(s.getExamId(), s.getCourseCode());
+            if (Objects.isNull(examCourseCacheBean)) {
+                throw new BusinessException("考试科目不存在");
+            }
+            s.setCourseName(examCourseCacheBean.getCourseName());
+            List<RoomCodeQueryDto> roomCodeQueryDtoList = teExamStudentService.examRoomQuery(null);
+            if (Objects.nonNull(roomCodeQueryDtoList)) {
+                Map<String, RoomCodeQueryDto> roomCodeQueryDtoMap = roomCodeQueryDtoList.stream()
+                        .collect(Collectors.toMap(RoomCodeQueryDto::getRoomCode, Function.identity(), (dto1, dto2) -> dto1));
+                String roomName = roomCodeQueryDtoMap.get(s.getRoomCode()).getRoomName();
+                if (Objects.isNull(roomName)) {
+                    throw new BusinessException("考场不存在");
+                }
+                s.setRoomName(roomCodeQueryDtoMap.get(s.getRoomCode()).getRoomName());
+            }
         });
         teExamStudentService.saveOrUpdateBatch(teExamStudentList);
         teExamStudentList.forEach(s -> {
@@ -324,15 +308,11 @@ public class TEExamStudentController {
 
             // 获取考场代码和考场名称
             QueryWrapper<TBExamInvigilateUser> tbExamInvigilateUserQueryWrapper = new QueryWrapper<>();
-            tbExamInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, teExam.getOrgId());
-            List<TBExamInvigilateUser> tbExamInvigilateUserList = tbExamInvigilateUserService
-                    .list(tbExamInvigilateUserQueryWrapper);
+            tbExamInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, teExam.getOrgId()).eq(TBExamInvigilateUser::getExamId, examId);
+            List<TBExamInvigilateUser> tbExamInvigilateUserList = tbExamInvigilateUserService.list(tbExamInvigilateUserQueryWrapper);
             if (Objects.nonNull(tbExamInvigilateUserList) && tbExamInvigilateUserList.size() > 0) {
-                Map<String, String> tbExamInvigilateUserMap = new HashMap();
-                tbExamInvigilateUserList.forEach(s -> {
-                    tbExamInvigilateUserMap.put(s.getExamId() + ":" + s.getRoomCode() + ":" + s.getRoomName(),
-                            s.getRoomCode() + ":" + s.getRoomName());
-                });
+                Map<String, TBExamInvigilateUser> tbExamInvigilateUserMap = tbExamInvigilateUserList.stream()
+                        .collect(Collectors.toMap(TBExamInvigilateUser::getRoomCode, Function.identity(), (dto1, dto2) -> dto1));
                 transMap.put("tbExamInvigilateUserMap", tbExamInvigilateUserMap);
             }
             transMap.put("remark", tbAttachment.getRemark());

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamStudentServiceImpl.java

@@ -88,7 +88,7 @@ public class TEExamStudentServiceImpl extends ServiceImpl<TEExamStudentMapper, T
      */
     @Override
     public List<RoomCodeQueryDto> examRoomQuery(String roomName) {
-        return null;
+        return teExamStudentMapper.examRoomQuery(roomName);
     }
 
     /**

+ 7 - 2
themis-business/src/main/java/com/qmth/themis/business/templete/service/impl/TempleteLogicServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.google.gson.Gson;
+import com.qmth.themis.business.cache.bean.ExamCourseCacheBean;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dto.ExamStudentImportDto;
 import com.qmth.themis.business.dto.RoomCodeImportDto;
@@ -153,7 +154,6 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                     } else {
                         teExamStudent.setUpdateId(createId);
                         teExamStudent.setName(examStudentImportDto.getName());
-                        teExamStudent.setCourseName(examStudentImportDto.getCourseName());
                         teExamStudent.setGrade(examStudentImportDto.getGrade());
                         teExamStudent.setClassNo(examStudentImportDto.getClassNo());
                         teExamStudent.setRoomCode(examStudentImportDto.getRoomCode());
@@ -172,6 +172,11 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                     teExamStudentUpdateWrapper.lambda().set(TEExamStudent::getName, examStudentImportDto.getName())
                             .eq(TEExamStudent::getIdentity, examStudentImportDto.getIdentity());
                     teExamStudentService.update(teExamStudentUpdateWrapper);
+
+                    ExamCourseCacheBean examCourseCacheBean = teExamCourseService.getExamCourseCacheBean(teExamStudent.getExamId(), teExamStudent.getCourseCode());
+                    if (Objects.nonNull(examCourseCacheBean)) {
+                        teExamStudent.setCourseName(examCourseCacheBean.getCourseName());
+                    }
                     teExamStudentService.saveOrUpdate(teExamStudent);
                     roomCodeAndNameSet.add(examId + ":" + teExamStudent.getRoomCode() + ":" + teExamStudent.getRoomName());
                     teExamStudentList.add(teExamStudent);
@@ -191,7 +196,7 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
         }
         //考场创建
         if (Objects.nonNull(roomCodeAndNameSet) && roomCodeAndNameSet.size() > 0) {
-            Map<String, String> tbExamInvigilateUserMap = (Map<String, String>) map.get("tbExamInvigilateUserMap");
+            Map<String, TBExamInvigilateUser> tbExamInvigilateUserMap = (Map<String, TBExamInvigilateUser>) map.get("tbExamInvigilateUserMap");
             AtomicInteger count = new AtomicInteger(0);
             roomCodeAndNameSet.forEach(s -> {
                 if (Objects.isNull(tbExamInvigilateUserMap) || (Objects.nonNull(tbExamInvigilateUserMap) && Objects.isNull(tbExamInvigilateUserMap.get(s)))) {