8525 lines
250 KiB
XML
8525 lines
250 KiB
XML
<?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="admin">
|
|
|
|
<!-- //jmpark start-->
|
|
<insert id="insertMenu" parameterType="map">
|
|
INSERT
|
|
INTO MENU_INFO
|
|
(
|
|
OBJID,
|
|
MENU_TYPE,
|
|
SYSTEM_NAME,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_NAME_ENG,
|
|
<if test="SEQ != null and SEQ != ''">
|
|
SEQ,
|
|
</if>
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}::numeric,
|
|
#{MENU_TYPE}::numeric,
|
|
#{SYSTEM_NAME},
|
|
#{PARENT_OBJ_ID}::numeric,
|
|
#{MENU_NAME_KOR},
|
|
#{MENU_NAME_ENG},
|
|
<if test="SEQ != null and SEQ != ''">
|
|
#{SEQ}::numeric,
|
|
</if>
|
|
#{MENU_URL},
|
|
#{MENU_DESC},
|
|
#{WRITER},
|
|
now(),
|
|
#{STATUS}
|
|
)
|
|
</insert>
|
|
|
|
<update id="updateMenu" parameterType="map">
|
|
UPDATE MENU_INFO
|
|
SET MENU_NAME_KOR = #{MENU_NAME_KOR},
|
|
MENU_NAME_ENG = #{MENU_NAME_ENG},
|
|
SEQ = #{SEQ}::numeric,
|
|
MENU_URL = #{MENU_URL},
|
|
MENU_DESC = #{MENU_DESC},
|
|
STATUS = #{STATUS}
|
|
WHERE OBJID = #{OBJID}::numeric
|
|
</update>
|
|
|
|
<update id="deleteMenu" parameterType="map">
|
|
DELETE FROM MENU_INFO WHERE OBJID = #{OBJID}::numeric
|
|
</update>
|
|
|
|
|
|
<select id="selectMenuInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
case MENU_TYPE
|
|
when '0' then 'admin'
|
|
when '1' then 'user'
|
|
else ''
|
|
END AS MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_NAME_ENG,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
STATUS,
|
|
case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else ''
|
|
END AS STATUS_TITLE,
|
|
SEQ
|
|
FROM MENU_INFO
|
|
WHERE OBJID = #{OBJID}::numeric
|
|
</select>
|
|
|
|
<!-- 위상위 admin menu를 제외한 목록을 가져온다. -->
|
|
<select id="selectViewAdminMenuList" parameterType="map" resultType="map">
|
|
WITH RECURSIVE view_menu(
|
|
objid,
|
|
menu_type,
|
|
parent_obj_id,
|
|
menu_name_kor,
|
|
menu_name_eng,
|
|
seq,
|
|
menu_url,
|
|
menu_desc,
|
|
writer,
|
|
regdate,
|
|
status,
|
|
system_name,
|
|
lev,
|
|
PATH,
|
|
cycle
|
|
) AS (
|
|
SELECT
|
|
menu_org.*,
|
|
1,
|
|
ARRAY [menu_org.objid],
|
|
false
|
|
FROM
|
|
menu_info menu_org
|
|
WHERE 1=1
|
|
and menu_org.PARENT_OBJ_ID = 0
|
|
and menu_org.MENU_TYPE = 0
|
|
|
|
UNION ALL
|
|
|
|
select
|
|
menu.*,
|
|
LEV + 1,
|
|
PATH||menu.seq,
|
|
menu.objid = ANY(PATH)
|
|
from
|
|
menu_info menu
|
|
JOIN
|
|
view_menu
|
|
ON
|
|
menu.PARENT_OBJ_ID = view_menu.OBJID
|
|
WHERE 1=1
|
|
)
|
|
|
|
SELECT
|
|
*
|
|
FROM view_menu
|
|
WHERE 1=1
|
|
<if test="SYSTEM_NAME != null and SYSTEM_NAME != ''">
|
|
and UPPER(system_name) = UPPER(#{SYSTEM_NAME})
|
|
</if>
|
|
order by
|
|
PATH
|
|
|
|
</select>
|
|
<!-- <select id="selectViewAdminMenuList" parameterType="map" resultType="map">
|
|
|
|
SELECT T.*
|
|
FROM
|
|
(
|
|
SELECT LEVEL AS LEV,
|
|
DECODE(MENU.MENU_TYPE,'0','admin','1','user') MENU_TYPE,
|
|
MENU.OBJID,
|
|
MENU.PARENT_OBJ_ID,
|
|
MENU.MENU_NAME_KOR,
|
|
MENU.MENU_URL,
|
|
MENU.MENU_DESC,
|
|
MENU.SEQ,
|
|
MENU.WRITER,
|
|
TO_CHAR(MENU.REGDATE,'YYYY-MM-DD') REGDATE,
|
|
(SELECT MAX(SEQ) FROM MENU_INFO WHERE PARENT_OBJ_ID = MENU.PARENT_OBJ_ID AND UPPER(STATUS) = 'ACTIVE') MAX_SEQ,
|
|
(SELECT MIN(SEQ) FROM MENU_INFO WHERE PARENT_OBJ_ID = MENU.PARENT_OBJ_ID) MIN_SEQ,
|
|
MENU.STATUS,
|
|
DECODE(UPPER(MENU.STATUS),'ACTIVE','활성화','INACTIVE','비활성화') STATUS_TITLE
|
|
FROM MENU_INFO MENU
|
|
<if test="SYSTEM_NAME != null and SYSTEM_NAME != ''">
|
|
WHERE UPPER(SYSTEM_NAME) = UPPER(#{SYSTEM_NAME})
|
|
</if>
|
|
START WITH MENU.PARENT_OBJ_ID=0
|
|
AND MENU.MENU_TYPE=0
|
|
CONNECT BY PRIOR MENU.OBJID = MENU.PARENT_OBJ_ID
|
|
ORDER SIBLINGS BY MENU.SEQ ASC
|
|
)T
|
|
<![CDATA[
|
|
WHERE T.LEV > '1'
|
|
]]>
|
|
</select> -->
|
|
|
|
|
|
<select id="selectAdminMenuList" parameterType="map" resultType="map">
|
|
WITH RECURSIVE v_menu(
|
|
LEVEL,
|
|
MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
SYSTEM_NAME,
|
|
PATH,
|
|
CYCLE
|
|
) AS (
|
|
SELECT
|
|
1 AS LEVEL,
|
|
MENU_TYPE,
|
|
OBJID::numeric,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
SYSTEM_NAME,
|
|
ARRAY [MENU.OBJID],
|
|
FALSE
|
|
FROM MENU_INFO MENU
|
|
WHERE PARENT_OBJ_ID=0
|
|
AND MENU_TYPE=0
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
V_MENU.LEVEL+1,
|
|
MENU_SUB.MENU_TYPE,
|
|
MENU_SUB.OBJID,
|
|
MENU_SUB.PARENT_OBJ_ID,
|
|
MENU_SUB.MENU_NAME_KOR,
|
|
MENU_SUB.MENU_URL,
|
|
MENU_SUB.MENU_DESC,
|
|
MENU_SUB.SEQ,
|
|
MENU_SUB.WRITER,
|
|
MENU_SUB.REGDATE,
|
|
MENU_SUB.STATUS,
|
|
MENU_SUB.SYSTEM_NAME,
|
|
PATH||MENU_SUB.SEQ::numeric,
|
|
MENU_SUB.OBJID = ANY(PATH)
|
|
FROM MENU_INFO MENU_SUB
|
|
JOIN
|
|
V_MENU
|
|
ON
|
|
MENU_SUB.PARENT_OBJ_ID = V_MENU.OBJID
|
|
WHERE 1=1
|
|
)
|
|
SELECT
|
|
LEVEL AS LEV,
|
|
case MENU_TYPE
|
|
when '0' then 'admin'
|
|
when '1' then 'user'
|
|
else ''
|
|
END AS MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
LPAD(' ', 3*(LEVEL-1))||MENU_NAME_KOR LPAD_MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
SYSTEM_NAME,
|
|
case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else ''
|
|
END AS STATUS_TITLE
|
|
FROM
|
|
v_menu A
|
|
WHERE 1=1
|
|
AND (SYSTEM_NAME = 'PMS' OR SYSTEM_NAME = '')
|
|
ORDER BY PATH,SEQ
|
|
</select>
|
|
<!-- <select id="selectAdminMenuList" parameterType="map" resultType="map">
|
|
SELECT LEVEL AS LEV,
|
|
DECODE(MENU_TYPE,'0','admin','1','user') MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
LPAD(' ', 3*(LEVEL-1))||MENU_NAME_KOR LPAD_MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
DECODE(UPPER(STATUS),'ACTIVE','활성화','INACTIVE','비활성화') STATUS_TITLE
|
|
FROM MENU_INFO
|
|
START WITH PARENT_OBJ_ID=0
|
|
AND MENU_TYPE=0
|
|
CONNECT BY PRIOR OBJID = PARENT_OBJ_ID
|
|
<if test="SYSTEM_NAME != null and SYSTEM_NAME != ''">
|
|
AND UPPER(SYSTEM_NAME) = UPPER(#{SYSTEM_NAME})
|
|
</if>
|
|
ORDER SIBLINGS BY SEQ ASC
|
|
</select> -->
|
|
|
|
<!-- 사용자가 사용하는 화면에서 보여지는 메뉴 목록을 가져온다. -->
|
|
<select id="selectUserViewMenuList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
WITH RECURSIVE v_menu(
|
|
LEVEL,
|
|
MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
PATH,
|
|
CYCLE
|
|
) AS (
|
|
SELECT
|
|
1 AS LEVEL,
|
|
MENU_TYPE,
|
|
OBJID::numeric,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
ARRAY [MENU.OBJID],
|
|
FALSE
|
|
FROM MENU_INFO MENU
|
|
WHERE PARENT_OBJ_ID=0
|
|
AND MENU_TYPE=1
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
V_MENU.LEVEL+1,
|
|
MENU_SUB.MENU_TYPE,
|
|
MENU_SUB.OBJID,
|
|
MENU_SUB.PARENT_OBJ_ID,
|
|
MENU_SUB.MENU_NAME_KOR,
|
|
MENU_SUB.MENU_URL,
|
|
MENU_SUB.MENU_DESC,
|
|
MENU_SUB.SEQ,
|
|
MENU_SUB.WRITER,
|
|
MENU_SUB.REGDATE,
|
|
MENU_SUB.STATUS,
|
|
PATH||MENU_SUB.SEQ::numeric,
|
|
MENU_SUB.OBJID = ANY(PATH)
|
|
FROM MENU_INFO MENU_SUB
|
|
JOIN
|
|
V_MENU
|
|
ON
|
|
MENU_SUB.PARENT_OBJ_ID = V_MENU.OBJID
|
|
WHERE 1=1
|
|
AND UPPER(MENU_SUB.STATUS) = 'ACTIVE'
|
|
)
|
|
SELECT
|
|
LEVEL AS LEV,
|
|
case MENU_TYPE
|
|
when '0' then 'admin'
|
|
when '1' then 'user'
|
|
else ''
|
|
END AS MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
LPAD(' ', 3*(LEVEL-1))||MENU_NAME_KOR LPAD_MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else ''
|
|
END AS STATUS_TITLE,
|
|
B.CREATE_AUTH_CNT,
|
|
B.READ_AUTH_CNT,
|
|
B.UPDATE_AUTH_CNT,
|
|
B.DELETE_AUTH_CNT
|
|
FROM
|
|
v_menu A,
|
|
(
|
|
SELECT
|
|
B.MENU_OBJID,
|
|
SUM(CASE B.CREATE_YN WHEN 'Y' THEN 1 ELSE 0 END) CREATE_AUTH_CNT,
|
|
SUM(CASE B.READ_YN WHEN 'Y' THEN 1 ELSE 0 END) READ_AUTH_CNT,
|
|
SUM(CASE B.UPDATE_YN WHEN 'Y' THEN 1 ELSE 0 END) UPDATE_AUTH_CNT,
|
|
SUM(CASE B.DELETE_YN WHEN 'Y' THEN 1 ELSE 0 END) DELETE_AUTH_CNT
|
|
FROM
|
|
REL_MENU_AUTH B,
|
|
AUTHORITY_MASTER C
|
|
WHERE
|
|
1 = 1
|
|
AND B.AUTH_OBJID = C.OBJID
|
|
AND C.OBJID IN (
|
|
SELECT
|
|
MASTER_OBJID
|
|
FROM
|
|
AUTHORITY_SUB_USER
|
|
WHERE
|
|
USER_ID =
|
|
|
|
)
|
|
GROUP BY
|
|
B.MENU_OBJID
|
|
) B
|
|
WHERE 1=1
|
|
AND a.objid = b.menu_objid
|
|
AND A.seq > 1
|
|
ORDER BY PATH,SEQ
|
|
</select>
|
|
|
|
<!-- 사용자가 사용하는 화면에서 보여지는 메뉴 목록을 가져온다. -->
|
|
<select id="getParamUserViewMenuList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
WITH RECURSIVE v_menu(
|
|
LEVEL,
|
|
MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
PATH,
|
|
CYCLE
|
|
) AS (
|
|
SELECT
|
|
1 AS LEVEL,
|
|
MENU_TYPE,
|
|
OBJID::numeric,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
ARRAY [MENU.SEQ],
|
|
FALSE
|
|
FROM MENU_INFO MENU
|
|
WHERE 1=1
|
|
<!--
|
|
AND PARENT_OBJ_ID = 0
|
|
-->
|
|
AND MENU_TYPE=1
|
|
AND PARENT_OBJ_ID = #{MENUOBJID}::NUMERIC
|
|
UNION ALL
|
|
SELECT
|
|
V_MENU.LEVEL+1,
|
|
MENU_SUB.MENU_TYPE,
|
|
MENU_SUB.OBJID,
|
|
MENU_SUB.PARENT_OBJ_ID,
|
|
MENU_SUB.MENU_NAME_KOR,
|
|
MENU_SUB.MENU_URL,
|
|
MENU_SUB.MENU_DESC,
|
|
MENU_SUB.SEQ,
|
|
MENU_SUB.WRITER,
|
|
MENU_SUB.REGDATE,
|
|
MENU_SUB.STATUS,
|
|
PATH||MENU_SUB.SEQ::NUMERIC,
|
|
MENU_SUB.OBJID = ANY(PATH)
|
|
FROM MENU_INFO MENU_SUB
|
|
JOIN V_MENU
|
|
ON MENU_SUB.PARENT_OBJ_ID = V_MENU.OBJID
|
|
WHERE 1=1
|
|
AND UPPER(MENU_SUB.STATUS) = 'ACTIVE'
|
|
)
|
|
SELECT
|
|
V.LEVEL,
|
|
A.*
|
|
FROM MENU_INFO A
|
|
,V_MENU V
|
|
WHERE 1=1
|
|
<!--
|
|
AND A.AND PARENT_OBJ_ID = #{MENUOBJID}::NUMERIC
|
|
-->
|
|
AND A.OBJID = V.OBJID
|
|
AND A.STATUS = 'active'
|
|
AND (
|
|
EXISTS (
|
|
SELECT 'E'
|
|
<!--
|
|
B.MENU_OBJID,
|
|
SUM(CASE B.CREATE_YN WHEN 'Y' THEN 1 ELSE 0 END) CREATE_AUTH_CNT,
|
|
SUM(CASE B.READ_YN WHEN 'Y' THEN 1 ELSE 0 END) READ_AUTH_CNT,
|
|
SUM(CASE B.UPDATE_YN WHEN 'Y' THEN 1 ELSE 0 END) UPDATE_AUTH_CNT,
|
|
SUM(CASE B.DELETE_YN WHEN 'Y' THEN 1 ELSE 0 END) DELETE_AUTH_CNT
|
|
-->
|
|
FROM
|
|
REL_MENU_AUTH B,
|
|
AUTHORITY_MASTER C
|
|
WHERE 1=1
|
|
AND A.OBJID = B.MENU_OBJID
|
|
AND B.AUTH_OBJID = C.OBJID
|
|
AND C.OBJID IN (
|
|
SELECT
|
|
MASTER_OBJID
|
|
FROM
|
|
AUTHORITY_SUB_USER
|
|
WHERE
|
|
USER_ID = #{userId}
|
|
)
|
|
)
|
|
OR EXISTS (SELECT 'E'
|
|
FROM AUTHORITY_MASTER AM
|
|
,AUTHORITY_SUB_USER ASU
|
|
WHERE AM.AUTH_CODE = '0000'
|
|
AND AM.OBJID = ASU.MASTER_OBJID
|
|
AND ASU.USER_ID = #{userId}
|
|
)
|
|
)
|
|
<!--
|
|
ORDER BY A.SEQ
|
|
-->
|
|
ORDER BY V.PATH
|
|
</select>
|
|
|
|
|
|
<!-- <select id="selectUserViewMenuList" parameterType="map" resultType="map">
|
|
SELECT T.*
|
|
FROM
|
|
(
|
|
SELECT LEVEL AS LEV,
|
|
DECODE(MENU.MENU_TYPE,'0','admin','1','user') MENU_TYPE,
|
|
MENU.OBJID,
|
|
MENU.PARENT_OBJ_ID,
|
|
MENU.MENU_NAME_KOR,
|
|
MENU.MENU_URL,
|
|
MENU.MENU_DESC,
|
|
MENU.SEQ,
|
|
MENU.WRITER,
|
|
TO_CHAR(MENU.REGDATE,'YYYY-MM-DD') REGDATE,
|
|
(SELECT MAX(SEQ) FROM MENU_INFO WHERE PARENT_OBJ_ID = MENU.PARENT_OBJ_ID AND UPPER(STATUS) = 'ACTIVE') MAX_SEQ,
|
|
(SELECT MIN(SEQ) FROM MENU_INFO WHERE PARENT_OBJ_ID = MENU.PARENT_OBJ_ID ) MIN_SEQ,
|
|
MENU.STATUS,
|
|
DECODE(UPPER(MENU.STATUS),'ACTIVE','활성화','INACTIVE','비활성화') STATUS_TITLE
|
|
FROM MENU_INFO MENU START WITH MENU.PARENT_OBJ_ID=0
|
|
AND MENU.MENU_TYPE=1 CONNECT BY PRIOR MENU.OBJID = MENU.PARENT_OBJ_ID AND UPPER(STATUS) = 'ACTIVE'
|
|
ORDER SIBLINGS BY MENU.SEQ ASC
|
|
)T
|
|
<![CDATA[
|
|
WHERE T.LEV > '1'
|
|
]]>
|
|
</select> -->
|
|
|
|
<select id="selectUserMenuList" parameterType="map" resultType="map">
|
|
WITH RECURSIVE v_menu(
|
|
LEVEL,
|
|
MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
PATH,
|
|
CYCLE
|
|
) AS (
|
|
SELECT
|
|
1 AS LEVEL,
|
|
MENU_TYPE,
|
|
OBJID::numeric,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
ARRAY [MENU.OBJID],
|
|
FALSE
|
|
FROM MENU_INFO MENU
|
|
WHERE PARENT_OBJ_ID=0
|
|
AND MENU_TYPE=1
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
V_MENU.LEVEL+1,
|
|
MENU_SUB.MENU_TYPE,
|
|
MENU_SUB.OBJID,
|
|
MENU_SUB.PARENT_OBJ_ID,
|
|
MENU_SUB.MENU_NAME_KOR,
|
|
MENU_SUB.MENU_URL,
|
|
MENU_SUB.MENU_DESC,
|
|
MENU_SUB.SEQ,
|
|
MENU_SUB.WRITER,
|
|
MENU_SUB.REGDATE,
|
|
MENU_SUB.STATUS,
|
|
PATH||MENU_SUB.SEQ::numeric,
|
|
MENU_SUB.OBJID = ANY(PATH)
|
|
FROM MENU_INFO MENU_SUB
|
|
JOIN
|
|
V_MENU
|
|
ON
|
|
MENU_SUB.PARENT_OBJ_ID = V_MENU.OBJID
|
|
WHERE 1=1
|
|
)
|
|
SELECT
|
|
LEVEL AS LEV,
|
|
case MENU_TYPE
|
|
when '0' then 'admin'
|
|
when '1' then 'user'
|
|
else ''
|
|
END AS MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
LPAD(' ', 3*(LEVEL-1))||MENU_NAME_KOR LPAD_MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else ''
|
|
END AS STATUS_TITLE
|
|
FROM
|
|
v_menu A
|
|
WHERE 1=1
|
|
AND (A.SEQ > 1 OR (A.SEQ = 0 AND LEVEL = 1))
|
|
ORDER BY PATH,SEQ
|
|
</select>
|
|
<!-- <select id="selectUserMenuList" parameterType="map" resultType="map">
|
|
SELECT LEVEL AS LEV,
|
|
DECODE(MENU_TYPE,'0','admin','1','user') MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
LPAD(' ', 3*(LEVEL-1))||MENU_NAME_KOR LPAD_MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
DECODE(UPPER(STATUS),'ACTIVE','활성화','INACTIVE','비활성화') STATUS_TITLE
|
|
FROM MENU_INFO START WITH PARENT_OBJ_ID=0
|
|
AND MENU_TYPE=1
|
|
CONNECT BY PRIOR OBJID = PARENT_OBJ_ID
|
|
<if test="SYSTEM_NAME != null and SYSTEM_NAME != ''">
|
|
AND UPPER(SYSTEM_NAME) = UPPER(#{SYSTEM_NAME})
|
|
</if>
|
|
ORDER SIBLINGS BY SEQ ASC
|
|
</select> -->
|
|
|
|
<!-- 권한 관리 목록 -->
|
|
<select id="selectAuthMngList" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
FROM(
|
|
SELECT A.* , ROW_NUMBER() OVER(ORDER BY AUTH_CODE ASC NULLS LAST) RNUM
|
|
FROM(
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT
|
|
MST.OBJID,
|
|
MST.AUTH_NAME,
|
|
MST.AUTH_CODE,
|
|
MST.WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = MST.WRITER) WRITER_TITLE,
|
|
TO_CHAR(MST.REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
MST.STATUS,
|
|
case UPPER(MST.STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else MST.STATUS
|
|
end STATUS_TITLE,
|
|
COALESCE(SUB_USER.USER_CNT,0) AS USER_CNT
|
|
FROM
|
|
AUTHORITY_MASTER MST
|
|
LEFT JOIN (
|
|
SELECT
|
|
MASTER_OBJID,
|
|
COUNT(USER_TITLE) AS USER_CNT
|
|
FROM(
|
|
SELECT
|
|
MASTER_OBJID,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SUB_USER.USER_ID) USER_TITLE
|
|
FROM AUTHORITY_SUB_USER SUB_USER
|
|
) A GROUP BY MASTER_OBJID
|
|
) SUB_USER
|
|
ON MST.OBJID = SUB_USER.MASTER_OBJID
|
|
) A WHERE 1=1
|
|
<if test="search_auth != null and !''.equals(search_auth)">
|
|
AND UPPER(AUTH_NAME) LIKE UPPER('%${search_auth}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(WRITER_TITLE) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != '' and search_toDate != null and search_toDate != ''">
|
|
AND REGDATE BETWEEN #{search_fromDate} AND #{search_toDate}
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${search_status}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) A
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<!-- 권한 관리 목록 Count -->
|
|
<select id="selectAuthMngListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
MST.OBJID,
|
|
MST.AUTH_NAME,
|
|
MST.AUTH_CODE,
|
|
MST.WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = MST.WRITER) WRITER_TITLE,
|
|
TO_CHAR(MST.REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
MST.STATUS,
|
|
case UPPER(MST.STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else MST.STATUS
|
|
end STATUS_TITLE,
|
|
SUB_USER.USER_CNT
|
|
FROM
|
|
AUTHORITY_MASTER MST
|
|
LEFT JOIN (
|
|
SELECT
|
|
MASTER_OBJID,
|
|
COUNT(USER_TITLE) AS USER_CNT
|
|
FROM(
|
|
SELECT
|
|
MASTER_OBJID,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SUB_USER.USER_ID) USER_TITLE
|
|
FROM AUTHORITY_SUB_USER SUB_USER
|
|
) A GROUP BY MASTER_OBJID
|
|
) SUB_USER
|
|
ON MST.OBJID = SUB_USER.MASTER_OBJID
|
|
) A WHERE 1=1
|
|
<if test="search_auth != null and !''.equals(search_auth)">
|
|
AND UPPER(AUTH_NAME) LIKE UPPER('%${search_auth}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(WRITER_TITLE) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != '' and search_toDate != null and search_toDate != ''">
|
|
AND REGDATE BETWEEN #{search_fromDate} AND #{search_toDate}
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${search_status}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) A WHERE 1=1
|
|
|
|
</select>
|
|
|
|
<!-- 권한그룹 소속인원 목록 -->
|
|
<select id="selectAuthGroupMemberList" parameterType="map" resultType="map">
|
|
SELECT AUTH_SUB.*, ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) RNUM FROM (
|
|
SELECT OBJID
|
|
,MASTER_OBJID
|
|
,(SELECT AUTH_CODE FROM AUTHORITY_MASTER WHERE OBJID = T.MASTER_OBJID) AS AUTH_CODE
|
|
,USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.USER_ID) AS USER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = T.USER_ID) AS DEPT_NAME
|
|
, (SELECT USER_TYPE_NAME FROM USER_INFO WHERE USER_ID = T.USER_ID) AS USER_TYPE_NAME
|
|
,(SELECT EMAIL FROM USER_INFO WHERE USER_ID = T.USER_ID) AS EMAIL
|
|
,WRITER
|
|
,REGDATE AS REGDATE_ORG
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
FROM AUTHORITY_SUB_USER T
|
|
WHERE 1=1
|
|
) AUTH_SUB
|
|
WHERE 1=1
|
|
<if test=" MASTER_OBJID != '' and MASTER_OBJID != null ">
|
|
AND AUTH_SUB.MASTER_OBJID = #{MASTER_OBJID}::numeric
|
|
</if>
|
|
<if test=" search_authCode != '' and search_authCode != null ">
|
|
AND AUTH_SUB.AUTH_CODE = #{search_authCode}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- user id, 이름, 부서코드, 직책코드, 사용자유형으로 사용자를 검색한다. -->
|
|
<select id="selectUserInfo" parameterType="map" resultType="map">
|
|
SELECT T.SABUN,
|
|
T.USER_ID,
|
|
T.USER_PASSWORD,
|
|
T.USER_NAME,
|
|
T.USER_NAME_ENG,
|
|
T.USER_NAME_CN,
|
|
T.DEPT_CODE,
|
|
T.DEPT_NAME,
|
|
T.POSITION_CODE,
|
|
T.POSITION_NAME,
|
|
T.EMAIL,
|
|
T.TEL,
|
|
T.CELL_PHONE,
|
|
T.USER_TYPE,
|
|
T.USER_TYPE_NAME,
|
|
T.REGDATE
|
|
FROM USER_INFO T
|
|
WHERE USER_ID IS NOT NULL
|
|
|
|
<if test="email_user != null and email_user != ''">
|
|
AND T.USER_ID = #{email_user}
|
|
</if>
|
|
|
|
<if test="userId != null and userId != ''">
|
|
AND T.USER_ID LIKE '%${userId}%'
|
|
</if>
|
|
<if test="userName != null and userName != ''">
|
|
AND UPPER(T.USER_NAME) LIKE UPPER('%${userName}%')
|
|
</if>
|
|
<if test="deptCode != null and deptCode != ''">
|
|
AND UPPER(T.DEPT_CODE) LIKE UPPER('%${deptCode}%')
|
|
</if>
|
|
<if test="deptName != null and deptName != ''">
|
|
AND UPPER(T.DEPT_NAME) LIKE UPPER('%${deptName}%')
|
|
</if>
|
|
<if test="userTypeName != null and userTypeName != ''">
|
|
AND UPPER(T.USER_TYPE_NAME) LIKE UPPER('%${userTypeName}%')
|
|
</if>
|
|
<if test="targetObjId != null and targetObjId != ''">
|
|
AND NOT EXISTS(
|
|
SELECT USER_ID FROM AUTHORITY_SUB_USER SUB WHERE SUB.MASTER_OBJID = #{targetObjId}::numeric AND SUB.USER_ID = T.USER_ID
|
|
)
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 권한그룹의 존재여부를 확인하여 입력 또는 수정한다. -->
|
|
<update id="mergeAuthorityMaster" parameterType="map">
|
|
INSERT INTO AUTHORITY_MASTER
|
|
(
|
|
OBJID,
|
|
AUTH_NAME,
|
|
AUTH_CODE,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}::numeric,
|
|
#{AUTH_NAME},
|
|
#{AUTH_CODE},
|
|
#{WRITER},
|
|
now(),
|
|
#{STATUS}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
AUTH_NAME = #{AUTH_NAME},
|
|
AUTH_CODE = #{AUTH_CODE},
|
|
STATUS = #{STATUS}
|
|
</update>
|
|
|
|
<!-- <update id="mergeAuthorityMaster" parameterType="map">
|
|
MERGE INTO AUTHORITY_MASTER T USING DUAL ON ( T.OBJID = #{OBJID})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.AUTH_NAME = #{AUTH_NAME},
|
|
T.AUTH_CODE = #{AUTH_CODE},
|
|
T.STATUS = #{STATUS}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.AUTH_NAME,
|
|
T.AUTH_CODE,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID},
|
|
#{AUTH_NAME},
|
|
#{AUTH_CODE},
|
|
#{WRITER},
|
|
SYSDATE,
|
|
#{STATUS}
|
|
)
|
|
</update> -->
|
|
|
|
|
|
<!-- 권한그룹서 인원을 삭제한다.. -->
|
|
<delete id="deleteAuthorityMember" parameterType="map">
|
|
DELETE FROM AUTHORITY_SUB_USER
|
|
WHERE
|
|
MASTER_OBJID = #{MASTEROBJID}::numeric
|
|
AND OBJID = #{USER_OBJID}::numeric
|
|
</delete>
|
|
|
|
<!-- 권한그룹에 포함되지 않은 인원을 권한 그룹에 추가 한다. -->
|
|
<update id="mergeInsertAuthoritySubUser" parameterType="map">
|
|
INSERT INTO AUTHORITY_SUB_USER
|
|
(
|
|
OBJID,
|
|
MASTER_OBJID,
|
|
USER_ID,
|
|
WRITER,
|
|
REGDATE
|
|
)
|
|
SELECT
|
|
#{OBJID}::numeric,
|
|
#{MASTEROBJID}::numeric,
|
|
#{USERID},
|
|
#{WRITER},
|
|
now()
|
|
WHERE 1=1
|
|
AND NOT EXISTS(
|
|
SELECT * FROM AUTHORITY_SUB_USER WHERE 1=1 AND USER_ID = #{USERID} AND MASTER_OBJID = #{MASTEROBJID}::numeric
|
|
)
|
|
|
|
</update>
|
|
|
|
<update id="InsertAuthorityHistory" parameterType="map">
|
|
INSERT INTO AUTHORITY_MASTER_HISTORY
|
|
(
|
|
OBJID,
|
|
PARENT_OBJID,
|
|
PARENT_NAME,
|
|
PARENT_CODE,
|
|
USER_ID,
|
|
ACTIVE,
|
|
HISTORY_TYPE,
|
|
WRITER,
|
|
REG_DATE
|
|
) VALUES (
|
|
#{OBJID}::numeric,
|
|
#{MASTEROBJID}::numeric,
|
|
(SELECT AM.AUTH_NAME FROM AUTHORITY_MASTER AM WHERE AM.OBJID = #{MASTEROBJID}::NUMERIC),
|
|
(SELECT AM.AUTH_CODE FROM AUTHORITY_MASTER AM WHERE AM.OBJID = #{MASTEROBJID}::NUMERIC),
|
|
#{USERID},
|
|
(SELECT AM.STATUS FROM AUTHORITY_MASTER AM WHERE AM.OBJID = #{MASTEROBJID}::NUMERIC),
|
|
#{HISTORY_TYPE},
|
|
#{WRITER},
|
|
NOW()
|
|
)
|
|
</update>
|
|
|
|
<!-- 권한 그룹에 연결된 사용자 정보를 가져온다. -->
|
|
<select id="getAuthSubUserInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
FROM AUTHORITY_SUB_USER
|
|
WHERE OBJID = #{USER_OBJID}::NUMERIC
|
|
</select>
|
|
|
|
<!-- <update id="mergeInsertAuthoritySubUser" parameterType="map">
|
|
MERGE INTO AUTHORITY_SUB_USER T USING DUAL ON ( T.user_id = #{OBJID} AND T.master_objid = #{MASTEROBJID})
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
OBJID,
|
|
MASTER_OBJID,
|
|
USER_ID,
|
|
WRITER,
|
|
REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID},
|
|
#{MASTEROBJID},
|
|
#{USERID},
|
|
#{WRITER},
|
|
SYSDATE
|
|
)
|
|
</update> -->
|
|
|
|
<!-- 권한 그룹 정보 select -->
|
|
<select id="getAuthGroupInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
AUTH_NAME,
|
|
AUTH_CODE,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS
|
|
FROM AUTHORITY_MASTER
|
|
WHERE OBJID = #{OBJID}::numeric
|
|
</select>
|
|
|
|
<!-- 권한 그룹 상태 변경 -->
|
|
<update id="changeAuthGroupStatus" parameterType="map">
|
|
UPDATE AUTHORITY_MASTER SET STATUS = #{STATUS} WHERE OBJID = #{OBJID}::numeric
|
|
</update>
|
|
|
|
<delete id="deleteAuthGroup" parameterType="map">
|
|
DELETE FROM AUTHORITY_MASTER WHERE OBJID = #{OBJID}::NUMERIC
|
|
</delete>
|
|
|
|
<delete id="deleteAuthGroupMember" parameterType="map">
|
|
DELETE FROM AUTHORITY_SUB_USER WHERE MASTER_OBJID = #{OBJID}::NUMERIC
|
|
</delete>
|
|
|
|
<delete id="deleteGroup" parameterType="map">
|
|
DELETE FROM DEPT_INFO WHERE DEPT_CODE = #{DEPT_CODE}
|
|
</delete>
|
|
|
|
<!-- <delete id="deleteGroupMember" parameterType="map">
|
|
DELETE FROM AUTHORITY_SUB_USER WHERE MASTER_OBJID = #{OBJID}::NUMERIC
|
|
</delete> -->
|
|
|
|
<!-- 메뉴에 해당하는 권한 그룹의 목록을 가져온다. -->
|
|
<select id="getMenuAuthList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
MENU_OBJID,
|
|
AUTH_OBJID,
|
|
(
|
|
SELECT
|
|
ARRAY_TO_STRING(ARRAY_AGG(A.USER_NAME),',')
|
|
FROM
|
|
(
|
|
SELECT
|
|
MASTER_OBJID,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.USER_ID) USER_NAME
|
|
FROM AUTHORITY_SUB_USER A
|
|
) A
|
|
WHERE A.MASTER_OBJID = AUTH_OBJID
|
|
) AUTH_GROUP_MEMBER,
|
|
(SELECT AUTH_NAME FROM AUTHORITY_MASTER WHERE OBJID = AUTH_OBJID) AUTH_GROUP_NAME,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
CREATE_YN,
|
|
READ_YN,
|
|
UPDATE_YN,
|
|
DELETE_YN
|
|
FROM REL_MENU_AUTH
|
|
WHERE MENU_OBJID = #{MENU_OBJID}::numeric
|
|
</select>
|
|
|
|
<!-- 메뉴에 추가 가능한 권한 그룹의 목록을 가져온다. -->
|
|
<select id="getAuthGroupList" parameterType="map" resultType="map">
|
|
SELECT
|
|
MST.OBJID,
|
|
MST.AUTH_NAME,
|
|
MST.AUTH_CODE,
|
|
MST.WRITER,
|
|
TO_CHAR(MST.REGDATE,'YYYY-MM-DD') REGDATE,
|
|
MST.STATUS,
|
|
(SELECT ARRAY_TO_STRING(ARRAY_AGG(USER_ID),',') FROM AUTHORITY_SUB_USER WHERE MASTER_OBJID = MST.OBJID) SUB_ID,
|
|
(
|
|
SELECT
|
|
ARRAY_TO_STRING(ARRAY_AGG(A.USER_NAME),',')
|
|
FROM
|
|
(
|
|
SELECT
|
|
MASTER_OBJID,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.USER_ID) USER_NAME
|
|
FROM AUTHORITY_SUB_USER A
|
|
) A
|
|
WHERE A.MASTER_OBJID = MST.OBJID
|
|
) SUB_NAME
|
|
FROM AUTHORITY_MASTER MST
|
|
WHERE 1=1
|
|
<if test="search_groupName != null and search_groupName != ''">
|
|
AND MST.AUTH_NAME LIKE '%${search_groupName}%'
|
|
</if>
|
|
<if test="search_userName != null and search_userName != ''">
|
|
AND MST.OBJID IN ((SELECT MASTER_OBJID FROM AUTHORITY_SUB_USER WHERE USER_ID IN (SELECT USER_ID FROM USER_INFO WHERE USER_NAME LIKE '%${search_userName}%')))
|
|
</if>
|
|
<if test="search_userId != null and search_userId != ''">
|
|
AND MST.OBJID IN ((SELECT MASTER_OBJID FROM AUTHORITY_SUB_USER WHERE USER_ID LIKE '%${search_userId}%'))
|
|
</if>
|
|
<if test="targetMenuObjId != null and targetMenuObjId != ''">
|
|
AND MST.OBJID NOT IN (SELECT AUTH_OBJID FROM REL_MENU_AUTH WHERE MENU_OBJID = #{targetMenuObjId}::numeric)
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 메뉴에 권한 그룹을 연결한다. -->
|
|
<update id="mergeAddMenuAuthGroup" parameterType="map">
|
|
WITH V_PARAM AS (
|
|
SELECT
|
|
#{OBJID}::numeric,
|
|
#{MENU_OBJID}::numeric,
|
|
#{AUTH_OBJID}::numeric,
|
|
#{WRITER}
|
|
)
|
|
INSERT INTO REL_MENU_AUTH
|
|
(
|
|
OBJID,
|
|
MENU_OBJID,
|
|
AUTH_OBJID,
|
|
WRITER,
|
|
REGDATE
|
|
)
|
|
SELECT
|
|
A.*,
|
|
now()
|
|
FROM
|
|
V_PARAM A
|
|
WHERE 1=1
|
|
AND NOT EXISTS(
|
|
SELECT * FROM REL_MENU_AUTH B WHERE 1=1 AND B.MENU_OBJID = #{MENU_OBJID}::numeric AND B.AUTH_OBJID = #{AUTH_OBJID}::numeric
|
|
)
|
|
</update>
|
|
<!-- <update id="mergeAddMenuAuthGroup" parameterType="map">
|
|
MERGE INTO REL_MENU_AUTH T USING DUAL ON ( T.MENU_OBJID = #{MENU_OBJID} AND AUTH_OBJID = #{AUTH_OBJID})
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.MENU_OBJID,
|
|
T.AUTH_OBJID,
|
|
T.WRITER,
|
|
T.REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID},
|
|
#{MENU_OBJID},
|
|
#{AUTH_OBJID},
|
|
#{WRITER},
|
|
SYSDATE
|
|
)
|
|
</update> -->
|
|
|
|
<!-- 메뉴에 권한 그룹을 삭제한다. -->
|
|
<delete id="deleteMenuAuthGroup" parameterType="map">
|
|
DELETE FROM REL_MENU_AUTH WHERE MENU_OBJID = #{MENU_OBJID}::numeric AND OBJID = #{AUTH_OBJID}::numeric
|
|
</delete>
|
|
|
|
<update id="updateMenuAuthGroupFn" parameterType="map">
|
|
UPDATE
|
|
REL_MENU_AUTH
|
|
SET
|
|
<if test="type == 'create'">
|
|
CREATE_YN = #{value}
|
|
</if>
|
|
<if test="type == 'read'">
|
|
READ_YN = #{value}
|
|
</if>
|
|
<if test="type == 'update'">
|
|
UPDATE_YN = #{value}
|
|
</if>
|
|
<if test="type == 'delete'">
|
|
DELETE_YN = #{value}
|
|
</if>
|
|
,WRITER = #{writer}
|
|
WHERE OBJID = #{objid}::numeric
|
|
AND MENU_OBJID = #{menuObjid}::numeric
|
|
AND AUTH_OBJID = #{authObjid}::numeric
|
|
</update>
|
|
|
|
<!-- MENU_OBJID에 해당하는 권한그룹에 USER_ID에 해당하는 인원의 소속여부를 확인한다. -->
|
|
<select id="checkUserMenuAuth" parameterType="map" resultType="map">
|
|
SELECT COUNT(1) CNT
|
|
FROM REL_MENU_AUTH REL
|
|
WHERE MENU_OBJID = #{MENU_OBJID}
|
|
AND EXISTS
|
|
(
|
|
SELECT 1
|
|
FROM AUTHORITY_MASTER MASTER,
|
|
AUTHORITY_SUB_USER SUB
|
|
WHERE SUB.USER_ID = #{USER_ID}
|
|
AND SUB.MASTER_OBJID = MASTER.OBJID
|
|
AND MASTER.OBJID = REL.AUTH_OBJID
|
|
)
|
|
</select>
|
|
|
|
<!-- 차종정보를 저장한다. -->
|
|
<update id="saveCarInfo" parameterType="map">
|
|
MERGE INTO CAR_MNG T USING DUAL ON ( T.OBJID = #{OBJID})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
T.CAR_CODE = #{CAR_CODE},
|
|
T.MODEL_CODE = #{MODEL_CODE},
|
|
T.CAR_NAME = #{CAR_NAME},
|
|
T.DESCRIPTION = #{DESCRIPTION},
|
|
T.GRADE_OBJID = #{GRADE_OBJID},
|
|
T.STATUS = #{STATUS}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.CAR_CODE,
|
|
T.MODEL_CODE,
|
|
T.CAR_NAME,
|
|
T.DESCRIPTION,
|
|
T.GRADE_OBJID,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID},
|
|
#{CAR_CODE},
|
|
#{MODEL_CODE},
|
|
#{CAR_NAME},
|
|
#{DESCRIPTION},
|
|
#{GRADE_OBJID},
|
|
#{WRITER},
|
|
SYSDATE,
|
|
#{STATUS}
|
|
)
|
|
</update>
|
|
|
|
<!-- 고객사 정보를 저장한다. -->
|
|
<update id="saveOEMInfo" parameterType="map">
|
|
INSERT INTO OEM_MNG
|
|
(
|
|
objid,
|
|
oem_code,
|
|
oem_name,
|
|
writer,
|
|
regdate,
|
|
status
|
|
) VALUES (
|
|
#{OBJID}::integer,
|
|
#{OEM_CODE},
|
|
#{OEM_NAME},
|
|
#{WRITER},
|
|
now(),
|
|
#{STATUS}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET OEM_CODE = #{OEM_CODE},
|
|
OEM_NAME = #{OEM_NAME},
|
|
STATUS = #{STATUS}
|
|
</update>
|
|
|
|
<!-- 고객사 정보와 Milestone을 연결한다. -->
|
|
<update id="oemConnectMilestone" parameterType="map">
|
|
MERGE INTO OEM_MILESTONE_MNG T USING DUAL ON ( T.OBJID = #{OBJID} AND OEM_OBJID = #{OEM_OBJID})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
T.SEQ = #{SEQ},
|
|
T.MILESTONE_NAME = #{MILESTONE_NAME},
|
|
T.STATUS = #{STATUS}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.SEQ,
|
|
T.OEM_OBJID,
|
|
T.MILESTONE_NAME,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID},
|
|
#{SEQ},
|
|
#{OEM_OBJID},
|
|
#{MILESTONE_NAME},
|
|
#{WRITER},
|
|
SYSDATE,
|
|
#{STATUS}
|
|
)
|
|
</update>
|
|
|
|
<!-- 고객사에 해당하는 Milestone 목록을 가져온다. -->
|
|
<select id="getOEMMilestoneList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID::varchar,
|
|
T.SEQ,
|
|
T.OEM_OBJID,
|
|
T.MILESTONE_NAME,
|
|
T.WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
(SELECT case when TO_CHAR(TO_DATE(MILESTONE_DATE, 'YYYY-MM-DD'), 'YYYY-MM-DD') = '0001-01-01' then ''
|
|
else TO_CHAR(TO_DATE(MILESTONE_DATE, 'YYYY-MM-DD'), 'YYYY-MM-DD')
|
|
end
|
|
FROM CAR_MILESTONE_MNG WHERE MILESTONE_OBJID = T.OBJID AND CAR_OBJID = #{CAR_OBJID}::integer) AS MILESTONE_DATE,
|
|
(SELECT OBJID FROM CAR_MILESTONE_MNG WHERE MILESTONE_OBJID = T.OBJID AND CAR_OBJID = #{CAR_OBJID}::integer) AS MILESTONE_OBJID,
|
|
T.STATUS
|
|
FROM OEM_MILESTONE_MNG T
|
|
WHERE T.OEM_OBJID = #{OEM_OBJID}::integer
|
|
ORDER BY SEQ::integer ASC
|
|
</select>
|
|
|
|
<!-- 고객사에 해당하는 정보 목록을 가져온다. -->
|
|
<select id="getOEMInfoList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT TBL.*, ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID,
|
|
OEM_CODE,
|
|
OEM_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) WRITER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) WRITER_DEPT,
|
|
WRITER,
|
|
REGDATE REGDATE_ORG,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
CASE WHEN UPPER(STATUS)='ACTIVE' THEN '활성화' ELSE '비활성화' END AS STATUS_STR
|
|
FROM OEM_MNG
|
|
WHERE 1=1
|
|
) AS TBL WHERE 1=1
|
|
<if test="OEM_OBJID != null and OEM_OBJID != ''">
|
|
AND TBL.OBJID = #{OEM_OBJID}::integer
|
|
</if>
|
|
<if test="OEM_NAME != null and OEM_NAME != ''">
|
|
AND UPPER(TBL.OEM_NAME) LIKE UPPER('%${OEM_NAME}%')
|
|
</if>
|
|
<if test="STATUS != null and STATUS != ''">
|
|
AND UPPER(TBL.STATUS) LIKE UPPER('%${STATUS}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(TBL.REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(TBL.REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="WRITER != null and WRITER != ''">
|
|
AND UPPER(TBL.WRITER_NAME) LIKE UPPER('%${WRITER}%')
|
|
</if>
|
|
|
|
) AS TBL WHERE 1=1
|
|
) AS T WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
<!-- 고객사에 해당하는 정보 목록 Count를 가져온다. -->
|
|
<select id="getOEMInfoListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE,
|
|
TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
OBJID::varchar,
|
|
OEM_CODE,
|
|
OEM_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO A WHERE USER_ID = WRITER) WRITER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO A WHERE USER_ID = WRITER) WRITER_DEPT,
|
|
WRITER,
|
|
REGDATE REGDATE_ORG,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
FROM OEM_MNG
|
|
WHERE 1=1
|
|
<if test="OEM_OBJID != null and OEM_OBJID != ''">
|
|
AND OBJID = #{OEM_OBJID}
|
|
</if>
|
|
<if test="OEM_NAME != null and OEM_NAME != ''">
|
|
AND UPPER(OEM_NAME) LIKE UPPER('%${OEM_NAME}%')
|
|
</if>
|
|
<if test="STATUS != null and STATUS != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${STATUS}%')
|
|
</if>
|
|
) AS TBL WHERE 1=1
|
|
<if test="REGDATE_START != null and REGDATE_START != ''">
|
|
AND TO_DATE(TBL.REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{REGDATE_START}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="REGDATE_END != null and REGDATE_END != ''">
|
|
AND TO_DATE(TBL.REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{REGDATE_END}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="WRITER != null and WRITER != ''">
|
|
AND UPPER(WRITER_NAME) LIKE UPPER('%${WRITER}%')
|
|
</if>
|
|
) AS A WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 공급업체에 해당하는 정보 목록 Count를 가져온다. -->
|
|
<select id="getSUPPLYInfoListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SUPPLY_CODE) AS SUPPLY_CODE_NAME
|
|
,(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = AREA_CD) AS AREA_CD_NAME
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
,CHARGE_USER_NAME
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,REG_ID
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
,STATUS
|
|
,case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
FROM ADMIN_SUPPLY_MNG
|
|
WHERE 1=1
|
|
) TBL
|
|
WHERE 1=1
|
|
<if test="supply_name != null and supply_name != ''">
|
|
AND UPPER(SUPPLY_NAME) LIKE UPPER('%${supply_name}%')
|
|
</if>
|
|
<if test="searchStatus != null and searchStatus != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${searchStatus}%')
|
|
</if>
|
|
) TBL
|
|
WHERE 1=1
|
|
)A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 공급업체에 해당하는 정보 목록을 가져온다. -->
|
|
<select id="getSUPPLYInfoList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT TBL.*, ROW_NUMBER() OVER(ORDER BY SUPPLY_CODE_NAME) RNUM
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SUPPLY_CODE) AS SUPPLY_CODE_NAME
|
|
,(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = AREA_CD) AS AREA_CD_NAME
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
,CHARGE_USER_NAME
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,SUPPLY_FAX_NO
|
|
,REG_ID
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') REGDATE
|
|
,STATUS
|
|
,case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
FROM ADMIN_SUPPLY_MNG
|
|
WHERE 1=1
|
|
<if test="searchHeadOffice != null and searchHeadOffice != ''">
|
|
<!-- 우성/성하 -->
|
|
AND OBJID IN ('-1130201617','462207249')
|
|
</if>
|
|
) TBL WHERE 1=1
|
|
<if test="supply_name != null and supply_name != ''">
|
|
AND UPPER(SUPPLY_NAME) LIKE UPPER('%${supply_name}%')
|
|
</if>
|
|
<if test="searchStatus != null and searchStatus != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${searchStatus}%')
|
|
</if>
|
|
)TBL WHERE 1=1
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<!-- 공급업체에 해당하는 정보 목록을 가져온다. -->
|
|
<select id="getSUPPLYInfoGridList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID::text
|
|
,SUPPLY_CODE
|
|
,(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SUPPLY_CODE) AS SUPPLY_CODE_NAME
|
|
,(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = AREA_CD) AS AREA_CD_NAME
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
,CHARGE_USER_NAME
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,SUPPLY_FAX_NO
|
|
,REG_ID
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') REGDATE
|
|
,STATUS
|
|
,case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
FROM ADMIN_SUPPLY_MNG
|
|
WHERE 1=1
|
|
<if test="searchHeadOffice != null and searchHeadOffice != ''">
|
|
<!-- 우성/성하 -->
|
|
AND OBJID IN ('-1130201617','462207249')
|
|
</if>
|
|
<if test="supply_name != null and supply_name != ''">
|
|
AND UPPER(SUPPLY_NAME) LIKE UPPER('%${supply_name}%')
|
|
</if>
|
|
<if test="searchStatus != null and searchStatus != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${searchStatus}%')
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 임율마스터 해당하는 정보 목록을 가져온다. -->
|
|
<select id="getratecalMngList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT TBL.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
RATECAL_MGMT_OBJID
|
|
,POSITION
|
|
,USER_NAME
|
|
,ORDINARY_HOURLY_WAGE
|
|
,DAILY_WAGE
|
|
,EST_ANNUAL_SALARY
|
|
,USER_ID
|
|
,YYYY
|
|
,REASON
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = REG_USER_ID) WRITER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = REG_USER_ID) WRITER_DEPT
|
|
,REG_USER_ID
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') REGDATE
|
|
,STATUS
|
|
,case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
FROM RATECAL_MGMT
|
|
WHERE 1=1
|
|
) TBL WHERE 1=1
|
|
<if test="yyyy != null and yyyy != ''">
|
|
AND YYYY =#{yyyy}
|
|
</if>
|
|
)TBL WHERE 1=1
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<!-- 임율마스터 해당하는 정보 목록 Count를 가져온다. -->
|
|
<select id="getratecalListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
*
|
|
FROM RATECAL_MGMT
|
|
WHERE 1=1
|
|
<if test="yyyy != null and yyyy != ''">
|
|
AND YYYY = #{yyyy}
|
|
</if>
|
|
) TBL WHERE 1=1
|
|
) A WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<!-- 고객사 단건 정보를 가져온다. -->
|
|
<select id="getOEMInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
'1' RNUM,
|
|
OBJID,
|
|
OEM_CODE,
|
|
OEM_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) WRITER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) WRITER_DEPT,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
CASE WHEN UPPER(STATUS)='ACTIVE' THEN '활성화' ELSE '비활성화' END AS STATUS_STR
|
|
FROM OEM_MNG
|
|
WHERE 1=1
|
|
<if test="OEM_OBJID != null and OEM_OBJID != ''">
|
|
AND OBJID = #{OEM_OBJID}::integer
|
|
</if>
|
|
<if test="OEM_NAME != null and OEM_NAME != ''">
|
|
AND UPPER(OEM_NAME) LIKE UPPER('%${OEM_NAME}%')
|
|
</if>
|
|
<if test="REGDATE_START != null and REGDATE_START != ''">
|
|
<![CDATA[ AND REGDATE <= TO_DATE(#{REGDATE_START},'YYYY-MM-DD') ]]>
|
|
</if>
|
|
<if test="REGDATE_END != null and REGDATE_END != ''">
|
|
<![CDATA[ AND REGDATE >= TO_DATE(#{REGDATE_END},'YYYY-MM-DD') ]]>
|
|
</if>
|
|
<if test="WRITER != null and WRITER != ''">
|
|
AND WRITER = #{WRITER}
|
|
</if>
|
|
<if test="STATUS != null and STATUS != ''">
|
|
AND STATUS = #{STATUS}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 공급업체 단건 정보를 가져온다. -->
|
|
<select id="getSupMngInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,SUPPLY_FAX_NO
|
|
,CHARGE_USER_NAME
|
|
,PAYMENT_METHOD
|
|
,REG_ID
|
|
,REG_DATE
|
|
,STATUS
|
|
,AREA_CD
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
FROM ADMIN_SUPPLY_MNG
|
|
WHERE OBJID = #{objid}::numeric
|
|
</select>
|
|
|
|
<!-- 공급업체 단건 정보를 가져온다. -->
|
|
<select id="getratecalInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
RATECAL_MGMT_OBJID
|
|
,POSITION
|
|
,USER_NAME
|
|
,ORDINARY_HOURLY_WAGE
|
|
,DAILY_WAGE
|
|
,EST_ANNUAL_SALARY
|
|
,REG_USER_ID
|
|
,REG_DATE
|
|
,USER_ID
|
|
,YYYY
|
|
,REASON
|
|
,STATUS
|
|
FROM RATECAL_MGMT
|
|
WHERE RATECAL_MGMT_OBJID = #{objid}::numeric
|
|
</select>
|
|
|
|
|
|
<!-- //공급업체 등록 및 저장 -->
|
|
<update id="mergeSupMgmtInfo" parameterType="map">
|
|
INSERT INTO ADMIN_SUPPLY_MNG
|
|
(
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,SUPPLY_FAX_NO
|
|
,CHARGE_USER_NAME
|
|
,PAYMENT_METHOD
|
|
,REG_ID
|
|
,REG_DATE
|
|
,STATUS
|
|
,AREA_CD
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid }::NUMERIC
|
|
,#{supply_code }
|
|
,#{supply_name }
|
|
,#{reg_no }
|
|
,#{supply_address }
|
|
,#{supply_busname }
|
|
,#{supply_stockname }
|
|
,#{supply_tel_no }
|
|
,#{supply_fax_no }
|
|
,#{charge_user_name }
|
|
,#{payment_method }
|
|
,#{reg_id }
|
|
,now()
|
|
,'active'
|
|
,#{area_cd }
|
|
,#{bus_reg_no }
|
|
,#{office_no }
|
|
,#{email }
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
SUPPLY_CODE =#{supply_code }
|
|
,SUPPLY_NAME =#{supply_name }
|
|
,REG_NO =#{reg_no }
|
|
,SUPPLY_ADDRESS =#{supply_address }
|
|
,SUPPLY_BUSNAME =#{supply_busname }
|
|
,SUPPLY_STOCKNAME =#{supply_stockname }
|
|
,SUPPLY_TEL_NO =#{supply_tel_no }
|
|
,SUPPLY_FAX_NO =#{supply_fax_no }
|
|
,CHARGE_USER_NAME =#{charge_user_name }
|
|
,PAYMENT_METHOD =#{payment_method }
|
|
,REG_ID =#{reg_id }
|
|
,REG_DATE =#{reg_date }
|
|
,AREA_CD =#{area_cd }
|
|
,BUS_REG_NO =#{bus_reg_no }
|
|
,OFFICE_NO =#{office_no }
|
|
,EMAIL =#{email }
|
|
</update>
|
|
|
|
<!-- <update id="mergeSupMgmtInfo" parameterType="map">
|
|
MERGE INTO SUPPLY_MNG USING DUAL ON (OBJID = #{objid})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
SUPPLY_NAME=#{supply_name}
|
|
,REG_NO=#{reg_no}
|
|
,SUPPLY_ADDRESS=#{supply_address}
|
|
,SUPPLY_BUSNAME=#{supply_busname}
|
|
,SUPPLY_STOCKNAME=#{supply_stockname}
|
|
,SUPPLY_TEL_NO=#{supply_tel_no}
|
|
,SUPPLY_FAX_NO=#{supply_fax_no}
|
|
,CHARGE_USER_NAME=#{charge_user_name}
|
|
,PAYMENT_METHOD=#{payment_method}
|
|
,STATUS=#{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,SUPPLY_FAX_NO
|
|
,CHARGE_USER_NAME
|
|
,PAYMENT_METHOD
|
|
,REG_ID
|
|
,REG_DATE
|
|
,STATUS
|
|
) VALUES (
|
|
#{objid}
|
|
,('SUP_CD' || LPAD((SELECT MAX(SUBSTR(SUPPLY_CODE,7,10)) FROM SUPPLY_MNG) + 1,4,'0'))
|
|
,#{supply_name}
|
|
,#{reg_no}
|
|
,#{supply_address}
|
|
,#{supply_busname}
|
|
,#{supply_stockname}
|
|
,#{supply_tel_no}
|
|
,#{supply_fax_no}
|
|
,#{charge_user_name}
|
|
,#{payment_method}
|
|
,#{userId}
|
|
,sysdate
|
|
,#{status}
|
|
)
|
|
</update> -->
|
|
|
|
<insert id="insertSupplyMngHistory" parameterType="map">
|
|
INSERT INTO ADMIN_SUPPLY_MNG_HISTORY
|
|
|
|
SELECT
|
|
#{objid}::numeric,
|
|
#{targetObjid}::numeric,
|
|
SUPPLY_CODE,
|
|
SUPPLY_NAME,
|
|
REG_NO,
|
|
SUPPLY_ADDRESS,
|
|
SUPPLY_BUSNAME,
|
|
SUPPLY_STOCKNAME,
|
|
SUPPLY_TEL_NO,
|
|
SUPPLY_FAX_NO,
|
|
CHARGE_USER_NAME,
|
|
PAYMENT_METHOD,
|
|
#{writer},
|
|
NOW(),
|
|
STATUS
|
|
FROM ADMIN_SUPPLY_MNG
|
|
WHERE OBJID = #{targetObjid}::numeric
|
|
|
|
</insert>
|
|
|
|
<!-- //공급업체 history -->
|
|
<select id="supMgmtInfoHistoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
A.*
|
|
FROM (
|
|
SELECT
|
|
A.*,
|
|
ROW_NUMBER() OVER (ORDER BY RM DESC) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
T.*,
|
|
ROW_NUMBER() OVER (ORDER BY REGDATE) AS RM,
|
|
(SELECT USER_NAME FROM USER_INFO UI WHERE T.WRITER = UI.USER_ID) AS WRITER_NAME,
|
|
TO_CHAR(T.REGDATE, 'YYYY-MM-DD') AS REGDATE_TITLE
|
|
FROM
|
|
ADMIN_SUPPLY_MNG_HISTORY T
|
|
WHERE TARGET_OBJID = #{objid}::numeric
|
|
) A
|
|
WHERE 1=1
|
|
) A
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM::integer >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<!-- //공급업체 history -->
|
|
<select id="supMgmtInfoHistoryListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM
|
|
ADMIN_SUPPLY_MNG_HISTORY T
|
|
WHERE TARGET_OBJID = #{objid}::numeric
|
|
) A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //임율마스터 이력 등록 -->
|
|
<insert id="saveRatecalMgmtHistoryInfo" parameterType="map">
|
|
INSERT INTO RATECAL_MGMT_HISTORY
|
|
(
|
|
ratecal_mgmt_objid,
|
|
old_data,
|
|
new_data,
|
|
reg_date
|
|
) VALUES (
|
|
#{objid}::numeric,
|
|
(select ORDINARY_HOURLY_WAGE from RATECAL_MGMT where RATECAL_MGMT_OBJID = #{objid}::numeric),
|
|
TRIM(TO_CHAR(#{ordinary_hourly_wage}::numeric,'999,999,999,990')),
|
|
now()
|
|
)
|
|
</insert>
|
|
|
|
<!-- //임율마스터 등록 및 저장 -->
|
|
<update id="mergeratecalMgmtInfo" parameterType="map">
|
|
with upsert as (
|
|
update
|
|
RATECAL_MGMT
|
|
set
|
|
YYYY=#{yyyy}
|
|
,ORDINARY_HOURLY_WAGE=TRIM(TO_CHAR(#{ordinary_hourly_wage}::numeric,'999,999,999,990'))
|
|
,DAILY_WAGE=TRIM(TO_CHAR(#{ordinary_hourly_wage}::numeric*8,'999,999,999,990'))
|
|
,EST_ANNUAL_SALARY=TRIM(TO_CHAR(#{ordinary_hourly_wage}::numeric*8*365,'999,999,999,990'))
|
|
,STATUS=#{status}
|
|
where RATECAL_MGMT_OBJID = #{objid}::numeric
|
|
)
|
|
|
|
insert into RATECAL_MGMT
|
|
(
|
|
RATECAL_MGMT_OBJID
|
|
,POSITION
|
|
,USER_NAME
|
|
,YYYY
|
|
,ORDINARY_HOURLY_WAGE
|
|
,DAILY_WAGE
|
|
,EST_ANNUAL_SALARY
|
|
,REASON
|
|
,USER_ID
|
|
,REG_USER_ID
|
|
,REG_DATE
|
|
,STATUS
|
|
)
|
|
select
|
|
#{objid}::numeric
|
|
,#{position}
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = #{user_id})
|
|
,#{yyyy}
|
|
,TRIM(TO_CHAR(#{ordinary_hourly_wage}::numeric, '999,999,999,990'))
|
|
,TRIM(TO_CHAR(#{ordinary_hourly_wage}::numeric*8, '999,999,999,990'))
|
|
,TRIM(TO_CHAR(#{ordinary_hourly_wage}::numeric*8*365,'999,999,999,990'))
|
|
,#{reason}
|
|
,#{user_id}
|
|
,#{userId}
|
|
,now()
|
|
,#{status}
|
|
where not exists (
|
|
select
|
|
*
|
|
from RATECAL_MGMT
|
|
where RATECAL_MGMT_OBJID = #{objid}::numeric
|
|
)
|
|
|
|
</update>
|
|
|
|
<!-- <update id="mergeratecalMgmtInfo" parameterType="map">
|
|
MERGE INTO RATECAL_MGMT USING DUAL ON (RATECAL_MGMT_OBJID = #{objid})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
YYYY=#{yyyy}
|
|
,ORDINARY_HOURLY_WAGE=TRIM(TO_CHAR(#{ordinary_hourly_wage},'999,999,999,990'))
|
|
,DAILY_WAGE=TRIM(TO_CHAR(#{ordinary_hourly_wage}*8,'999,999,999,990'))
|
|
,EST_ANNUAL_SALARY=TRIM(TO_CHAR(#{ordinary_hourly_wage}*8*365,'999,999,999,990'))
|
|
,STATUS=#{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
RATECAL_MGMT_OBJID
|
|
,POSITION
|
|
,USER_NAME
|
|
,YYYY
|
|
,ORDINARY_HOURLY_WAGE
|
|
,DAILY_WAGE
|
|
,EST_ANNUAL_SALARY
|
|
,REASON
|
|
,USER_ID
|
|
,REG_USER_ID
|
|
,REG_DATE
|
|
,STATUS
|
|
) VALUES (
|
|
#{objid}
|
|
,#{position}
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = #{user_id})
|
|
,#{yyyy}
|
|
,TRIM(TO_CHAR(#{ordinary_hourly_wage}, '999,999,999,990'))
|
|
,TRIM(TO_CHAR(#{ordinary_hourly_wage}*8, '999,999,999,990'))
|
|
,TRIM(TO_CHAR(#{ordinary_hourly_wage}*8*365,'999,999,999,990'))
|
|
,#{reason}
|
|
,#{user_id}
|
|
,#{userId}
|
|
,sysdate
|
|
,#{status}
|
|
)
|
|
</update> -->
|
|
|
|
|
|
<delete id="delOEMRelMilestone" parameterType="map">
|
|
DELETE OEM_MILESTONE_MNG WHERE OEM_OBJID = #{OEM_OBJID}
|
|
</delete>
|
|
|
|
<!-- 고객사에 해당하는 정보를 가져온다. -->
|
|
<update id="changeOEMStatus" parameterType="map">
|
|
UPDATE OEM_MNG SET STATUS = #{STATUS} WHERE OBJID = #{OEM_OBJID}
|
|
</update>
|
|
|
|
<!-- 공급업체에 상태 업데이트 -->
|
|
<update id="changeSupStatus" parameterType="map">
|
|
UPDATE ADMIN_SUPPLY_MNG SET STATUS = #{status} WHERE OBJID = #{objid}::numeric
|
|
</update>
|
|
|
|
|
|
<!-- 재질 관리 목록 -->
|
|
<select id="getMaterialMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER (ORDER BY REGDATE DESC) RNUM
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, MATERIAL_NAME
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = A.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = A.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(A.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(A.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE A.STATUS
|
|
END AS STATUS_STR
|
|
FROM MATERIAL_MNG A
|
|
) C WHERE 1=1
|
|
<if test="search_materialName != null and search_materialName != ''">
|
|
AND UPPER(MATERIAL_NAME) LIKE UPPER('%${search_materialName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 재질의 목록count를 가져온다. -->
|
|
<select id="getMaterialMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, MATERIAL_NAME
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = A.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = A.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(A.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(A.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE A.STATUS
|
|
END AS STATUS_STR
|
|
FROM MATERIAL_MNG A
|
|
) C WHERE 1=1
|
|
<if test="search_materialName != null and search_materialName != ''">
|
|
AND UPPER(MATERIAL_NAME) LIKE UPPER('%${search_materialName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 재질 단건 조회 -->
|
|
<select id="getMaterialInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
MATERIAL_NAME,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM MATERIAL_MNG
|
|
WHERE OBJID = #{search_materialObjid} OR MATERIAL_NAME = #{search_materialName}
|
|
</select>
|
|
|
|
<!-- 재질 등록/수정 -->
|
|
<update id="mergeMaterial" parameterType="map">
|
|
MERGE INTO MATERIAL_MNG M USING DUAL on (M.OBJID = #{materialObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET M.MATERIAL_NAME = #{materialName},
|
|
M.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
M.OBJID,
|
|
M.MATERIAL_NAME,
|
|
M.WRITER,
|
|
M.REGDATE,
|
|
M.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{materialObjid},
|
|
#{materialName},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- 재질의 상태전환 -->
|
|
<update id="updateMaterialStatus" parameterType="map">
|
|
UPDATE MATERIAL_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{materialObjid}
|
|
</update>
|
|
|
|
<!-- 차량옵션 관리 목록 -->
|
|
<select id="getCarOptionMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM
|
|
FROM(
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, OPTION_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = A.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = A.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(A.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(A.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE A.STATUS
|
|
END AS STATUS_STR
|
|
FROM OPTION_SPEC_MNG A
|
|
) C WHERE 1=1
|
|
<if test="search_optionName != null and search_optionName != ''">
|
|
AND UPPER(OPTION_NAME) LIKE UPPER('%${search_optionName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 옵션의 목록count를 가져온다. -->
|
|
<select id="getCarOptionMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, OPTION_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = A.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = A.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(A.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(A.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE A.STATUS
|
|
END AS STATUS_STR
|
|
FROM OPTION_SPEC_MNG A
|
|
) C WHERE 1=1
|
|
<if test="search_optionName != null and search_optionName != ''">
|
|
AND UPPER(OPTION_NAME) LIKE UPPER('%${search_optionName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 차량옵션 단건 조회 -->
|
|
<select id="getCarOptionInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
OPTION_NAME,
|
|
DESCRIPTION,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM OPTION_SPEC_MNG
|
|
WHERE OBJID = #{search_optionObjid} OR OPTION_NAME = #{search_optionName}
|
|
</select>
|
|
|
|
<!-- 차량옵션 등록/수정 -->
|
|
<update id="mergeCarOption" parameterType="map">
|
|
MERGE INTO OPTION_SPEC_MNG M USING DUAL on (M.OBJID = #{optionObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET M.OPTION_NAME = #{optionName},
|
|
M.DESCRIPTION = #{optionDescription},
|
|
M.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
M.OBJID,
|
|
M.OPTION_NAME,
|
|
M.DESCRIPTION,
|
|
M.WRITER,
|
|
M.REGDATE,
|
|
M.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{optionObjid},
|
|
#{optionName},
|
|
#{optionDescription},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- 차량옵션의 상태전환 -->
|
|
<update id="updateCarOptionStatus" parameterType="map">
|
|
UPDATE OPTION_SPEC_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{optionObjid}
|
|
</update>
|
|
|
|
<!-- 기술자료 카테고리 목록을 가져온다. -->
|
|
<select id="getSpecDataCategoryList" parameterType="map" resultType="map">
|
|
|
|
WITH RECURSIVE v_STD_CATE(
|
|
objid,
|
|
parent_objid,
|
|
category_type,
|
|
use_car,
|
|
use_product,
|
|
use_revision,
|
|
use_doc_link,
|
|
use_compatition_car,
|
|
use_product_group,
|
|
doc_no_rule,
|
|
category_name,
|
|
seq,
|
|
spec_no,
|
|
writer,
|
|
spec_input_type,
|
|
regdate,
|
|
status,
|
|
use_manufacturer,
|
|
use_participation_date,
|
|
lev,
|
|
PATH,
|
|
cycle
|
|
) AS (
|
|
SELECT
|
|
STD_CATE_ORG.*,
|
|
1,
|
|
ARRAY [STD_CATE_ORG.objid],
|
|
false
|
|
FROM
|
|
STANDARD_DOC_CATEGORY STD_CATE_ORG
|
|
WHERE 1=1
|
|
and STD_CATE_ORG.CATEGORY_TYPE = 'high'
|
|
AND STD_CATE_ORG.OBJID IS NOT NULL
|
|
|
|
UNION ALL
|
|
|
|
select
|
|
STD_CATE.*,
|
|
v_STD_CATE.lev + 1,
|
|
PATH||STD_CATE.seq,
|
|
STD_CATE.objid = ANY(PATH)
|
|
from
|
|
STANDARD_DOC_CATEGORY STD_CATE
|
|
JOIN
|
|
v_STD_CATE
|
|
ON
|
|
STD_CATE.PARENT_OBJID = v_STD_CATE.OBJID
|
|
WHERE 1=1
|
|
)
|
|
|
|
select * from(
|
|
SELECT
|
|
A.*,
|
|
A.REGDATE ORG_REGDATE,
|
|
TO_CHAR(A.REGDATE,'YYYY-MM-DD') REGDATE_TITLE,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE UPPER(USER_ID) = UPPER(A.writer)) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE UPPER(USER_ID) = UPPER(A.writer)) AS user_name,
|
|
(SELECT CATEGORY_NAME FROM STANDARD_DOC_CATEGORY WHERE OBJID IS NOT NULL AND OBJID = A.PARENT_OBJID) PARENT_NAME,
|
|
(SELECT CATEGORY_TYPE FROM STANDARD_DOC_CATEGORY WHERE OBJID IS NOT NULL AND OBJID = A.PARENT_OBJID) PARENT_CATEGORY_TYPE,
|
|
(SELECT PARENT_OBJID FROM STANDARD_DOC_CATEGORY WHERE OBJID IS NOT NULL AND OBJID = A.PARENT_OBJID) PARENT_REL_OBJID
|
|
FROM v_STD_CATE A
|
|
WHERE OBJID IS NOT NULL
|
|
order by
|
|
PATH
|
|
) A where 1=1
|
|
<if test="REGDATE_FROM != null and REGDATE_FROM != ''">
|
|
AND TO_DATE(ORG_REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{REGDATE_FROM}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="REGDATE_TO != null and REGDATE_TO != ''">
|
|
AND TO_DATE(ORG_REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{REGDATE_TO}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="STATUS != '' and STATUS != null">
|
|
AND STATUS = #{STATUS}
|
|
</if>
|
|
<if test="CATEGORY_NAME != '' and CATEGORY_NAME != null">
|
|
AND CATEGORY_NAME LIKE '%${CATEGORY_NAME}%'
|
|
</if>
|
|
<if test="CATEGORY_TYPE != '' and CATEGORY_TYPE != null">
|
|
AND CATEGORY_TYPE = #{CATEGORY_TYPE}
|
|
</if>
|
|
<if test="WRITER != '' and WRITER != null">
|
|
AND (USER_NAME||WRITER) LIKE '%${WRITER}%'
|
|
</if>
|
|
</select>
|
|
<!-- <select id="getSpecDataCategoryList" parameterType="map" resultType="map">
|
|
SELECT T.*,
|
|
(SELECT CATEGORY_NAME FROM STANDARD_DOC_CATEGORY WHERE OBJID IS NOT NULL AND OBJID = T.PARENT_OBJID) PARENT_NAME,
|
|
(SELECT CATEGORY_TYPE FROM STANDARD_DOC_CATEGORY WHERE OBJID IS NOT NULL AND OBJID = T.PARENT_OBJID) PARENT_CATEGORY_TYPE,
|
|
(SELECT PARENT_OBJID FROM STANDARD_DOC_CATEGORY WHERE OBJID IS NOT NULL AND OBJID = T.PARENT_OBJID) PARENT_REL_OBJID
|
|
FROM
|
|
(
|
|
SELECT
|
|
LEVEL AS LEV,
|
|
OBJID,
|
|
PARENT_OBJID,
|
|
CATEGORY_TYPE,
|
|
USE_CAR,
|
|
USE_PRODUCT,
|
|
USE_REVISION,
|
|
USE_DOC_LINK,
|
|
DOC_NO_RULE,
|
|
CATEGORY_NAME,
|
|
SEQ,
|
|
SPEC_NO,
|
|
WRITER,
|
|
(SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = WRITER) DEPT_NAME,
|
|
(SELECT CASE WHEN USER_NAME = NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = WRITER) USER_NAME,
|
|
REGDATE ORG_REGDATE,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM STANDARD_DOC_CATEGORY STD_CATE START WITH STD_CATE.CATEGORY_TYPE = 'high' AND OBJID IS NOT NULL
|
|
CONNECT BY PRIOR STD_CATE.OBJID = STD_CATE.PARENT_OBJID
|
|
ORDER SIBLINGS BY SEQ ASC
|
|
)T
|
|
WHERE OBJID IS NOT NULL
|
|
|
|
<if test="REGDATE_FROM != null and REGDATE_FROM != ''">
|
|
AND TO_DATE(ORG_REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{REGDATE_FROM}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="REGDATE_TO != null and REGDATE_TO != ''">
|
|
AND TO_DATE(ORG_REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{REGDATE_TO}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="STATUS != '' and STATUS != null">
|
|
AND STATUS = #{STATUS}
|
|
</if>
|
|
<if test="CATEGORY_NAME != '' and CATEGORY_NAME != null">
|
|
AND CATEGORY_NAME LIKE '%${CATEGORY_NAME}%'
|
|
</if>
|
|
<if test="CATEGORY_TYPE != '' and CATEGORY_TYPE != null">
|
|
AND CATEGORY_TYPE = #{CATEGORY_TYPE}
|
|
</if>
|
|
<if test="WRITER != '' and WRITER != null">
|
|
AND (USER_NAME||WRITER) LIKE '%${WRITER}%'
|
|
</if>
|
|
</select> -->
|
|
|
|
<!-- 코드 목록을 가져온다. -->
|
|
<select id="getCodeDataCategoryList" parameterType="map" resultType="map">
|
|
WITH RECURSIVE V_CODE(
|
|
OBJID,
|
|
CODE_ID,
|
|
PARENT_CODE_ID,
|
|
CODE_NAME,
|
|
ID,
|
|
CODE_CD,
|
|
EXT_VAL,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
LEV,
|
|
PATH,
|
|
CYCLE,
|
|
PATH_NAME
|
|
) AS (
|
|
SELECT
|
|
CODE.*,
|
|
1,
|
|
ARRAY [CODE.CODE_ID::TEXT],
|
|
FALSE,
|
|
ARRAY [CODE.CODE_NAME]
|
|
FROM
|
|
COMM_CODE CODE
|
|
WHERE 1=1
|
|
|
|
<choose>
|
|
<when test="searchCode != null and !''.equals(searchCode)">
|
|
AND CODE.PARENT_CODE_ID = #{searchCode}
|
|
</when>
|
|
<otherwise>
|
|
AND (CODE.PARENT_CODE_ID IS NULL OR CODE.PARENT_CODE_ID = '')
|
|
</otherwise>
|
|
</choose>
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
ORG_CODE.*,
|
|
LEV + 1,
|
|
PATH||ORG_CODE.CODE_ID::TEXT,
|
|
ORG_CODE.CODE_ID = ANY(PATH),
|
|
PATH_NAME
|
|
FROM
|
|
COMM_CODE ORG_CODE
|
|
JOIN
|
|
V_CODE
|
|
ON
|
|
ORG_CODE.PARENT_CODE_ID = V_CODE.CODE_ID
|
|
WHERE 1=1
|
|
)
|
|
|
|
SELECT * FROM(
|
|
SELECT
|
|
OBJID,
|
|
CODE_ID,
|
|
EXT_VAL,
|
|
LPAD(' - ',(LEV-1)*5,' - ')||CODE_NAME AS CODE_NAME,
|
|
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = V.PARENT_CODE_ID AND CC.PARENT_CODE_ID = '') AS PARENT_CODE_NAME,
|
|
'' AS PATHNAME,
|
|
(
|
|
SELECT
|
|
CASE DEPT_NAME
|
|
WHEN NULL THEN '정보없음'
|
|
ELSE DEPT_NAME
|
|
END
|
|
FROM USER_INFO
|
|
WHERE USER_ID = V.WRITER
|
|
) AS DEPT_NAME,
|
|
(
|
|
SELECT
|
|
CASE USER_NAME
|
|
WHEN NULL THEN '정보없음'
|
|
ELSE USER_NAME
|
|
END
|
|
FROM USER_INFO
|
|
WHERE USER_ID = V.WRITER
|
|
) AS USER_NAME,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
PATH_NAME
|
|
FROM
|
|
V_CODE V
|
|
WHERE 1=1
|
|
ORDER BY
|
|
PATH,
|
|
CODE_ID
|
|
) T
|
|
WHERE 1=1
|
|
<if test="REGDATE_FROM != null and REGDATE_FROM != ''">
|
|
AND REGDATE <![CDATA[ >= ]]> TO_DATE(#{REGDATE_FROM}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="REGDATE_TO != null and REGDATE_TO != ''">
|
|
AND REGDATE <![CDATA[ <= ]]> TO_DATE(#{REGDATE_TO}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="STATUS != '' and STATUS != null">
|
|
AND STATUS = #{STATUS}
|
|
</if>
|
|
<if test="CODE_NAME != '' and CODE_NAME != null">
|
|
AND (CODE_NAME LIKE '%${CODE_NAME}%' or PARENT_CODE_NAME LIKE '%${CODE_NAME}%')
|
|
</if>
|
|
</select>
|
|
|
|
<!-- <select id="getCodeDataCategoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
CODE_ID,
|
|
LPAD(' - ',(LEVEL-1)*5,' - ')||CODE_NAME AS CODE_NAME,
|
|
SUBSTR(SYS_CONNECT_BY_PATH(CODE_NAME,'->'), 3) PATHNAME,
|
|
(SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = T.WRITER) DEPT_NAME,
|
|
(SELECT CASE WHEN USER_NAME = NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = T.WRITER) USER_NAME,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM COMM_CODE T
|
|
WHERE 1=1
|
|
<if test="REGDATE_FROM != null and REGDATE_FROM != ''">
|
|
AND TO_DATE(ORG_REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{REGDATE_FROM}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="REGDATE_TO != null and REGDATE_TO != ''">
|
|
AND TO_DATE(ORG_REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{REGDATE_TO}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="STATUS != '' and STATUS != null">
|
|
AND STATUS = #{STATUS}
|
|
</if>
|
|
<if test="CODE_NAME != '' and CODE_NAME != null">
|
|
AND CODE_NAME LIKE '%${CODE_NAME}%'
|
|
</if>
|
|
<if test="WRITER != '' and WRITER != null">
|
|
AND (USER_NAME||WRITER) LIKE '%${WRITER}%'
|
|
</if>
|
|
<choose>
|
|
<when test="searchCode != null and !''.equals(searchCode)">
|
|
START WITH CODE_ID = #{searchCode}
|
|
</when>
|
|
<otherwise>
|
|
START WITH PARENT_CODE_ID IS NULL
|
|
</otherwise>
|
|
</choose>
|
|
CONNECT BY PRIOR CODE_ID = PARENT_CODE_ID
|
|
ORDER SIBLINGS BY CODE_ID
|
|
</select> -->
|
|
|
|
<!-- 간단한 코드목록 가져오기 -->
|
|
<select id="getSimpleCodeDataCategoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
code_name
|
|
FROM COMM_CODE T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 코드 fullpath -->
|
|
<select id="getCodeFullpathList" parameterType="map" resultType="map">
|
|
SELECT * FROM (
|
|
SELECT
|
|
OBJID,
|
|
CODE_ID,
|
|
SUBSTR(SYS_CONNECT_BY_PATH(CODE_ID, '‡'), 2) FULLID
|
|
FROM COMM_CODE T
|
|
WHERE 1=1
|
|
START WITH PARENT_CODE_ID IS NULL
|
|
CONNECT BY PRIOR CODE_ID = PARENT_CODE_ID) T
|
|
WHERE T.CODE_ID=#{searchCode}
|
|
</select>
|
|
|
|
|
|
<!-- 기술자료 카테고리 등록/수정 -->
|
|
<update id="mergeSpecDataCategory" parameterType="map">
|
|
INSERT INTO STANDARD_DOC_CATEGORY
|
|
(
|
|
objid,
|
|
parent_objid,
|
|
category_type,
|
|
doc_no_rule,
|
|
category_name,
|
|
seq,
|
|
writer,
|
|
regdate,
|
|
status,
|
|
use_car,
|
|
use_product,
|
|
use_revision,
|
|
use_doc_link,
|
|
use_compatition_car,
|
|
use_product_group,
|
|
spec_input_type
|
|
) VALUES (
|
|
#{objid}::numeric,
|
|
#{parentObjid}::numeric,
|
|
#{categoryType},
|
|
#{categoryDocName},
|
|
#{categoryName},
|
|
#{categorySeq}::numeric,
|
|
#{writer},
|
|
now(),
|
|
#{status},
|
|
#{car},
|
|
#{product},
|
|
#{revision},
|
|
#{changeFlag},
|
|
#{compatitionCar},
|
|
#{productGroup},
|
|
#{specInputType}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
parent_objid = #{parentObjid}::numeric,
|
|
category_type = #{categoryType},
|
|
doc_no_rule = #{categoryDocName},
|
|
category_name = #{categoryName},
|
|
seq = #{categorySeq}::numeric,
|
|
status = #{status},
|
|
use_car = #{car},
|
|
use_product = #{product},
|
|
use_revision = #{revision},
|
|
use_doc_link = #{changeFlag},
|
|
use_compatition_car = #{compatitionCar},
|
|
use_product_group = #{productGroup},
|
|
spec_input_type = #{specInputType}
|
|
</update>
|
|
<!-- <update id="mergeSpecDataCategory" parameterType="map">
|
|
MERGE INTO STANDARD_DOC_CATEGORY T USING DUAL ON (T.OBJID = #{objid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET
|
|
T.PARENT_OBJID = #{parentObjid},
|
|
T.CATEGORY_TYPE = #{categoryType},
|
|
T.DOC_NO_RULE = #{categoryDocName},
|
|
T.CATEGORY_NAME = #{categoryName},
|
|
T.SEQ = #{categorySeq},
|
|
T.STATUS = #{status},
|
|
T.USE_CAR = #{car},
|
|
T.USE_PRODUCT = #{product},
|
|
T.USE_REVISION = #{revision},
|
|
T.USE_DOC_LINK = #{changeFlag},
|
|
T.USE_COMPATITION_CAR = #{compatitionCar},
|
|
T.USE_PRODUCT_GROUP = #{productGroup},
|
|
T.SPEC_INPUT_TYPE = #{specInputType}
|
|
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.PARENT_OBJID,
|
|
T.CATEGORY_TYPE,
|
|
T.DOC_NO_RULE,
|
|
T.CATEGORY_NAME,
|
|
T.SEQ,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS,
|
|
T.USE_CAR,
|
|
T.USE_PRODUCT,
|
|
T.USE_REVISION,
|
|
T.USE_DOC_LINK,
|
|
T.USE_COMPATITION_CAR,
|
|
T.USE_PRODUCT_GROUP,
|
|
T.SPEC_INPUT_TYPE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid},
|
|
#{parentObjid},
|
|
#{categoryType},
|
|
#{categoryDocName},
|
|
#{categoryName},
|
|
#{categorySeq},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status},
|
|
#{car},
|
|
#{product},
|
|
#{revision},
|
|
#{changeFlag},
|
|
#{compatitionCar},
|
|
#{productGroup},
|
|
#{specInputType}
|
|
)
|
|
</update> -->
|
|
|
|
|
|
<!-- 공통코드 등록/수정 -->
|
|
<update id="mergeCodeDataCategory" parameterType="map">
|
|
INSERT INTO COMM_CODE
|
|
(
|
|
OBJID,
|
|
CODE_ID,
|
|
PARENT_CODE_ID,
|
|
CODE_NAME,
|
|
ID,
|
|
CODE_CD,
|
|
EXT_VAL,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid}::numeric,
|
|
LPAD(nextval('seq_comm_code')::varchar,7,'0'),
|
|
#{parentCodeId},
|
|
#{codeName},
|
|
#{id},
|
|
#{code_cd},
|
|
#{ext_val},
|
|
#{writer},
|
|
now(),
|
|
#{status}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
CODE_NAME = #{codeName},
|
|
EXT_VAL = #{ext_val},
|
|
STATUS = #{status}
|
|
</update>
|
|
<!-- <update id="mergeCodeDataCategory" parameterType="map">
|
|
MERGE INTO COMM_CODE T USING DUAL ON (T.OBJID = #{objid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET
|
|
T.CODE_NAME = #{codeName},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.CODE_ID,
|
|
T.PARENT_CODE_ID,
|
|
T.CODE_NAME,
|
|
T.ID,
|
|
T.CODE_CD,
|
|
T.EXT_VAL,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid},
|
|
LPAD((SELECT COUNT(*) FROM comm_code) + 1,7,'0'),
|
|
#{parentCodeId},
|
|
#{codeName},
|
|
#{id},
|
|
#{code_cd},
|
|
#{ext_val},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update> -->
|
|
|
|
<insert id="insertCodeDataCategoryHistory" parameterType="map">
|
|
INSERT INTO COMM_CODE_HISTORY
|
|
|
|
SELECT
|
|
#{objid}::numeric,
|
|
#{targetObjid}::numeric,
|
|
CODE_ID,
|
|
PARENT_CODE_ID,
|
|
CODE_NAME,
|
|
ID,
|
|
CODE_CD,
|
|
EXT_VAL,
|
|
#{writer},
|
|
NOW(),
|
|
STATUS
|
|
FROM COMM_CODE
|
|
WHERE OBJID = #{targetObjid}::numeric
|
|
|
|
</insert>
|
|
|
|
<select id="getDuplicateCodeCategogyInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
FROM COMM_CODE T
|
|
WHERE 1=1
|
|
<if test=" objid != '' and objid != null ">
|
|
AND OBJID != #{objid}::numeric
|
|
</if>
|
|
<if test=" parentCodeId != '' and parentCodeId != null ">
|
|
AND PARENT_CODE_ID = #{parentCodeId}
|
|
</if>
|
|
<if test=" codeName != '' and codeName != null ">
|
|
AND TRIM(UPPER(CODE_NAME)) = TRIM(UPPER(#{codeName}))
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<!-- 기술자료 카테고리 삭제 -->
|
|
<delete id="deleteSpecDataCategory" parameterType="map">
|
|
DELETE STANDARD_DOC_CATEGORY WHERE OBJID = #{OBJID}
|
|
</delete>
|
|
|
|
<!-- 고객사에 해당하는 정보를 가져온다. -->
|
|
<update id="changeSpecDataCategoryStatus" parameterType="map">
|
|
UPDATE STANDARD_DOC_CATEGORY SET STATUS = #{STATUS} WHERE OBJID = #{OBJID}::numeric
|
|
</update>
|
|
|
|
<!-- 코드 상태값 변경 -->
|
|
<update id="changeCodeCategoryStatus" parameterType="map">
|
|
UPDATE COMM_CODE SET STATUS = #{STATUS} WHERE OBJID = #{OBJID}::numeric
|
|
</update>
|
|
|
|
<delete id="deleteCode" parameterType="map">
|
|
DELETE FROM COMM_CODE WHERE OBJID = #{OBJID}::NUMERIC
|
|
</delete>
|
|
|
|
<delete id="deleteSubCode" parameterType="map">
|
|
DELETE FROM COMM_CODE WHERE PARENT_CODE_ID = (SELECT CODE_ID FROM COMM_CODE WHERE OBJID = #{OBJID}::NUMERIC)
|
|
</delete>
|
|
|
|
<!-- 기술자료 카테고리 정보를 가져온다. -->
|
|
<select id="specCategoryBase" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
PARENT_OBJID,
|
|
CATEGORY_TYPE,
|
|
USE_CAR,
|
|
USE_PRODUCT,
|
|
USE_REVISION,
|
|
USE_DOC_LINK,
|
|
DOC_NO_RULE,
|
|
CATEGORY_NAME,
|
|
SEQ,
|
|
SPEC_NO,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM STANDARD_DOC_CATEGORY
|
|
<where>
|
|
OBJID IS NOT NULL
|
|
</where>
|
|
</select>
|
|
|
|
<!-- 조건에 해당하는 기술자료 카테고리 정보를 가져온다. -->
|
|
<select id="getSpecCategoryBaseInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
PARENT_OBJID,
|
|
CATEGORY_TYPE,
|
|
USE_CAR,
|
|
USE_PRODUCT,
|
|
USE_REVISION,
|
|
USE_DOC_LINK,
|
|
USE_COMPATITION_CAR,
|
|
USE_PRODUCT_GROUP,
|
|
DOC_NO_RULE,
|
|
CATEGORY_NAME,
|
|
SEQ,
|
|
SPEC_NO,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
(SELECT PARENT_OBJID FROM STANDARD_DOC_CATEGORY WHERE OBJID = T.PARENT_OBJID) CATEGORY_HIGH_OBJID,
|
|
STATUS,
|
|
SPEC_INPUT_TYPE
|
|
FROM STANDARD_DOC_CATEGORY T
|
|
<where>
|
|
OBJID IS NOT NULL
|
|
</where>
|
|
<if test=" STATUS != '' and STATUS != null ">
|
|
AND STATUS = #{STATUS}
|
|
</if>
|
|
<if test=" CATEGORY_TYPE != '' and CATEGORY_TYPE != null ">
|
|
AND CATEGORY_TYPE = #{CATEGORY_TYPE}
|
|
</if>
|
|
<if test=" PARENT_OBJID != '' and PARENT_OBJID != null ">
|
|
AND PARENT_OBJID = #{PARENT_OBJID}::numeric
|
|
</if>
|
|
<if test=" CATEGORY_NAME != '' and CATEGORY_NAME != null ">
|
|
AND CATEGORY_NAME = #{CATEGORY_NAME}
|
|
</if>
|
|
<if test=" OBJID != '' and OBJID != null ">
|
|
AND OBJID = #{OBJID}::numeric
|
|
</if>
|
|
ORDER BY SEQ
|
|
</select>
|
|
|
|
<!-- 코드정보를 가져온다 -->
|
|
<select id="getCodeCategoryBaseInfo" parameterType="map" resultType="map">
|
|
WITH RECURSIVE V_CODE(
|
|
OBJID,
|
|
CODE_ID,
|
|
PARENT_CODE_ID,
|
|
CODE_NAME,
|
|
ID,
|
|
CODE_CD,
|
|
EXT_VAL,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
LEV,
|
|
PATH,
|
|
CYCLE,
|
|
PATH_NAME
|
|
) AS (
|
|
SELECT
|
|
CODE.*,
|
|
1,
|
|
ARRAY [CODE.CODE_ID],
|
|
FALSE,
|
|
ARRAY [CODE.CODE_NAME]
|
|
FROM
|
|
COMM_CODE CODE
|
|
WHERE 1=1
|
|
AND (CODE.PARENT_CODE_ID IS NULL OR CODE.PARENT_CODE_ID = '')
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
ORG_CODE.*,
|
|
LEV + 1,
|
|
PATH,
|
|
ORG_CODE.CODE_ID = ANY(PATH),
|
|
PATH_NAME
|
|
FROM
|
|
COMM_CODE ORG_CODE
|
|
JOIN
|
|
V_CODE
|
|
ON
|
|
ORG_CODE.PARENT_CODE_ID = V_CODE.CODE_ID
|
|
WHERE 1=1
|
|
)
|
|
|
|
SELECT
|
|
OBJID,
|
|
CODE_ID,
|
|
CODE_NAME,
|
|
PARENT_CODE_ID,
|
|
'' AS PATHNAME,
|
|
(
|
|
SELECT
|
|
CASE DEPT_NAME
|
|
WHEN NULL THEN '정보없음'
|
|
ELSE DEPT_NAME
|
|
END
|
|
FROM USER_INFO
|
|
WHERE USER_ID = V.WRITER
|
|
) AS DEPT_NAME,
|
|
(
|
|
SELECT
|
|
CASE USER_NAME
|
|
WHEN NULL THEN '정보없음'
|
|
ELSE USER_NAME
|
|
END
|
|
FROM USER_INFO
|
|
WHERE USER_ID = V.WRITER
|
|
) AS USER_NAME,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
PATH_NAME,
|
|
EXT_VAL
|
|
FROM
|
|
V_CODE V
|
|
WHERE 1=1
|
|
AND OBJID = #{OBJID}::numeric
|
|
ORDER BY
|
|
PATH,
|
|
LEV,
|
|
CODE_ID,
|
|
STATUS
|
|
</select>
|
|
<!-- <select id="getCodeCategoryBaseInfo" parameterType="map" resultType="map">
|
|
SELECT * FROM (
|
|
SELECT LEVEL AS LEV,
|
|
OBJID,
|
|
CODE_ID,
|
|
CODE_NAME,
|
|
T.PARENT_CODE_ID,
|
|
SUBSTR(SYS_CONNECT_BY_PATH(CODE_NAME, '‡'), 2) FULLNAME,
|
|
SUBSTR(SYS_CONNECT_BY_PATH(CODE_ID, '‡'), 2) FULLID,
|
|
(SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME)
|
|
FROM USER_INFO
|
|
WHERE USER_ID = T.WRITER) DEPT_NAME,
|
|
(SELECT CASE
|
|
WHEN USER_NAME = NULL THEN
|
|
'정보없음'
|
|
ELSE
|
|
USER_NAME
|
|
END
|
|
FROM USER_INFO
|
|
WHERE USER_ID = T.WRITER) USER_NAME,
|
|
TO_CHAR(REGDATE, 'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
CONNECT_BY_ROOT CODE_NAME AS ROOT_NAME
|
|
FROM COMM_CODE T
|
|
WHERE 1 = 1
|
|
AND T.OBJID = #{OBJID}
|
|
START WITH PARENT_CODE_ID IS NULL
|
|
CONNECT BY PRIOR CODE_ID = PARENT_CODE_ID
|
|
) T
|
|
</select> -->
|
|
|
|
<!-- 최상위 코드정보를 가져온다 -->
|
|
<select id="getTopCodeCategoryBaseInfo" parameterType="map" resultType="map">
|
|
WITH RECURSIVE V_CODE(
|
|
OBJID,
|
|
CODE_ID,
|
|
PARENT_CODE_ID,
|
|
CODE_NAME,
|
|
ID,
|
|
CODE_CD,
|
|
EXT_VAL,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
LEV,
|
|
PATH,
|
|
CYCLE,
|
|
PATH_NAME
|
|
) AS (
|
|
SELECT
|
|
CODE.*,
|
|
1,
|
|
ARRAY [CODE.CODE_ID],
|
|
FALSE,
|
|
ARRAY [CODE.CODE_NAME]
|
|
FROM
|
|
COMM_CODE CODE
|
|
WHERE 1=1
|
|
AND (CODE.PARENT_CODE_ID IS NULL OR CODE.PARENT_CODE_ID = '')
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
ORG_CODE.*,
|
|
LEV + 1,
|
|
PATH,
|
|
ORG_CODE.CODE_ID = ANY(PATH),
|
|
PATH_NAME
|
|
FROM
|
|
COMM_CODE ORG_CODE
|
|
JOIN
|
|
V_CODE
|
|
ON
|
|
ORG_CODE.PARENT_CODE_ID = V_CODE.CODE_ID
|
|
WHERE 1=1
|
|
)
|
|
|
|
SELECT
|
|
OBJID,
|
|
CODE_ID,
|
|
CODE_NAME,
|
|
'' AS PATHNAME,
|
|
(
|
|
SELECT
|
|
CASE DEPT_NAME
|
|
WHEN NULL THEN '정보없음'
|
|
ELSE DEPT_NAME
|
|
END
|
|
FROM USER_INFO
|
|
WHERE USER_ID = V.WRITER
|
|
) AS DEPT_NAME,
|
|
(
|
|
SELECT
|
|
CASE USER_NAME
|
|
WHEN NULL THEN '정보없음'
|
|
ELSE USER_NAME
|
|
END
|
|
FROM USER_INFO
|
|
WHERE USER_ID = V.WRITER
|
|
) AS USER_NAME,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS,
|
|
PATH_NAME
|
|
FROM
|
|
V_CODE V
|
|
WHERE 1=1
|
|
AND CODE_ID = #{codeid}
|
|
ORDER BY
|
|
PATH,
|
|
LEV,
|
|
CODE_ID,
|
|
STATUS
|
|
</select>
|
|
<!-- <select id="getTopCodeCategoryBaseInfo" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM comm_code T
|
|
WHERE PARENT_CODE_ID IS NULL
|
|
START WITH CODE_ID = #{codeid}
|
|
CONNECT BY PRIOR PARENT_CODE_ID = CODE_ID
|
|
</select> -->
|
|
|
|
<!-- 적용사양 관리 목록 -->
|
|
<select id="getRegionMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM(
|
|
</if>
|
|
SELECT R.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM
|
|
FROM (
|
|
SELECT R.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, REGION_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = R.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = R.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(R.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(R.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE R.STATUS
|
|
END AS STATUS_STR
|
|
FROM REGION_MNG R
|
|
) R WHERE 1=1
|
|
<if test="search_regionName != null and search_regionName != ''">
|
|
AND UPPER(REGION_NAME) LIKE UPPER('%${search_regionName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) R WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 적용사양의 목록count를 가져온다. -->
|
|
<select id="getRegionMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT R.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, REGION_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = R.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = R.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(R.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(R.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE R.STATUS
|
|
END AS STATUS_STR
|
|
FROM REGION_MNG R
|
|
) R WHERE 1=1
|
|
<if test="search_regionName != null and search_regionName != ''">
|
|
AND UPPER(REGION_NAME) LIKE UPPER('%${search_regionName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 적용사양 단건 조회 -->
|
|
<select id="getRegionInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
REGION_NAME,
|
|
DESCRIPTION,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM REGION_MNG
|
|
WHERE OBJID = #{search_regionObjid} OR REGION_NAME = #{search_regionName}
|
|
</select>
|
|
|
|
<!-- 적용사양 등록/수정 -->
|
|
<update id="mergeRegion" parameterType="map">
|
|
MERGE INTO REGION_MNG R USING DUAL on (R.OBJID = #{regionObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET R.REGION_NAME = #{regionName},
|
|
R.DESCRIPTION = #{regionDescription},
|
|
R.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
R.OBJID,
|
|
R.REGION_NAME,
|
|
R.DESCRIPTION,
|
|
R.WRITER,
|
|
R.REGDATE,
|
|
R.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{regionObjid},
|
|
#{regionName},
|
|
#{regionDescription},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- check된 적용사양의 상태전환 -->
|
|
<update id="updateRegionStatus" parameterType="map">
|
|
UPDATE REGION_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{regionObjid}
|
|
</update>
|
|
|
|
<!-- 자재유형 관리 목록 -->
|
|
<select id="getMaterialTypeMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER (ORDER BY REGDATE) RNUM
|
|
FROM(
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, MATERIAL_TYPE_NAME
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = A.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = A.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(A.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(A.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE A.STATUS
|
|
END AS STATUS_STR
|
|
FROM MATERIAL_TYPE_MNG A
|
|
) C WHERE 1=1
|
|
<if test="search_materialTypeName != null and search_materialTypeName != ''">
|
|
AND UPPER(MATERIAL_TYPE_NAME) LIKE UPPER('%${search_materialTypeName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 자재유형의 목록count를 가져온다. -->
|
|
<select id="getMaterialTypeMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, MATERIAL_TYPE_NAME
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = A.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = A.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(A.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(A.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE A.STATUS
|
|
END AS STATUS_STR
|
|
FROM MATERIAL_TYPE_MNG A
|
|
) C WHERE 1=1
|
|
<if test="search_materialTypeName != null and search_materialTypeName != ''">
|
|
AND UPPER(MATERIAL_TYPE_NAME) LIKE UPPER('%${search_materialTypeName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 자재유형 단건 조회 -->
|
|
<select id="getMaterialTypeInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
MATERIAL_TYPE_NAME,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM MATERIAL_TYPE_MNG
|
|
WHERE OBJID = #{search_materialTypeObjid} OR MATERIAL_TYPE_NAME = #{search_materialTypeName}
|
|
</select>
|
|
|
|
<!-- 자재유형 등록/수정 -->
|
|
<update id="mergeMaterialType" parameterType="map">
|
|
MERGE INTO MATERIAL_TYPE_MNG M USING DUAL on (M.OBJID = #{materialTypeObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET M.MATERIAL_TYPE_NAME = #{materialTypeName},
|
|
M.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
M.OBJID,
|
|
M.MATERIAL_TYPE_NAME,
|
|
M.WRITER,
|
|
M.REGDATE,
|
|
M.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{materialTypeObjid},
|
|
#{materialTypeName},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- check된 자재유형의 상태전환 -->
|
|
<update id="updateMaterialTypeStatus" parameterType="map">
|
|
UPDATE MATERIAL_TYPE_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{materialTypeObjid}
|
|
</update>
|
|
|
|
<!-- 설계적용시점 관리 목록 -->
|
|
<select id="getApplyPointMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER (ORDER BY REGDATE DESC) RNUM
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, APPLY_POINT_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = A.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = A.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(A.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(A.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE A.STATUS
|
|
END AS STATUS_STR
|
|
FROM APPLY_POINT_MNG A
|
|
) C WHERE 1=1
|
|
<if test="search_applyPointName != null and search_applyPointName != ''">
|
|
AND UPPER(APPLY_POINT_NAME) LIKE UPPER('%${search_applyPointName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 설계적용시점의 목록count를 가져온다. -->
|
|
<select id="getApplyPointMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, APPLY_POINT_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = A.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = A.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(A.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(A.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE A.STATUS
|
|
END AS STATUS_STR
|
|
FROM APPLY_POINT_MNG A
|
|
) C WHERE 1=1
|
|
<if test="search_applyPointName != null and search_applyPointName != ''">
|
|
AND UPPER(APPLY_POINT_NAME) LIKE UPPER('%${search_applyPointName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
) WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 설계적용시점 단건 조회 -->
|
|
<select id="getApplyPointInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
APPLY_POINT_NAME,
|
|
DESCRIPTION,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM APPLY_POINT_MNG
|
|
WHERE OBJID = #{search_applyPointObjid} OR APPLY_POINT_NAME = #{search_applyPointName}
|
|
</select>
|
|
|
|
<!-- 설계적용시점 등록/수정 -->
|
|
<update id="mergeApplyPoint" parameterType="map">
|
|
MERGE INTO APPLY_POINT_MNG A USING DUAL on (A.OBJID = #{applyPointObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET A.APPLY_POINT_NAME = #{applyPointName},
|
|
A.DESCRIPTION = #{applyPointDescription},
|
|
A.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
A.OBJID,
|
|
A.APPLY_POINT_NAME,
|
|
A.DESCRIPTION,
|
|
A.WRITER,
|
|
A.REGDATE,
|
|
A.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{applyPointObjid},
|
|
#{applyPointName},
|
|
#{applyPointDescription},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- 설계적용시점의 상태전환 -->
|
|
<update id="updateApplyPointStatus" parameterType="map">
|
|
UPDATE APPLY_POINT_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{applyPointObjid}
|
|
</update>
|
|
|
|
<!-- 제품군 관리 목록 -->
|
|
<select id="getProductGroupMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, PRODUCT_GROUP_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = PG.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = PG.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(PG.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(PG.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE PG.STATUS
|
|
END AS STATUS_STR
|
|
FROM PRODUCT_GROUP_MNG PG
|
|
WHERE 1=1
|
|
) C WHERE 1=1
|
|
<if test="search_productGroupName != null and search_productGroupName != ''">
|
|
AND UPPER(PRODUCT_GROUP_NAME) LIKE UPPER('%${search_productGroupName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${search_status}%')
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 제품군의 목록count를 가져온다. -->
|
|
<select id="getProductGroupMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, PRODUCT_GROUP_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = PG.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = PG.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(PG.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(PG.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE PG.STATUS
|
|
END AS STATUS_STR
|
|
FROM PRODUCT_GROUP_MNG PG
|
|
WHERE 1=1
|
|
) C WHERE 1=1
|
|
<if test="search_productGroupName != null and search_productGroupName != ''">
|
|
AND UPPER(PRODUCT_GROUP_NAME) LIKE UPPER('%${search_productGroupName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${search_status}%')
|
|
</if>
|
|
) WHERE 1=1
|
|
) WHERE 1=1
|
|
|
|
</select>
|
|
|
|
<!-- 제품군 관리 목록(페이징X) -->
|
|
<select id="getProductGroupList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT ROWNUM RNUM
|
|
, OBJID
|
|
, PRODUCT_GROUP_NAME
|
|
, DECODE(DESCRIPTION, NULL, '설명없음', DESCRIPTION) DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = PG.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = PG.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(PG.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(PG.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE PG.STATUS
|
|
END AS STATUS_STR
|
|
FROM PRODUCT_GROUP_MNG PG
|
|
)
|
|
WHERE 1=1
|
|
<if test="productGroupName != null and productGroupName != ''">
|
|
AND PRODUCT_GROUP_NAME LIKE '%'||#{productGroupName}||'%'
|
|
</if>
|
|
<if test="writer != null and writer != ''">
|
|
AND DEPT_NAME LIKE '%'||#{writer}||'%'
|
|
</if>
|
|
<if test="fromDate != null and fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="toDate != null and toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="status != null and status != ''">
|
|
AND STATUS = #{status}
|
|
</if>
|
|
ORDER BY REGDATE
|
|
</select>
|
|
|
|
<!-- 제품군 단건 조회 -->
|
|
<select id="getProductGroupInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
PRODUCT_GROUP_NAME,
|
|
DESCRIPTION,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM PRODUCT_GROUP_MNG
|
|
WHERE OBJID = #{search_productGroupObjid} OR PRODUCT_GROUP_NAME = #{search_productGroupName}
|
|
</select>
|
|
|
|
<!-- 제품군 등록/수정 -->
|
|
<update id="mergeProductGroup" parameterType="map">
|
|
MERGE INTO PRODUCT_GROUP_MNG PG USING DUAL on (PG.OBJID = #{productGroupObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET PG.PRODUCT_GROUP_NAME = #{productGroupName},
|
|
PG.DESCRIPTION = #{productGroupDescription},
|
|
PG.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
PG.OBJID,
|
|
PG.PRODUCT_GROUP_NAME,
|
|
PG.DESCRIPTION,
|
|
PG.WRITER,
|
|
PG.REGDATE,
|
|
PG.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{productGroupObjid},
|
|
#{productGroupName},
|
|
#{productGroupDescription},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- 제품군의 상태전환 -->
|
|
<update id="updateProductGroupStatus" parameterType="map">
|
|
UPDATE PRODUCT_GROUP_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{productGroupObjid}
|
|
</update>
|
|
<!-- 제품 관리 목록 -->
|
|
<select id="getProductMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.* , ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = P.PRODUCT_GROUP_OBJID) AS PRODUCT_GROUP_NAME
|
|
, PRODUCT_GROUP_OBJID
|
|
, PRODUCT_CODE
|
|
, PRODUCT_NAME
|
|
, DECODE(PRODUCT_DESC, NULL, '설명없음', PRODUCT_DESC) PRODUCT_DESC
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = P.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = P.WRITER) USER_NAME
|
|
, REGDATE REGDATE_ORG
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(P.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(P.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE P.STATUS
|
|
END AS STATUS_STR
|
|
FROM PRODUCT_MNG P
|
|
) C WHERE 1=1
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PRODUCT_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_productGroupObjid != null and search_productGroupObjid != ''">
|
|
AND PRODUCT_GROUP_OBJID = #{search_productGroupObjid}
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 제품의 목록count를 가져온다. -->
|
|
<select id="getProductMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = P.PRODUCT_GROUP_OBJID) AS PRODUCT_GROUP_NAME
|
|
, PRODUCT_GROUP_OBJID
|
|
, PRODUCT_CODE
|
|
, PRODUCT_NAME
|
|
, DECODE(PRODUCT_DESC, NULL, '설명없음', PRODUCT_DESC) PRODUCT_DESC
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = P.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = P.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(P.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(P.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE P.STATUS
|
|
END AS STATUS_STR
|
|
FROM PRODUCT_MNG P
|
|
) C WHERE 1=1
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PRODUCT_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_productGroupObjid != null and search_productGroupObjid != ''">
|
|
AND PRODUCT_GROUP_OBJID = #{search_productGroupObjid}
|
|
</if>
|
|
)WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 제품 관리 목록(페이징 X) -->
|
|
<select id="selectProductList" parameterType="map" resultType="map">
|
|
SELECT A.*, ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM
|
|
(
|
|
SELECT OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = P.PRODUCT_GROUP_OBJID) AS PRODUCT_GROUP_NAME
|
|
, PRODUCT_GROUP_OBJID
|
|
, PRODUCT_CODE
|
|
, PRODUCT_NAME
|
|
, DECODE(PRODUCT_DESC, NULL, '설명없음', PRODUCT_DESC) PRODUCT_DESC
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = P.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = P.WRITER) USER_NAME
|
|
, REGDATE REGDATE_ORG
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(P.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(P.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE P.STATUS
|
|
END AS STATUS_STR
|
|
FROM PRODUCT_MNG P
|
|
) A WHERE 1=1
|
|
<if test="productName != null and productName != ''">
|
|
AND PRODUCT_NAME LIKE '%'||#{productName}||'%'
|
|
</if>
|
|
<if test="WRITER != null and WRITER != ''">
|
|
AND DEPT_NAME LIKE '%'||#{WRITER}||'%'
|
|
</if>
|
|
<if test="fromDate != null and fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="toDate != null and toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="status != null and status != ''">
|
|
AND STATUS = #{status}
|
|
</if>
|
|
<if test="productGroupObjid != null and productGroupObjid != ''">
|
|
AND PRODUCT_GROUP_OBJID = #{productGroupObjid}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 차종 관리 목록(페이징 X) -->
|
|
<select id="selectCarList" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, (SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = CAR_MNG.OEM_OBJID) AS OEM_CODE
|
|
, (SELECT GRADE_NAME FROM CAR_GRADE_MNG WHERE OBJID = CAR_MNG.GRADE_OBJID) AS GRADE_NAME
|
|
, CAR_CODE
|
|
, MODEL_CODE
|
|
, CAR_NAME
|
|
, DESCRIPTION
|
|
, OEM_OBJID
|
|
FROM CAR_MNG
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
<if test="oemGroupObjid != null and oemGroupObjid != ''">
|
|
AND OEM_OBJID = #{oemGroupObjid}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 제품 단건 조회 -->
|
|
<select id="getProductInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = P.PRODUCT_GROUP_OBJID) AS PRODUCT_GROUP_NAME,
|
|
PRODUCT_GROUP_OBJID,
|
|
PRODUCT_CODE,
|
|
PRODUCT_NAME,
|
|
PRODUCT_DESC,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM PRODUCT_MNG P
|
|
WHERE OBJID = #{search_productObjid} OR PRODUCT_NAME = #{search_productName}
|
|
</select>
|
|
|
|
<!-- 제품 등록/수정 -->
|
|
<update id="mergeProduct" parameterType="map">
|
|
MERGE INTO PRODUCT_MNG P USING DUAL on (P.OBJID = #{productObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET P.PRODUCT_GROUP_OBJID = #{productGroupObjid},
|
|
P.PRODUCT_CODE = #{productCode},
|
|
P.PRODUCT_NAME = #{productName},
|
|
P.PRODUCT_DESC = #{productDescription},
|
|
P.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
P.OBJID,
|
|
P.PRODUCT_GROUP_OBJID,
|
|
P.PRODUCT_CODE,
|
|
P.PRODUCT_NAME,
|
|
P.PRODUCT_DESC,
|
|
P.WRITER,
|
|
P.REGDATE,
|
|
P.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{productObjid},
|
|
#{productGroupObjid},
|
|
#{productCode},
|
|
#{productName},
|
|
#{productDescription},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- 제품의 상태전환 -->
|
|
<update id="updateProductStatus" parameterType="map">
|
|
UPDATE PRODUCT_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{productObjid}
|
|
</update>
|
|
|
|
<!-- 차종 관리 목록 -->
|
|
<select id="getCarMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM(
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM
|
|
FROM(
|
|
SELECT C.*
|
|
FROM
|
|
(
|
|
SELECT OBJID::varchar
|
|
, CAR_CODE
|
|
, MODEL_CODE
|
|
, CAR_NAME
|
|
,CASE WHEN DESCRIPTION = ' ' THEN '설명없음'
|
|
ELSE DESCRIPTION
|
|
END AS DESCRIPTION
|
|
, GRADE_OBJID
|
|
, (SELECT CODE_NAME FROM COMM_CODE WHERE OBJID = C.GRADE_OBJID::integer) GRADE_NAME
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = C.OEM_OBJID) OEM_NAME
|
|
, OEM_OBJID
|
|
, (SELECT CASE WHEN DEPT_NAME IS NULL THEN '정보없음' ELSE DEPT_NAME END FROM USER_INFO WHERE USER_ID = C.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = C.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(C.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(C.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE C.STATUS
|
|
END AS STATUS_STR
|
|
FROM CAR_MNG AS C
|
|
) AS C WHERE 1=1
|
|
<if test="search_oemObjid != null and search_oemObjid != ''">
|
|
AND OEM_OBJID = #{search_oemObjid}::integer
|
|
</if>
|
|
<if test="search_carGradeObjid != null and search_carGradeObjid != ''">
|
|
AND GRADE_OBJID = #{search_carGradeObjid}
|
|
</if>
|
|
<if test="search_carName != null and search_carName != ''">
|
|
AND UPPER(CAR_NAME) LIKE UPPER('%${search_carName}%')
|
|
</if>
|
|
<if test="search_carCode != null and search_carCode != ''">
|
|
AND UPPER(CAR_CODE) LIKE UPPER('%${search_carCode}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) AS C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) AS T WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 차종의 목록count를 가져온다. -->
|
|
<select id="getCarMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE
|
|
,TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::float TOTAL_CNT
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID::varchar
|
|
, CAR_CODE
|
|
, MODEL_CODE
|
|
, CAR_NAME
|
|
,CASE WHEN DESCRIPTION = ' ' THEN '설명없음'
|
|
ELSE DESCRIPTION
|
|
END AS DESCRIPTION
|
|
, GRADE_OBJID
|
|
, (SELECT CODE_NAME FROM COMM_CODE WHERE OBJID = C.GRADE_OBJID::integer) GRADE_NAME
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = C.OEM_OBJID) OEM_NAME
|
|
, OEM_OBJID
|
|
, (SELECT CASE WHEN DEPT_NAME IS NULL THEN '정보없음' ELSE DEPT_NAME END FROM USER_INFO WHERE USER_ID = C.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = C.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(C.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(C.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE C.STATUS
|
|
END AS STATUS_STR
|
|
FROM CAR_MNG AS C
|
|
WHERE 1=1
|
|
) AS C WHERE 1=1
|
|
<if test="search_oemObjid != null and search_oemObjid != ''">
|
|
AND OEM_OBJID = #{search_oemObjid}::integer
|
|
</if>
|
|
<if test="search_carGradeObjid != null and search_carGradeObjid != ''">
|
|
AND GRADE_OBJID = #{search_carGradeObjid}
|
|
</if>
|
|
<if test="search_carName != null and search_carName != ''">
|
|
AND UPPER(CAR_NAME) LIKE UPPER('%${search_carName}%')
|
|
</if>
|
|
<if test="search_carCode != null and search_carCode != ''">
|
|
AND UPPER(CAR_CODE) LIKE UPPER('%${search_carCode}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) AS T
|
|
) AS T1
|
|
</select>
|
|
|
|
<!-- 차종 단건 조회 -->
|
|
<select id="getCarInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID::varchar,
|
|
CAR_CODE,
|
|
MODEL_CODE,
|
|
CAR_NAME,
|
|
DESCRIPTION,
|
|
GRADE_OBJID,
|
|
OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = C.OEM_OBJID) OEM_NAME,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM CAR_MNG C
|
|
WHERE 1=1
|
|
<if test=" search_carObjid != null and search_carObjid != '' ">
|
|
AND OBJID = #{search_carObjid}::integer
|
|
</if>
|
|
<if test=" search_carName != null and search_carName != '' ">
|
|
AND CAR_NAME = #{search_carName}
|
|
</if>
|
|
<if test=" search_carCode != null and search_carCode != '' ">
|
|
AND CAR_CODE = #{search_carCode}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 중복차종 정보 조회 -->
|
|
<select id="getDuplicateCarInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID::varchar,
|
|
CAR_CODE,
|
|
MODEL_CODE,
|
|
CAR_NAME,
|
|
DESCRIPTION,
|
|
GRADE_OBJID,
|
|
OEM_OBJID::varchar,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = C.OEM_OBJID) OEM_NAME,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM CAR_MNG C
|
|
WHERE 1=1
|
|
<if test=" search_carObjid != null and search_carObjid != '' ">
|
|
AND OBJID IN (#{search_carObjid}::integer)
|
|
</if>
|
|
<if test=" search_carName != null and search_carName != '' ">
|
|
AND CAR_NAME = #{search_carName}
|
|
</if>
|
|
<if test=" search_modelCode != null and search_modelCode != '' ">
|
|
AND MODEL_CODE = #{search_modelCode}
|
|
</if>
|
|
<if test=" search_carCode != null and search_carCode != '' ">
|
|
AND CAR_CODE = #{search_carCode}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 차종 등록/수정 -->
|
|
<update id="mergeCar" parameterType="map">
|
|
INSERT INTO
|
|
CAR_MNG
|
|
(
|
|
OBJID,
|
|
CAR_CODE,
|
|
MODEL_CODE,
|
|
CAR_NAME,
|
|
DESCRIPTION,
|
|
GRADE_OBJID,
|
|
OEM_OBJID,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS
|
|
)
|
|
VALUES (
|
|
#{carObjid}::integer,
|
|
#{carCode},
|
|
#{modelCode},
|
|
#{carName},
|
|
#{carDescription},
|
|
#{carGradeObjid}::integer,
|
|
#{oemObjid}::integer,
|
|
#{writer},
|
|
now(),
|
|
#{carStatus}
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET CAR_NAME = #{carName},
|
|
CAR_CODE = #{carCode},
|
|
MODEL_CODE = #{modelCode},
|
|
DESCRIPTION = #{carDescription},
|
|
GRADE_OBJID = #{carGradeObjid},
|
|
OEM_OBJID = #{oemObjid}::integer,
|
|
STATUS = #{carStatus}
|
|
|
|
</update>
|
|
|
|
|
|
<update id="mergeCarTFTLeader" parameterType="map">
|
|
with upsert as (
|
|
UPDATE
|
|
CAR_DISTRIBUTE_MEMBER
|
|
SET
|
|
IS_TFT_LEADER = 0
|
|
where
|
|
CAR_OBJID = #{carObjId}::numeric AND MEMBER_USER_ID = #{targetUserId}
|
|
)
|
|
|
|
INSERT INTO CAR_DISTRIBUTE_MEMBER(
|
|
OBJID,
|
|
CAR_OBJID,
|
|
MEMBER_USER_ID,
|
|
REGDATE,
|
|
STATUS,
|
|
IS_TFT_LEADER,
|
|
IS_PROJ_LEADER
|
|
)
|
|
select
|
|
#{objId}::numeric,
|
|
#{carObjId}::numeric,
|
|
#{targetUserId},
|
|
now(),
|
|
'active',
|
|
0,
|
|
1
|
|
|
|
|
|
where not exists (
|
|
select
|
|
*
|
|
from CAR_DISTRIBUTE_MEMBER
|
|
where CAR_OBJID = #{carObjId}::numeric AND MEMBER_USER_ID = #{targetUserId}
|
|
)
|
|
</update>
|
|
|
|
<!-- 차종의 TFT장/PL 정보를 초기화 한다. -->
|
|
<update id="resetCarMemberLeader" parameterType="map">
|
|
UPDATE CAR_DISTRIBUTE_MEMBER SET IS_TFT_LEADER = 1, IS_PROJ_LEADER = 1 WHERE CAR_OBJID = #{carObjId}::integer
|
|
</update>
|
|
|
|
<!-- 차종의 TFT장을 지정한다. -->
|
|
<update id="updateCarTFTLeader" parameterType="map">
|
|
UPDATE CAR_DISTRIBUTE_MEMBER SET IS_TFT_LEADER = 0 WHERE CAR_OBJID = #{carObjId} AND MEMBER_USER_ID = #{targetUserId}
|
|
</update>
|
|
|
|
<!-- 차종의 PL을 지정한다. -->
|
|
<update id="updateCarProjectLeader" parameterType="map">
|
|
UPDATE CAR_DISTRIBUTE_MEMBER SET IS_PROJ_LEADER = 0 WHERE CAR_OBJID = #{carObjId} AND MEMBER_USER_ID = #{targetUserId}
|
|
</update>
|
|
|
|
<!-- 차종의 상태전환 -->
|
|
<update id="updateCarStatus" parameterType="map">
|
|
UPDATE CAR_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{carObjid}
|
|
</update>
|
|
<!-- Grade 관리 목록 -->
|
|
<select id="getCarGradeMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, GRADE_CODE
|
|
, GRADE_NAME
|
|
, DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = CG.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = CG.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(CG.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(CG.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE CG.STATUS
|
|
END AS STATUS_STR
|
|
FROM CAR_GRADE_MNG CG
|
|
) C WHERE 1=1
|
|
<if test="search_carGradeName != null and search_carGradeName != ''">
|
|
AND UPPER(GRADE_NAME) LIKE UPPER('%${search_carGradeName}%')
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${search_status}%')
|
|
</if>
|
|
)C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- Grade의 목록count를 가져온다. -->
|
|
<select id="getCarGradeMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, GRADE_CODE
|
|
, GRADE_NAME
|
|
, DESCRIPTION
|
|
, (SELECT DECODE(DEPT_NAME, NULL, '정보없음', DEPT_NAME) FROM USER_INFO WHERE USER_ID = CG.WRITER) DEPT_NAME
|
|
, (SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = CG.WRITER) USER_NAME
|
|
, TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(CG.STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(CG.STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE CG.STATUS
|
|
END AS STATUS_STR
|
|
FROM CAR_GRADE_MNG CG
|
|
) C WHERE 1=1
|
|
<if test="search_carGradeName != null and search_carGradeName != ''">
|
|
AND GRADE_NAME LIKE '%'||#{search_carGradeName}||'%'
|
|
</if>
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND USER_NAME LIKE '%'||#{search_writer}||'%'
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
) WHERE 1=1
|
|
) WHERE 1=1
|
|
|
|
</select>
|
|
|
|
<!-- Grade 단건 조회 -->
|
|
<select id="getCarGradeInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
GRADE_CODE,
|
|
GRADE_NAME,
|
|
DESCRIPTION,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM CAR_GRADE_MNG
|
|
WHERE OBJID = #{search_carGradeObjid} OR GRADE_NAME = #{search_carGradeName}
|
|
</select>
|
|
|
|
<!-- Grade 조회 -->
|
|
<select id="getCarGradeList" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
GRADE_CODE,
|
|
GRADE_NAME,
|
|
DESCRIPTION,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
STATUS
|
|
FROM CAR_GRADE_MNG
|
|
WHERE status = #{status}
|
|
<if test=" gradeObjid != '' and gradeObjid != null ">
|
|
AND OBJID = #{gradeObjid}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- Grade 등록/수정 -->
|
|
<update id="mergeCarGrade" parameterType="map">
|
|
MERGE INTO CAR_GRADE_MNG CG USING DUAL on (CG.OBJID = #{carGradeObjid})
|
|
WHEN MATCHED THEN
|
|
|
|
UPDATE
|
|
SET CG.GRADE_CODE = #{carGradeCode},
|
|
CG.GRADE_NAME = #{carGradeName},
|
|
CG.DESCRIPTION = #{carGradeDescription},
|
|
CG.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
CG.OBJID,
|
|
CG.GRADE_CODE,
|
|
CG.GRADE_NAME,
|
|
CG.DESCRIPTION,
|
|
CG.WRITER,
|
|
CG.REGDATE,
|
|
CG.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{carGradeObjid},
|
|
#{carGradeCode},
|
|
#{carGradeName},
|
|
#{carGradeDescription},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- Grade의 상태전환 -->
|
|
<update id="updateCarGradeStatus" parameterType="map">
|
|
UPDATE CAR_GRADE_MNG
|
|
SET STATUS = #{actionType}
|
|
WHERE OBJID = #{carGradeObjid}
|
|
</update>
|
|
|
|
<!-- 고객사 마일스톤 단건 조회 -->
|
|
<select id="getOemMilestoneInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
SEQ,
|
|
OEM_OBJID,
|
|
MILESTONE_NAME,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS
|
|
FROM OEM_MILESTONE_MNG
|
|
WHERE OBJID =#{search_oemMileObjid}
|
|
</select>
|
|
|
|
<!-- 차종 마일스톤 등록/수정 -->
|
|
<update id="mergeCarMilestone" parameterType="map">
|
|
INSERT INTO
|
|
CAR_MILESTONE_MNG
|
|
(
|
|
OBJID,
|
|
CAR_OBJID,
|
|
MILESTONE_OBJID,
|
|
MILESTONE_DATE,
|
|
WRITER,
|
|
REGDATE
|
|
)
|
|
VALUES (
|
|
#{carMileObjId}::integer,
|
|
#{carObjId}::integer,
|
|
#{oemMileObjId}::integer,
|
|
#{carMileDate},
|
|
#{writer},
|
|
now()
|
|
) ON
|
|
CONFLICT (MILESTONE_OBJID,CAR_OBJID) DO
|
|
UPDATE
|
|
SET MILESTONE_DATE=#{carMileDate}
|
|
</update>
|
|
|
|
|
|
<!-- 차종 마일스톤 목록 조회 -->
|
|
<select id="getCarMilestoneMngList" parameterType="map" resultType="map">
|
|
SELECT OBJID::varchar,
|
|
CAR_OBJID::varchar,
|
|
(SELECT SEQ FROM OEM_MILESTONE_MNG WHERE OBJID = CM.MILESTONE_OBJID) SEQ,
|
|
(SELECT MILESTONE_NAME FROM OEM_MILESTONE_MNG WHERE OBJID = CM.MILESTONE_OBJID) AS MILESTONE_NAME,
|
|
TO_CHAR(TO_DATE(MILESTONE_DATE,'YYYY-MM-DD'),'YYYY-MM-DD') AS MILESTONE_DATE,
|
|
(SELECT CASE WHEN DEPT_NAME IS NULL THEN '정보없음' ELSE DEPT_NAME END FROM USER_INFO WHERE USER_ID = CM.WRITER) DEPT_NAME,
|
|
(SELECT CASE WHEN USER_NAME IS NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = CM.WRITER) USER_NAME,
|
|
REGDATE
|
|
FROM CAR_MILESTONE_MNG CM
|
|
WHERE CAR_OBJID = #{search_carObjid}::integer
|
|
ORDER BY SEQ
|
|
</select>
|
|
|
|
<!-- //로그인 로그 테이블 갯수 -->
|
|
<select id="selectLoginLogCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM (
|
|
SELECT
|
|
TO_CHAR(A.LOG_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LOG_TIME
|
|
, LOG_TIME AS LOG_TIME_ORG
|
|
, A.SYSTEM_NAME
|
|
, UPPER(A.USER_ID) AS USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE UPPER(USER_ID) = UPPER(A.USER_ID)) AS DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE UPPER(USER_ID) = UPPER(A.USER_ID)) AS USER_NAME
|
|
, CASE LOGIN_RESULT::integer
|
|
when 1 then '성공'
|
|
when 0 then '실패'
|
|
else LOGIN_RESULT
|
|
end LOGIN_RESULT
|
|
, ERROR_MESSAGE
|
|
, REMOTE_ADDR
|
|
FROM LOGIN_ACCESS_LOG A
|
|
WHERE 1=1
|
|
AND SYSTEM_NAME = #{systemName}
|
|
) A
|
|
WHERE 1=1
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and !''.equals(search_userName)">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND to_char(LOG_TIME_ORG, 'YYYY-MM-DD')::date <![CDATA[ >= ]]> to_char(to_timestamp(#{search_fromDate},'YYYY-MM-DD'), 'YYYY-MM-DD')::date
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND to_char(LOG_TIME_ORG, 'YYYY-MM-DD')::date <![CDATA[ <= ]]> to_char(to_timestamp(#{search_toDate},'YYYY-MM-DD'), 'YYYY-MM-DD')::date
|
|
</if>
|
|
) A
|
|
</select>
|
|
<!-- //로그인 로그 목록 조회 -->
|
|
<select id="selectLoginLogList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT A.*
|
|
FROM
|
|
(
|
|
</if>
|
|
SELECT ROW_NUMBER() OVER(ORDER BY LOG_TIME_ORG DESC) AS RNUM, AA.*
|
|
FROM (
|
|
SELECT TO_CHAR(A.LOG_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LOG_TIME
|
|
, LOG_TIME AS LOG_TIME_ORG
|
|
, A.SYSTEM_NAME
|
|
, UPPER(A.USER_ID) AS USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE UPPER(USER_ID) = UPPER(A.USER_ID)) AS DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE UPPER(USER_ID) = UPPER(A.USER_ID)) AS USER_NAME
|
|
, case LOGIN_RESULT
|
|
WHEN 'true' THEN '성공'
|
|
WHEN 'false' THEN '실패'
|
|
else CAST(LOGIN_RESULT AS varchar)
|
|
END LOGIN_RESULT
|
|
, ERROR_MESSAGE
|
|
, REMOTE_ADDR
|
|
FROM LOGIN_ACCESS_LOG A
|
|
WHERE 1=1
|
|
AND SYSTEM_NAME = #{systemName}
|
|
) AA
|
|
WHERE 1=1
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and !''.equals(search_userName)">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND to_char(LOG_TIME_ORG, 'YYYY-MM-DD')::date <![CDATA[ >= ]]> to_char(to_timestamp(#{search_fromDate},'YYYY-MM-DD'), 'YYYY-MM-DD')::date
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND to_char(LOG_TIME_ORG, 'YYYY-MM-DD')::date <![CDATA[ <= ]]> to_char(to_timestamp(#{search_toDate},'YYYY-MM-DD'), 'YYYY-MM-DD')::date
|
|
</if>
|
|
<if test="'excel' != actionType">
|
|
) A
|
|
WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //파일 다운로드 로그 테이블 갯수 -->
|
|
<select id="selectFileDownloadLogCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, (SELECT DOC_TYPE FROM ATTACH_FILE_INFO S WHERE S.OBJID = A.FILE_OBJID) AS DOC_TYPE
|
|
, (SELECT DOC_TYPE_NAME FROM ATTACH_FILE_INFO S WHERE S.OBJID = A.FILE_OBJID) AS DOC_TYPE_NAME
|
|
, (SELECT REAL_FILE_NAME FROM ATTACH_FILE_INFO S WHERE S.OBJID = A.FILE_OBJID) AS REAL_FILE_NAME
|
|
, A.USER_ID
|
|
, (SELECT USER_NAME FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS USER_NAME
|
|
, (SELECT USER_NAME_ENG FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS USER_NAME_ENG
|
|
, (SELECT USER_NAME_CN FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS USER_NAME_CN
|
|
, (SELECT DEPT_NAME FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS DEPT_NAME
|
|
, (SELECT POSITION_NAME FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS POSITION_NAME
|
|
, TO_CHAR(A.LOG_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LOG_TIME
|
|
, A.LOG_TIME LOG_TIME_ORG
|
|
, CASE WHEN A.REMOTE_ADDR = '0:0:0:0:0:0:0:1' THEN 'Local' ELSE A.REMOTE_ADDR END AS REMOTE_ADDR
|
|
FROM FILE_DOWN_LOG A
|
|
WHERE 1=1
|
|
AND SYSTEM_NAME = #{systemName}
|
|
) A
|
|
WHERE 1=1
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and !''.equals(search_userName)">
|
|
AND UPPER(USEr_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND to_char(LOG_TIME_ORG, 'YYYY-MM-DD')::date <![CDATA[ >= ]]> to_char(to_timestamp(#{search_fromDate},'YYYY-MM-DD'), 'YYYY-MM-DD')::date
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND to_char(LOG_TIME_ORG, 'YYYY-MM-DD')::date <![CDATA[ <= ]]> to_char(to_timestamp(#{search_toDate},'YYYY-MM-DD'), 'YYYY-MM-DD')::date
|
|
</if>
|
|
) A
|
|
</select>
|
|
<!-- //파일 다운로드 로그 목록 조회 -->
|
|
<select id="selectFileDownloadLogList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
</if>
|
|
SELECT ROW_NUMBER() OVER(ORDER BY LOG_TIME_ORG DESC) AS RNUM, AA.*
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, (SELECT DOC_TYPE FROM ATTACH_FILE_INFO S WHERE S.OBJID = A.FILE_OBJID) AS DOC_TYPE
|
|
, (SELECT DOC_TYPE_NAME FROM ATTACH_FILE_INFO S WHERE S.OBJID = A.FILE_OBJID) AS DOC_TYPE_NAME
|
|
, (SELECT REAL_FILE_NAME FROM ATTACH_FILE_INFO S WHERE S.OBJID = A.FILE_OBJID) AS REAL_FILE_NAME
|
|
, A.USER_ID
|
|
, (SELECT USER_NAME FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS USER_NAME
|
|
, (SELECT USER_NAME_ENG FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS USER_NAME_ENG
|
|
, (SELECT USER_NAME_CN FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS USER_NAME_CN
|
|
, (SELECT DEPT_NAME FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS DEPT_NAME
|
|
, (SELECT POSITION_NAME FROM USER_INFO S WHERE S.USER_ID = A.USER_ID) AS POSITION_NAME
|
|
, TO_CHAR(A.LOG_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LOG_TIME
|
|
, TO_CHAR(A.LOG_TIME, 'YYYY-MM-DD') AS LOG_DATE
|
|
, A.LOG_TIME LOG_TIME_ORG
|
|
, CASE WHEN A.REMOTE_ADDR = '0:0:0:0:0:0:0:1' THEN 'Local' ELSE A.REMOTE_ADDR END AS REMOTE_ADDR
|
|
FROM FILE_DOWN_LOG A
|
|
WHERE 1=1
|
|
AND SYSTEM_NAME = #{systemName}
|
|
) AA
|
|
WHERE 1=1
|
|
<if test="search_realFileName != null and !''.equals(search_realFileName)">
|
|
AND UPPER(REAL_FILE_NAME) LIKE UPPER('%${search_realFileName}%')
|
|
</if>
|
|
<if test="search_userName != null and !''.equals(search_userName)">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND to_char(LOG_TIME_ORG, 'YYYY-MM-DD')::date <![CDATA[ >= ]]> to_char(to_timestamp(#{search_fromDate},'YYYY-MM-DD'), 'YYYY-MM-DD')::date
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND to_char(LOG_TIME_ORG, 'YYYY-MM-DD')::date <![CDATA[ <= ]]> to_char(to_timestamp(#{search_toDate},'YYYY-MM-DD'), 'YYYY-MM-DD')::date
|
|
</if>
|
|
<if test="'excel' != actionType">
|
|
)
|
|
WHERE 1=1
|
|
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //메일발송 로그 테이블 갯수 -->
|
|
<select id="selectMailLogCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT
|
|
COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT TO_CHAR(A.LOG_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LOG_TIME
|
|
, A.OBJID
|
|
, LOG_TIME AS LOG_TIME_ORG
|
|
, A.SYSTEM_NAME
|
|
, A.SEND_USER_ID
|
|
, A.RECEPTION_USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.SEND_USER_ID) AS SENDER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.SEND_USER_ID) AS SENDER_USER_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RECEPTION_USER_ID) AS RECEIVER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RECEPTION_USER_ID) AS RECEIVER_USER_NAME
|
|
, A.TITLE
|
|
FROM MAIL_LOG A
|
|
WHERE 1=1
|
|
AND SYSTEM_NAME = #{systemName}
|
|
)
|
|
WHERE 1=1
|
|
<if test="search_senderName != null and !''.equals(search_senderName)">
|
|
AND UPPER(SENDER_USER_NAME) LIKE UPPER('%${search_senderName}%')
|
|
</if>
|
|
<if test="search_receiverName != null and !''.equals(search_receiverName)">
|
|
AND UPPER(RECEIVER_USER_NAME) LIKE UPPER('%${search_receiverName}%')
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND LOG_TIME_ORG <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND LOG_TIME_ORG <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
)
|
|
</select>
|
|
<!-- //메일발송 로그 목록 조회 -->
|
|
<select id="selectMailLogList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
</if>
|
|
SELECT ROW_NUMBER() OVER(ORDER BY LOG_TIME_ORG DESC) AS RNUM, AA.*
|
|
FROM (
|
|
SELECT TO_CHAR(A.LOG_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LOG_TIME
|
|
, A.OBJID
|
|
, LOG_TIME AS LOG_TIME_ORG
|
|
, A.SYSTEM_NAME
|
|
, A.SEND_USER_ID
|
|
, A.RECEPTION_USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.SEND_USER_ID) AS SENDER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.SEND_USER_ID) AS SENDER_USER_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RECEPTION_USER_ID) AS RECEIVER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RECEPTION_USER_ID) AS RECEIVER_USER_NAME
|
|
, A.TITLE
|
|
FROM MAIL_LOG A
|
|
WHERE 1=1
|
|
AND SYSTEM_NAME = #{systemName}
|
|
) AA
|
|
WHERE 1=1
|
|
<if test="search_senderName != null and !''.equals(search_senderName)">
|
|
AND UPPER(SENDER_USER_NAME) LIKE UPPER('%${search_senderName}%')
|
|
</if>
|
|
<if test="search_receiverName != null and !''.equals(search_receiverName)">
|
|
AND UPPER(RECEIVER_USER_NAME) LIKE UPPER('%${search_receiverName}%')
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND LOG_TIME_ORG <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND LOG_TIME_ORG <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="'excel' != actionType">
|
|
)
|
|
WHERE 1=1
|
|
AND <![CDATA[ RNUM <= #{PAGE_END} ]]>
|
|
AND <![CDATA[ RNUM >= #{PAGE_START}]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 메일에 발송된 내용을 가져온다. -->
|
|
<select id="selectMailSendContents" parameterType="map" resultType="map">
|
|
SELECT TO_CHAR(A.LOG_TIME, 'YYYY-MM-DD HH24:MI:SS') AS LOG_TIME
|
|
, A.OBJID
|
|
, LOG_TIME AS LOG_TIME_ORG
|
|
, A.SYSTEM_NAME
|
|
, A.SEND_USER_ID
|
|
, A.RECEPTION_USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.SEND_USER_ID) AS SENDER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.SEND_USER_ID) AS SENDER_USER_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.RECEPTION_USER_ID) AS RECEIVER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.RECEPTION_USER_ID) AS RECEIVER_USER_NAME
|
|
, A.TITLE
|
|
, A.CONTENTS
|
|
FROM MAIL_LOG A
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
|
|
<!-- 차량 마일스톤 리스트를 삭제 -->
|
|
<delete id="deleteCarMilestoneList" parameterType="map">
|
|
DELETE FROM CAR_MILESTONE_MNG WHERE CAR_OBJID = #{search_carObjid}
|
|
</delete>
|
|
|
|
<!-- 고객사에 따른 차종의 목록을 가져온다. -->
|
|
<select id="getOEMsCarList" parameterType="map" resultType="map">
|
|
SELECT OBJID,
|
|
CAR_CODE,
|
|
MODEL_CODE,
|
|
CAR_NAME,
|
|
DESCRIPTION,
|
|
GRADE_OBJID,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
OEM_OBJID
|
|
FROM CAR_MNG
|
|
WHERE 1=1
|
|
<if test=" oemObjId != '' and oemObjId != null and oemObjId != 'All' ">
|
|
AND OEM_OBJID = #{oemObjId}
|
|
</if>
|
|
<if test=" status != '' and status != null ">
|
|
AND STATUS = #{status}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 배포처를 등록할 인원을 가져온다. -->
|
|
<select id="getUserInfo" parameterType="map" resultType="map">
|
|
SELECT SABUN,
|
|
USER_ID,
|
|
USER_PASSWORD,
|
|
USER_NAME,
|
|
USER_NAME_ENG,
|
|
USER_NAME_CN,
|
|
DEPT_CODE,
|
|
DEPT_NAME,
|
|
TEL,
|
|
CELL_PHONE,
|
|
USER_TYPE,
|
|
USER_TYPE_NAME,
|
|
REGDATE
|
|
FROM USER_INFO
|
|
WHERE 1=1
|
|
<if test=" search_sabun != '' and search_sabun != null ">
|
|
AND USER_ID LIKE '%${search_sabun}%'
|
|
</if>
|
|
<if test=" search_name != '' and search_name != null ">
|
|
AND USER_NAME LIKE '%${search_name}%'
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 배포처를 등록/수정한다. -->
|
|
<update id="mergeDistribution" parameterType="map">
|
|
INSERT INTO
|
|
CAR_DISTRIBUTE_MEMBER
|
|
(
|
|
OBJID,
|
|
CAR_OBJID,
|
|
MEMBER_USER_ID,
|
|
REGDATE,
|
|
STATUS
|
|
)
|
|
VALUES (
|
|
#{carDistributeObjid}::integer,
|
|
#{carObjid}::integer,
|
|
#{userId},
|
|
now(),
|
|
#{status}
|
|
) ON
|
|
CONFLICT (CAR_OBJID,MEMBER_USER_ID) DO
|
|
UPDATE
|
|
SET STATUS=#{status}
|
|
,REGDATE=now()
|
|
</update>
|
|
|
|
<!-- 배포처에서 인원을 삭제한다. -->
|
|
<delete id="deleteDistributeMember" parameterType="map">
|
|
DELETE CAR_DISTRIBUTE_MEMBER WHERE CAR_OBJID = #{carObjid} AND MEMBER_USER_ID = #{userId}
|
|
</delete>
|
|
|
|
<!-- 등록한 배포처 목록을 가져온다. -->
|
|
<select id="getCarDistributeMngList" parameterType="map" resultType="map">
|
|
SELECT OBJID::varchar,
|
|
CAR_OBJID::varchar,
|
|
MEMBER_SABUN,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS DEPT_NAME,
|
|
(SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS DEPT_CODE,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS USER_NAME,
|
|
(SELECT POSITION_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS POSITION_NAME,
|
|
(SELECT EMAIL FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS EMAIL,
|
|
(SELECT USER_TYPE_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS USER_TYPE_NAME,
|
|
MEMBER_USER_ID,
|
|
REGDATE,
|
|
STATUS,
|
|
CASE WHEN STATUS='create' THEN '작성중' ELSE '배포완료' END AS STATUS_TITLE,
|
|
IS_TFT_LEADER::varchar,
|
|
IS_PROJ_LEADER::varchar
|
|
FROM CAR_DISTRIBUTE_MEMBER CDM
|
|
WHERE CAR_OBJID = #{search_carObjid}::integer
|
|
|
|
</select>
|
|
|
|
<!-- 배포처를 삭제한다. -->
|
|
<delete id="deleteCarDistribute" parameterType="map">
|
|
DELETE FROM CAR_DISTRIBUTE_MEMBER WHERE CAR_OBJID = #{search_carObjid}
|
|
</delete>
|
|
|
|
<!-- //oem code, name 중복체크 -->
|
|
<select id="selectSameOEMCodeAndNameCnt" parameterType="map" resultType="map">
|
|
SELECT (SELECT COUNT(*) FROM OEM_MNG WHERE OEM_CODE = #{oemCode} AND OBJID != #{objId}) AS SAME_OEM_CODE_CNT
|
|
, (SELECT COUNT(*) FROM OEM_MNG WHERE OEM_NAME = #{oemName} AND OBJID != #{objId}) AS SAME_OEM_NAME_CNT
|
|
FROM DUAL
|
|
</select>
|
|
|
|
<!-- //milestone 삭제 -->
|
|
<delete id="deleteOEMMilestoneInfo" parameterType="map">
|
|
DELETE FROM OEM_MILESTONE_MNG WHERE OBJID = ${targetObjId}
|
|
</delete>
|
|
|
|
<!-- 공급업체별 지정된 담당자의 정보를 가져온다. -->
|
|
<select id="getSupplyChargerList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM,
|
|
OBJID,
|
|
CHARGER_TYPE,
|
|
SUPPLY_OBJID,
|
|
CHARGER_NAME,
|
|
PHONE,
|
|
TEL,
|
|
FAX,
|
|
EMAIL,
|
|
WRITER,
|
|
REGDATE,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
|
|
FROM
|
|
SUPPLY_CHARGER_MNG
|
|
where SUPPLY_OBJID = #{supply_objid}
|
|
</select>
|
|
|
|
<!-- //신규 milestone 등록 -->
|
|
<insert id="addNewOEMMilestoneInfo" parameterType="map">
|
|
INSERT INTO OEM_MILESTONE_MNG(OBJID, SEQ, OEM_OBJID, MILESTONE_NAME, WRITER, REGDATE, STATUS) VALUES (
|
|
${objId}::integer
|
|
, #{mSeq}
|
|
, #{oemObjid}::integer
|
|
, #{mName}
|
|
, #{writer}
|
|
, now()
|
|
, #{mStatus}
|
|
)
|
|
</insert>
|
|
|
|
<!-- //milestone 수정 -->
|
|
<update id="modifyOEMMilestoneInfo" parameterType="map">
|
|
UPDATE OEM_MILESTONE_MNG SET SEQ = #{mSeq}, MILESTONE_NAME = #{mName}, STATUS = #{mStatus} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- 검사명 관리 목록 -->
|
|
<select id="getTestTypeList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER (ORDER BY REGDATE DESC) RNUM
|
|
FROM (
|
|
SELECT OBJID
|
|
, TEST_TYPE_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM TEST_TYPE_MNG
|
|
WHERE 1=1
|
|
<if test="search_testTypeName != null and search_testTypeName != ''">
|
|
AND UPPER(TEST_TYPE_NAME) LIKE UPPER('%${search_testTypeName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 검사명 관리 목록 갯수 -->
|
|
<select id="getTestTypeListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT OBJID
|
|
, TEST_TYPE_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM TEST_TYPE_MNG
|
|
WHERE 1=1
|
|
<if test="search_testTypeName != null and search_testTypeName != ''">
|
|
AND UPPER(TEST_TYPE_NAME) LIKE UPPER('%${search_testTypeName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
) WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //검사명 상세(Form, Detail) -->
|
|
<select id="getTestTypeInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, TEST_TYPE_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM TEST_TYPE_MNG
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- //검사명 중복체크 -->
|
|
<select id="checkDuplicateTestTypeName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM TEST_TYPE_MNG
|
|
WHERE 1=1
|
|
AND TEST_TYPE_NAME = #{testTypeName}
|
|
</select>
|
|
|
|
<!-- //검사명 저장 -->
|
|
<update id="saveTestTypeInfo" parameterType="map">
|
|
MERGE INTO TEST_TYPE_MNG T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.TEST_TYPE_NAME = #{testTypeName},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.TEST_TYPE_NAME,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{testTypeName},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- //검사명 상태 수정 -->
|
|
<update id="changeTestTypeStatus" parameterType="map">
|
|
UPDATE TEST_TYPE_MNG SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- //부서 상태 수정 -->
|
|
<update id="changeDeptStatus" parameterType="map">
|
|
UPDATE DEPT_INFO SET STATUS = #{status}
|
|
WHERE DEPT_CODE = #{dept_code}
|
|
</update>
|
|
|
|
<insert id="saveDeptHistoryInfo" parameterType="map">
|
|
INSERT INTO DEPT_INFO_HISTORY
|
|
(
|
|
DEPT_CODE,
|
|
OLD_DATA,
|
|
NEW_DATA,
|
|
REG_DATE
|
|
) VALUES (
|
|
#{dept_code},
|
|
(SELECT STATUS FROM DEPT_INFO WHERE DEPT_CODE = #{dept_code}),
|
|
#{status},
|
|
now()
|
|
)
|
|
</insert>
|
|
|
|
<!-- //부서 목록 조회 -->
|
|
<select id="getEtcDeptList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT A.*, ROW_NUMBER() OVER (ORDER BY DEPT_CODE ASC) RNUM
|
|
FROM (
|
|
SELECT DEPT_CODE
|
|
, PARENT_DEPT_CODE
|
|
, COMPANY_NAME
|
|
, DEPT_NAME
|
|
, MASTER_SABUN
|
|
, MASTER_USER_ID
|
|
, LOCATION
|
|
, LOCATION_NAME
|
|
, REGDATE REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, DATA_TYPE
|
|
, STATUS
|
|
FROM DEPT_INFO
|
|
WHERE 1=1
|
|
<!-- ETC 숨김 -->
|
|
<!-- AND DATA_TYPE = 'etc' -->
|
|
<if test="search_locationName != null and !''.equals(search_locationName)">
|
|
AND UPPER(LOCATION_NAME) LIKE UPPER('%${search_locationName}%')
|
|
</if>
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
) A
|
|
WHERE 1=1
|
|
) A
|
|
WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<!-- //부서 목록 COUNT -->
|
|
<select id="getEtcDeptListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM DEPT_INFO
|
|
WHERE 1=1
|
|
<!-- etc 숨김 -->
|
|
<!-- AND DATA_TYPE = 'etc' -->
|
|
<!-- <if test="search_locationName != null and !''.equals(search_locationName)">
|
|
AND UPPER(LOCATION_NAME) LIKE UPPER('%${search_locationName}%')
|
|
</if> -->
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
) A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<select id="getEtcDeptInfo" parameterType="map" resultType="map">
|
|
SELECT DEPT_CODE
|
|
, DEPT_NAME
|
|
, COMPANY_NAME
|
|
, LOCATION_NAME
|
|
, STATUS
|
|
FROM DEPT_INFO
|
|
WHERE 1=1
|
|
AND DEPT_CODE = #{deptCode}
|
|
</select>
|
|
|
|
<!-- //부서코드 중복체크 -->
|
|
<select id="checkDuplicateEtcDeptCode" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM DEPT_INFO
|
|
WHERE 1=1
|
|
AND UPPER(DEPT_CODE) = UPPER(#{deptCode})
|
|
</select>
|
|
|
|
<!-- //기타부서 저장 -->
|
|
<update id="saveEtcDeptInfo" parameterType="map">
|
|
INSERT INTO DEPT_INFO
|
|
(
|
|
DEPT_CODE,
|
|
DEPT_NAME,
|
|
COMPANY_NAME,
|
|
LOCATION_NAME,
|
|
DATA_TYPE,
|
|
REGDATE,
|
|
STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{deptCode},
|
|
#{deptName},
|
|
#{companyName},
|
|
#{locationName},
|
|
'etc',
|
|
now(),
|
|
#{status}
|
|
) ON CONFLICT (DEPT_CODE) DO
|
|
UPDATE
|
|
SET
|
|
DEPT_NAME = #{deptName},
|
|
COMPANY_NAME = #{companyName},
|
|
LOCATION_NAME = #{locationName},
|
|
STATUS = #{status}
|
|
</update>
|
|
<!-- <update id="saveEtcDeptInfo" parameterType="map">
|
|
MERGE INTO DEPT_INFO T USING DUAL ON ( T.DEPT_CODE = #{deptCode})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.DEPT_NAME = #{deptName},
|
|
T.LOCATION_NAME = #{locationName}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.DEPT_CODE,
|
|
T.DEPT_NAME,
|
|
T.LOCATION_NAME,
|
|
T.DATA_TYPE,
|
|
T.REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{deptCode},
|
|
#{deptName},
|
|
#{locationName},
|
|
'etc',
|
|
SYSDATE
|
|
)
|
|
</update> -->
|
|
|
|
<update id="InsertDeptInfoHistory" parameterType="map">
|
|
INSERT INTO DEPT_INFO_HISTORY
|
|
(
|
|
OBJID,
|
|
PARENT_NAME,
|
|
PARENT_CODE,
|
|
COMPANY_NAME,
|
|
ACTIVE,
|
|
HISTORY_TYPE,
|
|
WRITER,
|
|
REG_DATE
|
|
) VALUES (
|
|
#{OBJID}::numeric,
|
|
#{deptName},
|
|
#{deptCode},
|
|
#{companyName},
|
|
#{status},
|
|
#{HISTORY_TYPE},
|
|
#{WRITER},
|
|
NOW()
|
|
)
|
|
</update>
|
|
|
|
|
|
<!-- //사원 목록 조회 -->
|
|
<select id="getEtcUserList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT A.*, ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM (
|
|
SELECT SABUN
|
|
, USER_ID
|
|
, USER_NAME
|
|
, USER_NAME_ENG
|
|
, USER_NAME_CN
|
|
, DEPT_CODE
|
|
, DEPT_NAME
|
|
, POSITION_CODE
|
|
, POSITION_NAME
|
|
, EMAIL
|
|
, TEL
|
|
, CELL_PHONE
|
|
, USER_TYPE
|
|
, USER_TYPE_NAME
|
|
, REGDATE REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, DATA_TYPE
|
|
, TO_CHAR(END_DATE, 'YYYY-MM-DD') AS ENDDATE
|
|
, STATUS
|
|
FROM USER_INFO
|
|
WHERE 1=1
|
|
|
|
<choose>
|
|
<when test='search_user_type == null or "".equals(search_user_type) '>
|
|
AND NVL(partner_objid, '') = ''
|
|
</when>
|
|
<when test='search_user_type != null and "A".equals(search_user_type) '>
|
|
</when>
|
|
<when test='search_user_type != null and "U".equals(search_user_type) '>
|
|
AND NVL(partner_objid, '') = ''
|
|
</when>
|
|
<when test='search_user_type != null and "P".equals(search_user_type) '>
|
|
AND NVL(partner_objid, '') != ''
|
|
</when>
|
|
<otherwise>
|
|
</otherwise>
|
|
</choose>
|
|
|
|
<!-- AND DATA_TYPE = 'etc' -->
|
|
<if test="search_userTypeName != null and !''.equals(search_userTypeName)">
|
|
AND UPPER(USER_TYPE_NAME) LIKE UPPER('%${search_userTypeName}%')
|
|
</if>
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and !''.equals(search_userName)">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
) A
|
|
WHERE 1=1
|
|
) A
|
|
WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<!-- //사용자 상태 수정 -->
|
|
<update id="changeUserStatus" parameterType="map">
|
|
UPDATE USER_INFO
|
|
SET STATUS = #{status}
|
|
<if test="status != null and 'inActive'.equals(status)">
|
|
,END_DATE = now()
|
|
</if>
|
|
|
|
<if test="status != null and 'active'.equals(status)">
|
|
,END_DATE = null
|
|
</if>
|
|
WHERE USER_ID = #{user_id}
|
|
</update>
|
|
|
|
<insert id="saveUserHistoryInfo" parameterType="map">
|
|
INSERT INTO USER_INFO_HISTORY
|
|
(
|
|
USER_ID,
|
|
OLD_DATA,
|
|
NEW_DATA,
|
|
REG_DATE
|
|
) VALUES (
|
|
#{user_id},
|
|
(SELECT STATUS FROM USER_INFO WHERE USER_ID = #{user_id}),
|
|
#{status},
|
|
now()
|
|
)
|
|
</insert>
|
|
|
|
<!-- //사원 목록 COUNT -->
|
|
<select id="getEtcUserListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM USER_INFO
|
|
WHERE 1=1
|
|
|
|
<choose>
|
|
<when test='search_user_type == null or "".equals(search_user_type) '>
|
|
AND NVL(partner_objid, '') = ''
|
|
</when>
|
|
<when test='search_user_type != null and "A".equals(search_user_type) '>
|
|
</when>
|
|
<when test='search_user_type != null and "U".equals(search_user_type) '>
|
|
AND NVL(partner_objid, '') = ''
|
|
</when>
|
|
<when test='search_user_type != null and "P".equals(search_user_type) '>
|
|
AND NVL(partner_objid, '') != ''
|
|
</when>
|
|
<otherwise>
|
|
</otherwise>
|
|
</choose>
|
|
|
|
<!-- AND DATA_TYPE = 'etc' -->
|
|
<if test="search_userName != null and !''.equals(search_userName)">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
) A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<select id="getEtcUserInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
INFO.USER_ID
|
|
, INFO.USER_NAME
|
|
, INFO.DEPT_CODE
|
|
, (SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = INFO.DEPT_CODE) AS DEPT_NAME
|
|
, POSITION_CODE
|
|
, POSITION_NAME
|
|
, RANK
|
|
, INFO.EMAIL
|
|
, INFO.TEL
|
|
, INFO.CELL_PHONE
|
|
, INFO.USER_TYPE_NAME
|
|
, TO_CHAR(INFO.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, INFO.DATA_TYPE
|
|
, INFO.STATUS
|
|
, SABUN
|
|
, FAX_NO
|
|
, PARTNER_OBJID
|
|
FROM USER_INFO INFO
|
|
WHERE 1=1
|
|
AND INFO.USER_ID = #{userId}
|
|
|
|
<!-- 2019-03-27 수정 / 이거 이상한 값 나옴 -->
|
|
<!-- SELECT
|
|
INFO.USER_ID
|
|
, INFO.USER_NAME
|
|
, INFO.DEPT_CODE
|
|
, (SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = INFO.DEPT_CODE) AS DEPT_NAME
|
|
, INFO.EMAIL
|
|
, INFO.TEL
|
|
, INFO.CELL_PHONE
|
|
, INFO.USER_TYPE_NAME
|
|
, TO_CHAR(INFO.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, INFO.DATA_TYPE
|
|
FROM USER_INFO INFO
|
|
WHERE 1=1
|
|
AND UPPER(INFO.DATA_TYPE) = 'ETC'
|
|
AND INFO.USER_ID = #{userId} -->
|
|
</select>
|
|
|
|
<!-- //사원ID 중복체크 -->
|
|
<select id="checkDuplicateEtcUserId" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM USER_INFO
|
|
WHERE 1=1
|
|
AND UPPER(USER_ID) = UPPER(#{userId})
|
|
</select>
|
|
|
|
<!-- //기타사용자 저장 -->
|
|
<update id="saveEtcUserInfo" parameterType="map">
|
|
INSERT INTO USER_INFO
|
|
(
|
|
USER_ID
|
|
, SABUN
|
|
, USER_PASSWORD
|
|
, USER_NAME
|
|
, DEPT_CODE
|
|
, DEPT_NAME
|
|
, EMAIL
|
|
, TEL
|
|
, CELL_PHONE
|
|
, USER_TYPE_NAME
|
|
, REGDATE
|
|
, STATUS
|
|
, FAX_NO
|
|
, POSITION_NAME
|
|
, RANK
|
|
, PARTNER_OBJID
|
|
)
|
|
VALUES
|
|
(
|
|
#{userId}
|
|
, #{sabun}
|
|
, #{password}
|
|
, #{userName}
|
|
, #{deptCode}
|
|
, (SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode})
|
|
, #{email}
|
|
, #{tel}
|
|
, #{cellPhone}
|
|
, (SELECT LOCATION_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode})
|
|
, now()
|
|
, #{status}
|
|
, #{fax_no}
|
|
, #{position_name}
|
|
, #{rank}
|
|
, #{partner_objid}
|
|
) ON CONFLICT (USER_ID) DO
|
|
UPDATE
|
|
SET EMAIL = #{email}
|
|
|
|
<if test="userName != null and userName != ''">
|
|
, USER_NAME = #{userName}
|
|
</if>
|
|
|
|
<if test="deptCode != null and deptCode != ''">
|
|
, DEPT_CODE = #{deptCode}
|
|
, DEPT_NAME = (SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode})
|
|
</if>
|
|
<if test="password != null and password != ''">
|
|
, USER_PASSWORD = #{password}
|
|
</if>
|
|
, USER_TYPE_NAME = (SELECT LOCATION_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode})
|
|
<if test="sabun != null and sabun != ''">
|
|
, SABUN = #{sabun}
|
|
</if>
|
|
<if test="status != null and status != ''">
|
|
, STATUS = #{status}
|
|
</if>
|
|
<if test="status != null and 'inActive'.equals(status)">
|
|
,END_DATE = now()
|
|
</if>
|
|
<if test="status != null and 'active'.equals(status)">
|
|
,END_DATE = null
|
|
</if>
|
|
, TEL = #{tel}
|
|
, CELL_PHONE = #{cellPhone}
|
|
, FAX_NO = #{fax_no}
|
|
, POSITION_NAME = #{position_name}
|
|
, RANK = #{rank}
|
|
<if test="partner_objid != null and partner_objid != ''">
|
|
, PARTNER_OBJID = #{partner_objid}
|
|
</if>
|
|
</update>
|
|
|
|
<update id="InsertUserInfoHistory" parameterType="map">
|
|
INSERT INTO USER_INFO_HISTORY
|
|
(
|
|
sabun,
|
|
user_id,
|
|
user_name,
|
|
dept_code,
|
|
dept_name,
|
|
user_type_name,
|
|
history_type,
|
|
writer,
|
|
regdate,
|
|
status
|
|
) VALUES (
|
|
#{sabun},
|
|
#{userId},
|
|
#{userName},
|
|
#{deptCode},
|
|
(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode}),
|
|
(SELECT LOCATION_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode}),
|
|
#{history_type},
|
|
#{writer},
|
|
NOW(),
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- <update id="saveEtcUserInfo" parameterType="map">
|
|
MERGE INTO USER_INFO T USING DUAL ON ( T.USER_ID = #{userId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.USER_NAME = #{userName}
|
|
, T.DEPT_CODE = #{deptCode}
|
|
, T.DEPT_NAME = (SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode})
|
|
, T.USER_PASSWORD = #{password}
|
|
, T.USER_TYPE_NAME = (SELECT LOCATION_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode})
|
|
,T.SABUN = #{sabun}
|
|
,T.STATUS = #{status}
|
|
<if test="status != null and 'inActive'.equals(status)">
|
|
,END_DATE = sysdate
|
|
</if>
|
|
<if test="status != null and 'active'.equals(status)">
|
|
,END_DATE = ''
|
|
</if>
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.USER_ID
|
|
, T.SABUN
|
|
, T.USER_PASSWORD
|
|
, T.USER_NAME
|
|
, T.DEPT_CODE
|
|
, T.DEPT_NAME
|
|
, T.EMAIL
|
|
, T.TEL
|
|
, T.CELL_PHONE
|
|
, T.USER_TYPE_NAME
|
|
, T.REGDATE
|
|
, T.STATUS
|
|
|
|
)
|
|
VALUES
|
|
(
|
|
#{userId}
|
|
, #{sabun}
|
|
, #{password}
|
|
, #{userName}
|
|
, #{deptCode}
|
|
, (SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode})
|
|
, #{email}
|
|
, #{tel}
|
|
, #{cellPhone}
|
|
, (SELECT LOCATION_NAME FROM DEPT_INFO WHERE DEPT_CODE = #{deptCode})
|
|
, SYSDATE
|
|
, #{status}
|
|
)
|
|
</update> -->
|
|
|
|
<!-- //첨부파일목록조회 COUNT -->
|
|
<select id="getAttachFileListCount" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT
|
|
COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, A.TARGET_OBJID
|
|
, A.SAVED_FILE_NAME
|
|
, A.REAL_FILE_NAME
|
|
, A.DOC_TYPE
|
|
, A.DOC_TYPE_NAME
|
|
, A.FILE_SIZE
|
|
, A.FILE_EXT
|
|
, A.FILE_PATH
|
|
, A.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_NAME
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.REGDATE AS REGDATE_ORG
|
|
, A.STATUS
|
|
FROM ATTACH_FILE_INFO A
|
|
WHERE 1=1
|
|
AND UPPER(A.STATUS) = 'ACTIVE'
|
|
)
|
|
WHERE 1=1
|
|
<if test="search_docType != null and !''.equals(search_docType)">
|
|
AND DOC_TYPE = #{search_docType}
|
|
</if>
|
|
<if test="search_realFileName != null and !''.equals(search_realFileName)">
|
|
AND UPPER(REAL_FILE_NAME) LIKE UPPER('%${search_realFileName}%')
|
|
</if>
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and !''.equals(search_userName)">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND REGDATE_ORG <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND REGDATE_ORG <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
)
|
|
</select>
|
|
|
|
<!-- //첨부파일목록조회 -->
|
|
<select id="getAttachFileList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
</if>
|
|
SELECT ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) AS RNUM, AA.*
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, A.TARGET_OBJID
|
|
, A.SAVED_FILE_NAME
|
|
, A.REAL_FILE_NAME
|
|
, A.DOC_TYPE
|
|
, A.DOC_TYPE_NAME
|
|
, A.FILE_SIZE
|
|
, A.FILE_EXT
|
|
, A.FILE_PATH
|
|
, A.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_NAME
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.REGDATE AS REGDATE_ORG
|
|
, A.STATUS
|
|
FROM ATTACH_FILE_INFO A
|
|
WHERE 1=1
|
|
AND UPPER(A.STATUS) = 'ACTIVE'
|
|
) AA
|
|
WHERE 1=1
|
|
<if test="search_docType != null and !''.equals(search_docType)">
|
|
AND DOC_TYPE = #{search_docType}
|
|
</if>
|
|
<if test="search_realFileName != null and !''.equals(search_realFileName)">
|
|
AND UPPER(REAL_FILE_NAME) LIKE UPPER('%${search_realFileName}%')
|
|
</if>
|
|
<if test="search_deptName != null and !''.equals(search_deptName)">
|
|
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and !''.equals(search_userName)">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND REGDATE_ORG <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND REGDATE_ORG <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'yyyy-mm-dd')
|
|
</if>
|
|
<if test="'excel' != actionType">
|
|
)
|
|
WHERE 1=1
|
|
AND <![CDATA[ RNUM <= #{PAGE_END} ]]>
|
|
AND <![CDATA[ RNUM >= #{PAGE_START}]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //DOC_TYPE목록조회 -->
|
|
<select id="getDocTypeList" parameterType="map" resultType="map">
|
|
SELECT DISTINCT(DOC_TYPE_NAME), DOC_TYPE
|
|
FROM ATTACH_FILE_INFO
|
|
ORDER BY DOC_TYPE_NAME NULLS LAST
|
|
</select>
|
|
|
|
<!-- //첨부파일 업로드일 변경 -->
|
|
<update id="changeAttachFileUploadDate" parameterType="map">
|
|
UPDATE ATTACH_FILE_INFO SET REGDATE = TO_DATE(#{date}, 'yyyy-mm-dd') WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- //생산처별 인수담당자 조회 -->
|
|
<select id="getTakeOverMngList" parameterType="map" resultType="map">
|
|
SELECT ROWNUM AS RNUM, AA.*
|
|
FROM (
|
|
SELECT A.PRODUCING_COMPANY
|
|
, (SELECT USER_ID FROM TAKE_OVER_PIC_MNG WHERE PRODUCING_COMPANY = A.PRODUCING_COMPANY) AS USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = (SELECT USER_ID FROM TAKE_OVER_PIC_MNG WHERE PRODUCING_COMPANY = A.PRODUCING_COMPANY)) AS DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = (SELECT USER_ID FROM TAKE_OVER_PIC_MNG WHERE PRODUCING_COMPANY = A.PRODUCING_COMPANY)) AS USER_NAME
|
|
, (SELECT TO_CHAR(REGDATE, 'YYYY-MM-DD') FROM TAKE_OVER_PIC_MNG WHERE PRODUCING_COMPANY = A.PRODUCING_COMPANY) AS REGDATE
|
|
FROM (
|
|
SELECT DISTINCT PRODUCING_COMPANY
|
|
FROM PMS_DEV_MASTER_REL_PART_INFO
|
|
WHERE PRODUCING_COMPANY IS NOT NULL
|
|
) A
|
|
) AA
|
|
</select>
|
|
|
|
<!-- //생산처 인수담당자 조회 -->
|
|
<select id="getTakeOverMngInfo" parameterType="map" resultType="map">
|
|
SELECT A.PRODUCING_COMPANY
|
|
, (SELECT USER_ID FROM TAKE_OVER_PIC_MNG WHERE PRODUCING_COMPANY = A.PRODUCING_COMPANY) AS USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = (SELECT USER_ID FROM TAKE_OVER_PIC_MNG WHERE PRODUCING_COMPANY = A.PRODUCING_COMPANY)) AS DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = (SELECT USER_ID FROM TAKE_OVER_PIC_MNG WHERE PRODUCING_COMPANY = A.PRODUCING_COMPANY)) AS USER_NAME
|
|
, (SELECT TO_CHAR(REGDATE, 'YYYY-MM-DD') FROM TAKE_OVER_PIC_MNG WHERE PRODUCING_COMPANY = A.PRODUCING_COMPANY) AS REGDATE
|
|
FROM (
|
|
SELECT DISTINCT PRODUCING_COMPANY
|
|
FROM PMS_DEV_MASTER_REL_PART_INFO
|
|
WHERE PRODUCING_COMPANY IS NOT NULL
|
|
) A
|
|
WHERE A.PRODUCING_COMPANY = #{producingCompany}
|
|
</select>
|
|
|
|
<!-- //생산처 인수담당자 저장 -->
|
|
<update id="saveTakeOverPICInfo" parameterType="map">
|
|
MERGE INTO TAKE_OVER_PIC_MNG USING DUAL ON ( PRODUCING_COMPANY = #{producingCompany})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET USER_ID = #{userId}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
PRODUCING_COMPANY
|
|
, USER_ID
|
|
, REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{producingCompany}
|
|
, #{userId}
|
|
, SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<!-- //jmpark end-->
|
|
|
|
<!-- 생산공장 관리 목록 -->
|
|
<select id="getFactoryList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER (ORDER BY REGDATE DESC) RNUM
|
|
FROM (
|
|
SELECT OBJID
|
|
, FACTORY_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM OEM_FACTORY_MNG
|
|
WHERE 1=1
|
|
<if test="search_factoryName != null and search_factoryName != ''">
|
|
AND UPPER(FACTORY_NAME) LIKE UPPER('%${search_factoryName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 생산공장 관리 목록 갯수 -->
|
|
<select id="getFactoryListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT OBJID
|
|
, FACTORY_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM OEM_FACTORY_MNG
|
|
WHERE 1=1
|
|
<if test="search_factoryName != null and search_factoryName != ''">
|
|
AND UPPER(FACTORY_NAME) LIKE UPPER('%${search_factoryName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
)WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //생산공장명 상세(Form, Detail) -->
|
|
<select id="getFactoryInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, FACTORY_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM OEM_FACTORY_MNG
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- //생산공장명 중복체크 -->
|
|
<select id="checkDuplicateFactoryName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM OEM_FACTORY_MNG
|
|
WHERE 1=1
|
|
AND FACTORY_NAME = #{factoryName}
|
|
</select>
|
|
|
|
<!-- //생산공장명 저장 -->
|
|
<update id="saveFactoryInfo" parameterType="map">
|
|
MERGE INTO OEM_FACTORY_MNG T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.FACTORY_NAME = #{factoryName},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.FACTORY_NAME,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{factoryName},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- //생산공장명 상태 수정 -->
|
|
<update id="changeFactoryStatus" parameterType="map">
|
|
UPDATE OEM_FACTORY_MNG SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- 라인설치장소 관리 목록 -->
|
|
<select id="getLineAreaList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*, ROW_NUMBER() OVER (ORDER BY REGDATE DESC) RNUM
|
|
FROM(
|
|
SELECT OBJID
|
|
, AREA_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM LINE_INSTL_AREA_MNG
|
|
WHERE 1=1
|
|
<if test="search_lineAreaName != null and search_lineAreaName != ''">
|
|
AND UPPER(AREA_NAME) LIKE UPPER('%${search_lineAreaName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 라인설치장소 관리 목록 갯수 -->
|
|
<select id="getLineAreaListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT OBJID
|
|
, AREA_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM LINE_INSTL_AREA_MNG
|
|
WHERE 1=1
|
|
<if test="search_lineAreaName != null and search_lineAreaName != ''">
|
|
AND UPPER(AREA_NAME) LIKE UPPER('%${search_lineAreaName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //라인설치장소 상세(Form, Detail) -->
|
|
<select id="getLineAreaInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, AREA_NAME
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM LINE_INSTL_AREA_MNG
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- //라인설치장소 중복체크 -->
|
|
<select id="checkDuplicateLineAreaName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM LINE_INSTL_AREA_MNG
|
|
WHERE 1=1
|
|
AND AREA_NAME = #{lineAreaName}
|
|
</select>
|
|
|
|
<!-- //라인설치장소 저장 -->
|
|
<update id="saveLineAreaInfo" parameterType="map">
|
|
MERGE INTO LINE_INSTL_AREA_MNG T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.AREA_NAME = #{lineAreaName},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.AREA_NAME,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{lineAreaName},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- //라인설치장소 상태 수정 -->
|
|
<update id="changeLineAreaStatus" parameterType="map">
|
|
UPDATE LINE_INSTL_AREA_MNG SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- DFMEA 대분류 관리 목록 -->
|
|
<select id="getDfmeaGroupMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT CATEGORY_GROUP.*,ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM (
|
|
SELECT *
|
|
FROM(
|
|
SELECT A.*, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PROD_GROUP_OBJID) AS PROD_GROUP_NAME
|
|
FROM (
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_GROUP_OBJID
|
|
, CATEGORY_GROUP_NAME
|
|
, DESCRIPTION
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DFMEA_CATEGORY_GROUP
|
|
WHERE 1=1
|
|
<if test="search_categoryGroupName != null and search_categoryGroupName != ''">
|
|
AND UPPER(CATEGORY_GROUP_NAME) LIKE UPPER('%${search_categoryGroupName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
)A WHERE 1=1
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PROD_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
) WHERE 1=1
|
|
<if test="search_productGroupName != null and !''.equals(search_productGroupName)">
|
|
AND UPPER(PROD_GROUP_NAME) LIKE UPPER('%${search_productGroupName}%')
|
|
</if>
|
|
) CATEGORY_GROUP
|
|
WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !=''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!=''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- DFMEA 대분류 검색 목록 -->
|
|
<select id="dfmeaGroupMngList" parameterType="map" resultType="map">
|
|
|
|
SELECT INFO.*, ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
|
|
, CATEGORY_GROUP_NAME
|
|
, DESCRIPTION
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DFMEA_CATEGORY_GROUP
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = UPPER('active')
|
|
) INFO
|
|
</select>
|
|
|
|
<!-- DFMEA 대분류 관리 목록 갯수 -->
|
|
<select id="getDfmeaGroupMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT A.*, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PROD_GROUP_OBJID) AS PROD_GROUP_NAME
|
|
FROM (
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_GROUP_OBJID
|
|
, CATEGORY_GROUP_NAME
|
|
, DESCRIPTION
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DFMEA_CATEGORY_GROUP
|
|
WHERE 1=1
|
|
<if test="search_categoryGroupName != null and search_categoryGroupName != ''">
|
|
AND UPPER(CATEGORY_GROUP_NAME) LIKE UPPER('%${search_categoryGroupName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
)A WHERE 1=1
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PROD_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
)WHERE 1=1
|
|
<if test="search_productGroupName != null and !''.equals(search_productGroupName)">
|
|
AND UPPER(PROD_GROUP_NAME) LIKE UPPER('%${search_productGroupName}%')
|
|
</if>
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //DFMEA 대분류 상세(Form, Detail) -->
|
|
<select id="getDfmeaGroupMngInfo" parameterType="map" resultType="map">
|
|
SELECT A.*, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PROD_GROUP_OBJID) AS PROD_GROUP_NAME
|
|
FROM (
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_GROUP_OBJID
|
|
, CATEGORY_GROUP_NAME
|
|
, DESCRIPTION
|
|
, WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DFMEA_CATEGORY_GROUP
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
) A
|
|
</select>
|
|
|
|
<!-- //DFMEA 대분류 중복체크 -->
|
|
<select id="checkDuplicateDfmeaGroupMngName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM DFMEA_CATEGORY_GROUP
|
|
WHERE 1=1
|
|
AND CATEGORY_GROUP_NAME = #{categoryGroupName}
|
|
</select>
|
|
|
|
<!-- //DFMEA 대분류 저장 -->
|
|
<update id="saveDfmeaGroupMngInfo" parameterType="map">
|
|
MERGE INTO DFMEA_CATEGORY_GROUP T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.TARGET_OBJID = #{prodObjId},
|
|
T.CATEGORY_GROUP_NAME = #{categoryGroupName},
|
|
T.DESCRIPTION = #{categoryGroupDescription},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.TARGET_OBJID,
|
|
T.CATEGORY_GROUP_NAME,
|
|
T.DESCRIPTION,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{prodObjId},
|
|
#{categoryGroupName},
|
|
#{categoryGroupDescription},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- //DFMEA 대분류 상태 수정 -->
|
|
<update id="changeDfmeaGroupMngStatus" parameterType="map">
|
|
UPDATE DFMEA_CATEGORY_GROUP SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- DFMEA 중분류 관리 목록 -->
|
|
<select id="getDfmeaMngList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT CATEGORY_GROUP.*,ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) AS RNUM
|
|
FROM (
|
|
SELECT *
|
|
FROM (
|
|
SELECT OBJID
|
|
, CATEGORY_GROUP_OBJID
|
|
, CATEGORY_NAME
|
|
, WRITER
|
|
, (SELECT CATEGORY_GROUP_NAME FROM DFMEA_CATEGORY_GROUP WHERE OBJID = CATEGORY_GROUP_OBJID) AS CATEGORY_GROUP_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DFMEA_CATEGORY
|
|
WHERE 1=1
|
|
<if test="search_categoryName != null and search_categoryName != ''">
|
|
AND UPPER(CATEGORY_NAME) LIKE UPPER('%${search_categoryName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
)WHERE 1=1
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
) CATEGORY_GROUP
|
|
WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !=''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!=''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- DFMEA 중분류 검색 목록 -->
|
|
<select id="dfmeaMngList" parameterType="map" resultType="map">
|
|
SELECT ROWNUM RNUM
|
|
, OBJID
|
|
, CATEGORY_GROUP_OBJID
|
|
, CATEGORY_NAME
|
|
, WRITER
|
|
, (SELECT CATEGORY_GROUP_NAME FROM DFMEA_CATEGORY_GROUP WHERE OBJID = CATEGORY_GROUP_OBJID) AS CATEGORY_GROUP_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DFMEA_CATEGORY
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = UPPER('active')
|
|
ORDER BY RNUM
|
|
</select>
|
|
|
|
<!-- DFMEA 중분류 관리 목록 갯수 -->
|
|
<select id="getDfmeaMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT OBJID
|
|
, CATEGORY_GROUP_OBJID
|
|
, CATEGORY_NAME
|
|
, WRITER
|
|
, (SELECT CATEGORY_GROUP_NAME FROM DFMEA_CATEGORY_GROUP WHERE OBJID = CATEGORY_GROUP_OBJID) AS CATEGORY_GROUP_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DFMEA_CATEGORY
|
|
WHERE 1=1
|
|
<if test="search_categoryName != null and search_categoryName != ''">
|
|
AND UPPER(CATEGORY_NAME) LIKE UPPER('%${search_categoryName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
)WHERE 1=1
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //DFMEA 중분류 상세(Form, Detail) -->
|
|
<select id="getDfmeaMngInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, CATEGORY_GROUP_OBJID
|
|
, CATEGORY_NAME
|
|
, WRITER
|
|
, (SELECT CATEGORY_GROUP_NAME FROM DFMEA_CATEGORY_GROUP WHERE OBJID = CATEGORY_GROUP_OBJID) AS CATEGORY_GROUP_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DFMEA_CATEGORY
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- //DFMEA 중분류 중복체크 -->
|
|
<select id="checkDuplicateDfmeaMngName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM DFMEA_CATEGORY
|
|
WHERE 1=1
|
|
AND CATEGORY_GROUP_OBJID = #{categoryGroupObjId}
|
|
AND CATEGORY_NAME = #{categoryName}
|
|
</select>
|
|
|
|
<!-- //DFMEA 중분류 저장 -->
|
|
<update id="saveDfmeaMngInfo" parameterType="map">
|
|
MERGE INTO DFMEA_CATEGORY T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.CATEGORY_NAME = #{categoryName},
|
|
T.CATEGORY_GROUP_OBJID = #{categoryGroupObjId},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.CATEGORY_GROUP_OBJID,
|
|
T.CATEGORY_NAME,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{categoryGroupObjId},
|
|
#{categoryName},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- //DFMEA 중분류 상태 수정 -->
|
|
<update id="changeDfmeaMngStatus" parameterType="map">
|
|
UPDATE DFMEA_CATEGORY SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- //기타 사용자 삭제 -->
|
|
<delete id="etcUserDelete" parameterType="map">
|
|
DELETE FROM USER_INFO
|
|
WHERE USER_ID = #{userId}
|
|
</delete>
|
|
|
|
<!-- 잠재적 고장필터 관리 목록 -->
|
|
<select id="getDfmeaAttributeList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT CATEGORY_GROUP.*,ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) AS RNUM
|
|
FROM (
|
|
SELECT OBJID
|
|
, CATEGORY_OBJID
|
|
, ATTRIBUTE_NAME
|
|
, POTENTIAL_IMPACT
|
|
, POTENTIAL_CAUSE
|
|
, CURRENT_DESIGN_MANAGE_PREVENT
|
|
, CURRENT_DESIGN_MANAGE_DETECT
|
|
, RECOMMEND_OPTION
|
|
, WRITER
|
|
, (SELECT CATEGORY_NAME FROM DFMEA_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DFMEA_CATEGORY_ATTRIBUTE
|
|
WHERE 1=1
|
|
<if test="search_attributeName != null and search_attributeName != ''">
|
|
AND UPPER(ATTRIBUTE_NAME) LIKE UPPER('%${search_attributeName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
)WHERE 1=1
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
) CATEGORY_GROUP
|
|
<if test="'excel' != actionType">
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !=''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!=''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 잠재적 고장필터 관리 목록 갯수 -->
|
|
<select id="getDfmeaAttributeListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT OBJID
|
|
, CATEGORY_OBJID
|
|
, ATTRIBUTE_NAME
|
|
, POTENTIAL_IMPACT
|
|
, POTENTIAL_CAUSE
|
|
, CURRENT_DESIGN_MANAGE_PREVENT
|
|
, CURRENT_DESIGN_MANAGE_DETECT
|
|
, RECOMMEND_OPTION
|
|
, WRITER
|
|
, (SELECT CATEGORY_NAME FROM DFMEA_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DFMEA_CATEGORY_ATTRIBUTE
|
|
WHERE 1=1
|
|
<if test="search_attributeName != null and search_attributeName != ''">
|
|
AND UPPER(ATTRIBUTE_NAME) LIKE UPPER('%${search_attributeName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
)WHERE 1=1
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 잠재적 고장필터 상세(Form, Detail) -->
|
|
<select id="getDfmeaAttributeInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, CATEGORY_OBJID
|
|
, ATTRIBUTE_NAME
|
|
, POTENTIAL_IMPACT
|
|
, POTENTIAL_CAUSE
|
|
, CURRENT_DESIGN_MANAGE_PREVENT
|
|
, CURRENT_DESIGN_MANAGE_DETECT
|
|
, RECOMMEND_OPTION
|
|
, WRITER
|
|
, (SELECT CATEGORY_NAME FROM DFMEA_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DFMEA_CATEGORY_ATTRIBUTE
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 잠재적 고장필터 중복체크 -->
|
|
<select id="checkDuplicateDfmeaAttributeName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM DFMEA_CATEGORY_ATTRIBUTE
|
|
WHERE 1=1
|
|
AND CATEGORY_OBJID = #{categoryObjId}
|
|
AND ATTRIBUTE_NAME = #{attributeName}
|
|
</select>
|
|
|
|
<!-- 잠재적 고장필터 저장 -->
|
|
<update id="saveDfmeaAttributeInfo" parameterType="map">
|
|
MERGE INTO DFMEA_CATEGORY_ATTRIBUTE T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.ATTRIBUTE_NAME = #{attributeName},
|
|
T.POTENTIAL_IMPACT = #{potentialImpact},
|
|
T.POTENTIAL_CAUSE = #{potentialCause},
|
|
T.CURRENT_DESIGN_MANAGE_PREVENT = #{currentPrevent},
|
|
T.CURRENT_DESIGN_MANAGE_DETECT = #{currentDetect},
|
|
T.RECOMMEND_OPTION = #{recommendOption},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.CATEGORY_OBJID,
|
|
T.ATTRIBUTE_NAME,
|
|
T.POTENTIAL_IMPACT,
|
|
T.POTENTIAL_CAUSE,
|
|
T.CURRENT_DESIGN_MANAGE_PREVENT,
|
|
T.CURRENT_DESIGN_MANAGE_DETECT,
|
|
T.RECOMMEND_OPTION,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{categoryObjId},
|
|
#{attributeName},
|
|
#{potentialImpact},
|
|
#{potentialCause},
|
|
#{currentPrevent},
|
|
#{currentDetect},
|
|
#{recommendOption},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- 잠재적 고장필터 상태 수정 -->
|
|
<update id="changeDfmeaAttributeStatus" parameterType="map">
|
|
UPDATE DFMEA_CATEGORY_ATTRIBUTE SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- 설계체크리스트 대분류 관리 목록 -->
|
|
<select id="getDesignCheckListGroupList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT B.*,ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM (
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
|
|
, GROUP_NAME
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DESIGN_CHECK_LIST_GROUP
|
|
WHERE 1=1
|
|
)A WHERE 1=1
|
|
<if test="search_groupName != null and search_groupName != ''">
|
|
AND UPPER(GROUP_NAME) LIKE UPPER('%${search_groupName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PROD_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
) B WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !=''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!=''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 설계체크리스트 대분류 검색 목록 -->
|
|
<select id="designCheckListGroup" parameterType="map" resultType="map">
|
|
SELECT INFO.*, ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
|
|
, GROUP_NAME
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DESIGN_CHECK_LIST_GROUP
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = UPPER('active')
|
|
) INFO
|
|
</select>
|
|
|
|
<!-- 설계체크리스트 대분류 관리 목록 갯수 -->
|
|
<select id="getDesignCheckListGroupListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
|
|
, GROUP_NAME
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DESIGN_CHECK_LIST_GROUP
|
|
WHERE 1=1
|
|
)A WHERE 1=1
|
|
)WHERE 1=1
|
|
<if test="search_groupName != null and search_groupName != ''">
|
|
AND UPPER(GROUP_NAME) LIKE UPPER('%${search_groupName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PROD_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //설계체크리스트 대분류 상세(Form, Detail) -->
|
|
<select id="getDesignCheckListGroupInfo" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_GROUP_OBJID
|
|
, GROUP_NAME
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DESIGN_CHECK_LIST_GROUP
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
) A
|
|
</select>
|
|
|
|
<!-- //설계체크리스트 대분류 중복체크 -->
|
|
<select id="checkDuplicateDesignCheckListGroupName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM DESIGN_CHECK_LIST_GROUP
|
|
WHERE 1=1
|
|
AND GROUP_NAME = #{groupName}
|
|
AND SEQ = #{seqNum}
|
|
</select>
|
|
|
|
<!-- //DFMEA 대분류 저장 -->
|
|
<update id="saveDesignCheckListGroupInfo" parameterType="map">
|
|
MERGE INTO DESIGN_CHECK_LIST_GROUP T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.TARGET_OBJID = #{prodObjId},
|
|
T.GROUP_NAME = #{groupName},
|
|
T.SEQ = #{seqNum},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.TARGET_OBJID,
|
|
T.GROUP_NAME,
|
|
T.WRITER,
|
|
T.SEQ,
|
|
T.REGDATE,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{prodObjId},
|
|
#{groupName},
|
|
#{writer},
|
|
#{seqNum},
|
|
SYSDATE,
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- //설계체크리스트 대분류 상태 수정 -->
|
|
<update id="changeDesignCheckListGroupStatus" parameterType="map">
|
|
UPDATE DESIGN_CHECK_LIST_GROUP SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- 설계체크리스트 중분류 관리 목록 -->
|
|
<select id="getDesignCheckListCategoryList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT B.*,ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM (
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, PRODUCT_OBJID
|
|
, GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME
|
|
, (SELECT GROUP_NAME FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = GROUP_OBJID) AS GROUP_NAME
|
|
, CATEGORY_NAME
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DESIGN_CHECK_LIST_CATEGORY
|
|
WHERE 1=1
|
|
)A WHERE 1=1
|
|
<if test="search_groupName != null and search_groupName != ''">
|
|
AND UPPER(GROUP_NAME) LIKE UPPER('%${search_groupName}%')
|
|
</if>
|
|
<if test="search_categoryName != null and search_categoryName != ''">
|
|
AND UPPER(CATEGORY_NAME) LIKE UPPER('%${search_categoryName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PROD_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
) B WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !=''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!=''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 설계체크리스트 중분류 검색 목록 -->
|
|
<select id="designCheckListCategory" parameterType="map" resultType="map">
|
|
SELECT INFO.*, ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT OBJID
|
|
, PRODUCT_OBJID
|
|
, GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME
|
|
, CATEGORY_NAME
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DESIGN_CHECK_LIST_CATEGORY
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = UPPER('active')
|
|
) INFO
|
|
</select>
|
|
|
|
<!-- 설계체크리스트 중분류 관리 목록 갯수 -->
|
|
<select id="getDesignCheckListCategoryListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, PRODUCT_OBJID
|
|
, GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME
|
|
, (SELECT GROUP_NAME FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = GROUP_OBJID) AS GROUP_NAME
|
|
, CATEGORY_NAME
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DESIGN_CHECK_LIST_CATEGORY
|
|
WHERE 1=1
|
|
)A WHERE 1=1
|
|
)WHERE 1=1
|
|
<if test="search_groupName != null and search_groupName != ''">
|
|
AND UPPER(GROUP_NAME) LIKE UPPER('%${search_groupName}%')
|
|
</if>
|
|
<if test="search_categoryName != null and search_categoryName != ''">
|
|
AND UPPER(CATEGORY_NAME) LIKE UPPER('%${search_categoryName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PROD_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //설계체크리스트 중분류 상세(Form, Detail) -->
|
|
<select id="getDesignCheckListCategoryInfo" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT OBJID
|
|
, PRODUCT_OBJID
|
|
, GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME
|
|
, (SELECT GROUP_NAME FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = GROUP_OBJID) AS GROUP_NAME
|
|
, CATEGORY_NAME
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DESIGN_CHECK_LIST_CATEGORY
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
) A
|
|
</select>
|
|
|
|
<!-- //설계체크리스트 중분류 중복체크 -->
|
|
<select id="checkDuplicateDesignCheckListCategoryName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM DESIGN_CHECK_LIST_CATEGORY
|
|
WHERE 1=1
|
|
AND CATEGORY_NAME = #{categoryName}
|
|
AND SEQ = #{seqNum}
|
|
</select>
|
|
|
|
<!-- //DFMEA 중분류 저장 -->
|
|
<update id="saveDesignCheckListCategoryInfo" parameterType="map">
|
|
MERGE INTO DESIGN_CHECK_LIST_CATEGORY T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.PRODUCT_OBJID = #{prodObjId},
|
|
T.GROUP_OBJID = #{groupObjId},
|
|
T.CATEGORY_NAME = #{categoryName},
|
|
T.SEQ = #{seqNum},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.PRODUCT_OBJID,
|
|
T.GROUP_OBJID,
|
|
T.CATEGORY_NAME,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.SEQ,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{prodObjId},
|
|
#{groupObjId},
|
|
#{categoryName},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{seqNum},
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- //설계체크리스트 중분류 상태 수정 -->
|
|
<update id="changeDesignCheckListCategoryStatus" parameterType="map">
|
|
UPDATE DESIGN_CHECK_LIST_CATEGORY SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- 설계체크리스트 소분류 관리 목록 -->
|
|
<select id="getDesignCheckListAttributeList" parameterType="map" resultType="map">
|
|
<if test="'excel' != actionType">
|
|
SELECT *
|
|
FROM (
|
|
</if>
|
|
SELECT C.*
|
|
FROM (
|
|
SELECT B.*,ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT A.*, (SELECT GROUP_NAME FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = GROUP_OBJID) AS GROUP_NAME
|
|
FROM (
|
|
SELECT OBJID
|
|
, PRODUCT_OBJID
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_GROUP_OBJID
|
|
, CATEGORY_OBJID
|
|
, (SELECT GROUP_OBJID FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME
|
|
, (SELECT CATEGORY_NAME FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME
|
|
, ATTRIBUTE_NAME
|
|
, CHECK_OPTION
|
|
, CHECK_BASE
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DESIGN_CHECK_LIST_ATTRIBUTE
|
|
WHERE 1=1
|
|
)A WHERE 1=1
|
|
) B WHERE 1=1
|
|
<if test="search_groupName != null and search_groupName != ''">
|
|
AND UPPER(GROUP_NAME) LIKE UPPER('%${search_groupName}%')
|
|
</if>
|
|
<if test="search_categoryName != null and search_categoryName != ''">
|
|
AND UPPER(CATEGORY_NAME) LIKE UPPER('%${search_categoryName}%')
|
|
</if>
|
|
<if test="search_attributeName != null and search_attributeName != ''">
|
|
AND UPPER(ATTRIBUTE_NAME) LIKE UPPER('%${search_attributeName}%')
|
|
</if>
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PROD_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND PRODUCT_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
) C WHERE 1=1
|
|
<if test="'excel' != actionType">
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !=''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!=''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 설계체크리스트 소분류 검색 목록 -->
|
|
<select id="designCheckListAttribute" parameterType="map" resultType="map">
|
|
SELECT INFO.*, ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT OBJID
|
|
, PRODUCT_OBJID
|
|
, CATEGORY_OBJID
|
|
, (SELECT GROUP_OBJID FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME
|
|
, (SELECT CATEGORY_NAME FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME
|
|
, ATTRIBUTE_NAME
|
|
, CHECK_OPTION
|
|
, CHECK_BASE
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DESIGN_CHECK_LIST_ATTRIBUTE
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = UPPER('active')
|
|
) INFO
|
|
</select>
|
|
|
|
<!-- 설계체크리스트 소분류 관리 목록 갯수 -->
|
|
<select id="getDesignCheckListAttributeListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM (
|
|
SELECT A.*, (SELECT GROUP_NAME FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = GROUP_OBJID) AS GROUP_NAME
|
|
FROM (
|
|
SELECT OBJID
|
|
, PRODUCT_OBJID
|
|
, CATEGORY_OBJID
|
|
, (SELECT GROUP_OBJID FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME
|
|
, (SELECT CATEGORY_NAME FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME
|
|
, ATTRIBUTE_NAME
|
|
, CHECK_OPTION
|
|
, CHECK_BASE
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
ELSE STATUS
|
|
END AS STATUS_STR
|
|
FROM DESIGN_CHECK_LIST_ATTRIBUTE
|
|
WHERE 1=1
|
|
)A WHERE 1=1
|
|
)WHERE 1=1
|
|
<if test="search_groupName != null and search_groupName != ''">
|
|
AND UPPER(GROUP_NAME) LIKE UPPER('%${search_groupName}%')
|
|
</if>
|
|
<if test="search_categoryName != null and search_categoryName != ''">
|
|
AND UPPER(CATEGORY_NAME) LIKE UPPER('%${search_categoryName}%')
|
|
</if>
|
|
<if test="search_attributeName != null and search_attributeName != ''">
|
|
AND UPPER(ATTRIBUTE_NAME) LIKE UPPER('%${search_attributeName}%')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer !=null and search_writer !=''">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_productName != null and search_productName != ''">
|
|
AND UPPER(PROD_NAME) LIKE UPPER('%${search_productName}%')
|
|
</if>
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //설계체크리스트 소분류 상세(Form, Detail) -->
|
|
<select id="getDesignCheckListAttributeInfo" parameterType="map" resultType="map">
|
|
SELECT B.*
|
|
FROM(
|
|
SELECT A.*, (SELECT GROUP_NAME FROM DESIGN_CHECK_LIST_GROUP WHERE OBJID = GROUP_OBJID) AS GROUP_NAME
|
|
FROM (
|
|
SELECT OBJID
|
|
, PRODUCT_OBJID
|
|
, CATEGORY_OBJID
|
|
, (SELECT GROUP_OBJID FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME
|
|
, (SELECT CATEGORY_NAME FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME
|
|
, ATTRIBUTE_NAME
|
|
, CHECK_OPTION
|
|
, CHECK_BASE
|
|
, WRITER
|
|
, SEQ
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_USER_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, STATUS
|
|
FROM DESIGN_CHECK_LIST_ATTRIBUTE
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
) A
|
|
)B
|
|
</select>
|
|
|
|
<!-- //설계체크리스트 소분류 중복체크 -->
|
|
<select id="checkDuplicateDesignCheckListAttributeName" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) CNT
|
|
FROM DESIGN_CHECK_LIST_ATTRIBUTE
|
|
WHERE 1=1
|
|
AND ATTRIBUTE_NAME = #{attributeName}
|
|
AND SEQ = #{seqNum}
|
|
</select>
|
|
|
|
<!-- //DFMEA 소분류 저장 -->
|
|
<update id="saveDesignCheckListAttributeInfo" parameterType="map">
|
|
MERGE INTO DESIGN_CHECK_LIST_ATTRIBUTE T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET T.PRODUCT_OBJID = #{prodObjId},
|
|
T.CATEGORY_OBJID = #{categoryObjId},
|
|
T.ATTRIBUTE_NAME = #{attributeName},
|
|
T.CHECK_OPTION = #{checkOption},
|
|
T.CHECK_BASE = #{checkBase},
|
|
T.SEQ = #{seqNum},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.PRODUCT_OBJID,
|
|
T.CATEGORY_OBJID,
|
|
T.ATTRIBUTE_NAME,
|
|
T.CHECK_OPTION,
|
|
T.CHECK_BASE,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.SEQ,
|
|
T.STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{prodObjId},
|
|
#{categoryObjId},
|
|
#{attributeName},
|
|
#{checkOption},
|
|
#{checkBase},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{seqNum},
|
|
#{status}
|
|
)
|
|
</update>
|
|
|
|
<!-- //설계체크리스트 소분류 상태 수정 -->
|
|
<update id="changeDesignCheckListAttributeStatus" parameterType="map">
|
|
UPDATE DESIGN_CHECK_LIST_ATTRIBUTE SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- 문서 기준정보 중복 여부를 확인한다. -->
|
|
<select id="checkDuplicateTranslateDoc" parameterType="map" resultType="map">
|
|
SELECT COUNT(1) CNT FROM(
|
|
SELECT
|
|
OBJID,
|
|
DOC_TITLE,
|
|
DOC_TYPE,
|
|
IS_PRODUCTION,
|
|
IS_PRODUCT_MNG,
|
|
IS_INTEGRITY,
|
|
IS_COMPONENT_BUY,
|
|
IS_PRODUCT_QUALITY,
|
|
REGDATE,
|
|
STATUS,
|
|
WRITER
|
|
FROM PMS_TRANSLATE_DOC_MNG
|
|
WHERE OBJID != #{objId}
|
|
AND DOC_TITLE = #{docTitle}
|
|
)
|
|
</select>
|
|
|
|
<!-- 문서 기준정보를 저장한다. -->
|
|
<update id="saveTranslateDoc" parameterType="map">
|
|
MERGE INTO PMS_TRANSLATE_DOC_MNG T USING DUAL ON ( T.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
T.DOC_TITLE = #{docTitle},
|
|
T.DOC_TYPE = #{docType},
|
|
T.TRANSLATE_TYPE = #{translateType},
|
|
T.HAND_OVER_DEPT = #{deptId},
|
|
T.IS_PRODUCTION = #{isProduction},
|
|
T.IS_PRODUCT_MNG = #{isProductMng},
|
|
T.IS_INTEGRITY = #{isIntegrity},
|
|
T.IS_COMPONENT_BUY = #{isComponentBuy},
|
|
T.IS_PRODUCT_QUALITY = #{isProductQuality},
|
|
T.SEQ = #{seq},
|
|
T.STATUS = #{status}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.DOC_TITLE,
|
|
T.DOC_TYPE,
|
|
T.TRANSLATE_TYPE,
|
|
T.HAND_OVER_DEPT,
|
|
T.IS_PRODUCTION,
|
|
T.IS_PRODUCT_MNG,
|
|
T.IS_INTEGRITY,
|
|
T.IS_COMPONENT_BUY,
|
|
T.IS_PRODUCT_QUALITY,
|
|
T.SEQ,
|
|
T.REGDATE,
|
|
T.STATUS,
|
|
T.WRITER
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{docTitle},
|
|
#{docType},
|
|
#{translateType},
|
|
#{deptId},
|
|
#{isProduction},
|
|
#{isProductMng},
|
|
#{isIntegrity},
|
|
#{isComponentBuy},
|
|
#{isProductQuality},
|
|
#{seq},
|
|
SYSDATE,
|
|
#{status},
|
|
#{writer}
|
|
)
|
|
</update>
|
|
|
|
<!-- 문서 기준정보의 상세 정보를 가져온다. -->
|
|
<select id="getTranslateDocInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
DOC_TITLE,
|
|
DOC_TYPE,
|
|
DECODE(TRANSLATE_TYPE, 'facility', '설계', 'quality', '품질', 'etc', '기타', TRANSLATE_TYPE) TRANSLATE_TYPE_TITLE,
|
|
TRANSLATE_TYPE,
|
|
CASE
|
|
WHEN UPPER(DOC_TYPE) = 'FILE' THEN '파일'
|
|
WHEN UPPER(DOC_TYPE) = 'OUTPUT' THEN '출력'
|
|
ELSE ''
|
|
END DOC_TYPE_TITLE,
|
|
IS_PRODUCTION,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCTION) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCTION) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCTION_TITLE,
|
|
IS_PRODUCT_MNG,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCT_MNG) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCT_MNG) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCT_MNG_TITLE,
|
|
IS_INTEGRITY,
|
|
CASE
|
|
WHEN UPPER(IS_INTEGRITY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_INTEGRITY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_INTEGRITY_TITLE,
|
|
IS_COMPONENT_BUY,
|
|
CASE
|
|
WHEN UPPER(IS_COMPONENT_BUY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_COMPONENT_BUY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_COMPONENT_BUY_TITLE,
|
|
IS_PRODUCT_QUALITY,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCT_QUALITY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCT_QUALITY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCT_QUALITY_TITLE,
|
|
REGDATE,
|
|
STATUS,
|
|
CASE
|
|
WHEN UPPER(STATUS) = 'INACTIVE' THEN '비활성화'
|
|
WHEN UPPER(STATUS) = 'ACTIVE' THEN '활성화'
|
|
ELSE ''
|
|
END STATUS_TITLE,
|
|
HAND_OVER_DEPT,
|
|
(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = HAND_OVER_DEPT) AS HAND_OVER_DEPT_NAME,
|
|
WRITER,
|
|
SEQ
|
|
FROM PMS_TRANSLATE_DOC_MNG
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 문서 기준정보의 목록을 가져온다. -->
|
|
<select id="getTranslateDocList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT AA.* , ROW_NUMBER() OVER(ORDER BY SEQ ASC NULLS LAST) RNUM
|
|
FROM(
|
|
SELECT A.*
|
|
FROM(
|
|
SELECT
|
|
OBJID,
|
|
DOC_TITLE,
|
|
DOC_TYPE,
|
|
DECODE(TRANSLATE_TYPE, 'facility', '설계', 'quality', '품질', 'etc', '기타', TRANSLATE_TYPE) TRANSLATE_TYPE_TITLE,
|
|
TRANSLATE_TYPE,
|
|
CASE
|
|
WHEN UPPER(DOC_TYPE) = 'FILE' THEN '파일'
|
|
WHEN UPPER(DOC_TYPE) = 'OUTPUT' THEN '출력'
|
|
ELSE ''
|
|
END DOC_TYPE_TITLE,
|
|
IS_PRODUCTION,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCTION) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCTION) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCTION_TITLE,
|
|
IS_PRODUCT_MNG,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCT_MNG) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCT_MNG) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCT_MNG_TITLE,
|
|
IS_INTEGRITY,
|
|
CASE
|
|
WHEN UPPER(IS_INTEGRITY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_INTEGRITY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_INTEGRITY_TITLE,
|
|
IS_COMPONENT_BUY,
|
|
CASE
|
|
WHEN UPPER(IS_COMPONENT_BUY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_COMPONENT_BUY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_COMPONENT_BUY_TITLE,
|
|
IS_PRODUCT_QUALITY,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCT_QUALITY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCT_QUALITY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCT_QUALITY_TITLE,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
SEQ,
|
|
STATUS,
|
|
DECODE (STATUS, 'active', '활성화', 'inActive', '비활성화', STATUS) STATUS_STR,
|
|
HAND_OVER_DEPT,
|
|
(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = HAND_OVER_DEPT) AS HAND_OVER_DEPT_NAME,
|
|
WRITER,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) USER_NAME
|
|
FROM PMS_TRANSLATE_DOC_MNG
|
|
WHERE 1=1
|
|
)A
|
|
WHERE 1=1
|
|
<if test="search_testTypeName != null and search_testTypeName != ''">
|
|
AND UPPER(DOC_TITLE) LIKE UPPER('%${search_testTypeName}%')
|
|
</if>
|
|
<if test="docType != null and docType != ''">
|
|
AND UPPER(DOC_TYPE) = UPPER(#{docType})
|
|
</if>
|
|
<if test="translateType != null and translateType != ''">
|
|
AND UPPER(TRANSLATE_TYPE) = UPPER(#{translateType})
|
|
</if>
|
|
<if test="search_deptName != null and search_deptName != ''">
|
|
AND UPPER(HAND_OVER_DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="isProduction != null and isProduction != ''">
|
|
AND UPPER(IS_PRODUCTION) = UPPER(#{isProduction})
|
|
</if>
|
|
<if test="isProductMng != null and isProductMng != ''">
|
|
AND UPPER(IS_PRODUCT_MNG) = UPPER(#{isProductMng})
|
|
</if>
|
|
<if test="isIntegrity != null and isIntegrity != ''">
|
|
AND UPPER(IS_INTEGRITY) = UPPER(#{isIntegrity})
|
|
</if>
|
|
<if test="isComponentBuy != null and isComponentBuy != ''">
|
|
AND UPPER(IS_COMPONENT_BUY) = UPPER(#{isComponentBuy})
|
|
</if>
|
|
<if test="isProductQuality != null and isProductQuality != ''">
|
|
AND UPPER(IS_PRODUCT_QUALITY) = UPPER(#{isProductQuality})
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
)AA
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 문서 기준정보의 Count를 가져온다. -->
|
|
<select id="getTranslateDocListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
OBJID,
|
|
DOC_TITLE,
|
|
DOC_TYPE,
|
|
DECODE(TRANSLATE_TYPE, 'facility', '설계', 'quality', '품질', 'etc', '기타', TRANSLATE_TYPE) TRANSLATE_TYPE_TITLE,
|
|
TRANSLATE_TYPE,
|
|
CASE
|
|
WHEN UPPER(DOC_TYPE) = 'FILE' THEN '파일'
|
|
WHEN UPPER(DOC_TYPE) = 'OUTPUT' THEN '출력'
|
|
ELSE ''
|
|
END DOC_TYPE_TITLE,
|
|
IS_PRODUCTION,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCTION) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCTION) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCTION_TITLE,
|
|
IS_PRODUCT_MNG,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCT_MNG) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCT_MNG) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCT_MNG_TITLE,
|
|
IS_INTEGRITY,
|
|
CASE
|
|
WHEN UPPER(IS_INTEGRITY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_INTEGRITY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_INTEGRITY_TITLE,
|
|
IS_COMPONENT_BUY,
|
|
CASE
|
|
WHEN UPPER(IS_COMPONENT_BUY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_COMPONENT_BUY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_COMPONENT_BUY_TITLE,
|
|
IS_PRODUCT_QUALITY,
|
|
CASE
|
|
WHEN UPPER(IS_PRODUCT_QUALITY) = 'TARGET' THEN '대상'
|
|
WHEN UPPER(IS_PRODUCT_QUALITY) = 'NONTARGET' THEN '비대상'
|
|
ELSE ''
|
|
END IS_PRODUCT_QUALITY_TITLE,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
SEQ,
|
|
STATUS,
|
|
DECODE (STATUS, 'active', '활성화', 'inActive', '비활성화', STATUS) STATUS_STR,
|
|
HAND_OVER_DEPT,
|
|
(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = HAND_OVER_DEPT) AS HAND_OVER_DEPT_NAME,
|
|
WRITER,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) USER_NAME
|
|
FROM PMS_TRANSLATE_DOC_MNG
|
|
WHERE 1=1
|
|
) WHERE 1=1
|
|
<if test="search_testTypeName != null and search_testTypeName != ''">
|
|
AND UPPER(DOC_TITLE) LIKE UPPER('%${search_testTypeName}%')
|
|
</if>
|
|
<if test="docType != null and docType != ''">
|
|
AND UPPER(DOC_TYPE) = UPPER(#{docType})
|
|
</if>
|
|
<if test="translateType != null and translateType != ''">
|
|
AND UPPER(TRANSLATE_TYPE) = UPPER(#{translateType})
|
|
</if>
|
|
<if test="search_deptName != null and search_deptName != ''">
|
|
AND UPPER(HAND_OVER_DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="isProduction != null and isProduction != ''">
|
|
AND UPPER(IS_PRODUCTION) = UPPER(#{isProduction})
|
|
</if>
|
|
<if test="isProductMng != null and isProductMng != ''">
|
|
AND UPPER(IS_PRODUCT_MNG) = UPPER(#{isProductMng})
|
|
</if>
|
|
<if test="isIntegrity != null and isIntegrity != ''">
|
|
AND UPPER(IS_INTEGRITY) = UPPER(#{isIntegrity})
|
|
</if>
|
|
<if test="isComponentBuy != null and isComponentBuy != ''">
|
|
AND UPPER(IS_COMPONENT_BUY) = UPPER(#{isComponentBuy})
|
|
</if>
|
|
<if test="isProductQuality != null and isProductQuality != ''">
|
|
AND UPPER(IS_PRODUCT_QUALITY) = UPPER(#{isProductQuality})
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status != null and search_status != ''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
) WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //설계체크리스트 소분류 상태 수정 -->
|
|
<update id="changeTranslateDocListAttributeStatus" parameterType="map">
|
|
UPDATE PMS_TRANSLATE_DOC_MNG SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- //유저정보 history -->
|
|
<select id="getUserHistoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
A.*
|
|
FROM (
|
|
SELECT
|
|
A.*,
|
|
ROW_NUMBER() OVER (ORDER BY RM DESC) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
T.*,
|
|
ROW_NUMBER() OVER (ORDER BY REGDATE DESC) AS RM,
|
|
(SELECT USER_NAME FROM USER_INFO UI WHERE T.WRITER = UI.USER_ID) AS WRITER_NAME,
|
|
TO_CHAR(T.REGDATE, 'YYYY-MM-DD') AS REG_DATE_TITLE
|
|
FROM
|
|
USER_INFO_HISTORY T
|
|
WHERE USER_ID = #{user_id}
|
|
) A
|
|
WHERE 1=1
|
|
) A
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null">
|
|
<![CDATA[ AND RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null">
|
|
<![CDATA[ AND RNUM::integer >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<!-- //유저정보 history -->
|
|
<select id="getUserHistoryListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM USER_INFO_HISTORY
|
|
WHERE USER_ID = #{user_id}
|
|
) A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<!-- //임율정보 history -->
|
|
<select id="ratecalMngHistoryList" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT A.*
|
|
,TO_CHAR(A.REG_DATE, 'YYYY-MM-DD') AS REGDATE
|
|
,ROW_NUMBER() OVER (ORDER BY REG_DATE DESC) RNUM
|
|
FROM (
|
|
SELECT
|
|
(SELECT USER_ID FROM RATECAL_MGMT O WHERE O.RATECAL_MGMT_OBJID = T.RATECAL_MGMT_OBJID) AS USER_ID
|
|
, OLD_DATA
|
|
, NEW_DATA
|
|
, REG_DATE
|
|
FROM RATECAL_MGMT_HISTORY T
|
|
WHERE RATECAL_MGMT_OBJID = #{objId}::numeric
|
|
) A
|
|
WHERE 1=1
|
|
) A
|
|
WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
|
|
<!-- //임율정보 history -->
|
|
<select id="ratecalMngHistoryListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM RATECAL_MGMT_HISTORY
|
|
WHERE RATECAL_MGMT_OBJID = #{objId}::numeric
|
|
) A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<!-- //임율정보 history -->
|
|
<select id="deptHistoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
A.*
|
|
FROM (
|
|
SELECT
|
|
A.*,
|
|
ROW_NUMBER() OVER (ORDER BY RM DESC) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
T.*,
|
|
ROW_NUMBER() OVER (ORDER BY REG_DATE) AS RM,
|
|
(SELECT USER_NAME FROM USER_INFO UI WHERE T.WRITER = UI.USER_ID) AS WRITER_NAME,
|
|
TO_CHAR(T.REG_DATE, 'YYYY-MM-DD') AS REG_DATE_TITLE
|
|
FROM
|
|
DEPT_INFO_HISTORY T
|
|
WHERE PARENT_CODE = #{dept_code}
|
|
) A
|
|
WHERE 1=1
|
|
) A
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM::integer >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<!-- //임율정보 history -->
|
|
<select id="deptHistoryListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float as TOTAL_CNT
|
|
FROM
|
|
DEPT_INFO_HISTORY T
|
|
WHERE PARENT_CODE = #{dept_code}
|
|
) A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //권한 history -->
|
|
<select id="authHistoryList" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT
|
|
A.*,
|
|
ROW_NUMBER() OVER (ORDER BY RM DESC) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
AMH.*,
|
|
ROW_NUMBER() OVER (ORDER BY REG_DATE) AS RM,
|
|
(SELECT USER_NAME FROM USER_INFO UI WHERE AMH.USER_ID = UI.USER_ID) AS USER_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO UI WHERE AMH.WRITER = UI.USER_ID) AS WRITER_NAME,
|
|
TO_CHAR(AMH.REG_DATE, 'YYYY-MM-DD') AS REG_DATE_TITLE
|
|
FROM
|
|
AUTHORITY_MASTER_HISTORY AMH
|
|
WHERE PARENT_OBJID = #{objId}::numeric
|
|
) A
|
|
WHERE 1=1
|
|
) A
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM::integer >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<!-- //권한 history -->
|
|
<select id="authHistoryListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::numeric as TOTAL_CNT
|
|
FROM
|
|
AUTHORITY_MASTER_HISTORY
|
|
WHERE PARENT_OBJID = #{objId}::numeric
|
|
) A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<!-- //권한 history -->
|
|
<select id="codeHistoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
A.*
|
|
FROM (
|
|
SELECT
|
|
A.*,
|
|
ROW_NUMBER() OVER (ORDER BY RM DESC) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
T.*,
|
|
ROW_NUMBER() OVER (ORDER BY REGDATE) AS RM,
|
|
(SELECT USER_NAME FROM USER_INFO UI WHERE T.WRITER = UI.USER_ID) AS WRITER_NAME,
|
|
TO_CHAR(T.REGDATE, 'YYYY-MM-DD') AS REGDATE_TITLE
|
|
FROM
|
|
COMM_CODE_HISTORY T
|
|
WHERE TARGET_OBJID = #{objId}::numeric
|
|
) A
|
|
WHERE 1=1
|
|
) A
|
|
WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
|
|
<!-- //권한 history -->
|
|
<select id="codeHistoryListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::numeric as TOTAL_CNT
|
|
FROM
|
|
COMM_CODE_HISTORY T
|
|
WHERE TARGET_OBJID = #{objId}::numeric
|
|
) A
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<select id="SrrateMngList" parameterType="map" resultType="map">
|
|
select
|
|
area
|
|
,from_value
|
|
,to_value
|
|
,sr_rate
|
|
from profit_loss_srrate
|
|
order by area desc,from_value asc
|
|
</select>
|
|
|
|
|
|
|
|
<delete id="DeleteSrrateMng" parameterType="map">
|
|
DELETE FROM profit_loss_srrate
|
|
</delete>
|
|
|
|
|
|
<insert id="insertSrrateMng" parameterType="map">
|
|
INSERT INTO
|
|
PROFIT_LOSS_SRRATE
|
|
( AREA
|
|
,FROM_VALUE
|
|
,TO_VALUE
|
|
,SR_RATE)
|
|
VALUES (
|
|
#{area}
|
|
,#{from_value}::numeric
|
|
,#{to_value}::numeric
|
|
,#{sr_rate}::numeric
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="LossRateList" parameterType="map" resultType="map">
|
|
select
|
|
area
|
|
,division
|
|
,from_value
|
|
,to_value
|
|
,lossrate
|
|
from profit_loss_lossrate
|
|
order by area desc,from_value asc
|
|
</select>
|
|
|
|
<delete id="DeleteLossRate" parameterType="map">
|
|
DELETE FROM profit_loss_lossrate
|
|
</delete>
|
|
|
|
|
|
<insert id="insertLossRate" parameterType="map">
|
|
INSERT INTO
|
|
profit_loss_lossrate
|
|
( AREA
|
|
,DIVISION
|
|
,FROM_VALUE
|
|
,TO_VALUE
|
|
,LOSSRATE)
|
|
VALUES (
|
|
#{area}
|
|
,#{division}
|
|
,#{from_value}::numeric
|
|
,#{to_value}::numeric
|
|
,#{lossrate}::numeric
|
|
)
|
|
</insert>
|
|
|
|
|
|
|
|
|
|
<select id="MachineTimeList" parameterType="map" resultType="map">
|
|
select
|
|
area
|
|
,from_value
|
|
,to_value
|
|
,second
|
|
from profit_loss_machine
|
|
order by area desc,from_value asc
|
|
</select>
|
|
|
|
|
|
<delete id="DeleteMachineTime" parameterType="map">
|
|
DELETE FROM profit_loss_machine
|
|
</delete>
|
|
|
|
|
|
<insert id="insertMachineTime" parameterType="map">
|
|
INSERT INTO
|
|
PROFIT_LOSS_MACHINE
|
|
( AREA
|
|
,FROM_VALUE
|
|
,TO_VALUE
|
|
,SECOND)
|
|
VALUES (
|
|
#{area}
|
|
,#{from_value}::numeric
|
|
,#{to_value}::numeric
|
|
,#{second}::numeric
|
|
)
|
|
</insert>
|
|
|
|
|
|
|
|
<select id="basicCoolingTimeList" parameterType="map" resultType="map">
|
|
select
|
|
area
|
|
,material
|
|
,second
|
|
from profit_loss_coolingtime
|
|
order by second
|
|
</select>
|
|
|
|
|
|
|
|
<delete id="DeletebasicCoolingTime" parameterType="map">
|
|
DELETE FROM profit_loss_coolingtime
|
|
</delete>
|
|
|
|
|
|
<insert id="insertbasicCoolingTime" parameterType="map">
|
|
INSERT INTO
|
|
PROFIT_LOSS_COOLINGTIME
|
|
( AREA
|
|
,MATERIAL
|
|
,SECOND
|
|
)
|
|
VALUES (
|
|
#{area}
|
|
,#{material}
|
|
,#{second}::numeric
|
|
)
|
|
</insert>
|
|
|
|
|
|
|
|
<select id="productdeptList" parameterType="map" resultType="map">
|
|
select
|
|
area
|
|
,from_value
|
|
,to_value
|
|
,coefficient
|
|
from profit_loss_depth
|
|
order by area desc,from_value asc
|
|
</select>
|
|
|
|
|
|
<delete id="Deleteproductdept" parameterType="map">
|
|
DELETE FROM profit_loss_depth
|
|
</delete>
|
|
|
|
|
|
<insert id="insertproductdept" parameterType="map">
|
|
INSERT INTO
|
|
PROFIT_LOSS_DEPTH
|
|
( AREA
|
|
,FROM_VALUE
|
|
,TO_VALUE
|
|
,COEFFICIENT)
|
|
VALUES (
|
|
#{area}
|
|
,#{from_value}::numeric
|
|
,#{to_value}::numeric
|
|
,#{coefficient}::numeric
|
|
)
|
|
</insert>
|
|
|
|
|
|
|
|
<select id="coefficientList" parameterType="map" resultType="map">
|
|
select
|
|
area
|
|
,from_value
|
|
,to_value
|
|
,coefficient
|
|
from profit_loss_coefficient
|
|
order by area desc,from_value asc
|
|
</select>
|
|
|
|
|
|
<delete id="Deletecoefficient" parameterType="map">
|
|
DELETE FROM profit_loss_coefficient
|
|
</delete>
|
|
|
|
|
|
<insert id="insertcoefficient" parameterType="map">
|
|
INSERT INTO
|
|
PROFIT_LOSS_COEFFICIENT
|
|
( AREA
|
|
,FROM_VALUE
|
|
,TO_VALUE
|
|
,COEFFICIENT)
|
|
VALUES (
|
|
#{area}
|
|
,#{from_value}::numeric
|
|
,#{to_value}::numeric
|
|
,#{coefficient}::numeric
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="weightList" parameterType="map" resultType="map">
|
|
select
|
|
area
|
|
,from_value
|
|
,to_value
|
|
,thickness
|
|
from profit_loss_weight
|
|
order by area desc,from_value asc
|
|
</select>
|
|
|
|
|
|
|
|
<delete id="DeleteweightList" parameterType="map">
|
|
DELETE FROM profit_loss_weight
|
|
</delete>
|
|
|
|
|
|
<insert id="insertweightList" parameterType="map">
|
|
INSERT INTO
|
|
PROFIT_LOSS_WEIGHT
|
|
( AREA
|
|
,FROM_VALUE
|
|
,TO_VALUE
|
|
,THICKNESS)
|
|
VALUES (
|
|
#{area}
|
|
,#{from_value}::numeric
|
|
,#{to_value}::numeric
|
|
,#{thickness}::numeric
|
|
)
|
|
</insert>
|
|
|
|
|
|
|
|
<select id="PreTimeList" parameterType="map" resultType="map">
|
|
select
|
|
area
|
|
,from_value
|
|
,to_value
|
|
,person
|
|
,pretime
|
|
from profit_loss_pretime
|
|
</select>
|
|
|
|
|
|
<delete id="DeletePreTimeList" parameterType="map">
|
|
DELETE FROM profit_loss_pretime
|
|
</delete>
|
|
|
|
|
|
<insert id="insertPreTimeList" parameterType="map">
|
|
INSERT INTO
|
|
PROFIT_LOSS_PRETIME
|
|
( AREA
|
|
,FROM_VALUE
|
|
,TO_VALUE
|
|
,PERSON
|
|
,PRETIME)
|
|
VALUES (
|
|
#{area}
|
|
,#{from_value}::numeric
|
|
,#{to_value}::numeric
|
|
,#{person}::numeric
|
|
,#{pretime}::numeric
|
|
)
|
|
</insert>
|
|
|
|
<!-- 탬플릿 리스트 Count를 가져온다. -->
|
|
<select id="gettemplateListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT T.*
|
|
FROM(
|
|
SELECT
|
|
T.OBJID
|
|
,T.template_code
|
|
,(SELECT o.code_name from comm_code o WHERE T.TEMPLATE_CODE = o.code_id) AS TEMPLATE_CODE_NAME
|
|
,(SELECT o.code_name from comm_code o WHERE T.TEMPLATE_CODE_DETAIL = o.code_id) AS TEMPLATE_CODE_DETAIL_NAME
|
|
,T.title
|
|
,TO_CHAR(T.REG_DATE,'YYYY-MM-DD') AS reg_date
|
|
,case UPPER(T.STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
,T.STATUS
|
|
FROM template_mng as T
|
|
WHERE 1=1
|
|
) T WHERE 1=1
|
|
<if test="temp_name != null and temp_name != ''">
|
|
AND UPPER(T.TEMPLATE_CODE_DETAIL_NAME) LIKE UPPER('%${temp_name}%')
|
|
</if>
|
|
<if test="searchStatus != null and searchStatus != ''">
|
|
AND UPPER(T.STATUS) LIKE UPPER('%${searchStatus}%')
|
|
</if>) T WHERE 1=1
|
|
)A WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 공급업체에 해당하는 정보 목록을 가져온다. -->
|
|
<select id="gettemplateList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT T.*, ROW_NUMBER() OVER(ORDER BY REG_DATE DESC) RNUM
|
|
FROM(
|
|
SELECT T.*
|
|
FROM(
|
|
SELECT
|
|
T.OBJID
|
|
,T.template_code
|
|
,(SELECT o.code_name from comm_code o WHERE T.TEMPLATE_CODE = o.code_id) AS TEMPLATE_CODE_NAME
|
|
<!-- ,contents -->
|
|
,(SELECT o.code_name from comm_code o WHERE T.TEMPLATE_CODE_DETAIL = o.code_id) AS TEMPLATE_CODE_DETAIL_NAME
|
|
,T.title
|
|
,TO_CHAR(T.REG_DATE,'YYYY-MM-DD') AS reg_date
|
|
,case UPPER(T.STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
,T.STATUS
|
|
FROM template_mng as T
|
|
WHERE 1=1
|
|
) T WHERE 1=1
|
|
<if test="temp_name != null and temp_name != ''">
|
|
AND UPPER(T.TEMPLATE_CODE_DETAIL_NAME) LIKE UPPER('%${temp_name}%')
|
|
</if>
|
|
<if test="searchStatus != null and searchStatus != ''">
|
|
AND UPPER(T.STATUS) LIKE UPPER('%${searchStatus}%')
|
|
</if>
|
|
) T WHERE 1=1
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 템플릿 단건 정보를 가져온다. -->
|
|
<select id="gettemplateMngInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,T.TEMPLATE_CODE
|
|
,T.TITLE
|
|
,TO_CHAR(T.REG_DATE,'YYYY-MM-DD') AS reg_date
|
|
,T.STATUS
|
|
,T.CONTENTS
|
|
,T.TEMPLATE_CODE_DETAIL
|
|
FROM template_mng as T
|
|
WHERE T.OBJID = #{objid}::numeric
|
|
</select>
|
|
|
|
<!-- 템플릿 리스트 정보를 가져온다. -->
|
|
<select id="gettemplateMngCodeInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,T.TEMPLATE_CODE
|
|
,T.TITLE
|
|
,TO_CHAR(T.REG_DATE,'YYYY-MM-DD') AS reg_date
|
|
,T.STATUS
|
|
,T.CONTENTS
|
|
,T.TEMPLATE_CODE_DETAIL
|
|
FROM template_mng as T
|
|
WHERE T.TEMPLATE_CODE_DETAIL = #{template_code_detail}
|
|
</select>
|
|
|
|
<!-- 템플릿 수정-->
|
|
<update id="templateFormSave" parameterType="map">
|
|
INSERT INTO TEMPLATE_MNG
|
|
(
|
|
OBJID
|
|
,TEMPLATE_CODE
|
|
,CONTENTS
|
|
,REG_DATE
|
|
,STATUS
|
|
,TEMPLATE_CODE_DETAIL
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid}::numeric
|
|
,#{template_code}
|
|
,#{contents}
|
|
,now()
|
|
,#{status}
|
|
,#{template_code_detail}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
TEMPLATE_CODE = #{template_code}
|
|
,CONTENTS = #{contents}
|
|
,STATUS = #{status}
|
|
,TEMPLATE_CODE_DETAIL = #{template_code_detail}
|
|
</update>
|
|
|
|
<!-- 템플릿 삭제 -->
|
|
<update id="deleteTemplateInfo" parameterType="map">
|
|
DELETE FROM TEMPLATE_MNG WHERE OBJID = #{objId}::NUMERIC
|
|
</update>
|
|
|
|
<!-- 공급업체에 상태 업데이트 -->
|
|
<update id="changeTemplateStatus" parameterType="map">
|
|
UPDATE TEMPLATE_MNG SET STATUS = #{status} WHERE OBJID = #{objid}::numeric
|
|
</update>
|
|
|
|
<update id="mergeSupplyCharger" parameterType="map">
|
|
INSERT INTO SUPPLY_CHARGER_MNG
|
|
(
|
|
OBJID,
|
|
CHARGER_TYPE,
|
|
SUPPLY_OBJID,
|
|
CHARGER_NAME,
|
|
PHONE,
|
|
TEL,
|
|
FAX,
|
|
EMAIL,
|
|
WRITER,
|
|
REGDATE
|
|
) VALUES (
|
|
#{OBJID},
|
|
#{CHARGER_TYPE},
|
|
#{SUPPLY_OBJID},
|
|
#{CHARGER_NAME},
|
|
#{PHONE},
|
|
#{TEL},
|
|
#{FAX},
|
|
#{EMAIL},
|
|
#{WRITER},
|
|
NOW()
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
CHARGER_TYPE = #{CHARGER_TYPE},
|
|
SUPPLY_OBJID = #{SUPPLY_OBJID},
|
|
CHARGER_NAME = #{CHARGER_NAME},
|
|
PHONE = #{PHONE},
|
|
TEL = #{TEL},
|
|
FAX = #{FAX},
|
|
EMAIL = #{EMAIL},
|
|
WRITER = #{WRITER}
|
|
</update>
|
|
|
|
<delete id="initSupplyCharger" parameterType="map">
|
|
DELETE FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID = #{objid}
|
|
</delete>
|
|
|
|
<update id="deletesupplyMngInfo" parameterType="map">
|
|
DELETE FROM ADMIN_SUPPLY_MNG WHERE OBJID = #{objId}::NUMERIC
|
|
</update>
|
|
|
|
|
|
<update id="deleteUserInfo" parameterType="map">
|
|
DELETE FROM USER_INFO WHERE USER_ID = #{objId}
|
|
</update>
|
|
|
|
|
|
|
|
<!--경영가이드 목록 -->
|
|
<select id ="getManagementGuideList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT
|
|
YYYY_Q
|
|
,SUBSTR(YYYY_Q, 3,2)||'-'||SUBSTR(YYYY_Q, 5) YY_MM
|
|
,REGDATE
|
|
,EDITDATE
|
|
,WRITER
|
|
,EDITER
|
|
,CONTENTS
|
|
,USER_NAME(WRITER ) AS WRITER_NAME
|
|
FROM COMM_MANAGEMENT_GUIDE AS T
|
|
WHERE 1=1
|
|
|
|
<if test="YYYY_Q !=null and YYYY_Q != '' ">
|
|
AND T.YYYY_Q = #{YYYY_Q}
|
|
</if>
|
|
<if test="YYYY_Qs !=null and YYYY_Qs != '' ">
|
|
AND POSITION(T.YYYY_Q||',' IN #{YYYY_Qs}||',') > 0
|
|
</if>
|
|
<if test="NATION_CODE_LIKE !=null and NATION_CODE_LIKE != '' ">
|
|
AND UPPER(NATION_CODE) LIKE '%' || UPPER(#{NATION_CODE_LIKE}) || '%'
|
|
</if>
|
|
) AS T
|
|
WHERE 1=1
|
|
ORDER BY YYYY_Q DESC
|
|
</select>
|
|
<!-- //경영가이드 상세조회 -->
|
|
<select id="getManagementGuide" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT
|
|
YYYY_Q
|
|
,REGDATE
|
|
,EDITDATE
|
|
,WRITER
|
|
,EDITER
|
|
,CONTENTS
|
|
,USER_NAME(WRITER ) AS WRITER_NAME
|
|
FROM COMM_MANAGEMENT_GUIDE AS T
|
|
WHERE T.YYYY_Q = #{YYYY_Q}
|
|
</select>
|
|
<!-- //경영가이드 저장 -->
|
|
<insert id="mergeManagementGuideInfo" parameterType="map">
|
|
MERGE INTO COMM_MANAGEMENT_GUIDE T
|
|
USING (SELECT
|
|
#{YYYY_Q} AS YYYY_Q
|
|
) AS T1
|
|
ON T.YYYY_Q = T1.YYYY_Q
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
EDITDATE = NOW()
|
|
,EDITER = #{WRITER}
|
|
,CONTENTS = #{CONTENTS}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
YYYY_Q
|
|
,REGDATE
|
|
,EDITDATE
|
|
,WRITER
|
|
,EDITER
|
|
,CONTENTS
|
|
) VALUES (
|
|
#{YYYY_Q}
|
|
,NOW()
|
|
,NULL
|
|
,#{WRITER}
|
|
,NULL
|
|
,#{CONTENTS}
|
|
)
|
|
</insert>
|
|
<!-- //경영가이드 삭제 -->
|
|
<delete id="deleteManagementGuide" parameterType="map">
|
|
DELETE FROM COMM_MANAGEMENT_GUIDE
|
|
WHERE YYYY_Q = #{YYYY_Q}
|
|
</delete>
|
|
|
|
|
|
<!--환율 갯수 구함 -->
|
|
<select id="getExchangeRateListCnt" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}::NUMERIC) MAX_PAGE_SIZE
|
|
,TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
YYYY_MM
|
|
FROM COMM_EXCHANGE_RATE
|
|
WHERE 1=1
|
|
) AS TBL WHERE 1=1
|
|
) AS A WHERE 1=1
|
|
</select>
|
|
|
|
<!--환율 목록 -->
|
|
<select id ="getExchangeRateList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT
|
|
YYYY_MM
|
|
,SUBSTR(YYYY_MM, 3,2)||'-'||SUBSTR(YYYY_MM, 5) YY_MM
|
|
,YYYY_MM_DD
|
|
,REGDATE
|
|
,EDITDATE
|
|
,WRITER
|
|
,EDITER
|
|
<!--
|
|
,NATION_CODE
|
|
,COST
|
|
-->
|
|
,COST_USD
|
|
,COST_EU
|
|
,COST_JAPAN
|
|
,COST_CHINA
|
|
,COST_VIETNAM
|
|
,COST_RUB
|
|
,COST_INR
|
|
,COST_THB
|
|
,COST_HKD
|
|
|
|
,COST_USD USD
|
|
,COST_EU EUR
|
|
,COST_JAPAN JPY
|
|
,COST_CHINA CNH
|
|
,COST_VIETNAM VTN
|
|
,COST_RUB RUB
|
|
,COST_INR INR
|
|
,COST_THB THB
|
|
,COST_HKD HKD
|
|
,USER_NAME(WRITER ) AS WRITER_NAME
|
|
<!--
|
|
,(SELECT O.USER_NAME FROM USER_INFO O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
-->
|
|
FROM COMM_EXCHANGE_RATE AS T
|
|
WHERE 1=1
|
|
|
|
<if test="YYYY !=null and YYYY != '' ">
|
|
AND T.YYYY_MM LIKE #{YYYY} || '%'
|
|
</if>
|
|
<if test="MM !=null and MM != '' ">
|
|
AND T.YYYY_MM LIKE '%' || #{MM}
|
|
</if>
|
|
<if test="YYYY_MM !=null and YYYY_MM != '' ">
|
|
AND T.YYYY_MM = #{YYYY_MM}
|
|
</if>
|
|
<if test="YYYY_MM_DD !=null and YYYY_MM_DD != '' ">
|
|
AND T.YYYY_MM_DD = #{YYYY_MM_DD}
|
|
</if>
|
|
<if test="YYYY_MMs !=null and YYYY_MMs != '' ">
|
|
AND POSITION(T.YYYY_MM||',' IN #{YYYY_MMs}||',') > 0
|
|
</if>
|
|
<if test="NATION_CODE_LIKE !=null and NATION_CODE_LIKE != '' ">
|
|
AND UPPER(NATION_CODE) LIKE '%' || UPPER(#{NATION_CODE_LIKE}) || '%'
|
|
</if>
|
|
|
|
) AS T
|
|
WHERE 1=1
|
|
ORDER BY YYYY_MM DESC
|
|
</select>
|
|
<!-- //환율 상세조회 -->
|
|
<select id="getExchangeRateInfo" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT
|
|
YYYY_MM
|
|
,REGDATE
|
|
,EDITDATE
|
|
,WRITER
|
|
,EDITER
|
|
<!--
|
|
,NATION_CODE
|
|
,COST
|
|
-->
|
|
,COST_USD
|
|
,COST_EU
|
|
,COST_JAPAN
|
|
,COST_CHINA
|
|
,COST_VIETNAM
|
|
,COST_RUB
|
|
,COST_INR
|
|
,USER_NAME(WRITER ) AS WRITER_NAME
|
|
FROM COMM_EXCHANGE_RATE AS T
|
|
WHERE T.YYYY_MM = #{YYYY_MM}
|
|
<if test="NATION_CODE !=null and NATION_CODE != '' ">
|
|
AND T.NATION_CODE = #{NATION_CODE}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //환율 저장 -->
|
|
<insert id="mergeExchangeRate" parameterType="map">
|
|
<!--
|
|
MERGE INTO COMM_EXCHANGE_RATE T
|
|
USING (SELECT
|
|
#{YYYY_MM} AS YYYY_MM
|
|
|
|
,#{NATION_CODE} AS NATION_CODE
|
|
|
|
) AS T1
|
|
ON T.YYYY_MM = T1.YYYY_MM
|
|
|
|
AND T.NATION_CODE = T1.NATION_CODE
|
|
|
|
WHEN MATCHED THEN
|
|
-->
|
|
WITH UPSERT AS (
|
|
UPDATE COMM_EXCHANGE_RATE
|
|
SET
|
|
EDITDATE = NOW()
|
|
,EDITER = #{WRITER}
|
|
<!--
|
|
,COST = #{COST}
|
|
-->
|
|
,COST_USD = #{COST_USD}
|
|
,COST_EU = #{COST_EU}
|
|
,COST_JAPAN = #{COST_JAPAN}
|
|
,COST_CHINA = #{COST_CHINA}
|
|
,COST_VIETNAM = #{COST_VIETNAM}
|
|
,COST_RUB = #{COST_RUB}
|
|
,COST_INR = #{COST_INR}
|
|
WHERE YYYY_MM = #{YYYY_MM}
|
|
)
|
|
<!--
|
|
WHEN NOT MATCHED THEN
|
|
-->
|
|
INSERT INTO COMM_EXCHANGE_RATE
|
|
(
|
|
YYYY_MM
|
|
,REGDATE
|
|
,EDITDATE
|
|
,WRITER
|
|
,EDITER
|
|
<!--
|
|
,NATION_CODE
|
|
,COST
|
|
-->
|
|
,COST_USD
|
|
,COST_EU
|
|
,COST_JAPAN
|
|
,COST_CHINA
|
|
,COST_VIETNAM
|
|
,COST_RUB
|
|
,COST_INR
|
|
)
|
|
<!--
|
|
VALUES (
|
|
-->
|
|
SELECT
|
|
#{YYYY_MM}
|
|
,NOW()
|
|
,NULL
|
|
,#{WRITER}
|
|
,NULL
|
|
<!--
|
|
,#{NATION_CODE}
|
|
,#{COST}
|
|
-->
|
|
,#{COST_USD}
|
|
,#{COST_EU}
|
|
,#{COST_JAPAN}
|
|
,#{COST_CHINA}
|
|
,#{COST_VIETNAM}
|
|
,#{COST_RUB}
|
|
,#{COST_INR}
|
|
WHERE NOT EXISTS (
|
|
SELECT
|
|
*
|
|
FROM COMM_EXCHANGE_RATE
|
|
WHERE YYYY_MM = #{YYYY_MM}
|
|
)
|
|
<!--
|
|
)
|
|
-->
|
|
</insert>
|
|
<!-- //환율 저장(한국수출입은행 API기준) -->
|
|
<insert id="mergeExchangeRateApi" parameterType="map">
|
|
WITH UPSERT AS (
|
|
UPDATE COMM_EXCHANGE_RATE
|
|
SET
|
|
EDITDATE = NOW()
|
|
,API_DATE = NOW()
|
|
,EDITER = #{WRITER}
|
|
<!--
|
|
,COST = #{COST}
|
|
-->
|
|
,COST_USD = #{USD}
|
|
,COST_EU = #{EUR}
|
|
,COST_JAPAN = #{JPY}
|
|
,COST_CHINA = #{CNH}
|
|
,COST_VIETNAM = #{VTN}
|
|
,COST_RUB = #{RUB}
|
|
,COST_INR = #{INR}
|
|
,COST_THB = #{THB}
|
|
,COST_HKD = #{HKD}
|
|
WHERE YYYY_MM = #{YYYY_MM}
|
|
AND YYYY_MM_DD = #{YYYY_MM_DD}
|
|
)
|
|
<!--
|
|
WHEN NOT MATCHED THEN
|
|
-->
|
|
INSERT INTO COMM_EXCHANGE_RATE
|
|
(
|
|
YYYY_MM
|
|
,YYYY_MM_DD
|
|
,REGDATE
|
|
,EDITDATE
|
|
,API_DATE
|
|
,WRITER
|
|
,EDITER
|
|
<!--
|
|
,NATION_CODE
|
|
,COST
|
|
-->
|
|
,COST_USD
|
|
,COST_EU
|
|
,COST_JAPAN
|
|
,COST_CHINA
|
|
,COST_VIETNAM
|
|
,COST_RUB
|
|
,COST_INR
|
|
,COST_THB
|
|
,COST_HKD
|
|
)
|
|
SELECT
|
|
|
|
#{YYYY_MM}
|
|
,#{YYYY_MM_DD}
|
|
,NOW()
|
|
,NULL
|
|
,NOW()
|
|
,#{WRITER}
|
|
,NULL
|
|
<!--
|
|
,#{NATION_CODE}
|
|
,#{COST}
|
|
-->
|
|
,#{USD}
|
|
,#{EUR}
|
|
,#{JPY}
|
|
,#{CNH}
|
|
,#{VTN}
|
|
,#{RUB}
|
|
,#{INR}
|
|
,#{THB}
|
|
,#{HKD}
|
|
WHERE NOT EXISTS (
|
|
SELECT
|
|
*
|
|
FROM COMM_EXCHANGE_RATE
|
|
WHERE YYYY_MM = #{YYYY_MM}
|
|
AND YYYY_MM_DD = #{YYYY_MM_DD}
|
|
)
|
|
</insert>
|
|
<!-- //환율 삭제 -->
|
|
<delete id="deleteExchangeRate" parameterType="map">
|
|
DELETE FROM COMM_EXCHANGE_RATE
|
|
WHERE YYYY_MM = #{YYYY_MM}
|
|
<if test="NATION_CODE !=null and NATION_CODE != '' ">
|
|
AND NATION_CODE = #{NATION_CODE}
|
|
</if>
|
|
</delete>
|
|
|
|
<select id="getmenuUp" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
WITH RECURSIVE v_menu(
|
|
LEVEL,
|
|
MENU_TYPE,
|
|
OBJID,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
MENU_PATH,
|
|
PATH,
|
|
CYCLE
|
|
) AS (
|
|
SELECT
|
|
1 AS LEVEL,
|
|
MENU_TYPE,
|
|
OBJID::numeric,
|
|
PARENT_OBJ_ID,
|
|
MENU_NAME_KOR,
|
|
MENU_URL,
|
|
MENU_DESC,
|
|
SEQ,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
MENU.MENU_NAME_KOR::VARCHAR,
|
|
ARRAY [MENU.SEQ],
|
|
FALSE
|
|
FROM MENU_INFO MENU
|
|
WHERE 1=1
|
|
<!--
|
|
AND PARENT_OBJ_ID = 0
|
|
-->
|
|
AND MENU_TYPE=1
|
|
AND OBJID = #{menuObjId}::NUMERIC
|
|
UNION ALL
|
|
SELECT
|
|
V_MENU.LEVEL+1,
|
|
MENU_SUB.MENU_TYPE,
|
|
MENU_SUB.OBJID,
|
|
MENU_SUB.PARENT_OBJ_ID,
|
|
MENU_SUB.MENU_NAME_KOR,
|
|
MENU_SUB.MENU_URL,
|
|
MENU_SUB.MENU_DESC,
|
|
MENU_SUB.SEQ,
|
|
MENU_SUB.WRITER,
|
|
MENU_SUB.REGDATE,
|
|
MENU_SUB.STATUS,
|
|
MENU_SUB.MENU_NAME_KOR::VARCHAR || '_' || V_MENU.MENU_PATH,
|
|
PATH||MENU_SUB.SEQ::NUMERIC,
|
|
MENU_SUB.OBJID = ANY(PATH)
|
|
FROM MENU_INFO MENU_SUB
|
|
JOIN V_MENU
|
|
ON MENU_SUB.OBJID = V_MENU.PARENT_OBJ_ID
|
|
WHERE 1=1
|
|
AND UPPER(MENU_SUB.STATUS) = 'ACTIVE'
|
|
)
|
|
SELECT
|
|
V.LEVEL,
|
|
V.MENU_PATH,
|
|
A.*
|
|
FROM MENU_INFO A
|
|
,V_MENU V
|
|
WHERE 1=1
|
|
<!--
|
|
AND A.AND PARENT_OBJ_ID = #{MENUOBJID}::NUMERIC
|
|
-->
|
|
AND A.OBJID = V.OBJID
|
|
AND A.STATUS = 'active'
|
|
AND (
|
|
EXISTS (
|
|
SELECT 'E'
|
|
<!--
|
|
B.MENU_OBJID,
|
|
SUM(CASE B.CREATE_YN WHEN 'Y' THEN 1 ELSE 0 END) CREATE_AUTH_CNT,
|
|
SUM(CASE B.READ_YN WHEN 'Y' THEN 1 ELSE 0 END) READ_AUTH_CNT,
|
|
SUM(CASE B.UPDATE_YN WHEN 'Y' THEN 1 ELSE 0 END) UPDATE_AUTH_CNT,
|
|
SUM(CASE B.DELETE_YN WHEN 'Y' THEN 1 ELSE 0 END) DELETE_AUTH_CNT
|
|
-->
|
|
FROM
|
|
REL_MENU_AUTH B,
|
|
AUTHORITY_MASTER C
|
|
WHERE 1=1
|
|
AND A.OBJID = B.MENU_OBJID
|
|
AND B.AUTH_OBJID = C.OBJID
|
|
AND C.OBJID IN (
|
|
SELECT
|
|
MASTER_OBJID
|
|
FROM
|
|
AUTHORITY_SUB_USER
|
|
WHERE
|
|
USER_ID = #{userId}
|
|
)
|
|
)
|
|
OR EXISTS (SELECT 'E'
|
|
FROM AUTHORITY_MASTER AM
|
|
,AUTHORITY_SUB_USER ASU
|
|
WHERE AM.AUTH_CODE = '0000'
|
|
AND AM.OBJID = ASU.MASTER_OBJID
|
|
AND ASU.USER_ID = #{userId}
|
|
)
|
|
)
|
|
<!--
|
|
ORDER BY A.SEQ
|
|
-->
|
|
ORDER BY V.PATH
|
|
</select> <!-- 사용자 비밀번호 변경 --> <update id="updateUserPassword" parameterType="map"> UPDATE USER_INFO SET USER_PASSWORD = #{USER_PWD} WHERE USER_ID = #{USER_ID} </update></mapper> |