Browse Source

3.4.5 update-20250421,bug修改

xiaofei 2 months ago
parent
commit
ba3ee60a73

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

@@ -192,10 +192,10 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
         Long schoolId = requestUser.getSchoolId();
         Long schoolId = requestUser.getSchoolId();
         Long requestUserId = requestUser.getId();
         Long requestUserId = requestUser.getId();
 
 
-        String studentCode = basicExamStudentParam.getStudentCode();
-        String paperNumber = basicExamStudentParam.getPaperNumber();
-        String teacherName = basicExamStudentParam.getTeacherName();
-        String teacherCode = basicExamStudentParam.getTeacherCode();
+        String studentCode = StringUtils.trim(basicExamStudentParam.getStudentCode());
+        String paperNumber = StringUtils.trim(basicExamStudentParam.getPaperNumber());
+        String teacherName = StringUtils.trim(basicExamStudentParam.getTeacherName());
+        String teacherCode = StringUtils.trim(basicExamStudentParam.getTeacherCode());
         String paperType = basicExamStudentParam.getPaperType();
         String paperType = basicExamStudentParam.getPaperType();
 
 
         BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId(schoolId);
         BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId(schoolId);

+ 15 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -49,6 +49,7 @@ import com.qmth.teachcloud.common.kit.TikuUtils;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.common.util.excel.ExcelError;
 import com.qmth.teachcloud.common.util.excel.ExcelError;
+import jdk.nashorn.internal.runtime.regexp.joni.ast.StringNode;
 import org.activiti.engine.ActivitiObjectNotFoundException;
 import org.activiti.engine.ActivitiObjectNotFoundException;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.task.Task;
 import org.activiti.engine.task.Task;
@@ -309,8 +310,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             examTask.setCardRuleId(basicPrintConfig.getCardRuleId());
             examTask.setCardRuleId(basicPrintConfig.getCardRuleId());
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
             if (StringUtils.isNotBlank(examTask.getPaperNumber())) {
             if (StringUtils.isNotBlank(examTask.getPaperNumber())) {
+                // 剔除前后空格
+                String paperNumber = StringUtils.trim(examTask.getPaperNumber());
+                examTask.setPaperName(paperNumber);
                 QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
                 QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
-                taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, examTask.getPaperNumber());
+                taskQueryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, paperNumber);
                 ExamTask task = this.getOne(taskQueryWrapper);
                 ExamTask task = this.getOne(taskQueryWrapper);
                 if (task != null) {
                 if (task != null) {
                     BasicExam basicExam = basicExamService.getById(examId);
                     BasicExam basicExam = basicExamService.getById(examId);
@@ -597,12 +601,12 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         for (ExamTaskTemp examTaskTemp : examTaskImportDtoList) {
         for (ExamTaskTemp examTaskTemp : examTaskImportDtoList) {
             StringJoiner errorMsg = new StringJoiner("");
             StringJoiner errorMsg = new StringJoiner("");
             errorMsg.add("第" + i.getAndIncrement() + "行");
             errorMsg.add("第" + i.getAndIncrement() + "行");
-            String courseCode = examTaskTemp.getCourseCode();
-            String courseName = examTaskTemp.getCourseName();
-            String teachingRoomName = examTaskTemp.getTeachingRoomName();
-            String paperNumber = examTaskTemp.getPaperNumber();
-            String userAccount = examTaskTemp.getUserAccount();
-            String userName = examTaskTemp.getUserName();
+            String courseCode = StringUtils.trim(examTaskTemp.getCourseCode());
+            String courseName = StringUtils.trim(examTaskTemp.getCourseName());
+            String teachingRoomName = StringUtils.trim(examTaskTemp.getTeachingRoomName());
+            String paperNumber = StringUtils.trim(examTaskTemp.getPaperNumber());
+            String userAccount = StringUtils.trim(examTaskTemp.getUserAccount());
+            String userName = StringUtils.trim(examTaskTemp.getUserName());
             if (StringUtils.isBlank(courseCode)) {
             if (StringUtils.isBlank(courseCode)) {
                 errorMsg.add("课程代码" + courseCode + "不能为空");
                 errorMsg.add("课程代码" + courseCode + "不能为空");
                 throw ExceptionResultEnum.ERROR.exception(errorMsg.toString());
                 throw ExceptionResultEnum.ERROR.exception(errorMsg.toString());
@@ -666,9 +670,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
 
             ExamTaskDto examTaskDto = new ExamTaskDto();
             ExamTaskDto examTaskDto = new ExamTaskDto();
             examTaskDto.setCourseId(basicCourse.getId());
             examTaskDto.setCourseId(basicCourse.getId());
-            examTaskDto.setCourseCode(examTaskTemp.getCourseCode());
-            examTaskDto.setCourseName(examTaskTemp.getCourseName());
-            examTaskDto.setPaperNumber(examTaskTemp.getPaperNumber());
+            examTaskDto.setCourseCode(courseCode);
+            examTaskDto.setCourseName(courseName);
+            examTaskDto.setPaperNumber(paperNumber);
             if (sysUser != null) {
             if (sysUser != null) {
                 examTaskDto.setUserId(String.valueOf(sysUser.getId()));
                 examTaskDto.setUserId(String.valueOf(sysUser.getId()));
                 examTaskDto.setUserName(sysUser.getRealName());
                 examTaskDto.setUserName(sysUser.getRealName());
@@ -713,7 +717,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             examTask.setExamId(examId);
             examTask.setExamId(examId);
             examTask.setCardRuleId(cardRuleId);
             examTask.setCardRuleId(cardRuleId);
 
 
-            String paperNumber = dto.getPaperNumber();
+            String paperNumber = StringUtils.trim(dto.getPaperNumber());
             if (StringUtils.isNotBlank(paperNumber)) {
             if (StringUtils.isNotBlank(paperNumber)) {
                 QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
                 QueryWrapper<ExamTask> taskQueryWrapper = new QueryWrapper<>();
                 taskQueryWrapper.lambda().eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, paperNumber);
                 taskQueryWrapper.lambda().eq(ExamTask::getExamId, examId).eq(ExamTask::getPaperNumber, paperNumber);

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

@@ -841,7 +841,7 @@ public class ImportLogicServiceImpl implements ImportLogicService {
                             try {
                             try {
                                 Field declaredField = aClass.getDeclaredField(enumResult.getCode());
                                 Field declaredField = aClass.getDeclaredField(enumResult.getCode());
                                 declaredField.setAccessible(true);
                                 declaredField.setAccessible(true);
-                                // 学生姓名、任课老师姓名存在英文名,只去掉前后空格
+                                // 去掉前后空格
                                 declaredField.set(basicExamStudentImport, StringUtils.trim(entry.getValue()));
                                 declaredField.set(basicExamStudentImport, StringUtils.trim(entry.getValue()));
                             } catch (NoSuchFieldException e) {
                             } catch (NoSuchFieldException e) {
                                 throw ExceptionResultEnum.ERROR.exception("未获取到表头为[" + entry.getKey() + "]的属性值");
                                 throw ExceptionResultEnum.ERROR.exception("未获取到表头为[" + entry.getKey() + "]的属性值");

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

@@ -946,6 +946,10 @@ public class MarkServiceImpl implements MarkService {
             for (MarkUserQuestion question : markUserQuestionList) {
             for (MarkUserQuestion question : markUserQuestionList) {
                 dto = new MarkStatusDto(markQuestionService.getById(question.getQuestionId()), markUserPaper.getMarkedQuestionId());
                 dto = new MarkStatusDto(markQuestionService.getById(question.getQuestionId()), markUserPaper.getMarkedQuestionId());
                 List<Long> questionIds = Arrays.asList(question.getQuestionId());
                 List<Long> questionIds = Arrays.asList(question.getQuestionId());
+                MarkQuestion markQuestion = markQuestionService.getById(question.getQuestionId());
+                if (!markQuestion.getPersonTask()) {
+                    continue;
+                }
                 MarkStatusDto statusDto = getDto(dto, examId, paperNumber, userId, classNames, questionIds);
                 MarkStatusDto statusDto = getDto(dto, examId, paperNumber, userId, classNames, questionIds);
                 statusDto.setLeftCount(countLeftCountForSingle(examId, paperNumber, statusDto.getLeftCount(), question.getQuestionId(), userId, classNames));
                 statusDto.setLeftCount(countLeftCountForSingle(examId, paperNumber, statusDto.getLeftCount(), question.getQuestionId(), userId, classNames));
                 dtoList.add(statusDto);
                 dtoList.add(statusDto);
@@ -953,6 +957,8 @@ public class MarkServiceImpl implements MarkService {
         } else if (QuestionModel.MULTI.equals(questionModel)) {
         } else if (QuestionModel.MULTI.equals(questionModel)) {
             MarkStatusDto dto = new MarkStatusDto();
             MarkStatusDto dto = new MarkStatusDto();
             List<Long> questionIds = markUserQuestionList.stream().filter(m -> m.getUserId().equals(userId)).map(MarkUserQuestion::getQuestionId).collect(Collectors.toList());
             List<Long> questionIds = markUserQuestionList.stream().filter(m -> m.getUserId().equals(userId)).map(MarkUserQuestion::getQuestionId).collect(Collectors.toList());
+            List<MarkQuestion> markQuestionList = markQuestionService.listByIds(questionIds);
+            questionIds = markQuestionList.stream().filter(MarkQuestion::getPersonTask).map(MarkQuestion::getId).collect(Collectors.toList());
             dtoList.add(getDto(dto, examId, paperNumber, userId, classNames, questionIds));
             dtoList.add(getDto(dto, examId, paperNumber, userId, classNames, questionIds));
         } else {
         } else {
             throw ExceptionResultEnum.ERROR.exception("参数有误");
             throw ExceptionResultEnum.ERROR.exception("参数有误");
@@ -1147,6 +1153,10 @@ public class MarkServiceImpl implements MarkService {
         int pageNumber = 1;
         int pageNumber = 1;
         while (task == null) {
         while (task == null) {
             if (questionModel.equals(QuestionModel.SINGLE)) {
             if (questionModel.equals(QuestionModel.SINGLE)) {
+                MarkQuestion markQuestion = markQuestionService.getById(questionId);
+                if (!markQuestion.getPersonTask()) {
+                    break;
+                }
                 Set<Long> questions = new HashSet<>(Arrays.asList(questionId));
                 Set<Long> questions = new HashSet<>(Arrays.asList(questionId));
                 List<MarkTask> list = markTaskService.findUnMarkedFilterClass(new Page<>(pageNumber, 20), examId, paperNumber, userId, questionId, classNames);
                 List<MarkTask> list = markTaskService.findUnMarkedFilterClass(new Page<>(pageNumber, 20), examId, paperNumber, userId, questionId, classNames);
                 if (list.isEmpty()) {
                 if (list.isEmpty()) {
@@ -1160,6 +1170,8 @@ public class MarkServiceImpl implements MarkService {
                 }
                 }
             } else if (questionModel.equals(QuestionModel.MULTI)) {
             } else if (questionModel.equals(QuestionModel.MULTI)) {
                 Set<Long> questions = markUserQuestions.stream().map(MarkUserQuestion::getQuestionId).collect(Collectors.toSet());
                 Set<Long> questions = markUserQuestions.stream().map(MarkUserQuestion::getQuestionId).collect(Collectors.toSet());
+                List<MarkQuestion> markQuestionList = markQuestionService.listByIds(questions);
+                questions = markQuestionList.stream().filter(MarkQuestion::getPersonTask).map(MarkQuestion::getId).collect(Collectors.toSet());
                 studentIds = markStudentService.findUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questions, classNames);
                 studentIds = markStudentService.findUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questions, classNames);
                 if (studentIds.isEmpty()) {
                 if (studentIds.isEmpty()) {
                     break;
                     break;
@@ -1174,6 +1186,9 @@ public class MarkServiceImpl implements MarkService {
                         Map<Long, List<MarkTask>> map = markTaskList.stream().collect(Collectors.groupingBy(MarkTask::getQuestionId));
                         Map<Long, List<MarkTask>> map = markTaskList.stream().collect(Collectors.groupingBy(MarkTask::getQuestionId));
                         List<MarkTask> markTasks = new ArrayList<>();
                         List<MarkTask> markTasks = new ArrayList<>();
                         for (MarkUserQuestion markUserQuestion : markUserQuestions) {
                         for (MarkUserQuestion markUserQuestion : markUserQuestions) {
+                            if(!map.containsKey(markUserQuestion.getQuestionId())){
+                                continue;
+                            }
                             List<MarkTask> markTasks1 = map.get(markUserQuestion.getQuestionId());
                             List<MarkTask> markTasks1 = map.get(markUserQuestion.getQuestionId());
                             if (markTasks1.size() == 1) {
                             if (markTasks1.size() == 1) {
                                 markTasks.add(markTasks1.get(0));
                                 markTasks.add(markTasks1.get(0));

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkTaskServiceImpl.java

@@ -56,6 +56,7 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
     private TaskService taskService;
     private TaskService taskService;
     @Resource
     @Resource
     private BasicRoleDataPermissionService basicRoleDataPermissionService;
     private BasicRoleDataPermissionService basicRoleDataPermissionService;
+
     @Override
     @Override
     public IPage<MarkManageDto> listPaperManage(Long examId, Long openCollegeId, Long courseId, String paperNumber, Boolean progressStatus, Integer pageNumber, Integer pageSize) {
     public IPage<MarkManageDto> listPaperManage(Long examId, Long openCollegeId, Long courseId, String paperNumber, Boolean progressStatus, Integer pageNumber, Integer pageSize) {
         Page<MarkManageDto> page = new Page<>(pageNumber, pageSize);
         Page<MarkManageDto> page = new Page<>(pageNumber, pageSize);
@@ -478,6 +479,7 @@ public class MarkTaskServiceImpl extends ServiceImpl<MarkTaskMapper, MarkTask> i
     public List<MarkTask> listByStudentId(Long studentId) {
     public List<MarkTask> listByStudentId(Long studentId) {
         QueryWrapper<MarkTask> queryWrapper = new QueryWrapper<>();
         QueryWrapper<MarkTask> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(MarkTask::getStudentId, studentId)
         queryWrapper.lambda().eq(MarkTask::getStudentId, studentId)
+                .eq(MarkTask::getAiMarked, false)
                 .orderByAsc(MarkTask::getMainNumber)
                 .orderByAsc(MarkTask::getMainNumber)
                 .orderByAsc(MarkTask::getSubNumber);
                 .orderByAsc(MarkTask::getSubNumber);
         return this.list(queryWrapper);
         return this.list(queryWrapper);