Merge branch 'dev' of http://115.68.207.90:3690/jilee1202/sake_private
This commit is contained in:
@@ -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?? ??)
|
|
||||||
}
|
|
||||||
@@ -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)
|
|
||||||
}
|
|
||||||
@@ -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.Job;
|
||||||
import org.springframework.batch.core.Step;
|
import org.springframework.batch.core.Step;
|
||||||
import org.springframework.batch.core.job.builder.JobBuilder;
|
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.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.transaction.PlatformTransactionManager;
|
import org.springframework.transaction.PlatformTransactionManager;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
|
|
||||||
// ACI ???? ?? ? ???? ?? Job/Step ??
|
// ACI 배송자료 조회 및 출고처리 배치 Job/Step 설정
|
||||||
@Configuration
|
@Configuration
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AciDlivyJobConfig {
|
public class AciDlivyJobConfig {
|
||||||
@@ -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 com.wb.domainserver.util.dataaccess.DataMap;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
@@ -25,7 +26,7 @@ public interface AciDlivyMapper {
|
|||||||
/** gc_goods_export UPDATE (기존 레코드 있음) */
|
/** gc_goods_export UPDATE (기존 레코드 있음) */
|
||||||
int updateGoodsExport(AciDlivyOrderVO vo);
|
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);
|
int updateGoodsExportDlivyCdNb(AciDlivyOrderVO vo);
|
||||||
|
|
||||||
/** gc_goods_export_item 존재 여부 */
|
/** gc_goods_export_item 존재 여부 */
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.wb.domainserver.acidlivy;
|
package com.wb.domainserver.acidlivy.tasklet;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.wb.domainserver.acidlivy.vo.AciDlivyOrderVO;
|
||||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -238,7 +239,14 @@ public class AciDlivyTasklet implements Tasklet {
|
|||||||
}
|
}
|
||||||
log.debug("[AciDlivyBatch] 주문 상품 옵션 수={} (ORDR_DLVY_INNB={})", itemList.size(), orderVO.getOrdrDlvyInnb());
|
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);
|
int exportCnt = aciDlivyMapper.selectGoodsExportCount(orderVO);
|
||||||
if (exportCnt > 0) {
|
if (exportCnt > 0) {
|
||||||
aciDlivyMapper.updateGoodsExport(orderVO);
|
aciDlivyMapper.updateGoodsExport(orderVO);
|
||||||
@@ -246,15 +254,6 @@ public class AciDlivyTasklet implements Tasklet {
|
|||||||
aciDlivyMapper.insertGoodsExport(orderVO);
|
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)
|
// ⑤ 주문 상품 옵션별 처리 (gc_goods_export_item, gc_order_item_option)
|
||||||
for (DataMap itemMap : itemList) {
|
for (DataMap itemMap : itemList) {
|
||||||
Object qyObj = itemMap.get("qy");
|
Object qyObj = itemMap.get("qy");
|
||||||
@@ -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에서 생성)
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
@@ -31,7 +31,7 @@ import java.util.List;
|
|||||||
@MapperScan(
|
@MapperScan(
|
||||||
basePackages = {
|
basePackages = {
|
||||||
"com.wb.domainserver.mapper.gcone",
|
"com.wb.domainserver.mapper.gcone",
|
||||||
"com.wb.domainserver.acidlivy"
|
"com.wb.domainserver.acidlivy.tasklet"
|
||||||
},
|
},
|
||||||
sqlSessionFactoryRef = "gconeSqlSessionFactory"
|
sqlSessionFactoryRef = "gconeSqlSessionFactory"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -55,15 +55,12 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- gc_goods_export INSERT -->
|
<!-- 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 -->
|
<!-- HDRYCPN_CD: code22 고정, INVCNB: ACI BLNO -->
|
||||||
<insert id="insertGoodsExport"
|
<insert id="insertGoodsExport"
|
||||||
parameterType="com.wb.domainserver.acidlivy.AciDlivyOrderVO">
|
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[
|
<![CDATA[
|
||||||
INSERT INTO GC_GOODS_EXPORT (
|
INSERT INTO GC_GOODS_EXPORT (
|
||||||
DLIVY_INNB,
|
DLIVY_INNB,
|
||||||
@@ -114,21 +111,10 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- gc_goods_export UPDATE (기존 레코드 있음) -->
|
<!-- gc_goods_export UPDATE (기존 레코드 있음) -->
|
||||||
<!-- selectKey로 기존 DLIVY_INNB 조회하여 dlivyInnb 세팅 -->
|
<!-- gc_goods_export UPDATE (기존 레코드 있음, dlivyInnb = ordrDlvyInnb Java 세팅) -->
|
||||||
<update id="updateGoodsExport"
|
<update id="updateGoodsExport"
|
||||||
parameterType="com.wb.domainserver.acidlivy.AciDlivyOrderVO">
|
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[
|
<![CDATA[
|
||||||
UPDATE GC_GOODS_EXPORT SET
|
UPDATE GC_GOODS_EXPORT SET
|
||||||
INVCNB = #{blno},
|
INVCNB = #{blno},
|
||||||
|
|||||||
Reference in New Issue
Block a user