- 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
194 lines
5.6 KiB
XML
194 lines
5.6 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="ecr">
|
|
<update id="mergeECR" parameterType="map">
|
|
INSERT INTO ECR_MNG
|
|
(
|
|
OBJID
|
|
,ECR_NO
|
|
,PRODUCT_OBJID
|
|
,PART_OBJID
|
|
,REQUEST_CD
|
|
,TITLE
|
|
,WRITER
|
|
,STATUS_CD
|
|
,BEFORE_CONTENTS
|
|
,AFTER_CONTENTS
|
|
,REG_DATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}::integer
|
|
,(SELECT 'ECR-'||TO_CHAR(NOW(),'yyyy')::VARCHAR ||'-'||LPAD((SELECT nextval('seq_ecr_no'))::VARCHAR ,3,'0'))
|
|
,#{product_objid}::integer
|
|
,#{part_objid}::integer
|
|
,#{request_codeArr}::varchar
|
|
,#{title}
|
|
,#{writer}
|
|
,'0000100'
|
|
,#{before_contents}
|
|
,#{after_contents}
|
|
,now()
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
TITLE = #{title}
|
|
,PRODUCT_OBJID = #{product_objid}::integer
|
|
,PART_OBJID = #{part_objid}::integer
|
|
,REQUEST_CD = #{request_codeArr}::varchar
|
|
,BEFORE_CONTENTS = #{before_contents}
|
|
|
|
</update>
|
|
|
|
<update id="completeECR" parameterType="map">
|
|
UPDATE ECR_MNG
|
|
SET STATUS_CD = '0000102'
|
|
,AFTER_CONTENTS = #{after_contents}
|
|
,CHECK_USER_ID = #{writer}
|
|
,CHECK_DATE = now()
|
|
WHERE OBJID = #{objId}::integer
|
|
</update>
|
|
|
|
|
|
|
|
<!-- 페이징 처리한 EO 목록을 가져온다. -->
|
|
<select id="getECRListPaging" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
FROM
|
|
(SELECT
|
|
ROW_NUMBER() OVER (ORDER BY ECR_NO) AS RNUM,
|
|
T.OBJID::varchar,
|
|
T.ECR_NO,
|
|
(SELECT PRODUCT_CODE FROM PRODUCT_MGMT WHERE OBJID = PRODUCT_OBJID) AS PRODUCT_NAME,
|
|
T.PRODUCT_OBJID,
|
|
T.UPG_NO,
|
|
T.PART_OBJID,
|
|
(SELECT PART_NO FROM PART_MNG WHERE OBJID = PART_OBJID) AS PART_NO,
|
|
(SELECT PART_NAME FROM PART_MNG WHERE OBJID = PART_OBJID) AS PART_NAME,
|
|
REQUEST_CD,
|
|
T1.REQUEST_NAME,
|
|
T.TITLE,
|
|
T.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_NAME,
|
|
T.STATUS_CD,
|
|
code_name(T.STATUS_CD) AS STATUS_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.CHECK_USER_ID) AS CHECK_NAME,
|
|
TO_CHAR(T.REG_DATE,'YYYY-MM-DD') AS REG_DATE,
|
|
TO_CHAR(T.CHECK_DATE,'YYYY-MM-DD') AS CHECK_DATE
|
|
FROM ecr_mng T
|
|
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
ARRAY_TO_STRING(ARRAY_AGG((select code_name FROM comm_code AS cc WHERE cc.code_id IN(TT.REQUEST))),',') AS REQUEST_NAME,
|
|
TT.OBJID
|
|
FROM (SELECT
|
|
T.OBJID,
|
|
unnest(string_to_array(REQUEST_CD, ',')) AS REQUEST
|
|
FROM ecr_mng AS T) AS TT
|
|
GROUP BY TT.OBJID) AS T1
|
|
ON T.OBJID= T1.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(REQUEST_CD) LIKE UPPER('%${request_code}%')
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND T.writer = #{writer}
|
|
</if>
|
|
|
|
<if test="status_code != null and status_code != ''">
|
|
AND T.status_cd = #{status_code}
|
|
</if>
|
|
|
|
) 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>
|
|
|
|
<!-- 페이징 처리한 ECR 목록을 가져온다. -->
|
|
<select id="getECRListCnt" 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 objid,
|
|
ecr_no,
|
|
product_objid,
|
|
upg_no,
|
|
part_objid,
|
|
request_cd,
|
|
title,
|
|
writer,
|
|
status_cd,
|
|
TO_CHAR(reg_date,'YYYY-MM-DD') AS REG_DATE
|
|
FROM ECR_MNG T
|
|
WHERE 1=1
|
|
) AS ECR WHERE 1=1
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(ECR.REG_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="product_code != null and product_code != ''">
|
|
AND ECR.product_objid = #{product_code}::integer
|
|
</if>
|
|
|
|
<if test="request_code != null and request_code != ''">
|
|
AND UPPER(REQUEST_CD) LIKE UPPER('%${request_code}%')
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND ECR.writer = #{writer}
|
|
</if>
|
|
|
|
<if test="status_code != null and status_code != ''">
|
|
AND ECR.status_cd = #{status_code}
|
|
</if>
|
|
) AS T
|
|
</select>
|
|
<!-- ECR 단건 정보를 가져온다. -->
|
|
<select id="getECRInfo" parameterType="map" resultType="map">
|
|
SELECT T.OBJID::varchar,
|
|
T.ECR_NO,
|
|
(SELECT PRODUCT_CODE FROM PRODUCT_MGMT WHERE OBJID = PRODUCT_OBJID) AS PRODUCT_NAME,
|
|
T.PRODUCT_OBJID::varchar,
|
|
T.UPG_NO,
|
|
T.PART_OBJID::varchar,
|
|
(SELECT PART_NO FROM PART_MNG WHERE OBJID = PART_OBJID) AS PART_NO,
|
|
(SELECT PART_NAME FROM PART_MNG WHERE OBJID = PART_OBJID) AS PART_NAME,
|
|
REQUEST_CD,
|
|
T.TITLE,
|
|
T.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_NAME,
|
|
T.STATUS_CD,
|
|
TO_CHAR(T.REG_DATE,'YYYY-MM-DD') AS REG_DATE,
|
|
BEFORE_CONTENTS,
|
|
AFTER_CONTENTS,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.CHECK_USER_ID) AS CHECK_NAME,
|
|
TO_CHAR(T.CHECK_DATE,'YYYY-MM-DD') AS CHECK_DATE
|
|
FROM ECR_MNG T
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}::integer
|
|
</select>
|
|
|
|
|
|
<update id="ecrDelete" parameterType="map">
|
|
DELETE FROM ECR_MNG
|
|
WHERE OBJID=#{objId}::numeric
|
|
</update>
|
|
</mapper> |