deason před 9 měsíci
rodič
revize
327d8f1e7a

+ 8 - 9
src/main/java/cn/com/qmth/scancentral/service/OmrGroupService.java

@@ -1,14 +1,13 @@
 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.entity.OmrGroupEntity;
 import cn.com.qmth.scancentral.vo.OmrGroupUpdateVo;
 import cn.com.qmth.scancentral.vo.OmrGroupVo;
 import cn.com.qmth.scancentral.vo.omr.OmrGroupQuery;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.boot.core.collection.PageResult;
+
+import java.util.List;
 
 public interface OmrGroupService extends IService<OmrGroupEntity> {
 
@@ -24,12 +23,12 @@ public interface OmrGroupService extends IService<OmrGroupEntity> {
 
     void save(OmrGroupUpdateVo vo);
 
-    List<OmrGroupEntity> findByExamIdAndSubjectCodeAndFixed(Long examId,String subjectCode, Boolean fixed);
+    List<OmrGroupEntity> findByExamIdAndSubjectCodeAndFixed(Long examId, String subjectCode, Boolean fixed);
 
-    void updateTotalCount(Long id);
+    void addFixOmrCondition(Long userId, Long examId, String subjectCode);
 
-    void addFixOmrCondition(Long userId, Long examId);
+    void updateTotalCount(Long id);
 
-    void updateTotalCountByExamId(Long examId, String subjectCode);
+    void updateTotalCount(Long examId, String subjectCode);
 
 }

+ 20 - 38
src/main/java/cn/com/qmth/scancentral/service/impl/ExamServiceImpl.java

@@ -1,48 +1,13 @@
 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.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;
 import cn.com.qmth.scancentral.entity.ExamEntity;
 import cn.com.qmth.scancentral.entity.ExamSummaryEntity;
-import cn.com.qmth.scancentral.enums.CheckStatus;
-import cn.com.qmth.scancentral.enums.ExamMode;
-import cn.com.qmth.scancentral.enums.ExamStatus;
-import cn.com.qmth.scancentral.enums.ImageTransferMode;
-import cn.com.qmth.scancentral.enums.OP;
-import cn.com.qmth.scancentral.enums.Role;
-import cn.com.qmth.scancentral.enums.SystemMode;
-import cn.com.qmth.scancentral.enums.TaskStatus;
+import cn.com.qmth.scancentral.enums.*;
 import cn.com.qmth.scancentral.exception.ParameterExceptions;
-import cn.com.qmth.scancentral.service.AnswerCardService;
-import cn.com.qmth.scancentral.service.BatchService;
-import cn.com.qmth.scancentral.service.ExamService;
-import cn.com.qmth.scancentral.service.ExamSummaryService;
-import cn.com.qmth.scancentral.service.OmrGroupService;
-import cn.com.qmth.scancentral.service.OmrTaskService;
-import cn.com.qmth.scancentral.service.PackageCardService;
-import cn.com.qmth.scancentral.service.PackageTaskService;
-import cn.com.qmth.scancentral.service.StudentService;
-import cn.com.qmth.scancentral.service.SubjectService;
+import cn.com.qmth.scancentral.service.*;
 import cn.com.qmth.scancentral.util.JsonMapper;
 import cn.com.qmth.scancentral.util.MathUtil;
 import cn.com.qmth.scancentral.util.PageUtil;
@@ -58,6 +23,23 @@ 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.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 {
@@ -433,7 +415,7 @@ public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements
         exam.setMode(domain.getMode());
         exam.setPaperTypeBarcodeContent(domain.getPaperTypeBarcodeContent());
         if (getById(domain.getId()) == null) {
-            omrGroupService.addFixOmrCondition(1L, exam.getId());
+            omrGroupService.addFixOmrCondition(1L, exam.getId(), null);
         }
         exam.setExamNumberFillCount(domain.getExamNumberFillCount());
         this.saveOrUpdate(exam);

+ 27 - 15
src/main/java/cn/com/qmth/scancentral/service/impl/OmrGroupServiceImpl.java

@@ -267,6 +267,7 @@ public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity
             group.setStage(Stage.FIRST);
             group.setTotalCount(0);
             group.setCreatorId(vo.getUserId());
+            group.setUpdaterId(vo.getUserId());
             group.setCreateTime(System.currentTimeMillis());
             group.setUpdateTime(System.currentTimeMillis());
             this.save(group);
@@ -285,7 +286,7 @@ public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity
     }
 
     private void checkOmrCondition(Long id, Long examId, String subjectCode, List<OmrCondition> conditions) {
-        List<OmrGroupEntity> list = findByExamId(examId, subjectCode);
+        List<OmrGroupEntity> list = findByExamIdAndSubjectCode(examId, subjectCode);
         if (CollectionUtils.isEmpty(list)) {
             return;
         }
@@ -304,7 +305,7 @@ public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity
         }
     }
 
-    private List<OmrGroupEntity> findByExamId(Long examId, String subjectCode) {
+    private List<OmrGroupEntity> findByExamIdAndSubjectCode(Long examId, String subjectCode) {
         LambdaQueryWrapper<OmrGroupEntity> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(OmrGroupEntity::getExamId, examId);
         wrapper.eq(OmrGroupEntity::getSubjectCode, subjectCode);
@@ -320,31 +321,42 @@ public class OmrGroupServiceImpl extends ServiceImpl<OmrGroupDao, OmrGroupEntity
         baseMapper.updateTotalCount(id);
     }
 
+    @Transactional
+    @Override
+    public void updateTotalCount(Long examId, String subjectCode) {
+        List<OmrGroupEntity> list = this.findByExamIdAndSubjectCode(examId, subjectCode);
+        for (OmrGroupEntity omrGroupEntity : list) {
+            this.updateTotalCount(omrGroupEntity.getId());
+        }
+    }
+
     @Override
-    public void addFixOmrCondition(Long userId, Long examId) {
+    public void addFixOmrCondition(Long userId, Long examId, String subjectCode) {
+        if (examId == null) {
+            throw new ParameterException("examId不能为空");
+        }
+        if (StringUtils.isBlank(subjectCode)) {
+            throw new ParameterException("subjectCode不能为空");
+        }
+
         OmrGroupEntity group = new OmrGroupEntity();
         group.setExamId(examId);
-        List<OmrCondition> conditions = new ArrayList<OmrCondition>();
+        group.setSubjectCode(subjectCode);
+
+        List<OmrCondition> conditions = new ArrayList<>();
         OmrCondition omrCondition = new OmrCondition();
         omrCondition.setCode(ConditionType.FILL_SUSPECT);
         conditions.add(omrCondition);
         group.setConditions(conditions);
-        group.setCreateTime(System.currentTimeMillis());
+
         group.setFixed(true);
         group.setStage(Stage.FIRST);
         group.setTotalCount(0);
         group.setCreatorId(userId);
+        group.setUpdaterId(userId);
         group.setCreateTime(System.currentTimeMillis());
+        group.setUpdateTime(System.currentTimeMillis());
         this.save(group);
     }
 
-    @Transactional
-    @Override
-    public void updateTotalCountByExamId(Long examId, String subjectCode) {
-        List<OmrGroupEntity> list = this.findByExamId(examId, subjectCode);
-        for (OmrGroupEntity omrGroupEntity : list) {
-            this.updateTotalCount(omrGroupEntity.getId());
-        }
-    }
-
-}
+}