Kaynağa Gözat

Merge branch 'develop' into jmh

jmh 4 yıl önce
ebeveyn
işleme
8093174a0b

+ 9 - 39
src/main/java/com/style24/core/biz/service/TscOrderChangeService.java

@@ -783,8 +783,8 @@ public class TscOrderChangeService {
 		
 		int ordNo 							= map.getInt("ordNo");											// 주문번호
 		int custNo							= map.getInt("custNo");											// 고객번호
-		String regNo						= map.getString("regNo");										// 등록자번호
-		String updNo						= map.getString("updNo");										// 수정자번호
+		int regNo							= map.getInt("regNo");											// 등록자번호
+		int updNo							= map.getInt("updNo");											// 수정자번호
 		String pgGb							= map.getString("pgGb");										// 결제PG
 		String chgReason 					= map.getString("chgReason");									// 변경사유
 		String chgMemo 						= map.getString("chgMemo");										// 변경메모
@@ -889,14 +889,8 @@ public class TscOrderChangeService {
 				orderChange.setShipCompCd(shipCompCd);
 				orderChange.setAddPayCost(addDelvFee);
 				orderChange.setAddPayAmt(0);
-				orderChange.setRegNo(custNo);
-				orderChange.setUpdNo(custNo);
-
-				// 네이버페이 배치 등록자번호, 수정자 번호
-				if(StringUtils.isNotBlank(pgGb) && TscConstants.PgGb.NAVER_ORDER.value().equals(pgGb)) {
-					orderChange.setRegNo(Integer.parseInt(regNo));
-					orderChange.setUpdNo(Integer.parseInt(updNo));
-				}
+				orderChange.setRegNo(regNo);
+				orderChange.setUpdNo(updNo);
 
 				orderChangeDao.createOrderChange(orderChange);
 
@@ -911,14 +905,8 @@ public class TscOrderChangeService {
 				deliveryFee.setDelvFee(spanTotRtnDelvFee);
 				deliveryFee.setDelvGfcdUseAmt(delvGfcdUseAmt);
 				deliveryFee.setRealDelvAmt(realDelvAmt);
-				deliveryFee.setRegNo(custNo);
-				deliveryFee.setUpdNo(custNo);
-
-				// 네이버페이 배치 등록자번호, 수정자 번호
-				if(StringUtils.isNotBlank(pgGb) && TscConstants.PgGb.NAVER_ORDER.value().equals(pgGb)) {
-					deliveryFee.setRegNo(Integer.parseInt(regNo));
-					deliveryFee.setUpdNo(Integer.parseInt(updNo));
-				}
+				deliveryFee.setRegNo(regNo);
+				deliveryFee.setUpdNo(updNo);
 
 				// 2021.06.30 반품TO반품 추가배송비는 기존정보로 수정 처리
 				// 기존 추가배송비X -> 반품TO반품 추가배송비O 인 경우 처리 필요
@@ -943,14 +931,8 @@ public class TscOrderChangeService {
 						changeDetailPo.setOrdDtlNo(vo.getOrdDtlNo());
 						changeDetailPo.setChgQty(vo.getOrdCanChgQty());
 						changeDetailPo.setChgStat(chgStat);
-						changeDetailPo.setRegNo(custNo);
-						changeDetailPo.setUpdNo(custNo);
-
-						// 네이버페이 배치 등록자번호, 수정자 번호
-						if(StringUtils.isNotBlank(pgGb) && TscConstants.PgGb.NAVER_ORDER.value().equals(pgGb)) {
-							changeDetailPo.setRegNo(Integer.parseInt(regNo));
-							changeDetailPo.setUpdNo(Integer.parseInt(updNo));
-						}
+						changeDetailPo.setRegNo(regNo);
+						changeDetailPo.setUpdNo(updNo);
 
 						orderChangeDao.createOrderChangeDetail(changeDetailPo);
 						orderChangeDao.createOrderChangeDetailHst(changeDetailPo);
@@ -981,16 +963,9 @@ public class TscOrderChangeService {
 				// 2021.06.09 계좌번호 암호화
 				//refundOrder.setRaNo(accountNo);
 				refundOrder.setRaNo(CryptoUtils.encryptAES(accountNo));
-				
-				
 				refundOrder.setRaNm(accountNm);
 				refundOrder.setRaBank(bankCd);
-				refundOrder.setRegNo(custNo);
-
-				// 네이버페이 배치 등록자번호
-				if(StringUtils.isNotBlank(pgGb) && TscConstants.PgGb.NAVER_ORDER.value().equals(pgGb)) {
-					refundOrder.setRegNo(Integer.parseInt(regNo));
-				}
+				refundOrder.setRegNo(regNo);
 
 				orderChangeDao.createRefund(refundOrder);
 			}
@@ -1166,11 +1141,6 @@ public class TscOrderChangeService {
 			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
 		}
 
-		// 제휴몰 주문은 추가 결제 금액이 있어도 반품접수로 처리
-		if (payment != null && TscConstants.PayMeans.EXTMALL.value().equals(payment.getPayMeans())) {
-			orderChangeStat = TscConstants.OrderChangeStat.EXCHANGE.value();
-		}
-
 		// 선발송여부 설정
 		if (StringUtils.isNotBlank(excReq.getWdBfSendYn())) {
 			wdBfSendYn = excReq.getWdBfSendYn();

+ 83 - 77
src/main/java/com/style24/core/biz/service/TscOrderRefundService.java

@@ -3,11 +3,9 @@ package com.style24.core.biz.service;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.gagaframework.web.parameter.GagaMap;
-import com.style24.core.biz.dao.TscOrderChangeDao;
 import com.style24.persistence.domain.Order;
 
 import lombok.extern.slf4j.Slf4j;
@@ -22,9 +20,6 @@ import lombok.extern.slf4j.Slf4j;
 @Slf4j
 public class TscOrderRefundService {
 
-	@Autowired
-	private TscOrderChangeDao orderChangeDao;
-
 	/**
 	 * 취소,반품 환불금액 계산 (admin, front) (백업) (단품단위)
 	 * @param Order
@@ -36,34 +31,33 @@ public class TscOrderRefundService {
 		GagaMap mav = new GagaMap();
 
 		// 1. 변수설정
-		int spanPayAmt				= 0; // 총 결제 금액
-		int spanSumRealOrdAmt		= 0; // 상품 실결제 금액
-		int spanSumDeliveryFee		= 0; // 배송금액
-		int spanRtnSumDeliveryFee 	= 0; // 반품배송금액
-		int spanExcSumDeliveryFee 	= 0; // 교환배송금액
-		int spanOrdAmt				= 0; // 주문 상품 금액
-		int spanOrgCnclRtnAmt		= 0; // 주문 기취소 금액
-		int spanCnclRtnAmt			= 0; // 취소 상품 금액
-		int spanTotPntDcAmt			= 0; // 취소 사용 포인트
-		int spanPntDcAmt			= 0; // 고객 포인트
-		int spanPrePntDcAmt			= 0; // 상품 선포인트
-		int spanCpnDcAmt			= 0; // 취소 사용 쿠폰금액
-		int spanCpn1DcAmt			= 0; // 즉시할인쿠폰
-		int spanGoodsCpnDcAmt		= 0; // 상품쿠폰
-		int spanCartCpnDcAmt		= 0; // 장바구니쿠폰
-		int spanDelvCpnDcAmt		= 0; // 배송비쿠폰
-		int spanRefundDelvCpnAmt	= 0; // 배송비쿠폰 환불 금액
-		int spanTmtbDcAmt			= 0; // 취소 다다익선 금액
-		int spanTmtb1DcAmt			= 0; // 수량할인
-		int spanTmtb2DcAmt			= 0; // 금액할인
-		int spanGfcdUseAmt			= 0; // 취소 고객 상품권 금액
-		int spanDelvGfcdUseAmt		= 0; // 취소 고객 배송비 상품권 금액
-		int spanRealCnclRtnAmt		= 0; // 취소 상품 실결제 금액
-		int spanTotDeliveryFee		= 0; // 환불 배송 금액
-		int spanRefundAmt			= 0; // 환불 금액 합계
-		int spanSavePntAmt			= 0; // 2021.08.04 적립예정포인트 환수금액
-		
-		int sumDeliveryFee			= 0; // 배송금액 (전체 취소시에 배송금액도 같이 환불)
+		int spanPayAmt						= 0;					// 총 결제 금액
+		int spanSumRealOrdAmt				= 0;					// 상품 실결제 금액
+		int spanSumDeliveryFee				= 0;					// 배송금액
+		int spanRtnSumDeliveryFee 			= 0;					// 반품배송금액
+		int spanExcSumDeliveryFee 			= 0;					// 교환배송금액
+		int spanOrdAmt						= 0;					// 주문 상품 금액
+		int spanOrgCnclRtnAmt				= 0;					// 주문 기취소 금액
+		int spanCnclRtnAmt					= 0;					// 취소 상품 금액
+		int spanTotPntDcAmt					= 0;					// 취소 사용 포인트
+		int spanPntDcAmt					= 0;					// 고객 포인트
+		int spanPrePntDcAmt					= 0;					// 상품 선포인트
+		int spanCpnDcAmt					= 0;					// 취소 사용 쿠폰금액
+		int spanCpn1DcAmt					= 0;					// 즉시할인쿠폰
+		int spanGoodsCpnDcAmt				= 0;					// 상품쿠폰
+		int spanCartCpnDcAmt				= 0;					// 장바구니쿠폰
+		int spanDelvCpnDcAmt				= 0;					// 배송비쿠폰
+		int spanRefundDelvCpnAmt			= 0;					// 배송비쿠폰 환불 금액
+		int spanTmtbDcAmt					= 0;					// 취소 다다익선 금액
+		int spanTmtb1DcAmt					= 0;					// 수량할인
+		int spanTmtb2DcAmt					= 0;					// 금액할인
+		int spanGfcdUseAmt					= 0;					// 취소 고객 상품권 금액
+		int spanDelvGfcdUseAmt				= 0;					// 취소 고객 배송비 상품권 금액
+		int spanRealCnclRtnAmt				= 0;					// 취소 상품 실결제 금액
+		int spanTotDeliveryFee				= 0;					// 환불 배송 금액
+		int spanRefundAmt					= 0;					// 환불 금액 합계
+		int spanSavePntAmt					= 0;					// 2021.08.04 적립예정포인트 환수금액
+		int sumDeliveryFee					= 0;					// 배송금액 (전체 취소시에 배송금액도 같이 환불)
 		
 		List<Order> cancelOrderRefundList 	= new ArrayList<>();	// 주문환불금액목록
 		List<Order> cancelDelvRefundList 	= new ArrayList<>();	// 주문환불배송금액목록
@@ -87,6 +81,8 @@ public class TscOrderRefundService {
 		delvObj.setDelvFeeCd(cnclRtnList.get(k).getDelvFeeCd());
 		delvObj.setLastCanYn(cnclRtnList.get(k).getLastCanYn());
 		delvObj.setAllDelvCanYn(cnclRtnList.get(k).getAllDelvCanYn());
+		// 2021.09.27 delvYn 최최 담기 배송비관련
+		delvObj.setDelvYn(cnclRtnList.get(k).getDelvYn());
 		cancelDelvRefundList.add(delvObj);
 		
 		// 3. 취소신청수량 정보를 취소 환불 금액 계산
@@ -158,7 +154,7 @@ public class TscOrderRefundService {
 			// 3.7 주문상세상태체크
 			orderObj.setOrdDtlStat(oneData.getOrdDtlStat());
 			orderObj.setOrdDtlStatNm(oneData.getOrdDtlStatNm());
-			orderObj.setLastCanYn(oneData.getLastCanYn()); // 전체취소 여부 (기존의 취소 또는 출고, 반품, 교환 의 경우에는 전체취소 불가능)
+			orderObj.setLastCanYn(oneData.getLastCanYn());
 			orderObj.setAllDelvCanYn(oneData.getAllDelvCanYn());
 			orderObj.setDelvYn(oneData.getDelvYn());
 			
@@ -248,19 +244,19 @@ public class TscOrderRefundService {
 		for (int i=0 ; i<cancelDelvRefundList.size() ; i++) {
 			Order obj = cancelDelvRefundList.get(i);
 
-			// 주문금액 - 기취소 금액 - 취소요청금액
+			// 남은금액 : 주문금액 - 기취소 금액 - 취소요청금액
 			int leftOrdAmt = obj.getOrdAmt() - obj.getOrgCnclRtnAmt() - obj.getCnclRtnAmt();
 
 			// 취소금액이 있을때 처리
 			if (obj.getCnclRtnAmt() > 0) {
-				// 4.1 무료배송비용 > (주문금액 - 취소금액)
+				// 4.1 무료배송비용 > (주문금액 - 취소금액) : 배송비 허들 깨짐
 				if (obj.getMinOrdAmt() > leftOrdAmt) {
-					// 4.2 주문시 배송비가 존재하면 추가 배송비 없음
+					// 4.1.1 주문시 배송비가 존재하면 추가 배송비 없음
 					if (obj.getDelvFee() > 0) {
 						obj.setAddDelvFeeYn("N");
 						obj.setAddDelvFee(0);
 						
-						// 4.2.1 전체취소시 배송비 환불
+						// 전체취소시 배송비 환불
 						if (leftOrdAmt == 0) {
 							if ("Y".equals(obj.getLastCanYn())) {
 								sumDeliveryFee += obj.getDelvFee();				// 전체취소 시 배송금액도 같이 환불
@@ -268,52 +264,36 @@ public class TscOrderRefundService {
 								spanDelvGfcdUseAmt += obj.getDelvGfcdUseAmt();	// 전체취소 시 사용 배송비 상품권 금액 환불
 							}
 						}
-					} else {
-						// 4.3 주문금액 - 취소금액 == 0 이면 전체취소 이므로 배송비 발생 안함
+					}
+					// 4.1.2 무료배송비
+					else {
+						// 남은금액이 0 이면 전체취소/반품 이므로 추가배송비(허들깨짐) 발생 안함
 						// * 2020.12.28 
 						// * case : 배송정책 기준으로 1,2 상품 주문 후 1번 출고 후 1번반품 2번취소 할 경우 전체 취소 가 아니므로 배송비 부과 있을지 모르겠음 주문업체 단위로 배송되기 때문에 발생하지 않을것 같음
 						if (leftOrdAmt == 0) {
 							// 2021.03.29 delvFeeCd별 기존 출고 여부 확인
+							// 미출고(취소)
 							if("N".equals(obj.getDelvYn())) {
-								// 전체 취소 여부
-								if ("N".equals(obj.getLastCanYn())) {
-									obj.setAddDelvFeeYn("Y");
-								} else {
-									obj.setAddDelvFeeYn("N");
-								}
-								// 취소는 주문 금액 - 취소 금액이 0이면 취소는 추가배송비 여부가 없음.
+								// 취소는 남은금액이 0이면 취소는 추가배송비 여부가 없음.
 								obj.setAddDelvFee(0);
-							} else {
-								// if ("N".equals(obj.getLastCanYn())) {
-								// 	obj.setAddDelvFeeYn("Y");
-								// 	obj.setAddDelvFee(obj.getOrgDelvFee());
-								// } else {
-								// 	// 4.4 전체취소의 경우에 해당
-								// 	obj.setAddDelvFeeYn("N");
-								// 	obj.setAddDelvFee(0);
-								// }
-
-								// 2021.09.08 card007 배송비정책 기준 으로 변경
-								if ("Y".equals(obj.getAllDelvCanYn())) {
-									obj.setAddDelvFeeYn("N");
-									obj.setAddDelvFee(0);
-								} else {
-									obj.setAddDelvFeeYn("Y");
-									obj.setAddDelvFee(obj.getOrgDelvFee());
-								}
+								obj.setAddDelvFeeYn("N");
 							}
-						} else {
-							// 4.5 추가배송비 발생 (취소신청화면에서 대부분 아래의 조건에 해당)
-							if ("Y".equals(obj.getAllDelvCanYn())) {
+							// 출고(반품)
+							else {
+								// 반품에 남은금액이 0이면 배송비 허들이 깨지지 않음
 								obj.setAddDelvFeeYn("N");
 								obj.setAddDelvFee(0);
-							} else {
-								obj.setAddDelvFeeYn("Y");
-								obj.setAddDelvFee(obj.getOrgDelvFee());
 							}
 						}
+						// 남은금액이 0보다 크면 부분취소/반품 이므로 추가배송비(허들깨짐) 발생 함
+						else {
+							obj.setAddDelvFeeYn("Y");
+							obj.setAddDelvFee(obj.getOrgDelvFee());
+						}
 					}
-				} else {
+				}
+				// 4.2 무료배송비용 <= (주문금액 - 취소금액) : 배송비 허들 안깨짐
+				else {
 					obj.setAddDelvFeeYn("N");
 					obj.setAddDelvFee(0);
 				}
@@ -335,16 +315,13 @@ public class TscOrderRefundService {
 		// 관리자 화면에서 사용하는 환불 칼럼 정보
 		// 환불금액표시
 		// 2021.05.18 배송비쿠폰 사용금액 제외 후 환불금액 계산 처리
-		log.info("spanSumRealOrdAmt ::: {}", spanSumRealOrdAmt);
-		log.info("spanSumDeliveryFee ::: {}", spanSumDeliveryFee);
-		log.info("spanRtnSumDeliveryFee ::: {}", spanRtnSumDeliveryFee);
-		
+
 		spanPayAmt 			= spanSumRealOrdAmt + spanSumDeliveryFee - spanDelvCpnDcAmt;
 		spanTotPntDcAmt 	= spanPntDcAmt + spanPrePntDcAmt;
 		spanCpnDcAmt 		= spanCpn1DcAmt + spanGoodsCpnDcAmt + spanCartCpnDcAmt + spanRefundDelvCpnAmt;
 		spanTmtbDcAmt 		= spanTmtb1DcAmt + spanTmtb2DcAmt;
 		spanRefundAmt 		= (spanRealCnclRtnAmt + sumDeliveryFee) - spanRefundDelvCpnAmt - spanTotDeliveryFee;
-		
+
 		// 2021.07.01 관리자 주문상품금액 기취소금액 포함 로직 추가
 		spanOrdAmt			= spanOrdAmt - spanOrgCnclRtnAmt;
 
@@ -378,6 +355,35 @@ public class TscOrderRefundService {
 		mav.set("spanRefundAmt"			, spanRefundAmt);			//환불 금액 합계
 		mav.set("spanSavePntAmt"		, spanSavePntAmt);			//적립예정 포인트 환수금액
 
+		// 로그 생성
+		log.info("spanPayAmt(총 결제 금액) ::: {}"						, spanSumRealOrdAmt);
+		log.info("spanSumRealOrdAmt(상품 실결제 금액) ::: {}"				, spanSumRealOrdAmt);
+		log.info("spanSumDeliveryFee(배송금액) ::: {}"					, spanSumDeliveryFee);
+		log.info("spanOrdAmt(주문 상품 금액) ::: {}"						, spanOrdAmt);
+		log.info("spanCnclRtnAmt(취소 상품 금액) ::: {}"					, spanCnclRtnAmt);
+		log.info("spanTotPntDcAmt(취소 사용 포인트) ::: {}"				, spanTotPntDcAmt);
+		log.info("spanPntDcAmt(고객 포인트) ::: {}"						, spanPntDcAmt);
+		log.info("spanPrePntDcAmt(상품 선포인트) ::: {}"					, spanPrePntDcAmt);
+		log.info("spanCpnDcAmt(취소 사용 쿠폰금액) ::: {}"					, spanCpnDcAmt);
+		log.info("spanCpn1DcAmt(즉시할인쿠폰) ::: {}"						, spanCpn1DcAmt);
+		log.info("spanGoodsCpnDcAmt(상품쿠폰) ::: {}"						, spanGoodsCpnDcAmt);
+		log.info("spanCartCpnDcAmt(장바구니쿠폰) ::: {}"					, spanCartCpnDcAmt);
+		log.info("spanDelvCpnDcAmt(배송비쿠폰) ::: {}"					, spanDelvCpnDcAmt);
+		log.info("spanRefundDelvCpnAmt(취소 배송비쿠폰 금액) ::: {}"		, spanRefundDelvCpnAmt);
+		log.info("spanTmtbDcAmt(취소 다다익선 금액) ::: {}"				, spanTmtbDcAmt);
+		log.info("spanTmtb1DcAmt(수량할인) ::: {}"						, spanTmtb1DcAmt);
+		log.info("spanTmtb2DcAmt(금액할인) ::: {}"						, spanTmtb2DcAmt);
+		log.info("spanGfcdUseAmt(취소 고객 상품권 금액) ::: {}"				, spanGfcdUseAmt);
+		log.info("spanDelvGfcdUseAmt(취소 고객 배송비 상품권 금액) ::: {}"	, spanDelvGfcdUseAmt);
+		log.info("spanRealCnclRtnAmt(취소 상품 실결제 금액) ::: {}"			, spanRealCnclRtnAmt);
+		log.info("sumDeliveryFee(배송비 합계 금액) ::: {}"					, sumDeliveryFee);
+		log.info("spanTotDeliveryFee(추가 배송 금액) ::: {}"				, spanTotDeliveryFee);
+		log.info("spanTotRtnDelvFee(추가 반품 배송 금액) ::: {}"			, spanRtnSumDeliveryFee);
+		log.info("spanTotExcDelvFee(추가 교환 배송 금액) ::: {}"			, spanExcSumDeliveryFee);
+		log.info("spanRefundAmt(취소 상품 실결제 금액) ::: {}"				, spanRefundAmt);
+		log.info("spanRealCnclRtnAmt(환불 금액 합계) ::: {}"				, spanRealCnclRtnAmt);
+		log.info("spanSavePntAmt(적립예정 포인트 환수금액) ::: {}"			, spanSavePntAmt);
+
 		return mav;
 	}
 }

+ 45 - 28
src/main/java/com/style24/persistence/mybatis/shop/TscFreegift.xml

@@ -6,34 +6,51 @@
 	<select id="getFreeGiftGoodsApplyAmt" parameterType="Order" resultType="Order">
 		/* freegift.getFreeGiftGoodsApplyAmt */
 		WITH GOODS_DATA AS (
-			SELECT CA.GOODS_CD
-			     , G.SUPPLY_COMP_CD
-			     , G.BRAND_CD
-			     , CA.GOODS_QTY 
-			     , FN_GET_APPLY_CPN1_PRICE(CA.GOODS_CD, 'P') AS CURR_PRICE -- 즉시할인 쿠폰 적용가
-			     , OP.ADD_PRICE -- 옵션가
-			     , G.GOODS_TYPE
-			     , CA.CART_SQ
-			FROM   TB_CART CA
-			INNER  JOIN TB_CART_DETAIL CD
-			ON     CA.CART_SQ = CD.CART_SQ
-			INNER  JOIN TB_GOODS G
-			ON     CA.GOODS_CD = G.GOODS_CD
-			LEFT   OUTER JOIN TB_OPTION OP
-			ON     G.GOODS_CD = OP.GOODS_CD
-			AND    CD.OPT_CD = OP.OPT_CD
-			WHERE  1=1
-			<if test="custNo == 0">
-			AND    CA.CUST_NO = 0
-			AND    CA.JSESSION_ID = #{jsessionId}
-			</if>
-			<if test="custNo != 0">
-			AND    CA.CUST_NO = #{custNo}
-			</if>
-			AND    CA.CART_SQ IN
-			<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
-				#{item}
-			</foreach>
+			SELECT A.GOODS_CD
+			     , A.SUPPLY_COMP_CD
+			     , A.BRAND_CD
+			     , SUM(A.GOODS_QTY) AS GOODS_QTY
+			     , FN_GET_APPLY_CPN1_PRICE(A.GOODS_CD, #{frontGb}) AS CURR_PRICE -- 즉시할인 쿠폰 적용가 
+			     , A.ADD_PRICE
+			FROM (
+				SELECT CA.GOODS_CD
+				     , G.SUPPLY_COMP_CD
+				     , G.BRAND_CD
+				     , CA.GOODS_QTY 
+				     , SUM(OP.ADD_PRICE) AS ADD_PRICE -- 옵션가
+				     , G.GOODS_TYPE
+				     , CA.CART_SQ
+				FROM   TB_CART CA
+				INNER  JOIN TB_CART_DETAIL CD
+				ON     CA.CART_SQ = CD.CART_SQ
+				INNER  JOIN TB_GOODS G
+				ON     CA.GOODS_CD = G.GOODS_CD
+				LEFT   OUTER JOIN TB_OPTION OP
+				ON     G.GOODS_CD = OP.GOODS_CD
+				AND    CD.OPT_CD = OP.OPT_CD
+				WHERE  1=1
+				<if test="custNo == 0">
+				AND    CA.CUST_NO = 0
+				AND    CA.JSESSION_ID = #{jsessionId}
+				</if>
+				<if test="custNo != 0">
+				AND    CA.CUST_NO = #{custNo}
+				</if>
+				AND    CA.CART_SQ IN
+				<foreach collection="cartSqArr" item="item" index="index"  open="(" close=")" separator=",">
+					#{item}
+				</foreach>
+				GROUP BY CA.GOODS_CD
+				     , G.SUPPLY_COMP_CD
+				     , G.BRAND_CD
+				     , CA.GOODS_QTY
+				     , G.GOODS_TYPE
+				     , CA.CART_SQ
+			) A
+			GROUP BY A.GOODS_CD
+			    , A.SUPPLY_COMP_CD
+			    , A.BRAND_CD
+			    , A.ADD_PRICE
 		)
 		SELECT FGG.FREEGIFT_SQ
 		     , FGG.GOODS_CD

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/wms/TscWmsDelivery.xml

@@ -103,7 +103,7 @@
 			, IsCancel = CASE WHEN (Qty - Cqty) = #{itemQty} THEN 1    ELSE IsCancel END 
 			, Cqty     = CASE WHEN (SELECT COUNT(*) FROM istyle24_Wmsif.dbo.TB_IF_RecallExceptionItem B WHERE B.OrderDtlNo = #{ordDtlNo} AND B.ProductNo = #{productNo} AND B.SKUCode = #{optCd}   AND B.ReasonCode IN ('08','10') ) > 0 THEN Cqty ELSE  Cqty + #{itemQty} END
 			, DateLastModified = GETDATE()
-			, ExceptionDesc = '배송취소'
+			, ExceptionDesc = 'istyle취소'
 			WHERE 1=1
 			  <if test='ordDtlNo != null and ordDtlNo != ""'>
 			  AND OrderDtlNo = #{ordDtlNo}