1
0
ting.yin 2 жил өмнө
parent
commit
fadc5c8c68

+ 37 - 39
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -155,8 +155,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
             if (student.getSecretNumber() == null) {
                 student.randomSecretNumber();
                 while (secretNumberSet.contains(student.getSecretNumber())
-                        || studentDao.countByExamIdAndSecretNumber(student.getExamId(), student.getSecretNumber())
-                        > 0) {
+                        || studentDao.countByExamIdAndSecretNumber(student.getExamId(), student.getSecretNumber()) > 0) {
                     student.randomSecretNumber();
                 }
             }
@@ -231,6 +230,9 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
 
     public ExamStudentSearchQuery findByQuery(final ExamStudentSearchQuery query) {
         checkQuery(query);
+        if (query.getSheetCount() != null) {
+            query.setSheetCount(query.getSheetCount() / 2);
+        }
         Page<ExamStudent> result = studentDao.findAll(buildSpecification(query), query);
         fillResult(result, query);
         return query;
@@ -376,10 +378,10 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
     @Transactional
     public boolean updateScanInfo(ExamStudent student) {
         student.setUploadTime(new Date());
-        return studentDao
-                .updateScanInfo(student.getId(), student.getSheetCount(), student.getSliceCount(), student.getAnswers(),
-                        student.getBatchCode(), student.getPaperType(), student.isAbsent(), student.getUploadTime(),
-                        student.getObjectiveScore(), student.getObjectiveScoreList(), student.getCardNumber()) > 0;
+        return studentDao.updateScanInfo(student.getId(), student.getSheetCount(), student.getSliceCount(),
+                student.getAnswers(), student.getBatchCode(), student.getPaperType(), student.isAbsent(),
+                student.getUploadTime(), student.getObjectiveScore(), student.getObjectiveScoreList(),
+                student.getCardNumber()) > 0;
     }
 
     @Override
@@ -460,14 +462,14 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
             @Override
             public Predicate toPredicate(Root<ExamStudent> root, CriteriaQuery<?> cQuery, CriteriaBuilder cb) {
                 List<Predicate> predicates = new LinkedList<Predicate>();
-                Expression<Double> evaluationItemSum = cb
-                        .sum(root.get("objectiveScore").as(Double.class), root.get("subjectiveScore").as(Double.class));
+                Expression<Double> evaluationItemSum = cb.sum(root.get("objectiveScore").as(Double.class),
+                        root.get("subjectiveScore").as(Double.class));
                 if (query.getStartScore() != null) {
                     Predicate predicate1 = cb.ge(evaluationItemSum, query.getStartScore());
                     Predicate predicate2 = cb.le(evaluationItemSum, query.getEndScore());
                     if (query.getStartScore() == 0) {
-                        Predicate predicate = cb
-                                .or(cb.equal(root.get("absent"), true), cb.equal(root.get("breach"), true));
+                        Predicate predicate = cb.or(cb.equal(root.get("absent"), true),
+                                cb.equal(root.get("breach"), true));
                         Predicate predicate3 = cb.and(predicate1, predicate2);
                         predicates.add(cb.or(predicate, predicate3));
                     } else {
@@ -675,9 +677,8 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
                 if (query.getSheetCount() != null) {
                     predicates.add(cb.equal(root.get("sheetCount"), query.getSheetCount()));
                 }
-                return predicates.isEmpty() ?
-                        cb.conjunction() :
-                        cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
         };
     }
@@ -696,8 +697,8 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
     @Override
     public ExamStudent findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(Integer schoolId, String subjectCode,
             String studentCode, String examSeqCode) {
-        return studentDao
-                .findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode, studentCode, examSeqCode);
+        return studentDao.findBySchoolIdAndSubjectCodeAndStudentCodeAndRemark(schoolId, subjectCode, studentCode,
+                examSeqCode);
     }
 
     @Override
@@ -736,9 +737,9 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
         query.setPageNumber(1);
         query.setPageSize(1);
         query.setSort(new Sort(Direction.ASC, "uploadTime", "id"));
-        List<ExamStudent> list = minUploadTime != null ?
-                studentDao.findUnLibraryStudent(examId, subjectCode, groupNumber, minUploadTime, query) :
-                studentDao.findUnLibraryStudent(examId, subjectCode, groupNumber, query);
+        List<ExamStudent> list = minUploadTime != null ? studentDao.findUnLibraryStudent(examId, subjectCode,
+                groupNumber, minUploadTime, query) : studentDao.findUnLibraryStudent(examId, subjectCode, groupNumber,
+                query);
         return list.isEmpty() ? null : list.get(0);
     }
 
@@ -748,8 +749,8 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
         query.setPageNumber(1);
         query.setPageSize(1);
         query.setSort(new Sort(Direction.ASC, "uploadTime", "id"));
-        List<ExamStudent> list = studentDao
-                .findUnTrialStudent(examId, subjectCode, groupNumber, SubjectiveStatus.TRIAL, query);
+        List<ExamStudent> list = studentDao.findUnTrialStudent(examId, subjectCode, groupNumber,
+                SubjectiveStatus.TRIAL, query);
         return list.isEmpty() ? null : list.get(0);
     }
 
@@ -775,8 +776,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
         return countByQuery(query);
     }
 
-    public long countByNoAbsentAndBreach(int examId, String subjectCode, boolean upload, boolean absent,
-            boolean breach) {
+    public long countByNoAbsentAndBreach(int examId, String subjectCode, boolean upload, boolean absent, boolean breach) {
         ExamStudentSearchQuery query = new ExamStudentSearchQuery();
         query.setExamId(examId);
         query.setSubjectCode(subjectCode);
@@ -829,8 +829,8 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
             sliceConfig = exam.getSliceConfigList();
         }
         if (!sliceConfig.isEmpty()) {
-            List<PictureTag> tags = PictureConfigTransform
-                    .process(sliceConfig, getSliceTags(student, withGroupScore, sliceConfig)).get(index);
+            List<PictureTag> tags = PictureConfigTransform.process(sliceConfig,
+                    getSliceTags(student, withGroupScore, sliceConfig)).get(index);
             if (tags != null) {
                 list.addAll(tags);
             }
@@ -880,8 +880,8 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
     public Map<MarkGroup, List<OriginTag>> getSliceTags(ExamStudent student, boolean withGroupScore,
             List<PictureConfigItem> sliceConfig) {
         Map<MarkGroup, List<OriginTag>> tagMap = new HashMap<MarkGroup, List<OriginTag>>();
-        List<ExamQuestion> questions = questionService
-                .findByExamAndSubjectAndObjective(student.getExamId(), student.getSubjectCode(), false);
+        List<ExamQuestion> questions = questionService.findByExamAndSubjectAndObjective(student.getExamId(),
+                student.getSubjectCode(), false);
         List<ScoreItem> scoreList = student.getScoreList(false);
         List<MarkGroup> markGroups = groupService.findByExamAndSubject(student.getExamId(), student.getSubjectCode());
         for (MarkGroup group : markGroups) {
@@ -903,14 +903,13 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
         List<String> lines = new LinkedList<>();
         lines.add("成绩明细");
         // 总分得分明细
-        lines.add("总分 (客观+主观) | " + format.format(student.getTotalScore()) + "=" + format
-                .format(student.getObjectiveScore() != null ? student.getObjectiveScore() : 0) + "+" + format
-                .format(student.getSubjectiveScore() != null ? student.getSubjectiveScore() : 0));
+        lines.add("总分 (客观+主观) | " + format.format(student.getTotalScore()) + "="
+                + format.format(student.getObjectiveScore() != null ? student.getObjectiveScore() : 0) + "+"
+                + format.format(student.getSubjectiveScore() != null ? student.getSubjectiveScore() : 0));
         // 客观题得分明细
         List<String> objectives = new LinkedList<>();
-        List<ExamQuestion> questions = questionService
-                .findByExamAndSubjectAndObjectiveAndPaperType(student.getExamId(), student.getSubjectCode(), true,
-                        student.getPaperType());
+        List<ExamQuestion> questions = questionService.findByExamAndSubjectAndObjectiveAndPaperType(
+                student.getExamId(), student.getSubjectCode(), true, student.getPaperType());
         List<ScoreItem> scoreList = student.getScoreList(true);
         List<String> details = new ArrayList<>();
         int i = 0;
@@ -992,9 +991,9 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
                 if (config.getX() <= 1 && config.getY() <= 1 && config.getI() <= sliceConfig.size()
                         && sliceConfig.get(config.getI() - 1).getW() > 0
                         && sliceConfig.get(config.getI() - 1).getH() > 0) {
-                    tag = new OriginTag(format.format(score), config.getI(),
-                            config.getX() * sliceConfig.get(config.getI() - 1).getW(),
-                            config.getY() * sliceConfig.get(config.getI() - 1).getH());
+                    tag = new OriginTag(format.format(score), config.getI(), config.getX()
+                            * sliceConfig.get(config.getI() - 1).getW(), config.getY()
+                            * sliceConfig.get(config.getI() - 1).getH());
                 }
                 originTags.add(tag);
             }
@@ -1012,8 +1011,8 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
             // 添加轨迹分
             List<MarkTrack> tracks = trackService.findByLibraryId(selected.getId());
             for (MarkTrack markTrack : tracks) {
-                originTags.add(new OriginTag(format.format(markTrack.getScore()), markTrack.getOffsetIndex(),
-                        markTrack.getOffsetX(), markTrack.getOffsetY()));
+                originTags.add(new OriginTag(format.format(markTrack.getScore()), markTrack.getOffsetIndex(), markTrack
+                        .getOffsetX(), markTrack.getOffsetY()));
             }
             // 添加特殊标记
             List<MarkSpecialTag> specialTags = specialTagService.findByLibraryId(selected.getId());
@@ -1066,8 +1065,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
     }
 
     @Override
-    public List<ExamStudent> findByExamIdAndStudentCodeAndSubjectCode(int examId, String studentCode,
-            String subjectCode) {
+    public List<ExamStudent> findByExamIdAndStudentCodeAndSubjectCode(int examId, String studentCode, String subjectCode) {
         return studentDao.findByExamIdAndStudentCodeAndSubjectCode(examId, studentCode, subjectCode);
     }
 

+ 11 - 8
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ScanController.java

@@ -64,8 +64,8 @@ public class ScanController extends BaseApiController {
         Exam exam = examService.findById(examId);
         JSONArray array = new JSONArray();
         // 判断上传权限
-        if (exam == null || !exam.getSchoolId().equals(user.getSchoolId()) || !ExamStatus.START.equals(exam.getStatus())
-                || !ExamType.SCAN_IMAGE.equals(exam.getType())) {
+        if (exam == null || !exam.getSchoolId().equals(user.getSchoolId())
+                || !ExamStatus.START.equals(exam.getStatus()) || !ExamType.SCAN_IMAGE.equals(exam.getType())) {
             throw ApiException.EXAM_NOT_ACCESSIBLED;
         }
         if (scStudentParameter != null && scStudentParameter.length > 0) {
@@ -94,8 +94,8 @@ public class ScanController extends BaseApiController {
                         array.add(obj);
                         // 增加人工审核数据
                         if (sc.isManual()) {
-                            checkStudentService.save(new CheckStudent(student.getId(), examId, student.getSubjectCode(),
-                                    CheckType.MANUAL));
+                            checkStudentService.save(new CheckStudent(student.getId(), examId,
+                                    student.getSubjectCode(), CheckType.MANUAL));
                         }
                     }
                 }
@@ -113,8 +113,8 @@ public class ScanController extends BaseApiController {
         ApiUser user = RequestUtils.getApiUser(request);
         Exam exam = examService.findById(examId);
         // 判断上传权限
-        if (exam == null || !exam.getSchoolId().equals(user.getSchoolId()) || !ExamStatus.START.equals(exam.getStatus())
-                || !ExamType.SCAN_IMAGE.equals(exam.getType())) {
+        if (exam == null || !exam.getSchoolId().equals(user.getSchoolId())
+                || !ExamStatus.START.equals(exam.getStatus()) || !ExamType.SCAN_IMAGE.equals(exam.getType())) {
             throw ApiException.EXAM_NOT_ACCESSIBLED;
         }
         examNumber = validate("examNumber", examNumber, true, 32);
@@ -125,8 +125,11 @@ public class ScanController extends BaseApiController {
         student.setPaperType("#");
         JSONObject obj = new JSONObject();
         if (studentService.resetScanInfo(student)) {
-            subjectService.updateUploadCount(student.getExamId(), student.getSubjectCode(), (int) studentService
-                    .countUploadedByExamIdAndSubjectCode(student.getExamId(), student.getSubjectCode()));
+            subjectService.updateUploadCount(
+                    student.getExamId(),
+                    student.getSubjectCode(),
+                    (int) studentService.countUploadedByExamIdAndSubjectCode(student.getExamId(),
+                            student.getSubjectCode()));
             obj.accumulate("updateTime", DateUtils.formatDateTime(new Date()));
         }
         return obj;