xiaofei 1 ano atrás
pai
commit
9f97c0f2dd

+ 3 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java

@@ -24,6 +24,7 @@ import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.*;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
@@ -500,7 +501,8 @@ public class ClientController {
     @Aac(strict = false, auth = false)
     public Result list(@RequestParam(required = false) String code) {
         List<SchoolDto> list = clientService.listSchool(code);
-        if (CollectionUtils.isNotEmpty(list)) {
+        // 指定code后,只返回code对应学校,否则查默认学校,没有默认,返回所有
+        if (CollectionUtils.isNotEmpty(list) && StringUtils.isBlank(code)) {
             List<SchoolDto> defaultSchools = list.stream().filter(m -> m.getDefaultSchool() != null && m.getDefaultSchool()).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(defaultSchools)) {
                 return ResultUtil.ok(defaultSchools);

+ 39 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/score/StudentScoreDetailDto.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.mark.dto.mark.score;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.enums.ScanStatus;
+import com.qmth.teachcloud.common.enums.mark.SubjectiveStatus;
 
 import java.util.List;
 
@@ -23,6 +24,7 @@ public class StudentScoreDetailDto {
     private String objectiveScore;
     private String subjectiveScore;
     private String totalScore;
+    private String objectiveScoreList;
     private String subjectiveScoreList;
     private String checkUserId;
     private String checkUserLoginName;
@@ -33,10 +35,15 @@ public class StudentScoreDetailDto {
     private Long examStartTime;
     private Long examEndTime;
     private ScanStatus scanStatus;
+    private SubjectiveStatus subjectiveStatus;
     private Boolean absent;
     private Boolean omrAbsent;
     private String statusDisplay;
     private Boolean upload;
+    // 主观题检查标记
+    private Boolean subjectiveCheckFlag;
+    // 客观题标记
+    private Boolean objectiveCheckFlag;
 
     public Long getStudentId() {
         return studentId;
@@ -142,6 +149,14 @@ public class StudentScoreDetailDto {
         this.totalScore = totalScore;
     }
 
+    public String getObjectiveScoreList() {
+        return objectiveScoreList;
+    }
+
+    public void setObjectiveScoreList(String objectiveScoreList) {
+        this.objectiveScoreList = objectiveScoreList;
+    }
+
     public String getSubjectiveScoreList() {
         return subjectiveScoreList;
     }
@@ -222,6 +237,14 @@ public class StudentScoreDetailDto {
         this.scanStatus = scanStatus;
     }
 
+    public SubjectiveStatus getSubjectiveStatus() {
+        return subjectiveStatus;
+    }
+
+    public void setSubjectiveStatus(SubjectiveStatus subjectiveStatus) {
+        this.subjectiveStatus = subjectiveStatus;
+    }
+
     public Boolean getAbsent() {
         return absent;
     }
@@ -253,4 +276,20 @@ public class StudentScoreDetailDto {
     public void setUpload(Boolean upload) {
         this.upload = upload;
     }
+
+    public Boolean getSubjectiveCheckFlag() {
+        return subjectiveCheckFlag;
+    }
+
+    public void setSubjectiveCheckFlag(Boolean subjectiveCheckFlag) {
+        this.subjectiveCheckFlag = subjectiveCheckFlag;
+    }
+
+    public Boolean getObjectiveCheckFlag() {
+        return objectiveCheckFlag;
+    }
+
+    public void setObjectiveCheckFlag(Boolean objectiveCheckFlag) {
+        this.objectiveCheckFlag = objectiveCheckFlag;
+    }
 }

+ 10 - 5
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -209,8 +209,13 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
             } else if (ScanStatus.MANUAL_ABSENT.equals(scoreDetailDto.getScanStatus()) || scoreDetailDto.getAbsent() || scoreDetailDto.getOmrAbsent()) {
                 scoreDetailDto.setStatusDisplay("缺考");
             } else if (!scoreDetailDto.getAbsent() && !scoreDetailDto.getOmrAbsent() && scoreDetailDto.getUpload() && ScanStatus.SCANNED.equals(scoreDetailDto.getScanStatus())) {
-                scoreDetailDto.setStatusDisplay("已扫描");
+                scoreDetailDto.setStatusDisplay("正常");
             }
+
+            // 主观题检查标记
+            scoreDetailDto.setSubjectiveCheckFlag(!scoreDetailDto.getAbsent() && !scoreDetailDto.getOmrAbsent() && scoreDetailDto.getUpload() && ScanStatus.SCANNED.equals(scoreDetailDto.getScanStatus()) && SubjectiveStatus.MARKED.equals(scoreDetailDto.getSubjectiveStatus()) && StringUtils.isNotBlank(scoreDetailDto.getSubjectiveScore()) && StringUtils.isNotBlank(scoreDetailDto.getSubjectiveScoreList()));
+            // 客观题检查标记
+            scoreDetailDto.setObjectiveCheckFlag(!scoreDetailDto.getAbsent() && !scoreDetailDto.getOmrAbsent() && scoreDetailDto.getUpload() && ScanStatus.SCANNED.equals(scoreDetailDto.getScanStatus()) && StringUtils.isNotBlank(scoreDetailDto.getObjectiveScore()) && StringUtils.isNotBlank(scoreDetailDto.getObjectiveScoreList()));
         }
         return studentScoreDetailDtoIPage;
     }
@@ -284,10 +289,10 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                 getOmrAbsentCount(examId, false, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
         ct.setAbsentCheckedCount(
                 getOmrAbsentCount(examId, true, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
-        ct.setObjectiveCheckCount(scanOmrTaskService.getCount(examId, OmrTaskStatus.WAITING, courseCode, coursePaperId,
-                MarkPaperStatus.FORMAL, dpr));
-        ct.setObjectiveCheckedCount(scanOmrTaskService.getCount(examId, OmrTaskStatus.PROCESSED, courseCode,
-                coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        ct.setObjectiveCheckCount(scanOmrTaskService.getFinishStudentCountByExamAndUserId(examId, courseCode, coursePaperId,
+                OmrTaskStatus.WAITING.name(), dpr));
+        ct.setObjectiveCheckedCount(scanOmrTaskService.getFinishStudentCountByExamAndUserId(examId, courseCode, coursePaperId,
+                OmrTaskStatus.PROCESSED.name(), dpr));
         ct.setIncompleteCount(getIncompleteCount(examId, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
         return vo;
     }

+ 2 - 0
teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

@@ -59,6 +59,7 @@
             ms.objective_score objectiveScore,
             ms.subjective_score subjectiveScore,
             ifnull(ms.objective_score, 0) +  ifnull(ms.subjective_score, 0) totalScore,
+            ms.objective_score_list objectiveScoreList,
             ms.subjective_score_list subjectiveScoreList,
             ms.check_user_id checkUserId,
             su.login_name checkUserLoginName,
@@ -68,6 +69,7 @@
             ms.exam_start_time examStartTime,
             ms.exam_end_time examEndTime,
             ms.scan_status scanStatus,
+            ms.subjective_status subjectiveStatus,
             ms.is_absent absent,
             ms.omr_absent omrAbsent,
             ms.is_upload upload

+ 1 - 1
teachcloud-mark/src/main/resources/mapper/ScanOmrTaskMapper.xml

@@ -104,7 +104,7 @@
 
     <select id="countOmrTask" resultType="java.lang.Integer">
 		SELECT
-			COUNT(1)
+			COUNT(distinct  sot.student_id)
 		FROM
 			scan_omr_task sot
 		<where>

+ 1 - 1
teachcloud-mark/src/main/resources/mapper/ScanPackageMapper.xml

@@ -62,7 +62,7 @@
 	</select>
     <select id="countPackageCode" resultType="java.lang.Integer">
 		SELECT
-			count(1)
+			count(distinct sp.package_code)
 		FROM
 			scan_package sp
 				JOIN