知识库审批新增所属库信息

This commit is contained in:
2026-01-21 16:01:30 +08:00
parent 0ebce1fcf4
commit c8ddc5920e
5 changed files with 35 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ import java.util.List;
/* 知识库文件增加审批流程,传递给电子流平台内容变化的数据 */
@Data
public class ApprovalFileDataContentsModel {
private String knowledgeBaseName; // 所属知识库名
private List<Long> ids; //新增知识库待审批的原始数据的id集合

View File

@@ -145,6 +145,7 @@ public class FileApproveExecutor {
private String buildApproveContents(FileApproveRequestBuilder builder) {
ApprovalFileDataContentsModel contentsModel = new ApprovalFileDataContentsModel();
contentsModel.setKnowledgeBaseName(builder.getKnowledgeBaseName());
contentsModel.setIds(builder.getFileIds());
contentsModel.setContents(builder.getContents());
contentsModel.setApproveAction(builder.getApproveFileActionENUM().getCode());

View File

@@ -22,4 +22,5 @@ public class FileApproveRequestBuilder {
private String templateName;
private List<FileMetadataInfo> beforeData;
private List<FileMetadataInfo> afterData;
private String knowledgeBaseName; // 所属知识库名
}

View File

@@ -575,6 +575,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
.beforeData(List.of(deleteFileMetadataInfo))
.templateId(req.getTemplateId())
.templateName(req.getTemplateName())
.knowledgeBaseName(extractRelativePath(dirMetadataInfo))
.build();
if(CollectionUtils.isNotEmpty(deleteFileApproveRequestBuilder.getBeforeData())){
setCreatorNames(deleteFileApproveRequestBuilder.getBeforeData());
@@ -1589,6 +1590,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
.beforeData(List.of(fileInfo))
.templateId(req.getTemplateId())
.templateName(req.getTemplateName())
.knowledgeBaseName(extractRelativePath(dirMetadataInfo))
.build();
if(CollectionUtils.isNotEmpty(uploadFileApproveRequestBuilder.getBeforeData())){
setCreatorNames(uploadFileApproveRequestBuilder.getBeforeData());
@@ -1622,6 +1624,32 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
return fileName.substring(lastDotIndex + 1);
}
/**
* 从目录的objectKey中提取相对路径移除目录类型前缀
* 如knowledge/知识库A/子目录/ → /知识库A/子目录/
* @param dirMetadataInfo 文件所在目录的元数据
* @return 目录相对路径(以/开头如果提取失败则返回null
*/
private String extractRelativePath(FileMetadataInfo dirMetadataInfo) {
if (dirMetadataInfo == null || dirMetadataInfo.getObjectKey() == null || dirMetadataInfo.getDirType() == null) {
return null;
}
DirTypeEnum dirTypeEnum = DirTypeEnum.getDirTypeByValue(dirMetadataInfo.getDirType());
if (dirTypeEnum == null) {
return null;
}
String objectKey = dirMetadataInfo.getObjectKey();
String prefix = dirTypeEnum.getDirName();
if (!objectKey.startsWith(prefix)) {
return null;
}
// 移除前缀knowledge/知识库A/子目录/ → /知识库A/子目录/
return objectKey.substring(prefix.length());
}
@Override
public SdmResponse downloadRecord(AddDownloadRecordReq req) {
@@ -1739,6 +1767,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
.afterData(List.of(tempFileMetadataInfo))
.templateId(req.getTemplateId())
.templateName(req.getTemplateName())
.knowledgeBaseName(extractRelativePath(dirMetadataInfo))
.build();
if(CollectionUtils.isNotEmpty(updateFileMetaIntoApproveRequestBuilder.getBeforeData())){
setCreatorNames(updateFileMetaIntoApproveRequestBuilder.getBeforeData());
@@ -1875,6 +1904,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
.afterData(List.of(newFileInfo))
.templateId(req.getTemplateId())
.templateName(req.getTemplateName())
.knowledgeBaseName(extractRelativePath(dirMetadataInfo))
.build();
if(CollectionUtils.isNotEmpty(uploadAndUpdateFileApproveRequestBuilder.getBeforeData())){
setCreatorNames(uploadAndUpdateFileApproveRequestBuilder.getBeforeData());
@@ -2704,6 +2734,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
.beforeData(succFileMetadataInfos)
.templateId(firstFile.getTemplateId())
.templateName(firstFile.getTemplateName())
.knowledgeBaseName(extractRelativePath(dirMetadataInfo))
.build();
if(CollectionUtils.isNotEmpty(batchUploadFileApproveRequestBuilder.getBeforeData())){
setCreatorNames(batchUploadFileApproveRequestBuilder.getBeforeData());