- 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
620 lines
16 KiB
XML
620 lines
16 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="salesMngNew">
|
|
|
|
|
|
<update id="mergeSalesRequestMasterInfo" parameterType="map">
|
|
INSERT INTO SALES_REQUEST_MASTER
|
|
(
|
|
OBJID,
|
|
REQUEST_MNG_NO,
|
|
CATEGORY_CD,
|
|
PRODUCT_GROUP,
|
|
PRODUCT,
|
|
PRODUCT_CODE,
|
|
SALES_MNG_USER_ID,
|
|
REQUEST_STATUS,
|
|
REQUEST_STATUS_REMARK,
|
|
TITLE,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
ORDER_NUMBER
|
|
)
|
|
VALUES
|
|
(
|
|
#{SALES_REQUEST_MASTER_OBJID},
|
|
(SELECT 'R'||TO_CHAR(NOW(),'YYYYMMDD')||'-'||LPAD((COALESCE(MAX(SUBSTR(REQUEST_MNG_NO,11,13)),'0')::INTEGER+1)::TEXT,3,'0') FROM SALES_REQUEST_MASTER),
|
|
#{CATEGORY_CD },
|
|
#{PRODUCT_GROUP },
|
|
#{PRODUCT },
|
|
#{PRODUCT_CODE },
|
|
#{SALES_MNG_USER_ID },
|
|
#{REQUEST_STATUS },
|
|
#{REQUEST_STATUS_REMARK },
|
|
#{TITLE },
|
|
#{WRITER },
|
|
NOW(),
|
|
#{STATUS },
|
|
#{ORDER_NUMBER }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
REQUEST_MNG_NO = #{REQUEST_MNG_NO},
|
|
CATEGORY_CD = #{CATEGORY_CD},
|
|
PRODUCT_GROUP = #{PRODUCT_GROUP},
|
|
PRODUCT = #{PRODUCT},
|
|
PRODUCT_CODE = #{PRODUCT_CODE},
|
|
SALES_MNG_USER_ID = #{SALES_MNG_USER_ID},
|
|
REQUEST_STATUS = #{REQUEST_STATUS},
|
|
REQUEST_STATUS_REMARK = #{REQUEST_STATUS_REMARK},
|
|
TITLE = #{TITLE},
|
|
STATUS = #{STATUS},
|
|
ORDER_NUMBER = #{ORDER_NUMBER}
|
|
</update>
|
|
|
|
|
|
|
|
<!-- 구매의뢰 저장 시 저장된 파트 정보를 초기화 -->
|
|
<delete id="initSalesRequestPart" parameterType="map">
|
|
DELETE FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
|
</delete>
|
|
|
|
<update id="mergeSalesRequestPartInfo" parameterType="map">
|
|
INSERT INTO SALES_REQUEST_PART
|
|
(
|
|
OBJID,
|
|
SALES_BOM_QTY_OBJID,
|
|
PART_OBJID,
|
|
SALES_REQUEST_MASTER_OBJID,
|
|
PART_NAME,
|
|
SPEC,
|
|
QTY,
|
|
ORG_QTY,
|
|
PARTNER_OBJID,
|
|
DELIVERY_REQUEST_DATE,
|
|
WRITER,
|
|
REGDATE,
|
|
STATUS,
|
|
REMARK
|
|
)
|
|
VALUES
|
|
(
|
|
#{SALES_REQUEST_PART_OBJID },
|
|
#{SALES_BOM_QTY_OBJID },
|
|
#{PART_OBJID },
|
|
#{SALES_REQUEST_MASTER_OBJID},
|
|
#{PART_NAME },
|
|
#{SPEC },
|
|
#{QTY },
|
|
#{ORG_QTY },
|
|
#{PARTNER_OBJID },
|
|
#{DELIVERY_REQUEST_DATE },
|
|
#{WRITER},
|
|
NOW(),
|
|
#{STATUS},
|
|
#{REMARK}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
SALES_BOM_QTY_OBJID = #{SALES_BOM_QTY_OBJID },
|
|
PART_OBJID = #{PART_OBJID },
|
|
SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID},
|
|
PART_NAME = #{PART_NAME },
|
|
SPEC = #{SPEC },
|
|
QTY = #{QTY },
|
|
ORG_QTY = #{ORG_QTY },
|
|
PARTNER_OBJID = #{PARTNER_OBJID },
|
|
DELIVERY_REQUEST_DATE = #{DELIVERY_REQUEST_DATE },
|
|
WRITER = #{WRITER},
|
|
STATUS = #{STATUS},
|
|
REMARK = #{REMARK}
|
|
</update>
|
|
|
|
<!-- 구매 BOM을 통한 구매 의뢰 시 저장된 Part 정보를 가져온다. -->
|
|
<select id="getSalesRequestSavedPartList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY SRP.REGDATE DESC) AS RNUM,
|
|
SRP.OBJID,
|
|
SRP.SALES_BOM_QTY_OBJID,
|
|
SRP.PART_OBJID,
|
|
SRP.SALES_REQUEST_MASTER_OBJID,
|
|
SRP.QTY,
|
|
SRP.ORG_QTY,
|
|
SRP.PARTNER_OBJID,
|
|
SRP.PARTNER_PRICE,
|
|
SRP.DELIVERY_REQUEST_DATE,
|
|
SRP.WRITER,
|
|
SRP.REGDATE,
|
|
SRP.STATUS,
|
|
SRP.REMARK,
|
|
SRP.PART_NAME,
|
|
PM.MATERIAL,
|
|
SRP.SPEC,
|
|
PM.PART_NO,
|
|
PM.REVISION,
|
|
PM.PART_NAME||'('||PM.MATERIAL||','||PM.SPEC||')/'||PM.PART_NO AS TARGET_TITLE,
|
|
PM.UNIT_TITLE
|
|
FROM
|
|
SALES_REQUEST_MASTER SRM
|
|
|
|
INNER JOIN SALES_REQUEST_PART SRP
|
|
ON SRM.OBJID = SRP.SALES_REQUEST_MASTER_OBJID
|
|
|
|
LEFT OUTER JOIN <include refid="partMng.partMngBase"/> PM
|
|
ON SRP.PART_OBJID = PM.OBJID::TEXT
|
|
WHERE 1=1
|
|
AND SRM.OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
|
|
|
<if test="PARTNER_OBJID != null and !''.equals(PARTNER_OBJID)">
|
|
AND SRP.PARTNER_OBJID = #{PARTNER_OBJID}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="getSalesRequestMasterList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) AS RNUM,
|
|
AA.*
|
|
FROM (
|
|
SELECT
|
|
SRM.OBJID,
|
|
SRM.REQUEST_MNG_NO,
|
|
|
|
SRM.CATEGORY_CD,
|
|
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.CATEGORY_CD) AS CATEGORY_CD_NAME,
|
|
|
|
SRM.PRODUCT_GROUP,
|
|
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PRODUCT_GROUP) AS PRODUCT_GROUP_NAME,
|
|
|
|
SRM.PRODUCT,
|
|
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.PRODUCT) AS PRODUCT_NAME,
|
|
|
|
SRM.PRODUCT_CODE,
|
|
(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = SRM.PRODUCT_CODE::VARCHAR) AS PRODUCT_CODE_NAME,
|
|
|
|
SRM.SALES_MNG_USER_ID,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.SALES_MNG_USER_ID) AS SALES_MNG_USER_NAME,
|
|
|
|
SRM.REQUEST_STATUS,
|
|
(SELECT CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = SRM.REQUEST_STATUS) AS REQUEST_STATUS_TITLE,
|
|
|
|
SRM.REQUEST_STATUS_REMARK,
|
|
SRM.TITLE,
|
|
|
|
SRM.WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.WRITER) AS WRITER_NAME,
|
|
|
|
SRM.REGDATE,
|
|
TO_CHAR(SRM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
|
|
SRM.STATUS,
|
|
CASE SRM.STATUS
|
|
WHEN 'create' THEN '등록'
|
|
WHEN 'release' THEN '제출 완료'
|
|
WHEN 'reception' THEN '의뢰 접수'
|
|
WHEN 'approvalRequest' THEN '결재중'
|
|
WHEN 'approvalComplete' THEN '조치완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END STATUS_TITLE,
|
|
|
|
SRP.TARGET_TITLE,
|
|
|
|
A.APPR_STATUS,
|
|
A.ROUTE_OBJID,
|
|
A.APPROVAL_OBJID,
|
|
A.ROUTE_OBJID,
|
|
SRM.CHECK_USER_ID,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = SRM.CHECK_USER_ID) AS CHECK_USER_NAME,
|
|
TO_CHAR(SRM.CHECK_DATE,'YYYY-MM-DD') AS CHECK_DATE
|
|
|
|
FROM
|
|
SALES_REQUEST_MASTER SRM
|
|
|
|
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 ('SALES_REQUEST')
|
|
) A ON SRM.OBJID::VARCHAR = A.TARGET_OBJID::VARCHAR
|
|
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
ROW_NUMBER() OVER(PARTITION BY SRP.SALES_REQUEST_MASTER_OBJID ORDER BY SRP.REGDATE DESC) SUB_RNUM,
|
|
SRP.OBJID,
|
|
SRP.SALES_BOM_QTY_OBJID,
|
|
SRP.PART_OBJID,
|
|
SRP.SALES_REQUEST_MASTER_OBJID,
|
|
SRP.PART_NAME,
|
|
SRP.SPEC,
|
|
SRP.QTY,
|
|
SRP.PARTNER_OBJID,
|
|
SRP.DELIVERY_REQUEST_DATE,
|
|
SRP.WRITER,
|
|
SRP.REGDATE,
|
|
SRP.STATUS,
|
|
SRP.REMARK,
|
|
|
|
PM.PART_NAME||'('||PM.MATERIAL||','||PM.SPEC||')/'||PM.PART_NO AS TARGET_TITLE,
|
|
PM.UNIT_TITLE
|
|
FROM
|
|
SALES_REQUEST_MASTER SRM
|
|
|
|
INNER JOIN SALES_REQUEST_PART SRP
|
|
ON SRM.OBJID = SRP.SALES_REQUEST_MASTER_OBJID
|
|
|
|
LEFT OUTER JOIN <include refid="partMng.partMngBase"/> PM
|
|
ON SRP.PART_OBJID = PM.OBJID::TEXT
|
|
|
|
WHERE 1=1
|
|
) SRP ON SRP.SALES_REQUEST_MASTER_OBJID::VARCHAR = SRM.OBJID::VARCHAR
|
|
AND SRP.SUB_RNUM = 1
|
|
WHERE 1=1
|
|
) AA
|
|
WHERE 1=1
|
|
<if test="title != null and !''.equals(title)">
|
|
AND title = #{title}
|
|
</if>
|
|
|
|
<if test="SEARCH_CATEGORY_CD != null and !''.equals(SEARCH_CATEGORY_CD)">
|
|
AND CATEGORY_CD = #{SEARCH_CATEGORY_CD}
|
|
</if>
|
|
|
|
<if test="SEARCH_PRODUCT_GROUP != null and !''.equals(SEARCH_PRODUCT_GROUP)">
|
|
AND PRODUCT_GROUP = #{SEARCH_PRODUCT_GROUP}
|
|
</if>
|
|
|
|
<if test="SEARCH_PRODUCT != null and !''.equals(SEARCH_PRODUCT)">
|
|
AND PRODUCT = #{SEARCH_PRODUCT}
|
|
</if>
|
|
|
|
<if test="SEARCH_PRODUCT_CODE != null and !''.equals(SEARCH_PRODUCT_CODE)">
|
|
AND PRODUCT_CODE = #{SEARCH_PRODUCT_CODE}
|
|
</if>
|
|
|
|
<if test="SEARCH_PART_NO != null and !''.equals(SEARCH_PART_NO)">
|
|
AND OBJID IN (
|
|
SELECT
|
|
SRP.SALES_REQUEST_MASTER_OBJID
|
|
FROM
|
|
SALES_REQUEST_PART SRP
|
|
LEFT OUTER JOIN PART_MNG PM
|
|
ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
|
|
WHERE PART_NO LIKE'%${SEARCH_PART_NO}%'
|
|
)
|
|
</if>
|
|
<if test="SEARCH_PART_NAME != null and !''.equals(SEARCH_PART_NAME)">
|
|
AND OBJID IN (
|
|
SELECT
|
|
SRP.SALES_REQUEST_MASTER_OBJID
|
|
FROM
|
|
SALES_REQUEST_PART SRP
|
|
LEFT OUTER JOIN PART_MNG PM
|
|
ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
|
|
WHERE PART_NAME LIKE'%${SEARCH_PART_NAME}%'
|
|
)
|
|
</if>
|
|
|
|
<!-- <if test="SEARCH_STATUS != null and !''.equals(SEARCH_STATUS)">
|
|
<![CDATA[ AND 0 < POSITION(STATUS || ',' IN #{SEARCH_STATUS}||',') ]]>
|
|
</if> -->
|
|
</select>
|
|
|
|
<update id="changeStatusSalesRequestMaster" parameterType="map">
|
|
UPDATE
|
|
SALES_REQUEST_MASTER
|
|
SET
|
|
STATUS = #{STATUS}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<update id="releaseSalesRequestMaster" parameterType="map">
|
|
UPDATE
|
|
SALES_REQUEST_MASTER
|
|
SET
|
|
RELEASE_DATE = TO_CHAR(NOW(),'YYYY-MM-DD')
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<select id="getSalesPartnerInfoList" parameterType="map" resultType="map">
|
|
SELECT
|
|
A.*,
|
|
ROW_NUMBER() OVER(ORDER BY A.SEQ) AS RNUM
|
|
FROM(
|
|
SELECT
|
|
BPQ.PART_NO,
|
|
SBPQ.FIRST_PARTNER_OBJID AS PARTNER_OBJID,
|
|
(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = SBPQ.FIRST_PARTNER_OBJID) AS PARTNER_NAME,
|
|
1 AS SEQ
|
|
FROM BOM_PART_QTY BPQ
|
|
LEFT OUTER JOIN SALES_BOM_PART_QTY SBPQ
|
|
ON BPQ.BOM_REPORT_OBJID::VARCHAR = SBPQ.BOM_REPORT_OBJID
|
|
AND BPQ.OBJID::VARCHAR = SBPQ.OBJID
|
|
AND SBPQ.FIRST_PARTNER_OBJID IS NOT NULL
|
|
AND SBPQ.FIRST_PARTNER_OBJID != ''
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
BPQ.PART_NO,
|
|
SBPQ.SECOND_PARTNER_OBJID AS PARTNER_OBJID,
|
|
(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = SBPQ.SECOND_PARTNER_OBJID) AS PARTNER_NAME,
|
|
2 AS SEQ
|
|
FROM BOM_PART_QTY BPQ
|
|
LEFT OUTER JOIN SALES_BOM_PART_QTY SBPQ
|
|
ON BPQ.BOM_REPORT_OBJID::VARCHAR = SBPQ.BOM_REPORT_OBJID
|
|
AND BPQ.OBJID::VARCHAR = SBPQ.OBJID
|
|
AND SBPQ.SECOND_PARTNER_OBJID IS NOT NULL
|
|
AND SBPQ.SECOND_PARTNER_OBJID != ''
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
BPQ.PART_NO,
|
|
SBPQ.THIRD_PARTNER_OBJID AS PARTNER_OBJID,
|
|
(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE 1=1 AND OBJID::VARCHAR = SBPQ.THIRD_PARTNER_OBJID) AS PARTNER_NAME,
|
|
3 AS SEQ
|
|
FROM BOM_PART_QTY BPQ
|
|
LEFT OUTER JOIN SALES_BOM_PART_QTY SBPQ
|
|
ON BPQ.BOM_REPORT_OBJID::VARCHAR = SBPQ.BOM_REPORT_OBJID
|
|
AND BPQ.OBJID::VARCHAR = SBPQ.OBJID
|
|
AND SBPQ.THIRD_PARTNER_OBJID IS NOT NULL
|
|
AND SBPQ.THIRD_PARTNER_OBJID != ''
|
|
)A WHERE 1=1
|
|
AND PART_NO::VARCHAR = #{PART_OBJID}
|
|
|
|
</select>
|
|
|
|
<!-- 구매 BOM을 통한 구매 의뢰 시 대상 Part 정보를 가져온다. -->
|
|
<select id="getSalesRequestTargetList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
RNUM,
|
|
PART_NAME,
|
|
SPEC,
|
|
QTY,
|
|
PARTNER_OBJID,
|
|
DELIVERY_REQUEST_DATE,
|
|
REMARK
|
|
FROM
|
|
SALES_REQUEST_PART
|
|
WHERE 1=1
|
|
AND OBJID = #{OBJID}
|
|
|
|
<!-- WITH RECURSIVE VIEW_BOM(
|
|
BOM_REPORT_OBJID,
|
|
OBJID,
|
|
PARENT_OBJID,
|
|
CHILD_OBJID,
|
|
PARENT_PART_NO,
|
|
PART_NO,
|
|
QTY,
|
|
REGDATE,
|
|
SEQ,
|
|
LEV,
|
|
PATH,
|
|
CYCLE
|
|
) AS (
|
|
SELECT
|
|
A.BOM_REPORT_OBJID,
|
|
A.OBJID,
|
|
A.PARENT_OBJID,
|
|
A.CHILD_OBJID,
|
|
A.PARENT_PART_NO,
|
|
A.PART_NO,
|
|
A.QTY,
|
|
A.REGDATE,
|
|
A.SEQ,
|
|
1,
|
|
ARRAY [A.CHILD_OBJID::TEXT],
|
|
FALSE
|
|
FROM
|
|
BOM_PART_QTY A
|
|
where 1=1
|
|
AND (A.PARENT_OBJID IS NULL OR A.PARENT_OBJID = '')
|
|
AND A.BOM_REPORT_OBJID = #{bom_report_objid}
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
B.BOM_REPORT_OBJID,
|
|
B.OBJID,
|
|
B.PARENT_OBJID,
|
|
B.CHILD_OBJID,
|
|
B.PARENT_PART_NO,
|
|
B.PART_NO,
|
|
B.QTY,
|
|
B.REGDATE,
|
|
B.SEQ,
|
|
LEV + 1,
|
|
PATH||B.CHILD_OBJID::TEXT,
|
|
B.PARENT_OBJID = ANY(PATH)
|
|
FROM
|
|
BOM_PART_QTY B
|
|
JOIN
|
|
VIEW_BOM
|
|
ON B.PARENT_OBJID = VIEW_BOM.CHILD_OBJID
|
|
AND VIEW_BOM.BOM_REPORT_OBJID = B.BOM_REPORT_OBJID
|
|
)
|
|
|
|
SELECT
|
|
V.BOM_REPORT_OBJID
|
|
,V.PARENT_OBJID
|
|
,V.CHILD_OBJID
|
|
,V.PARENT_PART_NO
|
|
,V.QTY
|
|
,V.LEV
|
|
,(SELECT COUNT(*) FROM BOM_PART_QTY WHERE PARENT_OBJID = V.CHILD_OBJID) AS SUB_PART_CNT
|
|
,V.SEQ
|
|
,(CASE WHEN V.CYCLE IS NULL THEN 1 ELSE 0 END) AS LEAF
|
|
|
|
,T2.OBJID AS PART_OBJID
|
|
,T2.PART_NO
|
|
,T2.PART_NAME
|
|
,T2.UNIT_TITLE
|
|
,T2.EO_NO
|
|
,T2.EO_DATE
|
|
,T2.REVISION
|
|
,T2.SPEC
|
|
,T2.MATERIAL
|
|
,T2.WEIGHT
|
|
|
|
,SBPQ.PRODUCT_TYPE_CODE
|
|
,SBPQ.FIRST_PARTNER_OBJID
|
|
,SBPQ.FIRST_PARTNER_PRICE
|
|
,SBPQ.FIRST_PARTNER_QTY
|
|
,SBPQ.SECOND_PARTNER_OBJID
|
|
,SBPQ.SECOND_PARTNER_PRICE
|
|
,SBPQ.SECOND_PARTNER_QTY
|
|
,SBPQ.THIRD_PARTNER_OBJID
|
|
,SBPQ.THIRD_PARTNER_PRICE
|
|
,SBPQ.THIRD_PARTNER_QTY
|
|
|
|
,(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CC.CODE_ID = SBPQ.PRODUCT_TYPE_CODE) AS PRODUCT_TYPE_CODE_NAME
|
|
,(SELECT SM.SUPPLY_NAME FROM SUPPLY_MNG SM WHERE 1=1 AND SM.SUPPLY_CODE = SBPQ.FIRST_PARTNER_OBJID) AS FIRST_PARTNER_NAME
|
|
,(SELECT SM.SUPPLY_NAME FROM SUPPLY_MNG SM WHERE 1=1 AND SM.SUPPLY_CODE = SBPQ.SECOND_PARTNER_OBJID) AS SECOND_PARTNER_NAME
|
|
,(SELECT SM.SUPPLY_NAME FROM SUPPLY_MNG SM WHERE 1=1 AND SM.SUPPLY_CODE = SBPQ.THIRD_PARTNER_OBJID) AS THIRD_PARTNER_NAME
|
|
,SBPQ.OBJID
|
|
,SBPQ.OBJID AS SALES_BOM_QTY_OBJID
|
|
FROM
|
|
VIEW_BOM V
|
|
LEFT OUTER JOIN <include refid="partMng.partMngBase"/> T2
|
|
ON V.PART_NO = T2.OBJID::TEXT
|
|
LEFT OUTER JOIN SALES_BOM_PART_QTY SBPQ
|
|
ON V.BOM_REPORT_OBJID::VARCHAR = SBPQ.BOM_REPORT_OBJID
|
|
AND V.OBJID::VARCHAR = SBPQ.OBJID
|
|
WHERE 1=1
|
|
AND(
|
|
(SBPQ.FIRST_PARTNER_OBJID IS NOT NULL AND SBPQ.FIRST_PARTNER_OBJID != '') OR
|
|
(SBPQ.SECOND_PARTNER_OBJID IS NOT NULL AND SBPQ.SECOND_PARTNER_OBJID != '') OR
|
|
(SBPQ.THIRD_PARTNER_OBJID IS NOT NULL AND SBPQ.THIRD_PARTNER_OBJID != '')
|
|
)
|
|
ORDER BY V.PATH,V.REGDATE -->
|
|
|
|
</select>
|
|
|
|
|
|
<update id="mergeOrderSpecMng" parameterType="map">
|
|
INSERT INTO ORDER_SPEC_MNG
|
|
(
|
|
OBJID,
|
|
SEQ,
|
|
PART_OBJID,
|
|
PARTNER_RANK,
|
|
PARTNER_OBJID,
|
|
PARTNER_QTY,
|
|
APPLY_DATE,
|
|
REMARK,
|
|
REGDATE,
|
|
IS_LAST,
|
|
WRITER
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID},
|
|
#{SEQ},
|
|
#{PART_OBJID},
|
|
#{PARTNER_RANK},
|
|
#{PARTNER_OBJID},
|
|
#{PARTNER_QTY},
|
|
#{APPLY_DATE},
|
|
#{REMARK},
|
|
NOW(),
|
|
#{IS_LAST},
|
|
#{WRITER}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
SEQ = #{SEQ},
|
|
PART_OBJID = #{PART_OBJID},
|
|
PARTNER_RANK = #{PARTNER_RANK},
|
|
PARTNER_OBJID = #{PARTNER_OBJID},
|
|
PARTNER_QTY = #{PARTNER_QTY},
|
|
APPLY_DATE = #{APPLY_DATE},
|
|
REMARK = #{REMARK},
|
|
REGDATE = NOW(),
|
|
IS_LAST = #{IS_LAST},
|
|
WRITER = #{WRITER}
|
|
</update>
|
|
|
|
<delete id="deleteOrderSpecMng" parameterType="map">
|
|
DELETE FROM ORDER_SPEC_MNG WHERE 1=1 <![CDATA[ AND 0 < POSITION(OBJID::TEXT || ',' IN #{checkArr}||',') ]]>
|
|
</delete>
|
|
|
|
<update id="insertOrderSpecMngHistory" parameterType="map">
|
|
INSERT INTO ORDER_SPEC_MNG_HISTORY
|
|
SELECT
|
|
*
|
|
FROM ORDER_SPEC_MNG WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<select id="getOrderSpecMngHistoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
SEQ,
|
|
PART_OBJID,
|
|
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = PARTNER_OBJID::VARCHAR) AS PARTNER_NAME,
|
|
PARTNER_RANK,
|
|
PARTNER_OBJID,
|
|
PARTNER_QTY,
|
|
APPLY_DATE,
|
|
REMARK,
|
|
REGDATE,
|
|
IS_LAST,
|
|
WRITER
|
|
FROM
|
|
ORDER_SPEC_MNG_HISTORY
|
|
WHERE 1=1
|
|
AND OBJID = #{OBJID}
|
|
ORDER BY REGDATE DESC
|
|
</select>
|
|
|
|
<delete id="deleteSalesRequestMaster" parameterType="map">
|
|
DELETE FROM SALES_REQUEST_MASTER WHERE OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
|
</delete>
|
|
|
|
<delete id="deleteSalesRequestPart" parameterType="map">
|
|
DELETE FROM SALES_REQUEST_PART WHERE SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
|
</delete>
|
|
|
|
<update id="completeSalesRequestInfo" parameterType="map">
|
|
UPDATE SALES_REQUEST_MASTER
|
|
SET status = 'approvalComplete'
|
|
,CHECK_USER_ID = #{writer}
|
|
,CHECK_DATE = now()
|
|
WHERE OBJID = #{SALES_REQUEST_MASTER_OBJID}
|
|
</update>
|
|
|
|
|
|
</mapper> |