From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsMapper/DmsPermissionResourceMapperSqlTest.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsMapper/DmsPermissionResourceMapperSqlTest.java b/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsMapper/DmsPermissionResourceMapperSqlTest.java
new file mode 100644
index 0000000..8b2a058
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsMapper/DmsPermissionResourceMapperSqlTest.java
@@ -0,0 +1,42 @@
+package jnpf.dmsMapper;
+
+import jnpf.dmsDatabase.DmsUuidTypeHandler;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.session.Configuration;
+import org.junit.jupiter.api.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class DmsPermissionResourceMapperSqlTest {
+
+    @Test
+    void childListIncludesCurrentDocumentVersionPropertiesInOneQuery() {
+        Configuration configuration = new Configuration();
+        configuration.getTypeHandlerRegistry().register(UUID.class, DmsUuidTypeHandler.class);
+        configuration.addMapper(DmsPermissionResourceMapper.class);
+        MappedStatement statement = configuration.getMappedStatement(
+                DmsPermissionResourceMapper.class.getName() + ".selectChildren");
+
+        Map<String, Object> parameters = new HashMap<>();
+        parameters.put("tenantId", "tenant-1");
+        parameters.put("parentId", UUID.fromString("018f0000-0000-7000-8000-000000000301"));
+        parameters.put("limit", 100);
+        BoundSql boundSql = statement.getBoundSql(parameters);
+        String sql = boundSql.getSql().replaceAll("\\s+", " ").trim();
+
+        assertTrue(sql.contains("LEFT JOIN public.dms_version_states current_state"));
+        assertTrue(sql.contains("current_state.lifecycle_status = 'EFFECTIVE'"));
+        assertTrue(sql.contains("LEFT JOIN public.dms_file_versions current_version"));
+        assertTrue(sql.contains("COALESCE(d.document_no, version_document.document_no) AS document_no"));
+        assertTrue(sql.contains("COALESCE(v.version_label, current_version.version_label) AS version_label"));
+        assertTrue(sql.contains("COALESCE(version_state.effective_to, current_state.effective_to) AS effective_to"));
+        assertTrue(sql.endsWith("LIMIT ?"));
+        assertFalse(sql.contains("SELECT *"));
+    }
+}

--
Gitblit v1.8.0