|
@@ -3,17 +3,18 @@ package com.qmth.distributed.print.business.templete.importData;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
|
|
+import com.qmth.teachcloud.common.config.DictionaryConfig;
|
|
import com.qmth.teachcloud.common.contant.SpringContextHolder;
|
|
import com.qmth.teachcloud.common.contant.SpringContextHolder;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
import com.qmth.teachcloud.common.entity.TBTask;
|
|
import com.qmth.teachcloud.common.entity.TBTask;
|
|
-import com.qmth.teachcloud.common.enums.TaskResultEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.TaskStatusEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.TaskTypeEnum;
|
|
|
|
-import com.qmth.teachcloud.common.enums.UploadFileEnum;
|
|
|
|
|
|
+import com.qmth.teachcloud.common.enums.*;
|
|
import com.qmth.teachcloud.common.service.TBTaskService;
|
|
import com.qmth.teachcloud.common.service.TBTaskService;
|
|
|
|
+import com.qmth.teachcloud.common.util.ExcelUtil;
|
|
import com.qmth.teachcloud.common.util.FileStoreUtil;
|
|
import com.qmth.teachcloud.common.util.FileStoreUtil;
|
|
import com.qmth.teachcloud.common.util.Result;
|
|
import com.qmth.teachcloud.common.util.Result;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
|
+import org.apache.commons.codec.digest.DigestUtils;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
@@ -23,10 +24,7 @@ import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
import java.text.MessageFormat;
|
|
import java.text.MessageFormat;
|
|
-import java.util.Date;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Objects;
|
|
|
|
-import java.util.StringJoiner;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 异步导入模版
|
|
* @Description: 异步导入模版
|
|
@@ -118,4 +116,68 @@ public abstract class AsyncImportTaskTemplete {
|
|
tbTaskService.updateById(tbTask);
|
|
tbTaskService.updateById(tbTask);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 创建txt文件
|
|
|
|
+ *
|
|
|
|
+ * @param tbTask
|
|
|
|
+ */
|
|
|
|
+ public void createErrorFile(TBTask tbTask, Class clazz, List list) {
|
|
|
|
+ File excelFileTemp = null;
|
|
|
|
+ try {
|
|
|
|
+ FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
|
|
|
|
+ DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
|
|
|
|
+ boolean oss = dictionaryConfig.sysDomain().isOss();
|
|
|
|
+ String ossStr = null;
|
|
|
|
+ StringJoiner stringJoiner = new StringJoiner("");
|
|
|
|
+ if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig()) && !dictionaryConfig.fssPublicDomain().getConfig().startsWith(SystemConstant.START_PARENT)) {
|
|
|
|
+ stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
|
|
|
|
+ }
|
|
|
|
+ stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
|
|
|
|
+ stringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.TXT_PREFIX);
|
|
|
|
+
|
|
|
|
+ String txtDirName = stringJoiner.toString();
|
|
|
|
+ excelFileTemp = SystemConstant.getFileTempVar(SystemConstant.EXCEL_PREFIX);
|
|
|
|
+ ExcelUtil.excelExportLocal(excelFileTemp, clazz, list);
|
|
|
|
+
|
|
|
|
+ String txtFileMd5 = DigestUtils.md5Hex(new FileInputStream(excelFileTemp));
|
|
|
|
+ if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith(SystemConstant.START_PARENT))) {
|
|
|
|
+ ossStr = oss ? SystemConstant.OSS : SystemConstant.LOCAL;
|
|
|
|
+ fileStoreUtil.ossUpload(txtDirName, excelFileTemp, txtFileMd5, fileStoreUtil.getUploadEnumByPath(txtDirName).getFssType());
|
|
|
|
+ } else {
|
|
|
|
+ ossStr = SystemConstant.LOCAL;
|
|
|
|
+ fileStoreUtil.localUpload(txtDirName, new FileInputStream(excelFileTemp), txtFileMd5, LocalCatalogEnum.LOCAL_FILE);
|
|
|
|
+ }
|
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
|
+ json.put(SystemConstant.PATH, stringJoiner.toString());
|
|
|
|
+ json.put(SystemConstant.TYPE, ossStr);
|
|
|
|
+ json.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
|
|
|
|
+ tbTask.setReportFilePath(json.toJSONString());
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ StringJoiner stringJoinerSummary = new StringJoiner("").add(tbTask.getSummary()).add("\n");
|
|
|
|
+ stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_CREATE_TXT_TITLE, EXCEPTION_DATA, e.getMessage()));
|
|
|
|
+
|
|
|
|
+ String summary = stringJoinerSummary.toString();
|
|
|
|
+ if (summary.length() >= 65535) {
|
|
|
|
+ summary = "Data too long : " + summary.substring(0, 100) + "......" + summary.substring(summary.length() - 100);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ tbTask.setSummary(summary);
|
|
|
|
+ tbTask.setResult(TaskResultEnum.ERROR);
|
|
|
|
+ if (e instanceof ApiException) {
|
|
|
|
+ ResultUtil.error((ApiException) e, e.getMessage());
|
|
|
|
+ } else {
|
|
|
|
+ ResultUtil.error(e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ } finally {
|
|
|
|
+ if (Objects.nonNull(excelFileTemp)) {
|
|
|
|
+ excelFileTemp.delete();
|
|
|
|
+ }
|
|
|
|
+ TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
|
|
|
|
+ tbTask.setStatus(TaskStatusEnum.FINISH);
|
|
|
|
+ tbTaskService.updateById(tbTask);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|