Explorar el Código

입접업체 클레임관련 메뉴 이관 개발, 자동품절취소실패목록

jsh77b hace 4 años
padre
commit
2c7e7dc8ca

+ 137 - 0
src/main/java/com/style24/admin/biz/web/TsaOrderChangeScmController.java

@@ -0,0 +1,137 @@
+package com.style24.admin.biz.web;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.admin.biz.service.TsaRendererService;
+import com.style24.admin.support.controller.TsaBaseController;
+import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.biz.service.TscOrderService;
+import com.style24.persistence.TscPageRequest;
+import com.style24.persistence.domain.Order;
+
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ * 주문 Controller
+ *
+ * @author jsh77b
+ * @since 2021. 05. 18
+ */
+@Controller
+@RequestMapping("/orderChange")
+@Slf4j
+public class TsaOrderChangeScmController extends TsaBaseController {
+
+	@Autowired
+	private TscOrderService coreOrderService;
+	
+	@Autowired
+	private TsaRendererService rendererService;
+
+	/**
+	 * 입점업체 상품검수중 회수컨펌 화면
+	 * 
+	 * @param ordNo - 주문번호
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021. 07. 01
+	 */
+	@GetMapping("/seller/withdraw/confirm/form")
+	public ModelAndView rtnReqForm(@RequestParam(value = "ordNo") int ordNo, @RequestParam(value = "ordDtlNo") int ordDtlNo
+			, @RequestParam(value = "delvFeeCd") String delvFeeCd, @RequestParam(value = "delvFeeCdGrp") String delvFeeCdGrp
+			, @RequestParam(value = "ordChgSq") int ordChgSq) {
+		
+		Order order = new Order();
+		order.setOrdChgSq(ordChgSq);
+		
+		// 2021.06.25 페이징 처리
+		order.setPageable(new TscPageRequest(order.getPageNo() - 1, order.getPageSize()));
+		order.getPageable().setTotalCount(1000);
+		
+		List<Order> orderWithdrawList = coreOrderService.getOrderSellerClaimList(order);
+		int index 			= 0;
+		String chgGb 		= "";
+		String wdGb 		= "";
+		String chgReason 	= "";
+		String chgMemo 		= "";
+		
+		for (Order orderWithdraw : orderWithdrawList) {
+			if (index == 0) {
+				chgGb 		= orderWithdraw.getChgGb();
+				wdGb 		= orderWithdraw.getWdGb();
+				ordChgSq	= orderWithdraw.getOrdChgSq();
+				ordNo		= orderWithdraw.getOrdNo();
+				chgReason 	= orderWithdraw.getChgReason();
+				chgMemo 	= orderWithdraw.getChgMemo();
+			}
+			index++;
+		}
+		
+		ModelAndView mav = new ModelAndView();
+		mav.addObject("orderWithdrawList"	, orderWithdrawList);									// 회수컨펌대상목록
+		mav.addObject("chgGb"				, chgGb);												// 변경구분 
+		mav.addObject("wdGb"				, wdGb);												// 회수구분
+		mav.addObject("ordChgSq"			, ordChgSq);											// 변경번호
+		mav.addObject("ordNo"				, ordNo);												// 주문번호
+		mav.addObject("chgReason"			, chgReason);											// 변경사유
+		mav.addObject("chgMemo"				, chgMemo);												// 변경메모
+		mav.addObject("chgReasonList1"		, rendererService.getAvailCommonCodeList("G688"));		// 반품사유
+		mav.addObject("chgReasonList2"		, rendererService.getAvailCommonCodeList("G689"));		// 교환사유
+		mav.setViewName("order/OrderWithdrawConfirmForm");
+		
+		return mav;
+	}
+	
+	/**
+	 * 입점업체 상품검수중(변경번호단위) 회수컨펌 처리
+	 * @param order - 주문정보
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2020. 11. 16
+	 */
+	@PostMapping("/seller/widthdraw/confirm/update")
+	@ResponseBody
+	public GagaMap sellerWidthdrawConfirm(@RequestBody Order order) throws Exception {
+		
+		// 1. 회수컨펌
+		int userNo = TsaSession.getInfo().getUserNo();
+		String result = coreOrderService.withdrawConfirm(order, userNo);
+		
+		GagaMap map = new GagaMap();
+		map.set("msg", result);
+		return map;
+	}
+	
+	/**
+	 * 입점업체 상품검수중(변경번호목록단위) 회수컨펌목록 처리
+	 * @param order - 주문정보
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2020. 11. 16
+	 */
+	@PostMapping("/seller/widthdrawList/confirm/update")
+	@ResponseBody
+	public GagaMap sellerWidthdrawListConfirm(@RequestBody Collection<Order> orderList) throws Exception {
+		
+		// 1. 회수컨펌
+		int userNo = TsaSession.getInfo().getUserNo();
+		String result = coreOrderService.withdrawConfirmList(orderList, userNo);
+		
+		GagaMap map = new GagaMap();
+		map.set("msg", result);
+		return map;
+	}
+}

+ 36 - 0
src/main/java/com/style24/admin/biz/web/TsaOrderController.java

@@ -632,6 +632,42 @@ public class TsaOrderController extends TsaBaseController {
 
 		return mav;
 	}
+	
+	/**
+	 * 자동품절취소실패목록
+	 *
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021. 09. 11
+	 */
+	@GetMapping("/soldOutCnclFail/list/form")
+	public ModelAndView soldOutCnclFailListForm(Order order) {
+		ModelAndView mav = new ModelAndView();
+
+		mav.setViewName("order/SoldOutCnclFailList");
+
+		return mav;
+	}
+	
+	/**
+	 * 자동품절취소실패목록
+	 *
+	 * @param order - 주문정보
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2021. 09. 11
+	 */
+	@PostMapping("/soldOutCnclFail/list")
+	@ResponseBody
+	public Collection<Order> soldOutCnclFailList(@RequestBody Order order) throws Exception {
+		GagaMap result = new GagaMap();
+
+		// 주문목록 페이지 조회
+		Collection<Order> soldOutCnclFailList = orderService.getSoldOutCnclFailList(order);
+
+		return soldOutCnclFailList;
+	}
+
 }
 
 

+ 349 - 0
src/main/java/com/style24/admin/biz/web/TsaOrderScmController.java

@@ -0,0 +1,349 @@
+package com.style24.admin.biz.web;
+
+import java.util.Collection;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.admin.biz.service.TsaRendererService;
+import com.style24.admin.support.controller.TsaBaseController;
+import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.biz.service.TscOrderService;
+import com.style24.core.support.env.TscConstants;
+import com.style24.persistence.TscPageRequest;
+import com.style24.persistence.domain.Order;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 주문관리 Controller
+ *
+ * @author jsh77b
+ * @since 2020. 11. 16
+ */
+@Controller
+@RequestMapping("/order")
+@Slf4j
+public class TsaOrderScmController extends TsaBaseController {
+
+	@Autowired
+	private TsaRendererService rendererService;
+
+	@Autowired
+	private TscOrderService coreOrderService;
+	
+	@Autowired
+	private ObjectMapper mapper;
+	
+	/**
+	 * 입점업체미발주목록화면
+	 *
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2020. 11. 30
+	 */
+	@GetMapping("/seller/unorder/list/form")
+	public ModelAndView orderSellerUnorderListForm() {
+		ModelAndView mav = new ModelAndView();
+
+		mav.addObject("ordDtlStatList"	, rendererService.getAvailCommonCodeList("G013"));				// 주문상세상태코드
+		mav.addObject("shipCompanyList"	, rendererService.getShipCompanyList());						// 택배사 목록
+
+		mav.setViewName("order/OrderSellerListForm");
+
+		return mav;
+	}
+	
+	/**
+	 * 입점업체미발주 주문목록 조회
+	 *
+	 * @param order - 주문정보
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2020. 11. 16
+	 */
+	@PostMapping("/seller/unorder/list")
+	@ResponseBody
+	public GagaMap getOrderSellerUnorderList(@RequestBody Order order) {
+		GagaMap result = new GagaMap();
+
+		order.setPageable(new TscPageRequest(0, 10000));
+		
+		// 2021.07.13 업체,브랜드 검색방법 변경
+		if (!StringUtils.isBlank(order.getBrandList())) {
+			try {
+				String[] arrBrandCd = mapper.readValue(order.getBrandList(), String[].class);
+				order.setMultiBrand(arrBrandCd);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+
+		if (!StringUtils.isBlank(order.getSupplyCompList())) {
+			try {
+				String[] arrSupplyComp = mapper.readValue(order.getSupplyCompList(), String[].class);
+				order.setMultiSupplyCompCd(arrSupplyComp);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+
+		// 주문전체건수 조회
+		int totalCount = coreOrderService.getOrderSellerUnorderListCount(order);
+		order.getPageable().setTotalCount(totalCount);
+
+		Collection<Order> orderList = coreOrderService.getOrderSellerUnorderList(order);
+
+		result.set("pageing"	, order);
+		result.set("orderList"	, orderList);
+
+		return result;
+	}
+	
+	/**
+	 * 입점클레임목록 (교환,반품접수)
+	 *
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021. 05. 17
+	 */
+	@GetMapping("/seller/claim/list/form")
+	public ModelAndView orderSellerClaimListForm() {
+		ModelAndView mav = new ModelAndView();
+
+		mav.addObject("chgStatList"	, rendererService.getAvailCommonCodeList("G685"));				// 클렘임상태코드
+		mav.setViewName("order/OrderSellerClaimListForm");
+
+		return mav;
+	}
+	
+	/**
+	 * 입점클레임목록조회 (취소,교환,반품)
+	 *
+	 * @param order - 주문정보
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2021. 05. 17
+	 */
+	@PostMapping("/seller/claim/list")
+	@ResponseBody
+	public GagaMap getOrderSellerClaimList(@RequestBody Order order) throws Exception {
+		
+		GagaMap result = new GagaMap();
+		
+		order.setPageable(new TscPageRequest(order.getPageNo() - 1, order.getPageSize()));
+		
+		// 2021.07.13 업체,브랜드 검색방법 변경
+		if (!StringUtils.isBlank(order.getBrandList())) {
+			try {
+				String[] arrBrandCd = mapper.readValue(order.getBrandList(), String[].class);
+				order.setMultiBrand(arrBrandCd);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+
+		if (!StringUtils.isBlank(order.getSupplyCompList())) {
+			try {
+				String[] arrSupplyComp = mapper.readValue(order.getSupplyCompList(), String[].class);
+				order.setMultiSupplyCompCd(arrSupplyComp);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+		
+		// 주문전체건수 조회
+		int totalCount = (int) coreOrderService.getOrderSellerClaimCount(order);
+		order.getPageable().setTotalCount(totalCount);
+		
+		Collection<Order> orderSellerClaimList = coreOrderService.getOrderSellerClaimList(order);
+		
+		result.set("pageing"				, order);
+		result.set("orderSellerClaimList"	, orderSellerClaimList);
+				
+		return result;
+	}
+	
+	/**
+	 * 입점입고대상목록(교환,반품접수)
+	 *
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021. 05. 17
+	 */
+	@GetMapping("/seller/claim/target/list/form")
+	public ModelAndView orderSellerClaimTargetListForm() {
+		ModelAndView mav = new ModelAndView();
+		
+		// 공급업체
+		mav.addObject(" chgStatList"	, rendererService.getAvailCommonCodeList("G685"));				// 클렘임상태코드
+		mav.setViewName("order/OrderSellerClaimTargetListForm");
+
+		return mav;
+	}
+	
+	/**
+	 * 입점클레임목록조회(교환,반품접수)
+	 *
+	 * @param order - 주문정보
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2021. 05. 17
+	 */
+	@PostMapping("/seller/claim/target/list")
+	@ResponseBody
+	public Collection<Order> getOrderSellerClaimTargetList(@RequestBody Order order) throws Exception {
+		
+		// 값이없으면 반품접수, 교환접수
+		String [] multiChgStat = new String[3];
+		if (order.getChgStat() == null || "".equals(order.getChgStat())) {
+			multiChgStat[0] = TscConstants.OrderChangeStat.EXCHANGE.value();
+			multiChgStat[1] = TscConstants.OrderChangeStat.RETURN.value();
+			multiChgStat[2] = TscConstants.OrderChangeStat.WITHDRAW.value();
+		} else {
+			multiChgStat[0] = order.getChgStat();
+		}
+		
+		// 페이징쿼리때문에
+		order.setMultiChgStat(multiChgStat);
+		order.setPageable(new TscPageRequest(1 - 1, 10000));
+		
+		// 2021.07.13 업체,브랜드 검색방법 변경
+		if (!StringUtils.isBlank(order.getBrandList())) {
+			try {
+				String[] arrBrandCd = mapper.readValue(order.getBrandList(), String[].class);
+				order.setMultiBrand(arrBrandCd);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+
+		if (!StringUtils.isBlank(order.getSupplyCompList())) {
+			try {
+				String[] arrSupplyComp = mapper.readValue(order.getSupplyCompList(), String[].class);
+				order.setMultiSupplyCompCd(arrSupplyComp);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+		
+		Collection<Order> OrderSellerClaimList = coreOrderService.getOrderSellerClaimList(order);
+		return OrderSellerClaimList;
+	}
+	
+	/**
+	 * 입점클레임목록 - 입고확인
+	 *
+	 * @param orderList
+	 * @return GagaMap
+	 * @author jsh77b
+	 * @since 2021. 05. 17
+	 */
+	@PostMapping(value = "/seller/claim/chgStat31/save")
+	@ResponseBody
+	public GagaMap saveClaimChgStat31(@RequestBody Collection<Order> orderList) {
+		
+		// 1. 입고확인
+		int userNo = TsaSession.getInfo().getUserNo();
+		String result = coreOrderService.saveClaimChgStat31(orderList, userNo);
+		GagaMap map = new GagaMap();
+		map.set("msg", result);
+		return map;
+	}
+	
+	/**
+	 * 입점상품검수중목록(상품검수중)
+	 *
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021. 05. 17
+	 */
+	@GetMapping("/seller/withdraw/list/form")
+	public ModelAndView orderSellerWidthdrawListForm() {
+		ModelAndView mav = new ModelAndView();
+		
+		// 공급업체
+		String supplyCompCd 	= "";
+		String selfYn 			= "Y";
+		
+		mav.addObject("supplyCompList"	, rendererService.getSupplyCompanyList(supplyCompCd, selfYn)); 	// 공급업제목록
+		mav.addObject("chgStatList"		, rendererService.getAvailCommonCodeList("G685"));					// 클렘임상태코드
+		mav.setViewName("order/OrderSellerWithdrawListForm");
+
+		return mav;
+	}
+	
+	/**
+	 * 입점상품검수중목록조회(상품검수중)
+	 *
+	 * @param order - 주문정보
+	 * @return Collection<Order>
+	 * @author jsh77b
+	 * @since 2021. 05. 17
+	 */
+	@PostMapping("/seller/withdraw/list")
+	@ResponseBody
+	public Collection<Order> getOrderSellerWithdrawList(@RequestBody Order order) throws Exception {
+		
+		// 값이없으면 반품접수, 교환접수
+		String [] multiChgStat = new String[1];
+		multiChgStat[0] = TscConstants.OrderChangeStat.WITHDRAW_GOODS_CHECK.value();
+		
+		order.setMultiChgStat(multiChgStat);
+		
+		// 페이징쿼리때문에
+		order.setMultiChgStat(multiChgStat);
+		order.setPageable(new TscPageRequest(1 - 1, 10000));
+		
+		// 2021.07.13 업체,브랜드 검색방법 변경
+		if (!StringUtils.isBlank(order.getBrandList())) {
+			try {
+				String[] arrBrandCd = mapper.readValue(order.getBrandList(), String[].class);
+				order.setMultiBrand(arrBrandCd);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("브랜드코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+
+		if (!StringUtils.isBlank(order.getSupplyCompList())) {
+			try {
+				String[] arrSupplyComp = mapper.readValue(order.getSupplyCompList(), String[].class);
+				order.setMultiSupplyCompCd(arrSupplyComp);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException("업체코드 검색중 오류로 인해 조회되지 않았습니다.");
+			}
+		}
+				
+		Collection<Order> OrderSellerClaimList = coreOrderService.getOrderSellerClaimList(order);
+		return OrderSellerClaimList;
+	}
+	
+	
+}
+
+
+
+
+
+
+
+
+
+

+ 32 - 8
src/main/webapp/WEB-INF/views/order/OrderListForm.html

@@ -522,16 +522,40 @@ var fnSearchList = function () {
 			return;
 		}
 	}
+	
+	// 2021.09.11 조회일자가 없을때 조회조건체크
+	var supplyCompSearchTxt 	= $("#searchForm #supplyCompSearchTxt").val();
+	var supplyCompList 			= $('#searchForm input[name=supplyCompList]').val();
+	var brandText 				= $("#searchForm #brandText").val();
+	var brandList 				= $('#searchForm input[name=brandList]').val();
+	
+	if (gagajf.isNull(stDate) && gagajf.isNull(edDate)) {
+		var temp = false;
+		
+		if (!gagajf.isNull(ordNo)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompSearchTxt)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompList)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandText)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandList)) {
+			temp = true;
+		}
+		
+		if (temp == false) {
+			mcxDialog.alert('조회조건을 설정 해주세요.');
+			return;
+		}
+	}
 
 	gagaPaging.init('searchForm', fnSearchCallBack, 'orderListPagination', $('#searchForm').find('#pageSize').val());
 	gagaPaging.load($("#searchForm input[name=pageNo]").val());
-
-	// 2020.12.08 페이징 처리 때문에 주석 처리
-	//gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptionsOrderList, '#searchForm', function (result) {
-		//$("#rowCntOrderList").text(gridOptionsOrderList.api.getDisplayedRowCount());
-		// 주문리스트 합계 정보
-		//gagajf.ajaxFormSubmit('/order/list/sum/info', '#searchForm', fnOrderListSumInfoCallback);
-	//});
 };
 
 var fnSearchCallBack = function(result){
@@ -560,7 +584,7 @@ var fnExcelUpoadCallback = function (data) {
 $('#btnInit').on('click', function() {
 	$('#searchForm')[0].reset();
 
-	$("#searchForm #supplyCompSearchTxt").text("");
+	$("#searchForm #supplyCompText").text("");
 	$("#searchForm #brandText").text("");
 
 	$('#searchForm input[name=brandList]').val('');

+ 346 - 0
src/main/webapp/WEB-INF/views/order/OrderSellerClaimListForm.html

@@ -0,0 +1,346 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderSellerClaimListForm.html
+ * @desc    : 입점클레임목록 Page
+ *============================================================================
+ * SISUN
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.17   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+ 
+<div id="main">
+	<!-- 메인타이틀 영역 -->
+	<div class="main-title"></div>
+	<!-- //메인타이틀 영역 -->
+	
+	<!-- 메뉴 설명 -->
+	<div class="infoBox menu-desc"></div>
+	<!-- //메뉴 설명 -->
+	
+	<form id="searchForm" name="searchForm" action="#" th:action="@{'/order/seller/claim/list'}">
+		<input type="hidden" id="searchGb" name="searchGb" />
+		
+		<!-- 패널 영역1 -->
+		<div class="panelStyle" >
+			<!-- 검색조건 영역 -->
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3>
+					<i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">주문번호</font> 또는 <font color="red">검색조건</font> 하나를 꼭 입력해 주세요.
+				</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			
+			<div class="panelContent">
+				<table class="frmStyle">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+					</colgroup>
+					<tr>
+						<th>업체</th>
+						<td>
+							<input type="text" class="w100" name="supplyCompSearchTxt" id="supplyCompSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchSupplyComp"><i class="fa fa-search"></i></button>
+							<span id="supplyCompText"></span>
+							<input type="hidden" name="supplyCompList"/>
+						</td>
+						<th>브랜드</th>
+						<td colspan="5">
+							<input type="text" class="w100" name="searchTxt" id="searchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchBrand"><i class="fa fa-search"></i></button>
+							<span id="brandText"></span>
+							<input type="hidden" name="brandList"/>
+						</td>
+					</tr>
+					<tr>
+						<th>주문번호</th>
+						<td>
+							<input type="text" name="ordNo" placeholder="" maxlength="20"/>
+						</td>
+						<th>변경요청자명</th>
+						<td>
+							<input type="text" name="chgerNm" placeholder="" maxlength="20"/>
+						</td>
+						<th>상품코드</th>
+						<td>
+							<input type="text" name="goodsCd" placeholder="" maxlength="20"/>
+						</td>
+						<th>변경구분</th>
+						<td>
+							<select name="chgGb" id="chgGb">
+								<option value="">전체</option>
+								<option value="G680_20">취소</option>
+								<option value="G680_30">반품</option>
+								<option value="G680_40">교환</option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<th>조회일자</th>
+						<td colspan="7">
+							<select name="searchDateGb">
+								<option value="ordDt">요청일자</option>
+							</select>
+							<span id="terms"></span>
+						</td>
+					</tr>
+				</table>
+				
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-info btn-lg" id="btnOrderSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" id="btnInit">초기화</button>
+					</li>
+				</ul>
+				
+			</div>
+		</div>
+		
+		<div class="panelStyle">
+			<ul class="panelBar">
+				<li class="aR">
+					검색결과 : <strong><span id="rowCntOrderList">0</span> 건</strong>&nbsp;
+					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
+					<select id="pageSize" name="pageSize">
+						<option value="100" selected="selected">100개씩 보기</option>
+						<option value="500">500개씩 보기</option>
+						<option value="1000">1000개씩 보기</option>
+						<option value="5000">5000개씩 보기</option>
+					</select>
+					<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+				</li>
+			</ul>
+			
+			<div class="panelContent" style="overflow: hidden;">
+				<div id="gridList" style="width: 100%; height: 700px;" class="ag-theme-balham lh30"></div>
+			</div>
+			
+			<ul class="panelBar">
+				<li class="center">
+					<div class="tablePaging" id="orderListPagination"></div>
+				</li>
+			</ul>
+		</div>
+	</form>
+</div>
+
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=20210114"></script>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+var sessRoleCd 			= [[${sessionInfo.roleCd}]];
+
+var columnDefs = [
+	{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
+	{headerName: "입점업체",			field:"supplyCompNm",		width:120, cellClass: 'text-center'},
+	{headerName: "입점업체코드",		field:"supplyCompCd",		width:120, cellClass: 'text-center', hide: true},
+	{headerName: "브랜드",			field:"brandKnm",			width:100, cellClass: 'text-center'},
+	{headerName: "주문번호",			field:"ordNo",				width:100, cellClass: 'text-center'},
+	{headerName: "주문상세번호",		field:"ordDtlNo",			width:100, cellClass: 'text-center'},
+	{headerName: "주문변경번호",		field:"ordChgSq",			width:100, cellClass: 'text-center'},
+	{headerName: "변경구분",			field:"chgGbNm", 			width:100, cellClass: 'text-center'},
+	{headerName: "클레임상태",			field:"chgStatNm", 			width:100, cellClass: 'text-center'},
+	{headerName: "요청일시",			field:"regDt", 				width:150, cellClass: 'text-center'},
+	{headerName: "요청자명",			field:"chgerNm",			width:100, cellClass: 'text-center'},
+	{headerName: "휴대전화",			field:"chgerPhnno",			width:120, cellClass: 'text-center'},
+	{headerName: "회수지우편번호",		field:"chgerZipcode",		width:120, cellClass: 'text-center'},
+	{headerName: "회수지기본주소",		field:"chgerBaseAddr",		width:150, cellClass: 'text-left'},
+	{headerName: "회수지상세주소",		field:"chgerDtlAddr",		width:120, cellClass: 'text-left'},
+	{headerName: "업체상품코드",		field:"supplyGoodsCd",		width:100, cellClass: 'text-center'},
+	{headerName: "상품코드",			field:"goodsCd",			width:100, cellClass: 'text-center'},
+	{headerName: "상품명",			field:"goodsNm",			width:100, cellClass: 'text-center'},
+	{headerName: "옵션1",			field:"optCd1",				width:100, cellClass: 'text-center'},
+	{headerName: "옵션2",			field:"optCd2",				width:100, cellClass: 'text-center'},
+	{headerName: "요청수량",			field:"chgQty",				width:100, cellClass: 'text-center'},
+	{headerName: "교환상세번호",		field:"exchangeOrdDtlNo",	width:100, cellClass: 'text-center'},
+	{headerName: "교환옵션1",			field:"optCd11",			width:100, cellClass: 'text-center'},
+	{headerName: "교환옵션2",			field:"optCd12",			width:100, cellClass: 'text-center'}
+];
+
+var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+
+// 초기화 클릭시
+$('#btnInit').on('click', function() {
+	$('#searchForm')[0].reset();
+	
+	$("#searchForm #supplyCompText").text("");
+	$("#searchForm #brandText").text("");
+
+	$('#searchForm input[name=brandList]').val('');
+	$('#searchForm input[name=supplyCompList]').val('');
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+// 조회버튼
+$('#btnOrderSearch').on('click', function() {
+	// 페이징처리
+	$("#searchForm input[name=pageNo]").val('1');
+
+	fnSearch();
+});
+
+// 검색
+var fnSearch = function() {	
+	var formId 		= '#searchForm';
+	var ordNo 		= $('#searchForm input[name=ordNo]').val();
+	var stDate 		= $('#stDate').val();
+	var edDate 		= $('#edDate').val();
+
+	if (!gagajf.isNull(stDate)) {
+		if (gagajf.isNull(edDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+
+	if (!gagajf.isNull(edDate)) {
+		if (gagajf.isNull(stDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+	
+	// 2021.09.11 조회일자가 없을때 조회조건체크
+	var supplyCompSearchTxt 	= $("#searchForm #supplyCompSearchTxt").val();
+	var supplyCompList 			= $('#searchForm input[name=supplyCompList]').val();
+	var brandText 				= $("#searchForm #brandText").val();
+	var brandList 				= $('#searchForm input[name=brandList]').val();
+	
+	if (gagajf.isNull(stDate) && gagajf.isNull(edDate)) {
+		var temp = false;
+		
+		if (!gagajf.isNull(ordNo)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompSearchTxt)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompList)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandText)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandList)) {
+			temp = true;
+		}
+		
+		if (temp == false) {
+			mcxDialog.alert('조회조건을 설정 해주세요.');
+			return;
+		}
+	}
+	
+	gagaPaging.init('searchForm', fnSearchCallBack, 'orderListPagination', $('#searchForm').find('#pageSize').val());
+	gagaPaging.load($("#searchForm input[name=pageNo]").val());
+}
+
+var fnSearchCallBack = function(result){	
+	$('#searchForm').find('#gridRowTotalCount').html(result.pageing.pageable.totalCount.addComma());
+	$('#searchForm').find('#pageNo').val(result.pageing.pageable.pageNo.addComma());
+	$('#searchForm').find('#pgNo').html(result.pageing.pageable.pageNo.addComma());
+	$('#searchForm').find('#endPgNo').html(result.pageing.pageable.totalPage.addComma());
+	
+	gridOptions.api.setRowData(result.orderSellerClaimList);
+	gagaPaging.createPagination(result.pageing.pageable);
+}
+
+//초기설정
+$(document).ready(function() {
+	// 달력기능 활성화
+	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문', 'X');
+	
+	gagaAgGrid.createGrid('gridList', gridOptions);
+	gridOptions.api.hideOverlay();
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+//2021.07.13 업체,브랜드 검색방법 변경
+//업체 조회 선택시
+$('#btnSearchSupplyComp').on('click', function() {
+	cfnOpenCompanyListPopup('fnSetSupplyCompInfo', 'M');
+});
+
+//업체 조회 팝업에서 호출
+var fnSetSupplyCompInfo = function(result) {
+	var arrSupplyComp 	= [];
+	var supplyCompText 	= "";
+	var sIndex 			= 0;
+
+	$('#searchForm').find('#supplyCompText').html('');
+	$('#searchForm input[name=supplyCompSearchTxt]').val('');
+
+	result.forEach(function(supplyComp){
+		sIndex++;
+		arrSupplyComp.push(supplyComp.supplyCompCd);
+	});
+
+	// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리
+	if (sIndex == 1) {
+		$('#searchForm input[name=supplyCompSearchTxt]').val(arrSupplyComp[0]);
+	} else {
+		supplyCompText = sIndex + " 개";
+		$('#searchForm').find('#supplyCompText').html(supplyCompText);
+	}
+
+	var jsonData = JSON.stringify(arrSupplyComp);
+	$("#searchForm input[name=supplyCompList]").val(jsonData);
+}
+
+//브랜드 조회 선택시
+$('#btnSearchBrand').on('click', function() {
+	cfnOpenBrandListPopup('fnSetBrandInfo', 'M');
+});
+
+//브랜드 조회 팝업에서 호출
+var fnSetBrandInfo = function(result) {
+	var arrbrandCd 	= [];
+	var brandText 	= "";
+	var bIndex 		= 0;
+
+	$('#searchForm').find('#brandText').html('');
+	$('#searchForm input[name=searchTxt]').val('');
+
+	result.forEach(function(brand){
+		bIndex++;
+		arrbrandCd.push(brand.brandCd);
+	});
+
+	// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리
+	if (bIndex == 1) {
+		$('#searchForm input[name=searchTxt]').val(arrbrandCd[0]);
+	}else{
+		brandText = bIndex + " 개";
+		$('#searchForm').find('#brandText').html(brandText);
+	}
+	var jsonData = JSON.stringify(arrbrandCd);
+	$("#searchForm input[name=brandList]").val(jsonData);
+}
+
+</script>
+
+</html>
+
+
+
+
+

+ 347 - 0
src/main/webapp/WEB-INF/views/order/OrderSellerClaimTargetListForm.html

@@ -0,0 +1,347 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderSellerClaimListForm.html
+ * @desc    : 입점입고대상목록
+ *============================================================================
+ * SISUN
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.17   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+ 
+<div id="main">
+	<!-- 메인타이틀 영역 -->
+	<div class="main-title"></div>
+	<!-- //메인타이틀 영역 -->
+	
+	<!-- 메뉴 설명 -->
+	<div class="infoBox menu-desc"></div>
+	<!-- //메뉴 설명 -->
+	
+	<form id="searchForm" name="searchForm" action="#" th:action="@{'/order/seller/claim/target/list'}">
+		<input type="hidden" id="searchGb" name="searchGb" />
+		
+		<!-- 패널 영역1 -->
+		<div class="panelStyle" >
+			<!-- 검색조건 영역 -->
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3>
+					<i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">주문번호</font> 또는 <font color="red">검색조건</font> 하나를 꼭 입력해 주세요.
+				</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			
+			<div class="panelContent">
+				<table class="frmStyle">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+					</colgroup>
+					<tr>
+						<th>업체</th>
+						<td>
+							<input type="text" class="w100" name="supplyCompSearchTxt" id="supplyCompSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchSupplyComp"><i class="fa fa-search"></i></button>
+							<span id="supplyCompText"></span>
+							<input type="hidden" name="supplyCompList"/>
+						</td>
+						<th>브랜드</th>
+						<td colspan="5">
+							<input type="text" class="w100" name="searchTxt" id="searchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchBrand"><i class="fa fa-search"></i></button>
+							<span id="brandText"></span>
+							<input type="hidden" name="brandList"/>
+						</td>
+					</tr>
+					<tr>
+						<th>주문번호</th>
+						<td>
+							<input type="text" name="ordNo" placeholder="" maxlength="20"/>
+						</td>
+						<th>주문자명</th>
+						<td>
+							<input type="text" name="chgerNm" placeholder="" maxlength="20"/>
+						</td>
+						<th>상품코드</th>
+						<td>
+							<input type="text" name="goodsCd" placeholder="" maxlength="20"/>
+						</td>
+						<th>클레임상태</th>
+						<td>
+							<select name="chgStat" id="chgStat">
+								<option value="">전체</option>
+								<option value="G685_20">교환접수</option>
+								<option value="G685_50">반품접수</option>
+								<option value="G685_30">회수요청</option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<th>조회일자</th>
+						<td colspan="7">
+							<select name="searchDateGb">
+								<option value="ordDt">요청일자</option>
+							</select>
+							<span id="terms"></span>
+						</td>
+					</tr>
+				</table>
+				
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-info btn-lg" id="btnOrderSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" id="btnInit">초기화</button>
+					</li>
+				</ul>
+				
+			</div>
+		</div>
+		
+		<div class="panelStyle">
+			<ul class="panelBar">
+				<li class="aR">
+					<button type="button" id="btnSave" class="btn btn-success btn-lg">입고확인</button>
+				</li>
+			</ul>
+			
+			<div class="panelContent" style="overflow: hidden;">
+				<div id="gridList" style="width: 100%; height: 700px;" class="ag-theme-balham lh30"></div>
+			</div>
+		</div>
+	</form>
+</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+var sessRoleCd 			= [[${sessionInfo.roleCd}]];
+
+var columnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
+	{headerName: "입점업체",			field:"supplyCompNm",		width:120, cellClass: 'text-center'},
+	{headerName: "입점업체코드",		field:"supplyCompCd",		width:120, cellClass: 'text-center', hide: true},
+	{headerName: "브랜드",			field:"brandKnm",			width:100, cellClass: 'text-center'},
+	{headerName: "주문번호",			field:"ordNo",				width:100, cellClass: 'text-center'},
+	{headerName: "주문상세번호",		field:"ordDtlNo",			width:100, cellClass: 'text-center'},
+	{headerName: "주문변경번호",		field:"ordChgSq",			width:100, cellClass: 'text-center'},
+	{headerName: "변경구분",			field:"chgGbNm", 			width:100, cellClass: 'text-center'},
+	{headerName: "클레임상태",			field:"chgStatNm", 			width:100, cellClass: 'text-center'},
+	{headerName: "요청일시",			field:"regDt", 				width:150, cellClass: 'text-center'},
+	{headerName: "요청자명",			field:"chgerNm",			width:100, cellClass: 'text-center'},
+	{headerName: "휴대전화",			field:"chgerPhnno",			width:120, cellClass: 'text-center'},
+	{headerName: "회수지우편번호",		field:"chgerZipcode",		width:120, cellClass: 'text-center'},
+	{headerName: "회수지기본주소",		field:"chgerBaseAddr",		width:150, cellClass: 'text-left'},
+	{headerName: "회수지상세주소",		field:"chgerDtlAddr",		width:120, cellClass: 'text-left'},
+	{headerName: "업체상품코드",		field:"supplyGoodsCd",		width:100, cellClass: 'text-center'},
+	{headerName: "상품코드",			field:"goodsCd",			width:100, cellClass: 'text-center'},
+	{headerName: "상품명",			field:"goodsNm",			width:100, cellClass: 'text-center'},
+	{headerName: "옵션1",				field:"optCd1",				width:100, cellClass: 'text-center'},
+	{headerName: "옵션2",				field:"optCd2",				width:100, cellClass: 'text-center'},
+	{headerName: "요청수량",			field:"chgQty",				width:100, cellClass: 'text-center'},
+	{headerName: "교환상세번호",		field:"exchangeOrdDtlNo",	width:100, cellClass: 'text-center'},
+	{headerName: "교환옵션1",			field:"optCd11",			width:100, cellClass: 'text-center'},
+	{headerName: "교환옵션2",			field:"optCd12",			width:100, cellClass: 'text-center'}
+];
+
+var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+gridOptions.suppressRowClickSelection 		= true;
+gridOptions.rowSelection 					= 'multiple';
+gridOptions.stopEditingWhenGridLosesFocus 	= true;
+
+// 초기화 클릭시
+$('#btnInit').on('click', function() {
+	$('#searchForm')[0].reset();
+	
+	$("#searchForm #supplyCompText").text("");
+	$("#searchForm #brandText").text("");
+
+	$('#searchForm input[name=brandList]').val('');
+	$('#searchForm input[name=supplyCompList]').val('');
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+// 입고확인
+$('#btnSave').on('click', function () {
+	
+	var selectedData = gridOptions.api.getSelectedRows();
+	if (selectedData.length == 0) {
+		mcxDialog.alert('선택된 행이 없습니다.');
+		return;
+	}
+	
+	// TODO 회수송장번호 
+	
+	mcxDialog.confirm('입고확인 하시겠습니까?', {
+		cancelBtnText	: "취소",
+		sureBtnText		: "확인",
+		sureBtnClick	: function(){
+			var jsonData = JSON.stringify(selectedData);
+			gagajf.ajaxJsonSubmit('/order/seller/claim/chgStat31/save', jsonData, fnSaveCallback);
+		}
+	});
+});
+
+// 입고확인후실행 
+var fnSaveCallback = function(result){
+	mcxDialog.alert(result.msg);
+	fnSearch();
+	return;
+}
+
+// 조회버튼
+$('#btnOrderSearch').on('click', function() {
+	fnSearch();
+});
+
+// 검색
+var fnSearch = function() {
+	var formId 		= '#searchForm';
+	var ordNo 		= $('#searchForm input[name=ordNo]').val();
+	var stDate 		= $('#stDate').val();
+	var edDate 		= $('#edDate').val();
+
+	if (!gagajf.isNull(stDate)) {
+		if (gagajf.isNull(edDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+
+	if (!gagajf.isNull(edDate)) {
+		if (gagajf.isNull(stDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+	
+	// 2021.09.11 조회일자가 없을때 조회조건체크
+	var supplyCompSearchTxt 	= $("#searchForm #supplyCompSearchTxt").val();
+	var supplyCompList 			= $('#searchForm input[name=supplyCompList]').val();
+	var brandText 				= $("#searchForm #brandText").val();
+	var brandList 				= $('#searchForm input[name=brandList]').val();
+	
+	if (gagajf.isNull(stDate) && gagajf.isNull(edDate)) {
+		var temp = false;
+		
+		if (!gagajf.isNull(ordNo)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompSearchTxt)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompList)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandText)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandList)) {
+			temp = true;
+		}
+		
+		if (temp == false) {
+			mcxDialog.alert('조회조건을 설정 해주세요.');
+			return;
+		}
+	}
+	
+	gagaAgGrid.fetch($(formId).prop('action'), gridOptions, formId);
+}
+
+//초기설정
+$(document).ready(function() {
+	// 달력기능 활성화
+	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문', 'X');
+	
+	gagaAgGrid.createGrid('gridList', gridOptions);
+	gridOptions.api.hideOverlay();
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+//2021.07.13 업체,브랜드 검색방법 변경
+//업체 조회 선택시
+$('#btnSearchSupplyComp').on('click', function() {
+	cfnOpenCompanyListPopup('fnSetSupplyCompInfo', 'M');
+});
+
+//업체 조회 팝업에서 호출
+var fnSetSupplyCompInfo = function(result) {
+	var arrSupplyComp 	= [];
+	var supplyCompText 	= "";
+	var sIndex 			= 0;
+
+	$('#searchForm').find('#supplyCompText').html('');
+	$('#searchForm input[name=supplyCompSearchTxt]').val('');
+
+	result.forEach(function(supplyComp){
+		sIndex++;
+		arrSupplyComp.push(supplyComp.supplyCompCd);
+	});
+
+	// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리
+	if (sIndex == 1) {
+		$('#searchForm input[name=supplyCompSearchTxt]').val(arrSupplyComp[0]);
+	} else {
+		supplyCompText = sIndex + " 개";
+		$('#searchForm').find('#supplyCompText').html(supplyCompText);
+	}
+
+	var jsonData = JSON.stringify(arrSupplyComp);
+	$("#searchForm input[name=supplyCompList]").val(jsonData);
+}
+
+//브랜드 조회 선택시
+$('#btnSearchBrand').on('click', function() {
+	cfnOpenBrandListPopup('fnSetBrandInfo', 'M');
+});
+
+//브랜드 조회 팝업에서 호출
+var fnSetBrandInfo = function(result) {
+	var arrbrandCd 	= [];
+	var brandText 	= "";
+	var bIndex 		= 0;
+
+	$('#searchForm').find('#brandText').html('');
+	$('#searchForm input[name=searchTxt]').val('');
+
+	result.forEach(function(brand){
+		bIndex++;
+		arrbrandCd.push(brand.brandCd);
+	});
+
+	// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리
+	if (bIndex == 1) {
+		$('#searchForm input[name=searchTxt]').val(arrbrandCd[0]);
+	}else{
+		brandText = bIndex + " 개";
+		$('#searchForm').find('#brandText').html(brandText);
+	}
+	var jsonData = JSON.stringify(arrbrandCd);
+	$("#searchForm input[name=brandList]").val(jsonData);
+}
+</script>
+
+</html>
+
+
+
+
+

+ 516 - 0
src/main/webapp/WEB-INF/views/order/OrderSellerListForm.html

@@ -0,0 +1,516 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderSellerListForm.html
+ * @desc    : 입점업체미발주목록조회 Page
+ *============================================================================
+ * SISUN
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.11.16   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+ 
+<div id="main">
+	<!-- 메인타이틀 영역 -->
+	<div class="main-title">
+	</div>
+	<!-- //메인타이틀 영역 -->
+	
+	<!-- 메뉴 설명 -->
+	<div class="infoBox menu-desc">
+	</div>
+	
+	<form id="searchForm" name="searchForm" action="#" th:action="@{'/order/seller/unorder/list'}">
+		<input type="hidden" id="searchGb" name="searchGb" />
+		<input type="hidden" id="imageViewYn" name="imageViewYn" />
+		<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+		
+		<!-- 패널 영역1 -->
+		<div class="panelStyle" >
+			<!-- 검색조건 영역 -->
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3>
+					<i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">주문번호</font> 또는 <font color="red">검색조건</font> 하나를 꼭 입력해 주세요.
+				</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			
+			<div class="panelContent">
+				<table class="frmStyle">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+					</colgroup>
+					<tr>
+						<th>업체</th>
+						<td>
+							<input type="text" class="w100" name="supplyCompSearchTxt" id="supplyCompSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchSupplyComp"><i class="fa fa-search"></i></button>
+							<span id="supplyCompText"></span>
+							<input type="hidden" name="supplyCompList"/>
+						</td>
+						<th>브랜드</th>
+						<td colspan="5">
+							<input type="text" class="w100" name="searchTxt" id="searchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchBrand"><i class="fa fa-search"></i></button>
+							<span id="brandText"></span>
+							<input type="hidden" name="brandList"/>
+						</td>
+					</tr>
+					<tr>
+						<th>주문번호</th>
+						<td>
+							<input type="text" name="ordNo" placeholder="" maxlength="20"/>
+						</td>
+						<th>주문자명</th>
+						<td>
+							<input type="text" name="ordNm" placeholder="" maxlength="20"/>
+						</td>
+						<th>상품코드</th>
+						<td>
+							<input type="text" name="goodsCd" placeholder="" maxlength="20"/>
+						</td>
+						<th>주문상세상태</th>
+						<td>
+							<select name="ordDtlStat" id="ordDtlStat">
+								<option value="G013_20" selected>결제완료</option>
+								<option value="G013_30">상품준비중</option>
+								<option value="G013_40">배송준비중</option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<th>조회일자</th>
+						<td colspan="7">
+							<select name="searchDateGb">
+								<option value="ordDt">주문일자</option>
+							</select>
+							<span id="terms"></span>
+						</td>
+					</tr>
+				</table>
+				
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-info btn-lg" id="btnOrderSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" id="btnInit">초기화</button>
+					</li>
+				</ul>
+				
+			</div>
+		</div>
+		
+		<div class="panelStyle">
+			<!-- 
+			<ul class="panelBar">
+				<li>
+					<button type="button" class="btn btn-info btn-lg" onclick="cfnDownloadSampleFile('SF027');">택배사코드목록다운로드</button>
+				</li>
+				<li class="aR">
+					<button type="button" id="btnExcelDown" class="btn btn-info btn-lg">엑셀다운로드</button>
+					<button type="button" id="btnInvoiceExcelUpLoad" class="btn btn-success btn-lg">송장엑셀업로드</button>
+					<button type="button" id="btnSave" class="btn btn-success btn-lg">저장</button>
+				</li>
+			</ul>
+			 -->
+			
+			<div class="panelContent" style="overflow: hidden;">
+				<div id="gridList" style="width: 100%; height: 700px;" class="ag-theme-balham lh30"></div>
+			</div>
+		</div>
+		
+		<!-- //리스트 영역 
+		<label class="off">
+			<a href="javascript:void(0);" id="excelList" style="display: none;">엑셀다운로드</a>
+		</label>
+		-->
+
+	</form>
+</div>
+
+<label class="off">
+	<a href="javascript:void(0);" id="hdOrderExcelList" style="display: none;">엑셀다운로드</a>
+</label>
+
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=20210114"></script>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+var sessRoleCd 		= [[${sessionInfo.roleCd}]];
+var shipCompanyList = gagajf.convertToArray([[${shipCompanyList}]]);
+
+var columnDefs = [
+	{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+	{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
+	{headerName: "원주문/교환",		field:"ordExchGb",			width:100, cellClass: 'text-center'
+		,valueFormatter: function(params) {
+			if(params.value && params.value == "O") {
+				return "원주문";
+			} else {
+				return "교환";
+			}
+		}
+	},
+	{headerName: "입점업체",			field:"supplyCompNm",		width:100, cellClass: 'text-center'},
+	{headerName: "입점업체코드",		field:"supplyCompCd",		width:100, cellClass: 'text-center', hide: true},
+	{headerName: "브랜드",			field:"brandKnm",			width:100, cellClass: 'text-center'},
+	{headerName: "주문번호",			field:"ordNo",				width:100, cellClass: 'text-center'},
+	{headerName: "주문상세번호",		field:"ordDtlNo",			width:100, cellClass: 'text-center'},
+	{headerName: "주문상세상태",		field:"ordDtlStatNm", 		width:100, cellClass: 'text-center'},
+	{headerName: "주문자명",			field:"ordNm",				width:100, cellClass: 'text-center'},
+	{headerName: "주문일시",			field:"ordDt",				width:100, cellClass: 'text-center',
+		cellRenderer		: function (params) {
+			return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
+		}
+	},
+	{headerName: "결제수단",			field:"payMeansNm",			width:100, cellClass: 'text-center'},
+	{headerName: "주문자휴대전화",		field:"ordPhnno",			width:100, cellClass: 'text-center'},
+	{headerName: "수령자명",			field:"recipNm",			width:100, cellClass: 'text-center'},
+	{headerName: "수령자휴대전화",		field:"recipPhnno",			width:120, cellClass: 'text-center'},
+	{headerName: "수령자우편번호",		field:"recipZipcode",		width:120, cellClass: 'text-center'},
+	{headerName: "수령자기본주소",		field:"recipBaseAddr",		width:120, cellClass: 'text-center'},
+	{headerName: "수령자상세주소",		field:"recipDtlAddr",		width:120, cellClass: 'text-center'},
+	{headerName: "배송메모",			field:"delvMemo",			width:120, cellClass: 'text-center'},
+	{headerName: "업체상품코드",		field:"supplyGoodsCd",		width:100, cellClass: 'text-center'},
+	{headerName: "상품코드",			field:"goodsCd",			width:100, cellClass: 'text-center'},
+	{headerName: "상품명",			field:"goodsNm",			width:100, cellClass: 'text-center'},
+	{headerName: "옵션1",			field:"optCd1",				width:100, cellClass: 'text-center'},
+	{headerName: "옵션2",			field:"optCd2",				width:100, cellClass: 'text-center'},
+	{headerName: "주문수량",			field:"ordQty",				width:100, cellClass: 'text-center'},
+	{headerName: "취소수량",			field:"cnclRtnQty",			width:100, cellClass: 'text-center'},
+	{headerName: "주문금액",			field:"ordAmt",				width:100, cellClass: 'text-right'
+		,valueFormatter: function(params) {
+			if(params.value && params.value > 0) {
+				return params.value.addComma();
+			} else {
+				return 0;
+			}
+		}},
+	{headerName: "할인금액",			field:"totDcAmt",			width:100, cellClass: 'text-right'
+		,valueFormatter: function(params) {
+			if(params.value && params.value > 0) {
+				return params.value.addComma();
+			} else {
+				return 0;
+			}
+		}},
+	{headerName: "실결제금액",		field:"realOrdAmt",			width:100, cellClass: 'text-right'
+		,valueFormatter: function(params) {
+			if(params.value && params.value > 0) {
+				return params.value.addComma();
+			} else {
+				return 0;
+			}
+		}},
+	{headerName: "배송업체",			field:"shipCompCd",			width:150, cellClass: 'text-left'
+		, editable 			: false
+		, cellEditor		: 'agRichSelectCellEditor'
+		, cellStyle			: {color: '#fffff', 'background-color': '#aaaaff'}
+		, cellEditorParams	: {
+			values: gagaAgGrid.extractValues(shipCompanyList)
+		}
+		, valueFormatter: function (params) {
+			return gagaAgGrid.lookupValue(shipCompanyList, params.value);
+		}
+		, valueParser: function (params) {
+			return gagaAgGrid.lookupKey(shipCompanyList, params.newValue);
+		}
+	},
+	{headerName: "송장",				field:"invoiceNo",			width:150, cellClass: 'text-left', editable : false
+		, cellStyle			: {color: '#fffff', 'background-color': '#aaaaff'}	}
+];
+
+var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+gridOptions.suppressRowClickSelection = true;
+gridOptions.rowSelection = 'multiple';
+gridOptions.stopEditingWhenGridLosesFocus = true;
+
+// 조회버튼
+$('#btnOrderSearch').on('click', function() {
+	fnSearch();
+});
+
+// 검색
+var fnSearch = function() {
+	var formId 		= '#searchForm';
+	var ordNo 		= $('#searchForm input[name=ordNo]').val();
+	var stDate 		= $('#stDate').val();
+	var edDate 		= $('#edDate').val();
+
+	if (!gagajf.isNull(stDate)) {
+		if (gagajf.isNull(edDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+
+	if (!gagajf.isNull(edDate)) {
+		if (gagajf.isNull(stDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+	
+	// 2021.09.11 조회일자가 없을때 조회조건체크
+	var supplyCompSearchTxt 	= $("#searchForm #supplyCompSearchTxt").val();
+	var supplyCompList 			= $('#searchForm input[name=supplyCompList]').val();
+	var brandText 				= $("#searchForm #brandText").val();
+	var brandList 				= $('#searchForm input[name=brandList]').val();
+	
+	if (gagajf.isNull(stDate) && gagajf.isNull(edDate)) {
+		var temp = false;
+		
+		if (!gagajf.isNull(ordNo)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompSearchTxt)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompList)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandText)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandList)) {
+			temp = true;
+		}
+		
+		if (temp == false) {
+			mcxDialog.alert('조회조건을 설정 해주세요.');
+			return;
+		}
+	}
+
+	gagaPaging.init('searchForm', fnSearchCallBack, 'orderListPagination', 100);
+	gagaPaging.load($("#searchForm input[name=pageNo]").val());
+}
+
+var fnSearchCallBack = function(result){
+	$('#searchForm').find('#gridRowTotalCount').html(result.pageing.pageable.totalCount.addComma());
+	$('#searchForm').find('#pageNo').val(result.pageing.pageable.pageNo.addComma());
+	$('#searchForm').find('#pgNo').html(result.pageing.pageable.pageNo.addComma());
+	$('#searchForm').find('#endPgNo').html(result.pageing.pageable.totalPage.addComma());
+
+	gridOptions.api.setRowData(result.orderList);
+	gagaPaging.createPagination(result.pageing.pageable);
+}
+
+// 초기화 클릭시
+$('#btnInit').on('click', function() {
+	$('#searchForm')[0].reset();
+	
+	$("#searchForm #supplyCompText").text("");
+	$("#searchForm #brandText").text("");
+
+	$('#searchForm input[name=brandList]').val('');
+	$('#searchForm input[name=supplyCompList]').val('');
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+// 엑셀다운로드 시 주문상태 변경
+$('#btnExcelDown').on('click', function () {
+	
+	var selectedData = gridOptions.api.getSelectedRows();
+
+	if (selectedData.length == 0) {
+		mcxDialog.alert('선택된 행이 없습니다.');
+		return;
+	}
+	
+	mcxDialog.confirm('엑셀 다운로드 하시겠습니까?', {
+		cancelBtnText	: "취소",
+		sureBtnText		: "확인",
+		sureBtnClick	: function(){
+			var jsonData = JSON.stringify(selectedData);
+			gagajf.ajaxJsonSubmit('/order/seller/unorder/status/save', jsonData, fnExcelDownCollback);
+		}
+	});
+});
+
+// 엑셀다운로드
+var fnExcelDownCollback = function(flag){
+	var selectedData = gridOptions.api.getSelectedRows();
+
+	if (selectedData.length == 0) {
+		mcxDialog.alert('선택된 행이 없습니다.');
+		return;
+	}
+
+	let ordDtlNoArr = new Array();
+	for(let i = 0 ; i < selectedData.length ; i++) {
+		ordDtlNoArr.push(selectedData[i].ordDtlNo);
+	}
+
+	let order = {
+		ordDtlNoArr : ordDtlNoArr
+	};
+	
+	$('#excelList').attr({ href : '/order/seller/unorder/excel/list?ordDtlNoArr=' + ordDtlNoArr }).get(0).click();
+}
+
+// 송장 엑셀 업로드
+$('#btnInvoiceExcelUpLoad').on('click', function() {
+	cfnExcelUploadPopup('invoiceExcelUpload', 'invoiceExcelUpload');
+});
+
+var invoiceExcelUpload = function(result){
+	mcxDialog.confirm('송장 변경을 진행하시겠습니까?', {
+		cancelBtnText	: "취소"
+		, sureBtnText	: "확인"
+		, sureBtnClick	: function(){
+			var data = {
+				procJob 		: result.procJob
+				, excelFileNm 	: result.excelFileNm
+			};
+			
+			var jsonData = JSON.stringify(data);
+			gagajf.ajaxJsonSubmit('/order/seller/unorder/invoice/excelupload/save', jsonData, fnInvoiceSaveCollback);
+		}
+	});	
+}
+
+// 송장번호 저장후 
+var fnInvoiceSaveCollback = function(result){
+	mcxDialog.alert(result.msg);
+	fnSearch();
+	return;
+}
+
+//송장번호 저장시
+$('#btnSave').on('click', function () {
+	
+	var selectedData = gridOptions.api.getSelectedRows();
+
+	if (selectedData.length == 0) {
+		mcxDialog.alert('선택된 행이 없습니다.');
+		return;
+	}
+	
+	var checkFlag = false;
+	$.each(selectedData, function(idx, item) {
+		if (gagajf.isNull(item.shipCompCd)){
+			checkFlag = true;
+			mcxDialog.alert('배송업체를 선택하세요.');
+			return;
+		}
+		
+		if (gagajf.isNull(item.invoiceNo)){
+			checkFlag = true;
+			mcxDialog.alert('송장번호를 입력하세요.');
+			return;
+		}
+	});
+	
+	if (checkFlag){
+		return false;
+	}
+	
+	mcxDialog.confirm('저장 하시겠습니까?', {
+		cancelBtnText	: "취소",
+		sureBtnText		: "확인",
+		sureBtnClick	: function(){
+			var jsonData = JSON.stringify(selectedData);
+			gagajf.ajaxJsonSubmit('/order/seller/unorder/invoice/save', jsonData, fnInvoiceSaveCollback);
+
+		}
+	});
+	
+});
+
+// 초기설정
+$(document).ready(function() {
+	// 달력기능 활성화
+	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문', 'X');
+	gagaAgGrid.createGrid('gridList', gridOptions);
+	gridOptions.api.hideOverlay();
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+//2021.07.13 업체,브랜드 검색방법 변경
+//업체 조회 선택시
+$('#btnSearchSupplyComp').on('click', function() {
+	cfnOpenCompanyListPopup('fnSetSupplyCompInfo', 'M');
+});
+
+//업체 조회 팝업에서 호출
+var fnSetSupplyCompInfo = function(result) {
+	var arrSupplyComp 	= [];
+	var supplyCompText 	= "";
+	var sIndex 			= 0;
+
+	$('#searchForm').find('#supplyCompText').html('');
+	$('#searchForm input[name=supplyCompSearchTxt]').val('');
+
+	result.forEach(function(supplyComp){
+		sIndex++;
+		arrSupplyComp.push(supplyComp.supplyCompCd);
+	});
+
+	// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리
+	if (sIndex == 1) {
+		$('#searchForm input[name=supplyCompSearchTxt]').val(arrSupplyComp[0]);
+	} else {
+		supplyCompText = sIndex + " 개";
+		$('#searchForm').find('#supplyCompText').html(supplyCompText);
+	}
+
+	var jsonData = JSON.stringify(arrSupplyComp);
+	$("#searchForm input[name=supplyCompList]").val(jsonData);
+}
+
+//브랜드 조회 선택시
+$('#btnSearchBrand').on('click', function() {
+	cfnOpenBrandListPopup('fnSetBrandInfo', 'M');
+});
+
+//브랜드 조회 팝업에서 호출
+var fnSetBrandInfo = function(result) {
+	var arrbrandCd 	= [];
+	var brandText 	= "";
+	var bIndex 		= 0;
+
+	$('#searchForm').find('#brandText').html('');
+	$('#searchForm input[name=searchTxt]').val('');
+
+	result.forEach(function(brand){
+		bIndex++;
+		arrbrandCd.push(brand.brandCd);
+	});
+
+	// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리
+	if (bIndex == 1) {
+		$('#searchForm input[name=searchTxt]').val(arrbrandCd[0]);
+	}else{
+		brandText = bIndex + " 개";
+		$('#searchForm').find('#brandText').html(brandText);
+	}
+	var jsonData = JSON.stringify(arrbrandCd);
+	$("#searchForm input[name=brandList]").val(jsonData);
+}
+
+</script>
+
+</html>
+
+
+
+
+

+ 380 - 0
src/main/webapp/WEB-INF/views/order/OrderSellerWithdrawListForm.html

@@ -0,0 +1,380 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : OrderSellerWithdrawListForm.html
+ * @desc    : 임점상품검수중목록 Page
+ *============================================================================
+ * SISUN
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.17   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+ 
+<div id="main">
+	<!-- 메인타이틀 영역 -->
+	<div class="main-title"></div>
+	<!-- //메인타이틀 영역 -->
+	
+	<!-- 메뉴 설명 -->
+	<div class="infoBox menu-desc"></div>
+	<!-- //메뉴 설명 -->
+	
+	<form id="searchForm" name="searchForm" action="#" th:action="@{'/order/seller/withdraw/list'}">
+		<input type="hidden" id="searchGb" name="searchGb" />
+		
+		<!-- 패널 영역1 -->
+		<div class="panelStyle" >
+			<!-- 검색조건 영역 -->
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3>
+					<i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">주문번호</font> 또는 <font color="red">검색조건</font> 하나를 꼭 입력해 주세요.
+				</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			
+			<div class="panelContent">
+				<table class="frmStyle">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+					</colgroup>
+					<tr>
+						<th>업체</th>
+						<td>
+							<input type="text" class="w100" name="supplyCompSearchTxt" id="supplyCompSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchSupplyComp"><i class="fa fa-search"></i></button>
+							<span id="supplyCompText"></span>
+							<input type="hidden" name="supplyCompList"/>
+						</td>
+						<th>브랜드</th>
+						<td colspan="5">
+							<input type="text" class="w100" name="searchTxt" id="searchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchBrand"><i class="fa fa-search"></i></button>
+							<span id="brandText"></span>
+							<input type="hidden" name="brandList"/>
+						</td>
+					</tr>
+					<tr>
+						<th>주문번호</th>
+						<td>
+							<input type="text" name="ordNo" placeholder="" maxlength="20"/>
+						</td>
+						<th>주문자명</th>
+						<td>
+							<input type="text" name="chgerNm" placeholder="" maxlength="20"/>
+						</td>
+						<th>상품코드</th>
+						<td>
+							<input type="text" name="goodsCd" placeholder="" maxlength="20"/>
+						</td>
+						<th>변경구분</th>
+						<td>
+							<select name="chgGb" id="chgGb">
+								<option value="">전체</option>
+								<option value="G680_30">반품</option>
+								<option value="G680_40">교환</option>
+							</select>
+						</td>
+					</tr>
+					<tr>
+						<th>조회일자</th>
+						<td colspan="7">
+							<select name="searchDateGb">
+								<option value="ordDt">요청일자</option>
+							</select>
+							<span id="terms"></span>
+						</td>
+					</tr>
+				</table>
+				
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-info btn-lg" id="btnOrderSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" id="btnInit">초기화</button>
+					</li>
+				</ul>
+				
+			</div>
+		</div>
+		
+		<div class="panelStyle">
+			<!-- 
+			<ul class="panelBar">
+				<li class="aR">
+					<button type="button" id="btnSave" class="btn btn-success btn-lg">회수컨펌</button>
+				</li>
+			</ul>
+			 -->
+			
+			<div class="panelContent" style="overflow: hidden;">
+				<div id="gridList" style="width: 100%; height: 500px;" class="ag-theme-balham lh30"></div>
+			</div>
+		</div>
+	</form>
+</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+var sessRoleCd 			= [[${sessionInfo.roleCd}]];
+var columnDefs = [
+	{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
+	{headerName: "입점업체",			field:"supplyCompNm",		width:120, cellClass: 'text-center'},
+	{headerName: "입점업체코드",		field:"supplyCompCd",		width:120, cellClass: 'text-center', hide: true},
+	{headerName: "브랜드",			field:"brandKnm",			width:100, cellClass: 'text-center'},
+	{headerName: "주문번호",			field:"ordNo",				width:100, cellClass: 'text-center'},
+	{headerName: "주문상세번호",		field:"ordDtlNo",			width:100, cellClass: 'text-center'},
+	{headerName: "주문변경번호",		field:"ordChgSq",			width:100, cellClass: 'text-center'},
+	{
+		headerName		: "변경요청"
+		, field			: "ordChgSq"
+		, width			: 120
+		, cellClass		: 'text-center'
+		, cellRenderer: function (params) {
+			var retStr = "";
+			var paramData 	= params.data.ordNo;
+			paramData 		+= '@' + params.data.ordDtlNo;
+			paramData 		+= '@' + params.data.delvFeeCd;
+			paramData 		+= '@' + params.data.delvFeeCdGrp;
+			retStr 			+= '<button type="button" class="btn btn-base btn-sm" onclick="fnReturnRequest(\''+paramData +'\',\''+params.value +'\');">회수컨펌</button>';
+			return retStr;
+		}
+	},
+	{headerName: "클레임상태",			field:"chgStatNm", 			width:100, cellClass: 'text-center'},
+	{headerName: "요청일시",			field:"regDt", 				width:150, cellClass: 'text-center'},
+	{headerName: "요청자명",			field:"chgerNm",			width:100, cellClass: 'text-center'},
+	{headerName: "휴대전화",			field:"chgerPhnno",			width:120, cellClass: 'text-center'},
+	{headerName: "회수지우편번호",		field:"chgerZipcode",		width:120, cellClass: 'text-center'},
+	{headerName: "회수지기본주소",		field:"chgerBaseAddr",		width:150, cellClass: 'text-left'},
+	{headerName: "회수지상세주소",		field:"chgerDtlAddr",		width:120, cellClass: 'text-left'},
+	{headerName: "업체상품코드",		field:"supplyGoodsCd",		width:100, cellClass: 'text-center'},
+	{headerName: "상품코드",			field:"goodsCd",			width:100, cellClass: 'text-center'},
+	{headerName: "상품명",			field:"goodsNm",			width:100, cellClass: 'text-center'},
+	{headerName: "옵션1",			field:"optCd1",				width:100, cellClass: 'text-center'},
+	{headerName: "옵션2",			field:"optCd2",				width:100, cellClass: 'text-center'},
+	{headerName: "요청수량",			field:"chgQty",				width:100, cellClass: 'text-center'},
+	{headerName: "교환상세번호",		field:"exchangeOrdDtlNo",	width:100, cellClass: 'text-center'},
+	{headerName: "교환옵션1",			field:"optCd11",			width:100, cellClass: 'text-center'},
+	{headerName: "교환옵션2",			field:"optCd12",			width:100, cellClass: 'text-center'},
+	{headerName: "물류메모",			field:"whMemo",				width:200, cellClass: 'text-left'	, editable:true}
+];
+
+var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+gridOptions.suppressRowClickSelection 		= true;
+gridOptions.rowSelection 					= 'multiple';
+gridOptions.stopEditingWhenGridLosesFocus 	= true;
+
+// 초기화 클릭시
+$('#btnInit').on('click', function() {
+	$('#searchForm')[0].reset();
+	
+	$("#searchForm #supplyCompText").text("");
+	$("#searchForm #brandText").text("");
+
+	$('#searchForm input[name=brandList]').val('');
+	$('#searchForm input[name=supplyCompList]').val('');
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+// 목록회수컨펌
+$('#btnSave').on('click', function () {
+	var selectedData = gridOptions.api.getSelectedRows();
+	if (selectedData.length == 0) {
+		mcxDialog.alert('선택된 행이 없습니다.');
+		return;
+	}
+	
+	mcxDialog.confirm('선택된 행을 회수컨펌 하시겠습니까?', {
+		cancelBtnText	: "취소",
+		sureBtnText		: "확인",
+		sureBtnClick	: function(){
+			var jsonData = JSON.stringify(selectedData);
+			gagajf.ajaxJsonSubmit('/orderChange/seller/widthdrawList/confirm/update', jsonData, fnSaveCallback);
+		}
+	});
+});
+
+// 입고확인후실행 
+var fnSaveCallback = function(result){
+	mcxDialog.alert(result.msg);
+	fnSearch();
+	return;
+}
+
+// 조회버튼
+$('#btnOrderSearch').on('click', function() {
+	fnSearch();
+});
+
+//2021.01.25 추가
+//반품요청
+var fnReturnRequest = function (paramData, ordChgSq) {
+	
+	// 취소요청 구분 (orChgSq null 이면 취소요청화면 있으면 취소요청정보화면)
+	if (ordChgSq == null) {
+		ordChgSq = 0;
+	}
+	
+	var paramArr 	= paramData.split("@");
+	var param 		= "";
+	param += "&ordNo=" 			+ paramArr[0];
+	param += "&ordDtlNo=" 		+ paramArr[1];
+	param += "&delvFeeCd="		+ paramArr[2];
+	param += "&delvFeeCdGrp="	+ paramArr[3];
+	param += "&ordChgSq=" 		+ ordChgSq;
+	
+	var actionUrl = "/orderChange/seller/withdraw/confirm/form?" + param;
+	
+	cfnOpenModalPopup(actionUrl, 'popupReturnRequestForm');
+};
+
+// 검색
+var fnSearch = function() {
+	var formId 		= '#searchForm';
+	var ordNo 		= $('#searchForm input[name=ordNo]').val();
+	var stDate 		= $('#stDate').val();
+	var edDate 		= $('#edDate').val();
+
+	if (!gagajf.isNull(stDate)) {
+		if (gagajf.isNull(edDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+
+	if (!gagajf.isNull(edDate)) {
+		if (gagajf.isNull(stDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+	
+	// 2021.09.11 조회일자가 없을때 조회조건체크
+	var supplyCompSearchTxt 	= $("#searchForm #supplyCompSearchTxt").val();
+	var supplyCompList 			= $('#searchForm input[name=supplyCompList]').val();
+	var brandText 				= $("#searchForm #brandText").val();
+	var brandList 				= $('#searchForm input[name=brandList]').val();
+	
+	if (gagajf.isNull(stDate) && gagajf.isNull(edDate)) {
+		var temp = false;
+		
+		if (!gagajf.isNull(ordNo)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompSearchTxt)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(supplyCompList)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandText)) {
+			temp = true;
+		}
+		if (!gagajf.isNull(brandList)) {
+			temp = true;
+		}
+		
+		if (temp == false) {
+			mcxDialog.alert('조회조건을 설정 해주세요.');
+			return;
+		}
+	}
+	
+	gagaAgGrid.fetch($(formId).prop('action'), gridOptions, formId);
+}
+
+//초기설정
+$(document).ready(function() {
+	// 달력기능 활성화
+	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문', 'X');
+	
+	gagaAgGrid.createGrid('gridList', gridOptions);
+	gridOptions.api.hideOverlay();
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+//2021.07.13 업체,브랜드 검색방법 변경
+//업체 조회 선택시
+$('#btnSearchSupplyComp').on('click', function() {
+	cfnOpenCompanyListPopup('fnSetSupplyCompInfo', 'M');
+});
+
+//업체 조회 팝업에서 호출
+var fnSetSupplyCompInfo = function(result) {
+	var arrSupplyComp 	= [];
+	var supplyCompText 	= "";
+	var sIndex 			= 0;
+
+	$('#searchForm').find('#supplyCompText').html('');
+	$('#searchForm input[name=supplyCompSearchTxt]').val('');
+
+	result.forEach(function(supplyComp){
+		sIndex++;
+		arrSupplyComp.push(supplyComp.supplyCompCd);
+	});
+
+	// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리
+	if (sIndex == 1) {
+		$('#searchForm input[name=supplyCompSearchTxt]').val(arrSupplyComp[0]);
+	} else {
+		supplyCompText = sIndex + " 개";
+		$('#searchForm').find('#supplyCompText').html(supplyCompText);
+	}
+
+	var jsonData = JSON.stringify(arrSupplyComp);
+	$("#searchForm input[name=supplyCompList]").val(jsonData);
+}
+
+//브랜드 조회 선택시
+$('#btnSearchBrand').on('click', function() {
+	cfnOpenBrandListPopup('fnSetBrandInfo', 'M');
+});
+
+//브랜드 조회 팝업에서 호출
+var fnSetBrandInfo = function(result) {
+	var arrbrandCd 	= [];
+	var brandText 	= "";
+	var bIndex 		= 0;
+
+	$('#searchForm').find('#brandText').html('');
+	$('#searchForm input[name=searchTxt]').val('');
+
+	result.forEach(function(brand){
+		bIndex++;
+		arrbrandCd.push(brand.brandCd);
+	});
+
+	// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리
+	if (bIndex == 1) {
+		$('#searchForm input[name=searchTxt]').val(arrbrandCd[0]);
+	}else{
+		brandText = bIndex + " 개";
+		$('#searchForm').find('#brandText').html(brandText);
+	}
+	var jsonData = JSON.stringify(arrbrandCd);
+	$("#searchForm input[name=brandList]").val(jsonData);
+}
+</script>
+
+</html>
+
+
+
+
+

+ 249 - 0
src/main/webapp/WEB-INF/views/order/OrderWithdrawConfirmForm.html

@@ -0,0 +1,249 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : CancelRequestForm.html
+ * @desc    : 입점업체 회수컨펌 화면
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2019 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.18   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+<div class="modalPopup" data-width="1400" data-height="520">
+	<div class="panelStyle">
+		<div class="panelTitle">
+			<h2>회수컨펌</h2>
+			<button type="button" class="close" onclick="uifnPopupClose('popupReturnRequestForm');"><i class="fa fa-times"></i></button>
+		</div>
+			
+		<div class="panelContent" style="height:90%; overflow-y:auto; padding:0px 20px !important; ">
+			<form id="cancelRequestFrm" name="cancelRequestFrm" method="post" target="hdFrameForOrderCancel">
+				<input type="hidden" name="ordNo" 			th:value="${ordNo}"/>
+				<input type="hidden" name="ordChgSq" 		th:value="${ordChgSq}"/>
+				<input type="hidden" name="chgReason" 		th:value="${chgReason}"/>
+				
+				<th:block th:if="${chgGb} == 'G680_30'">
+					<h4>반품정보</h4>
+				</th:block>
+				<th:block th:if="${chgGb} == 'G680_40'">
+					<h4>교환정보</h4>
+				</th:block>
+				<div id="gridOrderWithdrawList" style="width:100%; height: 200px;" class="ag-theme-balham"></div>
+				
+				<div style="text-align:right; padding-bottom:5px; padding-top:5px;">
+					<button type="button" class="btn btn-success" id="widthdrawConfirmBtn">회수컨펌</button>
+				</div>
+				
+				<table class="frmStyle">
+					<colgroup>
+						<col style="width:160px;" />
+						<col style="width:320px;" />
+						<col style="width:160px;" />
+						<col style="width:320px;" />
+						<col style="width:160px;" />
+						<col />
+					</colgroup>
+					<tbody>
+						<tr>
+							<!-- 반품회수 -->
+							<th:block th:if="${chgGb} == 'G680_30'">
+								<th>반품사유 <i class="star"></i></th>
+								<td>
+									<select name="selectChgReason" onchange="fnChangeChgReason($(this).val());">
+										<option value="">[선택하세요]</option>
+										<th:block th:if="${chgReasonList1}" th:each="oneData, status : ${chgReasonList1}">
+											<th:block th:if="${oneData.cd} == ${chgReason}">
+												<option th:value="|${oneData.cd}|" th:text="|${oneData.cdNm}|" selected></option>
+											</th:block>
+											<th:block th:unless="${oneData.cd} == ${chgReason}">
+												<option th:value="|${oneData.cd}|" th:text="|${oneData.cdNm}|"></option>
+											</th:block>
+										</th:block>
+									</select>
+								</td>
+							</th:block>
+							<!-- //반품회수 -->
+							
+							<!-- 교환회수 -->
+							<th:block th:if="${chgGb} == 'G680_40'">
+								<th>교환사유 <i class="star"></i></th>
+								<td>
+									<select name="selectChgReason" onchange="fnChangeChgReason($(this).val());">
+										<option value="">[선택하세요]</option>
+										<th:block th:if="${chgReasonList2}" th:each="oneData, status : ${chgReasonList2}">
+											<th:block th:if="${oneData.cd} == ${chgReason}">
+												<option th:value="|${oneData.cd}|" th:text="|${oneData.cdNm}|" selected></option>
+											</th:block>
+											<th:block th:unless="${oneData.cd} == ${chgReason}">
+												<option th:value="|${oneData.cd}|" th:text="|${oneData.cdNm}|"></option>
+											</th:block>
+										</th:block>
+									</select>
+								</td>
+							</th:block>
+							<!-- //교환회수 -->
+							
+							<th>회수방법</th>
+							<td>
+								<th:blcok th:if="${wdGb} == 'W'">회수요청</th:blcok>
+								<th:blcok th:if="${wdGb} == 'D'">직접발송</th:blcok>
+							</td>
+							<th>귀책사유</th>
+							<td><span id="imputeReason"></span></td>
+						</tr>
+						<tr>
+							<th>요청메모</th>
+							<td colspan="5">
+								<textarea id="chgMemo" name="chgMemo" style="height:80px;" placeholder="취소사유를 300자내외로 작성해 주세요" th:text="${chgMemo}"></textarea>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+			</form>
+		</div>
+	</div>
+</div>
+
+<!-- data -->
+<script th:inline="javascript">
+/*<![CDATA[*/
+var orderWithdrawList 	= [[${orderWithdrawList}]];		// 회수대상목록
+var sessRoleCd 			= [[${sessionInfo.roleCd}]];	// 권한코드
+var chgReason			= [[${chgReason}]];				// 사유코드
+var chgGb				= [[${chgGb}]];					// 요천구분
+
+var columnWidthdrawList = [
+	{headerName: "입점업체",			field:"supplyCompNm",		width:120, cellClass: 'text-center'	, hide: true},
+	{headerName: "입점업체코드",		field:"supplyCompCd",		width:120, cellClass: 'text-center'	, hide: true},
+	{headerName: "브랜드",			field:"brandKnm",			width:100, cellClass: 'text-center'	, hide: true},
+	{headerName: "변경번호",			field:"ordChgSq",			width:80, cellClass: 'text-center'},
+	{headerName: "주문번호",			field:"ordNo",				width:80, cellClass: 'text-center'},
+	{headerName: "상세번호",			field:"ordDtlNo",			width:80, cellClass: 'text-center'},
+	{headerName: "클레임상태",			field:"chgStatNm", 			width:100, cellClass: 'text-center'},
+	{headerName: "요청일시",			field:"regDt", 				width:150, cellClass: 'text-center'},
+	{headerName: "요청자명",			field:"chgerNm",			width:100, cellClass: 'text-center'},
+	{headerName: "휴대전화",			field:"chgerPhnno",			width:120, cellClass: 'text-center'},
+	{headerName: "회수지우편번호",		field:"chgerZipcode",		width:120, cellClass: 'text-center'	, hide: true},
+	{headerName: "회수지기본주소",		field:"chgerBaseAddr",		width:150, cellClass: 'text-left'	, hide: true},
+	{headerName: "회수지상세주소",		field:"chgerDtlAddr",		width:120, cellClass: 'text-left'	, hide: true},
+	{headerName: "업체상품코드",		field:"supplyGoodsCd",		width:100, cellClass: 'text-center'},
+	{headerName: "상품코드",			field:"goodsCd",			width:100, cellClass: 'text-center'},
+	{headerName: "상품명",			field:"goodsNm",			width:100, cellClass: 'text-center'},
+	{headerName: "옵션1",			field:"optCd1",				width:100, cellClass: 'text-center'},
+	{headerName: "옵션2",			field:"optCd2",				width:100, cellClass: 'text-center'},
+	{headerName: "요청수량",			field:"chgQty",				width:100, cellClass: 'text-center'},
+	{headerName: "교환상세번호",		field:"exchangeOrdDtlNo",	width:100, cellClass: 'text-center'},
+	{headerName: "교환옵션1",			field:"optCd11",			width:100, cellClass: 'text-center'},
+	{headerName: "교환옵션2",			field:"optCd12",			width:100, cellClass: 'text-center'},
+	{headerName: "물류메모",			field:"whMemo",				width:200, cellClass: 'text-left'	, editable:true},
+	{headerName: "주문자명",			field:"ordNm",				width:120, cellClass: 'text-left'	, hide: true},
+	{headerName: "주문자핸드폰번호",	field:"ordPhnno",			width:120, cellClass: 'text-left'	, hide: true},
+];
+
+var gridOptionsWidthdrawList = gagaAgGrid.getGridOptions(columnWidthdrawList);
+</script>
+
+<script th:inline="javascript">
+
+// 사유코드체크
+var fnChangeChgReason = function(reasonCd) {
+	var customerReasonArr = ['G688_10', 'G689_10'];	
+	isCustomer = false;
+	
+	// 귀책사유체크(취소,반품,교환)
+	for (i=0 ; i<customerReasonArr.length ; i++) {
+		if (customerReasonArr[i] == reasonCd) {
+			isCustomer = true;
+		}
+	}
+	
+	// 귀책사유체크(회사,고객)
+	if (isCustomer) {
+		$("#imputeReason").text("고객");
+	} else {
+		$("#imputeReason").text("회사");
+	}
+	
+	$('#cancelRequestFrm input[name=chgReason]').val(reasonCd);
+}
+
+$(document).ready(function() {
+	// 1. 그리드생성
+	gagaAgGrid.createGrid('gridOrderWithdrawList', gridOptionsWidthdrawList);
+	gridOptionsWidthdrawList.api.setRowData(orderWithdrawList);
+	
+	// 2. TOTAL ROWS 없애기
+	gagaAgGrid.hideStatusBar('gridOrderWithdrawList');
+	
+	// 사유체크실행
+	fnChangeChgReason(chgReason);
+});
+
+
+// 회수컨펌버튼
+$("#widthdrawConfirmBtn").on("click", function(){
+	
+	// 1. 취소사유 체크
+	var chgReason = $("#cancelRequestFrm select[name=selectChgReason]").val();
+	if (gagajf.isNull(chgReason)) {
+		mcxDialog.alert("취소사유를 입력하세요."); 
+		return ;
+	}
+	
+	// 변경신청목록
+	var withdrawConfirmList = [];
+	
+	for (i=0 ; i<orderWithdrawList.length ; i++) {
+		var obj = new Object();
+		obj.ordChgSq 			= orderWithdrawList[i].ordChgSq;
+		obj.ordNo 				= orderWithdrawList[i].ordNo;
+		obj.ordDtlNo			= orderWithdrawList[i].ordDtlNo;
+		obj.whMemo 				= orderWithdrawList[i].whMemo;
+		obj.supplyCompCd		= orderWithdrawList[i].supplyCompCd;
+		obj.ordNm				= orderWithdrawList[i].ordNm;
+		obj.ordPhnno			= orderWithdrawList[i].ordPhnno;
+		obj.chgQty				= orderWithdrawList[i].chgQty;
+		obj.exchangeOrdDtlNo 	= orderWithdrawList[i].exchangeOrdDtlNo;
+		
+		withdrawConfirmList.push(obj);
+	}
+	
+	// 2. 데이타적재
+	var jsonObj = {
+		"ordNo"					: $('#cancelRequestFrm input[name=ordNo]').val()
+		,"ordChgSq"				: $('#cancelRequestFrm input[name=ordChgSq]').val()
+		,"chgReason" 			: $('#cancelRequestFrm input[name=chgReason]').val()
+		,"chgGb" 				: chgGb
+		,"chgMemo"				: $('#chgMemo').val()
+		,"isCustomer"			: isCustomer
+		,"withdrawConfirmList"	: withdrawConfirmList
+	}
+	
+	// 주문번호, 취소사유, 취소메모, (취소, 반품, 교환 신청 정보 목록), 환불계좌
+	var jsonData = JSON.stringify(jsonObj);
+	
+	mcxDialog.confirm('회수컨펌을 진행 하시겠습니까?', {
+		cancelBtnText		: "취소",
+		sureBtnClick		: function(){
+			gagajf.ajaxJsonSubmit(
+				"/orderChange/seller/widthdraw/confirm/update"
+				, jsonData
+				, function() {
+					uifnPopupClose('popupReturnRequestForm');
+					fnSearch();
+				}
+			);
+		}
+	});
+});
+</script>
+</html>
+
+
+
+
+

+ 283 - 0
src/main/webapp/WEB-INF/views/order/SoldOutCnclFailList.html

@@ -0,0 +1,283 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : SoldOutCnclFailList.html
+ * @desc    : 자동품절취소실패목록 Page
+ *============================================================================
+ * SISUN
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.09.11   jsh77b       최초 작성
+ *******************************************************************************
+ -->
+ 
+<div id="main">
+	<!-- 메인타이틀 영역 -->
+	<div class="main-title">
+	</div>
+	<!-- //메인타이틀 영역 -->
+	
+	<!-- 메뉴 설명 -->
+	<div class="infoBox menu-desc">
+	</div>
+	
+	<form id="searchForm" name="searchForm" action="#" th:action="@{'/order/soldOutCnclFail/list'}">
+		<input type="hidden" id="searchGb" name="searchGb" />
+		<input type="hidden" id="imageViewYn" name="imageViewYn" />
+		<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+		
+		<!-- 패널 영역1 -->
+		<div class="panelStyle" >
+			<!-- 검색조건 영역 -->
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3>
+					<i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">주문번호</font> 또는 <font color="red">검색조건</font> 하나를 꼭 입력해 주세요.
+				</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			
+			<div class="panelContent">
+				<table class="frmStyle">
+					<colgroup>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+						<col style="width:10%;"/>
+						<col style="width:15%;"/>
+					</colgroup>
+					<tr>
+						<th>주문번호</th>
+						<td>
+							<input type="text" name="ordNo" placeholder="" maxlength="20"/>
+						</td>
+						<th>주문자명</th>
+						<td>
+							<input type="text" name="ordNm" placeholder="" maxlength="20"/>
+						</td>
+						<th>상품코드</th>
+						<td colspan="3">
+							<input type="text" name="goodsCd" placeholder="" maxlength="20"/>
+						</td>
+					</tr>
+					<tr>
+						<th>조회일자</th>
+						<td colspan="7">
+							<select name="searchDateGb">
+								<option value="ordDt">주문일자</option>
+							</select>
+							<span id="terms"></span>
+						</td>
+					</tr>
+				</table>
+				
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-info btn-lg" id="btnOrderSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" id="btnInit">초기화</button>
+					</li>
+				</ul>
+				
+			</div>
+		</div>
+		
+		<div class="panelStyle">
+			<div class="panelContent" style="overflow: hidden;">
+				<div id="gridList" style="width: 100%; height: 700px;" class="ag-theme-balham lh30"></div>
+			</div>
+		</div>
+		
+	</form>
+</div>
+
+<label class="off">
+	<a href="javascript:void(0);" id="hdOrderExcelList" style="display: none;">엑셀다운로드</a>
+</label>
+
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=20210114"></script>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+var columnDefs = [
+	{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
+	{
+		headerName		: "주문번호"
+		, field			: 'ordNo'
+		, width			: 80
+		, cellClass		: 'text-center'
+		, sortable		: true
+		, cellRenderer	: function (params) {
+			var roleCd = [[${sessionInfo.roleCd}]];
+			if (!roleCd.startsWith("C")) {
+				return "<a href=\"javascript:void(0);\" onclick=\"fnOpenOrderDetailPopup('" + params.value + "');\">" + params.value + "</a>";
+			} else {
+				return params.value;
+			}
+		}
+	},
+	{headerName: "주문상세번호",		field:"ordDtlNo",		width:100, cellClass: 'text-center'},
+	,
+	{
+		headerName		: "변경요청"
+		, field			: "ordDtlStat"
+		, width			: 200
+		, cellClass		: 'text-center'
+		, cellRenderer: function (params) {
+			var retStr = "";
+			// 네이버페이 주문형은 버튼 생성X
+			if(params.data.pgGb == "NAVER_ORDER") return retStr;
+
+			// 결제완료, 상품준비중, 출고처지정, 배송준비중 (주문취소)
+			// 2021.07.08 card007 교환상품은 취소 안되게 수정
+			if (params.data.ordExchGb == 'O') {
+				if (params.value == 'G013_20' || params.value == 'G013_30' || params.value == 'G013_35' || params.value == 'G013_40') {
+					if (params.data.ordQty > (params.data.cnclRtnQty + params.data.ordReqChgQty)) {
+						var paramData = params.data.ordNo;
+						paramData += '@' + params.data.ordDtlNo;
+						paramData += '@' + params.data.delvFeeCd;
+						paramData += '@' + params.data.delvFeeCdGrp;
+						paramData += '@' + params.data.ordDtlStat;
+						retStr += '<button type="button" class="btn btn-base btn-sm" onclick="fnCancelRequest(\'' + paramData + '\', null);">취소요청</button>';
+					}
+				}
+			}
+			return retStr;
+		}
+	},
+	{headerName: "상품코드",			field:"goodsCd",		width:100, cellClass: 'text-center'},
+	{headerName: "옵션코드",			field:"optCd",			width:100, cellClass: 'text-center'},
+	{headerName: "옵션1",			field:"optCd1",			width:100, cellClass: 'text-center'},
+	{headerName: "옵션2",			field:"optCd2", 		width:100, cellClass: 'text-center'},
+	{headerName: "주문수량",			field:"ordQty",			width:100, cellClass: 'text-center'},
+	{headerName: "기취소수량",			field:"cnclRtnQty",		width:100, cellClass: 'text-center'},
+	{headerName: "품절수량",			field:"exceptionQty",	width:100, cellClass: 'text-center'},
+	{headerName: "사유",				field:"reasonCd",		width:100, cellClass: 'text-center'},
+	{headerName: "결제수단",			field:"payMeansNm",		width:100, cellClass: 'text-center'},
+	{headerName: "TID",				field:"pgTid",			width:100, cellClass: 'text-center'},
+	{headerName: "주문일시",			field:"regDt",			width:100, cellClass: 'text-center',
+		cellRenderer		: function (params) {
+			return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
+		}
+	},
+	{headerName: "수정일시",			field:"updDt",			width:100, cellClass: 'text-center',
+		cellRenderer		: function (params) {
+			return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
+		}
+	}
+];
+
+var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+gridOptions.suppressRowClickSelection = true;
+gridOptions.rowSelection = 'multiple';
+gridOptions.stopEditingWhenGridLosesFocus = true;
+
+// 조회버튼
+$('#btnOrderSearch').on('click', function() {
+	fnSearch();
+});
+
+// 검색
+var fnSearch = function() {
+	var formId 		= '#searchForm';
+	var ordNo 		= $('#searchForm input[name=ordNo]').val();
+	var stDate 		= $('#stDate').val();
+	var edDate 		= $('#edDate').val();
+
+	if (!gagajf.isNull(stDate)) {
+		if (gagajf.isNull(edDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+
+	if (!gagajf.isNull(edDate)) {
+		if (gagajf.isNull(stDate)) {
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+	}
+	
+	// 2021.09.11 조회일자가 없을때 조회조건체크	
+	if (gagajf.isNull(stDate) && gagajf.isNull(edDate)) {
+		var temp = false;
+		
+		if (!gagajf.isNull(ordNo)) {
+			temp = true;
+		}
+		if (temp == false) {
+			mcxDialog.alert('조회조건을 설정 해주세요.');
+			return;
+		}
+	}
+
+	gagaAgGrid.fetch($(formId).prop('action'), gridOptions, formId);
+}
+
+// 초기화 클릭시
+$('#btnInit').on('click', function() {
+	$('#searchForm')[0].reset();
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+// 초기설정
+$(document).ready(function() {
+	// 달력기능 활성화
+	cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '주문', 'X');
+	gagaAgGrid.createGrid('gridList', gridOptions);
+	gridOptions.api.hideOverlay();
+	
+	// 최근한주검색
+	$('.btnRecentWeek').trigger('click');
+});
+
+var fnOpenOrderDetailPopup = function (ordNo) {
+	currOrdNo = ordNo;
+	cfnOpenOrderDetailPopup(ordNo);
+};
+
+//2021.01.25 추가
+//취소요청, 교환요청, 반품요청 일때는 요청 정보 확인 팝업 정보
+var fnCancelRequest = function (paramData, ordChgSq) {
+	// 취소요청 구분 (orChgSq null 이면 취소요청화면 있으면 취소요청정보화면)
+	if (ordChgSq == null) {
+		ordChgSq = 0;
+	}
+	
+	var paramArr 	= paramData.split("@");
+	var param 		= "";
+	param += "&ordNo=" 			+ paramArr[0];
+	param += "&ordDtlNo=" 		+ paramArr[1];
+	param += "&delvFeeCd="		+ paramArr[2];
+	param += "&delvFeeCdGrp="	+ paramArr[3];
+	param += "&chgStat="		+ paramArr[4];
+	param += "&ordChgSq=" 		+ ordChgSq;
+	
+	var actionUrl = "/orderChange/cncl/req/form?" + param;
+	
+	// 2021.06.30 취소완료일때 취소완료정보 조회
+	if (paramArr[4] == "G685_17" || paramArr[4] == "G685_18") {
+		actionUrl = "/orderChange/cnclRtn/complete/view?" + param;	
+	}
+
+	cfnOpenModalPopup(actionUrl, 'popupCancelRequestForm');
+	
+	return false;
+};
+</script>
+
+</html>
+
+
+
+
+