Переглянути джерело

Merge remote-tracking branch 'origin/develop' into xodud1202

xodud lee 5 роки тому
батько
коміт
dfa22bd343

+ 96 - 0
src/main/java/com/style24/batch/biz/dao/TsbDisplayDao.java

@@ -118,6 +118,102 @@ public interface TsbDisplayDao {
 	 */
 	int createTemporaryCategoryFilterBenefit();
 
+	/**
+	 * 임시브랜드별검색필터 - 사이즈 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandFilterSize();
+
+	/**
+	 * 임시브랜드별검색필터 - 가격 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandFilterPrice();
+
+	/**
+	 * 임시브랜드별검색필터 - 연령대 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandFilterAge();
+
+	/**
+	 * 임시브랜드별검색필터 - 시즌 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandFilterSeason();
+
+	/**
+	 * 임시브랜드별검색필터 - 색상 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandFilterColor();
+
+	/**
+	 * 임시브랜드별검색필터 - 혜택 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandFilterBenefit();
+
+	/**
+	 * 임시브랜드별 카테고리검색필터 - 사이즈 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandForCategoryFilterSize();
+
+	/**
+	 * 임시브랜드별 카테고리검색필터 - 가격 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandForCategoryFilterPrice();
+
+	/**
+	 * 임시브랜드별 카테고리검색필터 - 연령대 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandForCategoryFilterAge();
+
+	/**
+	 * 임시브랜드별 카테고리검색필터 - 시즌 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandForCategoryFilterSeason();
+
+	/**
+	 * 임시브랜드별 카테고리검색필터 - 색상 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandForCategoryFilterColor();
+
+	/**
+	 * 임시브랜드별 카테고리검색필터 - 혜택 생성
+	 * @return 생성건수
+	 * @author bin2107
+	 * @since 2021. 5. 28
+	 */
+	int createTemporaryBrandForCategoryFilterBenefit();
+
 	/**
 	 * 카테고리별검색필터 삭제
 	 * @author gagamel

+ 109 - 19
src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java

@@ -12,9 +12,9 @@ import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSummary;
 import com.style24.persistence.domain.IfBrand;
 import com.style24.persistence.domain.IfProduct;
-import com.style24.persistence.domain.IfProductSku;
 import com.style24.persistence.domain.IfProvider;
 import com.style24.persistence.domain.Option;
+import com.style24.persistence.domain.WmsStock;
 
 import com.gagaframework.web.parameter.GagaMap;
 
@@ -329,47 +329,121 @@ public interface TsbGoodsDao {
 	 */
 	Collection<IfProduct> getGoodsList();
 
+//	/**
+//	 * TB_IF_PRODUCTSKU 삭제
+//	 *
+//	 * @author eskim
+//	 * @since 2021. 01. 06
+//	 */
+//	void deleteIfProductSku();
+//
+//	/**
+//	 * TB_IF_PRODUCTSKU 저장
+//	 *
+//	 * @author eskim
+//	 * @since 2021. 01. 06
+//	 */
+//	//void createIfProductSku(IfProductSku ifProductSku);
+//	void createIfProductSku(GagaMap dataMap);
+//
+//	/**
+//	 * TB_IF_PRODUCTSKU 저장
+//	 *
+//	 * @author eskim
+//	 * @since 2021. 01. 06
+//	 */
+//	void createIfProductSkuByRow(IfProductSku ifProductSku);
+//
+//	/**
+//	 * TB_IF_PRODUCTSKU_HST 삭제
+//	 *
+//	 * @author eskim
+//	 * @since 2021. 01. 06
+//	 */
+//	void deleteWmsProductSkuHst(String jobdate);
+//
+//	/**
+//	 * TB_IF_PRODUCTSKU_HST 저장
+//	 *
+//	 * @author eskim
+//	 * @since 2021. 01. 06
+//	 */
+//	void createWmsProductSkuHst(String jobdate);
+
 	/**
-	 * TB_IF_PRODUCTSKU 삭제
+	 * TB_WMS_STOCK 삭제
 	 *
 	 * @author eskim
-	 * @since 2021. 01. 06
+	 * @since 2021. 05. 26
 	 */
-	void deleteIfProductSku();
+	void deleteWmsStock();
 
 	/**
-	 * TB_IF_PRODUCTSKU 저장
+	 * TB_WMS_STOCK 저장
 	 *
 	 * @author eskim
-	 * @since 2021. 01. 06
+	 * @since 2021. 05. 26
 	 */
-	//void createIfProductSku(IfProductSku ifProductSku);
-	void createIfProductSku(GagaMap dataMap);
+	void createWmsStock(GagaMap dataMap);
 
 	/**
-	 * TB_IF_PRODUCTSKU 저장
+	 * TB_WMS_STOCK 저장
 	 *
 	 * @author eskim
-	 * @since 2021. 01. 06
+	 * @since 2021. 05. 26
 	 */
-	void createIfProductSkuByRow(IfProductSku ifProductSku);
+	void createWmsStockByRow(WmsStock wmsStock);
 
 	/**
-	 * TB_IF_PRODUCTSKU_HST 삭제
+	 * TB_WMS_STOCK_HST 삭제
 	 *
 	 * @author eskim
-	 * @since 2021. 01. 06
+	 * @since 2021. 05. 26
 	 */
-	void deleteWmsProductSkuHst(String jobdate);
+	void deleteWmsStockHst(String jobdate);
 
 	/**
-	 * TB_IF_PRODUCTSKU_HST 저장
+	 * TB_WMS_STOCK_HST 저장
 	 *
 	 * @author eskim
-	 * @since 2021. 01. 06
+	 * @since 2021. 05. 26
 	 */
-	void createWmsProductSkuHst(String jobdate);
+	void createWmsStockHst(String jobdate);
+	
+	
+	/**
+	 * TB_SHOP_STOCK 삭제
+	 *
+	 * @author eskim
+	 * @since 2021. 05. 27
+	 */
+	void deleteShopStock();
+
+	/**
+	 * TB_SHOP_STOCK 저장
+	 *
+	 * @author eskim
+	 * @since 2021. 05. 27
+	 */
+	void createShopStock();
 
+	/**
+	 * TB_SHOP_STOCK_HST 삭제
+	 *
+	 * @author eskim
+	 * @since 2021. 05. 27
+	 */
+	void deleteShopStockHst(String jobdate);
+
+	/**
+	 * TB_SHOP_STOCK_HST 저장
+	 *
+	 * @author eskim
+	 * @since 2021. 05. 27
+	 */
+	void createShopStockHst(String jobdate);
+	
+	
 	/**
 	 *  상품 전시재고 삭제
 	 *
@@ -395,12 +469,20 @@ public interface TsbGoodsDao {
 	void deleteTbOptionSyncTemp();
 
 	/**
-	 * ERP 재고 임시 테이블 이관
+	 * wms 재고 임시 테이블 이관
 	 *
 	 * @author eskim
 	 * @since 2020. 08. 24
 	 */
 	void createTbOptionSyncTemp();
+	
+	/**
+	 * 매장 재고 임시 테이블 이관
+	 *
+	 * @author eskim
+	 * @since 2021. 05. 27
+	 */
+	void saveTbOptionSyncTemp();
 
 	/**
 	 * 입점상품 SELL_QTY 목록 조회
@@ -450,9 +532,17 @@ public interface TsbGoodsDao {
 	 * TB_OPTION_SYNC_TEMP => TB_OPTION_SYNC 변경적용
 	 *
 	 * @author eskim
-	 * @since 2021. 01. 08
+	 * @since 2021. 05. 27
 	 */
 	void saveGoodsOptionSyncSync();
+	
+	/**
+	 * TB_OPTION_SYNC 매장별 최대구매수량 적용-
+	 *
+	 * @author eskim
+	 * @since 2021. 05. 28
+	 */
+	void updateGoodsOptionSyncSync();
 
 	/**
 	 * WMS 임시 테이블에서 실테이블로 이관(재고가 상이한것만 수정)

+ 10 - 2
src/main/java/com/style24/batch/biz/dao/TsbPointDao.java

@@ -2,9 +2,7 @@ package com.style24.batch.biz.dao;
 
 import com.style24.core.support.annotation.ShopDs;
 import com.style24.persistence.domain.Point;
-import com.style24.persistence.domain.Social;
 
-import org.springframework.dao.DataAccessException;
 import org.springframework.stereotype.Repository;
 
 import java.util.Collection;
@@ -58,5 +56,15 @@ public interface TsbPointDao {
 	 * @since  2021. 04. 26
 	 */
 	void updateCustPointExpire(Point point);
+	
+	/**
+	 * 포인트 기간만료 알림톡(30일) 리스트
+	 *
+	 * @param point
+	 * @return Collection<Point>
+	 * @author sowon
+	 * @since  2021. 05. 28
+	 */
+	Collection<Point> getSendPointExpectList(Point point);
 
 }

+ 3 - 4
src/main/java/com/style24/batch/biz/dao/TsbWmsGoodsDao.java

@@ -8,8 +8,8 @@ import com.style24.persistence.domain.GoodsIfIncomelotitem;
 import com.style24.persistence.domain.GoodsIfMeasurement;
 import com.style24.persistence.domain.IfBrand;
 import com.style24.persistence.domain.IfProduct;
-import com.style24.persistence.domain.IfProductSku;
 import com.style24.persistence.domain.IfProvider;
+import com.style24.persistence.domain.WmsStock;
 
 /**
  * WMS 상품 연동Dao
@@ -88,9 +88,8 @@ public interface TsbWmsGoodsDao {
 	 *
 	 * @return
 	 * @author eskim
-	 * @since 2021. 01. 06
+	 * @since 2021. 05. 26
 	 */
-	Collection<IfProductSku> getWmsIfProductSukList();
-
+	Collection<WmsStock> getWmsStockList();
 
 }

+ 49 - 50
src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsGoodsStockJob.java

@@ -1,5 +1,9 @@
 package com.style24.batch.biz.job.goods;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -7,10 +11,11 @@ import com.style24.batch.biz.job.TsbAbstractJob;
 import com.style24.batch.biz.service.TsbCommonService;
 import com.style24.batch.biz.service.TsbGoodsService;
 import com.style24.batch.biz.service.TsbWmsGoodsService;
-import com.style24.persistence.domain.IfProductSku;
+import com.style24.persistence.domain.WmsStock;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.util.GagaDateUtil;
 
 /**
@@ -21,7 +26,7 @@ import com.gagaframework.web.util.GagaDateUtil;
  */
 @Component
 @Slf4j
-public class TsbGoodsWmsGoodsStockJob extends TsbAbstractJob<IfProductSku, IfProductSku, IfProductSku> {
+public class TsbGoodsWmsGoodsStockJob extends TsbAbstractJob<WmsStock, WmsStock, WmsStock> {
 
 	@Autowired
 	private TsbGoodsService goodsService;
@@ -37,19 +42,19 @@ public class TsbGoodsWmsGoodsStockJob extends TsbAbstractJob<IfProductSku, IfPro
 	private String jobdate = "";
 
 	@Override
-	public IfProductSku read() throws Exception {
+	public WmsStock read() throws Exception {
 
-		IfProductSku ifProductSku = new IfProductSku();
-		return ifProductSku;
+		WmsStock wmsStock = new WmsStock();
+		return wmsStock;
 	}
 
 	@Override
-	public IfProductSku process(IfProductSku ifProductSku) throws Exception {
-		return ifProductSku;
+	public WmsStock process(WmsStock wmsStock) throws Exception {
+		return wmsStock;
 	}
 
 	@Override
-	public IfProductSku write(IfProductSku ifProductSku) throws Exception {
+	public WmsStock write(WmsStock wmsStock) throws Exception {
 
 		jobdate = GagaDateUtil.getToday("yyyyMMddHHmm");
 
@@ -59,59 +64,53 @@ public class TsbGoodsWmsGoodsStockJob extends TsbAbstractJob<IfProductSku, IfPro
 			log.info("WMS 정보 동기화 미실행 {}, 연동여부 : {}", GagaDateUtil.getToday("yyyy-MM-dd HH:mm:ss"), wmsSyncYn);
 			return null;
 		} else {
-			/**
-			 * 나중에 개발 서버에서 꼭 테스트 해봅시다~~~~
-			 */
+
+			// TB_WMS_STOCK 작업
+			goodsService.deleteWmsStock();
+
+			// TB_WMS_STOCK  생성
+			Collection<WmsStock> wmsStockList = wmsGoodsService.getWmsStockList();
+			String byrow = "N";
+			if ("Y".equals(byrow)) {
+				for (WmsStock loopWmsStock : wmsStockList) {
+					goodsService.createWmsStockByRow(loopWmsStock);
+				}
+			} else {
+
+				List<WmsStock> productSukList = new ArrayList<WmsStock>();
+				log.info("productSukList.size = {}", productSukList.size());
+				GagaMap dataMap = new GagaMap();
+				int index = 0;
+				for (WmsStock loopWmsStock : wmsStockList) {
+
+					productSukList.add(loopWmsStock);
+					index++;
+					if (index % 20 == 0 || wmsStockList.size() == index) {
+						dataMap.set("productSukList", productSukList);
+						goodsService.createWmsStock(dataMap);
+						productSukList.clear();
+					}
+				}
+			}
+			
 			//wms상품재고이력 생성
-			goodsService.createWmsProductSkuHst(jobdate);
-
-//  대용량 테스트 			
-			// TB_IF_PRODUCTSKU 작업
-//			goodsService.deleteIfProductSku();
-//
-//			// TB_IF_PRODUCTSKU  생성
-//			Collection<IfProductSku> wmsIfProductSukList = wmsGoodsService.getWmsIfProductSukList();  //테스트 1000건
-//
-//			//대용량 : N
-//			String byrow = "N";
-//			if ("Y".equals(byrow)) {
-//				for(IfProductSku ifProductSkuMap : wmsIfProductSukList) {
-//					goodsService.createIfProductSkuByRow(ifProductSkuMap);
-//				}
-//			}else {
-//
-//				List<IfProductSku> productSukList = new ArrayList<IfProductSku>();
-//				GagaMap dataMap = new GagaMap();
-//				int index = 0;
-//				for(IfProductSku ifProductSkuMap : wmsIfProductSukList) {
-//
-//					productSukList.add(ifProductSkuMap);
-//					index++;
-//					if (index % 200 == 0 ||  wmsIfProductSukList.size() == index) {
-//						dataMap.set("productSukList", productSukList);
-//						goodsService.createIfProductSku(dataMap);
-//
-//						productSukList.clear();
-//					}
-//				}
-//
-//			}
-//
-//			// TB_IF_PRODUCTSKU_HST 생성
-//			goodsService.createWmsProductSkuHst(jobdate);
+			goodsService.createWmsStockHst(jobdate);
+			
+			//매장재고생성 - 출고처별 판매비율 적용
+			goodsService.createShopStock(jobdate);
 
 			//온라인 상품 재고 적용
-			goodsService.saveGoodsStock();
+			goodsService.saveGoodsStock(); 
 		}
 
 		//온라인 전시 재고 작업
 		goodsService.saveGoodsDispStock();
 
-		return ifProductSku;
+		return wmsStock;
 	}
 
 	@Override
-	public void notify(IfProductSku ifProductSku) throws Exception {
+	public void notify(WmsStock wmsStock) throws Exception {
 		super.printResult(succCnt, failCnt);
 	}
 

+ 60 - 0
src/main/java/com/style24/batch/biz/job/marketing/TsbExpectPointJob.java

@@ -0,0 +1,60 @@
+package com.style24.batch.biz.job.marketing;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.gagaframework.web.parameter.GagaMap;
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbPointService;
+import com.style24.core.biz.service.TscKakaotalkService;
+import com.style24.persistence.domain.Point;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Component
+@Slf4j
+public class TsbExpectPointJob  extends TsbAbstractJob<Collection<Point>, GagaMap, GagaMap>{
+	
+	@Autowired
+	TsbPointService pointService;
+	
+	@Autowired
+	TscKakaotalkService kakaoService;
+	
+	private int succCnt = 0;
+	private int failCnt = 0;
+
+	
+	@Override
+	public Collection<Point> read() throws Exception {
+		Point point = new Point(); 
+		return pointService.getSendPointExpectList(point);
+	}
+
+	@Override
+	public GagaMap process(Collection<Point> readItem) throws Exception {
+		for (Point point : readItem) {
+			try {
+				kakaoService.sendPointExpectNotify(point, point.getCustNo());
+				succCnt++;
+			} catch (Exception e) {
+				failCnt++;
+				log.error(e.getMessage());
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public GagaMap write(GagaMap convertedItem) throws Exception {
+		return null;
+	}
+
+	@Override
+	public void notify(GagaMap resultItem) throws Exception {
+		super.printResult(succCnt, failCnt);
+	}
+
+}

+ 48 - 0
src/main/java/com/style24/batch/biz/service/TsbDisplayService.java

@@ -103,6 +103,54 @@ public class TsbDisplayService {
 		totCnt += cnt;
 		log.info("1.7.임시카테고리별검색필터-혜택 생성: {}", cnt);
 
+		cnt = displayDao.createTemporaryBrandFilterSize();
+		totCnt += cnt;
+		log.info("2.1.임시브랜드별검색필터-사이즈 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandFilterPrice();
+		totCnt += cnt;
+		log.info("2.2.임시브랜드별검색필터-가격 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandFilterAge();
+		totCnt += cnt;
+		log.info("2.3.임시브랜드별검색필터-연령대 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandFilterSeason();
+		totCnt += cnt;
+		log.info("2.4.임시브랜드별검색필터-시즌 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandFilterColor();
+		totCnt += cnt;
+		log.info("2.5.임시브랜드별검색필터-컬러 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandFilterBenefit();
+		totCnt += cnt;
+		log.info("2.6.임시브랜드별검색필터-혜택 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandForCategoryFilterSize();
+		totCnt += cnt;
+		log.info("3.1.임시브랜드별 카테고리검색필터-사이즈 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandForCategoryFilterPrice();
+		totCnt += cnt;
+		log.info("3.2.임시브랜드별 카테고리검색필터-가격 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandForCategoryFilterAge();
+		totCnt += cnt;
+		log.info("3.3.임시브랜드별 카테고리검색필터-연령대 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandForCategoryFilterSeason();
+		totCnt += cnt;
+		log.info("3.4.임시브랜드별 카테고리검색필터-시즌 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandForCategoryFilterColor();
+		totCnt += cnt;
+		log.info("3.5.임시브랜드별 카테고리검색필터-컬러 생성: {}", cnt);
+
+		cnt = displayDao.createTemporaryBrandForCategoryFilterBenefit();
+		totCnt += cnt;
+		log.info("3.6.임시브랜드별 카테고리검색필터-혜택 생성: {}", cnt);
+
 		return totCnt;
 	}
 

+ 148 - 57
src/main/java/com/style24/batch/biz/service/TsbGoodsService.java

@@ -1,9 +1,7 @@
 package com.style24.batch.biz.service;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -23,9 +21,9 @@ import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSummary;
 import com.style24.persistence.domain.IfBrand;
 import com.style24.persistence.domain.IfProduct;
-import com.style24.persistence.domain.IfProductSku;
 import com.style24.persistence.domain.IfProvider;
 import com.style24.persistence.domain.Option;
+import com.style24.persistence.domain.WmsStock;
 
 import io.netty.util.internal.StringUtil;
 
@@ -485,6 +483,54 @@ public class TsbGoodsService {
 		return goodsDao.getGoodsList();
 	}
 
+	/**
+	 * wms상품재고이력 생성
+	 *
+	 * @param jobdate
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 07
+	 */
+//	@Transactional("shopTxnManager")
+//	public void createWmsProductSkuHst(String jobdate) {
+//
+//		// TB_IF_PRODUCTSKU  작업
+//		goodsDao.deleteIfProductSku();
+//
+//		// TB_IF_PRODUCTSKU  생성
+//		Collection<IfProductSku> wmsIfProductSukList = wmsGoodsService.getWmsIfProductSukList();
+//		String byrow = "Y";
+//		if ("Y".equals(byrow)) {
+//			for (IfProductSku ifProductSku : wmsIfProductSukList) {
+//				goodsDao.createIfProductSkuByRow(ifProductSku);
+//			}
+//		} else {
+//
+//			List<IfProductSku> productSukList = new ArrayList<IfProductSku>();
+//
+//			GagaMap dataMap = new GagaMap();
+//			int index = 0;
+//			for (IfProductSku ifProductSku : wmsIfProductSukList) {
+//
+//				productSukList.add(ifProductSku);
+//				index++;
+//				if (index % 200 == 0 || wmsIfProductSukList.size() == index) {
+//					dataMap.set("productSukList", productSukList);
+//					goodsDao.createIfProductSku(dataMap);
+//					productSukList.clear();
+//				}
+//			}
+//
+//		}
+//
+//		// TB_IF_PRODUCTSKU_HST 2달 전 데이터 삭제
+//		String delYyyymmdd = GagaDateUtil.getOffsetMonth(-2, "yyyyMMdd") + "000000";  //년월일시분초
+//		goodsDao.deleteWmsProductSkuHst(delYyyymmdd);
+//		// TB_IF_PRODUCTSKU_HST 생성
+//		goodsDao.createWmsProductSkuHst(jobdate);
+//
+//	}
+	
 	/**
 	 * wms상품재고이력 생성
 	 *
@@ -494,45 +540,40 @@ public class TsbGoodsService {
 	 * @since 2021. 01. 07
 	 */
 	@Transactional("shopTxnManager")
-	public void createWmsProductSkuHst(String jobdate) {
+	public void createWmsStockHst(String jobdate) {
 
-		// TB_IF_PRODUCTSKU  작업
-		goodsDao.deleteIfProductSku();
-
-		// TB_IF_PRODUCTSKU  생성
-		Collection<IfProductSku> wmsIfProductSukList = wmsGoodsService.getWmsIfProductSukList();
-		String byrow = "Y";
-		if ("Y".equals(byrow)) {
-			for (IfProductSku ifProductSku : wmsIfProductSukList) {
-				goodsDao.createIfProductSkuByRow(ifProductSku);
-			}
-		} else {
-
-			List<IfProductSku> productSukList = new ArrayList<IfProductSku>();
-
-			GagaMap dataMap = new GagaMap();
-			int index = 0;
-			for (IfProductSku ifProductSku : wmsIfProductSukList) {
-
-				productSukList.add(ifProductSku);
-				index++;
-				if (index % 200 == 0 || wmsIfProductSukList.size() == index) {
-					dataMap.set("productSukList", productSukList);
-					goodsDao.createIfProductSku(dataMap);
-					productSukList.clear();
-				}
-			}
-
-		}
-
-		// TB_IF_PRODUCTSKU_HST 2달 전 데이터 삭제
+		// TB_WMS_STOCK_HST 2달 전 데이터 삭제
 		String delYyyymmdd = GagaDateUtil.getOffsetMonth(-2, "yyyyMMdd") + "000000";  //년월일시분초
-		goodsDao.deleteWmsProductSkuHst(delYyyymmdd);
-		// TB_IF_PRODUCTSKU_HST 생성
-		goodsDao.createWmsProductSkuHst(jobdate);
-
+		goodsDao.deleteWmsStockHst(delYyyymmdd);
+		// TB_WMS_STOCK_HST 생성
+		goodsDao.createWmsStockHst(jobdate);
 	}
+	
+	/**
+	 * shop 상품재고 생성
+	 *
+	 * @param jobdate
+	 * @return
+	 * @author eskim
+	 * @since 2021. 05. 27
+	 */
+	@Transactional("shopTxnManager")
+	public void createShopStock(String jobdate) {
 
+		// TB_SHOP_STOCK 작업
+		goodsDao.deleteShopStock();
+		goodsDao.createShopStock();
+		
+		// TB_SHOP_STOCK_HST 2달 전 데이터 삭제
+		String delYyyymmdd = GagaDateUtil.getOffsetMonth(-2, "yyyyMMdd") + "000000";  //년월일시분초
+		goodsDao.deleteShopStockHst(delYyyymmdd);
+		// TB_SHOP_STOCK_HST 생성
+		goodsDao.createShopStockHst(jobdate);
+	}
+	
+	
+	
+	
 	/**
 	 * WMS 임시 테이블에서 실테이블로 이관
 	 *
@@ -543,21 +584,27 @@ public class TsbGoodsService {
 	@Transactional("shopTxnManager")
 	public void saveGoodsStock() throws Exception {
 
-		// wms 재고 임시 테이블(TB_OPTION_SYNC_TEMP) 삭제
+		// wms 재고 임시 테이블(TB_OPTION_SYNC_TMP) 삭제
 		goodsDao.deleteTbOptionSyncTemp();
-		// wms 재고 임시 테이블(TB_OPTION_SYNC_TEMP) 적용 - 출고처별 판매비율 적용
+		// wms 재고 임시 테이블(TB_OPTION_SYNC_TMP) 적용 - 출고처별 판매비율 적용
 		goodsDao.createTbOptionSyncTemp();
-
-		// 입점 상품 재고 동기화 후 SELL_QTY 삭제
+//		// 매장재고 - 출고처별 판매비율 적용
+		goodsDao.saveTbOptionSyncTemp();
+		
+		// 입점 상품 재고 동기화 
 		updateOptionByOfSellQty();
 
 		// TB_OPTION = > TB_OPTION_SYNC 적용
 		goodsDao.deleteGoodsOptionSync();
-		goodsDao.createGoodsOptionSync();
+		goodsDao.createGoodsOptionSync();  // TB_OPTION_SYNC.CURR_STOCK_QTY, STORE_STOCK_QTY, STORE_MAX_QTY 초기화
 
-		// TB_OPTION_SYNC_TEMP => TB_OPTION_SYNC 변경적용
+		// TB_OPTION_SYNC_TMP => TB_OPTION_SYNC 변경적용
 		goodsDao.saveGoodsOptionSyncSync();
 
+		// WMS, 매장별 최대 주문수량 적용  == > 작업합시다.
+		//TB_SHOP_STOCK과 TB_OPTION_SYNC.CURR_STOCK_QTY 비교하여 STORE_MAX_QTY에 적용
+		goodsDao.updateGoodsOptionSyncSync();
+		  
 		// TB_OPTION_SYNC => TB_OPTION 적용
 		goodsDao.saveGoodsOptionNew();
 
@@ -630,50 +677,94 @@ public class TsbGoodsService {
 		goodsDao.createGoodsDispStock();
 	}
 
+//	/**
+//	 * TB_IF_PRODUCTSKU  삭제
+//	 *
+//	 * @author eskim
+//	 * @since 2020. 01. 11
+//	 */
+//	@Transactional("shopTxnManager")
+//	public void deleteIfProductSku() {
+//		goodsDao.deleteIfProductSku();
+//	}
+//
+//	/**
+//	 * TB_IF_PRODUCTSKU 생성(by row )
+//	 *
+//	 * @author eskim
+//	 * @since 2020. 01. 11
+//	 */
+//	@Transactional("shopTxnManager")
+//	public void createIfProductSkuByRow(IfProductSku ifProductSku) {
+//		goodsDao.createIfProductSkuByRow(ifProductSku);
+//	}
+//
+//	/**
+//	 * TB_IF_PRODUCTSKU 생성
+//	 *
+//	 * @author eskim
+//	 * @since 2020. 01. 11
+//	 */
+//	@Transactional("shopTxnManager")
+//	public void createIfProductSku(GagaMap dataMap) {
+//		goodsDao.createIfProductSku(dataMap);
+//	}
+//
+//	/**
+//	 * TB_IF_PRODUCTSKU_HST 저장
+//	 *
+//	 * @author eskim
+//	 * @since 2021. 01. 11
+//	 */
+//	@Transactional("shopTxnManager")
+//	public void createIfProductSku(String jobdate) {
+//		goodsDao.createWmsProductSkuHst(jobdate);
+//	}
+
 	/**
-	 * TB_IF_PRODUCTSKU  삭제
+	 * TB_WMS_STOCK  삭제
 	 *
 	 * @author eskim
 	 * @since 2020. 01. 11
 	 */
 	@Transactional("shopTxnManager")
-	public void deleteIfProductSku() {
-		goodsDao.deleteIfProductSku();
+	public void deleteWmsStock() {
+		goodsDao.deleteWmsStock();
 	}
 
 	/**
-	 * TB_IF_PRODUCTSKU 생성(by row )
+	 * TB_WMS_STOCK 생성(by row )
 	 *
 	 * @author eskim
 	 * @since 2020. 01. 11
 	 */
 	@Transactional("shopTxnManager")
-	public void createIfProductSkuByRow(IfProductSku ifProductSku) {
-		goodsDao.createIfProductSkuByRow(ifProductSku);
+	public void createWmsStockByRow(WmsStock wmsStock) {
+		goodsDao.createWmsStockByRow(wmsStock);
 	}
 
 	/**
-	 * TB_IF_PRODUCTSKU 생성
+	 * TB_WMS_STOCK 생성
 	 *
 	 * @author eskim
 	 * @since 2020. 01. 11
 	 */
 	@Transactional("shopTxnManager")
-	public void createIfProductSku(GagaMap dataMap) {
-		goodsDao.createIfProductSku(dataMap);
+	public void createWmsStock(GagaMap dataMap) {
+		goodsDao.createWmsStock(dataMap);
 	}
 
 	/**
-	 * TB_IF_PRODUCTSKU_HST 저장
+	 * TB_WMS_STOCK_HST 삭제
 	 *
 	 * @author eskim
 	 * @since 2021. 01. 11
 	 */
 	@Transactional("shopTxnManager")
-	public void createIfProductSku(String jobdate) {
-		goodsDao.createWmsProductSkuHst(jobdate);
+	public void deleteWmsStockHst(String jobdate) {
+		goodsDao.deleteWmsStockHst(jobdate);
 	}
-
+	
 	/**
 	 * 입고상품중 온라인 옵션이 없는 상품옵션 추가
 	 *

+ 13 - 0
src/main/java/com/style24/batch/biz/service/TsbPointService.java

@@ -74,4 +74,17 @@ public class TsbPointService {
 	public void updateCustPointExpire(Point point) {
 		pointDao.updateCustPointExpire(point);
 	}
+	
+	/**
+	 * 상품권 기간만료 알림톡(30일) 리스트
+	 *
+	 * @param point
+	 * @return Collection<Point>
+	 * @author sowon
+	 * @since  2021. 05. 28
+	 */
+	@Transactional("shopTxnManager")
+	public Collection<Point> getSendPointExpectList(Point point){
+		return pointDao.getSendPointExpectList(point);
+	}
 }

+ 4 - 4
src/main/java/com/style24/batch/biz/service/TsbWmsGoodsService.java

@@ -13,8 +13,8 @@ import com.style24.persistence.domain.GoodsIfIncomelotitem;
 import com.style24.persistence.domain.GoodsIfMeasurement;
 import com.style24.persistence.domain.IfBrand;
 import com.style24.persistence.domain.IfProduct;
-import com.style24.persistence.domain.IfProductSku;
 import com.style24.persistence.domain.IfProvider;
+import com.style24.persistence.domain.WmsStock;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -154,10 +154,10 @@ public class TsbWmsGoodsService {
 	 *
 	 * @return
 	 * @author eskim
-	 * @since 2021. 01. 06
+	 * @since 2021. 05. 26
 	 */
-	public Collection<IfProductSku> getWmsIfProductSukList() {
-		return wmsGoodsDao.getWmsIfProductSukList();
+	public Collection<WmsStock> getWmsStockList() {
+		return wmsGoodsDao.getWmsStockList();
 	}
 
 }

+ 19 - 3
src/main/java/com/style24/batch/biz/task/TsbCustomerTask.java

@@ -15,6 +15,7 @@ import com.style24.batch.biz.job.customer.TsbSecedeProcessJob;
 import com.style24.batch.biz.job.marketing.TsbAutoBuyConfirmJob;
 import com.style24.batch.biz.job.marketing.TsbBirthdayCouponNoticeJob;
 import com.style24.batch.biz.job.marketing.TsbExpectGiftcardJob;
+import com.style24.batch.biz.job.marketing.TsbExpectPointJob;
 import com.style24.batch.biz.job.marketing.TsbExpireGiftcardJob;
 import com.style24.batch.biz.job.marketing.TsbExpirePointJob;
 import com.style24.batch.biz.job.marketing.TsbReviewGuideJob;
@@ -59,6 +60,9 @@ public class TsbCustomerTask {
 
 	@Autowired
 	private TsbExpirePointJob expirePointJob;
+	
+	@Autowired
+	private TsbExpectPointJob expectPointJob;
 
 	@Autowired
 	private TsbExpireGiftcardJob expireGiftcardJob;
@@ -197,6 +201,19 @@ public class TsbCustomerTask {
 	public void pointExpireJob() throws Exception {
 		expirePointJob.runById("cron.customer.point.expire");
 	}
+	
+	/**
+	 * 포인트 기간만료 알림톡(30일)
+	 *
+	 * @throws Exception - 예외처리
+	 * @author sowon
+	 * @since 2021. 05. 28
+	 */
+	@Scheduled(cron = "${cron.customer.point.expect.notify}")
+	@Async
+	public void pointExpectJob() throws Exception {
+		expectPointJob.runById("cron.customer.point.expect.notify");
+	}
 
 	/**
 	 * 상품권 소멸처리
@@ -218,9 +235,8 @@ public class TsbCustomerTask {
 	 * @author sowon
 	 * @since 2021. 05. 27
 	 */
-	//@Scheduled(cron = "${cron.customer.giftcard.expect.notify}")
-	//@Async
-	@Scheduled(fixedDelay=3500000)
+	@Scheduled(cron = "${cron.customer.giftcard.expect.notify}")
+	@Async
 	public void giftcardExpectJob() throws Exception {
 		expectGiftcardJob.runById("cron.customer.giftcard.expect.notify");
 	}

+ 1 - 0
src/main/java/com/style24/batch/biz/task/TsbGoodsTask.java

@@ -233,6 +233,7 @@ public class TsbGoodsTask {
 	 * @throws Exception
 	 */
 	@Scheduled(cron = "${cron.goods.wms.stock.receive}")
+	@Scheduled(fixedDelay = 3500000)
 	@Async
 	public void wmsStockReceiveJob() throws Exception {
 		goodsWmsGoodsStockJob.runById("cron.goods.wms.stock.receive");

+ 14 - 0
src/main/java/com/style24/batch/biz/web/TsbCustomerController.java

@@ -211,6 +211,20 @@ public class TsbCustomerController extends TscBaseController {
 		expirePointJob.runById("cron.customer.point.expire");
 		return "OK";
 	}
+	
+	/**
+	 * 포인트 소멸예정 알림톡
+	 *
+	 * @throws Exception - 예외처리
+	 * @author sowon
+	 * @since 2021. 05. 28
+	 */
+	@GetMapping("/point/expect/notify")
+	@ResponseBody
+	public String expectpoint() throws Exception {
+		expectGiftcardJob.runById("cron.customer.point.expect.notify");
+		return "OK";
+	}
 
 	/**
 	 * 상품권 소멸처리

+ 23 - 0
src/main/java/com/style24/persistence/domain/WmsStock.java

@@ -0,0 +1,23 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * wms 연동 상품재고정보 Domain
+ *
+ * @author eskim
+ * @since 2021. 05. 26
+ */
+@SuppressWarnings("serial")
+@Data
+public class WmsStock extends TscBaseDomain {
+
+	private int productNo;		//ProductNo(WMS)
+	private String skuCode;		//옵션코드
+	private int locQty;			//위치재고수량
+	private int pickingQty;		//피킹수량
+	private int eoutPickingQty;	//EOUT피킹수량
+
+}

+ 2899 - 83
src/main/java/com/style24/persistence/mybatis/shop/TsbDisplay.xml

@@ -307,6 +307,61 @@
 		             , FILTER_CD
 		             , FILTER_NM
 		        FROM   (
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE5_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE5_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE4_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE4_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE3_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE3_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE2_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE2_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE1_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE1_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
 		                     , FORMAL_GB
@@ -316,6 +371,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE5_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -326,6 +382,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE4_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -336,6 +393,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE3_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -346,6 +404,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE2_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -356,6 +415,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE1_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		               ) Z
 		        WHERE  CATE_NO IS NOT NULL
 		       ) Z
@@ -484,6 +544,61 @@
 		             , FILTER_CD
 		             , FILTER_NM
 		        FROM   (
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE5_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE5_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE4_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE4_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE3_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE3_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE2_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE2_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE1_NO       AS CATE_NO
+		                     , FILTER_CD
+		                     , FILTER_NM
+		                FROM   TAB_FILTER
+		                WHERE  CATE1_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
 		                     , FORMAL_GB
@@ -493,6 +608,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE5_NO IS NOT NULL
+		                  AND  FORMAL_GB  = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -503,6 +619,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE4_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -513,6 +630,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE3_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -523,6 +641,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE2_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -533,6 +652,7 @@
 		                     , FILTER_NM
 		                FROM   TAB_FILTER
 		                WHERE  CATE1_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		               ) Z
 		        WHERE  CATE_NO IS NOT NULL
 		       ) Z
@@ -589,7 +709,7 @@
 		, TAB_PRICE AS (
 		    SELECT SITE_CD
 		         , CATE_GB
-		         , FORMAL_GB
+		         , 'G009_10' AS FORMAL_GB
 		         , BRAND_GROUP_NO
 		         , CATE_NO
 		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
@@ -601,7 +721,6 @@
 		    FROM   (
 		            SELECT SITE_CD
 		                 , CATE_GB
-		                 , FORMAL_GB
 		                 , BRAND_GROUP_NO
 		                 , CATE1_NO        AS CATE_NO
 		                 , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
@@ -609,12 +728,13 @@
 		                 , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
 		            FROM   TAB_FILTER
 		            WHERE  CATE1_NO IS NOT NULL
-		            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE1_NO
+		              AND  FORMAL_GB IN ('G009_10','G009_20')
+		            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
 		           ) Z
 		    UNION ALL
 		    SELECT SITE_CD
 		         , CATE_GB
-		         , FORMAL_GB
+		         , 'G009_10' AS FORMAL_GB
 		         , BRAND_GROUP_NO
 		         , CATE_NO
 		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
@@ -626,7 +746,6 @@
 		    FROM   (
 		            SELECT SITE_CD
 		                 , CATE_GB
-		                 , FORMAL_GB
 		                 , BRAND_GROUP_NO
 		                 , CATE2_NO        AS CATE_NO
 		                 , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
@@ -634,12 +753,13 @@
 		                 , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
 		            FROM   TAB_FILTER
 		            WHERE  CATE2_NO IS NOT NULL
-		            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE1_NO
+		              AND  FORMAL_GB IN ('G009_10','G009_20')
+		            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
 		           ) Z
 		    UNION ALL
 		    SELECT SITE_CD
 		         , CATE_GB
-		         , FORMAL_GB
+		         , 'G009_10' AS FORMAL_GB
 		         , BRAND_GROUP_NO
 		         , CATE_NO
 		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
@@ -651,7 +771,6 @@
 		    FROM   (
 		            SELECT SITE_CD
 		                 , CATE_GB
-		                 , FORMAL_GB
 		                 , BRAND_GROUP_NO
 		                 , CATE3_NO        AS CATE_NO
 		                 , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
@@ -659,12 +778,13 @@
 		                 , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
 		            FROM   TAB_FILTER
 		            WHERE  CATE3_NO IS NOT NULL
-		            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE1_NO
+		              AND  FORMAL_GB IN ('G009_10','G009_20')
+		            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
 		           ) Z
 		    UNION ALL
 		    SELECT SITE_CD
 		         , CATE_GB
-		         , FORMAL_GB
+		         , 'G009_10' AS FORMAL_GB
 		         , BRAND_GROUP_NO
 		         , CATE_NO
 		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
@@ -676,7 +796,6 @@
 		    FROM   (
 		            SELECT SITE_CD
 		                 , CATE_GB
-		                 , FORMAL_GB
 		                 , BRAND_GROUP_NO
 		                 , CATE4_NO        AS CATE_NO
 		                 , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
@@ -684,12 +803,13 @@
 		                 , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
 		            FROM   TAB_FILTER
 		            WHERE  CATE4_NO IS NOT NULL
-		            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE1_NO
+		              AND  FORMAL_GB IN ('G009_10','G009_20')
+		            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
 		           ) Z
 		    UNION ALL
 		    SELECT SITE_CD
 		         , CATE_GB
-		         , FORMAL_GB
+		         , 'G009_10' AS FORMAL_GB
 		         , BRAND_GROUP_NO
 		         , CATE_NO
 		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
@@ -701,7 +821,6 @@
 		    FROM   (
 		            SELECT SITE_CD
 		                 , CATE_GB
-		                 , FORMAL_GB
 		                 , BRAND_GROUP_NO
 		                 , CATE5_NO        AS CATE_NO
 		                 , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
@@ -709,7 +828,133 @@
 		                 , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
 		            FROM   TAB_FILTER
 		            WHERE  CATE5_NO IS NOT NULL
-		            GROUP  BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE1_NO
+		              AND  FORMAL_GB IN ('G009_10','G009_20')
+		            GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE1_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE1_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE2_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE2_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE3_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE3_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE5_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
 		           ) Z
 		)
 		SELECT DISTINCT
@@ -850,6 +1095,56 @@
 		             , CATE_NO
 		             , FILTER_CD
 		        FROM   (
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE5_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE5_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE4_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE4_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE3_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE3_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE2_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE2_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE1_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE1_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
 		                     , FORMAL_GB
@@ -858,6 +1153,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE5_NO IS NOT NULL
+		                  AND  FORMAL_GB  = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -867,6 +1163,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE4_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -876,6 +1173,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE3_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -885,6 +1183,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE2_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -894,6 +1193,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE1_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		               ) Z
 		        WHERE  CATE_NO IS NOT NULL
 		       ) A
@@ -971,6 +1271,56 @@
 		             , CATE_NO
 		             , FILTER_CD
 		        FROM   (
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE5_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE5_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE4_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE4_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE3_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE3_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE2_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE2_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
+		                SELECT SITE_CD
+		                     , CATE_GB
+		                     , 'G009_10' AS FORMAL_GB
+		                     , BRAND_GROUP_NO
+		                     , CATE1_NO       AS CATE_NO
+		                     , FILTER_CD
+		                FROM   TAB_FILTER
+		                WHERE  CATE1_NO IS NOT NULL
+		                  AND  FORMAL_GB IN ('G009_10','G009_20')
+		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
 		                     , FORMAL_GB
@@ -979,6 +1329,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE5_NO IS NOT NULL
+		                  AND  FORMAL_GB  = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -988,6 +1339,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE4_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -997,6 +1349,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE3_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -1006,6 +1359,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE2_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		                UNION ALL
 		                SELECT SITE_CD
 		                     , CATE_GB
@@ -1015,6 +1369,7 @@
 		                     , FILTER_CD
 		                FROM   TAB_FILTER
 		                WHERE  CATE1_NO IS NOT NULL
+		                  AND  FORMAL_GB = 'G009_20'
 		               ) Z
 		        WHERE  CATE_NO IS NOT NULL
 		       ) A
@@ -1145,50 +1500,105 @@
 		             , CATE_NO
 		             , FILTER_CD
 		        FROM   (
-		                SELECT SITE_CD
-		                     , CATE_GB
-		                     , FORMAL_GB
-		                     , BRAND_GROUP_NO
-		                     , CATE5_NO       AS CATE_NO
-		                     , FILTER_CD
-		                FROM   TAB_FILTER
-		                WHERE  CATE5_NO IS NOT NULL
-		                UNION ALL
-		                SELECT SITE_CD
-		                     , CATE_GB
-		                     , FORMAL_GB
-		                     , BRAND_GROUP_NO
-		                     , CATE4_NO       AS CATE_NO
-		                     , FILTER_CD
-		                FROM   TAB_FILTER
-		                WHERE  CATE4_NO IS NOT NULL
-		                UNION ALL
-		                SELECT SITE_CD
-		                     , CATE_GB
-		                     , FORMAL_GB
-		                     , BRAND_GROUP_NO
-		                     , CATE3_NO       AS CATE_NO
-		                     , FILTER_CD
-		                FROM   TAB_FILTER
-		                WHERE  CATE3_NO IS NOT NULL
-		                UNION ALL
-		                SELECT SITE_CD
-		                     , CATE_GB
-		                     , FORMAL_GB
-		                     , BRAND_GROUP_NO
-		                     , CATE2_NO       AS CATE_NO
-		                     , FILTER_CD
-		                FROM   TAB_FILTER
-		                WHERE  CATE2_NO IS NOT NULL
-		                UNION ALL
-		                SELECT SITE_CD
-		                     , CATE_GB
-		                     , FORMAL_GB
-		                     , BRAND_GROUP_NO
-		                     , CATE1_NO       AS CATE_NO
-		                     , FILTER_CD
-		                FROM   TAB_FILTER
-		                WHERE  CATE1_NO IS NOT NULL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , 'G009_10' AS FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE5_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE5_NO IS NOT NULL
+		                     AND  FORMAL_GB IN ('G009_10','G009_20')
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , 'G009_10' AS FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE4_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE4_NO IS NOT NULL
+		                     AND  FORMAL_GB IN ('G009_10','G009_20')
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , 'G009_10' AS FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE3_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE3_NO IS NOT NULL
+		                     AND  FORMAL_GB IN ('G009_10','G009_20')
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , 'G009_10' AS FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE2_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE2_NO IS NOT NULL
+		                     AND  FORMAL_GB IN ('G009_10','G009_20')
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , 'G009_10' AS FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE1_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE1_NO IS NOT NULL
+		                     AND  FORMAL_GB IN ('G009_10','G009_20')
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE5_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE5_NO IS NOT NULL
+		                     AND  FORMAL_GB  = 'G009_20'
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE4_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE4_NO IS NOT NULL
+		                     AND  FORMAL_GB = 'G009_20'
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE3_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE3_NO IS NOT NULL
+		                     AND  FORMAL_GB = 'G009_20'
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE2_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE2_NO IS NOT NULL
+		                     AND  FORMAL_GB = 'G009_20'
+		                   UNION ALL
+		                   SELECT SITE_CD
+		                        , CATE_GB
+		                        , FORMAL_GB
+		                        , BRAND_GROUP_NO
+		                        , CATE1_NO       AS CATE_NO
+		                        , FILTER_CD
+		                   FROM   TAB_FILTER
+		                   WHERE  CATE1_NO IS NOT NULL
+		                     AND  FORMAL_GB = 'G009_20'
 		               ) Z
 		        WHERE  CATE_NO IS NOT NULL
 		       ) A
@@ -1266,57 +1676,2463 @@
 		                   ORDER BY FILTER_CD
 		                  )   AS DISP_ORD
 		FROM   (
-		        SELECT DISTINCT
+		           SELECT DISTINCT
 		               SITE_CD
 		             , CATE_GB
-		             , FORMAL_GB
+		             , 'G009_10' AS FORMAL_GB
 		             , BRAND_GROUP_NO
 		             , CATE5_NO       AS CATE_NO
 		             , BENEFIT_GB     AS FILTER_CD
-		        FROM   TAB_FILTER
-		        WHERE  CATE5_NO IS NOT NULL
-		        UNION ALL
-		        SELECT DISTINCT
+		           FROM   TAB_FILTER
+		           WHERE  CATE5_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
 		               SITE_CD
 		             , CATE_GB
-		             , FORMAL_GB
+		             , 'G009_10' AS FORMAL_GB
 		             , BRAND_GROUP_NO
 		             , CATE4_NO       AS CATE_NO
 		             , BENEFIT_GB     AS FILTER_CD
-		        FROM   TAB_FILTER
-		        WHERE  CATE4_NO IS NOT NULL
-		        UNION ALL
-		        SELECT DISTINCT
+		           FROM   TAB_FILTER
+		           WHERE  CATE4_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
 		               SITE_CD
 		             , CATE_GB
-		             , FORMAL_GB
+		             , 'G009_10' AS FORMAL_GB
 		             , BRAND_GROUP_NO
 		             , CATE3_NO       AS CATE_NO
 		             , BENEFIT_GB     AS FILTER_CD
-		        FROM   TAB_FILTER
-		        WHERE  CATE3_NO IS NOT NULL
-		        UNION ALL
-		        SELECT DISTINCT
+		           FROM   TAB_FILTER
+		           WHERE  CATE3_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
 		               SITE_CD
 		             , CATE_GB
-		             , FORMAL_GB
+		             , 'G009_10' AS FORMAL_GB
 		             , BRAND_GROUP_NO
 		             , CATE2_NO       AS CATE_NO
 		             , BENEFIT_GB     AS FILTER_CD
-		        FROM   TAB_FILTER
-		        WHERE  CATE2_NO IS NOT NULL
-		        UNION ALL
-		        SELECT DISTINCT
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		         AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
 		               SITE_CD
 		             , CATE_GB
-		             , FORMAL_GB
+		             , 'G009_10' AS FORMAL_GB
 		             , BRAND_GROUP_NO
 		             , CATE1_NO       AS CATE_NO
 		             , BENEFIT_GB     AS FILTER_CD
-		        FROM   TAB_FILTER
-		        WHERE  CATE1_NO IS NOT NULL
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		         AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_20' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , CATE5_NO       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE5_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_20' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , CATE4_NO       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE4_NO IS NOT NULL
+		         AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_20' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , CATE3_NO       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE3_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_20' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , CATE2_NO       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_20' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , CATE1_NO       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		       ) Z
+	</insert>
+
+	<!-- 임시브랜드별검색필터 - 사이즈 생성 -->
+	<insert id="createTemporaryBrandFilterSize" timeout="600">
+		/* TsbDisplay.createTemporaryBrandFilterSize */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		     SITE_CD
+		   , CATE_GB
+		   , FORMAL_GB
+		   , BRAND_GROUP_NO
+		   , CATE_NO
+		   , FILTER_GB
+		   , FILTER_CD
+		   , FILTER_NM
+		   , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , CONCAT(I.SIZE_GB,'|',S.OPT_CD2) AS FILTER_CD
+		         , S.OPT_CD2                       AS FILTER_NM
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_ITEMKIND I
+		       , VW_STOCK S
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND  CG.GOODS_CD = G.GOODS_CD
+		      AND  G.ITEMKIND_CD = I.ITEMKIND_CD
+		      AND  G.GOODS_CD = S.GOODS_CD
+		      AND  G.BRAND_CD = B.BRAND_CD
+		      AND  B.BRAND_CD = SB.BRAND_CD
+		      AND  C4.SITE_CD = 'G000_10'
+		      AND  C4.CATE_GB = 'G032_101'
+		      AND  C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND  G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND  G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND  NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND  I.SIZE_GB IS NOT NULL
+		      AND  S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는옵션*/
+		      AND  S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+		      AND  S.DISP_YN = 'Y' /*노출하는 옵션*/
+		      AND  LENGTH(S.OPT_CD2) > 0
+		      AND  B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND  SB.SITE_CD = 'G000_10'
+		      AND  SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT distinct SITE_CD
+		              , CATE_GB
+		              , FORMAL_GB
+		              , BRAND_GROUP_NO
+		              , CATE_NO
+		              , 'SIZE'        AS FILTER_GB
+		              , FILTER_CD
+		              , FILTER_NM
+		              , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+		    ORDER BY CASE WHEN FILTER_CD LIKE 'T%' THEN 1
+		                  WHEN FILTER_CD LIKE 'B%' THEN 2
+		                  WHEN FILTER_CD LIKE 'S%' THEN 3
+		                  ELSE 4
+		            END, FILTER_NM
+		    )   AS DISP_ORD
+		FROM   (
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , CATE_NO
+		             , FILTER_CD
+		             , FILTER_NM
+		           FROM   (
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE5_NO IS NOT NULL
+		                    AND FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE4_NO IS NOT NULL
+		                    AND FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE3_NO IS NOT NULL
+		                    AND FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE2_NO IS NOT NULL
+		                    AND FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE1_NO IS NOT NULL
+		                    AND FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE5_NO IS NOT NULL
+		                    AND FORMAL_GB = 'G009_20'
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE4_NO IS NOT NULL
+		                    AND FORMAL_GB = 'G009_20'
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE3_NO IS NOT NULL
+		                    AND FORMAL_GB = 'G009_20'
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE2_NO IS NOT NULL
+		                    AND FORMAL_GB = 'G009_20'
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , 0       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE1_NO IS NOT NULL
+		                    AND FORMAL_GB = 'G009_20'
+		                  ) Z
+		           WHERE  CATE_NO IS NOT NULL
+		    ) Z
+	</insert>
+
+	<!-- 임시브랜드별검색필터 - 가격 생성 -->
+	<insert id="createTemporaryBrandFilterPrice" timeout="600">
+		/* TsbDisplay.createTemporaryBrandFilterPrice */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') AS CURR_PRICE
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    GS.STOCK_QTY > 0 /*재고있는옵션*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		   , TAB_PRICE AS (
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_10' AS  FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , 0        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  FORMAL_GB IN ('G009_10','G009_20')
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS  FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , 0        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  FORMAL_GB IN ('G009_20')
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+		           ) Z
+		)
+		SELECT DISTINCT
+		        SITE_CD
+		      , CATE_GB
+		      , FORMAL_GB
+		      , BRAND_GROUP_NO
+		      , CATE_NO
+		      , 'PRICE'        AS FILTER_GB
+		      , FILTER_CD
+		      , FILTER_NM
+		      , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+		    ORDER BY FILTER_CD
+		    )  AS DISP_ORD
+		FROM   (
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE1         AS FILTER_CD
+		                , PRICE1         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           WHERE PRICE1 > 0
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE2         AS FILTER_CD
+		                , PRICE2         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           WHERE PRICE2 > 0
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE3         AS FILTER_CD
+		                , PRICE3         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           WHERE PRICE3 > 0
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE4         AS FILTER_CD
+		                , PRICE4         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           WHERE PRICE4 > 0
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE5         AS FILTER_CD
+		                , PRICE5         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           WHERE PRICE5 > 0
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE6         AS FILTER_CD
+		                , PRICE6         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           WHERE PRICE6 > 0
 		       ) Z
 	</insert>
+
+	<!-- 임시브랜드별검색필터 - 연령대 생성 -->
+	<insert id="createTemporaryBrandFilterAge" timeout="600">
+		/* TsbDisplay.createTemporaryBrandFilterAge */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , G.AGE_GRP_CD      AS FILTER_CD
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    G.AGE_GRP_CD IS NOT NULL
+		      AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT A.SITE_CD
+		     , A.CATE_GB
+		     , A.FORMAL_GB
+		     , A.BRAND_GROUP_NO
+		     , A.CATE_NO
+		     , 'AGE'          AS FILTER_GB
+		     , A.FILTER_CD
+		     , CC.CD_NM       AS FILTER_NM
+		     , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
+		    ORDER BY CC.DISP_ORD
+		    )   AS DISP_ORD
+		FROM   (
+		    SELECT DISTINCT
+		        SITE_CD
+		        , CATE_GB
+		        , FORMAL_GB
+		        , BRAND_GROUP_NO
+		        , 0 AS CATE_NO
+		        , FILTER_CD
+		    FROM   (
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE5_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE5_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE4_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE4_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE3_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE3_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE2_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE1_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE5_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE5_NO IS NOT NULL
+		             AND  FORMAL_GB  = 'G009_20'
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE4_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE4_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE3_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE3_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE2_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE1_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           ) Z
+		    WHERE  CATE_NO IS NOT NULL
+		) A
+		   , TB_COMMON_CODE CC
+		WHERE  A.FILTER_CD = CC.CD
+		  AND    CC.CD_GB = 'G023'
+		  AND    CC.USE_YN = 'Y'
+	</insert>
+
+	<!-- 임시브랜드별검색필터 - 시즌 생성 -->
+	<insert id="createTemporaryBrandFilterSeason" timeout="600">
+		/* TsbDisplay.createTemporaryBrandFilterSeason */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , G.SEASON_CD       AS FILTER_CD
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT A.SITE_CD
+		     , A.CATE_GB
+		     , A.FORMAL_GB
+		     , A.BRAND_GROUP_NO
+		     , A.CATE_NO
+		     , 'SEASON'         AS FILTER_GB
+		     , A.FILTER_CD
+		     , CC.CD_NM         AS FILTER_NM
+		     , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
+		    ORDER BY CC.DISP_ORD
+		    )   AS DISP_ORD
+		FROM   (
+		    SELECT DISTINCT
+		        SITE_CD
+		      , CATE_GB
+		      , FORMAL_GB
+		      , BRAND_GROUP_NO
+		      , 0 AS CATE_NO
+		      , FILTER_CD
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE5_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE3_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE3_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE2_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE2_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE1_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE1_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE5_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB  = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE3_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE3_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE2_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE2_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE1_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE1_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		           ) Z
+		    WHERE  CATE_NO IS NOT NULL
+		) A
+		   , TB_COMMON_CODE CC
+		WHERE  A.FILTER_CD = CC.CD
+		  AND    CC.CD_GB = 'G006'
+		  AND    CC.USE_YN = 'Y'
+	</insert>
+
+	<!-- 임시브랜드별검색필터 - 컬러 생성 -->
+	<insert id="createTemporaryBrandFilterColor" timeout="600">
+		/* TsbDisplay.createTemporaryBrandFilterColor */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , C.COLOR_GRP_CD    AS FILTER_CD
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_OPTION O
+		       , TB_COLOR C
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    CG.GOODS_CD = O.GOODS_CD
+		      AND    O.OPT_CD1 = C.COLOR_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+		      AND    O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+		      AND    O.DISP_YN = 'Y' /*노출하는 옵션*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT A.SITE_CD
+		     , A.CATE_GB
+		     , A.FORMAL_GB
+		     , A.BRAND_GROUP_NO
+		     , A.CATE_NO
+		     , 'COLOR'          AS FILTER_GB
+		     , A.FILTER_CD
+		     , CC.CD_DESC       AS FILTER_NM
+		     , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
+		    ORDER BY CC.DISP_ORD
+		    )   AS DISP_ORD
+		FROM   (
+		    SELECT DISTINCT
+		            SITE_CD
+		          , CATE_GB
+		          , FORMAL_GB
+		          , BRAND_GROUP_NO
+		          , 0 as CATE_NO
+		          , FILTER_CD
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE5_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE3_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE3_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE2_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE2_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE1_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE1_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE5_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB  = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE3_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE3_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE2_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE2_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE1_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE1_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		           ) Z
+		    WHERE  CATE_NO IS NOT NULL
+		) A
+		   , TB_COMMON_CODE CC
+		WHERE  A.FILTER_CD = CC.CD
+		  AND    CC.CD_GB = 'G072'
+		  AND    CC.USE_YN = 'Y'
+	</insert>
+
+	<!-- 임시브랜드별검색필터 - 혜택 생성 -->
+	<insert id="createTemporaryBrandFilterBenefit" timeout="600">
+		/* TsbDisplay.createTemporaryBrandFilterBenefit */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , G.GOODS_CD
+		         , GB.BENEFIT_GB
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_GOODS_BENEFIT GB
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    CG.GOODS_CD = GB.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT distinct SITE_CD
+		          , CATE_GB
+		          , FORMAL_GB
+		          , BRAND_GROUP_NO
+		          , 0 as CATE_NO
+		          , 'BENEFIT'        AS FILTER_GB
+		          , FILTER_CD
+		          , CASE WHEN FILTER_CD = '10' THEN '쿠폰할인'
+		                 WHEN FILTER_CD = '20' THEN '무료배송'
+		                 WHEN FILTER_CD = '30' THEN '사은품'
+		                 WHEN FILTER_CD = '40' THEN '신상'
+		                 WHEN FILTER_CD = '50' THEN '총알배송'
+		            END              AS FILTER_NM
+		          , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+		    ORDER BY FILTER_CD
+		    )   AS DISP_ORD
+		FROM   (
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_10' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE5_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_10' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE4_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_10' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE3_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_10' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , 'G009_10' AS FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE5_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE4_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE3_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , 0       AS CATE_NO
+		             , BENEFIT_GB     AS FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		       ) Z
+	</insert>
+
+	<!-- 임시브랜드별 카테고리검색필터-사이즈 생성 -->
+	<insert id="createTemporaryBrandForCategoryFilterSize" timeout="600">
+		/* TsbDisplay.createTemporaryBrandForCategoryFilterSize */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , CONCAT(I.SIZE_GB,'|',S.OPT_CD2) AS FILTER_CD
+		         , S.OPT_CD2                       AS FILTER_NM
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_ITEMKIND I
+		       , VW_STOCK S
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    G.ITEMKIND_CD = I.ITEMKIND_CD
+		      AND    G.GOODS_CD = S.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    I.SIZE_GB IS NOT NULL
+		      AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY > 0 /*재고있는옵션*/
+		      AND    S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+		      AND    S.DISP_YN = 'Y' /*노출하는 옵션*/
+		      AND    LENGTH(S.OPT_CD2) > 0
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT SITE_CD
+		     , CATE_GB
+		     , FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE_NO
+		     , 'SIZE'        AS FILTER_GB
+		     , FILTER_CD
+		     , FILTER_NM
+		     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+		    ORDER BY CASE WHEN FILTER_CD LIKE 'T%' THEN 1
+		                  WHEN FILTER_CD LIKE 'B%' THEN 2
+		                  WHEN FILTER_CD LIKE 'S%' THEN 3
+		                  ELSE 4
+		        END, FILTER_NM
+		    )   AS DISP_ORD
+		FROM   (
+		           SELECT DISTINCT
+		               SITE_CD
+		             , CATE_GB
+		             , FORMAL_GB
+		             , BRAND_GROUP_NO
+		             , CATE_NO
+		             , FILTER_CD
+		             , FILTER_NM
+		           FROM   (
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE5_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE5_NO IS NOT NULL
+		                    AND  FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE4_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE4_NO IS NOT NULL
+		                    AND  FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE3_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE3_NO IS NOT NULL
+		                    AND  FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE2_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE2_NO IS NOT NULL
+		                    AND  FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , 'G009_10' AS FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE1_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE1_NO IS NOT NULL
+		                    AND  FORMAL_GB IN ('G009_10','G009_20')
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE5_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE5_NO IS NOT NULL
+		                    AND  FORMAL_GB = 'G009_20'
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE4_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE4_NO IS NOT NULL
+		                    AND  FORMAL_GB = 'G009_20'
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE3_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE3_NO IS NOT NULL
+		                    AND  FORMAL_GB = 'G009_20'
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE2_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE2_NO IS NOT NULL
+		                    AND  FORMAL_GB = 'G009_20'
+		                  UNION ALL
+		                  SELECT SITE_CD
+		                       , CATE_GB
+		                       , FORMAL_GB
+		                       , BRAND_GROUP_NO
+		                       , CATE1_NO       AS CATE_NO
+		                       , FILTER_CD
+		                       , FILTER_NM
+		                  FROM   TAB_FILTER
+		                  WHERE  CATE1_NO IS NOT NULL
+		                    AND  FORMAL_GB = 'G009_20'
+		           ) Z
+		           WHERE  CATE_NO IS NOT NULL
+		       ) Z
+	</insert>
+
+	<!-- 임시브랜드별 카테고리검색필터-가격 생성 -->
+	<insert id="createTemporaryBrandForCategoryFilterPrice" timeout="600">
+		/* TsbDisplay.createTemporaryBrandForCategoryFilterPrice */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		             SITE_CD
+		           , CATE_GB
+		           , FORMAL_GB
+		           , BRAND_GROUP_NO
+		           , CATE_NO
+		           , FILTER_GB
+		           , FILTER_CD
+		           , FILTER_NM
+		           , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , FN_GET_BENEFIT_PRICE('P',G.GOODS_CD,G.CURR_PRICE,'G100_10') AS CURR_PRICE
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    GS.STOCK_QTY > 0 /*재고있는옵션*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		   , TAB_PRICE AS (
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_10' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , BRAND_GROUP_NO
+		                , CATE1_NO        AS CATE_NO
+		                , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+		    ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_10' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , BRAND_GROUP_NO
+		                , CATE2_NO        AS CATE_NO
+		                , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
+		   ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_10' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		              SELECT SITE_CD
+		                   , CATE_GB
+		                   , BRAND_GROUP_NO
+		                   , CATE3_NO        AS CATE_NO
+		                   , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                   , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                   , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		              FROM   TAB_FILTER
+		              WHERE  CATE3_NO IS NOT NULL
+		                AND  FORMAL_GB IN ('G009_10','G009_20')
+		              GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_10' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_10' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                   , CATE_GB
+		                   , BRAND_GROUP_NO
+		                   , CATE5_NO        AS CATE_NO
+		                   , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                   , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                   , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , BRAND_GROUP_NO
+		                , CATE1_NO        AS CATE_NO
+		                , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE1_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE2_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE2_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE2_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE3_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE3_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE3_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE4_NO
+		           ) Z
+		    UNION ALL
+		    SELECT SITE_CD
+		         , CATE_GB
+		         , 'G009_20' AS FORMAL_GB
+		         , BRAND_GROUP_NO
+		         , CATE_NO
+		         , FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		         , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		         , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE5_NO        AS CATE_NO
+		                    , MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		                    , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		                    , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               GROUP  BY SITE_CD, CATE_GB, BRAND_GROUP_NO, CATE5_NO
+		           ) Z
+		)
+		SELECT DISTINCT
+		      SITE_CD
+		      , CATE_GB
+		      , FORMAL_GB
+		      , BRAND_GROUP_NO
+		      , CATE_NO
+		      , 'PRICE'        AS FILTER_GB
+		      , FILTER_CD
+		      , FILTER_NM
+		      , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+		    ORDER BY FILTER_CD
+		    )  AS DISP_ORD
+		FROM   (
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE1         AS FILTER_CD
+		                , PRICE1         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE2         AS FILTER_CD
+		                , PRICE2         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE3         AS FILTER_CD
+		                , PRICE3         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE4         AS FILTER_CD
+		                , PRICE4         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE5         AS FILTER_CD
+		                , PRICE5         AS FILTER_NM
+		           FROM   TAB_PRICE
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE_NO
+		                , PRICE6         AS FILTER_CD
+		                , PRICE6         AS FILTER_NM
+		           FROM   TAB_PRICE
+			   ) Z
+	</insert>
+
+	<!-- 임시브랜드별 카테고리검색필터-연령대 생성 -->
+	<insert id="createTemporaryBrandForCategoryFilterAge" timeout="600">
+		/* TsbDisplay.createTemporaryBrandForCategoryFilterAge */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		             SITE_CD
+		           , CATE_GB
+		           , FORMAL_GB
+		           , BRAND_GROUP_NO
+		           , CATE_NO
+		           , FILTER_GB
+		           , FILTER_CD
+		           , FILTER_NM
+		           , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , G.AGE_GRP_CD      AS FILTER_CD
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    G.AGE_GRP_CD IS NOT NULL
+		      AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT A.SITE_CD
+		     , A.CATE_GB
+		     , A.FORMAL_GB
+		     , A.BRAND_GROUP_NO
+		     , A.CATE_NO
+		     , 'AGE'          AS FILTER_GB
+		     , A.FILTER_CD
+		     , CC.CD_NM       AS FILTER_NM
+		     , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
+		    ORDER BY CC.DISP_ORD
+		    )   AS DISP_ORD
+		FROM   (
+		    SELECT DISTINCT
+		            SITE_CD
+		          , CATE_GB
+		          , FORMAL_GB
+		          , BRAND_GROUP_NO
+		          , CATE_NO
+		          , FILTER_CD
+		    FROM   (
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE5_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE5_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE4_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE4_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE3_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE3_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE2_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , 'G009_10' AS FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE1_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB IN ('G009_10','G009_20')
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE5_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE5_NO IS NOT NULL
+		             AND  FORMAL_GB  = 'G009_20'
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE4_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE4_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE3_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE3_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE2_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE2_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		           UNION ALL
+		           SELECT SITE_CD
+		                , CATE_GB
+		                , FORMAL_GB
+		                , BRAND_GROUP_NO
+		                , CATE1_NO       AS CATE_NO
+		                , FILTER_CD
+		           FROM   TAB_FILTER
+		           WHERE  CATE1_NO IS NOT NULL
+		             AND  FORMAL_GB = 'G009_20'
+		       ) Z
+		    WHERE  CATE_NO IS NOT NULL
+		) A
+		   , TB_COMMON_CODE CC
+		WHERE  A.FILTER_CD = CC.CD
+		  AND    CC.CD_GB = 'G023'
+		  AND    CC.USE_YN = 'Y'
+	</insert>
+
+	<!-- 임시브랜드별 카테고리검색필터-시즌 생성 -->
+	<insert id="createTemporaryBrandForCategoryFilterSeason" timeout="600">
+		/* TsbDisplay.createTemporaryBrandForCategoryFilterSeason */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , G.SEASON_CD       AS FILTER_CD
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT A.SITE_CD
+		     , A.CATE_GB
+		     , A.FORMAL_GB
+		     , A.BRAND_GROUP_NO
+		     , A.CATE_NO
+		     , 'SEASON'         AS FILTER_GB
+		     , A.FILTER_CD
+		     , CC.CD_NM         AS FILTER_NM
+		     , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
+		    ORDER BY CC.DISP_ORD
+		    )   AS DISP_ORD
+		FROM   (
+		    SELECT DISTINCT
+		           SITE_CD
+		          , CATE_GB
+		          , FORMAL_GB
+		          , BRAND_GROUP_NO
+		          , CATE_NO
+		          , FILTER_CD
+		    FROM   (
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , 'G009_10' AS FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE5_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE5_NO IS NOT NULL
+		         AND  FORMAL_GB IN ('G009_10','G009_20')
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , 'G009_10' AS FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE4_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE4_NO IS NOT NULL
+		         AND  FORMAL_GB IN ('G009_10','G009_20')
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , 'G009_10' AS FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE3_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE3_NO IS NOT NULL
+		         AND  FORMAL_GB IN ('G009_10','G009_20')
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , 'G009_10' AS FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE2_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE2_NO IS NOT NULL
+		         AND  FORMAL_GB IN ('G009_10','G009_20')
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , 'G009_10' AS FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE1_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE1_NO IS NOT NULL
+		         AND  FORMAL_GB IN ('G009_10','G009_20')
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE5_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE5_NO IS NOT NULL
+		         AND  FORMAL_GB  = 'G009_20'
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE4_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE4_NO IS NOT NULL
+		         AND  FORMAL_GB = 'G009_20'
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE3_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE3_NO IS NOT NULL
+		         AND  FORMAL_GB = 'G009_20'
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE2_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE2_NO IS NOT NULL
+		         AND  FORMAL_GB = 'G009_20'
+		       UNION ALL
+		       SELECT SITE_CD
+		            , CATE_GB
+		            , FORMAL_GB
+		            , BRAND_GROUP_NO
+		            , CATE1_NO       AS CATE_NO
+		            , FILTER_CD
+		       FROM   TAB_FILTER
+		       WHERE  CATE1_NO IS NOT NULL
+		         AND  FORMAL_GB = 'G009_20'
+		    ) Z
+		    WHERE  CATE_NO IS NOT NULL
+		) A
+		   , TB_COMMON_CODE CC
+		WHERE  A.FILTER_CD = CC.CD
+		  AND    CC.CD_GB = 'G006'
+		  AND    CC.USE_YN = 'Y'
+	</insert>
+
+	<!-- 임시브랜드별 카테고리검색필터-컬러 생성 -->
+	<insert id="createTemporaryBrandForCategoryFilterColor" timeout="600">
+		/* TsbDisplay.createTemporaryBrandForCategoryFilterColor */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , C.COLOR_GRP_CD    AS FILTER_CD
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_OPTION O
+		       , TB_COLOR C
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    CG.GOODS_CD = O.GOODS_CD
+		      AND    O.OPT_CD1 = C.COLOR_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+		      AND    O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+		      AND    O.DISP_YN = 'Y' /*노출하는 옵션*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT A.SITE_CD
+		     , A.CATE_GB
+		     , A.FORMAL_GB
+		     , A.BRAND_GROUP_NO
+		     , A.CATE_NO
+		     , 'COLOR'          AS FILTER_GB
+		     , A.FILTER_CD
+		     , CC.CD_DESC       AS FILTER_NM
+		     , RANK() OVER(PARTITION BY A.SITE_CD, A.CATE_GB, A.FORMAL_GB, A.BRAND_GROUP_NO, A.CATE_NO
+		    ORDER BY CC.DISP_ORD
+		    )   AS DISP_ORD
+		FROM   (
+		    SELECT DISTINCT
+		        SITE_CD
+		      , CATE_GB
+		      , FORMAL_GB
+		      , BRAND_GROUP_NO
+		      , CATE_NO
+		      , FILTER_CD
+		    FROM   (
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE5_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE3_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE3_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE2_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE2_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , 'G009_10' AS FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE1_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE1_NO IS NOT NULL
+		                 AND  FORMAL_GB IN ('G009_10','G009_20')
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE5_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE5_NO IS NOT NULL
+		                 AND  FORMAL_GB  = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE4_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE4_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE3_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE3_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE2_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE2_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		               UNION ALL
+		               SELECT SITE_CD
+		                    , CATE_GB
+		                    , FORMAL_GB
+		                    , BRAND_GROUP_NO
+		                    , CATE1_NO       AS CATE_NO
+		                    , FILTER_CD
+		               FROM   TAB_FILTER
+		               WHERE  CATE1_NO IS NOT NULL
+		                 AND  FORMAL_GB = 'G009_20'
+		       ) Z
+		    WHERE  CATE_NO IS NOT NULL
+		) A
+		   , TB_COMMON_CODE CC
+		WHERE  A.FILTER_CD = CC.CD
+		  AND    CC.CD_GB = 'G072'
+		  AND    CC.USE_YN = 'Y'
+	</insert>
+
+	<!-- 임시브랜드별 카테고리검색필터-혜택 생성 -->
+	<insert id="createTemporaryBrandForCategoryFilterBenefit" timeout="600">
+		/* TsbDisplay.createTemporaryBrandForCategoryFilterBenefit */
+		INSERT INTO TB_CATE_FILTER_TMP (
+		         SITE_CD
+		       , CATE_GB
+		       , FORMAL_GB
+		       , BRAND_GROUP_NO
+		       , CATE_NO
+		       , FILTER_GB
+		       , FILTER_CD
+		       , FILTER_NM
+		       , DISP_ORD
+		)
+		WITH TAB_FILTER AS (
+		    SELECT C4.SITE_CD
+		         , C4.CATE_GB
+		         , G.FORMAL_GB
+		         , B.BRAND_GROUP_NO
+		         , C4.CATE1_NO
+		         , C4.CATE2_NO
+		         , C4.CATE3_NO
+		         , C4.CATE4_NO
+		         , C4.CATE5_NO
+		         , G.GOODS_CD
+		         , GB.BENEFIT_GB
+		    FROM   TB_CATE_4SRCH C4
+		       , TB_CATE_GOODS CG
+		       , TB_GOODS G
+		       , TB_GOODS_STOCK GS
+		       , TB_GOODS_BENEFIT GB
+		       , TB_BRAND B
+		       , TB_SITE_BRAND SB
+		    WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		      AND    CG.GOODS_CD = G.GOODS_CD
+		      AND    CG.GOODS_CD = GS.GOODS_CD
+		      AND    CG.GOODS_CD = GB.GOODS_CD
+		      AND    G.BRAND_CD = B.BRAND_CD
+		      AND    B.BRAND_CD = SB.BRAND_CD
+		      AND    C4.SITE_CD = 'G000_10'
+		      AND    C4.CATE_GB = 'G032_101'
+		      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		      AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
+		      AND    GS.STOCK_QTY > 0 /*재고있는상품*/
+		      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		      AND    SB.SITE_CD = 'G000_10'
+		      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		)
+		SELECT SITE_CD
+		     , CATE_GB
+		     , FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE_NO
+		     , 'BENEFIT'        AS FILTER_GB
+		     , FILTER_CD
+		     , CASE WHEN FILTER_CD = '10' THEN '쿠폰할인'
+		            WHEN FILTER_CD = '20' THEN '무료배송'
+		            WHEN FILTER_CD = '30' THEN '사은품'
+		            WHEN FILTER_CD = '40' THEN '신상'
+		            WHEN FILTER_CD = '50' THEN '총알배송'
+		    END              AS FILTER_NM
+		     , RANK() OVER(PARTITION BY SITE_CD, CATE_GB, FORMAL_GB, BRAND_GROUP_NO, CATE_NO
+		    ORDER BY FILTER_CD
+		    )   AS DISP_ORD
+		FROM   (
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , 'G009_10' AS FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE5_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE5_NO IS NOT NULL
+		     AND  FORMAL_GB IN ('G009_10','G009_20')
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , 'G009_10' AS FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE4_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE4_NO IS NOT NULL
+		     AND  FORMAL_GB IN ('G009_10','G009_20')
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , 'G009_10' AS FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE3_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE3_NO IS NOT NULL
+		     AND  FORMAL_GB IN ('G009_10','G009_20')
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , 'G009_10' AS FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE2_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE2_NO IS NOT NULL
+		     AND  FORMAL_GB IN ('G009_10','G009_20')
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , 'G009_10' AS FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE1_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE1_NO IS NOT NULL
+		     AND  FORMAL_GB IN ('G009_10','G009_20')
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE5_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE5_NO IS NOT NULL
+		     AND  FORMAL_GB = 'G009_20'
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE4_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE4_NO IS NOT NULL
+		     AND  FORMAL_GB = 'G009_20'
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE3_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE3_NO IS NOT NULL
+		     AND  FORMAL_GB = 'G009_20'
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE2_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE2_NO IS NOT NULL
+		     AND  FORMAL_GB = 'G009_20'
+		   UNION ALL
+		   SELECT DISTINCT
+		       SITE_CD
+		     , CATE_GB
+		     , FORMAL_GB
+		     , BRAND_GROUP_NO
+		     , CATE1_NO       AS CATE_NO
+		     , BENEFIT_GB     AS FILTER_CD
+		   FROM   TAB_FILTER
+		   WHERE  CATE1_NO IS NOT NULL
+		     AND  FORMAL_GB = 'G009_20'
+		) Z
+	</insert>
 	
 	<!-- 카테고리별 검색필터 삭제 -->
 	<delete id="deleteCategoryFilter">

+ 331 - 55
src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -1663,6 +1663,85 @@
 		FROM TB_IF_PRODUCTSKU
 	</insert>
 	
+	<!-- TB_WMS_STOCK 삭제 -->
+	<delete id="deleteWmsStock"  timeout="300">
+		/* TsbGoods.deleteWmsStock */
+		DELETE FROM TB_WMS_STOCK
+	</delete>
+	
+	<!-- TB_WMS_STOCK 저장 -->
+	<insert id="createWmsStock"  parameterType="java.util.HashMap" >
+		/* TsbGoods.createWmsStock */
+		INSERT INTO TB_WMS_STOCK(
+		      PRODUCT_NO      
+		      ,SKU_CODE        
+		      ,LOC_QTY         
+		      ,PICKING_QTY     
+		      ,EOUT_PICKING_QTY
+		      ,UPD_DT 
+		)
+		VALUES
+		<foreach collection="productSukList" item="item" index="index"  separator=",">
+		(
+		       #{item.productNo}
+		     , #{item.skuCode}
+		     , #{item.locQty}
+		     , #{item.pickingQty}
+		     , #{item.eoutPickingQty}
+		     , NOW()
+		)
+		</foreach>
+		
+	</insert>
+	
+	<!-- TB_IF_PRODUCTSKU 저장 -->
+	<insert id="createWmsStockByRow"  parameterType="WmsStock">
+		/* TsbGoods.createWmsStockByRow */
+		INSERT INTO TB_WMS_STOCK(
+		       PRODUCT_NO      
+		      ,SKU_CODE        
+		      ,LOC_QTY         
+		      ,PICKING_QTY     
+		      ,EOUT_PICKING_QTY
+		      ,UPD_DT
+		)
+		VALUES(
+		       #{productNo}
+		     , #{skuCode}
+		     , #{locQty}
+		     , #{pickingQty}
+		     , #{eoutPickingQty}
+		     , NOW()
+		)
+	</insert>
+	
+	<!-- TB_IF_PRODUCTSKU_HST 삭제 -->
+	<delete id="deleteWmsStockHst"  parameterType="String" timeout="300">
+		/* TsbGoods.deleteWmsStockHst */
+		DELETE FROM TB_WMS_STOCK_HST
+		WHERE JOBDATE <![CDATA[<=]]> #{jobdate} 
+	</delete>
+	
+	<!-- TB_IF_PRODUCTSKU_HST 저장 -->
+	<insert id="createWmsStockHst"  parameterType="String" timeout="300">
+		/* TsbGoods.createWmsStockHst */
+		INSERT INTO TB_WMS_STOCK_HST(
+		       JOBDATE
+		      ,PRODUCT_NO      
+		      ,SKU_CODE        
+		      ,LOC_QTY         
+		      ,PICKING_QTY     
+		      ,EOUT_PICKING_QTY
+		)
+		SELECT #{jobdate}
+		      ,PRODUCT_NO      
+		      ,SKU_CODE        
+		      ,LOC_QTY         
+		      ,PICKING_QTY     
+		      ,EOUT_PICKING_QTY
+		FROM TB_WMS_STOCK
+	</insert>
+	
 	<!-- TB_GOODS_STOCK 삭제 -->
 	<delete id="deleteGoodsDispStock" timeout="300">
 		/* TsbGoods.deleteGoodsDispStock */
@@ -1733,6 +1812,7 @@
 		     , BASE_STOCK_QTY
 		     , CURR_STOCK_QTY
 		     , STORE_STOCK_QTY
+		     , STORE_MAX_QTY
 		     , ADD_PRICE
 		     , SOLDOUT_YN
 		     , DISP_ORD
@@ -1752,7 +1832,82 @@
 		     , PRODUCT_CODE
 		     , 0 AS BASE_STOCK_QTY
 		     , CURR_STOCK_QTY
+		     , 0 AS STORE_STOCK_QTY
+		     , 0 AS STORE_MAX_QTY
+		     , 0 AS ADD_PRICE
+		     , 'N' AS SOLDOUT_YN
+		     , DISP_ORD
+		     , 'Y' AS DISP_YN
+		     , ERP_STOCK_LINK_YN
+		     , 0 AS REG_NO
+		     , NOW() AS REG_DT
+		     , 0 AS UPD_NO
+		     , NOW() AS UPD_DT
+		FROM (
+		      SELECT B.GOODS_CD
+		           , A.SKU_CODE AS OPT_CD
+		           , E.OPT_CD1
+		           , E.OPT_CD2
+		           , E.SKU_MODEL_NO
+		           , E.PRODUCT_NO
+		           , E.PRODUCT_CODE
+		           , ROUND((GREATEST(A.LOC_QTY, 0) -  GREATEST(A.PICKING_QTY, 0)  - GREATEST(A.EOUT_PICKING_QTY, 0)) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
+		           , E.STORE_STOCK_QTY
+		           , E.DISP_ORD
+		           , B.ERP_STOCK_LINK_YN
+		      FROM TB_WMS_STOCK A
+		      INNER JOIN TB_OPTION E ON A.PRODUCT_NO = E.PRODUCT_NO
+		                             AND A.SKU_CODE = E.OPT_CD
+		      INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
+		                            AND B.SELF_GOODS_YN = 'Y'
+		                            AND B.ERP_STOCK_LINK_YN = 'Y'
+		      INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
+		                                      AND C.STOCK_SYNC_YN = 'Y'
+		                                      AND C.DELV_LOC_CD = 'DL001'    -- WMS 매장코드
+		      INNER JOIN TB_DELIVERY_LOC D ON B.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
+		                                   AND C.DELV_LOC_CD = D.DELV_LOC_CD
+		                                   AND D.USE_YN = 'Y'
+		                                   AND D.DELV_LOC_CD = 'DL001'    -- WMS 매장코드
+		     ) Z
+	</insert>
+	
+	<!--매장 재고 임시 테이블 이관  -->
+	<insert id="saveTbOptionSyncTemp"   timeout="300">
+		/* TsbGoods.saveTbOptionSyncTemp */
+		INSERT INTO TB_OPTION_SYNC_TMP
+		(
+		       GOODS_CD
+		     , OPT_CD
+		     , OPT_CD1
+		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
+		     , BASE_STOCK_QTY
+		     , CURR_STOCK_QTY
+		     , STORE_STOCK_QTY
+		     , STORE_MAX_QTY
+		     , ADD_PRICE
+		     , SOLDOUT_YN
+		     , DISP_ORD
+		     , DISP_YN
+		     , ERP_STOCK_LINK_YN
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT GOODS_CD
+		     , OPT_CD
+		     , OPT_CD1
+		     , OPT_CD2
+		     , SKU_MODEL_NO
+		     , PRODUCT_NO
+		     , PRODUCT_CODE
+		     , 0 AS BASE_STOCK_QTY
+		     , 0 AS CURR_STOCK_QTY
 		     , STORE_STOCK_QTY
+		     , 0 AS STORE_MAX_QTY
 		     , 0 AS ADD_PRICE
 		     , 'N' AS SOLDOUT_YN
 		     , DISP_ORD
@@ -1763,46 +1918,27 @@
 		     , 0 AS UPD_NO
 		     , NOW() AS UPD_DT
 		FROM (
-		      SELECT GOODS_CD
-		           , OPT_CD
-		           , OPT_CD1
-		           , OPT_CD2
-		           , SKU_MODEL_NO
-		           , PRODUCT_NO
-		           , PRODUCT_CODE
-		           , SUM(CURR_STOCK_QTY) AS CURR_STOCK_QTY
-		           , STORE_STOCK_QTY
-		           , IFNULL((SELECT (MAX(DISP_ORD) + 1) AS DISP_ORD 
-		                  FROM TB_OPTION WHERE GOODS_CD = Z.GOODS_CD) , ROW_NUMBER() OVER(PARTITION BY GOODS_CD ORDER BY OPT_CD)) AS DISP_ORD
-		           , ERP_STOCK_LINK_YN
-		       FROM (
-		           SELECT B.GOODS_CD
-		                , A.SKUCODE AS OPT_CD
-		                , MAX(A.OPTION1) AS OPT_CD1
-		                , MAX(A.OPTION2) AS OPT_CD2
-		                , MAX(A.SKUMODELNO) AS SKU_MODEL_NO
-		                , MAX(E.PRODUCT_NO) AS PRODUCT_NO
-		                , MAX(E.PRODUCT_CODE) AS PRODUCT_CODE
-		                , ROUND(GREATEST(A.SELLINGSTOCKAMOUNT, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
-		                , MAX(E.STORE_STOCK_QTY) AS STORE_STOCK_QTY
-		                , MAX(B.ERP_STOCK_LINK_YN) AS ERP_STOCK_LINK_YN
-		                , D.DELV_LOC_CD
-		                , D.STOCK_APPL_RATE
-		           FROM TB_IF_PRODUCTSKU A 
-		           INNER JOIN TB_OPTION E ON A.SKUCODE = E.OPT_CD
-		                                  AND A.PRODUCTNO = E.PRODUCT_NO
-		           INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
-		                                 AND B.SELF_GOODS_YN = 'Y'
-		           INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
-		                                           AND C.STOCK_SYNC_YN = 'Y'
-		           INNER JOIN TB_DELIVERY_LOC D ON B.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
-		                                        AND C.DELV_LOC_CD = D.DELV_LOC_CD
-		                                        AND D.USE_YN = 'Y'
-		           WHERE 1 = 1
-		           GROUP BY B.GOODS_CD, A.SKUCODE, D.DELV_LOC_CD, D.STOCK_APPL_RATE
-		           ) Z
-		       GROUP BY GOODS_CD, OPT_CD, OPT_CD1 , OPT_CD2, SKU_MODEL_NO, PRODUCT_NO, PRODUCT_CODE, STORE_STOCK_QTY, ERP_STOCK_LINK_YN
-		      ) Y
+		      SELECT E.GOODS_CD
+		           , E.OPT_CD
+		           , E.OPT_CD1
+		           , E.OPT_CD2
+		           , E.SKU_MODEL_NO
+		           , E.PRODUCT_NO
+		           , E.PRODUCT_CODE
+		           , E.CURR_STOCK_QTY
+		           , SUM(A.STORE_STOCK_QTY) AS STORE_STOCK_QTY
+		           , B.ERP_STOCK_LINK_YN
+		           , E.DISP_ORD
+		      FROM TB_SHOP_STOCK A
+		      INNER JOIN TB_OPTION E ON A.CD_STYLE = E.GOODS_CD
+		                             AND A.OPT_CD = E.OPT_CD
+		      INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
+		                            AND B.SELF_GOODS_YN = 'Y'
+		                            AND B.ERP_STOCK_LINK_YN = 'Y'
+		      GROUP BY GOODS_CD , OPT_CD , OPT_CD1 , OPT_CD2 , SKU_MODEL_NO , PRODUCT_NO , PRODUCT_CODE , CURR_STOCK_QTY , DISP_ORD , ERP_STOCK_LINK_YN
+		  ) Z
+		ON DUPLICATE KEY UPDATE
+		     STORE_STOCK_QTY = Z.STORE_STOCK_QTY
 	</insert>
 	
 	<!-- 입점상품 SELL_QTY 목록 조회 -->
@@ -1837,6 +1973,7 @@
 		    , BASE_STOCK_QTY
 		    , CURR_STOCK_QTY
 		    , STORE_STOCK_QTY
+		    , STORE_MAX_QTY
 		    , ADD_PRICE
 		    , SOLDOUT_YN
 		    , DISP_ORD
@@ -1857,6 +1994,7 @@
 		     , BASE_STOCK_QTY
 		     , CURR_STOCK_QTY
 		     , STORE_STOCK_QTY
+		     , STORE_MAX_QTY
 		     , ADD_PRICE
 		     , SOLDOUT_YN
 		     , DISP_ORD
@@ -1873,8 +2011,8 @@
 	<!-- 상품 재고 정보 저장 -->
 	<update id="updateStock" parameterType="Option"  timeout="300">
 		/* TsbGoods.updateStock */
-		UPDATE TB_STOCK
-		SET CURR_ON_STOCK_QTY = GREATEST(CURR_ON_STOCK_QTY - #{saleStockQty},0)
+		UPDATE TB_OPTION
+		SET CURR_STOCK_QTY = GREATEST(CURR_STOCK_QTY - #{saleStockQty},0)
 		  , UPD_NO = #{updNo}
 		  , UPD_DT = NOW()
 		WHERE GOODS_CD = #{goodsCd}
@@ -1902,6 +2040,7 @@
 		     , BASE_STOCK_QTY
 		     , CURR_STOCK_QTY
 		     , STORE_STOCK_QTY
+		     , STORE_MAX_QTY
 		     , ADD_PRICE
 		     , SOLDOUT_YN
 		     , DISP_ORD
@@ -1920,8 +2059,9 @@
 		     , B.PRODUCT_NO
 		     , B.PRODUCT_CODE
 		     , B.BASE_STOCK_QTY
-		     , B.CURR_STOCK_QTY
-		     , B.STORE_STOCK_QTY
+		     , 0 AS CURR_STOCK_QTY
+		     , 0 AS STORE_STOCK_QTY
+		     , 0 AS STORE_MAX_QTY
 		     , B.ADD_PRICE
 		     , B.SOLDOUT_YN
 		     , B.DISP_ORD
@@ -1932,48 +2072,91 @@
 		     , B.UPD_NO
 		     , B.UPD_DT
 		FROM   TB_GOODS A, TB_OPTION B
-		WHERE  A.GOODS_CD = B.GOODS_CD
+		WHERE  A.ERP_STOCK_LINK_YN = 'Y'
+		AND    A.GOODS_CD = B.GOODS_CD
 	</insert>
 	
 	<!-- TB_OPTION_SYNC_TMP => TB_OPTION_SYNC 변경적용-->
-	<insert id="saveGoodsOptionSyncSync"  timeout="300">
+	<update id="saveGoodsOptionSyncSync"  timeout="300">
 		/* TsbGoods.saveGoodsOptionSyncSync */
 		UPDATE TB_OPTION_SYNC A, (SELECT GOODS_CD
 		                               , OPT_CD
 		                               , CURR_STOCK_QTY
+		                               , STORE_STOCK_QTY
 		                               , ERP_STOCK_LINK_YN
 		                          FROM TB_OPTION_SYNC_TMP
 		                          WHERE ERP_STOCK_LINK_YN = 'Y'
 		                          ) B
 		SET A.CURR_STOCK_QTY = B.CURR_STOCK_QTY
+		  , A.STORE_STOCK_QTY = B.STORE_STOCK_QTY
 		  , A.UPD_NO = 0
 		  , A.UPD_DT = NOW()
 		WHERE A.GOODS_CD = B.GOODS_CD
 		AND A.OPT_CD = B.OPT_CD
 		<![CDATA[
-		AND A.CURR_STOCK_QTY <> B.CURR_STOCK_QTY
+		AND (A.CURR_STOCK_QTY <> B.CURR_STOCK_QTY
+		    OR
+		    A.STORE_STOCK_QTY <> B.STORE_STOCK_QTY
+		    )
 		]]>
-	</insert>
+	</update>
+	
+	<!-- TB_OPTION_SYNC 매장별 최대구매수량 적용-->
+	<update id="updateGoodsOptionSyncSync"  timeout="300">
+		/* TsbGoods.updateGoodsOptionSyncSync */
+		UPDATE TB_OPTION_SYNC A, (SELECT GOODS_CD
+		                               , OPT_CD
+		                               , STORE_MAX_QTY
+		                          FROM (     
+		                                SELECT GOODS_CD
+		                                     , OPT_CD
+		                                     , GREATEST(CURR_STOCK_QTY, QT_STOCK) AS STORE_MAX_QTY
+		                                FROM (
+		                                         SELECT OS.GOODS_CD
+		                                              , OS.OPT_CD
+		                                              , GREATEST(OS.CURR_STOCK_QTY, 0)  AS CURR_STOCK_QTY
+		                                              , GREATEST(IFNULL(SS.QT_STOCK, 0), 0) AS QT_STOCK
+		                                         FROM TB_OPTION_SYNC OS
+		                                         LEFT OUTER JOIN TB_SHOP_STOCK SS ON OS.GOODS_CD = SS.CD_STYLE
+		                                                                       AND OS.OPT_CD = SS.OPT_CD
+		                                         WHERE OS.ERP_STOCK_LINK_YN = 'Y'
+		                                      ) Z
+		                               ) WHERE STORE_MAX_QTY > 0
+		                           ) B
+		SET A.STORE_MAX_QTY = B.STORE_MAX_QTY
+		  , A.UPD_NO = 0
+		  , A.UPD_DT = NOW()
+		WHERE A.GOODS_CD = B.GOODS_CD
+		AND A.OPT_CD = B.OPT_CD
+		<![CDATA[
+		AND A.STORE_MAX_QTY <> B.STORE_MAX_QTY
+		]]>
+	</update>
 	
 	<!-- WMS 임시 테이블에서 실테이블로 변경 -->
-	<insert id="saveGoodsOptionNew"  timeout="300">
+	<update id="saveGoodsOptionNew"  timeout="300">
 		/* TsbGoods.saveGoodsOptionNew */
 		UPDATE TB_OPTION A, (SELECT GOODS_CD
 		                          , OPT_CD
 		                          , CURR_STOCK_QTY
+		                          , STORE_STOCK_QTY
 		                          , ERP_STOCK_LINK_YN
 		                      FROM TB_OPTION_SYNC
 		                      WHERE ERP_STOCK_LINK_YN = 'Y'
 		                      ) B
 		SET A.CURR_STOCK_QTY = B.CURR_STOCK_QTY
+		  , A.STORE_STOCK_QTY = B.STORE_STOCK_QTY
 		  , A.UPD_NO = 0
 		  , A.UPD_DT = NOW()
 		WHERE A.GOODS_CD = B.GOODS_CD
 		AND A.OPT_CD = B.OPT_CD
 		<![CDATA[
-		AND A.CURR_STOCK_QTY <> B.CURR_STOCK_QTY
+		AND (A.CURR_STOCK_QTY <> B.CURR_STOCK_QTY
+		    OR
+		    A.STORE_STOCK_QTY <> B.STORE_STOCK_QTY
+		    )
 		]]>
-	</insert>
+	</update>
 		
 	<!-- TB_SELL_QTY_TMP 테이블 삭제 -->
 	<delete id="deleteTtbSellQtyTemp"  timeout="300">
@@ -2044,11 +2227,11 @@
 		WHERE ORD_DTL_NO IN (
 		                     SELECT OD.ORD_DTL_NO
 		                     FROM TB_ORDER_DETAIL OD
-		                        , TB_ORDER_DETAIL_ITEM ODI
+		                        -- , TB_ORDER_DETAIL_ITEM ODI
 		                        , TB_GOODS G
 		                     WHERE OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		                     AND OD.ORD_DTL_STAT IN ('G013_10','G013_20') -- 입금대기, 결제완료
-		                     AND ODI.ITEM_CD = G.GOODS_CD
+		                     AND OD.ORD_DTL_STAT IN ('G013_10','G013_20','G013_25','G013_30','G013_35','G013_40') -- 입금대기, 결제완료, 교환대기, 상품준비중,출고처지정,배송준비중
+		                     AND OD.GOODS_CD = G.GOODS_CD
 		                     AND G.SELF_GOODS_YN ='Y'
 		                    )
 	</insert>
@@ -2087,7 +2270,7 @@
 		      FROM TB_ORDER_DETAIL OD
 		         , TB_ORDER_DETAIL_ITEM ODI
 		      WHERE OD.ORD_DTL_NO = ODI.ORD_DTL_NO
-		      AND OD.ORD_DTL_STAT IN ('G013_10','G013_20') -- 입금대기, 결제완료
+		      AND OD.ORD_DTL_STAT IN ('G013_10','G013_20','G013_25','G013_30','G013_35','G013_40') -- 입금대기, 결제완료, 교환대기, 상품준비중,출고처지정,배송준비중
 		      AND EXISTS (SELECT 1 FROM TB_OPTION X WHERE X.GOODS_CD = ODI.ITEM_CD AND X.OPT_CD = ODI.OPT_CD)
 		      GROUP BY ODI.ITEM_CD, ODI.OPT_CD, OD.ORD_DTL_NO, OD.AGENT_ORDER_ID, OD.EXTMALL_ORDER_ID
 		     ) A
@@ -2114,6 +2297,7 @@
 		     , BASE_STOCK_QTY
 		     , CURR_STOCK_QTY
 		     , STORE_STOCK_QTY
+		     , STORE_MAX_QTY
 		     , ADD_PRICE
 		     , SOLDOUT_YN
 		     , DISP_ORD
@@ -2133,6 +2317,7 @@
 		     , 0 AS BASE_STOCK_QTY
 		     , E.NORMALQTY AS CURR_STOCK_QTY
 		     , 0 AS STORE_STOCK_QTY
+		     , E.NORMALQTY AS STORE_MAX_QTY
 		     , 0 AS ADD_PRICE
 		     , 'N' AS SOLDOUT_YN
 		     , IFNULL((SELECT (MAX(DISP_ORD) + 1)
@@ -2495,4 +2680,95 @@
 		       ) Z
 	</insert>
 	
+	<!-- TB_SHOP_STOCK 삭제 -->
+	<delete id="deleteShopStock"  timeout="300">
+		/* TsbGoods.deleteShopStock */
+		DELETE FROM TB_SHOP_STOCK
+	</delete>
+
+	<!-- TB_SHOP_STOCK 저장 -->
+	<insert id="createShopStock" >
+		/* TsbGoods.createShopStock */
+		INSERT INTO TB_SHOP_STOCK(
+		      SUPPLY_COMP_CD   
+		    , CD_SHOP          
+		    , CD_STYLE         
+		    , CD_COLOR         
+		    , CD_SIZE          
+		    , QT_STOCK         
+		    , OPT_CD           
+		    , OPT_CD1          
+		    , STORE_STOCK_QTY  
+		    , UPD_DT           
+		)
+		SELECT A.SUPPLY_COMP_CD
+		     , A.CD_SHOP
+		     , A.CD_STYLE
+		     , A.CD_COLOR
+		     , A.CD_SIZE
+		     , A.QT_STOCK
+		     , E.OPT_CD
+		     , E.OPT_CD1
+		     , ROUND(GREATEST(A.QT_STOCK, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS STORE_STOCK_QTY
+		     , NOW()
+		FROM (SELECT S.SUPPLY_COMP_CD
+		          , S.CD_SHOP
+		          , S.CD_STYLE
+		          , S.CD_COLOR
+		          , S.CD_SIZE
+		          , S.QT_STOCK
+		          , M.COLOR_CD AS OPT_CD1
+		     FROM TB_SHOP_GOODS_STOCK S
+		     INNER JOIN TB_WMS_COLOR_MAPPING M ON S.SUPPLY_COMP_CD = M.SUPPLY_COMP_CD
+		                                       AND S.CD_COLOR = M.WMS_COLOR_CD
+		                                       AND M.USE_YN = 'Y') A
+		INNER JOIN TB_OPTION E ON A.CD_STYLE = E.GOODS_CD
+		                       AND A.OPT_CD1 = E.OPT_CD1
+		                       AND A.CD_SIZE = E.OPT_CD2
+		INNER JOIN TB_GOODS B ON A.CD_STYLE = B.GOODS_CD
+		                      AND B.SELF_GOODS_YN = 'Y'
+		                      AND B.ERP_STOCK_LINK_YN = 'Y'
+		INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
+		                                AND C.STOCK_SYNC_YN = 'Y'
+		                                AND A.CD_SHOP = C.DELV_LOC_CD
+		INNER JOIN TB_DELIVERY_LOC D ON A.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
+		                             AND A.CD_SHOP = D.DELV_LOC_CD
+		                             AND D.USE_YN = 'Y'
+	</insert>
+	
+	<!-- TB_SHOP_STOCK_HST 삭제 -->
+	<delete id="deleteShopStockHst"  parameterType="String" timeout="300">
+		/* TsbGoods.deleteShopStockHst */
+		DELETE FROM TB_SHOP_STOCK_HST
+		WHERE JOBDATE <![CDATA[<=]]> #{jobdate} 
+	</delete>
+	
+	<!-- TB_SHOP_STOCK_HST 저장 -->
+	<insert id="createShopStockHst"  parameterType="String" timeout="300">
+		/* TsbGoods.createShopStockHst */
+		INSERT INTO TB_SHOP_STOCK_HST(
+		       JOBDATE
+		     , SUPPLY_COMP_CD
+		     , CD_SHOP
+		     , CD_STYLE
+		     , CD_COLOR
+		     , CD_SIZE
+		     , QT_STOCK
+		     , OPT_CD
+		     , OPT_CD1
+		     , STORE_STOCK_QTY
+		)
+		SELECT #{jobdate}
+		      SUPPLY_COMP_CD
+		     , CD_SHOP
+		     , CD_STYLE
+		     , CD_COLOR
+		     , CD_SIZE
+		     , QT_STOCK
+		     , OPT_CD
+		     , OPT_CD1
+		     , STORE_STOCK_QTY
+		FROM TB_SHOP_STOCK
+	</insert>
+	
 </mapper>

+ 15 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsbPoint.xml

@@ -88,4 +88,19 @@
 		WHERE  CUST_PNT_SQ = #{custPntSq}
 	</update>
 	
+	<select id="getSendPointExpectList" parameterType="Point" resultType="Point">
+		/*TsbPointDao.getSendPointExpectList*/
+		SELECT  C.CUST_NO 
+		      , C.CUST_NM 
+		      , C.CELL_PHNNO 
+		      , DATE_FORMAT(CP.EXP_BE_DT, '%Y.%m.%d') AS EXP_BE_DT
+		      , CP.RM_PNT_AMT 
+		FROM TB_CUST_POINT CP INNER JOIN TB_CUSTOMER C 
+		                  ON CP.CUST_NO = C.CUST_NO 
+		WHERE CP.EXP_BE_DT BETWEEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 30 DAY),'%Y-%m-%d'), ' 00:00:00') AND CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 30 DAY),'%Y-%m-%d'), ' 23:59:59')
+		AND CP.RM_PNT_AMT > 0
+		AND CP.EXP_CMP_DT IS NULL
+		AND C.CUST_STAT = 'G104_10' /*활동회원 만 */
+	</select>
+	
 </mapper>

+ 21 - 0
src/main/java/com/style24/persistence/mybatis/wms/TsbWmsGoods.xml

@@ -234,4 +234,25 @@
 		-- AND B.PRODUCTNO  IN (16561091 ,16561090)   -- 테스트용
 	</select>
 	
+		<!-- WMS view 재고 테이블 조회   -->
+	<select id="getWmsStockList"  resultType="WmsStock">
+		/* TsbWmsGoods.getWmsStockList */
+		SELECT PRODUCT_NO 
+		     , SKU_CODE
+		     , LOC_QTY
+		     , PICKING_QTY
+		     , EOUT_PICKING_QTY
+		FROM (
+		     SELECT PRODUCT_NO
+		          , SKU_CODE
+		          , SUM(LOC_QTY) AS LOC_QTY
+		          , SUM(PICKING_QTY) AS PICKING_QTY 
+		          , SUM(EOUT_PICKING_QTY) AS EOUT_PICKING_QTY
+		     FROM iSTYLE24_WMS.DBO.VW_STOCK_BY_LOCCODE
+		     GROUP BY PRODUCT_NO, SKU_CODE
+		) Z
+		WHERE 1 = 1
+		AND LOC_QTY - PICKING_QTY - EOUT_PICKING_QTY > 0
+	</select>
+	
 </mapper>