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/DmsVersionStateMapper.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsVersionStateMapper.java b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsVersionStateMapper.java
new file mode 100644
index 0000000..3aa3fb8
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsMapper/DmsVersionStateMapper.java
@@ -0,0 +1,52 @@
+package jnpf.dmsMapper;
+
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.UUID;
+
+@Mapper
+public interface DmsVersionStateMapper {
+
+ @Insert("INSERT INTO public.dms_version_states ("
+ + "file_version_id, tenant_id, document_id, lifecycle_status, approved_at, approved_by, "
+ + "archived_at, effective_from, approval_source_type, approval_source_id, status_reason, "
+ + "status_changed_by) VALUES (#{fileVersionId}, #{tenantId}, #{documentId}, 'EFFECTIVE', "
+ + "CURRENT_TIMESTAMP, #{userId}, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'DIRECT', "
+ + "CAST(#{fileVersionId} AS TEXT), 'DMS 涓存椂涓婁紶鐩存帴鐢熸晥', #{userId})")
+ int insertDirectEffective(@Param("tenantId") String tenantId,
+ @Param("documentId") UUID documentId,
+ @Param("fileVersionId") UUID fileVersionId,
+ @Param("userId") String userId);
+
+ @Update("UPDATE public.dms_version_states SET lifecycle_status = 'SUPERSEDED', "
+ + "effective_to = CURRENT_TIMESTAMP, status_reason = CONCAT('妯℃嫙淇锛屽凡鐢辩増鏈� ', "
+ + "#{newVersionLabel}, ' 鏇夸唬'), status_changed_at = CURRENT_TIMESTAMP, "
+ + "status_changed_by = #{userId}, revision = revision + 1, updated_at = CURRENT_TIMESTAMP "
+ + "WHERE tenant_id = #{tenantId} AND document_id = #{documentId} "
+ + "AND file_version_id = #{fileVersionId} AND lifecycle_status = 'EFFECTIVE' "
+ + "AND effective_from <= CURRENT_TIMESTAMP "
+ + "AND (effective_to IS NULL OR CURRENT_TIMESTAMP < effective_to)")
+ int supersedeCurrent(@Param("tenantId") String tenantId,
+ @Param("documentId") UUID documentId,
+ @Param("fileVersionId") UUID fileVersionId,
+ @Param("newVersionLabel") String newVersionLabel,
+ @Param("userId") String userId);
+
+ @Insert("INSERT INTO public.dms_version_states ("
+ + "file_version_id, tenant_id, document_id, lifecycle_status, approved_at, approved_by, "
+ + "archived_at, effective_from, approval_source_type, approval_source_id, status_reason, "
+ + "status_changed_by) VALUES (#{fileVersionId}, #{tenantId}, #{documentId}, 'EFFECTIVE', "
+ + "CURRENT_TIMESTAMP, #{userId}, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'DIRECT', "
+ + "CONCAT('revision:', CAST(#{baseFileVersionId} AS TEXT), ':', #{sourceId}), "
+ + "#{revisionReason}, #{userId})")
+ int insertRevisionEffective(@Param("tenantId") String tenantId,
+ @Param("documentId") UUID documentId,
+ @Param("baseFileVersionId") UUID baseFileVersionId,
+ @Param("fileVersionId") UUID fileVersionId,
+ @Param("sourceId") String sourceId,
+ @Param("revisionReason") String revisionReason,
+ @Param("userId") String userId);
+}
--
Gitblit v1.8.0