ting.yin 1 年間 前
コミット
43e511dbfb

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkController.java

@@ -33,7 +33,7 @@ public class MarkController {
     public Result getSetting(@RequestParam Long examId, @RequestParam String paperNumber,
                              @RequestParam Integer groupNumber) {
         SysUser user = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(markService.getSetting(user.getId(), examId, paperNumber, groupNumber));
+        return ResultUtil.ok(markService.getSetting(user, examId, paperNumber, groupNumber));
     }
 
     @RequestMapping(value = "/getStatus", method = RequestMethod.POST)
@@ -75,6 +75,7 @@ public class MarkController {
     public Result updateSetting(HttpServletRequest request, @RequestParam(required = false) String uiSetting,
                                 @RequestParam(required = false) String mode) {
         SysUser user = (SysUser) ServletUtil.getRequestUser();
+        
         return ResultUtil.ok(true);
     }
 

+ 21 - 12
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/mark/MarkGroupDto.java

@@ -1,41 +1,50 @@
 package com.qmth.teachcloud.mark.dto.mark.mark;
 
 public class MarkGroupDto {
-	private Integer groupNuber;
+	private Integer groupNumber;
 	private String groupQuestions;
 	private String title;
-	private Long markedCount;
-	private Long totalCount;
-	public Integer getGroupNuber() {
-		return groupNuber;
+	private int markedCount;
+	private int totalCount;
+
+	public Integer getGroupNumber() {
+		return groupNumber;
 	}
-	public void setGroupNuber(Integer groupNuber) {
-		this.groupNuber = groupNuber;
+
+	public void setGroupNumber(Integer groupNumber) {
+		this.groupNumber = groupNumber;
 	}
+
 	public String getGroupQuestions() {
 		return groupQuestions;
 	}
+
 	public void setGroupQuestions(String groupQuestions) {
 		this.groupQuestions = groupQuestions;
 	}
+
 	public String getTitle() {
 		return title;
 	}
+
 	public void setTitle(String title) {
 		this.title = title;
 	}
-	public Long getMarkedCount() {
+
+	public int getMarkedCount() {
 		return markedCount;
 	}
-	public void setMarkedCount(Long markedCount) {
+
+	public void setMarkedCount(int markedCount) {
 		this.markedCount = markedCount;
 	}
-	public Long getTotalCount() {
+
+	public int getTotalCount() {
 		return totalCount;
 	}
-	public void setTotalCount(Long totalCount) {
+
+	public void setTotalCount(int totalCount) {
 		this.totalCount = totalCount;
 	}
 
-
 }

+ 22 - 17
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/mark/MarkSettingDto.java

@@ -10,14 +10,14 @@ import com.qmth.teachcloud.mark.enums.ExamType;
 public class MarkSettingDto {
 	private ExamType examType;
 	private MarkMode mode;
-	private Boolean forceMode;
+//	private Boolean forceMode;
 	private Boolean sheetView;
 	private String sheetConfig;
 	private Boolean enableAllZore;
 	private String fileServer;
 	private String userName;
-	private MarkSubjectDto subjec;
-	private Boolean forceSpeciakTag;
+	private MarkSubjectDto subject;
+	private Boolean forceSpecialTag;
 	private String uiSetting;
 	private MarkPaperStatus statusValue;
 	private List<MarkProblemType> problemTypes;
@@ -30,6 +30,11 @@ public class MarkSettingDto {
 	private Boolean selective;
 	private Boolean autoScroll;
 	private Boolean enableSplit;
+	
+	public MarkSettingDto() {
+		subject =new MarkSubjectDto();
+	}
+	
 	public ExamType getExamType() {
 		return examType;
 	}
@@ -42,12 +47,12 @@ public class MarkSettingDto {
 	public void setMode(MarkMode mode) {
 		this.mode = mode;
 	}
-	public Boolean getForceMode() {
-		return forceMode;
-	}
-	public void setForceMode(Boolean forceMode) {
-		this.forceMode = forceMode;
-	}
+//	public Boolean getForceMode() {
+//		return forceMode;
+//	}
+//	public void setForceMode(Boolean forceMode) {
+//		this.forceMode = forceMode;
+//	}
 	public Boolean getSheetView() {
 		return sheetView;
 	}
@@ -78,17 +83,17 @@ public class MarkSettingDto {
 	public void setUserName(String userName) {
 		this.userName = userName;
 	}
-	public MarkSubjectDto getSubjec() {
-		return subjec;
+	public MarkSubjectDto getSubject() {
+		return subject;
 	}
-	public void setSubjec(MarkSubjectDto subjec) {
-		this.subjec = subjec;
+	public void setSubject(MarkSubjectDto subject) {
+		this.subject = subject;
 	}
-	public Boolean getForceSpeciakTag() {
-		return forceSpeciakTag;
+	public Boolean getForceSpecialTag() {
+		return forceSpecialTag;
 	}
-	public void setForceSpeciakTag(Boolean forceSpeciakTag) {
-		this.forceSpeciakTag = forceSpeciakTag;
+	public void setForceSpecialTag(Boolean forceSpecialTag) {
+		this.forceSpecialTag = forceSpecialTag;
 	}
 	public String getUiSetting() {
 		return uiSetting;

+ 15 - 15
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/mark/MarkStatusDto.java

@@ -1,39 +1,39 @@
 package com.qmth.teachcloud.mark.dto.mark.mark;
 
 public class MarkStatusDto {
-	private Long totalCount;
-	private Long personCount;
-	private Long markedCount;
-	private Long problemCount;
-	private Long arbitrateCount;
-	public Long getTotalCount() {
+	private int totalCount;
+	private int personCount;
+	private int markedCount;
+	private int problemCount;
+	private int arbitrateCount;
+	public int getTotalCount() {
 		return totalCount;
 	}
-	public void setTotalCount(Long totalCount) {
+	public void setTotalCount(int totalCount) {
 		this.totalCount = totalCount;
 	}
-	public Long getPersonCount() {
+	public int getPersonCount() {
 		return personCount;
 	}
-	public void setPersonCount(Long personCount) {
+	public void setPersonCount(int personCount) {
 		this.personCount = personCount;
 	}
-	public Long getMarkedCount() {
+	public int getMarkedCount() {
 		return markedCount;
 	}
-	public void setMarkedCount(Long markedCount) {
+	public void setMarkedCount(int markedCount) {
 		this.markedCount = markedCount;
 	}
-	public Long getProblemCount() {
+	public int getProblemCount() {
 		return problemCount;
 	}
-	public void setProblemCount(Long problemCount) {
+	public void setProblemCount(int problemCount) {
 		this.problemCount = problemCount;
 	}
-	public Long getArbitrateCount() {
+	public int getArbitrateCount() {
 		return arbitrateCount;
 	}
-	public void setArbitrateCount(Long arbitrateCount) {
+	public void setArbitrateCount(int arbitrateCount) {
 		this.arbitrateCount = arbitrateCount;
 	}
 

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

@@ -2,11 +2,16 @@ package com.qmth.teachcloud.mark.service;
 
 import java.util.List;
 
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.mark.dto.mark.mark.MarkGroupDto;
 import com.qmth.teachcloud.mark.dto.mark.mark.MarkSettingDto;
 import com.qmth.teachcloud.mark.dto.mark.mark.MarkStatusDto;
 import com.qmth.teachcloud.mark.dto.mark.mark.MarkTaskDto;
-import com.qmth.teachcloud.mark.entity.*;
+import com.qmth.teachcloud.mark.entity.MarkGroup;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
+import com.qmth.teachcloud.mark.entity.MarkStudent;
+import com.qmth.teachcloud.mark.entity.MarkTask;
+import com.qmth.teachcloud.mark.entity.MarkUserGroup;
 import com.qmth.teachcloud.mark.params.MarkResult;
 
 /**
@@ -43,7 +48,7 @@ public interface MarkService {
 
     void updateGroupAllCount(Long examId, String paperNumber);
 
-	MarkSettingDto getSetting(Long userId, Long examId, String paperNumber, Integer groupNumber);
+	MarkSettingDto getSetting(SysUser user, Long examId, String paperNumber, Integer groupNumber);
 
 	MarkStatusDto getStatus(Long userId, Long examId, String paperNumber, Integer groupNumber);
 

+ 5 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkTaskService.java

@@ -47,4 +47,9 @@ public interface MarkTaskService extends IService<MarkTask> {
     void updateHeaderResult(Long examId, String paperNumber, Integer groupNumber, Long studentId, Long updateUserId, Double totalScore, String scoreList, Long updateTime, MarkTaskStatus arbitrated);
 
     void deleteByStudentId(Long studentId);
+
+	int countByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber);
+
+	int countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(Long examId, String paperNumber,
+			Integer groupNumber, Long userId, MarkTaskStatus... status);
 }

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

@@ -50,4 +50,6 @@ public interface MarkUserGroupService extends IService<MarkUserGroup> {
     void updateQualityById(Long markUserGroupId, int finishCount, int validCount, double v, double avgScore, double stdevScore);
 
     List<MarkQualityChartDto> listQualityChart(Long examId, String paperNumber, Integer groupNumber);
+    
+    List<MarkUserGroup> listByExamIdAndPaperNumberAndUserId(Long examId, String paperNumber, Long userId);
 }

+ 54 - 7
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -1,8 +1,10 @@
 package com.qmth.teachcloud.mark.service.impl;
 
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.mark.MarkArbitrateStatus;
 import com.qmth.teachcloud.common.enums.mark.MarkPaperStatus;
 import com.qmth.teachcloud.common.enums.mark.MarkProblemStatus;
+import com.qmth.teachcloud.common.enums.mark.MarkProblemType;
 import com.qmth.teachcloud.common.enums.mark.SubjectiveStatus;
 import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
 import com.qmth.teachcloud.mark.dto.mark.mark.MarkGroupDto;
@@ -10,6 +12,7 @@ import com.qmth.teachcloud.mark.dto.mark.mark.MarkSettingDto;
 import com.qmth.teachcloud.mark.dto.mark.mark.MarkStatusDto;
 import com.qmth.teachcloud.mark.dto.mark.mark.MarkTaskDto;
 import com.qmth.teachcloud.mark.entity.*;
+import com.qmth.teachcloud.mark.enums.ExamType;
 import com.qmth.teachcloud.mark.enums.LockType;
 import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
 import com.qmth.teachcloud.mark.enums.ScorePolicy;
@@ -620,21 +623,65 @@ public class MarkServiceImpl implements MarkService {
     }
 
 	@Override
-	public MarkSettingDto getSetting(Long userId, Long examId, String paperNumber, Integer groupNumber) {
-		// TODO Auto-generated method stub
-		return null;
+	public MarkSettingDto getSetting(SysUser user, Long examId, String paperNumber, Integer groupNumber) {
+		MarkUserGroup markUserGroup = markUserGroupService.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId, paperNumber, groupNumber, user.getId());
+		MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
+		
+		MarkSettingDto dto = new MarkSettingDto();
+		dto.setExamType(ExamType.SCAN_IMAGE);
+		dto.setMode(markPaper.getMarkMode());
+		dto.setSheetView(markPaper.getSheetView());
+		dto.setSheetConfig(markPaper.getSheetConfig());
+		dto.setEnableAllZore(false);
+		dto.setFileServer(null);
+		dto.setUserName(user.getRealName());
+		dto.getSubject().setAnswerUrl(markPaper.getAnswerFilePath());
+		dto.getSubject().setPaperUrl(markPaper.getPaperFilePath());
+		dto.getSubject().setCode(markPaper.getPaperNumber());
+		dto.getSubject().setName(markPaper.getCourseName());
+		dto.setForceSpecialTag(true);
+		dto.setUiSetting(user.getUiSetting());
+		dto.setStatusValue(markPaper.getStatus());
+		dto.setProblemTypes(MarkProblemType.getOptionList());
+		dto.setGroupNumber(groupNumber);
+		dto.setTopCount(markUserGroup.getTopCount());
+		dto.setSplitConfig(new Double[0]);
+		dto.setPrefetchCount(3);
+		dto.setStartTime(markPaper.getMarkStartTime());
+		dto.setEndTime(markPaper.getMarkEndTime());
+		dto.setSelective(false);
+		dto.setAutoScroll(markPaper.getAutoScroll());
+		dto.setEnableSplit(false);
+		return dto;
 	}
 
 	@Override
 	public MarkStatusDto getStatus(Long userId, Long examId, String paperNumber, Integer groupNumber) {
-		// TODO Auto-generated method stub
-		return null;
+		MarkUserGroup markUserGroup = markUserGroupService.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId, paperNumber, groupNumber, userId);
+		MarkStatusDto dto = new MarkStatusDto();
+		dto.setArbitrateCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(examId, paperNumber, groupNumber, userId,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));
+		dto.setProblemCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndUserIdAndStatusIn(examId, paperNumber, groupNumber, userId,MarkTaskStatus.PROBLEM));
+		dto.setTotalCount(markTaskService.countByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, groupNumber));
+		return dto;
 	}
 
 	@Override
 	public List<MarkGroupDto> getGroup(Long userId, Long examId, String paperNumber) {
-		// TODO Auto-generated method stub
-		return null;
+		List<MarkUserGroup> markUserGroups = markUserGroupService.listByExamIdAndPaperNumberAndUserId(examId, paperNumber, userId);
+		List<MarkGroupDto> list = new ArrayList<MarkGroupDto>();
+		for (MarkUserGroup markUserGroup : markUserGroups) {
+			MarkGroup markGroup = markGroupService.getByExamIdAndPaperNumberAndGroupNumber(examId, paperNumber, markUserGroup.getGroupNumber());
+			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.setTitle(markGroup.getTitle());
+			list.add(dto);
+		}
+		return list;
 	}
 
 	@Override

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

@@ -10,7 +10,6 @@ import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkManageDto;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkerInfoDto;
 import com.qmth.teachcloud.mark.entity.MarkGroup;
-import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
 import com.qmth.teachcloud.mark.entity.MarkTask;
 import com.qmth.teachcloud.mark.enums.MarkTaskStatus;
 import com.qmth.teachcloud.mark.mapper.MarkTaskMapper;
@@ -23,6 +22,7 @@ import org.springframework.util.CollectionUtils;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.text.DecimalFormat;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -194,4 +194,25 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
         updateWrapper.lambda().eq(MarkTask::getStudentId, studentId);
         this.remove(updateWrapper);
     }
+
+	@Override
+	public int countByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
+		QueryWrapper<MarkTask> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(MarkTask::getExamId, examId)
+                .eq(MarkTask::getPaperNumber, paperNumber)
+                .eq(MarkTask::getGroupNumber, groupNumber);
+        return this.count(queryWrapper);
+	}
+
+	@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)
+                .eq(MarkTask::getPaperNumber, paperNumber)
+                .eq(MarkTask::getGroupNumber, groupNumber)
+                .eq(MarkTask::getUserId, userId)
+                .in(MarkTask::getStatus, Arrays.asList(status));
+        return this.count(queryWrapper);
+	}
 }

+ 10 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserGroupServiceImpl.java

@@ -274,4 +274,14 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
         }
         return markQualityChartDtoList;
     }
+
+	@Override
+	public List<MarkUserGroup> listByExamIdAndPaperNumberAndUserId(Long examId, String paperNumber, Long userId) {
+		 QueryWrapper<MarkUserGroup> queryWrapper = new QueryWrapper<>();
+	     queryWrapper.lambda().eq(MarkUserGroup::getExamId, examId)
+	                .eq(MarkUserGroup::getPaperNumber, paperNumber)
+	                .eq(MarkUserGroup::getUserId, userId)
+	                .orderByAsc(MarkUserGroup::getId);
+	     return this.list(queryWrapper);
+	}
 }