xiatian 1 vuosi sitten
vanhempi
commit
b97c2f3c52

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

@@ -32,6 +32,7 @@ import cn.com.qmth.am.enums.LockType;
 import cn.com.qmth.am.service.QuestionService;
 import cn.com.qmth.am.service.StudentScoreService;
 import cn.com.qmth.am.service.StudentService;
+import cn.com.qmth.am.task.AiMarkingJob;
 import io.swagger.annotations.ApiOperation;
 
 @RestController
@@ -84,10 +85,16 @@ public class AdminController {
 			return;
 		}
 		sb.append("考生试题总数:" + qtotal + "\r\n");
+		
+		int qocrsuc = studentScoreService.countOcrBy(examId, DataStatus.SUCCESS);
+		sb.append("考生试题OCR成功总数:" + qocrsuc + "\r\n");
+		int qocrfailed = studentScoreService.countOcrBy(examId, DataStatus.FAILED);
+		sb.append("考生试题OCR失败总数:" + qocrfailed + "\r\n");
+		
 		int qsuc = studentScoreService.countBy(examId, DataStatus.SUCCESS);
-		sb.append("考生试题处理成功总数:" + qsuc + "\r\n");
+		sb.append("考生试题评分成功总数:" + qsuc + "\r\n");
 		int qfailed = studentScoreService.countBy(examId, DataStatus.FAILED);
-		sb.append("考生试题处理失败总数:" + qfailed + "\r\n");
+		sb.append("考生试题评分失败总数:" + qfailed + "\r\n");
 		returnJson(sb.toString(), response);
 	}
 
@@ -117,16 +124,16 @@ public class AdminController {
 		}
 		return "上传成功";
 	}
-	
+
 	@ApiOperation(value = "重置数据")
 	@RequestMapping(value = "reset", method = RequestMethod.GET)
-	public String reset(@RequestParam Long examId,@RequestParam(required = false) String subjectCode) {
+	public String reset(@RequestParam Long examId, @RequestParam(required = false) String subjectCode) {
 		boolean lock1 = concurrentService.getReadWriteLock(LockType.AI_MARKING.name()).writeLock().tryLock();
-		if(!lock1) {
+		if (!lock1) {
 			return "重置失败,有任务正在处理,请稍后 再试";
 		}
 		boolean lock2 = concurrentService.getReadWriteLock(LockType.OCR.name()).writeLock().tryLock();
-		if(!lock2) {
+		if (!lock2) {
 			return "重置失败,有任务正在处理,请稍后 再试";
 		}
 		try {
@@ -141,16 +148,16 @@ public class AdminController {
 			}
 		}
 	}
-	
+
 	@ApiOperation(value = "删除数据")
 	@RequestMapping(value = "clear", method = RequestMethod.GET)
-	public String clear(@RequestParam Long examId,@RequestParam(required = false) String subjectCode) {
+	public String clear(@RequestParam Long examId, @RequestParam(required = false) String subjectCode) {
 		boolean lock1 = concurrentService.getReadWriteLock(LockType.AI_MARKING.name()).writeLock().tryLock();
-		if(!lock1) {
+		if (!lock1) {
 			return "删除失败,有任务正在处理,请稍后 再试";
 		}
 		boolean lock2 = concurrentService.getReadWriteLock(LockType.OCR.name()).writeLock().tryLock();
-		if(!lock2) {
+		if (!lock2) {
 			return "删除失败,有任务正在处理,请稍后 再试";
 		}
 		try {
@@ -166,6 +173,13 @@ public class AdminController {
 		}
 	}
 
+	@ApiOperation(value = "机评开关")
+	@RequestMapping(value = "marking/status", method = RequestMethod.GET)
+	public String markingStatus(@RequestParam Boolean enable) {
+		AiMarkingJob.enable = enable;
+		return "设置成功:" + enable;
+	}
+
 	private void returnJson(String body, HttpServletResponse response) {
 		response.setContentType("application/json;charset=utf-8");
 		PrintWriter writer = null;

+ 2 - 0
src/main/java/cn/com/qmth/am/service/StudentScoreService.java

@@ -38,6 +38,8 @@ 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);
 

+ 11 - 0
src/main/java/cn/com/qmth/am/service/impl/StudentScoreServiceImpl.java

@@ -656,4 +656,15 @@ public class StudentScoreServiceImpl extends ServiceImpl<StudentScoreDao, Studen
 		lw.eq(StudentScoreEntity::getExamId, examId);
 		this.remove(wrapper);
 	}
+
+	@Override
+	public int countOcrBy(Long examId, DataStatus status) {
+		QueryWrapper<StudentScoreEntity> wrapper = new QueryWrapper<>();
+		LambdaQueryWrapper<StudentScoreEntity> lw = wrapper.lambda();
+		if(status!=null) {
+			lw.eq(StudentScoreEntity::getAnswerStatus, status);
+		}
+		lw.eq(StudentScoreEntity::getExamId, examId);
+		return this.count(wrapper);
+	}
 }

+ 7 - 0
src/main/java/cn/com/qmth/am/task/AiMarkingJob.java

@@ -15,6 +15,7 @@ import cn.com.qmth.am.service.StudentScoreService;
 
 @Service
 public class AiMarkingJob {
+	public static Boolean enable=true;
 	@Autowired
 	private StudentScoreService studentScoreService;
 	@Autowired
@@ -22,6 +23,9 @@ public class AiMarkingJob {
 
 	@Scheduled(fixedDelay = 5 * 1000, initialDelay = 20 * 1000)
 	public void doJob() {
+		if(!enable) {
+			return;
+		}
 		List<StudentScoreEntity> scores = studentScoreService.findAllToAiMarking();
 		if (CollectionUtils.isEmpty(scores)) {
 			return;
@@ -41,6 +45,9 @@ public class AiMarkingJob {
 
 	private void dispose(List<StudentScoreEntity> scores) {
 		for (StudentScoreEntity score : scores) {
+			if(!enable) {
+				return;
+			}
 			studentScoreService.aiMarking(score);
 		}
 	}