diff --git a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyOrderVO.java b/src/main/java/com/wb/domainserver/acidlivy/AciDlivyOrderVO.java deleted file mode 100644 index 787622e..0000000 --- a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyOrderVO.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.wb.domainserver.acidlivy; - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -// DB ?? ?? ?? ???? ?? + ??? ?? -@Getter -@Setter -@ToString -public class AciDlivyOrderVO { - - // DB ?? ?? (gc_order_shipping) - private String ordrDlvyInnb; // ???????? (ACI OverseaSellerNo ???) - private String ordrInnb; // ???? (API orderNumber ????) - private String sopmalCd; // ????? - - // ACI API ?? ? ?? - private String blno; // ACI ????? (BLNO) - - // ???? ? ?? - private String hdrycpnCd; // ????? (???: code22) - private String dlivySttusCd; // ?????? (???: 55) - private String dlivyInnb; // ?????? (insertGoodsExport ? selectKey? ??) - private String dlivyCdNb; // ?????? (dlivyInnb ?? ? Java?? ??) -} diff --git a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyVO.java b/src/main/java/com/wb/domainserver/acidlivy/AciDlivyVO.java deleted file mode 100644 index 3c5e030..0000000 --- a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyVO.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.wb.domainserver.acidlivy; - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -// ACI API ???? ??? Data ?? (BLNO, OverseaSellerNo) -@Getter -@Setter -@ToString -public class AciDlivyVO { - private String blno; // ACI ????? - private String overseaSellerNo; // ????? ???? (= ORDR_DLVY_INNB) -} diff --git a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyJobConfig.java b/src/main/java/com/wb/domainserver/acidlivy/jobs/AciDlivyJobConfig.java similarity index 86% rename from src/main/java/com/wb/domainserver/acidlivy/AciDlivyJobConfig.java rename to src/main/java/com/wb/domainserver/acidlivy/jobs/AciDlivyJobConfig.java index 66d897a..9e87b2d 100644 --- a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyJobConfig.java +++ b/src/main/java/com/wb/domainserver/acidlivy/jobs/AciDlivyJobConfig.java @@ -1,5 +1,7 @@ -package com.wb.domainserver.acidlivy; +package com.wb.domainserver.acidlivy.jobs; +import com.wb.domainserver.acidlivy.tasklet.AciDlivyTasklet; +import lombok.RequiredArgsConstructor; import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; import org.springframework.batch.core.job.builder.JobBuilder; @@ -8,9 +10,8 @@ import org.springframework.batch.core.step.builder.StepBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.PlatformTransactionManager; -import lombok.RequiredArgsConstructor; -// ACI ???? ?? ? ???? ?? Job/Step ?? +// ACI 배송자료 조회 및 출고처리 배치 Job/Step 설정 @Configuration @RequiredArgsConstructor public class AciDlivyJobConfig { @@ -32,4 +33,4 @@ public class AciDlivyJobConfig { .tasklet(aciDlivyTasklet, transactionManager) .build(); } -} +} diff --git a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyMapper.java b/src/main/java/com/wb/domainserver/acidlivy/tasklet/AciDlivyMapper.java similarity index 89% rename from src/main/java/com/wb/domainserver/acidlivy/AciDlivyMapper.java rename to src/main/java/com/wb/domainserver/acidlivy/tasklet/AciDlivyMapper.java index d486f25..7896cf7 100644 --- a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyMapper.java +++ b/src/main/java/com/wb/domainserver/acidlivy/tasklet/AciDlivyMapper.java @@ -1,5 +1,6 @@ -package com.wb.domainserver.acidlivy; +package com.wb.domainserver.acidlivy.tasklet; +import com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO; import com.wb.domainserver.util.dataaccess.DataMap; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @@ -25,7 +26,7 @@ public interface AciDlivyMapper { /** gc_goods_export UPDATE (기존 레코드 있음) */ int updateGoodsExport(AciDlivyOrderVO vo); - /** gc_goods_export DLIVY_CD_NB UPDATE (INSERT 경로에서 dlivyCdNb 생성 후 호출) */ + /** gc_goods_export DLIVY_CD_NB UPDATE (미사용 - dlivyCdNb는 INSERT 전 Java에서 생성) */ int updateGoodsExportDlivyCdNb(AciDlivyOrderVO vo); /** gc_goods_export_item 존재 여부 */ diff --git a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyTasklet.java b/src/main/java/com/wb/domainserver/acidlivy/tasklet/AciDlivyTasklet.java similarity index 97% rename from src/main/java/com/wb/domainserver/acidlivy/AciDlivyTasklet.java rename to src/main/java/com/wb/domainserver/acidlivy/tasklet/AciDlivyTasklet.java index 0cfbedd..0d2494a 100644 --- a/src/main/java/com/wb/domainserver/acidlivy/AciDlivyTasklet.java +++ b/src/main/java/com/wb/domainserver/acidlivy/tasklet/AciDlivyTasklet.java @@ -1,6 +1,7 @@ -package com.wb.domainserver.acidlivy; +package com.wb.domainserver.acidlivy.tasklet; import com.fasterxml.jackson.databind.ObjectMapper; +import com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO; import com.wb.domainserver.util.dataaccess.DataMap; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -238,7 +239,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 +254,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"); diff --git a/src/main/java/com/wb/domainserver/acidlivy/vo/AciDlivyOrderVO.java b/src/main/java/com/wb/domainserver/acidlivy/vo/AciDlivyOrderVO.java new file mode 100644 index 0000000..9f94024 --- /dev/null +++ b/src/main/java/com/wb/domainserver/acidlivy/vo/AciDlivyOrderVO.java @@ -0,0 +1,24 @@ +package com.wb.domainserver.acidlivy.vo; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +// gc_order_shipping 조회 결과 및 ACI 출고처리 배치 복합 VO +@Getter +@Setter +@ToString +public class AciDlivyOrderVO { + + // gc_order_shipping 조회 결과 + private String ordrDlvyInnb; // 주문배송고유번호 (ACI OverseaSellerNo 매칭기준) + private String ordrInnb; // 주문번호 (API orderNumber 파라미터) + private String sopmalCd; // 쇼핑몰코드 + + // ACI API 조회 및 처리 + private String blno; // ACI 운송장번호 (BLNO) + private String hdrycpnCd; // 택배사코드 (고정값: code22) + private String dlivySttusCd; // 출고상태코드 (고정값: 55) + private String dlivyInnb; // 출고고유번호 (gc_goods_export.DLIVY_INNB = ordrDlvyInnb) + private String dlivyCdNb; // 출고코드번호 ('D'+yyMMddHH+dlivyInnb 형식, INSERT 전 Java에서 생성) +} diff --git a/src/main/java/com/wb/domainserver/acidlivy/vo/AciDlivyVO.java b/src/main/java/com/wb/domainserver/acidlivy/vo/AciDlivyVO.java new file mode 100644 index 0000000..50cc7fe --- /dev/null +++ b/src/main/java/com/wb/domainserver/acidlivy/vo/AciDlivyVO.java @@ -0,0 +1,14 @@ +package com.wb.domainserver.acidlivy.vo; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +// ACI API 응답에서 필요한 Data 항목 (BLNO, OverseaSellerNo) +@Getter +@Setter +@ToString +public class AciDlivyVO { + private String blno; // ACI 운송장번호 + private String overseaSellerNo; // 해외판매자 고유번호 (= ORDR_DLVY_INNB) +} diff --git a/src/main/java/com/wb/domainserver/common/config/GconeSourceConfig.java b/src/main/java/com/wb/domainserver/common/config/GconeSourceConfig.java index 9ec79f9..1288066 100644 --- a/src/main/java/com/wb/domainserver/common/config/GconeSourceConfig.java +++ b/src/main/java/com/wb/domainserver/common/config/GconeSourceConfig.java @@ -31,7 +31,7 @@ import java.util.List; @MapperScan( basePackages = { "com.wb.domainserver.mapper.gcone", - "com.wb.domainserver.acidlivy" + "com.wb.domainserver.acidlivy.tasklet" }, sqlSessionFactoryRef = "gconeSqlSessionFactory" ) diff --git a/src/main/resources/mybatis/xml/mapper/acidlivy/AciDlivyMapper.xml b/src/main/resources/mybatis/xml/mapper/acidlivy/AciDlivyMapper.xml index 58d342b..db4f341 100644 --- a/src/main/resources/mybatis/xml/mapper/acidlivy/AciDlivyMapper.xml +++ b/src/main/resources/mybatis/xml/mapper/acidlivy/AciDlivyMapper.xml @@ -55,15 +55,12 @@ - + + - - SELECT IFNULL(MAX(DLIVY_INNB), 0) + 1 FROM GC_GOODS_EXPORT - - - + - - - -