xiaofei 1 éve
szülő
commit
d9c1e657e5

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamCardService.java

@@ -47,4 +47,6 @@ public interface ExamCardService extends IService<ExamCard> {
     void downloadCardJson(HttpServletResponse response, String id);
 
     boolean enable(Long id, Boolean enable);
+
+    void updateUsedByIds(Boolean used, List<Long> cardIds);
 }

+ 13 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -13,6 +13,7 @@ import com.qmth.distributed.print.business.bean.params.TeachCourseSelectParam;
 import com.qmth.distributed.print.business.bean.result.BasicExamStudentResult;
 import com.qmth.distributed.print.business.entity.BasicExamRule;
 import com.qmth.distributed.print.business.entity.ExamStudent;
+import com.qmth.distributed.print.business.entity.ExamTaskDetail;
 import com.qmth.distributed.print.business.enums.RequiredFieldsEnum;
 import com.qmth.distributed.print.business.mapper.BasicExamStudentMapper;
 import com.qmth.distributed.print.business.service.*;
@@ -80,6 +81,8 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
     private BasicExamService basicExamService;
     @Resource
     private MarkTaskService markTaskService;
+    @Resource
+    private ExamTaskDetailService examTaskDetailService;
 
     @Override
     public IPage<BasicExamStudentResult> page(Long semesterId, Long examId, Long courseId,
@@ -284,6 +287,16 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
             throw ExceptionResultEnum.ERROR.exception(String.join(";", errorMsgList));
         }
 
+        // 校验试卷编号和卷型
+        if(StringUtils.isNoneBlank(basicExamStudentParam.getPaperNumber(), basicExamStudentParam.getPaperType())){
+            ExamTaskDetail examTaskDetail = examTaskDetailService.getByExamIdAndCourseIdAndPaperNumber(basicExamStudentParam.getExamId(), basicExamStudentParam.getCourseId(), basicExamStudentParam.getPaperNumber());
+            if(examTaskDetail!= null){
+                if(!examTaskDetail.getPaperType().contains(basicExamStudentParam.getPaperType())){
+                    throw ExceptionResultEnum.ERROR.exception("试卷编号["+basicExamStudentParam.getPaperNumber()+"]的命题任务卷型为["+examTaskDetail.getPaperType()+"],只能从中取一个");
+                }
+            }
+        }
+
 
         BasicExamStudent basicExamStudent = new BasicExamStudent();
         BeanUtils.copyProperties(basicExamStudentParam, basicExamStudent);

+ 8 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java

@@ -628,4 +628,12 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     public boolean enable(Long id, Boolean enable) {
         return this.update(new UpdateWrapper<ExamCard>().lambda().eq(ExamCard::getId, id).set(ExamCard::getEnable, enable));
     }
+
+    @Override
+    public void updateUsedByIds(Boolean used, List<Long> cardIds) {
+        this.update(new UpdateWrapper<ExamCard>()
+                .lambda()
+                .set(ExamCard::getUsed, used)
+                .in(ExamCard::getId, cardIds));
+    }
 }

+ 5 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -248,17 +248,22 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         QueryWrapper<ExamTaskDetail> examTaskDetailQueryWrapper = new QueryWrapper<>();
         examTaskDetailQueryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, id);
         List<ExamTaskDetail> examTaskDetails = this.list(examTaskDetailQueryWrapper);
+        List<Long> cardIds = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(examTaskDetails)) {
             for (ExamTaskDetail e : examTaskDetails) {
                 if (Objects.nonNull(e.getPaperAttachmentIds())) {
                     List<PaperInfoVo> paperInfoVoList = ExamTaskUtil.parsePaperAttachmentPath(e.getPaperAttachmentIds());
                     for (PaperInfoVo paperInfoVo : paperInfoVoList) {
+                        cardIds.add(Long.valueOf(paperInfoVo.getCardId()));
                         paperInfoVo.setCardId(null);
                     }
                     e.setPaperAttachmentIds(JSON.toJSONString(paperInfoVoList));
                 }
             }
             this.updateBatchById(examTaskDetails);
+
+            // 更新题卡使用状态
+            examCardService.updateUsedByIds(false, cardIds);
         }
     }
 

+ 2 - 2
distributed-print/install/mysql/upgrade/3.4.0.sql

@@ -3,7 +3,7 @@ USE teachcloud_db;
 ALTER TABLE `exam_student` ADD COLUMN `basic_student_id` BIGINT(20) NULL COMMENT '考生ID(basic_exam_student表ID)' AFTER `exam_detail_course_id`;
 ALTER TABLE `mark_student`
     ADD COLUMN `basic_student_id` BIGINT(20) NULL COMMENT '考生ID(basic_exam_student表ID)' AFTER `exam_id`,
-ADD COLUMN `course_id` BIGINT(20) NULL COMMENT '课程ID(basic_course表ID)' AFTER `student_id`;
+ADD COLUMN `course_id` BIGINT(20) NULL COMMENT '课程ID(basic_course表ID)' AFTER `basic_student_id`;
 ALTER TABLE `basic_exam_student` ADD COLUMN `course_id` BIGINT(20) NULL COMMENT '课程ID(basic_course表ID)' AFTER `exam_id`;
 ALTER TABLE `exam_card` ADD COLUMN `course_id` BIGINT(20) NULL COMMENT '课程ID(basic_course表ID)' AFTER `org_id`;
 ALTER TABLE `exam_detail_course` ADD COLUMN `course_id` BIGINT(20) NULL COMMENT '课程ID(basic_course表ID)' AFTER `exam_detail_id`;
@@ -146,7 +146,7 @@ DROP COLUMN `teacher_id`,
 DROP COLUMN `class_name`,
 DROP COLUMN `major_name`,
 DROP COLUMN `college`,
-DROP COLUMN `student1_name`,
+DROP COLUMN `student_name`,
 DROP COLUMN `course_name`,
 DROP COLUMN `course_code`,
 DROP INDEX `index3` ,

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -88,8 +88,9 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
     public MenuResult getUserMenu(Long userId) {
         List<MenuPrivilegeDto> menuPrivilegeDtoList = new ArrayList<>();
         SysUser sysUser = commonCacheService.userCache(userId);
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         // 查询学校权限
-        List<TSchoolPrivilege> schoolPrivilegeList = commonCacheService.addSchoolPrivilegeCache(sysUser.getSchoolId());
+        List<TSchoolPrivilege> schoolPrivilegeList = commonCacheService.addSchoolPrivilegeCache(schoolId);
         if (CollectionUtils.isNotEmpty(schoolPrivilegeList)) {
             List<SysUserRole> sysUserRoleList = commonCacheService.userRolePrivilegeCache(userId);
             List<SysRolePrivilege> sysRolePrivilegeList = new ArrayList<>();