ting.yin 2 years ago
parent
commit
fd39ae7a4a

+ 19 - 15
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/FileController.java

@@ -343,9 +343,9 @@ public class FileController extends BaseApiController {
                 card = answerCardService.findByExamIdAndSubjectCode(examId, subjectCode);
                 if (card == null) {
                     card = new AnswerCard();
+                    card.setNumber(answerCardService.findMaxNumberByExamId(examId) + 1);
                 }
                 card.setExamId(examId);
-                card.setNumber(1);
                 card.setMd5(md5);
                 card.setNeedAdapte(cardFile.isAdapted());
                 card.setSliceConfig(cardFile.getSliceConfig().toString());
@@ -354,22 +354,26 @@ public class FileController extends BaseApiController {
                 card.setSource(CardSource.WEB);
                 card.setSubjectCode(subjectCode);
                 card.setUpdateTime(new Date());
+                fileService.uploadAnswerCard(ins, md5, examId, card.getNumber());
+                answerCardService.save(card);
+                if (subject != null) {
+                    subject.setCardType(format);
+                    subjectService.save(subject);
+                }
+                uri = fileService.getAnswerCardUri(examId, card.getNumber());
             } else {
                 ins = file.getInputStream();
-            }
-            if (subject != null) {
-                fileService.uploadCard(ins, md5, examId, subjectCode, format);
-                subject.setCardType(format);
-                subjectService.save(subject);
-                uri = fileService.getCardUri(examId, subjectCode, format);
-            } else {
-                fileService.uploadCard(ins, md5, examId, format);
-                exam.setCardType(format);
-                examService.save(exam);
-                uri = fileService.getCardUri(examId, format);
-            }
-            if (card != null) {
-                answerCardService.save(card);
+                if (subject != null) {
+                    fileService.uploadCard(ins, md5, examId, subjectCode, format);
+                    subject.setCardType(format);
+                    subjectService.save(subject);
+                    uri = fileService.getCardUri(examId, subjectCode, format);
+                } else {
+                    fileService.uploadCard(ins, md5, examId, format);
+                    exam.setCardType(format);
+                    examService.save(exam);
+                    uri = fileService.getCardUri(examId, format);
+                }
             }
         } catch (Exception e) {
             log.error("card upload error", e);