合并修改冲突

This commit is contained in:
s2042968 2024-12-05 15:14:44 +08:00
commit 3bddcc2437
6 changed files with 50 additions and 20 deletions

View File

@ -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;
@ -133,7 +136,8 @@ public class EDDataServiceImpl implements EDDataService {
categoryParent = categoryParentList.get(0);
filePathOfFolder = categoryParent.getCategoryId() + FOLDER_NAME_SEPARATOR + categoryParent.getCategoryName();
if(edDataInfoParent != null) {
filePathOfFolder = filePathOfFolder + File.separator + edDataInfoParent.getDataName();
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);

View File

@ -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";
}

View File

@ -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);
}
}

View File

@ -49,7 +49,7 @@
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
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,

View File

@ -38,7 +38,7 @@
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
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,

View File

@ -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<String, String> result = new HashMap<>();
List<String> 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<Integer> 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 需要验证如果一个分片上传一半网络断开则该分片的存储情况