- 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
676 lines
19 KiB
XML
676 lines
19 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="eoMng">
|
|
<!-- Part 관리 기본 조회 -->
|
|
<sql id="eoMngBase">
|
|
(
|
|
SELECT
|
|
OBJID,
|
|
CASE
|
|
WHEN E.CUSTOMER = '' THEN '0'
|
|
ELSE E.CUSTOMER
|
|
END CUSTOMER,
|
|
CASE
|
|
WHEN E.CAR_TYPE = '' THEN '0'
|
|
ELSE E.CAR_TYPE
|
|
END CAR_TYPE,
|
|
EO_TYPE,
|
|
CUSTOMER_DESIGN,
|
|
EO_NO,
|
|
EO_DATE,
|
|
TO_CHAR(E.EO_DATE,'YYYY-MM-DD') AS EO_DATE_TITLE,
|
|
URGENCY,
|
|
PURCHASE_RELEASE_DATE,
|
|
TO_CHAR(E.PURCHASE_RELEASE_DATE,'YYYY-MM-DD') AS PURCHASE_RELEASE_DATE_TITLE,
|
|
DEPLOY_DATE,
|
|
TO_CHAR(E.DEPLOY_DATE,'YYYY-MM-DD') AS DEPLOY_DATE_TITLE,
|
|
REG_DATE,
|
|
TO_CHAR(E.REG_DATE,'YYYY-MM-DD') AS REG_DATE_TITLE,
|
|
EDIT_DATE,
|
|
TO_CHAR(E.EDIT_DATE,'YYYY-MM-DD') AS EDIT_DATE_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = E.WRITER) AS WRITER_TITLE,
|
|
DEPLOY_WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = E.DEPLOY_WRITER) AS DEPLOY_WRITER_TITLE,
|
|
STATUS,
|
|
CASE STATUS
|
|
WHEN 'create' THEN '작성중'
|
|
WHEN 'deploy' THEN '배포완료'
|
|
WHEN 'approvalRequest' THEN '결재중'
|
|
WHEN 'approvalComplete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END STATUS_TITLE,
|
|
A.APPR_STATUS,
|
|
A.ROUTE_OBJID,
|
|
A.APPROVAL_OBJID
|
|
FROM
|
|
EO_MNG E
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
B.OBJID AS ROUTE_OBJID,
|
|
CASE B.STATUS
|
|
WHEN 'inProcess' THEN '결재중'
|
|
WHEN 'complete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END APPR_STATUS,
|
|
A.OBJID AS APPROVAL_OBJID,
|
|
A.TARGET_OBJID,
|
|
B.ROUTE_SEQ
|
|
FROM
|
|
APPROVAL A,
|
|
(
|
|
select
|
|
T1.*
|
|
from
|
|
(
|
|
select
|
|
TARGET_OBJID,
|
|
max(T.ROUTE_SEQ) as ROUTE_SEQ
|
|
from
|
|
ROUTE T
|
|
group by
|
|
T.TARGET_OBJID
|
|
) T,
|
|
ROUTE T1
|
|
where
|
|
T.TARGET_OBJID = T1.TARGET_OBJID
|
|
and T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE
|
|
A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('EO_MNG')
|
|
) A
|
|
ON E.OBJID::numeric = A.TARGET_OBJID
|
|
)
|
|
</sql>
|
|
|
|
<sql id="eoMngBase2">
|
|
(
|
|
SELECT
|
|
OBJID,
|
|
eo_no,
|
|
eo_gubun,
|
|
ecr_objid,
|
|
product_1,
|
|
product_2,
|
|
eo_kind,
|
|
title,
|
|
request_code,
|
|
period_code,
|
|
unit,
|
|
DEPLOY_DATE,
|
|
TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE,
|
|
EDIT_DATE,
|
|
TO_CHAR(E.EDIT_DATE,'YYYY-MM-DD') AS EDIT_DATE_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = E.WRITER) AS WRITER_TITLE,
|
|
DEPLOY_WRITER,
|
|
DEPLOY_DEPT,
|
|
STATUS,
|
|
CASE STATUS
|
|
WHEN 'create' THEN '작성중'
|
|
WHEN 'deploy' THEN '배포완료'
|
|
WHEN 'approvalRequest' THEN '결재중'
|
|
WHEN 'approvalComplete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END STATUS_TITLE,
|
|
contents,
|
|
A.APPR_STATUS,
|
|
A.ROUTE_OBJID,
|
|
A.APPROVAL_OBJID
|
|
FROM
|
|
EO_MNG E
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
B.OBJID AS ROUTE_OBJID,
|
|
CASE B.STATUS
|
|
WHEN 'inProcess' THEN '결재중'
|
|
WHEN 'complete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END APPR_STATUS,
|
|
A.OBJID AS APPROVAL_OBJID,
|
|
A.TARGET_OBJID,
|
|
B.ROUTE_SEQ
|
|
FROM
|
|
APPROVAL A,
|
|
(
|
|
select
|
|
T1.*
|
|
from
|
|
(
|
|
select
|
|
TARGET_OBJID,
|
|
max(T.ROUTE_SEQ) as ROUTE_SEQ
|
|
from
|
|
ROUTE T
|
|
group by
|
|
T.TARGET_OBJID
|
|
) T,
|
|
ROUTE T1
|
|
where
|
|
T.TARGET_OBJID = T1.TARGET_OBJID
|
|
and T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE
|
|
A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('EO_MNG')
|
|
) A
|
|
ON E.OBJID::numeric = A.TARGET_OBJID
|
|
)
|
|
</sql>
|
|
|
|
<select id="eoMngList" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
FROM(
|
|
SELECT
|
|
T.*,
|
|
(SELECT o.product_code from product_mgmt o WHERE T.product_1::numeric = o.objid::numeric) AS product_title,
|
|
(SELECT o.code_name from comm_code o WHERE T.eo_kind = o.code_id) AS eo_kind_title,
|
|
(SELECT o.code_name from comm_code o WHERE T.eo_gubun = o.code_id) AS eo_gubun_title,
|
|
(SELECT o.ecr_no from ecr_mng o WHERE T.ecr_objid::numeric = o.objid::numeric) AS ecr_no_title,
|
|
T.REG_DATE AS reg_date_time,
|
|
ROW_NUMBER() OVER(ORDER BY REG_DATE DESC) RNUM ,
|
|
CASE WHEN T.period_code_name IS NOT NULL AND T.unit IS NOT NULL AND T.unit != ''
|
|
THEN T.period_code_name ||','||T.unit||'호기'
|
|
WHEN T.period_code_name IS NOT NULL AND T.unit IS NULL or T.unit = ''
|
|
THEN T.period_code_name
|
|
WHEN T.period_code_name IS NULL AND T.unit IS NOT NULL AND T.unit != ''
|
|
THEN T.unit||'호기'
|
|
END period_code_name_unit
|
|
FROM(
|
|
SELECT
|
|
T.*,
|
|
t1.REQUEST_NAME,
|
|
t2.deploy_dept_name,
|
|
t3.period_code_name
|
|
FROM
|
|
<include refid="eoMngBase2"/> T
|
|
|
|
LEFT OUTER JOIN (
|
|
SELECT
|
|
TT.OBJID,
|
|
ARRAY_TO_STRING(ARRAY_AGG((SELECT CODE_NAME FROM COMM_CODE AS CC WHERE CC.CODE_ID IN(TT.REQUEST))),',') AS REQUEST_NAME
|
|
FROM (
|
|
SELECT
|
|
T.OBJID,
|
|
UNNEST(STRING_TO_ARRAY(REQUEST_CODE, ',')) AS REQUEST
|
|
FROM
|
|
EO_MNG AS T
|
|
) AS TT
|
|
GROUP BY TT.OBJID
|
|
) T1
|
|
ON T1.OBJID = T.OBJID
|
|
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
TT.OBJID,
|
|
ARRAY_TO_STRING(ARRAY_AGG((SELECT USER_NAME || '(' || DEPT_NAME || ')' AS NAME FROM USER_INFO AS CC WHERE CC.USER_ID IN(TT.DEPLOY_DEPT))),',') AS DEPLOY_DEPT_NAME
|
|
FROM (
|
|
SELECT
|
|
T.OBJID,
|
|
UNNEST(STRING_TO_ARRAY(DEPLOY_DEPT, ',')) AS DEPLOY_DEPT
|
|
FROM EO_MNG AS T
|
|
) AS TT
|
|
GROUP BY TT.OBJID
|
|
) T2
|
|
ON T2.OBJID = T.OBJID
|
|
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
TT.OBJID,
|
|
ARRAY_TO_STRING(ARRAY_AGG((SELECT CODE_NAME FROM COMM_CODE AS CC WHERE CC.CODE_ID IN(TT.PERIOD_CODE))),',') AS PERIOD_CODE_NAME
|
|
FROM (
|
|
SELECT
|
|
T.OBJID,
|
|
UNNEST(STRING_TO_ARRAY(PERIOD_CODE, ',')) AS PERIOD_CODE
|
|
FROM EO_MNG AS T
|
|
) AS TT
|
|
GROUP BY TT.OBJID
|
|
) AS T3
|
|
ON T3.OBJID = T.OBJID
|
|
WHERE 1=1
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(T.REG_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="request_code != null and request_code != ''">
|
|
AND UPPER(T.request_code) LIKE UPPER('%${request_code}%')
|
|
</if>
|
|
|
|
<if test="eo_kind !=null and eo_kind != '' ">
|
|
AND T.eo_kind = #{eo_kind}
|
|
</if>
|
|
|
|
<if test="status_code != null and status_code != ''">
|
|
AND T.status = #{status_code}
|
|
</if>
|
|
|
|
<if test="search_eo_date_from != null and search_eo_date_from != ''">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(T.REG_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_eo_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_eo_date_to != null and search_eo_date_to != ''">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(T.REG_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_eo_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="request_code != null and request_code != ''">
|
|
AND UPPER(T.period_code) LIKE UPPER('%${request_code}%')
|
|
</if>
|
|
) T
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<select id="eoMngListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::NUMERIC::INTEGER AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::INTEGER
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
T.*,
|
|
(SELECT o.product_code from product_mgmt o WHERE T.product_1::numeric = o.objid::numeric) AS product_title,
|
|
(SELECT o.code_name from comm_code o WHERE T.eo_kind = o.code_id) AS eo_kind_title,
|
|
(SELECT o.code_name from comm_code o WHERE T.eo_gubun = o.code_id) AS eo_gubun_title,
|
|
(SELECT o.ecr_no from ecr_mng o WHERE T.ecr_objid::numeric = o.objid::numeric) AS ecr_no_title,
|
|
T.REG_DATE AS reg_date_time,
|
|
ROW_NUMBER() OVER(ORDER BY REG_DATE DESC) RNUM ,
|
|
CASE WHEN T.period_code_name IS NOT NULL AND T.unit IS NOT NULL AND T.unit != ''
|
|
THEN T.period_code_name ||','||T.unit||'호기'
|
|
WHEN T.period_code_name IS NOT NULL AND T.unit IS NULL or T.unit = ''
|
|
THEN T.period_code_name
|
|
WHEN T.period_code_name IS NULL AND T.unit IS NOT NULL AND T.unit != ''
|
|
THEN T.unit||'호기'
|
|
END period_code_name_unit
|
|
FROM(
|
|
SELECT
|
|
T.*,
|
|
t1.REQUEST_NAME,
|
|
t2.deploy_dept_name,
|
|
t3.period_code_name
|
|
FROM
|
|
<include refid="eoMngBase2"/> T
|
|
|
|
LEFT OUTER JOIN (
|
|
SELECT
|
|
TT.OBJID,
|
|
ARRAY_TO_STRING(ARRAY_AGG((SELECT CODE_NAME FROM COMM_CODE AS CC WHERE CC.CODE_ID IN(TT.REQUEST))),',') AS REQUEST_NAME
|
|
FROM (
|
|
SELECT
|
|
T.OBJID,
|
|
UNNEST(STRING_TO_ARRAY(REQUEST_CODE, ',')) AS REQUEST
|
|
FROM
|
|
EO_MNG AS T
|
|
) AS TT
|
|
GROUP BY TT.OBJID
|
|
) T1
|
|
ON T1.OBJID = T.OBJID
|
|
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
TT.OBJID,
|
|
ARRAY_TO_STRING(ARRAY_AGG((SELECT USER_NAME || '(' || DEPT_NAME || ')' AS NAME FROM USER_INFO AS CC WHERE CC.USER_ID IN(TT.DEPLOY_DEPT))),',') AS DEPLOY_DEPT_NAME
|
|
FROM (
|
|
SELECT
|
|
T.OBJID,
|
|
UNNEST(STRING_TO_ARRAY(DEPLOY_DEPT, ',')) AS DEPLOY_DEPT
|
|
FROM EO_MNG AS T
|
|
) AS TT
|
|
GROUP BY TT.OBJID
|
|
) T2
|
|
ON T2.OBJID = T.OBJID
|
|
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
TT.OBJID,
|
|
ARRAY_TO_STRING(ARRAY_AGG((SELECT CODE_NAME FROM COMM_CODE AS CC WHERE CC.CODE_ID IN(TT.PERIOD_CODE))),',') AS PERIOD_CODE_NAME
|
|
FROM (
|
|
SELECT
|
|
T.OBJID,
|
|
UNNEST(STRING_TO_ARRAY(PERIOD_CODE, ',')) AS PERIOD_CODE
|
|
FROM EO_MNG AS T
|
|
) AS TT
|
|
GROUP BY TT.OBJID
|
|
) AS T3
|
|
ON T3.OBJID = T.OBJID
|
|
WHERE 1=1
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(T.REG_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="request_code != null and request_code != ''">
|
|
AND UPPER(T.request_code) LIKE UPPER('%${request_code}%')
|
|
</if>
|
|
|
|
<if test="eo_kind !=null and eo_kind != '' ">
|
|
AND T.eo_kind = #{eo_kind}
|
|
</if>
|
|
|
|
<if test="status_code != null and status_code != ''">
|
|
AND T.status = #{status_code}
|
|
</if>
|
|
|
|
<if test="search_eo_date_from != null and search_eo_date_from != ''">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(T.REG_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_eo_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_eo_date_to != null and search_eo_date_to != ''">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(T.REG_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_eo_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="request_code != null and request_code != ''">
|
|
AND UPPER(T.period_code) LIKE UPPER('%${request_code}%')
|
|
</if>
|
|
) T
|
|
|
|
|
|
) T
|
|
)A WHERE 1=1
|
|
</select>
|
|
|
|
<select id="getEOMngInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
<!-- ,(SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = COALESCE(T.CUSTOMER,'0')::NUMERIC) AS CUSTOMER_TITLE -->
|
|
<!-- ,(SELECT CAR_CODE||'{'||CAR_NAME||'}' FROM CAR_MNG WHERE OBJID = COALESCE(T.CAR_TYPE,'0')::NUMERIC) AS CAR_TYPE_TITLE -->
|
|
<!-- ,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.EO_TYPE AND O.PARENT_CODE_ID = #{EO_TYPE_CODE}) AS EO_TYPE_TITLE -->
|
|
FROM <include refid="eoMngBase2"/> T
|
|
WHERE 1=1
|
|
AND T.OBJID = #{OBJID}::numeric
|
|
</select>
|
|
|
|
|
|
<!-- EO memo저장 -->
|
|
<update id="mergeEOmemo" parameterType="map">
|
|
UPDATE
|
|
REL_EO_PART
|
|
SET
|
|
memo = #{memo}
|
|
WHERE OBJID = #{rel_eo_objid}::NUMERIC
|
|
|
|
</update>
|
|
|
|
<!-- EO 저장 -->
|
|
<update id="mergeEOMng" parameterType="map">
|
|
INSERT INTO EO_MNG
|
|
(
|
|
OBJID,
|
|
EO_NO,
|
|
EO_GUBUN,
|
|
ECR_OBJID,
|
|
PRODUCT_1,
|
|
PRODUCT_2,
|
|
EO_KIND,
|
|
TITLE,
|
|
REQUEST_CODE,
|
|
PERIOD_CODE,
|
|
STATUS,
|
|
REG_DATE,
|
|
<if test="EDIT_DATE != null and EDIT_DATE != ''">
|
|
EDIT_DATE,
|
|
</if>
|
|
WRITER,
|
|
UNIT,
|
|
CONTENTS,
|
|
DEPLOY_DEPT
|
|
) VALUES (
|
|
#{OBJID}::NUMERIC,
|
|
(SELECT 'EOC_' || TO_CHAR(NOW(),'yy')::VARCHAR || LPAD((SELECT nextval('seq_eo_no'))::VARCHAR ,3,'0')),
|
|
#{eo_gubun},
|
|
#{ecr_objid},
|
|
#{product_objid},
|
|
#{same_product_objid},
|
|
#{eo_kind},
|
|
#{title},
|
|
#{request_codeArr},
|
|
#{period_codeArr},
|
|
'create',
|
|
NOW(),
|
|
<if test="EDIT_DATE != null and EDIT_DATE != ''">
|
|
#{EDIT_DATE},
|
|
</if>
|
|
#{WRITER},
|
|
#{unit},
|
|
#{contents},
|
|
#{deploy_dept}
|
|
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
EO_GUBUN = #{eo_gubun},
|
|
ECR_OBJID = #{ecr_objid},
|
|
PRODUCT_1 = #{product_objid},
|
|
PRODUCT_2 = #{same_product_objid},
|
|
EO_KIND = #{eo_kind},
|
|
TITLE = #{title},
|
|
REQUEST_CODE = #{request_codeArr},
|
|
PERIOD_CODE = #{period_codeArr},
|
|
STATUS = #{STATUS},
|
|
<if test="EDIT_DATE != null and EDIT_DATE != ''">
|
|
EDIT_DATE = NOW(),
|
|
</if>
|
|
WRITER = #{WRITER},
|
|
DEPLOY_WRITER = #{DEPLOY_WRITER},
|
|
UNIT = #{unit},
|
|
CONTENTS = #{contents},
|
|
DEPLOY_DEPT =#{deploy_dept}
|
|
|
|
</update>
|
|
|
|
<!-- EO와 Part의 연결을 초기화한다. -->
|
|
<update id="relEOMngPartMngInit" parameterType="map">
|
|
DELETE FROM REL_EO_PART WHERE PARENT_OBJID = #{OBJID}::NUMERIC
|
|
</update>
|
|
|
|
<delete id="deleteConnectPartMng" parameterType="map">
|
|
DELETE FROM REL_EO_PART WHERE PARENT_OBJID = #{PARENT_OBJID}::NUMERIC AND CHILD_OBJID = #{CHILD_OBJID}::NUMERIC
|
|
</delete>
|
|
|
|
<!-- EO와 Part를 연결한다. -->
|
|
<insert id="insertRelEOMngPartMng" parameterType="map">
|
|
INSERT INTO REL_EO_PART
|
|
(
|
|
OBJID,
|
|
PARENT_OBJID,
|
|
CHILD_OBJID,
|
|
REG_DATE,
|
|
WRITER
|
|
) VALUES (
|
|
#{OBJID}::NUMERIC,
|
|
#{PARENT_OBJID}::NUMERIC,
|
|
#{CHILD_OBJID}::NUMERIC,
|
|
NOW(),
|
|
#{WRITER}
|
|
)
|
|
</insert>
|
|
|
|
<!-- EO와 Part를 연결한다. -->
|
|
<insert id="insertRelEOMngMultiPartMng" parameterType="map">
|
|
INSERT INTO REL_EO_PART
|
|
(
|
|
SELECT
|
|
trunc(random() * 10000000000 + 1)::NUMERIC,
|
|
#{PARENT_OBJID}::NUMERIC,
|
|
OBJID,
|
|
NOW(),
|
|
#{WRITER}
|
|
FROM part_mng AS t
|
|
<if test="partObjIdArr != null and partObjIdArr.size != 0">
|
|
WHERE T.OBJID IN
|
|
<foreach collection="partObjIdArr" item="part" index="index" separator="," open="(" close=")">
|
|
#{part}::NUMERIC
|
|
</foreach>
|
|
</if>
|
|
)
|
|
</insert>
|
|
|
|
<!-- EO에 연결된 Part의 EO 정보를 Update 한다. -->
|
|
<update id="updatePartMngeo_temp" parameterType="map">
|
|
UPDATE
|
|
PART_MNG
|
|
SET
|
|
EO_TEMP = #{PARENT_OBJID}
|
|
<if test="CHILD_OBJID != null and CHILD_OBJID.size != 0">
|
|
WHERE OBJID IN
|
|
<foreach collection="CHILD_OBJID" item="CHILD_OBJID" index="index" separator="," open="(" close=")">
|
|
#{CHILD_OBJID}::NUMERIC
|
|
</foreach>
|
|
</if>
|
|
</update>
|
|
|
|
<!-- EO에 연결된 Part의 EO 정보를 Update 한다. -->
|
|
<update id="updatePartMng" parameterType="map">
|
|
UPDATE
|
|
PART_MNG
|
|
SET
|
|
EO = #{PARENT_OBJID},
|
|
EDIT_DATE = NOW()
|
|
WHERE OBJID = #{CHILD_OBJID}::NUMERIC
|
|
</update>
|
|
|
|
<!-- EO에 연결된 Part의 EO 정보를 null로 한다. -->
|
|
<update id="updatedeleteConnectPartMng" parameterType="map">
|
|
UPDATE
|
|
PART_MNG
|
|
SET
|
|
EO_TEMP = NULL
|
|
<!-- EDIT_DATE = NOW() -->
|
|
WHERE OBJID = #{CHILD_OBJID}::NUMERIC
|
|
</update>
|
|
|
|
<!-- EO에 연결된 Part의 EO 정보를 null로 한다. -->
|
|
<update id="deleteEOMngPart" parameterType="map">
|
|
UPDATE
|
|
PART_MNG
|
|
SET
|
|
EO_TEMP = NULL,
|
|
EO = NULL
|
|
<!-- EDIT_DATE = NOW() -->
|
|
WHERE EO_TEMP = #{OBJID}
|
|
</update>
|
|
|
|
<!-- EO를 배포한다. -->
|
|
<update id="deployEOMng" parameterType="map">
|
|
UPDATE
|
|
EO_MNG
|
|
SET
|
|
DEPLOY_DATE = NOW(),
|
|
EDIT_DATE = NOW(),
|
|
DEPLOY_WRITER = #{DEPLOY_WRITER},
|
|
STATUS = 'deploy'
|
|
WHERE OBJID = #{OBJID}::NUMERIC
|
|
</update>
|
|
|
|
<delete id="deleteEOMng" parameterType="map">
|
|
DELETE FROM EO_MNG WHERE OBJID = #{OBJID}::NUMERIC
|
|
</delete>
|
|
|
|
<select id="getConnectPartList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*,
|
|
ROW_NUMBER() OVER(ORDER BY REG_DATE DESC) RNUM
|
|
FROM(
|
|
SELECT
|
|
T.*
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.PRODUCT_GROUP AND O.PARENT_CODE_ID = #{PRODUCT_GROUP_CODE}) AS PRODUCT_GROUP_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.PRODUCT AND O.PARENT_CODE_ID = T.PRODUCT_GROUP) AS PRODUCT_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.MATERIAL AND O.PARENT_CODE_ID = #{MATERIAL_CODE}) AS MATERIAL_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.SPEC_NO AND O.PARENT_CODE_ID = #{SPEC_NO_CODE}) AS SPEC_NO_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.DESIGN_APPLY_POINT AND O.PARENT_CODE_ID = #{DESIGN_APPLY_POINT_CODE}) AS DESIGN_APPLY_POINT_TITLE
|
|
,(SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = COALESCE(T.CUSTOMER,'0')::NUMERIC) AS CUSTOMER_TITLE
|
|
,(SELECT CAR_CODE||'{'||CAR_NAME||'}' FROM CAR_MNG WHERE OBJID = COALESCE(T.CAR_TYPE,'0')::NUMERIC) AS CAR_TYPE_TITLE
|
|
FROM
|
|
<include refid="partMng.partMngBase"/> T,
|
|
REL_EO_PART R
|
|
WHERE 1=1
|
|
AND R.CHILD_OBJID = T.OBJID::NUMERIC
|
|
AND R.PARENT_OBJID = T.EO::NUMERIC
|
|
AND R.PARENT_OBJID = #{OBJID}::NUMERIC
|
|
) T
|
|
</select>
|
|
|
|
<select id="getConnectEoPartList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*,
|
|
ROW_NUMBER() OVER(ORDER BY part_no DESC) RNUM
|
|
FROM(
|
|
SELECT
|
|
t2.objid AS objid
|
|
,t1.objid AS part_objid
|
|
,t1.part_no
|
|
,t1.part_name
|
|
,t1.revision
|
|
,t2.memo
|
|
FROM part_mng t1,
|
|
rel_eo_part t2
|
|
WHERE 1=1
|
|
and t1.objid = t2.child_objid
|
|
AND t2.parent_objid = #{OBJID}::NUMERIC
|
|
) T
|
|
</select>
|
|
|
|
<select id="partrevision" parameterType="map" resultType="map">
|
|
SELECT
|
|
COALESCE(revision,'')
|
|
FROM part_mng
|
|
where 1=1
|
|
and objid = #{part_objid}::NUMERIC
|
|
</select>
|
|
|
|
|
|
|
|
<!-- part_mng저장 -->
|
|
<update id="mergeEOpart1" parameterType="map">
|
|
UPDATE
|
|
part_mng
|
|
SET
|
|
revision = '1'
|
|
WHERE OBJID = #{part_objid}::NUMERIC
|
|
|
|
</update>
|
|
<!-- part_mng저장 -->
|
|
<update id="mergeEOpartre" parameterType="map">
|
|
UPDATE
|
|
part_mng
|
|
SET
|
|
revision = (revision::NUMERIC + 1::NUMERIC)::VARCHAR
|
|
WHERE OBJID = #{part_objid}::NUMERIC
|
|
|
|
</update>
|
|
|
|
<!-- EO DATE (REG_DATE)저장 -->
|
|
<update id="changeEOEDITDate" parameterType="map">
|
|
UPDATE
|
|
eo_mng
|
|
SET
|
|
edit_date = now()
|
|
WHERE OBJID = #{targetObjId}::NUMERIC
|
|
|
|
</update>
|
|
<!-- part에 eo no 저장 -->
|
|
<update id="changePartEO" parameterType="map">
|
|
UPDATE
|
|
part_mng
|
|
SET
|
|
eo = #{targetObjId}
|
|
WHERE eo_temp = #{targetObjId}
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
</mapper> |