Merge remote-tracking branch 'origin/main'

This commit is contained in:
2026-02-26 14:08:46 +08:00
28 changed files with 767 additions and 433 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

@@ -229,6 +229,10 @@ public class FileMetadataInfo implements Serializable {
@TableField(value = "analysisDirectionName", insertStrategy = FieldStrategy.NEVER,select = false,updateStrategy = FieldStrategy.NEVER)
private String analysisDirectionName;
@Schema(description = "知识库名称,只有列表展示使用")
@TableField(value = "knowledgeBaseName", insertStrategy = FieldStrategy.NEVER,select = false,updateStrategy = FieldStrategy.NEVER)
private String knowledgeBaseName;
@Schema(description = "关联工况库信息")
@TableField(exist = false)
private List<SimulationPoolInfo> simulationPoolInfoList;

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/";
@@ -956,6 +960,15 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
return SdmResponse.failed("文件不存在");
}
if (DataTypeEnum.FILE.getValue() == fileMetadataInfo.getDataType()) {
List<FileMetadataInfo> list = Arrays.asList(fileMetadataInfo);
setProjectName(list);
fileMetadataInfo = list.get(0);
FileMetadataInfo dirMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, fileMetadataInfo.getParentId()).one();
String knowledgeBaseName = extractRelativePath(dirMetadataInfo);
fileMetadataInfo.setKnowledgeBaseName(knowledgeBaseName);
}
// 封装返回结果
FileMetadataInfoResp fileMetadataInfoResp = new FileMetadataInfoResp();
BeanUtils.copyProperties(fileMetadataInfo, fileMetadataInfoResp);
@@ -3829,6 +3842,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;