浏览代码

更新导入数据包

yin 1 年之前
父节点
当前提交
11cddbe182

+ 4 - 5
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/dao/AnswerCardSubjectDao.java

@@ -8,10 +8,9 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
 import cn.com.qmth.stmms.biz.exam.model.AnswerCardSubject;
-import cn.com.qmth.stmms.common.enums.CardSource;
 
-public interface AnswerCardSubjectDao extends PagingAndSortingRepository<AnswerCardSubject, Integer>,
-        JpaSpecificationExecutor<AnswerCardSubject> {
+public interface AnswerCardSubjectDao
+        extends PagingAndSortingRepository<AnswerCardSubject, Integer>, JpaSpecificationExecutor<AnswerCardSubject> {
 
     @Query("select s from AnswerCardSubject s where s.examId=?1 and s.cardNumber=?2 and s.subjectCode=?3 ")
     AnswerCardSubject findByExamIdAndCardNumberAndSubjectCode(Integer examId, Integer number, String subjectCode);
@@ -25,7 +24,7 @@ public interface AnswerCardSubjectDao extends PagingAndSortingRepository<AnswerC
 
     AnswerCardSubject findByExamIdAndSubjectCode(Integer examId, String subjectCode);
 
-    @Query(value = "select count(s.id) from eb_answer_card e join eb_answer_card_subject s on e.exam_id=s.exam_id and e.number=s.card_number where e.exam_id = ?1 and e.source=?4 and e.code != ?3 and s.subject_code=?2", nativeQuery = true)
-    int countByExamIdAndSubjectCodeAndNotAnswerCode(int examId, String subjectCode, String code, CardSource sourse);
+    @Query("select s from AnswerCardSubject s where s.examId=?1 and s.subjectCode=?2 ")
+    List<AnswerCardSubject> findByExamIdAndSubjectCode(int examId, String subjectCode);
 
 }

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/AnswerCardService.java

@@ -26,6 +26,6 @@ public interface AnswerCardService {
 
     AnswerCard findByExamIdAndCode(Integer examId, String code);
 
-    boolean hasSubject(int examId, String code, String subjectCode);
+    boolean hasSubject(int examId, String code);
 
 }

+ 4 - 4
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/AnswerCardServiceImpl.java

@@ -51,8 +51,8 @@ public class AnswerCardServiceImpl extends BaseQueryService<AnswerCard> implemen
     @Override
     public void save(AnswerCard card, String subjectCode) {
         if (StringUtils.isNotBlank(subjectCode)) {
-            AnswerCardSubject answerCardSubject = cardSubjectDao.findByExamIdAndCardNumberAndSubjectCode(
-                    card.getExamId(), card.getNumber(), subjectCode);
+            AnswerCardSubject answerCardSubject = cardSubjectDao
+                    .findByExamIdAndCardNumberAndSubjectCode(card.getExamId(), card.getNumber(), subjectCode);
             if (answerCardSubject == null) {
                 answerCardSubject = new AnswerCardSubject(card.getExamId(), card.getNumber(), subjectCode);
                 cardSubjectDao.save(answerCardSubject);
@@ -103,7 +103,7 @@ public class AnswerCardServiceImpl extends BaseQueryService<AnswerCard> implemen
     }
 
     @Override
-    public boolean hasSubject(int examId, String code, String subjectCode) {
-        return cardSubjectDao.countByExamIdAndSubjectCodeAndNotAnswerCode(examId, subjectCode, code, CardSource.WEB) > 0;
+    public boolean hasSubject(int examId, String code) {
+        return cardSubjectDao.findByExamIdAndSubjectCode(examId, code).size() > 0;
     }
 }

+ 12 - 7
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/PaperController.java

@@ -965,10 +965,10 @@ public class PaperController extends BaseExamController {
                         error.add("[" + item.getCode() + "] 科目代码不存在;");
                         return error;
                     }
-                    if (answerCardService.hasSubject(examId, item.getCode(), item.getCode())) {
-                        error.add("[" + item.getCode() + "] 科目代码已经绑定卡格式;");
-                        return error;
-                    }
+                    // if (answerCardService.hasSubject(examId, item.getCode())) {
+                    // error.add("[" + item.getCode() + "] 科目代码已经绑定卡格式;");
+                    // return error;
+                    // }
                     if (!cardFile.getPaperStruct().isEmpty() && subject.getSubjectiveScore() > 0) {
                         error.add("[" + item.getCode() + "] 科目代码已经有试卷结构或分组;");
                         return error;
@@ -992,6 +992,7 @@ public class PaperController extends BaseExamController {
                             e.setType(questionType);
                             if (questionType == null) {
                                 e.setObjective(false);
+                                e.setGroupNumber(q.getGroupNumber());
                             } else {
                                 e.setObjective(true);
                             }
@@ -1010,13 +1011,17 @@ public class PaperController extends BaseExamController {
                 }
                 answerCardService.save(card, asList);
                 fileService.uploadAnswerCard(new ByteArrayInputStream(out), md5, examId, card.getNumber());
-                for (ExamSubject examSubject : subjects) {
-                    subjectService.save(examSubject);
-                }
                 questionService.save(questions);
                 for (MarkGroup group : groups) {
                     groupService.save(group);
                 }
+                for (ExamSubject examSubject : subjects) {
+                    subjectService.save(examSubject);
+                    subjectService.updateScore(examId, examSubject.getCode(), false,
+                            questionService.sumTotalScore(examId, examSubject.getCode(), false));
+                    subjectService.updateScore(examId, examSubject.getCode(), true,
+                            questionService.sumTotalScore(examId, examSubject.getCode(), true));
+                }
             } catch (Exception e) {
                 e.printStackTrace();
                 log.error("parse zip data error", e);