| | |
| | | |
| | | <mapper namespace="kr.wisestone.owl.mapper.ProjectMapper"> |
| | | |
| | | <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | <!--<select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | SELECT |
| | | DISTINCT p.id as id, |
| | | p.name as name, |
| | |
| | | <if test="page != null and !page.equals('')"> |
| | | limit #{pageSize} offset #{page}; |
| | | </if> |
| | | </select>--> |
| | | |
| | | <select id="find" 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, |
| | | pc.parent_project_id as parentProjectId, |
| | | 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_department prd on prd.project_role_id = pr.id |
| | | INNER JOIN user_department ud on ud.department_id = prd.department_id |
| | | INNER JOIN workspace ws on ws.id = p.workspace_id |
| | | LEFT JOIN project_closure pc ON p.id = pc.project_id |
| | | WHERE if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1 |
| | | <if test="name != '' and name != null"> |
| | | 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="roleTypes.size != 0"> |
| | | AND pr.role_type IN |
| | | <foreach collection="roleTypes" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | |
| | | <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> |
| | | AND ws.id = #{workspaceId} |
| | | ORDER BY p.id desc |
| | | <if test="page != null and !page.equals('')"> |
| | | limit #{pageSize} offset #{page}; |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | <!--<select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | SELECT |
| | | COUNT(DISTINCT p.id) |
| | | FROM |
| | |
| | | <if test="name != '' and name != null"> |
| | | AND p.name like CONCAT('%',#{name},'%') |
| | | </if> |
| | | |
| | | <choose> |
| | | <when test="roleTypes.size != 0"> |
| | | AND pr.role_type IN |
| | | <foreach collection="roleTypes" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | |
| | | <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> |
| | | AND ws.id = #{workspaceId} |
| | | </select>--> |
| | | |
| | | <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | SELECT |
| | | COUNT(DISTINCT p.id) |
| | | FROM |
| | | project p |
| | | INNER JOIN project_role pr on p.id = pr.project_id |
| | | INNER JOIN project_role_department prd on prd.project_role_id = pr.id |
| | | INNER JOIN user_department ud on ud.department_id = prd.department_id |
| | | INNER JOIN workspace ws on ws.id = p.workspace_id |
| | | LEFT JOIN project_closure pc on p.id = pc.project_id |
| | | WHERE prd.department_id = ud.id |
| | | AND if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1 |
| | | <if test="name != '' and name != null"> |
| | | 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="roleTypes.size != 0"> |
| | |
| | | </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 |
| | | INNER JOIN project_role_department prd on prd.project_role_id = pr.id |
| | | INNER JOIN department d on d.id = prd.department_id |
| | | WHERE prd.department_id = d.id |
| | | 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="findByWorkspaceIdAndIncludeProject" resultType="java.util.HashMap" |
| | | <!--<select id="findByWorkspaceIdAndIncludeProject" resultType="java.util.HashMap" |
| | | parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | SELECT |
| | | DISTINCT p.id as id, |
| | |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | </select>--> |
| | | |
| | | <select id="findByWorkspaceIdAndIncludeProject" 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, |
| | | pc.parent_project_id as parentProjectId, |
| | | 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_department prd on prd.project_role_id = pr.id |
| | | INNER JOIN user_department ud on ud.department_id = prd.department_id |
| | | LEFT JOIN project_closure pc ON p.id = pc.project_id |
| | | WHERE prd.department_id = ud.department_id |
| | | AND if (pc.parent_project_id > -1, pc.parent_project_id, -1) = -1 |
| | | AND p.workspace_id = #{workspaceId} |
| | | <if test="name != '' and name != null"> |
| | | 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=")"> |
| | | #{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="checkIncludeProject" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | <!--<select id="checkIncludeProject" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | SELECT |
| | | DISTINCT p.id as id |
| | | FROM |
| | |
| | | INNER JOIN user u on u.id = pru.user_id |
| | | WHERE 1=1 |
| | | AND p.id = #{id} AND u.id = #{loginUserId} |
| | | </select>--> |
| | | |
| | | <select id="checkIncludeProject" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.ProjectCondition"> |
| | | SELECT |
| | | DISTINCT p.id as id |
| | | FROM |
| | | project p |
| | | INNER JOIN project_role pr on p.id = pr.project_id |
| | | INNER JOIN project_role_department prd on prd.project_role_id = pr.id |
| | | INNER JOIN user_department ud on ud.department_id = prd.department_id |
| | | WHERE 1=1 |
| | | AND p.id = #{id} |
| | | </select> |
| | | |
| | | <select id="findChildrenProject" resultType="java.util.HashMap" parameterType="long"> |
| | |
| | | </select> |
| | | |
| | | <!-- 프로젝트 삭제 --> |
| | | <!--<delete id="deleteProject" parameterType="java.util.HashMap"> |
| | | <!– 프로젝트에 연결된 사용자 정의 필드 정보 삭제 –> |
| | | DELETE FROM issue_type_custom_field WHERE project_id = #{projectId}; |
| | | |
| | | <choose> |
| | | <when test="projectRoleIds.size != 0"> |
| | | <!– 프로젝트 참여 사용자 삭제 –> |
| | | DELETE FROM project_role_user WHERE project_role_id IN ( |
| | | <foreach collection="projectRoleIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | | ); |
| | | |
| | | <!– 프로젝트 권한 연결 정보 삭제 –> |
| | | DELETE FROM project_role_permission WHERE project_role_id IN( |
| | | <foreach collection="projectRoleIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | | ); |
| | | </when> |
| | | </choose> |
| | | |
| | | <!– 프로젝트 역할 삭제 –> |
| | | DELETE FROM project_role WHERE project_id = #{projectId}; |
| | | |
| | | <!– 이슈 고유 번호 생성 정보 삭제 –> |
| | | DELETE FROM issue_number_generator WHERE project_id = #{projectId}; |
| | | |
| | | <!– 이슈 이력 정보 삭제 –> |
| | | DELETE FROM issue_history WHERE project_id = #{projectId}; |
| | | |
| | | <!– 이슈 버전 정보 삭제 –> |
| | | DELETE FROM issue_version WHERE project_id = #{projectId}; |
| | | |
| | | <!– 업무 공간에 초대한 프로젝트 정보 삭제 –> |
| | | DELETE FROM user_invite_project WHERE project_id = #{projectId}; |
| | | |
| | | <choose> |
| | | <when test="issueIds.size != 0"> |
| | | <!– 이슈 사용자 정의 필드 정보 삭제 –> |
| | | DELETE FROM issue_custom_field_value WHERE issue_id IN ( |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | | ); |
| | | |
| | | <!– 이슈 댓글 삭제 –> |
| | | DELETE FROM issue_comment WHERE issue_id IN ( |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | | ); |
| | | |
| | | <!– 이슈 리스크 정보 삭제 –> |
| | | DELETE FROM issue_risk WHERE issue_id IN ( |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | | ); |
| | | |
| | | <!– 이슈 담당자 정보 삭제 –> |
| | | DELETE FROM issue_user WHERE issue_id IN ( |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | | ); |
| | | |
| | | <!– 관심 이슈 정보 삭제 –> |
| | | DELETE FROM user_like_issue WHERE issue_id IN ( |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | | ); |
| | | |
| | | <!– 이슈 발생 예약 정보 삭제 –> |
| | | DELETE FROM issue_reservation WHERE issue_id IN ( |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | | ); |
| | | |
| | | </when> |
| | | </choose> |
| | | |
| | | <!– 이슈 고유 번호 생성 정보 삭제 –> |
| | | DELETE FROM issue_number_generator WHERE project_id = #{projectId}; |
| | | |
| | | <!– 이슈 삭제 –> |
| | | DELETE FROM issue WHERE project_id = #{projectId}; |
| | | |
| | | <!– 프로젝트 삭제 –> |
| | | DELETE FROM project WHERE id = #{projectId}; |
| | | |
| | | </delete>--> |
| | | |
| | | <delete id="deleteProject" parameterType="java.util.HashMap"> |
| | | <!-- 프로젝트에 연결된 사용자 정의 필드 정보 삭제 --> |
| | | DELETE FROM issue_type_custom_field WHERE project_id = #{projectId}; |
| | | |
| | | <choose> |
| | | <when test="projectRoleIds.size != 0"> |
| | | <!-- 프로젝트 참여 사용자 삭제 --> |
| | | DELETE FROM project_role_user WHERE project_role_id IN ( |
| | | <!-- 프로젝트 참여 부서 삭제 --> |
| | | DELETE FROM project_role_department WHERE project_role_id IN ( |
| | | <foreach collection="projectRoleIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |
| | |
| | | </foreach> |
| | | ); |
| | | |
| | | <!-- 이슈 담당자 정보 삭제 --> |
| | | DELETE FROM issue_user WHERE issue_id IN ( |
| | | <!-- 이슈 담당부서 정보 삭제 --> |
| | | DELETE FROM issue_department WHERE issue_id IN ( |
| | | <foreach collection="issueIds" item="item" index="index" separator="," open="" close=""> |
| | | #{item} |
| | | </foreach> |