OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/resources/mybatis/query-template/department-template.xml
@@ -8,16 +8,24 @@
        d.id as id,
        d.department_name as departmentName,
        d.department_description as departmentDescription,
        (SELECT COUNT(d.id) FROM user_department ud WHERE d.id = ud.department_id) AS departmentCount
        (SELECT COUNT(ud.department_id) FROM user_department ud WHERE d.id = ud.department_id) AS departmentCount
        FROM
        department d
        WHERE 1=1
        <if test="departmentName != '' and departmentName != null">
        <if test="departmentName != null and departmentName != ''">
            AND d.department_name like CONCAT('%',#{departmentName},'%')
        </if>
        <if test="id != '' and id != null">
        <if test="id != null and id != ''">
            AND d.id like CONCAT('%',#{id},'%')
        </if>
        <choose>
            <when test="excludeIds != null and excludeIds.size != 0">
                AND d.id NOT IN
                <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
        <if test="pageSize != '' and pageSize != null">
            limit #{pageSize} offset #{page};
        </if>
@@ -36,4 +44,61 @@
            AND d.id like CONCAT('%',#{id},'%')
        </if>
    </select>
    <select id="findByDepartmentIds" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.UserCondition">
        SELECT
        d.id as id,
        d.department_name as departmentName,
        d.department_description as departmentDescription
        FROM
        user_department ud
        INNER JOIN department d ON ud.department_id = d.id
        WHERE 1=1
        <if test="id != '' and id != null">
            AND ud.user_id = #{id}
        </if>
        <choose>
            <when test="excludeIds != null and excludeIds.size != 0">
                AND d.id NOT IN
                <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
    </select>
    <select id="findProjectDepartment" resultType="java.util.HashMap"
            parameterType="kr.wisestone.owl.web.condition.UserCondition">
        select DISTINCT (d.id) as departmentId, d.department_name as departmentName from department d
         inner join project_role_department prd on prd.department_id = d.id
         inner join project_role pr on pr.id = prd.project_role_id
         inner join project p on p.id = pr.project_id
        where p.id = #{projectId};
    </select>
    <select id="findByIssueStatusId" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.DepartmentCondition">
        SELECT
        d.id as id,
        d.department_name as departmentName
        FROM
        department d
        INNER JOIN workflow_department wd ON wd.department_id = d.id
        WHERE 1=1
        <if test="issueStatusId != null and issueStatusId != ''">
            AND wd.issue_status_id = #{issueStatusId}
        </if>
        <if test="workflowId != null and workflowId != ''">
            AND wd.workflow_Id = #{workflowId}
        </if>
        <choose>
            <when test="excludeIds != null and excludeIds.size != 0">
                AND d.id NOT IN
                <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
    </select>
</mapper>