Explorar el Código

新增考试批次编码校验重复

wangliang hace 2 años
padre
commit
5421e9573a

+ 18 - 0
themis-business/src/main/java/com/qmth/themis/business/dao/TBExamInvigilateUserTempMapper.java

@@ -0,0 +1,18 @@
+package com.qmth.themis.business.dao;
+
+import com.qmth.themis.business.base.CustomBaseMapper;
+import com.qmth.themis.business.entity.TBExamInvigilateUser;
+import com.qmth.themis.business.entity.TBExamInvigilateUserTemp;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Description: 监考员设置 Mapper 接口
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/9
+ */
+@Mapper
+public interface TBExamInvigilateUserTempMapper extends CustomBaseMapper<TBExamInvigilateUserTemp> {
+
+}

+ 110 - 0
themis-business/src/main/java/com/qmth/themis/business/entity/TBExamInvigilateUserTemp.java

@@ -0,0 +1,110 @@
+package com.qmth.themis.business.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.themis.business.util.UidUtil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 监考员设置
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/9
+ */
+@ApiModel(value = "t_b_exam_invigilate_user_temp", description = "监考员设置")
+public class TBExamInvigilateUserTemp implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "主键")
+    @TableId(value = "id")
+    private Long id;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "考试批次ID")
+    @TableField(value = "exam_id")
+    private Long examId;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "机构ID")
+    @TableField(value = "org_id")
+    private Long orgId;
+
+    @ApiModelProperty(value = "考场代码")
+    @TableField(value = "room_code")
+    private String roomCode;
+
+    @ApiModelProperty(value = "考场名称")
+    @TableField(value = "room_name")
+    private String roomName;
+
+    public TBExamInvigilateUserTemp() {
+
+    }
+
+    public TBExamInvigilateUserTemp(Long examId, Long orgId, String roomCode) {
+        this.id = UidUtil.nextId();
+        this.examId = examId;
+        this.orgId = orgId;
+        this.roomCode = roomCode;
+    }
+
+    public TBExamInvigilateUserTemp(Long examId, Long orgId, String roomCode, String roomName) {
+        this.id = UidUtil.nextId();
+        this.examId = examId;
+        this.orgId = orgId;
+        this.roomCode = roomCode;
+        this.roomName = roomName;
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public String getRoomCode() {
+        return roomCode;
+    }
+
+    public void setRoomCode(String roomCode) {
+        this.roomCode = roomCode;
+    }
+
+    public String getRoomName() {
+        return roomName;
+    }
+
+    public void setRoomName(String roomName) {
+        this.roomName = roomName;
+    }
+}

+ 3 - 1
themis-business/src/main/java/com/qmth/themis/business/enums/FieldUniqueEnum.java

@@ -35,7 +35,9 @@ public enum FieldUniqueEnum {
 
 
     org_login_name("登录名"),
     org_login_name("登录名"),
 
 
-    union_identity_index("考生证件号");
+    union_identity_index("考生证件号"),
+
+    room_code_index("该考试批次下考场编码");
 
 
     private String code;
     private String code;
 
 

+ 15 - 0
themis-business/src/main/java/com/qmth/themis/business/service/TBExamInvigilateUserTempService.java

@@ -0,0 +1,15 @@
+package com.qmth.themis.business.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.themis.business.entity.TBExamInvigilateUserTemp;
+
+/**
+ * @Description: 监考员设置 服务类
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/9
+ */
+public interface TBExamInvigilateUserTempService extends IService<TBExamInvigilateUserTemp> {
+
+}

+ 19 - 0
themis-business/src/main/java/com/qmth/themis/business/service/impl/TBExamInvigilateUserTempServiceImpl.java

@@ -0,0 +1,19 @@
+package com.qmth.themis.business.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.themis.business.dao.TBExamInvigilateUserTempMapper;
+import com.qmth.themis.business.entity.TBExamInvigilateUserTemp;
+import com.qmth.themis.business.service.TBExamInvigilateUserTempService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Description: 监考员设置 服务实现类
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/9
+ */
+@Service
+public class TBExamInvigilateUserTempServiceImpl extends ServiceImpl<TBExamInvigilateUserTempMapper, TBExamInvigilateUserTemp> implements TBExamInvigilateUserTempService {
+
+}

+ 3 - 0
themis-business/src/main/java/com/qmth/themis/business/templete/TaskImportCommon.java

@@ -189,6 +189,9 @@ public class TaskImportCommon {
                     .replaceAll("'", "");
                     .replaceAll("'", "");
             errorMessage = "错误信息:[" + FieldUniqueEnum.convertToCode(columnStr) + "数据不允许重复插入]";
             errorMessage = "错误信息:[" + FieldUniqueEnum.convertToCode(columnStr) + "数据不允许重复插入]";
         }
         }
+        if (Objects.nonNull(this.map.get("remark"))) {
+            errorMessage = errorMessage + "->" + this.map.get("remark");
+        }
         txtList.add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->" + exceptionStr + errorMessage);
         txtList.add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->" + exceptionStr + errorMessage);
         this.tbTaskHistory.setSummary(exceptionStr);
         this.tbTaskHistory.setSummary(exceptionStr);
         this.tbTaskHistory.setStatus(TaskStatusEnum.FINISH);
         this.tbTaskHistory.setStatus(TaskStatusEnum.FINISH);

+ 41 - 12
themis-business/src/main/java/com/qmth/themis/business/templete/service/impl/TempleteLogicServiceImpl.java

@@ -60,6 +60,9 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
     @Resource
     @Resource
     TBUserRoleService tbUserRoleService;
     TBUserRoleService tbUserRoleService;
 
 
+    @Resource
+    TBExamInvigilateUserTempService tbExamInvigilateUserTempService;
+
     /**
     /**
      * 考生导入逻辑
      * 考生导入逻辑
      *
      *
@@ -78,6 +81,7 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
         List<TEExamStudent> teExamStudentList = new ArrayList<>();
         List<TEExamStudent> teExamStudentList = new ArrayList<>();
         List<TEStudent> teStudentList = new ArrayList<>();
         List<TEStudent> teStudentList = new ArrayList<>();
         List<TBExamInvigilateUser> tbExamInvigilateUserList = new ArrayList<>();
         List<TBExamInvigilateUser> tbExamInvigilateUserList = new ArrayList<>();
+        List<TBExamInvigilateUserTemp> tbExamInvigilateUserTempList = new ArrayList<>();
         Gson gson = new Gson();
         Gson gson = new Gson();
         Set<String> roomCodeAndNameSet = new HashSet<>();
         Set<String> roomCodeAndNameSet = new HashSet<>();
         Map<String, TEExamActivity> teExamActivityMap = (Map<String, TEExamActivity>) map.get("teExamActivityMap");
         Map<String, TEExamActivity> teExamActivityMap = (Map<String, TEExamActivity>) map.get("teExamActivityMap");
@@ -208,9 +212,23 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                     String[] strs = s.split(":");
                     String[] strs = s.split(":");
                     TBExamInvigilateUser tbExamInvigilateUser = new TBExamInvigilateUser(Long.parseLong(strs[0]), orgId, strs[1], strs[2]);
                     TBExamInvigilateUser tbExamInvigilateUser = new TBExamInvigilateUser(Long.parseLong(strs[0]), orgId, strs[1], strs[2]);
                     tbExamInvigilateUserList.add(tbExamInvigilateUser);
                     tbExamInvigilateUserList.add(tbExamInvigilateUser);
+
+                    QueryWrapper<TBExamInvigilateUserTemp> tbExamInvigilateUserTempQueryWrapper = new QueryWrapper<>();
+                    tbExamInvigilateUserTempQueryWrapper.lambda().eq(TBExamInvigilateUserTemp::getExamId, Long.parseLong(strs[0]))
+                            .eq(TBExamInvigilateUserTemp::getOrgId, orgId)
+                            .eq(TBExamInvigilateUserTemp::getRoomCode, strs[1])
+                            .eq(TBExamInvigilateUserTemp::getRoomName, strs[2]);
+
+                    map.put("remark", "编码:" + strs[1] + ",名称:" + strs[2]);
+                    TBExamInvigilateUserTemp tbExamInvigilateUserTemp = tbExamInvigilateUserTempService.getOne(tbExamInvigilateUserTempQueryWrapper);
+                    tbExamInvigilateUserTemp = Objects.isNull(tbExamInvigilateUserTemp) ? new TBExamInvigilateUserTemp(Long.parseLong(strs[0]), orgId, strs[1], strs[2]) : tbExamInvigilateUserTemp;
+                    tbExamInvigilateUserTempList.add(tbExamInvigilateUserTemp);
                     count.getAndIncrement();
                     count.getAndIncrement();
                 }
                 }
             });
             });
+            if (!CollectionUtils.isEmpty(tbExamInvigilateUserTempList)) {
+                tbExamInvigilateUserTempService.saveOrUpdateBatch(tbExamInvigilateUserTempList);
+            }
             if (!CollectionUtils.isEmpty(tbExamInvigilateUserList)) {
             if (!CollectionUtils.isEmpty(tbExamInvigilateUserList)) {
                 tbExamInvigilateUserService.saveOrUpdateBatch(tbExamInvigilateUserList);
                 tbExamInvigilateUserService.saveOrUpdateBatch(tbExamInvigilateUserList);
             }
             }
@@ -261,8 +279,11 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                     RoomCodeImportDto roomCodeImportDto = (RoomCodeImportDto) subList.get(y);
                     RoomCodeImportDto roomCodeImportDto = (RoomCodeImportDto) subList.get(y);
                     roomCodeSet.add(roomCodeImportDto.getRoomCode());
                     roomCodeSet.add(roomCodeImportDto.getRoomCode());
                     roomNameSet.add(roomCodeImportDto.getRoomName());
                     roomNameSet.add(roomCodeImportDto.getRoomName());
+                    map.put("remark", "编码:" + roomCodeImportDto.getRoomCode() + ",名称:" + roomCodeImportDto.getRoomName());
                     dataVerify(examId, roomCodeImportDto.getTeacher1(), roomCodeImportDto.getTeacher1Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
                     dataVerify(examId, roomCodeImportDto.getTeacher1(), roomCodeImportDto.getTeacher1Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
+                    map.put("remark", "编码:" + roomCodeImportDto.getRoomCode() + ",名称:" + roomCodeImportDto.getRoomName());
                     dataVerify(examId, roomCodeImportDto.getTeacher2(), roomCodeImportDto.getTeacher2Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
                     dataVerify(examId, roomCodeImportDto.getTeacher2(), roomCodeImportDto.getTeacher2Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
+                    map.put("remark", "编码:" + roomCodeImportDto.getRoomCode() + ",名称:" + roomCodeImportDto.getRoomName());
                     dataVerify(examId, roomCodeImportDto.getTeacher3(), roomCodeImportDto.getTeacher3Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
                     dataVerify(examId, roomCodeImportDto.getTeacher3(), roomCodeImportDto.getTeacher3Pwd(), roomCodeImportDto.getRoomCode(), roomCodeImportDto.getRoomName(), orgId, createId, tbUserList, tbUserRoleList, tbExamInvigilateUserList);
                 }
                 }
                 txtList = this.importProgress(max, min, size, txtList, tbTaskHistory);
                 txtList = this.importProgress(max, min, size, txtList, tbTaskHistory);
@@ -343,7 +364,7 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
      * @param createId
      * @param createId
      */
      */
     public void dataVerify(Long examId, String userName, String password, String roomCode, String roomName, Long orgId, Long createId, Set<TBUser> tbUserList, Set<TBUserRole> tbUserRoleList, Set<TBExamInvigilateUser> tbExamInvigilateUserList) throws UnsupportedEncodingException {
     public void dataVerify(Long examId, String userName, String password, String roomCode, String roomName, Long orgId, Long createId, Set<TBUser> tbUserList, Set<TBUserRole> tbUserRoleList, Set<TBExamInvigilateUser> tbExamInvigilateUserList) throws UnsupportedEncodingException {
-        if (checkRoomCodeExist(examId, roomCode, orgId)) {
+        if (!checkRoomCodeExist(examId, roomCode, orgId, roomName)) {
             throw new BusinessException("考场代码 " + roomCode + " 不存在");
             throw new BusinessException("考场代码 " + roomCode + " 不存在");
         }
         }
         if (Objects.nonNull(userName)) {
         if (Objects.nonNull(userName)) {
@@ -384,17 +405,25 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
         }
         }
     }
     }
 
 
-    private boolean checkRoomCodeExist(Long examId, String roomCode, Long orgId) {
-        QueryWrapper<TBExamInvigilateUser> tbExamInvigilateUserQueryWrapper = new QueryWrapper<>();
-        tbExamInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, orgId)
-                .eq(TBExamInvigilateUser::getRoomCode, roomCode)
-                .eq(TBExamInvigilateUser::getExamId, examId);
-        int c = tbExamInvigilateUserService.count(tbExamInvigilateUserQueryWrapper);
-        if (c == 0) {
-            return true;
-        } else {
-            return false;
-        }
+    private boolean checkRoomCodeExist(Long examId, String roomCode, Long orgId, String roomName) {
+        QueryWrapper<TBExamInvigilateUserTemp> tbExamInvigilateUserTempQueryWrapper = new QueryWrapper<>();
+        tbExamInvigilateUserTempQueryWrapper.lambda().eq(TBExamInvigilateUserTemp::getExamId, examId)
+                .eq(TBExamInvigilateUserTemp::getOrgId, orgId)
+                .eq(TBExamInvigilateUserTemp::getRoomCode, roomCode)
+                .eq(TBExamInvigilateUserTemp::getRoomName, roomName);
+        TBExamInvigilateUserTemp tbExamInvigilateUserTemp = tbExamInvigilateUserTempService.getOne(tbExamInvigilateUserTempQueryWrapper);
+        tbExamInvigilateUserTemp = Objects.isNull(tbExamInvigilateUserTemp) ? new TBExamInvigilateUserTemp(orgId, examId, roomCode, roomName) : tbExamInvigilateUserTemp;
+        return tbExamInvigilateUserTempService.saveOrUpdate(tbExamInvigilateUserTemp);
+//        QueryWrapper<TBExamInvigilateUser> tbExamInvigilateUserQueryWrapper = new QueryWrapper<>();
+//        tbExamInvigilateUserQueryWrapper.lambda().eq(TBExamInvigilateUser::getOrgId, orgId)
+//                .eq(TBExamInvigilateUser::getRoomCode, roomCode)
+//                .eq(TBExamInvigilateUser::getExamId, examId);
+//        int c = tbExamInvigilateUserService.count(tbExamInvigilateUserQueryWrapper);
+//        if (c == 0) {
+//            return true;
+//        } else {
+//            return false;
+//        }
     }
     }
 
 
     /**
     /**

+ 5 - 0
themis-business/src/main/resources/mapper/TBExamInvigilateUserTempMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.qmth.themis.business.dao.TBExamInvigilateUserTempMapper">
+
+</mapper>