diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java index d1e4cf1..4bf0fb7 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java @@ -4,6 +4,7 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.impl; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.symmetric.AES; @@ -25,9 +26,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import electromagnetic.data.framework.share.constants.ElectromagneticConstants; import electromagnetic.data.framework.share.exception.LoggerConstant; import electromagnetic.data.framework.share.id.IdWorker; import electromagnetic.data.framework.share.model.ElectromagneticResultUtil; +import electromagnetic.data.framework.share.util.EleCommonUtil; import electromagnetic.data.framework.share.util.EleZipUtil; import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; @@ -132,8 +135,9 @@ public class EDDataServiceImpl implements EDDataService { if(categoryParentList.size() > 0){ categoryParent = categoryParentList.get(0); filePathOfFolder = categoryParent.getCategoryId() + FOLDER_NAME_SEPARATOR + categoryParent.getCategoryName(); - if(edDataInfoParent != null){ - filePathOfFolder = filePathOfFolder + File.separator + edDataInfoParent.getDataName(); + if(edDataInfoParent != null) { + String fileType = StrUtil.isEmpty(edDataInfoParent.getFileType()) ? "" : "." + edDataInfoParent.getFileType(); + filePathOfFolder = filePathOfFolder + File.separator + edDataInfoParent.getDataName() + fileType; } } @@ -233,13 +237,14 @@ public class EDDataServiceImpl implements EDDataService { EDDataInfo edDataInfo = edDataInfoList.get(0); String filePathOfFolder = getFilePathOfFolder(edDataInfo.getCategoryId()); - String fileStorageFullPath = dataStoragePath + filePathOfFolder + File.separator + edDataInfo.getDataName(); + String fileType = StrUtil.isEmpty(edDataInfo.getFileType()) ? "" : "." + edDataInfo.getFileType(); + String fileStorageFullPath = dataStoragePath + filePathOfFolder + File.separator + edDataInfo.getDataName() + fileType; if (!FileUtil.exist(fileStorageFullPath)){ throw new Exception("文件不存在"); } - String fileNameNew = parames.getName(); + String fileNameNew = parames.getName() + fileType; if(fileNameNew != null && fileNameNew != "" && !fileNameNew.equals(edDataInfo.getDataName())) { FileUtil.rename(Paths.get(fileStorageFullPath) ,fileNameNew,true); } @@ -274,7 +279,7 @@ public class EDDataServiceImpl implements EDDataService { parames.setParentId(edDataInfo.getDataId()); childFileCount += getChildFileCount(parames); } - else if(edDataInfo.getDataType().equals(dataTypeFile)) + else if(edDataInfo.getDataType().equals(dataTypeFile) && edDataInfo.getEffectFlag().equals(1)) { ++childFileCount; } @@ -305,13 +310,9 @@ public class EDDataServiceImpl implements EDDataService { // 获取文件名 String fileFullName = fileInput.getOriginalFilename(); // 获取文件类型 - String fileType = ""; + String fileType = EleCommonUtil.getFileType(fileFullName); // 获取文件名称 - String fileName = ""; - if (fileFullName.lastIndexOf(".") != -1 && fileFullName.lastIndexOf(".") != 0) { - fileType = fileFullName.substring(fileFullName.lastIndexOf(".") + 1); - fileName = fileFullName.substring(fileFullName.lastIndexOf(".")); - } + String fileName = EleCommonUtil.getFileName(fileFullName); // 判断文件名称是否存在 EDDataParams folderParames = new EDDataParams(); @@ -342,7 +343,7 @@ public class EDDataServiceImpl implements EDDataService { edDataInfo.setModifier(parames.getUserId()); edDataInfo.setModifierName(parames.getUserName()); edDataInfo.setCategoryId(parames.getParentId()); - edDataInfo.setDataName(fileFullName); + edDataInfo.setDataName(fileName); edDataInfo.setNote(parames.getNote()); edDataInfo.setFileType(fileType); edDataInfo.setGmtBatchUpload(parames.getGmtBatchUpload()); @@ -561,7 +562,7 @@ public class EDDataServiceImpl implements EDDataService { String dateString = sdf.format(date); zipPathFileName = dataCachePath + "/exportData_" + dateString; - enCodeZipPathFileName = dataCachePath + "/exportData_" + dateString + ".comac"; + enCodeZipPathFileName = dataCachePath + "/exportData_" + dateString + ElectromagneticConstants.EXPORT_FILE_SUFFIX; ZipUtil.zip(exportDataCachePath, zipPathFileName); diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/constants/ElectromagneticConstants.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/constants/ElectromagneticConstants.java index 85ff251..61f7a87 100644 --- a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/constants/ElectromagneticConstants.java +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/constants/ElectromagneticConstants.java @@ -38,4 +38,6 @@ public final class ElectromagneticConstants { public static final String TAG_SEGMENT="TagSegment"; public static final String TYPE_SEGMENT="TypeSegment"; + + public static final String EXPORT_FILE_SUFFIX = ".colib"; } \ No newline at end of file diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/EleCommonUtil.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/EleCommonUtil.java new file mode 100644 index 0000000..f0aa751 --- /dev/null +++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/util/EleCommonUtil.java @@ -0,0 +1,25 @@ +package electromagnetic.data.framework.share.util; + +public final class EleCommonUtil { + + public static String getFileName(String fileFullName) { + if (fileFullName == null) { + return ""; + } + if (!fileFullName.contains(".")) { + return fileFullName; + } + + int index = fileFullName.lastIndexOf("."); + return fileFullName.substring(0, index); + } + + public static String getFileType(String fileFullName) { + if (fileFullName == null || !fileFullName.contains(".")) { + return ""; + } + int index = fileFullName.lastIndexOf("."); + return fileFullName.substring(index + 1); + } + +} diff --git a/infrastructure/repository/src/main/resources/sqlmapper/CategoryMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/CategoryMapper.xml index 33c9002..8ef2388 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/CategoryMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/CategoryMapper.xml @@ -49,7 +49,7 @@ SELECT LAST_INSERT_ID() - insert into ed_data_info (id, + replace into ed_data_info (id, category_type_id, parent_id, category_id, category_name, category_status, creator, creator_name, gmt_create, diff --git a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml index 619da42..9519cf3 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml @@ -38,7 +38,7 @@ SELECT LAST_INSERT_ID() - insert into ed_data_info (category_id, + replace into ed_data_info (category_id, data_id, data_no, data_name, data_type, file_type, version, content, implant_json, data_status, diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/EDDataFacadeImpl.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/EDDataFacadeImpl.java index dda5b8a..3023141 100644 --- a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/EDDataFacadeImpl.java +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/EDDataFacadeImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.codec.Base64; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ZipUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.symmetric.AES; @@ -17,6 +18,7 @@ import com.electromagnetic.industry.software.data.manage.request.indicator.FileC import com.electromagnetic.industry.software.data.manage.request.indicator.FileChunkResultDTO; import com.electromagnetic.industry.software.data.manage.response.indicator.EDDataPageResponse; import com.electromagnetic.industry.software.data.manage.service.mappers.EDDataMappers; +import electromagnetic.data.framework.share.constants.ElectromagneticConstants; import electromagnetic.data.framework.share.id.IdWorker; import electromagnetic.data.framework.share.model.ElectromagneticResult; import electromagnetic.data.framework.share.model.ElectromagneticResultUtil; @@ -193,7 +195,8 @@ public class EDDataFacadeImpl implements EDDataFacade { EDDataInfo edDataInfo = edDataService.getDataInfo(parames); Assert.isTrue(edDataInfo != null, "没有找到该下载文件"); String filePathOfFolder = edDataService.getFilePathOfFolder(edDataInfo.getCategoryId()); - String filePath = storageFilePath + "/" + filePathOfFolder + "/" + edDataInfo.getDataName(); + String fileType = StrUtil.isEmpty(edDataInfo.getFileType()) ? "" : "." + edDataInfo.getFileType(); + String filePath = storageFilePath + "/" + filePathOfFolder + "/" + edDataInfo.getDataName() + fileType; Assert.isTrue(FileUtil.exist(filePath), "下载文件不存在。"); FileSystemResource fileSystemResource = new FileSystemResource(filePath); @@ -228,7 +231,7 @@ public class EDDataFacadeImpl implements EDDataFacade { Map result = new HashMap<>(); List dataIdList = Arrays.asList(dataIdArr.split(",")); - if(dataIdList.size() > 0) { + if(!dataIdList.isEmpty()) { String filePath = edDataService.exportData(dataIdList); Assert.isTrue(FileUtil.exist(filePath), "下载文件不存在。"); @@ -313,13 +316,12 @@ public class EDDataFacadeImpl implements EDDataFacade { return new ArrayList<>(); } - List uploadedFileChunkNums = FileUtil.listFileNames(destPath) + return FileUtil.listFileNames(destPath) .stream() - .filter(e -> !e.endsWith(".comac")) + .filter(e -> !e.endsWith(ElectromagneticConstants.EXPORT_FILE_SUFFIX)) .map(e -> e.replace(UPLOAD_FILE_CHUNK_SUFFIX, "")) .map(Integer::parseInt) .collect(Collectors.toList()); - return uploadedFileChunkNums; } // TODO 需要验证如果一个分片上传一半网络断开,则该分片的存储情况。