From 3cc0802355bebf9db79aa3ed0e502d5e8da37bbb Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 29 Jan 2026 15:09:47 +0800 Subject: [PATCH] =?UTF-8?q?refactor(data-management):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E6=9D=A1=E7=9B=AE=E7=9A=84=E5=86=97=E4=BD=99?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=92=8C=E9=AA=8C=E8=AF=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 KnowledgeItem 实体中的 title、status、domain、businessLine、owner、sensitivity 字段 - 移除 KnowledgeItem 实体中的有效期限相关字段 validFrom 和 validTo - 移除 KnowledgeItem 实体中的标签集合 tags 和扩展元数据 metadata - 删除 KnowledgeItemApplicationService 中的相关验证和默认值设置逻辑 - 移除 TagMapper 和 Tag 相关的数据处理代码 - 简化创建和更新知识条目的业务流程 - 更新数据库查询条件以适应新的实体结构 - 从各种 DTO 中移除已删除字段的定义和验证规则 - 修改分页查询逻辑以匹配新的字段结构 --- .../KnowledgeItemApplicationService.java | 160 +----------------- .../domain/model/knowledge/KnowledgeItem.java | 49 ------ .../impl/KnowledgeItemRepositoryImpl.java | 20 +-- .../converter/KnowledgeConverter.java | 1 - .../dto/CreateKnowledgeItemRequest.java | 51 ------ .../dto/ImportKnowledgeItemsRequest.java | 44 ----- .../dto/KnowledgeItemPagingQuery.java | 38 +---- .../interfaces/dto/KnowledgeItemResponse.java | 13 -- .../dto/UpdateKnowledgeItemRequest.java | 50 ------ .../dto/UploadKnowledgeItemsRequest.java | 52 ------ 10 files changed, 7 insertions(+), 471 deletions(-) diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/KnowledgeItemApplicationService.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/KnowledgeItemApplicationService.java index 3e6aa15..030416a 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/KnowledgeItemApplicationService.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/KnowledgeItemApplicationService.java @@ -12,12 +12,10 @@ import com.datamate.datamanagement.common.enums.KnowledgeSourceType; import com.datamate.datamanagement.common.enums.KnowledgeStatusType; import com.datamate.datamanagement.domain.model.dataset.Dataset; import com.datamate.datamanagement.domain.model.dataset.DatasetFile; -import com.datamate.datamanagement.domain.model.dataset.Tag; import com.datamate.datamanagement.domain.model.knowledge.KnowledgeItem; import com.datamate.datamanagement.domain.model.knowledge.KnowledgeSet; import com.datamate.datamanagement.infrastructure.config.DataManagementProperties; import com.datamate.datamanagement.infrastructure.exception.DataManagementErrorCode; -import com.datamate.datamanagement.infrastructure.persistence.mapper.TagMapper; import com.datamate.datamanagement.infrastructure.persistence.repository.DatasetFileRepository; import com.datamate.datamanagement.infrastructure.persistence.repository.DatasetRepository; import com.datamate.datamanagement.infrastructure.persistence.repository.KnowledgeItemRepository; @@ -50,12 +48,10 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -84,7 +80,6 @@ public class KnowledgeItemApplicationService { private final KnowledgeSetRepository knowledgeSetRepository; private final DatasetRepository datasetRepository; private final DatasetFileRepository datasetFileRepository; - private final TagMapper tagMapper; private final DataManagementProperties dataManagementProperties; public KnowledgeItem createKnowledgeItem(String setId, CreateKnowledgeItemRequest request) { @@ -102,16 +97,6 @@ public class KnowledgeItemApplicationService { } knowledgeItem.setSourceDatasetId(request.getSourceDatasetId()); knowledgeItem.setSourceFileId(request.getSourceFileId()); - if (knowledgeItem.getStatus() == null) { - knowledgeItem.setStatus(KnowledgeStatusType.DRAFT); - } - - applyDefaultsFromSet(knowledgeItem, knowledgeSet, request.getTags(), request.getDomain(), - request.getBusinessLine(), request.getOwner(), request.getSensitivity(), - request.getValidFrom(), request.getValidTo(), request.getMetadata()); - - validateEffectivePeriod(knowledgeItem.getValidFrom(), knowledgeItem.getValidTo()); - validatePublishable(knowledgeItem); knowledgeItemRepository.save(knowledgeItem); return knowledgeItem; @@ -130,8 +115,6 @@ public class KnowledgeItemApplicationService { BusinessAssert.isTrue(setDir.startsWith(uploadRoot), CommonErrorCode.PARAM_ERROR); createDirectories(setDir); - boolean singleFile = files.size() == 1; - String overrideTitle = StringUtils.trimToNull(request.getTitle()); List items = new ArrayList<>(); for (MultipartFile file : files) { @@ -155,25 +138,10 @@ public class KnowledgeItemApplicationService { KnowledgeItem knowledgeItem = new KnowledgeItem(); knowledgeItem.setId(UUID.randomUUID().toString()); knowledgeItem.setSetId(setId); - String title = singleFile && StringUtils.isNotBlank(overrideTitle) - ? overrideTitle - : stripExtension(safeOriginalName); - if (StringUtils.isBlank(title)) { - title = "未命名文件"; - } - knowledgeItem.setTitle(trimToLength(title, MAX_TITLE_LENGTH)); knowledgeItem.setContent(buildRelativeFilePath(setId, storedName)); knowledgeItem.setContentType(KnowledgeContentType.FILE); knowledgeItem.setSourceType(KnowledgeSourceType.FILE_UPLOAD); knowledgeItem.setSourceFileId(trimToLength(safeOriginalName, MAX_TITLE_LENGTH)); - knowledgeItem.setStatus(request.getStatus() == null ? KnowledgeStatusType.DRAFT : request.getStatus()); - - applyDefaultsFromSet(knowledgeItem, knowledgeSet, request.getTags(), request.getDomain(), - request.getBusinessLine(), request.getOwner(), request.getSensitivity(), - request.getValidFrom(), request.getValidTo(), request.getMetadata()); - - validateEffectivePeriod(knowledgeItem.getValidFrom(), knowledgeItem.getValidTo()); - validatePublishable(knowledgeItem); items.add(knowledgeItem); } @@ -189,15 +157,9 @@ public class KnowledgeItemApplicationService { KnowledgeItem knowledgeItem = knowledgeItemRepository.getById(itemId); BusinessAssert.notNull(knowledgeItem, DataManagementErrorCode.KNOWLEDGE_ITEM_NOT_FOUND); BusinessAssert.isTrue(Objects.equals(knowledgeItem.getSetId(), setId), CommonErrorCode.PARAM_ERROR); - BusinessAssert.isTrue(!isReadOnlyStatus(knowledgeItem.getStatus()), - DataManagementErrorCode.KNOWLEDGE_ITEM_STATUS_ERROR); BusinessAssert.isTrue(!isReadOnlyStatus(knowledgeSet.getStatus()), DataManagementErrorCode.KNOWLEDGE_SET_STATUS_ERROR); - if (request.getTitle() != null) { - BusinessAssert.isTrue(StringUtils.isNotBlank(request.getTitle()), CommonErrorCode.PARAM_ERROR); - knowledgeItem.setTitle(request.getTitle()); - } if (request.getContent() != null) { BusinessAssert.isTrue(StringUtils.isNotBlank(request.getContent()), CommonErrorCode.PARAM_ERROR); knowledgeItem.setContent(request.getContent()); @@ -205,34 +167,6 @@ public class KnowledgeItemApplicationService { if (request.getContentType() != null) { knowledgeItem.setContentType(request.getContentType()); } - if (request.getStatus() != null) { - knowledgeItem.setStatus(request.getStatus()); - } - if (request.getTags() != null) { - knowledgeItem.setTags(processTagNames(request.getTags())); - } - if (request.getDomain() != null) { - knowledgeItem.setDomain(request.getDomain()); - } - if (request.getBusinessLine() != null) { - knowledgeItem.setBusinessLine(request.getBusinessLine()); - } - if (request.getOwner() != null) { - knowledgeItem.setOwner(request.getOwner()); - } - if (request.getValidFrom() != null || request.getValidTo() != null) { - knowledgeItem.setValidFrom(request.getValidFrom()); - knowledgeItem.setValidTo(request.getValidTo()); - } - if (request.getSensitivity() != null) { - knowledgeItem.setSensitivity(request.getSensitivity()); - } - if (request.getMetadata() != null) { - knowledgeItem.setMetadata(request.getMetadata()); - } - - validateEffectivePeriod(knowledgeItem.getValidFrom(), knowledgeItem.getValidTo()); - validatePublishable(knowledgeItem); knowledgeItemRepository.updateById(knowledgeItem); return knowledgeItem; @@ -281,20 +215,11 @@ public class KnowledgeItemApplicationService { KnowledgeItem knowledgeItem = new KnowledgeItem(); knowledgeItem.setId(UUID.randomUUID().toString()); knowledgeItem.setSetId(setId); - knowledgeItem.setTitle(stripExtension(datasetFile.getFileName())); knowledgeItem.setContent(content); knowledgeItem.setContentType(contentType); knowledgeItem.setSourceType(KnowledgeSourceType.DATASET_FILE); knowledgeItem.setSourceDatasetId(dataset.getId()); knowledgeItem.setSourceFileId(datasetFile.getId()); - knowledgeItem.setStatus(request.getStatus() == null ? KnowledgeStatusType.DRAFT : request.getStatus()); - - applyDefaultsFromSet(knowledgeItem, knowledgeSet, request.getTags(), request.getDomain(), - request.getBusinessLine(), request.getOwner(), request.getSensitivity(), - request.getValidFrom(), request.getValidTo(), request.getMetadata()); - - validateEffectivePeriod(knowledgeItem.getValidFrom(), knowledgeItem.getValidTo()); - validatePublishable(knowledgeItem); items.add(knowledgeItem); } @@ -415,8 +340,6 @@ public class KnowledgeItemApplicationService { KnowledgeItem knowledgeItem = knowledgeItemRepository.getById(itemId); BusinessAssert.notNull(knowledgeItem, DataManagementErrorCode.KNOWLEDGE_ITEM_NOT_FOUND); BusinessAssert.isTrue(Objects.equals(knowledgeItem.getSetId(), setId), CommonErrorCode.PARAM_ERROR); - BusinessAssert.isTrue(!isReadOnlyStatus(knowledgeItem.getStatus()), - DataManagementErrorCode.KNOWLEDGE_ITEM_STATUS_ERROR); BusinessAssert.isTrue(!isReadOnlyStatus(knowledgeSet.getStatus()), DataManagementErrorCode.KNOWLEDGE_SET_STATUS_ERROR); @@ -451,17 +374,10 @@ public class KnowledgeItemApplicationService { saveMultipartFile(file, targetPath); - String title = stripExtension(safeOriginalName); - if (StringUtils.isBlank(title)) { - title = "未命名文件"; - } - title = trimToLength(title, MAX_TITLE_LENGTH); - String sourceFileId = trimToLength(safeOriginalName, MAX_TITLE_LENGTH); String newRelativePath = buildRelativeFilePath(setId, storedName); try { - knowledgeItem.setTitle(title); knowledgeItem.setContent(newRelativePath); knowledgeItem.setContentType(KnowledgeContentType.FILE); knowledgeItem.setSourceType(KnowledgeSourceType.FILE_UPLOAD); @@ -594,8 +510,10 @@ public class KnowledgeItemApplicationService { } private String buildItemEntryName(KnowledgeItem item, Map nameCounter) { - String rawTitle = StringUtils.isNotBlank(item.getTitle()) ? item.getTitle() : "item-" + item.getId(); - String baseName = sanitizeFileName(rawTitle); + String rawName = StringUtils.isNotBlank(item.getSourceFileId()) + ? stripExtension(item.getSourceFileId()) + : "item-" + item.getId(); + String baseName = sanitizeFileName(rawName); if (StringUtils.isBlank(baseName)) { baseName = "item-" + item.getId(); } @@ -698,77 +616,7 @@ public class KnowledgeItemApplicationService { return fileName.substring(0, dotIndex); } - private void applyDefaultsFromSet(KnowledgeItem knowledgeItem, - KnowledgeSet knowledgeSet, - List tags, - String domain, - String businessLine, - String owner, - String sensitivity, - LocalDate validFrom, - LocalDate validTo, - String metadata) { - if (tags != null) { - knowledgeItem.setTags(processTagNames(tags)); - } else if (knowledgeSet.getTags() != null) { - knowledgeItem.setTags(new HashSet<>(knowledgeSet.getTags())); - } else { - knowledgeItem.setTags(new HashSet<>()); - } - knowledgeItem.setDomain(StringUtils.isNotBlank(domain) ? domain : knowledgeSet.getDomain()); - knowledgeItem.setBusinessLine(StringUtils.isNotBlank(businessLine) ? businessLine : knowledgeSet.getBusinessLine()); - knowledgeItem.setOwner(StringUtils.isNotBlank(owner) ? owner : knowledgeSet.getOwner()); - knowledgeItem.setSensitivity(StringUtils.isNotBlank(sensitivity) ? sensitivity : knowledgeSet.getSensitivity()); - knowledgeItem.setValidFrom(validFrom != null ? validFrom : knowledgeSet.getValidFrom()); - knowledgeItem.setValidTo(validTo != null ? validTo : knowledgeSet.getValidTo()); - knowledgeItem.setMetadata(metadata != null ? metadata : knowledgeSet.getMetadata()); - } - private boolean isReadOnlyStatus(KnowledgeStatusType status) { return status == KnowledgeStatusType.ARCHIVED || status == KnowledgeStatusType.DEPRECATED; } - - private void validatePublishable(KnowledgeItem knowledgeItem) { - if (knowledgeItem.getStatus() != KnowledgeStatusType.PUBLISHED) { - return; - } - BusinessAssert.isTrue(StringUtils.isNotBlank(knowledgeItem.getDomain()), CommonErrorCode.PARAM_ERROR); - BusinessAssert.isTrue(StringUtils.isNotBlank(knowledgeItem.getBusinessLine()), CommonErrorCode.PARAM_ERROR); - BusinessAssert.isTrue(StringUtils.isNotBlank(knowledgeItem.getOwner()), CommonErrorCode.PARAM_ERROR); - BusinessAssert.isTrue(StringUtils.isNotBlank(knowledgeItem.getSensitivity()), CommonErrorCode.PARAM_ERROR); - BusinessAssert.notNull(knowledgeItem.getSourceType(), CommonErrorCode.PARAM_ERROR); - BusinessAssert.notNull(knowledgeItem.getValidFrom(), CommonErrorCode.PARAM_ERROR); - BusinessAssert.notNull(knowledgeItem.getValidTo(), CommonErrorCode.PARAM_ERROR); - } - - private void validateEffectivePeriod(LocalDate validFrom, LocalDate validTo) { - if (validFrom == null || validTo == null) { - return; - } - BusinessAssert.isTrue(!validFrom.isAfter(validTo), CommonErrorCode.PARAM_ERROR); - } - - private Set processTagNames(List tagNames) { - if (CollectionUtils.isEmpty(tagNames)) { - return new HashSet<>(); - } - Set tags = new HashSet<>(); - for (String tagName : tagNames) { - if (StringUtils.isBlank(tagName)) { - continue; - } - Tag tag = tagMapper.findByName(tagName); - if (tag == null) { - Tag newTag = new Tag(tagName, null, null, "#007bff"); - newTag.setUsageCount(0L); - newTag.setId(UUID.randomUUID().toString()); - tagMapper.insert(newTag); - tag = newTag; - } - tag.setUsageCount(tag.getUsageCount() == null ? 1L : tag.getUsageCount() + 1); - tagMapper.updateUsageCount(tag.getId(), tag.getUsageCount()); - tags.add(tag); - } - return tags; - } } diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/domain/model/knowledge/KnowledgeItem.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/domain/model/knowledge/KnowledgeItem.java index eccddbe..077d73f 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/domain/model/knowledge/KnowledgeItem.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/domain/model/knowledge/KnowledgeItem.java @@ -1,20 +1,12 @@ package com.datamate.datamanagement.domain.model.knowledge; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.datamate.common.domain.model.base.BaseEntity; import com.datamate.datamanagement.common.enums.KnowledgeContentType; import com.datamate.datamanagement.common.enums.KnowledgeSourceType; -import com.datamate.datamanagement.common.enums.KnowledgeStatusType; -import com.datamate.datamanagement.domain.model.dataset.Tag; import lombok.Getter; import lombok.Setter; -import java.time.LocalDate; -import java.util.Collection; -import java.util.HashSet; - /** * 知识条目实体(与数据库表 t_dm_knowledge_items 对齐) */ @@ -26,10 +18,6 @@ public class KnowledgeItem extends BaseEntity { * 所属知识集ID */ private String setId; - /** - * 标题 - */ - private String title; /** * 内容 */ @@ -38,38 +26,10 @@ public class KnowledgeItem extends BaseEntity { * 内容类型 */ private KnowledgeContentType contentType; - /** - * 状态 - */ - private KnowledgeStatusType status; - /** - * 领域 - */ - private String domain; - /** - * 业务线 - */ - private String businessLine; - /** - * 负责人 - */ - private String owner; - /** - * 有效期开始 - */ - private LocalDate validFrom; - /** - * 有效期结束 - */ - private LocalDate validTo; /** * 来源类型 */ private KnowledgeSourceType sourceType; - /** - * 敏感级别 - */ - private String sensitivity; /** * 来源数据集ID */ @@ -78,13 +38,4 @@ public class KnowledgeItem extends BaseEntity { * 来源文件ID */ private String sourceFileId; - /** - * 标签列表 - */ - @TableField(typeHandler = JacksonTypeHandler.class) - private Collection tags = new HashSet<>(); - /** - * 扩展元数据 - */ - private String metadata; } diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/persistence/repository/impl/KnowledgeItemRepositoryImpl.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/persistence/repository/impl/KnowledgeItemRepositoryImpl.java index 27290c7..5ceeddb 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/persistence/repository/impl/KnowledgeItemRepositoryImpl.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/infrastructure/persistence/repository/impl/KnowledgeItemRepositoryImpl.java @@ -25,33 +25,17 @@ public class KnowledgeItemRepositoryImpl extends CrudRepository findByCriteria(IPage page, KnowledgeItemPagingQuery query) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .eq(StringUtils.isNotBlank(query.getSetId()), KnowledgeItem::getSetId, query.getSetId()) - .eq(query.getStatus() != null, KnowledgeItem::getStatus, query.getStatus()) .eq(query.getContentType() != null, KnowledgeItem::getContentType, query.getContentType()) - .eq(StringUtils.isNotBlank(query.getDomain()), KnowledgeItem::getDomain, query.getDomain()) - .eq(StringUtils.isNotBlank(query.getBusinessLine()), KnowledgeItem::getBusinessLine, query.getBusinessLine()) - .eq(StringUtils.isNotBlank(query.getOwner()), KnowledgeItem::getOwner, query.getOwner()) - .eq(StringUtils.isNotBlank(query.getSensitivity()), KnowledgeItem::getSensitivity, query.getSensitivity()) .eq(query.getSourceType() != null, KnowledgeItem::getSourceType, query.getSourceType()) .eq(StringUtils.isNotBlank(query.getSourceDatasetId()), KnowledgeItem::getSourceDatasetId, query.getSourceDatasetId()) - .eq(StringUtils.isNotBlank(query.getSourceFileId()), KnowledgeItem::getSourceFileId, query.getSourceFileId()) - .ge(query.getValidFrom() != null, KnowledgeItem::getValidFrom, query.getValidFrom()) - .le(query.getValidTo() != null, KnowledgeItem::getValidTo, query.getValidTo()); + .eq(StringUtils.isNotBlank(query.getSourceFileId()), KnowledgeItem::getSourceFileId, query.getSourceFileId()); if (StringUtils.isNotBlank(query.getKeyword())) { - wrapper.and(w -> w.like(KnowledgeItem::getTitle, query.getKeyword()) + wrapper.and(w -> w.like(KnowledgeItem::getSourceFileId, query.getKeyword()) .or() .like(KnowledgeItem::getContent, query.getKeyword())); } - for (String tagName : query.getTags()) { - wrapper.and(w -> - w.apply("tags IS NOT NULL " + - "AND JSON_VALID(tags) = 1 " + - "AND JSON_LENGTH(tags) > 0 " + - "AND JSON_SEARCH(tags, 'one', {0}, NULL, '$[*].name') IS NOT NULL", tagName) - ); - } - wrapper.orderByDesc(KnowledgeItem::getCreatedAt); return knowledgeItemMapper.selectPage(page, wrapper); } diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/converter/KnowledgeConverter.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/converter/KnowledgeConverter.java index 26a4a86..ef6590a 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/converter/KnowledgeConverter.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/converter/KnowledgeConverter.java @@ -22,7 +22,6 @@ public interface KnowledgeConverter { @Mapping(target = "tags", ignore = true) KnowledgeSet convertToKnowledgeSet(CreateKnowledgeSetRequest request); - @Mapping(target = "tags", ignore = true) KnowledgeItem convertToKnowledgeItem(CreateKnowledgeItemRequest request); KnowledgeSetResponse convertToResponse(KnowledgeSet knowledgeSet); diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/CreateKnowledgeItemRequest.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/CreateKnowledgeItemRequest.java index 3af3fa2..b157dc0 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/CreateKnowledgeItemRequest.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/CreateKnowledgeItemRequest.java @@ -1,18 +1,13 @@ package com.datamate.datamanagement.interfaces.dto; import com.datamate.datamanagement.common.enums.KnowledgeContentType; -import com.datamate.datamanagement.common.enums.KnowledgeStatusType; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import java.time.LocalDate; -import java.util.List; - /** * 创建知识条目请求DTO */ @@ -21,12 +16,6 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor public class CreateKnowledgeItemRequest { - /** - * 标题 - */ - @Size(min = 1, max = 200) - @NotBlank(message = "标题不能为空") - private String title; /** * 内容 */ @@ -37,46 +26,6 @@ public class CreateKnowledgeItemRequest { */ @NotNull(message = "内容类型不能为空") private KnowledgeContentType contentType; - /** - * 状态 - */ - private KnowledgeStatusType status; - /** - * 标签列表 - */ - private List tags; - /** - * 领域 - */ - @Size(max = 100) - private String domain; - /** - * 业务线 - */ - @Size(max = 100) - private String businessLine; - /** - * 负责人 - */ - @Size(max = 100) - private String owner; - /** - * 有效期开始 - */ - private LocalDate validFrom; - /** - * 有效期结束 - */ - private LocalDate validTo; - /** - * 敏感级别 - */ - @Size(max = 50) - private String sensitivity; - /** - * 扩展元数据 - */ - private String metadata; /** * 来源数据集ID(用于标注同步等场景) */ diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/ImportKnowledgeItemsRequest.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/ImportKnowledgeItemsRequest.java index 06d8131..ddd87ee 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/ImportKnowledgeItemsRequest.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/ImportKnowledgeItemsRequest.java @@ -1,13 +1,9 @@ package com.datamate.datamanagement.interfaces.dto; -import com.datamate.datamanagement.common.enums.KnowledgeStatusType; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.Setter; - -import java.time.LocalDate; import java.util.List; /** @@ -26,44 +22,4 @@ public class ImportKnowledgeItemsRequest { */ @NotEmpty(message = "文件列表不能为空") private List fileIds; - /** - * 状态 - */ - private KnowledgeStatusType status; - /** - * 标签列表 - */ - private List tags; - /** - * 领域 - */ - @Size(max = 100) - private String domain; - /** - * 业务线 - */ - @Size(max = 100) - private String businessLine; - /** - * 负责人 - */ - @Size(max = 100) - private String owner; - /** - * 有效期开始 - */ - private LocalDate validFrom; - /** - * 有效期结束 - */ - private LocalDate validTo; - /** - * 敏感级别 - */ - @Size(max = 50) - private String sensitivity; - /** - * 扩展元数据 - */ - private String metadata; } diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeItemPagingQuery.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeItemPagingQuery.java index b100a1f..b34a84c 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeItemPagingQuery.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeItemPagingQuery.java @@ -3,15 +3,11 @@ package com.datamate.datamanagement.interfaces.dto; import com.datamate.common.interfaces.PagingQuery; import com.datamate.datamanagement.common.enums.KnowledgeContentType; import com.datamate.datamanagement.common.enums.KnowledgeSourceType; -import com.datamate.datamanagement.common.enums.KnowledgeStatusType; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; /** * 知识条目分页查询请求 @@ -26,37 +22,13 @@ public class KnowledgeItemPagingQuery extends PagingQuery { */ private String setId; /** - * 标签名过滤 - */ - private List tags = new ArrayList<>(); - /** - * 关键词搜索(标题或内容) + * 关键词搜索(文件名或内容) */ private String keyword; - /** - * 状态过滤 - */ - private KnowledgeStatusType status; /** * 内容类型过滤 */ private KnowledgeContentType contentType; - /** - * 领域 - */ - private String domain; - /** - * 业务线 - */ - private String businessLine; - /** - * 负责人 - */ - private String owner; - /** - * 敏感级别 - */ - private String sensitivity; /** * 来源类型 */ @@ -69,12 +41,4 @@ public class KnowledgeItemPagingQuery extends PagingQuery { * 来源文件ID */ private String sourceFileId; - /** - * 有效期开始 - */ - private LocalDate validFrom; - /** - * 有效期结束 - */ - private LocalDate validTo; } diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeItemResponse.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeItemResponse.java index 0c79bd9..623c65c 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeItemResponse.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/KnowledgeItemResponse.java @@ -2,13 +2,10 @@ package com.datamate.datamanagement.interfaces.dto; import com.datamate.datamanagement.common.enums.KnowledgeContentType; import com.datamate.datamanagement.common.enums.KnowledgeSourceType; -import com.datamate.datamanagement.common.enums.KnowledgeStatusType; import lombok.Getter; import lombok.Setter; -import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.List; /** * 知识条目响应DTO @@ -18,21 +15,11 @@ import java.util.List; public class KnowledgeItemResponse { private String id; private String setId; - private String title; private String content; private KnowledgeContentType contentType; - private KnowledgeStatusType status; - private List tags; - private String domain; - private String businessLine; - private String owner; - private LocalDate validFrom; - private LocalDate validTo; private KnowledgeSourceType sourceType; - private String sensitivity; private String sourceDatasetId; private String sourceFileId; - private String metadata; private LocalDateTime createdAt; private LocalDateTime updatedAt; private String createdBy; diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/UpdateKnowledgeItemRequest.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/UpdateKnowledgeItemRequest.java index 002658d..4dcb104 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/UpdateKnowledgeItemRequest.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/UpdateKnowledgeItemRequest.java @@ -1,25 +1,15 @@ package com.datamate.datamanagement.interfaces.dto; import com.datamate.datamanagement.common.enums.KnowledgeContentType; -import com.datamate.datamanagement.common.enums.KnowledgeStatusType; -import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.Setter; -import java.time.LocalDate; -import java.util.List; - /** * 更新知识条目请求DTO */ @Getter @Setter public class UpdateKnowledgeItemRequest { - /** - * 标题 - */ - @Size(min = 1, max = 200) - private String title; /** * 内容 */ @@ -28,44 +18,4 @@ public class UpdateKnowledgeItemRequest { * 内容类型 */ private KnowledgeContentType contentType; - /** - * 状态 - */ - private KnowledgeStatusType status; - /** - * 标签列表 - */ - private List tags; - /** - * 领域 - */ - @Size(max = 100) - private String domain; - /** - * 业务线 - */ - @Size(max = 100) - private String businessLine; - /** - * 负责人 - */ - @Size(max = 100) - private String owner; - /** - * 有效期开始 - */ - private LocalDate validFrom; - /** - * 有效期结束 - */ - private LocalDate validTo; - /** - * 敏感级别 - */ - @Size(max = 50) - private String sensitivity; - /** - * 扩展元数据 - */ - private String metadata; } diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/UploadKnowledgeItemsRequest.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/UploadKnowledgeItemsRequest.java index 3dc5403..5568a1d 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/UploadKnowledgeItemsRequest.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/interfaces/dto/UploadKnowledgeItemsRequest.java @@ -1,14 +1,9 @@ package com.datamate.datamanagement.interfaces.dto; -import com.datamate.datamanagement.common.enums.KnowledgeStatusType; import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.Setter; -import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.multipart.MultipartFile; - -import java.time.LocalDate; import java.util.List; /** @@ -22,51 +17,4 @@ public class UploadKnowledgeItemsRequest { */ @NotEmpty(message = "文件列表不能为空") private List files; - /** - * 标题(单文件时可指定) - */ - @Size(min = 1, max = 200) - private String title; - /** - * 状态 - */ - private KnowledgeStatusType status; - /** - * 标签列表 - */ - private List tags; - /** - * 领域 - */ - @Size(max = 100) - private String domain; - /** - * 业务线 - */ - @Size(max = 100) - private String businessLine; - /** - * 负责人 - */ - @Size(max = 100) - private String owner; - /** - * 有效期开始 - */ - @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) - private LocalDate validFrom; - /** - * 有效期结束 - */ - @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) - private LocalDate validTo; - /** - * 敏感级别 - */ - @Size(max = 50) - private String sensitivity; - /** - * 扩展元数据 - */ - private String metadata; }