refactor(测试计划): 导出用例

This commit is contained in:
WangXu10 2024-08-09 16:08:04 +08:00 committed by Craftsman
parent 545077d397
commit 626b423396
3 changed files with 9 additions and 15 deletions

View File

@ -56,6 +56,7 @@ import io.metersphere.system.utils.ServiceUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.IndexedColors;
@ -538,16 +539,9 @@ public class FunctionalCaseFileService {
List<FunctionalCaseExcelData> excelData = parseCaseData2ExcelData(subIds, rowMergeInfo, request, customFields, moduleMap, parameter.getParamValue()); List<FunctionalCaseExcelData> excelData = parseCaseData2ExcelData(subIds, rowMergeInfo, request, customFields, moduleMap, parameter.getParamValue());
List<List<Object>> data = parseExcelData2List(headList, excelData); List<List<Object>> data = parseExcelData2List(headList, excelData);
File createFile = new File(tmpZipPath + File.separatorChar + "Metersphere_case_" + project.getName() + count.get() + ".xlsx"); File createFile = new File(FilenameUtils.normalize(LocalRepositoryDir.getSystemTempDir() + File.separator + "Metersphere_case_" + project.getName() + count.get() + ".xlsx"));
if (!createFile.exists()) {
try {
createFile.createNewFile();
} catch (IOException e) {
throw new MSException(e);
}
}
//生成临时EXCEL //生成临时EXCEL
EasyExcel.write(createFile) EasyExcel.write(createFile.getAbsolutePath())
.head(Optional.ofNullable(headList).orElse(new ArrayList<>())) .head(Optional.ofNullable(headList).orElse(new ArrayList<>()))
.registerWriteHandler(handler) .registerWriteHandler(handler)
.registerWriteHandler(writeHandler) .registerWriteHandler(writeHandler)
@ -873,7 +867,7 @@ public class FunctionalCaseFileService {
Project project = projectMapper.selectByPrimaryKey(projectId); Project project = projectMapper.selectByPrimaryKey(projectId);
byte[] bytes; byte[] bytes;
FileRequest fileRequest = new FileRequest(); FileRequest fileRequest = new FileRequest();
fileRequest.setFileName(tasksFirst.getFileId().concat(tasksFirst.getFileType())); fileRequest.setFileName(tasksFirst.getFileId().concat(".").concat(tasksFirst.getFileType()));
fileRequest.setFolder(DefaultRepositoryDir.getExportExcelTempDir()); fileRequest.setFolder(DefaultRepositoryDir.getExportExcelTempDir());
fileRequest.setStorage(StorageType.MINIO.name()); fileRequest.setStorage(StorageType.MINIO.name());
try { try {
@ -881,7 +875,7 @@ public class FunctionalCaseFileService {
} catch (Exception e) { } catch (Exception e) {
throw new MSException("get file error"); throw new MSException("get file error");
} }
String fileName = "Metersphere_case_" + project.getName() + tasksFirst.getFileType(); String fileName = "Metersphere_case_" + project.getName() + "." + tasksFirst.getFileType();
try { try {
return ResponseEntity.ok() return ResponseEntity.ok()

View File

@ -9,6 +9,7 @@ import io.metersphere.functional.socket.ExportWebSocketHandler;
import io.metersphere.functional.xmind.domain.FunctionalCaseXmindDTO; import io.metersphere.functional.xmind.domain.FunctionalCaseXmindDTO;
import io.metersphere.functional.xmind.domain.FunctionalCaseXmindData; import io.metersphere.functional.xmind.domain.FunctionalCaseXmindData;
import io.metersphere.functional.xmind.utils.XmindExportUtil; import io.metersphere.functional.xmind.utils.XmindExportUtil;
import io.metersphere.sdk.constants.LocalRepositoryDir;
import io.metersphere.sdk.constants.ModuleConstants; import io.metersphere.sdk.constants.ModuleConstants;
import io.metersphere.sdk.constants.MsgType; import io.metersphere.sdk.constants.MsgType;
import io.metersphere.sdk.dto.ExportMsgDTO; import io.metersphere.sdk.dto.ExportMsgDTO;
@ -20,10 +21,10 @@ import io.metersphere.system.constants.ExportConstants;
import io.metersphere.system.dto.sdk.BaseTreeNode; import io.metersphere.system.dto.sdk.BaseTreeNode;
import io.metersphere.system.dto.sdk.TemplateCustomFieldDTO; import io.metersphere.system.dto.sdk.TemplateCustomFieldDTO;
import io.metersphere.system.manager.ExportTaskManager; import io.metersphere.system.manager.ExportTaskManager;
import io.metersphere.system.uid.IDGenerator;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -116,8 +117,7 @@ public class FunctionalCaseXmindService {
try { try {
FunctionalCaseXmindData xmindData = buildXmindData(ids, request); FunctionalCaseXmindData xmindData = buildXmindData(ids, request);
File tmpFile = new File(getClass().getClassLoader().getResource(StringUtils.EMPTY).getPath() + File tmpFile = new File(FilenameUtils.normalize(LocalRepositoryDir.getSystemTempDir() + File.separator + request.getFileId() + "." + XMIND));
File.separatorChar + EXPORT_CASE_TMP_DIR + "_" + IDGenerator.nextStr() + ".xmind");
List<TemplateCustomFieldDTO> templateCustomFields = functionalCaseFileService.getCustomFields(request.getProjectId()); List<TemplateCustomFieldDTO> templateCustomFields = functionalCaseFileService.getCustomFields(request.getProjectId());
TemplateCustomFieldDTO templateCustomFieldDTO = templateCustomFields.stream().filter(item -> StringUtils.equalsIgnoreCase(item.getFieldName(), Translator.get("custom_field.functional_priority"))).findFirst().get(); TemplateCustomFieldDTO templateCustomFieldDTO = templateCustomFields.stream().filter(item -> StringUtils.equalsIgnoreCase(item.getFieldName(), Translator.get("custom_field.functional_priority"))).findFirst().get();
XmindExportUtil.export(xmindData, request, tmpFile, templateCustomFieldDTO); XmindExportUtil.export(xmindData, request, tmpFile, templateCustomFieldDTO);

View File

@ -59,7 +59,7 @@ public class ExportTaskManager {
exportTask.setUpdateUser(userId); exportTask.setUpdateUser(userId);
exportTask.setUpdateTime(System.currentTimeMillis()); exportTask.setUpdateTime(System.currentTimeMillis());
exportTask.setProjectId(projectId); exportTask.setProjectId(projectId);
exportTask.setFileType(fileId); exportTask.setFileId(fileId);
exportTaskMapper.insertSelective(exportTask); exportTaskMapper.insertSelective(exportTask);
return exportTask; return exportTask;
} }