1、项目列表和知识库的导出改为脚本导出

This commit is contained in:
2026-02-26 11:30:33 +08:00
parent fe48727548
commit 4de24cc9b7
11 changed files with 138 additions and 12 deletions

View File

@@ -42,11 +42,11 @@ public class ExportOperate {
} finally {
File taskFile = new File(taskJsonFileName);
if (taskFile.exists()) {
// taskFile.delete();
taskFile.delete();
}
File columnFile = new File(columnFileName);
if (columnFile.exists()) {
// columnFile.delete();
columnFile.delete();
}
}
}

View File

@@ -592,7 +592,7 @@ public class DataFileController implements IDataFeignClient {
@PostMapping("/exportKnowledgeList")
@Operation(summary = "导出知识库", description = "导出知识库")
public SdmResponse exportKnowledgeList(@RequestBody KnowledgeExportExcelFormat knowledgeExportExcelFormat , HttpServletResponse httpservletResponse) {
return IDataFileService.exportKnowledgeList(knowledgeExportExcelFormat, httpservletResponse);
return IDataFileService.exportKnowledgeListByScript(knowledgeExportExcelFormat, httpservletResponse);
}
/**

View File

@@ -441,6 +441,8 @@ public interface IDataFileService {
*/
SdmResponse exportKnowledgeList(KnowledgeExportExcelFormat knowledgeExportExcelFormat, HttpServletResponse httpservletResponse);
SdmResponse exportKnowledgeListByScript(KnowledgeExportExcelFormat knowledgeExportExcelFormat, HttpServletResponse httpservletResponse);
ResponseEntity<Object> onlyOfficeCallback(CallbackData callbackData);
SdmResponse downloadFileForEdit(Long fileId);

View File

@@ -35,6 +35,7 @@ import com.sdm.common.log.CoreLogger;
import com.sdm.common.utils.*;
import com.sdm.common.utils.excel.ExcelUtil;
import com.sdm.data.aop.PermissionCheckAspect;
import com.sdm.data.bo.ExportOperate;
import com.sdm.data.model.bo.ApprovalFileDataContentsModel;
import com.sdm.data.model.dto.ExportKnowledgeDto;
import com.sdm.data.model.dto.FileDictTagsAggDTO;
@@ -186,6 +187,9 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
@Autowired
private FileModifyApproveHelper fileModifyApproveHelper;
@Autowired
private ExportOperate exportOperate;
private static final String TEMP_FILE_PATH = "/usr/local/nginx/html/storage/";
@@ -3829,6 +3833,33 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
return response;
}
@Override
public SdmResponse exportKnowledgeListByScript(KnowledgeExportExcelFormat knowledgeExportExcelFormat, HttpServletResponse httpServletResponse) {
FileSearchReq req = new FileSearchReq();
KnowledgeExportExcelParam params = knowledgeExportExcelFormat.getParams();
if (ObjectUtils.isNotEmpty(params)) {
BeanUtils.copyProperties(params,req);
}
req.setCurrent(1);
req.setSize(10000);
SdmResponse response = fileSearch(req);
if (ObjectUtils.isEmpty(response)) {
log.error("exportKnowledgeListByScript未查询到知识库文件");
return SdmResponse.success(new ArrayList<>());
} else {
String taskFileName = exportOperate.convertToFile(JSON.toJSONString(response), JSON.toJSONString(knowledgeExportExcelFormat));
File file = new File(taskFileName);
if (!file.exists()) {
response = SdmResponse.failed("知识库文件不存在");
} else {
String taskSaveName = "仿真标准库_" + RandomUtil.generateString(6) + ".xlsx";
SystemOperate.outputHttpFileStream(httpServletResponse, taskFileName, taskSaveName);
file.delete();
}
}
return response;
}
@Override
public ResponseEntity<Object> onlyOfficeCallback(CallbackData callbackData) {

View File

@@ -1,5 +1,6 @@
package com.sdm.data.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.sdm.common.common.ResultCode;
@@ -18,6 +19,7 @@ import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.service.CommonService;
import com.sdm.common.utils.*;
import com.sdm.common.utils.excel.ExcelUtil;
import com.sdm.data.bo.ExportOperate;
import com.sdm.data.dao.DataMapper;
import com.sdm.data.dao.SystemMapper;
import com.sdm.data.dao.UserMapper;
@@ -32,6 +34,7 @@ import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.http.ResponseEntity;
@@ -73,6 +76,9 @@ public class SystemFileIDataFileServiceImpl implements IDataFileService {
@Resource
private CommonService commonService;
@Autowired
private ExportOperate exportOperate;
// @Override
// public String getType() {
// return type;
@@ -1616,6 +1622,33 @@ public class SystemFileIDataFileServiceImpl implements IDataFileService {
return response;
}
@Override
public SdmResponse exportKnowledgeListByScript(KnowledgeExportExcelFormat knowledgeExportExcelFormat, HttpServletResponse httpServletResponse) {
FileSearchReq req = new FileSearchReq();
KnowledgeExportExcelParam params = knowledgeExportExcelFormat.getParams();
if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(params)) {
BeanUtils.copyProperties(params,req);
}
req.setCurrent(1);
req.setSize(10000);
SdmResponse response = fileSearch(req);
if (org.apache.commons.lang3.ObjectUtils.isEmpty(response)) {
log.error("exportKnowledgeListByScript未查询到知识库文件");
return SdmResponse.success(new ArrayList<>());
} else {
String taskFileName = exportOperate.convertToFile(JSON.toJSONString(response), JSON.toJSONString(knowledgeExportExcelFormat));
File file = new File(taskFileName);
if (!file.exists()) {
response = SdmResponse.failed("知识库文件不存在");
} else {
String taskSaveName = "仿真标准库_" + RandomUtil.generateString(6) + ".xlsx";
SystemOperate.outputHttpFileStream(httpServletResponse, taskFileName, taskSaveName);
file.delete();
}
}
return response;
}
@Override
public ResponseEntity<Object> onlyOfficeCallback(CallbackData callbackData) {
return null;