xiaofei 1 éve
szülő
commit
c13f7aaab9
17 módosított fájl, 82 hozzáadás és 77 törlés
  1. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicTeachClazzMapper.java
  2. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicExamStudentService.java
  3. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicTeachClazzService.java
  4. 38 26
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java
  5. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTeachClazzServiceImpl.java
  6. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachClazzServiceImpl.java
  7. 16 27
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  8. 3 0
      distributed-print/install/mysql/upgrade/3.3.1.sql
  9. 0 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamStudentController.java
  10. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  11. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  12. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicTeachClazz.java
  13. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/ExamModelEnum.java
  14. 3 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkStudentMapper.java
  15. 2 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java
  16. 4 13
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java
  17. 4 0
      teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/BasicTeachClazzMapper.java

@@ -1,7 +1,7 @@
 package com.qmth.distributed.print.business.mapper;
 
 import com.qmth.distributed.print.business.bean.result.BasicTeachClazzResult;
-import com.qmth.distributed.print.business.entity.BasicTeachClazz;
+import com.qmth.teachcloud.common.entity.BasicTeachClazz;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicExamStudentService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.params.BasicExamStudentParam;
 import com.qmth.distributed.print.business.bean.result.BasicExamStudentResult;
+import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.BasicExamStudent;
 import com.qmth.teachcloud.common.entity.SysUser;
 
@@ -104,6 +105,6 @@ public interface BasicExamStudentService extends IService<BasicExamStudent> {
      * @param requestUser           请求人
      * @return 考生字典
      */
-    BasicExamStudent editEntityHelp(BasicExamStudentParam basicExamStudentParam, SysUser requestUser);
+    BasicExamStudent editEntityHelp(BasicExamStudentParam basicExamStudentParam, BasicExam basicExam, SysUser requestUser);
 
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicTeachClazzService.java

@@ -1,7 +1,7 @@
 package com.qmth.distributed.print.business.service;
 
 import com.qmth.distributed.print.business.bean.result.BasicTeachClazzResult;
-import com.qmth.distributed.print.business.entity.BasicTeachClazz;
+import com.qmth.teachcloud.common.entity.BasicTeachClazz;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.entity.SysUser;
 

+ 38 - 26
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -7,16 +7,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.dto.BasicExamStudentDto;
 import com.qmth.distributed.print.business.bean.params.BasicExamStudentParam;
 import com.qmth.distributed.print.business.bean.result.BasicExamStudentResult;
-import com.qmth.distributed.print.business.entity.BasicTeachClazz;
 import com.qmth.distributed.print.business.mapper.BasicExamStudentMapper;
+import com.qmth.distributed.print.business.service.BasicExamService;
 import com.qmth.distributed.print.business.service.BasicExamStudentService;
 import com.qmth.distributed.print.business.service.BasicTeachClazzService;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.BasicCourse;
-import com.qmth.teachcloud.common.entity.BasicExamStudent;
-import com.qmth.teachcloud.common.entity.BasicSchool;
-import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.entity.*;
+import com.qmth.teachcloud.common.enums.ExamModelEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
@@ -25,7 +23,9 @@ import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.ConvertUtil;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.entity.MarkStudent;
+import com.qmth.teachcloud.mark.service.MarkPaperService;
 import com.qmth.teachcloud.mark.service.MarkStudentService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -61,7 +61,11 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
     @Resource
     private CommonCacheService commonCacheService;
     @Resource
+    private MarkPaperService markPaperService;
+    @Resource
     private MarkStudentService markStudentService;
+    @Resource
+    private BasicExamService basicExamService;
 
     @Override
     public IPage<BasicExamStudentResult> page(SysUser requestUser, Long semesterId, Long examId, String courseCode,
@@ -127,11 +131,19 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
     @Transactional
     @Override
     public Long save(BasicExamStudentParam basicExamStudentParam, SysUser requestUser) {
-        BasicExamStudent basicExamStudent = this.editEntityHelp(basicExamStudentParam, requestUser);
+        BasicExam basicExam = basicExamService.getById(basicExamStudentParam.getExamId());
+        BasicExamStudent basicExamStudent = this.editEntityHelp(basicExamStudentParam, basicExam, requestUser);
         this.saveOrUpdate(basicExamStudent);
         if (StringUtils.isNotBlank(basicExamStudent.getPaperNumber())) {
+            MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber());
+            if (markPaper == null) {
+                BasicCourse basicCourse = basicCourseService.getByCode(basicExamStudent.getCourseCode());
+                markPaper = new MarkPaper(basicExamStudent.getExamId(), basicExamStudent.getCourseCode(), basicCourse.getName(), basicExamStudent.getPaperNumber(), String.valueOf(System.currentTimeMillis()), requestUser.getId(), SystemConstant.DEFAULT_PAPER_TYPE_A);
+                markPaperService.save(markPaper);
+            }
             // 同步更新扫描阅卷考生表
-            markStudentService.updateByBasicExamStudent(basicExamStudent, new HashSet<>());
+            markStudentService.updateByBasicExamStudent(basicExamStudent, markPaper, new HashSet<>());
+            markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), SystemConstant.DEFAULT_PAPER_TYPE_A);
         }
         return basicExamStudent.getId();
     }
@@ -165,7 +177,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
             List<BasicExamStudent> basicExamStudentList = this.listByIds(idList);
             for (BasicExamStudent basicExamStudent : basicExamStudentList) {
                 MarkStudent markStudent = markStudentService.findByExamIdAndPaperNumberAndStudentCode(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), basicExamStudent.getStudentCode());
-                if(markStudent!= null && !markStudent.getUpload()){
+                if (markStudent != null && !markStudent.getUpload()) {
                     markStudentService.deleteByExamIdAndPaperNumberAndStudentCode(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), basicExamStudent.getStudentCode());
                 }
             }
@@ -182,7 +194,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
      * @return 考生对象
      */
     @Override
-    public BasicExamStudent editEntityHelp(BasicExamStudentParam basicExamStudentParam, SysUser requestUser) {
+    public BasicExamStudent editEntityHelp(BasicExamStudentParam basicExamStudentParam, BasicExam basicExam, SysUser requestUser) {
         List<String> errorMsgList = new ArrayList<>();
         Long schoolId = requestUser.getSchoolId();
         Long requestUserId = requestUser.getId();
@@ -206,35 +218,35 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
 
         // 校验1 学期、考试、课程为下拉框,姓名、学号、教学班为文本框,均必填;
         if (!SystemConstant.longNotNull(semesterId)) {
-            errorMsgList.add("缺少学期id");
+            errorMsgList.add("请选择学期");
         }
         if (!SystemConstant.longNotNull(examId)) {
-            errorMsgList.add("缺少考试id");
+            errorMsgList.add("请选择考试");
         }
         if (!SystemConstant.strNotNull(courseCode)) {
-            errorMsgList.add("缺少课程编号");
+            errorMsgList.add("请选择课程");
         }
         BasicCourse basicCourse = basicCourseService.findByCourseCode(courseCode, schoolId);
         if (Objects.isNull(basicCourse)) {
-            errorMsgList.add(String.format("缺少课程编号为[%s]", courseCode));
+            errorMsgList.add(String.format("课程代码[%s]在课程管理中不存在", courseCode));
         }
 
         if (!SystemConstant.strNotNull(studentName)) {
-            errorMsgList.add("缺少学生姓名");
+            errorMsgList.add("姓名必填");
         }
         if (!SystemConstant.strNotNull(studentCode)) {
-            errorMsgList.add("缺少学号");
+            errorMsgList.add("学号必填");
         }
         if (!SystemConstant.strNotNull(teachClazz)) {
-            errorMsgList.add("缺少教学班名称");
+            errorMsgList.add("教学班必填");
         }
 
         Long teacherId = null;
         if (SystemConstant.strNotNull(teacherCode) && !SystemConstant.strNotNull(teacherName)) {
-            errorMsgList.add("存在任课老师工号,但缺少任课老师姓名");
+            errorMsgList.add("任课老师必填");
         }
         if (SystemConstant.strNotNull(teacherName) && !SystemConstant.strNotNull(teacherCode)) {
-            errorMsgList.add("存在任课老师姓名,但缺少任课老师工号");
+            errorMsgList.add("任课老师工号必填");
         }
         if (SystemConstant.strNotNull(teacherName) && SystemConstant.strNotNull(teacherCode)) {
             // 存在教师信息,根据工号查询,不存在报错(缺少机构信息没法直接创建教师)
@@ -243,7 +255,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
                             .eq(SysUser::getCode, teacherCode).eq(SysUser::getRealName, teacherName)
                             .last(SystemConstant.LIMIT1));
             if (Objects.isNull(teacher)) {
-                errorMsgList.add(String.format("工号为[%s],姓名为[%s]的老师不存在,请先创建", teacherCode, teacherName));
+                errorMsgList.add(String.format("任课老师工号[%s],任课老师[%s]在用户管理中不存在", teacherCode, teacherName));
             } else {
                 teacherId = teacher.getId();
             }
@@ -253,21 +265,21 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
         BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
         boolean needPaperNumber = basicSchool.getHasPaperNumber();
         if (SystemConstant.strNotNull(paperNumber)) {
-            String hasPaperNumberError = "存在试卷编号时: ";
+            String hasPaperNumberError = "试卷编号不为空时: ";
             if (!SystemConstant.strNotNull(teacherCode) || !SystemConstant.strNotNull(teacherName)) {
-                errorMsgList.add(hasPaperNumberError + "缺少任课教师信息");
+                errorMsgList.add(hasPaperNumberError + "任课老师、任课老师工号必填");
             }
             if (!SystemConstant.longNotNull(examStartTime) || !SystemConstant.longNotNull(examEndTime)) {
-                errorMsgList.add(hasPaperNumberError + "缺少考试时间");
+                errorMsgList.add(hasPaperNumberError + "考试时间必填");
             }
             if (!SystemConstant.strNotNull(examPlace)) {
-                errorMsgList.add(hasPaperNumberError + "缺少考点信息");
+                errorMsgList.add(hasPaperNumberError + "考点(校区)必填");
             }
             if (!SystemConstant.strNotNull(examRoom)) {
-                errorMsgList.add(hasPaperNumberError + "缺少考场信息");
+                errorMsgList.add(hasPaperNumberError + "考场(考试教室)必填");
             }
-        } else if (needPaperNumber) {
-            errorMsgList.add("缺少试卷编号");
+        } else if (needPaperNumber || ExamModelEnum.MODEL4.equals(basicExam.getExamModel())) {
+            errorMsgList.add("试卷编号必填");
         }
 
         if (CollectionUtils.isNotEmpty(errorMsgList)) {

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTeachClazzServiceImpl.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.result.BasicTeachClazzResult;
 import com.qmth.teachcloud.common.entity.BasicExamStudent;
-import com.qmth.distributed.print.business.entity.BasicTeachClazz;
+import com.qmth.teachcloud.common.entity.BasicTeachClazz;
 import com.qmth.distributed.print.business.mapper.BasicTeachClazzMapper;
 import com.qmth.distributed.print.business.service.BasicExamStudentService;
 import com.qmth.distributed.print.business.service.BasicTeachClazzService;

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

@@ -7,12 +7,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.params.TeachClazzParams;
 import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.TeachClazzResult;
-import com.qmth.distributed.print.business.entity.BasicTeachClazz;
+import com.qmth.distributed.print.business.service.BasicTeachClazzService;
+import com.qmth.teachcloud.common.entity.BasicTeachClazz;
 import com.qmth.distributed.print.business.entity.TeachClazz;
 import com.qmth.distributed.print.business.entity.TeachCourse;
 import com.qmth.distributed.print.business.entity.TeachStudent;
 import com.qmth.distributed.print.business.mapper.TeachClazzMapper;
-import com.qmth.distributed.print.business.service.BasicTeachClazzService;
 import com.qmth.distributed.print.business.service.TeachClazzService;
 import com.qmth.distributed.print.business.service.TeachCourseService;
 import com.qmth.distributed.print.business.service.TeachStudentService;

+ 16 - 27
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -2144,7 +2144,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             basicExamStudentParam.setExamPlace(examPlace);
             basicExamStudentParam.setExamRoom(examRoom);
             try {
-                BasicExamStudent basicExamStudent = basicExamStudentService.editEntityHelp(basicExamStudentParam,
+                BasicExamStudent basicExamStudent = basicExamStudentService.editEntityHelp(basicExamStudentParam,basicExam,
                         requestUser);
                 // 考试课程下学号重复 后面的替换前面的
                 studentCodeObjMap.put(key, basicExamStudent);
@@ -2293,33 +2293,22 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     public void saveMarkStudent(Long examId, List<BasicExamStudent> basicExamStudentList) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         Long requestUserId = requestUser.getId();
-        final String paperType = "A";
-
-        markPaperService.remove(new QueryWrapper<MarkPaper>().lambda().eq(MarkPaper::getExamId, examId));
-        markStudentService.remove(new QueryWrapper<MarkStudent>().lambda().eq(MarkStudent::getExamId, examId));
-
-        List<Map<String, String>> paperInfo = basicExamStudentList.stream().flatMap(e -> {
-            Map<String, String> map = new HashMap<>();
-            map.put("courseCode", e.getCourseCode());
-            map.put("paperNumber", e.getPaperNumber());
-            return Stream.of(map);
-        }).distinct().collect(Collectors.toList());
-
-        // 新增mark_paper信息
-        for (Map<String, String> paperMap : paperInfo) {
-            String courseCode = paperMap.get("courseCode");
-            String courseName = paperMap.get("courseName");
-            String paperNumber = paperMap.get("paperNumber");
-
-            MarkPaper markPaper = new MarkPaper(examId, courseCode, courseName, paperNumber, null, requestUserId, paperType);
-            markPaperService.save(markPaper);
-        }
-        // 新增mark_student信息
-        Set<String> secretNumberSet = new HashSet<>();
-        basicExamStudentList.stream().forEach(m -> markStudentService.updateByBasicExamStudent(m, secretNumberSet));
 
-        // 更新mark_paper表student_count字段
-        paperInfo.stream().map(e -> e.get("paperNumber")).forEach(e -> markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(examId, e, paperType));
+        Map<String, List<BasicExamStudent>> stringMap = basicExamStudentList.stream().collect(Collectors.groupingBy(BasicExamStudent::getPaperNumber));
+
+        for (Map.Entry<String, List<BasicExamStudent>> entry : stringMap.entrySet()) {
+            BasicExamStudent basicExamStudent = entry.getValue().get(0);
+            MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, entry.getKey());
+            if(markPaper == null){
+                BasicCourse basicCourse = basicCourseService.getByCode(basicExamStudent.getCourseCode());
+                markPaper = new MarkPaper(examId, basicExamStudent.getCourseCode(), basicCourse.getName(), entry.getKey(), String.valueOf(System.currentTimeMillis()), requestUserId, SystemConstant.DEFAULT_PAPER_TYPE_A);
+                markPaperService.save(markPaper);
+            }
+            Set<String> secretNumberSet = new HashSet<>();
+            MarkPaper finalMarkPaper = markPaper;
+            entry.getValue().forEach(m-> markStudentService.updateByBasicExamStudent(m, finalMarkPaper, secretNumberSet));
+            markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(examId, entry.getKey(), SystemConstant.DEFAULT_PAPER_TYPE_A);
+        }
     }
 
     /**

+ 3 - 0
distributed-print/install/mysql/upgrade/3.3.1.sql

@@ -681,3 +681,6 @@ ALTER TABLE `basic_school` ADD COLUMN `has_paper_number` TINYINT(1) NULL DEFAULT
 
 -- 2024/03/25
 UPDATE `sys_privilege` SET `enable` = '0', `front_display` = '0' WHERE (`id` = '1131');
+
+-- 2024/03、26
+ALTER TABLE `mark_subjective_score` CHANGE COLUMN `sub_number` `sub_number` INT(11) NOT NULL COMMENT '小题号' ;

+ 0 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamStudentController.java

@@ -1,7 +1,6 @@
 package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.distributed.print.business.bean.dto.BasicExamStudentDto;
 import com.qmth.distributed.print.business.bean.params.BasicExamStudentParam;
 import com.qmth.distributed.print.business.bean.result.BasicExamStudentResult;
 import com.qmth.distributed.print.business.service.BasicExamStudentService;

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -8,7 +8,7 @@ import com.qmth.distributed.print.business.bean.params.LoginParam;
 import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.teachcloud.common.entity.BasicExamStudent;
-import com.qmth.distributed.print.business.entity.BasicTeachClazz;
+import com.qmth.teachcloud.common.entity.BasicTeachClazz;
 import com.qmth.distributed.print.business.entity.TBSyncTask;
 import com.qmth.distributed.print.business.enums.DictionaryEnum;
 import com.qmth.distributed.print.business.enums.LoginTypeEnum;

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -43,6 +43,8 @@ import java.util.stream.Collectors;
 public class SystemConstant {
     private final static Logger log = LoggerFactory.getLogger(SystemConstant.class);
 
+    public static final String DEFAULT_PAPER_TYPE_A = "A";
+
     /**
      * mq中台
      */

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/BasicTeachClazz.java → teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/BasicTeachClazz.java

@@ -1,4 +1,4 @@
-package com.qmth.distributed.print.business.entity;
+package com.qmth.teachcloud.common.entity;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/ExamModelEnum.java

@@ -10,7 +10,7 @@ public enum ExamModelEnum {
     MODEL1("电子交卷环节需要提交考务数据"),
     MODEL2("电子交卷环节不需要提交考务数据,只输入印刷份数即可"),
     MODEL3("电子交卷环节不需要提交考务数据"),
-    MODEL4("跳过电子交卷环节,直接使用阅卷");
+    MODEL4("跳过电子交卷环节,直接进入阅卷");
 
     private String desc;
 

+ 3 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkStudentMapper.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.mark.mapper;
 
 import java.util.List;
 
+import com.qmth.teachcloud.common.entity.BasicTeachClazz;
 import org.apache.ibatis.annotations.Param;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -71,4 +72,6 @@ public interface MarkStudentMapper extends BaseMapper<MarkStudent> {
 	int countAssigned(@Param("markStudent") MarkStudent markStudent, @Param("dpr") DataPermissionRule dpr);
 
 	List<MarkStudent> listScanCollegeByExamIdAndCourseCodeAndCoursePaperId(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("coursePaperId") String coursePaperId, @Param("status") String status, @Param("dpr") DataPermissionRule dpr);
+
+    BasicTeachClazz getBasicTeachClazzById(Long clazzId);
 }

+ 2 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java

@@ -33,6 +33,7 @@ import com.qmth.teachcloud.mark.dto.mark.manage.Task;
 import com.qmth.teachcloud.mark.dto.mark.score.SheetUrlDto;
 import com.qmth.teachcloud.mark.dto.mark.score.StudentObjectiveDetailDto;
 import com.qmth.teachcloud.mark.dto.mark.score.StudentScoreDetailDto;
+import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.entity.MarkStudent;
 import com.qmth.teachcloud.mark.entity.ScanStudentPaper;
 import com.qmth.teachcloud.mark.params.MarkHeaderResult;
@@ -159,7 +160,7 @@ public interface MarkStudentService extends IService<MarkStudent> {
 
     void sheetExport(Long examId, String paperNumber, HttpServletResponse response);
 
-    void updateByBasicExamStudent(BasicExamStudent basicExamStudent, Set<String> secretNumberSet);
+    void updateByBasicExamStudent(BasicExamStudent basicExamStudent, MarkPaper markPaper, Set<String> secretNumberSet);
 
     void deleteByExamIdAndPaperNumberAndStudentCode(Long examId, String paperNumber, String studentCode);
 }

+ 4 - 13
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -95,8 +95,6 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
 
     @Resource
     private BasicCourseService basicCourseService;
-    @Resource
-    private BasicClazzService basicClazzService;
     @Autowired
     private MarkPaperService markPaperService;
     @Resource
@@ -1521,19 +1519,12 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     }
 
     @Override
-    public void updateByBasicExamStudent(BasicExamStudent basicExamStudent, Set<String> secretNumberSet) {
+    public void updateByBasicExamStudent(BasicExamStudent basicExamStudent, MarkPaper markPaper, Set<String> secretNumberSet) {
         MarkStudent markStudent = this.findByExamIdAndPaperNumberAndStudentCode(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), basicExamStudent.getStudentCode());
         BasicCourse basicCourse = basicCourseService.getByCode(basicExamStudent.getCourseCode());
-        BasicClazz basicClazz = basicClazzService.getById(basicExamStudent.getClazzId());
+        BasicTeachClazz basicTeachClazz = this.baseMapper.getBasicTeachClazzById(basicExamStudent.getClazzId());
         if (markStudent == null) {
-            String coursePaperId = null;
-            MarkStudent markStudentPaperNumberLimit1 = this.findByExamIdAndPaperNumberAndStudentCode(basicExamStudent.getExamId(), basicExamStudent.getPaperNumber(), null);
-            if (markStudentPaperNumberLimit1 == null) {
-                coursePaperId = String.valueOf(System.currentTimeMillis());
-            } else {
-                coursePaperId = markStudentPaperNumberLimit1.getCoursePaperId();
-            }
-            markStudent = new MarkStudent(basicExamStudent.getId(), basicExamStudent.getExamId(), basicExamStudent.getCourseCode(), basicCourse.getName(), basicExamStudent.getPaperNumber(), coursePaperId, "A", basicExamStudent.getStudentCode(), basicExamStudent.getStudentName(), "", basicExamStudent.getExamPlace(), basicExamStudent.getExamRoom(), basicExamStudent.getCollege(), basicExamStudent.getMajor(), basicClazz.getClazzName(), basicExamStudent.getExamStartTime(), basicExamStudent.getExamEndTime(), basicExamStudent.getCreateId());
+            markStudent = new MarkStudent(basicExamStudent.getId(), basicExamStudent.getExamId(), basicExamStudent.getCourseCode(), basicCourse.getName(), basicExamStudent.getPaperNumber(), markPaper.getCoursePaperId(), "A", basicExamStudent.getStudentCode(), basicExamStudent.getStudentName(), "", basicExamStudent.getExamPlace(), basicExamStudent.getExamRoom(), basicExamStudent.getCollege(), basicExamStudent.getMajor(), basicTeachClazz.getClazzName(), basicExamStudent.getExamStartTime(), basicExamStudent.getExamEndTime(), basicExamStudent.getCreateId());
             if (markStudent.getSecretNumber() == null) {
                 markStudent.randomSecretNumber();
                 while (secretNumberSet.contains(markStudent.getSecretNumber())
@@ -1545,7 +1536,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
             markStudent.setStudentName(basicExamStudent.getStudentName());
             markStudent.setCollege(basicExamStudent.getCollege());
             markStudent.setMajorName(basicExamStudent.getMajor());
-            markStudent.setClassName(basicClazz.getClazzName());
+            markStudent.setClassName(basicTeachClazz.getClazzName());
             markStudent.setExamPlace(basicExamStudent.getExamPlace());
             markStudent.setExamRoom(basicExamStudent.getExamRoom());
         }

+ 4 - 0
teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

@@ -619,5 +619,9 @@
             </if>
         </where>
     </select>
+    <select id="getBasicTeachClazzById" resultType="com.qmth.teachcloud.common.entity.BasicTeachClazz"
+            parameterType="java.lang.Long">
+        select * from basic_teach_clazz where id = #{clazzId}
+    </select>
 
 </mapper>