浏览代码

fix:考生字典导入

caozixuan 1 年之前
父节点
当前提交
a4411a3a7e

+ 1 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/BasicExamStudentDto.java

@@ -7,6 +7,7 @@ import com.qmth.teachcloud.common.annotation.ExcelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 import javax.validation.constraints.NotNull;
+import java.util.Date;
 
 /**
  * @Description: 考生字典数据导入导出dto

+ 1 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/SyncBasicExamStudentImportService.java

@@ -3,8 +3,6 @@ package com.qmth.distributed.print.business.templete.execute;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.qmth.distributed.print.business.bean.dto.BasicExamStudentDto;
-import com.qmth.distributed.print.business.bean.dto.MarkStudentImportDto;
-import com.qmth.teachcloud.common.entity.BasicExamStudent;
 import com.qmth.distributed.print.business.service.BasicExamService;
 import com.qmth.distributed.print.business.service.BasicExamStudentService;
 import com.qmth.distributed.print.business.templete.importData.SyncImportTaskTemplate;
@@ -14,6 +12,7 @@ import com.qmth.teachcloud.common.bean.vo.FilePathVo;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicExam;
+import com.qmth.teachcloud.common.entity.BasicExamStudent;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.service.FileUploadService;

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

@@ -46,6 +46,7 @@ import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
@@ -2144,21 +2145,25 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             basicExamStudentParam.setExamPlace(examPlace);
             basicExamStudentParam.setExamRoom(examRoom);
             try {
-                BasicExamStudent basicExamStudent = basicExamStudentService.editEntityHelp(basicExamStudentParam,basicExam,
-                        requestUser);
+                BasicExamStudent basicExamStudent = basicExamStudentService.editEntityHelp(basicExamStudentParam,
+                        basicExam, requestUser);
                 // 考试课程下学号重复 后面的替换前面的
                 studentCodeObjMap.put(key, basicExamStudent);
             } catch (Exception e) {
                 errorMsgList.add(e.getMessage());
             }
-
-            if (CollectionUtils.isNotEmpty(errorMsgList)) {
-                basicExamStudentDto.setErrorMsg(basicExamStudentDto.getErrorMsg() + ";" + String.join(";", errorMsgList));
+            String excelAnalyzeError = basicExamStudentDto.getErrorMsg();
+            if (SystemConstant.strNotNull(excelAnalyzeError)) {
+                exceptionInteger.getAndIncrement();
+                if (CollectionUtils.isNotEmpty(errorMsgList)) {
+                    basicExamStudentDto.setErrorMsg(excelAnalyzeError + ";" + String.join(";", errorMsgList));
+                }
+            } else if (CollectionUtils.isNotEmpty(errorMsgList)) {
                 exceptionInteger.getAndIncrement();
+                basicExamStudentDto.setErrorMsg(String.join(";", errorMsgList));
             } else {
                 successInteger.getAndIncrement();
             }
-
         }
 
         if (basicExamStudentDtoList.stream().anyMatch(e -> SystemConstant.strNotNull(e.getErrorMsg()))) {

+ 10 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/CourseTargetController.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.api;
 
+import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.CourseTargetParam;
 import com.qmth.distributed.print.business.bean.result.CourseDimensionTree;
@@ -18,14 +19,12 @@ import com.qmth.teachcloud.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.io.IOException;
 
 /**
  * <p>
@@ -122,4 +121,13 @@ public class CourseTargetController {
         courseTargetService.deleteCourseTarget(SystemConstant.convertIdToLong(id));
         return ResultUtil.ok();
     }
+
+    @ApiOperation(value = "课程目标管理-测试解析题库试题结构")
+    @RequestMapping(value = "/analyze", method = RequestMethod.POST)
+    @ApiResponses({ @ApiResponse(code = 200, message = "查询成功", response = CourseTargetResult.class) })
+    @Aac
+    public Result analyzePaperStruct(@ApiParam(value = "考试id", required = true) @RequestParam String examId,
+            @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber) {
+        return ResultUtil.ok(courseTargetService.findTikuPaperStruct(SystemConstant.convertIdToLong(examId), paperNumber));
+    }
 }

二进制
distributed-print/src/main/resources/temps/basicExamStudent.xlsx


+ 5 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/ConvertUtil.java

@@ -57,10 +57,14 @@ public class ConvertUtil {
         String endTimeStr = date + " " + arr[1];
         if (Objects.isNull(DateDisposeUtils.parseDate(startTimeStr)) || Objects.isNull(DateDisposeUtils.parseDate(endTimeStr))) {
             throw ExceptionResultEnum.ERROR.exception(
-                    "提供的日期时间格式异常 \n考试日期[" + date + "]应该使用如下的格式(考试日期:2021-09-01 或 2021/09/01 或 2021.09.01)" + "\n考试时间[" + time + "]应该使用如下的格式(考试时间:18:00-20:00)");
+                    "提供的日期时间格式异常(考试日期列应使用文本格式) \n考试日期[" + date + "]应该使用如下的格式(考试日期:2021-09-01 或 2021/09/01 或 2021.09.01)" + "\n考试时间[" + time + "]应该使用如下的格式(考试时间:18:00-20:00)");
         }
         long startTime = DateDisposeUtils.parseDate(startTimeStr).getTime();
         long endTime = DateDisposeUtils.parseDate(endTimeStr).getTime();
+        if (!SystemConstant.longNotNull(startTime) || !SystemConstant.longNotNull(endTime)){
+            throw ExceptionResultEnum.ERROR.exception(
+                    "提供的日期时间格式异常(考试日期列应使用文本格式) \n考试日期[" + date + "]应该使用如下的格式(考试日期:2021-09-01 或 2021/09/01 或 2021.09.01)" + "\n考试时间[" + time + "]应该使用如下的格式(考试时间:18:00-20:00)");
+        }
         if (startTime >= endTime) {
             throw ExceptionResultEnum.ERROR.exception("开始时间要小于结束时间 时间: " + time);
         }