|
@@ -3,7 +3,6 @@ package com.qmth.distributed.print.business.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
-import com.google.common.collect.Lists;
|
|
|
|
import com.qmth.distributed.print.business.bean.dto.CourseDimensionImportDto;
|
|
import com.qmth.distributed.print.business.bean.dto.CourseDimensionImportDto;
|
|
import com.qmth.distributed.print.business.bean.dto.CourseDimensionMd5Dto;
|
|
import com.qmth.distributed.print.business.bean.dto.CourseDimensionMd5Dto;
|
|
import com.qmth.distributed.print.business.entity.CourseDimension;
|
|
import com.qmth.distributed.print.business.entity.CourseDimension;
|
|
@@ -15,25 +14,23 @@ import com.qmth.distributed.print.business.mapper.CourseDimensionMapper;
|
|
import com.qmth.distributed.print.business.service.BasicExamService;
|
|
import com.qmth.distributed.print.business.service.BasicExamService;
|
|
import com.qmth.distributed.print.business.service.CourseDimensionService;
|
|
import com.qmth.distributed.print.business.service.CourseDimensionService;
|
|
import com.qmth.distributed.print.business.service.TeachCourseService;
|
|
import com.qmth.distributed.print.business.service.TeachCourseService;
|
|
|
|
+import com.qmth.teachcloud.common.bean.result.ExcelResult;
|
|
import com.qmth.teachcloud.common.bean.tiku.TikuCourseProperty;
|
|
import com.qmth.teachcloud.common.bean.tiku.TikuCourseProperty;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.BasicExam;
|
|
import com.qmth.teachcloud.common.entity.BasicExam;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
import com.qmth.teachcloud.common.kit.TikuUtils;
|
|
import com.qmth.teachcloud.common.kit.TikuUtils;
|
|
-import com.qmth.teachcloud.common.util.ExcelUtil;
|
|
|
|
|
|
+import com.qmth.teachcloud.common.util.ConvertUtil;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
-import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
-import java.io.IOException;
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -61,8 +58,7 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
- public void importCourseDimension(SysUser requestUser, MultipartFile file, Long teachCourseId)
|
|
|
|
- throws IOException, NoSuchFieldException {
|
|
|
|
|
|
+ public void importCourseDimension(SysUser requestUser, MultipartFile file, Long teachCourseId) throws Exception {
|
|
Long requestUserId = requestUser.getId();
|
|
Long requestUserId = requestUser.getId();
|
|
Long schoolId = requestUser.getSchoolId();
|
|
Long schoolId = requestUser.getSchoolId();
|
|
|
|
|
|
@@ -79,45 +75,17 @@ public class CourseDimensionServiceImpl extends ServiceImpl<CourseDimensionMappe
|
|
}
|
|
}
|
|
Long semesterId = SystemConstant.convertIdToLong(basicExam.getSemesterId());
|
|
Long semesterId = SystemConstant.convertIdToLong(basicExam.getSemesterId());
|
|
|
|
|
|
- List<String> errorMsgList = new ArrayList<>();
|
|
|
|
- List<CourseDimensionImportDto> list = new ArrayList<>();
|
|
|
|
- ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(CourseDimensionImportDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
|
|
- for (int i = 0; i < finalExcelList.size(); i++) {
|
|
|
|
- LinkedMultiValueMap<Integer, Object> excelMap = finalExcelList.get(i);
|
|
|
|
- List<Object> courseDimensionDtoList = excelMap.get(i);
|
|
|
|
- // 无数据,跳过
|
|
|
|
- if (CollectionUtils.isEmpty(courseDimensionDtoList)) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- for (int y = 0; y < courseDimensionDtoList.size(); y++) {
|
|
|
|
-
|
|
|
|
- // 行索引
|
|
|
|
- Integer rowIndex = y + 1;
|
|
|
|
- CourseDimensionImportDto courseDimensionImportDto = (CourseDimensionImportDto) courseDimensionDtoList.get(
|
|
|
|
- y);
|
|
|
|
- String firstDimensionName = StringUtils.trimToNull(courseDimensionImportDto.getFirstDimensionName());
|
|
|
|
- String secondDimensionName = StringUtils.trimToNull(courseDimensionImportDto.getSecondDimensionName());
|
|
|
|
-
|
|
|
|
- // 本行全部列为空,跳过
|
|
|
|
- if (StringUtils.isAllBlank(firstDimensionName, secondDimensionName)) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if (!SystemConstant.strNotNull(firstDimensionName)){
|
|
|
|
- errorMsgList.add(String.format("第[%s]行缺少一级知识点内容",rowIndex));
|
|
|
|
- }
|
|
|
|
- list.add(courseDimensionImportDto);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return finalExcelList;
|
|
|
|
- }, 2);
|
|
|
|
-
|
|
|
|
- if (CollectionUtils.isNotEmpty(errorMsgList)) {
|
|
|
|
- throw ExceptionResultEnum.ERROR.exception(String.join(";", errorMsgList));
|
|
|
|
|
|
+ ExcelResult<CourseDimensionImportDto> excelResult = ConvertUtil.analyzeExcel(file.getInputStream(),
|
|
|
|
+ CourseDimensionImportDto.class, false, 1);
|
|
|
|
+ List<CourseDimensionImportDto> courseDimensionImportDtoList = excelResult.getDatasource();
|
|
|
|
+ boolean success = excelResult.isSuccess();
|
|
|
|
+ if (!success) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(excelResult.getErrorMsg());
|
|
}
|
|
}
|
|
|
|
|
|
// 处理要新增的考察点
|
|
// 处理要新增的考察点
|
|
- Map<String, List<String>> dimensionMap = new HashMap<>();
|
|
|
|
- for (CourseDimensionImportDto courseDimensionImportDto : list) {
|
|
|
|
|
|
+ Map<String, List<String>> dimensionMap = new LinkedHashMap<>();
|
|
|
|
+ for (CourseDimensionImportDto courseDimensionImportDto : courseDimensionImportDtoList) {
|
|
String firstDimensionName = courseDimensionImportDto.getFirstDimensionName();
|
|
String firstDimensionName = courseDimensionImportDto.getFirstDimensionName();
|
|
if (!SystemConstant.strNotNull(firstDimensionName)) {
|
|
if (!SystemConstant.strNotNull(firstDimensionName)) {
|
|
throw ExceptionResultEnum.ERROR.exception("excel中存在没有填写的一级知识点");
|
|
throw ExceptionResultEnum.ERROR.exception("excel中存在没有填写的一级知识点");
|