Преглед изворни кода

교환 옵션 optCd2 -> optCd로 변경 커밋

card007 пре 4 година
родитељ
комит
ea6bec6e08

+ 39 - 29
src/main/java/com/style24/admin/biz/web/TsaOrderChangeController.java

@@ -1,8 +1,10 @@
 package com.style24.admin.biz.web;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -412,8 +414,11 @@ public class TsaOrderChangeController extends TsaBaseController {
 	 */
 	@GetMapping("/rtn/req/form")
 	public ModelAndView rtnReqForm(Order order) {
-
 		ModelAndView mav = new ModelAndView();
+		List<Integer> ordDtlNoList = new ArrayList<>();
+		List<Integer> chgQtyList = new ArrayList<>();
+		String ordChgGb = order.getOrdChgGb();
+		String chgStat = "";
 
 		// 1. 반품가능 주문상세상탭값 설정
 		String[] ordDtlStatArr = new String[4];
@@ -429,26 +434,18 @@ public class TsaOrderChangeController extends TsaBaseController {
 		List<Order> orderChangeDetailList 			= coreOrderChangeService.getOrderChangeDetailList(order);
 		Collection<Order> orderInfoList 			= coreOrderService.getOrderInfoList(order);
 
-		String chgStat = "";
+		// 반품상세화면 처리
 		if (order.getOrdChgSq() > 0) {
-			// 교환TO교환 처리 시 미착 수량 설정
 			Collection<Order> returnDetailList;
-			String ordChgGb = order.getOrdChgGb();
 
+			// 반품TO반품 처리 시 미착 수량 설정
 			if (StringUtils.isNotBlank(ordChgGb) && TscConstants.ChangeGb.RETURN_TO_RETURN.value().equals(ordChgGb.toUpperCase())) {
 				returnDetailList = coreOrderChangeService.getNonArrivalInfo(order);
 			} else {
 				returnDetailList = orderChangeDetailList;
 			}
 
-			// Collection<Order> exchangeInfoList = coreOrderChangeService.getExchangeInfo(order);
-			// mav.addObject("exchangeInfoList"		, exchangeInfoList);											// 교환정보
-			mav.addObject("ordChgGb"				, StringUtils.isBlank(ordChgGb) ? "" : ordChgGb.toUpperCase());	// 주문변경요쳥변경구분
-			mav.addObject("recallExceptionInfo"		, coreOrderChangeService.getRecallExceptionInfo(order));		// 회수 예외 정보
-
 			// 반품상세 정보 설정
-			List<Integer> ordDtlNoList = new ArrayList<>();
-			List<Integer> chgQtyList = new ArrayList<>();
 			if (returnDetailList != null && returnDetailList.size() > 0) {
 				for (Order tmp : returnDetailList) {
 					if (tmp.getChgQty() > 0 && !ordDtlNoList.contains(tmp.getOrdDtlNo())) {
@@ -460,23 +457,35 @@ public class TsaOrderChangeController extends TsaBaseController {
 						}
 					}
 				}
+			}
 
-				List<Order> tmpList = new ArrayList<>();
-				for (Order tmp : cancelRequestTargetList) {
-					if(ordDtlNoList.contains(tmp.getOrdDtlNo())) {
-						int chgQty = chgQtyList.get(ordDtlNoList.indexOf(tmp.getOrdDtlNo()));
-						tmp.setChgQty(chgQty);
-
-						if (StringUtils.isNotBlank(ordChgGb) && TscConstants.ChangeGb.RETURN_TO_RETURN.value().equals(ordChgGb.toUpperCase())) {
-							tmp.setOrdCanChgQty(chgQty);
-						}
+			// 회수 예외 정보 설정
+			mav.addObject("recallExceptionInfo"		, coreOrderChangeService.getRecallExceptionInfo(order));
+		}
+		// 확정후품절 처리
+		else if (TscConstants.ChangeGb.SOLDOUT_AFTER_DECISION.value().equals(ordChgGb)) {
+			ordDtlNoList = Arrays.stream(order.getOrdDtlNoArr()).boxed().collect(Collectors.toList());
+			chgQtyList = Arrays.stream(order.getCnclRtnReqQtyArr()).boxed().collect(Collectors.toList());
+		}
 
-						tmpList.add(tmp);
+		// 반품 대상 목록 설정
+		if (ordDtlNoList.size() > 0) {
+			List<Order> tmpList = new ArrayList<>();
+			for (Order tmp : cancelRequestTargetList) {
+				if (ordDtlNoList.contains(tmp.getOrdDtlNo())) {
+					int chgQty = chgQtyList.get(ordDtlNoList.indexOf(tmp.getOrdDtlNo()));
+					tmp.setChgQty(chgQty);
+
+					// 반품TO반품, 확정후품절 수량 설정
+					if (StringUtils.isNotBlank(ordChgGb) && (TscConstants.ChangeGb.RETURN_TO_RETURN.value().equals(ordChgGb.toUpperCase()) || TscConstants.ChangeGb.SOLDOUT_AFTER_DECISION.value().equals(ordChgGb.toUpperCase()))) {
+						tmp.setOrdCanChgQty(chgQty);
 					}
-				}
 
-				cancelRequestTargetList = tmpList;
+					tmpList.add(tmp);
+				}
 			}
+
+			cancelRequestTargetList = tmpList;
 		}
 
 		// 2021.01.26 취소요청 화면, 취소요청정보확인 화면 통합
@@ -493,6 +502,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		mav.addObject("TelExcNoList"				, rendererService.getAvailCommonCodeList("G095"));				// 전화번호국번
 		mav.addObject("PhnExcNoList"				, rendererService.getAvailCommonCodeList("G096"));				// (휴대전화)번호국번
 		mav.addObject("chgStat"						, chgStat);														// 변경상태
+		mav.addObject("ordChgGb"					, StringUtils.isBlank(ordChgGb) ? "" : ordChgGb.toUpperCase());	// 주문변경요쳥변경구분
 
 		mav.setViewName("order/RtnReqForm");
 		
@@ -525,10 +535,8 @@ public class TsaOrderChangeController extends TsaBaseController {
 		GagaMap refundPreInfo 		= coreOrderChangeService.getRefundPreInfo(rtnReq);
 		List<Order> cnclReqList 	= (List<Order>) refundPreInfo.get("cnclReqList");
 		
-		GagaMap map = new GagaMap();
-		
 		// 3. 환불예상금액계산
-		map = coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
+		GagaMap map = coreOrderRefundService.cnclRtnRefundAmt(cnclReqList);
 		
 		// 4. 주문변경기본정보설정
 		map.set("ordNo"						, rtnReq.getOrdNo());						// 주문번호
@@ -763,7 +771,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 	@GetMapping("/exchange/request/form")
 	public ModelAndView exchangeRequestFrom(Order order) {
 		ModelAndView mav = new ModelAndView();
-		
+		String ordChgGb = order.getOrdChgGb();
 		Integer ordChgSq = order.getOrdChgSq();
 
 		if (ordChgSq == null || ordChgSq == 0) {
@@ -788,7 +796,6 @@ public class TsaOrderChangeController extends TsaBaseController {
 
 			// 교환TO교환 처리 시 미착 수량 설정
 			Collection<Order> exchangeDetailList;
-			String ordChgGb = order.getOrdChgGb();
 			if (StringUtils.isNotBlank(ordChgGb) && TscConstants.ChangeGb.EXCHANGE_TO_EXCHANGE.value().equals(ordChgGb.toUpperCase())) {
 				exchangeDetailList = coreOrderChangeService.getNonArrivalInfo(order);
 			} else {
@@ -825,13 +832,15 @@ public class TsaOrderChangeController extends TsaBaseController {
 			}
 
 			String chgOrdDtlStat = "";
+			String wdGb = "";
 			if (exchangeInfoList != null && exchangeInfoList.size() > 0) {
 				chgOrdDtlStat = exchangeInfoList.iterator().next().getOrdDtlStat();
+				wdGb = exchangeInfoList.iterator().next().getWdGb();
 			}
 
 			mav.addObject("exchangeInfoList"		, exchangeInfoList);											// 교환정보
-			mav.addObject("ordChgGb"				, StringUtils.isBlank(ordChgGb) ? "" : ordChgGb.toUpperCase());	// 주문변경요쳥변경정보
 			mav.addObject("chgOrdDtlStat"			, chgOrdDtlStat);												// 교환상품상세상태
+			mav.addObject("wdGb"					, wdGb);														// 회수방법
 			mav.addObject("recallExceptionInfo"		, coreOrderChangeService.getRecallExceptionInfo(order));		// 회수 예외 정보
 		}
 
@@ -850,6 +859,7 @@ public class TsaOrderChangeController extends TsaBaseController {
 		mav.addObject("TelExcNoList"				, rendererService.getAvailCommonCodeList("G095"));				// 전화번호국번
 		mav.addObject("PhnExcNoList"				, rendererService.getAvailCommonCodeList("G096"));				// (휴대전화)번호국번
 		mav.addObject("chgStat"						, chgStat);														// 변경상태
+		mav.addObject("ordChgGb"					, StringUtils.isBlank(ordChgGb) ? "" : ordChgGb.toUpperCase());	// 주문변경요쳥변경정보
 
 		mav.setViewName("order/ExchangeRequestForm");
 

+ 14 - 11
src/main/webapp/WEB-INF/views/order/ExchangeRequestForm.html

@@ -95,7 +95,7 @@
 				</table>
 				
 				<h4 class="chger">회수지 정보</h4>
-				<button style="float: right" type="button" class="btn btn-success" th:if="${#strings.isEmpty(ordChgGb) and ordChgSq > 0 and wdGb == 'W' and (chgStat == 'G685_20' or chgStat == 'G685_21')}" onclick="fnChangeChgerInfo();">회수지 수정</button>
+				<button style="float: right" type="button" class="btn btn-success" th:if="${(#strings.isEmpty(ordChgGb) or ordChgGb == 'G681_50') and ordChgSq > 0 and wdGb == 'W' and (chgStat == 'G685_20' or chgStat == 'G685_21')}" onclick="fnChangeChgerInfo();">회수지 수정</button>
 				<table class="frmStyle chger">
 					<colgroup>
 						<col style="width:160px;" />
@@ -113,7 +113,7 @@
 							<td colspan="3">
 								<input type="text" name ="chgerZipcode" class="w100" readonly="readonly"/>
 								<button type="button" class="btn btn-info" th:if="${#strings.isEmpty(ordChgGb) and (ordChgSq == 0 or chgStat == 'G685_20' or chgStat == 'G685_21')}" onclick="fnOpenDaumAddr('withdraw');">우편번호찾기</button>
-								<input type="text" name ="chgerBaseAddr" class="w300"/>
+								<input type="text" name ="chgerBaseAddr" class="w300" readonly="readonly"/>
 								<input type="text" name ="chgerDtlAddr" class="w300"/>
 							</td>
 						</tr>
@@ -147,7 +147,7 @@
 				</table>
 
 				<h4>교환지 정보</h4>
-				<button style="float: right" type="button" class="btn btn-success" th:unless="${ordChgSq == 0 or !#strings.isEmpty(ordChgGb) or (chgStat == 'G685_40' and (chgOrdDtlStat != 'G013_20' or chgOrdDtlStat != 'G013_30' or chgOrdDtlStat != 'G013_35'))}" onclick="fnChangeRecipInfo();">교환지 수정</button>
+				<button style="float: right" type="button" class="btn btn-success" th:unless="${ordChgSq == 0 or ordChgGb == 'G681_20' or (chgStat == 'G685_40' and (chgOrdDtlStat != 'G013_20' or chgOrdDtlStat != 'G013_30' or chgOrdDtlStat != 'G013_35'))}" onclick="fnChangeRecipInfo();">교환지 수정</button>
 				<table class="frmStyle">
 					<colgroup>
 						<col style="width:160px;" />
@@ -165,7 +165,7 @@
 						<td colspan="3">
 							<input type="text" name ="recipZipcode" class="w100" readonly="readonly"/>
 							<button type="button" class="btn btn-info" th:unless="${ordChgGb == 'G681_20' or (chgStat == 'G685_40' and (chgOrdDtlStat != 'G013_20' or chgOrdDtlStat != 'G013_30' or chgOrdDtlStat != 'G013_35'))}" onclick="fnOpenDaumAddr('exchange');">우편번호찾기</button>
-							<input type="text" name ="recipBaseAddr" class="w300"/>
+							<input type="text" name ="recipBaseAddr" class="w300" readonly="readonly"/>
 							<input type="text" name ="recipDtlAddr" class="w300"/>
 						</td>
 					</tr>
@@ -340,9 +340,10 @@ var columnExchangeReqList = [
 							}
 						});
 					} else {
-						var optArr = params.data.optCd2s.split(',');
+						var optCd2Arr = params.data.optCd2s.split(',');
+						var optCdArr = params.data.optCds.split(',');
 						var ordChgOpt = params.data.ordChgOpt;
-						
+
 						var ordQty = parseInt(params.data.ordQty);
 						var cnclRtnQty = parseInt(params.data.cnclRtnQty);
 						var ordReqChgQty = parseInt(params.data.ordReqChgQty);
@@ -365,14 +366,14 @@ var columnExchangeReqList = [
 							strVal += '<option value="" selected>선택</option>';
 						}
 						
-						$.each(optArr, function (idx, item) {
+						$.each(optCdArr, function (idx, item) {
 							// 2021.07.26 교환옵션 optCd2 -> optCd로 변경 처리
 							if (ordChgOpt == item) {
 								//strVal += '<option value="' + item + '" selected>' + item + '</option>';
-								strVal += '<option value="' + params.data.optCd + '" selected>' + item + '</option>';
+								strVal += '<option value="' + item + '/' + optCd2Arr[idx] + '" selected>' + optCd2Arr[idx] + '</option>';
 							} else {
 								//strVal += '<option value="' + item + '">' + item + '</option>';
-								strVal += '<option value="' + params.data.optCd + '">' + item + '</option>';
+								strVal += '<option value="' + item + '/' + optCd2Arr[idx] + '">' + optCd2Arr[idx] + '</option>';
 							}
 						});
 					}
@@ -1019,7 +1020,9 @@ var fnSetExchangeAddr = function(){
 
 // 교환옵션 변경 이벤트
 var fnChangeOption = function(param) {
-	var optCd2 = $(param).val();
+	var opt = $(param).val().split('/');
+	var optCd = opt[0];
+	var optCd2 = opt[1];
 	var ordDtlNo = $(param).attr('ordDtlNo');
 	var ordDtlItemSq = $(param).attr('ordDtlItemSq');
 
@@ -1030,7 +1033,7 @@ var fnChangeOption = function(param) {
 			var stockIdx = sizeCdArr.indexOf(optCd2);
 			var stockQty = stockQtyArr[stockIdx];
 			item.currStockQty = stockQty;
-			item.ordChgOpt = optCd2;
+			item.ordChgOpt = optCd;
 		}
 	});
 

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

@@ -336,6 +336,10 @@ var columnCancelReqList = [
 				}
 				
 				rtnStr = ordCanChgQty;
+			}
+			// 2021.08.03 확정후품절 수량 처리
+			else if (ordChgGb == 'G681_60') {
+				rtnStr = params.data.chgQty;
 			} else {
 				ordCanChgQty = ordQty - (cnclRtnQty + ordReqChgQty);
 
@@ -1106,7 +1110,6 @@ var fnCnclReq = function (reqGbn) {
 	
 	// 반품신청
 	if (reqGbn == "rtnReq") {
-		
 		// 2021.05.25 수정
 		var ordDtlNoArr 		= [];
 		var cnclRtnReqQtyArr 	= [];
@@ -1580,7 +1583,8 @@ $(document).ready(function() {
 	cfnGetTextLength($('#chgMemo'), 1000, $('#chgMemoCount'));
 	cfnGetTextLength($('#chgerRtnMemo'), 1000, $('#chgerRtnMemoCount'));
 
-	if (ordChgGb == 'G681_50') {
+	// WMS 미접수, 확정후품절 처리
+	if (ordChgGb == 'G681_50' || ordChgGb == 'G681_60') {
 		$('input:radio[name="wdGb"]:radio[value="D"]').prop('checked', true);
 		$('#chgerAddress').css('display', 'none');
 		$('input:radio[name=wdGb]').attr('disabled', true);