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)