Procházet zdrojové kódy

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

swkim před 4 roky
rodič
revize
293b2911d6

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

@@ -244,4 +244,20 @@ public interface TsbDisplayDao {
 	 */
 	int createRecentlyRegisterGoods();
 
+	/**
+	 * 몰 메인 컨텐츠 상품 삭제
+	 *
+	 * @author jmh
+	 * @since 2021. 8. 13
+	 */
+	void deleteMainContentsGoods();
+
+	/**
+	 * 몰 메인 컨텐츠 상품생성
+	 *
+	 * @return 생성건수
+	 * @author jmh
+	 * @since 2021. 8. 13
+	 */
+	int createMainContentsGoods();
 }

+ 294 - 296
src/main/java/com/style24/batch/biz/job/delivery/TsbDeliveryOrderJob.java

@@ -8,9 +8,10 @@ import org.springframework.stereotype.Component;
 import com.style24.batch.biz.job.TsbAbstractJob;
 import com.style24.batch.biz.service.TsbDeliveryService;
 import com.style24.batch.biz.service.TsbWmsDeliveryService;
+import com.style24.core.support.env.TscConstants;
 import com.style24.persistence.domain.Delivery;
-import com.style24.persistence.domain.Erp;
 import com.style24.persistence.domain.WmsDelivery;
+
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -28,14 +29,13 @@ public class TsbDeliveryOrderJob extends TsbAbstractJob<Collection<Delivery>, Co
 
 	@Autowired
 	private TsbWmsDeliveryService wmsDeliveryService;
-	
-	
+
 	private int succCnt = 0;
 	private int failCnt = 0;
 
 	@Override
 	public Collection<Delivery> read() throws Exception {
-		
+
 		// 1. 출고처지정 대상조회 
 		Collection<Delivery> ordnoList = deliveryService.getOrderNoList();
 		return ordnoList;
@@ -58,304 +58,302 @@ public class TsbDeliveryOrderJob extends TsbAbstractJob<Collection<Delivery>, Co
 		 * 5. 출고처 WMS 리스트 조회 후  WMS_IF 테이블에 등록   
 		 * 
 		 * */
-		
-		 String ShopYn = "N";
-		 String WmsYn  = "N";
-		
-		 // WMS 창고 출고처 지정 
-		 for(Delivery ordNoData : ordnoList) {
-			 try {
-				 ShopYn = "N";
-				 WmsYn  = "N";
-				 //2. WMS 재고체크 후  주문의상품재고가  다 있을경우 WMS로 출고처지정 
-				 // 주문상세번호 조회  
-				 Collection<Delivery> ordDtlNoList = deliveryService.getOrderDtlNoList(ordNoData);
-				 int ordDtlCnt = 0;
-				 for(Delivery ordDtlNoData : ordDtlNoList) {
-					 
-					 // 주문상세아이템 조회  
-					 Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(ordDtlNoData);
-					 int chkCnt = 0;
-					 for(Delivery item : itemList) {
-						 // WMS 재고체크 
-						 WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
-						 if(wmsStock !=null) {
-							 if(wmsStock.getLocQty() >= item.getOrdQty()) {
-								 chkCnt = chkCnt+1;
-							 }
-						 }
-					 }
-					 if(chkCnt == itemList.size()) {
-						 ordDtlCnt = ordDtlCnt+1;
-					 }
-				 }
-				 log.info("ordDtlCnt"+ordDtlCnt+"  ordDtlNoList.size() "+ordDtlNoList.size());
-				 if(ordDtlCnt == ordDtlNoList.size()) {
-					 for(Delivery inOrdDtlNoData : ordDtlNoList) {
-						 inOrdDtlNoData.setDelvLocCd("DL001");
-	
-						 // 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
+
+		String ShopYn = "N";
+		String WmsYn = "N";
+
+		// WMS 창고 출고처 지정 
+		for (Delivery ordNoData : ordnoList) {
+			try {
+				ShopYn = "N";
+				WmsYn = "N";
+				//2. WMS 재고체크 후  주문의상품재고가  다 있을경우 WMS로 출고처지정 
+				// 주문상세번호 조회  
+				Collection<Delivery> ordDtlNoList = deliveryService.getOrderDtlNoList(ordNoData);
+				int ordDtlCnt = 0;
+				for (Delivery ordDtlNoData : ordDtlNoList) {
+
+					// 주문상세아이템 조회  
+					Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(ordDtlNoData);
+					int chkCnt = 0;
+					for (Delivery item : itemList) {
+						// WMS 재고체크 
+						WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
+						if (wmsStock != null) {
+							if (wmsStock.getLocQty() >= item.getOrdQty()) {
+								chkCnt = chkCnt + 1;
+							}
+						}
+					}
+					if (chkCnt == itemList.size()) {
+						ordDtlCnt = ordDtlCnt + 1;
+					}
+				}
+				log.info("ordDtlCnt" + ordDtlCnt + "  ordDtlNoList.size() " + ordDtlNoList.size());
+				if (ordDtlCnt == ordDtlNoList.size()) {
+					for (Delivery inOrdDtlNoData : ordDtlNoList) {
+						inOrdDtlNoData.setDelvLocCd(TscConstants.WMS_DELV_LOC_CD);
+
+						// 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
 						// log.info("WMS 창고 출고처 지정  DTL_NO"+ inOrdDtlNoData.getOrdDtlNo());
-						 inOrdDtlNoData.setDelvArGb("Y"); // 수락  
-						 inOrdDtlNoData.setLocQty(inOrdDtlNoData.getOrdQty()); 
-						 deliveryService.saveDeliveryAssign(inOrdDtlNoData);
-						 
-						 // 주문상태변경 및 출고처코드 등록 (TB_ORDER_DETAIL & TB_ORDER_DETAIL_HST)
-						 inOrdDtlNoData.setOrdDtlStat("G013_35");  // 출고처지정 
-						 inOrdDtlNoData.setDelvAssignStat("Y");    // 출고처지정상태 
-						 deliveryService.updateTbOrderDtlAssign(inOrdDtlNoData);
-						 
-						 Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(inOrdDtlNoData);
-						 // wms 재고차감 등록(TB_SELL_QTY)  
-						 for(Delivery data : itemList) {	
-						    wmsDeliveryService.insertWmsTbIfDelifixQty(data);
-						 }
-					 }
-					 WmsYn = "N";
-				 } else {
-					 ShopYn = "Y";
-				 }
-				 
+						inOrdDtlNoData.setDelvArGb("Y"); // 수락  
+						inOrdDtlNoData.setLocQty(inOrdDtlNoData.getOrdQty());
+						deliveryService.saveDeliveryAssign(inOrdDtlNoData);
+
+						// 주문상태변경 및 출고처코드 등록 (TB_ORDER_DETAIL & TB_ORDER_DETAIL_HST)
+						inOrdDtlNoData.setOrdDtlStat("G013_35");  // 출고처지정 
+						inOrdDtlNoData.setDelvAssignStat("Y");    // 출고처지정상태 
+						deliveryService.updateTbOrderDtlAssign(inOrdDtlNoData);
+
+						Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(inOrdDtlNoData);
+						// wms 재고차감 등록(TB_SELL_QTY)  
+						for (Delivery data : itemList) {
+							wmsDeliveryService.insertWmsTbIfDelifixQty(data);
+						}
+					}
+					WmsYn = "N";
+				} else {
+					ShopYn = "Y";
+				}
+
 				// 3. WMS의  주문단위 상품재고가 없을경우  매장재고 체크 후  주문단위 상품이 모두있을경우 해당 매장으로 출고처 지정  
 				// WMS 창고 출고처 지정 못한 주문건이 존재  매장 출고처 지정
-		
-				 if("Y".equals(ShopYn)) {
-					 
-					 Collection<Delivery> shopOrdDtlNoList = deliveryService.getOrderDtlNoList(ordNoData);
-					 
-					 // 출고처지정 임시 테이블 초기화 
-					 deliveryService.deleteTbDeliveryLocTmp();
-					 
-					 for(Delivery shopOrdDtlNoData : shopOrdDtlNoList) {
-						 
-						 // 주문상세아이템 조회  
-						 Collection<Delivery> shopItemList = deliveryService.getOrderDtlItemList(shopOrdDtlNoData);
-						 
-						 if("G056_S".equals(shopOrdDtlNoData.getGoodsType())) {
-							 deliveryService.getShopRealStockSetChk(shopItemList, shopOrdDtlNoData.getOrdDtlNo());
-						 } else {
-							 deliveryService.getShopRealStockChk(shopItemList);
-						 }
-					 }
-					 
-	
-					 // 출고처지정 임시테이블 조회 
-					 int toTalOrdDtlCnt = shopOrdDtlNoList.size();
-					 Delivery temp = deliveryService.getDeliveryLocTmp(toTalOrdDtlCnt);
-					 if(temp != null) {
-						 if(toTalOrdDtlCnt == temp.getGoodsLocCnt()) {
-							 String[] ordDtlNoArr = temp.getOrdDtlNoList().split(",");
-							 for(int j=0; j<ordDtlNoArr.length; j++) {
-	
-								 // 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
-								 Delivery saveData = new Delivery();
-								 saveData.setOrdNo(ordNoData.getOrdNo());
-								 saveData.setOrdDtlNo(Integer.parseInt(ordDtlNoArr[j]));
-								 saveData.setDelvLocCd(temp.getDelvLocCd());
-								 saveData.setLocQty(temp.getLocQty());
-								
-								 saveData.setDelvArGb("P"); // 대기  
-								 deliveryService.saveDeliveryAssign(saveData);
-								 
-								 // 주문상태변경 및 출고처코드 등록 (TB_ORDER_DETAIL & TB_ORDER_DETAIL_HST)
-								 saveData.setOrdDtlStat("G013_35");  // 출고처지정 
-								 saveData.setDelvAssignStat("P");    // 출고처지정상태 
-								 deliveryService.updateTbOrderDtlAssign(saveData);
-								 
-							 }
-						 
-						 } else {
-							 WmsYn = "Y";
-							 ShopYn = "N";
-						 }
-					 } else {
-						 WmsYn = "Y";
-						 ShopYn = "N";
-					 }
-	
-				 }
-			
-				 // 4. 주문상품의 모든재고가 (WMS, 매장) 모두 없을경우  WMS로 출고처지정 (부분배송) 이때 교환은  교환출고예외 테이블에 등록(tb_exchange_delv_fail)
-				 if("Y".equals(WmsYn)) {
-					 if("E".equals(ordNoData.getOrdExchGb())) {
-						  Collection<Delivery> ordDtlNoWmsList = deliveryService.getOrderDtlNoList(ordNoData);
-						 for(Delivery chgData : ordDtlNoWmsList) {
-							 // 주문상세아이템 조회  
-							 Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(chgData);
-							 int chkCnt = 0;
-							 for(Delivery item : itemList) {
-								 // WMS 재고체크 
-								 WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
-								 if(wmsStock !=null) {
-									 if(wmsStock.getLocQty() >= item.getOrdQty()) {
-										 chkCnt = chkCnt+1;
-									 }
-								 }
-							 }
-							 
-							 //chgData.setRegNo(regNo);
-							 chgData.setCnclRtnQty(chgData.getOrdQty() - chkCnt); // 취소수량(재고없는수량) 
-							 // insert 
-							 deliveryService.insertTbExchangeDelvFail(chgData);
-							 
+
+				if ("Y".equals(ShopYn) && "N".equals(ordNoData.getGiftyn())) {
+
+					Collection<Delivery> shopOrdDtlNoList = deliveryService.getOrderDtlNoList(ordNoData);
+
+					// 출고처지정 임시 테이블 초기화 
+					deliveryService.deleteTbDeliveryLocTmp();
+
+					for (Delivery shopOrdDtlNoData : shopOrdDtlNoList) {
+
+						// 주문상세아이템 조회  
+						Collection<Delivery> shopItemList = deliveryService.getOrderDtlItemList(shopOrdDtlNoData);
+
+						if ("G056_S".equals(shopOrdDtlNoData.getGoodsType())) {
+							deliveryService.getShopRealStockSetChk(shopItemList, shopOrdDtlNoData.getOrdDtlNo());
+						} else {
+							deliveryService.getShopRealStockChk(shopItemList);
+						}
+					}
+
+					// 출고처지정 임시테이블 조회 
+					int toTalOrdDtlCnt = shopOrdDtlNoList.size();
+					Delivery temp = deliveryService.getDeliveryLocTmp(toTalOrdDtlCnt);
+					if (temp != null) {
+						if (toTalOrdDtlCnt == temp.getGoodsLocCnt()) {
+							String[] ordDtlNoArr = temp.getOrdDtlNoList().split(",");
+							for (int j = 0; j < ordDtlNoArr.length; j++) {
+
+								// 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
+								Delivery saveData = new Delivery();
+								saveData.setOrdNo(ordNoData.getOrdNo());
+								saveData.setOrdDtlNo(Integer.parseInt(ordDtlNoArr[j]));
+								saveData.setDelvLocCd(temp.getDelvLocCd());
+								saveData.setLocQty(temp.getLocQty());
+
+								saveData.setDelvArGb("P"); // 대기  
+								deliveryService.saveDeliveryAssign(saveData);
+
+								// 주문상태변경 및 출고처코드 등록 (TB_ORDER_DETAIL & TB_ORDER_DETAIL_HST)
+								saveData.setOrdDtlStat("G013_35");  // 출고처지정 
+								saveData.setDelvAssignStat("P");    // 출고처지정상태 
+								deliveryService.updateTbOrderDtlAssign(saveData);
+
+							}
+
+						} else {
+							WmsYn = "Y";
+							ShopYn = "N";
+						}
+					} else {
+						WmsYn = "Y";
+						ShopYn = "N";
+					}
+
+				}
+
+				// 4. 주문상품의 모든재고가 (WMS, 매장) 모두 없을경우  WMS로 출고처지정 (부분배송) 이때 교환은  교환출고예외 테이블에 등록(tb_exchange_delv_fail)
+				if ("Y".equals(WmsYn)) {
+					if ("E".equals(ordNoData.getOrdExchGb())) {
+						Collection<Delivery> ordDtlNoWmsList = deliveryService.getOrderDtlNoList(ordNoData);
+						for (Delivery chgData : ordDtlNoWmsList) {
+							// 주문상세아이템 조회  
+							Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(chgData);
+							int chkCnt = 0;
+							for (Delivery item : itemList) {
+								// WMS 재고체크 
+								WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
+								if (wmsStock != null) {
+									if (wmsStock.getLocQty() >= item.getOrdQty()) {
+										chkCnt = chkCnt + 1;
+									}
+								}
+							}
+
+							//chgData.setRegNo(regNo);
+							chgData.setCnclRtnQty(chgData.getOrdQty() - chkCnt); // 취소수량(재고없는수량) 
+							// insert 
+							deliveryService.insertTbExchangeDelvFail(chgData);
+
 							// ddddd
-						 }
-						 
-					 } else {
-						 if("NAVER_ORDER".equals(ordNoData.getPgGb())) { // 네이버 주문형
-							 
-							 // 주문상세번호 조회  
-							 Collection<Delivery> ordDtlNoWmsList = deliveryService.getOrderDtlNoList(ordNoData);
-							 
-							 for(Delivery wmsOrdDtlData : ordDtlNoWmsList) {
-								 // 주문상세아이템 조회  
-								 Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(wmsOrdDtlData);
-								 int chkCnt = 0;
-								 for(Delivery item : itemList) {
-									 // WMS 재고체크 
-									 WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
-									 if(wmsStock !=null) {
-										 if(wmsStock.getLocQty() >= item.getOrdQty()) {
-											 chkCnt = chkCnt+1;
-										 }
-									 }
-								 }
-	
-								 if(chkCnt >= itemList.size()) {
-									 wmsOrdDtlData.setDelvLocCd("DL001");
-										
-									 // 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
-									 
-									 //log.info("네이버주문형Y  DTL_NO"+ wmsOrdDtlData.getOrdDtlNo());
-									 wmsOrdDtlData.setDelvArGb("Y"); // 수락  
-									 wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty()); 
-									 deliveryService.saveDeliveryAssign(wmsOrdDtlData);
-									 
-									 // 주문상태변경 및 출고처코드 등록 (TB_ORDER_DETAIL & TB_ORDER_DETAIL_HST)
-									 wmsOrdDtlData.setOrdDtlStat("G013_35");  // 출고처지정 
-									 wmsOrdDtlData.setDelvAssignStat("Y");    // 출고처지정상태 
-									 deliveryService.updateTbOrderDtlAssign(wmsOrdDtlData);
-									 
-									 // wms 재고차감 등록(TB_SELL_QTY)  
-									 for(Delivery data : itemList) {
-									    wmsDeliveryService.insertWmsTbIfDelifixQty(data);
-									 }
-								 } else {
-									 // 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
-									 log.info("네이버주문형N   DTL_NO"+ wmsOrdDtlData.getOrdDtlNo());
-									 wmsOrdDtlData.setDelvLocCd("DL001");
-									 wmsOrdDtlData.setDelvArGb("N"); // 수락  
-									 wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty()); 
-									 deliveryService.saveDeliveryAssign(wmsOrdDtlData);
-								 }
-							 }
-						 } else { // 일반 
-							 //log.info("last:"+ordNoData.getOrdNo());
-							 // 주문상세번호 조회  
-							 Collection<Delivery> ordDtlNoWmsList = deliveryService.getOrderDtlNoList(ordNoData);
-							 int chkCnt = 0;
-							 for(Delivery wmsOrdDtlData : ordDtlNoWmsList) {
-								 
-								 if("G056_S".equals(wmsOrdDtlData.getGoodsType())) {
-									
-									 // 주문상세아이템 조회  
-									 int setCnt =0;
-									 Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(wmsOrdDtlData);
-									 
-									 for(Delivery item : itemList) {
-										 // WMS 재고체크 
-										 WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
-										 if(wmsStock !=null) {
-											 if(wmsStock.getLocQty() >= item.getOrdQty()) {
-												 setCnt = setCnt+1;
-											 }
-										 }
-									 }
-									 if(setCnt == itemList.size() ) {
-										 chkCnt = chkCnt+1;
-									 }
-								 } else {
-									 // 주문상세아이템 조회  
-									 Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(wmsOrdDtlData);
-									 
-									 for(Delivery item : itemList) {
-										 // WMS 재고체크 
-										 WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
-										 if(wmsStock !=null) {
-											 if(wmsStock.getLocQty() >= item.getOrdQty()) {
-												 chkCnt = chkCnt+1;
-											 }
-										 }
-									 }
-								 }
-		
-							 }
-							 if(chkCnt > 0) {
-								 for(Delivery wmsOrdDtlData : ordDtlNoList) {
-									 
+						}
+
+					} else {
+						if ("NAVER_ORDER".equals(ordNoData.getPgGb())) { // 네이버 주문형
+
+							// 주문상세번호 조회  
+							Collection<Delivery> ordDtlNoWmsList = deliveryService.getOrderDtlNoList(ordNoData);
+
+							for (Delivery wmsOrdDtlData : ordDtlNoWmsList) {
+								// 주문상세아이템 조회  
+								Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(wmsOrdDtlData);
+								int chkCnt = 0;
+								for (Delivery item : itemList) {
+									// WMS 재고체크 
+									WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
+									if (wmsStock != null) {
+										if (wmsStock.getLocQty() >= item.getOrdQty()) {
+											chkCnt = chkCnt + 1;
+										}
+									}
+								}
+
+								if (chkCnt >= itemList.size()) {
+									wmsOrdDtlData.setDelvLocCd(TscConstants.WMS_DELV_LOC_CD);
+
+									// 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
+
+									//log.info("네이버주문형Y  DTL_NO"+ wmsOrdDtlData.getOrdDtlNo());
+									wmsOrdDtlData.setDelvArGb("Y"); // 수락  
+									wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty());
+									deliveryService.saveDeliveryAssign(wmsOrdDtlData);
+
+									// 주문상태변경 및 출고처코드 등록 (TB_ORDER_DETAIL & TB_ORDER_DETAIL_HST)
+									wmsOrdDtlData.setOrdDtlStat("G013_35");  // 출고처지정 
+									wmsOrdDtlData.setDelvAssignStat("Y");    // 출고처지정상태 
+									deliveryService.updateTbOrderDtlAssign(wmsOrdDtlData);
+
+									// wms 재고차감 등록(TB_SELL_QTY)  
+									for (Delivery data : itemList) {
+										wmsDeliveryService.insertWmsTbIfDelifixQty(data);
+									}
+								} else {
+									// 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
+									log.info("네이버주문형N   DTL_NO" + wmsOrdDtlData.getOrdDtlNo());
+									wmsOrdDtlData.setDelvLocCd(TscConstants.WMS_DELV_LOC_CD);
+									wmsOrdDtlData.setDelvArGb("N"); // 수락  
+									wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty());
+									deliveryService.saveDeliveryAssign(wmsOrdDtlData);
+								}
+							}
+						} else { // 일반 
+							//log.info("last:"+ordNoData.getOrdNo());
+							// 주문상세번호 조회  
+							Collection<Delivery> ordDtlNoWmsList = deliveryService.getOrderDtlNoList(ordNoData);
+							int chkCnt = 0;
+							for (Delivery wmsOrdDtlData : ordDtlNoWmsList) {
+
+								if ("G056_S".equals(wmsOrdDtlData.getGoodsType())) {
+
+									// 주문상세아이템 조회  
+									int setCnt = 0;
+									Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(wmsOrdDtlData);
+
+									for (Delivery item : itemList) {
+										// WMS 재고체크 
+										WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
+										if (wmsStock != null) {
+											if (wmsStock.getLocQty() >= item.getOrdQty()) {
+												setCnt = setCnt + 1;
+											}
+										}
+									}
+									if (setCnt == itemList.size()) {
+										chkCnt = chkCnt + 1;
+									}
+								} else {
+									// 주문상세아이템 조회  
+									Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(wmsOrdDtlData);
+
+									for (Delivery item : itemList) {
+										// WMS 재고체크 
+										WmsDelivery wmsStock = deliveryService.getWmsRealStockChk(item);
+										if (wmsStock != null) {
+											if (wmsStock.getLocQty() >= item.getOrdQty()) {
+												chkCnt = chkCnt + 1;
+											}
+										}
+									}
+								}
+
+							}
+							if (chkCnt > 0) {
+								for (Delivery wmsOrdDtlData : ordDtlNoList) {
+
 									// log.info("라스트  N   DTL_NO"+ wmsOrdDtlData.getOrdDtlNo());
-									 wmsOrdDtlData.setDelvLocCd("DL001");
-									 // 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
-									 wmsOrdDtlData.setDelvArGb("Y"); // 수락  
-									 wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty()); 
-									 deliveryService.saveDeliveryAssign(wmsOrdDtlData);
-									 
-									 // 주문상태변경 및 출고처코드 등록 (TB_ORDER_DETAIL & TB_ORDER_DETAIL_HST)
-									 wmsOrdDtlData.setOrdDtlStat("G013_35");  // 출고처지정 
-									 wmsOrdDtlData.setDelvAssignStat("Y");    // 출고처지정상태 
-									 deliveryService.updateTbOrderDtlAssign(wmsOrdDtlData);
-									 
-									 // 주문상세아이템 조회  
-									 Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(wmsOrdDtlData);
-									 // wms 재고차감 등록(TB_SELL_QTY)  
-									 for(Delivery data : itemList) {	
-									    wmsDeliveryService.insertWmsTbIfDelifixQty(data);
-									 }
-								 }
-							 } else {
-								 for(Delivery wmsOrdDtlData : ordDtlNoList) {
+									wmsOrdDtlData.setDelvLocCd(TscConstants.WMS_DELV_LOC_CD);
+									// 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
+									wmsOrdDtlData.setDelvArGb("Y"); // 수락  
+									wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty());
+									deliveryService.saveDeliveryAssign(wmsOrdDtlData);
+
+									// 주문상태변경 및 출고처코드 등록 (TB_ORDER_DETAIL & TB_ORDER_DETAIL_HST)
+									wmsOrdDtlData.setOrdDtlStat("G013_35");  // 출고처지정 
+									wmsOrdDtlData.setDelvAssignStat("Y");    // 출고처지정상태 
+									deliveryService.updateTbOrderDtlAssign(wmsOrdDtlData);
+
+									// 주문상세아이템 조회  
+									Collection<Delivery> itemList = deliveryService.getOrderDtlItemList(wmsOrdDtlData);
+									// wms 재고차감 등록(TB_SELL_QTY)  
+									for (Delivery data : itemList) {
+										wmsDeliveryService.insertWmsTbIfDelifixQty(data);
+									}
+								}
+							} else {
+								for (Delivery wmsOrdDtlData : ordDtlNoList) {
 									// log.info("라스트  N   DTL_NO"+ wmsOrdDtlData.getOrdDtlNo());
-									 
-									 wmsOrdDtlData.setDelvLocCd("DL001");
-									 // 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
-									 wmsOrdDtlData.setDelvArGb("N"); // 거절
-									 wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty()); 
-									 deliveryService.saveDeliveryAssign(wmsOrdDtlData);
-								 }
-							 }
-						 }
-					 }
-				 }
-			 }catch(Exception e) {
-				 log.debug("TsbDeliveryOrderJob "+ e.getStackTrace().toString());
-			 }
-		 } // for(Delivery ordNoData : ordnoList)
-
-		 
-		 // 5. 출고처 WMS 리스트 조회 후  WMS_IF 테이블에 등록   
-		 // wms 출고처 지정 대상 조회 
-		 // 사은품 조회  차후 작업!!!! 
-		 Collection<Delivery> ordList = deliveryService.getWmsDeliveryOrdNoList();
-		 for(Delivery ordData : ordList) {
-			 try {
-				 // wms 출고 정보 조회(mall_DB) 
-				 Collection<Delivery> wmsDelvList = deliveryService.getWmsDeliveryList(ordData);
-				 Collection<Delivery> giftList = deliveryService.getWmsDeliveryGiftList(ordData);
-				 // wms 출고 정보 등록 (wms_DB)
-				 wmsDeliveryService.insertWmsDelivery(wmsDelvList, giftList);
-				 
-				 // 주문상세상태 변경  상품준비중~
-				 String statGb = "PREPARE";
-				 deliveryService.updateTbOrderDtlStat(wmsDelvList, statGb);
-			 }catch(Exception e) {
-				 log.debug("TsbDeliveryOrderJob insertWmsDelivery "+ e.getStackTrace().toString());
-			 }
-		 }
-		 
-		 succCnt = 1;
-		 failCnt = 0;
-		
-		 return ordnoList;
+
+									wmsOrdDtlData.setDelvLocCd(TscConstants.WMS_DELV_LOC_CD);
+									// 출고처등록  및 history 등록   (TB_DELIVERY_ASSIGN & TB_DELIVERY_ASSIGN_HST) 
+									wmsOrdDtlData.setDelvArGb("N"); // 거절
+									wmsOrdDtlData.setLocQty(wmsOrdDtlData.getOrdQty());
+									deliveryService.saveDeliveryAssign(wmsOrdDtlData);
+								}
+							}
+						}
+					}
+				}
+			} catch (Exception e) {
+				log.debug("TsbDeliveryOrderJob " + e.getStackTrace().toString());
+			}
+		} // for(Delivery ordNoData : ordnoList)
+
+		// 5. 출고처 WMS 리스트 조회 후  WMS_IF 테이블에 등록   
+		// wms 출고처 지정 대상 조회 
+		// 사은품 조회  차후 작업!!!! 
+		Collection<Delivery> ordList = deliveryService.getWmsDeliveryOrdNoList();
+		for (Delivery ordData : ordList) {
+			try {
+				// wms 출고 정보 조회(mall_DB) 
+				Collection<Delivery> wmsDelvList = deliveryService.getWmsDeliveryList(ordData);
+				Collection<Delivery> giftList = deliveryService.getWmsDeliveryGiftList(ordData);
+				// wms 출고 정보 등록 (wms_DB)
+				wmsDeliveryService.insertWmsDelivery(wmsDelvList, giftList);
+
+				// 주문상세상태 변경  상품준비중~
+				String statGb = "PREPARE";
+				deliveryService.updateTbOrderDtlStat(wmsDelvList, statGb);
+			} catch (Exception e) {
+				log.debug("TsbDeliveryOrderJob insertWmsDelivery " + e.getStackTrace().toString());
+			}
+		}
+
+		succCnt = 1;
+		failCnt = 0;
+
+		return ordnoList;
 	}
 
 	@Override

+ 44 - 0
src/main/java/com/style24/batch/biz/job/display/TsbMainContentsGoodsJob.java

@@ -0,0 +1,44 @@
+package com.style24.batch.biz.job.display;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbDisplayService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 전시 몰메인 상품생성 JOB
+ *
+ * @author jmh
+ * @since 2021. 8. 13
+ */
+@Component
+@Slf4j
+public class TsbMainContentsGoodsJob extends TsbAbstractJob<String, String, String> {
+
+	@Autowired
+	private TsbDisplayService displayService;
+
+	@Override
+	public String read() throws Exception {
+		return "OK";
+	}
+
+	@Override
+	public String process(String result) throws Exception {
+		displayService.createMainContentsGoods();
+		return result;
+	}
+
+	@Override
+	public String write(String result) throws Exception {
+		return result;
+	}
+
+	@Override
+	public void notify(String result) throws Exception {
+		// Do nothing
+	}
+}

+ 3 - 3
src/main/java/com/style24/batch/biz/service/TsbDeliveryService.java

@@ -325,7 +325,7 @@ public class TsbDeliveryService {
 		data.setChgGb(chgSqInfo.getChgGb());
 		data.setWdBfSendYn(chgSqInfo.getWdBfSendYn());
 		data.setWdInvoiceSendYn("Y");
-		data.setRtnLocCd("DL001");
+		data.setRtnLocCd(TscConstants.WMS_DELV_LOC_CD);
 		data.setRegNo(TsbConstants.REG_NO);
 		
 		// TB_ORDER_CHANGE 
@@ -663,7 +663,7 @@ public class TsbDeliveryService {
 			item.setOptCd1(ordInfo.getOptCd1());
 			item.setOptCd2(ordInfo.getOptCd2());
 			item.setSellStoreCd(ordInfo.getSellStoreCd());
-			item.setRtnLocCd("DL001");
+			item.setRtnLocCd(TscConstants.WMS_DELV_LOC_CD);
 			// TB_WITHDRAW_DETAIL 입력
 			deliveryDao.insertTbWithdrawDetail(item);	// 주문변경번호  ITEM단위
 
@@ -790,7 +790,7 @@ public class TsbDeliveryService {
 		WmsDelivery wmsStock = wmsService.getWmsRealStock(item.getProductno(), item.getOptCd());
 
 		if (wmsStock != null) {
-			item.setDelvLocCd("DL001");
+			item.setDelvLocCd(TscConstants.WMS_DELV_LOC_CD);
 			// 출고처지정 거부 주문 또는 출고거부상품이 존재시  재고를 0으로 만든다.
 //			log.info("getOrdNo: " + item.getOrdNo());
 //			log.info("getOrdDtlNo: " + item.getOrdDtlNo());

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

@@ -178,4 +178,18 @@ public class TsbDisplayService {
 		return displayDao.createRecentlyRegisterGoods();
 	}
 
+	/**
+	 * 몰 메인 컨텐츠 상품생성
+	 *
+	 * @author jmh
+	 * @since 2021. 8. 13
+	 */
+	@Transactional("shopTxnManager")
+	public void createMainContentsGoods() {
+		// 상품 삭제
+		displayDao.deleteMainContentsGoods();
+
+		// 상품 생성
+		displayDao.createMainContentsGoods();
+	}
 }

+ 15 - 1
src/main/java/com/style24/batch/biz/task/TsbDisplayTask.java

@@ -8,13 +8,14 @@ import org.springframework.stereotype.Component;
 import com.style24.batch.biz.job.display.TsbCategory4SrchJob;
 import com.style24.batch.biz.job.display.TsbCategoryFilterJob;
 import com.style24.batch.biz.job.display.TsbCategoryStockJob;
+import com.style24.batch.biz.job.display.TsbMainContentsGoodsJob;
 import com.style24.batch.biz.job.display.TsbRecentlyRegGoodsJob;
 
 import lombok.extern.slf4j.Slf4j;
 
 /**
  * 전시 Task
- * 
+ *
  * @author bin2107
  * @since 2021. 3. 15
  */
@@ -34,6 +35,9 @@ public class TsbDisplayTask {
 	@Autowired
 	private TsbRecentlyRegGoodsJob recentlyRegGoodsJob;
 
+	@Autowired
+	private TsbMainContentsGoodsJob mainContentsGoodsJob;
+
 	/**
 	 * 카테고리4SRCH 생성 - 매시 10분마다 0초 기준
 	 * @throws Exception
@@ -74,4 +78,14 @@ public class TsbDisplayTask {
 		recentlyRegGoodsJob.runById("cron.display.recently.reg.goods.create");
 	}
 
+	/**
+	 * 몰 메인 컨텐츠 상품생성
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.display.main.contents.goods.create}")
+	@Async
+	public String createMainContentsGoods() throws Exception {
+		mainContentsGoodsJob.runById("cron.display.main.contents.goods.create");
+		return "OK";
+	}
 }

+ 15 - 1
src/main/java/com/style24/batch/biz/web/TsbDisplayController.java

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import com.style24.batch.biz.job.display.TsbCategory4SrchJob;
 import com.style24.batch.biz.job.display.TsbCategoryFilterJob;
 import com.style24.batch.biz.job.display.TsbCategoryStockJob;
+import com.style24.batch.biz.job.display.TsbMainContentsGoodsJob;
 import com.style24.batch.biz.job.display.TsbRecentlyRegGoodsJob;
 import com.style24.core.support.controller.TscBaseController;
 
@@ -17,7 +18,7 @@ import lombok.extern.slf4j.Slf4j;
 
 /**
  * 전시 Controller
- * 
+ *
  * @author gagamel
  * @since 2021. 5. 24
  */
@@ -39,6 +40,9 @@ public class TsbDisplayController extends TscBaseController {
 	@Autowired
 	private TsbRecentlyRegGoodsJob recentlyRegGoodsJob;
 
+	@Autowired
+	private TsbMainContentsGoodsJob mainContentsGoodsJob;
+
 	/**
 	 * 카테고리4SRCH 생성 - 매시 10분마다 0초 기준
 	 * @throws Exception
@@ -83,4 +87,14 @@ public class TsbDisplayController extends TscBaseController {
 		return "OK";
 	}
 
+	/**
+	 * 몰 메인 컨텐츠 상품생성
+	 * @throws Exception
+	 */
+	@GetMapping("/main/contents/goods/create")
+	@ResponseBody
+	public String createMainContentsGoods() throws Exception {
+		mainContentsGoodsJob.runById("cron.display.main.contents.goods.create");
+		return "OK";
+	}
 }

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

@@ -609,6 +609,7 @@
 	  SELECT DISTINCT ORD_NO, ORD_EXCH_GB, PG_GB
 		FROM (
 			SELECT A.ORD_NO, B.ORD_EXCH_GB, (SELECT MAX(PG_GB) FROM TB_PAYMENT WHERE ORD_NO= A.ORD_NO AND PAY_GB ='O') AS PG_GB /* 주문 상품 */
+			     , CASE WHEN (SELECT COUNT(*) FROM TB_ORD_FREEGIFT ODF WHERE ODF.ORD_NO = A.ORD_NO) > 0 THEN 'Y' ELSE 'N' END AS GIFT_YN 
 			  FROM TB_ORDER        A
 			  JOIN TB_ORDER_DETAIL B ON A.ORD_NO = B.ORD_NO 
 			  JOIN TB_GOODS        C ON B.GOODS_CD = C.GOODS_CD 
@@ -623,7 +624,7 @@
 			                  FROM TB_DELIVERY_ASSIGN
 			                 WHERE ORD_NO      = B.ORD_NO
 			                   AND ORD_DTL_NO  = B.ORD_DTL_NO
-			                   AND DELV_LOC_CD = 'DL001'
+			                   AND DELV_LOC_CD = 'ST0001'
 			                   AND DELV_AR_GB  = 'N'
 			              )
 			    AND A.REG_DT >= DATE_ADD(DATE_FORMAT(STR_TO_DATE(NOW(), '%Y-%m-%d'),'%Y%m%d%H%i%S') , INTERVAL -1 DAY)   -- 테스트 임시 
@@ -633,6 +634,7 @@
 			UNION ALL /* 교환  상품 */
 			
 			SELECT A.ORD_NO, B.ORD_EXCH_GB, (SELECT MAX(PG_GB) FROM TB_PAYMENT WHERE ORD_NO= A.ORD_NO AND PAY_GB ='O') AS PG_GB
+			    , 'N' AS GIFT_YN
 			  FROM TB_ORDER        A
 			  JOIN TB_ORDER_DETAIL B        ON A.ORD_NO = B.ORD_NO 
 			  JOIN TB_GOODS        C        ON B.GOODS_CD = C.GOODS_CD 
@@ -649,7 +651,7 @@
 			                  FROM TB_DELIVERY_ASSIGN
 			                 WHERE ORD_NO      = B.ORD_NO
 			                   AND ORD_DTL_NO  = B.ORD_DTL_NO
-			                   AND DELV_LOC_CD = 'DL001'
+			                   AND DELV_LOC_CD = 'ST0001'
 			                   AND DELV_AR_GB  = 'N'
 			              )
 			 GROUP BY A.ORD_NO, B.ORD_EXCH_GB
@@ -657,6 +659,7 @@
 			UNION ALL  
 			   
 			SELECT A.ORD_NO, B.ORD_EXCH_GB, (SELECT MAX(PG_GB) FROM TB_PAYMENT WHERE ORD_NO= A.ORD_NO AND PAY_GB ='O') AS PG_GB  -- 예약상품    
+			     , CASE WHEN (SELECT COUNT(*) FROM TB_ORD_FREEGIFT ODF WHERE ODF.ORD_NO = A.ORD_NO) > 0 THEN 'Y' ELSE 'N' END AS GIFT_YN 
 			  FROM TB_ORDER          A
 			  JOIN TB_ORDER_DETAIL   B ON A.ORD_NO = B.ORD_NO 
 			  JOIN TB_GOODS          C ON B.GOODS_CD = C.GOODS_CD 
@@ -672,7 +675,7 @@
 			                  FROM TB_DELIVERY_ASSIGN
 			                 WHERE ORD_NO      = B.ORD_NO
 			                   AND ORD_DTL_NO  = B.ORD_DTL_NO
-			                   AND DELV_LOC_CD = 'DL001'
+			                   AND DELV_LOC_CD = 'ST0001'
 			                   AND DELV_AR_GB  = 'N'
 			              )
 			   AND (SELECT COUNT(*) FROM TB_GOODS_RES_SELL WHERE DELV_RES_DT > NOW() AND GOODS_CD = B.GOODS_CD) = 0

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

@@ -53,13 +53,13 @@
 		     , CONTENTS_LOC
 		FROM   VW_CATE_4SRCH
 	</insert>
-	
+
 	<!-- 카테고리별재고임시 테이블 truncate -->
 	<delete id="truncateTemporaryCategoryStock" >
 		/* TsbDisplay.truncateTemporaryCategoryStock */
 		TRUNCATE TABLE TB_CATE_STOCK_TMP
 	</delete>
-	
+
 	<!-- 카테고리별재고 임시테이블에 생성 -->
 	<insert id="createTemporaryCategoryStock"  timeout="300">
 		/* TsbDisplay.createTemporaryCategoryStock */
@@ -132,13 +132,13 @@
 		AND    A.CATE_NO = B.LEAF_CATE_NO
 		AND    B.CATE_TYPE = 'G031_10' /*상품분류카테고리*/
 	</insert>
-	
+
 	<!-- 카테고리별재고 삭제 -->
 	<delete id="deleteCategoryStock"  timeout="300">
 		/* TsbDisplay.deleteCategoryStock */
 		DELETE FROM TB_CATE_STOCK
 	</delete>
-	
+
 	<!-- 카테고리별재고 생성 -->
 	<insert id="createCategoryStock"  timeout="300">
 		/* TsbDisplay.createCategoryStock */
@@ -218,13 +218,13 @@
 		       ) Z
 		WHERE  CATE_NO IS NOT NULL
 	</insert>
-	
+
 	<!-- 임시카테고리별검색필터 테이블 truncate -->
 	<delete id="truncateTemporaryCategoryFilter">
 		/* TsbDisplay.truncateTemporaryCategoryFilter */
 		TRUNCATE TABLE TB_CATE_FILTER_TMP
 	</delete>
-	
+
 	<!-- 임시카테고리별검색필터 - 브랜드 생성 -->
 	<insert id="createTemporaryCategoryFilterBrand" timeout="600">
 		/* TsbDisplay.createTemporaryCategoryFilterBrand */
@@ -415,7 +415,7 @@
 		        WHERE  CATE_NO IS NOT NULL
 		       ) Z
 	</insert>
-	
+
 	<!-- 임시카테고리별검색필터 - 사이즈 생성 -->
 	<insert id="createTemporaryCategoryFilterSize" timeout="600">
 		/* TsbDisplay.createTemporaryCategoryFilterSize */
@@ -652,7 +652,7 @@
 		        WHERE  CATE_NO IS NOT NULL
 		       ) Z
 	</insert>
-	
+
 	<!-- 임시카테고리별검색필터 - 가격 생성 -->
 	<insert id="createTemporaryCategoryFilterPrice" timeout="600">
 		/* TsbDisplay.createTemporaryCategoryFilterPrice */
@@ -1020,7 +1020,7 @@
 		        FROM   TAB_PRICE
 		       ) Z
 	</insert>
-	
+
 	<!-- 임시카테고리별검색필터 - 연령대 생성 -->
 	<insert id="createTemporaryCategoryFilterAge" timeout="600">
 		/* TsbDisplay.createTemporaryCategoryFilterAge */
@@ -1197,7 +1197,7 @@
 		AND    CC.CD_GB = 'G023'
 		AND    CC.USE_YN = 'Y'
 	</insert>
-	
+
 	<!-- 임시카테고리별검색필터 - 시즌 생성 -->
 	<insert id="createTemporaryCategoryFilterSeason" timeout="600">
 		/* TsbDisplay.createTemporaryCategoryFilterSeason */
@@ -1373,7 +1373,7 @@
 		AND    CC.CD_GB = 'G006'
 		AND    CC.USE_YN = 'Y'
 	</insert>
-	
+
 	<!-- 임시카테고리별검색필터 - 색상 생성 -->
 	<insert id="createTemporaryCategoryFilterColor" timeout="600">
 		/* TsbDisplay.createTemporaryCategoryFilterColor */
@@ -1602,7 +1602,7 @@
 		AND    CC.CD_GB = 'G072'
 		AND    CC.USE_YN = 'Y'
 	</insert>
-	
+
 	<!-- 임시카테고리별검색필터 - 혜택 생성 -->
 	<insert id="createTemporaryCategoryFilterBenefit" timeout="600">
 		/* TsbDisplay.createTemporaryCategoryFilterBenefit */
@@ -1653,7 +1653,7 @@
 		    AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
 		    AND    SB.SITE_CD = 'G000_10'
 		    AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
-		) 
+		)
 		SELECT SITE_CD
 		     , CATE_GB
 		     , FORMAL_GB
@@ -4128,13 +4128,13 @@
 		     AND  FORMAL_GB = 'G009_20'
 		) Z
 	</insert>
-	
+
 	<!-- 카테고리별 검색필터 삭제 -->
 	<delete id="deleteCategoryFilter">
 		/* TsbDisplay.deleteCategoryFilter */
 		DELETE FROM TB_CATE_FILTER
 	</delete>
-	
+
 	<!-- 카테고리별 검색필터 생성 -->
 	<insert id="createCategoryFilter">
 		/* TsbDisplay.createCategoryFilter */
@@ -4164,13 +4164,13 @@
 		     , NOW()          AS REG_DT
 		FROM   TB_CATE_FILTER_TMP
 	</insert>
-	
+
 	<!-- 최근등록된 상품 100개 삭제 -->
 	<delete id="deleteRecentlyRegisterGoods">
 		/* TsbDisplay.deleteRecentlyRegisterGoods */
 		DELETE FROM TB_RECENT_REG_GOODS
 	</delete>
-	
+
 	<!-- 최근등록된 상품 100개 생성 -->
 	<insert id="createRecentlyRegisterGoods">
 		/* TsbDisplay.createRecentlyRegisterGoods */
@@ -4254,5 +4254,68 @@
 		       ) Z
 		WHERE  RK <![CDATA[<=]]> 100 /*최대100개*/
 	</insert>
-	
+
+	<!-- 몰 메인 컨텐츠 상품 삭제 -->
+	<delete id="deleteMainContentsGoods">
+		/* TsbDisplay.deleteMainContentsGoods */
+		DELETE FROM TB_CONTENTS_GOODS_MAIN
+	</delete>
+
+	<!-- 몰 메인 컨텐츠 상품 생성 -->
+	<insert id="createMainContentsGoods">
+		/* TsbDisplay.createMainContentsGoods */
+		INSERT INTO TB_CONTENTS_GOODS_MAIN
+		  SELECT G.GOODS_CD,
+			  G.GOODS_NM,
+			  G.GOODS_GB,
+			  G.SELF_GOODS_YN,
+			  G.FOREIGN_BUY_YN,
+			  G.PARALLEL_IMPORT_YN,
+			  G.ORDER_MADE_YN,
+			  G.GOODS_TNM,
+			  G.MAIN_COLOR_CD,
+			  G.LIST_PRICE,
+			  G.CURR_PRICE,
+			  G.REG_DT,
+			  G.UPD_DT,
+			  CASE WHEN BG.DISP_NM_LANG = 'EN' THEN BG.BRAND_GROUP_ENM ELSE BG.BRAND_GROUP_KNM END AS BRAND_GROUP_NM,
+			  (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND IF(G.SELF_GOODS_YN= 'N', 'XX', G.MAIN_COLOR_CD) = X.COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM,
+		      V.VIDEO,
+			  FN_GET_GOODS_NM(G.GOODS_NM,G.GOODS_GB,G.FOREIGN_BUY_YN,G.PARALLEL_IMPORT_YN,G.ORDER_MADE_YN) AS GOODS_FULL_NM,
+			  (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND IF(G.SELF_GOODS_YN= 'N', 'XX', G.MAIN_COLOR_CD) = X.COLOR_CD AND MOUSEOVER_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM2
+
+		  FROM TB_GOODS G
+		       INNER JOIN TB_GOODS_STOCK S  ON G.GOODS_CD = S.GOODS_CD
+		  	   INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+			   INNER JOIN  TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		       LEFT OUTER JOIN (
+		      	      SELECT GROUP_CONCAT(CONCAT(VIDEO_GB,':',KMC_KEY) ORDER BY NUMB SEPARATOR ',') AS  VIDEO, GOODS_CD
+				      FROM   (
+				         SELECT GV.VIDEO_GB
+				              , GV.KMC_KEY
+				              , GV.REG_DT
+				              , RANK() OVER(ORDER BY GV.REG_DT, GV.KMC_KEY) AS NUMB
+		                      ,GOODS_CD
+				         FROM   TB_GOODS_VIDEO GV
+				         WHERE    GV.DISP_YN = 'Y'
+				         AND    GV.KMC_KEY IS NOT NULL
+				      ) Z
+				      WHERE  NUMB  <![CDATA[<]]>  2
+		              GROUP BY GOODS_CD
+		      ) V ON G.GOODS_CD = V.GOODS_CD
+		  WHERE 1=1
+		     AND B.USE_YN = 'Y'
+		     AND BG.USE_YN = 'Y'
+			 AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+			 AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+			 AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+			 AND    S.STOCK_QTY  >  1 /*재고있는상품*/
+		     AND    G.GOODS_CD IN (
+						SELECT DISTINCT GOODS_CD  FROM TB_CONTENTS_GOODS
+						WHERE CONTENTS_LOC IN (
+						'SGNB001', 'SGNB002', 'SMM001', 'SMM002', 'SMM003'
+						,'SMM004', 'SMM005', 'SMM006', 'SMM007', 'SMM008'
+						,'SMM009', 'SMM011', 'STAB001', 'STAB002')
+					)
+	</insert>
 </mapper>

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

@@ -2104,11 +2104,11 @@
 		                            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 매장코드
+		                                      AND C.DELV_LOC_CD = 'ST0001'    -- 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 매장코드
+		                                   AND D.DELV_LOC_CD = 'ST0001'    -- WMS 매장코드
 		     ) Z
 	</insert>
 	
@@ -2979,6 +2979,7 @@
 		             , TB_DELV_FEE_POLICY DFP
 		        WHERE  G.GOODS_CD = GS.GOODS_CD
 		        AND    G.DELV_FEE_CD = DFP.DELV_FEE_CD
+		        AND    G.SUPPLY_COMP_CD = DFP.SUPPLY_COMP_CD
 		        AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
 		        AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
 		        AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/

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

@@ -466,7 +466,8 @@
 		FROM   TB_GOODS G
 		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
-		INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
+		INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD 
+		                                 AND G.SUPPLY_COMP_CD = DFP.SUPPLY_COMP_CD
 		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
 		LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
 		LEFT OUTER JOIN TB_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
@@ -1061,6 +1062,7 @@
 		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
 		INNER JOIN TB_ITEMKIND I ON G.ITEMKIND_CD = I.ITEMKIND_CD
 		INNER JOIN TB_DELV_FEE_POLICY DFP ON G.DELV_FEE_CD = DFP.DELV_FEE_CD
+		                                 AND G.SUPPLY_COMP_CD = DFP.SUPPLY_COMP_CD
 		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON G.GOODS_CD = GBP.GOODS_CD
 		LEFT OUTER JOIN TB_GOODS_SUMMARY GS ON G.GOODS_CD = GS.GOODS_CD
 		LEFT OUTER JOIN TB_EP_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD

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

@@ -202,6 +202,7 @@
 		ON     OD.GOODS_CD = G.GOODS_CD
 		INNER  JOIN TB_DELV_FEE_POLICY DFP
 		ON     OD.DELV_FEE_CD = DFP.DELV_FEE_CD
+		AND    OD.SUPPLY_COMP_CD = DFP.SUPPLY_COMP_CD
 		AND    DFP.USE_YN = 'Y'
 		LEFT   OUTER JOIN TB_ORDER_CHANGE_DETAIL OCD
 		ON     OCD.ORD_DTL_NO = OD.ORD_DTL_NO
@@ -238,6 +239,7 @@
 		ON     OD.GOODS_CD = G.GOODS_CD
 		INNER  JOIN TB_DELV_FEE_POLICY DFP
 		ON     OD.DELV_FEE_CD = DFP.DELV_FEE_CD
+		AND    OD.SUPPLY_COMP_CD = DFP.SUPPLY_COMP_CD
 		AND    DFP.USE_YN = 'Y'
 		LEFT   OUTER JOIN TB_ORDER_CHANGE_DETAIL OCD
 		ON     OCD.ORD_DTL_NO = OD.ORD_DTL_NO

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

@@ -107,6 +107,7 @@ cron:
         category.stock.create: 2 22 2 29 2 ?   #카테고리별 재고 생성
         #category.filter.create: 2 22 2 29 2 ?  #카테고리별 검색필터 생성
         recently.reg.goods.create: 2 22 2 29 2 ?  #최근등록된 상품 100개 생성
+        main.contents.goods.create: 2 22 2 29 2 ?  #몰 메인 컨텐츠 상품생성 (1시간 1회)
 
     # 주문
     order:

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

@@ -106,6 +106,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회)
 
     # 주문
     order:

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

@@ -125,6 +125,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회)
 
     # 주문
     order: