修复:重名文件建立关系
This commit is contained in:
parent
3755ce201a
commit
086ec057a0
|
|
@ -1,6 +1,7 @@
|
|||
package com.electromagnetic.industry.software.manage.service;
|
||||
|
||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
||||
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.CreateFolderDTO;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.FileChunkDTO;
|
||||
import com.electromagnetic.industry.software.manage.pojo.req.FileInfoQueryDTO;
|
||||
|
|
@ -164,4 +165,10 @@ public interface EdFileInfoService {
|
|||
* @return
|
||||
*/
|
||||
ElectromagneticResult<?> queryChildFolder(String parentId);
|
||||
|
||||
/**
|
||||
* 处理重名文件,文件名后+_1
|
||||
* @param fileInfo
|
||||
*/
|
||||
void resetFileInfoName(EdFileInfo fileInfo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -561,7 +561,8 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
|||
update2FileSystem(allObjs, prjDirPath);
|
||||
}
|
||||
|
||||
private void resetFileInfoName(EdFileInfo fileInfo) {
|
||||
@Override
|
||||
public void resetFileInfoName(EdFileInfo fileInfo) {
|
||||
String fileName = fileInfo.getFileName();
|
||||
String parentId = fileInfo.getParentId();
|
||||
for (int i = 0; i < 1000; ++i) {
|
||||
|
|
|
|||
|
|
@ -22,7 +22,9 @@ import com.electromagnetic.industry.software.manage.pojo.req.CheckNameUniqueRequ
|
|||
import com.electromagnetic.industry.software.manage.pojo.resp.FileRelationViewVO;
|
||||
import com.electromagnetic.industry.software.manage.pojo.resp.FileSimpleInfoVO;
|
||||
import com.electromagnetic.industry.software.manage.service.EdFileRelationService;
|
||||
import com.electromagnetic.industry.software.manage.service.FileSystemService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
|
@ -42,6 +44,10 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
EdFileInfoServiceImpl edFileInfoService;
|
||||
@Resource
|
||||
private CommonService commonService;
|
||||
@Resource
|
||||
private FileSystemService fileSystemService;
|
||||
@Autowired
|
||||
private EdFileInfoServiceImpl edFileInfoServiceImpl;
|
||||
|
||||
/**
|
||||
* 创建文件关系
|
||||
|
|
@ -197,42 +203,43 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
String suffix = FileUtil.getSuffix(fileName);
|
||||
EdFileInfo newEdFileInfo = new EdFileInfo();
|
||||
newEdFileInfo.newInit();
|
||||
// 首先检查是否是同名文件
|
||||
try {
|
||||
|
||||
Assert.isTrue(EleCommonUtil.isFileNameValid(fileName), NAME_VALID_MSG);
|
||||
Long count = edFileInfoService.count(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getParentId, parentId)
|
||||
.eq(EdFileInfo::getFileName, mainName)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||
.eq(EdFileInfo::getFileType, suffix));
|
||||
if (count > 0) {
|
||||
edFileInfoService.handUploadRepeatFile(parentId, file, 3);
|
||||
} else {
|
||||
EdFileInfo parentFolderInfo = edFileInfoService.getOne(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
|
||||
EdFileInfo parentFileInfo = edFileInfoMapper.selectOne(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||
.eq(EdFileInfo::getId, parentId)
|
||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code));
|
||||
|
||||
String codePathByDbPath = commonService.getCodePathByDbPath(parentFolderInfo.getFilePath());
|
||||
String codePathByDbPath = commonService.getCodePathByDbPath(parentFileInfo.getFilePath());
|
||||
String fileCode = commonService.createFileCode(codePathByDbPath, suffix, FILE_START_VERSION, newEdFileInfo.getFileTime());
|
||||
newEdFileInfo.setParentId(parentId)
|
||||
.setFileCode(fileCode)
|
||||
.setFileName(mainName)
|
||||
.setFileType(suffix)
|
||||
.setFileVersion(FILE_START_VERSION)
|
||||
.setFileTime(newEdFileInfo.getFileTime())
|
||||
.setFileSize(file.getSize())
|
||||
.setFilePath(parentFolderInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newEdFileInfo.getId())
|
||||
.setFilePath(parentFileInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newEdFileInfo.getId())
|
||||
.setDataType(EleDataTypeEnum.FILE.code)
|
||||
.setDataStatus(PublishEnum.PUBLISHED.getCode())
|
||||
.setEffectFlag(EffectFlagEnum.EFFECT.code)
|
||||
.setFileCode(fileCode)
|
||||
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
|
||||
.setPrjDir(false);
|
||||
|
||||
// 文件名加”_1“,存为新文件
|
||||
if (count > 0) {
|
||||
edFileInfoService.resetFileInfoName(newEdFileInfo);
|
||||
}
|
||||
|
||||
edFileInfoService.saveOrUpdate(newEdFileInfo);
|
||||
String fileDestPath = commonService.getFileSysPath(newEdFileInfo.getFilePath());
|
||||
FileUtil.writeFromStream(file.getInputStream(), fileDestPath);
|
||||
EleCommonUtil.encryptFile(fileDestPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes()));
|
||||
// fileSystemService.save(FileUtil.getInputStream(fileDestPath), fileDestPath); // 这里会导致文件大小为0,考虑到当前的系统为OS文件系统,暂不处理
|
||||
|
||||
// 创建文件关系
|
||||
EdFileRelation relation = new EdFileRelation();
|
||||
|
|
@ -240,7 +247,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
|||
relation.setId2(newEdFileInfo.getId());
|
||||
relation.setRelationship(descrption);
|
||||
createRelation(relation);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
newEdFileInfo.setParentId(parentId)
|
||||
.setFileName(mainName)
|
||||
|
|
|
|||
Loading…
Reference in New Issue