刘光辉
117 分钟以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package jnpf.dmsMapper;
 
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import jnpf.dmsEntity.storage.entity.DmsFileObjectEntity;
import jnpf.dmsEntity.storage.vo.DmsFileUploadVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
 
import java.util.UUID;
 
@Mapper
public interface DmsFileObjectMapper extends BaseMapper<DmsFileObjectEntity> {
 
    @Select("SELECT id, tenant_id, file_version_id, storage_platform, bucket_name, base_path, "
            + "object_path, object_name, pdf_object_key, pdf_size_bytes, pdf_checksum_sha256, "
            + "pdf_source_checksum_sha256, pdf_generated_at, source_service_id, source_id, "
            + "created_by, created_at "
            + "FROM public.dms_file_objects WHERE tenant_id = #{tenantId} "
            + "AND file_version_id = #{fileVersionId} LIMIT 1")
    DmsFileObjectEntity selectByTenantAndFileVersionId(@Param("tenantId") String tenantId,
                                                       @Param("fileVersionId") UUID fileVersionId);
 
    @Select("SELECT 1 FROM (SELECT pg_advisory_xact_lock(hashtextextended(#{tenantId} || ':' "
            + "|| #{serviceId} || ':' || #{sourceId}, 0))) advisory_lock")
    Integer lockSource(@Param("tenantId") String tenantId,
                       @Param("serviceId") String serviceId,
                       @Param("sourceId") String sourceId);
 
    @Select("SELECT d.id AS document_id, CASE WHEN s.approval_source_id LIKE 'revision:%' "
            + "THEN split_part(s.approval_source_id, ':', 2)::UUID END AS base_file_version_id, "
            + "v.id AS file_version_id, o.id AS file_object_id, "
            + "d.folder_id, d.document_no, d.name AS document_name, d.document_type, "
            + "d.responsible_dept_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.shifou_shoukong, "
            + "o.storage_platform, o.bucket_name, o.base_path, o.object_path, "
            + "o.object_name, o.source_id, s.status_reason AS revision_reason, "
            + "s.lifecycle_status, o.created_at "
            + "FROM public.dms_file_objects o "
            + "JOIN public.dms_file_versions v ON v.tenant_id = o.tenant_id AND v.id = o.file_version_id "
            + "JOIN public.dms_documents d ON d.tenant_id = v.tenant_id AND d.id = v.document_id "
            + "LEFT 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 o.tenant_id = #{tenantId} AND o.source_service_id = #{serviceId} "
            + "AND o.source_id = #{sourceId}")
    DmsFileUploadVO selectUploadBySource(@Param("tenantId") String tenantId,
                                         @Param("serviceId") String serviceId,
                                         @Param("sourceId") String sourceId);
}