Просмотр исходного кода

wms 입고시 온라인 옵션이 없는 상품옵션 추가

eskim 5 лет назад
Родитель
Сommit
eb60015aa2

+ 11 - 6
src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java

@@ -306,7 +306,7 @@ public interface TsbGoodsDao {
 	Collection<IfProduct> getGoodsList();
 
 	/**
-	 * TB_IF_PRODUCTSKU_TEMP 삭제
+	 * TB_IF_PRODUCTSKU 삭제
 	 *
 	 * @author eskim
 	 * @since 2021. 01. 06
@@ -314,7 +314,7 @@ public interface TsbGoodsDao {
 	void deleteIfProductSku();
 
 	/**
-	 * TB_IF_PRODUCTSKU_TEMP 저장
+	 * TB_IF_PRODUCTSKU 저장
 	 *
 	 * @author eskim
 	 * @since 2021. 01. 06
@@ -323,14 +323,13 @@ public interface TsbGoodsDao {
 	void createIfProductSku(GagaMap dataMap);
 
 	/**
-	 * TB_IF_PRODUCTSKU_TEMP 저장
+	 * TB_IF_PRODUCTSKU 저장
 	 *
 	 * @author eskim
 	 * @since 2021. 01. 06
 	 */
 	void createIfProductSkuByRow(IfProductSku ifProductSku);
 
-
 	/**
 	 * TB_IF_PRODUCTSKU_HST 삭제
 	 *
@@ -347,7 +346,6 @@ public interface TsbGoodsDao {
 	 */
 	void createWmsProductSkuHst(String jobdate);
 
-
 	/**
 	 *  상품 전시재고 삭제
 	 *
@@ -364,7 +362,6 @@ public interface TsbGoodsDao {
 	 */
 	void createGoodsDispStock();
 
-
 	/**
 	 * TB_STOCK = > TB_STOCK_SYNC 적용
 	 *
@@ -481,4 +478,12 @@ public interface TsbGoodsDao {
 	 */
 	void createTtbSellQtyByOrderDetail();
 
+	/**
+	 * 입고상품중 온라인 옵션이 없는 상품옵션 추가
+	 *
+	 * @author eskim
+	 * @since 2021. 01. 18
+	 */
+	void createGoodsOptionList();
+
 }

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

@@ -61,6 +61,9 @@ public class TsbGoodsWmsIncomelotJob extends TsbAbstractJob<GoodsIfIncomelotitem
 		//온라인 입고 상품 처리
 		goodsService.saveWmsGoods(jobdate);
 
+		//입고상품중 온라인 옵션이 없는 상품옵션 추가
+		goodsService.createGoodsOptionList();
+
 		return goodsIfIncomelotitem;
 	}
 

+ 3 - 4
src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsProductStockJob.java

@@ -39,7 +39,6 @@ public class TsbGoodsWmsProductStockJob extends TsbAbstractJob<IfProductSku, IfP
 	@Override
 	public IfProductSku read() throws Exception {
 
-
 		IfProductSku ifProductSku = new IfProductSku();
 		return ifProductSku;
 	}
@@ -59,17 +58,17 @@ public class TsbGoodsWmsProductStockJob extends TsbAbstractJob<IfProductSku, IfP
 		if ("N".equals(wmsSyncYn)) {
 			log.info("WMS 정보 동기화 미실행 {}, 연동여부 : {}", GagaDateUtil.getToday("yyyy-MM-dd HH:mm:ss"), wmsSyncYn);
 			return null;
-		}else {
+		} else {
 			/**
 			 * 나중에 개발 서버에서 꼭 테스트 해봅시다~~~~
 			 */
 			//wms상품재고이력 생성
 			goodsService.createWmsProductSkuHst(jobdate);
 
-//			// TB_IF_PRODUCTSKU_TEMP 작업
+//			// TB_IF_PRODUCTSKU 작업
 //			goodsService.deleteIfProductSku();
 //
-//			// TB_IF_PRODUCTSKU_TEMP 생성
+//			// TB_IF_PRODUCTSKU  생성
 //			Collection<IfProductSku> wmsIfProductSukList = wmsGoodsService.getWmsIfProductSukList();  //테스트 1000건
 //
 //			//대용량 : N

+ 30 - 22
src/main/java/com/style24/batch/biz/service/TsbGoodsService.java

@@ -434,7 +434,6 @@ public class TsbGoodsService {
 		return goodsDao.getBrandList();
 	}
 
-
 	/**
 	 * 상품 정보 조회
 	 *
@@ -457,27 +456,27 @@ public class TsbGoodsService {
 	@Transactional("shopTxnManager")
 	public void createWmsProductSkuHst(String jobdate) {
 
-		// TB_IF_PRODUCTSKU_TEMP 작업
+		// TB_IF_PRODUCTSKU  작업
 		goodsDao.deleteIfProductSku();
 
-		// TB_IF_PRODUCTSKU_TEMP 생성
+		// TB_IF_PRODUCTSKU  생성
 		Collection<IfProductSku> wmsIfProductSukList = wmsGoodsService.getWmsIfProductSukList();
 		String byrow = "Y";
 		if ("Y".equals(byrow)) {
-			for(IfProductSku ifProductSku : wmsIfProductSukList) {
+			for (IfProductSku ifProductSku : wmsIfProductSukList) {
 				goodsDao.createIfProductSkuByRow(ifProductSku);
 			}
-		}else {
+		} else {
 
 			List<IfProductSku> productSukList = new ArrayList<IfProductSku>();
 
 			GagaMap dataMap = new GagaMap();
 			int index = 0;
-			for(IfProductSku ifProductSku : wmsIfProductSukList) {
+			for (IfProductSku ifProductSku : wmsIfProductSukList) {
 
 				productSukList.add(ifProductSku);
 				index++;
-				if (index % 200 == 0 ||  wmsIfProductSukList.size() == index) {
+				if (index % 200 == 0 || wmsIfProductSukList.size() == index) {
 					dataMap.set("productSukList", productSukList);
 					goodsDao.createIfProductSku(dataMap);
 					productSukList.clear();
@@ -509,21 +508,21 @@ public class TsbGoodsService {
 		// wms 재고 임시 테이블(TB_OPTION_SYNC_TEMP) 적용 - 출고처별 판매비율 적용
 		goodsDao.createTbOptionSyncTemp();
 
-			// 입점 상품 재고 동기화 후 SELL_QTY 삭제
-			updateOptionByOfSellQty();
+		// 입점 상품 재고 동기화 후 SELL_QTY 삭제
+		updateOptionByOfSellQty();
 
-			// TB_OPTION = > TB_OPTION_SYNC 적용
-			goodsDao.deleteGoodsOptionSync();
-			goodsDao.createGoodsOptionSync();
+		// TB_OPTION = > TB_OPTION_SYNC 적용
+		goodsDao.deleteGoodsOptionSync();
+		goodsDao.createGoodsOptionSync();
 
-			// TB_OPTION_SYNC_TEMP => TB_OPTION_SYNC 변경적용
-			goodsDao.saveGoodsOptionSyncSync();
+		// TB_OPTION_SYNC_TEMP => TB_OPTION_SYNC 변경적용
+		goodsDao.saveGoodsOptionSyncSync();
 
-			// TB_OPTION_SYNC => TB_OPTION 적용
-			goodsDao.saveGoodsOptionNew();
+		// TB_OPTION_SYNC => TB_OPTION 적용
+		goodsDao.saveGoodsOptionNew();
 
-			// 자사상품중 주문상세상태가 입금대기, 결제완료, 교환대기 건은 TB_SELL_QTY 생성
-			createSellQtySelfGoods();
+		// 자사상품중 주문상세상태가 입금대기, 결제완료, 교환대기 건은 TB_SELL_QTY 생성
+		createSellQtySelfGoods();
 
 	}
 
@@ -578,6 +577,7 @@ public class TsbGoodsService {
 		goodsDao.createTtbSellQtyByOrderDetail();
 
 	}
+
 	/**
 	 * 상품 전시재고 생성
 	 *
@@ -585,13 +585,13 @@ public class TsbGoodsService {
 	 * @since 2020. 01. 06
 	 */
 	@Transactional("shopTxnManager")
-	public void saveGoodsDispStock()  {
+	public void saveGoodsDispStock() {
 		goodsDao.deleteGoodsDispStock();
 		goodsDao.createGoodsDispStock();
 	}
 
 	/**
-	 * TB_IF_PRODUCTSKU_TEMP 삭제
+	 * TB_IF_PRODUCTSKU  삭제
 	 *
 	 * @author eskim
 	 * @since 2020. 01. 11
@@ -623,7 +623,6 @@ public class TsbGoodsService {
 		goodsDao.createIfProductSku(dataMap);
 	}
 
-
 	/**
 	 * TB_IF_PRODUCTSKU_HST 저장
 	 *
@@ -635,5 +634,14 @@ public class TsbGoodsService {
 		goodsDao.createWmsProductSkuHst(jobdate);
 	}
 
-
+	/**
+	 * 입고상품중 온라인 옵션이 없는 상품옵션 추가
+	 *
+	 * @author eskim
+	 * @since 2021. 01. 18
+	 */
+	@Transactional("shopTxnManager")
+	public void createGoodsOptionList() {
+		goodsDao.createGoodsOptionList();
+	}
 }

+ 1 - 3
src/main/java/com/style24/persistence/domain/Goods.java

@@ -70,6 +70,7 @@ public class Goods extends TscBaseDomain {
 
 	private String brandEnm;		//브랜드영문명
 	private String brandGrpNm;		//브랜드그룹명
+	private String supplyVendorCd;	//벤더코드
 
 	private String goodsDesc;
 	private String goodsPcTopDesc;
@@ -150,9 +151,6 @@ public class Goods extends TscBaseDomain {
 	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	private String[] dispYn; // 전시여부
 
-
 	private String notiList; // 고시항목
 
-
-
 }

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

@@ -1395,13 +1395,13 @@
 		]]>
 	</select>
 	
-	<!-- TB_IF_PRODUCTSKU_TEMP 삭제 -->
+	<!-- TB_IF_PRODUCTSKU 삭제 -->
 	<delete id="deleteIfProductSku"  timeout="300">
 		/* TsbGoods.deleteIfProductSku */
 		DELETE FROM TB_IF_PRODUCTSKU
 	</delete>
 	
-	<!-- TB_IF_PRODUCTSKU_TEMP 저장 -->
+	<!-- TB_IF_PRODUCTSKU 저장 -->
 	<insert id="createIfProductSku"  parameterType="java.util.HashMap" >
 		/* TsbGoods.createIfProductSku */
 		INSERT INTO TB_IF_PRODUCTSKU(
@@ -1446,7 +1446,7 @@
 		
 	</insert>
 	
-	<!-- TB_IF_PRODUCTSKU_TEMP 저장 -->
+	<!-- TB_IF_PRODUCTSKU 저장 -->
 	<insert id="createIfProductSkuByRow"  parameterType="IfProduct">
 		/* TsbGoods.createIfProductSkuByRow */
 		INSERT INTO TB_IF_PRODUCTSKU(
@@ -1961,4 +1961,64 @@
 		                  )
 	</insert>
 	
+	<!-- 입고상품중 온라인 옵션이 없는 상품옵션 추가  -->
+	<insert id="createGoodsOptionList"  timeout="300">
+		/* TsbGoods.createGoodsOptionList */
+		INSERT INTO TB_OPTION(
+		       GOODS_CD
+		     , OPT_CD
+		     , OPT_CD1
+		     , OPT_CD2
+		     , BASE_STOCK_QTY
+		     , CURR_STOCK_QTY
+		     , ADD_PRICE
+		     , SOLDOUT_YN
+		     , DISP_ORD
+		     , DISP_YN
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		SELECT E.GOODS_CD
+		     , E.SKUCODE AS OPT_CD
+		     , F.COLOR_CD AS OPT_CD1
+		     , E.OPTION2 AS OPT_CD2
+		     , 0 AS BASE_STOCK_QTY
+		     , E.NORMALQTY AS CURR_STOCK_QTY
+		     , 0 AS ADD_PRICE
+		     , 'N' AS SOLDOUT_YN
+		     , NVL((SELECT (MAX(DISP_ORD) + 1)
+			        FROM TB_OPTION WHERE GOODS_CD = E.GOODS_CD) , ROW_NUMBER() OVER(PARTITION BY GOODS_CD ORDER BY OPT_CD)) AS DISP_ORD
+		     , 'Y' AS DISP_YN
+		     , 0 AS REG_NO
+		     , NOW() AS REG_DT
+		     , 0 AS UPD_NO
+		     , NOW() AS UPD_DT
+		FROM (
+		      SELECT A.SKUCODE
+		           , A.NORMALQTY
+		           , LEFT(REPLACE(B.SKUMODELNO,'-',''),12) AS SKUMODELNO 
+		           , RIGHT(LEFT(REPLACE(B.SKUMODELNO,'-',''),12),2) AS WMS_COLOR_CD
+		           , B.PRODUCTNO 
+		           , B.PRODUCTCODE 
+		           , B.OPTION1 
+		           , B.OPTION2 
+		           , C.SUPPLY_COMP_CD 
+		           , C.BRAND_CD 
+		           , C.GOODS_CD
+		      FROM TB_IF_INCOMELOTITEM A  -- 입고상품
+		      INNER JOIN TB_IF_PRODUCTSKU B ON A.SKUCODE = B.SKUCODE -- wms 상품코드확인
+		      INNER JOIN TB_GOODS C ON A.PRODUCTCODE = C.PRODUCT_CODE -- 온라인 상품등록 확인
+		      LEFT OUTER JOIN TB_OPTION D ON C.GOODS_CD = D.GOODS_CD  -- 온라인 상품 옵션 미등록건 추출
+		                                  AND A.PRODUCTCODE = D.PRODUCT_CODE 
+		                                  AND A.SKUCODE = D.OPT_CD
+		                                  AND D.OPT_CD IS NULL
+		      ) E
+		      INNER JOIN TB_WMS_COLOR_MAPPING F ON (CASE WHEN E.BRAND_CD = 'S006' THEN E.BRAND_CD
+		                                                 ELSE E.SUPPLY_COMP_CD 
+		                                                 END) = F.SUPPLY_COMP_CD
+		                                        AND F.USE_YN ='Y'       
+	</insert>
+	
 </mapper>