xiatian 11 月之前
父節點
當前提交
a79f622a7d

+ 2 - 2
src/main/java/cn/com/qmth/am/controller/AdminController.java

@@ -55,7 +55,7 @@ public class AdminController {
 	@ApiOperation(value = "分析数据")
 	@RequestMapping(value = "fenxi", method = RequestMethod.GET)
 	public void fenxi(HttpServletResponse response, @RequestParam Long examId,
-			@RequestParam(required = false) Boolean exZero) {
+			@RequestParam(required = false) Boolean exZero,@RequestParam(required = false) Integer count) {
 		StringBuilder sb = new StringBuilder();
 		List<QuestionEntity> qs = questionService.findByExamId(examId);
 		if (CollectionUtils.isEmpty(qs)) {
@@ -66,7 +66,7 @@ public class AdminController {
 		sb.append("试题数:" + qs.size() + "\r\n");
 		for (QuestionEntity q : qs) {
 			List<StudentScoreEntity> scores = studentScoreService.findBy(examId, q.getSubjectCode(), q.getMainNumber(),
-					q.getSubNumber(), exZero);
+					q.getSubNumber(), exZero,count);
 			if (CollectionUtils.isEmpty(scores)) {
 				sb.append(q.getSubjectCode() + "|" + q.getMainNumber() + "|" + q.getSubNumber() + "| 相关系数:- \r\n");
 			} else {

+ 7 - 6
src/main/java/cn/com/qmth/am/service/StudentScoreService.java

@@ -15,17 +15,17 @@ import cn.com.qmth.am.enums.DataStatus;
 /**
  * 类注释
  */
-public interface StudentScoreService  extends IService<StudentScoreEntity> {
+public interface StudentScoreService extends IService<StudentScoreEntity> {
 
 	void importScore();
 
 	List<StudentScoreEntity> getByStudentId(Long id);
 
-	List<StudentScoreEntity> add(StudentEntity student, Map<Long,QuestionEntity> quetions);
+	List<StudentScoreEntity> add(StudentEntity student, Map<Long, QuestionEntity> quetions);
 
-	void updateAnswerErr(Long id,String string);
+	void updateAnswerErr(Long id, String string);
 
-	void createSlice(StudentScoreEntity score, QuestionEntity q,Map<Integer,AnswerImageDto> answerImages);
+	void createSlice(StudentScoreEntity score, QuestionEntity q, Map<Integer, AnswerImageDto> answerImages);
 
 	StudentScoreImageDto pollStudentScoreImage();
 
@@ -38,11 +38,12 @@ public interface StudentScoreService  extends IService<StudentScoreEntity> {
 	List<StudentScoreEntity> findAllToAiMarking();
 
 	int countBy(Long examId, DataStatus success);
-	
+
 	int countOcrBy(Long examId, DataStatus success);
 
 	void removeBy(Long examId, String subjectCode);
 
-	List<StudentScoreEntity> findBy(Long examId, String subjectCode, Integer mainNumber, String subNumber,Boolean exZero);
+	List<StudentScoreEntity> findBy(Long examId, String subjectCode, Integer mainNumber, String subNumber,
+			Boolean exZero, Integer count);
 
 }

+ 21 - 2
src/main/java/cn/com/qmth/am/service/impl/StudentScoreServiceImpl.java

@@ -8,6 +8,7 @@ import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ArrayBlockingQueue;
@@ -741,7 +742,7 @@ public class StudentScoreServiceImpl extends ServiceImpl<StudentScoreDao, Studen
 
 	@Override
 	public List<StudentScoreEntity> findBy(Long examId, String subjectCode, Integer mainNumber, String subNumber,
-			Boolean exZero) {
+			Boolean exZero,Integer count) {
 		QueryWrapper<StudentScoreEntity> wrapper = new QueryWrapper<>();
 		LambdaQueryWrapper<StudentScoreEntity> lw = wrapper.lambda();
 		lw.eq(StudentScoreEntity::getExamId, examId);
@@ -754,6 +755,24 @@ public class StudentScoreServiceImpl extends ServiceImpl<StudentScoreDao, Studen
 	            wq.or(wq2 -> wq2.eq(StudentScoreEntity::getMarkingScore, 0));
 	        });
 		}
-		return this.list(wrapper);
+		List<StudentScoreEntity> ret=this.list(wrapper);
+		if(CollectionUtils.isEmpty(ret)) {
+			return ret;
+		}
+		if(count!=null) {
+			ret.sort(new Comparator<StudentScoreEntity>() {
+				@Override
+				public int compare(StudentScoreEntity o1, StudentScoreEntity o2) {
+					String c1 = o1.getStudentCode();
+					String c2 = o2.getStudentCode();
+					return c1.compareTo(c2);
+				}
+			});
+			if(ret.size()<=count) {
+				return ret;
+			}
+			return ret.subList(0, count);
+		}
+		return ret;
 	}
 }