ソースを参照

Merge remote-tracking branch 'origin/develop' into jsh77b

Conflicts:
	src/main/java/com/style24/core/biz/service/TscOrderChangeService.java
tsit14 5 年 前
コミット
b4a1400864

+ 11 - 1
src/main/java/com/style24/core/biz/dao/TscDeliveryDao.java

@@ -1,9 +1,9 @@
 package com.style24.core.biz.dao;
 
 import java.util.Collection;
-import java.util.List;
 
 import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.DeliveryFee;
 import com.style24.persistence.domain.WmsDelivery;
 
 /**
@@ -25,4 +25,14 @@ public interface TscDeliveryDao {
 	 */
 	Collection<WmsDelivery> getOrderDetailItemList(WmsDelivery wmsDelivery);
 
+	/**
+	 * 배송비 정책 코드 별 배송비 조회
+	 * 
+	 * @param DeliveryFee
+	 * @return Collection<DeliveryFee>
+	 * @author card007
+	 * @since 2021. 06. 09
+	 */
+	Collection<DeliveryFee> getDeliveryFee(DeliveryFee deliveryFee);
+
 }

+ 60 - 0
src/main/java/com/style24/core/biz/dao/TscOrderChangeDao.java

@@ -751,4 +751,64 @@ public interface TscOrderChangeDao {
 	 * @since 2021. 06. 08
 	 */
 	OrderChange getKakaoOrderReturnInfo(Integer ordChgSq);
+
+	/**
+	 * 마이페이지 취소 상세 정보 조회
+	 *
+	 * @param OrderChange
+	 * @return Collection<OrderChange>
+	 * @author card007
+	 * @since 2021. 04. 08
+	 */
+	Collection<OrderChange> getCreCancelDetailInfo(OrderChange orderChange);
+
+	/**
+	 * 마이페이지 반품 상세 정보 조회
+	 *
+	 * @param OrderChange
+	 * @return Collection<OrderChange>
+	 * @author card007
+	 * @since 2021. 04. 13
+	 */
+	Collection<OrderChange> getCreReturnDetailInfo(OrderChange orderChange);
+
+	/**
+	 * 마이페이지 교환 상세 정보 조회
+	 *
+	 * @param OrderChange
+	 * @return Collection<OrderChange>
+	 * @author card007
+	 * @since 2021. 04. 13
+	 */
+	Collection<OrderChange> getCreExchangeDetailInfo(OrderChange orderChange);
+
+	/**
+	 * 마이페이지 교환 상품 옵션 정보 조회
+	 *
+	 * @param OrderChange
+	 * @return OrderChange
+	 * @author card007
+	 * @since 2021. 04. 08
+	 */
+	OrderChange getExchangeGoodsOptionInfoList(OrderChange orderChange);
+
+	/**
+	 * 전체취소 배송비 취소 처리
+	 *
+	 * @param OrderChange
+	 * @return int
+	 * @author card007
+	 * @since 2021. 06. 09
+	 */
+	int createDeliveryFeeForAllCancel(OrderChange orderChange);
+
+	/**
+	 * 취소 사은품 조회
+	 * 
+	 * @param OrderChange
+	 * @return Collection<OrderChange>
+	 * @author card007
+	 * @since 2021. 06. 09
+	 */
+	Collection<OrderChange> getCancelFreeGiftList(OrderChange orderChange);
 }

+ 11 - 1
src/main/java/com/style24/core/biz/dao/TscScmDao.java

@@ -18,7 +18,17 @@ import com.style24.persistence.domain.Payment;
 @ShopDs
 public interface TscScmDao {
 	/**
-	 * 입점업체미발주 주문목록
+	 * 입점업체미발주 주문목록 카운트
+	 *
+	 * @param Order - 주문 정보
+	 * @return
+	 * @author xodud1202
+	 * @since 2021. 06. 09
+	 */
+	int getOrderSellerUnorderListCount(Order order);
+
+	/**
+	 * 입점업체 주문목록
 	 *
 	 * @param Order - 주문 정보
 	 * @return

+ 17 - 7
src/main/java/com/style24/core/biz/service/TscDeliveryService.java

@@ -1,6 +1,5 @@
 package com.style24.core.biz.service;
 
-import java.text.NumberFormat;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -12,19 +11,17 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.gagaframework.excel.env.GagaExcelConstants;
-import com.gagaframework.excel.xssf.GagaExcelResultHandler;
 import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.rest.server.GagaResponseStatus;
+import com.style24.core.biz.dao.TscDeliveryDao;
 import com.style24.core.biz.dao.TscOrderChangeDao;
 import com.style24.core.biz.dao.TscOrderDao;
 import com.style24.core.biz.dao.TscScmDao;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.core.support.util.CryptoUtils;
+import com.style24.persistence.domain.DeliveryFee;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
-import com.style24.persistence.domain.Point;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -62,6 +59,8 @@ public class TscDeliveryService {
 	@Autowired
 	private ObjectMapper mapper;
 
+	@Autowired
+	private TscDeliveryDao deliveryDao;
 	
 	/**
 	 * 품절취소
@@ -129,9 +128,20 @@ public class TscDeliveryService {
 			}
 		}
 		
-	}	
-	
+	}
+
 
+	/**
+	 * 배송비 정책 코드 별 배송비 조회
+	 *
+	 * @param DeliveryFee
+	 * @return Collection<DeliveryFee>
+	 * @author card007
+	 * @since 2021. 06. 09
+	 */
+	public Collection<DeliveryFee> getDeliveryFee(DeliveryFee deliveryFee) {
+		return deliveryDao.getDeliveryFee(deliveryFee);
+	}
 }
 
 

+ 53 - 21
src/main/java/com/style24/core/biz/service/TscKakaotalkService.java

@@ -4,6 +4,7 @@ import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
@@ -952,9 +953,12 @@ public class TscKakaotalkService {
 		GagaMap replaceInfo = new GagaMap();
 		replaceInfo.setString("siteNm"				, siteNm);
 		replaceInfo.setString("ordNm"				, orderChange.getOrdNm());
+		replaceInfo.setString("회원명"				, orderChange.getOrdNm());
 		replaceInfo.setInt("ordNo"					, orderChange.getOrdNo());
+		replaceInfo.setInt("OrderNo"				, orderChange.getOrdNo());
 		replaceInfo.setString("goodsNm"				, orderChange.getGoodsNm());
 		replaceInfo.setInt("goodsCnt"				, orderChange.getGoodsCnt());
+		replaceInfo.setInt("N"						, orderChange.getGoodsCnt());
 		replaceInfo.setString("payMeansNm"			, orderChange.getPayMeansNm());
 		replaceInfo.setString("refundAmt"			, refundAmt);
 
@@ -967,28 +971,56 @@ public class TscKakaotalkService {
 		Integer ansSq = 0;
 		String pgGb = orderChange.getPgGb();
 		String payMeans = orderChange.getPayMeans();
-		if (TscConstants.PgGb.KCP.value().equals(pgGb)) {
-			if (TscConstants.PayMeans.CREDIT_CARD.value().equals(payMeans)) {
-				ansSq = SsgKakaoSender.KakaoAnswerSq.CARD_CANCEL_REFUND.value();
-			} else if (TscConstants.PayMeans.CELL_PHONE.value().equals(payMeans)) {
-				ansSq = SsgKakaoSender.KakaoAnswerSq.NA_CANCEL_REFUND.value();
-			} else if (TscConstants.PayMeans.ACCOUNT_TRANSFER.value().equals(payMeans)) {
-				ansSq = SsgKakaoSender.KakaoAnswerSq.AT_CANCEL_REFUND.value();
-			} else if (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
-				ansSq = SsgKakaoSender.KakaoAnswerSq.VA_CANCEL_REFUND.value();
+		if(StringUtils.isNotBlank(orderChange.getChgGb()) && TscConstants.OrderCancelReason.SOLDOUT_CANCEL.value().equals(orderChange.getChgGb())) {
+			// 품절 취소
+			if (TscConstants.PgGb.KCP.value().equals(pgGb)) {
+				if (TscConstants.PayMeans.CREDIT_CARD.value().equals(payMeans)) {
+					ansSq = SsgKakaoSender.KakaoAnswerSq.CARD_CANCEL_BY_SOLDOUT.value();
+				} else if (TscConstants.PayMeans.CELL_PHONE.value().equals(payMeans)) {
+					ansSq = SsgKakaoSender.KakaoAnswerSq.CARD_CANCEL_BY_SOLDOUT.value();		// 휴대폰결제 품절취소도 카드와 동일하게 진행하면 되는지 ?
+				} else if (TscConstants.PayMeans.ACCOUNT_TRANSFER.value().equals(payMeans)) {
+					ansSq = SsgKakaoSender.KakaoAnswerSq.AT_CANCEL_BY_SOLDOUT.value();
+				} else if (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
+					ansSq = SsgKakaoSender.KakaoAnswerSq.VA_CANCEL_BY_SOLDOUT.value();
+				}
+			} else if (TscConstants.PgGb.PAYCO.value().equals(pgGb)) {
+				// TODO
+				// PAYCO 취소 알림톡 처리
+			} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
+				// TODO
+				// 카카오페이 취소 알림톡 처리
+			} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {
+				// TODO
+				// 네이버페이 취소 알림톡 처리
+			} else if (TscConstants.PgGb.ISTYLE.value().equals(pgGb)) {
+				// TODO
+				// 상품권 전체 결제 취소 알림톡 처리
+			}
+		} else {
+			// 일반 취소
+			if (TscConstants.PgGb.KCP.value().equals(pgGb)) {
+				if (TscConstants.PayMeans.CREDIT_CARD.value().equals(payMeans)) {
+					ansSq = SsgKakaoSender.KakaoAnswerSq.CARD_CANCEL_REFUND.value();
+				} else if (TscConstants.PayMeans.CELL_PHONE.value().equals(payMeans)) {
+					ansSq = SsgKakaoSender.KakaoAnswerSq.NA_CANCEL_REFUND.value();
+				} else if (TscConstants.PayMeans.ACCOUNT_TRANSFER.value().equals(payMeans)) {
+					ansSq = SsgKakaoSender.KakaoAnswerSq.AT_CANCEL_REFUND.value();
+				} else if (TscConstants.PayMeans.BANK_DEPOSIT.value().equals(payMeans)) {
+					ansSq = SsgKakaoSender.KakaoAnswerSq.VA_CANCEL_REFUND.value();
+				}
+			} else if (TscConstants.PgGb.PAYCO.value().equals(pgGb)) {
+				// TODO
+				// PAYCO 취소 알림톡 처리
+			} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
+				// TODO
+				// 카카오페이 취소 알림톡 처리
+			} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {
+				// TODO
+				// 네이버페이 취소 알림톡 처리
+			} else if (TscConstants.PgGb.ISTYLE.value().equals(pgGb)) {
+				// TODO
+				// 상품권 전체 결제 취소 알림톡 처리
 			}
-		} else if (TscConstants.PgGb.PAYCO.value().equals(pgGb)) {
-			// TODO
-			// PAYCO 취소 알림톡 처리
-		} else if (TscConstants.PgGb.KAKAO.value().equals(pgGb)) {
-			// TODO
-			// 카카오페이 취소 알림톡 처리
-		} else if (TscConstants.PgGb.NAVER.value().equals(pgGb)) {
-			// TODO
-			// 네이버페이 취소 알림톡 처리
-		} else if (TscConstants.PgGb.ISTYLE.value().equals(pgGb)) {
-			// TODO
-			// 상품권 전체 결제 취소 알림톡 처리
 		}
 
 		if (ansSq > 0) {

+ 12 - 6
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -34,6 +35,8 @@ import lombok.extern.slf4j.Slf4j;
 @Service
 @Slf4j
 public class TscOrderChangeService {
+	@Autowired
+	private Environment env;
 
 	@Autowired
 	private TscMessageByLocale message;
@@ -61,6 +64,9 @@ public class TscOrderChangeService {
 	
 	@Autowired
 	private TscWmsService wmsService;
+	
+	@Autowired
+	private TscDeliveryService deliveryService;
 
 	/**
 	 * 주문변경정보 (상세번호배열, 취소수량배열) 취소 목록으로 변환 (사용안함)
@@ -179,7 +185,7 @@ public class TscOrderChangeService {
 		orderChange.setRegNo(userNo);
 		orderChange.setUpdNo(userNo);
 		orderChangeDao.createOrderChangeDetailHstForAllCancel(orderChange);
-		
+
 		return mav;
 	}
 
@@ -611,8 +617,8 @@ public class TscOrderChangeService {
 	@Transactional("shopTxnManager")
 	public GagaMap partialCancelTemp(GagaMap map, Integer userNo) {
 		// 1. 취소요청목록 및 정보 설정
-		List<Order> cancelOrderRefundList 	= (List<Order>) map.get("cancelOrderRefundList");				// 취소환불금액 목록 (주문상세단품 단위)
-		List<Order> cancelDelvRefundList 	= (List<Order>) map.get("cancelDelvRefundList");				// 취소환불배송금액 목록 (DELV_FEE_CD 단위)
+		List<Order> cancelOrderRefundList 	= (List<Order>) map.get("cancelOrderRefundList");					// 취소환불금액 목록 (주문상세단품 단위)
+		List<Order> cancelDelvRefundList 	= (List<Order>) map.get("cancelDelvRefundList");					// 취소환불배송금액 목록 (DELV_FEE_CD 단위)
 		int ordNo 							= map.getInt("ordNo");											// 주문번호
 		int ordChgSq						= map.getInt("ordChgSq");										// 주문변경일련번호
 		String chgReason 					= map.getString("chgReason");									// 변경사유
@@ -628,9 +634,9 @@ public class TscOrderChangeService {
 		String accountNm					= map.getString("accountNm");									// 환불계좌주명
 		String bankCd						= map.getString("bankCd");										// 환불계좌은행코드
 		String reqGbn						= map.getString("reqGbn");										// 신청구분
-		String chgGb						= TscConstants.OrderChangeGb.CANCEL.value(); 					// 취소요청 (공톹코드:G680)
-		String ordDtlStat					= TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value();	// 주문상세상태
-		String chgStat						= TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value();	// 주문변경상태
+		String chgGb						= TscConstants.OrderChangeGb.CANCEL.value(); 						// 취소요청 (공톹코드:G680)
+		String ordDtlStat					= TscConstants.OrderDetailStat.PAYMENT_AFTER_CANCEL.value();		// 주문상세상태
+		String chgStat						= TscConstants.OrderChangeStat.PAYMENT_AFTER_CANCEL.value();		// 주문변경상태
 		
 		int payAmt							= map.getInt("spanPayAmt");										// 부분취소 전 결제금액
 		

+ 32 - 6
src/main/java/com/style24/core/biz/service/TscOrderService.java

@@ -215,6 +215,17 @@ public class TscOrderService {
 		return orderDao.getOrderMemoList(order);
 	}
 
+	/**
+	 * 입점업체미발주 주문목록
+	 * @param Order
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2020. 11. 30
+	 */
+	public int getOrderSellerUnorderListCount(Order order) {
+		return scmDao.getOrderSellerUnorderListCount(order);
+	}
+
 	/**
 	 * 입점업체미발주 주문목록
 	 * @param Order
@@ -2358,19 +2369,36 @@ public class TscOrderService {
 					// 취소신청
 					change.setChgGb(TscConstants.OrderChangeGb.CANCEL.value());
 					orderChangeService.cancelRequest(change);
+
+					// TODO 품절취소접수 알림톡 추가 되는지 확인 필요
+
 				} else {		// 무통장입금 주문 중 환불계좌정보 없을 경우 제외는 취소처리
 					// 취소완료
 					GagaMap cancelInfo = orderChangeService.orderCancelPreInfoTemp(change, userNo);
 
-					// TODO 취소 완료 알림톡 발송 에정
-					//
+					// 3. 취소완료 카카오알림톡 발송
+					Integer ordChgSq = cancelInfo.getInt("ordChgSq");
+
+					if (ordChgSq > 0) {
+						try {
+							// 취소 알림톡 관련 정보 조회
+							OrderChange orderChange = new OrderChange();
+							orderChange = orderChangeService.getKakaoOrderCancelInfo(ordChgSq);
+
+							// 취소 알림톡 발송
+							orderChange.setChgGb(TscConstants.OrderCancelReason.SOLDOUT_CANCEL.value());
+							kakaotalkService.sendOrderCancelComplete(orderChange, userNo);
+						} catch (Exception e) {
+							throw new IllegalStateException(message.getMessage("FAIL_0004"));
+						}
+					}
 				}
 			}
 
 			// 결품 취소 후 수량이 남은 경우 배송중처리
 			for(Order param : params) {
 				if(param.getOrdQty() - param.getCnclRtnQty() > 0) {
-					/*// 주문 상세 (TB_ORDER_DETAIL) 배송중으로 변경
+					// 주문 상세 (TB_ORDER_DETAIL) 배송중으로 변경
 					param.setOrdDtlStat(TscConstants.OrderDetailStat.SHIPPING.value());
 					param.setRegNo(userNo);
 					param.setUpdNo(userNo);
@@ -2380,7 +2408,7 @@ public class TscOrderService {
 					// 주문 상세 송장번호 등록
 					scmDao.createOrderDetailInvoice(param);
 					// 주문 변경 이력 저장
-					orderDao.createOrderDetailHst(param);*/
+					orderDao.createOrderDetailHst(param);
 
 					boolean isOther = true;
 					for(Order delv : delvStartList) {
@@ -2409,8 +2437,6 @@ public class TscOrderService {
 				for(Order kakaoSend : delvStartList) {
 					if (StringUtils.isNotBlank(kakaoSend.getOrdPhnno())) {
 						try {
-							log.info("CHECK KAKAO SEND :::: {}", kakaoSend.toString());
-							log.info("CHECK KAKAO SEND :::: {}", userNo);
 							kakaotalkService.sendDeliveryStart(kakaoSend, userNo);
 						} catch (Exception e) {
 							e.printStackTrace();

+ 3 - 0
src/main/java/com/style24/persistence/domain/OrderChange.java

@@ -147,6 +147,8 @@ public class OrderChange extends TscBaseDomain {
 
 	// 취반교 리스트
 	private String ordDt;							// 주문일시
+	private String ordDate;							// 주문시간
+	private String ordTime;							// 주문시간
 	private String chgDate;							// 변경일시
 	private String chgTime;							// 변경시간
 	private String giftPackYn;						// 선물하기여부
@@ -196,6 +198,7 @@ public class OrderChange extends TscBaseDomain {
 	private String payMeansNm;						// 결제수단명
 	private int priceOrg;							// 원가격
 	private int priceSale;							// 할인가격
+	private int usePoint;							// 사은품 사용 포인트
 
 	// 교환 상세
 	private String[] chgItemNmArr;					// 교환상품구성상품명 배열

+ 18 - 0
src/main/java/com/style24/persistence/mybatis/shop/TscDelivery.xml

@@ -19,5 +19,23 @@
 		   AND B.ORD_DTL_NO = #{ordDtlNo}		
 		
 	</select>
+	
+	<!-- 배송비 정책 코드 별 배송비 조회 -->
+	<select id="getDeliveryFee" parameterType="DeliveryFee" resultType="DeliveryFee">
+		/* TscDelivery.getDeliveryFee */
+		SELECT DELV_FEE_CD
+		     , SUM(DELV_FEE) AS DELV_FEE
+		     , SUM(DELV_CPN_DC_AMT) AS DELV_CPN_DC_AMT
+		     , SUM(REAL_DELV_AMT) AS REAL_DELV_AMT
+		  FROM TB_DELIVERY_FEE
+		 WHERE ORD_NO = #{ordNo}
+		<if test="delvFeeCd != null and delvFeeCd != ''">
+		   AND DELV_FEE_CD = #{delvFeeCd}
+		</if>
+		<if test="paySq != null and paySq != ''">
+		   AND PAY_SQ = #{paySq}
+		</if>
+		 GROUP BY DELV_FEE_CD
+	</select>
 
 </mapper>

+ 658 - 8
src/main/java/com/style24/persistence/mybatis/shop/TscOrderChange.xml

@@ -2953,12 +2953,13 @@
 			 , SUM(OD.PNT_DC_AMT)       AS RF_PNT_AMT
 			 , SUM(OD.PRE_PNT_DC_AMT)   AS RF_PRE_PNT_AMT
 			 , SUM(OD.GFCD_USE_AMT)     AS RF_GFCD_USE_AMT
-			 , DF.DELV_FEE              AS RF_DELIVERY_FEE
+			 , DF.REAL_DELV_AMT         AS RF_DELIVERY_FEE
 			 , SUM(OD.REAL_ORD_AMT)     AS REAL_ORD_AMT
 		  FROM TB_ORDER_DETAIL OD
 		 INNER JOIN (SELECT ORD_NO
 		                  , SUM(DELV_FEE) AS DELV_FEE
 		                  , SUM(DELV_CPN_DC_AMT) AS DELV_CPN_DC_AMT
+		                  , SUM(REAL_DELV_AMT) AS REAL_DELV_AMT
 		               FROM TB_DELIVERY_FEE
 		              WHERE DELV_FEE_GB = 'G018_10'
 		              GROUP BY ORD_NO) DF
@@ -3748,13 +3749,13 @@
 	<!-- 반품 배송비 마이너스처리  -->
 	<update id="updateWithdrawFee" parameterType="OrderChange" >
 		/* TscOrderChange.updateWithdrawFee */
-UPDATE TB_WITHDRAW SET
-   COD_FEE     = #{codFee}
- , ENCLOSE_FEE = #{encloseFee}
- , UPD_NO      = #{updNo}
- , UPD_DT      = NOW()
-WHERE WD_INVOICE_NO  = #{wdInvoiceNo}
-  AND ORD_CHG_SQ     = #{ordChgSq}
+		UPDATE TB_WITHDRAW SET
+		   COD_FEE     = #{codFee}
+		 , ENCLOSE_FEE = #{encloseFee}
+		 , UPD_NO      = #{updNo}
+		 , UPD_DT      = NOW()
+		WHERE WD_INVOICE_NO  = #{wdInvoiceNo}
+		  AND ORD_CHG_SQ     = #{ordChgSq}
 	</update>
 		
 	<!-- 취소 알림톡 정보 조회 -->
@@ -3829,6 +3830,655 @@ WHERE WD_INVOICE_NO  = #{wdInvoiceNo}
 		       ) Z
 		 WHERE Z.RNUM = 1
 	</select>
+
+	<!-- 마이페이지 취소 상세 정보 조회 -->
+	<select id="getCreCancelDetailInfo" parameterType="OrderChange" resultType="OrderChange">
+		/* TsfOrderChange.getCreCancelDetailInfo */
+		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
+		, GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
+		, GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
+		, GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD2
+		, Z.ORD_CHG_SQ
+		, Z.CHG_GB
+		, Z.CHG_QTY
+		, Z.ORD_DT
+		, Z.ORD_DATE
+		, Z.CHG_DATE
+		, Z.CHG_TIME
+		, Z.CHG_DT
+		, Z.COMPLETE_DT
+		, Z.CHG_STAT
+		, Z.CHG_STAT_NM
+		, Z.ORD_NO
+		, Z.ORD_AMT
+		, Z.ORD_QTY
+		, Z.CNCL_RTN_QTY
+		, Z.CNCL_RTN_AMT
+		, Z.CPN1_DC_AMT
+		, Z.REAL_ORD_AMT
+		, Z.PNT_DC_AMT
+		, Z.GFCD_USE_AMT
+		, Z.ORD_DTL_NO
+		, Z.GOODS_CD
+		, Z.BRAND_NM
+		, Z.SHOT_DELV_YN
+		, Z.SELF_GOODS_YN
+		, Z.GOODS_NM
+		, Z.GOODS_TYPE
+		, Z.PRICE_ORG
+		, Z.PRICE_SALE
+		, Z.ADD_PAY_COST
+		, Z.SYS_IMG_NM
+		, Z.GIFT_PACK_YN
+		, Z.DELV_FEE_CD
+		, Z.REFUND_AMT
+		, Z.RF_CPN1_AMT
+		, Z.RF_TMTB1_AMT
+		, Z.RF_TMTB2_AMT
+		, Z.RF_GOODS_CPN_AMT
+		, Z.RF_CART_CPN_AMT
+		, Z.RF_DELV_CPN_AMT
+		, Z.RF_PNT_AMT
+		, Z.RF_PRE_PNT_AMT
+		, Z.RF_GFCD_USE_AMT
+		, Z.RF_CNCL_AMT
+		, Z.RF_DELIVERY_FEE
+		, Z.RF_REAL_CNCL_AMT
+		, Z.PG_TID
+		, Z.PG_GB
+		, Z.PAY_MEANS
+		, Z.PAY_MEANS_NM
+		FROM (SELECT OC.ORD_CHG_SQ
+		, OC.CHG_GB
+		, OCD.CHG_QTY
+		, DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                AS ORD_DT
+		, DATE_FORMAT(O.ORD_DT, '%Y.%m.%d %H:%i')                          AS ORD_DATE
+		, DATE_FORMAT(OCDH.REG_DT, '%Y.%m.%d')                             AS CHG_DATE
+		, DATE_FORMAT(OCDH.REG_DT,'%H:%i:%S')                              AS CHG_TIME
+		, DATE_FORMAT(OCD.REG_DT, '%Y.%m.%d')                              AS CHG_DT
+		, DATE_FORMAT(OCD.COMPLETE_DT, '%Y.%m.%d')                         AS COMPLETE_DT
+		, OCD.CHG_STAT
+		, FN_GET_CODE_NM('G685', OCD.CHG_STAT)                             AS CHG_STAT_NM
+		, OD.ORD_NO
+		, OD.ORD_AMT
+		, OD.ORD_QTY
+		, OD.CNCL_RTN_QTY
+		, OD.CNCL_RTN_AMT
+		, OD.CPN1_DC_AMT
+		, OD.REAL_ORD_AMT
+		, OD.PNT_DC_AMT
+		, OD.GFCD_USE_AMT
+		, OCD.ORD_DTL_NO
+		, G1.GOODS_CD
+		, CASE BG.DISP_NM_LANG WHEN 'EN' THEN BG.BRAND_GROUP_ENM
+		ELSE BG.BRAND_GROUP_KNM
+		END                                                             AS BRAND_NM
+		, OD.SHOT_DELV_YN
+		, G1.SELF_GOODS_YN
+		, G1.GOODS_NM
+		, IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+		, G2.GOODS_NM                                                      AS ITEM_NM
+		, G1.GOODS_TYPE
+		, ODI.ORD_DTL_ITEM_SQ
+		, ODI.OPT_CD1
+		, ODI.OPT_CD2
+		, ROUND((ODH.ORD_AMT - ODH.CPN1_DC_AMT) * (OCD.CHG_QTY / ODH.ORD_QTY)) AS PRICE_ORG
+		, ROUND((ODH.REAL_ORD_AMT + ODH.PNT_DC_AMT + ODH.GFCD_USE_AMT) * (OCD.CHG_QTY / OD.ORD_QTY)) AS PRICE_SALE
+		, OC.ADD_PAY_COST
+		, CASE WHEN G1.GOODS_TYPE != 'G056_S' AND G1.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
+		ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = IFNULL(G1.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM
+		, OD.GIFT_PACK_YN
+		, OD.DELV_FEE_CD
+		, R.REFUND_AMT
+		, R.RF_CPN1_AMT
+		, R.RF_TMTB1_AMT
+		, R.RF_TMTB2_AMT
+		, R.RF_GOODS_CPN_AMT
+		, R.RF_CART_CPN_AMT
+		, R.RF_DELV_CPN_AMT
+		, R.RF_PNT_AMT
+		, R.RF_PRE_PNT_AMT
+		, R.RF_GFCD_USE_AMT
+		, R.RF_CNCL_AMT
+		, R.RF_DELIVERY_FEE
+		, R.RF_REAL_CNCL_AMT
+		, P.PG_TID
+		, P.PG_GB
+		, P.PAY_MEANS
+		, FN_GET_CODE_NM('G014', P.PAY_MEANS)                              AS PAY_MEANS_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_CHANGE_DETAIL_HST OCDH
+		ON OCD.ORD_CHG_SQ = OCDH.ORD_CHG_SQ
+		AND OCD.ORD_DTL_NO = OCDH.ORD_DTL_NO
+		AND OCD.CHG_STAT = OCDH.CHG_STAT
+		INNER JOIN TB_ORDER_DETAIL OD
+		ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+		AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
+		INNER JOIN TB_ORDER O
+		ON OD.ORD_NO = O.ORD_NO
+		INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		ON OD.ORD_NO = ODI.ORD_NO
+		AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
+		INNER JOIN TB_ORDER_DETAIL_HST ODH
+		ON OD.ORD_DTL_NO = ODH.ORD_DTL_NO
+		AND ODH.ORD_DTL_STAT = 'G013_00'
+		INNER JOIN TB_GOODS G1
+		ON OD.GOODS_CD = G1.GOODS_CD
+		INNER JOIN TB_GOODS G2
+		ON ODI.ITEM_CD = G2.GOODS_CD
+		INNER JOIN TB_BRAND B
+		ON G1.BRAND_CD = B.BRAND_CD
+		AND B.USE_YN = 'Y'
+		INNER JOIN TB_BRAND_GROUP BG
+		ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		AND BG.USE_YN = 'Y'
+		LEFT OUTER JOIN TB_REFUND R
+		ON R.ORD_CHG_SQ = OC.ORD_CHG_SQ
+		INNER JOIN TB_PAYMENT P
+		ON P.ORD_NO = O.ORD_NO
+		AND P.PAY_GB = 'O'
+		AND P.PAY_STAT IN ('G016_10', 'G016_30')
+		WHERE OCD.DEL_YN = 'N'
+		AND O.DISP_YN = 'Y'
+		<choose>
+			<when test="custNo > 0">
+				AND O.CUST_NO = #{custNo}
+			</when>
+			<otherwise>
+				AND O.ORD_NO = #{ordNo}
+				AND O.ORD_NM = #{ordNm}
+				AND O.ORD_PHNNO = #{ordPhnno}
+			</otherwise>
+		</choose>
+		<if test="ordChgSq != null and ordChgSq != ''">
+			AND OC.ORD_CHG_SQ = #{ordChgSq}
+		</if>
+		) Z
+		GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.ORD_DATE, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
+		, Z.CHG_STAT_NM, Z.ORD_NO, Z.ORD_AMT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.CNCL_RTN_AMT, Z.CPN1_DC_AMT, Z.REAL_ORD_AMT, Z.PNT_DC_AMT
+		, Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM, Z.GOODS_TYPE
+		, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.DELV_FEE_CD, Z.REFUND_AMT, Z.RF_CPN1_AMT, Z.RF_TMTB1_AMT
+		, Z.RF_TMTB2_AMT, Z.RF_GOODS_CPN_AMT, Z.RF_CART_CPN_AMT, Z.RF_DELV_CPN_AMT, Z.RF_PNT_AMT, Z.RF_PRE_PNT_AMT, Z.RF_GFCD_USE_AMT
+		, Z.RF_CNCL_AMT, Z.RF_DELIVERY_FEE, Z.RF_REAL_CNCL_AMT, Z.PG_TID, Z.PG_GB, Z.PAY_MEANS, Z.PAY_MEANS_NM
+		ORDER BY Z.ORD_CHG_SQ DESC
+	</select>
+
+	<!-- 마이페이지 반품 상세 정보 조회 -->
+	<select id="getCreReturnDetailInfo" parameterType="OrderChange" resultType="OrderChange">
+		/* TsfOrderChange.getCreReturnDetailInfo */
+		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
+		, GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
+		, GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
+		, GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD2
+		, Z.ORD_CHG_SQ
+		, Z.CHG_GB
+		, Z.CHG_QTY
+		, Z.ORD_DT
+		, Z.CHG_DATE
+		, Z.CHG_TIME
+		, Z.CHG_DT
+		, Z.COMPLETE_DT
+		, Z.CHG_STAT
+		, Z.CHG_STAT_NM
+		, Z.ORD_NO
+		, Z.ORD_AMT
+		, Z.ORD_QTY
+		, Z.CNCL_RTN_QTY
+		, Z.CNCL_RTN_AMT
+		, Z.CPN1_DC_AMT
+		, Z.REAL_ORD_AMT
+		, Z.PNT_DC_AMT
+		, Z.GFCD_USE_AMT
+		, Z.ORD_DTL_NO
+		, Z.GOODS_CD
+		, Z.BRAND_NM
+		, Z.SHOT_DELV_YN
+		, Z.SELF_GOODS_YN
+		, Z.GOODS_NM
+		, Z.GOODS_TYPE
+		, Z.PRICE_ORG
+		, Z.PRICE_SALE
+		, Z.ADD_PAY_COST
+		, Z.SYS_IMG_NM
+		, Z.GIFT_PACK_YN
+		, Z.REFUND_AMT
+		, Z.RF_CPN1_AMT
+		, Z.RF_TMTB1_AMT
+		, Z.RF_TMTB2_AMT
+		, Z.RF_GOODS_CPN_AMT
+		, Z.RF_CART_CPN_AMT
+		, Z.RF_DELV_CPN_AMT
+		, Z.RF_PNT_AMT
+		, Z.RF_PRE_PNT_AMT
+		, Z.RF_GFCD_USE_AMT
+		, Z.RF_CNCL_AMT
+		, Z.RF_DELIVERY_FEE
+		, Z.RF_REAL_CNCL_AMT
+		, Z.PG_GB
+		, Z.PAY_MEANS
+		, Z.PAY_MEANS_NM
+		, Z.WD_GB
+		, Z.CHGER_NM
+		, Z.CHGER_PHNNO
+		, Z.CHGER_BASE_ADDR
+		, Z.CHGER_DTL_ADDR
+		, Z.CHGER_RTN_MEMO
+		, Z.WD_INVOICE_NO
+		, Z.SHIP_COMP_CD
+		, Z.SHIP_COMP_NM
+		FROM (SELECT OC.ORD_CHG_SQ
+		, OC.CHG_GB
+		, OCD.CHG_QTY
+		, DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                AS ORD_DT
+		, DATE_FORMAT(OCDH.REG_DT, '%Y.%m.%d')                             AS CHG_DATE
+		, DATE_FORMAT(OCDH.REG_DT,'%H:%i:%S')                              AS CHG_TIME
+		, DATE_FORMAT(OCD.REG_DT, '%Y.%m.%d')                              AS CHG_DT
+		, DATE_FORMAT(OCD.COMPLETE_DT, '%Y.%m.%d')                         AS COMPLETE_DT
+		, OCD.CHG_STAT
+		, FN_GET_CODE_NM('G685', OCD.CHG_STAT)                             AS CHG_STAT_NM
+		, OD.ORD_NO
+		, OD.ORD_AMT
+		, OD.ORD_QTY
+		, OD.CNCL_RTN_QTY
+		, OD.CNCL_RTN_AMT
+		, OD.CPN1_DC_AMT
+		, OD.REAL_ORD_AMT
+		, OD.PNT_DC_AMT
+		, OD.GFCD_USE_AMT
+		, OCD.ORD_DTL_NO
+		, G1.GOODS_CD
+		, CASE BG.DISP_NM_LANG WHEN 'EN' THEN BG.BRAND_GROUP_ENM
+		ELSE BG.BRAND_GROUP_KNM
+		END                                                             AS BRAND_NM
+		, OD.SHOT_DELV_YN
+		, G1.SELF_GOODS_YN
+		, G1.GOODS_NM
+		, IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+		, G2.GOODS_NM                                                      AS ITEM_NM
+		, G1.GOODS_TYPE
+		, ODI.ORD_DTL_ITEM_SQ
+		, ODI.OPT_CD1
+		, ODI.OPT_CD2
+		, ((OD.ORD_AMT - OD.CNCL_RTN_AMT - OD.CPN1_DC_AMT) * (OCD.CHG_QTY / (OD.ORD_QTY - OD.CNCL_RTN_QTY))) AS PRICE_ORG
+		, ((OD.REAL_ORD_AMT + OD.PNT_DC_AMT + OD.GFCD_USE_AMT) * (OCD.CHG_QTY / (OD.ORD_QTY - OD.CNCL_RTN_QTY))) AS PRICE_SALE
+		, OC.ADD_PAY_COST
+		, CASE WHEN G1.GOODS_TYPE != 'G056_S' AND G1.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
+		ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = IFNULL(G1.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM
+		, OD.GIFT_PACK_YN
+		, R.REFUND_AMT
+		, R.RF_CPN1_AMT
+		, R.RF_TMTB1_AMT
+		, R.RF_TMTB2_AMT
+		, R.RF_GOODS_CPN_AMT
+		, R.RF_CART_CPN_AMT
+		, R.RF_DELV_CPN_AMT
+		, R.RF_PNT_AMT
+		, R.RF_PRE_PNT_AMT
+		, R.RF_GFCD_USE_AMT
+		, R.RF_CNCL_AMT
+		, R.RF_DELIVERY_FEE
+		, R.RF_REAL_CNCL_AMT
+		, P.PG_GB
+		, P.PAY_MEANS
+		, FN_GET_CODE_NM('G014', P.PAY_MEANS)                              AS PAY_MEANS_NM
+		, OC.WD_GB
+		, OC.CHGER_NM
+		, OC.CHGER_PHNNO
+		, OC.CHGER_BASE_ADDR
+		, OC.CHGER_DTL_ADDR
+		, OC.CHGER_RTN_MEMO
+		, OC.WD_INVOICE_NO
+		, OC.SHIP_COMP_CD
+		, (SELECT SHIP_COMP_NM
+		FROM TB_SHIP_COMPANY SC
+		WHERE SC.SHIP_COMP_CD = OC.SHIP_COMP_CD)                       AS SHIP_COMP_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_CHANGE_DETAIL_HST OCDH
+		ON OCD.ORD_CHG_SQ = OCDH.ORD_CHG_SQ
+		AND OCD.ORD_DTL_NO = OCDH.ORD_DTL_NO
+		AND OCD.CHG_STAT = OCDH.CHG_STAT
+		INNER JOIN TB_ORDER_DETAIL OD
+		ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+		AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
+		INNER JOIN TB_ORDER O
+		ON OD.ORD_NO = O.ORD_NO
+		INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		ON OD.ORD_NO = ODI.ORD_NO
+		AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
+		INNER JOIN TB_GOODS G1
+		ON OD.GOODS_CD = G1.GOODS_CD
+		INNER JOIN TB_GOODS G2
+		ON ODI.ITEM_CD = G2.GOODS_CD
+		INNER JOIN TB_BRAND B
+		ON G1.BRAND_CD = B.BRAND_CD
+		AND B.USE_YN = 'Y'
+		INNER JOIN TB_BRAND_GROUP BG
+		ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		AND BG.USE_YN = 'Y'
+		LEFT OUTER JOIN TB_REFUND R
+		ON R.ORD_CHG_SQ = OC.ORD_CHG_SQ
+		INNER JOIN TB_PAYMENT P
+		ON P.ORD_NO = O.ORD_NO
+		AND P.PAY_GB = 'O'
+		AND P.PAY_STAT = 'G016_30'
+		WHERE O.DISP_YN = 'Y'
+		<choose>
+			<when test="custNo > 0">
+				AND O.CUST_NO = #{custNo}
+			</when>
+			<otherwise>
+				AND O.ORD_NO = #{ordNo}
+				AND O.ORD_NM = #{ordNm}
+				AND O.ORD_PHNNO = #{ordPhnno}
+			</otherwise>
+		</choose>
+		<if test="ordChgSq != null and ordChgSq != ''">
+			AND OC.ORD_CHG_SQ = #{ordChgSq}
+		</if>
+		) Z
+		GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
+		, Z.CHG_STAT_NM, Z.ORD_NO, Z.ORD_AMT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.CNCL_RTN_AMT, Z.CPN1_DC_AMT, Z.REAL_ORD_AMT, Z.PNT_DC_AMT
+		, Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM
+		, Z.GOODS_TYPE, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.REFUND_AMT, Z.RF_CPN1_AMT, Z.RF_TMTB1_AMT
+		, Z.RF_TMTB2_AMT, Z.RF_GOODS_CPN_AMT, Z.RF_CART_CPN_AMT, Z.RF_DELV_CPN_AMT, Z.RF_PNT_AMT, Z.RF_PRE_PNT_AMT, Z.RF_GFCD_USE_AMT, Z.RF_CNCL_AMT
+		, Z.RF_DELIVERY_FEE, Z.RF_REAL_CNCL_AMT, Z.PG_GB, Z.PAY_MEANS, Z.PAY_MEANS_NM, Z.WD_GB, Z.CHGER_NM, Z.CHGER_PHNNO, Z.CHGER_BASE_ADDR
+		, Z.CHGER_DTL_ADDR, Z.CHGER_RTN_MEMO, Z.WD_INVOICE_NO, Z.SHIP_COMP_CD, Z.SHIP_COMP_NM
+		ORDER BY Z.ORD_CHG_SQ DESC
+	</select>
+
+	<!-- 마이페이지 교환 상세 정보 조회 -->
+	<select id="getCreExchangeDetailInfo" parameterType="OrderChange" resultType="OrderChange">
+		/* TsfOrderChange.getCreExchangeDetailInfo */
+		SELECT GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
+		, GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
+		, GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
+		, GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD2
+		, Z.ORD_CHG_SQ
+		, Z.CHG_GB
+		, Z.CHG_QTY
+		, Z.ORD_DT
+		, Z.CHG_DATE
+		, Z.CHG_TIME
+		, Z.CHG_DT
+		, Z.COMPLETE_DT
+		, Z.CHG_STAT
+		, Z.CHG_STAT_NM
+		, Z.ORD_DTL_STAT
+		, Z.EXCHANGE_SHIP_COMP_CD
+		, Z.EXCHANGE_INVOICE_NO
+		, Z.ORD_NO
+		, Z.ORD_AMT
+		, Z.ORD_QTY
+		, Z.CNCL_RTN_QTY
+		, Z.CNCL_RTN_AMT
+		, Z.CPN1_DC_AMT
+		, Z.REAL_ORD_AMT
+		, Z.PNT_DC_AMT
+		, Z.GFCD_USE_AMT
+		, Z.ORD_DTL_NO
+		, Z.GOODS_CD
+		, Z.BRAND_NM
+		, Z.SHOT_DELV_YN
+		, Z.SELF_GOODS_YN
+		, Z.GOODS_NM
+		, Z.GOODS_TYPE
+		, Z.PRICE_ORG
+		, Z.PRICE_SALE
+		, Z.ADD_PAY_COST
+		, Z.SYS_IMG_NM
+		, Z.GIFT_PACK_YN
+		, Z.WD_GB
+		, Z.CHGER_NM
+		, Z.CHGER_PHNNO
+		, Z.CHGER_BASE_ADDR
+		, Z.CHGER_DTL_ADDR
+		, Z.CHGER_RTN_MEMO
+		, Z.CHG_MEMO
+		, Z.WD_INVOICE_NO
+		, Z.SHIP_COMP_CD
+		, Z.SHIP_COMP_NM
+		, Z.DELV_ADDR_SQ
+		, Z.RECIP_NM
+		, Z.RECIP_PHNNO
+		, Z.RECIP_BASE_ADDR
+		, Z.RECIP_DTL_ADDR
+		, Z.DELV_MEMO
+		, Z.PG_TID
+		, Z.PAY_MEANS
+		, Z.PAY_MEANS_NM
+		, Z.CARD_NM
+		, Z.CARD_MIPS
+		, Z.CHG_ORD_DTL_STAT
+		FROM (SELECT OC.ORD_CHG_SQ
+		, OC.CHG_GB
+		, OCD.CHG_QTY
+		, DATE_FORMAT(O.ORD_DT, '%Y.%m.%d')                                AS ORD_DT
+		, DATE_FORMAT(OCDH.REG_DT, '%Y.%m.%d')                             AS CHG_DATE
+		, DATE_FORMAT(OCDH.REG_DT,'%H:%i:%S')                              AS CHG_TIME
+		, DATE_FORMAT(OCD.REG_DT, '%Y.%m.%d')                              AS CHG_DT
+		, DATE_FORMAT(OCD.COMPLETE_DT, '%Y.%m.%d')                         AS COMPLETE_DT
+		, OCD.CHG_STAT
+		, FN_GET_CODE_NM('G685', OCD.CHG_STAT)                             AS CHG_STAT_NM
+		, OD2.ORD_DTL_STAT                                                 AS ORD_DTL_STAT
+		, OD2.INVOICE_NO                                                   AS EXCHANGE_INVOICE_NO
+		, OD2.SHIP_COMP_CD                                                 AS EXCHANGE_SHIP_COMP_CD
+		, OD.ORD_NO
+		, OD.ORD_AMT
+		, OD.ORD_QTY
+		, OD.CNCL_RTN_QTY
+		, OD.CNCL_RTN_AMT
+		, OD.CPN1_DC_AMT
+		, OD.REAL_ORD_AMT
+		, OD.PNT_DC_AMT
+		, OD.GFCD_USE_AMT
+		, OCD.ORD_DTL_NO
+		, G1.GOODS_CD
+		, CASE BG.DISP_NM_LANG WHEN 'EN' THEN BG.BRAND_GROUP_ENM
+		ELSE BG.BRAND_GROUP_KNM
+		END                                                             AS BRAND_NM
+		, OD.SHOT_DELV_YN
+		, G1.SELF_GOODS_YN
+		, G1.GOODS_NM
+		, IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+		, G2.GOODS_NM                                                      AS ITEM_NM
+		, G1.GOODS_TYPE
+		, ODI.ORD_DTL_ITEM_SQ
+		, ODI.OPT_CD1
+		, ODI.OPT_CD2
+		, ((OD.ORD_AMT - OD.CNCL_RTN_AMT - OD.CPN1_DC_AMT) * (OCD.CHG_QTY / (OD.ORD_QTY - OD.CNCL_RTN_QTY))) AS PRICE_ORG
+		, ((OD.REAL_ORD_AMT + OD.PNT_DC_AMT + OD.GFCD_USE_AMT) * (OCD.CHG_QTY / (OD.ORD_QTY - OD.CNCL_RTN_QTY))) AS PRICE_SALE
+		, OC.ADD_PAY_COST
+		, CASE WHEN G1.GOODS_TYPE != 'G056_S' AND G1.SELF_GOODS_YN = 'Y' THEN (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = ODI.OPT_CD1 AND DEFAULT_IMG_YN = 'Y')
+		ELSE (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG WHERE GOODS_CD = G1.GOODS_CD AND COLOR_CD = IFNULL(G1.MAIN_COLOR_CD,'XX') AND DEFAULT_IMG_YN = 'Y') END AS SYS_IMG_NM
+		, OD.GIFT_PACK_YN
+		, OC.WD_GB
+		, OC.CHGER_NM
+		, OC.CHGER_PHNNO
+		, OC.CHGER_BASE_ADDR
+		, OC.CHGER_DTL_ADDR
+		, OC.CHGER_RTN_MEMO
+		, OC.CHG_MEMO
+		, OC.WD_INVOICE_NO
+		, OC.SHIP_COMP_CD
+		, (SELECT SHIP_COMP_NM
+		FROM TB_SHIP_COMPANY SC
+		WHERE SC.SHIP_COMP_CD = OC.SHIP_COMP_CD)                       AS SHIP_COMP_NM
+		, DA.DELV_ADDR_SQ
+		, DA.RECIP_NM
+		, DA.RECIP_PHNNO
+		, DA.RECIP_BASE_ADDR
+		, DA.RECIP_DTL_ADDR
+		, DA.DELV_MEMO
+		, P.PG_TID
+		, P.PAY_MEANS
+		, FN_GET_CODE_NM('G014', P.PAY_MEANS)                              AS PAY_MEANS_NM
+		, P.CARD_NM
+		, IF(P.CARD_MIPS = 0, '일시불', CONCAT(P.CARD_MIPS, '개월'))          AS CARD_MIPS
+		, OD2.ORD_DTL_STAT                                                 AS CHG_ORD_DTL_STAT
+		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_CHANGE_DETAIL_HST OCDH
+		ON OCD.ORD_CHG_SQ = OCDH.ORD_CHG_SQ
+		AND OCD.ORD_DTL_NO = OCDH.ORD_DTL_NO
+		AND OCD.CHG_STAT = OCDH.CHG_STAT
+		INNER JOIN TB_ORDER_DETAIL OD
+		ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+		AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
+		INNER JOIN TB_ORDER_DETAIL OD2
+		ON OCD.CHG_ORD_DTL_NO = OD2.ORD_DTL_NO
+		AND OD2.ORD_EXCH_GB = 'E'
+		LEFT OUTER JOIN TB_DELIVERY_ADDR DA
+		ON OD2.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
+		INNER JOIN TB_ORDER O
+		ON OD.ORD_NO = O.ORD_NO
+		INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+		ON OD.ORD_NO = ODI.ORD_NO
+		AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		AND OD.ORD_DTL_STAT NOT IN ('G013_00', 'G013_11', 'G013_25')
+		INNER JOIN TB_GOODS G1
+		ON OD.GOODS_CD = G1.GOODS_CD
+		INNER JOIN TB_GOODS G2
+		ON ODI.ITEM_CD = G2.GOODS_CD
+		INNER JOIN TB_BRAND B
+		ON G1.BRAND_CD = B.BRAND_CD
+		AND B.USE_YN = 'Y'
+		INNER JOIN TB_BRAND_GROUP BG
+		ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		AND BG.USE_YN = 'Y'
+		LEFT OUTER JOIN TB_PAYMENT P
+		ON P.ORD_CHG_SQ = OC.ORD_CHG_SQ
+		AND P.PAY_GB = 'D'
+		AND P.PAY_STAT = 'G016_30'
+		WHERE O.DISP_YN = 'Y'
+		<choose>
+			<when test="custNo > 0">
+				AND O.CUST_NO = #{custNo}
+			</when>
+			<otherwise>
+				AND O.ORD_NO = #{ordNo}
+				AND O.ORD_NM = #{ordNm}
+				AND O.ORD_PHNNO = #{ordPhnno}
+			</otherwise>
+		</choose>
+		<if test="ordChgSq != null and ordChgSq != ''">
+			AND OC.ORD_CHG_SQ = #{ordChgSq}
+		</if>
+		) Z
+		GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.CHG_QTY, Z.ORD_DT, Z.CHG_DATE, Z.CHG_TIME, Z.CHG_DT, Z.COMPLETE_DT, Z.CHG_STAT
+		, Z.CHG_STAT_NM, Z.ORD_DTL_STAT, Z.EXCHANGE_SHIP_COMP_CD, Z.EXCHANGE_INVOICE_NO, Z.ORD_NO, Z.ORD_AMT, Z.ORD_QTY, Z.CNCL_RTN_QTY, Z.CNCL_RTN_AMT
+		, Z.CPN1_DC_AMT, Z.REAL_ORD_AMT, Z.PNT_DC_AMT, Z.GFCD_USE_AMT, Z.ORD_DTL_NO, Z.GOODS_CD, Z.BRAND_NM, Z.SHOT_DELV_YN, Z.SELF_GOODS_YN, Z.GOODS_NM
+		, Z.GOODS_TYPE, Z.PRICE_ORG, Z.PRICE_SALE, Z.ADD_PAY_COST, Z.SYS_IMG_NM, Z.GIFT_PACK_YN, Z.WD_GB, Z.CHGER_NM, Z.CHGER_PHNNO, Z.CHGER_BASE_ADDR
+		, Z.CHGER_DTL_ADDR, Z.CHGER_RTN_MEMO, Z.CHG_MEMO, Z.WD_INVOICE_NO, Z.SHIP_COMP_CD, Z.SHIP_COMP_NM, Z.DELV_ADDR_SQ, Z.RECIP_NM, Z.RECIP_PHNNO
+		, Z.RECIP_BASE_ADDR, Z.RECIP_DTL_ADDR, Z.DELV_MEMO, Z.PG_TID, Z.PAY_MEANS, Z.PAY_MEANS_NM, Z.CARD_NM, Z.CARD_MIPS, Z.CHG_ORD_DTL_STAT
+		ORDER BY Z.ORD_CHG_SQ DESC
+	</select>
+
+	<!-- 마이페이지 교환 상품 옵션 정보 조회 -->
+	<select id="getExchangeGoodsOptionInfoList" parameterType="OrderChange" resultType="OrderChange">
+		/* TscOrderChange.getExchangeGoodsOptionInfoList */
+		SELECT Z.ORD_CHG_SQ
+			 , Z.CHG_GB
+			 , Z.ORD_DTL_NO
+			 , Z.ORG_ORD_DTL_NO
+			 , Z.ORD_DTL_STAT
+			 , Z.SHIP_COMP_CD
+			 , Z.INVOICE_NO
+			 , GROUP_CONCAT(Z.ITEM_NM ORDER BY Z.ORD_DTL_ITEM_SQ SEPARATOR '!@!')       AS ITEM_NM
+			 , GROUP_CONCAT(Z.COLOR_NM ORDER BY Z.ORD_DTL_ITEM_SQ)                      AS COLOR_NM
+			 , GROUP_CONCAT(Z.OPT_CD1 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD1
+			 , GROUP_CONCAT(Z.OPT_CD2 ORDER BY Z.ORD_DTL_ITEM_SQ)                       AS OPT_CD2
+		  FROM (SELECT OC.ORD_CHG_SQ
+					 , OC.CHG_GB
+					 , OD.ORD_DTL_NO
+					 , OD.ORG_ORD_DTL_NO
+					 , OD.ORD_DTL_STAT
+					 , OD.SHIP_COMP_CD
+					 , OD.INVOICE_NO
+					 , IFNULL((SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = IFNULL(NULLIF(ODI.OPT_CD1,'') , G1.MAIN_COLOR_CD ) AND USE_YN  = 'Y'), ODI.OPT_CD1) AS COLOR_NM
+					 , G2.GOODS_NM                      AS ITEM_NM
+					 , ODI.OPT_CD1
+					 , ODI.OPT_CD2
+					 , ODI.ORD_DTL_ITEM_SQ
+				  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.CHG_ORD_DTL_NO = OD.ORD_DTL_NO
+				  INNER JOIN TB_ORDER_DETAIL_ITEM ODI
+				  ON OD.ORD_NO = ODI.ORD_NO
+					  AND OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+				  INNER JOIN TB_GOODS G1
+				  ON OD.GOODS_CD = G1.GOODS_CD
+				  INNER JOIN TB_GOODS G2
+				  ON ODI.ITEM_CD = G2.GOODS_CD
+				 WHERE OC.ORD_CHG_SQ = #{ordChgSq}
+				   AND OCD.ORD_DTL_NO = #{ordDtlNo}
+		  ) Z
+		 GROUP BY Z.ORD_CHG_SQ, Z.CHG_GB, Z.ORD_DTL_NO, Z.ORG_ORD_DTL_NO, Z.ORD_DTL_STAT, Z.SHIP_COMP_CD, Z.INVOICE_NO
+	</select>
+	
+	<!-- 전체취소 배송비 취소 처리 -->
+	<insert id="createDeliveryFeeForAllCancel" parameterType="OrderChange">
+		/* TscOrderChange.createDeliveryFeeForAllCancel */
+		INSERT INTO TB_DELIVERY_FEE (
+		       PAY_SQ
+		     , ORD_NO
+		     , DELV_FEE_GB
+		     , DELV_FEE_CD
+		     , DELV_FEE
+		     , DELV_CPN_SQ
+		     , DELV_CPN_DC_AMT
+		     , REAL_DELV_AMT
+		     , ORD_CHG_SQ
+		     , SUPPLY_COMP_CD
+		     , DELV_USAC_YN
+		     , DELV_USAC_DT
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT PAY_SQ
+		     , ORD_NO
+		     , DELV_FEE_GB
+		     , DELV_FEE_CD
+		     , DELV_FEE
+		     , DELV_CPN_SQ
+		     , DELV_CPN_DC_AMT
+		     , REAL_DELV_AMT
+		     , #{ordChgSq}
+		     , SUPPLY_COMP_CD
+		     , DELV_USAC_YN
+		     , DELV_USAC_DT
+		     , #{regNo}
+		     , NOW()
+		     , #{updNo}
+		     , NOW()
+		  FROM TB_DELIVERY_FEE
+		 WHERE ORD_NO = #{ordNo}
+	</insert>
+
+	<!-- 취소 사은품 조회 -->
+	<select id="getCancelFreeGiftList" parameterType="OrderChange" resultType="OrderChange">
+		/* TsfOrder.getCancelFreeGiftList */
+		SELECT FG.GOODS_NM
+		     , OFV.USE_POINT
+		  FROM TB_ORD_FREEGIFT OFG
+		 INNER JOIN TB_ORD_FREEGIFT_VAL OFV
+		    ON OFG.ORD_FREEGIFT_SQ = OFV.ORD_FREEGIFT_SQ
+		 INNER JOIN TB_FREE_GOODS FG
+		    ON OFV.PRODUCT_NO = FG.PRODUCT_NO
+		   AND OFV.PRODUCT_CODE = FG.PRODUCT_CODE
+		 WHERE OFG.ORD_NO = #{ordNo}
+		   AND OFG.DEL_YN = 'Y'
+	</select>
 </mapper>
 
 

+ 123 - 46
src/main/java/com/style24/persistence/mybatis/shop/TscScm.xml

@@ -14,51 +14,10 @@
 		WHERE NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
 	</sql>
 
-	<!-- 주문/배송 > 입점업체미발주목록 -->
-	<select id="getOrderSellerUnorderList" parameterType="Order" resultType="Order">
-		/* tscScm.getOrderSellerUnorderList */
-		SELECT OD.SUPPLY_COMP_CD
-		     , (SELECT SC.SUPPLY_COMP_NM
-		        FROM   TB_SUPPLY_COMPANY SC
-		        WHERE  SC.SUPPLY_COMP_CD = OD.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
-		     , G.BRAND_CD
-		     , (SELECT B.BRAND_KNM
-		        FROM   TB_BRAND B
-		        WHERE  B.BRAND_CD = G.BRAND_CD) AS BRAND_KNM
-		     , OD.ORD_NO
-		     , OD.ORD_DTL_NO
-		     , OD.ORD_DTL_STAT
-		     , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT ) AS ORD_DTL_STAT_NM
-		     , O.CUST_NO
-		     , O.ORD_NM
-		     , DATE_FORMAT(O.ORD_DT,'%Y%m%d%H%i%S') AS ORD_DT
-		     , P.PG_GB
-		     , P.PAY_MEANS
-		     , FN_GET_CODE_NM('G014', P.PAY_MEANS  ) AS PAY_MEANS_NM
-		     , O.ORD_PHNNO
-		     , DA.RECIP_NM
-		     , DA.RECIP_PHNNO
-		     , DA.RECIP_ZIPCODE
-		     , DA.RECIP_BASE_ADDR
-		     , DA.RECIP_DTL_ADDR
-		     , G.SUPPLY_GOODS_CD
-		     , G.GOODS_CD
-		     , G.GOODS_NM
-		     , ODI.OPT_CD1
-		     , ODI.OPT_CD2
-		     , OD.ORD_QTY
-		     , OD.CNCL_RTN_QTY
-		     , OD.ORD_AMT
-		     , OD.CPN1_DC_AMT + OD.TMTB1_DC_AMT + OD.TMTB2_DC_AMT + OD.GOODS_CPN_DC_AMT + OD.CART_CPN_DC_AMT + OD.PNT_DC_AMT + OD.PRE_PNT_DC_AMT AS TOT_DC_AMT
-		     , OD.REAL_ORD_AMT
-		     , OD.INVOICE_NO
-		     , OD.SHIP_COMP_CD
-		     , OD.ORD_EXCH_GB
-		     , CAC.BANK_CD
-		     , CAC.ACCOUNT_NO
-		     , CAC.ACCOUNT_NM
-		     , 0 AS CANCEL_QTY		/*수정X > 입점발주확정 리스트 미출고수량 디폴트값을 위해 지정*/
-		     , OD.ORD_QTY - OD.CNCL_RTN_QTY AS DELV_QTY		/*수정X > 입점발주확정 리스트 출고수량 디폴트값을 위해 지정*/
+	<!-- 주문/배송 > 입점업체주문목록 -->
+	<select id="getOrderSellerUnorderListCount" parameterType="Order" resultType="int">
+		/* TscScm.getOrderSellerUnorderListCount */
+		SELECT COUNT(1)
 		FROM   TB_ORDER O
 		INNER  JOIN TB_ORDER_DETAIL OD
 		ON     O.ORD_NO = OD.ORD_NO
@@ -101,7 +60,7 @@
 		<if test="multiBrand != null and multiBrand != ''">
 		AND    G.BRAND_CD IN
 			<foreach collection="multiBrand" item="item" index="index"  open="(" close=")" separator=",">
-				#{item}
+		         #{item}
 			</foreach>
 		</if>
 		<if test="ordDtlStat != null and ordDtlStat != ''">
@@ -123,6 +82,124 @@
 		AND    OD.ORD_QTY - OD.CNCL_RTN_QTY > 0
 	</select>
 
+	<!-- 주문/배송 > 입점업체주문목록 -->
+	<select id="getOrderSellerUnorderList" parameterType="Order" resultType="Order">
+		/* tscScm.getOrderSellerUnorderList */
+		SELECT X.*
+		FROM (SELECT @rownum := @rownum + 1 AS RNUM
+		           , Z.*
+		      FROM (SELECT OD.SUPPLY_COMP_CD
+		                 , (SELECT SC.SUPPLY_COMP_NM
+		                    FROM   TB_SUPPLY_COMPANY SC
+		                    WHERE  SC.SUPPLY_COMP_CD = OD.SUPPLY_COMP_CD) AS SUPPLY_COMP_NM
+		                 , G.BRAND_CD
+		                 , (SELECT B.BRAND_KNM
+		                    FROM   TB_BRAND B
+		                    WHERE  B.BRAND_CD = G.BRAND_CD) AS BRAND_KNM
+		                 , OD.ORD_NO
+		                 , OD.ORD_DTL_NO
+		                 , OD.ORD_DTL_STAT
+		                 , FN_GET_CODE_NM('G013', OD.ORD_DTL_STAT ) AS ORD_DTL_STAT_NM
+		                 , O.CUST_NO
+		                 , O.ORD_NM
+		                 , DATE_FORMAT(O.ORD_DT,'%Y%m%d%H%i%S') AS ORD_DT
+		                 , P.PG_GB
+		                 , P.PAY_MEANS
+		                 , FN_GET_CODE_NM('G014', P.PAY_MEANS  ) AS PAY_MEANS_NM
+		                 , O.ORD_PHNNO
+		                 , DA.RECIP_NM
+		                 , DA.RECIP_PHNNO
+		                 , DA.RECIP_ZIPCODE
+		                 , DA.RECIP_BASE_ADDR
+		                 , DA.RECIP_DTL_ADDR
+		                 , G.SUPPLY_GOODS_CD
+		                 , G.GOODS_CD
+		                 , G.GOODS_NM
+		                 , ODI.OPT_CD1
+		                 , ODI.OPT_CD2
+		                 , OD.ORD_QTY
+		                 , OD.CNCL_RTN_QTY
+		                 , OD.ORD_AMT
+		                 , OD.CPN1_DC_AMT + OD.TMTB1_DC_AMT + OD.TMTB2_DC_AMT + OD.GOODS_CPN_DC_AMT + OD.CART_CPN_DC_AMT + OD.PNT_DC_AMT + OD.PRE_PNT_DC_AMT AS TOT_DC_AMT
+		                 , OD.REAL_ORD_AMT
+		                 , OD.INVOICE_NO
+		                 , OD.SHIP_COMP_CD
+		                 , OD.ORD_EXCH_GB
+		                 , CAC.BANK_CD
+		                 , CAC.ACCOUNT_NO
+		                 , CAC.ACCOUNT_NM
+		                 , OD.REG_DT
+		                 , 0 AS CANCEL_QTY		/*수정X > 입점발주확정 리스트 미출고수량 디폴트값을 위해 지정*/
+		                 , OD.ORD_QTY - OD.CNCL_RTN_QTY AS DELV_QTY		/*수정X > 입점발주확정 리스트 출고수량 디폴트값을 위해 지정*/
+		            FROM   TB_ORDER O
+		            INNER  JOIN TB_ORDER_DETAIL OD
+		            ON     O.ORD_NO = OD.ORD_NO
+		            INNER  JOIN TB_ORDER_DETAIL_ITEM ODI
+		            ON     OD.ORD_NO = ODI.ORD_NO
+		            AND    OD.ORD_DTL_NO = ODI.ORD_DTL_NO
+		            INNER  JOIN TB_PAYMENT P
+		            ON     O.ORD_NO = P.ORD_NO
+		            AND    P.PAY_GB = 'O'
+		            AND    P.PAY_STAT = 'G016_30'
+		            INNER  JOIN TB_GOODS G
+		            ON     OD.GOODS_CD = G.GOODS_CD
+		            INNER  JOIN TB_DELIVERY_ADDR DA
+		            ON     OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
+		            LEFT   OUTER JOIN TB_CUST_ACCOUNT CAC
+		            ON     CAC.CUST_NO = O.CUST_NO
+		            AND    CAC.DEFAULT_YN = 'Y'
+		            AND    CAC.DEL_YN = 'N'
+		            LEFT   OUTER JOIN (SELECT OD.ORD_NO
+		                                    , OD.DELV_FEE_CD
+		                               FROM   TB_ORDER_CHANGE_DETAIL OCD
+		                               INNER  JOIN TB_ORDER_DETAIL OD
+		                               ON     OD.ORD_DTL_NO = OCD.ORD_DTL_NO
+		                               WHERE  1=1
+		                               AND    OCD.CHG_STAT IN ('G685_10', 'G685_11', 'G685_50', 'G685_51')
+		                               AND    OCD.CHG_QTY > 0
+		                               AND    OCD.DEL_YN = 'N'
+		                               GROUP  BY OD.ORD_NO, OD.DELV_FEE_CD) OCD
+		            ON     OCD.ORD_NO = OD.ORD_NO
+		            AND    OCD.DELV_FEE_CD = OD.DELV_FEE_CD
+		            WHERE  1=1
+		            AND    DA.RECIP_BASE_ADDR IS NOT NULL
+		            AND    G.SELF_GOODS_YN = 'N'
+		            <if test='ifYn == null or ifYn == ""'>
+		            AND    OCD.ORD_NO IS NULL
+		            </if>
+		            <if test='supplyCompCd != null and supplyCompCd != ""'>
+		            AND    OD.SUPPLY_COMP_CD = #{supplyCompCd}
+		            </if>
+		            <if test="multiBrand != null and multiBrand != ''">
+		            AND    G.BRAND_CD IN
+		            	<foreach collection="multiBrand" item="item" index="index"  open="(" close=")" separator=",">
+		            		#{item}
+		            	</foreach>
+		            </if>
+		            <if test="ordDtlStat != null and ordDtlStat != ''">
+		            AND    OD.ORD_DTL_STAT = #{ordDtlStat}
+		            </if>
+		            <if test="ordNo != null and ordNo != ''">
+		            AND    O.ORD_NO = #{ordNo}
+		            </if>
+		            <if test="ordNm != null and ordNm != ''">
+		            AND    O.ORD_NM = #{ordNm}
+		            </if>
+		            <if test='goodsCd != null and goodsCd != ""'>
+		            AND    G.GOODS_CD = #{goodsCd}
+		            </if>
+		            <if test='searchDateGb != null and searchDateGb == "ordDt"'>
+		            AND    O.ORD_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		            AND    O.ORD_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		            </if>
+		            AND    OD.ORD_QTY - OD.CNCL_RTN_QTY > 0 ) Z
+		      JOIN (SELECT @rownum := 0) R
+		      ORDER  BY Z.REG_DT ASC ) X
+		WHERE  1=1
+		AND    X.RNUM BETWEEN  #{pageable.startRow} AND #{pageable.endRow}
+		ORDER  BY X.REG_DT ASC
+	</select>
+
 	<!-- 입점업체 엑셀다운용 임시테이블 삭제-->
 	<delete id="deleteEntryExcelDownTmp" parameterType="Order">
 		/* tscScm.deleteEntryExcelDownTmp */