ting.yin hai 1 ano
pai
achega
70be6a43cd

+ 8 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/TeachcloudCommonService.java

@@ -124,6 +124,14 @@ public interface TeachcloudCommonService {
      * @return
      */
     public String filePreview(String path);
+    
+    /**
+     * 批量文件预览
+     *
+     * @param path
+     * @return
+     */
+    public List<String> filePreview(List<String> path);
 
     public String filePreview(Long attachmentId);
 

+ 9 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -899,4 +899,13 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
             log.error(SystemConstant.LOG_ERROR, e);
         }
     }
+
+	@Override
+	public List<String> filePreview(List<String> paths) {
+		List<String> result = new ArrayList<String>();
+		for (String path : paths) {
+			result.add(this.filePreview(path));
+		}
+		return result;
+	}
 }

+ 14 - 11
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/mark/MarkConfigItem.java

@@ -2,6 +2,8 @@ package com.qmth.teachcloud.mark.bean.mark;
 
 import org.apache.commons.lang3.StringUtils;
 
+import com.alibaba.fastjson.JSON;
+
 import java.util.LinkedList;
 import java.util.List;
 
@@ -111,17 +113,18 @@ public class MarkConfigItem {
     public static List<MarkConfigItem> parse(String text) {
         List<MarkConfigItem> list = new LinkedList<MarkConfigItem>();
         text = StringUtils.trimToEmpty(text);
-        String[] values = StringUtils.split(text, DB_ITEM_JOINER);
-        for (String value : values) {
-            try {
-                MarkConfigItem item = new MarkConfigItem(value);
-                if (item != null && item.i > 0) {
-                    list.add(item);
-                }
-            } catch (Exception e) {
-                continue;
-            }
-        }
+        list = JSON.parseArray(text, MarkConfigItem.class);
+//        String[] values = StringUtils.split(text, DB_ITEM_JOINER);
+//        for (String value : values) {
+//            try {
+//                MarkConfigItem item = new MarkConfigItem(value);
+//                if (item != null && item.i > 0) {
+//                    list.add(item);
+//                }
+//            } catch (Exception e) {
+//                continue;
+//            }
+//        }
         return list;
     }
 

+ 4 - 14
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/mark/MarkTaskDto.java

@@ -3,6 +3,8 @@ package com.qmth.teachcloud.mark.dto.mark.mark;
 import java.util.Date;
 import java.util.List;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.mark.bean.mark.MarkConfigItem;
 import com.qmth.teachcloud.mark.dto.mark.SpecialTagDTO;
 import com.qmth.teachcloud.mark.entity.MarkTask;
@@ -13,11 +15,13 @@ public class MarkTaskDto {
     /**
      * 评卷任务编号
      */
+	@JsonSerialize(using = ToStringSerializer.class)
     private Long taskId;
 
     /**
      * 考生编号
      */
+	@JsonSerialize(using = ToStringSerializer.class)
     private Long studentId;
 
     /**
@@ -39,11 +43,6 @@ public class MarkTaskDto {
     private String paperNumber;
     private Integer groupNumber;
 
-    /**
-     * 裁切图地址
-     */
-    private List<String> sliceUrls;
-
     /**
      * 题卡图片拼接配置
      */
@@ -184,15 +183,6 @@ public class MarkTaskDto {
         this.studentCode = studentCode;
     }
 
-
-    public List<String> getSliceUrls() {
-        return sliceUrls;
-    }
-
-    public void setSliceUrls(List<String> sliceUrls) {
-        this.sliceUrls = sliceUrls;
-    }
-
     public List<MarkConfigItem> getSliceConfig() {
         return sliceConfig;
     }

+ 5 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/MarkGroup.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.entity.MarkQuestion;
+import com.qmth.teachcloud.mark.bean.mark.MarkConfigItem;
 import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
 import com.qmth.teachcloud.mark.enums.ScorePolicy;
 import io.swagger.annotations.ApiModel;
@@ -305,6 +306,10 @@ public class MarkGroup implements Serializable {
         this.groupQuestions = StringUtils.join(groupQuestions, ",");
         this.scoreList = score.toString();
     }
+    
+    public List<MarkConfigItem> getPictureConfigList() {
+        return MarkConfigItem.parse(this.picList);
+    }
 
     @Override
     public String toString() {

+ 13 - 13
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/params/MarkResult.java

@@ -29,11 +29,6 @@ public class MarkResult {
      */
     private Long markUserGroupId;
 
-    /**
-     * 评卷状态
-     */
-    private String statusValue;
-
     /**
      * 考生编号
      */
@@ -78,6 +73,11 @@ public class MarkResult {
      * 问题类型
      */
     private MarkProblemType problemType;
+    
+    /**
+     * 问题卷备注
+     */
+    private String problemRemark;
 
     private boolean unselective;
 
@@ -89,14 +89,6 @@ public class MarkResult {
         this.markUserGroupId = markUserGroupId;
     }
 
-    public String getStatusValue() {
-        return statusValue;
-    }
-
-    public void setStatusValue(String statusValue) {
-        this.statusValue = statusValue;
-    }
-
     public Long getTaskId() {
         return taskId;
     }
@@ -225,4 +217,12 @@ public class MarkResult {
         this.unselective = unselective;
     }
 
+	public String getProblemRemark() {
+		return problemRemark;
+	}
+
+	public void setProblemRemark(String problemRemark) {
+		this.problemRemark = problemRemark;
+	}
+
 }

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

@@ -85,7 +85,8 @@ public interface MarkService {
 
 	boolean hasApplied(MarkTask t, Long userId);
 	
-	MarkTaskDto getTaskDto(MarkTask task);
+	MarkTaskDto getTaskDto(MarkTask task,MarkGroup group);
 	
 	MarkTaskDto getTaskDto(MarkStudent student);
+
 }

+ 14 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -778,13 +778,14 @@ public class MarkServiceImpl implements MarkService {
 		for (MarkUserGroup markUserGroup : markUserGroups) {
 			MarkGroup markGroup = markGroupService.getByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber,
 					markUserGroup.getGroupNumber());
+			markGroup.setQuestionList(markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, markUserGroup.getGroupNumber(), false));
 			MarkGroupDto dto = new MarkGroupDto();
 			dto.setGroupNumber(markUserGroup.getGroupNumber());
 			dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber,
 					markUserGroup.getGroupNumber()));
 			dto.setMarkedCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId, paperNumber,
 					markUserGroup.getGroupNumber(), Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.ARBITRATED)));
-			dto.setGroupQuestions(markGroup.getQuestionTitle());
+			dto.setGroupQuestions(markGroup.getGroupQuestions());
 			dto.setTitle(markGroup.getTitle());
 			list.add(dto);
 		}
@@ -918,6 +919,10 @@ public class MarkServiceImpl implements MarkService {
 		if (!"markerTime".equals(order) && !"markerScore".equals(order)) {
 			throw ExceptionResultEnum.ERROR.exception("排序错误");
 		}
+		MarkGroup group = markGroupService.getByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber);
+		if (group == null) {
+			throw ExceptionResultEnum.ERROR.exception("评卷大题不存在");
+		}
 		Page<MarkTask> page = new Page<>(pageNumber, pageSize);
 		OrderItem orderItem = new OrderItem(order, sort.equals(Sort.asc));
 		page.addOrder(orderItem);
@@ -925,7 +930,7 @@ public class MarkServiceImpl implements MarkService {
 				secretNumber, markerScore);
 		List<MarkTaskDto> recordsDtos =new ArrayList<MarkTaskDto>();
 		for (MarkTask task : list.getRecords()) {
-			MarkTaskDto dto = this.getTaskDto(task);
+			MarkTaskDto dto = this.getTaskDto(task,group);
 			recordsDtos.add(dto);
 		}
 		IPage<MarkTaskDto> result = new Page<MarkTaskDto>();
@@ -963,7 +968,7 @@ public class MarkServiceImpl implements MarkService {
 			}
 			for (MarkTask t : list) {
 				if (this.applyTask(t, userId)) {
-					task =  this.getTaskDto(t);
+					task =  this.getTaskDto(t,group);
 					break;
 				}
 			}
@@ -1055,6 +1060,9 @@ public class MarkServiceImpl implements MarkService {
         history.setPaperNumber(task.getPaperNumber());
         history.setGroupNumber(task.getGroupNumber());
         history.setType(result.getProblemType());
+        if(MarkProblemType.OTHER.equals(result.getProblemType())) {
+        	history.setRemark(result.getProblemRemark());
+        }
         history.setStatus(MarkProblemStatus.WAITING);
         history.setUserId(userId);
         markProblemHistoryService.save(history);
@@ -1179,9 +1187,11 @@ public class MarkServiceImpl implements MarkService {
     }
 	
 	@Override
-	public MarkTaskDto getTaskDto(MarkTask t) {
+	public MarkTaskDto getTaskDto(MarkTask t,MarkGroup group) {
 		MarkTaskDto task = new MarkTaskDto(t);
 		task.setQuestionList(buildMarkStep(t));
+		task.setSheetUrls(null);
+		task.setSliceConfig(group.getPictureConfigList());
         return task;
 	}