Przeglądaj źródła

반품TO반품 임시 커밋

card007 4 lat temu
rodzic
commit
4d2e32c6e2

+ 176 - 15
src/main/java/com/style24/admin/biz/service/TsaOrderChangeService.java

@@ -1,6 +1,7 @@
 package com.style24.admin.biz.service;
 
 import java.util.Collection;
+import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
@@ -9,8 +10,10 @@ import org.springframework.transaction.annotation.Transactional;
 
 import com.gagaframework.web.parameter.GagaMap;
 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.support.message.TscMessageByLocale;
+import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.OrderChange;
 import com.style24.persistence.domain.WmsDelivery;
 
@@ -37,6 +40,9 @@ public class TsaOrderChangeService {
 	
 	@Autowired
 	private TscWmsService coreWmsService;
+	
+	@Autowired
+	private TscOrderRefundService coreOrderRefundService;
 
 	/**
 	 * 반품 TO 교환 처리
@@ -47,41 +53,196 @@ public class TsaOrderChangeService {
 	 */
 	@Transactional("shopTxnManager")
 	public void returnToExchange(OrderChange orderChange) {
-		Integer ordChgSq = orderChange.getOrdChgSq();
-		Integer ordNo = orderChange.getOrdNo();
+		int userNo = orderChange.getUserNo();
+		orderChange.setRegNo(userNo);
+		orderChange.setUpdNo(userNo);
+
 		// 1. 반품 철회 처리
-		GagaMap map = new GagaMap();
-		map.setInt("ordChgSq", ordChgSq);
-		map.setInt("ordNo", ordNo);
+		this.returnCancel(orderChange);
+
+		// 2. WMS 회수지시 여부 체크 후 회시지시대상여부 컬럼 정보 설정
+		orderChange.setWdTargetYn(this.getWdTargetYnInfo(orderChange));
+
+		// 3. WMS 반품 정보 삭제 처리
+		coreWmsService.updateWmsRecallCancel(orderChange.getOrdNo(), orderChange.getOrdChgSq());
+
+		// 4. 회수송장정보 설정
+		orderChange = this.setWdInvoiceInfo(orderChange);
+
+		// 5. 교환 접수 처리
+		coreOrderChangeService.exchReq(orderChange);
+	}
+
+	/**
+	 * 반품 TO 반품 처리
+	 *
+	 * @param orderChange
+	 * @author card007
+	 * @since 2021. 06. 21
+	 */
+	@Transactional("shopTxnManager")
+	public void returnToReturn(OrderChange orderChange) {
+		int userNo = orderChange.getUserNo();
+		orderChange.setRegNo(userNo);
+		orderChange.setUpdNo(userNo);
+
+		// 1. 반품 철회 처리
+		this.returnCancel(orderChange);
+
+		// 2. WMS 회수지시 여부 체크 후 회시지시대상여부 컬럼 정보 설정
+		orderChange.setWdTargetYn(this.getWdTargetYnInfo(orderChange));
 
+		// 3. WMS 반품 정보 삭제 처리
+		coreWmsService.updateWmsRecallCancel(orderChange.getOrdNo(), orderChange.getOrdChgSq());
+
+		// 4. 회수송장정보 설정
+		orderChange = this.setWdInvoiceInfo(orderChange);
+
+		// 5. 반품 사전 정보 설정
+		GagaMap map = this.getReturnInfo(orderChange);
+		
+		// 6. 반품 접수 처리
+		coreOrderChangeService.returnRequest(map);
+	}
+
+	/**
+	 * 교환 TO 교환 처리
+	 *
+	 * @param orderChange
+	 * @author card007
+	 * @since 2021. 06. 21
+	 */
+	@Transactional("shopTxnManager")
+	public void exchangeToExchange(OrderChange orderChange) {
 		int userNo = orderChange.getUserNo();
+		orderChange.setRegNo(userNo);
+		orderChange.setUpdNo(userNo);
 
-		coreOrderChangeService.rtnReqCancel(map, userNo);
+		// 1. 교환 철회 처리
+		this.exchangeCancel(orderChange);
 
 		// 2. WMS 회수지시 여부 체크 후 회시지시대상여부 컬럼 정보 설정
-		orderChange.setWdTargetYn("Y");
+		orderChange.setWdTargetYn(this.getWdTargetYnInfo(orderChange));
+
+		// 3. WMS 교환 정보 삭제 처리
+		coreWmsService.updateWmsRecallCancel(orderChange.getOrdNo(), orderChange.getOrdChgSq());
+
+		// 4. 회수송장정보 설정
+		orderChange = this.setWdInvoiceInfo(orderChange);
+
+		// 5. 교환 접수 처리
+		coreOrderChangeService.exchReq(orderChange);
+	}
+
+	/**
+	 * 반품 철회 처리
+	 * 
+	 * @param OrderChange
+	 * @author card007
+	 * @since 2021. 06. 21
+	 */
+	private void returnCancel(OrderChange orderChange) {
+		GagaMap map = new GagaMap();
+		map.setInt("ordChgSq", orderChange.getOrdChgSq());
+		map.setInt("ordNo", orderChange.getOrdNo());
+
+		coreOrderChangeService.rtnReqCancel(map, orderChange.getUserNo());
+	}
+
+	/**
+	 * 교환 철회 처리
+	 * 
+	 * @param OrderChange
+	 * @author card007
+	 * @since 2021. 06. 21
+	 */
+	private void exchangeCancel(OrderChange orderChange) {
+		coreOrderChangeService.exchangeCancel(orderChange);
+	}
+
+	/**
+	 * 회시지시대상여부 컬럼 정보 설정
+	 * 
+	 * @param OrderChange
+	 * @return String
+	 * @author card007
+	 * @since 2021. 06. 21
+	 */
+	private String getWdTargetYnInfo(OrderChange orderChange) {
+		String wdTargetYn = "Y";
 
 		WmsDelivery wmsDelivery = new WmsDelivery();
-		wmsDelivery.setOrderExceptionNo(ordChgSq);
+		wmsDelivery.setOrderExceptionNo(orderChange.getOrdChgSq());
 		Collection<WmsDelivery> list = coreWmsService.getWmsWithdrawRequestInfo(wmsDelivery);
 
 		if (list != null && list.size() > 0) {
 			String ifStat = list.iterator().next().getIfStat();
 			if (!"0".equals(ifStat)) {
-				orderChange.setWdTargetYn("N");
+				wdTargetYn = "N";
 			}
 		}
+		
+		return wdTargetYn;
+	}
 
-		// 3. WMS 반품 정보 삭제 처리
-		coreWmsService.updateWmsRecallCancel(ordNo, ordChgSq);
-
-		// 4. 교환 접수 처리
+	/**
+	 * 회수송장번호 설정
+	 * 
+	 * @param OrderChange
+	 * @return OrderChange
+	 * @author card007
+	 * @since 2021. 06. 21
+	 */
+	private OrderChange setWdInvoiceInfo(OrderChange orderChange) {
 		Collection<OrderChange> orderChangeDetailInfoList = coreOrderChangeService.getOrderChangeDetailInfo(orderChange);
 		if (orderChangeDetailInfoList != null && orderChangeDetailInfoList.size() > 0) {
 			orderChange.setWdInvoiceNo(orderChangeDetailInfoList.iterator().next().getWdInvoiceNo());
 			orderChange.setWdInvoiceSendYn(orderChangeDetailInfoList.iterator().next().getWdInvoiceSendYn());
 		}
-		
-		coreOrderChangeService.exchReq(orderChange);
+
+		return orderChange;
+	}
+
+	/**
+	 * 반품 정보 설정
+	 * 
+	 * @param OrderChange
+	 * @author card007
+	 * @since 2021. 06. 21
+	 */
+	@SuppressWarnings("unchecked")
+	private GagaMap getReturnInfo(OrderChange orderChange) {
+		// 1. 환불 사전 정보 조회
+		GagaMap refundPreInfo = coreOrderChangeService.getRefundPreInfo(orderChange);
+		List<Order> returnReqList = (List<Order>)refundPreInfo.get("cnclReqList");
+		String allLastCanYn = refundPreInfo.getString("allLastCanYn");
+		String supplyCompCd = refundPreInfo.getString("supplyCompCd");
+
+		// 2. 환불금액계산
+		GagaMap result = coreOrderRefundService.cnclRtnRefundAmt(returnReqList);
+
+		// 3. 주문변경 기본정보 설정
+		result.set("ordNo", orderChange.getOrdNo());					// 주문번호
+		result.setInt("custNo", orderChange.getCustNo());				// 고객번호
+		// result.set("ordChgSq", orderChange.getOrdChgSq());			// 주문변경번호
+		result.set("chgReason", orderChange.getChgReason());			// 변경사유
+		result.set("chgMemo", orderChange.getChgMemo());				// 변경메모
+		result.set("accountNo", orderChange.getAccountNo());			// 환불계좌번호
+		result.set("accountNm", orderChange.getAccountNm());			// 환불계좌예금주명
+		result.set("bankCd", orderChange.getBankCd());					// 환불계좌은행코드
+		result.setString("allLastCanYn", allLastCanYn);					// 전체 마지막 취소 여부
+		result.set("isCustomer", orderChange.getIsCustomer());			// 변경사유 (고객, 회사)
+		result.set("wdGb", orderChange.getWdGb());						// 회수방법
+		result.set("wdInvoiceNo", orderChange.getWdInvoiceNo());		// 회수송장번호
+		result.set("chgerNm", orderChange.getChgerNm());				// 변경자명
+		result.set("chgerEmail", orderChange.getChgerEmail());			// 변경자이메일주소
+		result.set("chgerZipcode", orderChange.getChgerZipcode());		// 회수지우편번호
+		result.set("chgerBaseAddr", orderChange.getChgerBaseAddr());	// 회수지기본주소
+		result.set("chgerDtlAddr", orderChange.getChgerDtlAddr());		// 회수지상세주소
+		result.set("chgerPhnno", orderChange.getChgerPhnno());			// 변경자핸드폰번호
+		result.set("chgerTelno", orderChange.getChgerTelno());			// 변경자전화번호
+		result.set("chgerRtnMemo", orderChange.getChgerRtnMemo());		// 반품메모
+
+		return result;
 	}
 }

+ 2 - 1
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -299,6 +299,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		if (order.getOrdChgSq() > 0) {
 			Collection<Order> exchangeInfoList = coreOrderChangeService.getExchangeInfo(order);
 			mav.addObject("exchangeInfoList"		, exchangeInfoList);											// 교환정보
+			mav.addObject("ordChgGb"				, order.getOrdChgGb());											// 주문변경요쳥변경구분
 		}
 		
 		String chgStat = "";
@@ -317,7 +318,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		mav.addObject("delvFeeCd"					, order.getDelvFeeCd());										// 배송정책코드
 		mav.addObject("delvFeeCdGrp"				, order.getDelvFeeCdGrp());										// 배송정책그룹코드
 		mav.addObject("orderChangeDetailList"		, orderChangeDetailList);										// 변경신청목록 (취소/반품/교환)
-		mav.addObject("orderDelvRtnAddrInfo"		, coreOrderService.getDeliveryAddrList(order));						// 배송정보
+		mav.addObject("orderDelvRtnAddrInfo"		, coreOrderService.getDeliveryAddrList(order));					// 배송정보
 		mav.addObject("TelExcNoList"				, rendererService.getAvailCommonCodeList("G095"));				// 전화번호국번
 		mav.addObject("PhnExcNoList"				, rendererService.getAvailCommonCodeList("G096"));				// (휴대전화)번호국번
 		mav.addObject("chgStat"						, chgStat);														// 변경상태

+ 6 - 5
src/main/webapp/WEB-INF/views/order/RtnReqForm.html

@@ -136,7 +136,7 @@
 				</table>
 				
 				<!--  회수지정보 -->
-				<div id="chgerAdress">
+				<div id="chgerAddress">
 					<h4>회수지 정보</h4>
 					<table class="frmStyle">
 						<colgroup>
@@ -244,6 +244,7 @@ var orderChangeDetailList 	= [[${orderChangeDetailList}]];					// 취소/반품/
 var chgStat					= [[${chgStat}]];								// 변경상태
 var payGb 					= orderInfoList[0].payGb;						// 결제수단
 var payMeans 				= orderInfoList[0].payMeans;					// 결제방법
+var pgGb					= orderInfoList[0].pgGb;						// PG구분
 var chgReason				= "";											// 변경사유코드
 var chgMemo					= "";											// 변경사유메모
 var wdGb					= "";											// 회수방법
@@ -1285,9 +1286,9 @@ var fnChangeWdGb = function(param) {
 	
 	// 회수지정보 히든 처리
 	if (wdGb == 'D') {
-		$('#chgerAdress').css('display', 'none');
+		$('#chgerAddress').css('display', 'none');
 	} else {
-		$('#chgerAdress').css('display', '');
+		$('#chgerAddress').css('display', '');
 	}
 	
 	// 환불예정금액 계산
@@ -1359,13 +1360,13 @@ $(document).ready(function() {
 		}
 		
 		// 반품TO교환 버튼
-		if (chgStat != "G685_50" && chgStat != "G685_51" && chgStat != "G685_30") {
+		if ((chgStat != "G685_50" && chgStat != "G685_51" && chgStat != "G685_30") || pgGb == 'NAVER_ORDER') {
 			$("#rtnToExcBtn").css("display", "none");
 		}
 		
 		// 직접발송일때 회수지정보 숨김처리
 		if (wdGb == "D") {
-			$("#chgerAdress").css("display", "none");
+			$("#chgerAddress").css("display", "none");
 		}
 	} else {
 		$("#rtnReqCompleteBtn").css("display", "none");