fix: gc_goods_export DLIVY_INNB 오류 수정 - ORDR_DLVY_INNB 사용, dlivyCdNb INSERT 전 생성

This commit is contained in:
claudecode
2026-05-26 11:59:26 +09:00
parent 1322a2ffbb
commit 1d278bca48
2 changed files with 11 additions and 27 deletions

View File

@@ -238,7 +238,14 @@ public class AciDlivyTasklet implements Tasklet {
}
log.debug("[AciDlivyBatch] 주문 상품 옵션 수={} (ORDR_DLVY_INNB={})", itemList.size(), orderVO.getOrdrDlvyInnb());
// ② gc_goods_export 처리 (selectKey로 dlivyInnb 채번)
// ② DLIVY_INNB = ORDR_DLVY_INNB (gc_order_shipping.ORDR_DLVY_INNB → gc_goods_export.DLIVY_INNB)
orderVO.setDlivyInnb(orderVO.getOrdrDlvyInnb());
// ③ dlivyCdNb 생성 (DLIVY_INNB 확정 후, INSERT 전)
String dlivyCdNb = "D" + new SimpleDateFormat("yyMMddHH").format(new Date()) + orderVO.getDlivyInnb();
orderVO.setDlivyCdNb(dlivyCdNb);
// ④ gc_goods_export INSERT/UPDATE (dlivyCdNb 직접 포함)
int exportCnt = aciDlivyMapper.selectGoodsExportCount(orderVO);
if (exportCnt > 0) {
aciDlivyMapper.updateGoodsExport(orderVO);
@@ -246,15 +253,6 @@ public class AciDlivyTasklet implements Tasklet {
aciDlivyMapper.insertGoodsExport(orderVO);
}
// ③ dlivyCdNb 생성 (insertGoodsExport 실행 후, dlivyInnb 채번 완료 후)
String dlivyCdNb = "D" + new SimpleDateFormat("yyMMddHH").format(new Date()) + orderVO.getDlivyInnb();
orderVO.setDlivyCdNb(dlivyCdNb);
// ④ INSERT 경로: DLIVY_CD_NB 업데이트 (INSERT 시 #{dlivyCdNb}가 null이었으므로)
if (exportCnt == 0) {
aciDlivyMapper.updateGoodsExportDlivyCdNb(orderVO);
}
// ⑤ 주문 상품 옵션별 처리 (gc_goods_export_item, gc_order_item_option)
for (DataMap itemMap : itemList) {
Object qyObj = itemMap.get("qy");

View File

@@ -55,15 +55,12 @@
<!-- gc_goods_export INSERT -->
<!-- DLIVY_CD_NB: Java에서 생성한 dlivyCdNb로 받음 (insertGoodsExport 후 updateGoodsExportDlivyCdNb로 SET) -->
<!-- DLIVY_INNB: gc_order_shipping.ORDR_DLVY_INNB 값 사용 (Java에서 dlivyInnb = ordrDlvyInnb 세팅 후 전달) -->
<!-- DLIVY_CD_NB: Java에서 생성한 dlivyCdNb 직접 포함 (INSERT 전 생성) -->
<!-- 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,
@@ -114,21 +111,10 @@
<!-- gc_goods_export UPDATE (기존 레코드 있음) -->
<!-- selectKey로 기존 DLIVY_INNB 조회하여 dlivyInnb 세팅 -->
<!-- gc_goods_export UPDATE (기존 레코드 있음, dlivyInnb = ordrDlvyInnb Java 세팅) -->
<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},