xiaofei 9 сар өмнө
parent
commit
58dec0c200

+ 5 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -302,8 +302,11 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
 
         // 试卷编号绑定其它课程
         if (StringUtils.isNotBlank(basicExamStudent.getPaperNumber())) {
-            if (StringUtils.isBlank(basicExamStudent.getExamPlace())) {
-                throw ExceptionResultEnum.ERROR.exception("校区(考点)必填");
+            BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId(schoolId);
+            Optional<EnumResult> optional = basicExamRule.getRequiredFieldList().stream().filter(m -> RequiredFieldsEnum.EXAM_PLACE.name().equals(m.getCode()) && m.getEnable()).findFirst();
+            // 试卷编号不为空时,校区(考点)必填
+            if (optional.isPresent() && optional.get().getEnable() && StringUtils.isBlank(basicExamStudent.getExamPlace())) {
+                throw ExceptionResultEnum.ERROR.exception(RequiredFieldsEnum.EXAM_PLACE.getName() + "必填");
             }
             if (this.count(new QueryWrapper<BasicExamStudent>().lambda()
                     .eq(BasicExamStudent::getExamId, basicExamStudent.getExamId()).eq(BasicExamStudent::getPaperNumber, basicExamStudent.getPaperNumber())

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

@@ -121,7 +121,7 @@ public class MarkGroupServiceImpl extends MppServiceImpl<MarkGroupMapper, MarkGr
     @Transactional
     @Override
     public void deleteGroupByExamIdAndPaperNumberAndGroupNumber(Long examId, String paperNumber, Integer groupNumber) {
-        List<MarkTaskStatus> markTaskStatuses = Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM, MarkTaskStatus.REJECTED, MarkTaskStatus.ARBITRATED);
+        List<MarkTaskStatus> markTaskStatuses = Arrays.asList(MarkTaskStatus.MARKED, MarkTaskStatus.WAIT_ARBITRATE, MarkTaskStatus.PROBLEM, MarkTaskStatus.ARBITRATED);
         if (markTaskService.countByExamIdAndPaperNumberAndGroupNumberAndStatusIn(examId, paperNumber, groupNumber, markTaskStatuses) > 0) {
             throw ExceptionResultEnum.ERROR.exception("该分组已开始评卷,不允许删除");
         }

+ 3 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -1071,6 +1071,9 @@ public class MarkServiceImpl implements MarkService {
         }
         MarkUserGroup markUserGroup = markUserGroupService.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId,
                 paperNumber, groupNumber, userId);
+        if(markUserGroup == null){
+            throw ExceptionResultEnum.ERROR.exception("评卷任务被重置,请点击右上角返回按钮,重新在评卷入口菜单点击评卷");
+        }
         Task task = null;
         List<MarkTask> list;
         int pageNumber = 1;

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

@@ -82,9 +82,9 @@
 		select
 			count(1)
 		from mark_student s
-		INNER JOIN sys_user su on s.create_id = su.id
+		LEFT JOIN basic_course bc on s.course_id = bc.id
 			<if test="dpr != null and dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-				AND su.org_id IN
+				AND bc.teaching_room_id IN
 				<foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
 					#{item}
 				</foreach>