OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/resources/mybatis/query-template/project-template.xml
@@ -82,7 +82,7 @@
            AND p.name like CONCAT('%',#{name},'%')
        </if>
        <choose>
            <when test="myDepartmentIds.size != 0">
            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
                AND prd.department_id IN
                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
@@ -187,7 +187,7 @@
        </if>
        <choose>
            <when test="myDepartmentIds.size != 0">
            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
                AND prd.department_id IN
                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
@@ -340,9 +340,45 @@
        AND p.workspace_id = #{workspaceId}
    </select>
    <!--    해당 업무 공간에서 진행중인 모든 프로젝트를 조회한다  -->
    <select id="findByWorkspaceIdAndProjectAll" resultType="java.util.HashMap"
            parameterType="kr.wisestone.owl.web.condition.ProjectCondition">
        SELECT
        DISTINCT p.id as id,
        p.name as name,
        p.description as description,
        p.status as status,
        p.start_date as startDate,
        p.end_date as endDate,
        p.project_key as projectKey,
        CASE p.default_yn WHEN 'Y' THEN 'true' ELSE 'false' END as defaultYn
        FROM
        project p
        INNER JOIN project_role pr on p.id = pr.project_id
        INNER JOIN project_role_user pru on pru.project_role_id = pr.id
        WHERE p.workspace_id = #{workspaceId}
        <if test="name != '' and name != null">
            AND p.name like CONCAT('%',#{name},'%')
        </if>
        <choose>
            <when test="statuses.size != 0">
                AND p.status IN
                <foreach collection="statuses" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
        <choose>
            <when test="excludeIds.size != 0">
                AND p.id NOT IN
                <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
    </select>
    <!--    해당 업무 공간에서 참여하고 있는 진행중인 프로젝트를 조회한다  -->
    <select id="findByWorkspaceIdAndIncludeProjectAll" resultType="java.util.HashMap"
   <!-- <select id="findByWorkspaceIdAndIncludeProjectAll" resultType="java.util.HashMap"
            parameterType="kr.wisestone.owl.web.condition.ProjectCondition">
        SELECT
        DISTINCT p.id as id,
@@ -359,6 +395,55 @@
        INNER JOIN project_role_user pru on pru.project_role_id = pr.id
        WHERE pru.user_id = #{loginUserId}
        AND p.workspace_id = #{workspaceId}
        <if test="name != '' and name != null">
            AND p.name like CONCAT('%',#{name},'%')
        </if>
        <choose>
            <when test="statuses.size != 0">
                AND p.status IN
                <foreach collection="statuses" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
        <choose>
            <when test="excludeIds.size != 0">
                AND p.id NOT IN
                <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
    </select>-->
    <!--    해당 업무 공간에서 참여하고 있는 진행중인 프로젝트를 조회한다  -->
    <select id="findByWorkspaceIdAndIncludeProjectAll" resultType="java.util.HashMap"
            parameterType="kr.wisestone.owl.web.condition.ProjectCondition">
        SELECT
        DISTINCT p.id as id,
        p.name as name,
        p.description as description,
        p.status as status,
        p.start_date as startDate,
        p.end_date as endDate,
        p.project_key as projectKey,
        CASE p.default_yn WHEN 'Y' THEN 'true' ELSE 'false' END as defaultYn
        FROM
        project p
        INNER JOIN project_role pr on p.id = pr.project_id
        LEFT OUTER JOIN project_role_user pru on pru.project_role_id = pr.id
        LEFT OUTER JOIN project_role_department prd ON prd.project_role_id = pr.id
        LEFT OUTER JOIN department d on d.id = prd.department_id
        WHERE p.workspace_id = #{workspaceId}
        AND pru.user_id = #{loginUserId}
        <choose>
            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
                OR prd.department_id IN
                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
        </choose>
        <if test="name != '' and name != null">
            AND p.name like CONCAT('%',#{name},'%')
        </if>
@@ -486,6 +571,17 @@
            AND p.name like CONCAT('%',#{name},'%')
        </if>
        <choose>
            <when test="myDepartmentIds != null and myDepartmentIds.size != 0">
                AND prd.department_id IN
                <foreach collection="myDepartmentIds" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </when>
            <otherwise>
                AND 1 != 1
            </otherwise>
        </choose>
        <choose>
            <when test="statuses.size != 0">
                AND p.status IN
                <foreach collection="statuses" item="item" index="index" separator="," open="(" close=")">