<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="jnpf.dmsMapper.DmsRevisionEditMapper">
|
<resultMap id="source" type="jnpf.dmsEntity.storage.DmsRevisionEditSource">
|
<id column="version_id" property="versionId"/>
|
<result column="parent_field" property="parentField"/>
|
<result column="field" property="field"/>
|
<result column="files" property="files"/>
|
</resultMap>
|
<select id="sources" resultMap="source">
|
WITH eligible AS (
|
SELECT z.f_id AS file_id, v.f_id AS version_id, v.wenjian_neirong AS files
|
FROM dms_wenjian_xiuding_shenqing_zixiang d
|
JOIN dms_wenjian_xiuding_shenqing a ON a.f_id=d.f_foreign_id AND a.f_tenant_id=d.f_tenant_id
|
JOIN dms_wenjian_ziyuan z ON z.f_id=d.wenjian_id AND z.f_tenant_id=d.f_tenant_id
|
JOIN dms_wenjian_banben v ON v.f_id=d.yuan_wenjian_banben_id AND v.f_tenant_id=d.f_tenant_id AND v.wenjian_id=z.f_id
|
WHERE d.f_tenant_id=#{tenant} AND d.f_id=#{source} AND a.tiyi_ren_id=#{owner}
|
AND a.f_flow_state=2 AND d.biz_status='available'
|
AND z.wenjian_leixing='zhuwenjian' AND z.biz_status='effective' AND v.biz_status='effective'
|
AND z.dangqian_banben_id=v.f_id
|
AND a.f_delete_mark IS NULL AND d.f_delete_mark IS NULL AND z.f_delete_mark IS NULL AND v.f_delete_mark IS NULL
|
AND EXISTS (SELECT 1 FROM base_visual_release f WHERE f.f_id=#{model} AND f.f_tenant_id=#{tenant}
|
AND f.f_delete_mark IS NULL AND f.f_form_data::jsonb->>'tableName'='dms_wenjian_xiuding_shenhe')
|
AND NOT EXISTS (SELECT 1 FROM dms_wenjian_xiuding_shenhe h WHERE h.f_tenant_id=#{tenant}
|
AND h.xiuding_shenqing_zixiang_id=d.f_id AND h.f_delete_mark IS NULL
|
AND (h.f_flow_state IS NULL OR h.f_flow_state IN (0,1,2,5,6,8,10)))
|
AND NOT EXISTS (SELECT 1 FROM dms_file_operation_occupancies o WHERE o.tenant_id=#{tenant}
|
AND o.active=true AND (o.file_id=z.f_id OR EXISTS (
|
SELECT 1 FROM dms_wenjian_guanxi g WHERE g.f_tenant_id=#{tenant} AND g.zhu_wenjian_id=o.file_id
|
AND g.guanlian_wenjian_id=z.f_id AND g.guanxi_leixing='jilu' AND g.biz_status='effective' AND g.f_delete_mark IS NULL)))
|
)
|
SELECT version_id, '' AS parent_field, 'wenjian' AS field, files FROM eligible
|
UNION ALL
|
SELECT DISTINCT rv.f_id, 'jilu_mingxi', 'jilu_wenjian', rv.wenjian_neirong
|
FROM eligible e JOIN dms_wenjian_guanxi g ON g.f_tenant_id=#{tenant} AND g.zhu_wenjian_id=e.file_id
|
JOIN dms_wenjian_ziyuan rz ON rz.f_tenant_id=#{tenant} AND rz.f_id=g.guanlian_wenjian_id
|
JOIN dms_wenjian_banben rv ON rv.f_tenant_id=#{tenant} AND rv.f_id=COALESCE(g.guanlian_wenjian_banben_id,rz.dangqian_banben_id) AND rv.wenjian_id=rz.f_id
|
WHERE g.guanxi_leixing='jilu' AND (g.zhu_wenjian_banben_id=e.version_id OR g.zhu_wenjian_banben_id IS NULL)
|
AND g.biz_status='effective' AND rz.biz_status='effective' AND rv.biz_status='effective'
|
AND g.f_delete_mark IS NULL AND rz.f_delete_mark IS NULL AND rv.f_delete_mark IS NULL
|
</select>
|
</mapper>
|