diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/document/appservice/impl/DocDefinitionAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/document/appservice/impl/DocDefinitionAppServiceImpl.java index 3100e3bf..821027c7 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/document/appservice/impl/DocDefinitionAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/document/appservice/impl/DocDefinitionAppServiceImpl.java @@ -245,15 +245,37 @@ public class DocDefinitionAppServiceImpl implements IDocDefinitionAppService { public R getTreeList(DocDefinitonParam param) { // 1. 获取当前登录用户的医院ID(避免跨医院查询) Long hospitalId = SecurityUtils.getLoginUser().getHospitalId(); + Long organizationId = param.getOrganizationId(); + List useRanges = param.getUseRanges(); + + log.info("获取文书定义树形列表 - 请求参数: hospitalId={}, organizationId={}, useRanges={}, name={}, primaryMenuEnum={}", + hospitalId, organizationId, useRanges, param.getName(), param.getPrimaryMenuEnum()); + if (hospitalId == null) { log.warn("当前登录用户未关联医院ID,将使用默认值"); // 设置默认医院ID为1(或其他合适的默认值) hospitalId = 1L; } + + if (organizationId == null || organizationId == 0) { + log.warn("organizationId为空或0,将跳过医院过滤和使用范围过滤"); + } + + if (useRanges == null || useRanges.isEmpty()) { + log.warn("useRanges为空,可能返回所有使用范围的文书"); + } // 2. 数据库查询文书定义列表 - List docList = docDefinitionAppMapper.getDefinationList(param.getUseRanges(), - param.getOrganizationId(), hospitalId, param.getName(), param.getPrimaryMenuEnum()); + List docList = docDefinitionAppMapper.getDefinationList(useRanges, + organizationId, hospitalId, param.getName(), param.getPrimaryMenuEnum()); + + log.info("获取文书定义树形列表 - 查询结果: 记录数={}", docList != null ? docList.size() : 0); + if (docList != null && !docList.isEmpty()) { + for (DocDefinitionDto doc : docList) { + log.debug("文书: id={}, name={}, useRangeEnum={}, hospitalId={}", + doc.getId(), doc.getName(), doc.getUseRangeEnum(), doc.getHospitalId()); + } + } // 3. 构建树形结构(空列表时返回空树,避免空指针) List treeNodes = new ArrayList<>(); diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/document/DocDefinitionAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/document/DocDefinitionAppMapper.xml index a3618b2d..302d6fcc 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/document/DocDefinitionAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/document/DocDefinitionAppMapper.xml @@ -30,6 +30,7 @@ AND ddo.delete_flag = '0' WHERE dd.delete_flag = '0' + AND dd.is_valid = 0 @@ -80,6 +81,10 @@ AND dd.name LIKE CONCAT('%', #{name}, '%') + + AND dd.primary_menu_enum = #{primaryMenuEnum} + + GROUP BY dd.id, dd.primary_menu_enum, dd.sub_menu ORDER BY dd.display_order