wangliang 3 سال پیش
والد
کامیت
dbcd71c3d8

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

@@ -33,7 +33,9 @@ public enum FieldUniqueEnum {
 
     t_b_org_code_Idx("机构代码"),
 
-    org_login_name("登录名");
+    org_login_name("登录名"),
+
+    union_identity_index("考生证件号");
 
     private String code;
 

+ 10 - 1
themis-business/src/main/java/com/qmth/themis/business/templete/TaskImportCommon.java

@@ -6,12 +6,14 @@ import com.google.gson.Gson;
 import com.qmth.themis.business.constant.SpringContextHolder;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.entity.TBTaskHistory;
+import com.qmth.themis.business.enums.FieldUniqueEnum;
 import com.qmth.themis.business.enums.TaskStatusEnum;
 import com.qmth.themis.business.service.TBTaskHistoryService;
 import com.qmth.themis.business.util.OssUtil;
 import com.qmth.themis.common.contanst.Constants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.dao.DuplicateKeyException;
 
 import java.io.*;
 import java.nio.charset.StandardCharsets;
@@ -180,7 +182,14 @@ public class TaskImportCommon {
     public List<String> exception(int line, Exception e, List<String> txtList) {
         this.exception = true;
         String exceptionStr = "数据处理到第" + (line == 0 ? line + 1 : line) + "条时发生异常,请联系系统管理员处理!";
-        txtList.add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->" + exceptionStr + "错误信息:[" + e.getMessage() + "]");
+        String errorMessage = "错误信息:[" + e.getMessage() + "]";
+        if (e instanceof DuplicateKeyException) {
+            String errorColumn = e.getCause().toString();
+            String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length())
+                    .replaceAll("'", "");
+            errorMessage = "错误信息:[" + FieldUniqueEnum.convertToCode(columnStr) + "数据不允许重复插入]";
+        }
+        txtList.add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->" + exceptionStr + errorMessage);
         this.tbTaskHistory.setSummary(exceptionStr);
         this.tbTaskHistory.setStatus(TaskStatusEnum.FINISH);
         return txtList;

+ 8 - 21
themis-business/src/main/java/com/qmth/themis/business/templete/service/impl/TempleteLogicServiceImpl.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.dao.*;
+import com.qmth.themis.business.dao.TEExamCourseMapper;
 import com.qmth.themis.business.dto.ExamStudentImportDto;
 import com.qmth.themis.business.dto.RoomCodeImportDto;
 import com.qmth.themis.business.entity.*;
@@ -54,23 +54,11 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
     @Resource
     TEExamCourseService teExamCourseService;
 
-    @Resource
-    TEStudentMapper teStudentMapper;
-
-    @Resource
-    TEExamStudentMapper teExamStudentMapper;
-
-    @Resource
-    TBExamInvigilateUserMapper tbExamInvigilateUserMapper;
-
     @Resource
     TEExamCourseMapper teExamCourseMapper;
 
     @Resource
-    TBUserMapper tbUserMapper;
-
-    @Resource
-    TBUserRoleMapper tbUserRoleMapper;
+    TBUserRoleService tbUserRoleService;
 
     /**
      * 考生导入逻辑
@@ -204,10 +192,10 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                 }
             }
             if (!CollectionUtils.isEmpty(teStudentList)) {
-                teStudentMapper.insertOrUpdateBath(teStudentList);
+                teStudentService.saveOrUpdateBatch(teStudentList);
             }
             if (!CollectionUtils.isEmpty(teExamStudentList)) {
-                teExamStudentMapper.insertOrUpdateBath(teExamStudentList);
+                teExamStudentService.saveOrUpdateBatch(teExamStudentList);
             }
         }
         map.put("line", line);
@@ -219,13 +207,12 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
                 if (Objects.isNull(tbExamInvigilateUserMap) || (Objects.nonNull(tbExamInvigilateUserMap) && Objects.isNull(tbExamInvigilateUserMap.get(s)))) {
                     String[] strs = s.split(":");
                     TBExamInvigilateUser tbExamInvigilateUser = new TBExamInvigilateUser(Long.parseLong(strs[0]), orgId, strs[1], strs[2]);
-//                    tbExamInvigilateUserService.save(tbExamInvigilateUser);
                     tbExamInvigilateUserList.add(tbExamInvigilateUser);
                     count.getAndIncrement();
                 }
             });
             if (!CollectionUtils.isEmpty(tbExamInvigilateUserList)) {
-                tbExamInvigilateUserMapper.insertOrUpdateBath(tbExamInvigilateUserList);
+                tbExamInvigilateUserService.saveOrUpdateBatch(tbExamInvigilateUserList);
             }
             if (count.get() > 0) {
                 txtList.add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->创建了" + count + "条考场数据");
@@ -297,13 +284,13 @@ public class TempleteLogicServiceImpl implements TempleteLogicService {
         tbExamInvigilateUserService.remove(wrapper);
 
         if (!CollectionUtils.isEmpty(tbUserList)) {
-            tbUserMapper.insertOrUpdateBath(tbUserList);
+            tbUserService.saveOrUpdateBatch(tbUserList);
         }
         if (!CollectionUtils.isEmpty(tbUserRoleList)) {
-            tbUserRoleMapper.insertOrUpdateBath(tbUserRoleList);
+            tbUserRoleService.saveOrUpdateBatch(tbUserRoleList);
         }
         if (!CollectionUtils.isEmpty(tbExamInvigilateUserList)) {
-            tbExamInvigilateUserMapper.insertOrUpdateBath(tbExamInvigilateUserList);
+            tbExamInvigilateUserService.saveOrUpdateBatch(tbExamInvigilateUserList);
         }
         map.put("line", line);
         return map;