Преглед изворни кода

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

xodud lee пре 5 година
родитељ
комит
7c9d14bda4
20 измењених фајлова са 744 додато и 396 уклоњено
  1. 45 0
      src/main/java/com/style24/batch/biz/dao/TsbReviewDao.java
  2. 18 18
      src/main/java/com/style24/batch/biz/job/delivery/TsbSoldoutCancelJob.java
  3. 7 7
      src/main/java/com/style24/batch/biz/job/delivery/TsbSweetTrackerJob.java
  4. 5 4
      src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsGoodsStockJob.java
  5. 94 0
      src/main/java/com/style24/batch/biz/job/marketing/TsbReviewGuideJob.java
  6. 282 281
      src/main/java/com/style24/batch/biz/service/TsbDeliveryService.java
  7. 6 5
      src/main/java/com/style24/batch/biz/service/TsbGoodsService.java
  8. 5 0
      src/main/java/com/style24/batch/biz/service/TsbPointService.java
  9. 60 0
      src/main/java/com/style24/batch/biz/service/TsbReviewService.java
  10. 5 4
      src/main/java/com/style24/batch/biz/service/TsbWmsDeliveryService.java
  11. 17 4
      src/main/java/com/style24/batch/biz/task/TsbMarketingTask.java
  12. 2 2
      src/main/java/com/style24/batch/support/env/TsbConstants.java
  13. 6 2
      src/main/java/com/style24/persistence/domain/Delivery.java
  14. 36 0
      src/main/java/com/style24/persistence/domain/ReviewGuide.java
  15. 40 13
      src/main/java/com/style24/persistence/mybatis/shop/TsbDelivery.xml
  16. 12 11
      src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml
  17. 62 0
      src/main/java/com/style24/persistence/mybatis/shop/TsbReview.xml
  18. 33 40
      src/main/java/com/style24/persistence/mybatis/wms/TsbWmsDelivery.xml
  19. 8 5
      src/main/java/com/style24/persistence/mybatis/wms/TsbWmsGoods.xml
  20. 1 0
      src/main/resources/config/application-locd.yml

+ 45 - 0
src/main/java/com/style24/batch/biz/dao/TsbReviewDao.java

@@ -0,0 +1,45 @@
+package com.style24.batch.biz.dao;
+
+import java.util.Collection;
+
+import org.springframework.stereotype.Repository;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.ReviewGuide;
+
+/**
+ * 상품평 Dao
+ *
+ * @author gagamel
+ * @since 2021. 5. 17
+ */
+@ShopDs
+@Repository
+public interface TsbReviewDao {
+
+	/**
+	 * 상품평등록안내발송대상건 생성
+	 * @param expireDays - 상품평만료일자
+	 * @return 생성건수
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	int createReviewGuideSendObjectList(int expireDays);
+
+	/**
+	 * 상품평등록안내발송대상 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	Collection<ReviewGuide> getReviewGuideSendObjectList();
+
+	/**
+	 * 상품평등록안내발송완료 처리
+	 * @param reviewGuide - 상품평등록안내 정보
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	void updateReviewGuideSendComplete(ReviewGuide reviewGuide);
+
+}

+ 18 - 18
src/main/java/com/style24/batch/biz/job/delivery/TsbSoldoutCancelJob.java

@@ -50,15 +50,15 @@ public class TsbSoldoutCancelJob extends TsbAbstractJob<Delivery, Delivery, Deli
 		 * */
 		
 		// 1. (일반,예약) 품절취소대상 주문번호 목록 조회, 주문번호 단위  주문상세목록 조회 , 주문번호 단위 core 취소 서비스호출  
-		Collection<Delivery> ordnoList = deliveryService.getSoldoutOrderNoList();
-		try {
-			for(Delivery data : ordnoList) {
-				deliveryService.SoldoutCancel(data,"N");
-				succCnt++;
-			}
-		}catch(Exception E) {
-			failCnt++;
-		}
+//		Collection<Delivery> ordnoList = deliveryService.getSoldoutOrderNoList();
+//		try {
+//			for(Delivery data : ordnoList) {
+//				deliveryService.SoldoutCancel(data,"N");
+//				succCnt++;
+//			}
+//		}catch(Exception E) {
+//			failCnt++;
+//		}
 		
 		// 2. (출고예외 -- 재고부족)               품절 대상 조회     core 취소 서비스호출  처리완료 업데이트 
 		Collection<Delivery> excOrdnoList = deliveryService.getSoldoutOrderExcNoList();
@@ -72,15 +72,15 @@ public class TsbSoldoutCancelJob extends TsbAbstractJob<Delivery, Delivery, Deli
 		}
 		
 		// 3. (회수예외 -- 확정전 품절, 확정전 불량 )   품절 대상 조회    core 취소 서비스호출   처리완료 업데이트 
-		Collection<Delivery> recallOrdnoList = deliveryService.getSoldoutOrderRecallNoList();
-		try {
-			for(Delivery data3 : recallOrdnoList) {
-				deliveryService.SoldoutCancel(data3,"R");
-				succCnt++;
-			}
-		} catch(Exception E) {
-			failCnt++;
-		}
+//		Collection<Delivery> recallOrdnoList = deliveryService.getSoldoutOrderRecallNoList();
+//		try {
+//			for(Delivery data3 : recallOrdnoList) {
+//				deliveryService.SoldoutCancel(data3,"R");
+//				succCnt++;
+//			}
+//		} catch(Exception E) {
+//			failCnt++;
+//		}
 
 		 return delivery;
 	}

+ 7 - 7
src/main/java/com/style24/batch/biz/job/delivery/TsbSweetTrackerJob.java

@@ -48,14 +48,14 @@ public class TsbSweetTrackerJob extends TsbAbstractJob<Collection<Delivery>, Col
 		 * 
 		 * */
 		
-		for(Delivery data : invcList) {
-			GagaMap rtn = deliveryService.sweetTrackerInvcSend(data);
-			if("S".equals(rtn.getString("success"))) {
-				deliveryService.updateOrdInvcSendYn(data);
-			}
-		}
+//		for(Delivery data : invcList) {
+//			GagaMap rtn = deliveryService.sweetTrackerInvcSend(data);
+//			if("S".equals(rtn.getString("success"))) {
+//				deliveryService.updateOrdInvcSendYn(data);
+//			}
+//		}
 		
-//		GagaMap rtn = deliveryService.sweetTrackerInvcSendTest();
+		GagaMap rtn = deliveryService.sweetTrackerInvcSendTest();
 //		log.info(""+rtn.getString("success"));
 		 succCnt = 1;
 		 failCnt = 0;

+ 5 - 4
src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsGoodsStockJob.java

@@ -65,7 +65,8 @@ public class TsbGoodsWmsGoodsStockJob extends TsbAbstractJob<IfProductSku, IfPro
 			//wms상품재고이력 생성
 			goodsService.createWmsProductSkuHst(jobdate);
 
-//			// TB_IF_PRODUCTSKU 작업
+//  대용량 테스트 			
+			// TB_IF_PRODUCTSKU 작업
 //			goodsService.deleteIfProductSku();
 //
 //			// TB_IF_PRODUCTSKU  생성
@@ -95,9 +96,9 @@ public class TsbGoodsWmsGoodsStockJob extends TsbAbstractJob<IfProductSku, IfPro
 //				}
 //
 //			}
-
-			// TB_IF_PRODUCTSKU_HST 생성
-			//goodsService.createWmsProductSkuHst(jobdate);
+//
+//			// TB_IF_PRODUCTSKU_HST 생성
+//			goodsService.createWmsProductSkuHst(jobdate);
 
 			//온라인 상품 재고 적용
 			goodsService.saveGoodsStock();

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

@@ -0,0 +1,94 @@
+package com.style24.batch.biz.job.marketing;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbReviewService;
+import com.style24.core.biz.service.TscEnvsetService;
+import com.style24.core.biz.thirdparty.SsgKakaoSender;
+import com.style24.core.support.env.TscConstants;
+import com.style24.persistence.domain.ReviewGuide;
+import com.style24.persistence.domain.SsgDirectMessage;
+
+import lombok.extern.slf4j.Slf4j;
+
+import com.gagaframework.web.parameter.GagaMap;
+
+/**
+ * 상품평등록안내 발송 Job
+ * 
+ * @author gagamel
+ * @since 2021. 5. 17
+ */
+@Component
+@Slf4j
+public class TsbReviewGuideJob extends TsbAbstractJob<String, String, String> {
+
+	@Autowired
+	private TscEnvsetService envsetService;
+
+	@Autowired
+	private TsbReviewService reviewService;
+
+	@Autowired
+	private SsgKakaoSender kakaoSender;
+
+	@Override
+	public String read() throws Exception {
+		return "OK";
+	}
+
+	@Override
+	public String process(String result) throws Exception {
+		// 1.상품평등록가능일수 조회
+		int expireDays = envsetService.getGoodsReviewRegisterDays(TscConstants.Site.STYLE24.value());
+		log.info("1.상품평등록가능일수(구매일로부터): {}일", expireDays);
+
+		// 2.상품평등록안내발송대상건 생성
+		int cnt = reviewService.createReviewGuideSendObjectList(expireDays);
+		log.info("2.상품평등록안내발송대상건: {}건", cnt);
+
+		if (cnt == 0) {
+			log.info("상품평등록안내발송대상건이 없습니다. 서비스를 종료합니다.");
+			return result;
+		}
+
+		// 3.상품평등록안내발송대상 목록
+		Collection<ReviewGuide> reviewGuideList = reviewService.getReviewGuideSendObjectList();
+		if (reviewGuideList != null && !reviewGuideList.isEmpty()) {
+			for (ReviewGuide reviewGuide : reviewGuideList) {
+				SsgDirectMessage dm = new SsgDirectMessage();
+				dm.setFuserid(String.valueOf(reviewGuide.getCustNo()));
+				dm.setFkkoresendtype("LMS");
+				dm.setFdestine(reviewGuide.getCellPhnno());
+
+				// 대체할 문자열 설정
+				GagaMap replaceInfo = new GagaMap();
+				replaceInfo.set("ordNo", reviewGuide.getOrdNo());
+				replaceInfo.setString("custNm", reviewGuide.getCustNm());
+
+				// 4.알림톡 발송
+				kakaoSender.send(SsgKakaoSender.KakaoAnswerSq.ReviewWrite.value(), dm, replaceInfo);
+
+				// 5.상품평등록안내발송완료 처리
+				reviewService.updateReviewGuideSendComplete(reviewGuide);
+			}
+		}
+
+		return result;
+	}
+
+	@Override
+	public String write(String result) throws Exception {
+		return result;
+	}
+
+	@Override
+	public void notify(String result) throws Exception {
+		// Do nothing
+	}
+
+}

Разлика између датотеке није приказан због своје велике величине
+ 282 - 281
src/main/java/com/style24/batch/biz/service/TsbDeliveryService.java


+ 6 - 5
src/main/java/com/style24/batch/biz/service/TsbGoodsService.java

@@ -32,6 +32,7 @@ import io.netty.util.internal.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 
 import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.util.GagaDateUtil;
 
 /**
  * 상품 Service
@@ -524,11 +525,11 @@ public class TsbGoodsService {
 
 		}
 
-//		// TB_IF_PRODUCTSKU_HST 2달 전 데이터 삭제
-//		String delYyyymmdd = GagaDateUtil.getOffsetMonth(-2, "yyyyMMdd") + "000000";  //년월일시분초
-//		goodsDao.deleteWmsProductSkuHst(delYyyymmdd);
-//		// TB_IF_PRODUCTSKU_HST 생성
-//		goodsDao.createWmsProductSkuHst(jobdate);
+		// TB_IF_PRODUCTSKU_HST 2달 전 데이터 삭제
+		String delYyyymmdd = GagaDateUtil.getOffsetMonth(-2, "yyyyMMdd") + "000000";  //년월일시분초
+		goodsDao.deleteWmsProductSkuHst(delYyyymmdd);
+		// TB_IF_PRODUCTSKU_HST 생성
+		goodsDao.createWmsProductSkuHst(jobdate);
 
 	}
 

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

@@ -5,6 +5,7 @@ import com.style24.persistence.domain.Point;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collection;
 
@@ -29,6 +30,7 @@ public class TsbPointService {
 	 * @author jsshin
 	 * @since  2021. 04. 23
 	 */
+	@Transactional("shopTxnManager")
 	public Collection<Point> getAutoBuyConfirmList(Point point) {
 		return pointDao.getAutoBuyConfirmList(point);
 	}
@@ -41,6 +43,7 @@ public class TsbPointService {
 	 * @author sowon
 	 * @since  2021. 04. 26
 	 */
+	@Transactional("shopTxnManager")
 	public Collection<Point> getExpirePointList(Point point){
 		return pointDao.getExpirePointList(point);
 	}
@@ -53,6 +56,7 @@ public class TsbPointService {
 	 * @author sowon
 	 * @since  2021. 04. 26
 	 */
+	@Transactional("shopTxnManager")
 	public void saveExpirePointHst(Point point) {
 		pointDao.saveExpirePointHst(point);
 	}
@@ -66,6 +70,7 @@ public class TsbPointService {
 	 * @author sowon
 	 * @since  2021. 04. 26
 	 */
+	@Transactional("shopTxnManager")
 	public void updateCustPointExpire(Point point) {
 		pointDao.updateCustPointExpire(point);
 	}

+ 60 - 0
src/main/java/com/style24/batch/biz/service/TsbReviewService.java

@@ -0,0 +1,60 @@
+package com.style24.batch.biz.service;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.style24.batch.biz.dao.TsbReviewDao;
+import com.style24.persistence.domain.ReviewGuide;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 상품평 Service
+ *
+ * @author gagamel
+ * @since 2021. 5. 17
+ */
+@Service
+@Slf4j
+public class TsbReviewService {
+
+	@Autowired
+	private TsbReviewDao reviewDao;
+
+	/**
+	 * 상품평등록안내발송대상건 생성
+	 * @param expireDays - 상품평만료일자
+	 * @return 생성건수
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	@Transactional("shopTxnManager")
+	public int createReviewGuideSendObjectList(int expireDays) {
+		return reviewDao.createReviewGuideSendObjectList(expireDays);
+	}
+
+	/**
+	 * 상품평등록안내발송대상 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	public Collection<ReviewGuide> getReviewGuideSendObjectList() {
+		return reviewDao.getReviewGuideSendObjectList();
+	}
+
+	/**
+	 * 상품평등록안내발송완료 처리
+	 * @param reviewGuide - 상품평등록안내 정보
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	@Transactional("shopTxnManager")
+	public void updateReviewGuideSendComplete(ReviewGuide reviewGuide) {
+		reviewDao.updateReviewGuideSendComplete(reviewGuide);
+	}
+
+}

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

@@ -258,7 +258,7 @@ public class TsbWmsDeliveryService {
 	@Transactional("wmsTxnManager")
 	public void updateWmsIfRecallDeliveryRslt(Delivery delivery) {
 
-		delivery.setIfstat("2"); // 수신완료 상태 
+		delivery.setIfstat("3"); // 수신완료 상태 
 		wmsDeliveryDao.updateWmsIfRecallDeliveryRslt(delivery);
 		wmsDeliveryDao.updateWmsIfRecallDeliveryItemRslt(delivery);
 	}		
@@ -369,11 +369,12 @@ public class TsbWmsDeliveryService {
 		Integer recallNo = 0;
 		String ordChgSq  = "";
 		for(Delivery data : list) {
-			if(!ordChgSq.equals(data.getOrdChgSq()+"") ) {
+			log.info("ordChgSq: "+ordChgSq+"   :  getOrdChgSq "+data.getOrderexceptionno());
+			if(!ordChgSq.equals(data.getOrderexceptionno()+"") ) {
 				
 				wmsDeliveryDao.insertWmsRecallDelivery(data);
-				ordChgSq = data.getOrdChgSq()+"";
-				recallNo = data.getRecallno();		
+				ordChgSq = data.getOrderexceptionno()+"";
+				recallNo = data.getRecallno(); 
 			}
 			
 			data.setRecallno(recallNo);

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

@@ -1,14 +1,15 @@
 package com.style24.batch.biz.task;
 
-import com.style24.batch.biz.job.marketing.TsbBirthdayCouponNoticeJob;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import com.style24.batch.biz.job.marketing.TsbAutoBuyConfirmJob;
+import com.style24.batch.biz.job.marketing.TsbBirthdayCouponNoticeJob;
 import com.style24.batch.biz.job.marketing.TsbCartExpirationJob;
 import com.style24.batch.biz.job.marketing.TsbExpirePointJob;
+import com.style24.batch.biz.job.marketing.TsbReviewGuideJob;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -27,13 +28,15 @@ public class TsbMarketingTask {
 
 	@Autowired
 	private TsbCartExpirationJob cartExpirationJob;
-	
+
 	@Autowired
 	private TsbExpirePointJob expirePointJob;
 
 	@Autowired
 	private TsbBirthdayCouponNoticeJob birthdayCouponNoticeJob;
 
+	@Autowired
+	private TsbReviewGuideJob reviewGuideJob;
 
 	/**
 	 * 자동구매확정 포인트 지급
@@ -49,7 +52,6 @@ public class TsbMarketingTask {
 		autoBuyConfirmJob.runById("cron.marketing.auto.buy.confirm");
 	}
 
-
 	/**
 	 * 생일쿠폰 다운로드 안내
 	 *
@@ -63,7 +65,7 @@ public class TsbMarketingTask {
 	public void birthdayCouponNoticeJob() throws Exception {
 		birthdayCouponNoticeJob.runById("cron.marketing.birthday.coupon.notice");
 	}
-	
+
 	/**
 	 * 포인트 소멸처리
 	 *
@@ -92,5 +94,16 @@ public class TsbMarketingTask {
 		cartExpirationJob.runById("cron.marketing.cart.expiration");
 	}
 
+	/**
+	 * 상품평등록안내발송 처리
+	 * @throws Exception - 예외처리
+	 * @author gagamel
+	 * @since 2021. 5. 17
+	 */
+	@Scheduled(cron = "${cron.marketing.review.guide}")
+	@Async
+	public void sendReviewRegisterGuide() throws Exception {
+		reviewGuideJob.runById("cron.marketing.review.guide");
+	}
 
 }

+ 2 - 2
src/main/java/com/style24/batch/support/env/TsbConstants.java

@@ -12,8 +12,8 @@ public class TsbConstants {
 	// 등록자번호
 	public static final Integer REG_NO = 0;
 	
-    public static final String COMPANY_CD_DR = "1003"; // 한세드림
-    public static final String COMPANY_CD_MK = "4337"; // 한세엠케이(주)
+    public static final String COMPANY_CD_DR = "3"; // 한세드림
+    public static final String COMPANY_CD_MK = "5"; // 한세엠케이(주)
 	   
 	// 모니터링
 	public enum Monitoring {

+ 6 - 2
src/main/java/com/style24/persistence/domain/Delivery.java

@@ -142,7 +142,10 @@ public class Delivery extends TscBaseDomain {
 	private String accountNm;
 	private String accountNo;
 	private String ordDtlNoYn;
-	
+	private String reasoncode;
+	private String csMemo;
+	private String batchYn;
+
 	private Integer recallexceptionno;
 	private Integer recallexceptionitemno;
 	private Integer recallexceptionmemono;
@@ -192,7 +195,8 @@ public class Delivery extends TscBaseDomain {
     private int saleQty;
     private int setqty;
     private int setitemqty;
-    
+	private int csAddFee;
+	
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] custUseNoList;			
 

+ 36 - 0
src/main/java/com/style24/persistence/domain/ReviewGuide.java

@@ -0,0 +1,36 @@
+package com.style24.persistence.domain;
+
+import com.style24.core.support.util.CryptoUtils;
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 상품평등록안내 Domain
+ *
+ * @author gagamel
+ * @since 2021. 5. 17
+ */
+@SuppressWarnings("serial")
+@Data
+public class ReviewGuide extends TscBaseDomain {
+
+	private Integer custNo;		// 고객번호
+	private Integer ordNo;		// 주문번호
+	private Integer ordDtlNo;	// 주문상세번호
+	private String goodsCd;		// 상품코드
+	private String custNm;		// 고객명
+	private String cellPhnno;	// 휴대전화번호
+
+	// 암호화 대상 복호화 처리
+	public String getCustNm() {
+		this.custNm = CryptoUtils.decryptAES(this.custNm);
+		return this.custNm;
+	}
+
+	public String getCellPhnno() {
+		this.cellPhnno = CryptoUtils.decryptAES(this.cellPhnno);
+		return this.cellPhnno;
+	}
+
+}

+ 40 - 13
src/main/java/com/style24/persistence/mybatis/shop/TsbDelivery.xml

@@ -70,6 +70,8 @@
 			, USER_ID_MODIFIED
 			, USER_NAME_MODIFIED
 			, DATE_LAST_MODIFIED
+			, REG_NO
+			, REG_DT
 		)
 		VALUES
 		(
@@ -90,8 +92,11 @@
 			, #{useridmodified}
 			, #{usernamemodified}
 			, #{datelastmodified}
+			, #{regNo}
+			, NOW()
+			
 		)
-		ON DUPLICATE KEY UPDATE INVOICE_NO = #{invoiceno}
+		ON DUPLICATE KEY UPDATE INVOICE_NO = #{invoiceno}, LOGISTICS_NAME = #{logisticsname}, CHARGE_TYPE = #{chargetype}, CHARGE_AMOUNT = #{chargeamount}
 			
 	</insert>
 
@@ -111,6 +116,10 @@
 			, SKU_VALUE
 			, EXCEPTION_QTY
 			, REASON_CD
+			, QTY
+			, REASON_CODE
+			, REG_NO
+			, REG_DT
 		)
 		VALUES
 		(
@@ -125,8 +134,12 @@
 			, #{skuvalue}
 			, #{exceptionqty}
 			, #{reasoncd}
+			, #{qty}
+			, #{reasoncode}
+			, #{regNo}
+			, NOW()
 		)
-		ON DUPLICATE KEY UPDATE REASON_CD = #{reasoncd}
+		ON DUPLICATE KEY UPDATE REASON_CD = #{reasoncd}, REASON_CODE = #{reasoncode}, EXCEPTION_QTY = #{exceptionqty}
 	</insert>
 	
 	<!-- 회수예외 등록 메모   -->
@@ -141,6 +154,8 @@
 			, USER_ID_CREATED
 			, USER_NAME_CREATED
 			, DATE_CREATED
+			, REG_NO
+			, REG_DT
 		)
 		VALUES
 		(
@@ -151,6 +166,8 @@
 			, #{useridcreated}
 			, #{usernamecreated}
 			, #{datecreated}
+			, #{regNo}
+			, NOW()
 		)
 		ON DUPLICATE KEY UPDATE ADMIN_MEMO = #{adminmemo}
 	</insert>	
@@ -159,6 +176,8 @@
 	<select id="getWithdrawExcRsltList" resultType="Delivery">
 		/*TsbDelivery.getWithdrawExcRsltList*/
 		SELECT RECALL_EXCEPTION_NO AS RECALLEXCEPTIONNO
+			 , CS_ADD_FEE
+			 , CS_MEMO
 		  FROM TB_ORDER_RECALL_EXCEPTION
 		 WHERE RECALL_STAT = 'S'
 		   AND WMS_SEND_YN = 'N'
@@ -941,7 +960,7 @@
 			, C.PRODUCT_NO                        AS ProductNo
 			, C.PRODUCT_CODE                      AS ProductCode
 			, (SELECT CC.GOODS_NM FROM TB_GOODS CC WHERE CC.GOODS_CD = C.ITEM_CD) AS ProductName    -- 상품명 
-			, '일반'         														  AS ProductTypeCd  -- 상품타입
+			, CASE WHEN B.GOODS_TYPE = 'G056_S' THEN '세트' ELSE '일반' END 		  AS ProductTypeCd  -- 상품타입
 			, C.OPT_CD                            AS SKUCode       
 			, CONCAT(C.OPT_CD1,'/',C.OPT_CD2)     AS SKUValue
 			, B.CURR_PRICE + B.OPT_ADD_PRICE      AS UnitPrice
@@ -1026,6 +1045,7 @@
 	<!-- WMS 회수요청 대상 조회      -->	
 	<select id="getWithdrawRequestList" resultType="Delivery">
 		/*TsbDelivery.getWithdrawRequestList*/
+SELECT * FROM (
 		SELECT
 			  A.ORD_CHG_SQ                                          AS OrderExceptionNo -- 주문변경번호 
 			, CASE WHEN A.CHG_GB ='G680_30' THEN '10' ELSE '20' END AS RecallTypeCd
@@ -1038,7 +1058,7 @@
 			, G.ORD_NO                                              AS OrderNo
 			, G.ORD_NM                                              AS CustomerName
 			, (SELECT CC.CUST_ID FROM TB_CUSTOMER CC WHERE CC.CUST_NO = G.CUST_NO) AS LoginId
-			, A.CHG_MEMO                                            AS CSMemo
+			, CASE WHEN (SELECT COUNT(*) FROM TB_USER U WHERE U.USER_NO = A.REG_NO ) > 0 THEN CONCAT('[C/S]-반품 /',FN_GET_CODE_NM('G688', A.CHG_REASON),'/',A.CHG_MEMO,'/',(SELECT R.USER_NM FROM TB_USER R WHERE R.USER_NO = A.REG_NO )) ELSE CONCAT('[고객]-반품 /',FN_GET_CODE_NM('G688', A.CHG_REASON),'/',A.CHG_MEMO) END   AS CSMemo
 			, A.UPD_DT                                              AS DateCSMemoUpdated
 			, 0                                                     AS IsDeleted
 			, ''                                                    AS DeliveryAddrNew 
@@ -1063,11 +1083,12 @@
 		  JOIN TB_GOODS               E ON C.GOODS_CD   = E.GOODS_CD
 		  JOIN TB_ORDER               G ON C.ORD_NO     = G.ORD_NO 
 		 WHERE A.CHG_GB         = 'G680_30' -- 반품요청
-		   AND B.CHG_STAT       = 'G685_30' -- 회수요청 
+		   AND B.CHG_STAT       = 'G685_50' -- 반품접수
 		   AND B.DEL_YN         = 'N' 
 		   AND E.SELF_GOODS_YN  = 'Y' -- 자사상품 
 		   AND E.RETURNABLE_YN  = 'Y' -- 반품가능여부 
 		   AND G.MALL_GB        = 'G011_10' -- 자사몰
+		 --  and A.REG_NO = '100025'
 		
 		UNION ALL 
 		
@@ -1083,7 +1104,7 @@
 			, G.ORD_NO                                              AS OrderNo
 			, G.ORD_NM                                              AS CustomerName
 			, (SELECT CC.CUST_ID FROM TB_CUSTOMER CC WHERE CC.CUST_NO = G.CUST_NO) AS LoginId
-			, A.CHG_MEMO                                            AS CSMemo
+			, CASE WHEN (SELECT COUNT(*) FROM TB_USER U WHERE U.USER_NO = A.REG_NO ) > 0 THEN CONCAT('[C/S]-교환 /',FN_GET_CODE_NM('G689', A.CHG_REASON),'/',A.CHG_MEMO,'/',(SELECT R.USER_NM FROM TB_USER R WHERE R.USER_NO = A.REG_NO )) ELSE CONCAT('[고객]-교환 /',FN_GET_CODE_NM('G689', A.CHG_REASON),'/',A.CHG_MEMO) END   AS CSMemo
 			, A.UPD_DT                                              AS DateCSMemoUpdated
 			, 0                                                     AS IsDeleted
 			, ''                                                    AS DeliveryAddrNew 
@@ -1108,11 +1129,12 @@
 		  JOIN TB_GOODS               E ON C.GOODS_CD   = E.GOODS_CD
 		  JOIN TB_ORDER               G ON C.ORD_NO     = G.ORD_NO 
 		 WHERE A.CHG_GB         = 'G680_40' -- 교환요청
-		   AND B.CHG_STAT       = 'G685_30' -- 회수요청
+		   AND B.CHG_STAT       = 'G685_20' -- 교환접수 
 		   AND B.DEL_YN         = 'N'
 		   AND E.SELF_GOODS_YN  = 'Y' -- 자사상품
 		   AND E.CHANGEABLE_YN  = 'Y' -- 교환가능여부
 		   AND G.MALL_GB        = 'G011_10' -- 자사몰 
+		  -- and A.REG_NO = '100025'
 		
 		UNION ALL 
 		
@@ -1128,7 +1150,7 @@
 			, G.ORD_NO                                              AS OrderNo
 			, G.ORD_NM                                              AS CustomerName
 			, (SELECT CC.CUST_ID FROM TB_CUSTOMER CC WHERE CC.CUST_NO = G.CUST_NO) AS LoginId
-			, A.CHG_MEMO                                            AS CSMemo
+			, CASE WHEN (SELECT COUNT(*) FROM TB_USER U WHERE U.USER_NO = A.REG_NO ) > 0 THEN CONCAT('[C/S]-반품 /',FN_GET_CODE_NM('G688', A.CHG_REASON),'/',A.CHG_MEMO,'/',(SELECT R.USER_NM FROM TB_USER R WHERE R.USER_NO = A.REG_NO )) ELSE CONCAT('[고객]-반품 /',FN_GET_CODE_NM('G688', A.CHG_REASON),'/',A.CHG_MEMO) END   AS CSMemo
 			, A.UPD_DT                                              AS DateCSMemoUpdated
 			, 0                                                     AS IsDeleted
 			, ''                                                    AS DeliveryAddrNew 
@@ -1154,12 +1176,13 @@
 		  JOIN TB_EXTMALL             F ON C.VENDOR_ID  = F.VENDOR_ID AND C.EXTMALL_ID = F.EXTMALL_ID 
 		  JOIN TB_ORDER               G ON C.ORD_NO     = G.ORD_NO 
 		 WHERE A.CHG_GB         = 'G680_30' -- 반품요청
-		   AND B.CHG_STAT       = 'G685_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_NO = '100025'
 		
 		UNION ALL 
 		
@@ -1175,7 +1198,7 @@
 			, G.ORD_NO                                              AS OrderNo
 			, G.ORD_NM                                              AS CustomerName
 			, (SELECT CC.CUST_ID FROM TB_CUSTOMER CC WHERE CC.CUST_NO = G.CUST_NO) AS LoginId
-			, A.CHG_MEMO                                            AS CSMemo
+			, CASE WHEN (SELECT COUNT(*) FROM TB_USER U WHERE U.USER_NO = A.REG_NO ) > 0 THEN CONCAT('[C/S]-교환 /',FN_GET_CODE_NM('G689', A.CHG_REASON),'/',A.CHG_MEMO,'/',(SELECT R.USER_NM FROM TB_USER R WHERE R.USER_NO = A.REG_NO )) ELSE CONCAT('[고객]-교환 /',FN_GET_CODE_NM('G689', A.CHG_REASON),'/',A.CHG_MEMO) END   AS CSMemo
 			, A.UPD_DT                                              AS DateCSMemoUpdated
 			, 0                                                     AS IsDeleted
 			, ''                                                    AS DeliveryAddrNew 
@@ -1201,12 +1224,14 @@
 		  JOIN TB_EXTMALL             F ON C.VENDOR_ID  = F.VENDOR_ID AND C.EXTMALL_ID = F.EXTMALL_ID 
 		  JOIN TB_ORDER               G ON C.ORD_NO     = G.ORD_NO 
 		 WHERE A.CHG_GB         = 'G680_40' -- 교환요청
-		   AND B.CHG_STAT       = 'G685_30' -- 회수요청
+		   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_NO = '100025'
+		) A ORDER BY OrderExceptionNo
 	</select>	
 		
 	<!-- 주문변경상세 상태값 변경   -->
@@ -1313,6 +1338,7 @@
 		 WHERE A.WD_INVOICE_NO IS NOT NULL 
 		   AND A.CHG_GB IN('G680_30','G680_40')   -- 반품요청 교환요청
 		   AND A.SWT_TRC_SEND_YN = 'N'
+		   AND A.WD_GB           = 'W'
 		   AND B.CHG_STAT IN('G685_30','G685_31') --  회수요청 상품검수중
 		 GROUP BY A.WD_INVOICE_NO, A.SHIP_COMP_CD, A.ORD_CHG_SQ 
 	</select>
@@ -1517,6 +1543,7 @@
 		  WHERE A.COMPLTED_YN = 'N'
 		   AND B.GIFT_YN      = 'N'
 		   AND A.ORD_NO       = #{ordNo}
+		  GROUP BY A.ORD_NO, B.ORD_DTL_NO, C.CUST_NO, C.ORD_NM, D.PG_GB, D.PAY_MEANS, E.BANK_CD, E.ACCOUNT_NM, E.ACCOUNT_NO, B.EXCEPTION_QTY 
 	</select>	
 	
 	<!-- 품절대상 회수예외 주문 목록 조회         -->	
@@ -1525,7 +1552,7 @@
 		SELECT A.ORDER_NO 
 		  FROM TB_ORDER_RECALL_EXCEPTION A 
 		  JOIN TB_ORDER_RECALL_EXCEPTION_ITEM B ON A.RECALL_EXCEPTION_NO = B.RECALL_EXCEPTION_NO 
-		 WHERE B.REASON_CD IN ('확정 전 불량','확정 전 품절(재고없음)')
+		 WHERE B.REASON_CODE IN ('08','10')
 		   AND A.RECALL_STAT ='P'
 		 GROUP BY A.ORDER_NO 
 	</select>
@@ -1549,7 +1576,7 @@
 		  JOIN TB_ORDER                         C ON A.ORDER_NO = C.ORD_NO 
 		  JOIN TB_PAYMENT                       D ON A.ORDER_NO = D.ORD_NO   AND D.PAY_STAT = 'G016_30'
 		  LEFT OUTER JOIN TB_CUST_ACCOUNT       E ON C.CUST_NO = E.CUST_NO AND E.DEFAULT_YN = 'Y' AND E.DEL_YN = 'N'	  
-		 WHERE B.REASON_CD IN ('확정 전 불량','확정 전 품절(재고없음)')
+		 WHERE B.REASON_CD IN ('08','10')
 		   AND A.RECALL_STAT ='P'
 		   AND A.ORDER_NO = #{ordNo}
 	</select>

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

@@ -1440,9 +1440,9 @@
 		     , A.SUPPLY_COMP_CD                      /*온라인업체코드*/
 		FROM  TB_SUPPLY_COMPANY A
 		WHERE  A.DISTRIBUTION_GB  IN ('G065_10', 'G065_11', 'G065_12')  /* 자사 유통구분*/
-		AND UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -7 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
+		-- AND UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -7 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
 		<![CDATA[
-		AND UPD_DT < DATE_FORMAT(DATE_FORMAT(NOW(), '%Y%m%d'), '%Y%m%d%H%i%S')
+		-- AND UPD_DT < DATE_FORMAT(DATE_FORMAT(NOW(), '%Y%m%d'), '%Y%m%d%H%i%S')
 		]]>
 	</select>
 	
@@ -1458,9 +1458,9 @@
 		     , A.BRAND_CD
 		FROM   TB_BRAND A
 		WHERE  A.SELF_YN  = 'Y'  /* 자사 */
-		AND A.UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -7 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
+		-- AND A.UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -7 DAY), '%Y%m%d'), '%Y%m%d%H%i%S')  -- eskim 
 		<![CDATA[
-		AND A.UPD_DT < DATE_FORMAT(DATE_FORMAT(NOW(), '%Y%m%d'), '%Y%m%d%H%i%S')
+		-- AND A.UPD_DT < DATE_FORMAT(DATE_FORMAT(NOW(), '%Y%m%d'), '%Y%m%d%H%i%S')
 		]]>
 	</select>
 	
@@ -1771,6 +1771,7 @@
 		           , PRODUCT_NO
 		           , PRODUCT_CODE
 		           , SUM(CURR_STOCK_QTY) AS CURR_STOCK_QTY
+		           , STORE_STOCK_QTY
 		           , IFNULL((SELECT (MAX(DISP_ORD) + 1) AS DISP_ORD 
 		                  FROM TB_OPTION WHERE GOODS_CD = Z.GOODS_CD) , ROW_NUMBER() OVER(PARTITION BY GOODS_CD ORDER BY OPT_CD)) AS DISP_ORD
 		           , ERP_STOCK_LINK_YN
@@ -1780,18 +1781,18 @@
 		                , MAX(A.OPTION1) AS OPT_CD1
 		                , MAX(A.OPTION2) AS OPT_CD2
 		                , MAX(A.SKUMODELNO) AS SKU_MODEL_NO
-		                , MAX(B.PRODUCT_NO) AS PRODUCT_NO
-		                , MAX(B.PRODUCT_CODE) AS PRODUCT_CODE
+		                , MAX(E.PRODUCT_NO) AS PRODUCT_NO
+		                , MAX(E.PRODUCT_CODE) AS PRODUCT_CODE
 		                , ROUND(GREATEST(A.SELLINGSTOCKAMOUNT, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
+		                , MAX(E.STORE_STOCK_QTY) AS STORE_STOCK_QTY
 		                , MAX(B.ERP_STOCK_LINK_YN) AS ERP_STOCK_LINK_YN
 		                , D.DELV_LOC_CD
 		                , D.STOCK_APPL_RATE
 		           FROM TB_IF_PRODUCTSKU A 
-		           INNER JOIN TB_GOODS B ON A.PRODUCTCODE = B.PRODUCT_CODE 
-		                                 AND B.SELF_GOODS_YN = 'Y'
-		                                 AND B.GOODS_TYPE = 'N'
 		           INNER JOIN TB_OPTION E ON A.SKUCODE = E.OPT_CD
-		                                  AND A.PRODUCTCODE = E.PRODUCT_CODE
+		                                  AND A.PRODUCTNO = E.PRODUCT_NO
+		           INNER JOIN TB_GOODS B ON E.GOODS_CD = B.GOODS_CD
+		                                 AND B.SELF_GOODS_YN = 'Y'
 		           INNER JOIN TB_STOCK_SYNC_BASE C ON B.BRAND_CD = C.BRAND_CD
 		                                           AND C.STOCK_SYNC_YN = 'Y'
 		           INNER JOIN TB_DELIVERY_LOC D ON B.SUPPLY_COMP_CD = D.SUPPLY_COMP_CD
@@ -1800,7 +1801,7 @@
 		           WHERE 1 = 1
 		           GROUP BY B.GOODS_CD, A.SKUCODE, D.DELV_LOC_CD, D.STOCK_APPL_RATE
 		           ) Z
-		       GROUP BY GOODS_CD, OPT_CD, ERP_STOCK_LINK_YN
+		       GROUP BY GOODS_CD, OPT_CD, OPT_CD1 , OPT_CD2, SKU_MODEL_NO, PRODUCT_NO, PRODUCT_CODE, STORE_STOCK_QTY, ERP_STOCK_LINK_YN
 		      ) Y
 	</insert>
 	

+ 62 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsbReview.xml

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.batch.biz.dao.TsbReviewDao">
+
+	<!-- 상품평등록안내발송대상건 생성 -->
+	<insert id="createReviewGuideSendObjectList" parameterType="int">
+		/* TsbReviewDao.createReviewGuideSendObjectList */
+		INSERT INTO TB_REVIEW_GUIDE (
+		       CUST_NO
+		     , ORD_NO
+		     , ORD_DTL_NO
+		     , GOODS_CD
+		     , SEND_YN
+		     , REG_DT
+		)
+		SELECT O.CUST_NO
+		     , OD.ORD_NO
+		     , OD.ORD_DTL_NO
+		     , OD.GOODS_CD
+		     , 'N'           AS SEND_YN
+		     , NOW()         AS REG_DT
+		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    OD.ORD_DTL_STAT IN ('G013_50','G013_60','G013_70') /*배송중,배송완료,구매확정*/
+		AND    NOT EXISTS (SELECT 1
+		                   FROM   TB_REVIEW_GUIDE
+		                   WHERE  CUST_NO = O.CUST_NO
+		                   AND    ORD_NO = OD.ORD_NO
+		                   AND    ORD_DTL_NO = OD.ORD_DTL_NO
+		                   AND    GOODS_CD = OD.GOODS_CD
+		                  )
+	</insert>
+	
+	<!-- 상품평등록안내발송대상 목록 -->
+	<select id="getReviewGuideSendObjectList" resultType="ReviewGuide">
+		/* TsbReviewDao.getReviewGuideSendObjectList */
+		SELECT RG.CUST_NO
+		     , RG.ORD_NO
+		     , RG.ORD_DTL_NO
+		     , RG.GOODS_CD
+		     , C.CUST_NM
+		     , C.CELL_PHNNO
+		FROM   TB_REVIEW_GUIDE RG
+		     , TB_CUSTOMER C
+		WHERE  RG.CUST_NO = C.CUST_NO
+		AND    RG.SEND_YN = 'N' /*미발송건*/
+	</select>
+	
+	<!-- 상품평등록안내발송완료 처리 -->
+	<update id="updateReviewGuideSendComplete" parameterType="ReviewGuide">
+		/* TsbReviewDao.updateReviewGuideSendComplete */
+		UPDATE TB_REVIEW_GUIDE
+		SET    SEND_YN = 'Y'
+		WHERE  CUST_NO = #{custNo}
+		AND    ORD_NO = #{ordNo}
+		AND    ORD_DTL_NO = #{ordDtlNo}
+		AND    GOODS_CD = #{goodsCd}
+	</update>
+	
+</mapper>

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

@@ -1,20 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.style24.batch.biz.dao.TsbWmsDeliveryDao">
-	
-	<!-- WMS 총알배송 권역정보 생성 1  
-	<select id="uspWmsDailyTmlInfoE10" statementType="CALLABLE" parameterType="Delivery" resultType="Delivery"  >
-		/* TsbDelivery.saveOrderDeliveryLocAssign   */
-		{ CALL USP_WMS_DailyTmlInfo_E10( '14', #{rtnCd, mode=OUT, jdbcType=INT, javaType=integer}, #{rtnMsg, mode=OUT, jdbcType=NVARCHAR, javaType=String}) }
-	</select>
-	-->
-	<!-- WMS 총알배송 권역정보 생성 2  
-	<select id="uspWmsDailyTmlInfoE20" statementType="CALLABLE" parameterType="Delivery" resultType="Delivery"  >
-		/* TsbDelivery.saveOrderDeliveryLocAssign   */
-		{ CALL USP_WMS_DailyTmlInfo_E10( '14', #{rtnCd, mode=OUT, jdbcType=INT, javaType=integer}, #{rtnMsg, mode=OUT, jdbcType=NVARCHAR, javaType=String}) }
-	</select>	
-	-->
-	
+
 	<!-- WMS_IF 총알배송 권역정보 조회   -->	
 	<select id="getWmsIfDailyDeliveryZoneList" resultType="Delivery">
 		/*TsbWmsDelivery.getWmsIfDailyDeliveryZoneList*/
@@ -56,13 +43,13 @@
 			, UserIdModified
 			, UserNameModified
 			, DateLastModified
-			, '0'   AS IfStat
-			, NULL AS IfDate
+			, IfStat
+			, IfDate
 		  FROM iSTYLE24_WmsIf.DBO.TB_IF_RecallException
 		WHERE 1=1
 		  AND IfStat = '0'
 		  AND StatusCd = '대기'
-		  AND DateCreated > CONVERT(datetime,'20200201'+' 00:00:00') -- 임시임 
+		  AND DateCreated > CONVERT(datetime,'20210510'+' 00:00:00') -- 임시임 
 	</select>
 	
 	<!-- WMS_IF 회수예외 목록 -D -->	
@@ -80,14 +67,16 @@
 			, A.ExceptionQty
 			, A.ReasonCd
 			, A.OrderDtlNo
-			, '0'   AS IfStat
-			, NULL AS IfDate
+			, A.IfStat
+			, A.IfDate
 			, B.OrderNo
+			, A.Qty
+			, A.ReasonCode
 		  FROM iSTYLE24_WmsIf.DBO.TB_IF_RecallExceptionItem A, iSTYLE24_WmsIf.DBO.TB_IF_RecallException B
 		 WHERE A.RecallExceptionNo = B.RecallExceptionNo
 		   AND A.IfStat = 0
 		   AND B.StatusCd = '대기'
-		   AND B.DateCreated > CONVERT(datetime,'20210201'+' 00:00:00') -- 임시임 
+		   AND B.DateCreated > CONVERT(datetime,'20210510'+' 00:00:00') -- 임시임 
 	</select>
 	
 	
@@ -102,13 +91,13 @@
 			, A.UserIdCreated
 			, A.UserNameCreated
 			, A.DateCreated
-			, '0' AS IfStat
-			, NULL AS IfDate
+			, A.IfStat
+			, A.IfDate
 		  FROM iSTYLE24_WmsIf.DBO.TB_IF_RecallExceptionMemo A, iSTYLE24_WmsIf.DBO.TB_IF_RecallException B
 		 WHERE A.RecallExceptionNo = B.RecallExceptionNo
 		   AND A.IfStat = 0
 		   AND B.StatusCd = '대기'
-		   AND B.DateCreated > CONVERT(datetime,'20210201'+' 00:00:00') -- 임시임 
+		   AND B.DateCreated > CONVERT(datetime,'20210510'+' 00:00:00') -- 임시임 
 	</select>
 	
 	
@@ -118,6 +107,10 @@
 		UPDATE iSTYLE24_WmsIf.DBO.TB_IF_RecallException SET 
 			   IfStat = #{ifstat}
 			 , IfDate = GETDATE()
+			 <if test='ifstat == "2"'>
+			 , CSenCloseFee = #{csAddFee}
+			 , CSMemo       = #{csMemo}
+			 </if>
 		WHERE RecallExceptionNo = #{recallexceptionno}
 		
 	</update>
@@ -281,7 +274,7 @@
 		 WHERE A.RecallNo  = B.RecallNo
 		   AND A.IsDeleted = 0
 		   AND B.StatusCd  = '입고완료'   
-		   AND B.IfStat    = '1' -- 회수완료 
+		   AND B.IfStat    = '2' -- 회수완료 
 	</select>
 	
 	<!-- 회수결과수신완료    -->
@@ -291,7 +284,7 @@
 			  IfStat = #{ifstat}
 			, IfDate = GETDATE()
 			WHERE RecallNo = #{recallno}
-			  AND IfStat = '1'
+			  AND IfStat = '2'
 	</update>	
 	
 	<!-- 회수상세결과수신완료    -->
@@ -302,7 +295,7 @@
 			, IfDate = GETDATE()
 		WHERE RecallNo     = #{recallno}
 		  AND RecallItemNo = #{recallitemno}
-		  AND IfStat       = '1'
+		  AND IfStat       = '2'
 	</update>	
 		
 	<!-- 출고 송장번호 조회  -->
@@ -325,6 +318,7 @@
 			, CASE WHEN orderDtlNo IS NULL THEN 'N' ELSE 'Y' END AS ORD_DTL_NO_YN
 		  FROM istyle24_Wmsif.dbo.TB_IF_DELIVERYINVOICE
 		 WHERE IfYn = 'N'
+		   AND SKUCode IS NOT NULL
 	</select>
 	
 	<!-- 출고 송장번호 수신완료    -->
@@ -499,12 +493,11 @@
 	
 	
 	<!-- 회수요청 M     -->
-	<insert id="insertWmsRecallDelivery" parameterType="Delivery" keyProperty="recallno" >
+	<insert id="insertWmsRecallDelivery" parameterType="Delivery" useGeneratedKeys="true" keyProperty="recallno" >
 		/*TsbWmsDelivery.insertWmsRecallDelivery*/
 		INSERT INTO iSTYLE24_WmsIf.dbo.TB_IF_RecallDelivery
 		(
-			  RecallNo				-- 반품 번호
-			, OrderExceptionNo		-- 주문 예외 번호
+			  OrderExceptionNo		-- 주문 예외 번호
 			, RecallTypeCd			-- 반품 타입
 			, Receiver				-- 받는자
 			, ReceiverTelNum		-- 받는자 전화번호
@@ -523,12 +516,12 @@
 			, DeliveryAddrNew		-- 도로명 주소
 			, RecallRequestYn		-- 회수요청여부
 			, IfStat				-- I/F상태
+			, IfDate
 			, encloseFee			-- 동봉비
 		)
 		VALUES 
 		(
-			  #{recallno}			-- 반품 번호
-			, #{orderexceptionno}	-- 주문 예외 번호
+			  #{orderexceptionno}	-- 주문 예외 번호
 			, #{recalltypecd}		-- 반품 타입
 			, #{receiver}			-- 받는자
 			, #{receivertelnum}		-- 받는자 전화번호
@@ -537,27 +530,27 @@
 			, #{deliveryaddr1}		-- 기본 주소
 			, #{deliveryaddr2}		-- 상세 주소
 			, #{orderno}			-- 주문 번호
-			, (SELECT AA.OrderGUID FROM iSTYLE24_WmsIf.dbo.TB_IF_DeliveryOrder AA WHERE AA.OrderNo = OrderNo) -- 주문 고유 번호
+			, (SELECT MAX(AA.OrderGUID) FROM iSTYLE24_WmsIf.dbo.TB_IF_DeliveryOrder AA WHERE AA.OrderNo = #{orderno}) -- 주문 고유 번호
 			, #{customername}		-- 주문자
 			, #{loginid}			-- 아이디S
 			, #{csmemo}				-- cs 메모
 			, #{datecsmemoupdated}	-- cs 메모 변경일
-			, #{datecreated}		-- 생성일
+			, GETDATE()				-- 생성일
 			, #{isdeleted}			-- 삭제 여부
 			, #{deliveryaddrnew}	-- 도로명 주소
 			, #{recallrequestyn}	-- 회수요청여부
 			, #{ifstat}				-- i/f상태
+			, GETDATE()				-- i/f 생성일
 			, 0						-- 동봉비
 		)
 	</insert>
 	
 	<!-- 회수요청 D     -->
-	<insert id="insertWmsRecallDeliveryItem" parameterType="Delivery" keyProperty="recallitemno" >
+	<insert id="insertWmsRecallDeliveryItem" parameterType="Delivery" useGeneratedKeys="true" keyProperty="recallitemno" >
 		/*TsbWmsDelivery."insertWmsRecallDeliveryItem"*/
 		INSERT INTO iSTYLE24_WmsIf.dbo.TB_IF_RecallDeliveryItem
 		(
-			  RecallItemNo		-- 반품 항목 번호
-			, RecallNo			-- 반품 번호
+			  RecallNo			-- 반품 번호
 			, ProductNo			-- 상품 번호
 			, ProductCode		-- 상품 코드
 			, ProductName		-- 상품명
@@ -572,11 +565,11 @@
 			, OrderDtlNo		-- 주문상세번호
 			, InvoiceNo			-- 원운송장번호
 			, IfStat			-- I/F상태
+			, IfDate
 		)
 		VALUES
 		(
-			  #{recallitemno}		-- 반품 항목 번호
-			, #{recallno}			-- 반품 번호
+			  #{recallno}			-- 반품 번호
 			, #{productno}			-- 상품 번호
 			, #{productcode}		-- 상품 코드
 			, #{productname}		-- 상품명
@@ -591,7 +584,7 @@
 			, #{orderdtlno}			-- 주문상세번호
 			, #{invoiceno}			-- 원운송장번호
 			, #{ifstat}				-- i/f상태
-			, #{ifdate}				-- i/f일자
+			, GETDATE()				-- i/f일자
 		)
 
 	</insert>
@@ -602,7 +595,7 @@
 		UPDATE istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERYITEM  SET
 			  LogisticsName     = 'CJ 대한통운'
 			, RecallInvoiceNo   = #{recallinvoiceno}
-			, LogisticsCode     = '29'
+			, LogisticsCode     = '05'
 			, IfDate            = GETDATE()
 		WHERE RecallNo = (SELECT MAX(RecallNo) FROM istyle24_Wmsif.dbo.TB_IF_RECALLDELIVERY A WHERE A.OrderExceptionNo = #{ordChgSq} AND A.OrderNo = #{ordNo} )	
 	</update>

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

@@ -86,7 +86,7 @@
 	<!--WMS 업체정보 송신-->
 	<insert id="saveWmsProvider" parameterType="IfProvider" >
 		/* TsbWmsGoods.saveWmsProvider */
-		MERGE iSTYLE24_WmsIf.dbo.TB_IF_PROVIDER_TEMP      -- 나중에 _TEMP 삭제 
+		MERGE iSTYLE24_WmsIf.dbo.TB_IF_PROVIDER 
 		      USING (SELECT 'AA' AS DUAL) AS B
 		         ON (PROVIDERNO = #{providerno})
 		      WHEN MATCHED THEN
@@ -134,7 +134,7 @@
 	<!--WMS 브랜드정보 송신-->
 	<insert id="saveWmsBrand" parameterType="IfBrand" >
 		/* TsbWmsGoods.saveWmsBrand */
-		MERGE iSTYLE24_WmsIf.dbo.TB_IF_BRAND_TEMP 
+		MERGE iSTYLE24_WmsIf.dbo.TB_IF_BRAND
 		      USING (SELECT 'AA' AS DUAL) AS B
 		         ON (BRANDNO = #{brandno})
 		      WHEN MATCHED THEN
@@ -162,7 +162,7 @@
 	<!--WMS 브랜드업체관계정보 송신-->
 	<insert id="saveWmsBrandProviderXref" parameterType="IfBrand" >
 		/* TsbWmsGoods.saveWmsBrandProviderXref */
-		MERGE INTO iSTYLE24_WmsIf.dbo.TB_IF_BRANDPROVIDERXREF_TEMP      -- 나중에 _TEMP 삭제  
+		MERGE INTO iSTYLE24_WmsIf.dbo.TB_IF_BRANDPROVIDERXREF
 		      USING (SELECT 'AA' AS DUAL) AS B
 		         ON (BRANDNO = #{brandno} AND PROVIDERNO = #{providerno})
 		      WHEN MATCHED THEN
@@ -193,7 +193,7 @@
 	<!--WMS 상품정보 송신-->
 	<update id="saveWmsProduct" parameterType="IfProduct" >
 		/* TsbWmsGoods.saveWmsProduct */
-		UPDATE iSTYLE24_WmsIf.dbo.TB_IF_PRODUCT_TEMP      -- 나중에 _TEMP 삭제 
+		UPDATE iSTYLE24_WmsIf.dbo.TB_IF_PRODUCT
 		SET PRODUCTNAME = #{productname}
 		  , BRANDNO = #{brandno}
 		  , BRANDNAME = #{brandname}
@@ -226,9 +226,12 @@
 		     , C.ISVIRTUALSTOCK
 		     , C.DATEVIRTUALSTOCK
 		     , C.SKUCODE88
-		FROM iSTYLE24_WMSIF.DBO.TB_IF_BRANDPROVIDERXREF_TEMP A
+		FROM iSTYLE24_WMSIF.DBO.TB_IF_PROVIDER P
+		INNER JOIN iSTYLE24_WMSIF.DBO.TB_IF_BRANDPROVIDERXREF A ON P.PROVIDERNO = A.PROVIDERNO
 		INNER JOIN iSTYLE24_WmsIf.dbo.TB_IF_PRODUCT B ON A.BRANDNO  = B.BRANDNO 
 		INNER JOIN iSTYLE24_WmsIf.dbo.TB_IF_PRODUCTSKU C ON B.PRODUCTNO  = C.PRODUCTNO 
+		WHERE P.DISTRIBUTIONCD = '자사'
+		-- AND B.PRODUCTNO  IN (16561091 ,16561090)   -- 테스트용
 	</select>
 	
 </mapper>

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

@@ -137,6 +137,7 @@ cron:
         comback.coupon.notice : 2 22 2 29 2 ?   # 복귀할인쿠폰발급안내(매월 5일)(해야함)
         expire.point : 2 22 2 29 2 ?            # 포인트 소멸
         cart.expiration : 2 22 2 29 2 ?         # 만료기간 지난 장바구니 삭제
+        review.guide: 2 22 2 29 2 ?             # 상품평등록안내 발송 (일배치)
 
     # 주문
     order:

Неке датотеке нису приказане због велике количине промена