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