Browse Source

3.3.0 fix

xiaofei 1 year ago
parent
commit
20b02a0086

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -688,6 +688,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             map.put("courseCode", e.getCourseCode());
             map.put("courseName", e.getCourseName());
             map.put("paperNumber", e.getPaperNumber());
+            map.put("sequence", e.getSequence());
             return Stream.of(map);
         }).distinct().collect(Collectors.toList());
 
@@ -697,6 +698,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             String courseCode = String.valueOf(map.get("courseCode"));
             String courseName = String.valueOf(map.get("courseName"));
             String paperNumber = String.valueOf(map.get("paperNumber"));
+            String sequence = String.valueOf(map.get("sequence"));
 
             // 获取该科目下的考生人数
             List<ExaminationImportDto> examDetailCourseStudentList = examDetailStudentList.stream().filter(e -> e.getCourseCode().equals(courseCode) &&
@@ -709,6 +711,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             examDetailCourse.setCourseCode(courseCode);
             examDetailCourse.setCourseName(courseName);
             examDetailCourse.setPaperNumber(paperNumber);
+            examDetailCourse.setCoursePaperId(courseCode.concat(sequence));
             examDetailCourse.setTotalSubjects(examDetailCourseStudentList.size());
             examDetailCourse.setCreateId(sysUser.getId());
             String clazzName = examDetailCourseStudentList.stream().filter(m -> StringUtils.isNotBlank(m.getClazzName())).map(ExaminationImportDto::getClazzName).collect(Collectors.joining(","));

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

@@ -760,6 +760,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         Map<String, String> paperNumberWithCourseCodeInExcelMap = new HashMap<>();
         // 试卷编号在考试下有多个命题任务map
         Map<String, Integer> paperNumberWithExamTaskMap = new HashMap<>();
+        Map<String, String> paperNumberCoureseSequenceMap = new HashMap<>();
         // 命题任务中试卷编号对应的课程代码map
         Map<String, String> paperNumberWithCourseCodeInExamTaskMap = new HashMap<>();
 
@@ -771,6 +772,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         for (ExamTask examTask : examTaskList) {
             String paperNumber = examTask.getPaperNumber();
             String courseCode = examTask.getCourseCode();
+            String sequence = examTask.getSequence();
             paperNumberWithCourseCodeInExamTaskMap.put(paperNumber, courseCode);
             if (paperNumberWithExamTaskMap.containsKey(paperNumber)) {
                 int count = paperNumberWithExamTaskMap.get(paperNumber);
@@ -778,6 +780,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             } else {
                 paperNumberWithExamTaskMap.put(paperNumber, 1);
             }
+
+            paperNumberCoureseSequenceMap.put(paperNumber, courseCode.concat(sequence));
         }
 
         // 从第三行开始为数据(第一行说明,第二行表头,第三行往后为数据)
@@ -867,7 +871,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             String courseCode = examinationImportDto.getCourseCode();
             String courseName = examinationImportDto.getCourseName();
             String paperNumber = examinationImportDto.getPaperNumber();
-            String ticketNumber = examinationImportDto.getTicketNumber();
+//            String ticketNumber = examinationImportDto.getTicketNumber();
 
 
             if (!SystemConstant.isOneNull(courseCode, courseName)) {
@@ -888,14 +892,14 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     errorRowDate.add(String.format("文件中课程代码[%s]对应课程名称为[%s],课程管理中对应课程名称为[%s]", courseCode, courseName, basicName));
                 }
             }
-            if (!SystemConstant.isOneNull(ticketNumber)) {
-                // 检验3 - 文件中考号有重复数据
-                if (ticketNumberMap.containsKey(ticketNumber)) {
-                    errorRowDate.add("文件中考号[" + ticketNumber + "]有重复数据");
-                } else {
-                    ticketNumberMap.put(ticketNumber, 1);
-                }
-            }
+//            if (!SystemConstant.isOneNull(ticketNumber)) {
+//                // 检验3 - 文件中考号有重复数据
+//                if (ticketNumberMap.containsKey(ticketNumber)) {
+//                    errorRowDate.add("文件中考号[" + ticketNumber + "]有重复数据");
+//                } else {
+//                    ticketNumberMap.put(ticketNumber, 1);
+//                }
+//            }
             if (!SystemConstant.isOneNull(paperNumber, courseCode)) {
                 // 检验4 - 文件中试卷编号[%s]对应多个不同的课程代码[%s]
                 if (paperNumberWithCourseCodeInExcelMap.containsKey(paperNumber)) {
@@ -925,6 +929,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     }
                 }
             }
+            examinationImportDto.setSequence(paperNumber);
             examinationImportDto.setErrorMessage(errorRowDate.toString());
             examinationImportDtoList.add(examinationImportDto);
         }

+ 3 - 1
distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml

@@ -699,7 +699,7 @@
             edc.paper_number paperNumber,
             edc.course_paper_id coursePaperId,
             edcpt.paper_type paperType,
-            ed.create_id createId,
+            et.user_id createId,
             ed.exam_start_time examStartTime,
             ed.exam_end_time examEndTime,
             group_concat(ed.package_code) packageCodes,
@@ -709,6 +709,8 @@
                 LEFT JOIN
             exam_detail_course edc ON ed.id = edc.exam_detail_id
                 LEFT JOIN
+            exam_task et ON ed.exam_id = et.exam_id AND edc.paper_number = et.paper_number
+                LEFT JOIN
             exam_detail_course_paper_type edcpt ON edc.id = edcpt.exam_detail_course_id
         WHERE
             ed.status = #{printStatus}

+ 2 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkUserGroupController.java

@@ -107,8 +107,8 @@ public class MarkUserGroupController {
     @ApiOperation(value = "设置评卷任务")
     @RequestMapping(value = "/setTaskCount", method = RequestMethod.POST)
     public Result setTaskCount(@ApiParam(value = "评卷员ID集合", required = true) @RequestParam List<Long> markUserGroupIds,
-                               @ApiParam(value = "评卷任务数", required = true) @RequestParam Integer taskCount) {
-        markUserGroupService.setTaskCount(markUserGroupIds, taskCount);
+                               @ApiParam(value = "评卷任务数", required = true) @RequestParam Integer topCount) {
+        markUserGroupService.setTopCount(markUserGroupIds, topCount);
         return ResultUtil.ok(true);
     }
 

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

@@ -30,7 +30,7 @@ public interface MarkUserGroupService extends IService<MarkUserGroup> {
 
     void addMarkUserGroup(Long examId, String paperNumber, Integer groupNumber, List<Long> userIds);
 
-    void setTaskCount(List<Long> markUserGroupIds, Integer taskCount);
+    void setTopCount(List<Long> markUserGroupIds, Integer topCount);
 
     MarkUserGroup getByExamIdAndPaperNumberAndGroupNumberAndUserId(Long examId, String paperNumber, Integer groupNumber, Long userId);
 

+ 8 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -25,14 +25,12 @@ import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.entity.MarkStudent;
 import com.qmth.teachcloud.mark.entity.ScanPackage;
 import com.qmth.teachcloud.mark.mapper.MarkPaperMapper;
-import com.qmth.teachcloud.mark.service.MarkPaperService;
-import com.qmth.teachcloud.mark.service.MarkQuestionService;
-import com.qmth.teachcloud.mark.service.MarkStudentService;
-import com.qmth.teachcloud.mark.service.ScanPackageService;
+import com.qmth.teachcloud.mark.service.*;
 import com.qmth.teachcloud.mark.utils.Calculator;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
@@ -62,6 +60,8 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
     private MarkQuestionService markQuestionService;
     @Resource
     private MarkStudentService markStudentService;
+    @Resource
+    private MarkUserGroupService markUserGroupService;
 
 
     @Override
@@ -86,6 +86,7 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
         return this.getOne(queryWrapper);
     }
 
+    @Transactional
     @Override
     public void savePaperSetting(MarkPaper markPaper) {
         MarkPaper markPaperOld = this.getByExamIdAndPaperNumber(markPaper.getExamId(), markPaper.getPaperNumber());
@@ -105,6 +106,9 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
                 .set(MarkPaper::getSheetConfig, markPaper.getSheetConfig())
                 .eq(MarkPaper::getExamId, markPaper.getExamId())
                 .eq(MarkPaper::getPaperNumber, markPaper.getPaperNumber());
+
+        // 更新评卷员模式
+        markUserGroupService.updateMode(markPaper.getExamId(), markPaper.getPaperNumber(), null, null, markPaper.getMarkMode());
         this.update(updateWrapper);
     }
 

+ 12 - 6
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkUserGroupServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.mark.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -125,11 +126,11 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
     }
 
     @Override
-    public void setTaskCount(List<Long> markUserGroupIds, Integer taskCount) {
+    public void setTopCount(List<Long> markUserGroupIds, Integer topCount) {
         for (Long markUserGroupId : markUserGroupIds) {
             MarkUserGroup markUserGroup = this.getById(markUserGroupId);
             if (markUserGroup != null) {
-                markUserGroup.setTopCount(taskCount);
+                markUserGroup.setTopCount(topCount);
                 this.updateById(markUserGroup);
             }
         }
@@ -309,11 +310,16 @@ public class MarkUserGroupServiceImpl extends ServiceImpl<MarkUserGroupMapper, M
     @Override
     public void updateMode(Long examId, String paperNumber, Integer groupNumber, Long userId, MarkMode mode) {
         UpdateWrapper<MarkUserGroup> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.lambda().set(MarkUserGroup::getMode, mode)
+        LambdaUpdateWrapper<MarkUserGroup> lambdaUpdateWrapper = updateWrapper.lambda();
+        lambdaUpdateWrapper.set(MarkUserGroup::getMode, mode)
                 .eq(MarkUserGroup::getExamId, examId)
-                .eq(MarkUserGroup::getPaperNumber, paperNumber)
-                .eq(MarkUserGroup::getGroupNumber, groupNumber)
-                .eq(MarkUserGroup::getUserId, userId);
+                .eq(MarkUserGroup::getPaperNumber, paperNumber);
+        if (groupNumber != null) {
+            lambdaUpdateWrapper.eq(MarkUserGroup::getGroupNumber, groupNumber);
+        }
+        if (userId != null) {
+            lambdaUpdateWrapper.eq(MarkUserGroup::getUserId, userId);
+        }
         this.update(updateWrapper);
     }
 }