<?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.DmsWenjianBianhaoMapper">
|
|
<resultMap id="BaseResultMap" type="jnpf.dmsEntity.DmsWenjianBianhaoEntity">
|
<id column="f_id" property="id"/>
|
<result column="f_foreign_id" property="foreignId"/>
|
<result column="f_tenant_id" property="tenantId"/>
|
<result column="f_delete_mark" property="deleteMark"/>
|
<result column="zidingyi_neirong" property="zidingyiNeirong"/>
|
<result column="guize_id" property="guizeId"/>
|
<result column="guize_kuaizhao_id" property="guizeKuaizhaoId"/>
|
<result column="guize_mingcheng_kuaizhao" property="guizeMingchengKuaizhao"/>
|
<result column="guize_kuaizhao" property="guizeKuaizhao"/>
|
<result column="bianhao_muban" property="bianhaoMuban"/>
|
<result column="yulan_bianhao" property="yulanBianhao"/>
|
<result column="shenqing_bianhao" property="shenqingBianhao"/>
|
<result column="wenjian_bianhao" property="wenjianBianhao"/>
|
<result column="liushui_hao" property="liushuiHao"/>
|
<result column="shiyong_ren_id" property="shiyongRenId"/>
|
<result column="yuan_wenjian_mingcheng" property="yuanWenjianMingcheng"/>
|
<result column="dangqian_wenjian_mingcheng" property="dangqianWenjianMingcheng"/>
|
<result column="mingcheng_banben" property="mingchengBanben"/>
|
<result column="bianhao_fafang_shijian" property="bianhaoFafangShijian"/>
|
<result column="biz_status" property="bizStatus"/>
|
<result column="wenjian_mulu_id" property="wenjianMuluId"/>
|
</resultMap>
|
|
<sql id="BaseColumns">
|
zidingyi_neirong, wenjian_mulu_id, f_id, f_foreign_id, f_tenant_id, f_delete_mark, guize_id, guize_kuaizhao_id,
|
guize_mingcheng_kuaizhao, guize_kuaizhao, bianhao_muban, yulan_bianhao,
|
shenqing_bianhao, wenjian_bianhao, liushui_hao, shiyong_ren_id,
|
yuan_wenjian_mingcheng, dangqian_wenjian_mingcheng, mingcheng_banben,
|
bianhao_fafang_shijian, biz_status
|
</sql>
|
|
<select id="selectByApplication" resultMap="BaseResultMap">
|
SELECT <include refid="BaseColumns"/>
|
FROM dms_wenjian_bianhao
|
WHERE f_tenant_id = #{tenantId}
|
AND f_foreign_id = #{applicationId}
|
AND (f_delete_mark IS NULL OR f_delete_mark <> 1)
|
ORDER BY f_id ASC
|
</select>
|
|
<select id="selectFixedNumberConflicts" resultMap="BaseResultMap">
|
SELECT <include refid="BaseColumns"/>
|
FROM dms_wenjian_bianhao b
|
WHERE b.f_tenant_id = #{tenantId}
|
AND (
|
<!-- Issued numbers stay occupied even after logical deletion, as in the unique index. -->
|
b.wenjian_bianhao IN
|
<foreach collection="numbers" item="number" open="(" separator="," close=")">#{number}</foreach>
|
OR (
|
b.wenjian_bianhao IS NULL
|
AND b.bianhao_muban IN
|
<foreach collection="numbers" item="number" open="(" separator="," close=")">#{number}</foreach>
|
AND (b.f_delete_mark IS NULL OR b.f_delete_mark <> 1)
|
AND b.f_foreign_id IS DISTINCT FROM #{applicationId}
|
AND EXISTS (
|
SELECT 1 FROM dms_wenjian_bianhao_shenqing a
|
WHERE a.f_tenant_id = b.f_tenant_id AND a.f_id = b.f_foreign_id
|
AND (a.f_delete_mark IS NULL OR a.f_delete_mark <> 1)
|
<!-- Passed but not yet issued applications also retain the number. -->
|
AND a.f_flow_state IN (1, 2, 5, 6, 8, 10)
|
)
|
)
|
)
|
ORDER BY b.f_id ASC
|
</select>
|
|
<select id="selectUsingPage" resultMap="BaseResultMap">
|
SELECT <include refid="BaseColumns"/>
|
FROM dms_wenjian_bianhao b
|
WHERE b.f_tenant_id = #{tenantId}
|
AND b.biz_status = 'using'
|
AND NULLIF(BTRIM(b.wenjian_bianhao), '') IS NOT NULL
|
AND (b.f_delete_mark IS NULL OR b.f_delete_mark <> 1)
|
<if test="bianhaoId != null and bianhaoId != ''">
|
AND b.f_id = #{bianhaoId}
|
</if>
|
<if test="bianhaoId == null or bianhaoId == ''">
|
AND NOT EXISTS (
|
SELECT 1
|
FROM dms_wenjian_mingcheng_biangeng_shenqing c
|
WHERE c.f_tenant_id = b.f_tenant_id
|
AND c.bianhao_id = b.f_id
|
AND c.f_flow_state IN (1, 5, 6, 8, 10)
|
AND (c.f_delete_mark IS NULL OR c.f_delete_mark <> 1)
|
)
|
</if>
|
<if test="keyword != null and keyword != ''">
|
AND (b.wenjian_bianhao LIKE CONCAT('%', #{keyword}, '%')
|
OR b.dangqian_wenjian_mingcheng LIKE CONCAT('%', #{keyword}, '%'))
|
</if>
|
ORDER BY b.bianhao_fafang_shijian DESC NULLS LAST, b.f_id ASC
|
</select>
|
|
<resultMap id="UsedNumber" type="java.lang.Boolean"><result column="value"/></resultMap>
|
<select id="numberAlreadyUsed" resultMap="UsedNumber" useCache="false" flushCache="true">
|
SELECT EXISTS (SELECT 1 FROM dms_wenjian_bianhao b
|
WHERE b.f_tenant_id=#{tenantId} AND b.f_id=#{numberId}
|
AND <include refid="jnpf.dmsBusinessOccupancy.BusinessFileOccupancyMapper.numberAlreadyUsed"/>) AS value
|
</select>
|
|
<select id="selectNameChangeAvailablePage" resultMap="BaseResultMap">
|
SELECT <include refid="BaseColumns"/>
|
FROM dms_wenjian_bianhao b
|
WHERE b.f_tenant_id = #{tenantId}
|
AND b.biz_status = 'using'
|
AND NULLIF(BTRIM(b.wenjian_bianhao), '') IS NOT NULL
|
AND (b.f_delete_mark IS NULL OR b.f_delete_mark <> 1)
|
AND NOT <include refid="jnpf.dmsBusinessOccupancy.BusinessFileOccupancyMapper.numberAlreadyUsed"/>
|
<if test="bianhaoId != null and bianhaoId != ''">
|
AND b.f_id = #{bianhaoId}
|
</if>
|
<if test="bianhaoId == null or bianhaoId == ''">
|
AND NOT EXISTS (
|
SELECT 1
|
FROM dms_wenjian_mingcheng_biangeng_shenqing c
|
WHERE c.f_tenant_id = b.f_tenant_id
|
AND c.bianhao_id = b.f_id
|
AND c.f_flow_state IN (1, 5, 6, 8, 10)
|
AND (c.f_delete_mark IS NULL OR c.f_delete_mark <> 1)
|
)
|
</if>
|
<if test="keyword != null and keyword != ''">
|
AND (b.wenjian_bianhao LIKE CONCAT('%', #{keyword}, '%')
|
OR b.dangqian_wenjian_mingcheng LIKE CONCAT('%', #{keyword}, '%'))
|
</if>
|
ORDER BY b.bianhao_fafang_shijian DESC NULLS LAST, b.f_id ASC
|
</select>
|
|
<select id="selectAvailableNewPage" resultMap="BaseResultMap">
|
SELECT <include refid="BaseColumns"/>
|
FROM dms_wenjian_bianhao b
|
WHERE b.f_tenant_id = #{tenantId}
|
AND b.biz_status = 'using'
|
AND NULLIF(BTRIM(b.wenjian_bianhao), '') IS NOT NULL
|
AND (b.f_delete_mark IS NULL OR b.f_delete_mark <> 1)
|
<if test="bianhaoId != null and bianhaoId != ''">
|
AND b.f_id = #{bianhaoId}
|
</if>
|
<if test="bianhaoId == null or bianhaoId == ''">
|
AND NOT EXISTS (
|
SELECT 1
|
FROM dms_wenjian_ziyuan r
|
WHERE r.f_tenant_id = b.f_tenant_id
|
AND (r.wenjian_bianhao_id = b.f_id OR r.wenjian_bianhao = b.wenjian_bianhao)
|
)
|
AND NOT EXISTS (
|
SELECT 1
|
FROM dms_wenjian_xinzeng_shenhe a
|
WHERE a.f_tenant_id = b.f_tenant_id
|
AND a.wenjian_bianhao_id = b.f_id
|
AND (a.f_delete_mark IS NULL OR a.f_delete_mark <> 1)
|
)
|
</if>
|
<if test="keyword != null and keyword != ''">
|
AND (b.wenjian_bianhao LIKE CONCAT('%', #{keyword}, '%')
|
OR b.dangqian_wenjian_mingcheng LIKE CONCAT('%', #{keyword}, '%'))
|
</if>
|
ORDER BY b.bianhao_fafang_shijian DESC NULLS LAST, b.f_id ASC
|
</select>
|
|
<select id="selectByApplicationForUpdate" resultMap="BaseResultMap">
|
SELECT <include refid="BaseColumns"/>
|
FROM dms_wenjian_bianhao
|
WHERE f_tenant_id = #{tenantId}
|
AND f_foreign_id = #{applicationId}
|
AND (f_delete_mark IS NULL OR f_delete_mark <> 1)
|
ORDER BY f_id
|
FOR UPDATE
|
</select>
|
|
<select id="selectActiveByIdForUpdate" resultMap="BaseResultMap">
|
SELECT <include refid="BaseColumns"/>
|
FROM dms_wenjian_bianhao
|
WHERE f_tenant_id = #{tenantId}
|
AND f_id = #{id}
|
AND (f_delete_mark IS NULL OR f_delete_mark <> 1)
|
FOR UPDATE
|
</select>
|
|
<update id="markUnissuedFailure">
|
UPDATE dms_wenjian_bianhao
|
SET shenqing_bianhao = '发号失败'
|
WHERE f_tenant_id = #{tenantId}
|
AND f_foreign_id = #{applicationId}
|
AND f_delete_mark IS NULL
|
AND (wenjian_bianhao IS NULL OR TRIM(wenjian_bianhao) = '')
|
</update>
|
</mapper>
|