Browse Source

3.3.0 update

ting.yin 1 year ago
parent
commit
8b70edc6a9

+ 19 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/SpecialTagDTO.java

@@ -7,6 +7,8 @@ import com.qmth.teachcloud.mark.entity.MarkArbitrateHistory;
 import com.qmth.teachcloud.mark.entity.MarkHeaderTag;
 import com.qmth.teachcloud.mark.entity.MarkSpecialTag;
 import com.qmth.teachcloud.mark.entity.MarkTask;
+import com.qmth.teachcloud.mark.entity.MarkUserGroup;
+import com.qmth.teachcloud.mark.params.MarkHeaderGroupResult;
 
 public class SpecialTagDTO implements Serializable {
 
@@ -79,6 +81,22 @@ public class SpecialTagDTO implements Serializable {
         markSpecialTag.setOffsetY(offsetY);
         return markSpecialTag;
     }
+    
+	public MarkHeaderTag transform(MarkHeaderGroupResult markResult, MarkUserGroup markUserGroup) {
+		MarkHeaderTag markSpecialTag = new MarkHeaderTag();
+        markSpecialTag.setId(SystemConstant.getDbUuid());
+        markSpecialTag.setStudentId(markResult.getStudentId());
+        markSpecialTag.setGroupNumber(markUserGroup.getGroupNumber());
+        markSpecialTag.setUserId(markUserGroup.getUserId());
+        markSpecialTag.setTagName(tagName);
+        markSpecialTag.setTagType(tagType);
+        markSpecialTag.setPositionX(positionX);
+        markSpecialTag.setPositionY(positionY);
+        markSpecialTag.setOffsetIndex(offsetIndex);
+        markSpecialTag.setOffsetX(offsetX);
+        markSpecialTag.setOffsetY(offsetY);
+        return markSpecialTag;
+	}
 
     public String getTagName() {
         return tagName;
@@ -135,5 +153,5 @@ public class SpecialTagDTO implements Serializable {
 	public void setTagType(String tagType) {
 		this.tagType = tagType;
 	}
-    
+
 }

+ 25 - 9
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/params/MarkHeaderGroupResult.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.mark.params;
 
+import com.qmth.teachcloud.mark.dto.mark.SpecialTagDTO;
 import com.qmth.teachcloud.mark.dto.mark.manage.TrackDTO;
 import com.qmth.teachcloud.mark.entity.*;
 import org.apache.commons.lang3.StringUtils;
@@ -41,6 +42,11 @@ public class MarkHeaderGroupResult {
      * 阅卷轨迹列表
      */
     private TrackDTO[] trackList;
+    
+    /**
+     * 特殊标记列表
+     */
+    private SpecialTagDTO[] specialTagList;
 
 
     /**
@@ -144,14 +150,24 @@ public class MarkHeaderGroupResult {
         return list;
     }
 
-//    public List<MarkHeaderTrack> getHeaderTagList(MarkArbitrateHistory library) {
-//        List<MarkHeaderTrack> list = new LinkedList<>();
-//        if (specialTagList != null) {
-//            for (SpecialTagDTO dto : specialTagList) {
-//                list.add(dto.transform(library));
-//            }
-//        }
-//        return list;
-//    }
+    public List<MarkHeaderTag> getHeaderTagList(MarkArbitrateHistory library) {
+        List<MarkHeaderTag> list = new LinkedList<>();
+        if (specialTagList != null) {
+            for (SpecialTagDTO dto : specialTagList) {
+                list.add(dto.transform(library));
+            }
+        }
+        return list;
+    }
+
+	public List<MarkHeaderTag> getHeaderTagList(MarkHeaderGroupResult markResult, MarkUserGroup markUserGroup) {
+		 List<MarkHeaderTag> list = new LinkedList<>();
+	        if (specialTagList != null) {
+	            for (SpecialTagDTO dto : specialTagList) {
+	                list.add(dto.transform(markResult, markUserGroup));
+	            }
+	        }
+	        return list;
+	}
 
 }

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

@@ -21,4 +21,7 @@ public interface MarkHeaderTagService extends IService<MarkHeaderTag> {
     void deleteByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer number);
 
 	List<MarkHeaderTag> findByStudentId(Long studentId);
+
+	void deleteByExamIdAndPaperNumberAndGroupNumberAndStudentId(Long examId, String paperNumber, Integer groupNumber,
+			Long studentId);
 }

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

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.mark.service;
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.scan.ConditionType;
@@ -52,6 +53,6 @@ public interface ScanOmrTaskService extends IService<ScanOmrTask> {
 
 	int getCount(Long examId, OmrTaskStatus status);
 
-	String list(Long examId, OmrTaskStatus status, Long userId);
+	IPage<ScanOmrTaskDto> list(Long examId, OmrTaskStatus status, Long userId);
 
 }

+ 12 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkHeaderTagServiceImpl.java

@@ -50,4 +50,16 @@ public class MarkHeaderTagServiceImpl extends ServiceImpl<MarkHeaderTagMapper, M
 		queryWrapper.lambda().eq(MarkHeaderTag::getStudentId, studentId);
 		return this.list(queryWrapper);
 	}
+
+	@Override
+	public void deleteByExamIdAndPaperNumberAndGroupNumberAndStudentId(Long examId, String paperNumber,
+			Integer groupNumber, Long studentId) {
+		UpdateWrapper<MarkHeaderTag> updateWrapper = new UpdateWrapper<>();
+		LambdaUpdateWrapper<MarkHeaderTag> lambdaUpdateWrapper = updateWrapper.lambda();
+		lambdaUpdateWrapper.eq(MarkHeaderTag::getExamId, examId);
+		lambdaUpdateWrapper.eq(MarkHeaderTag::getStudentId, studentId);
+		lambdaUpdateWrapper.eq(MarkHeaderTag::getPaperNumber, paperNumber);
+		lambdaUpdateWrapper.eq(MarkHeaderTag::getGroupNumber, groupNumber);
+		this.remove(updateWrapper);
+	}
 }

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

@@ -39,6 +39,7 @@ import com.qmth.teachcloud.mark.dto.mark.mark.SubmitResult;
 import com.qmth.teachcloud.mark.entity.MarkArbitrateHistory;
 import com.qmth.teachcloud.mark.entity.MarkGroup;
 import com.qmth.teachcloud.mark.entity.MarkGroupStudent;
+import com.qmth.teachcloud.mark.entity.MarkHeaderTag;
 import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
 import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.entity.MarkProblemHistory;
@@ -907,9 +908,13 @@ public class MarkServiceImpl implements MarkService {
 			markHeaderTrackService.deleteByExamIdAndPaperNumberAndGroupNumberAndStudentId(markUserGroup.getExamId(),
 					markUserGroup.getPaperNumber(), markUserGroup.getGroupNumber(), markResult.getStudentId());
 			List<MarkHeaderTrack> tracks = markResult.getTrackList(markResult, markUserGroup);
-			for (MarkHeaderTrack t : tracks) {
-				markHeaderTrackService.saveOrUpdate(t);
-			}
+			markHeaderTrackService.saveOrUpdateBatch(tracks);
+		}
+		if (markResult.getHeaderTagList(markResult,markUserGroup) != null) {
+			markHeaderTagService.deleteByExamIdAndPaperNumberAndGroupNumberAndStudentId(markUserGroup.getExamId(),
+					markUserGroup.getPaperNumber(), markUserGroup.getGroupNumber(), markResult.getStudentId());
+			List<MarkHeaderTag> tags = markResult.getHeaderTagList(markResult, markUserGroup);
+			markHeaderTagService.saveOrUpdateBatch(tags);
 		}
 		markTaskService.updateHeaderResult(markUserGroup.getExamId(), markUserGroup.getPaperNumber(),
 				markUserGroup.getGroupNumber(), markResult.getStudentId(), markUserGroup.getUserId(),

+ 17 - 5
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java

@@ -16,11 +16,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.core.concurrent.service.ConcurrentService;
 import com.qmth.boot.core.exception.ParameterException;
+import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.QuestionType;
 import com.qmth.teachcloud.common.enums.ScanStatus;
 import com.qmth.teachcloud.common.enums.scan.ConditionType;
 import com.qmth.teachcloud.common.enums.scan.OmrField;
@@ -34,7 +38,6 @@ import com.qmth.teachcloud.mark.dto.ScanOmrTaskResultDto;
 import com.qmth.teachcloud.mark.dto.ScanOmrTaskResultPageDto;
 import com.qmth.teachcloud.mark.dto.ScanOmrTaskSaveDto;
 import com.qmth.teachcloud.mark.dto.ScanOmrTaskStatusDto;
-import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.mark.entity.MarkStudent;
 import com.qmth.teachcloud.mark.entity.ScanOmrTask;
 import com.qmth.teachcloud.mark.entity.ScanPaper;
@@ -42,7 +45,6 @@ import com.qmth.teachcloud.mark.entity.ScanPaperPage;
 import com.qmth.teachcloud.mark.entity.ScanStudentPaper;
 import com.qmth.teachcloud.mark.enums.LockType;
 import com.qmth.teachcloud.mark.enums.OmrTaskStatus;
-import com.qmth.teachcloud.common.enums.QuestionType;
 import com.qmth.teachcloud.mark.mapper.ScanOmrTaskMapper;
 import com.qmth.teachcloud.mark.service.MarkQuestionService;
 import com.qmth.teachcloud.mark.service.MarkStudentService;
@@ -678,8 +680,18 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
 	}
 
 	@Override
-	public String list(Long examId, OmrTaskStatus status, Long userId) {
-		// TODO Auto-generated method stub
-		return null;
+	public IPage<ScanOmrTaskDto> list(Long examId, OmrTaskStatus status, Long userId) {
+		QueryWrapper<ScanOmrTask> wrapper = new QueryWrapper<>();
+        LambdaQueryWrapper<ScanOmrTask> lw = wrapper.lambda();
+        lw.eq(ScanOmrTask::getExamId, examId);
+        lw.eq(ScanOmrTask::getStatus, status);
+		IPage<ScanOmrTask> list =this.baseMapper.selectPage(new Page<>(0, 20), null);
+		IPage<ScanOmrTaskDto> result = new Page<ScanOmrTaskDto>();
+		result.setCurrent(list.getCurrent());
+		result.setPages(list.getPages());
+		result.setRecords(null);
+		result.setSize(list.getSize());
+		result.setTotal(list.getTotal());
+		return result; 
 	}
 }