<?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.DmsFileExpiryProjectionMapper">
|
<select id="hasPendingProjection" resultType="boolean">
|
SELECT EXISTS (SELECT 1 FROM public.dms_approved_file_items i
|
JOIN public.dms_approved_file_batches b ON b.tenant_id=i.tenant_id AND b.id=i.batch_id
|
WHERE i.tenant_id=#{tenantId}
|
AND i.file_version_id=#{fileVersionId,jdbcType=OTHER,typeHandler=jnpf.dmsDatabase.DmsUuidTypeHandler}
|
AND i.change_type IN ('CREATE','REVISE') AND b.status <> 'APPLIED')
|
</select>
|
<select id="lockResources" resultType="jnpf.dmsEntity.storage.expiry.DmsFileExpiryResource">
|
SELECT r.f_id AS id, r.dangqian_banben_id AS current_version_id,
|
r.wenjian_zhongxin_banben_id AS center_version_id,
|
b.wenjian_zhongxin_banben_id AS version_center_id,
|
r.biz_status, r.jinyong_laiyuan AS disabled_source
|
FROM public.dms_wenjian_ziyuan r
|
LEFT JOIN public.dms_wenjian_banben b ON b.f_tenant_id=r.f_tenant_id
|
AND b.wenjian_id=r.f_id AND b.f_id=r.dangqian_banben_id AND b.f_delete_mark IS NULL
|
WHERE r.f_tenant_id=#{tenantId} AND r.f_delete_mark IS NULL
|
AND (r.wenjian_zhongxin_banben_id=CAST(#{fileVersionId,jdbcType=OTHER,typeHandler=jnpf.dmsDatabase.DmsUuidTypeHandler} AS TEXT)
|
OR b.wenjian_zhongxin_banben_id=CAST(#{fileVersionId,jdbcType=OTHER,typeHandler=jnpf.dmsDatabase.DmsUuidTypeHandler} AS TEXT))
|
ORDER BY r.f_id LIMIT 2 FOR UPDATE OF r
|
</select>
|
<update id="disable">
|
UPDATE public.dms_wenjian_ziyuan SET biz_status='disabled', jinyong_laiyuan='yidaoqi',
|
youxiao_qi_zhi=CAST(#{effectiveTo} AS TIMESTAMPTZ) AT TIME ZONE 'Asia/Shanghai',
|
f_last_modify_user_id=#{actor}, f_last_modify_time=statement_timestamp() AT TIME ZONE 'Asia/Shanghai'
|
WHERE f_tenant_id=#{tenantId} AND f_id=#{resource.id}
|
AND dangqian_banben_id=#{resource.currentVersionId} AND f_delete_mark IS NULL
|
AND (biz_status='effective' OR (biz_status='disabled' AND jinyong_laiyuan='yidaoqi'))
|
</update>
|
<update id="expireBusinessVersion">
|
UPDATE public.dms_wenjian_banben SET biz_status='expired',
|
f_last_modify_user_id=#{actor}, f_last_modify_time=statement_timestamp() AT TIME ZONE 'Asia/Shanghai'
|
WHERE f_tenant_id=#{tenantId} AND f_id=#{resource.currentVersionId} AND wenjian_id=#{resource.id}
|
AND wenjian_zhongxin_banben_id=#{resource.centerVersionId} AND f_delete_mark IS NULL
|
AND biz_status IN ('effective','expired')
|
</update>
|
<update id="extendValidity">
|
UPDATE public.dms_wenjian_ziyuan
|
SET youxiao_qi_zhi=CAST(#{effectiveTo} AS TIMESTAMPTZ) AT TIME ZONE 'Asia/Shanghai',
|
f_last_modify_user_id=#{actor}, f_last_modify_time=statement_timestamp() AT TIME ZONE 'Asia/Shanghai'
|
WHERE f_tenant_id=#{tenantId} AND f_id=#{resource.id} AND dangqian_banben_id=#{resource.currentVersionId}
|
AND biz_status='effective' AND f_delete_mark IS NULL
|
</update>
|
<update id="closeRelations">
|
UPDATE public.dms_wenjian_guanxi SET biz_status='disabled',
|
shixiao_shijian=CAST(#{effectiveTo} AS TIMESTAMPTZ) AT TIME ZONE 'Asia/Shanghai',
|
f_last_modify_user_id=#{actor}, f_last_modify_time=statement_timestamp() AT TIME ZONE 'Asia/Shanghai'
|
WHERE f_tenant_id=#{tenantId} AND (zhu_wenjian_id=#{fileId} OR guanlian_wenjian_id=#{fileId})
|
AND f_delete_mark IS NULL
|
AND (biz_status='effective' OR (biz_status='disabled'
|
AND shixiao_shijian > (CAST(#{effectiveTo} AS TIMESTAMPTZ) AT TIME ZONE 'Asia/Shanghai')))
|
</update>
|
</mapper>
|