wangliang 3 жил өмнө
parent
commit
7debe2205c

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

@@ -24,10 +24,7 @@ import com.qmth.teachcloud.common.annotation.ExcelDBFieldDesc;
 import com.qmth.teachcloud.common.bean.dto.excel.*;
 import com.qmth.teachcloud.common.bean.params.ArraysParams;
 import com.qmth.teachcloud.common.contant.SystemConstant;
-import com.qmth.teachcloud.common.entity.BasicAttachment;
-import com.qmth.teachcloud.common.entity.BasicSchool;
-import com.qmth.teachcloud.common.entity.SysUser;
-import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FlowStatusEnum;
 import com.qmth.teachcloud.common.enums.PageSizeEnum;
@@ -1325,6 +1322,38 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             if (finalExcelErrorList.size() > 0) {
                 throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(finalExcelErrorList));
             }
+            List<ExcelError> excelErrorTemp = new ArrayList<>();
+            for (int i = 0; i < finalExcelList.size(); i++) {
+                LinkedMultiValueMap<Integer, Object> excelMap = finalExcelList.get(i);
+                List<Object> statisticsTempList = excelMap.get(i);
+                for (int y = 0; y < statisticsTempList.size(); y++) {
+                    StatisticsImportDto statisticsImportDto = (StatisticsImportDto) statisticsTempList.get(y);
+
+//                    if (StringUtils.isBlank(userImportDto.getTicketNumber())) {
+//                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[准考证号]必填"));
+//                    }
+//                    if (StringUtils.isBlank(userImportDto.getCourseCode())) {
+//                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程代码]必填"));
+//                    }
+//                    if (StringUtils.isBlank(userImportDto.getCourseName())) {
+//                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程名称]必填"));
+//                    }
+//
+//                    // 课程是否存在并且与名称对应
+//                    QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
+//                    queryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId).eq(BasicCourse::getCode, userImportDto.getCourseCode());
+//                    BasicCourse course = basicCourseService.getOne(queryWrapper);
+//                    if (course == null) {
+//                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程代码]在系统中不存在"));
+//                    } else if (!course.getName().equals(userImportDto.getCourseName())) {
+//                        excelErrorTemp.add(new ExcelError(y + 1, "excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[课程名称]与系统中不匹配"));
+//                    }
+                }
+            }
+            if (excelErrorTemp.size() > 0) {
+                List<String> errors = excelErrorTemp.stream().map(m -> m.getExcelErrorType()).collect(Collectors.toList());
+                throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(errors));
+            }
             return finalExcelList;
         });
         return map;

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

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.api;
 
-
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;

+ 18 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/annotation/ExcelImportTempleteVaild.java

@@ -0,0 +1,18 @@
+package com.qmth.teachcloud.common.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * @Description: excel模版校验注释
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/7/20
+ */
+@Documented
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ExcelImportTempleteVaild {
+
+    boolean value() default false;
+}

+ 4 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/ExcelUtil.java

@@ -1,5 +1,7 @@
 package com.qmth.teachcloud.common.util;
 
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.teachcloud.common.annotation.ExcelImportTempleteVaild;
 import com.qmth.teachcloud.common.annotation.ExcelNote;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -150,7 +152,8 @@ public class ExcelUtil {
                         int lastcell = row.getLastCellNum();
                         o = clazz.get(y).newInstance();
                         Field[] fields = o.getClass().getDeclaredFields();
-                        if (lastcell > fields.length) {
+                        ExcelImportTempleteVaild excelImportTempleteVaild = o.getClass().getDeclaredAnnotation(ExcelImportTempleteVaild.class);
+                        if (Objects.nonNull(excelImportTempleteVaild) && excelImportTempleteVaild.value() && lastcell > fields.length) {
                             throw ExceptionResultEnum.ERROR.exception("导入文件和模版不一致");
                         }
                         boolean extend = fields[fields.length - 1].getName().contains(SystemConstant.EXTEND_COLUMN);