swkim 4 年 前
コミット
560b23e7bb

+ 3 - 1
src/main/java/com/style24/batch/biz/dao/TsbStatisticsDao.java

@@ -23,5 +23,7 @@ public interface TsbStatisticsDao {
 
 	int createOrderDateTime(String currDay);
 
-	int createPayDateTime(String currDay);
+	int createStatPay(String currDay);
+
+	int createStatSubPay(String currDay);
 }

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

@@ -29,8 +29,8 @@ public class TsbDateTimeOrderStaticsJob extends TsbAbstractJob<String, String, S
 	public String process(String result) throws Exception {
 
 		// 기간
-		String startDay = "20210601";
-		String endDay = "20210712";
+		String startDay = "20180101";
+		String endDay = "20210831";
 		int days = GagaDateUtil.getOffsetDays(endDay, startDay) + 1;
 
 		System.out.println("term === " + days);

+ 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 {
 
 		// 기간
-		String startDay = "20210601";
-		String endDay = "20210731";
+		String startDay = "20180101";
+		String endDay = "20210831";
 		int days = GagaDateUtil.getOffsetDays(endDay, startDay) + 1;
 
 		System.out.println("term === " + days);

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

@@ -39,13 +39,13 @@ public class TsbPayStaticsJob extends TsbAbstractJob<String, String, String> {
 			String currDay = GagaDateUtil.getOffsetDate(startDay, i, "yyyyMMdd");
 			System.out.println(currDay);
 
-			statisticsService.createPayDateTime(currDay);
+			statisticsService.createStatPay(currDay);
 		}
 */
 		String toDay = GagaDateUtil.getToday();
 		String currDay = GagaDateUtil.getOffsetDate(toDay, -1, "yyyyMMdd");
 
-		statisticsService.createPayDateTime(currDay);
+		statisticsService.createStatPay(currDay);
 
 		return result;
 	}

+ 62 - 0
src/main/java/com/style24/batch/biz/job/statistics/TsbSubPayStaticsJob.java

@@ -0,0 +1,62 @@
+package com.style24.batch.biz.job.statistics;
+
+import com.gagaframework.web.util.GagaDateUtil;
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbStatisticsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 부결제수단통계
+ *
+ * @author swkim
+ * @since 2021.05.17
+ */
+@Component
+@Slf4j
+public class TsbSubPayStaticsJob extends TsbAbstractJob<String, String, String> {
+
+	@Autowired
+	private TsbStatisticsService statisticsService;
+
+	@Override
+	public String read() throws Exception {
+		return "OK";
+	}
+
+	@Override
+	public String process(String result) throws Exception {
+
+		// 기간
+		String startDay = "20200101";
+		String endDay = "20210731";
+		int days = GagaDateUtil.getOffsetDays(endDay, startDay) + 1;
+
+		System.out.println("days === " + days);
+
+		for (int i=0; i<days; i++) {
+			String currDay = GagaDateUtil.getOffsetDate(startDay, i, "yyyyMMdd");
+			System.out.println(currDay);
+
+			statisticsService.createStatSubPay(currDay);
+		}
+
+		/*String toDay = GagaDateUtil.getToday();
+		String currDay = GagaDateUtil.getOffsetDate(toDay, -1, "yyyyMMdd");
+
+		statisticsService.createStatSubPay(currDay);*/
+
+		return result;
+	}
+
+	@Override
+	public String write(String result) throws Exception {
+		return result;
+	}
+
+	@Override
+	public void notify(String result) throws Exception {
+		// Do nothing
+	}
+}

+ 7 - 2
src/main/java/com/style24/batch/biz/service/TsbStatisticsService.java

@@ -44,7 +44,12 @@ public class TsbStatisticsService {
 	}
 
 	@Transactional("shopTxnManager")
-	public int createPayDateTime(String currDay) {
-		return statisticsDao.createPayDateTime(currDay);
+	public int createStatPay(String currDay) {
+		return statisticsDao.createStatPay(currDay);
+	}
+
+	@Transactional("shopTxnManager")
+	public int createStatSubPay(String currDay) {
+		return statisticsDao.createStatSubPay(currDay);
 	}
 }

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

@@ -32,6 +32,9 @@ public class TsbStatisticsTask {
 	@Autowired
 	private TsbPayStaticsJob payStaticsJob;
 
+	@Autowired
+	private TsbSubPayStaticsJob subPayStaticsJob;
+
 	/**
 	 * 초 분 시 일 월 주(년)
 	 * 0 0 12 * * ?" : 아무 요일, 매월, 매일 12:00:00
@@ -79,8 +82,8 @@ public class TsbStatisticsTask {
 	/**
 	 * 일간주문통계
 	 */
-	@Scheduled(fixedDelay = 999999999)
-	//@Scheduled(cron = "${cron.statistics.order.daily.create}")
+	//@Scheduled(fixedDelay = 999999999)
+	@Scheduled(cron = "${cron.statistics.order.daily.create}")
 	@Async
 	public void dayOrderStaticsJob() throws Exception {
 		dayOrderStaticsJob.run("dayOrderStaticsJob");
@@ -109,4 +112,15 @@ public class TsbStatisticsTask {
 		payStaticsJob.runById("cron.statistics.pay.create");
 	}
 
+	/**
+	 * 부결제수단통계
+	 */
+	//@Scheduled(fixedDelay = 999999999)
+	@Scheduled(cron = "${cron.statistics.pay.sub.create}")
+	@Async
+	public void subPayStaticsJob() throws Exception {
+		subPayStaticsJob.run("subPayStaticsJob");
+		//payStaticsJob.runById("cron.statistics.pay.sub.create");
+	}
+
 }

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

@@ -723,8 +723,8 @@
 	</insert>
 
 	<!-- 결제수단통계 -->
-	<insert id="createPayDateTime" parameterType="String" timeout="600">
-		/* TsbStatistics.createPayDateTime */
+	<insert id="createStatPay" parameterType="String" timeout="600">
+		/* TsbStatistics.createStatPay */
 		INSERT INTO TB_STAT_PAY
 		SELECT
 			DATE_FORMAT(PAY_DT, '%Y-%m-%d') AS TERM
@@ -740,4 +740,149 @@
 			AND PAY_MEANS IN ('G014_10','G014_20','G014_30','G014_60','G014_50')
 		GROUP BY TERM, PAY_MEANS, PG_GB, COM_CARD_CD
 	</insert>
+
+	<!-- 부결제수단통계 -->
+	<insert id="createStatSubPay" parameterType="String" timeout="600">
+		/* TsbStatistics.createStatSubPay */
+		INSERT INTO TB_STAT_SUB_PAY
+		WITH TAB_PNT AS (
+			SELECT
+				DATE_FORMAT(PNT_UPLOAD_DT, '%Y-%m-%d') AS TERM
+				, ORD_NO
+				, PNT_AMT
+				, OCCUR_GB
+				, CUST_PNT_SQ
+			FROM TB_CUST_POINT_HST
+			WHERE PNT_UPLOAD_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')
+			AND PNT_UPLOAD_DT &lt;= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s')
+			AND PNT_UPLOAD_STAT = 'G070_30'
+		)
+		-- 포인트 적립액
+		, PNT_GIVE AS (
+			SELECT
+				TERM
+				, SUM(PNT_AMT) AS VAL
+				, OCCUR_GB
+				, '1' AS GB
+			FROM TAB_PNT
+			WHERE 1=1
+			GROUP BY TERM, OCCUR_GB
+		)
+		-- 포인트사용주문수
+		, PNT_ORD_CNT AS (
+			SELECT
+				TERM
+				, SUM(CNT) AS VAL
+				, OCCUR_GB
+				, '2' AS GB
+			FROM (
+				SELECT
+					B.TERM
+					, 1 AS CNT
+					, OCCUR_GB
+				FROM TB_ORDER_DETAIL A, TAB_PNT B
+				WHERE A.ORD_NO = B.ORD_NO
+					AND A.ORD_QTY > A.CNCL_RTN_QTY
+				GROUP BY B.TERM, A.ORD_NO, OCCUR_GB
+			) A
+			GROUP BY TERM, OCCUR_GB
+		)
+		-- 포인트사용액
+		, PNT_USE AS (
+			SELECT
+				B.TERM
+				, SUM(A.PNT_AMT) AS VAL
+				, B.OCCUR_GB
+				, '3' AS GB
+			FROM TB_CUST_POINT_HST A, TAB_PNT B
+			WHERE A.ORD_NO = B.ORD_NO
+				AND A.CUST_PNT_SQ = B.CUST_PNT_SQ
+				AND A.OCCUR_GB IN ('G069_10', 'G069_11', 'G069_36', 'G069_40', 'G069_41', 'G069_42', 'G069_43')
+			GROUP BY TERM, B.OCCUR_GB
+		)
+		, TAB_GIFT AS (
+			SELECT
+				DATE_FORMAT(REG_DT, '%Y-%m-%d') AS TERM
+				, ORD_NO
+				, GFCD_AMT
+				, OCCUR_GB
+				, CUST_GFCD_SQ
+			FROM TB_CUST_GIFTCARD_HST
+			WHERE REG_DT >= DATE_FORMAT(#{currDay}, '%Y%m%d')
+			AND REG_DT &lt;= DATE_FORMAT(CONCAT(#{currDay}, '235959'), '%Y%m%d%H%i%s')
+		)
+		-- 상품권등록매수
+		, GIFT_REG_QTY AS (
+			SELECT
+				TERM
+				, COUNT(1) AS CNT
+				, OCCUR_GB
+				, '4' AS GB
+			FROM TAB_GIFT
+			WHERE OCCUR_GB = 'G074_11'
+			GROUP BY TERM, OCCUR_GB
+		)
+		-- 상품권사용주문수
+		, GIFT_ORD_CNT AS (
+			SELECT
+				TERM
+				, SUM(CNT) AS VAL
+				, OCCUR_GB
+				, '5' AS GB
+			FROM (
+				SELECT
+					B.TERM
+					, 1 AS CNT
+					, OCCUR_GB
+				FROM TB_ORDER_DETAIL A, TAB_GIFT B
+				WHERE A.ORD_NO = B.ORD_NO
+					AND A.ORD_QTY > A.CNCL_RTN_QTY
+				GROUP BY B.TERM, A.ORD_NO, OCCUR_GB
+			) A
+			GROUP BY TERM, OCCUR_GB
+		)
+		-- 상품권사용액
+		, GIFT_USE AS (
+			SELECT
+				B.TERM
+				, SUM(A.GFCD_AMT) AS VAL
+				, B.OCCUR_GB
+				, '6' AS GB
+			FROM TB_CUST_GIFTCARD_HST A, TAB_GIFT B
+			WHERE A.ORD_NO = B.ORD_NO
+				AND A.CUST_GFCD_SQ = B.CUST_GFCD_SQ
+				AND A.OCCUR_GB IN ('G074_12', 'G074_13', 'G074_18', 'G074_19')
+			GROUP BY TERM, B.OCCUR_GB
+		)
+		SELECT
+			DATE_FORMAT(TERM, '%Y-%m-%d') AS TERM
+			, OCCUR_GB
+			, SUM(CASE WHEN GB = '1' THEN VAL ELSE 0 END) AS PNT_GIVE
+			, SUM(CASE WHEN GB = '2' THEN VAL ELSE 0 END) AS PNT_ORD_CNT
+			, SUM(CASE WHEN GB = '3' THEN VAL ELSE 0 END) AS PNT_USE
+			, SUM(CASE WHEN GB = '4' THEN VAL ELSE 0 END) AS GIFT_REG_CNT
+			, SUM(CASE WHEN GB = '5' THEN VAL ELSE 0 END) AS GIFT_ORD_CNT
+			, SUM(CASE WHEN GB = '6' THEN VAL ELSE 0 END) AS GIFT_USE
+			, NOW()
+		FROM (
+			SELECT *
+			FROM PNT_GIVE
+			UNION ALL
+			SELECT *
+			FROM PNT_USE
+			UNION
+			SELECT *
+			FROM PNT_ORD_CNT
+			UNION
+			SELECT *
+			FROM GIFT_REG_QTY
+			UNION
+			SELECT *
+			FROM GIFT_ORD_CNT
+			UNION
+			SELECT *
+			FROM GIFT_USE
+		) Z
+		GROUP BY TERM, OCCUR_GB
+	</insert>
 </mapper>

+ 55 - 53
src/main/resources/config/application-locd.yml

@@ -31,35 +31,35 @@ upload:
 cron:
     #상품
     goods:
-        benefit.create: 30 3 * * * *                 #상품 혜택 생성 (1시간 1회)
-        benefit.price.create: 0 3 * * * *            #상품 즉시할인가 생성 (1시간 1회)
+        benefit.create: 2 22 2 29 2 ?                 #상품 혜택 생성 (1시간 1회)
+        benefit.price.create: 2 22 2 29 2 ?            #상품 즉시할인가 생성 (1시간 1회)
         ep:
             naver:
-                all.goods.create: 0 23 4 * * *             #네이버 전체EP 생성 (1일 1회)
-                summary.goods.create: 0 23 0-3,5-23 * * *  #네이버 요약EP 생성 (1시간 1회)
-                sell.create: 0 28 4 * * *                  #네이버 판매지수EP 생성 (1일 1회)
+                all.goods.create: 2 22 2 29 2 ?             #네이버 전체EP 생성 (1일 1회)
+                summary.goods.create: 2 22 2 29 2 ?  #네이버 요약EP 생성 (1시간 1회)
+                sell.create: 2 22 2 29 2 ?                  #네이버 판매지수EP 생성 (1일 1회)
             daum:
-                all.goods.create: 0 33 4 * * *             #다음 전체EP 생성 (1일 1회)
-                summary.goods.create: 0 33 0-3,5-23 * * *  #다음 요약EP 생성 (1시간 1회)
-                review.create: 0 38 4 * * *                #다음 상품평EP 생성 (1일 1회)
+                all.goods.create: 2 22 2 29 2 ?             #다음 전체EP 생성 (1일 1회)
+                summary.goods.create: 2 22 2 29 2 ?  #다음 요약EP 생성 (1시간 1회)
+                review.create: 2 22 2 29 2 ?                #다음 상품평EP 생성 (1일 1회)
         reserve:
-            titlename.apply: 30 2 * * * *           #상품 예약타이틀명(=세일링문구) 적용 (1시간 1회)
-            price.apply: 0 2 * * * *                #상품 예약가격 적용 (1시간 1회)
+            titlename.apply: 2 22 2 29 2 ?           #상품 예약타이틀명(=세일링문구) 적용 (1시간 1회)
+            price.apply: 2 22 2 29 2 ?                #상품 예약가격 적용 (1시간 1회)
         #infants.safe: 2 22 2 29 2 ?
-        relgoods.scoring: 0 5 * * * *             #연관상품 스코어링 (1시간 1회)
-        keyword.create: 0 1 0 * * *               #상품 검색어 생성 (1일 1회)
-        summary.create: 30 1 0 * * *              #상품 요약정보 생성 (1일 1회)
-        social.price.apply : 0 19 * * * *         #소셜상품의 가격 적용 (1시간 1회)
+        relgoods.scoring: 2 22 2 29 2 ?             #연관상품 스코어링 (1시간 1회)
+        keyword.create: 2 22 2 29 2 ?               #상품 검색어 생성 (1일 1회)
+        summary.create: 2 22 2 29 2 ?              #상품 요약정보 생성 (1일 1회)
+        social.price.apply : 2 22 2 29 2 ?         #소셜상품의 가격 적용 (1시간 1회)
         wms:
-            incomelot.receive: 0 30 0 * * *       #WMS 입고상품 수신 (1일 1회)
-            stock.receive: 0 40 0 * * *           #WMS 상품재고 수신 (1일 1회)
-            measurement.receive: 0 50 0 * * *     #WMS 실측사이즈 수신 (1일 1회)
-            brandprovider.send: 0 0 1 * * *       #WMS 업체/브랜드 송신 (1일 1회)
-            goods.send: 0 10 1 * * *              #WMS 상품정보 송신 (1일 1회)
-        shop.stock.receive: 0 7 * * * *           #ERP 매장재고 수신 (1시간 1회)
+            incomelot.receive: 2 22 2 29 2 ?       #WMS 입고상품 수신 (1일 1회)
+            stock.receive: 2 22 2 29 2 ?           #WMS 상품재고 수신 (1일 1회)
+            measurement.receive: 2 22 2 29 2 ?     #WMS 실측사이즈 수신 (1일 1회)
+            brandprovider.send: 2 22 2 29 2 ?       #WMS 업체/브랜드 송신 (1일 1회)
+            goods.send: 2 22 2 29 2 ?              #WMS 상품정보 송신 (1일 1회)
+        shop.stock.receive: 2 22 2 29 2 ?           #ERP 매장재고 수신 (1시간 1회)
         search:
-            all.create: 0 0 2 * * *               #검색전체색인 생성 (1일 1회)
-            section.create: 0 10 0-1,3-23 * * *   #검색부분색인 생성 (1일 1회)
+            all.create: 2 22 2 29 2 ?               #검색전체색인 생성 (1일 1회)
+            section.create: 2 22 2 29 2 ?   #검색부분색인 생성 (1일 1회)
         reinbound.notify:  2 22 2 29 2 ?          #재입고알림톡 발송 (사용안함)
 
     # 회원(고객)
@@ -102,55 +102,57 @@ cron:
 
     # 전시
     display:
-        category.refresh: 0 30 * * * *         #카테고리 갱신 (1시간 1회)
-        category.stock.create: 0 5/10 * * * *  #카테고리별 재고 생성 (1시간 1회)
+        category.refresh: 2 22 2 29 2 ?         #카테고리 갱신 (1시간 1회)
+        category.stock.create: 2 22 2 29 2 ?  #카테고리별 재고 생성 (1시간 1회)
         #category.filter.create: 0 45 * * * *   #카테고리별 검색필터 생성 (1시간 1회)
-        recently.reg.goods.create: 0 45 * * * *  #최근등록된 상품 100개 생성
-        main.contents.goods.create: 0 15 * * * *  #몰 메인 컨텐츠 상품생성 (1시간 1회)
+        recently.reg.goods.create: 2 22 2 29 2 ?  #최근등록된 상품 100개 생성
+        main.contents.goods.create: 2 22 2 29 2 ?  #몰 메인 컨텐츠 상품생성 (1시간 1회)
 
     # 주문
     order:
-        cart.deadline.expire: 0 20 4 * * *      #만료기간 지난 장바구니 삭제 (1일 1회)
-        deposit.waiting.notify: 0 30 4 * * *    #무통장(가상계좌) 입금대기 알림 (1일 1회)
-        deposit.deadline.expire: 0 40 4 * * *   #무통장입금 입금기한 만료건 주문 취소 (1일 1회)
-        gift.deadline.expire: 0 10 5 * * *      #선물하기 배송지 등록기한 만료건 주문 취소 (1일 1회)
+        cart.deadline.expire: 2 22 2 29 2 ?      #만료기간 지난 장바구니 삭제 (1일 1회)
+        deposit.waiting.notify: 2 22 2 29 2 ?    #무통장(가상계좌) 입금대기 알림 (1일 1회)
+        deposit.deadline.expire: 2 22 2 29 2 ?   #무통장입금 입금기한 만료건 주문 취소 (1일 1회)
+        gift.deadline.expire: 2 22 2 29 2 ?      #선물하기 배송지 등록기한 만료건 주문 취소 (1일 1회)
         #pg.kcp.settle.receive: 2 22 2 29 2 ?    #KCP PG 정산 데이터 수신 (사용안함)
-        cart.unpurchase.push: 0 50 4 * * *      #장바구니 미구매 확인(삭제 10일 전) 푸시 송부 (1일 1회)
-        cart.benefit.push: 0 0 5 * * *          #장바구니 혜택 추가 푸시 (1일 1회)
-        wish.benefit.push: 0 10 5 * * *         #위시리스트 혜택 추가 푸시 (1일 1회)
+        cart.unpurchase.push: 2 22 2 29 2 ?      #장바구니 미구매 확인(삭제 10일 전) 푸시 송부 (1일 1회)
+        cart.benefit.push: 2 22 2 29 2 ?          #장바구니 혜택 추가 푸시 (1일 1회)
+        wish.benefit.push: 2 22 2 29 2 ?         #위시리스트 혜택 추가 푸시 (1일 1회)
 
     #배송
     delivery:
-        shot.deliveryzone.refresh: 0 10 2 * * *        #총알배송 권역정보 갱신(매일 11시) (1일 1회)
-        loc.assign: 0 0/10 7-16 * * MON-FRI            #출고처 지정 및 배송(출고) 지시 (1시간 1회)
+        shot.deliveryzone.refresh: 2 22 2 29 2 ?        #총알배송 권역정보 갱신(매일 11시) (1일 1회)
+        loc.assign: 2 22 2 29 2 ?            #출고처 지정 및 배송(출고) 지시 (1시간 1회)
         wms:
-            outgoing.exception.receive: 0 0/10 * * * * #WMS 출고예외 수신 (1시간 1회)
-            outgoing.result.receive: 0 5/10 * * * *    #WMS 출고결과 수신 (1시간 1회)
-            invoice.receive: 0 7/10 * * * *            #WMS 운송장번호 수신(1시간 1회)
-        sweettracker.invoice.retrieve: 0 9/10 * * * *  #스윗트래커 송장상태 조회 (1시간 1회)
-        auto.soldout.cancel: 0 8/10 * * * *            #자동품절취소 (1시간 1회)
+            outgoing.exception.receive: 2 22 2 29 2 ? #WMS 출고예외 수신 (1시간 1회)
+            outgoing.result.receive: 2 22 2 29 2 ?    #WMS 출고결과 수신 (1시간 1회)
+            invoice.receive: 2 22 2 29 2 ?            #WMS 운송장번호 수신(1시간 1회)
+        sweettracker.invoice.retrieve: 2 22 2 29 2 ?  #스윗트래커 송장상태 조회 (1시간 1회)
+        auto.soldout.cancel: 2 22 2 29 2 ?            #자동품절취소 (1시간 1회)
 
     #회수
     withdraw:
         wms:
-            request: 0 0/10 7-16 * * MON-FRI          #WMS 회수요청 (1시간 1회)
+            request: 2 22 2 29 2 ?          #WMS 회수요청 (1시간 1회)
             ingoing:
-                exception.receive: 0 2/10 * * * *        #WMS 회수입고예외 수신 (1시간 1회)
-                exception.result.receive: 0 4/10 * * * * #WMS 회수입고예외 결과 수신 (1시간 1회)
-                result.receive: 0 6/10 * * * *           #WMS 회수입고결과 수신 (1시간 1회)
+                exception.receive: 2 22 2 29 2 ?        #WMS 회수입고예외 수신 (1시간 1회)
+                exception.result.receive: 2 22 2 29 2 ? #WMS 회수입고예외 결과 수신 (1시간 1회)
+                result.receive: 2 22 2 29 2 ?           #WMS 회수입고결과 수신 (1시간 1회)
         cj:
-            invoice.receive: 0 30 * * * *                #CJ 회수송장번호 수신 (1시간 1회)
-            status.receive: 0 37 * * * *                 #CJ 회수상태 수신 (1시간 1회)
+            invoice.receive: 2 22 2 29 2 ?                #CJ 회수송장번호 수신 (1시간 1회)
+            status.receive: 2 22 2 29 2 ?                 #CJ 회수상태 수신 (1시간 1회)
 
     #네이버페이
-    naverPay.order.batch: 0 0/20 * 1/1 * *               # 네이버페이 배치 실행 (20분배치)
+    naverPay.order.batch: 2 22 2 29 2 ?               # 네이버페이 배치 실행 (20분배치)
 
     #통계
     statistics:
-        aflink.inflow.create: 0 17 * * * *             #유입통계 (1시간 1회)
+        aflink.inflow.create: 2 22 2 29 2 ?             #유입통계 (1시간 1회)
         aflink.inflow.yesterday.create: 2 22 2 29 2 ?  #어제일자유입통계
-        order.daily.create: 0 17 1 * * *               #주문일자별통계
+        order.daily.create: 2 22 2 29 2 ?               #주문일자별통계
         order.datetime.create: 2 22 2 29 2 ?           #주문시간대별통계
+        pay.create: 2 22 2 29 2 ?                      #결제수단통계
+        pay.sub.create: 2 22 2 29 2 ?                   #부결제수단통계
 
     #모니터링
     monitoring:
@@ -159,10 +161,10 @@ cron:
 
     # 샵링커
     shoplinker:
-        stock.send10: 0 0 10 * * *           #재고 10시 (1일 1회)
-        stock.send15: 0 0 15 * * *           #재고 15시 (1일 1회)
-        order.receive: 0 5 5-15 * * MON-FRI  #주문 (1시간 1회)
-        invoice.send: 0 0 * * * *            #송장 (1시간 1회)
+        stock.send10: 2 22 2 29 2 ?           #재고 10시 (1일 1회)
+        stock.send15: 2 22 2 29 2 ?           #재고 15시 (1일 1회)
+        order.receive: 2 22 2 29 2 ?  #주문 (1시간 1회)
+        invoice.send: 2 22 2 29 2 ?            #송장 (1시간 1회)
 
 # USAFE 보증보험 정보
 usafe.guarantee:

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

@@ -171,6 +171,7 @@ cron:
         order.daily.create: 0 17 1 * * *               #주문일자별통계
         order.datetime.create: 0 44 * * * *            #주문시간대별통계
         pay.create: 0 10 1 * * *                       #결제수단통계
+        pay.sub.create: 0 20 1 * * *                   #부결제수단통계
 
     #모니터링
     monitoring: