- 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
688 lines
19 KiB
XML
688 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="product">
|
|
|
|
|
|
<!-- 제품마스터 목록 조회 -->
|
|
<select id="productMgmtList" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
FROM(
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY product_code) AS RNUM
|
|
,OBJID::varchar
|
|
,PRODUCT_CATEGORY
|
|
,CODE_NAME(PRODUCT_CATEGORY) AS PRODUCT_CATEGORY_NAME
|
|
,PRODUCT_TYPE
|
|
,CODE_NAME(PRODUCT_TYPE) AS PRODUCT_TYPE_NAME
|
|
,PRODUCT_GRADE
|
|
,CODE_NAME(PRODUCT_GRADE) AS PRODUCT_GRADE_NAME
|
|
,PRODUCT_TON
|
|
,CODE_NAME(PRODUCT_TON) AS PRODUCT_TON_NAME
|
|
,PRODUCT_BOOM
|
|
,CODE_NAME(PRODUCT_BOOM) AS PRODUCT_BOOM_NAME
|
|
,PRODUCT_VEHICLE
|
|
,CODE_NAME(PRODUCT_VEHICLE) AS PRODUCT_VEHICLE_NAME
|
|
,PRODUCT_CODE
|
|
,PRODUCTION_FLAG
|
|
,CODE_NAME(PRODUCTION_FLAG) AS PRODUCTION_FLAG_NAME
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='PRODUCT_FILE' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT
|
|
,(SELECT COUNT(1) FROM PRODUCT_SPEC WHERE TARGET_OBJID = T.OBJID) AS FILE_CNT1
|
|
,PRICE
|
|
,PRODUCT_NAME
|
|
,PRODUCT_NAME_CODE
|
|
FROM PRODUCT_MGMT T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="product_category != null and product_category != '' ">
|
|
AND product_category = #{product_category}
|
|
</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>
|
|
|
|
<select id="productMgmtListCnt" 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::varchar
|
|
,PRODUCT_CATEGORY
|
|
,PRODUCT_TYPE
|
|
,PRODUCT_GRADE
|
|
,PRODUCT_TON
|
|
,PRODUCT_BOOM
|
|
,PRODUCT_VEHICLE
|
|
,PRODUCT_CODE
|
|
,PRODUCTION_FLAG
|
|
,REGDATE
|
|
,WRITER
|
|
FROM PRODUCT_MGMT T
|
|
) AS PMS_PART_MGMT
|
|
WHERE 1=1
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="product_category != null and product_category != '' ">
|
|
AND product_category = #{product_category}
|
|
</if>
|
|
<!-- <if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if> -->
|
|
) AS T
|
|
</select>
|
|
|
|
<!-- //제품마스터 상세조회-->
|
|
<select id="getproductMgmtInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID::varchar
|
|
,PRODUCT_CATEGORY
|
|
,PRODUCT_TYPE
|
|
,PRODUCT_GRADE
|
|
,PRODUCT_TON
|
|
,PRODUCT_BOOM
|
|
,PRODUCT_VEHICLE
|
|
,PRODUCT_CODE
|
|
,PRODUCTION_FLAG
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE
|
|
,WRITER
|
|
,CONTENTS
|
|
,PRICE
|
|
,NOTE
|
|
,PRODUCT_NAME
|
|
,PRODUCT_NAME_CODE
|
|
FROM PRODUCT_MGMT T
|
|
WHERE 1=1
|
|
AND T.OBJID = #{objId}::integer
|
|
</select>
|
|
|
|
<!-- //제품마스터 저장 -->
|
|
<update id="mergeproductMgmtInfo" parameterType="map">
|
|
INSERT INTO PRODUCT_MGMT
|
|
(
|
|
OBJID
|
|
,PRODUCT_CATEGORY
|
|
,PRODUCT_TYPE
|
|
,PRODUCT_GRADE
|
|
,PRODUCT_TON
|
|
,PRODUCT_BOOM
|
|
,PRODUCT_VEHICLE
|
|
,PRODUCT_CODE
|
|
,PRODUCTION_FLAG
|
|
,REGDATE
|
|
,WRITER
|
|
,CONTENTS
|
|
,PRICE
|
|
,NOTE
|
|
,PRODUCT_NAME
|
|
,PRODUCT_NAME_CODE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}::numeric
|
|
,#{product_category}
|
|
,#{product_type}
|
|
,#{product_grade}
|
|
,#{product_ton}
|
|
,#{product_boom}
|
|
,#{product_vehicle}
|
|
,#{product_code}
|
|
,#{production_flag}
|
|
,now()
|
|
,#{writer}
|
|
,(select o.contents from template_mng o where (SELECT o2.code_name FROM comm_code AS o2 WHERE o2.code_id = o.template_code_detail) = (SELECT code_name FROM comm_code WHERE code_id =#{product_category}))
|
|
,#{price}
|
|
,#{note}
|
|
,#{product_name}
|
|
,#{product_name_code}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
PRODUCT_CATEGORY = #{product_category}
|
|
,PRODUCT_TYPE = #{product_type}
|
|
,PRODUCT_GRADE = #{product_grade}
|
|
,PRODUCT_TON = #{product_ton}
|
|
,PRODUCT_BOOM = #{product_boom}
|
|
,PRODUCT_VEHICLE = #{product_vehicle}
|
|
,PRODUCT_CODE = #{product_code}
|
|
,PRODUCTION_FLAG = #{production_flag}
|
|
,PRICE = #{price}
|
|
,NOTE = #{note}
|
|
,PRODUCT_NAME = #{product_name}
|
|
,PRODUCT_NAME_CODE = #{product_name_code}
|
|
</update>
|
|
|
|
|
|
<update id="productDelete" parameterType="map">
|
|
DELETE FROM PRODUCT_MGMT
|
|
WHERE OBJID=#{objId}::numeric
|
|
</update>
|
|
|
|
<!-- BOM REPORT 삭제-->
|
|
<delete id="productPartBomDelete" parameterType="map">
|
|
DELETE FROM PART_BOM_REPORT
|
|
WHERE PRODUCT_MGMT_UPG IN(SELECT O.OBJID FROM PRODUCT_MGMT_UPG_DETAIL AS O
|
|
WHERE TARGET_OBJID=#{objId}::numeric)
|
|
</delete>
|
|
|
|
<!-- 제품마스터 BOM REPORT 삭제-->
|
|
<delete id="productMasterPartBomDelete" parameterType="map">
|
|
DELETE FROM PART_BOM_REPORT
|
|
WHERE PRODUCT_MGMT_UPG IN(SELECT O.OBJID FROM PRODUCT_MGMT_UPG_DETAIL AS O
|
|
WHERE TARGET_OBJID IN(
|
|
SELECT T.OBJID FROM PRODUCT_MGMT_UPG_MASTER AS T
|
|
WHERE T.TARGET_OBJID IN(SELECT O.OBJID FROM PRODUCT_MGMT AS O
|
|
WHERE O.OBJID=#{objId}::numeric)
|
|
)
|
|
)
|
|
</delete>
|
|
|
|
|
|
<!--PART 삭제-->
|
|
<delete id="productPartDelete" parameterType="map">
|
|
DELETE FROM PART_MNG
|
|
WHERE UPG_OBJID IN(SELECT O.OBJID::varchar FROM PRODUCT_MGMT_UPG_DETAIL AS O
|
|
WHERE TARGET_OBJID=#{objId}::numeric)
|
|
</delete>
|
|
|
|
<!--제품마스터 PART 삭제-->
|
|
<delete id="productMasterPartDelete" parameterType="map">
|
|
DELETE FROM PART_MNG
|
|
WHERE UPG_OBJID IN(SELECT O.OBJID::varchar FROM PRODUCT_MGMT_UPG_DETAIL AS O
|
|
WHERE TARGET_OBJID IN(
|
|
SELECT T.OBJID FROM PRODUCT_MGMT_UPG_MASTER AS T
|
|
WHERE T.TARGET_OBJID IN(SELECT O.OBJID FROM PRODUCT_MGMT AS O
|
|
WHERE O.OBJID=#{objId}::numeric)
|
|
)
|
|
)
|
|
</delete>
|
|
|
|
<!--UPG DETAIL 삭제-->
|
|
<delete id="productUpgdetailDelete" parameterType="map">
|
|
DELETE FROM PRODUCT_MGMT_UPG_DETAIL
|
|
WHERE TARGET_OBJID=#{objId}::numeric
|
|
</delete>
|
|
|
|
<!--제품마스터 UPG DETAIL 삭제-->
|
|
<delete id="productMasterUpgdetailDelete" parameterType="map">
|
|
DELETE FROM PRODUCT_MGMT_UPG_DETAIL
|
|
WHERE TARGET_OBJID IN(
|
|
SELECT T.OBJID FROM PRODUCT_MGMT_UPG_MASTER AS T
|
|
WHERE T.TARGET_OBJID IN(SELECT O.OBJID FROM PRODUCT_MGMT AS O
|
|
WHERE O.OBJID=#{objId}::numeric)
|
|
)
|
|
</delete>
|
|
|
|
<!--UPG MASTER 삭제-->
|
|
<delete id="productUpgmasterDelete" parameterType="map">
|
|
DELETE FROM PRODUCT_MGMT_UPG_MASTER
|
|
WHERE OBJID=#{objId}::numeric
|
|
</delete>
|
|
|
|
<!--제품마스터 UPG MASTER 삭제-->
|
|
<delete id="productMasterUpgmasterDelete" parameterType="map">
|
|
DELETE FROM PRODUCT_MGMT_UPG_MASTER
|
|
WHERE TARGET_OBJID IN(SELECT O.OBJID FROM PRODUCT_MGMT AS O
|
|
WHERE O.OBJID=#{objId}::numeric)
|
|
</delete>
|
|
|
|
<!--UPG VC 업데이트-->
|
|
<update id="productUpgVcupdate" parameterType="map">
|
|
UPDATE PRODUCT_MGMT_UPG_DETAIL
|
|
SET VC=''
|
|
WHERE TARGET_OBJID IN(SELECT O.OBJID FROM PRODUCT_MGMT_UPG_MASTER AS O
|
|
WHERE O.TARGET_OBJID=#{rootobjid}::numeric)
|
|
AND UPG_NAME=(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID=#{upg_name})
|
|
</update>
|
|
|
|
<!-- 제품마스터 활성화-->
|
|
<update id="changeMultiPartStatus" parameterType="map">
|
|
UPDATE PRODUCT_MGMT
|
|
SET STATUS_CD = 'STS_CD1'
|
|
WHERE PRODUCT_OBJID=#{objId}
|
|
</update>
|
|
|
|
<select id="checkDuplicateProductMgmt" parameterType="map" resultType="map">
|
|
SELECT
|
|
COUNT(1) AS CNT
|
|
FROM
|
|
PRODUCT_MGMT
|
|
WHERE PRODUCT_OBJID != ${OBJID}
|
|
AND DHISPRODUCT_NO = #{DHISPRODUCT_NO}
|
|
</select>
|
|
|
|
<select id="productMgmtUpgListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) AS TOTAL_CNT FROM (
|
|
SELECT
|
|
t.objid
|
|
,t.upg_code
|
|
,t.upg_name
|
|
,t.upg_no
|
|
,t.vc
|
|
,t.note
|
|
FROM product_mgmt_upg t
|
|
) PMS_PART_MGMT_upg
|
|
WHERE 1=1
|
|
) T
|
|
</select>
|
|
|
|
<!-- 제품 사양 목록 조회 -->
|
|
<select id="productMgmtUpgList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(SELECT
|
|
(ROW_NUMBER() OVER(ORDER BY upg_code DESC)) AS rnum
|
|
,t.objid
|
|
,t.upg_code
|
|
,t.upg_name
|
|
,t.upg_no
|
|
,t.vc
|
|
,t.note
|
|
FROM product_mgmt_upg t
|
|
WHERE 1=1
|
|
|
|
) AS T
|
|
WHERE 1=1
|
|
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND T.rnum <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND T.rnum >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<select id="productMgmtUpgInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
t.objid::varchar
|
|
,t.target_objid::varchar
|
|
,t.spec_name
|
|
FROM product_mgmt_upg_master t
|
|
WHERE 1=1
|
|
and t.objid = #{product_code}::integer
|
|
</select>
|
|
|
|
<!-- //유저인포 업뎃 -->
|
|
<update id="saveproductMgmtUpgInfo" parameterType="map">
|
|
INSERT INTO
|
|
product_mgmt_upg
|
|
( objid
|
|
,upg_code
|
|
,upg_name
|
|
,upg_no
|
|
,vc
|
|
,note)
|
|
VALUES (
|
|
#{objId}::integer
|
|
,#{upg_code}
|
|
,#{upg_name}
|
|
,#{upg_no}
|
|
,#{vc}
|
|
,#{note}
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET upg_code=#{upg_code}
|
|
,upg_name=#{upg_name}
|
|
,upg_no=#{upg_no}
|
|
,vc=#{vc}
|
|
,note=#{note}
|
|
</update>
|
|
|
|
<select id="specificationList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID::varchar
|
|
,TARGET_OBJID::varchar
|
|
,SPEC_TEXT
|
|
,SPEC_VALUE
|
|
,REGDATE
|
|
,WRITER
|
|
,ORDER_NO
|
|
FROM PRODUCT_SPEC
|
|
WHERE TARGET_OBJID = #{targetObjId}::numeric
|
|
order by order_no::integer
|
|
</select>
|
|
|
|
|
|
<delete id="DeleteSpecification" parameterType="map">
|
|
DELETE FROM PRODUCT_SPEC
|
|
WHERE TARGET_OBJID = #{targetObjId}::numeric
|
|
</delete>
|
|
|
|
|
|
<insert id="insertSpecification" parameterType="map">
|
|
INSERT INTO
|
|
PRODUCT_SPEC
|
|
( OBJID
|
|
,TARGET_OBJID
|
|
,SPEC_TEXT
|
|
,SPEC_VALUE
|
|
,REGDATE
|
|
,WRITER
|
|
,ORDER_NO
|
|
)
|
|
VALUES (
|
|
#{objId}::numeric
|
|
,#{targetObjId}::numeric
|
|
,#{spec_text}
|
|
,#{spec_value}
|
|
,now()
|
|
,#{writer}
|
|
,#{order_no}
|
|
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="getProductUpgCodeList" parameterType="map" resultType="map">
|
|
SELECT t.objid::VARCHAR
|
|
,t1.objid::VARCHAR AS master_objid ,t.product_code,t1.spec_name FROM product_mgmt AS t
|
|
,product_mgmt_upg_master AS t1
|
|
WHERE t.objid = t1.target_objid
|
|
and t.objid = #{product_code}::numeric
|
|
ORDER BY t1.regdate
|
|
</select>
|
|
|
|
|
|
<select id="getProductUpgDetailList" parameterType="map" resultType="map">
|
|
<!-- SELECT
|
|
t1.objid::varchar
|
|
,t1.upg_name AS upg_name
|
|
,t1.upg_code AS upg_code
|
|
,t1.vc
|
|
,t1.note
|
|
,t1.product_objid::varchar
|
|
,case when t1.vc = '' THEN ''
|
|
ELSE t1.upg_code ||'-'||(SELECT o.product_code from product_mgmt o WHERE o.objid = t1.product_objid)||'-'||t1.vc
|
|
END AS upg_no
|
|
FROM product_mgmt_upg_detail AS t1 ,comm_code AS t
|
|
where t1.upg_name = t.code_name
|
|
and t1.target_objid=#{targetObjId}::numeric
|
|
order by t.code_id -->
|
|
SELECT
|
|
COALESCE(t1.objid::varchar,'') as objid
|
|
,COALESCE(t1.upg_name,t2.code_name) AS upg_name
|
|
,COALESCE(t1.upg_code,t2.ext_val) AS upg_code
|
|
,COALESCE(t1.vc,'') AS vc
|
|
,COALESCE(t1.note,'') AS note
|
|
,COALESCE(t1.product_objid::VARCHAR,'') AS product_objid
|
|
,case WHEN (t1.vc = '' OR t1.vc IS NULL) THEN ''
|
|
ELSE t1.upg_code ||'-'||(SELECT o.product_code from product_mgmt o WHERE o.objid = t1.product_objid)||'-'||t1.vc
|
|
END AS upg_no
|
|
FROM (SELECT * from product_mgmt_upg_detail AS pm
|
|
WHERE pm.target_objid=#{targetObjId}::numeric) AS t1
|
|
RIGHT OUTER JOIN (SELECT * FROM comm_code AS cc WHERE cc.parent_code_id='0000042') as t2
|
|
ON t1.upg_name = t2.code_name
|
|
|
|
order BY t2.code_id
|
|
|
|
</select>
|
|
|
|
<select id="getUpgCodeList" parameterType="map" resultType="map">
|
|
SELECT
|
|
'' AS objid
|
|
,t.code_name AS upg_name
|
|
,t.ext_val AS upg_code
|
|
,'' AS vc
|
|
,'' AS note
|
|
FROM comm_code t
|
|
WHERE t.parent_code_id='0000042'
|
|
ORDER BY t.code_id
|
|
</select>
|
|
|
|
|
|
|
|
<!-- //upg master 저장 -->
|
|
<update id="insertUpgMaster" parameterType="map">
|
|
INSERT INTO
|
|
product_mgmt_upg_master
|
|
( objid
|
|
,target_objid
|
|
,spec_name
|
|
,writer
|
|
,regdate
|
|
)
|
|
VALUES (
|
|
#{objId}::integer
|
|
,#{targetobjId}::integer
|
|
,#{specname}
|
|
,#{writer}
|
|
,now()::TIMESTAMP
|
|
) ON
|
|
CONFLICT (OBJID,TARGET_OBJID) DO
|
|
UPDATE
|
|
SET spec_name=#{specname}
|
|
</update>
|
|
|
|
<!-- //upg detail 저장 -->
|
|
<update id="insertUpgDetail" parameterType="map">
|
|
INSERT INTO
|
|
product_mgmt_upg_detail
|
|
( objid
|
|
,target_objid
|
|
,upg_name
|
|
,upg_code
|
|
,vc
|
|
,note
|
|
,product_objid
|
|
)
|
|
VALUES (
|
|
#{objId}::integer
|
|
,#{targetobjId}::integer
|
|
,#{upgname}
|
|
,#{upgcode}
|
|
,UPPER(#{vc})
|
|
,#{note}
|
|
,#{product_objid}::integer
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET vc=UPPER(#{vc})
|
|
,note=#{note}
|
|
<if test="product_objid !=null and product_objid != '' ">
|
|
,product_objid=#{product_objid}::integer
|
|
</if>
|
|
|
|
|
|
</update>
|
|
|
|
|
|
<select id="getUpgNoList" parameterType="map" resultType="map">
|
|
SELECT
|
|
distinct
|
|
case when t.vc = '' THEN ''
|
|
else upg_code||'-'||(SELECT o.product_code from product_mgmt AS o WHERE o.objid = t.product_objid)||'-'||t.vc
|
|
end AS upg_no
|
|
,t.vc
|
|
,t.product_objid::varchar
|
|
FROM product_mgmt_upg_detail AS t
|
|
where t.upg_code = #{upgCode}
|
|
and t.vc !=''
|
|
</select>
|
|
|
|
|
|
|
|
<select id="getUpgMatrixList" parameterType="map" resultType="map">
|
|
SELECT t.upg_name,upg_code,upg_no,rn FROM (SELECT t.objid,t.spec_name,t1.upg_name,t1.upg_code,t1.upg_code||'-'||(SELECT o.product_code from product_mgmt AS o WHERE o.objid = t1.product_objid)||'-'||t1.vc AS upg_no,
|
|
ROW_NUMBER() OVER (PARTITION BY t.spec_name ORDER BY t.regdate,t2.code_id) rn
|
|
FROM product_mgmt_upg_master AS t , product_mgmt_upg_detail as t1,comm_code as t2
|
|
WHERE t.objid = t1.target_objid
|
|
and t.target_objid = #{product_code}::integer
|
|
AND t1.upg_name = t2.code_name) AS t ,product_mgmt_upg_master as pmu
|
|
WHERE t.objid = pmu.objid
|
|
ORDER BY pmu.regdate,rn
|
|
</select>
|
|
|
|
|
|
<select id="getProductUpgcommcodeList" parameterType="map" resultType="map">
|
|
<!-- SELECT t.code_name as UPG_NAME ,t.ext_val as UPG_CODE,CODE_ID FROM (SELECT t2.code_name,t2.ext_val,t2.code_id
|
|
FROM product_mgmt_upg_master AS t ,product_mgmt_upg_detail as t1,comm_code as t2
|
|
WHERE t.objid = t1.target_objid
|
|
and t1.upg_name = t2.code_name
|
|
and t.target_objid = #{product_code}::integer
|
|
GROUP BY t2.code_name,t2.ext_val,t2.code_id) AS t
|
|
ORDER BY t.code_id -->
|
|
SELECT t.code_name as UPG_NAME ,t.ext_val as UPG_CODE,CODE_ID FROM (SELECT t2.code_name,t2.ext_val,t2.code_id
|
|
FROM (SELECT t1.upg_name from product_mgmt_upg_master AS t ,product_mgmt_upg_detail as t1
|
|
WHERE t.objid = t1.target_objid
|
|
AND t.target_objid = #{product_code}::integer) AS T
|
|
RIGHT OUTER JOIN (SELECT * FROM comm_code AS cc WHERE cc.parent_code_id='0000042') as t2
|
|
on t.upg_name = t2.code_name
|
|
GROUP BY t2.code_name,t2.ext_val,t2.code_id) AS t
|
|
ORDER BY t.code_id
|
|
</select>
|
|
|
|
|
|
<select id="getUpgOneMatrixList" parameterType="map" resultType="map">
|
|
SELECT t.upg_name,upg_code,upg_no,rn FROM (SELECT t.objid,t.spec_name,t1.upg_name,t1.upg_code,
|
|
case WHEN t1.vc = '' THEN ''
|
|
ELSE t1.upg_code||'-'||(SELECT o.product_code from product_mgmt AS o WHERE o.objid = t1.product_objid)||'-'||t1.vc
|
|
END AS upg_no,
|
|
ROW_NUMBER() OVER (PARTITION BY t.spec_name ORDER BY t.regdate,t2.code_id) rn
|
|
FROM product_mgmt_upg_master AS t , product_mgmt_upg_detail as t1,comm_code as t2
|
|
WHERE t.objid = t1.target_objid
|
|
and t.target_objid = #{product_code}::integer
|
|
AND t1.UPG_CODE = #{code}
|
|
AND t1.upg_name = t2.code_name) AS t ,product_mgmt_upg_master as pmu
|
|
WHERE t.objid = pmu.objid
|
|
ORDER BY pmu.regdate,rn
|
|
</select>
|
|
|
|
|
|
|
|
<select id="getproductspecList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM PRODUCT_SPEC T
|
|
WHERE T.TARGET_OBJID = #{objId}::numeric
|
|
LIMIT 1
|
|
</select>
|
|
|
|
|
|
|
|
<select id="standardSpecList" parameterType="map" resultType="map">
|
|
SELECT t.code_name
|
|
,ROW_NUMBER() OVER(ORDER BY code_id)::varchar AS rnum FROM comm_code t
|
|
WHERE t.parent_code_id='0000069'
|
|
</select>
|
|
|
|
<insert id="insertProductSpec" parameterType="map">
|
|
INSERT INTO
|
|
PRODUCT_SPEC
|
|
( OBJID
|
|
,TARGET_OBJID
|
|
,SPEC_TEXT
|
|
,SPEC_VALUE
|
|
,REGDATE
|
|
,WRITER
|
|
,ORDER_NO
|
|
)
|
|
VALUES (
|
|
#{objid}::numeric
|
|
,#{target_objid}::numeric
|
|
,#{spec_text}
|
|
,null
|
|
,now()
|
|
,#{writer}
|
|
,#{order_no}
|
|
|
|
)
|
|
</insert>
|
|
|
|
<!-- 제품마스터 활성화-->
|
|
<update id="updateSpecification" parameterType="map">
|
|
UPDATE PRODUCT_MGMT
|
|
SET CONTENTS = #{contents}
|
|
WHERE OBJID=#{targetObjId}::numeric
|
|
</update>
|
|
|
|
<insert id="insertProductPriceHistory" parameterType="map">
|
|
INSERT INTO product_mgmt_price_history
|
|
(
|
|
OBJID
|
|
,PRODUCT_OBJID
|
|
,REG_DATE
|
|
,PRICE
|
|
) VALUES (
|
|
#{priceobjid}
|
|
,#{objId}
|
|
,now()
|
|
,#{price}
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="getproductPriceHistoryCnt" 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 FROM PRODUCT_MGMT_PRICE_HISTORY
|
|
WHERE PRODUCT_OBJID = #{objId}
|
|
) T
|
|
) TT
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<select id="getproductPriceHistory" parameterType="map" resultType="map">
|
|
SELECT * FROM (
|
|
SELECT T.*,ROW_NUMBER() OVER (ORDER BY REG_DATE DESC) AS RNUM
|
|
FROM (
|
|
SELECT OBJID
|
|
,TO_DATE(T.REG_DATE, 'YYYY-MM-DD') AS REGDATE
|
|
,REG_DATE
|
|
,PRICE
|
|
FROM PRODUCT_MGMT_PRICE_HISTORY AS T
|
|
WHERE PRODUCT_OBJID = #{objId}
|
|
) T
|
|
) TT
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
|
|
<![CDATA[ AND TT.RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
|
|
<![CDATA[ AND TT.RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<update id="deleteproductMngPriceInfo" parameterType="map">
|
|
DELETE FROM PRODUCT_MGMT_PRICE_HISTORY WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<select id="getCodeExt_val" parameterType="map" resultType="map">
|
|
SELECT EXT_VAL FROM COMM_CODE WHERE code_id = #{code_id}
|
|
</select>
|
|
|
|
|
|
|
|
</mapper>
|
|
|