|
@@ -8,9 +8,11 @@ import com.alibaba.fastjson.JSONObject;
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
|
+import com.google.common.collect.Lists;
|
|
import com.itextpdf.text.DocumentException;
|
|
import com.itextpdf.text.DocumentException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
|
|
+import com.qmth.distributed.print.business.bean.dto.excel.BasicStudentImportDto;
|
|
import com.qmth.distributed.print.business.bean.params.SerialNumberParams;
|
|
import com.qmth.distributed.print.business.bean.params.SerialNumberParams;
|
|
import com.qmth.distributed.print.business.cache.CreatePdfCacheUtil;
|
|
import com.qmth.distributed.print.business.cache.CreatePdfCacheUtil;
|
|
import com.qmth.distributed.print.business.entity.*;
|
|
import com.qmth.distributed.print.business.entity.*;
|
|
@@ -31,6 +33,7 @@ import com.qmth.teachcloud.common.enums.PageSizeEnum;
|
|
import com.qmth.teachcloud.common.enums.UploadFileEnum;
|
|
import com.qmth.teachcloud.common.enums.UploadFileEnum;
|
|
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 org.apache.commons.codec.digest.DigestUtils;
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
@@ -48,6 +51,8 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.FileCopyUtils;
|
|
import org.springframework.util.FileCopyUtils;
|
|
|
|
+import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
@@ -1171,6 +1176,48 @@ public class TaskLogicServiceImpl implements TaskLogicService {
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional
|
|
|
|
+ @Override
|
|
|
|
+ public Map<String, Object> executeImportBasicStudentLogic(Map<String, Object> map) throws Exception {
|
|
|
|
+ MultipartFile file = (MultipartFile) map.get(SystemConstant.FILE);
|
|
|
|
+ List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(BasicStudentImportDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
|
|
+ List<ExcelError> excelErrorTemp = new ArrayList<>();
|
|
|
|
+ Map<String,String> checkMap = new HashMap<>();
|
|
|
|
+ for (int i = 0; i < finalExcelList.size(); i++) {
|
|
|
|
+ LinkedMultiValueMap<Integer, Object> excelMap = finalExcelList.get(i);
|
|
|
|
+ List<Object> basicStudentImportDtoList = excelMap.get(i);
|
|
|
|
+ for (int y = 0; y < Objects.requireNonNull(basicStudentImportDtoList).size(); y++) {
|
|
|
|
+ BasicStudentImportDto basicStudentImportDto = (BasicStudentImportDto) basicStudentImportDtoList.get(y);
|
|
|
|
+ String studentName = basicStudentImportDto.getStudentName();
|
|
|
|
+ String studentCode = basicStudentImportDto.getStudentCode();
|
|
|
|
+ String phoneNumber = basicStudentImportDto.getPhoneNumber();
|
|
|
|
+ String campusName = basicStudentImportDto.getCampusName();
|
|
|
|
+ String clazz = basicStudentImportDto.getClazz();
|
|
|
|
+
|
|
|
|
+ // 检验excel中
|
|
|
|
+ if (checkMap.containsKey(studentCode)){
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("导入的excel中包含在重复的【课程编号】:" + studentCode);
|
|
|
|
+ }else {
|
|
|
|
+ checkMap.put(studentCode,studentName);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ excelErrorTemp.addAll(ExcelUtil.checkExcelField(basicStudentImportDto, y, i));
|
|
|
|
+ if (Objects.isNull(studentCode) || studentCode.length() > 30 || !studentCode.matches(SystemConstant.REGULAR_EXPRESSION_OF_CODE)){
|
|
|
|
+ excelErrorTemp.add(new ExcelError(y + 1,"excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[学号]不符合输入规范"));
|
|
|
|
+ }
|
|
|
|
+ if (Objects.isNull(studentName) || studentName.length() > 30){
|
|
|
|
+ excelErrorTemp.add(new ExcelError(y + 1,"excel第" + (i + 1) + "个sheet第" + (y + 1) + "行[学生名称]不符合输入规范"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (excelErrorTemp.size() > 0) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(excelErrorTemp));
|
|
|
|
+ }
|
|
|
|
+ return finalExcelList;
|
|
|
|
+ });
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
public String createTempNumber(SerialNumberParams serialNumberParams){
|
|
public String createTempNumber(SerialNumberParams serialNumberParams){
|
|
return convertUtil.getIncre(serialNumberParams.getPrefix(), serialNumberParams.getModel(), serialNumberParams.getDigit());
|
|
return convertUtil.getIncre(serialNumberParams.getPrefix(), serialNumberParams.getModel(), serialNumberParams.getDigit());
|
|
}
|
|
}
|