浏览代码

Merge branch 'develop' into bin2107

bin2107 5 年之前
父节点
当前提交
2a5b2d9750
共有 19 个文件被更改,包括 1133 次插入177 次删除
  1. 11 1
      src/main/java/com/style24/admin/biz/dao/TsaDeliveryDao.java
  2. 18 2
      src/main/java/com/style24/admin/biz/dao/TsaWithdrawDao.java
  3. 45 0
      src/main/java/com/style24/admin/biz/dao/TsaWmsWithdrawDao.java
  4. 16 2
      src/main/java/com/style24/admin/biz/service/TsaDeliveryService.java
  5. 18 2
      src/main/java/com/style24/admin/biz/service/TsaWithdrawService.java
  6. 58 0
      src/main/java/com/style24/admin/biz/service/TsaWmsWithdrawService.java
  7. 38 16
      src/main/java/com/style24/admin/biz/web/TsaDeliveryController.java
  8. 52 2
      src/main/java/com/style24/admin/biz/web/TsaWithdrawController.java
  9. 9 0
      src/main/java/com/style24/persistence/domain/Delivery.java
  10. 72 0
      src/main/java/com/style24/persistence/domain/WmsWithdraw.java
  11. 181 8
      src/main/java/com/style24/persistence/mybatis/shop/TsaDelivery.xml
  12. 2 2
      src/main/java/com/style24/persistence/mybatis/shop/TsaSocial.xml
  13. 11 4
      src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml
  14. 113 0
      src/main/java/com/style24/persistence/mybatis/wms/TsaWmsWithdraw.xml
  15. 146 119
      src/main/webapp/WEB-INF/views/delivery/DeliveryWithdrawDirectiveListForm.html
  16. 1 1
      src/main/webapp/WEB-INF/views/withdraw/RefundDetailForm.html
  17. 1 1
      src/main/webapp/WEB-INF/views/withdraw/RefundRegisterListForm.html
  18. 2 17
      src/main/webapp/WEB-INF/views/withdraw/WithdrawExceptionListForm.html
  19. 339 0
      src/main/webapp/WEB-INF/views/withdraw/WmsWithdrawListForm.html

+ 11 - 1
src/main/java/com/style24/admin/biz/dao/TsaDeliveryDao.java

@@ -147,13 +147,23 @@ public interface TsaDeliveryDao {
 	 */
 	void createBangoods(Delivery delivery);
 	
+	/**
+	 * 배송/회수지시 목록 건수
+	 *
+	 * @param goodsSearch
+	 * @return
+	 * @author moon
+	 * @since 2021. 03. 12
+	 */
+	int getDeliveryWithdrawDirectiveListCount(Delivery delivery);
+	
 	/**
 	 * 배송/회수지시 목록
 	 *
 	 * @param Delivery - 배송/회수지시 정보
 	 * @return Collection<Delivery>
 	 * @author moon
-	 * @since 2020. 11. 11
+	 * @since 2021. 03. 12
 	 */	
 	Collection<Delivery> getDeliveryWithdrawDirectiveList(Delivery delivery);
 }

+ 18 - 2
src/main/java/com/style24/admin/biz/dao/TsaWithdrawDao.java

@@ -8,14 +8,16 @@ import com.style24.persistence.domain.Delivery;
 //import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Withdraw;
 import com.style24.persistence.domain.WithdrawExc;
+import com.style24.persistence.domain.WmsWithdraw;
+
 import com.style24.core.support.annotation.ShopDs;
 import org.springframework.stereotype.Repository;
 
 /**
  * 회수관리 Dao
  * 
- * @author Daehyoung
- * @since 2020. 02. 06
+ * @author moon
+ * @since 2020. 11. 16
  */
 @ShopDs
 @Repository
@@ -53,6 +55,20 @@ public interface TsaWithdrawDao {
 	 */
 	void updateWithdrawException(WithdrawExc withdrawExc);
 	
+	
+	/**
+	 * 상품옵션 정보
+	 * 
+	 * @param WmsWithdraw
+	 * @return WmsWithdraw
+	 * @author moon
+	 * @since 2021. 03. 11
+	 */
+	WmsWithdraw getOptionInfo(WmsWithdraw wmswithdraw);
+		
+	
+	
+	
 	/**
 	 * 회수등록 - 조회(송장번호용)
 	 * 

+ 45 - 0
src/main/java/com/style24/admin/biz/dao/TsaWmsWithdrawDao.java

@@ -0,0 +1,45 @@
+package com.style24.admin.biz.dao;
+
+import java.util.Collection;
+
+import org.springframework.dao.DataAccessException;
+
+import com.style24.persistence.domain.WmsWithdraw;
+
+import com.style24.core.support.annotation.WmsDs;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 회수관리 Dao
+ * 
+ * @author moon
+ * @since 2021. 03. 10
+ */
+@WmsDs
+@Repository
+public interface TsaWmsWithdrawDao {
+
+	
+	/**
+	 *  WMS회수 목록  건수
+	 * 
+	 * @param WmsWithdraw
+	 * @return int
+	 * @author moon
+	 * @since 2021. 03. 10
+	 */
+	int getWmsWithdrawListCount(WmsWithdraw wmsWithdraw);
+
+	/**
+	 * WMS회수 목록 
+	 * 
+	 * @param WmsWithdraw
+	 * @return Collection<WmsWithdraw>
+	 * @author moon
+	 * @since 2021. 03. 10
+	 */
+	Collection<WmsWithdraw> getWmsWithdrawList(WmsWithdraw wmsWithdraw);
+	
+	
+
+}

+ 16 - 2
src/main/java/com/style24/admin/biz/service/TsaDeliveryService.java

@@ -52,7 +52,7 @@ public class TsaDeliveryService {
 	/**
 	 * 배송 목록 건수
 	 *
-	 * @param goodsSearch
+	 * @param Delivery
 	 * @return
 	 * @author moon
 	 * @since 2021. 02. 26
@@ -263,13 +263,27 @@ public class TsaDeliveryService {
 		}
 	}
 	
+	/**
+	 * 배송/회수지시 목록 건수
+	 *
+	 * @param Delivery
+	 * @return
+	 * @author moon
+	 * @since 2021. 02. 26
+	 */
+	public int getDeliveryWithdrawDirectiveListCount(Delivery delivery) {
+		return deliveryDao.getDeliveryWithdrawDirectiveListCount(delivery);
+	}	
+	
+	
+	
 	/**
 	 * 배송/회수지시 목록
 	 *
 	 * @param -Delivery
 	 * @return Collection<Delivery>
 	 * @author moon
-	 * @since 2020. 11. 11
+	 * @since 2021. 03. 12
 	 */	
 	public Collection<Delivery> getDeliveryWithdrawDirectiveList(Delivery delivery) {
 		return deliveryDao.getDeliveryWithdrawDirectiveList(delivery);

+ 18 - 2
src/main/java/com/style24/admin/biz/service/TsaWithdrawService.java

@@ -16,7 +16,6 @@ import lombok.extern.slf4j.Slf4j;
 import com.style24.admin.biz.dao.TsaDeliveryDao;
 //import com.style24.admin.biz.dao.TsaOrderDao;
 import com.style24.admin.biz.dao.TsaWithdrawDao;
-//import com.style24.admin.biz.dao.TsaWmsWithdrawDao;
 import com.style24.persistence.domain.Delivery;
 //import com.style24.persistence.domain.Coupon;
 //import com.style24.persistence.domain.Delivery;
@@ -25,7 +24,7 @@ import com.style24.persistence.domain.Delivery;
 //import com.style24.persistence.domain.Point;
 import com.style24.persistence.domain.Withdraw;
 import com.style24.persistence.domain.WithdrawExc;
-
+import com.style24.persistence.domain.WmsWithdraw;
 
 //import com.style24.admin.support.env.TsaConstants;
 //import com.style24.admin.support.env.TsaConstants.OrderStat;
@@ -109,6 +108,23 @@ public class TsaWithdrawService {
 		
 	}
 	
+	/**
+	 * 회수예외 목록 
+	 *
+	 * @param Delivery
+	 * @return
+	 * @author moon
+	 * @since 2021. 03. 04
+	 */
+	public Collection<WmsWithdraw> getOptionInfo(Collection<WmsWithdraw> wmsWithdrawList) {
+		
+		for(WmsWithdraw data : wmsWithdrawList) {
+			
+			WmsWithdraw optionInfo = withdrawDao.getOptionInfo(data);
+			data.setGoodsCd(optionInfo.getGoodsCd());
+		}
+		return wmsWithdrawList; 
+	}	
 	
 	/**
 	 * 회수등록 - 조회(송장번호용)

+ 58 - 0
src/main/java/com/style24/admin/biz/service/TsaWmsWithdrawService.java

@@ -0,0 +1,58 @@
+package com.style24.admin.biz.service;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import lombok.extern.slf4j.Slf4j;
+
+import com.style24.admin.biz.dao.TsaWmsWithdrawDao;
+import com.style24.persistence.domain.WmsWithdraw;
+import com.style24.core.support.message.TscMessageByLocale;
+
+/**
+ * 회수관리 Service
+ *
+ * @author moon
+ * @since 2020. 11. 16
+ */
+@Service
+@Slf4j
+public class TsaWmsWithdrawService {
+
+	@Autowired
+	private TscMessageByLocale message;
+
+	@Autowired
+	private TsaWmsWithdrawDao wmsWithdrawDao;
+
+
+	/**
+	 * WMS회수 목록 건수
+	 *
+	 * @param Delivery
+	 * @return
+	 * @author moon
+	 * @since 2021. 03. 10
+	 */
+	public int getWmsWithdrawListCount(WmsWithdraw wmsWithdraw) {
+		return wmsWithdrawDao.getWmsWithdrawListCount(wmsWithdraw);
+	}
+	
+	/**
+	 * WMS회수 목록 
+	 *
+	 * @param Delivery
+	 * @return
+	 * @author moon
+	 * @since 2021. 03. 10
+	 */
+	public Collection<WmsWithdraw> getWmsWithdrawList(WmsWithdraw wmsWithdraw) {
+		return wmsWithdrawDao.getWmsWithdrawList(wmsWithdraw);
+	}
+	
+}

+ 38 - 16
src/main/java/com/style24/admin/biz/web/TsaDeliveryController.java

@@ -410,30 +410,52 @@ public class TsaDeliveryController extends TsaBaseController {
 	}
 	
 	/**
-	 * 출고예외관리 화면 
-	 *
-	 * @param
-	 * @return
+	 * 배송/회수지시목록 화면
+	 * 
+	 * @return ModelAndView
 	 * @throws Exception
 	 * @author moon
-	 * @since 2021. 02. 19
+	 * @since 2021. 03. 12
 	 */
-	@GetMapping("/exception/form")
-	@ResponseBody
-	public ModelAndView deliveryExceptionListForm() throws Exception {
+	@RequestMapping(value = "/dwdirect/list/form")
+	public ModelAndView deliveryWithdrawDirectiveListForm() throws Exception {
 		ModelAndView mav = new ModelAndView();
 
-		// 공급업체
-		//mav.addObject("supplyCompList", rendererService.getSupplyCompanyList());
-		// 출고처 목록
-		//DeliveryLoc deliLoc = new DeliveryLoc(); 
-		//deliLoc.mav.addObject("getDeliveryLocList", rendererService.getDeliveryLocList(deliLoc));
-		
-		mav.setViewName("/delivery/DeliveryExceptionListForm");
+		// 사이트구분
+		mav.addObject("siteCdList", rendererService.getAvailCommonCodeList("G000"));
+
+		mav.setViewName("delivery/DeliveryWithdrawDirectiveListForm");
 
 		return mav;
 	}
 
-	
+	/**
+	 * 배송/회수지시 목록
+	 * 
+	 * @param dwDirective - 배송/회수지시 정보
+	 * @return
+	 * @throws Exception
+	 * @author moon
+	 * @since 2021. 03. 12
+	 */
+	@RequestMapping(value = "/dwdirect/list", method = RequestMethod.POST)
+	@ResponseBody
+	public GagaMap getDeliveryWithdrawDirectiveList(@RequestBody Delivery dwDirective) throws Exception {
+
+		GagaMap result = new GagaMap();
+
+		dwDirective.setPageable(new TscPageRequest(dwDirective.getPageNo() - 1, dwDirective.getPageSize()));
+		dwDirective.getPageable().setTotalCount(deliveryService.getDeliveryWithdrawDirectiveListCount(dwDirective)); 
+
+
+		if ("N".equals(dwDirective.getPageingYn())) {
+			dwDirective.setPageable(null);
+		}		
+		
+		result.set("pageing", dwDirective);
+		result.set("dwdirectList", deliveryService.getDeliveryWithdrawDirectiveList(dwDirective));		
 		
+		return result;
+	}	
+
 }

+ 52 - 2
src/main/java/com/style24/admin/biz/web/TsaWithdrawController.java

@@ -24,9 +24,11 @@ import com.style24.persistence.domain.Delivery;
 import com.style24.persistence.domain.Pos;
 import com.style24.persistence.domain.Withdraw;
 import com.style24.persistence.domain.WithdrawExc;
+import com.style24.persistence.domain.WmsWithdraw;
 import com.style24.admin.biz.service.TsaDeliveryService;
 import com.style24.admin.biz.service.TsaRendererService;
 import com.style24.admin.biz.service.TsaWithdrawService;
+import com.style24.admin.biz.service.TsaWmsWithdrawService;
 import com.style24.admin.support.controller.TsaBaseController;
 import com.style24.admin.support.security.session.TsaSession;
 import com.style24.core.support.message.TscMessageByLocale;
@@ -53,6 +55,9 @@ public class TsaWithdrawController extends TsaBaseController {
 
 	@Autowired
 	private TscMessageByLocale message;
+	
+	@Autowired
+	private TsaWmsWithdrawService wmsWithdrawService;
 
 	/**
 	 * 회수등록 화면
@@ -485,13 +490,58 @@ public class TsaWithdrawController extends TsaBaseController {
 	@PostMapping("/exception/complete")
 	@ResponseBody
 	public GagaResponse updateWithdrawException(@RequestBody WithdrawExc withdrawExc) {
-		Delivery delivery = new Delivery();
-
 		withdrawService.createWithdrawInfo(withdrawExc);
 		
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 	
 	
+	/**
+	 * WMS회수목록 화면 
+	 *
+	 * @param
+	 * @return
+	 * @throws Exception
+	 * @author moon
+	 * @since 2021. 03. 10
+	 */
+	@GetMapping("/wms/list/form")
+	@ResponseBody
+	public ModelAndView wmsWithdrawListForm() throws Exception {
+		ModelAndView mav = new ModelAndView();
+		
+		mav.setViewName("/withdraw/WmsWithdrawListForm");
+
+		return mav;
+	}
 	
+	/**
+	 *WMS회수목록 조회 
+	 * 
+	 * @param
+	 * @return
+	 * @throws Exception
+	 * @author moon
+	 * @since 2021. 03. 10
+	 */
+	@PostMapping("/wms/list")
+	@ResponseBody
+	public GagaMap getWmsWithdrawList(@RequestBody WmsWithdraw wmsWithdraw) throws Exception {
+		
+		GagaMap result = new GagaMap();
+		wmsWithdraw.setPageable(new TscPageRequest(wmsWithdraw.getPageNo() - 1, wmsWithdraw.getPageSize()));
+		wmsWithdraw.getPageable().setTotalCount(wmsWithdrawService.getWmsWithdrawListCount(wmsWithdraw));
+		if ("N".equals(wmsWithdraw.getPageingYn())) {
+			wmsWithdraw.setPageable(null);
+		}
+		result.set("pageing", wmsWithdraw);
+		Collection<WmsWithdraw> wmsList = wmsWithdrawService.getWmsWithdrawList(wmsWithdraw);
+		
+		wmsList = withdrawService.getOptionInfo(wmsList);
+		
+		result.set("wmsWithdrawList", wmsList);
+		
+
+		return result;
+	}	
 }

+ 9 - 0
src/main/java/com/style24/persistence/domain/Delivery.java

@@ -90,6 +90,15 @@ public class Delivery extends TscBaseDomain {
 	private String edDate;
 	
 	
+	private String delvGb;
+	private String delvGbNm;         // 지시구분명
+	private String sendYn;           // 전송여부
+	private String ordNm;            // 주문자명
+	private String ordPhnno;         // 주문자휴대전화번호
+	private String ordTelno;         // 주문자전화번호
+	private String ordEmail;         // 주문자이메일
+	
+	
 	private String[] conditions = null;
 	
 	

+ 72 - 0
src/main/java/com/style24/persistence/domain/WmsWithdraw.java

@@ -0,0 +1,72 @@
+package com.style24.persistence.domain;
+
+import lombok.Data;
+
+import com.style24.persistence.TscBaseDomain;
+import com.style24.persistence.TscPageRequest;
+
+/**
+ * WMS회수 Domain
+ * 
+ * @author moon
+ * @since 2021. 03. 10
+ */
+@SuppressWarnings("serial")
+@Data
+public class WmsWithdraw extends TscBaseDomain {
+
+	// 페이징 
+	private String pageingYn;
+	private int startRow;
+	private int endRow;
+	private TscPageRequest pageable;
+	private int pageNo = 1;
+	private int pageSize = 50;
+	private int pageUnit = 10;
+	
+	// WMS회수
+	private Integer recallno;			// 반품 번호 
+	private Integer orderexceptionno;	// 주문변경번호  
+	private String recalltypecd;		// 반품타입
+	private String receiver;			// 받는자
+	private String receivertelnum;		// 받는자 전화번호
+	private String receivercellnum;		// 받는자 핸드폰 번호
+	private String deliverypostalcode;	// 우편 번호
+	private String deliveryaddr1;		// 기본 주소
+	private String deliveryaddr2;		// 상세 주소
+	private String orderno;				// 주문 번호
+	private String orderguid;			// 주문 고유 번호
+	private String customername;		// 주문자
+	private String loginid;				// 아이디
+	private String csmemo;				// cs 메모
+	private String datecsmemoupdated;	// cs 메모 변경일
+	private String wmsmemo;				// wms 메모
+	private String datewmsmemoupdated;	// wms 메모 변경일
+	private String datecreated;			// 생성일 // 회수요청일
+	private String isdeleted;			// 삭제 여부  
+	private String datedeleted;			// 삭제일  x
+	private String deliveryaddrnew;		// 도로명 주소
+	private String recallitemno;		// 반품 항목 번호 x
+	private String productno;			// 상품 번호
+	private String productcode;			// 상품 코드
+	private String productname;			// 상품명
+	private String skucode;				// 옵션 코드
+	private String skuvalue;			// 옵션 내용
+	private int recallqty;				// 수량
+	private String statuscd;			// 상태
+	private String datecompleted;		// 완료일
+	private String logisticsname;		// 택배사 명
+	private String recallinvoiceno;		// 회수송장번호
+	private String invoiceno;			// 원운송장번호
+	private Integer orderdtlno;			// 주문상세번호
+	private String goodsCd;             // 상품코드
+
+	private int rnum;
+	// 검색
+	
+	private String stDate;					// 조회 시작 기간
+	private String edDate;					// 조회 종료 기간
+	
+	
+
+}

+ 181 - 8
src/main/java/com/style24/persistence/mybatis/shop/TsaDelivery.xml

@@ -7,12 +7,10 @@
 		<choose>
 		<when test="pageable != null">
 		    ) A
-		    JOIN ( SELECT @rownum := 0) R
 		)Z WHERE RNUM BETWEEN  #{pageable.startRow} AND #{pageable.endRow}
 		</when>
 		<otherwise>
 		    ) A
-		    JOIN ( SELECT @rownum := 0) R
 		)Z
 		</otherwise>
 		</choose>
@@ -75,7 +73,7 @@
 		    , (SELECT BD.BRAND_KNM FROM TB_BRAND BD WHERE BD.BRAND_CD = Z.BRAND_CD ) AS BRAND_NM
 		    , FN_GET_CODE_NM('G056', Z.GOODS_TYPE ) AS GOODS_TYPE_NM 
 		FROM (
-		    SELECT A.*, @rownum := @rownum + 1  RNUM 
+		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.ORD_NO DESC, A.ORD_DTL_NO) RNUM 
 		    FROM (
 				SELECT A.* 
 				  FROM (
@@ -167,7 +165,7 @@
 								  INNER JOIN TB_ORDER_DETAIL_ITEM ODI ON B.ORD_DTL_NO   = ODI.ORD_DTL_NO
 							      INNER JOIN TB_GOODS C               ON ODI.ITEM_CD    = C.GOODS_CD
 							      INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
-							WHERE ODI.ORD_DTL_NO = '5'
+							WHERE 1=1 
 							  AND B.GOODS_TYPE NOT IN ('G056_S')
 					        <include refid="getDeliveryListCondition_sql"/>
 							
@@ -215,7 +213,7 @@
 							      INNER JOIN TB_ORDER_DETAIL B        ON A.ORD_NO       = B.ORD_NO
 							      INNER JOIN TB_GOODS C               ON B.GOODS_CD     = C.GOODS_CD
 							      INNER JOIN TB_DELIVERY_ADDR D       ON B.DELV_ADDR_SQ = D.DELV_ADDR_SQ
-							WHERE B.ORD_DTL_NO = '5'
+							WHERE 1=1
 							  AND B.GOODS_TYPE IN ('G056_S')
 							<include refid="getDeliveryListCondition_sql"/>  
 					) A
@@ -267,7 +265,7 @@
 		<choose>
 		     <when test='search != null and search == "searchOrdNo"'>
 		         <foreach collection="conditions" item="item" index="index" separator="or">
-		      ORD_NM REGEXP CONCAT('[',#{item},']')  
+		      ORD_NO REGEXP CONCAT('[',#{item},']')  
 		         </foreach>
 		     </when>
 		     <when test='search != null and search == "searchExtmallOrderId"'>
@@ -323,7 +321,7 @@
 		AND   B.DELV_STDT <![CDATA[<]]> STR_TO_DATE(REPLACE(#{edDate},'-','')+1 , '%Y%m%d%H%i%s') 
 		    </if>
 		</if>
-		AND B.ORD_DTL_STAT != '00'
+		AND B.ORD_DTL_STAT != 'G013_00'
 	</sql>
 
 
@@ -518,9 +516,184 @@
 		)
 	</insert>
 
+	<!-- 배송/회수지시 목록 건수 -->
+	<select id="getDeliveryWithdrawDirectiveListCount" parameterType="Delivery" resultType="int">
+		/* TsaDelivery.getDeliveryWithdrawDirectiveListCount */
+				SELECT COUNT(*) AS TOTCNT
+				  FROM (		
+						SELECT 
+						       '배송'                              AS DELV_GB_NM  -- 지시구분명
+						     , OD.INVOICE_SEND_YN                 AS SEND_YN     -- 전송여부
+						     , O.SITE_CD                                         -- 사이트코드
+						     , O.ORD_NO                                          -- 주문번호
+						     , OD.ORD_DTL_NO                                     -- 주문상세번호
+						     , IT.ITEM_CD AS GOODS_CD                            -- 상품코드
+						FROM   TB_ORDER O
+						 JOIN  TB_ORDER_DETAIL OD      ON O.ORD_NO = OD.ORD_NO
+						 JOIN  TB_DELIVERY_ADDR DA     ON OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ AND OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
+						 JOIN  TB_ORDER_DETAIL_ITEM IT ON OD.ORD_NO       = IT.ORD_NO       AND OD.ORD_DTL_NO   = IT.ORD_DTL_NO
+						 JOIN  TB_GOODS G              ON IT.ITEM_CD      = G.GOODS_CD
+						WHERE 1=1 
+						<if test="delvGb != null and delvGb != ''">
+						AND    'D' = #{delvGb} -- 배송지시
+						</if>
+						<if test="stDate != null and stDate != ''">
+						AND    O.REG_DT <![CDATA[>=]]> STR_TO_DATE(REPLACE(#{stDate},'-','') , '%Y%m%d%H%i%s')
+						</if>
+						<if test="edDate != null and edDate != ''">
+						AND    O.REG_DT <![CDATA[<]]> STR_TO_DATE(REPLACE(#{edDate},'-','')+1 , '%Y%m%d%H%i%s') 
+						</if>
+						<if test="siteCd != null and siteCd != ''">
+						AND    O.SITE_CD = #{siteCd}
+						</if>
+						AND    OD.ORD_DTL_STAT = 'G013_50' -- 배송중
+						<if test="sendYn != null and sendYn != ''">
+						AND    OD.INVOICE_SEND_YN = #{sendYn}
+						</if>
+						AND    G.SELF_GOODS_YN = 'Y' -- 자사상품만
+						
+						UNION ALL
+						
+						SELECT 
+						       '회수'                 AS DELV_GB_NM      -- 지시구분명
+						     , OC.WD_INVOICE_SEND_YN AS SEND_YN         -- 전송여부
+						     , O.SITE_CD                                -- 사이트코드
+						     , O.ORD_NO                                 -- 주문번호
+						     , OCD.ORD_DTL_NO                           -- 주문상세번호
+						     , IT.ITEM_CD AS GOODS_CD                   -- 상품코드
+						FROM   TB_ORDER_CHANGE OC          
+						JOIN   TB_ORDER_CHANGE_DETAIL OCD ON OC.ORD_CHG_SQ  = OCD.ORD_CHG_SQ 
+						JOIN   TB_ORDER_DETAIL OD         ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+						JOIN   TB_ORDER O                 ON OD.ORD_NO      = O.ORD_NO
+						JOIN   TB_ORDER_DETAIL_ITEM IT    ON OD.ORD_NO      = IT.ORD_NO     AND OD.ORD_DTL_NO     = IT.ORD_DTL_NO
+						JOIN   TB_GOODS G                 ON IT.ITEM_CD     = G.GOODS_CD
+						JOIN   TB_DELIVERY_LOC D          ON OD.DELV_LOC_CD = D.DELV_LOC_CD AND OD.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
+						WHERE  1=1 
+						<if test="delvGb != null and delvGb != ''">
+						AND    'W' = #{delvGb} -- 회수지시
+						</if>
+						AND    OC.CHG_GB IN ('G680_30','G680_40') -- 반품요청,교환요청
+						<if test="sendYn != null and sendYn != ''">
+						AND    OC.WD_INVOICE_SEND_YN = #{sendYn}
+						</if>
+						<if test="stDate != null and stDate != ''">
+						AND    OC.REG_DT <![CDATA[>=]]> STR_TO_DATE(REPLACE(#{stDate},'-','') , '%Y%m%d%H%i%s')
+						</if>
+						<if test="edDate != null and edDate != ''">
+						AND    OC.REG_DT <![CDATA[<]]> STR_TO_DATE(REPLACE(#{edDate},'-','')+1 , '%Y%m%d%H%i%s')
+						</if>
+						AND    OCD.CHG_STAT IN ('G685_30','G685_40') -- 반품요청,교환요청
+						<if test="siteCd != null and siteCd != ''">
+						AND    O.SITE_CD = #{siteCd}
+						</if>
+						AND    G.SELF_GOODS_YN = 'Y' -- 자사상품만
+						AND    OCD.DEL_YN      = 'N'
+					) A
+
+	</select>
+	
 	<!-- 배송/회수지시 목록 -->
 	<select id="getDeliveryWithdrawDirectiveList" parameterType="Delivery" resultType="Delivery">
 		/* TsaDelivery.getDeliveryWithdrawDirectiveList */
-		SELECT '1' FROM DUAL
+		SELECT Z.*
+		FROM (
+		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.DELV_GB_NM, A.ORD_NO DESC, A.ORD_DTL_NO )  RNUM 
+		    FROM ( 
+				SELECT A.* 
+				  FROM (		
+						SELECT DISTINCT
+						       '배송'                              AS DELV_GB_NM  -- 지시구분명
+						     , OD.INVOICE_SEND_YN                 AS SEND_YN     -- 전송여부
+						     , O.SITE_CD                                         -- 사이트코드
+						     , O.ORD_NO                                          -- 주문번호
+						     , OD.ORD_DTL_NO                                     -- 주문상세번호
+						     , IT.ITEM_CD AS GOODS_CD                            -- 상품코드
+						     , G.GOODS_NM                                        -- 상품명
+						     , DA.RECIP_NM                                       -- 수취인명
+						     , DA.RECIP_PHNNO                                    -- 수취인휴대전화번호
+						     , DA.RECIP_TELNO                                    -- 수취인전화번호
+						  --   , DA.RECIP_EMAIL                                    -- 수취인이메일
+						     , DA.RECIP_ZIPCODE                                  -- 수취인우편번호
+						     , DA.RECIP_BASE_ADDR                                -- 수취인기본주소
+						     , DA.RECIP_DTL_ADDR                                 -- 수취인상세주소
+						     , O.ORD_NM                                          -- 주문자명
+						     , O.ORD_PHNNO                                       -- 주문자휴대전화번호
+						     , O.ORD_TELNO                                       -- 주문자전화번호
+						     , O.ORD_EMAIL                                       -- 주문자이메일
+						FROM   TB_ORDER O
+						 JOIN  TB_ORDER_DETAIL OD      ON O.ORD_NO = OD.ORD_NO
+						 JOIN  TB_DELIVERY_ADDR DA     ON OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ AND OD.DELV_ADDR_SQ = DA.DELV_ADDR_SQ
+						 JOIN  TB_ORDER_DETAIL_ITEM IT ON OD.ORD_NO       = IT.ORD_NO       AND OD.ORD_DTL_NO   = IT.ORD_DTL_NO
+						 JOIN  TB_GOODS G              ON IT.ITEM_CD      = G.GOODS_CD
+						WHERE 1=1 
+						<if test="delvGb != null and delvGb != ''">
+						AND    'D' = #{delvGb} -- 배송지시
+						</if>
+						<if test="stDate != null and stDate != ''">
+						AND    O.REG_DT <![CDATA[>=]]> STR_TO_DATE(REPLACE(#{stDate},'-','') , '%Y%m%d%H%i%s')
+						</if>
+						<if test="edDate != null and edDate != ''">
+						AND    O.REG_DT <![CDATA[<]]> STR_TO_DATE(REPLACE(#{edDate},'-','')+1 , '%Y%m%d%H%i%s') 
+						</if>
+						<if test="siteCd != null and siteCd != ''">
+						AND    O.SITE_CD = #{siteCd}
+						</if>
+						AND    OD.ORD_DTL_STAT = 'G013_50' -- 배송중
+						<if test="sendYn != null and sendYn != ''">
+						AND    OD.INVOICE_SEND_YN = #{sendYn}
+						</if>
+						AND    G.SELF_GOODS_YN = 'Y' -- 자사상품만
+						
+						UNION ALL
+						
+						SELECT DISTINCT
+						       '회수'                 AS DELV_GB_NM      -- 지시구분명
+						     , OC.WD_INVOICE_SEND_YN AS SEND_YN         -- 전송여부
+						     , O.SITE_CD                                -- 사이트코드
+						     , O.ORD_NO                                 -- 주문번호
+						     , OCD.ORD_DTL_NO                           -- 주문상세번호
+						     , IT.ITEM_CD AS GOODS_CD                   -- 상품코드
+						     , G.GOODS_NM                               -- 상품명
+						     , D.RTN_LOC_NM          AS RECIP_NM        -- 수취인명
+						     , NULL                  AS RECIP_PHNNO     -- 수취인휴대전화번호
+						     , D.RTN_LOC_TELNO       AS RECIP_TELNO     -- 수취인전화번호
+						     , D.RTN_LOC_ZIPCODE     AS RECIP_POST_NO   -- 수취인우편번호
+						     , D.RTN_LOC_BASE_ADDR   AS RECIP_BASE_ADDR -- 수취인주소
+						     , D.RTN_LOC_DTL_ADDR    AS RECIP_DTL_ADDR  -- 수취인상세주소
+						     , O.ORD_NM                                 -- 주문자명
+						     , O.ORD_PHNNO                              -- 주문자휴대전화번호
+						     , O.ORD_TELNO                              -- 주문자전화번호
+						     , O.ORD_EMAIL                              -- 주문자이메일
+						FROM   TB_ORDER_CHANGE OC          
+						JOIN   TB_ORDER_CHANGE_DETAIL OCD ON OC.ORD_CHG_SQ  = OCD.ORD_CHG_SQ 
+						JOIN   TB_ORDER_DETAIL OD         ON OCD.ORD_DTL_NO = OD.ORD_DTL_NO
+						JOIN   TB_ORDER O                 ON OD.ORD_NO      = O.ORD_NO
+						JOIN   TB_ORDER_DETAIL_ITEM IT    ON OD.ORD_NO      = IT.ORD_NO     AND OD.ORD_DTL_NO     = IT.ORD_DTL_NO
+						JOIN   TB_GOODS G                 ON IT.ITEM_CD     = G.GOODS_CD
+						JOIN   TB_DELIVERY_LOC D          ON OD.DELV_LOC_CD = D.DELV_LOC_CD AND OD.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
+						WHERE  1=1 
+						<if test="delvGb != null and delvGb != ''">
+						AND    'W' = #{delvGb} -- 회수지시
+						</if>
+						AND    OC.CHG_GB IN ('G680_30','G680_40') -- 반품요청,교환요청
+						<if test="sendYn != null and sendYn != ''">
+						AND    OC.WD_INVOICE_SEND_YN = #{sendYn}
+						</if>
+						<if test="stDate != null and stDate != ''">
+						AND    OC.REG_DT <![CDATA[>=]]> STR_TO_DATE(REPLACE(#{stDate},'-','') , '%Y%m%d%H%i%s')
+						</if>
+						<if test="edDate != null and edDate != ''">
+						AND    OC.REG_DT <![CDATA[<]]> STR_TO_DATE(REPLACE(#{edDate},'-','')+1 , '%Y%m%d%H%i%s')
+						</if>
+						AND    OCD.CHG_STAT IN ('G685_30','G685_40') -- 반품요청,교환요청
+						<if test="siteCd != null and siteCd != ''">
+						AND    O.SITE_CD = #{siteCd}
+						</if>
+						AND    G.SELF_GOODS_YN = 'Y' -- 자사상품만
+						AND    OCD.DEL_YN      = 'N'
+					) A
+				ORDER BY A.DELV_GB_NM, A.ORD_NO DESC, A.ORD_DTL_NO
+				<include refid="getListPagingCondition_sql"/>
 	</select>
+	
 </mapper>

+ 2 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsaSocial.xml

@@ -201,8 +201,8 @@
 		SELECT COUNT(*)
 		FROM tb_social A
 		WHERE 1=1
-			AND A.USE_YN = #{useYn}
-			AND A.APPLY_GB = #{applyGb}
+			AND A.USE_YN = 'Y'
+			AND A.APPLY_GB = 'A'
 			AND  (A.SOCIAL_STDT <![CDATA[ <= ]]>  DATE_FORMAT(DATE_ADD(#{socialStdt}, INTERVAL 0 DAY), '%Y%m%d%H%i%S')  
 			OR A.SOCIAL_EDDT <![CDATA[ >= ]]>  DATE_FORMAT(DATE_ADD(#{socialStdt}, INTERVAL 0 DAY), '%Y%m%d%H%i%S'))  
 	</select>

+ 11 - 4
src/main/java/com/style24/persistence/mybatis/shop/TsaWithdraw.xml

@@ -7,12 +7,10 @@
 		<choose>
 		<when test="pageable != null">
 		    ) A
-		    JOIN ( SELECT @rownum := 0) R
 		)Z WHERE RNUM BETWEEN  #{pageable.startRow} AND #{pageable.endRow}
 		</when>
 		<otherwise>
 		    ) A
-		    JOIN ( SELECT @rownum := 0) R
 		)Z
 		</otherwise>
 		</choose>
@@ -57,7 +55,7 @@
 			, ROW_NUMBER() OVER W AS ROWSPAN_CNT
 	        , ROW_NUMBER() OVER T AS ROWSPAN_RANK
 		FROM (
-		    SELECT A.*, @rownum := @rownum + 1  RNUM 
+		    SELECT A.*, ROW_NUMBER() OVER(ORDER BY  A.ORDER_NO, A.RECALL_EXCEPTION_NO, A.RECALL_EXCEPTION_ITEM_NO)  RNUM 
 		    FROM (
 				SELECT A.* 
 				  FROM (
@@ -116,7 +114,7 @@
 
 	<!-- 회수예외 처리완료-->
 	<update id="updateWithdrawException" parameterType="WithdrawExc" >
-		/* TsaDelivery.deleteBangoods */
+		/* TsaWithdraw.deleteBangoods */
 		UPDATE TB_ORDER_RECALL_EXCEPTION SET
 		  RECALL_STAT = #{recallStat}
 		, RECALL_STAT_DT = NOW()
@@ -124,4 +122,13 @@
 
 	</update>
 
+	<!-- 상품옵션 정보 -->
+	<select id="getOptionInfo" parameterType="WmsWithdraw" resultType="WmsWithdraw">
+		/* TsaWithdraw.getOptionInfo */
+			SELECT GOODS_CD
+			 FROM  TB_OPTION 
+			WHERE OPT_CD = #{skucode} 
+	</select>
+	
+	
 </mapper>

+ 113 - 0
src/main/java/com/style24/persistence/mybatis/wms/TsaWmsWithdraw.xml

@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.admin.biz.dao.TsaWmsWithdrawDao">
+
+	<!-- WMS회수목록 건수 -->
+	<select id="getWmsWithdrawListCount" parameterType="WmsWithdraw" resultType="int">
+		/* TsaWmsWithdraw.getWmsWithdrawListCount */
+		SELECT COUNT(*) AS TOTCNT
+		  FROM (		
+				SELECT 
+					  A.RecallNo			-- 반품 번호 
+					, B.RecallItemNo		-- 반품 항목 번호 
+				  FROM ISTYLE24_WMSIF.DBO.TB_IF_RECALLDELIVERY A , ISTYLE24_WMSIF.DBO.TB_IF_RECALLDELIVERYITEM B
+				 WHERE A.RECALLNO = B.RECALLNO 
+					<if test='customername != null and customername != ""'> -- 주문자
+					AND   A.CustomerName = #{customername}
+					</if>
+					<if test='orderno != null and orderno != ""'>  -- 주문번호 
+					AND   A.OrderNo  = #{orderno}
+					</if>
+					<if test='statuscd != null and statuscd != ""'>  -- 입고상태
+					AND   B.StatusCd  = #{statuscd}
+					</if>
+	
+					<if test='recalltypecd != null and recalltypecd != ""'>  -- 반품타입
+					AND   A.RecallTypeCd = #{recalltypecd}
+					</if>
+					<if test='isdeleted != null and isdeleted != ""'>  -- 삭제여부 1삭제 
+					AND    A.IsDeleted = #{isdeleted}
+					</if>				
+					<if test='stDate != null and stDate != ""'> -- 회수요청일 
+					AND   A.DateCreated <![CDATA[>= ]]>  CONVERT(datetime,#{stDate}) 
+					</if>
+					<if test='edDate != null and edDate != ""'>
+					AND   A.DateCreated <![CDATA[<]]> CONVERT(datetime,#{edDate})+1 
+					</if>
+			) A
+
+	</select>
+		
+	<!-- WMS회수목록 -->
+	<select id="getWmsWithdrawList" parameterType="WmsWithdraw" resultType="WmsWithdraw">
+		/* TsaWmsWithdraw.getWmsWithdrawList */
+		SELECT Z.*
+		FROM (
+		    SELECT A.*,  ROW_NUMBER() OVER (ORDER BY RecallNo DESC, RecallItemNo ) as RNUM 
+		    FROM (
+		    
+				SELECT 
+					  A.RecallNo			-- 반품 번호 
+					, B.RecallItemNo		-- 반품 항목 번호 X
+					, A.OrderExceptionNo	-- 주문변경번호  
+					, A.RecallTypeCd		-- 반품타입
+					, A.Receiver			-- 받는자
+					, A.ReceiverTelNum		-- 받는자 전화번호
+					, A.ReceiverCellNum		-- 받는자 핸드폰 번호
+					, A.DeliveryPostalCode	-- 우편 번호
+					, A.DeliveryAddr1		-- 기본 주소
+					, A.DeliveryAddr2		-- 상세 주소
+					, A.OrderNo				-- 주문 번호
+					, A.OrderGUID			-- 주문 고유 번호
+					, A.CustomerName		-- 주문자
+					, A.LoginId				-- 아이디
+					, A.CSMemo				-- CS 메모
+					, CONVERT(char(10), A.DateCSMemoUpdated, 23) AS DateCSMemoUpdated	-- CS 메모 변경일
+					, A.WMSMemo				-- WMS 메모
+					, CONVERT(char(10), A.DateWMSMemoUpdated, 23) AS DateWMSMemoUpdated	-- WMS 메모 변경일
+					, CONVERT(char(10), A.DateCreated, 23) AS DateCreated			    -- 생성일 -- 회수요청일
+					, A.IsDeleted			-- 삭제 여부  
+					, A.DateDeleted			-- 삭제일  x
+					, A.DeliveryAddrNew		-- 도로명 주소
+					, B.ProductNo			-- 상품 번호
+					, B.ProductCode			-- 상품 코드
+					, B.ProductName			-- 상품명
+					, B.SKUCode				-- 옵션 코드
+					, B.SKUValue			-- 옵션 내용
+					, B.RecallQty			-- 수량
+					, B.StatusCd			-- 상태
+					, CONVERT(char(10), B.DateCompleted, 23) AS DateCompleted		-- 완료일
+					, B.LogisticsName		-- 택배사 명
+					, B.RecallInvoiceNo		-- 회수송장번호
+					, B.InvoiceNo			-- 원운송장번호
+					, B.OrderDtlNo			-- 주문상세번호
+				  FROM ISTYLE24_WMSIF.DBO.TB_IF_RECALLDELIVERY A , ISTYLE24_WMSIF.DBO.TB_IF_RECALLDELIVERYITEM B
+				 WHERE A.RECALLNO = B.RECALLNO 
+					<if test='customername != null and customername != ""'> -- 주문자
+					AND   A.CustomerName = #{customername}
+					</if>
+					<if test='orderno != null and orderno != ""'>  -- 주문번호
+					AND   A.OrderNo  = #{orderno}
+					</if>
+					<if test='statuscd != null and statuscd != ""'>  -- 입고상태
+					AND   B.StatusCd  = #{statuscd}
+					</if>
+	
+					<if test='recalltypecd != null and recalltypecd != ""'>  -- 반품타입
+					AND   A.RecallTypeCd = #{recalltypecd}
+					</if>
+					<if test='isdeleted != null and isdeleted != ""'>  -- 삭제여부 1삭제 
+					AND    A.IsDeleted = #{isdeleted}
+					</if>				
+					<if test='stDate != null and stDate != ""'> -- 회수요청일 
+					AND   A.DateCreated <![CDATA[>= ]]>  CONVERT(datetime,#{stDate}) 
+					</if>
+					<if test='edDate != null and edDate != ""'>
+					AND   A.DateCreated <![CDATA[<]]> CONVERT(datetime,#{edDate})+1 
+					</if>
+		    ) A
+		)Z WHERE RNUM BETWEEN  #{pageable.startRow} AND #{pageable.endRow}
+	</select>
+
+
+</mapper>

+ 146 - 119
src/main/webapp/WEB-INF/views/delivery/DeliveryWithdrawDirectiveListForm.html

@@ -6,15 +6,15 @@
  * @source  : DeliveryWithdrawDirectiveListForm.html
  * @desc    : 배송/회수지시 목록 Page
  *=============================================================
- * ISTYLE24
- * Copyright(C) 2019 TSIT, All rights reserved.
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
  *=============================================================
  * VER  DATE         AUTHOR      DESCRIPTION
  * ===  ===========  ==========  ==================================
- * 1.0  2020.11.11   moon        최초 작성
+ * 1.0  2021.03.11   moon        최초 작성
  *******************************************************************************
  -->
-	<div id="main">
+ 	<div id="main">
 		<!-- 메인타이틀 영역 -->
 		<div class="main-title">
 		</div>
@@ -23,28 +23,30 @@
 		<div class="infoBox menu-desc">
 		</div>
 		<!-- //메뉴 설명 -->
+		
+		<!-- 검색조건 영역 -->
+		<form id="searchForm" name="searchForm" action="#" th:action="@{'/delivery/dwdirect/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
 		<div class="panelStyle">
-		<!-- TITLE -->
-		<div class="panelTitle">
-			<h3><i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">기간, 키워드</font>중 하나를 꼭 입력해 주세요.</h3>
-			<span class="panelControl">
-				<i class="fa fa-chevron-up"></i>
-			</span>
-		</div>
-		<!-- //TITLE -->
-		<div class="panelContent">	
-			<form id="searchForm" name="searchForm" action="#" th:action="@{'/delivery/dwdirect/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
-				<table class="frmStyle">
-					<colgroup>
-						<col style="width:10%;"/>
-						<col style="width:20%;"/>
-						<col style="width:10%;"/>
-						<col style="width:20%;"/>
-						<col style="width:10%;"/>
-						<col/>
-					</colgroup>
-					<tbody>
-						<tr>
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3><i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">주문일/회수요청일</font>은 꼭 입력해 주세요.</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			<!-- //TITLE -->
+			<div class="panelContent">	
+				
+					<table class="frmStyle">
+						<colgroup>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+						</colgroup>
+												<tr>
 							<th>지시구분</th>
 							<td>
 								<select name="delvGb">
@@ -74,69 +76,79 @@
 							<td colspan="5" id="terms">
 							</td>
 						</tr>
-					</tbody>
-				</table>
-				<!-- <div class="panelBtnB">  -->
-				<ul class="panelBar">
-					<li class="center">
-					<button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset();">초기화</button>
-					<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
-					</li>
-				</ul>
-			
-			</form>
-			</div>
+					</table>
+	
+					<ul class="panelBar">
+						<li class="center">
+						<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset(); fnInitCalendar();">초기화</button>
+						<button type="button" id="btnExcel" class="btn btn-info btn-lg" >엑셀다운로드</button>
+						</li>
+					</ul>
+
+				</div>
 		</div>
+		<!-- //검색조건 영역 -->
 
+		<!-- 리스트 영역 -->
 		<div class="panelStyle">
 			<ul class="panelBar">
-				<li class="left">
-					<button type="button" class="btn btn-default btn-lg" id="btnExcel">엑셀다운로드</button>
+				<li class="right">
+					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
+					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
+					<select id="pageSize" name="pageSize">
+						<option value="20" selected="selected">20개씩 보기</option>
+						<option value="50">50개씩 보기</option>
+						<option value="100">100개씩 보기</option>
+						<option value="500">500개씩 보기</option>
+						<option value="1000">1000개씩 보기</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: 600px;"  class="ag-theme-balham"></div>
-			</div>
+			<div id="gridList" style="width:100%; height: 700px;" class="ag-theme-balham"></div>
+			<ul class="panelBar">
+				<li class="center">
+					<div class="tablePaging" id="delvWithdrawListPagination"></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 siteList = gagajf.convertToArray([[${siteCdList}]]);
 
 	var columnDefs = [
-		{headerName: "지시구분", field: "delvGbNm", width: 80, cellClass: "text-center"},
-		{
-			headerName: "택배사전송", field: "sendYn", width: 80, cellClass: "text-center",
+		{headerName: "지시구분", 		field: "delvGbNm", 		width: 80, cellClass: "text-center"},
+		{headerName: "택배사전송", 	field: "sendYn", 		width: 80, cellClass: "text-center",
 			cellRenderer: function (params) { return params.value == 'Y' ? '전송' : '미전송'; }
 		},
-		{
-			headerName: "사이트", field: "siteCd", width: 80, cellClass: "text-center",
+		{headerName: "사이트", 		field: "siteCd", 		width: 80, cellClass: "text-center",
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(siteList, params.value); }
 		},
-		{
-			headerName: "주문번호", field: "ordNo", width: 100, cellClass: "text-center",
+		{headerName: "주문번호", 		field: "ordNo", 		width: 100, cellClass: "text-center",
 			cellRenderer: function(params) { return gagajf.isNull(params.value) ? '' : '<a href="javascript:void(0);">' + params.value + '</a>'; }
 		},
-		{headerName: "주문상세번호", field: "ordDtlNo", width: 100, cellClass: "text-center"},
-		{
-			headerName: "상품코드", field: "goodsCd", width: 120, cellClass: "text-center",
+		{headerName: "주문상세번호", 	field: "ordDtlNo", 		width: 100, cellClass: "text-center"},
+		{headerName: "상품코드", 		field: "goodsCd", 		width: 120, cellClass: "text-center",
 			cellRenderer: function(params) { return gagajf.isNull(params.value) ? '' : '<a href="javascript:void(0);">' + params.value + '</a>'; }
 		},
-		{headerName: "상품명", field: "goodsNm", width: 200},
-		{headerName: "수취인명", field: "recipNm", width: 120, cellClass: "text-center"},
-		{headerName: "수취인휴대전화", field: "recipPhnno", width: 120, cellClass: "text-center"},
-		{headerName: "수취인전화번호", field: "recipTelno", width: 120, cellClass: "text-center"},
-		{headerName: "수취인이메일", field: "recipEmail", width: 120},
-		{headerName: "수취인우편번호", field: "recipPostNo", width: 120, cellClass: "text-center"},
-		{headerName: "수취인기본주소", field: "recipBaseAddr", width: 300},
-		{headerName: "수취인상세주소", field: "recipDtlAddr", width: 200},
-		{headerName: "주문자명", field: "orderNm", width: 100, cellClass: "text-center"},
-		{headerName: "주문자휴대전화", field: "orderPhnno", width: 120, cellClass: "text-center"},
-		{headerName: "주문자전화번호", field: "orderPhnno", width: 120, cellClass: "text-center"},
-		{headerName: "주문자이메일", field: "orderEmail", width: 120}
+		{headerName: "상품명", 		field: "goodsNm", 		width: 200, cellClass: "text-left"},
+		{headerName: "수취인명", 		field: "recipNm", 		width: 120, cellClass: "text-center"},
+		{headerName: "수취인휴대전화", 	field: "recipPhnno", 	width: 120, cellClass: "text-center"},
+		{headerName: "수취인전화번호", 	field: "recipTelno", 	width: 120, cellClass: "text-center"},
+		{headerName: "수취인우편번호", 	field: "recipZipcode", 	width: 120, cellClass: "text-center"},
+		{headerName: "수취인기본주소", 	field: "recipBaseAddr", width: 300, cellClass: "text-left"},
+		{headerName: "수취인상세주소", 	field: "recipDtlAddr", 	width: 200, cellClass: "text-left"},
+		{headerName: "주문자명", 		field: "ordNm", 		width: 100, cellClass: "text-center"},
+		{headerName: "주문자휴대전화", 	field: "ordPhnno", 		width: 120, cellClass: "text-center"},
+		{headerName: "주문자전화번호", 	field: "ordTelno", 		width: 120, cellClass: "text-center"},
+		{headerName: "주문자이메일", 	field: "ordEmail", 		width: 120, cellClass: "text-left"}
 	];
 
 	var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
@@ -155,65 +167,80 @@
 	// 조회
 	$('#btnSearch').on('click', function() {
 		// Fetch data
-		gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm');
+		//gagaAgGrid.fetch($('#searchForm').prop('action'), gridOptions, '#searchForm');
+		fnSearchList();
 	});
 
-// 	// 택배사 전송여부 변경시 처리
-// 	$('#sendYn').on('change',function(){
-// 		var sendVal = $('#searchForm select[name=sendYn]').val();
-// 		fnDatepickerDisabled(sendVal);
-// 	});
-
-// 	// 날짜선택 활성화/비활성화
-// 	var fnDatepickerDisabled = function(flag) {
-// 		if(flag == 'Y'){
-
-// 			$('#stDate').attr('disabled', false);
-// 			$('#edDate').attr('disabled', false);
-// 			$('.btn-default').attr('disabled', false);
-// 			$('.ui-datepicker-trigger').attr('disabled', false);
-// 			$('.btnToday').trigger('click');
-
-// 		} else {
-
-// 			$('#stDate').val('');
-// 			$('#edDate').val('');
-// 			$('#stDate').attr('disabled', true);
-// 			$('#edDate').attr('disabled', true);
-// 			$('.btn-default').attr('disabled', true);
-// 			$('.ui-datepicker-trigger').attr('disabled', true);
-// 		}
-// 	}
+	/*************************************************************************
+	*  조회 
+	**************************************************************************/
+	var fnSearchList = function() {
+		if($('#stDate').val() == ''){
+			mcxDialog.alert('시작 기간을 입력하세요.');
+			return;
+		}
+
+		if($('#edDate').val() == ''){
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+
+		// 날짜 유효성 체크
+		if (Number($('#stDate').val().replaceAll("-", "")) > Number($('#edDate').val().replaceAll("-", ""))) {
+			mcxDialog.alert("시작일은 종료일보다 클 수 없습니다.");
+			return;
+		}
+
+		gagaPaging.init('searchForm', fnSearchCallBack, 'delvWithdrawListPagination', $('#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.dwdirectList);
+		gagaPaging.createPagination(result.pageing.pageable);
+		
+	}
+	
+
 
 	//엑셀다운로드
 	$('#btnExcel').on('click', function() {
 		gagaAgGrid.exportToExcel('배송/회수지시 목록', gridOptions);
-// 		var totalRows = gridOptions.api.getDisplayedRowCount();
-// 		if(totalRows==0){
-// 			mcxDialog.alert('조회된 내역이 없습니다.');
-// 			return;
-// 		}
-
-// 		var date = new Date().format("YYYYMMDDHHmmss");
-// 		var params = {
-// 			fileName : "회수송장전송목록_"+ date,
-// 			sheetName: "DATA"
-// 		}
-// 		gridOptions.excelStyles = [
-// 			{
-// 				id: 'dateFormat',
-// 				dataType: 'dateTime',
-// 				numberFormat: {
-// 					format: 'YYYY-MM-DD;@'
-// 				}
-// 			},
-// 			{
-// 				id: 'textFormat',
-// 				dataType: 'string'
-// 			}
-// 		]
-
-// 		gridOptions.api.exportDataAsExcel(params);
+		
+		var totalRows = gridOptions.api.getDisplayedRowCount();
+		if(totalRows==0){
+			mcxDialog.alert('조회된 내역이 없습니다.');
+			return;
+		}
+
+		var date = new Date().format("YYYYMMDDHHmmss");
+		var params = {
+			fileName : "회수송장전송목록_"+ date,
+			sheetName: "DATA"
+		}
+		gridOptions.excelStyles = [
+			{
+				id: 'dateFormat',
+				dataType: 'dateTime',
+				numberFormat: {
+					format: 'YYYY-MM-DD;@'
+				}
+			},
+			{
+				id: 'textFormat',
+				dataType: 'string'
+			}
+		]
+		gridOptions.api.exportDataAsExcel(params);
+		
 	});
 
 	$(document).ready(function() {

+ 1 - 1
src/main/webapp/WEB-INF/views/withdraw/RefundDetailForm.html

@@ -6,7 +6,7 @@
  * @source  : RefundDetailForm.html
  * @desc    : 환불상세팝업
  *============================================================================
- * ISTYLE24
+ * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 1 - 1
src/main/webapp/WEB-INF/views/withdraw/RefundRegisterListForm.html

@@ -6,7 +6,7 @@
  * @source  : RefundRegisterListForm.html
  * @desc    : 환불관리 화면 Page
  *=============================================================
- * ISTYLE24
+ * STYLE24
  * Copyright(C) 2020 TSIT, All rights reserved.
  *=============================================================
  * VER  DATE         AUTHOR      DESCRIPTION

+ 2 - 17
src/main/webapp/WEB-INF/views/withdraw/WithdrawExceptionListForm.html

@@ -6,7 +6,7 @@
  * @source  : WithdrawExceptionListForm.html
  * @desc    : 회수예외관리 Page
  *=============================================================
- * ISTYLE24
+ * STYLE24
  * Copyright(C) 2021 TSIT, All rights reserved.
  *=============================================================
  * VER  DATE         AUTHOR      DESCRIPTION
@@ -68,7 +68,7 @@
 						</tr>
 						<tr>
 							<th class="dashR">등록일</th>
-							<td colspan="4" class="dashR">
+							<td colspan="6" class="dashR">
 								<span id="terms"></span>
 							</td>
 						</tr>
@@ -245,21 +245,6 @@
 	var fnInitCalendar = function() {
 		cfnChangeCalendar('7d', $('#stDate'), $('#edDate')); //달력 초기화
 	}
-
-	
-	function fnRowSpan(params) {
-		alert("alert");  
-		var orderNo = params.data.orderNo;
-		  alert("orderNo: "+orderNo);
-		  if (orderNo == 18691602) {
-		    // have all Russia age columns width 2
-		    return 2;
-		  } else {
-		    // all other rows should be just normal
-		    return 1;
-		  }
-		}
-	// rowSpan: params => params.data.orderNo === '18692992' ? 2 : 1	
 	
 	/*************************************************************************
 	*  회수예외 처리완료 버튼 - 대기->완료  업데이트

+ 339 - 0
src/main/webapp/WEB-INF/views/withdraw/WmsWithdrawListForm.html

@@ -0,0 +1,339 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : WmsWithdrawListForm.html
+ * @desc    : WMS회수목록 Page
+ *=============================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *=============================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  ==================================
+ * 1.0  2021.03.10   moon        최초 작성
+ * 1.1  
+ ********************************************************************************
+ -->
+ 
+	<div id="main">
+		<!-- 메인타이틀 영역 -->
+		<div class="main-title">
+		</div>
+		<!-- //메인타이틀 영역 -->
+		<!-- 메뉴 설명 -->
+		<div class="infoBox menu-desc">
+		</div>
+		<!-- //메뉴 설명 -->
+		
+		<!-- 검색조건 영역 -->
+		<form id="searchForm" name="searchForm" action="#" th:action="@{'/withdraw/wms/list'}" onsubmit="fnSearchList(); return false;">
+		<div class="panelStyle">
+			<!-- TITLE -->
+			<div class="panelTitle">
+				<h3><i class="fa fa-info-circle"></i>아래 검색조건 중 <font color="red">회수요청일</font>은 꼭 입력해 주세요.</h3>
+				<span class="panelControl">
+					<i class="fa fa-chevron-up"></i>
+				</span>
+			</div>
+			<!-- //TITLE -->
+			<div class="panelContent">	
+				
+					<table class="frmStyle">
+						<colgroup>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+							<col style="width:8%;"/>
+							<col style="width:12%;"/>
+						</colgroup>
+						<tr>
+							<th class="dashR">주문자명</th>
+							<td class="dashR">
+								<input type="text" class="w40p" name="customername" placeholder="" maxlength="20" />
+							</td>
+							<th class="dashR">주문번호</th>
+							<td class="dashR">
+								<input type="text" class="w40p" name="orderno" placeholder="" maxlength="20" data-valid-type="numeric"/>
+							</td>
+							<th class="dashR">입고상태</th>
+							<td class="dashR">
+								<select name="statuscd" id="statuscd">
+									<option value="" selected>전체</option>
+									<option value="입고대기">입고대기</option>
+									<option value="입고완료">입고완료</option>
+								</select>
+							</td>
+						</tr>
+						<tr>
+							<th class="dashR">반품타입</th>
+							<td class="dashR">
+								<select name="recalltypecd" id="recalltypecd">
+									<option value="" selected>전체</option>
+									<option value="10">일반</option>
+									<option value="20">교환</option>
+								</select>
+							</td>
+							<th class="dashR">삭제여부</th>
+							<td colspan="4" class="dashR">
+								<select name="isdeleted" id="isdeleted">
+									<option value="">전체</option>
+									<option value="1">Y</option>
+									<option value="0" selected>N</option>
+								</select>
+							</td>
+						</tr>						
+						<tr>
+							<th class="dashR">회수요청일</th>
+							<td colspan="6" class="dashR">
+								<span id="terms"></span>
+							</td>
+						</tr>
+					</table>
+	
+					<ul class="panelBar">
+						<li class="center">
+						<button type="button" class="btn btn-base btn-lg" id="btnSearch">조회</button>
+						<button type="button" class="btn btn-gray btn-lg" onclick="$('#searchForm')[0].reset(); fnInitCalendar();">초기화</button>
+						<button type="button" id="btnExcel" class="btn btn-info btn-lg" >엑셀다운로드</button>
+						</li>
+					</ul>
+
+				</div>
+		</div>
+		<!-- //검색조건 영역 -->
+
+		<!-- 리스트 영역 -->
+		<div class="panelStyle">
+			<ul class="panelBar">
+				<li class="right">
+					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
+					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
+					<select id="pageSize" name="pageSize">
+						<option value="20" selected="selected">20개씩 보기</option>
+						<option value="50">50개씩 보기</option>
+						<option value="100">100개씩 보기</option>
+						<option value="500">500개씩 보기</option>
+						<option value="1000">1000개씩 보기</option>
+					</select>
+					<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+				</li>
+			</ul>
+			<div id="gridList" style="width:100%; height: 700px;" class="ag-theme-balham"></div>
+			<ul class="panelBar">
+				<li class="center">
+					<div class="tablePaging" id="withdrawExceptionListPagination"></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[*/
+	
+	/*************************************************************************
+	* AG-GRID 영역 
+	**************************************************************************/
+	var uploadGoodsUrl = [[${@environment.getProperty('upload.goods.view')}]]; 
+	var roleCd = [[${sessionInfo.roleCd}]]; 
+
+	var columnDefs = [
+		{headerName: "No.",				field: "rnum",				width: 50,	cellClass: 'text-center'},
+		{headerName: "반품번호",			field: "recallno", 			width: 50,	cellClass: 'text-center', hide: true},
+		{headerName: "주문변경번호",		field: "orderexceptionno",	width: 100,	cellClass: 'text-center'},
+		{headerName: "주문번호",			field: "orderno",			width: 100,	cellClass: 'text-center',
+			cellRenderer: function (params) {
+				if (roleCd.indexOf("C") < 0) {
+					return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenOrderDetailPopup('" + params.data.orderno + "');\">" + params.data.orderno + "</a>";
+				} else {
+					return params.value;
+				}
+			}		
+		},
+		{headerName: "주문상세번호",		field: "orderdtlno",		width: 100,	cellClass: 'text-center'},
+		{headerName: "상태",				field: "statuscd",			width: 100,	cellClass: 'text-center'},
+		{headerName: "반품타입",			field: "recalltypecd",		width: 80,	cellClass: 'text-center',
+			cellRenderer: function (params) { return params.value == '10' ? '일반' : '교환'; }	
+		},
+		{headerName: "수취인",			field: "receiver",			width: 100,	cellClass: 'text-center'},
+		{headerName: "수취인전화번호",		field: "receivertelnum",	width: 120,	cellClass: 'text-center'},
+		{headerName: "수취인휴대폰번호",		field: "receivercellnum",	width: 120,	cellClass: 'text-center'},
+		{headerName: "우편번호",			field: "deliverypostalcode",width: 80,	cellClass: 'text-center'},
+		{headerName: "기본주소",			field: "deliveryaddr1",		width: 300,	cellClass: 'text-left'},
+		{headerName: "상세주소",			field: "deliveryaddr2",		width: 200,	cellClass: 'text-left'},
+		{headerName: "주문자",			field: "customername",		width: 100,	cellClass: 'text-center'},
+		{headerName: "ID",				field: "loginid",			width: 100,	cellClass: 'text-center'},
+		{headerName: "CS메모",			field: "csmemo",			width: 250,	cellClass: 'text-left'},	
+		{headerName: "CS메모 변경일",		field: "datecsmemoupdated",	width: 120,	cellClass: 'text-center'},
+		{headerName: "WMS메모",			field: "wmsmemo",			width: 250,	cellClass: 'text-left'},
+		{headerName: "WMS메모변경일",		field: "datewmsmemoupdated",width: 120,	cellClass: 'text-center'},
+		{headerName: "회수요청일",			field: "datecreated",		width: 100,	cellClass: 'text-center'},
+		{headerName: "삭제여부",			field: "isdeleted",			width: 80,	cellClass: 'text-center',
+			cellRenderer: function (params) { return params.value == '0' ? 'N' : 'Y'; }		
+		},
+		{headerName: "도로명주소",			field: "deliveryaddrnew",	width: 300,	cellClass: 'text-left'},
+		{headerName: "상품번호",			field: "productno",			width: 100,	cellClass: 'text-center'},
+		{headerName: "상품코드",			field: "productcode",		width: 100,	cellClass: 'text-center'},
+		{headerName: "상품명",			field: "productname",		width: 250,	cellClass: 'text-left',
+			cellRenderer: function (params) {
+				if (roleCd.indexOf("C") < 0) {
+					return "<a href=\"javascript:void(0);\" onclick=\"cfnOpenGoodsDetailPopup('U','" + params.data.goodsCd + "');\">" + params.value + "</a>";
+				} else {
+					return params.value;
+				}
+			}					
+		},
+		{headerName: "옵션코드",			field: "skucode",			width: 100,	cellClass: 'text-center'},
+		{headerName: "옵션 내용",			field: "skuvalue",			width: 100,	cellClass: 'text-center'},
+		{headerName: "수량",				field: "recallqty",			width: 100,	cellClass: 'text-center'},	
+		{headerName: "완료일",			field: "datecompleted",		width: 100,	cellClass: 'text-center'},
+		{headerName: "택배사 명",			field: "logisticsname",		width: 100,	cellClass: 'text-left'},
+		{headerName: "회수송장번호",		field: "recallinvoiceno",	width: 120,	cellClass: 'text-center'},
+		{headerName: "원운송장번호",		field: "invoiceno",			width: 120,	cellClass: 'text-center'}
+
+	];
+
+	var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+	//gridOptions.suppressRowTransform =true;
+	gridOptions.suppressRowClickSelection = true;
+	//gridOptions.rowSelection = 'multiple';
+	
+	//gridOptions.rowHeight = 35;
+	/*************************************************************************
+	*  조회 버튼 클릭 시
+	**************************************************************************/
+	$('#btnSearch').on('click', function() {
+		fnSearchList();
+	});
+
+	/*************************************************************************
+	*  조회 
+	**************************************************************************/
+	var fnSearchList = function() {
+		if($('#stDate').val() == ''){
+			mcxDialog.alert('시작 기간을 입력하세요.');
+			return;
+		}
+
+		if($('#edDate').val() == ''){
+			mcxDialog.alert('종료 기간을 입력하세요.');
+			return;
+		}
+
+		// 날짜 유효성 체크
+		if (Number($('#stDate').val().replaceAll("-", "")) > Number($('#edDate').val().replaceAll("-", ""))) {
+			mcxDialog.alert("시작일은 종료일보다 클 수 없습니다.");
+			return;
+		}
+
+		gagaPaging.init('searchForm', fnSearchCallBack, 'withdrawExceptionListPagination', $('#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.wmsWithdrawList);
+		gagaPaging.createPagination(result.pageing.pageable);
+		
+	}
+	
+	/*************************************************************************
+	*  달력 초기화 
+	**************************************************************************/		
+	var fnInitCalendar = function() {
+		cfnChangeCalendar('7d', $('#stDate'), $('#edDate')); //달력 초기화
+	}
+
+	
+	function fnRowSpan(params) {
+		alert("alert");  
+		var orderNo = params.data.orderNo;
+		  alert("orderNo: "+orderNo);
+		  if (orderNo == 18691602) {
+		    // have all Russia age columns width 2
+		    return 2;
+		  } else {
+		    // all other rows should be just normal
+		    return 1;
+		  }
+		}
+	// rowSpan: params => params.data.orderNo === '18692992' ? 2 : 1	
+	
+	/*************************************************************************
+	*  회수예외 처리완료 버튼 - 대기->완료  업데이트
+	**************************************************************************/	
+	var fnComplete = function(recallExceptionNo) {
+		var params = {};
+		params.recallExceptionNo = recallExceptionNo;
+		mcxDialog.confirm('처리완료 하시겠습니까?', {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",
+			sureBtnClick: function(){
+				var jsonData = JSON.stringify(params);
+				gagajf.ajaxJsonSubmit('/withdraw/exception/complete', jsonData, fnCompleteCallback);
+			}
+		});
+	};
+	
+	/*************************************************************************
+	*  회수예외 처리완료 콜백
+	**************************************************************************/		
+	var fnCompleteCallback = function() {
+		fnSearchList();
+	};
+	
+
+	/*************************************************************************
+	*  엑셀다운로드
+	**************************************************************************/		
+	$('#btnExcel').on('click', function() {
+		var totalRows = gridOptions.api.getDisplayedRowCount();
+		if(totalRows==0){
+			mcxDialog.alert('조회된 내역이 없습니다.');
+			return;
+		}
+
+		var date = new Date().format("YYYYMMDDHHmmss");
+		var params = {
+			fileName : "WMS회수예외목록_"+ date,
+			sheetName: "DATA"
+		}
+		gridOptions.excelStyles = [
+			{
+				id: 'dateFormat',
+				dataType: 'dateTime',
+				numberFormat: {
+					format: 'YYYY-MM-DD;@'
+				}
+			},
+			{
+				id: 'textFormat',
+				dataType: 'string'
+			}
+		]
+		gridOptions.api.exportDataAsExcel(params);
+	});
+
+	/*************************************************************************
+	*  init
+	**************************************************************************/		
+	$(document).ready(function() {
+		gagaAgGrid.createGrid('gridList', gridOptions);
+		cfnCreateCalendar('#terms', 'stDate', 'edDate', true, '');
+		fnInitCalendar();
+	});
+
+/*]]>*/
+</script>
+</html>