|
@@ -202,6 +202,48 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
return treeInfoDao.get(treeNodeId);
|
|
return treeInfoDao.get(treeNodeId);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /** 关联链接功能适用的目标节点名称 */
|
|
|
|
|
+ private static final String LINK_CATEGORY_NAME = "电网工程施工介绍";
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 判断指定节点是否为"电网工程施工介绍"或其子节点(关联链接功能仅在此分类下启用)
|
|
|
|
|
+ */
|
|
|
|
|
+ public boolean isLinkCategory(String treeNodeId) {
|
|
|
|
|
+ if (StringUtils.isBlank(treeNodeId)) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ WorkKnowledgeBaseTreeInfo treeInfo = treeInfoDao.get(treeNodeId);
|
|
|
|
|
+ if (treeInfo == null) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 当前节点本身就是"电网工程施工介绍"
|
|
|
|
|
+ if (LINK_CATEGORY_NAME.equals(treeInfo.getTreeName())) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 查找"电网工程施工介绍"节点的ID
|
|
|
|
|
+ String targetId = treeInfoDao.findIdByTreeName(LINK_CATEGORY_NAME);
|
|
|
|
|
+ if (StringUtils.isBlank(targetId)) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 方法1:通过 root_id 判断(如果目标节点是根节点,所有子节点的 root_id 都等于它)
|
|
|
|
|
+ if (targetId.equals(treeInfo.getRootId())) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 方法2:通过 parent_ids 精确匹配(防止 ID 是其他 ID 的子串)
|
|
|
|
|
+ String parentIds = treeInfo.getParentIds();
|
|
|
|
|
+ if (StringUtils.isNotBlank(parentIds)) {
|
|
|
|
|
+ // parentIds 格式: ,id1,id2,id3,
|
|
|
|
|
+ // 使用逗号分隔后精确匹配,避免子串误匹配
|
|
|
|
|
+ String[] ids = parentIds.split(",");
|
|
|
|
|
+ for (String id : ids) {
|
|
|
|
|
+ if (targetId.equals(id.trim())) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 查询同名文件的目录路径及审核状态列表(排除问答答疑分类)
|
|
* 查询同名文件的目录路径及审核状态列表(排除问答答疑分类)
|
|
|
* @param name 文件名称
|
|
* @param name 文件名称
|
|
@@ -834,7 +876,7 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
// 查询附件
|
|
// 查询附件
|
|
|
List<Workattachment> attList = workattachmentService.getListByAttachmentIdAndFlag(fileId, ATTACHMENT_FLAG);
|
|
List<Workattachment> attList = workattachmentService.getListByAttachmentIdAndFlag(fileId, ATTACHMENT_FLAG);
|
|
|
|
|
|
|
|
- // 查询链接
|
|
|
|
|
|
|
+ // 查询链接(始终查询,前端根据 isLinkCategory 标志决定是否展示)
|
|
|
List<WorkKnowledgeBaseShareLink> links = shareLinkDao.findByFileId(fileId);
|
|
List<WorkKnowledgeBaseShareLink> links = shareLinkDao.findByFileId(fileId);
|
|
|
|
|
|
|
|
// 构建统一的内容项列表(用于列表页展示)
|
|
// 构建统一的内容项列表(用于列表页展示)
|
|
@@ -853,7 +895,7 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 添加链接项
|
|
|
|
|
|
|
+ // 添加链接项(始终添加,前端根据 isLinkCategory 标志决定是否展示)
|
|
|
if (links != null && !links.isEmpty()) {
|
|
if (links != null && !links.isEmpty()) {
|
|
|
for (WorkKnowledgeBaseShareLink link : links) {
|
|
for (WorkKnowledgeBaseShareLink link : links) {
|
|
|
Map<String, String> item = new HashMap<>();
|
|
Map<String, String> item = new HashMap<>();
|
|
@@ -884,9 +926,9 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
map.put("allAttachmentNames", "");
|
|
map.put("allAttachmentNames", "");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 填充链接基础字段(兼容原有逻辑)
|
|
|
|
|
- map.put("linkCount", links != null ? links.size() : 0);
|
|
|
|
|
|
|
+ // 填充链接基础字段(始终填充,前端根据 isLinkCategory 标志决定是否展示)
|
|
|
if (links != null && !links.isEmpty()) {
|
|
if (links != null && !links.isEmpty()) {
|
|
|
|
|
+ map.put("linkCount", links.size());
|
|
|
StringBuilder linkJson = new StringBuilder("[");
|
|
StringBuilder linkJson = new StringBuilder("[");
|
|
|
for (int i = 0; i < links.size(); i++) {
|
|
for (int i = 0; i < links.size(); i++) {
|
|
|
if (i > 0) linkJson.append(",");
|
|
if (i > 0) linkJson.append(",");
|
|
@@ -899,6 +941,7 @@ public class WorkKnowledgeBaseShareService extends CrudService<WorkKnowledgeBase
|
|
|
linkJson.append("]");
|
|
linkJson.append("]");
|
|
|
map.put("linkData", linkJson.toString());
|
|
map.put("linkData", linkJson.toString());
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ map.put("linkCount", 0);
|
|
|
map.put("linkData", "[]");
|
|
map.put("linkData", "[]");
|
|
|
}
|
|
}
|
|
|
|
|
|