tsit05 5 лет назад
Родитель
Сommit
ed43869a2e

+ 12 - 0
src/main/java/com/style24/batch/biz/dao/TsbDeliveryDao.java

@@ -3,6 +3,7 @@ import java.util.Collection;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Delivery;
+import com.style24.persistence.domain.OrderChange;
 
 /**
  * 배송 Dao
@@ -566,4 +567,15 @@ public interface TsbDeliveryDao {
 	 */
 	int updateSoldOut(Delivery delivery);
 	
+	/**
+	 * 주문변경상세정보 조회
+	 * @param  
+	 * @return Collection<Delivery>
+	 * @author moon
+	 * @since 2021. 06. 14
+	 */
+	Collection<OrderChange> getOrderChangeDetailInfo(OrderChange delivery);
+	
+	
+	
 }

+ 3 - 36
src/main/java/com/style24/batch/biz/job/delivery/TsbWithdrawRsltJob.java

@@ -60,46 +60,13 @@ public class TsbWithdrawRsltJob extends TsbAbstractJob<Collection<Delivery>, Col
 		 * G680_40	교환요청
 		 * */
 		
-		
-		/**
-		 *   as-is 데이터 구분해서 분기처리  로직 추가 예정 !!!
-		 *   insert update 시   중복 쿼리 제거위한 로직 추가 예정!!! 
-		 *   주문상태값 변경되는지 최종확인 후 반영 예정 !!!
-		 * */
-		
+
 		for(Delivery data: delvList) {
 			
 			try {
 				
-				// 주문정보 및 주문변경정보 조회  (as-is 회수건 포함) 
-				Delivery ordInfo = deliveryService.getOrderInfoList(data);
-				data.setOrdChgSq(ordInfo.getOrdChgSq());
-				data.setOrderdtlno(ordInfo.getOrdDtlNo());
-				data.setItemCd(ordInfo.getItemCd());
-				data.setOptCd1(ordInfo.getOptCd1());
-				data.setOptCd2(ordInfo.getOptCd2());
-				data.setOrdExchGb(ordInfo.getOrdExchGb());
-				data.setChgGb(ordInfo.getChgGb());
-				data.setChgOrdDtlNo(ordInfo.getChgOrdDtlNo());
-				data.setWdInvoiceSendYn("Y");
-				// 
-				
-				// 주문변경  처리  (주문상세 단위!!) 
-				deliveryService.updateOrderChange(data);
-				
-				
-				// 회수등록 처리  
-				deliveryService.createWithdraw(data);
-				
-				// 교환일 경우  주문상세 상태값 처리  
-				if(OrderChangeGb.EXCHANGE.value().equals(ordInfo.getChgGb())) {
-					
-					// 원주문건 상태값 취소로 변경 
-					deliveryService.updateWdOrderDtlStat(data);
-					// 교환주문건 상태값 교환대기에서 결제완료 상태로 변경 
-					deliveryService.updateOrderExch(data);
-				}
-				
+				deliveryService.saveWithdraw(data);
+
 				wmsDeliveryService.updateWmsIfRecallDeliveryRslt(data);
 
 				succCnt++;

+ 402 - 71
src/main/java/com/style24/batch/biz/service/TsbDeliveryService.java

@@ -3,7 +3,9 @@ package com.style24.batch.biz.service;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.http.HttpEntity;
@@ -24,13 +26,17 @@ import com.style24.core.biz.dao.TscOrderChangeDao;
 import com.style24.core.biz.dao.TscOrderDao;
 import com.style24.core.biz.service.TscDeliveryService;
 import com.style24.core.biz.service.TscErpService;
+import com.style24.core.biz.service.TscOrderChangeService;
+import com.style24.core.biz.service.TscOrderRefundService;
 import com.style24.core.biz.service.TscWmsService;
 import com.style24.core.biz.thirdparty.HansaeErp;
+import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.env.TscConstants.OrderChangeGb;
 import com.style24.core.support.env.TscConstants.OrderChangeStat;
 import com.style24.core.support.env.TscConstants.OrderDetailStat;
 import com.style24.persistence.domain.Delivery;
 import com.style24.persistence.domain.Erp;
+import com.style24.persistence.domain.GiftCard;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
 import com.style24.persistence.domain.WmsDelivery;
@@ -73,6 +79,12 @@ public class TsbDeliveryService {
 	@Autowired
 	private TscDeliveryService coreDeliveryService;
 
+	@Autowired
+	private TscOrderChangeService orderChangeService;	
+	
+	@Autowired
+	private TscOrderRefundService orderRefundService;
+	
 	@Autowired
 	private HansaeErp hansaeErp;
 
@@ -226,29 +238,16 @@ public class TsbDeliveryService {
 	 * @author moon
 	 * @since  2021. 03. 19
 	 */
-	@Transactional("shopTxnManager")
-	public void createWithdraw(Delivery delivery) {
-
-		delivery.setRegNo(TsbConstants.REG_NO);
-
-		// TB_WITHDRAW 입력
-		deliveryDao.insertTbWithdraw(delivery);
-		// TB_WITHDRAW_DETAIL 입력
-		deliveryDao.insertTbWithdrawDetail(delivery);
-	}
-
-	/**
-	 * 주문정보 조회 
-	 * @param Delivery
-	 * @return Delivery
-	 * @author moon
-	 * @since  2021. 03. 23
-	 */
-	public Delivery getOrderInfoList(Delivery delivery) {
-
-		Delivery orderInfo = deliveryDao.getOrderInfoList(delivery);
-		return orderInfo;
-	}
+//	@Transactional("shopTxnManager")
+//	public void createWithdraw(Delivery delivery) {
+//
+//		delivery.setRegNo(TsbConstants.REG_NO);
+//
+//		// TB_WITHDRAW 입력
+//		deliveryDao.insertTbWithdraw(delivery);
+//		// TB_WITHDRAW_DETAIL 입력
+//		deliveryDao.insertTbWithdrawDetail(delivery);
+//	}
 
 	/**
 	 * 회수결과 주문변경 처리 
@@ -258,60 +257,392 @@ public class TsbDeliveryService {
 	 * @since  2021. 03. 25
 	 */
 	@Transactional("shopTxnManager")
-	public void updateOrderChange(Delivery delivery) {
-
+	public void saveWithdraw(Delivery data) {
+		
+		// 주문정보 및 주문변경정보 조회  (as-is 회수건 포함) 
+		Delivery ordInfo = deliveryDao.getOrderInfoList(data);
+		data.setOrdChgSq(ordInfo.getOrdChgSq());
+		data.setOrderdtlno(ordInfo.getOrdDtlNo());
+		data.setItemCd(ordInfo.getItemCd());
+		data.setOptCd1(ordInfo.getOptCd1());
+		data.setOptCd2(ordInfo.getOptCd2());
+		data.setOrdExchGb(ordInfo.getOrdExchGb());
+		data.setChgGb(ordInfo.getChgGb());
+		data.setChgOrdDtlNo(ordInfo.getChgOrdDtlNo());
+		data.setWdInvoiceSendYn("Y");
+		data.setCustNo(ordInfo.getCustNo());
+		data.setWdBfSendYn(ordInfo.getWdBfSendYn());
+		data.setSellStoreCd(ordInfo.getSellStoreCd());
+		data.setRtnLocCd("DL001");
+		
 		// 교환일경우 자동 완료처리 
-		delivery.setRegNo(TsbConstants.REG_NO);
-		if (OrderChangeGb.EXCHANGE.value().equals(delivery.getChgGb())) {  // 교환 
-			delivery.setChgStat(OrderChangeStat.EXCHANGE_COMPLETE.value()); // 교환완료  G685_40
+		data.setRegNo(TsbConstants.REG_NO);
+		if (OrderChangeGb.EXCHANGE.value().equals(data.getChgGb())) {  // 교환 
+			data.setChgStat(OrderChangeStat.EXCHANGE_COMPLETE.value()); // 교환완료  G685_40
 		} else {
-			delivery.setChgStat(OrderChangeStat.RETURN_ING.value());  // 반품진행중 G685_33
+			data.setChgStat(OrderChangeStat.RETURN_ING.value());  // 반품진행중 G685_33
 		}
 
 		// TB_ORDER_CHANGE 
-		deliveryDao.updateTbOrderChange(delivery);
+		deliveryDao.updateTbOrderChange(data);
 
 		// TB_ORDER_CHANGE_DETAIL
-		deliveryDao.updateTbOrderChangeDetail(delivery);
+		deliveryDao.updateTbOrderChangeDetail(data);
 
 		// 주문상세변경 이력 
 		OrderChange ordChg = new OrderChange();
 		ordChg.setRegNo(0);
 		ordChg.setUpdNo(0);
-		ordChg.setOrdChgSq(delivery.getOrdChgSq());
-		ordChg.setOrdDtlNo(delivery.getOrderdtlno());
-		ordChg.setChgStat(delivery.getChgStat());
+		ordChg.setOrdChgSq(data.getOrdChgSq());
+		ordChg.setOrdDtlNo(data.getOrderdtlno());
+		ordChg.setChgStat(data.getChgStat());
 		orderChangeDao.createOrderChangeDetailHst(ordChg);
+		
 
+
+		// TB_WITHDRAW 입력
+		deliveryDao.insertTbWithdraw(data);
+		// TB_WITHDRAW_DETAIL 입력
+		deliveryDao.insertTbWithdrawDetail(data);
+		
+		
+		// 교환일 경우  주문상세 상태값 처리  
+		if(OrderChangeGb.EXCHANGE.value().equals(ordInfo.getChgGb())) {
+		
+				OrderChange orderChange = new OrderChange();
+				orderChange.setOrdChgSq(data.getOrdChgSq());
+				orderChange.setCustNo(data.getCustNo());
+				
+				// 주문변경상세정보 조회
+				Collection<OrderChange> orderChangeList = deliveryDao.getOrderChangeDetailInfo(orderChange);
+	
+				
+				// 환불 사전 정보 설정
+				int idx = 0;
+				int size = orderChangeList.size();
+				String chgGb = orderChangeList.iterator().next().getChgGb();
+				Integer ordNo = orderChangeList.iterator().next().getOrdNo();
+				Integer custNo = orderChangeList.iterator().next().getCustNo();
+				String ordNm = orderChangeList.iterator().next().getOrdNm();
+				String ordPhnno = orderChangeList.iterator().next().getOrdPhnno();
+				int[] ordDtlNoArr = new int[size];
+				int[] cnclRtnReqQtyArr = new int[size];
+	
+				for (OrderChange param : orderChangeList) {
+					ordDtlNoArr[idx] = param.getOrdDtlNo();
+					cnclRtnReqQtyArr[idx] = param.getChgQty();
+					idx++;
+				}
+	
+				// 회원/비회원 정보 설정
+				if (custNo > 0) {
+					orderChange.setCustNo(custNo);
+				} else {
+					orderChange.setOrdNm(ordNm);
+					orderChange.setOrdPhnno(ordPhnno);
+				}
+	
+				orderChange.setOrdNo(ordNo);
+				orderChange.setChgGb(chgGb);
+				orderChange.setOrdDtlNoArr(ordDtlNoArr);
+				orderChange.setCnclRtnReqQtyArr(cnclRtnReqQtyArr);
+	
+				// 환불 사전 정보 조회
+				GagaMap refundPreInfo = orderChangeService.getRefundPreInfo2(orderChange);
+				List<Order> cnclReqList2 = (List<Order>)refundPreInfo.get("cnclReqList");
+				
+				GagaMap info = orderRefundService.cnclRtnRefundAmt2(cnclReqList2);
+			
+				//List<Order> cnclReqList = (List<Order>)info.get("cnclRtnList");
+				List<Order> cancelOrderRefundList = (List<Order>)info.get("cancelOrderRefundList");
+				//log.info("cnclReqList {}"+cnclReqList);
+				log.info("cancelOrderRefundList {}"+cancelOrderRefundList);
+				
+	
+				for (Order vo : cancelOrderRefundList) {
+					
+					if(data.getOrdDtlNo().equals(vo.getOrdDtlNo()))
+					{
+						vo.setRegNo(TsbConstants.REG_NO);
+						vo.setUpdNo(TsbConstants.REG_NO);
+						vo.setOrdDtlStat(OrderDetailStat.PAYMENT_AFTER_CANCEL.value());
+							// 원주문 상세정보 수정
+							orderChangeDao.updateOrderDetailTemp(vo);
+							// 원주문 상세 이력 등록
+							orderDao.createOrderDetailHst(vo);
+		
+							//vo.setOrdDtlNo(data.getOrderdtlno());
+							// 3-2-3. 주문상세단품정보 수정 및 주문상세단품이력 등록
+							// 주문상세단품정보조회
+							Collection<Order> orderDetailItemList = orderChangeDao.getOrderDetailItemForCnclRtn(vo);
+							int ordDtlOrdAmt 			= orderDetailItemList.iterator().next().getOrdAmt();
+							int ordDtlCnclRtnAmt	 	= orderDetailItemList.iterator().next().getCnclRtnAmt();
+							int ordDtlCpn1DcAmt 		= orderDetailItemList.iterator().next().getCpn1DcAmt();
+							int ordDtlTmtb1DcAmt 		= orderDetailItemList.iterator().next().getTmtb1DcAmt();
+							int ordDtlTmtb2DcAmt 		= orderDetailItemList.iterator().next().getTmtb2DcAmt();
+							int ordDtlGoodsCpnDcAmt 	= orderDetailItemList.iterator().next().getGoodsCpnDcAmt();
+							int ordDtlCartCpnDcAmt 		= orderDetailItemList.iterator().next().getCartCpnDcAmt();
+							int ordDtlPntDcAmt 			= orderDetailItemList.iterator().next().getPntDcAmt();
+							int ordDtlPrePntDcAmt 		= orderDetailItemList.iterator().next().getPrePntDcAmt();
+							int ordDtlSavePntAmt 		= orderDetailItemList.iterator().next().getSavePntAmt();
+							int ordDtlRealOrdAmt 		= orderDetailItemList.iterator().next().getRealOrdAmt();
+							int ordDtlGfcdUseAmt 		= orderDetailItemList.iterator().next().getGfcdUseAmt();
+		
+							// 주문상세단품단위 금액 등록
+							int length					= orderDetailItemList.size();
+							int index					= 1;
+							int leftOrdAmt 				= ordDtlOrdAmt;
+							int leftCnclRtnAmt			= ordDtlCnclRtnAmt;
+							int leftCpn1DcAmt 			= ordDtlCpn1DcAmt;
+							int leftTmtb1DcAmt 			= ordDtlTmtb1DcAmt;
+							int leftTmtb2DcAmt 			= ordDtlTmtb2DcAmt;
+							int leftGoodsCpnDcAmt 		= ordDtlGoodsCpnDcAmt;
+							int leftCartCpnDcAmt 		= ordDtlCartCpnDcAmt;
+							int leftPntDcAmt 			= ordDtlPntDcAmt;
+							int leftPrePntDcAmt 		= ordDtlPrePntDcAmt;
+							int leftSavePntAmt 			= ordDtlSavePntAmt;
+							int leftRealOrdAmt 			= ordDtlRealOrdAmt;
+							int leftGfcdUseAmt 			= ordDtlGfcdUseAmt;
+		
+							for (Order orderDetailItem : orderDetailItemList) {
+								double dtlOrdAmt		= orderDetailItem.getDtlOrdAmt();
+								double dtlItemOrdAmt	= orderDetailItem.getDtlItemOrdAmt();
+								double tempDivD			= (dtlItemOrdAmt / dtlOrdAmt) * 100;
+								
+								int tempDiv				= Integer.parseInt(String.valueOf(Math.round(tempDivD)));
+		
+								if (index == length) {
+									orderDetailItem.setCnclRtnAmt(leftCnclRtnAmt);
+									orderDetailItem.setCpn1DcAmt(leftCpn1DcAmt);
+									orderDetailItem.setTmtb1DcAmt(leftTmtb1DcAmt);
+									orderDetailItem.setTmtb2DcAmt(leftTmtb2DcAmt);
+									orderDetailItem.setGoodsCpnDcAmt(leftGoodsCpnDcAmt);
+									orderDetailItem.setCartCpnDcAmt(leftCartCpnDcAmt);
+									orderDetailItem.setPrePntDcAmt(leftPrePntDcAmt);
+									orderDetailItem.setPntDcAmt(leftPntDcAmt);
+									orderDetailItem.setGfcdUseAmt(leftGfcdUseAmt);
+									orderDetailItem.setRealOrdAmt(leftRealOrdAmt);
+									orderDetailItem.setSavePntAmt(leftSavePntAmt);
+									
+								} else {
+									orderDetailItem.setCnclRtnAmt((ordDtlCnclRtnAmt 		* tempDiv) / 100);
+									orderDetailItem.setCpn1DcAmt((ordDtlCpn1DcAmt 			* tempDiv) / 100);
+									orderDetailItem.setTmtb1DcAmt((ordDtlTmtb1DcAmt 		* tempDiv) / 100);
+									orderDetailItem.setTmtb2DcAmt((ordDtlTmtb2DcAmt 		* tempDiv) / 100);
+									orderDetailItem.setGoodsCpnDcAmt((ordDtlGoodsCpnDcAmt 	* tempDiv) / 100);
+									orderDetailItem.setCartCpnDcAmt((ordDtlCartCpnDcAmt 	* tempDiv) / 100);
+									orderDetailItem.setPrePntDcAmt((ordDtlPrePntDcAmt 		* tempDiv) / 100);
+									orderDetailItem.setPntDcAmt((ordDtlPntDcAmt 			* tempDiv) / 100);
+									orderDetailItem.setGfcdUseAmt((ordDtlGfcdUseAmt 		* tempDiv) / 100);
+									orderDetailItem.setRealOrdAmt((ordDtlRealOrdAmt 		* tempDiv) / 100);
+									orderDetailItem.setSavePntAmt((ordDtlSavePntAmt 		* tempDiv) / 100);
+		
+									leftCnclRtnAmt		-= ((ordDtlCnclRtnAmt 				* tempDiv) / 100);
+									leftCpn1DcAmt 		-= ((ordDtlCpn1DcAmt 				* tempDiv) / 100);
+									leftTmtb1DcAmt 		-= ((ordDtlTmtb1DcAmt 				* tempDiv) / 100);
+									leftTmtb2DcAmt 		-= ((ordDtlTmtb2DcAmt 				* tempDiv) / 100);
+									leftGoodsCpnDcAmt 	-= ((ordDtlGoodsCpnDcAmt 			* tempDiv) / 100);
+									leftCartCpnDcAmt 	-= ((ordDtlCartCpnDcAmt 			* tempDiv) / 100);
+									leftPrePntDcAmt 	-= ((ordDtlPrePntDcAmt 				* tempDiv) / 100);
+									leftPntDcAmt 		-= ((ordDtlPntDcAmt 				* tempDiv) / 100);
+									leftGfcdUseAmt 		-= ((ordDtlGfcdUseAmt 				* tempDiv) / 100);
+									leftRealOrdAmt 		-= ((ordDtlRealOrdAmt 				* tempDiv) / 100);
+									leftSavePntAmt 		-= ((ordDtlSavePntAmt 				* tempDiv) / 100);
+								}
+		
+								orderDetailItem.setRegNo(TsbConstants.REG_NO);
+								orderDetailItem.setUpdNo(TsbConstants.REG_NO);
+								orderDetailItem.setOrdDtlStat(vo.getOrdDtlStat());
+								
+								//log.info("ordDtlStat ::: {}", ordDtlStat);
+		
+								orderChangeDao.updateOrderDetailItemTemp(orderDetailItem);
+								orderChangeDao.createOrderDetailItemHstTemp(orderDetailItem);
+		
+								index++;
+							}
+							
+							// 교환주문 상세 수성
+							vo.setOrdDtlStat(OrderDetailStat.PAYMENT_COMPLETE.value()); // 교환주문상세 결제완료
+							vo.setOrdDtlNo(data.getChgOrdDtlNo());
+							vo.setWdBfSendYn(data.getWdBfSendYn());
+							orderChangeDao.updateChgOrderDetailTemp(vo);
+							// 교환주문 상세 이력 등록 
+							orderDao.createOrderDetailHst(vo);
+							
+							// 주문상세단품정보조회
+							Collection<Order> orderDetailItemList2 = orderChangeDao.getOrderDetailItemForCnclRtn(vo);
+							int ordDtlOrdAmt2 			= orderDetailItemList2.iterator().next().getOrdAmt();
+							int ordDtlCnclRtnAmt2	 	= orderDetailItemList2.iterator().next().getCnclRtnAmt();
+							int ordDtlCpn1DcAmt2 		= orderDetailItemList2.iterator().next().getCpn1DcAmt();
+							int ordDtlTmtb1DcAmt2 		= orderDetailItemList2.iterator().next().getTmtb1DcAmt();
+							int ordDtlTmtb2DcAmt2 		= orderDetailItemList2.iterator().next().getTmtb2DcAmt();
+							int ordDtlGoodsCpnDcAmt2 	= orderDetailItemList2.iterator().next().getGoodsCpnDcAmt();
+							int ordDtlCartCpnDcAmt2 	= orderDetailItemList2.iterator().next().getCartCpnDcAmt();
+							int ordDtlPntDcAmt2 		= orderDetailItemList2.iterator().next().getPntDcAmt();
+							int ordDtlPrePntDcAmt2 		= orderDetailItemList2.iterator().next().getPrePntDcAmt();
+							int ordDtlSavePntAmt2 		= orderDetailItemList2.iterator().next().getSavePntAmt();
+							int ordDtlRealOrdAmt2 		= orderDetailItemList2.iterator().next().getRealOrdAmt();
+							int ordDtlGfcdUseAmt2 		= orderDetailItemList2.iterator().next().getGfcdUseAmt();
+		
+							// 주문상세단품단위 금액 등록
+							int length2					= orderDetailItemList2.size();
+							int index2					= 1;
+							int leftOrdAmt2 			= ordDtlOrdAmt2;
+							int leftCnclRtnAmt2			= ordDtlCnclRtnAmt2;
+							int leftCpn1DcAmt2 			= ordDtlCpn1DcAmt2;
+							int leftTmtb1DcAmt2 		= ordDtlTmtb1DcAmt2;
+							int leftTmtb2DcAmt2 		= ordDtlTmtb2DcAmt2;
+							int leftGoodsCpnDcAmt2 		= ordDtlGoodsCpnDcAmt2;
+							int leftCartCpnDcAmt2 		= ordDtlCartCpnDcAmt2;
+							int leftPntDcAmt2 			= ordDtlPntDcAmt2;
+							int leftPrePntDcAmt2 		= ordDtlPrePntDcAmt2;
+							int leftSavePntAmt2 		= ordDtlSavePntAmt2;
+							int leftRealOrdAmt2 		= ordDtlRealOrdAmt2;
+							int leftGfcdUseAmt2 		= ordDtlGfcdUseAmt2;
+		
+							for (Order orderDetailItem : orderDetailItemList2) {
+								double dtlOrdAmt		= orderDetailItem.getDtlOrdAmt();
+								double dtlItemOrdAmt	= orderDetailItem.getDtlItemOrdAmt();
+								double tempDivD			= (dtlItemOrdAmt / dtlOrdAmt) * 100;
+								
+								int tempDiv				= Integer.parseInt(String.valueOf(Math.round(tempDivD)));
+		
+								if (index2 == length2) {
+									orderDetailItem.setOrdAmt(leftOrdAmt2);
+									orderDetailItem.setCnclRtnAmt(leftCnclRtnAmt2);
+									orderDetailItem.setCpn1DcAmt(leftCpn1DcAmt2);
+									orderDetailItem.setTmtb1DcAmt(leftTmtb1DcAmt2);
+									orderDetailItem.setTmtb2DcAmt(leftTmtb2DcAmt2);
+									orderDetailItem.setGoodsCpnDcAmt(leftGoodsCpnDcAmt2);
+									orderDetailItem.setCartCpnDcAmt(leftCartCpnDcAmt2);
+									orderDetailItem.setPrePntDcAmt(leftPrePntDcAmt2);
+									orderDetailItem.setPntDcAmt(leftPntDcAmt2);
+									orderDetailItem.setGfcdUseAmt(leftGfcdUseAmt2);
+									orderDetailItem.setRealOrdAmt(leftRealOrdAmt2);
+									orderDetailItem.setSavePntAmt(leftSavePntAmt2);
+									
+								} else {
+									orderDetailItem.setOrdAmt((ordDtlOrdAmt2 				* tempDiv) / 100);
+									orderDetailItem.setCnclRtnAmt((ordDtlCnclRtnAmt2 		* tempDiv) / 100);
+									orderDetailItem.setCpn1DcAmt((ordDtlCpn1DcAmt2 			* tempDiv) / 100);
+									orderDetailItem.setTmtb1DcAmt((ordDtlTmtb1DcAmt2 		* tempDiv) / 100);
+									orderDetailItem.setTmtb2DcAmt((ordDtlTmtb2DcAmt2 		* tempDiv) / 100);
+									orderDetailItem.setGoodsCpnDcAmt((ordDtlGoodsCpnDcAmt2 	* tempDiv) / 100);
+									orderDetailItem.setCartCpnDcAmt((ordDtlCartCpnDcAmt2 	* tempDiv) / 100);
+									orderDetailItem.setPrePntDcAmt((ordDtlPrePntDcAmt2 		* tempDiv) / 100);
+									orderDetailItem.setPntDcAmt((ordDtlPntDcAmt2 			* tempDiv) / 100);
+									orderDetailItem.setGfcdUseAmt((ordDtlGfcdUseAmt2 		* tempDiv) / 100);
+									orderDetailItem.setRealOrdAmt((ordDtlRealOrdAmt2 		* tempDiv) / 100);
+									orderDetailItem.setSavePntAmt((ordDtlSavePntAmt2 		* tempDiv) / 100);
+		
+									leftOrdAmt2         -= ((ordDtlOrdAmt2 					* tempDiv) / 100);
+									leftCnclRtnAmt2		-= ((ordDtlCnclRtnAmt2 				* tempDiv) / 100);
+									leftCpn1DcAmt2 		-= ((ordDtlCpn1DcAmt2 				* tempDiv) / 100);
+									leftTmtb1DcAmt2 	-= ((ordDtlTmtb1DcAmt2 				* tempDiv) / 100);
+									leftTmtb2DcAmt2 	-= ((ordDtlTmtb2DcAmt2 				* tempDiv) / 100);
+									leftGoodsCpnDcAmt2 	-= ((ordDtlGoodsCpnDcAmt2 			* tempDiv) / 100);
+									leftCartCpnDcAmt2 	-= ((ordDtlCartCpnDcAmt2 			* tempDiv) / 100);
+									leftPrePntDcAmt2 	-= ((ordDtlPrePntDcAmt2 			* tempDiv) / 100);
+									leftPntDcAmt2 		-= ((ordDtlPntDcAmt2 				* tempDiv) / 100);
+									leftGfcdUseAmt2 	-= ((ordDtlGfcdUseAmt2 				* tempDiv) / 100);
+									leftRealOrdAmt2 	-= ((ordDtlRealOrdAmt2 				* tempDiv) / 100);
+									leftSavePntAmt2 	-= ((ordDtlSavePntAmt2 				* tempDiv) / 100);
+								}
+								log.info("orderDetailItem: "+orderDetailItem.getOrdAmt());
+								orderDetailItem.setRegNo(TsbConstants.REG_NO);
+								orderDetailItem.setUpdNo(TsbConstants.REG_NO);
+								orderDetailItem.setOrdDtlStat(vo.getOrdDtlStat());
+								
+								//log.info("ordDtlStat ::: {}", ordDtlStat);
+								 
+								orderChangeDao.updateChgOrderDetailItemTemp(orderDetailItem);
+								orderChangeDao.createOrderDetailItemHstTemp(orderDetailItem);
+		
+								index2++;
+							}
+						
+						}
+					}
+				
+			}
+		
 	}
+	/**
+	 * 주문정보 조회 
+	 * @param Delivery
+	 * @return Delivery
+	 * @author moon
+	 * @since  2021. 03. 23
+	 */
+//	public Delivery getOrderInfoList(Delivery delivery) {
+//
+//		Delivery orderInfo = deliveryDao.getOrderInfoList(delivery);
+//		return orderInfo;
+//	}
 
 	/**
-	 * 회수결과 - 주문상세 상태값 변경 
+	 * 회수결과 주문변경 처리 
 	 * @param  Delivery
 	 * @return 
 	 * @author moon
 	 * @since  2021. 03. 25
 	 */
-	@Transactional("shopTxnManager")
-	public void updateWdOrderDtlStat(Delivery data) {
-
-		data.setOrdDtlStat(OrderDetailStat.PAYMENT_AFTER_CANCEL.value()); // 
-		data.setUpdNo(TsbConstants.REG_NO);
-		deliveryDao.updateWdOrderDtlStat(data);
-
-		// 주문상세이력
-		Order order = new Order();
-		order.setOrdDtlNo(data.getOrderdtlno());
-		order.setUpdNo(TsbConstants.REG_NO);
-		order.setRegNo(TsbConstants.REG_NO);
-		orderDao.createOrderDetailHst(order);
-
-		// 주문상세아이템 이력 
-		data.setOrdDtlStat(OrderChangeStat.EXCHANGE_COMPLETE.value());
-		data.setOrdDtlNo(data.getOrderdtlno());
-		deliveryDao.createOrderDetailItemHst(data);
+//	@Transactional("shopTxnManager")
+//	public void updateOrderChange(Delivery delivery) {
+//
+//		// 교환일경우 자동 완료처리 
+//		delivery.setRegNo(TsbConstants.REG_NO);
+//		if (OrderChangeGb.EXCHANGE.value().equals(delivery.getChgGb())) {  // 교환 
+//			delivery.setChgStat(OrderChangeStat.EXCHANGE_COMPLETE.value()); // 교환완료  G685_40
+//		} else {
+//			delivery.setChgStat(OrderChangeStat.RETURN_ING.value());  // 반품진행중 G685_33
+//		}
+//
+//		// TB_ORDER_CHANGE 
+//		deliveryDao.updateTbOrderChange(delivery);
+//
+//		// TB_ORDER_CHANGE_DETAIL
+//		deliveryDao.updateTbOrderChangeDetail(delivery);
+//
+//		// 주문상세변경 이력 
+//		OrderChange ordChg = new OrderChange();
+//		ordChg.setRegNo(0);
+//		ordChg.setUpdNo(0);
+//		ordChg.setOrdChgSq(delivery.getOrdChgSq());
+//		ordChg.setOrdDtlNo(delivery.getOrderdtlno());
+//		ordChg.setChgStat(delivery.getChgStat());
+//		orderChangeDao.createOrderChangeDetailHst(ordChg);
+//
+//	}
 
-	}
+	/**
+	 * 회수결과 - 주문상세 상태값 변경 
+	 * @param  Delivery
+	 * @return 
+	 * @author moon
+	 * @since  2021. 03. 25
+	 */
+//	@Transactional("shopTxnManager")
+//	public void updateWdOrderDtlStat(Delivery data) {
+//
+//		data.setOrdDtlStat(OrderDetailStat.PAYMENT_AFTER_CANCEL.value()); // 
+//		data.setUpdNo(TsbConstants.REG_NO);
+//		deliveryDao.updateWdOrderDtlStat(data);
+//
+//		// 주문상세이력
+//		Order order = new Order();
+//		order.setOrdDtlNo(data.getOrderdtlno());
+//		order.setUpdNo(TsbConstants.REG_NO);
+//		order.setRegNo(TsbConstants.REG_NO);
+//		orderDao.createOrderDetailHst(order);
+//
+//		// 주문상세아이템 이력 
+//		data.setOrdDtlStat(OrderChangeStat.EXCHANGE_COMPLETE.value());
+//		data.setOrdDtlNo(data.getOrderdtlno());
+//		deliveryDao.createOrderDetailItemHst(data);
+//
+//	}
 
 	/**
 	 * 교환대기 상태값변경 
@@ -320,22 +651,22 @@ public class TsbDeliveryService {
 	 * @author moon
 	 * @since  2021. 03. 25
 	 */
-	@Transactional("shopTxnManager")
-	public void updateOrderExch(Delivery data) {
-
-		data.setOrdDtlStat(OrderDetailStat.PAYMENT_COMPLETE.value()); // 결제완료 G013_20
-		data.setUpdNo(TsbConstants.REG_NO);
-		int rtn = deliveryDao.updateOrderExch(data);
-
-		if (rtn > 0) {
-			// 주문상세이력
-			Order order = new Order();
-			order.setOrdDtlNo(data.getChgOrdDtlNo());
-			order.setUpdNo(TsbConstants.REG_NO);
-			order.setRegNo(TsbConstants.REG_NO);
-			orderDao.createOrderDetailHst(order);
-		}
-	}
+//	@Transactional("shopTxnManager")
+//	public void updateOrderExch(Delivery data) {
+//
+//		data.setOrdDtlStat(OrderDetailStat.PAYMENT_COMPLETE.value()); // 결제완료 G013_20
+//		data.setUpdNo(TsbConstants.REG_NO);
+//		int rtn = deliveryDao.updateOrderExch(data);
+//
+//		if (rtn > 0) {
+//			// 주문상세이력
+//			Order order = new Order();
+//			order.setOrdDtlNo(data.getChgOrdDtlNo());
+//			order.setUpdNo(TsbConstants.REG_NO);
+//			order.setRegNo(TsbConstants.REG_NO);
+//			orderDao.createOrderDetailHst(order);
+//		}
+//	}
 
 	/**	
 	 * 출고 송장번호 등록 
@@ -717,7 +1048,7 @@ public class TsbDeliveryService {
 	public void updateTbOrderChaneInvoc(Delivery delivery) {
 
 		delivery.setUpdNo(TsbConstants.REG_NO);
-		delivery.setShipCompCd("D1013");
+		delivery.setShipCompCd("D1029");
 		deliveryDao.updateTbOrderChaneInvoc(delivery);
 	}
 

+ 1 - 0
src/main/java/com/style24/persistence/domain/Delivery.java

@@ -153,6 +153,7 @@ public class Delivery extends TscBaseDomain {
 	private String ordPhnno;         // 주문자휴대전화번호
 	private String swtShipCompCd;   
 	private String soldoutMemo;
+	private String wdBfSendYn;
 	
 	private Integer recallexceptionno;
 	private Integer recallexceptionitemno;

+ 27 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsbDelivery.xml

@@ -298,6 +298,7 @@
 	
 	<!-- 주문정보 조회 -->	
 	<select id="getOrderInfoList" resultType="Delivery">
+		/*TsbDelivery.getOrderInfoList*/
 		SELECT 
 			  B.ORD_NO
 			, B.ORD_DTL_NO
@@ -311,6 +312,8 @@
 			, B.SELL_STORE_CD
 			, E.CHG_GB          -- 변경구분 
 			, E.WD_GB           -- 회수구분 (W:회수요청, D:직접배송)
+			, A.CUST_NO 
+			, E.WD_BF_SEND_YN
 		  FROM TB_ORDER A
 		  JOIN TB_ORDER_DETAIL B        ON A.ORD_NO     = B.ORD_NO
 		  JOIN TB_ORDER_DETAIL_ITEM C   ON B.ORD_NO     = C.ORD_NO AND B.ORD_DTL_NO = C.ORD_DTL_NO 
@@ -1333,7 +1336,7 @@
 		     , NULL AS ORD_CHG_SQ 
 		  FROM TB_ORDER_DETAIL A 
 		 WHERE A.INVOICE_NO IS NOT NULL 
-		   AND A.ORD_DTL_STAT  IN ('G013_40','G013_50','G013_55') -- 배송준비중 배송중 출고완료 
+		   AND A.ORD_DTL_STAT  IN ('G013_50','G013_55') --  배송중 출고완료 
 		   AND NOT EXISTS (SELECT 1 FROM TB_ORDER_DETAIL_INVOICE B WHERE A.ORD_NO = B.ORD_NO AND A.ORD_DTL_NO = B.ORD_DTL_NO AND A.INVOICE_NO = B.INVOICE_NO AND B.SWT_TRC_SEND_YN ='Y')
 		 GROUP BY A.INVOICE_NO, A.SHIP_COMP_CD   
 		   
@@ -1666,4 +1669,27 @@
 		   AND ORD_DTL_NO = #{ordDtlNo}
 	</update>	
 		
+	<!-- 주문변경정보 조회          -->
+	<select id="getOrderChangeDetailInfo" resultType="OrderChange">
+		/*TsbDelivery.getOrderChangeDetailInfo*/
+		SELECT OC.ORD_CHG_SQ
+		     , OD.ORD_NO
+		     , OCD.ORD_DTL_NO
+		     , OCD.CHG_QTY
+		     , O.CUST_NO
+		     , O.ORD_NM
+		     , O.ORD_PHNNO
+		     , OC.CHG_GB
+		     , OC.CHG_REASON
+		     , CASE WHEN OC.CHG_GB = 'G680_20' THEN FN_GET_CODE_NM('G686', OC.CHG_REASON)
+		            WHEN OC.CHG_GB = 'G680_30' THEN FN_GET_CODE_NM('G688', OC.CHG_REASON)
+		            WHEN OC.CHG_GB = 'G680_40' THEN FN_GET_CODE_NM('G689', OC.CHG_REASON)
+		            ELSE '결제전취소'
+		        END                                       AS CHG_REASON_NM
+		  FROM TB_ORDER_CHANGE OC
+		 INNER JOIN TB_ORDER_CHANGE_DETAIL OCD ON OC.ORD_CHG_SQ = OCD.ORD_CHG_SQ
+		 INNER JOIN TB_ORDER_DETAIL OD         ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+		 INNER JOIN TB_ORDER O                 ON OD.ORD_NO = O.ORD_NO
+		 WHERE OC.ORD_CHG_SQ =  #{ordChgSq}
+	</select>		
 </mapper>