deason 9 сар өмнө
parent
commit
5018cb4b54

+ 20 - 18
install/mysql/init/scan_central_db.sql

@@ -89,6 +89,8 @@ CREATE TABLE IF NOT EXISTS `sc_exam`
     `image_check_order`                varchar(50) DEFAULT NULL,
     `scanner_assigned_max_count`       int         DEFAULT NULL,
     `scanner_assigned_verify_password` varchar(50) DEFAULT NULL,
+    `year`                             int         DEFAULT NULL,
+    `year_half`                        int         DEFAULT NULL,
     `data_sync_time`                   bigint      DEFAULT NULL,
     `card_sync_time`                   bigint      DEFAULT NULL,
     `creator_id`                       bigint      DEFAULT NULL,
@@ -194,9 +196,9 @@ CREATE TABLE IF NOT EXISTS `sc_package_task`
 -- ----------------------------
 CREATE TABLE IF NOT EXISTS `sc_scanner`
 (
-    `device`          varchar(64) NOT NULL,
-    `device_name` varchar(200) NOT NULL,
-    `last_login_time` bigint      NOT NULL,
+    `device`          varchar(64)  NOT NULL,
+    `device_name`     varchar(200) NOT NULL,
+    `last_login_time` bigint       NOT NULL,
     `create_time`     bigint DEFAULT NULL,
     `update_time`     bigint DEFAULT NULL,
     PRIMARY KEY (`device`)
@@ -280,10 +282,10 @@ CREATE TABLE IF NOT EXISTS `sc_batch_paper`
     `card_number`  int(11)    NOT NULL,
     `assigned`     bit(1)     NOT NULL,
     `need_check`   bit(1)     NOT NULL,
-    `creator_id`          bigint      DEFAULT NULL,
-    `updater_id`          bigint      DEFAULT NULL,
-    `create_time`         bigint      DEFAULT NULL,
-    `update_time`         bigint      DEFAULT NULL,
+    `creator_id`   bigint DEFAULT NULL,
+    `updater_id`   bigint DEFAULT NULL,
+    `create_time`  bigint DEFAULT NULL,
+    `update_time`  bigint DEFAULT NULL,
     PRIMARY KEY (`batch_id`, `student_id`, `paper_number`),
     UNIQUE KEY `paper_id` (`paper_id`)
 ) ENGINE = InnoDB
@@ -540,21 +542,21 @@ CREATE TABLE IF NOT EXISTS `sc_assigned_check_history`
     KEY `student` (`student_id`)
 ) ENGINE = InnoDB
   DEFAULT CHARSET = utf8mb4;
-  
+
 CREATE TABLE IF NOT EXISTS `sc_mark_site`
 (
-    `id`          bigint NOT NULL AUTO_INCREMENT,
-    `exam_id`     bigint NOT NULL,
+    `id`           bigint       NOT NULL AUTO_INCREMENT,
+    `exam_id`      bigint       NOT NULL,
     `subject_code` varchar(100) NOT NULL,
-    `paper_type` varchar(100) NOT NULL,
-    `odd_number` varchar(100) NOT NULL,
-    `even_number` varchar(100) NOT NULL,
-    `creator_id`  bigint DEFAULT NULL,
-    `updater_id`  bigint DEFAULT NULL,
-    `create_time` bigint DEFAULT NULL,
-    `update_time` bigint DEFAULT NULL,
+    `paper_type`   varchar(100) NOT NULL,
+    `odd_number`   varchar(100) NOT NULL,
+    `even_number`  varchar(100) NOT NULL,
+    `creator_id`   bigint DEFAULT NULL,
+    `updater_id`   bigint DEFAULT NULL,
+    `create_time`  bigint DEFAULT NULL,
+    `update_time`  bigint DEFAULT NULL,
     PRIMARY KEY (`id`),
-    UNIQUE KEY `exam_subject_paper` (`exam_id`, `subject_code`,`paper_type`)
+    UNIQUE KEY `exam_subject_paper` (`exam_id`, `subject_code`, `paper_type`)
 ) ENGINE = InnoDB
   DEFAULT CHARSET = utf8mb4;
   

+ 22 - 0
src/main/java/cn/com/qmth/scancentral/entity/ExamEntity.java

@@ -55,6 +55,12 @@ public class ExamEntity extends AuditingWithoutIdEntity {
     // 人工绑定解锁密码
     private String scannerAssignedVerifyPassword;
 
+    // 考试年度
+    private Integer year;
+
+    // 考次
+    private Integer yearHalf;
+
     // 考生同步时间
     private Long dataSyncTime;
 
@@ -225,4 +231,20 @@ public class ExamEntity extends AuditingWithoutIdEntity {
         this.examNumberFillCount = examNumberFillCount;
     }
 
+    public Integer getYear() {
+        return year;
+    }
+
+    public void setYear(Integer year) {
+        this.year = year;
+    }
+
+    public Integer getYearHalf() {
+        return yearHalf;
+    }
+
+    public void setYearHalf(Integer yearHalf) {
+        this.yearHalf = yearHalf;
+    }
+
 }

+ 10 - 5
src/main/java/cn/com/qmth/scancentral/service/ExamService.java

@@ -1,10 +1,5 @@
 package cn.com.qmth.scancentral.service;
 
-import java.util.List;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.qmth.boot.core.collection.PageResult;
-
 import cn.com.qmth.scancentral.bean.ImportExamDomain;
 import cn.com.qmth.scancentral.bean.User;
 import cn.com.qmth.scancentral.entity.ExamEntity;
@@ -17,6 +12,11 @@ import cn.com.qmth.scancentral.vo.examinfo.ExamOverview;
 import cn.com.qmth.scancentral.vo.examinfo.ExamQuery;
 import cn.com.qmth.scancentral.vo.scanexaminfo.ScanExamInfoVo;
 import cn.com.qmth.scancentral.vo.scanexamlist.ScanExamListVo;
+import cn.com.qmth.scancentral.vo.studentimport.StudentImportConfigVo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.boot.core.collection.PageResult;
+
+import java.util.List;
 
 public interface ExamService extends IService<ExamEntity> {
 
@@ -34,6 +34,10 @@ public interface ExamService extends IService<ExamEntity> {
 
     ExamConfigVo getConfigInfo(Long examId);
 
+    StudentImportConfigVo getStudentImportConfig(Long examId);
+
+    void saveStudentImportConfig(StudentImportConfigVo config);
+
     void saveConfig(ExamConfigVo config, User user);
 
     ExamEntity save(ImportExamDomain exam);
@@ -49,4 +53,5 @@ public interface ExamService extends IService<ExamEntity> {
     ExamEntity updateEnableSyncVerify(User user, Long examId, Boolean enableSyncVerify);
 
     AuditorOverview getAuditorOverview(Long examId, User user);
+
 }

+ 61 - 21
src/main/java/cn/com/qmth/scancentral/service/impl/ExamServiceImpl.java

@@ -1,25 +1,5 @@
 package cn.com.qmth.scancentral.service.impl;
 
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.boot.core.collection.PageResult;
-import com.qmth.boot.core.concurrent.service.ConcurrentService;
-import com.qmth.boot.core.exception.ParameterException;
-import com.qmth.boot.core.security.exception.AuthorizationException;
-
 import cn.com.qmth.scancentral.bean.ImportExamDomain;
 import cn.com.qmth.scancentral.bean.User;
 import cn.com.qmth.scancentral.dao.ExamDao;
@@ -42,6 +22,25 @@ import cn.com.qmth.scancentral.vo.omr.OmrTaskOverview;
 import cn.com.qmth.scancentral.vo.scanexaminfo.ScanExamInfoVo;
 import cn.com.qmth.scancentral.vo.scanexamlist.ScanExamListQuery;
 import cn.com.qmth.scancentral.vo.scanexamlist.ScanExamListVo;
+import cn.com.qmth.scancentral.vo.studentimport.StudentImportConfigVo;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.boot.core.collection.PageResult;
+import com.qmth.boot.core.concurrent.service.ConcurrentService;
+import com.qmth.boot.core.exception.ParameterException;
+import com.qmth.boot.core.security.exception.AuthorizationException;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
 
 @Service
 public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements ExamService {
@@ -334,6 +333,47 @@ public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements
         }
     }
 
+    @Override
+    public StudentImportConfigVo getStudentImportConfig(Long examId) {
+        if (examId == null) {
+            throw new ParameterException("examId不能为空");
+        }
+        ExamEntity exam = this.getById(examId);
+        if (exam == null) {
+            throw ParameterExceptions.EXAM_NOT_FOUND;
+        }
+
+        StudentImportConfigVo config = new StudentImportConfigVo();
+        config.setExamId(examId);
+        config.setYear(exam.getYear());
+        config.setYearHalf(exam.getYearHalf());
+        return config;
+    }
+
+    @Override
+    public void saveStudentImportConfig(StudentImportConfigVo config) {
+        if (config.getExamId() == null) {
+            throw new ParameterException("examId不能为空");
+        }
+        if (config.getYear() == null) {
+            throw new ParameterException("考试年度不能为空");
+        }
+        if (config.getYearHalf() == null) {
+            throw new ParameterException("考次不能为空");
+        }
+        ExamEntity exam = this.getById(config.getExamId());
+        if (exam == null) {
+            throw ParameterExceptions.EXAM_NOT_FOUND;
+        }
+
+        LambdaUpdateWrapper<ExamEntity> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(ExamEntity::getYear, config.getYear());
+        updateWrapper.set(ExamEntity::getYearHalf, config.getYearHalf());
+        updateWrapper.set(ExamEntity::getUpdateTime, System.currentTimeMillis());
+        updateWrapper.eq(ExamEntity::getId, exam.getId());
+        this.update(updateWrapper);
+    }
+
     @Transactional
     @Override
     public ExamEntity save(ImportExamDomain domain) {
@@ -459,7 +499,7 @@ public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements
 
     @Override
     public AuditorOverview getAuditorOverview(Long examId, User user) {
-        if(!user.getRole().equals(Role.AUDITOR)){
+        if (!user.getRole().equals(Role.AUDITOR)) {
             throw new ParameterException("user 不是审核员");
         }
         ExamEntity exam = this.getById(examId);