Explorar el Código

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.batch into develop

swkim hace 4 años
padre
commit
90f359ee46
Se han modificado 28 ficheros con 216 adiciones y 179 borrados
  1. 3 3
      src/main/java/com/style24/batch/biz/dao/TsbStatisticsDao.java
  2. 27 16
      src/main/java/com/style24/batch/biz/job/delivery/TsbCjWithdrawInvoiceJob.java
  3. 1 1
      src/main/java/com/style24/batch/biz/job/goods/TsbDaumAllEp.java
  4. 1 1
      src/main/java/com/style24/batch/biz/job/goods/TsbDaumSummaryEp.java
  5. 1 0
      src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsIncomelotJob.java
  6. 2 2
      src/main/java/com/style24/batch/biz/job/goods/TsbNaverAllEp.java
  7. 2 2
      src/main/java/com/style24/batch/biz/job/goods/TsbNaverSummaryEp.java
  8. 1 0
      src/main/java/com/style24/batch/biz/job/marketing/TsbReviewGuideJob.java
  9. 10 1
      src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerInvoiceJob.java
  10. 5 4
      src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerOrderJob.java
  11. 4 7
      src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerStockJob.java
  12. 1 1
      src/main/java/com/style24/batch/biz/job/statistics/TsbSalesSmsSendJob.java
  13. 14 23
      src/main/java/com/style24/batch/biz/job/statistics/TsbSalesUploadJob.java
  14. 4 4
      src/main/java/com/style24/batch/biz/service/TsbStatisticsService.java
  15. 4 0
      src/main/java/com/style24/persistence/domain/Delivery.java
  16. 29 25
      src/main/java/com/style24/persistence/mybatis/cj/TsbCjDelivery.xml
  17. 1 0
      src/main/java/com/style24/persistence/mybatis/shop/TsbCoupon.xml
  18. 18 9
      src/main/java/com/style24/persistence/mybatis/shop/TsbCustomer.xml
  19. 15 16
      src/main/java/com/style24/persistence/mybatis/shop/TsbDelivery.xml
  20. 2 2
      src/main/java/com/style24/persistence/mybatis/shop/TsbDisplay.xml
  21. 11 11
      src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml
  22. 3 3
      src/main/java/com/style24/persistence/mybatis/shop/TsbGoodsSearch.xml
  23. 2 0
      src/main/java/com/style24/persistence/mybatis/shop/TsbOrder.xml
  24. 2 1
      src/main/java/com/style24/persistence/mybatis/shop/TsbReview.xml
  25. 1 1
      src/main/java/com/style24/persistence/mybatis/shop/TsbShoplinker.xml
  26. 38 31
      src/main/java/com/style24/persistence/mybatis/shop/TsbStatistics.xml
  27. 5 5
      src/main/java/com/style24/persistence/mybatis/wms/TsbWmsDelivery.xml
  28. 9 10
      src/main/resources/config/application-style.yml

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

@@ -52,13 +52,13 @@ public interface TsbStatisticsDao {
 	int createYesterdaySalesUploadList(String erpGb);
 
 	/**
-	 * 매출반영 총건수
+	 * 매출반영 브랜드 목록
 	 * @param erpGb - ERP구분(hsmk:한세MK, hsdr:한세드림)
 	 * @return
 	 * @author gagamel
-	 * @since 2021. 8. 27
+	 * @since 2021. 9. 3
 	 */
-	int getSalesUploadTotalCount(String erpGb);
+	Collection<String> getSalesUploadBrandList(String erpGb);
 
 	/**
 	 * 매출반영 목록

+ 27 - 16
src/main/java/com/style24/batch/biz/job/delivery/TsbCjWithdrawInvoiceJob.java

@@ -57,18 +57,22 @@ public class TsbCjWithdrawInvoiceJob extends TsbAbstractJob<Collection<Delivery>
 		for(Delivery data : invcRcpList) {
 			try {
 			
-			// 2. wms  회수요청 테이블에 등록!
-			wmsDeliveryService.updateWmsRecallInvoice(data);
+				
+				// 2. wms  회수요청 테이블에 등록!
+				data.setOrdChgSq(Integer.parseInt(data.getCjOrdChgSq()));
+				data.setOrdNo(Integer.parseInt(data.getCjOrdNo()));
+				
+				wmsDeliveryService.updateWmsRecallInvoice(data);
 			
-			// 3. mall tb_order_change 테이블  update 
-			deliveryService.updateTbOrderChaneInvoc(data);
+				// 3. mall tb_order_change 테이블  update 
+				deliveryService.updateTbOrderChaneInvoc(data);
 			
-			// 4. cj   회수 송장번호 수신결과 update 
-			cjDeliveryService.updateCjInvcNo(data);
-				succCnt ++;
-			}catch(Exception e) {
-				failCnt++;
-			}
+				// 4. cj   회수 송장번호 수신결과 update 
+				cjDeliveryService.updateCjInvcNo(data);
+					succCnt ++;
+				}catch(Exception e) {
+					failCnt++;
+				}
 		}
 		
 
@@ -81,12 +85,19 @@ public class TsbCjWithdrawInvoiceJob extends TsbAbstractJob<Collection<Delivery>
 		Collection<Delivery> statList = cjDeliveryService.getCjWdStatList();
 		
 		 for(Delivery data : statList) {
-			 
-			 // 2. mall tb_order_change 상태값 업뎃 , tb_order_change_detail 변경상태 업데이트 (배송완료일경우)
-			 deliveryService.updateTbOrderChangeStat(data);
-			 
-			 // 3. cj  완료 업데이트
-			 cjDeliveryService.updateCjWdStat(data);
+			 try {
+				 // 2. mall tb_order_change 상태값 업뎃 , tb_order_change_detail 변경상태 업데이트 (배송완료일경우)
+				 
+				data.setOrdChgSq(Integer.parseInt(data.getCjOrdChgSq()));
+				data.setOrdNo(Integer.parseInt(data.getCjOrdNo()));
+					
+				 deliveryService.updateTbOrderChangeStat(data);
+				 
+				 // 3. cj  완료 업데이트
+				 cjDeliveryService.updateCjWdStat(data);
+			 }catch(Exception e) {
+				 log.info("EXCEPTION" + data.toString() );
+			 }
 		 }
 		
 		succCnt = 1;

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

@@ -113,7 +113,7 @@ public class TsbDaumAllEp extends TsbAbstractJob<String, String, String> {
 //		sb.append("<<<class>>>").append(goodsEp.getUpdGb()).append("\n");	// 전체EP에서는 제외
 //		sb.append("<<<utime>>>").append(goodsEp.getUtime()).append("\n");	// 전체EP에서는 제외
 		sb.append("<<<pname>>>").append(goodsEp.getPname()).append("\n");
-		sb.append("<<<pgurl>>>").append(goodsEp.getPgurl()).append("&af=AF043").append("\n");
+		sb.append("<<<pgurl>>>").append(goodsEp.getPgurl()).append("&afLinkCd=AF043").append("\n");
 		sb.append("<<<igurl>>>").append(goodsEp.getIgurl()).append("\n");
 //		sb.append("<<<upimg>>>").append(goodsEp.getUpimg().equals("Y") ? goodsEp.getUpimg() : "").append("\n");
 		sb.append("<<<cate1>>>").append(goodsEp.getCate1()).append("\n");

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

@@ -113,7 +113,7 @@ public class TsbDaumSummaryEp extends TsbAbstractJob<String, String, String> {
 		sb.append("<<<class>>>").append(goodsEp.getUpdGb()).append("\n");
 		sb.append("<<<utime>>>").append(goodsEp.getUtime()).append("\n");
 		sb.append("<<<pname>>>").append(goodsEp.getPname()).append("\n");
-		sb.append("<<<pgurl>>>").append(goodsEp.getPgurl()).append("&af=AF043").append("\n");
+		sb.append("<<<pgurl>>>").append(goodsEp.getPgurl()).append("&afLinkCd=AF043").append("\n");
 		sb.append("<<<igurl>>>").append(goodsEp.getIgurl()).append("\n");
 		sb.append("<<<upimg>>>").append(goodsEp.getUpimg().equals("Y") ? goodsEp.getUpimg() : "").append("\n");
 		sb.append("<<<cate1>>>").append(goodsEp.getCate1()).append("\n");

+ 1 - 0
src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsIncomelotJob.java

@@ -54,6 +54,7 @@ public class TsbGoodsWmsIncomelotJob extends TsbAbstractJob<GoodsIfIncomelotitem
 	public GoodsIfIncomelotitem write(GoodsIfIncomelotitem goodsIfIncomelotitem) throws Exception {
 
 		jobdate = GagaDateUtil.getOffsetDate(-1);	//전일자
+		//jobdate = "20210829";	//전일자 
 
 		//wms 입고 정보 처리
 		goodsService.saveGoodsWmsIncomelot(jobdate);

+ 2 - 2
src/main/java/com/style24/batch/biz/job/goods/TsbNaverAllEp.java

@@ -128,8 +128,8 @@ public class TsbNaverAllEp extends TsbAbstractJob<String, String, String> {
 		sb.append(goodsEp.getPricePc()).append("\t");
 		sb.append(goodsEp.getPriceMobile()).append("\t");
 		sb.append(goodsEp.getNormalPrice()).append("\t");
-		sb.append(goodsEp.getLink()).append("&af=AF033").append("\t");
-		sb.append(goodsEp.getMobileLink()).append("&af=AF028").append("\t");
+		sb.append(goodsEp.getLink()).append("&afLinkCd=AF033").append("\t");
+		sb.append(goodsEp.getMobileLink()).append("&afLinkCd=AF028").append("\t");
 		sb.append(goodsEp.getImageLink()).append("\t");
 		sb.append(goodsEp.getAddImageLink()).append("\t");
 		sb.append(goodsEp.getCategoryName1()).append("\t");

+ 2 - 2
src/main/java/com/style24/batch/biz/job/goods/TsbNaverSummaryEp.java

@@ -128,8 +128,8 @@ public class TsbNaverSummaryEp extends TsbAbstractJob<String, String, String> {
 		sb.append(goodsEp.getPricePc()).append("\t");
 		sb.append(goodsEp.getPriceMobile()).append("\t");
 		sb.append(goodsEp.getNormalPrice()).append("\t");
-		sb.append(goodsEp.getLink()).append("&af=AF033").append("\t");
-		sb.append(goodsEp.getMobileLink()).append("&af=AF028").append("\t");
+		sb.append(goodsEp.getLink()).append("&afLinkCd=AF033").append("\t");
+		sb.append(goodsEp.getMobileLink()).append("&afLinkCd=AF028").append("\t");
 		sb.append(goodsEp.getImageLink()).append("\t");
 		sb.append(goodsEp.getAddImageLink()).append("\t");
 		sb.append(goodsEp.getCategoryName1()).append("\t");

+ 1 - 0
src/main/java/com/style24/batch/biz/job/marketing/TsbReviewGuideJob.java

@@ -64,6 +64,7 @@ public class TsbReviewGuideJob extends TsbAbstractJob<String, String, String> {
 				dm.setFuserid(String.valueOf(reviewGuide.getCustNo()));
 				dm.setFkkoresendtype("LMS");
 				dm.setFdestine(reviewGuide.getCellPhnno());
+				dm.setBizTime("Y");
 
 				// 대체할 문자열 설정
 				GagaMap replaceInfo = new GagaMap();

+ 10 - 1
src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerInvoiceJob.java

@@ -1,5 +1,6 @@
 package com.style24.batch.biz.job.shoplinker;
 
+import java.io.File;
 import java.util.Collection;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -7,6 +8,7 @@ import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
 import com.gagaframework.web.util.GagaDateUtil;
+import com.gagaframework.web.util.GagaFileUtil;
 import com.style24.batch.biz.job.TsbAbstractJob;
 import com.style24.core.biz.service.TscShoplinkerService;
 import com.style24.persistence.domain.ShoplinkerInvoice;
@@ -44,7 +46,14 @@ public class TsbShoplinkerInvoiceJob extends TsbAbstractJob<Collection<Shoplinke
 	@Override
 	public String write(Collection<ShoplinkerInvoice> list) throws Exception {
 
-		String toDt = GagaDateUtil.getToday("yyyyMMdd");
+		String toDt = GagaDateUtil.getToday("yyyyMMdd"); //
+		
+		//하위폴더존재확인(상품등록)
+		String slFolder = GagaFileUtil.getConcatenationPath(env.getProperty("shoplinker.xml.path")+"/invoice/"+toDt);
+		File slPath = new File(slFolder);
+		if (!slPath.exists()) {
+			slPath.mkdir();
+		}
 		
 		ShoplinkerInvoice shoplinkerInvoice = new ShoplinkerInvoice();
 		shoplinkerInvoice.setXmlPath(env.getProperty("shoplinker.xml.path")+"/invoice/"+toDt);

+ 5 - 4
src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerOrderJob.java

@@ -70,7 +70,8 @@ public class TsbShoplinkerOrderJob extends TsbAbstractJob<String, String, String
 		
 		if( null != ordDateInfo ) {
 			if("Y".equals(ordDateInfo.getBizdayYn())) {
-
+				
+				String toDt = GagaDateUtil.getToday("yyyyMMdd");
 				ShoplinkerOrder shoplinkerOrder = new ShoplinkerOrder();
 				ShoplinkerSearch slkSearch = new ShoplinkerSearch();
 
@@ -125,10 +126,10 @@ public class TsbShoplinkerOrderJob extends TsbAbstractJob<String, String, String
 				shoplinkerOrder.setEdTime(edtime);
 
 				try {
-
+					
 					// 1. 기본세팅정보
-					shoplinkerOrder.setXmlPath(env.getProperty("shoplinker.xml.path")+"/order");	// xml path
-					shoplinkerOrder.setDomainUrl(env.getProperty("shoplinker.xml.view")+"/order");	// xml 확인domain url
+					shoplinkerOrder.setXmlPath(env.getProperty("shoplinker.xml.path")+"/order/"+toDt);		// xml path
+					shoplinkerOrder.setDomainUrl(env.getProperty("shoplinker.xml.view")+"/order/"+toDt);	// xml 확인domain url
 					shoplinkerOrder.setProfiles(env.getProperty("spring.profiles.active").toLowerCase());
 					shoplinkerOrder.setCustomerId(env.getProperty("shoplinker.customer_id"));
 					shoplinkerOrder.setShoplinkerId(env.getProperty("shoplinker.shoplinker_id"));

+ 4 - 7
src/main/java/com/style24/batch/biz/job/shoplinker/TsbShoplinkerStockJob.java

@@ -41,11 +41,8 @@ public class TsbShoplinkerStockJob extends TsbAbstractJob<Collection<ShoplinkerG
 	@Override
 	public Collection<ShoplinkerGoods> read() throws Exception {
 
-		String toDt = GagaDateUtil.getToday("yyyyMMdd");
-		if( !toDt.equals("20210901")) {	// 0901은 수동배치
-			// 재고 변경정보 수정
-			shoplinkerService.updateSyncStock();
-		}
+		// 재고 변경정보 수정
+		shoplinkerService.updateSyncStock();
 
 		// 재고 변경 목록
 		return shoplinkerService.getSyncStockList();
@@ -180,14 +177,14 @@ public class TsbShoplinkerStockJob extends TsbAbstractJob<Collection<ShoplinkerG
 
 		} catch (Exception e) {
 			log.error("callGoodsRegApi error", e);
-			
+
 			java.io.File file = new java.io.File(xmlUrl);
 			String errStr = "[파일존재여부] : "+file.exists();
 			errStr += "\n[xmlPath] : "+xmlPath;
 			errStr += "\n[xmlUrl] : "+xmlUrl;
 			errStr += "\n\n[responseXmlData] : "+responseXmlData;
 			errStr += "\n\n[xml] : "+sbRequest.toString();
-			
+
 			map.setXmlTxt(errStr);
 			map.setApiResult(TscConstants.ShoplinkerApiStat.S_ERROR.value());
 			map.setApiMessage("API 오류 " +StringUtils.abbreviate(responseXmlData, 0 , 120));

+ 1 - 1
src/main/java/com/style24/batch/biz/job/statistics/TsbSalesSmsSendJob.java

@@ -40,7 +40,7 @@ public class TsbSalesSmsSendJob extends TsbAbstractJob<SalesSms, String, String>
 	@Override
 	public String process(SalesSms salesInfo) throws Exception {
 		GagaMap replaceInfo = new GagaMap();
-		replaceInfo.setString("salesDt", GagaDateUtil.getOffsetDate(-1, "MM/dd"));
+		replaceInfo.setString("salesDt", GagaDateUtil.getToday("MM/dd"));
 		replaceInfo.setString("totNetSalesAmt", String.format("%,d", salesInfo.getTotNetSalesAmt()));
 		replaceInfo.setString("totCnclAmt", String.format("%,d", salesInfo.getTotCnclAmt()));
 

+ 14 - 23
src/main/java/com/style24/batch/biz/job/statistics/TsbSalesUploadJob.java

@@ -30,12 +30,12 @@ public class TsbSalesUploadJob extends TsbAbstractJob<String, String, String> {
 	@Autowired
 	private HansaeErp hansaeErp;
 
-	private static final int PAGE_SIZE = 10;
+	private static final int PAGE_SIZE = 100;
 
 	@Override
 	public String read() throws Exception {
-//		// 어제일자 매출반영목록 생성 (한세드림)
-//		statisticsService.createYesterdaySalesUploadList(HansaeErp.ErpGb.HANSAE_DR.value());
+		// 어제일자 매출반영목록 생성 (한세드림)
+		statisticsService.createYesterdaySalesUploadList(HansaeErp.ErpGb.HANSAE_DR.value());
 
 		// 어제일자 매출반영목록 생성 (한세MK)
 		statisticsService.createYesterdaySalesUploadList(HansaeErp.ErpGb.HANSAE_MK.value());
@@ -45,8 +45,8 @@ public class TsbSalesUploadJob extends TsbAbstractJob<String, String, String> {
 
 	@Override
 	public String process(String result) throws Exception {
-//		// 한세드림 매출반영
-//		this.uploadSales(HansaeErp.ErpGb.HANSAE_DR.value());
+		// 한세드림 매출반영
+		this.uploadSales(HansaeErp.ErpGb.HANSAE_DR.value());
 
 		// 한세MK 매출반영
 		this.uploadSales(HansaeErp.ErpGb.HANSAE_MK.value());
@@ -70,33 +70,24 @@ public class TsbSalesUploadJob extends TsbAbstractJob<String, String, String> {
 	 * @throws Exception
 	 */
 	private void uploadSales(String erpGb) throws Exception {
-		// 매출반영 총건수
-		int totCnt = statisticsService.getSalesUploadTotalCount(erpGb);
-		log.info("{}'s totCnt: {}", erpGb, totCnt);
+		// 매출반영 브랜드 목록
+		Collection<String> brandList = statisticsService.getSalesUploadBrandList(erpGb);
 
-		if (totCnt < 1) {
+		if (brandList == null || brandList.isEmpty()) {
+			log.info("매출반영할 브랜드 목록이 없습니다.");
 			return;
 		}
 
-		int totPage = totCnt / PAGE_SIZE;
-		log.info("{}'s totalPage: {}", erpGb, totPage);
-
-		if (totCnt % PAGE_SIZE > 0) {
-			totPage++;
-		}
-
-		for (int page = 0; page < totPage; page++) {
-			int limitStartRow = (page * PAGE_SIZE + 1) - 1;
+		for (String brandCd : brandList) {
 			Erp erp = new Erp();
 			erp.setErpGb(erpGb);
-			erp.setLimitStartRow(limitStartRow);
-			erp.setPageSize(PAGE_SIZE);
+			erp.setBrandCd(brandCd);
 
 			// 매출업로드 목록
 			Collection<GagaMap> uploadList = statisticsService.getSalesUploadList(erp);
 
 			if (uploadList == null || uploadList.isEmpty()) {
-				log.error("{}'s {} Page 매출반영할 데이터가 없습니다.", erpGb, (page + 1));
+				log.error("{}-{} 브랜드의 매출반영할 데이터가 없습니다.", erpGb, brandCd);
 				continue;
 			}
 
@@ -114,14 +105,14 @@ public class TsbSalesUploadJob extends TsbAbstractJob<String, String, String> {
 			GagaMap salesMap = hansaeErp.uploadErpSales(erpGb, uploadList);
 
 			if (salesMap == null || salesMap.isEmpty()) {
-				log.error("{}'s {} Page 매출반영결과 데이터가 없습니다. 한세 ERP 시스템담당자에게 문의해 주세요.", erpGb, (page + 1));
+				log.error("{}-{} 브랜드의 매출반영결과 데이터가 없습니다. 한세 ERP 시스템담당자에게 문의해 주세요.", erpGb, brandCd);
 				continue;
 			}
 
 			// 매출반영결과 처리
 			statisticsService.updateSalesUploadResult(erpGb, salesMap);
 
-			log.info("{}'s {} Page sales uploaded successfully!", erpGb, (page + 1));
+			log.info("{}-{} 브랜드의 매출반영 업로드 성공", erpGb, brandCd);
 		}
 	}
 

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

@@ -85,14 +85,14 @@ public class TsbStatisticsService {
 	}
 
 	/**
-	 * 매출반영 총건수
+	 * 매출반영 브랜드 목록
 	 * @param erpGb - ERP구분(hsmk:한세MK, hsdr:한세드림)
 	 * @return
 	 * @author gagamel
-	 * @since 2021. 8. 27
+	 * @since 2021. 9. 3
 	 */
-	public int getSalesUploadTotalCount(String erpGb) {
-		return statisticsDao.getSalesUploadTotalCount(erpGb);
+	public Collection<String> getSalesUploadBrandList(String erpGb) {
+		return statisticsDao.getSalesUploadBrandList(erpGb);
 	}
 
 	/**

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

@@ -159,6 +159,10 @@ public class Delivery extends TscBaseDomain {
 	private String goodsNm;
 	private String chgerBaseAddr;
 	
+	private String cjOrdChgSq;
+	private String cjOrdNo;
+	
+	
 	private Integer recallexceptionno;
 	private Integer recallexceptionitemno;
 	private Integer recallexceptionmemono;

+ 29 - 25
src/main/java/com/style24/persistence/mybatis/cj/TsbCjDelivery.xml

@@ -7,37 +7,41 @@
 	<select id="getCjWdInvoiceList" resultType="Delivery">
 		/*TsbWmsDelivery.getCjWdInvoiceList*/
 		SELECT 
-		      INVC_NO     AS RECALLINVOICENO
-		      , SUBSTR(CUST_USE_NO, INSTR(CUST_USE_NO,'-')+1, LENGTH(CUST_USE_NO)) AS ORD_CHG_SQ
-		      , SUBSTR(CUST_USE_NO, 0,INSTR(CUST_USE_NO,'-')-1) AS ORD_NO
-		      , TO_DATE(SCAN_YMD||SCAN_HOUR,'YYYYMMDDHH24MISS')   AS DELIVERY_DT
-		      , CUST_USE_NO
-		  FROM V_TRACE_ISTYLE020
-		 WHERE CUST_ID = '0010046850'  -- 고객번호 
-		   AND RCPT_DV = '02' -- 반품 
-		   AND EAI_PRGS_ST = '01' 
-		   AND CRG_ST      = '01' 
-		 GROUP BY INVC_NO, TO_DATE(SCAN_YMD||SCAN_HOUR,'YYYYMMDDHH24MISS'), CUST_USE_NO
+		        A.INVC_NO     AS RECALLINVOICENO
+		      , SUBSTR(A.CUST_USE_NO, INSTR(A.CUST_USE_NO,'-')+1, LENGTH(A.CUST_USE_NO)) AS CJ_ORD_CHG_SQ
+		      , SUBSTR(A.CUST_USE_NO, 0,INSTR(A.CUST_USE_NO,'-')-1) AS CJ_ORD_NO
+		      , TO_DATE(A.SCAN_YMD||A.SCAN_HOUR,'YYYYMMDDHH24MISS')   AS DELIVERY_DT
+		      , A.CUST_USE_NO
+		  FROM V_TRACE_ISTYLE020 A, V_RCPT_ISTYLE010 B
+		 WHERE A.CUST_ID = B.CUST_ID
+           AND A.CUST_USE_NO = B.CUST_USE_NO
+           AND A.CUST_ID = '0010046850'  -- 고객번호 
+		   AND A.RCPT_DV = '02' -- 반품 
+		   AND A.EAI_PRGS_ST = '01' 
+		   AND A.CRG_ST      = '01' 
+		 GROUP BY A.INVC_NO, TO_DATE(A.SCAN_YMD||A.SCAN_HOUR,'YYYYMMDDHH24MISS'), A.CUST_USE_NO
 	</select>
 	
 	<!-- cj 회수 상태 조회    -->	
 	<select id="getCjWdStatList" resultType="Delivery">
 		/*TsbWmsDelivery.getCjWdStatList*/
 		SELECT
-			  SERIAL
-			, INVC_NO     AS RECALLINVOICENO
-			, SUBSTR(CUST_USE_NO, INSTR(CUST_USE_NO,'-')+1, LENGTH(CUST_USE_NO)) AS ORD_CHG_SQ 
-            , SUBSTR(CUST_USE_NO, 0,INSTR(CUST_USE_NO,'-')-1) AS ORD_NO
-			, CRG_ST
-			, NO_CLDV_RSN_CD
-			, TO_DATE(SCAN_YMD||SCAN_HOUR,'YYYYMMDDHH24MISS')   AS DELIVERY_DT
-			, DETAIL_RSN
-		  FROM V_TRACE_ISTYLE020 
-		 WHERE CUST_ID = '0010046850'
-		   AND RCPT_DV ='02'
-		   AND EAI_PRGS_ST = '01'
-           AND CRG_ST NOT IN('01') 
-		 ORDER BY CUST_USE_NO, CRG_ST
+			  A.SERIAL
+			, A.INVC_NO     AS RECALLINVOICENO
+			, SUBSTR(A.CUST_USE_NO, INSTR(A.CUST_USE_NO,'-')+1, LENGTH(A.CUST_USE_NO)) AS CJ_ORD_CHG_SQ 
+			, SUBSTR(A.CUST_USE_NO, 0,INSTR(A.CUST_USE_NO,'-')-1) AS CJ_ORD_NO
+			, A.CRG_ST
+			, A.NO_CLDV_RSN_CD
+			, TO_DATE(A.SCAN_YMD||A.SCAN_HOUR,'YYYYMMDDHH24MISS')   AS DELIVERY_DT
+			, A.DETAIL_RSN
+		  FROM V_TRACE_ISTYLE020 A,  V_RCPT_ISTYLE010 B
+		 WHERE A.CUST_ID = B.CUST_ID
+		   AND A.CUST_USE_NO = B.CUST_USE_NO
+		   AND A.CUST_ID = '0010046850'
+		   AND A.RCPT_DV ='02'
+		   AND A.EAI_PRGS_ST = '01'
+		   AND A.CRG_ST NOT IN('01') 
+		 ORDER BY A.CUST_USE_NO, A.CRG_ST
 	</select>
 	
 	<!-- cj 회수상태 수신 결과 업데이트   -->	

+ 1 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsbCoupon.xml

@@ -41,6 +41,7 @@
 		            (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
 		           )
 		    GROUP  BY CPN_ID, CPN_TARGET
+		    LIMIT 1
 		)
 		SELECT CP.CPN_ID
 		     , CP.END_ALIM_YN

+ 18 - 9
src/main/java/com/style24/persistence/mybatis/shop/TsbCustomer.xml

@@ -272,11 +272,16 @@
 	<!-- 재가입불가 기간 지난 회원 -->
 	<select id="getExpireSecedeCustomerList" parameterType="CustomerSearch" resultType="Customer">
 		/*TsbCustomerDao.getExpireSecedeCustomerList*/
-		SELECT CUST_NO
-		FROM   TB_CUSTOMER
-		WHERE  CUST_STAT = 'G104_30' -- 탈퇴회원
-		AND    SITE_CD = #{siteCd}
-		AND    SECEDE_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -#{rejoinRejectDay} DAY), '%Y%m%d%H%i%S')
+		SELECT C.CUST_NO
+		FROM   TB_CUSTOMER C
+		WHERE  C.CUST_STAT = 'G104_30' -- 탈퇴회원
+		AND    C.SITE_CD = #{siteCd}
+		AND    C.SECEDE_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -#{rejoinRejectDay} DAY), '%Y%m%d%H%i%S')
+		AND    EXISTS (
+		               SELECT 1
+		               FROM TB_SECEDE_CUST SC
+		               WHERE SC.CUST_NO = C.CUST_NO
+		               )
 	</select>
 
 	<!--개인정보 이용내역 안내(년 1회) 대상-->
@@ -330,7 +335,7 @@
 		     , '4'                           AS FMSGTYPE
 		     , #{fmessage}                   AS FMESSAGE
 		     , CASE WHEN DATE_FORMAT(NOW(), '%H') <![CDATA[<=]]> 8 THEN STR_TO_DATE(CONCAT(DATE_FORMAT(NOW(), '%Y-%M-%D'), ' 9'), '%Y-%M-%D %H')
-		            WHEN DATE_FORMAT(NOW(), '%H') BETWEEN 9 AND 20 THEN NOW()
+		            WHEN DATE_FORMAT(NOW(), '%H') BETWEEN 9 AND 19 THEN NOW()
 		            ELSE STR_TO_DATE(CONCAT(DATE_FORMAT(ADDDATE(NOW(), INTERVAL 1 DAY), '%Y-%M-%D'), ' 9'), '%Y-%M-%D %H')
 		       END                           AS FSENDDATE
 		     , #{fkkoresendtype}             AS FKKORESENDTYPE
@@ -380,7 +385,7 @@
 		     , '4'                           AS FMSGTYPE
 		     , #{fmessage}                   AS FMESSAGE
 		     , CASE WHEN DATE_FORMAT(NOW(), '%H') <![CDATA[<=]]> 8 THEN STR_TO_DATE(CONCAT(DATE_FORMAT(NOW(), '%Y-%M-%D'), ' 9'), '%Y-%M-%D %H')
-		            WHEN DATE_FORMAT(NOW(), '%H') BETWEEN 9 AND 20 THEN NOW()
+		            WHEN DATE_FORMAT(NOW(), '%H') BETWEEN 9 AND 19 THEN NOW()
 		            ELSE STR_TO_DATE(CONCAT(DATE_FORMAT(ADDDATE(NOW(), INTERVAL 1 DAY), '%Y-%M-%D'), ' 9'), '%Y-%M-%D %H')
 		       END                           AS FSENDDATE
 		     , #{fkkoresendtype}             AS FKKORESENDTYPE
@@ -1026,6 +1031,7 @@
 		                      WHERE  UPD_DT <![CDATA[>=]]> DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
 		                      AND    UPD_DT <![CDATA[<]]> CURRENT_DATE()
 		                     )
+		AND    C.CUST_STAT = 'G104_10' /*활동회원만*/
 		GROUP  BY CP.CUST_NO
 	</insert>
 	
@@ -1050,6 +1056,7 @@
 		                      WHERE  UPD_DT <![CDATA[>=]]> DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
 		                      AND    UPD_DT <![CDATA[<]]> CURRENT_DATE()
 		                     )
+		AND    C.CUST_STAT = 'G104_10' /*활동회원만*/
 		GROUP  BY CP.CUST_NO
 	</insert>
 
@@ -1096,6 +1103,7 @@
 		            (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
 		           )
 		    GROUP  BY CPN_ID, CPN_TARGET
+		    LIMIT  1
 		)
 		SELECT COUNT(*) AS CNT
 		FROM   TB_CUSTOMER C
@@ -1120,7 +1128,7 @@
 		                   WHERE  CCH.RECEIVER_NO = C.CUST_NO
 		                   AND    CCH.SEND_DT > DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL -1 MONTH ), '%Y%m%d')
 		                   AND    CCH.SEND_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), '%Y%m%d')
-		                   AND    CCH.CONTACT_TYPE = 'G054_601' /*생일쿠폰 다운로드 안내*/
+		                   AND    CCH.CONTACT_TYPE = 'G054_210' /*생일쿠폰 다운로드 안내*/
 		                   )
 	</select>
 
@@ -1168,6 +1176,7 @@
 		            (CPN_TARGET = 'G260_12' AND RK <![CDATA[<=]]> 2) /*브랜드만 2개 노출*/
 		           )
 		    GROUP  BY CPN_ID, CPN_TARGET
+		    LIMIT  1
 		)
 		SELECT C.CUST_NO
 		     , C.CUST_NM
@@ -1233,7 +1242,7 @@
 		                   WHERE  CCH.RECEIVER_NO = C.CUST_NO
 		                   AND    CCH.SEND_DT > DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL -1 MONTH ), '%Y%m%d')
 		                   AND    CCH.SEND_DT <![CDATA[<]]> DATE_FORMAT(DATE_ADD(LAST_DAY(NOW()), INTERVAL 1 DAY), '%Y%m%d')
-		                   AND    CCH.CONTACT_TYPE = 'G054_601' /*생일쿠폰 다운로드 안내*/
+		                   AND    CCH.CONTACT_TYPE = 'G054_210' /*생일쿠폰 다운로드 안내*/
 		                   )
 		ORDER BY C.CUST_NO
 		<include refid="selectForPagingFooter"/>

+ 15 - 16
src/main/java/com/style24/persistence/mybatis/shop/TsbDelivery.xml

@@ -1015,7 +1015,7 @@
 			, A.ORD_NM                            AS CustomerName
 			, A.ORD_DT                            AS DateOrdered
 			, FN_GET_CODE_NM('G110',D.CUST_GRADE) AS  Grade 
-			, E.RECIP_NM                          AS Receiver
+			, case when  B.EXTMALL_ID = 'APISHOP_0021' and E.RECIP_NM like '%주문자%' then SUBSTRING_INDEX(E.RECIP_NM,'(',1 )  else E.RECIP_NM  end as Receiver
 			, E.RECIP_TELNO                       AS ReceiverTelNum
 			, E.RECIP_PHNNO                       AS ReceiverCellNum
 			, E.RECIP_ZIPCODE                     AS DeliveryPostalCode
@@ -1170,7 +1170,7 @@
 		   AND E.SELF_GOODS_YN  = 'Y' -- 자사상품 
 		   AND E.RETURNABLE_YN  = 'Y' -- 반품가능여부 
 		   AND G.MALL_GB        = 'G011_10' -- 자사몰
-		   AND a.REG_DT  >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-08-31','-','')+ 1, '%Y%m%d%H%i%s'), INTERVAL 0 DAY)
+		   AND a.REG_DT  >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-08-31','-',''), '%Y%m%d%H%i%s'), INTERVAL 0 DAY)
 
 		
 		UNION ALL 
@@ -1221,7 +1221,7 @@
 		   AND E.SELF_GOODS_YN  = 'Y' -- 자사상품
 		   AND E.CHANGEABLE_YN  = 'Y' -- 교환가능여부
 		   AND G.MALL_GB        = 'G011_10' -- 자사몰 
-		   AND a.REG_DT  >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-08-31','-','')+ 1, '%Y%m%d%H%i%s'), INTERVAL 0 DAY) 
+		   AND a.REG_DT  >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-08-31','-',''), '%Y%m%d%H%i%s'), INTERVAL 0 DAY)
 
 		
 		UNION ALL 
@@ -1272,11 +1272,10 @@
 		 WHERE A.CHG_GB         = 'G680_30' -- 반품요청
 		   AND B.CHG_STAT       = 'G685_50' -- 반품접수 
 		   AND B.DEL_YN         = 'N'
-		   AND F.DWDP_YN        = 'N' -- N:자사몰에서 회수 
 		   AND E.SELF_GOODS_YN  = 'Y' -- 자사상품 
 		   AND E.RETURNABLE_YN  = 'Y' -- 반품가능여부 
 		   AND G.MALL_GB        = 'G011_20' -- 제휴몰 
-		   AND a.REG_DT  >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-08-31','-','')+ 1, '%Y%m%d%H%i%s'), INTERVAL 0 DAY) 
+		   AND a.REG_DT  >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-08-31','-',''), '%Y%m%d%H%i%s'), INTERVAL 0 DAY)
 
 		
 		UNION ALL 
@@ -1327,11 +1326,10 @@
 		 WHERE A.CHG_GB         = 'G680_40' -- 교환요청
 		   AND B.CHG_STAT       = 'G685_20' -- 교환요청
 		   AND B.DEL_YN         = 'N'
-		   AND F.DWDP_YN        = 'N' -- N:자사몰에서 회수 
 		   AND E.SELF_GOODS_YN  = 'Y' -- 자사상품
 		   AND E.CHANGEABLE_YN  = 'Y' -- 교환가능여부
 		   AND G.MALL_GB        = 'G011_20' -- 제휴몰 		
-		   AND a.REG_DT  >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-08-31','-','')+ 1, '%Y%m%d%H%i%s'), INTERVAL 0 DAY) 
+		   AND a.REG_DT  >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-08-31','-',''), '%Y%m%d%H%i%s'), INTERVAL 0 DAY)
 
 		) A ORDER BY OrderExceptionNo
 	</select>	
@@ -1417,7 +1415,8 @@
 			   AND A.INVOICE_NO != ''
 			   AND A.ORD_DTL_STAT  = 'G013_50'--  배송중
 			   AND NOT EXISTS (SELECT 1 FROM TB_ORDER_DETAIL_INVOICE B WHERE A.ORD_NO = B.ORD_NO AND A.ORD_DTL_NO = B.ORD_DTL_NO AND A.INVOICE_NO = B.INVOICE_NO AND B.SWT_TRC_SEND_YN ='Y')
-			 GROUP BY A.INVOICE_NO, A.SHIP_COMP_CD   
+			   AND A.REG_DT >= DATE_ADD(STR_TO_DATE(REPLACE( '2021-09-01','-',''), '%Y%m%d%H%i%s'), INTERVAL 0 DAY)
+			 GROUP BY A.INVOICE_NO, A.SHIP_COMP_CD
 			   
 			UNION ALL 
 			 
@@ -1781,12 +1780,12 @@
 	<!-- 주문상세번호 조회 -->	
 	<select id="getOrdDtlno2" resultType="Delivery">
 		/*TsbDelivery.getOrdDtlno2*/
-		SELECT DISTINCT ORD_DTL_NO 
+		SELECT DISTINCT A.ORD_DTL_NO 
 		  FROM TB_ORDER_DETAIL_ITEM A 
 		  JOIN TB_ORDER_DETAIL B ON A.ORD_NO = B.ORD_NO AND A.ORD_DTL_NO = B.ORD_DTL_NO 
-		 WHERE ORD_NO     = #{orderno}
-		   AND PRODUCT_NO = #{productno}
-		   AND OPT_CD     = #{skucode}
+		 WHERE A.ORD_NO     = #{orderno}
+		   AND A.PRODUCT_NO = #{productno}
+		   AND A.OPT_CD     = #{skucode}
 		   AND B.ORD_DTL_STAT IN ('G013_50','G013_55','G013_60','G013_70')
 	</select>
 	
@@ -1831,12 +1830,12 @@
 	<!-- 주문상세번호 조회 -->	
 	<select id="getOrderDtlno" resultType="Delivery">
 		/*TsbDelivery.getOrderDtlno*/
-		SELECT DISTINCT ORD_DTL_NO 
+		SELECT DISTINCT A.ORD_DTL_NO 
 		  FROM TB_ORDER_DETAIL_ITEM A 
 		  JOIN TB_ORDER_DETAIL B ON A.ORD_NO = B.ORD_NO AND A.ORD_DTL_NO = B.ORD_DTL_NO 
-		 WHERE ORD_NO     = #{orderno}
-		   AND PRODUCT_NO = #{productno}
-		   AND OPT_CD     = #{skucode}
+		 WHERE A.ORD_NO     = #{orderno}
+		   AND A.PRODUCT_NO = #{productno}
+		   AND A.OPT_CD     = #{skucode}
 
 	</select>
 	

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

@@ -55,9 +55,9 @@
 	</insert>
 
 	<!-- 카테고리별재고임시 테이블 truncate -->
-	<delete id="truncateTemporaryCategoryStock" >
+	<delete id="truncateTemporaryCategoryStock" timeout="300">
 		/* TsbDisplay.truncateTemporaryCategoryStock */
-		TRUNCATE TABLE TB_CATE_STOCK_TMP
+		DELETE FROM TB_CATE_STOCK_TMP
 	</delete>
 
 	<!-- 카테고리별재고 임시테이블에 생성 -->

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

@@ -1013,7 +1013,7 @@
 			WHERE  1=1
 			GROUP  BY A.GOODS_CD
 		) B
-		) 
+		)
 		ON DUPLICATE KEY UPDATE
 		    ${colNm1} = B.COL_DATA
 	</insert>
@@ -1778,7 +1778,7 @@
 				  FROM TB_GOODS_IMG
 				  WHERE GOODS_CD = G.GOODS_CD
 			    ) > 0)
-			    
+
 		    </when>
 		    <otherwise>
 				AND ((SELECT COUNT(1)
@@ -1797,7 +1797,7 @@
 			    )
 		    </otherwise>
 		</choose>
-		
+
 	</select>
 
 	<!-- TB_IF_PRODUCTSKU 삭제 -->
@@ -2515,7 +2515,7 @@
 		                     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'
-		                     AND OD.REG_DT >= DATE_ADD(DATE_FORMAT('20210831','%Y%m%d%H%i%S') , INTERVAL 0 DAY) 
+		                     AND OD.REG_DT >= DATE_ADD(DATE_FORMAT('20210831','%Y%m%d%H%i%S') , INTERVAL 0 DAY)
 		                    )
 		]]>
 	</insert>
@@ -2557,7 +2557,7 @@
 		      WHERE OD.ORD_DTL_NO = ODI.ORD_DTL_NO
 		      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)
-		      AND OD.REG_DT >= DATE_ADD(DATE_FORMAT('20210831','%Y%m%d%H%i%S') , INTERVAL 0 DAY) 
+		      AND OD.REG_DT >= DATE_ADD(DATE_FORMAT('20210831','%Y%m%d%H%i%S') , INTERVAL 0 DAY)
 		      GROUP BY ODI.ITEM_CD, ODI.OPT_CD, OD.ORD_DTL_NO, OD.AGENT_ORDER_ID, OD.EXTMALL_ORDER_ID
 		     ) A
 		WHERE NOT EXISTS (SELECT 1
@@ -2659,9 +2659,9 @@
 	</insert>
 
 	<!-- 상품혜택임시 테이블 truncate -->
-	<delete id="truncateTemporaryGoodsBenefit">
+	<delete id="truncateTemporaryGoodsBenefit" timeout="600">
 		/* TsbGoods.truncateTemporaryGoodsBenefit */
-		TRUNCATE TABLE TB_GOODS_BENEFIT_TMP
+		DELETE FROM TB_GOODS_BENEFIT_TMP
 	</delete>
 
 	<!-- 상품혜택임시- 쿠폰할인 생성(적용범위 개별) -->
@@ -3304,13 +3304,13 @@
 		  , UPD_DT = NOW()
 		WHERE RINBD_INFO_SQ = #{rinbdInfoSq}
 	</update>
-	
+
 	<!-- VW_STOCK임시 테이블 truncate -->
 	<delete id="truncateVwStockTemporary">
 		/* TsbGoods.truncateVwStockTemporary */
 		TRUNCATE TABLE VW_STOCK_TMP
 	</delete>
-	
+
 	<!-- VW_STOCK임시 테이블 생성 -->
 	<insert id="createVwStockTemporary" timeout="900">
 		/* TsbGoods.createVwStockTemporary */
@@ -3361,13 +3361,13 @@
 		                            AND S.OPT_CD = SQ.OPT_CD
 		       ) A
 	</insert>
-	
+
 	<!-- VW_STOCK 테이블 삭제 -->
 	<delete id="deleteVwStock" timeout="300">
 		/* TsbGoods.deleteVwStock */
 		DELETE FROM VW_STOCK
 	</delete>
-	
+
 	<!-- VW_STOCK 테이블 생성 -->
 	<insert id="createVwStock" timeout="900">
 		/* TsbGoods.createVwStock */

+ 3 - 3
src/main/java/com/style24/persistence/mybatis/shop/TsbGoodsSearch.xml

@@ -314,7 +314,7 @@
 	<!-- 상품검색 테이블 삭제 -->
 	<delete id="deleteGoodsSearch" timeout="600">
 		/* TsbGoodsSearch.deleteGoodsSearch */
-		DELETE FROM TB_GOODS_SEARCH
+		TRUNCATE TABLE TB_GOODS_SEARCH
 	</delete>
 
 	<!-- 상품검색 테이블 생성 -->
@@ -438,7 +438,7 @@
 	<!-- 상품검색 부분색인용 TEMP 상품 정보 삭제 -->
 	<delete id="deleteGoodsSearchSectionTemp" timeout="300">
 		/* TsbGoodsSearch.deleteGoodsSearchSectionTemp */
-		DELETE FROM  TB_GOODS_SEARCH_SECTION_TEMP
+		TRUNCATE TABLE TB_GOODS_SEARCH_SECTION_TEMP
 	</delete>
 
 	<!-- 상품검색 부분색인용 상품정보 생성 - 상품추가건 -->
@@ -1094,7 +1094,7 @@
 	<!-- 상품검색 TB_GOODS_SEARCHS_SECTION 테이블 삭제 -->
 	<delete id="deleteGoodsSearchSection" timeout="600">
 		/* TsbGoodsSearch.deleteGoodsSearchSection */
-		DELETE FROM TB_GOODS_SEARCH_SECTION
+		TRUNCATE TABLE TB_GOODS_SEARCH_SECTION
 	</delete>
 
 	<!-- 상품검색 TB_GOODS_SEARCHS_SECTION 테이블 생성 -->

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

@@ -14,6 +14,7 @@
 		AND    PAY.PG_GB = 'KCP'
 		AND    PAY.PAY_MEANS = 'G014_20'
 		AND    PAY.VA_DEADLINE <![CDATA[ < ]]> NOW()
+		AND    OD.REG_DT >= DATE_ADD(DATE_FORMAT('20210831160000','%Y%m%d%H%i%S') , INTERVAL 0 DAY)   -- 오픈 시점 날짜 세팅 후 주석풀기
 		GROUP BY OD.ORD_NO
 	</select>
 
@@ -49,6 +50,7 @@
 		FROM   TB_PAYMENT P
 		INNER  JOIN TB_ORDER O
 		ON     P.ORD_NO = O.ORD_NO
+		AND    O.PAY_DT <![CDATA[>=]]> STR_TO_DATE('20210831','%Y%m%d') /*오픈일로부터 구매한 건만*/
 		INNER  JOIN (SELECT OD.ORD_NO
 		                  , COUNT(1) - 1 AS GOODS_CNT
 		                  , MAX(GOODS_CD) AS GOODS_CD

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

@@ -22,7 +22,8 @@
 		FROM   TB_ORDER O
 		     , TB_ORDER_DETAIL OD
 		WHERE  O.ORD_NO = OD.ORD_NO
-		AND    O.ORD_DT <![CDATA[>=]]> DATE_ADD(NOW(), INTERVAL -1 * #{expireDays} DAY) /*구매일로부터 90일 이내*/
+		AND    O.PAY_DT <![CDATA[>=]]> DATE_ADD(NOW(), INTERVAL -1 * #{expireDays} DAY) /*구매일로부터 90일 이내*/
+		AND    O.PAY_DT <![CDATA[>=]]> STR_TO_DATE('20210831','%Y%m%d') /*오픈일로부터 구매한 건만*/
 		AND    OD.ORD_DTL_STAT = 'G013_70' /*구매확정*/
 		AND    NOT EXISTS (SELECT 1
 		                   FROM   TB_REVIEW_GUIDE

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsbShoplinker.xml

@@ -52,7 +52,7 @@
 	<!-- 재고 전체 동기화 -->
 	<update id="updateSyncStock" timeout="600">
 		UPDATE SHOPLINKER_STOCK A
-		SET UPD_DT = now()
+		SET UPD_DT = NOW()
 			, SEND_YN = 'N'
 			, STOCK_QTY = ( SELECT VW.CURR_STOCK_QTY  FROM VW_STOCK VW
 							WHERE VW.GOODS_CD = A.GOODS_CD  AND VW.OPT_CD = A.OPT_CD)

+ 38 - 31
src/main/java/com/style24/persistence/mybatis/shop/TsbStatistics.xml

@@ -914,12 +914,12 @@
 		                    ODIH.SELL_AMT
 		                ELSE
 		                    0
-		           END)                                                              AS MK_NET_SALES_AMT   /*한세MK순매출금액*/
-		     , -1 * SUM(CASE WHEN ODIH.SUPPLY_COMP_CD = 3 THEN /*한세드림*/
-		                         ODIH.CNCL_AMT
-		                     ELSE
-		                         0
-		                END)                                                         AS DR_NET_SALES_AMT   /*한세드림순매출금액*/
+		           END)                 AS MK_NET_SALES_AMT   /*한세MK순매출금액*/
+		     , SUM(CASE WHEN ODIH.SUPPLY_COMP_CD = 3 THEN /*한세드림*/
+		                    ODIH.SELL_AMT
+		                ELSE
+		                    0
+		           END)                 AS DR_NET_SALES_AMT   /*한세드림순매출금액*/
 		FROM   (
 		        SELECT OD.SUPPLY_COMP_CD
 		             , (CASE WHEN ODIH.ORD_DTL_STAT = 'G720_10' THEN 1 ELSE -1 END)
@@ -950,6 +950,7 @@
 		             , ODIH.GFCD_USE_AMT                                                                  /*상품권사용금액*/
 		        FROM   TB_ORDER_DETAIL_ITEM_HST ODIH
 		        INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
+		                                     AND OD.SUPPLY_COMP_CD IN (3,5,4) /*한세드림,한세MK,FRJ*/
 		        INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
 		        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
 		        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
@@ -970,32 +971,35 @@
 		     , CD_STYLE
 		     , CD_COLOR
 		     , CD_SIZE
+		     , BRAND_CD
 		     , QT_SALE
 		     , AM_ACSALE
 		     , DS_REMARK
 		     , REG_DT
 		)
-		SELECT #{erpGb}            AS ERP_GB
+		SELECT #{erpGb}   AS ERP_GB
 		     , DT_SALE
 		     , TP_SALE
 		     , CD_STYLE
 		     , CD_COLOR
 		     , CD_SIZE
+		     , BRAND_CD
 		     , QT_SALE
 		     , AM_ACSALE
-		     , 'TEST'              AS DS_REMARK
-		     , NOW()               AS REG_DT
+		     , ''         AS DS_REMARK
+		     , NOW()      AS REG_DT
 		FROM   (
-		        SELECT DATE_FORMAT(O.PAY_DT,'%Y%m%d')    AS DT_SALE  /*판매일자*/
+		        SELECT DATE_FORMAT(ODIH.REG_DT,'%Y%m%d')       AS DT_SALE  /*판매일자(=발생일자)*/
 		             , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
 		                    ELSE '2'
-		               END                               AS TP_SALE  /*판매구분(1:판매, 2:환불)*/
-		             , ODIH.ITEM_CD                      AS CD_STYLE /*스타일코드*/
-		             , ODIH.OPT_CD1                      AS CD_COLOR /*색상코드*/
-		             , ODIH.OPT_CD2                      AS CD_SIZE  /*사이즈코드*/
+		               END                                     AS TP_SALE  /*판매구분(1:판매, 2:환불)*/
+		             , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)       AS CD_STYLE /*ERP스타일코드*/
+		             , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)       AS CD_COLOR /*ERP색상코드*/
+		             , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3)) AS CD_SIZE  /*ERP사이즈코드*/
+		             , G.BRAND_CD                                          /*브랜드코드*/
 		             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY /*판매-배송중*/
 		                             ELSE ODIH.CNCL_RTN_QTY /*환입-반품완료,환입-교환완료*/
-		                        END AS SIGNED INT))      AS QT_SALE  /*판매수량*/
+		                        END AS SIGNED INT))            AS QT_SALE  /*판매수량*/
 		             , SUM(CAST(CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' /*판매-배송중*/ THEN
 		                                 ((ODIH.ORD_QTY - ODIH.CNCL_RTN_QTY) * (CASE WHEN O.MALL_GB = 'G011_20' /*제휴몰*/ THEN
 		                                                                                 IFNULL(EUP.USAC_PRICE,ODIH.ITEM_PRICE)
@@ -1008,30 +1012,32 @@
 		                                                            ELSE
 		                                                                ODIH.ITEM_PRICE
 		                                                       END))
-		                        END AS SIGNED INT))      AS AM_ACSALE /*실판매금액*/
+		                        END AS SIGNED INT))            AS AM_ACSALE /*실판매금액*/
 		        FROM   TB_ORDER_DETAIL_ITEM_HST ODIH
 		        INNER JOIN TB_ORDER_DETAIL OD ON ODIH.ORD_DTL_NO = OD.ORD_DTL_NO
 		        INNER JOIN TB_ORDER O ON ODIH.ORD_NO = O.ORD_NO
 		        INNER JOIN TB_SUPPLY_COMPANY SC ON OD.SUPPLY_COMP_CD = SC.SUPPLY_COMP_CD
+		        INNER JOIN TB_GOODS G ON ODIH.ITEM_CD = G.GOODS_CD
 		        LEFT OUTER JOIN TB_EXTMALL_USAC_PRICE EUP ON ODIH.ORD_DTL_ITEM_HST_SQ = EUP.ORD_DTL_ITEM_HST_SQ
 		        WHERE  1 = 1
 		        AND    ODIH.REG_DT <![CDATA[>=]]> DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
 		        AND    ODIH.REG_DT <![CDATA[<]]> CURRENT_DATE()
 		        AND    ODIH.ORD_DTL_STAT IN ('G720_20','G720_50','G720_60') /*판매-배송중, 환입-반품완료, 환입-교환완료*/
 		        <if test='erpGb == "hsmk"'>
-		        AND    OD.SUPPLY_COMP_CD IN (5,4) /*한세MK, FRJ*/
+		        AND    OD.SUPPLY_COMP_CD = 5 /*한세MK*/
 		        </if>
 		        <if test='erpGb == "hsdr"'>
 		        AND    OD.SUPPLY_COMP_CD = 3 /*한세드림*/
 		        </if>
 		        AND    SC.DISTRIBUTION_GB IN ('G065_10','G065_11','G065_12') /*자사*/
-		        GROUP  BY DATE_FORMAT(O.PAY_DT,'%Y%m%d')
+		        GROUP  BY DATE_FORMAT(ODIH.REG_DT,'%Y%m%d')
 		                , CASE WHEN ODIH.ORD_DTL_STAT = 'G720_20' THEN '1'
 		                       ELSE '2'
 		                  END
-		                , ODIH.ITEM_CD
-		                , ODIH.OPT_CD1
-		                , ODIH.OPT_CD2
+		                , SUBSTRING(ODIH.SKU_MODEL_NO,1,10)
+		                , SUBSTRING(ODIH.SKU_MODEL_NO,11,2)
+		                , TRIM(SUBSTRING(ODIH.SKU_MODEL_NO,13,3))
+		                , G.BRAND_CD
 		       ) ODIH
 		WHERE  QT_SALE <![CDATA[<>]]> 0
 		AND    NOT EXISTS (SELECT 1
@@ -1045,20 +1051,20 @@
 		                  )
 	</insert>
 	
-	<!-- 매출반영 총건수 조회 -->
-	<select id="getSalesUploadTotalCount" parameterType="String" resultType="int">
-		/* TsbStatistics.getSalesUploadTotalCount */
-		SELECT COUNT(*) AS CNT
+	<!-- 매출반영 브랜드 목록 -->
+	<select id="getSalesUploadBrandList" parameterType="String" resultType="String">
+		/* TsbStatistics.getSalesUploadBrandList */
+		SELECT DISTINCT BRAND_CD
 		FROM   TB_HANSAE_SALES
 		WHERE  ERP_GB = #{erpGb}
-		AND    REG_DT <![CDATA[>=]]> CURRENT_DATE() /*당일에 등록된 넘*/
-		AND    REG_DT <![CDATA[<]]> DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) /*당일에 등록된 넘*/
+		AND    DT_SALE = DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY),'%Y%m%d') /*전일에 등록된 넘*/
+		AND    CD_SALEBILL IS NULL /*판매전표가없는넘(=매출반영안했거나 실패한넘)*/
+		ORDER  BY BRAND_CD
 	</select>
 	
 	<!-- 매출반영 목록 -->
 	<select id="getSalesUploadList" parameterType="Erp" resultType="paramMap">
 		/* TsbStatistics.getSalesUploadList */
-		<include refid="selectForPagingHeader"/>
 		SELECT DT_SALE
 		     , TP_SALE
 		     , CD_STYLE
@@ -1069,10 +1075,10 @@
 		     , DS_REMARK
 		FROM   TB_HANSAE_SALES
 		WHERE  ERP_GB = #{erpGb}
-		AND    REG_DT <![CDATA[>=]]> CURRENT_DATE() /*당일에 등록된 넘*/
-		AND    REG_DT <![CDATA[<]]> DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY) /*당일에 등록된 넘*/
+		AND    DT_SALE = DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY),'%Y%m%d') /*전일에 등록된 넘*/
+		AND    BRAND_CD = #{brandCd}
+		AND    CD_SALEBILL IS NULL /*판매전표가없는넘(=매출반영안했거나 실패한넘)*/
 		ORDER  BY DT_SALE, TP_SALE, CD_STYLE, CD_COLOR, CD_SIZE
-		<include refid="selectForPagingFooter"/>
 	</select>
 	
 	<!-- 매출반영I/F번호 조회 -->
@@ -1106,6 +1112,7 @@
 		UPDATE TB_HANSAE_SALES
 		SET    CD_SALEBILL = #{CD_SALEBILL}
 		     , DS_ERROR = #{DS_ERROR}
+		     , NO_IF = CASE WHEN LENGTH(#{DS_ERROR}) > 0 THEN NULL ELSE #{NO_IF} END
 		     , UPD_DT = NOW()
 		WHERE  ERP_GB = #{ERP_GB}
 		AND    NO_IF = #{NO_IF}

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

@@ -67,7 +67,6 @@
 			, A.SKUValue
 			, A.ExceptionQty
 			, A.ReasonCd
-			, A.OrderDtlNo
 			, ISNULL(A.OrderDtlNo,999999999) AS OrderDtlNo
 			, A.IfStat
 			, A.IfDate
@@ -221,6 +220,7 @@
 	<!-- WMS_IF 출고결과 주문번호 목록   -->	
 	<select id="getWmsIfDeliveryOrderNoRsltList" resultType="Delivery" timeout="600">
 		/*TsbWmsDelivery.getWmsIfDeliveryOrderNoRsltList*/		
+		<![CDATA[
 		SELECT 
 			    A.OrderNo
 		  FROM iSTYLE24_Wmsif.dbo.TB_IF_DeliveryOrder A 
@@ -230,6 +230,7 @@
 		   AND B.GiftYn   = 'N'
 		   AND B.IsCancel = 0
 		 GROUP BY  A.OrderNo  
+		 ]]>
 	</select>	
 				
 				 
@@ -628,9 +629,9 @@
 		SELECT 
 			  A.RecallNo			-- 반품 번호
 			, A.OrderExceptionNo  AS ORD_CHG_SQ -- 주문변경번호 (주문 예외 번호 ASIS) 
-			, MAX(B.ProductNo)    AS ProductNo			-- 상품 번호
-			, MAX(B.ProductCode)  AS ProductCode			-- 상품 코드
-			, MAX(B.SKUCode)      AS SKUCode				-- 옵션 코드
+			, B.ProductNo         AS ProductNo			-- 상품 번호
+			, B.ProductCode       AS ProductCode		-- 상품 코드
+			, B.SKUCode           AS SKUCode			-- 옵션 코드
 			, ISNULL(B.OrderDtlNo,999999999)        AS ORD_DTL_NO	-- 주문상세번호
 		  FROM istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERY A, istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERYITEM B
 		 WHERE A.RecallNo  = B.RecallNo
@@ -638,7 +639,6 @@
 		   AND B.StatusCd  = '입고완료'   
 		   AND B.IfStat    = '2' -- 회수완료
 		   AND A.RecallNo  = #{recallno}
-		GROUP BY A.RecallNo, A.OrderExceptionNo, B.OrderDtlNo   
 	</select>
 	
 	<!-- 입고결과 아이템 조회  -->

+ 9 - 10
src/main/resources/config/application-style.yml

@@ -61,7 +61,7 @@ cron:
         summary.create: 30 1 0 * * *              #상품 요약정보 생성 (1일 1회)
         social.price.apply : 0 19 * * * *         #소셜상품의 가격 적용 (1시간 1회)
         wms:
-            incomelot.receive: 0 30 0 * * *       #WMS 입고상품 수신 (1일 1회)
+            incomelot.receive: 0 36 2 * * *       #WMS 입고상품 수신 (1일 1회)
             stock.receive: 0 32 * * * *           #WMS 상품재고 수신 (1일 1회)
             measurement.receive: 0 50 0 * * *     #WMS 실측사이즈 수신 (1일 1회)
             brandprovider.send: 0 0 1 * * *       #WMS 업체/브랜드 송신 (1일 1회)
@@ -82,7 +82,7 @@ cron:
         secede.transform: 0 20 2 * * *         #탈퇴처리 (1일 1회)
         privacy.info.notify: 0 30 2 * * *      #개인정보이용내역안내(가입일로부터 1년 시점에 발송) (1일 1회)
         marketing.info.notify: 0 40 2 * * *    #마케팅정보수신동의내역안내(마케팅 정보 수신자에 한해 발송. 가입일로부터 2년 시점에 발송) (1일 1회)
-        grade.change: 0 50 2 * * *             #회원등급변경(매월1일) (1월 1회)
+        grade.change: 0 50 2 1 * *             #회원등급변경(매월1일) (1월 1회)
         netpathy.mail.sync: 0 0 3 * * *        #넷퍼시메일솔루션에 회원정보 연동(1일 1회)
         auto.buy.confirm: 0 5 3 * * *          #자동구매확정(예정포인트 지급) (1일 1회)
         birth.coupon.notify: 0 10 3 1 * *      #생일쿠폰 다운로드 안내(당월 생일인 회원을 대상으로 해당 월 1일에 발송) (1일 1회)
@@ -100,7 +100,7 @@ cron:
         category.stock.create: 0 5/10 * * * *    #카테고리별 재고 생성 (1시간 1회)
         #category.filter.create: 0 45 * * * *     #카테고리별 검색필터 생성 (1시간 1회). 사용안함
         recently.reg.goods.create: 0 45 * * * *  #최근등록된 상품 100개 생성
-        main.contents.goods.create: 0 15 * * * * #몰 메인 컨텐츠 상품생성 (1시간 1회)
+        main.contents.goods.create: 0 5 * * * *  #몰 메인 컨텐츠 상품생성 (1시간 1회)
 
     # 주문
     order:
@@ -118,11 +118,11 @@ cron:
         shot.deliveryzone.refresh: 0 10 2 * * *        #총알배송 권역정보 갱신(매일 11시) (1일 1회)
         loc.assign: 0 0/10 7-16 * * MON-FRI            #출고처 지정 및 배송(출고) 지시 (1시간 1회)
         wms:
-            outgoing.exception.receive: 0 0/10 * * * MON-FRI #WMS 출고예외 수신 (1시간 1회)
-            outgoing.result.receive: 0 5/10 * * * MON-FRI    #WMS 출고결과 수신 (1시간 1회)
-            invoice.receive: 0 7/10 * * * MON-FRI     #WMS 운송장번호 수신(1시간 1회)
+            outgoing.exception.receive: 0 0/10 7-20 * * MON-FRI #WMS 출고예외 수신 (1시간 1회)
+            outgoing.result.receive: 0 5/10 7-22 * * MON-FRI    #WMS 출고결과 수신 (1시간 1회)
+            invoice.receive: 0 7/10 7-20 * * MON-FRI     #WMS 운송장번호 수신(1시간 1회)
         sweettracker.invoice.retrieve: 2 22 2 29 2 ?   #스윗트래커 배송추적 요청 (1시간 1회). public 배치에서 실행
-        auto.soldout.cancel: 0 8/10 8-23 * * MON-FRI  #자동품절취소 (1시간 1회)
+        auto.soldout.cancel: 0 8/10 10-23 * * MON-FRI  #자동품절취소 (1시간 1회)
 
     #회수
     withdraw:
@@ -143,14 +143,13 @@ cron:
     statistics:
         aflink.inflow.create: 0 16 * * * *             #유입통계 (1시간 1회)
         aflink.inflow.yesterday.create: 2 22 2 29 2 ?  #어제일자유입통계
-        order.daily.create: 2 22 2 29 2 ?              #주문일자별통계
+        order.daily.create: 0 20 1 * * *               #주문일자별통계
         order.datetime.create: 2 22 2 29 2 ?           #주문시간대별통계
         pay.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.send2: 0 0 10,14,18,22 * * SAT,SUN   #매출문자발송 (주말(토/일)은 오전 10시, 오후 2시, 6시, 저녁 10시)
-        #sales.upload: 0 0 6 * * *                     #매출반영
-        sales.upload: 2 22 2 29 2 ?                    #매출반영
+        sales.upload: 0 0 6 * * *                      #매출반영 (매일 아침 6시)
 
     #모니터링
     monitoring: