xiaofei 1 年間 前
コミット
cd30d9dd34

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserGroupServiceImpl.java

@@ -212,6 +212,8 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
                 qualityDto.setOrgName(sysUser.getOrgName());
                 String percent = qualityDto.getFinishCount() > 0 ? new DecimalFormat("####.###").format((qualityDto.getFinishCount() - qualityDto.getHeaderFinishCount()) * 100.0 / qualityDto.getFinishCount()) : "0";
                 qualityDto.setAdoptionRate(Double.parseDouble(percent));
+                String avgScore = qualityDto.getAvgScore() > 0 ? new DecimalFormat("####.##").format(qualityDto.getAvgScore()) : "0";
+                qualityDto.setAvgScore(Double.parseDouble(avgScore));
             }
         }
         return markQualityDtoIPage;

+ 14 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanAnswerCardServiceImpl.java

@@ -92,12 +92,19 @@ public class ScanAnswerCardServiceImpl extends ServiceImpl<ScanAnswerCardMapper,
             throw new ParameterException("阅卷已结束");
         }
 
-        ScanAnswerCard card = null;
+        ScanAnswerCard card;
         if (domain.getNumber() != null) {
             card = findByExamAndNumber(domain.getExamId(), domain.getNumber());
             if (card == null) {
                 throw new ParameterException("未找到卡格式信息");
             }
+            if (CardSource.WEB.equals(card.getSource())) {
+                throw new ParameterException("电子卡格式,不能修改");
+            }
+            int studentCount = scanPaperService.getCountByExamAndCardNumber(domain.getExamId(), domain.getNumber());
+            if (studentCount > 0) {
+                throw new ParameterException("卡格式已被使用,不能修改");
+            }
         } else {
             card = new ScanAnswerCard();
             card.setId(SystemConstant.getDbUuid());
@@ -201,10 +208,14 @@ public class ScanAnswerCardServiceImpl extends ServiceImpl<ScanAnswerCardMapper,
         if (card == null) {
             throw new ParameterException("未找到卡格式信息");
         }
-        if (!card.getNeedAdapte()) {
+        if (!card.getNeedAdapte() || CardSource.CLIENT.equals(card.getSource())) {
             throw new ParameterException("卡格式无需适配");
         }
-        String filePath = null;
+        int studentCount = scanPaperService.getCountByExamAndCardNumber(examId, cardNumber);
+        if (studentCount > 0) {
+            throw new ParameterException("卡格式已被使用,无法适配");
+        }
+        String filePath;
         try {
             filePath = markFileService.uploadAdapteFile(file.getInputStream(), md5, examId, coursePaperId, cardNumber);
         } catch (IOException e) {