瀏覽代碼

3.3.0 fix

xiaofei 1 年之前
父節點
當前提交
b6a41fcf50

+ 16 - 20
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/SpecialTagDTO.java

@@ -3,11 +3,7 @@ package com.qmth.teachcloud.mark.dto.mark;
 import java.io.Serializable;
 
 import com.qmth.teachcloud.common.contant.SystemConstant;
-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.entity.*;
 import com.qmth.teachcloud.mark.params.MarkHeaderGroupResult;
 
 public class SpecialTagDTO implements Serializable {
@@ -15,7 +11,7 @@ public class SpecialTagDTO implements Serializable {
     private static final long serialVersionUID = -5424015292124065736L;
 
     private String tagName;
-    
+
     private String tagType;
 
     private Double positionX;
@@ -33,7 +29,7 @@ public class SpecialTagDTO implements Serializable {
     }
 
     public SpecialTagDTO(MarkSpecialTag markSpecialTag) {
-    	this.tagType = markSpecialTag.getTagType();
+        this.tagType = markSpecialTag.getTagType();
         this.tagName = markSpecialTag.getTagName();
         this.positionX = markSpecialTag.getPositionX();
         this.positionY = markSpecialTag.getPositionY();
@@ -43,7 +39,7 @@ public class SpecialTagDTO implements Serializable {
     }
 
     public SpecialTagDTO(MarkHeaderTag tag) {
-    	this.tagType = tag.getTagType();
+        this.tagType = tag.getTagType();
         this.tagName = tag.getTagName();
         this.positionX = tag.getPositionX();
         this.positionY = tag.getPositionY();
@@ -81,13 +77,13 @@ public class SpecialTagDTO implements Serializable {
         markSpecialTag.setOffsetY(offsetY);
         return markSpecialTag;
     }
-    
-	public MarkHeaderTag transform(MarkHeaderGroupResult markResult, MarkUserGroup markUserGroup) {
-		MarkHeaderTag markSpecialTag = new MarkHeaderTag();
+
+    public MarkHeaderTag transform(MarkHeaderGroupResult markResult, Long userId) {
+        MarkHeaderTag markSpecialTag = new MarkHeaderTag();
         markSpecialTag.setId(SystemConstant.getDbUuid());
         markSpecialTag.setStudentId(markResult.getStudentId());
-        markSpecialTag.setGroupNumber(markUserGroup.getGroupNumber());
-        markSpecialTag.setUserId(markUserGroup.getUserId());
+        markSpecialTag.setGroupNumber(markResult.getGroupNumber());
+        markSpecialTag.setUserId(userId);
         markSpecialTag.setTagName(tagName);
         markSpecialTag.setTagType(tagType);
         markSpecialTag.setPositionX(positionX);
@@ -96,7 +92,7 @@ public class SpecialTagDTO implements Serializable {
         markSpecialTag.setOffsetX(offsetX);
         markSpecialTag.setOffsetY(offsetY);
         return markSpecialTag;
-	}
+    }
 
     public String getTagName() {
         return tagName;
@@ -146,12 +142,12 @@ public class SpecialTagDTO implements Serializable {
         this.offsetY = offsetY;
     }
 
-	public String getTagType() {
-		return tagType;
-	}
+    public String getTagType() {
+        return tagType;
+    }
 
-	public void setTagType(String tagType) {
-		this.tagType = tagType;
-	}
+    public void setTagType(String tagType) {
+        this.tagType = tagType;
+    }
 
 }

+ 7 - 10
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/manage/TrackDTO.java

@@ -2,11 +2,7 @@ package com.qmth.teachcloud.mark.dto.mark.manage;
 
 import java.io.Serializable;
 
-import com.qmth.teachcloud.mark.entity.MarkArbitrateHistory;
-import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
-import com.qmth.teachcloud.mark.entity.MarkTask;
-import com.qmth.teachcloud.mark.entity.MarkTrack;
-import com.qmth.teachcloud.mark.entity.MarkUserGroup;
+import com.qmth.teachcloud.mark.entity.*;
 import com.qmth.teachcloud.mark.params.MarkHeaderGroupResult;
 
 /**
@@ -107,15 +103,16 @@ public class TrackDTO implements Serializable {
         return track;
     }
 
-    public MarkHeaderTrack transform(MarkHeaderGroupResult markResult, MarkUserGroup markUserGroup) {
+    public MarkHeaderTrack transform(MarkHeaderGroupResult markResult, MarkStudent markStudent, Long userId) {
         MarkHeaderTrack track = new MarkHeaderTrack();
+        track.setStudentId(markResult.getStudentId());
         track.setQuestionNumber(getMainNumber() + "." + getSubNumber());
         track.setNumber(getNumber());
         track.setStudentId(markResult.getStudentId());
-        track.setExamId(markUserGroup.getExamId());
-        track.setPaperNumber(markUserGroup.getPaperNumber());
-        track.setGroupNumber(markUserGroup.getGroupNumber());
-        track.setUserId(markUserGroup.getUserId());
+        track.setExamId(markStudent.getExamId());
+        track.setPaperNumber(markStudent.getPaperNumber());
+        track.setGroupNumber(markResult.getGroupNumber());
+        track.setUserId(userId);
         track.setScore(getScore());
         track.setPositionX(getPositionX());
         track.setPositionY(getPositionY());

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

@@ -18,11 +18,6 @@ public class MarkHeaderGroupResult {
 
     private Integer groupNumber;
 
-    /**
-     * 评卷状态
-     */
-    private String statusValue;
-
     /**
      * 考生编号
      */
@@ -42,7 +37,7 @@ public class MarkHeaderGroupResult {
      * 阅卷轨迹列表
      */
     private TrackDTO[] trackList;
-    
+
     /**
      * 特殊标记列表
      */
@@ -63,14 +58,6 @@ public class MarkHeaderGroupResult {
         this.groupNumber = groupNumber;
     }
 
-    public String getStatusValue() {
-        return statusValue;
-    }
-
-    public void setStatusValue(String statusValue) {
-        this.statusValue = statusValue;
-    }
-
     public double getMarkerScore() {
         return markerScore;
     }
@@ -130,11 +117,11 @@ public class MarkHeaderGroupResult {
         return list;
     }
 
-    public List<MarkHeaderTrack> getTrackList(MarkHeaderGroupResult markResult, MarkUserGroup markUserGroup) {
+    public List<MarkHeaderTrack> getTrackList(MarkHeaderGroupResult markResult, MarkStudent markStudent, Long userId) {
         List<MarkHeaderTrack> list = new LinkedList<>();
         if (trackList != null) {
             for (TrackDTO dto : trackList) {
-                list.add(dto.transform(markResult, markUserGroup));
+                list.add(dto.transform(markResult, markStudent, userId));
             }
         }
         return list;
@@ -160,14 +147,14 @@ public class MarkHeaderGroupResult {
         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;
-	}
+    public List<MarkHeaderTag> getHeaderTagList(MarkHeaderGroupResult markResult, Long userId) {
+        List<MarkHeaderTag> list = new LinkedList<>();
+        if (specialTagList != null) {
+            for (SpecialTagDTO dto : specialTagList) {
+                list.add(dto.transform(markResult, userId));
+            }
+        }
+        return list;
+    }
 
 }

+ 5 - 14
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/params/MarkHeaderResult.java

@@ -9,25 +9,16 @@ public class MarkHeaderResult {
 
     public static final String SPLIT = ",";
 
-    private Long examId;
-    private String paperNumber;
+    private Long studentId;
 
     private List<MarkHeaderGroupResult> groups;
 
-    public Long getExamId() {
-        return examId;
+    public Long getStudentId() {
+        return studentId;
     }
 
-    public void setExamId(Long examId) {
-        this.examId = examId;
-    }
-
-    public String getPaperNumber() {
-        return paperNumber;
-    }
-
-    public void setPaperNumber(String paperNumber) {
-        this.paperNumber = paperNumber;
+    public void setStudentId(Long studentId) {
+        this.studentId = studentId;
     }
 
     public List<MarkHeaderGroupResult> getGroups() {

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

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.mark.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
 import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
 
 import java.util.List;
@@ -13,7 +14,7 @@ import java.util.List;
  * @author xf
  * @since 2023-09-22
  */
-public interface MarkHeaderTrackService extends IService<MarkHeaderTrack> {
+public interface MarkHeaderTrackService extends IMppService<MarkHeaderTrack> {
 
     List<MarkHeaderTrack> listByExamAndPaperNumberAndGroupNumberAndStudentId(Long examId, String paperNumber, Integer groupNumber, Long studentId);
 

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

@@ -76,7 +76,7 @@ public interface MarkService {
      */
     boolean applyStudent(MarkStudent student, Long userId);
 
-    void submitHeaderTask(MarkHeaderGroupResult markResult, MarkUserGroup markUserGroup);
+    void submitHeaderTask(List<MarkHeaderGroupResult> markResult, MarkStudent markUserGroup);
 
 	IPage<Task> getHistory(Long userId, int pageNumber, int pageSize, Sort sort,String order, Long examId, String paperNumber,
 			Integer groupNumber, String secretNumber, Double markerScore);

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

@@ -216,7 +216,7 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
         LambdaQueryWrapper<MarkPaper> lw = wrapper.lambda();
         lw.eq(MarkPaper::getExamId, examId);
         if (StringUtils.isNotBlank(packageCode)) {
-            lw.eq(MarkPaper::getPackageCode, packageCode);
+            lw.like(MarkPaper::getPackageCode, packageCode);
         }
         return this.list(wrapper);
     }

File diff suppressed because it is too large
+ 1025 - 1049
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java


+ 15 - 21
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -710,7 +710,6 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         if (studentId != null) {
             Long userId = ServletUtil.getRequestUserId();
             MarkStudent markStudent = this.getById(studentId);
-            releaseStudent(markStudent);
             if (markService.applyStudent(markStudent, userId)) {
                 task = taskService.build(studentId);
             }
@@ -718,28 +717,23 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         return task;
     }
 
+    @Transactional
     @Override
     public void saveSubjectiveInspectedTask(MarkHeaderResult markResult) {
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        for (MarkHeaderGroupResult groupResult : markResult.getGroups()) {
-            MarkUserGroup markUserGroup = markUserGroupService.getByExamIdAndPaperNumberAndGroupNumberAndUserId(
-                    markResult.getExamId(), markResult.getPaperNumber(), groupResult.getGroupNumber(), sysUser.getId());
-            try {
-                lockService.watch(LockType.EXAM_SUBJECT, markUserGroup.getExamId(), markUserGroup.getPaperNumber());
-                lockService.watch(LockType.GROUP, markUserGroup.getExamId(), markUserGroup.getPaperNumber(),
-                        markUserGroup.getGroupNumber());
-                lockService.watch(LockType.MARK_USER_GROUP, markUserGroup.getId());
-                lockService.waitlock(LockType.STUDENT, groupResult.getStudentId());
-                markService.submitHeaderTask(groupResult, markUserGroup);
-            } catch (Exception e) {
-                log.error("save task error", e);
-            } finally {
-                lockService.unlock(LockType.STUDENT, groupResult.getStudentId());
-                lockService.unwatch(LockType.MARK_USER_GROUP, markUserGroup.getId());
-                lockService.unwatch(LockType.GROUP, markUserGroup.getExamId(), markUserGroup.getPaperNumber(),
-                        markUserGroup.getGroupNumber());
-                lockService.unwatch(LockType.EXAM_SUBJECT, markUserGroup.getExamId(), markUserGroup.getPaperNumber());
-            }
+        MarkStudent markStudent = this.getById(markResult.getStudentId());
+        if (markStudent == null) {
+            throw ExceptionResultEnum.ERROR.exception("考生不存在");
+        }
+        try {
+            lockService.watch(LockType.EXAM_SUBJECT, markStudent.getExamId(), markStudent.getPaperNumber());
+            lockService.waitlock(LockType.STUDENT, markResult.getStudentId());
+            markService.submitHeaderTask(markResult.getGroups(), markStudent);
+        } catch (Exception e) {
+            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
+        } finally {
+            lockService.unlock(LockType.STUDENT, markResult.getStudentId());
+            lockService.unwatch(LockType.EXAM_SUBJECT, markStudent.getExamId(), markStudent.getPaperNumber());
+            releaseStudent(markStudent);
         }
     }
 

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

@@ -5,8 +5,8 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.qmth.teachcloud.mark.entity.MarkHeaderTrack">
         <id column="student_id" property="studentId" />
-        <result column="question_number" property="questionNumber" />
-        <result column="number" property="number" />
+        <id column="question_number" property="questionNumber" />
+        <id column="number" property="number" />
         <result column="exam_id" property="examId" />
         <result column="paper_number" property="paperNumber" />
         <result column="group_number" property="groupNumber" />

+ 0 - 1
teachcloud-task/src/main/java/com/qmth/teachcloud/task/service/impl/PrintFinishServiceImpl.java

@@ -81,7 +81,6 @@ public class PrintFinishServiceImpl implements PrintFinishService {
     public void insertMarkPaper(Long examId, String courseCode, String courseName, String paperNumber, String coursePaperId, String packageCode, Long userId, String paperType) {
         try {
             MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
-            List<String> packageCodes = Arrays.asList(packageCode.split(","));
             if (markPaper != null) {
                 if (packageCode.equals(markPaper.getPackageCode())) {
                     return;

Some files were not shown because too many files changed in this diff