xiaofei 1 жил өмнө
parent
commit
55bb5359d8
30 өөрчлөгдсөн 153 нэмэгдсэн , 101 устгасан
  1. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  2. 0 7
      distributed-print/src/main/java/com/qmth/distributed/print/api/mark/ScanController.java
  3. 7 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/scananswer/AnswerQueryDomain.java
  4. 12 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkStudent.java
  5. 11 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/ScanOmrTask.java
  6. 3 3
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperMapper.java
  7. 1 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperPackageMapper.java
  8. 1 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/ScanPackageMapper.java
  9. 2 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperPackageService.java
  10. 3 3
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperService.java
  11. 2 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java
  12. 1 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkUserGroupService.java
  13. 2 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/ScanOmrTaskService.java
  14. 2 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/ScanPackageService.java
  15. 6 6
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkArbitrateHistoryServiceImpl.java
  16. 3 3
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperPackageServiceImpl.java
  17. 6 6
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java
  18. 13 9
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java
  19. 25 19
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java
  20. 8 5
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkTaskServiceImpl.java
  21. 3 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserGroupServiceImpl.java
  22. 1 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanConditionServiceImpl.java
  23. 2 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java
  24. 3 3
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanPackageServiceImpl.java
  25. 3 9
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/TaskServiceImpl.java
  26. 3 3
      teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml
  27. 13 10
      teachcloud-mark/src/main/resources/mapper/MarkPaperPackageMapper.xml
  28. 10 1
      teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml
  29. 4 1
      teachcloud-mark/src/main/resources/mapper/ScanOmrTaskMapper.xml
  30. 2 2
      teachcloud-mark/src/main/resources/mapper/ScanPackageMapper.xml

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

@@ -429,7 +429,7 @@ public class SysController {
     @RequestMapping(value = "/school/query_by_school_code", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "学校信息", response = EditResult.class)})
     @Aac(auth = false)
-    public Result queryBySchoolCode(@ApiParam(value = "机构code", required = false) @RequestParam String code) {
+    public Result queryBySchoolCode(@ApiParam(value = "机构code") @RequestParam(required = false) String code) {
         if (Objects.nonNull(code) && code.contains("#")) {
             code = code.substring(0, code.indexOf("#"));
         }

+ 0 - 7
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/ScanController.java

@@ -16,7 +16,6 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBSession;
 import com.qmth.teachcloud.common.enums.AppSourceEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
@@ -24,7 +23,6 @@ import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.mark.bean.sys.ActiveTimeVo;
 import com.qmth.teachcloud.mark.bean.sys.ApiStatusVo;
 import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -52,11 +50,6 @@ import java.util.concurrent.TimeUnit;
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_SCAN)
 public class ScanController {
 
-    @Value("${com.qmth.fss.private.server}")
-    private String fileUriPrefix;
-
-    @Resource
-    BasicSemesterService basicSemesterService;
     @Resource
     private TeachcloudCommonService teachcloudCommonService;
     @Resource

+ 7 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/scananswer/AnswerQueryDomain.java

@@ -48,6 +48,7 @@ public class AnswerQueryDomain extends PagerQuery {
     private Boolean questionFilled;
     private Boolean withPaper;
     private Boolean withOmrDetail;
+	private String markPaperStatus;
 	public Long getExamId() {
 		return examId;
 	}
@@ -178,5 +179,11 @@ public class AnswerQueryDomain extends PagerQuery {
 		this.withOmrDetail = withOmrDetail;
 	}
 
+	public String getMarkPaperStatus() {
+		return markPaperStatus;
+	}
 
+	public void setMarkPaperStatus(String markPaperStatus) {
+		this.markPaperStatus = markPaperStatus;
+	}
 }

+ 12 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkStudent.java

@@ -7,6 +7,7 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import org.apache.commons.lang.math.RandomUtils;
 import org.apache.commons.lang3.StringUtils;
 
@@ -185,6 +186,9 @@ public class MarkStudent implements Serializable {
     private Long examEndTime;
     private Long createId;
 
+    @TableField(exist = false)
+    private String markPaperStatus;
+
     public MarkStudent() {
     }
 
@@ -698,6 +702,14 @@ public class MarkStudent implements Serializable {
         this.createId = createId;
     }
 
+    public String getMarkPaperStatus() {
+        return markPaperStatus;
+    }
+
+    public void setMarkPaperStatus(String markPaperStatus) {
+        this.markPaperStatus = markPaperStatus;
+    }
+
     @Override
     public String toString() {
         return "MarkStudent{" +

+ 11 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/ScanOmrTask.java

@@ -79,6 +79,9 @@ public class ScanOmrTask implements Serializable {
 	@TableField(exist = false)
 	private String coursePaperId;
 
+	@TableField(exist = false)
+	private String markPaperStatus;
+
 	public Long getId() {
 		return id;
 	}
@@ -207,6 +210,14 @@ public class ScanOmrTask implements Serializable {
 		this.coursePaperId = coursePaperId;
 	}
 
+	public String getMarkPaperStatus() {
+		return markPaperStatus;
+	}
+
+	public void setMarkPaperStatus(String markPaperStatus) {
+		this.markPaperStatus = markPaperStatus;
+	}
+
 	@Override
     public String toString() {
         return "ScanOmrTask{" +

+ 3 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperMapper.java

@@ -36,8 +36,8 @@ public interface MarkPaperMapper extends BaseMapper<MarkPaper> {
 
 	IPage<ArchiveScoreVo> scoreList(Page<ArchiveScoreVo> page, @Param("req") ArchiveScoreQuery query, @Param("dpr") DataPermissionRule dpr);
 
-    int getCourseCount(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("dpr") DataPermissionRule dpr);
-    int getPaperNumberCount(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("dpr") DataPermissionRule dpr);
+    int getCourseCount(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
+    int getPaperNumberCount(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
 
-    List<MarkPaper> listByExamId(@Param("examId") Long examId, @Param("dpr") DataPermissionRule dpr);
+    List<MarkPaper> listByExamId(@Param("examId") Long examId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
 }

+ 1 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperPackageMapper.java

@@ -15,5 +15,5 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface MarkPaperPackageMapper extends MppBaseMapper<MarkPaperPackage> {
 
-    int getPackageCountByExamId(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("dpr") DataPermissionRule dpr);
+    int getPackageCountByExamId(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
 }

+ 1 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/ScanPackageMapper.java

@@ -23,5 +23,5 @@ public interface ScanPackageMapper extends BaseMapper<ScanPackage> {
 
 	IPage<ScanPackageVo> page(@Param("page") Page<ScanPackageVo> page, @Param("req")ScanPackageQuery query, @Param("dpr") DataPermissionRule dpr);
 
-    int countPackageCode(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("dpr") DataPermissionRule dpr);
+    int countPackageCode(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
 }

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperPackageService.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.mark.service;
 
 import com.github.jeffreyning.mybatisplus.service.IMppService;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.mark.entity.MarkPaperPackage;
 
 import java.util.List;
@@ -18,5 +19,5 @@ public interface MarkPaperPackageService extends IMppService<MarkPaperPackage> {
 
     List<MarkPaperPackage> listByExamIdAndPackageCode(Long examId, String packageCode);
 
-    int getPackageCountByExamId(Long examId, String courseCode, String coursePaperId, DataPermissionRule dpr);
+    int getPackageCountByExamId(Long examId, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr);
 }

+ 3 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkPaperService.java

@@ -35,8 +35,8 @@ public interface MarkPaperService extends IService<MarkPaper> {
 
     List<MarkPaper> listQualityMarkPaperByStatus(MarkPaperStatus formal, int uploadCount);
 
-    int getCourseCount(Long id, String courseCode, String coursePaperId, DataPermissionRule dpr);
-    int getPaperNumberCount(Long id, String courseCode, String coursePaperId, DataPermissionRule dpr);
+    int getCourseCount(Long id, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr);
+    int getPaperNumberCount(Long id, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr);
 
     IPage<CheckScoreListDto> listStudentScoreList(Long examId, String courseCode, String paperNumber, Integer pageNumber, Integer pageSize);
 
@@ -48,7 +48,7 @@ public interface MarkPaperService extends IService<MarkPaper> {
 
 	MarkPaper getByExamIdAndCoursePaperId(Long examId, String coursePaperId);
 
-	List<MarkPaper> listByExamId(Long examId, DataPermissionRule dpr);
+	List<MarkPaper> listByExamId(Long examId, MarkPaperStatus status, DataPermissionRule dpr);
 
     void updateGroupStatusByExamIdAndPaperNumber(boolean groupStatus, Long examId, String paperNumber);
 

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java

@@ -12,6 +12,7 @@ import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ScanStatus;
+import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.common.enums.mark.SubjectiveStatus;
 import com.qmth.teachcloud.mark.bean.UpdateTimeVo;
 import com.qmth.teachcloud.mark.bean.archivescore.ArchiveStudentQuery;
@@ -133,7 +134,7 @@ public interface MarkStudentService extends IService<MarkStudent> {
 
     boolean updateAssignConfirm(Long studentId, boolean assignConfirm);
 
-    int getAssignedCount(Long examId, Boolean checked, String courseCode, String coursePaperId, DataPermissionRule dpr);
+    int getAssignedCount(Long examId, Boolean checked, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr);
 
     int countAbsentByExamIdAndPaperNumber(Long examId, String paperNumber);
 }

+ 1 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkUserGroupService.java

@@ -48,7 +48,7 @@ public interface MarkUserGroupService extends IService<MarkUserGroup> {
 
     List<MarkUserGroup> listByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber);
 
-    void updateQualityById(Long markUserGroupId, int finishCount, int validCount, double v, double avgScore, double stdevScore, double maxScore, double minScore);
+    void updateQualityById(Long markUserGroupId, int finishCount, int headerFinishCount, int validCount, double v, double avgScore, double stdevScore, double maxScore, double minScore);
 
     List<MarkQualityChartDto> listQualityChart(Long examId, String paperNumber, Integer groupNumber);
     

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/ScanOmrTaskService.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.common.enums.scan.ConditionType;
 import com.qmth.teachcloud.mark.dto.ScanOmrStudent;
 import com.qmth.teachcloud.mark.dto.ScanOmrTaskResultDto;
@@ -37,7 +38,7 @@ public interface ScanOmrTaskService extends IService<ScanOmrTask> {
 
 	void deleteByStudentId(Long examId, Long studentId);
 
-	int getCount(Long examId, OmrTaskStatus status, String courseCode, String coursePaperId, DataPermissionRule dpr);
+	int getCount(Long examId, OmrTaskStatus status, String courseCode, String coursePaperId, MarkPaperStatus markPaperStatus, DataPermissionRule dpr);
 
 	List<ScanStudentDto> list(Long examId, String courseCode, String coursePaperId, OmrTaskStatus status, Long userId);
 

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/ScanPackageService.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.mark.service;
 import java.util.List;
 
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import org.springframework.web.multipart.MultipartFile;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -23,7 +24,7 @@ import com.qmth.teachcloud.mark.entity.ScanPackage;
  */
 public interface ScanPackageService extends IService<ScanPackage> {
 
-	int getCount(Long examId, String courseCode, String coursePaperId, DataPermissionRule dpr);
+	int getCount(Long examId, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr);
 
     List<ScanPackage> listByExamIdAndCoursePaperIdAndPackageCode(Long examId, String coursePaperId, String packageCode);
 

+ 6 - 6
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkArbitrateHistoryServiceImpl.java

@@ -125,16 +125,16 @@ public class MarkArbitrateHistoryServiceImpl extends ServiceImpl<MarkArbitrateHi
         MarkArbitrateHistory markArbitrateHistory;
         if (arbitrateId != null) {
             markArbitrateHistory = this.getById(arbitrateId);
+            if (markArbitrateHistory == null) {
+                throw ExceptionResultEnum.ERROR.exception("仲裁数据不存在");
+            }
         } else {
             if (examId == null || StringUtils.isBlank(paperNumber) || groupNumber == null) {
                 throw ExceptionResultEnum.ERROR.exception("参数有误");
             }
-            markArbitrateHistory = this.baseMapper.getArbitrateWaitingOne(examId, paperNumber, groupNumber);
         }
-        if (markArbitrateHistory == null) {
-            throw ExceptionResultEnum.ERROR.exception("没有待仲裁数据");
-        }
-        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(markArbitrateHistory.getExamId(), markArbitrateHistory.getPaperNumber());
+
+        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
         MarkArbitrateSettingDto markArbitrateSettingDto = new MarkArbitrateSettingDto();
         if (markPaper != null) {
             markArbitrateSettingDto.setMarkMode(MarkMode.UNLIMITED.equals(markPaper.getMarkMode()) ? MarkMode.TRACK.name() : markPaper.getMarkMode().name());
@@ -165,7 +165,7 @@ public class MarkArbitrateHistoryServiceImpl extends ServiceImpl<MarkArbitrateHi
             markArbitrateHistory = this.baseMapper.getArbitrateWaitingOne(examId, paperNumber, groupNumber);
         }
         if (markArbitrateHistory == null) {
-            throw ExceptionResultEnum.ERROR.exception("仲裁数据异常");
+            return null;
         }
         MarkGroup markGroup = markGroupService.getByExamIdAndPaperNumberAndGroupNumber(markArbitrateHistory.getExamId(), markArbitrateHistory.getPaperNumber(), markArbitrateHistory.getGroupNumber());
         return taskService.build(markArbitrateHistory, markGroup);

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

@@ -1,9 +1,9 @@
 package com.qmth.teachcloud.mark.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
+import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.mark.entity.MarkPaperPackage;
 import com.qmth.teachcloud.mark.mapper.MarkPaperPackageMapper;
 import com.qmth.teachcloud.mark.service.MarkPaperPackageService;
@@ -22,7 +22,7 @@ public class MarkPaperPackageServiceImpl extends MppServiceImpl<MarkPaperPackage
     }
 
     @Override
-    public int getPackageCountByExamId(Long examId, String courseCode, String coursePaperId, DataPermissionRule dpr) {
-        return this.baseMapper.getPackageCountByExamId(examId, courseCode, coursePaperId, dpr);
+    public int getPackageCountByExamId(Long examId, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr) {
+        return this.baseMapper.getPackageCountByExamId(examId, courseCode, coursePaperId, status.name(), dpr);
     }
 }

+ 6 - 6
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -176,13 +176,13 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
     }
 
     @Override
-    public int getCourseCount(Long examId, String courseCode, String coursePaperId, DataPermissionRule dpr) {
-        return baseMapper.getCourseCount(examId, courseCode, coursePaperId, dpr);
+    public int getCourseCount(Long examId, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr) {
+        return baseMapper.getCourseCount(examId, courseCode, coursePaperId, status.name(), dpr);
     }
 
     @Override
-    public int getPaperNumberCount(Long examId, String courseCode, String coursePaperId, DataPermissionRule dpr) {
-        return baseMapper.getPaperNumberCount(examId, courseCode, coursePaperId, dpr);
+    public int getPaperNumberCount(Long examId, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr) {
+        return baseMapper.getPaperNumberCount(examId, courseCode, coursePaperId, status.name(), dpr);
     }
 
     @Override
@@ -236,8 +236,8 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
     }
 
     @Override
-    public List<MarkPaper> listByExamId(Long examId, DataPermissionRule dpr) {
-        return this.baseMapper.listByExamId(examId, dpr);
+    public List<MarkPaper> listByExamId(Long examId, MarkPaperStatus status, DataPermissionRule dpr) {
+        return this.baseMapper.listByExamId(examId, status.name(), dpr);
     }
 
     @Override

+ 13 - 9
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -184,7 +184,7 @@ public class MarkServiceImpl implements MarkService {
 
     @Override
     public void updateMarkedCount(Long examId, String paperNumber, Integer groupNumber) {
-        List<MarkTaskStatus> markTaskStatuses = Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED);
+        List<MarkTaskStatus> markTaskStatuses = Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED, MarkTaskStatus.WAIT_ARBITRATE);
         int count = markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId, paperNumber,
                 groupNumber, markTaskStatuses);
         markGroupService.updateMarkedCount(examId, paperNumber, groupNumber, count);
@@ -238,6 +238,7 @@ public class MarkServiceImpl implements MarkService {
                 markUserGroup.getUserId(), null);
         int finishCount = 0;
         int validCount = 0;
+        int headerFinishCount = 0;
         double sumScore = 0;
         double sumScore2 = 0;
         double avgScore = 0;
@@ -247,7 +248,12 @@ public class MarkServiceImpl implements MarkService {
         double maxScore = 0;
         double minScore = 0;
         for (MarkTask markTask : list) {
-            finishCount++;
+            if (!markTask.getStatus().equals(MarkTaskStatus.PROBLEM)) {
+                finishCount++;
+            }
+            if (markTask.getHeaderId() != null) {
+                headerFinishCount++;
+            }
             if (markTask.getStatus() == MarkTaskStatus.MARKED) {
                 validCount++;
             }
@@ -277,7 +283,7 @@ public class MarkServiceImpl implements MarkService {
                 minScore = score;
             }
         }
-        markUserGroupService.updateQualityById(markUserGroup.getId(), finishCount, validCount, avgSpent / 1000, avgScore, stdevScore, maxScore, minScore);
+        markUserGroupService.updateQualityById(markUserGroup.getId(), finishCount, headerFinishCount, validCount, avgSpent / 1000, avgScore, stdevScore, maxScore, minScore);
         markerLastUpdateTime.put(markUserGroup.getId(), System.currentTimeMillis());
     }
 
@@ -312,8 +318,7 @@ public class MarkServiceImpl implements MarkService {
     public void processArbitrate(MarkResult markResult, Long userId) {
         MarkArbitrateHistory markArbitrateHistory = markArbitrateHistoryService.getById(markResult.getTaskId());
         markArbitrateHistory.setUpdateUserId(userId);
-        markArbitrateHistory
-                .setTotalScore(markResult.isUnselective() ? UN_SELECTIVE_SCORE : markResult.getMarkerScore());
+        markArbitrateHistory.setTotalScore(markResult.isUnselective() ? UN_SELECTIVE_SCORE : markResult.getMarkerScore());
         markArbitrateHistory.setScoreList(markResult.isUnselective() ? null : markResult.getScoreList());
         markArbitrateHistory.setStatus(MarkArbitrateStatus.MARKED);
         markArbitrateHistory.setUpdateTime(System.currentTimeMillis());
@@ -390,8 +395,7 @@ public class MarkServiceImpl implements MarkService {
             log.info("start create library for examId=" + markPaper.getExamId() + ", paperNumber="
                     + markPaper.getPaperNumber());
             // 清除缺考考生和违纪考生
-            List<MarkStudent> markStudentList = markStudentService
-                    .listAbsentOrBreachMarkTaskStudent(markPaper.getExamId(), markPaper.getPaperNumber());
+            List<MarkStudent> markStudentList = markStudentService.listAbsentOrBreachMarkTaskStudent(markPaper.getExamId(), markPaper.getPaperNumber());
             if (CollectionUtils.isNotEmpty(markStudentList)) {
                 for (MarkStudent student : markStudentList) {
                     try {
@@ -758,11 +762,11 @@ public class MarkServiceImpl implements MarkService {
                 paperNumber, groupNumber, userId);
         MarkStatusDto dto = new MarkStatusDto();
         dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(examId,
-                paperNumber, groupNumber, userId, MarkTaskStatus.WAIT_ARBITRATE));
+                paperNumber, groupNumber, null, MarkTaskStatus.WAIT_ARBITRATE));
         dto.setMarkedCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId, paperNumber,
                 markUserGroup.getGroupNumber(), Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED)));
         dto.setPersonCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(examId,
-                paperNumber, groupNumber, userId, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED));
+                paperNumber, groupNumber, userId, MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED, MarkTaskStatus.WAIT_ARBITRATE));
         dto.setProblemCount(markTaskService.countProblemByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId,
                 paperNumber, groupNumber, MarkTaskStatus.PROBLEM));
         dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber));

+ 25 - 19
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -155,12 +155,12 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         ScanExamInfoVo vo = new ScanExamInfoVo();
         vo.setId(exam.getId());
         vo.setName(exam.getName());
-        vo.getAnswerScan().setCourseCount(markPaperService.getCourseCount(exam.getId(), courseCode, coursePaperId, dpr));
-        vo.getAnswerScan().setPaperNumberCount(markPaperService.getPaperNumberCount(exam.getId(), courseCode, coursePaperId, dpr));
-        vo.getAnswerScan().setTotalCount(getCount(exam.getId(), null, courseCode, coursePaperId, dpr));
-        vo.getAnswerScan().setScannedCount(getCount(exam.getId(), ScanStatus.SCANNED, courseCode, coursePaperId, dpr));
-        vo.getPackageScan().setTotalCount(markPaperPackageService.getPackageCountByExamId(exam.getId(), courseCode, coursePaperId, dpr));
-        vo.getPackageScan().setScannedCount(scanPackageService.getCount(exam.getId(), courseCode, coursePaperId, dpr));
+        vo.getAnswerScan().setCourseCount(markPaperService.getCourseCount(exam.getId(), courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        vo.getAnswerScan().setPaperNumberCount(markPaperService.getPaperNumberCount(exam.getId(), courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        vo.getAnswerScan().setTotalCount(getCount(exam.getId(), null, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        vo.getAnswerScan().setScannedCount(getCount(exam.getId(), ScanStatus.SCANNED, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        vo.getPackageScan().setTotalCount(markPaperPackageService.getPackageCountByExamId(exam.getId(), courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        vo.getPackageScan().setScannedCount(scanPackageService.getCount(exam.getId(), courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
         return vo;
     }
 
@@ -202,31 +202,34 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         return sheetUrls;
     }
 
-    private int getCount(Long examId, ScanStatus status, String courseCode, String coursePaperId, DataPermissionRule dpr) {
+    private int getCount(Long examId, ScanStatus status, String courseCode, String coursePaperId, MarkPaperStatus markPaperStatus, DataPermissionRule dpr) {
         MarkStudent markStudent = new MarkStudent();
         markStudent.setExamId(examId);
         markStudent.setCourseCode(courseCode);
         markStudent.setCoursePaperId(coursePaperId);
         markStudent.setScanStatus(status);
+        markStudent.setMarkPaperStatus(markPaperStatus.name());
         return baseMapper.selectCountByQuery(markStudent, dpr);
     }
 
-    private int getOmrAbsentCount(Long examId, Boolean checked, String courseCode, String coursePaperId, DataPermissionRule dpr) {
+    private int getOmrAbsentCount(Long examId, Boolean checked, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr) {
         MarkStudent markStudent = new MarkStudent();
         markStudent.setExamId(examId);
         markStudent.setCourseCode(courseCode);
         markStudent.setCoursePaperId(coursePaperId);
         markStudent.setOmrAbsent(true);
         markStudent.setOmrAbsentChecked(checked);
+        markStudent.setMarkPaperStatus(status.name());
         return baseMapper.selectCountByQuery(markStudent, dpr);
     }
 
-    private int getIncompleteCount(Long examId, String courseCode, String coursePaperId, DataPermissionRule dpr) {
+    private int getIncompleteCount(Long examId, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr) {
         MarkStudent markStudent = new MarkStudent();
         markStudent.setExamId(examId);
         markStudent.setCourseCode(courseCode);
         markStudent.setCoursePaperId(coursePaperId);
         markStudent.setIncomplete(true);
+        markStudent.setMarkPaperStatus(status.name());
         return baseMapper.selectCountByQuery(markStudent, dpr);
     }
 
@@ -239,15 +242,15 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         vo.setId(exam.getId());
         vo.setName(exam.getName());
         CheckTask ct = vo.getCheckTask();
-        ct.setUnexistCount(getCount(examId, ScanStatus.UNEXIST, courseCode, coursePaperId, dpr));
-        ct.setUnexistCheckedCount(getCount(examId, ScanStatus.MANUAL_ABSENT, courseCode, coursePaperId, dpr));
-        ct.setAssignedCount(getAssignedCount(examId, false, courseCode, coursePaperId, dpr));
-        ct.setAssignedCheckedCount(getAssignedCount(examId, true, courseCode, coursePaperId, dpr));
-        ct.setAbsentCheckCount(getOmrAbsentCount(examId, false, courseCode, coursePaperId, dpr));
-        ct.setAbsentCheckedCount(getOmrAbsentCount(examId, true, courseCode, coursePaperId, dpr));
-        ct.setObjectiveCheckCount(scanOmrTaskService.getCount(examId, OmrTaskStatus.WAITING, courseCode, coursePaperId, dpr));
-        ct.setObjectiveCheckedCount(scanOmrTaskService.getCount(examId, OmrTaskStatus.PROCESSED, courseCode, coursePaperId, dpr));
-        ct.setIncompleteCount(getIncompleteCount(examId, courseCode, coursePaperId, dpr));
+        ct.setUnexistCount(getCount(examId, ScanStatus.UNEXIST, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        ct.setUnexistCheckedCount(getCount(examId, ScanStatus.MANUAL_ABSENT, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        ct.setAssignedCount(getAssignedCount(examId, false, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        ct.setAssignedCheckedCount(getAssignedCount(examId, true, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
+        ct.setAbsentCheckCount(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.setIncompleteCount(getIncompleteCount(examId, courseCode, coursePaperId, MarkPaperStatus.FORMAL, dpr));
         return vo;
     }
 
@@ -551,6 +554,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
         // 查询考生分页信息
+        query.setMarkPaperStatus(MarkPaperStatus.FORMAL.name());
         IPage<AnswerQueryVo> iPage = baseMapper.queryPage(new Page<>(query.getPageNumber(), query.getPageSize()), query, dpr);
         if (CollectionUtils.isNotEmpty(iPage.getRecords())) {
             for (AnswerQueryVo vo : iPage.getRecords()) {
@@ -650,6 +654,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
 
         // 不分页查询考生准考证号
+        query.setMarkPaperStatus(MarkPaperStatus.FORMAL.name());
         return baseMapper.querySummary(query, dpr);
     }
 
@@ -1112,13 +1117,14 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     }
 
     @Override
-    public int getAssignedCount(Long examId, Boolean checked, String courseCode, String coursePaperId, DataPermissionRule dpr) {
+    public int getAssignedCount(Long examId, Boolean checked, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr) {
         MarkStudent markStudent = new MarkStudent();
         markStudent.setExamId(examId);
         markStudent.setCourseCode(courseCode);
         markStudent.setCoursePaperId(coursePaperId);
         markStudent.setAssigned(true);
         markStudent.setAssignConfirmed(checked);
+        markStudent.setMarkPaperStatus(status.name());
         return baseMapper.countAssigned(markStudent, dpr);
     }
 

+ 8 - 5
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkTaskServiceImpl.java

@@ -90,7 +90,7 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
         if (CollectionUtils.isEmpty(markTask)) {
             return 0;
         }
-        long count = markTask.stream().filter(m -> m.getStatus().equals(MarkTaskStatus.MARKED) || m.getStatus().equals(MarkTaskStatus.ARBITRATED)).count();
+        long count = markTask.stream().filter(m -> m.getStatus().equals(MarkTaskStatus.MARKED) || m.getStatus().equals(MarkTaskStatus.ARBITRATED) || m.getStatus().equals(MarkTaskStatus.WAIT_ARBITRATE)).count();
         return (int) count;
     }
 
@@ -208,11 +208,14 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
     @Override
     public int countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(Long examId, String paperNumber, Integer groupNumber, Long userId, MarkTaskStatus... status) {
         QueryWrapper<MarkTask> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(MarkTask::getExamId, examId)
+        LambdaQueryWrapper<MarkTask> lambdaQueryWrapper = queryWrapper.lambda();
+        lambdaQueryWrapper.eq(MarkTask::getExamId, examId)
                 .eq(MarkTask::getPaperNumber, paperNumber)
-                .eq(MarkTask::getGroupNumber, groupNumber)
-                .eq(MarkTask::getUserId, userId)
-                .in(MarkTask::getStatus, Arrays.asList(status));
+                .eq(MarkTask::getGroupNumber, groupNumber);
+        if (userId != null) {
+            lambdaQueryWrapper.eq(MarkTask::getUserId, userId);
+        }
+        lambdaQueryWrapper.in(MarkTask::getStatus, Arrays.asList(status));
         return this.count(queryWrapper);
     }
 

+ 3 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserGroupServiceImpl.java

@@ -195,6 +195,7 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
     public void resetById(Long id) {
         UpdateWrapper<MarkUserGroup> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(MarkUserGroup::getFinishCount, null)
+                .set(MarkUserGroup::getHeaderFinishCount, null)
                 .set(MarkUserGroup::getValidCount, null)
                 .set(MarkUserGroup::getAvgScore, null)
                 .set(MarkUserGroup::getAvgSpeed, null)
@@ -252,9 +253,10 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
     }
 
     @Override
-    public void updateQualityById(Long markUserGroupId, int finishCount, int validCount, double avgSpeed, double avgScore, double stdevScore, double maxScore, double minScore) {
+    public void updateQualityById(Long markUserGroupId, int finishCount, int headerFinishCount, int validCount, double avgSpeed, double avgScore, double stdevScore, double maxScore, double minScore) {
         UpdateWrapper<MarkUserGroup> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(MarkUserGroup::getFinishCount, finishCount)
+                .set(MarkUserGroup::getHeaderFinishCount, headerFinishCount)
                 .set(MarkUserGroup::getValidCount, validCount)
                 .set(MarkUserGroup::getAvgSpeed, avgSpeed)
                 .set(MarkUserGroup::getAvgScore, avgScore)

+ 1 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanConditionServiceImpl.java

@@ -74,7 +74,7 @@ public class ScanConditionServiceImpl implements ScanConditionService {
     public List<CoursePaperNumberDto> scanCourseList(Long examId) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
-        List<MarkPaper> markPaperList = markPaperService.listByExamId(examId, dpr);
+        List<MarkPaper> markPaperList = markPaperService.listByExamId(examId, MarkPaperStatus.FORMAL, dpr);
         Map<String, List<MarkPaper>> map = markPaperList.stream().collect(Collectors.groupingBy(m -> m.getCourseCode()));
         List<CoursePaperNumberDto> coursePaperNumberDtoList = new ArrayList<>();
         for (Map.Entry<String, List<MarkPaper>> entry : map.entrySet()) {

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java

@@ -598,12 +598,13 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
     }
 
     @Override
-    public int getCount(Long examId, OmrTaskStatus status, String courseCode, String coursePaperId, DataPermissionRule dpr) {
+    public int getCount(Long examId, OmrTaskStatus status, String courseCode, String coursePaperId, MarkPaperStatus markPaperStatus, DataPermissionRule dpr) {
         ScanOmrTask scanOmrTask = new ScanOmrTask();
         scanOmrTask.setExamId(examId);
         scanOmrTask.setCourseCode(courseCode);
         scanOmrTask.setCoursePaperId(coursePaperId);
         scanOmrTask.setStatus(status);
+        scanOmrTask.setMarkPaperStatus(markPaperStatus.name());
         return baseMapper.countOmrTask(scanOmrTask, dpr);
     }
 

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

@@ -9,6 +9,7 @@ import com.qmth.boot.core.exception.ParameterException;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -16,7 +17,6 @@ import com.qmth.teachcloud.mark.bean.scananswer.SheetUploadVo;
 import com.qmth.teachcloud.mark.bean.scanpackage.ScanPackageFindVo;
 import com.qmth.teachcloud.mark.bean.scanpackage.ScanPackageQuery;
 import com.qmth.teachcloud.mark.bean.scanpackage.ScanPackageVo;
-import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.entity.MarkPaperPackage;
 import com.qmth.teachcloud.mark.entity.ScanPackage;
 import com.qmth.teachcloud.mark.mapper.ScanPackageMapper;
@@ -59,8 +59,8 @@ public class ScanPackageServiceImpl extends ServiceImpl<ScanPackageMapper, ScanP
     private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     @Override
-    public int getCount(Long examId, String courseCode, String coursePaperId, DataPermissionRule dpr) {
-        return baseMapper.countPackageCode(examId, courseCode, coursePaperId, dpr);
+    public int getCount(Long examId, String courseCode, String coursePaperId, MarkPaperStatus status, DataPermissionRule dpr) {
+        return baseMapper.countPackageCode(examId, courseCode, coursePaperId, status.name(), dpr);
     }
 
     @Override

+ 3 - 9
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/TaskServiceImpl.java

@@ -6,6 +6,7 @@ import javax.annotation.Resource;
 
 import com.alibaba.fastjson.JSON;
 import com.qmth.teachcloud.mark.bean.mark.MarkConfigItem;
+import com.qmth.teachcloud.mark.entity.*;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
@@ -20,15 +21,6 @@ import com.qmth.teachcloud.mark.dto.mark.manage.MarkerSpecialTagDTO;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkerTrackDTO;
 import com.qmth.teachcloud.mark.dto.mark.manage.Task;
 import com.qmth.teachcloud.mark.dto.mark.manage.TrackDTO;
-import com.qmth.teachcloud.mark.entity.MarkArbitrateHistory;
-import com.qmth.teachcloud.mark.entity.MarkGroup;
-import com.qmth.teachcloud.mark.entity.MarkHeaderTag;
-import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
-import com.qmth.teachcloud.mark.entity.MarkSpecialTag;
-import com.qmth.teachcloud.mark.entity.MarkStudent;
-import com.qmth.teachcloud.mark.entity.MarkSubjectiveScore;
-import com.qmth.teachcloud.mark.entity.MarkTask;
-import com.qmth.teachcloud.mark.entity.MarkTrack;
 import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
 import com.qmth.teachcloud.mark.service.MarkGroupService;
 import com.qmth.teachcloud.mark.service.MarkHeaderTagService;
@@ -251,6 +243,8 @@ public class TaskServiceImpl implements TaskService {
         MarkGroup group = markGroupService.getByExamIdAndPaperNumberAndGroupNumber(t.getExamId(), t.getPaperNumber(),
                 t.getGroupNumber());
         task.setSliceConfig(group.getPictureConfigList());
+        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(t.getExamId(), t.getPaperNumber());
+        task.setObjectiveScore(markPaper.getShowObjectScore() ? student.getObjectiveScore() : null);
         return task;
     }
 

+ 3 - 3
teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml

@@ -164,7 +164,7 @@
     <select id="getCourseCount" resultType="java.lang.Integer">
         select count(distinct mp.course_code) from mark_paper mp left join sys_user su on mp.user_id = su.id
         <where>
-            and mp.exam_id = #{examId}
+            and mp.exam_id = #{examId} AND mp.status = #{status}
             <if test="courseCode != null and courseCode != ''">
                 AND mp.course_code = #{courseCode}
             </if>
@@ -187,7 +187,7 @@
     <select id="getPaperNumberCount" resultType="java.lang.Integer">
         select count(distinct mp.paper_number) from mark_paper mp left join sys_user su on mp.user_id = su.id
         <where>
-            and mp.exam_id = #{examId}
+            and mp.exam_id = #{examId} AND mp.status = #{status}
             <if test="courseCode != null and courseCode != ''">
                 AND mp.course_code = #{courseCode}
             </if>
@@ -212,7 +212,7 @@
             from mark_paper mp
                 left join sys_user su on mp.user_id = su.id
             <where>
-                mp.exam_id = #{examId}
+                mp.exam_id = #{examId} AND mp.status = #{status}
                 <if test="dpr != null">
                     <if test="dpr.requestUserId != null">
                         AND mp.user_id = #{dpr.requestUserId}

+ 13 - 10
teachcloud-mark/src/main/resources/mapper/MarkPaperPackageMapper.xml

@@ -22,18 +22,21 @@
         <if test="coursePaperId != null and coursePaperId != ''">
             and t.course_paper_id= #{coursePaperId}
         </if>
-        <if test="dpr != null">
-            and exists (select 1 from mark_paper mp left join sys_user su on mp.user_id = su.id where t.exam_id = mp.exam_id
+        <if test="dpr != null or status != null">
+            and exists (select 1 from (select * from mark_paper where status = #{status}) mp left join sys_user su on mp.user_id = su.id
+            where t.exam_id = mp.exam_id
             and t.course_paper_id = mp.course_paper_id
             and t.paper_type = mp.paper_type
-            <if test="dpr.requestUserId != null">
-                AND mp.user_id = #{dpr.requestUserId}
-            </if>
-            <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-                AND su.org_id IN
-                <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
-                    #{item}
-                </foreach>
+            <if test="dpr != null">
+                <if test="dpr.requestUserId != null">
+                    AND mp.user_id = #{dpr.requestUserId}
+                </if>
+                <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
+                    AND su.org_id IN
+                    <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
             </if>
             )
         </if>

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

@@ -154,7 +154,7 @@
         WHERE
             ms.exam_id = #{examId} AND ms.paper_number = #{paperNumber}
           AND ms.is_upload = TRUE
-          AND (is_absent = TRUE OR is_breach = TRUE)
+          AND (is_absent = TRUE OR is_breach = TRUE OR omr_absent = TRUE)
           AND EXISTS( SELECT
                           1
                       FROM
@@ -255,6 +255,9 @@
                 </foreach>
             </if>
         </if>
+        <if test="query.markPaperStatus != null">
+            and s.status = #{query.markPaperStatus}
+        </if>
     </sql>
     <select id="queryPage"
             resultType="com.qmth.teachcloud.mark.bean.scananswer.AnswerQueryVo">
@@ -452,6 +455,9 @@
                     </foreach>
                 </if>
             </if>
+            <if test="markStudent.markPaperStatus != null">
+                AND exists(select 1 from mark_paper mp where ms.exam_id = mp.exam_id and ms.paper_number = mp.paper_number and ms.paper_type = mp.paper_type and mp.status = #{markStudent.markPaperStatus})
+            </if>
         </where>
     </select>
     <select id="countAssigned" resultType="java.lang.Integer">
@@ -485,6 +491,9 @@
                     </foreach>
                 </if>
             </if>
+            <if test="markStudent.markPaperStatus != null">
+                AND exists(select 1 from mark_paper mp where ms.exam_id = mp.exam_id and ms.paper_number = mp.paper_number and ms.paper_type = mp.paper_type and mp.status = #{markStudent.markPaperStatus})
+            </if>
         </where>
     </select>
 

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

@@ -96,7 +96,7 @@
 			<if test="scanOmrTask.status != null">
 				AND sot.status = #{scanOmrTask.status}
 			</if>
-			<if test="scanOmrTask.courseCode != null or scanOmrTask.coursePaperId != null or dpr != null">
+			<if test="scanOmrTask.courseCode != null or scanOmrTask.coursePaperId != null or dpr != null or scanOmrTask.markPaperStatus != null">
 				AND EXISTS( SELECT
 						1
 					FROM
@@ -104,6 +104,9 @@
 							left join sys_user su on ms.create_id = su.id
 					WHERE
 						sot.student_id = ms.id
+						<if test="scanOmrTask.markPaperStatus != null">
+							AND exists(select 1 from mark_paper mp where ms.exam_id = mp.exam_id and ms.paper_number = mp.paper_number and ms.paper_type = mp.paper_type and mp.status = #{scanOmrTask.markPaperStatus})
+						</if>
 						<if test="scanOmrTask.courseCode != null">
 							AND ms.course_code = #{scanOmrTask.courseCode}
 						</if>

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

@@ -76,8 +76,8 @@
 			<if test="coursePaperId != null and coursePaperId != ''">
 				AND mpp.course_paper_id = #{coursePaperId}
 			</if>
-			<if test="dpr != null">
-		  			and exists (select 1 from mark_paper mp
+			<if test="dpr != null or status != null">
+		  			and exists (select 1 from (select * from mark_paper where status = #{status}) mp
 		  			    			left join sys_user su on mp.user_id = su.id where
 		  			            		mpp.exam_id = mp.exam_id and mpp.course_paper_id = mp.course_paper_id
 				<if test="dpr.requestUserId != null">