调通了层级沿用

This commit is contained in:
chenxudong 2024-12-31 10:16:57 +08:00
parent 5f3af77a5c
commit 0ec69f5d8f
2 changed files with 19 additions and 8 deletions

View File

@ -5,9 +5,11 @@ import com.electromagnetic.industry.software.common.util.UserThreadLocal;
import com.electromagnetic.industry.software.manage.mapper.EdFileRelationMapper;
import com.electromagnetic.industry.software.manage.pojo.models.EdFileRelation;
import com.electromagnetic.industry.software.manage.service.EdFileRelationService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class EdFileRelationServiceImpl implements EdFileRelationService {
@Resource

View File

@ -97,7 +97,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
.setPrjDir(true)
.setDataType(EleDataTypeEnum.FOLDER.code)
.setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code)
.setEffectFlag(EffectFlagEnum.EFFECT.code)
.setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code)
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
.setFilePath(newPrjId)
.setSort(1)
@ -268,7 +268,8 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
// 其余置为发布状态
LambdaUpdateWrapper<EdFileInfo> updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class)
.set(EdFileInfo::getDataStatus, EleDataStatusEnum.NOT_PUBLISHED.code)
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
.set(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)
.likeRight(EdFileInfo::getFilePath, prjId);
this.update(updateWrapper);
return ElectromagneticResultUtil.success(true);
@ -300,6 +301,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public ElectromagneticResult<?> follow(String sourceId, String targetId) {
try {
@ -314,7 +316,10 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
final int count = i;
EdFileInfo targetParentFile = targetEdFileInfos.stream()
.filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count - 1)
.collect(Collectors.toList()).get(0);
.collect(Collectors.toList()).stream().findFirst().orElse(null);
if (targetParentFile == null) {
continue;
}
List<EdFileInfo> sourceTmpEdFiles = sourceEdFileInfos.stream()
.filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count)
.collect(Collectors.toList());
@ -323,6 +328,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
.collect(Collectors.toList());
Map<String, EdFileInfo> sourceFileNameMap = sourceTmpEdFiles.stream().collect(Collectors.toMap(EdFileInfo::getFileName, e -> e));
List<String> targetFileNames = targetTmpEdFiles.stream().map(EdFileInfo::getFileName).collect(Collectors.toList());
int sort = targetTmpEdFiles.size();
for (EdFileInfo edFileInfo : sourceTmpEdFiles) {
String sourceFileName = edFileInfo.getFileName();
if (!targetFileNames.contains(sourceFileName)) {
@ -330,28 +336,31 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
EdFileInfo targetFile = new EdFileInfo();
int maxFolderId = Integer.parseInt(this.baseMapper.maxPrjId());
String newFolderId = String.valueOf(maxFolderId + 1);
String nowTimeStr = EleCommonUtil.getNowTimeStr();
String fileCode = commonService.createFileCode(targetParentFile.getId(), EleDataTypeEnum.FOLDER.desc, FILE_START_VERSION, nowTimeStr);
Date now = new Date();
targetFile.setId(newFolderId)
.setFileId(newFolderId)
.setFileName(sourceFile.getFileName())
.setFileVersion(FILE_START_VERSION)
.setPrjDir(true)
.setParentId(targetParentFile.getParentId())
.setFileTime(EleCommonUtil.getNowTimeStr())
.setParentId(targetParentFile.getId())
.setFileTime(nowTimeStr)
.setDataType(EleDataTypeEnum.FOLDER.code)
.setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code)
.setEffectFlag(EffectFlagEnum.EFFECT.code)
.setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code)
.setFileCode(fileCode)
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
.setFilePath(targetParentFile.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId)
.setSort(targetTmpEdFiles.size() + 1)
.setSort(++sort)
.setCreatedTime(now)
.setUpdatedTime(now)
.setCreatedBy(currentUserId)
.setUpdatedBy(currentUserId);
this.save(targetFile);
targetEdFileInfos.add(targetFile);
String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath());
fileSystemService.createDirectory(targetSysFilePath);
targetEdFileInfos = commonService.selectAllAdminFolder(targetId);
}
}
}