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/main/java/jnpf/dmsMapper/DmsFileVersionMapper.java | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsFileVersionMapper.java b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsFileVersionMapper.java
new file mode 100644
index 0000000..e7914c0
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsFileVersionMapper.java
@@ -0,0 +1,43 @@
+package jnpf.dmsMapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import jnpf.dmsEntity.permission.entity.DmsFileVersionEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.UUID;
+
+@Mapper
+public interface DmsFileVersionMapper extends BaseMapper<DmsFileVersionEntity> {
+ @Select("SELECT id, tenant_id, document_id, version_no, version_label, file_name, mime_type, size_bytes, "
+ + "checksum_sha256, prepared_by, prepared_on, created_by, created_at FROM public.dms_file_versions "
+ + "WHERE tenant_id = #{tenantId} AND id = #{id}")
+ DmsFileVersionEntity selectByTenantAndId(@Param("tenantId") String tenantId, @Param("id") UUID id);
+
+ @Select("SELECT v.id, v.tenant_id, v.document_id, v.version_no, v.version_label, v.file_name, "
+ + "v.mime_type, v.size_bytes, v.checksum_sha256, v.prepared_by, v.prepared_on, "
+ + "v.created_by, v.created_at FROM public.dms_file_versions v "
+ + "JOIN public.dms_version_states s ON s.tenant_id = v.tenant_id "
+ + "AND s.document_id = v.document_id AND s.file_version_id = v.id "
+ + "WHERE v.tenant_id = #{tenantId} AND v.document_id = #{documentId} "
+ + "AND s.lifecycle_status = 'EFFECTIVE' AND s.effective_from <= CURRENT_TIMESTAMP "
+ + "AND (s.effective_to IS NULL OR CURRENT_TIMESTAMP < s.effective_to)")
+ DmsFileVersionEntity selectCurrentEffective(@Param("tenantId") String tenantId,
+ @Param("documentId") UUID documentId);
+
+ @Select("SELECT COALESCE(MAX(version_no), 0) + 1 FROM public.dms_file_versions "
+ + "WHERE tenant_id = #{tenantId} AND document_id = #{documentId}")
+ long selectNextVersionNo(@Param("tenantId") String tenantId,
+ @Param("documentId") UUID documentId);
+
+ @Select({"<script>",
+ "SELECT id, tenant_id, document_id, version_no, version_label, file_name, mime_type, size_bytes,",
+ "checksum_sha256, prepared_by, prepared_on, created_by, created_at FROM public.dms_file_versions",
+ "WHERE tenant_id = #{tenantId} AND id IN",
+ "<foreach collection='ids' item='id' open='(' separator=',' close=')'>#{id}</foreach>",
+ "</script>"})
+ List<DmsFileVersionEntity> selectByTenantAndIds(@Param("tenantId") String tenantId,
+ @Param("ids") List<UUID> ids);
+}
--
Gitblit v1.8.0