Compare commits

...

2 Commits

Author SHA1 Message Date
chenxudong d2219886a0 解决导入遇到的问题 2025-05-13 16:21:53 +08:00
chenxudong 309dad6895 增强导入工程时文件名的校验 2025-05-13 14:30:16 +08:00
3 changed files with 11 additions and 7 deletions

View File

@ -203,12 +203,12 @@ public class SysEdFileInfoController {
}
/**
* 从收藏夹移除
* 导入本地工程
*
* @param
* @return
*/
@GetMapping("/importPrj")
@RequestMapping("/importPrj")
@UserOperation(value = "导入本地工程", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE)
public ElectromagneticResult<?> importPrj(@RequestParam("file") MultipartFile file, @RequestParam(name = "templateCode", defaultValue = "bhdcfzrjzt", required = false) String templateCode) {
return edFileInfoService.importPrj(file, templateCode);

View File

@ -510,11 +510,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
.eq(EdFileRelation::getId1, importRelation.getId())
.eq(EdFileRelation::getId2, importRelation.getId2()));
if (Objects.isNull(dbRelation)) {
edFileRelationService.save(importRelation);
edFileRelationService.saveOrUpdate(importRelation);
} else {
// 如果导入的比线上的新则新增
if (importRelation.getUpdatedTime().after(dbRelation.getUpdatedTime())) {
edFileRelationService.save(importRelation);
edFileRelationService.saveOrUpdate(importRelation);
}
}
}
@ -529,7 +529,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
.eq(FileTagRelation::getTagId, importRelation.getId())
.eq(FileTagRelation::getFileId, importRelation.getFileId()));
if (Objects.isNull(dbRelation)) {
fileTagRelationService.save(importRelation);
fileTagRelationService.saveOrUpdate(importRelation);
} else {
if (!Objects.equals(importRelation.getEffectFlag(), dbRelation.getEffectFlag())) {
dbRelation.setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code);
@ -549,7 +549,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
.eq(EdFileFavorite::getCreatedBy, userId)
.eq(EdFileFavorite::getFileId, importFileFavorite.getFileId()));
if (Objects.isNull(dbFileFavorite)) {
fileFavoriteService.save(importFileFavorite);
fileFavoriteService.saveOrUpdate(importFileFavorite);
} else {
if (importFileFavorite.getUpdatedTime().after(dbFileFavorite.getUpdatedTime())) {
dbFileFavorite.setEffectFlag(importFileFavorite.getEffectFlag());
@ -1565,7 +1565,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
rolePermission.setRoleId(role.getId());
rolePermission.setFileId(id);
rolePermission.setPermissionCode(permission.getCode());
rolePermissionService.save(rolePermission);
rolePermissionService.saveOrUpdate(rolePermission);
}
}
}
@ -1604,6 +1604,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
List<File> files = FileUtil.loopFiles(destDir);
String tmpPath = FileUtil.normalize(destDir);
for (File importFile : files) {
Assert.isTrue(EleCommonUtil.isFileNameValid(importFile.getName()), "文件名称不符合规范");
String parentDir = FileUtil.normalize(importFile.getParent());
String relativeFilePath = parentDir.replace(tmpPath, "");
String fileType = FileUtil.getSuffix(importFile.getName());
@ -1641,6 +1642,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
String suffix = FileUtil.getSuffix(originalFilename);
String mainName = FileUtil.mainName(originalFilename);
Assert.isTrue(StrUtil.equals(suffix, "zip"), "不支持 {} 格式的工程文件", suffix);
Assert.isTrue(EleCommonUtil.isFileNameValid(originalFilename), "项目名称不符合规范");
// 检查工程是否存在
List<EdFileInfo> edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class).eq(EdFileInfo::getFileName, mainName)
.eq(EdFileInfo::getDataOwn, DataOwnEnum.SYS_PRJ.code)

View File

@ -3,6 +3,7 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
import com.electromagnetic.industry.software.common.enums.PublishEnum;
@ -82,6 +83,7 @@ public class FileTagRelationServiceImpl extends ServiceImpl<FileTagRelationMappe
for (String tagId : tagIds) {
isSuccess &= addTagToFile(fileId, tagId, createdBy);
}
edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).eq(EdFileInfo::getId, fileId).set(EdFileInfo::getPermanentDeleted, false));
if (isSuccess) {
String tags = edTagLibraryMapper.selectList(new LambdaQueryWrapper<EdTagLibrary>()