Przeglądaj źródła

Merge branch 'develop' into jmh

jmh 4 lat temu
rodzic
commit
23aa1e2561

+ 50 - 1
src/main/java/com/style24/batch/biz/job/goods/TsbGoodsSearchAllJob.java

@@ -1,6 +1,7 @@
 package com.style24.batch.biz.job.goods;
 package com.style24.batch.biz.job.goods;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import com.style24.batch.biz.job.TsbAbstractJob;
 import com.style24.batch.biz.job.TsbAbstractJob;
@@ -22,6 +23,9 @@ public class TsbGoodsSearchAllJob extends TsbAbstractJob<Goods, Goods, Goods> {
 	@Autowired
 	@Autowired
 	private TsbGoodsSearchService goodsSeachService;
 	private TsbGoodsSearchService goodsSeachService;
 
 
+	@Autowired
+	private Environment env;
+
 	private int succCnt = 0;
 	private int succCnt = 0;
 	private int failCnt = 0;
 	private int failCnt = 0;
 
 
@@ -40,7 +44,52 @@ public class TsbGoodsSearchAllJob extends TsbAbstractJob<Goods, Goods, Goods> {
 	@Override
 	@Override
 	public Goods write(Goods goods) throws Exception {
 	public Goods write(Goods goods) throws Exception {
 
 
-		goodsSeachService.saveGoodsSearchAll();
+//		goodsSeachService.saveGoodsSearchAll();
+
+		//과부하를 막기 위해 트랜젝션 분리처리
+		// 세션 설정
+		goodsSeachService.updateSessionGroupConcat();
+
+		// TB_GOODS_SEARCH_TEMP 삭제
+		goodsSeachService.deleteGoodsSearchTemp();
+
+		// 기본상품정보 생성
+		goodsSeachService.createGoodsSearchTempByGoods();
+
+		// 키워드 생성
+		goodsSeachService.updateGoodsSearchTempByKeyword();
+
+		// 상품이미지 생성
+		String goodsPath = env.getProperty("upload.goods.view");
+		goodsSeachService.updateGoodsSearchTempByImage(goodsPath);
+
+		// 동영상 생성
+		goodsSeachService.updateGoodsSearchTempByVideo();
+
+		// 즉시적용가 생성
+		goodsSeachService.updateGoodsSearchTempByPrice();
+
+		// 아이콘 생성
+		goodsSeachService.updateGoodsSearchTempByIcon();
+
+		// 전시 카테고리 생성
+		goodsSeachService.updateGoodsSearchTempByCate();
+
+		// 자사 옵션정보 생성
+		goodsSeachService.updateGoodsSearchTempBySelfOpt();
+
+		// 자사 옵션별 색상칩 생성
+		goodsSeachService.updateGoodsSearchTempBySelfColor();
+
+		// 자사 입점정보 생성
+		goodsSeachService.updateGoodsSearchTempBySelfNoOpt();
+
+		// TB_GOODS_SEARCH 삭제
+		goodsSeachService.deleteGoodsSearch();
+
+		// TB_GOODS_SEARCH 생성
+		goodsSeachService.createGoodsSearch();
+
 		return goods;
 		return goods;
 	}
 	}
 
 

+ 10 - 2
src/main/java/com/style24/batch/biz/job/statistics/TsbDateTimeOrderStaticsJob.java

@@ -7,6 +7,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import java.util.Date;
+
 /**
 /**
  * 시간대별주문통계
  * 시간대별주문통계
  *
  *
@@ -29,8 +31,8 @@ public class TsbDateTimeOrderStaticsJob extends TsbAbstractJob<String, String, S
 	public String process(String result) throws Exception {
 	public String process(String result) throws Exception {
 
 
 		// 기간
 		// 기간
-		/*String startDay = "20210101";
-		String endDay = "20210831";
+		/*String startDay = "20210901";
+		String endDay = "20210906";
 		int days = GagaDateUtil.getOffsetDays(endDay, startDay) + 1;
 		int days = GagaDateUtil.getOffsetDays(endDay, startDay) + 1;
 
 
 		System.out.println("term === " + days);
 		System.out.println("term === " + days);
@@ -42,11 +44,17 @@ public class TsbDateTimeOrderStaticsJob extends TsbAbstractJob<String, String, S
 			statisticsService.createOrderDateTime(currDay);
 			statisticsService.createOrderDateTime(currDay);
 		}*/
 		}*/
 
 
+		//일자
 		/*String toDay = GagaDateUtil.getToday();
 		/*String toDay = GagaDateUtil.getToday();
 		String currDay = GagaDateUtil.getOffsetDate(toDay, -1, "yyyyMMdd");
 		String currDay = GagaDateUtil.getOffsetDate(toDay, -1, "yyyyMMdd");
 
 
 		statisticsService.createOrderDateTime(currDay);*/
 		statisticsService.createOrderDateTime(currDay);*/
 
 
+		//시간으로
+		//String currDay = "2021090713";
+		String currDay = GagaDateUtil.getToday( "yyyyMMddHH");
+		statisticsService.createOrderDateTime(currDay);
+
 		return result;
 		return result;
 	}
 	}
 
 

+ 2 - 2
src/main/java/com/style24/batch/biz/job/statistics/TsbDayOrderStaticsJob.java

@@ -31,8 +31,8 @@ public class TsbDayOrderStaticsJob extends TsbAbstractJob<String, String, String
 	public String process(String result) throws Exception {
 	public String process(String result) throws Exception {
 
 
 		// 기간
 		// 기간
-		/*String startDay = "20210101";
-		String endDay = "20210831";
+		/*String startDay = "20210901";
+		String endDay = "20210906";
 		int days = GagaDateUtil.getOffsetDays(endDay, startDay) + 1;
 		int days = GagaDateUtil.getOffsetDays(endDay, startDay) + 1;
 
 
 		System.out.println("term === " + days);
 		System.out.println("term === " + days);

+ 57 - 1
src/main/java/com/style24/batch/biz/service/TsbGoodsSearchService.java

@@ -80,6 +80,63 @@ public class TsbGoodsSearchService {
 
 
 	}
 	}
 
 
+	@Transactional("shopTxnManager")
+	public void updateSessionGroupConcat() {
+		goodsSearchDao.updateSessionGroupConcat();
+	}
+	@Transactional("shopTxnManager")
+	public void deleteGoodsSearchTemp() {
+		goodsSearchDao.deleteGoodsSearchTemp();
+	}
+	@Transactional("shopTxnManager")
+	public void createGoodsSearchTempByGoods() {
+		goodsSearchDao.createGoodsSearchTempByGoods("A");
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByKeyword() {
+		goodsSearchDao.updateGoodsSearchTempByKeyword();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByImage(String goodsPath) {
+		goodsSearchDao.updateGoodsSearchTempByImage(goodsPath);
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByVideo() {
+		goodsSearchDao.updateGoodsSearchTempByVideo();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByPrice() {
+		goodsSearchDao.updateGoodsSearchTempByPrice();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByIcon() {
+		goodsSearchDao.updateGoodsSearchTempByIcon();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempByCate() {
+		goodsSearchDao.updateGoodsSearchTempByCate();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempBySelfOpt() {
+		goodsSearchDao.updateGoodsSearchTempBySelfOpt();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempBySelfColor() {
+		goodsSearchDao.updateGoodsSearchTempBySelfColor();
+	}
+	@Transactional("shopTxnManager")
+	public void updateGoodsSearchTempBySelfNoOpt() {
+		goodsSearchDao.updateGoodsSearchTempBySelfNoOpt();
+	}
+	@Transactional("shopTxnManager")
+	public void deleteGoodsSearch() {
+		goodsSearchDao.deleteGoodsSearch();
+	}
+	@Transactional("shopTxnManager")
+	public void createGoodsSearch() {
+		goodsSearchDao.createGoodsSearch();
+	}
+
 	/**
 	/**
 	 * 상품검색 작업 - 부분색인(가격,재고,상품상태,타이틀,혜택(딱지))
 	 * 상품검색 작업 - 부분색인(가격,재고,상품상태,타이틀,혜택(딱지))
 	 *
 	 *
@@ -87,7 +144,6 @@ public class TsbGoodsSearchService {
 	 * @author eskim
 	 * @author eskim
 	 * @since 2021. 06. 13
 	 * @since 2021. 06. 13
 	 */
 	 */
-	@Transactional("shopTxnManager")
 	public void saveGoodsSearchSection() {
 	public void saveGoodsSearchSection() {
 
 
 		// 변경상품 코드 수집 - TB_GOODS_SEARCH_SECTION_TEMP
 		// 변경상품 코드 수집 - TB_GOODS_SEARCH_SECTION_TEMP

+ 4 - 4
src/main/java/com/style24/batch/biz/task/TsbStatisticsTask.java

@@ -100,8 +100,8 @@ public class TsbStatisticsTask {
 	@Scheduled(cron = "${cron.statistics.order.daily.create}")
 	@Scheduled(cron = "${cron.statistics.order.daily.create}")
 	@Async
 	@Async
 	public void dayOrderStaticsJob() throws Exception {
 	public void dayOrderStaticsJob() throws Exception {
-		dayOrderStaticsJob.run("dayOrderStaticsJob");
-		//dayOrderStaticsJob.runById("cron.statistics.order.daily.create");
+		//dayOrderStaticsJob.run("dayOrderStaticsJob");
+		dayOrderStaticsJob.runById("cron.statistics.order.daily.create");
 	}
 	}
 
 
 	/**
 	/**
@@ -111,8 +111,8 @@ public class TsbStatisticsTask {
 	@Scheduled(cron = "${cron.statistics.order.datetime.create}")
 	@Scheduled(cron = "${cron.statistics.order.datetime.create}")
 	@Async
 	@Async
 	public void dateTimeOrderStaticsJob() throws Exception {
 	public void dateTimeOrderStaticsJob() throws Exception {
-		dateTimeOrderStaticsJob.run("dateTimeOrderStaticsJob");
-		//dateTimeOrderStaticsJob.runById("cron.statistics.order.datetime.create");
+		//dateTimeOrderStaticsJob.run("dateTimeOrderStaticsJob");
+		dateTimeOrderStaticsJob.runById("cron.statistics.order.datetime.create");
 	}
 	}
 
 
 	/**
 	/**

+ 22 - 16
src/main/java/com/style24/persistence/mybatis/shop/TsbStatistics.xml

@@ -108,7 +108,7 @@
 					, B.TMTB2_DC_AMT
 					, B.TMTB2_DC_AMT
 					, B.CART_CPN_DC_AMT
 					, B.CART_CPN_DC_AMT
 					, B.SAVE_PNT_AMT
 					, B.SAVE_PNT_AMT
-					, IFNULL(B.AF_LINK_CD, 'AF001')                                     AS AF_LINK_CD
+					, CASE WHEN B.EXTMALL_ID IS NULL AND B.AF_LINK_CD IS NULL THEN 'AF001' ELSE B.AF_LINK_CD END                                     AS AF_LINK_CD
 					, B.EXTMALL_ID
 					, B.EXTMALL_ID
 					, A.PAY_DT
 					, A.PAY_DT
 					, A.FRONT_GB
 					, A.FRONT_GB
@@ -199,7 +199,8 @@
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 				, SUM(CHG_QTY) AS VAL
 				, SUM(CHG_QTY) AS VAL
 				, '6' AS GBN
 				, '6' AS GBN
-				, E.GOODS_CD, B.FORMAL_GB, C.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD, IFNULL(B.AF_LINK_CD, 'AF001') AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
+				, E.GOODS_CD, B.FORMAL_GB, C.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD
+			    , CASE WHEN B.EXTMALL_ID IS NULL AND B.AF_LINK_CD IS NULL THEN 'AF001' ELSE B.AF_LINK_CD END AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
@@ -223,7 +224,8 @@
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 				, SUM(CHG_QTY) AS VAL
 				, SUM(CHG_QTY) AS VAL
 				, '7' AS GBN
 				, '7' AS GBN
-				, E.GOODS_CD, B.FORMAL_GB, C.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD, IFNULL(B.AF_LINK_CD, 'AF001') AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
+				, E.GOODS_CD, B.FORMAL_GB, C.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD
+			    , CASE WHEN B.EXTMALL_ID IS NULL AND B.AF_LINK_CD IS NULL THEN 'AF001' ELSE B.AF_LINK_CD END AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
@@ -247,7 +249,8 @@
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 				, SUM((C.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = C.ORD_DTL_NO)) * B.CHG_QTY) AS VAL
 				, SUM((C.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = C.ORD_DTL_NO)) * B.CHG_QTY) AS VAL
 				, '8' AS GBN
 				, '8' AS GBN
-				, E.GOODS_CD, C.FORMAL_GB, D.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD, IFNULL(C.AF_LINK_CD, 'AF999') AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
+				, E.GOODS_CD, C.FORMAL_GB, D.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD
+			    , CASE WHEN C.EXTMALL_ID IS NULL AND C.AF_LINK_CD IS NULL THEN 'AF001' ELSE C.AF_LINK_CD END AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
@@ -271,7 +274,8 @@
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 				, SUM((C.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = C.ORD_DTL_NO)) * B.CHG_QTY) AS VAL
 				, SUM((C.CURR_PRICE + (SELECT SUM(OPT_ADD_PRICE * ITEM_QTY) FROM TB_ORDER_DETAIL_ITEM X WHERE X.ORD_DTL_NO = C.ORD_DTL_NO)) * B.CHG_QTY) AS VAL
 				, '9' AS GBN
 				, '9' AS GBN
-				, E.GOODS_CD, C.FORMAL_GB, D.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD, IFNULL(C.AF_LINK_CD, 'AF999') AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
+				, E.GOODS_CD, C.FORMAL_GB, D.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD
+			    , CASE WHEN C.EXTMALL_ID IS NULL AND C.AF_LINK_CD IS NULL THEN 'AF001' ELSE C.AF_LINK_CD END AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
@@ -305,7 +309,8 @@
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 				, SUM(CHG_QTY) AS VAL
 				, SUM(CHG_QTY) AS VAL
 				, '11' AS GBN
 				, '11' AS GBN
-				, E.GOODS_CD, B.FORMAL_GB, C.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD, IFNULL(B.AF_LINK_CD, 'AF001') AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
+				, E.GOODS_CD, B.FORMAL_GB, C.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD
+			    , CASE WHEN B.EXTMALL_ID IS NULL AND B.AF_LINK_CD IS NULL THEN 'AF001' ELSE B.AF_LINK_CD END AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
@@ -329,7 +334,8 @@
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 			SELECT DATE_FORMAT(COMPLETE_DT, '%Y-%m-%d') AS TERM
 				, SUM(A.DELV_FEE) AS VAL
 				, SUM(A.DELV_FEE) AS VAL
 				, '12' AS GBN
 				, '12' AS GBN
-				, E.GOODS_CD, B.FORMAL_GB, C.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD, IFNULL(B.AF_LINK_CD, 'AF001') AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
+				, E.GOODS_CD, B.FORMAL_GB, C.FRONT_GB, EXTMALL_ID, (CASE WHEN DISTRIBUTION_GB = 'G065_20' THEN 'SCM' ELSE 'WMS' END) AS DISTRIBUTION_GB, E.SUPPLY_COMP_CD
+			    , CASE WHEN B.EXTMALL_ID IS NULL AND B.AF_LINK_CD IS NULL THEN 'AF001' ELSE B.AF_LINK_CD END AS AF_LINK_CD, BRAND_CD, ITEMKIND_CD
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, IFNULL(FN_DEC_AES(G.SEX_GB), 'G007_X') AS SEX_GB
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				, CASE WHEN FN_DEC_AES(G.BIRTH_YMD) = '' OR FN_DEC_AES(G.BIRTH_YMD) IS NULL THEN 'X'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
 				       WHEN (DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(CONCAT(SUBSTRING(FN_DEC_AES(G.BIRTH_YMD), 1, 4), '0101'), '%Y') + 1) BETWEEN 10 AND 19 THEN '10'
@@ -469,7 +475,7 @@
 			TERM
 			TERM
 			, GOODS_CD, FORMAL_GB, FRONT_GB, EXTMALL_ID, DISTRIBUTION_GB, SUPPLY_COMP_CD, AF_LINK_CD, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, SHOT_DELV_YN
 			, GOODS_CD, FORMAL_GB, FRONT_GB, EXTMALL_ID, DISTRIBUTION_GB, SUPPLY_COMP_CD, AF_LINK_CD, BRAND_CD, ITEMKIND_CD, SEX_GB, AGE, SHOT_DELV_YN
 			, ORD_AMT - (GOODS_CPN_AMT + TMTB_AMT + CART_CPN_AMT + USE_PNT_AMT) AS REAL_ORD_AMT
 			, ORD_AMT - (GOODS_CPN_AMT + TMTB_AMT + CART_CPN_AMT + USE_PNT_AMT) AS REAL_ORD_AMT
-			, SELL_QTY, ORD_AMT, GOODS_CPN_AMT, TMTB_AMT, CNCL_QTY, RTN_QTY, CNCL_AMT, RTN_AMT, SAVE_PNT_AMT
+			, SELL_QTY, ORD_AMT, GOODS_CPN_AMT, TMTB_AMT, CART_CPN_AMT, CNCL_QTY, RTN_QTY, CNCL_AMT, RTN_AMT, SAVE_PNT_AMT
 			, CHG_QTY, CHG_DELV_FEE, ORD_CUST, USE_PNT_AMT, ORD_CNT
 			, CHG_QTY, CHG_DELV_FEE, ORD_CUST, USE_PNT_AMT, ORD_CNT
 			, SELF_AMT, CHANNEL_AMT, EXTMALL_AMT
 			, SELF_AMT, CHANNEL_AMT, EXTMALL_AMT
 			, NOW()
 			, NOW()
@@ -565,8 +571,8 @@
 				WHERE A.ORD_NO = B.ORD_NO
 				WHERE A.ORD_NO = B.ORD_NO
 				    AND B.GOODS_CD = C.GOODS_CD
 				    AND B.GOODS_CD = C.GOODS_CD
 				    AND A.CUST_NO = D.CUST_NO
 				    AND A.CUST_NO = D.CUST_NO
-					AND A.PAY_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')                         -- 시작일변수
-					AND A.PAY_DT &lt;= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
+					AND A.PAY_DT >= DATE_ADD(DATE_FORMAT(CONCAT(#{currDay}, '0000'), '%Y%m%d%H%i%s'), INTERVAL -1 HOUR )                 -- 시작일변수
+					AND A.PAY_DT &lt; DATE_FORMAT(CONCAT(#{currDay}, '0000'), '%Y%m%d%H%i%s') -- 종료일변수
 					AND B.ORD_EXCH_GB = 'O'
 					AND B.ORD_EXCH_GB = 'O'
 					AND B.ORD_DTL_STAT = 'G013_20' -- 결제완료
 					AND B.ORD_DTL_STAT = 'G013_20' -- 결제완료
 			) A
 			) A
@@ -593,8 +599,8 @@
 				AND C.ORD_NO = D.ORD_NO
 				AND C.ORD_NO = D.ORD_NO
 				AND C.GOODS_CD = E.GOODS_CD
 				AND C.GOODS_CD = E.GOODS_CD
 				AND CHG_STAT IN ('G685_18','G685_60') -- 결제후취소,반품완료
 				AND CHG_STAT IN ('G685_18','G685_60') -- 결제후취소,반품완료
-				AND B.COMPLETE_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d') -- 시작일변수
-				AND B.COMPLETE_DT &lt;= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
+			    AND B.COMPLETE_DT >= DATE_ADD(DATE_FORMAT(CONCAT(#{currDay}, '0000'), '%Y%m%d%H%i%s'), INTERVAL -1 HOUR ) -- 시작일변수
+			    AND B.COMPLETE_DT &lt; DATE_FORMAT(CONCAT(#{currDay}, '0000'), '%Y%m%d%H%i%s') -- 종료일변수
 			GROUP BY TERM, FRONT_GB, EXTMALL_ID, BRAND_CD, ITEMKIND_CD, SHOT_DELV_YN
 			GROUP BY TERM, FRONT_GB, EXTMALL_ID, BRAND_CD, ITEMKIND_CD, SHOT_DELV_YN
 		)
 		)
 		-- 주문수
 		-- 주문수
@@ -639,8 +645,8 @@
 					AND B.ORD_NO = C.ORD_NO
 					AND B.ORD_NO = C.ORD_NO
 					AND B.GOODS_CD = E.GOODS_CD
 					AND B.GOODS_CD = E.GOODS_CD
 					AND CHG_STAT = 'G685_10' -- 취소접수
 					AND CHG_STAT = 'G685_10' -- 취소접수
-					AND A.REG_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d') -- 시작일변수
-					AND A.REG_DT &lt;= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
+				    AND A.REG_DT >= DATE_ADD(DATE_FORMAT(CONCAT(#{currDay}, '0000'), '%Y%m%d%H%i%s'), INTERVAL -1 HOUR ) -- 시작일변수
+				    AND A.REG_DT &lt; DATE_FORMAT(CONCAT(#{currDay}, '0000'), '%Y%m%d%H%i%s') -- 종료일변수
 				GROUP BY TERM, FRONT_GB, EXTMALL_ID, BRAND_CD, ITEMKIND_CD, SHOT_DELV_YN
 				GROUP BY TERM, FRONT_GB, EXTMALL_ID, BRAND_CD, ITEMKIND_CD, SHOT_DELV_YN
 			) A
 			) A
 			GROUP BY TERM, FRONT_GB, FRONT_GB, EXTMALL_ID, BRAND_CD, ITEMKIND_CD, SHOT_DELV_YN
 			GROUP BY TERM, FRONT_GB, FRONT_GB, EXTMALL_ID, BRAND_CD, ITEMKIND_CD, SHOT_DELV_YN
@@ -656,8 +662,8 @@
 				AND B.ORD_NO = C.ORD_NO
 				AND B.ORD_NO = C.ORD_NO
 				AND B.GOODS_CD = E.GOODS_CD
 				AND B.GOODS_CD = E.GOODS_CD
 				AND CHG_STAT IN ('G685_18','G685_60') -- 결제후취소,반품완료
 				AND CHG_STAT IN ('G685_18','G685_60') -- 결제후취소,반품완료
-				AND COMPLETE_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d') -- 시작일변수
-				AND COMPLETE_DT &lt;= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s') -- 종료일변수
+			    AND COMPLETE_DT >= DATE_ADD(DATE_FORMAT(CONCAT(#{currDay}, '0000'), '%Y%m%d%H%i%s'), INTERVAL -1 HOUR ) -- 시작일변수
+			    AND COMPLETE_DT &lt; DATE_FORMAT(CONCAT(#{currDay}, '0000'), '%Y%m%d%H%i%s') -- 종료일변수
 			GROUP BY TERM, FRONT_GB, EXTMALL_ID, BRAND_CD, ITEMKIND_CD, SHOT_DELV_YN
 			GROUP BY TERM, FRONT_GB, EXTMALL_ID, BRAND_CD, ITEMKIND_CD, SHOT_DELV_YN
 		)
 		)
 		-- 주문자수(비회원은 주문당 1명)
 		-- 주문자수(비회원은 주문당 1명)

+ 5 - 5
src/main/java/com/style24/persistence/mybatis/wms/TsbWmsDelivery.xml

@@ -601,12 +601,12 @@
 			, A.OrderExceptionNo	AS ORD_CHG_SQ -- 주문변경번호 (주문 예외 번호 ASIS) 
 			, A.OrderExceptionNo	AS ORD_CHG_SQ -- 주문변경번호 (주문 예외 번호 ASIS) 
 			, A.RecallTypeCd		-- 반품 타입
 			, A.RecallTypeCd		-- 반품 타입
 			, A.OrderNo				-- 주문 번호
 			, A.OrderNo				-- 주문 번호
-			, cast(A.CSMemo as varchar)	AS CSMemo			-- CS 메모
+			, cast(A.CSMemo as varchar(max))	AS CSMemo			-- CS 메모
 			, A.DateCSMemoUpdated	-- CS 메모 변경일
 			, A.DateCSMemoUpdated	-- CS 메모 변경일
-			, cast(A.WMSMemo as varchar) WMSMemo				-- WMS 메모
+			, cast(A.WMSMemo as varchar(max)) WMSMemo				-- WMS 메모
 			, A.DateWMSMemoUpdated	-- WMS 메모 변경일
 			, A.DateWMSMemoUpdated	-- WMS 메모 변경일
 			, A.encloseFee          -- 동봉비 
 			, A.encloseFee          -- 동봉비 
-			, CASE WHEN A.DateCreated > '20210620 00:00:00' THEN 'N' ELSE 'Y' END AS ASIS_YN 
+			, CASE WHEN A.DateCreated > '20210901 00:00:00' THEN 'N' ELSE 'Y' END AS ASIS_YN 
 			, A.CodFee
 			, A.CodFee
 			, MAX(B.DateCompleted) AS DateCompleted		-- 완료일
 			, MAX(B.DateCompleted) AS DateCompleted		-- 완료일
 			, MAX(B.InvoiceNo) AS InvoiceNo			-- 원운송장번호
 			, MAX(B.InvoiceNo) AS InvoiceNo			-- 원운송장번호
@@ -618,8 +618,8 @@
 		   AND B.StatusCd  = '입고완료'   
 		   AND B.StatusCd  = '입고완료'   
 		   AND B.IfStat    = '2' -- 회수완료 
 		   AND B.IfStat    = '2' -- 회수완료 
 		   AND 'Y' =  CASE WHEN A.PayGb = 'NAVER' AND REPLACE(CONVERT(varchar, getdate(), 108),':','') < '220000' THEN 'N' ELSE 'Y' END --네이버 주문형 22:00시 부터 수집시작  
 		   AND 'Y' =  CASE WHEN A.PayGb = 'NAVER' AND REPLACE(CONVERT(varchar, getdate(), 108),':','') < '220000' THEN 'N' ELSE 'Y' END --네이버 주문형 22:00시 부터 수집시작  
-		 GROUP BY  A.RecallNo, A.OrderExceptionNo, A.RecallTypeCd, A.OrderNo, cast(A.CSMemo as varchar), A.DateCSMemoUpdated
-			, cast(A.WMSMemo as varchar), A.DateWMSMemoUpdated, A.encloseFee, A.DateCreated, A.CodFee
+		 GROUP BY  A.RecallNo, A.OrderExceptionNo, A.RecallTypeCd, A.OrderNo, cast(A.CSMemo as varchar(max)), A.DateCSMemoUpdated
+			, cast(A.WMSMemo as varchar(max)), A.DateWMSMemoUpdated, A.encloseFee, A.DateCreated, A.CodFee
 			]]>
 			]]>
 	</select>
 	</select>
 		
 		

+ 1 - 1
src/main/resources/config/application-style.yml

@@ -144,7 +144,7 @@ cron:
         aflink.inflow.create: 0 16 * * * *             #유입통계 (1시간 1회)
         aflink.inflow.create: 0 16 * * * *             #유입통계 (1시간 1회)
         aflink.inflow.yesterday.create: 2 22 2 29 2 ?  #어제일자유입통계
         aflink.inflow.yesterday.create: 2 22 2 29 2 ?  #어제일자유입통계
         order.daily.create: 0 20 1 * * *               #주문일자별통계
         order.daily.create: 0 20 1 * * *               #주문일자별통계
-        order.datetime.create: 2 22 2 29 2 ?           #주문시간대별통계
+        order.datetime.create: 0 10 * * * ?            #주문시간대별통계 (매시간)
         pay.create: 2 22 2 29 2 ?                      #결제수단통계
         pay.create: 2 22 2 29 2 ?                      #결제수단통계
         pay.sub.create: 2 22 2 29 2 ?                  #부결제수단통계
         pay.sub.create: 2 22 2 29 2 ?                  #부결제수단통계
         sales.sms.send1: 0 30 20,23 * * MON-FRI        #매출문자발송 (평일은 저녁 8시30분, 11시30분)
         sales.sms.send1: 0 30 20,23 * * MON-FRI        #매출문자발송 (평일은 저녁 8시30분, 11시30분)