From a43523da3667f312a78f78014765083eb0c1a5e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 6 May 2026 18:34:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(qc-material):=20=E4=BF=AE=E5=A4=8D=E7=88=B6?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E8=B7=AF=E5=BE=84=E6=9E=84=E5=BB=BA=E5=8F=8A?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改fullPath构建逻辑,避免重复拼接父节点路径 - 调整查询条件,使用ltree类型转换为text进行匹配 - 优化级联查询自身及子孙节点的条件表达式 - 保证查询兼容性与准确性,提高查询性能 --- .../qms/admin/service/QmsQcMaterialControllerService.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsQcMaterialControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsQcMaterialControllerService.java index 6afc5152..59614215 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsQcMaterialControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsQcMaterialControllerService.java @@ -113,13 +113,14 @@ public class QmsQcMaterialControllerService { // 构建当前节点完整路径:parentTree.id(若 parentTree 为空则直接取 id) String fullPath = StrUtil.isBlank(category.getParentTree()) ? String.valueOf(category.getId()) - : category.getParentTree() + "." + category.getId(); + : category.getParentTree(); // 一次查询:自身 + 直接子节点(parentTree=fullPath)+ 孙级及更深(parentTree LIKE 'fullPath.%') + // parent_tree 为 ltree 类型,需显式转为 text 才能与 varchar 比较 return qcMaterialCategoryService.lambdaQuery() .eq(QmsQcMaterialCategory::getCategoryCode, categoryCode) - .or().eq(QmsQcMaterialCategory::getParentTree, fullPath) - .or().likeRight(QmsQcMaterialCategory::getParentTree, fullPath + ".") + .or().apply("parent_tree::text = {0}", fullPath) + .or().apply("parent_tree::text LIKE {0}", fullPath + ".%") .list() .stream() .map(QmsQcMaterialCategory::getCategoryCode)