Browse Source

调试Bug修改

xiaof 3 years ago
parent
commit
7ab05d218a

+ 4 - 0
src/main/java/cn/com/qmth/print/manage/controller/UserController.java

@@ -9,6 +9,7 @@ import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.core.exception.StatusException;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -66,6 +67,9 @@ public class UserController {
                 throw new StatusException("用户名不能修改");
             }
         }
+        if(StringUtils.isBlank(user.getName())){
+            user.setName(user.getLoginName());
+        }
         user.setCreateTime(new Date());
         user.setUpdateTime(new Date());
         return userService.saveOrUpdate(user);

+ 2 - 0
src/main/java/cn/com/qmth/print/manage/service/BreakRecordService.java

@@ -18,4 +18,6 @@ public interface BreakRecordService extends IService<BreakRecordEntity> {
     IPage<BreakRecordEntity> pageQuery(RecordQuery query);
 
     List<BreakRecordEntity> listByExamId(Long examId);
+
+    void deleteByExamId(Long examId);
 }

+ 2 - 0
src/main/java/cn/com/qmth/print/manage/service/CheckRecordService.java

@@ -21,4 +21,6 @@ public interface CheckRecordService extends IService<CheckRecordEntity> {
     IPage<CheckRecordEntity> pageQuery(RecordQuery query);
 
     List<CheckRecordEntity> listByExamId(Long examId);
+
+    void deleteByExamId(Long examId);
 }

+ 2 - 0
src/main/java/cn/com/qmth/print/manage/service/ExamStudentService.java

@@ -22,4 +22,6 @@ public interface ExamStudentService extends IService<ExamStudentEntity> {
     IPage<ExamStudentEntity> pageStudent(ExamStudentQuery query);
 
     Object importStudents(Long examId, MultipartFile file) throws IOException;
+
+    void deleteByExamId(Long examId);
 }

+ 4 - 0
src/main/java/cn/com/qmth/print/manage/service/ExamUserRelationService.java

@@ -3,6 +3,10 @@ package cn.com.qmth.print.manage.service;
 import cn.com.qmth.print.manage.entity.ExamUserRelationEntity;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 public interface ExamUserRelationService extends IService<ExamUserRelationEntity> {
     void deleteByExamId(Long id);
+
+    List<ExamUserRelationEntity> listByExamId(Long id);
 }

+ 8 - 0
src/main/java/cn/com/qmth/print/manage/service/impl/BreakRecordServiceImpl.java

@@ -3,6 +3,7 @@ package cn.com.qmth.print.manage.service.impl;
 import java.util.Date;
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -119,4 +120,11 @@ public class BreakRecordServiceImpl extends ServiceImpl<BreakRecordDao, BreakRec
         queryWrapper.lambda().eq(BreakRecordEntity::getExamId, examId);
         return this.list(queryWrapper);
     }
+
+    @Override
+    public void deleteByExamId(Long examId) {
+        UpdateWrapper<BreakRecordEntity> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(BreakRecordEntity::getExamId, examId);
+        this.remove(updateWrapper);
+    }
 }

+ 8 - 0
src/main/java/cn/com/qmth/print/manage/service/impl/CheckRecordServiceImpl.java

@@ -3,6 +3,7 @@ package cn.com.qmth.print.manage.service.impl;
 import java.util.Date;
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -143,4 +144,11 @@ public class CheckRecordServiceImpl extends ServiceImpl<CheckRecordDao, CheckRec
         queryWrapper.lambda().eq(CheckRecordEntity::getExamId, examId);
         return this.list(queryWrapper);
     }
+
+    @Override
+    public void deleteByExamId(Long examId) {
+        UpdateWrapper<CheckRecordEntity> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(CheckRecordEntity::getExamId, examId);
+        this.remove(updateWrapper);
+    }
 }

+ 10 - 0
src/main/java/cn/com/qmth/print/manage/service/impl/ExamServiceImpl.java

@@ -20,6 +20,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements ExamService {
@@ -84,6 +85,15 @@ public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements
             List<ExamStudentEntity> studentEntityList = examStudentService.listByExamId(record.getId());
             record.setStudentCount(studentEntityList.size());
 
+            // 绑定用户
+            List<ExamUserRelationEntity> examUserRelationEntities = examUserRelationService.listByExamId(record.getId());
+            String userIds = null;
+            if(!CollectionUtils.isEmpty(examUserRelationEntities)){
+                List<String> ids = examUserRelationEntities.stream().map(m->String.valueOf(m.getUserId())).collect(Collectors.toList());
+                userIds = String.join(",", ids);
+            }
+            record.setUserIds(userIds);
+
             // 校验数量
             List<CheckRecordEntity> checkRecordEntities = checkRecordService.listByExamId(record.getId());
             record.setCheckCount(checkRecordEntities.size());

+ 70 - 12
src/main/java/cn/com/qmth/print/manage/service/impl/ExamStudentServiceImpl.java

@@ -3,21 +3,27 @@ package cn.com.qmth.print.manage.service.impl;
 import cn.com.qmth.print.manage.dao.ExamDao;
 import cn.com.qmth.print.manage.dao.ExamStudentDao;
 import cn.com.qmth.print.manage.dto.StudentDTO;
+import cn.com.qmth.print.manage.entity.CheckRecordEntity;
 import cn.com.qmth.print.manage.entity.ExamEntity;
 import cn.com.qmth.print.manage.entity.ExamStudentEntity;
 import cn.com.qmth.print.manage.enums.GroupType;
+import cn.com.qmth.print.manage.enums.RecordStatus;
+import cn.com.qmth.print.manage.service.BreakRecordService;
+import cn.com.qmth.print.manage.service.CheckRecordService;
 import cn.com.qmth.print.manage.service.ExamStudentService;
 import cn.com.qmth.print.manage.service.query.ExamStudentQuery;
 import cn.com.qmth.print.manage.utils.excel.ExcelError;
 import cn.com.qmth.print.manage.utils.excel.ExcelReader;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.core.exception.StatusException;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -30,11 +36,18 @@ import java.util.Date;
 import java.util.List;
 import java.util.StringJoiner;
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.stream.Collectors;
 
 @Service
 public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentDao, ExamStudentEntity> implements
         ExamStudentService {
 
+    @Autowired
+    private CheckRecordService checkRecordService;
+
+    @Autowired
+    private BreakRecordService breakRecordService;
+
     @Resource
     private ExamDao examDao;
 
@@ -106,7 +119,6 @@ public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentDao, ExamStud
         return this.page(page, queryWrapper);
     }
 
-    @Transactional
     @Override
     public List<ExcelError> importStudents(Long examId, MultipartFile file) throws IOException {
         ExamEntity examEntity = examDao.selectById(examId);
@@ -144,20 +156,66 @@ public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentDao, ExamStud
         }
 
         if (!CollectionUtils.isEmpty(studentList)) {
-            List<ExamStudentEntity> data = new ArrayList<>();
-            for (ExamStudentEntity stu : studentList) {
-                if (data.size() == 2000) {
-                    this.saveBatch(data);
-                    data.clear();
-                }
-                data.add(stu);
-            }
-            // 将剩下的数据也导入
-            if (!data.isEmpty()) {
+            insertData(examEntity, studentList);
+        }
+        return excelErrors;
+    }
+
+    @Override
+    public void deleteByExamId(Long examId) {
+        UpdateWrapper<ExamStudentEntity> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().eq(ExamStudentEntity::getExamId, examId);
+        this.remove(updateWrapper);
+    }
+
+    @Transactional
+    public void insertData(ExamEntity examEntity, List<ExamStudentEntity> studentList) {
+        // 删除考生表
+        this.deleteByExamId(examEntity.getId());
+        // 删除校验记录
+        checkRecordService.deleteByExamId(examEntity.getId());
+        // 删除中断记录
+        breakRecordService.deleteByExamId(examEntity.getId());
+
+        // 添加考生
+        List<ExamStudentEntity> data = new ArrayList<>();
+        for (ExamStudentEntity stu : studentList) {
+            if (data.size() == 2000) {
                 this.saveBatch(data);
+                data.clear();
             }
+            data.add(stu);
+        }
+        // 将剩下的数据也导入
+        if (!data.isEmpty()) {
+            this.saveBatch(data);
+        }
+
+        // 添加校验数据
+        List<CheckRecordEntity> checkRecordEntities = studentList.stream().map(m->{
+            CheckRecordEntity checkRecordEntity = new CheckRecordEntity();
+            checkRecordEntity.setOrgId(examEntity.getOrgId());
+            checkRecordEntity.setExamId(examEntity.getId());
+            checkRecordEntity.setGroupType(examEntity.getGroupType());
+            checkRecordEntity.setGroupName(examEntity.getGroupType().getName());
+            checkRecordEntity.setStatus(RecordStatus.NONE);
+            checkRecordEntity.setCreateTime(new Date());
+            checkRecordEntity.setUpdateTime(new Date());
+            return checkRecordEntity;
+        }).collect(Collectors.toList());
+
+        List<CheckRecordEntity> data1 = new ArrayList<>();
+        for (CheckRecordEntity stu : checkRecordEntities) {
+            if (data1.size() == 2000) {
+                checkRecordService.saveBatch(data1);
+                data1.clear();
+            }
+            data1.add(stu);
+        }
+        // 将剩下的数据也导入
+        if (!data1.isEmpty()) {
+            checkRecordService.saveBatch(data1);
         }
-        return excelErrors;
     }
 
     /**

+ 10 - 0
src/main/java/cn/com/qmth/print/manage/service/impl/ExamUserRelationServiceImpl.java

@@ -3,10 +3,13 @@ package cn.com.qmth.print.manage.service.impl;
 import cn.com.qmth.print.manage.dao.ExamUserRelationDao;
 import cn.com.qmth.print.manage.entity.ExamUserRelationEntity;
 import cn.com.qmth.print.manage.service.ExamUserRelationService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @Date: 2021/11/17.
  */
@@ -18,4 +21,11 @@ public class ExamUserRelationServiceImpl extends ServiceImpl<ExamUserRelationDao
         updateWrapper.lambda().eq(ExamUserRelationEntity::getExamId, examId);
         this.remove(updateWrapper);
     }
+
+    @Override
+    public List<ExamUserRelationEntity> listByExamId(Long examId) {
+        QueryWrapper<ExamUserRelationEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamUserRelationEntity::getExamId, examId);
+        return this.list(queryWrapper);
+    }
 }