From fe74d09a634227ebaaf7407230d0e918494f5b70 Mon Sep 17 00:00:00 2001 From: yangyang01000846 <15195822163@163.com> Date: Thu, 20 Nov 2025 14:20:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E5=88=97=E8=A1=A8=E6=94=AF=E6=8C=81=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BA=BA=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdm/common/entity/req/data/QueryDirReq.java | 2 +- .../com/sdm/data/model/req/FileSearchReq.java | 5 +++++ .../com/sdm/data/model/req/QueryBigFileReq.java | 3 +++ .../service/impl/DataStorageAnalysisImpl.java | 9 +++++++++ .../impl/MinioFileIDataFileServiceImpl.java | 17 +++++++++++++++-- 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/com/sdm/common/entity/req/data/QueryDirReq.java b/common/src/main/java/com/sdm/common/entity/req/data/QueryDirReq.java index a47d1d77..dcac6ea1 100644 --- a/common/src/main/java/com/sdm/common/entity/req/data/QueryDirReq.java +++ b/common/src/main/java/com/sdm/common/entity/req/data/QueryDirReq.java @@ -15,7 +15,7 @@ public class QueryDirReq extends BaseReq { private String fileName; @Schema(description = "上传用户ID") - private Long uploadUserId; + private String uploadUserId; // 1项目,2阶段,3学科,4学科下文件列表 @Schema(description = "类型: 1项目, 2阶段, 3学科, 4学科下文件列表", defaultValue = "0") diff --git a/data/src/main/java/com/sdm/data/model/req/FileSearchReq.java b/data/src/main/java/com/sdm/data/model/req/FileSearchReq.java index d2cab4ec..a2c6ba11 100644 --- a/data/src/main/java/com/sdm/data/model/req/FileSearchReq.java +++ b/data/src/main/java/com/sdm/data/model/req/FileSearchReq.java @@ -77,4 +77,9 @@ public class FileSearchReq extends BaseReq { */ @Schema(description = "是否过滤空数据") private boolean filterEmptyData; + + @Schema(description = "上传人id") + private String uploadUserId; + + } \ No newline at end of file diff --git a/data/src/main/java/com/sdm/data/model/req/QueryBigFileReq.java b/data/src/main/java/com/sdm/data/model/req/QueryBigFileReq.java index 78140229..deab044c 100644 --- a/data/src/main/java/com/sdm/data/model/req/QueryBigFileReq.java +++ b/data/src/main/java/com/sdm/data/model/req/QueryBigFileReq.java @@ -49,4 +49,7 @@ public class QueryBigFileReq extends BaseReq { @Schema(description = "文件业务类型(1:模型文件 2:仿真报告、3:计算文件、4:曲线文件、5:云图文件,6:网格文件,7:计算过程文件)") private Integer fileBizType; + @Schema(description = "上传人id") + private String uploadUserId; + } diff --git a/data/src/main/java/com/sdm/data/service/impl/DataStorageAnalysisImpl.java b/data/src/main/java/com/sdm/data/service/impl/DataStorageAnalysisImpl.java index 4e15acd6..4afdfbe5 100644 --- a/data/src/main/java/com/sdm/data/service/impl/DataStorageAnalysisImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/DataStorageAnalysisImpl.java @@ -26,6 +26,7 @@ import com.sdm.data.model.req.QueryBigFileReq; import com.sdm.data.service.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -33,6 +34,7 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; @@ -283,6 +285,12 @@ public class DataStorageAnalysisImpl implements DataStorageAnalysis { if (queryBigFileReq.getFileSize() != null && queryBigFileReq.getFileSizeUnit() != null) { fileSizeInBytes = convertToBytes(queryBigFileReq.getFileSize(), queryBigFileReq.getFileSizeUnit()); } + List userIds = StringUtils.isBlank(queryBigFileReq.getUploadUserId()) + ? new ArrayList<>() + : Arrays.stream(queryBigFileReq.getUploadUserId().split(",")) + .filter(StringUtils::isNotBlank) + .map(Long::valueOf) + .collect(Collectors.toList()); List fileIds = fileStorageService.lambdaQuery() .select(FileStorage::getFileId) .eq(ObjectUtils.isNotEmpty(queryBigFileReq.getDirId()), FileStorage::getDirId, queryBigFileReq.getDirId()) @@ -292,6 +300,7 @@ public class DataStorageAnalysisImpl implements DataStorageAnalysis { .gt(ObjectUtils.isNotEmpty(queryBigFileReq.getStartTime()), FileStorage::getCreateTime, queryBigFileReq.getStartTime()) .lt(ObjectUtils.isNotEmpty(queryBigFileReq.getEndTime()), FileStorage::getCreateTime, queryBigFileReq.getEndTime()) .gt(ObjectUtils.isNotEmpty(fileSizeInBytes), FileStorage::getFileSize, fileSizeInBytes) + .in(org.apache.commons.collections4.CollectionUtils.isNotEmpty(userIds), FileStorage::getUserId, userIds) .list().stream() .map(FileStorage::getFileId) .collect(Collectors.toList()); diff --git a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java index ed6e8625..67f910b9 100644 --- a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java @@ -633,12 +633,18 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { if (ObjectUtils.isNotEmpty(fileMetadataInfo)) { queryBigFileReq.setDirId(fileMetadataInfo.getId()); } - BeanUtils.copyProperties(minioFileSearchReq, queryBigFileReq); List fileIdList =dataStorageAnalysis.getListBigFileId(queryBigFileReq); if(CollectionUtils.isEmpty(fileIdList)){ return SdmResponse.success(); } + // 可变查询条件 + List creatorIds = org.apache.commons.lang3.StringUtils.isBlank(queryBigFileReq.getUploadUserId()) + ? new ArrayList<>() + : Arrays.stream(queryBigFileReq.getUploadUserId().split(",")) + .filter(org.apache.commons.lang3.StringUtils::isNotBlank) + .map(Long::valueOf) + .collect(Collectors.toList()); PageHelper.startPage(minioFileSearchReq.getCurrent(), minioFileSearchReq.getSize()); List files = fileMetadataInfoService .lambdaQuery() @@ -646,6 +652,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { .eq(FileMetadataInfo::getIsLatest, FileIsLastEnum.YES.getValue()) // 这里是知识库文件:排除新增在审批的文件 .in(FileMetadataInfo::getApproveType,fileDatdList) + .in(org.apache.commons.collections4.CollectionUtils.isNotEmpty(creatorIds), FileMetadataInfo::getCreatorId, creatorIds) .list(); setCreatorNames(files); setCidInfos(files); @@ -687,8 +694,14 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { } else { return SdmResponse.success(); } + List creatorIds = org.apache.commons.lang3.StringUtils.isBlank(req.getUploadUserId()) + ? new ArrayList<>() + : Arrays.stream(req.getUploadUserId().split(",")) + .filter(org.apache.commons.lang3.StringUtils::isNotBlank) + .map(Long::valueOf) + .collect(Collectors.toList()); List list = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getParentId, parentId) - .eq(ObjectUtils.isNotEmpty(req.getUploadUserId()), FileMetadataInfo::getCreatorId, req.getUploadUserId()) + .in(org.apache.commons.collections4.CollectionUtils.isNotEmpty(creatorIds), FileMetadataInfo::getCreatorId, creatorIds) .eq(ObjectUtils.isNotEmpty(req.getQueryTarget()), FileMetadataInfo::getDataType, req.getQueryTarget()) .like(ObjectUtils.isNotEmpty(req.getFileName()), FileMetadataInfo::getOriginalName, req.getFileName()) .eq(FileMetadataInfo::getIsLatest, FileIsLastEnum.YES.getValue())