[TASK_BATCH_ACIDLIVY] ACI 배송자료 조회 및 출고처리 배치 신규 생성 - AciDlivyJobConfig/Tasklet/Mapper/VO 생성, application-dev.yaml aci.dlivy.api-url 추가

This commit is contained in:
이주일
2026-05-24 21:17:56 +09:00
parent 6cbdc36c71
commit c9f2843a10
8 changed files with 783 additions and 1 deletions

View File

@@ -0,0 +1,356 @@
<?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="com.wb.domainserver.acidlivy.AciDlivyMapper">
<!-- ?? ?? ???? ?? ?? (ORDR_STTUS_CD = '35' ?????) -->
<select id="selectAciDlivyTargetList" resultType="com.wb.domainserver.acidlivy.AciDlivyOrderVO">
<![CDATA[
SELECT
ORDR_DLVY_INNB,
ORDR_INNB,
SOPMAL_CD
FROM GC_ORDER_SHIPPING
WHERE ORDR_STTUS_CD = '35'
AND USE_AT = 'Y'
ORDER BY ORDR_DLVY_INNB
]]>
</select>
<!-- ?? ?? ?????? ?? ?? -->
<!-- QY: ????(35)? ?????? ??, ?? ??/????/?? ?? ?? -->
<select id="selectAciDlivyTargetItemList"
parameterType="com.wb.domainserver.acidlivy.AciDlivyOrderVO"
resultType="dataMap">
<![CDATA[
SELECT
OIOP.ORDR_GOODS_OPTN_INNB,
OIOP.SOPMAL_CD,
OIOP.OPTN_TY,
((OIOP.ORDR_QY - OIOP.STEP85) - (OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75)) AS QY
FROM GC_ORDER_ITEM_OPTION OIOP
INNER JOIN GC_ORDER_SHIPPING SH
ON OIOP.SOPMAL_CD = SH.SOPMAL_CD
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
WHERE SH.SOPMAL_CD = #{sopmalCd}
AND SH.ORDR_INNB = #{ordrInnb}
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
]]>
</select>
<!-- gc_goods_export ?? ?? -->
<select id="selectGoodsExportCount"
parameterType="com.wb.domainserver.acidlivy.AciDlivyOrderVO"
resultType="int">
<![CDATA[
SELECT COUNT(1)
FROM GC_GOODS_EXPORT
WHERE SOPMAL_CD = #{sopmalCd}
AND ORDR_INNB = #{ordrInnb}
AND ORDR_DLVY_INNB = #{ordrDlvyInnb}
AND HDRYCPN_CD = #{hdrycpnCd}
]]>
</select>
<!-- gc_goods_export INSERT -->
<!-- DLIVY_CD_NB: 'D' + yyMMddHH + DLIVY_INNB, HDRYCPN_CD: code22 ??, INVCNB: ACI BLNO -->
<insert id="insertGoodsExport"
parameterType="com.wb.domainserver.acidlivy.AciDlivyOrderVO">
<selectKey order="BEFORE" keyProperty="dlivyInnb" resultType="java.lang.String">
SELECT IFNULL(MAX(DLIVY_INNB), 0) + 1 FROM GC_GOODS_EXPORT
</selectKey>
<![CDATA[
INSERT INTO GC_GOODS_EXPORT (
DLIVY_INNB,
SOPMAL_CD,
ORDR_INNB,
ORDR_DLVY_INNB,
DLIVY_CD_NB,
DLIVY_STTUS_CD,
STTUS_UPDT_DT,
HDRYCPN_CD,
INVCNB,
DLIVY_DT,
DLIVY_COMPT_DT,
MNGR_INNB,
REGIST_DT,
UPDT_DT
) VALUES (
#{dlivyInnb},
#{sopmalCd},
#{ordrInnb},
#{ordrDlvyInnb},
CONCAT('D', DATE_FORMAT(SYSDATE(), '%y%m%d%H'), #{dlivyInnb}),
#{dlivySttusCd},
SYSDATE(),
#{hdrycpnCd},
#{blno},
SYSDATE(),
SYSDATE(),
0,
SYSDATE(),
SYSDATE()
)
]]>
</insert>
<!-- gc_goods_export UPDATE (?? ???? ??) -->
<!-- selectKey ? ?? DLIVY_INNB ???? dlivyInnb ? ?? -->
<update id="updateGoodsExport"
parameterType="com.wb.domainserver.acidlivy.AciDlivyOrderVO">
<selectKey order="BEFORE" keyProperty="dlivyInnb" resultType="java.lang.String">
<![CDATA[
SELECT MAX(DLIVY_INNB)
FROM GC_GOODS_EXPORT
WHERE SOPMAL_CD = #{sopmalCd}
AND ORDR_INNB = #{ordrInnb}
AND ORDR_DLVY_INNB = #{ordrDlvyInnb}
AND HDRYCPN_CD = #{hdrycpnCd}
]]>
</selectKey>
<![CDATA[
UPDATE GC_GOODS_EXPORT SET
INVCNB = #{blno},
DLIVY_DT = SYSDATE(),
DLIVY_COMPT_DT = SYSDATE(),
UPDT_DT = SYSDATE()
WHERE SOPMAL_CD = #{sopmalCd}
AND ORDR_INNB = #{ordrInnb}
AND ORDR_DLVY_INNB = #{ordrDlvyInnb}
AND HDRYCPN_CD = #{hdrycpnCd}
]]>
</update>
<!-- gc_goods_export_item ?? ?? -->
<select id="selectGoodsExportItemCount"
parameterType="dataMap"
resultType="int">
<![CDATA[
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM
WHERE SOPMAL_CD = #{sopmalCd}
AND DLIVY_INNB = #{dlivyInnb}
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
AND OPTN_TY = #{optnTy}
]]>
</select>
<!-- gc_goods_export_item INSERT -->
<insert id="insertGoodsExportItem" parameterType="dataMap">
<selectKey order="BEFORE" keyProperty="dlivyGoodsInnb" resultType="java.lang.String">
SELECT IFNULL(MAX(DLIVY_GOODS_INNB), 0) + 1 FROM GC_GOODS_EXPORT_ITEM
</selectKey>
<![CDATA[
INSERT INTO GC_GOODS_EXPORT_ITEM (
DLIVY_GOODS_INNB,
DLIVY_INNB,
ORDR_GOODS_OPTN_INNB,
OPTN_TY,
SOPMAL_CD,
QY,
PYMNT_PREARNGE_QY,
ACCMLMNY_PYMNT_QY,
PYMNT_PREARNGE_EXTSH_QY,
NPAY_TRNSMIS_AT
) VALUES (
#{dlivyGoodsInnb},
#{dlivyInnb},
#{ordrGoodsOptnInnb},
#{optnTy},
#{sopmalCd},
#{qy},
#{qy},
0,
0,
NULL
)
]]>
</insert>
<!-- gc_goods_export_item UPDATE (?? ???? ??) -->
<update id="updateGoodsExportItem" parameterType="dataMap">
<![CDATA[
UPDATE GC_GOODS_EXPORT_ITEM SET
QY = (QY + #{qy}),
PYMNT_PREARNGE_QY = (QY + #{qy})
WHERE SOPMAL_CD = #{sopmalCd}
AND DLIVY_INNB = #{dlivyInnb}
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
]]>
</update>
<!-- gc_order_item_option ?? UPDATE -->
<!-- ORDR_STTUS_CD: ????(50) ?? ????(55), STEP55 = ????, STEP45 = 0 -->
<update id="updateOrderItemOptionStatus" parameterType="dataMap">
<![CDATA[
UPDATE GC_ORDER_ITEM_OPTION SET
ORDR_STTUS_CD = CASE
WHEN (ORDR_QY - STEP85) > #{qy} THEN '50'
WHEN (ORDR_QY - STEP85) = #{qy} THEN '55'
ELSE ORDR_STTUS_CD
END,
STEP55 = #{qy},
STEP45 = 0,
UPDT_DT = SYSDATE()
WHERE SOPMAL_CD = #{sopmalCd}
AND OPTN_TY = #{optnTy}
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
]]>
</update>
<!-- gc_order_shipping ?? UPDATE -->
<!-- ????? ?? item_option ??/?? ???? ?? ?? (?? updateBOOrdrDlvyStatusUpdt6575 ?? ??) -->
<update id="updateOrderShippingStatus"
parameterType="com.wb.domainserver.acidlivy.AciDlivyOrderVO">
<![CDATA[
UPDATE GC_ORDER_SHIPPING SH,
(
SELECT
CASE WHEN MAX(OIOP.ORDR_STTUS_CD) = MIN(OIOP.ORDR_STTUS_CD)
THEN MAX(OIOP.ORDR_STTUS_CD)
ELSE CAST(MAX(OIOP.ORDR_STTUS_CD) - 5 AS CHAR(2))
END AS ORDR_STTUS_CD,
SH.SOPMAL_CD,
SH.ORDR_INNB,
SH.ORDR_DLVY_INNB
FROM GC_ORDER_SHIPPING SH
INNER JOIN GC_ORDER_ITEM_OPTION OIOP
ON SH.SOPMAL_CD = OIOP.SOPMAL_CD
AND SH.ORDR_DLVY_INNB = OIOP.ORDR_DLVY_INNB
AND OIOP.ORDR_QY <> OIOP.STEP85
WHERE SH.SOPMAL_CD = #{sopmalCd}
AND SH.ORDR_INNB = #{ordrInnb}
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
AND SH.USE_AT = 'Y'
GROUP BY SH.SOPMAL_CD, SH.ORDR_INNB, SH.ORDR_DLVY_INNB
) STEP
SET
SH.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD,
SH.UPDT_DT = SYSDATE()
WHERE SH.SOPMAL_CD = STEP.SOPMAL_CD
AND SH.ORDR_INNB = STEP.ORDR_INNB
AND SH.ORDR_DLVY_INNB = STEP.ORDR_DLVY_INNB
]]>
</update>
<!-- gc_order ?? UPDATE -->
<!-- ????? ?? shipping ??/?? ???? ?? ?? (?? updateBOOrdrStatusUpdt6575 ?? ??) -->
<update id="updateOrderStatus"
parameterType="com.wb.domainserver.acidlivy.AciDlivyOrderVO">
<![CDATA[
UPDATE GC_ORDER O,
(
SELECT
CASE WHEN MAX(SH.ORDR_STTUS_CD) = MIN(SH.ORDR_STTUS_CD)
THEN MAX(SH.ORDR_STTUS_CD)
ELSE CAST(MAX(SH.ORDR_STTUS_CD) - 5 AS CHAR(2))
END AS ORDR_STTUS_CD,
O.SOPMAL_CD,
O.ORDR_INNB
FROM GC_ORDER O
INNER JOIN GC_ORDER_SHIPPING SH
ON O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD <> '85'
WHERE O.SOPMAL_CD = #{sopmalCd}
AND O.ORDR_INNB = #{ordrInnb}
GROUP BY O.SOPMAL_CD, O.ORDR_INNB
) STEP
SET
O.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD,
O.UPDT_DT = SYSDATE()
WHERE O.SOPMAL_CD = STEP.SOPMAL_CD
AND O.ORDR_INNB = STEP.ORDR_INNB
AND O.USE_AT = 'Y'
]]>
</update>
<!-- GC_GOODS_EXPORT_LOG INSERT -->
<insert id="insertGoodsExportLog" parameterType="dataMap">
<selectKey order="BEFORE" keyProperty="dlivyLogInnb" resultType="java.lang.String">
SELECT IFNULL(MAX(DLIVY_LOG_INNB), 0) + 1 FROM GC_GOODS_EXPORT_LOG
</selectKey>
<![CDATA[
INSERT INTO GC_GOODS_EXPORT_LOG (
DLIVY_LOG_INNB,
ORDR_INNB,
ORDR_DLVY_INNB,
MNGR_INNB,
DLIVY_CD_NB,
DLIVY_GOODS_CD_NB,
INVNTRY_SETUP_CD,
REQST_PROCS_STTUS_CD,
MSSAGE_CN,
REGIST_DT
) SELECT
#{dlivyLogInnb},
#{ordrInnb},
#{ordrDlvyInnb},
#{regusr},
DLIVY_CD_NB,
#{dlivyGoodsCdNb},
#{invntrySetupCd},
#{reqstProcsSttusCd},
#{mssageCn},
SYSDATE()
FROM GC_GOODS_EXPORT
WHERE SOPMAL_CD = #{sopmalCd}
AND DLIVY_INNB = #{dlivyInnb}
]]>
</insert>
<!-- GC_ORDER_LOG INSERT -->
<insert id="insertOrderLog" parameterType="dataMap">
<![CDATA[
INSERT INTO GC_ORDER_LOG (
ORDR_INNB,
SOPMAL_CD,
LOG_SJ,
LOG_DTL_CN,
ADIT_INFO_CN,
DLIVY_INNB,
ORDER_REFUND_INNB,
LOG_DV_CD,
DV_CD,
OPETR_NM,
QY,
AMT,
PROCS_DT
) VALUES (
#{ordrInnb},
#{sopmalCd},
#{logSj},
#{logDtlCn},
#{aditInfoCn},
#{dlivyCdNb},
#{refundCdNb},
#{logDvCd},
#{dvCd},
#{opetrNm},
#{qy},
#{amt},
SYSDATE()
)
]]>
</insert>
</mapper>