刘光辉
6 小时以前 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?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.DmsWenjianChongdaMapper">
    <resultMap id="Attempt" type="jnpf.dmsEntity.fenfa.DmsWenjianChongdaFasong" autoMapping="false">
        <id column="f_id" property="id"/>
        <result column="f_tenant_id" property="tenantId"/>
        <result column="dayin_jilu_id" property="printRecordId"/>
        <result column="dayin_renwu_id" property="taskId"/>
        <result column="wenjian_banben_id" property="fileVersionId"/>
        <result column="fasong_ren_id" property="userId"/>
        <result column="dayin_fenshu" property="copies"/>
        <result column="fasong_zhuangtai" property="state"/>
        <result column="pici_neirong" property="batchesJson"/>
        <result column="haoma_neirong" property="numbersJson"/>
        <result column="yuanyin" property="reason"/>
        <result column="biz_sign" property="bizSign"/>
        <result column="chuangjian_shijian" property="createdAt"/>
        <result column="fasong_chenggong_shijian" property="submittedAt"/>
        <result column="dengji_id" property="documentId"/>
        <result column="zong_yeshu" property="pageCount"/>
        <result column="quxiao_shijian" property="cancelledAt"/>
    </resultMap>
    <sql id="Columns">f_id,f_tenant_id,dayin_jilu_id,dayin_renwu_id,wenjian_banben_id,fasong_ren_id,
        dayin_fenshu,fasong_zhuangtai,pici_neirong,haoma_neirong,yuanyin,biz_sign,
        chuangjian_shijian,fasong_chenggong_shijian,dengji_id,zong_yeshu,quxiao_shijian</sql>
    <select id="selectAttempt" resultMap="Attempt">
        SELECT <include refid="Columns"/> FROM dms_wenjian_chongda_fasong
        WHERE f_tenant_id=#{tenantId} AND f_id=#{id} FOR UPDATE
    </select>
    <select id="selectActive" resultMap="Attempt">
        SELECT <include refid="Columns"/> FROM dms_wenjian_chongda_fasong
        WHERE f_tenant_id=#{tenantId} AND dayin_jilu_id=#{recordId} AND fasong_zhuangtai IN ('OPEN','CONFIRMED')
        FOR UPDATE
    </select>
    <select id="validSignature" resultMap="Attempt">
        SELECT f_id AS biz_sign FROM lims_sign
        WHERE f_tenant_id=#{tenantId} AND f_id=#{signId} AND f_creator_user_id=#{userId}
          AND f_delete_mark IS NULL
          AND meta_data::jsonb-&gt;&gt;'biz_form_id'='37a318b30d7c4daf9670d141b33ed1b7'
          AND meta_data::jsonb#&gt;&gt;'{biz_data,0,chongda_fasong_id}'=#{requestId}
          AND jsonb_array_length(meta_data::jsonb#&gt;'{biz_data,0,bupingheng_mingxi}')=1
          AND meta_data::jsonb#&gt;&gt;'{biz_data,0,bupingheng_mingxi,0,dayin_jilu_id}'=#{recordId}
          AND meta_data::jsonb#&gt;&gt;'{biz_data,0,bupingheng_mingxi,0,cuoshi}'='cuoshi3'
          AND btrim(meta_data::jsonb#&gt;&gt;'{biz_data,0,bupingheng_mingxi,0,yuanyin}')=#{reason}
    </select>
    <resultMap id="Actor" type="jnpf.dmsEntity.fenfa.vo.DmsWenjianChongdaLockVO" autoMapping="false">
        <result column="f_real_name" property="userName"/>
    </resultMap>
    <select id="selectActor" resultMap="Actor">
        SELECT f_real_name FROM base_user WHERE f_tenant_id=#{tenantId} AND f_id=#{userId} AND f_delete_mark IS NULL
    </select>
    <insert id="insertAttempt">
        INSERT INTO dms_wenjian_chongda_fasong
            (<include refid="Columns"/>) VALUES
            (#{id},#{tenantId},#{printRecordId},#{taskId},#{fileVersionId},#{userId},1,#{state},
             #{batchesJson},#{numbersJson},#{reason},#{bizSign},#{createdAt},NULL,NULL,NULL,NULL)
    </insert>
    <update id="updateAttempt">
        UPDATE dms_wenjian_chongda_fasong SET fasong_zhuangtai=#{state},pici_neirong=#{batchesJson},
            fasong_chenggong_shijian=#{submittedAt},dengji_id=#{documentId},zong_yeshu=#{pageCount},quxiao_shijian=#{cancelledAt}
        WHERE f_tenant_id=#{tenantId} AND f_id=#{id}
    </update>
    <select id="findDocument" resultMap="Attempt">
        SELECT f_id AS dengji_id FROM dms_wenjian_bupingheng_dengji
        WHERE f_tenant_id=#{tenantId} AND chongda_fasong_id=#{id} AND f_delete_mark IS NULL
    </select>
    <!-- 只写执行副作用;主子表的创建、编辑仍由平台原生完成。 -->
    <update id="completeDocument">
        UPDATE dms_wenjian_bupingheng_dengji SET zhixing_shijian=#{submittedAt},zhixing_ren_id=#{userId},
            f_version=COALESCE(f_version,0)+1
        WHERE f_tenant_id=#{tenantId} AND f_id=#{documentId} AND chongda_fasong_id=#{id}
            AND f_delete_mark IS NULL AND zhixing_shijian IS NULL
    </update>
</mapper>