TemplateExtendsMapper.xml 5.46 KB
Newer Older
1 2 3
<?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="pwc.taxtech.atms.dao.TemplateMapper">
neo's avatar
neo committed
4

sherlock's avatar
sherlock committed
5
    <resultMap id="TemplateUniqDto" type="pwc.taxtech.atms.dpo.TemplateUniqDto">
neo's avatar
neo committed
6 7 8 9 10 11 12 13 14 15 16 17 18
        <id column="ID" jdbcType="INTEGER" property="id"/>
        <result column="CODE" jdbcType="VARCHAR" property="code"/>
        <result column="NAME" jdbcType="VARCHAR" property="name"/>
        <result column="ORDER_INDEX" jdbcType="INTEGER" property="orderIndex"/>
        <result column="REPORT_TYPE" jdbcType="INTEGER" property="reportType"/>
        <result column="TEMPLATE_GROUP_ID" jdbcType="VARCHAR" property="templateGroupId"/>
        <result column="TEMPLATE_GROUP_NAME" jdbcType="VARCHAR" property="templateGroupName"/>
        <result column="PARENT_ID" jdbcType="VARCHAR" property="parentId"/>
        <result column="PARENT_NAME" jdbcType="VARCHAR" property="parentName"/>
        <result column="PAY_TAX_TYPE" jdbcType="INTEGER" property="payTaxType"/>
        <result column="INDUSTRY_IDS" jdbcType="VARCHAR" property="industryIds"/>
        <result column="SERVICE_TYPE_ID" jdbcType="VARCHAR" property="serviceTypeId"/>
        <result column="IS_ACTIVE_ASSOCIATION" jdbcType="INTEGER" property="isActiveAssociation"/>
19 20 21
    </resultMap>

    <select id="getTemplateUniqDtosByTemplateAndTemplateGroup" parameterType="map" resultMap="TemplateUniqDto">
neo's avatar
neo committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35
        SELECT
        P.ID,
        p.CODE,
        p.NAME,
        P.REPORT_TYPE,
        Q.ID AS TEMPLATE_GROUP_ID,
        Q.NAME AS TEMPLATE_GROUP_NAME,
        P.IS_ACTIVE_ASSOCIATION
        FROM
        TEMPLATE P
        JOIN
        TEMPLATE_GROUP Q
        ON
        P.TEMPLATE_GROUP_ID=Q.ID
36 37 38
        <where>
            1=1
            <if test="serviceTypeId!=null">
frank.xa.zhang's avatar
frank.xa.zhang committed
39
                AND Q.SERVICE_TYPE_ID= #{serviceTypeId,jdbcType=VARCHAR}
40 41
            </if>
            <if test="payTaxType!=null">
frank.xa.zhang's avatar
frank.xa.zhang committed
42
                AND Q.PAY_TAX_TYPE = #{payTaxType,jdbcType=INTEGER}
43 44
            </if>
            <if test="reportType!=null">
frank.xa.zhang's avatar
frank.xa.zhang committed
45
                AND P.REPORT_TYPE = #{reportType,jdbcType=INTEGER}
46 47
            </if>
            <if test="industryIds!=null">
frank.xa.zhang's avatar
frank.xa.zhang committed
48
                AND Q.INDUSTRY_IDS = #{industryID,jdbcType=VARCHAR}
49 50
            </if>
        </where>
neo's avatar
neo committed
51 52 53
        ORDER BY
        P.TEMPLATE_GROUP_ID,
        P.ORDER_INDEX
54
    </select>
neo's avatar
neo committed
55

56
    <resultMap id="TemplateAndGroupDbDto" type="pwc.taxtech.atms.dpo.TemplateAndGroupDbDto">
neo's avatar
neo committed
57 58 59
        <id column="ID" jdbcType="VARCHAR" property="templateId"/>
        <result column="TEMPLATE_GROUP_ID" jdbcType="VARCHAR" property="templateGroupId"/>
        <result column="TEMPLATE_CODE" jdbcType="VARCHAR" property="templateCode"/>
60
    </resultMap>
61
    <select id="getTemplateAndGroupById" parameterType="java.lang.String" resultMap="TemplateAndGroupDbDto">
neo's avatar
neo committed
62 63 64 65 66 67 68 69 70 71 72
        SELECT
        P.ID AS ID,
        Q.ID AS TEMPLATE_GROUP_ID,
        P.CODE AS TEMPLATE_CODE
        FROM
        TEMPLATE P
        JOIN
        TEMPLATE_GROUP Q
        ON
        P.TEMPLATE_GROUP_ID=Q.ID
        WHERE
frank.xa.zhang's avatar
frank.xa.zhang committed
73
        p.ID= #{id,jdbcType=VARCHAR} AND ROWNUM=1
74
    </select>
neo's avatar
neo committed
75

76
    <select id="getCountOfTemplateAndGroupByTemplateName" parameterType="map" resultType="java.lang.Long">
neo's avatar
neo committed
77 78 79 80 81 82 83 84 85 86
        SELECT
        COUNT (
        1
        )
        FROM
        TEMPLATE P
        JOIN
        TEMPLATE_GROUP Q
        ON
        P.TEMPLATE_GROUP_ID=Q.ID
87 88 89
        <where>
            1=1
            <if test="templateGroupId!=null">
neo's avatar
neo committed
90
                AND Q.ID = #{templateGroupId,jdbcType=VARCHAR}
91 92
            </if>
            <if test="templateId!=null">
frank.xa.zhang's avatar
frank.xa.zhang committed
93
                AND P.ID&lt;&gt; #{templateId,jdbcType=VARCHAR}
94 95
            </if>
            <if test="templateName!=null">
frank.xa.zhang's avatar
frank.xa.zhang committed
96
                AND P.NAME= #{templateName,jdbcType=VARCHAR}
97 98 99
            </if>
        </where>
    </select>
neo's avatar
neo committed
100

sherlock's avatar
sherlock committed
101
    <resultMap id="reportDto" type="pwc.taxtech.atms.dpo.ReportDto">
neo's avatar
neo committed
102 103 104 105 106
        <id column="ID" jdbcType="VARCHAR" property="id"/>
        <result column="PERIOD" jdbcType="INTEGER" property="period"/>
        <result column="TEMPLATE_ID" jdbcType="INTEGER" property="templateId"/>
        <result column="TEMPLATE_NAME" jdbcType="VARCHAR" property="templateName"/>
        <result column="TEMPLATE_CODE" jdbcType="VARCHAR" property="templateCode"/>
107 108
    </resultMap>

frank.xa.zhang's avatar
frank.xa.zhang committed
109
    <!--TODO: 考虑项目库表迁移-->
110 111
    <select id="getTemplateLeftJoinReport" parameterType="map" resultMap="reportDto">
        SELECT
neo's avatar
neo committed
112 113 114 115 116 117 118 119 120 121 122 123
        D.ID AS ID,
        D.PERIOD AS PERIOD,
        C.ID AS TEMPLATE_ID,
        C.NAME AS TEMPLATE_NAME,
        C.CODE AS TEMPLATE_CODE
        FROM
        (
        SELECT
        A.ID,
        A.NAME,
        A.CODE
        FROM
frank.xa.zhang's avatar
frank.xa.zhang committed
124
        TEMPLATE A
neo's avatar
neo committed
125 126 127 128 129 130 131 132 133 134 135 136 137 138
        WHERE
        A.TEMPLATE_GROUP_ID = #{templateGroupID,jdbcType=VARCHAR}
        AND A.IS_ACTIVE_ASSOCIATION = 1
        ORDER BY
        A.ORDER_INDEX
        )
        C
        LEFT JOIN
        (
        SELECT
        B.ID,
        B.PERIOD,
        B.TEMPLATE_ID
        FROM
frank.xa.zhang's avatar
frank.xa.zhang committed
139
        PERIOD_REPORT b
neo's avatar
neo committed
140 141
        WHERE
        b.PERIOD = #{period,jdbcType=INTEGER}
142
        AND B.PROJECT_ID = #{projectId,jdbcType=VARCHAR}
neo's avatar
neo committed
143 144 145 146 147 148
        )
        D
        ON
        C.ID = D.TEMPLATE_ID
        ORDER BY
        TEMPLATE_CODE
149 150
    </select>

frank.xa.zhang's avatar
frank.xa.zhang committed
151
    <select id="getIdsForExceptTemplate" resultType="java.lang.Long">
152
        SELECT
neo's avatar
neo committed
153
        A.ID
154
        FROM
neo's avatar
neo committed
155 156 157 158 159
        TEMPLATE A
        JOIN
        TEMPLATE_GROUP B
        ON
        A.TEMPLATE_GROUP_ID = B.ID
160
        WHERE
neo's avatar
neo committed
161 162
        B.GROUP_TYPE = 2
        AND B.SERVICE_TYPE_ID = 2
163
    </select>
neo's avatar
neo committed
164

165
</mapper>