- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
839 lines
30 KiB
XML
839 lines
30 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="spec">
|
|
|
|
<!-- 기술자료 목록을 가져온다. -->
|
|
<select id="getSpecDataList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(SELECT *
|
|
FROM
|
|
(
|
|
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) AS RNUM,
|
|
SPEC_INFO.*,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = SPEC_INFO.PARENT_CATEGORY_OBJID
|
|
) PARENT_CATEGORY_NAME ,
|
|
|
|
(SELECT T.CATEGORY_NAME FROM (SELECT T.*,LEVEL AS LEV
|
|
FROM STANDARD_DOC_CATEGORY T
|
|
START WITH T.PARENT_OBJID IS NULL
|
|
CONNECT BY PRIOR T.OBJID =T.PARENT_OBJID) T
|
|
WHERE T.OBJID= (SELECT O.PARENT_OBJID FROM STANDARD_DOC_CATEGORY O WHERE O.OBJID = SPEC_INFO.PARENT_CATEGORY_OBJID)
|
|
)AS PARENT_PARENT_CATEGORY_NAME ,
|
|
|
|
(SELECT ROOT_NAME FROM (SELECT CONNECT_BY_ROOT CATEGORY_NAME AS ROOT_NAME,T.*,LEVEL AS LEV
|
|
FROM STANDARD_DOC_CATEGORY T
|
|
START WITH T.PARENT_OBJID IS NULL
|
|
CONNECT BY PRIOR T.OBJID =T.PARENT_OBJID) T
|
|
WHERE T.OBJID=SPEC_INFO.CATEGORY_OBJID)AS ROOT_CATEGORY_NAME
|
|
FROM
|
|
(SELECT OBJID,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) CATEGORY_NAME,
|
|
(SELECT PARENT_OBJID
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) PARENT_CATEGORY_OBJID,
|
|
(SELECT SPEC_INPUT_TYPE
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) SPEC_INPUT_TYPE,
|
|
CATEGORY_OBJID,
|
|
DOC_NO,
|
|
DOC_NAME,
|
|
(SELECT PRODUCT_GROUP_NAME
|
|
FROM PRODUCT_GROUP_MNG
|
|
WHERE OBJID = DOC_INFO.PRODUCT_GROUP_OBJID
|
|
) PRODUCT_GROUP_NAME,
|
|
PRODUCT_GROUP_OBJID,
|
|
(SELECT PRODUCT_NAME
|
|
FROM PRODUCT_MNG
|
|
WHERE OBJID = DOC_INFO.PRODUCT_OBJID
|
|
) PRODUCT_NAME,
|
|
PRODUCT_OBJID,
|
|
(SELECT CAR_NAME
|
|
FROM CAR_MNG
|
|
WHERE OBJID = DOC_INFO.CAR_OBJID
|
|
) CAR_NAME,
|
|
CAR_OBJID,
|
|
GRADE_OBJID,
|
|
COMPATITION_CAR_NAME,
|
|
STANDARD_NAME,
|
|
DESCRIPTION,
|
|
CHANGE_HISTORY,
|
|
STEP,
|
|
REV,
|
|
REVISION_ORDER,
|
|
EO_NO,
|
|
ESTABLISH_DATE ESTABLISH_DATE_ORG,
|
|
TO_CHAR(ESTABLISH_DATE,'YYYY-MM-DD') ESTABLISH_DATE,
|
|
REVISION_DATE REVISION_DATE_ORG,
|
|
TO_CHAR(REVISION_DATE,'YYYY-MM-DD') REVISION_DATE,
|
|
IS_LAST,
|
|
WRITER,
|
|
(SELECT O1.USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = DOC_INFO.WRITER) AS WRITER_NAME,
|
|
(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = DOC_INFO.OBJID AND DOC_TYPE='DOC_SPEC' AND UPPER(STATUS) = 'ACTIVE') AS FILECNT,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
STATUS,
|
|
SPEC_NO
|
|
FROM STANDARD_DOC_INFO DOC_INFO
|
|
WHERE 1=1
|
|
) SPEC_INFO
|
|
WHERE 1=1
|
|
<!-- <choose>
|
|
<when test=" listType == 'SPEC' ">
|
|
AND SPEC_INPUT_TYPE = #{listType}
|
|
</when>
|
|
<when test=" listType == 'benchMarking' ">
|
|
AND SPEC_INPUT_TYPE = #{listType}
|
|
</when>
|
|
<otherwise>
|
|
AND SPEC_INPUT_TYPE NOT IN ('SPEC','benchMarking')
|
|
</otherwise>
|
|
</choose> -->
|
|
|
|
<if test="search_category != null and search_category != ''">
|
|
AND SPEC_INFO.CATEGORY_OBJID IN(SELECT OBJID FROM STANDARD_DOC_CATEGORY T
|
|
START WITH T.OBJID = #{search_category}
|
|
CONNECT BY PRIOR T.OBJID =T.PARENT_OBJID)
|
|
</if>
|
|
|
|
<if test="search_revisionFromDate != null and search_revisionFromDate != ''">
|
|
AND TO_DATE(REVISION_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_revisionFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_revisionToDate != null and search_revisionToDate != ''">
|
|
AND TO_DATE(REVISION_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_revisionToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_establishFromDate != null and search_establishFromDate != ''">
|
|
AND TO_DATE(ESTABLISH_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_establishFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_establishToDate != null and search_establishToDate != ''">
|
|
AND TO_DATE(ESTABLISH_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_establishToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_regFromDate != null and search_regFromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_regFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_regToDate != null and search_regToDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_regToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_docName != null and search_docName != ''">
|
|
AND DOC_NAME LIKE '%${search_docName}%'
|
|
</if>
|
|
<if test="search_docNo != null and search_docNo != ''">
|
|
AND DOC_NO LIKE '%${search_docNo}%'
|
|
</if>
|
|
<if test="search_specNo != null and search_specNo != ''">
|
|
AND SPEC_NO LIKE '%${search_specNo}%'
|
|
</if>
|
|
<if test=" 1 == search_isLast ">
|
|
AND SPEC_INFO.IS_LAST = 1
|
|
</if>
|
|
<if test="search_eoNo != null and search_eoNo != ''">
|
|
AND UPPER(SPEC_INFO.EO_NO) LIKE UPPER('%${search_eoNo}%')
|
|
</if>
|
|
<if test="search_categoryName != null and search_categoryName != ''">
|
|
AND SPEC_INFO.CATEGORY_NAME = #{search_categoryName}
|
|
</if>
|
|
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND SPEC_INFO.WRITER_NAME LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
|
|
|
|
|
|
) TBL
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ WHERE RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
)
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ WHERE RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 기술 문서 Revision List -->
|
|
<select id="getRevisionList" resultType="map" parameterType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,NVL(TO_CHAR(T.REVISION_DATE,'YYYY-MM-DD'),'-') AS REVISION_DATE
|
|
,NVL(TO_CHAR(T.REGDATE,'YYYY-MM-DD'),'-') AS REG_DATE
|
|
,REV
|
|
,TRIM(TO_CHAR(T.DESCRIPTION)) AS DESCRIPTION
|
|
,NVL((SELECT WM_CONCAT(T1.OBJID) FROM ATTACH_FILE_INFO T1 WHERE T1.TARGET_OBJID = T.OBJID AND T1.Status='Active'),'-') AS FILE_OBJID
|
|
,NVL((SELECT WM_CONCAT(T1.REAL_FILE_NAME) FROM ATTACH_FILE_INFO T1 WHERE T1.TARGET_OBJID = T.OBJID AND T1.Status='Active'),'-') AS REAL_FILE_NAME
|
|
FROM STANDARD_DOC_INFO T
|
|
WHERE T.DOC_NO=#{DOC_NO}
|
|
AND T.REV <![CDATA[ < ]]> #{REV}
|
|
ORDER BY T.REV DESC
|
|
</select>
|
|
|
|
|
|
<!-- 기술자료 목록의 count를 가져온다. -->
|
|
<!-- 기술자료 목록의 count를 가져온다. -->
|
|
<select id="getSpecDataListCnt" 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,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) CATEGORY_NAME,
|
|
(SELECT PARENT_OBJID
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) PARENT_CATEGORY_OBJID,
|
|
(SELECT SPEC_INPUT_TYPE
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) SPEC_INPUT_TYPE,
|
|
CATEGORY_OBJID,
|
|
DOC_NO,
|
|
DOC_NAME,
|
|
(SELECT PRODUCT_GROUP_NAME
|
|
FROM PRODUCT_GROUP_MNG
|
|
WHERE OBJID = DOC_INFO.PRODUCT_GROUP_OBJID
|
|
) PRODUCT_GROUP_NAME,
|
|
PRODUCT_GROUP_OBJID,
|
|
(SELECT PRODUCT_NAME
|
|
FROM PRODUCT_MNG
|
|
WHERE OBJID = DOC_INFO.PRODUCT_OBJID
|
|
) PRODUCT_NAME,
|
|
PRODUCT_OBJID,
|
|
(SELECT CAR_NAME
|
|
FROM CAR_MNG
|
|
WHERE OBJID = DOC_INFO.CAR_OBJID
|
|
) CAR_NAME,
|
|
CAR_OBJID,
|
|
GRADE_OBJID,
|
|
COMPATITION_CAR_NAME,
|
|
STANDARD_NAME,
|
|
DESCRIPTION,
|
|
CHANGE_HISTORY,
|
|
STEP,
|
|
REV,
|
|
REVISION_ORDER,
|
|
EO_NO,
|
|
ESTABLISH_DATE ESTABLISH_DATE_ORG,
|
|
TO_CHAR(ESTABLISH_DATE,'YYYY-MM-DD') ESTABLISH_DATE,
|
|
REVISION_DATE REVISION_DATE_ORG,
|
|
TO_CHAR(REVISION_DATE,'YYYY-MM-DD') REVISION_DATE,
|
|
IS_LAST,
|
|
WRITER,
|
|
(SELECT O1.USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = DOC_INFO.WRITER) AS WRITER_NAME,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
STATUS,
|
|
SPEC_NO
|
|
FROM STANDARD_DOC_INFO DOC_INFO
|
|
WHERE 1=1
|
|
) SPEC_INFO
|
|
WHERE 1=1
|
|
<!-- <choose>
|
|
<when test=" listType == 'SPEC' ">
|
|
AND SPEC_INPUT_TYPE = #{listType}
|
|
</when>
|
|
<when test=" listType == 'benchMarking' ">
|
|
AND SPEC_INPUT_TYPE = #{listType}
|
|
</when>
|
|
<otherwise>
|
|
AND SPEC_INPUT_TYPE NOT IN ('SPEC','benchMarking')
|
|
</otherwise>
|
|
</choose> -->
|
|
<if test="search_category != null and search_category != ''">
|
|
AND SPEC_INFO.CATEGORY_OBJID IN(SELECT OBJID FROM STANDARD_DOC_CATEGORY T
|
|
START WITH T.OBJID = #{search_category}
|
|
CONNECT BY PRIOR T.OBJID =T.PARENT_OBJID)
|
|
</if>
|
|
<if test="search_revisionFromDate != null and search_revisionFromDate != ''">
|
|
AND TO_DATE(REVISION_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_revisionFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_revisionToDate != null and search_revisionToDate != ''">
|
|
AND TO_DATE(REVISION_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_revisionToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_establishFromDate != null and search_establishFromDate != ''">
|
|
AND TO_DATE(ESTABLISH_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_establishFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_establishToDate != null and search_establishToDate != ''">
|
|
AND TO_DATE(ESTABLISH_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_establishToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_regFromDate != null and search_regFromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_regFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_regToDate != null and search_regToDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_regToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_docName != null and search_docName != ''">
|
|
AND DOC_NAME LIKE '%${search_docName}%'
|
|
</if>
|
|
<if test="search_docNo != null and search_docNo != ''">
|
|
AND DOC_NO LIKE '%${search_docNo}%'
|
|
</if>
|
|
<if test="search_specNo != null and search_specNo != ''">
|
|
AND SPEC_NO LIKE '%${search_specNo}%'
|
|
</if>
|
|
<if test=" 1 == search_isLast ">
|
|
AND SPEC_INFO.IS_LAST = 1
|
|
</if>
|
|
<if test="search_eoNo != null and search_eoNo != ''">
|
|
AND UPPER(SPEC_INFO.EO_NO) LIKE UPPER('%${search_eoNo}%')
|
|
</if>
|
|
<if test="search_categoryName != null and search_categoryName != ''">
|
|
AND SPEC_INFO.CATEGORY_NAME = #{search_categoryName}
|
|
</if>
|
|
|
|
<if test="search_writer != null and search_writer != ''">
|
|
AND SPEC_INFO.WRITER_NAME LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
)
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 기술자료 저장/수정 -->
|
|
<update id="saveSpecData" parameterType="map">
|
|
|
|
MERGE INTO STANDARD_DOC_INFO T USING DUAL ON ( T.OBJID = #{objid})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
T.CATEGORY_OBJID = #{categoryObjid},
|
|
T.DOC_NO = #{docNo},
|
|
T.DOC_NAME = #{docName},
|
|
T.PRODUCT_GROUP_OBJID = #{productFamily},
|
|
T.PRODUCT_OBJID = #{product},
|
|
T.CAR_OBJID = #{car},
|
|
T.GRADE_OBJID = #{grade},
|
|
T.COMPATITION_CAR_NAME = #{compatitionCar},
|
|
T.OEM_OBJID = #{oem},
|
|
T.COMPANY_OBJID = #{compete},
|
|
T.STANDARD_NAME = #{standardName},
|
|
T.DESCRIPTION = #{description},
|
|
T.CHANGE_HISTORY = #{changeHistory},
|
|
T.STEP = #{step},
|
|
T.REV = #{revision},
|
|
T.REVISION_ORDER = #{revisionOrder},
|
|
T.EO_NO = #{eoNo},
|
|
T.IS_LAST = #{isLast},
|
|
T.SPEC_NO = #{specNo}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.CATEGORY_OBJID,
|
|
T.DOC_NO,
|
|
T.DOC_NAME,
|
|
T.PRODUCT_GROUP_OBJID,
|
|
T.PRODUCT_OBJID,
|
|
T.CAR_OBJID,
|
|
T.GRADE_OBJID,
|
|
T.COMPATITION_CAR_NAME,
|
|
T.COMPANY_OBJID,
|
|
T.OEM_OBJID,
|
|
T.STANDARD_NAME,
|
|
T.DESCRIPTION,
|
|
T.CHANGE_HISTORY,
|
|
T.STEP,
|
|
T.REV,
|
|
T.REVISION_ORDER,
|
|
T.EO_NO,
|
|
T.ESTABLISH_DATE,
|
|
T.REVISION_DATE,
|
|
T.IS_LAST,
|
|
T.WRITER,
|
|
T.REGDATE,
|
|
T.STATUS,
|
|
T.SPEC_NO
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid},
|
|
#{categoryObjid},
|
|
#{docNo},
|
|
#{docName},
|
|
#{productFamily},
|
|
#{product},
|
|
#{car},
|
|
#{grade},
|
|
#{compatitionCar},
|
|
#{compete},
|
|
#{oem},
|
|
#{standardName},
|
|
#{description},
|
|
#{changeHistory},
|
|
#{step},
|
|
#{revision},
|
|
#{revisionOrder},
|
|
#{eoNo},
|
|
TO_DATE(#{establishDate}),
|
|
TO_DATE(#{revisionDate}),
|
|
#{isLast},
|
|
#{writer},
|
|
SYSDATE,
|
|
#{status},
|
|
#{specNo}
|
|
)
|
|
</update>
|
|
|
|
<insert id="revisionSpecData" parameterType="map">
|
|
INSERT
|
|
INTO STANDARD_DOC_INFO
|
|
(
|
|
CAR_OBJID,
|
|
CATEGORY_OBJID,
|
|
CHANGE_HISTORY,
|
|
COMPANY_OBJID,
|
|
COMPATITION_CAR_NAME,
|
|
COMPETE_COMPANY_OBJID,
|
|
DESCRIPTION,
|
|
DOC_NAME,
|
|
DOC_NO,
|
|
GRADE_OBJID,
|
|
IS_LAST,
|
|
OBJID,
|
|
OEM_OBJID,
|
|
PRODUCT_GROUP_OBJID,
|
|
PRODUCT_OBJID,
|
|
REGDATE,
|
|
REV,
|
|
REVISION_DATE,
|
|
SPEC_NO,
|
|
STANDARD_NAME,
|
|
STATUS,
|
|
STEP,
|
|
WRITER
|
|
)
|
|
SELECT CAR_OBJID,
|
|
CATEGORY_OBJID,
|
|
CHANGE_HISTORY,
|
|
COMPANY_OBJID,
|
|
COMPATITION_CAR_NAME,
|
|
COMPETE_COMPANY_OBJID,
|
|
DESCRIPTION,
|
|
DOC_NAME,
|
|
DOC_NO,
|
|
GRADE_OBJID,
|
|
'1' IS_LAST,
|
|
#{objid} OBJID,
|
|
OEM_OBJID,
|
|
PRODUCT_GROUP_OBJID,
|
|
PRODUCT_OBJID,
|
|
SYSDATE REGDATE,
|
|
#{revision} REV,
|
|
SYSDATE REVISION_DATE,
|
|
SPEC_NO,
|
|
STANDARD_NAME,
|
|
STATUS,
|
|
STEP,
|
|
WRITER
|
|
FROM STANDARD_DOC_INFO
|
|
WHERE OBJID = #{oldObjid}
|
|
</insert>
|
|
|
|
<update id="updateSpecDataIsLast" parameterType="map">
|
|
UPDATE STANDARD_DOC_INFO SET IS_LAST = '0' WHERE OBJID = #{objid}
|
|
</update>
|
|
|
|
<!-- 등록된 기술자료의 상세 내용을 가져온다. -->
|
|
<select id="getSpecDataInfo" parameterType="map" resultType="map">
|
|
SELECT * FROM(
|
|
SELECT OBJID,
|
|
CATEGORY_OBJID,
|
|
(SELECT SPEC_INPUT_TYPE FROM STANDARD_DOC_CATEGORY WHERE OBJID = T.CATEGORY_OBJID) CATEGORY_TYPE,
|
|
(SELECT CATEGORY_NAME FROM STANDARD_DOC_CATEGORY WHERE OBJID = T.CATEGORY_OBJID) CATEGORY_NAME,
|
|
(SELECT PARENT_OBJID FROM STANDARD_DOC_CATEGORY WHERE OBJID = T.CATEGORY_OBJID) PARENT_CATEGORY_OBJID,
|
|
DOC_NO,
|
|
DOC_NAME,
|
|
PRODUCT_GROUP_OBJID,
|
|
(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PRODUCT_GROUP_OBJID) PRODUCT_GROUP_NAME,
|
|
PRODUCT_OBJID,
|
|
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) PRODUCT_NAME,
|
|
CAR_OBJID,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = CAR_OBJID) CAR_NAME,
|
|
GRADE_OBJID,
|
|
(SELECT GRADE_NAME FROM CAR_GRADE_MNG WHERE OBJID = GRADE_OBJID) GRADE_NAME,
|
|
COMPANY_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = COMPANY_OBJID) COMPANY_NAME,
|
|
OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = OEM_OBJID) OEM_NAME,
|
|
COMPATITION_CAR_NAME,
|
|
STANDARD_NAME,
|
|
DESCRIPTION,
|
|
CHANGE_HISTORY,
|
|
STEP,
|
|
REV,
|
|
REVISION_ORDER,
|
|
EO_NO,
|
|
ESTABLISH_DATE ESTABLISH_DATE_ORG,
|
|
TO_CHAR(ESTABLISH_DATE,'YYYY-MM-DD') ESTABLISH_DATE,
|
|
REVISION_DATE REVISION_DATE_ORG,
|
|
TO_CHAR(REVISION_DATE,'YYYY-MM-DD') REVISION_DATE,
|
|
IS_LAST,
|
|
WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) USER_NAME,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) DEPT_NAME,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
STATUS,
|
|
SPEC_NO
|
|
FROM STANDARD_DOC_INFO T
|
|
WHERE 1=1
|
|
)WHERE 1=1
|
|
<if test=" objid != '' and objid != null">
|
|
AND OBJID = #{objid}
|
|
</if>
|
|
<if test=" search_specNo != '' and search_specNo != null ">
|
|
AND SPEC_NO = #{search_specNo}
|
|
</if>
|
|
<if test=" categoryObjid != '' and categoryObjid != null ">
|
|
AND CATEGORY_OBJID = #{categoryObjid}
|
|
</if>
|
|
<if test=" parentObjid != '' and parentObjid != null ">
|
|
AND PARENT_CATEGORY_OBJID = #{parentObjid}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 검색조건에 해당하는 기술자료 목록을 가져온다. -->
|
|
<select id="getSpecDataInfoList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) AS RNUM,
|
|
SPEC_INFO.*,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = SPEC_INFO.PARENT_CATEGORY_OBJID
|
|
) PARENT_CATEGORY_NAME
|
|
FROM
|
|
(SELECT OBJID,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) CATEGORY_NAME,
|
|
(SELECT PARENT_OBJID
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) PARENT_CATEGORY_OBJID,
|
|
(SELECT SPEC_INPUT_TYPE
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) SPEC_INPUT_TYPE,
|
|
CATEGORY_OBJID,
|
|
DOC_NO,
|
|
DOC_NAME,
|
|
(SELECT PRODUCT_GROUP_NAME
|
|
FROM PRODUCT_GROUP_MNG
|
|
WHERE OBJID = DOC_INFO.PRODUCT_GROUP_OBJID
|
|
) PRODUCT_GROUP_NAME,
|
|
PRODUCT_GROUP_OBJID,
|
|
(SELECT PRODUCT_NAME
|
|
FROM PRODUCT_MNG
|
|
WHERE OBJID = DOC_INFO.PRODUCT_OBJID
|
|
) PRODUCT_NAME,
|
|
PRODUCT_OBJID,
|
|
(SELECT CAR_NAME
|
|
FROM CAR_MNG
|
|
WHERE OBJID = DOC_INFO.CAR_OBJID
|
|
) CAR_NAME,
|
|
CAR_OBJID,
|
|
GRADE_OBJID,
|
|
COMPATITION_CAR_NAME,
|
|
STANDARD_NAME,
|
|
DESCRIPTION,
|
|
CHANGE_HISTORY,
|
|
STEP,
|
|
REV,
|
|
ESTABLISH_DATE ESTABLISH_DATE_ORG,
|
|
TO_CHAR(ESTABLISH_DATE,'YYYY-MM-DD') ESTABLISH_DATE,
|
|
REVISION_DATE REVISION_DATE_ORG,
|
|
TO_CHAR(REVISION_DATE,'YYYY-MM-DD') REVISION_DATE,
|
|
IS_LAST,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
STATUS,
|
|
SPEC_NO
|
|
FROM STANDARD_DOC_INFO DOC_INFO
|
|
WHERE 1=1
|
|
) SPEC_INFO
|
|
WHERE 1=1
|
|
<if test=" search_docNo != '' and search_docNo != null ">
|
|
AND DOC_NO LIKE '%${search_docNo}%'
|
|
</if>
|
|
<if test=" search_specNo != '' and search_specNo != null ">
|
|
AND SPEC_NO LIKE '%${search_specNo}%'
|
|
</if>
|
|
<if test=" search_standardName != '' and search_standardName != null ">
|
|
AND STANDARD_NAME LIKE '%${search_standardName}%'
|
|
</if>
|
|
<if test=" search_docName != '' and search_docName != null ">
|
|
AND DOC_NAME LIKE '%${search_docName}%'
|
|
</if>
|
|
<if test=" listType != '' and listType != null ">
|
|
AND SPEC_INPUT_TYPE = #{listType}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="getTransSpecDataTargetList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) AS RNUM,
|
|
SPEC_INFO.*,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = SPEC_INFO.PARENT_CATEGORY_OBJID
|
|
) PARENT_CATEGORY_NAME
|
|
FROM
|
|
(SELECT OBJID,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) CATEGORY_NAME,
|
|
(SELECT PARENT_OBJID
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) PARENT_CATEGORY_OBJID,
|
|
(SELECT SPEC_INPUT_TYPE
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = DOC_INFO.CATEGORY_OBJID
|
|
) SPEC_INPUT_TYPE,
|
|
CATEGORY_OBJID,
|
|
DOC_NO,
|
|
DOC_NAME,
|
|
(SELECT PRODUCT_GROUP_NAME
|
|
FROM PRODUCT_GROUP_MNG
|
|
WHERE OBJID = DOC_INFO.PRODUCT_GROUP_OBJID
|
|
) PRODUCT_GROUP_NAME,
|
|
PRODUCT_GROUP_OBJID,
|
|
(SELECT PRODUCT_NAME
|
|
FROM PRODUCT_MNG
|
|
WHERE OBJID = DOC_INFO.PRODUCT_OBJID
|
|
) PRODUCT_NAME,
|
|
PRODUCT_OBJID,
|
|
(SELECT CAR_NAME
|
|
FROM CAR_MNG
|
|
WHERE OBJID = DOC_INFO.CAR_OBJID
|
|
) CAR_NAME,
|
|
CAR_OBJID,
|
|
GRADE_OBJID,
|
|
COMPATITION_CAR_NAME,
|
|
STANDARD_NAME,
|
|
DESCRIPTION,
|
|
CHANGE_HISTORY,
|
|
STEP,
|
|
REV,
|
|
ESTABLISH_DATE ESTABLISH_DATE_ORG,
|
|
TO_CHAR(ESTABLISH_DATE,'YYYY-MM-DD') ESTABLISH_DATE,
|
|
REVISION_DATE REVISION_DATE_ORG,
|
|
TO_CHAR(REVISION_DATE,'YYYY-MM-DD') REVISION_DATE,
|
|
IS_LAST,
|
|
WRITER,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
|
|
REGDATE REGDATE_ORG,
|
|
STATUS,
|
|
SPEC_NO
|
|
FROM STANDARD_DOC_INFO DOC_INFO
|
|
WHERE 1=1
|
|
AND IS_LAST = '1'
|
|
) SPEC_INFO
|
|
WHERE 1=1
|
|
<if test=" search_docNo != '' and search_docNo != null ">
|
|
AND DOC_NO LIKE '%${search_docNo}%'
|
|
</if>
|
|
<if test=" search_specNo != '' and search_specNo != null ">
|
|
AND SPEC_NO LIKE '%${search_specNo}%'
|
|
</if>
|
|
<if test=" search_standardName != '' and search_standardName != null ">
|
|
AND STANDARD_NAME LIKE '%${search_standardName}%'
|
|
</if>
|
|
<if test=" listType != '' and listType != null ">
|
|
AND SPEC_INPUT_TYPE = #{listType}
|
|
</if>
|
|
<if test=" categoryObjId != '' and categoryObjId != null ">
|
|
AND CATEGORY_OBJID = #{categoryObjId}
|
|
</if>
|
|
AND SPEC_NO NOT IN (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid})
|
|
AND NOT EXISTS (SELECT 1 FROM SPEC_LINK_INFO WHERE 1=1 AND AFTER_SPEC_NO IN(SPEC_NO) OR BEFORE_SPEC_NO IN(SPEC_NO))
|
|
</select>
|
|
|
|
<!-- 해당하는 기술정보의 카테고리 정보를 가져온다. -->
|
|
<select id="getSpecDataInfoCategorySet" parameterType="map" resultType="map">
|
|
SELECT T.*,
|
|
(SELECT CATEGORY_NAME FROM STANDARD_DOC_CATEGORY WHERE OBJID = T.CATEGORY_HIGH_OBJID)CATEGORY_HIGH_CATEGORY_NAME
|
|
FROM(
|
|
SELECT
|
|
OBJID,
|
|
CATEGORY_NAME,
|
|
PARENT_OBJID,
|
|
(SELECT CATEGORY_NAME FROM STANDARD_DOC_CATEGORY WHERE OBJID = T.PARENT_OBJID)PARENT_CATEGORY_NAME,
|
|
(SELECT PARENT_OBJID FROM STANDARD_DOC_CATEGORY WHERE OBJID = T.PARENT_OBJID) CATEGORY_HIGH_OBJID,
|
|
STATUS,
|
|
USE_CAR,
|
|
USE_COMPATITION_CAR,
|
|
USE_DOC_LINK,
|
|
USE_PRODUCT,
|
|
USE_PRODUCT_GROUP,
|
|
USE_REVISION,
|
|
SPEC_INPUT_TYPE
|
|
FROM STANDARD_DOC_CATEGORY T
|
|
WHERE OBJID IN
|
|
(SELECT CATEGORY_OBJID
|
|
FROM STANDARD_DOC_INFO
|
|
WHERE OBJID = #{objid}
|
|
)
|
|
<if test=" status != '' and status != null ">
|
|
AND STATUS = #{status}
|
|
</if>
|
|
)T
|
|
</select>
|
|
|
|
<!-- 소분류 선택 후 기존에 등록된 기술자료가 있는 경우 문서번호를 자동으로 생성해온다. -->
|
|
<select id="createCategoryDocBaseInfo" parameterType="map" resultType="map">
|
|
SELECT T.*,
|
|
NVL2(DOC_MAX_NO,DOC_NO_RULE||'-'||LPAD(SUBSTR(DOC_MAX_NO,10,4)+1, 4, '0'),DOC_NO_RULE||'-'||LPAD(1, 4, '0')) DOC_NO
|
|
FROM
|
|
(SELECT OBJID CATEGORY_OBJID,
|
|
DOC_NO_RULE,
|
|
(SELECT MAX(DOC_NO)
|
|
FROM STANDARD_DOC_INFO
|
|
WHERE CATEGORY_OBJID = CATE.OBJID
|
|
)DOC_MAX_NO
|
|
FROM STANDARD_DOC_CATEGORY CATE
|
|
WHERE CATEGORY_TYPE = 'low'
|
|
AND OBJID = #{categoryObjid}
|
|
)T
|
|
</select>
|
|
|
|
<!-- 대상스펙을 From에 해당하는 스펙으로 치환한다. -->
|
|
<update id="mergeSpecDataTranseWithFrom">
|
|
MERGE INTO SPEC_LINK_INFO T USING DUAL ON (AFTER_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid}) AND BEFORE_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{fromObjid}))
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.AFTER_SPEC_NO,
|
|
T.BEFORE_SPEC_NO,
|
|
T.CATEGORY_OBJID,
|
|
T.REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid},
|
|
(SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid}),
|
|
(SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{fromObjid}),
|
|
#{categoryObjId},
|
|
SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<!-- 연결된 스펙 삭제 -->
|
|
<delete id="deleteSpecDataTranseWithFrom">
|
|
DELETE SPEC_LINK_INFO WHERE CATEGORY_OBJID = #{categoryObjId} AND AFTER_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid})
|
|
</delete>
|
|
|
|
<!-- 대상스펙으로 TO에 해당하는 스펙을 치환한다. -->
|
|
<update id="mergeSpecDataTranseWithTo">
|
|
MERGE INTO SPEC_LINK_INFO T USING DUAL ON (AFTER_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{toObjid}) AND BEFORE_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid}))
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
T.OBJID,
|
|
T.AFTER_SPEC_NO,
|
|
T.BEFORE_SPEC_NO,
|
|
T.CATEGORY_OBJID,
|
|
T.REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid},
|
|
(SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{toObjid}),
|
|
(SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid}),
|
|
#{categoryObjId},
|
|
SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<delete id="deleteSpecDataTranseWithTo">
|
|
DELETE SPEC_LINK_INFO WHERE CATEGORY_OBJID = #{categoryObjId} AND BEFORE_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{targetObjid})
|
|
</delete>
|
|
|
|
<select id="getTransSpecDataFromList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(SELECT OBJID,
|
|
AFTER_SPEC_NO,
|
|
BEFORE_SPEC_NO,
|
|
REGDATE
|
|
FROM SPEC_LINK_INFO
|
|
WHERE AFTER_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{objid})
|
|
AND CATEGORY_OBJID = #{categoryObjId}
|
|
)LINK_INFO,
|
|
(SELECT OBJID DOC_OBJID,
|
|
DOC_NO,
|
|
STANDARD_NAME,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = CATEGORY_OBJID
|
|
) CATEGORY_NAME,
|
|
SPEC_NO,
|
|
IS_LAST
|
|
FROM STANDARD_DOC_INFO
|
|
)DOC_INFO
|
|
WHERE DOC_INFO.SPEC_NO = LINK_INFO.BEFORE_SPEC_NO
|
|
AND IS_LAST = '1'
|
|
|
|
|
|
</select>
|
|
|
|
<select id="getTransSpecDataToList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(SELECT OBJID,
|
|
AFTER_SPEC_NO,
|
|
BEFORE_SPEC_NO,
|
|
REGDATE
|
|
FROM SPEC_LINK_INFO
|
|
WHERE BEFORE_SPEC_NO = (SELECT SPEC_NO FROM STANDARD_DOC_INFO WHERE OBJID = #{objid})
|
|
AND CATEGORY_OBJID = #{categoryObjId}
|
|
)LINK_INFO,
|
|
(SELECT OBJID DOC_OBJID,
|
|
DOC_NO,
|
|
STANDARD_NAME,
|
|
(SELECT CATEGORY_NAME
|
|
FROM STANDARD_DOC_CATEGORY
|
|
WHERE OBJID = CATEGORY_OBJID
|
|
) CATEGORY_NAME,
|
|
SPEC_NO,
|
|
IS_LAST
|
|
FROM STANDARD_DOC_INFO
|
|
)DOC_INFO
|
|
WHERE DOC_INFO.SPEC_NO = LINK_INFO.AFTER_SPEC_NO
|
|
AND IS_LAST = '1'
|
|
</select>
|
|
|
|
<select id="getcategoryName" parameterType="map" resultType="map">
|
|
SELECT
|
|
TO_CHAR(OBJID) AS CODE
|
|
,CATEGORY_NAME AS NAME
|
|
,'' AS CODE_CD
|
|
,'' AS STATUS
|
|
,'' AS ID
|
|
,'' AS EXT_VAL
|
|
FROM STANDARD_DOC_CATEGORY T
|
|
WHERE T.CATEGORY_TYPE='root'
|
|
</select>
|
|
|
|
</mapper>
|
|
|