This commit is contained in:
s2042968 2025-01-03 15:38:38 +08:00
commit ebea20981b
3 changed files with 46 additions and 21 deletions

View File

@ -210,7 +210,7 @@ public class CommonService {
} }
} }
public List<ProjectVO> queryAllPrjInfo(boolean isAdminQuery) { public List<String> queryAllPrjInfo(boolean isAdminQuery) {
try { try {
LambdaQueryWrapper<EdFileInfo> queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) LambdaQueryWrapper<EdFileInfo> queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class)
@ -222,7 +222,7 @@ public class CommonService {
} }
List<String> ids = edFileInfoMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList()); List<String> ids = edFileInfoMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList());
List projectVOS = new ArrayList<>(); List<String> projectVOS = new ArrayList<>();
for (String id : ids) { for (String id : ids) {
List<EdFileInfo> edFileInfos = selectAllAdminFolder(id); List<EdFileInfo> edFileInfos = selectAllAdminFolder(id);
@ -246,8 +246,9 @@ public class CommonService {
treeNode.putExtra(ProjectVO.Fields.dataStatus, obj.getDataStatus()); treeNode.putExtra(ProjectVO.Fields.dataStatus, obj.getDataStatus());
})); }));
String jsonStr = JSONUtil.toJsonStr(trees); String jsonStr = JSONUtil.toJsonStr(trees);
ProjectVO projectVO = JSONUtil.toList(jsonStr, ProjectVO.class).get(0); projectVOS.add(jsonStr);
projectVOS.add(projectVO); // ProjectVO projectVO = JSONUtil.toList(jsonStr, ProjectVO.class).get(0);
// projectVOS.add(projectVO);
} else { } else {
TreeNodeConfig config = new TreeNodeConfig(); TreeNodeConfig config = new TreeNodeConfig();
config.setIdKey(FileProjectVO.Fields.categoryId); config.setIdKey(FileProjectVO.Fields.categoryId);
@ -261,8 +262,9 @@ public class CommonService {
treeNode.putExtra(FileProjectVO.Fields.dataStatus, obj.getDataStatus()); treeNode.putExtra(FileProjectVO.Fields.dataStatus, obj.getDataStatus());
})); }));
String jsonStr = JSONUtil.toJsonStr(trees); String jsonStr = JSONUtil.toJsonStr(trees);
FileProjectVO fileProjectVO = JSONUtil.toList(jsonStr, FileProjectVO.class).get(0); projectVOS.add(jsonStr);
projectVOS.add(fileProjectVO); // FileProjectVO fileProjectVO = JSONUtil.toList(jsonStr, FileProjectVO.class).get(0);
// projectVOS.add(fileProjectVO);
} }
} }
return projectVOS; return projectVOS;

View File

@ -29,6 +29,7 @@ import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO;
import com.electromagnetic.industry.software.manage.pojo.other.UploadRecordDTO; import com.electromagnetic.industry.software.manage.pojo.other.UploadRecordDTO;
import com.electromagnetic.industry.software.manage.pojo.req.*; import com.electromagnetic.industry.software.manage.pojo.req.*;
import com.electromagnetic.industry.software.manage.pojo.resp.FileInfoQueryPageVO; import com.electromagnetic.industry.software.manage.pojo.resp.FileInfoQueryPageVO;
import com.electromagnetic.industry.software.manage.pojo.resp.FileProjectVO;
import com.electromagnetic.industry.software.manage.pojo.resp.FileVersionViewVO; import com.electromagnetic.industry.software.manage.pojo.resp.FileVersionViewVO;
import com.electromagnetic.industry.software.manage.pojo.resp.UploadRecordVO; import com.electromagnetic.industry.software.manage.pojo.resp.UploadRecordVO;
import com.electromagnetic.industry.software.manage.service.EdFileInfoService; import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
@ -169,6 +170,13 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
*/ */
@Override @Override
public ElectromagneticResult<?> tree() { public ElectromagneticResult<?> tree() {
List<String> strings = commonService.queryAllPrjInfo(false);
List<FileProjectVO> res = new ArrayList<>();
strings.forEach(e -> {
FileProjectVO fileProjectVO = JSONUtil.toList(e, FileProjectVO.class).get(0);
res.add(fileProjectVO);
});
res.sort(Comparator.comparing(FileProjectVO::getSort));
return ElectromagneticResultUtil.success(commonService.queryAllPrjInfo(false)); return ElectromagneticResultUtil.success(commonService.queryAllPrjInfo(false));
} }
@ -564,30 +572,38 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
.eq(EdFileInfo::getEffectFlag, true)); .eq(EdFileInfo::getEffectFlag, true));
resFiles.addAll(edFileInfos); resFiles.addAll(edFileInfos);
} }
String prjId = resFiles.get(0).getFilePath().split(MYSQL_FILE_PATH_SPLIT)[0];
List<EdFileInfo> prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class).eq(EdFileInfo::getPrjDir, true).eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); List<EdFileInfo> prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class)
.likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT)
.eq(EdFileInfo::getPrjDir, true)
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code));
EdFileInfo prjFileInfo = this.baseMapper.selectById(prjId);
Map<String, EdFileInfo> prjFoldersMap = prjFolders.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); Map<String, EdFileInfo> prjFoldersMap = prjFolders.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e));
Map<String, EdFileInfo> tmps = resFiles.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); Map<String, EdFileInfo> tmps = resFiles.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e));
tmps.putAll(prjFoldersMap);
resFiles.clear(); resFiles.clear();
resFiles.addAll(tmps.values()); resFiles.addAll(tmps.values());
resFiles.addAll(prjFoldersMap.values()); resFiles.add(prjFileInfo);
String prjName = commonService.getPrjNameByDbPath(resFiles.get(0).getFilePath()); String prjName = commonService.getPrjNameByDbPath(resFiles.get(0).getFilePath());
List<EdFileInfo> folders = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FOLDER.code)).collect(Collectors.toList()); List<EdFileInfo> folders = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FOLDER.code)).collect(Collectors.toList());
List<EdFileInfo> files = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).collect(Collectors.toList()); List<EdFileInfo> files = resFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).collect(Collectors.toList());
for (EdFileInfo edFileInfo : folders) { for (EdFileInfo edFileInfo : folders) {
String destFolderPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getFileSysPath(edFileInfo.getFileId()); // file String destFolderPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFilePath()); // file
fileSystemService.createDirectory(destFolderPath); fileSystemService.createDirectory(destFolderPath);
} }
for (EdFileInfo edFileInfo : files) { for (EdFileInfo edFileInfo : files) {
String filePath = commonService.getFileSysPath(edFileInfo.getFileId()); // file String filePath = commonService.getFileSysPath(edFileInfo.getFilePath()); // file
String destPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFileId()); String destPath = downloadDataDir + File.separator + prjName + File.separator + commonService.getDbPath(edFileInfo.getFilePath());
fileSystemService.copyFile(filePath, destPath); fileSystemService.copyFile(filePath, destPath);
} }
String mysqlInfo = JSONUtil.toJsonStr(resFiles); String mysqlInfo = JSONUtil.toJsonStr(resFiles);
fileSystemService.writeStringToFile(downloadDataDir + File.separator + prjName + File.separator + "mysql.info", mysqlInfo); fileSystemService.writeStringToFile(downloadDataDir + File.separator + prjName + File.separator + "mysql.info", mysqlInfo);
String exportZipFile = downloadDataDir + File.separator + prjName + ".zip"; String exportZipFile = downloadDataDir + File.separator + prjName + ".zip";
String exportColibFile = downloadDataDir + File.separator + prjName + EXPORT_FILE_SUFFIX; String exportColibFile = downloadDataDir + File.separator + prjName + EXPORT_FILE_SUFFIX;
ZipUtil.zip(downloadDataDir + File.separator + prjName + File.separator + prjName, exportZipFile); if (FileUtil.exist(exportColibFile)) {
FileUtil.del(exportColibFile);
}
ZipUtil.zip(downloadDataDir + File.separator + prjName, exportZipFile);
AES aes = SecureUtil.aes(password.getBytes()); AES aes = SecureUtil.aes(password.getBytes());
try ( try (
InputStream inputStream = Files.newInputStream(Paths.get(exportZipFile)); InputStream inputStream = Files.newInputStream(Paths.get(exportZipFile));
@ -600,6 +616,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
throw new BizException(-1, info); throw new BizException(-1, info);
} finally { } finally {
fileSystemService.deleteFile(exportZipFile); fileSystemService.deleteFile(exportZipFile);
fileSystemService.deleteFile(downloadDataDir + File.separator + prjName);
} }
File file = FileUtil.newFile(exportColibFile); File file = FileUtil.newFile(exportColibFile);
FileSystemResource fileSystemResource = new FileSystemResource(file); FileSystemResource fileSystemResource = new FileSystemResource(file);
@ -631,8 +648,8 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
public ElectromagneticResult<?> upload(String parentId, MultipartFile file, Integer strategy) { public ElectromagneticResult<?> upload(String parentId, MultipartFile file, Integer strategy) {
Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG); Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG);
EdFileInfo fileInfo = this.baseMapper.selectById(parentId); // EdFileInfo fileInfo = this.baseMapper.selectById(parentId);
Assert.isTrue(fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code) && !fileInfo.getPrjDir(), "层级目录不允许上传文件"); // Assert.isTrue(fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code) && !fileInfo.getPrjDir(), "层级目录不允许上传文件");
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
String mainName = FileUtil.mainName(fileName); String mainName = FileUtil.mainName(fileName);
String suffix = FileUtil.getSuffix(fileName); String suffix = FileUtil.getSuffix(fileName);

View File

@ -3,6 +3,7 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.StrFormatter; import cn.hutool.core.text.StrFormatter;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -20,6 +21,7 @@ import com.electromagnetic.industry.software.common.util.UserThreadLocal;
import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper;
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO; import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
import com.electromagnetic.industry.software.manage.pojo.resp.ProjectVO;
import com.electromagnetic.industry.software.manage.service.EdPrjService; import com.electromagnetic.industry.software.manage.service.EdPrjService;
import com.electromagnetic.industry.software.manage.service.FileSystemService; import com.electromagnetic.industry.software.manage.service.FileSystemService;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -28,10 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.*; import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.*;
@ -215,7 +214,14 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
*/ */
@Override @Override
public ElectromagneticResult<?> queryAllPrjInfo() { public ElectromagneticResult<?> queryAllPrjInfo() {
return ElectromagneticResultUtil.success(commonService.queryAllPrjInfo(true)); List<String> res = commonService.queryAllPrjInfo(true);
List<ProjectVO> projectVOS = new ArrayList<>();
res.forEach(e -> {
ProjectVO projectVO = JSONUtil.toList(e, ProjectVO.class).get(0);
projectVOS.add(projectVO);
});
projectVOS.sort(Comparator.comparing(ProjectVO::getSort));
return ElectromagneticResultUtil.success(projectVOS);
} }
/** /**
@ -349,7 +355,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
.setFileTime(nowTimeStr) .setFileTime(nowTimeStr)
.setDataType(EleDataTypeEnum.FOLDER.code) .setDataType(EleDataTypeEnum.FOLDER.code)
.setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code) .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code)
.setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code) .setEffectFlag(EffectFlagEnum.EFFECT.code)
.setFileCode(fileCode) .setFileCode(fileCode)
.setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code)
.setFilePath(targetParentFile.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) .setFilePath(targetParentFile.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId)