|
@@ -4,33 +4,21 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
|
import com.qmth.distributed.print.business.templete.importData.AsyncImportTaskTemplete;
|
|
|
-import com.qmth.teachcloud.common.config.DictionaryConfig;
|
|
|
import com.qmth.teachcloud.common.contant.SpringContextHolder;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
-import com.qmth.teachcloud.common.entity.SysConfig;
|
|
|
import com.qmth.teachcloud.common.entity.TBTask;
|
|
|
-import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
|
|
|
import com.qmth.teachcloud.common.enums.TaskResultEnum;
|
|
|
import com.qmth.teachcloud.common.enums.TaskStatusEnum;
|
|
|
-import com.qmth.teachcloud.common.enums.UploadFileEnum;
|
|
|
-import com.qmth.teachcloud.common.service.CommonCacheService;
|
|
|
-import com.qmth.teachcloud.common.service.SysConfigService;
|
|
|
import com.qmth.teachcloud.common.service.TBTaskService;
|
|
|
-import com.qmth.teachcloud.common.util.FileStoreUtil;
|
|
|
import com.qmth.teachcloud.common.util.Result;
|
|
|
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.LoggerFactory;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
|
|
|
-import javax.annotation.Resource;
|
|
|
-import java.io.*;
|
|
|
import java.text.MessageFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
import java.util.StringJoiner;
|
|
|
|
|
|
/**
|
|
@@ -41,16 +29,12 @@ import java.util.StringJoiner;
|
|
|
* @Date: 2021/3/29
|
|
|
*/
|
|
|
public abstract class AsyncExportTaskTemplete {
|
|
|
- @Resource
|
|
|
- SysConfigService sysConfigService;
|
|
|
-
|
|
|
private final static Logger log = LoggerFactory.getLogger(AsyncImportTaskTemplete.class);
|
|
|
public static final String BEGIN_TITLE = "->开始准备处理导出的";
|
|
|
public static final String FINISH_TITLE = "->数据处理结束,共处理了";
|
|
|
public static final String FINISH_SIZE = "条数据。";
|
|
|
public static final String EXCEPTION_TITLE = "->数据处理发生异常!";
|
|
|
public static final String EXCEPTION_DATA = "错误信息:";
|
|
|
- public static final String TXT_PREFIX = ".txt";
|
|
|
public static final String EXCEPTION_CREATE_TXT_TITLE = "->创建导出日志时发生异常!";
|
|
|
|
|
|
/**
|
|
@@ -68,67 +52,8 @@ public abstract class AsyncExportTaskTemplete {
|
|
|
* @param tbTask
|
|
|
*/
|
|
|
public void createTxt(TBTask tbTask) {
|
|
|
-// OssUtil ossUtil = SpringContextHolder.getBean(OssUtil.class);
|
|
|
- FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
|
|
|
- TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
|
|
|
- ByteArrayOutputStream out = null;
|
|
|
- InputStream inputStream = null;
|
|
|
try {
|
|
|
- DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
|
|
|
- JSONObject jsonObject = JSONObject.parseObject(tbTask.getResultFilePath());
|
|
|
- if (Objects.isNull(jsonObject)) {
|
|
|
- jsonObject = new JSONObject();
|
|
|
- StringJoiner stringJoiner = new StringJoiner("");
|
|
|
- if (Objects.nonNull(dictionaryConfig) && dictionaryConfig.sysDomain().isOss()) {
|
|
|
- jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
|
|
|
- } else {
|
|
|
- if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
- stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
|
|
|
- }
|
|
|
- jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
|
|
|
- }
|
|
|
- stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
|
|
|
- stringJoiner.add(SystemConstant.getNanoId()).add(TXT_PREFIX);
|
|
|
- jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
|
|
|
- }
|
|
|
- String path = (String) jsonObject.get(SystemConstant.PATH);
|
|
|
- path = path.replaceAll("\\\\", "/");
|
|
|
- String type = (String) jsonObject.get(SystemConstant.TYPE);
|
|
|
-
|
|
|
- String charset = SystemConstant.CHARSET_GBK;
|
|
|
- CommonCacheService commonCacheService = SpringContextHolder.getBean(CommonCacheService.class);
|
|
|
- if (commonCacheService != null) {
|
|
|
- SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.SYS_CONFIG_KEY_CHARSETS);
|
|
|
- if (sysConfig != null && StringUtils.isNotBlank(sysConfig.getConfigValue())) {
|
|
|
- charset = sysConfig.getConfigValue();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- out = new ByteArrayOutputStream();
|
|
|
- out.write(tbTask.getSummary().getBytes(charset));
|
|
|
- byte[] bookByteAry = out.toByteArray();
|
|
|
- inputStream = new ByteArrayInputStream(bookByteAry);
|
|
|
- StringJoiner stringJoiner = new StringJoiner("");
|
|
|
- path = path.substring(0, path.lastIndexOf("/") + 1);
|
|
|
- stringJoiner.add(path).add(SystemConstant.getNanoId()).add(TXT_PREFIX).toString();
|
|
|
- if (Objects.equals(type, SystemConstant.OSS)) {//上传至oss
|
|
|
- fileStoreUtil.ossUpload(stringJoiner.toString(), inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
|
|
|
- } else {//上传至服务器
|
|
|
- File finalFile = new File(stringJoiner.toString());
|
|
|
- if (!finalFile.exists()) {
|
|
|
- finalFile.getParentFile().mkdirs();
|
|
|
- finalFile.createNewFile();
|
|
|
- }
|
|
|
- if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
- fileStoreUtil.copyInputStreamToFile(inputStream, finalFile, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
|
|
|
- } else {
|
|
|
- fileStoreUtil.ossUpload(stringJoiner.toString(), inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), UploadFileEnum.FILE.getFssType());
|
|
|
- }
|
|
|
- }
|
|
|
- JSONObject json = new JSONObject();
|
|
|
- json.put(SystemConstant.PATH, stringJoiner.toString());
|
|
|
- json.put(SystemConstant.TYPE, type);
|
|
|
- json.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
|
|
|
+ JSONObject json = SystemConstant.createTxt(tbTask.getSummary());
|
|
|
tbTask.setReportFilePath(json.toJSONString());
|
|
|
} catch (Exception e) {
|
|
|
log.error(SystemConstant.LOG_ERROR, e);
|
|
@@ -142,17 +67,7 @@ public abstract class AsyncExportTaskTemplete {
|
|
|
ResultUtil.error(e.getMessage());
|
|
|
}
|
|
|
} finally {
|
|
|
- try {
|
|
|
- if (Objects.nonNull(inputStream)) {
|
|
|
- inputStream.close();
|
|
|
- }
|
|
|
- if (Objects.nonNull(out)) {
|
|
|
- out.flush();
|
|
|
- out.close();
|
|
|
- }
|
|
|
- } catch (IOException e) {
|
|
|
- log.error(SystemConstant.LOG_ERROR, e);
|
|
|
- }
|
|
|
+ TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
|
|
|
tbTask.setStatus(TaskStatusEnum.FINISH);
|
|
|
tbTaskService.updateById(tbTask);
|
|
|
}
|