Selaa lähdekoodia

상품재고 관련

eskim 5 vuotta sitten
vanhempi
commit
10c45c63dd

+ 13 - 1
style24.batch/src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java

@@ -16,6 +16,8 @@ import com.style24.persistence.domain.IfProductSku;
 import com.style24.persistence.domain.IfProvider;
 import com.style24.persistence.domain.Option;
 
+import com.gagaframework.web.parameter.GagaMap;
+
 /**
  * 상품 Dao
  *
@@ -317,7 +319,17 @@ public interface TsbGoodsDao {
 	 * @author eskim
 	 * @since 2021. 01. 06
 	 */
-	void createIfProductSku(IfProductSku ifProductSku);
+	//void createIfProductSku(IfProductSku ifProductSku);
+	void createIfProductSku(GagaMap dataMap);
+
+	/**
+	 * TB_IF_PRODUCTSKU_TEMP 저장
+	 *
+	 * @author eskim
+	 * @since 2021. 01. 06
+	 */
+	void createIfProductSkuByRow(IfProductSku ifProductSku);
+
 
 	/**
 	 * TB_IF_PRODUCTSKU_HST 삭제

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

@@ -57,13 +57,13 @@ public class TsbGoodsWmsProductStockJob extends TsbAbstractJob<IfProductSku, IfP
 			return null;
 		}else {
 			//wms상품재고이력 생성
-			//goodsService.createWmsProductSkuHst(jobdate);
+			goodsService.createWmsProductSkuHst(jobdate);
 			//온라인 상품 재고 적용
-			goodsService.saveGoodsStock();
+			//goodsService.saveGoodsStock();
 		}
 
 		//온라인 전시 재고 작업
-		goodsService.saveGoodsDispStock();
+		//goodsService.saveGoodsDispStock();
 
 		return ifProductSku;
 	}

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

@@ -1,7 +1,9 @@
 package com.style24.batch.biz.service;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -29,7 +31,6 @@ import io.netty.util.internal.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 
 import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.util.GagaDateUtil;
 
 /**
  * 상품 Service
@@ -459,17 +460,38 @@ public class TsbGoodsService {
 
 		// TB_IF_PRODUCTSKU_TEMP 작업
 		goodsDao.deleteIfProductSku();
+
 		// TB_IF_PRODUCTSKU_TEMP 생성
 		Collection<IfProductSku> wmsIfProductSukList = wmsGoodsService.getWmsIfProductSukList();
-		for(IfProductSku ifProductSku : wmsIfProductSukList) {
-			goodsDao.createIfProductSku(ifProductSku);
+		String byrow = "Y";
+		if ("Y".equals(byrow)) {
+			for(IfProductSku ifProductSku : wmsIfProductSukList) {
+				goodsDao.createIfProductSkuByRow(ifProductSku);
+			}
+		}else {
+
+			List<IfProductSku> productSukList = new ArrayList<IfProductSku>();
+
+			GagaMap dataMap = new GagaMap();
+			int index = 0;
+			for(IfProductSku ifProductSku : wmsIfProductSukList) {
+
+				productSukList.add(ifProductSku);
+				index++;
+				if (index % 200 == 0 ||  wmsIfProductSukList.size() == index) {
+					dataMap.set("productSukList", productSukList);
+					goodsDao.createIfProductSku(dataMap);
+					productSukList.clear();
+				}
+			}
+
 		}
 
-		// 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);
 
 	}
 

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

@@ -229,7 +229,7 @@ public class TsbGoodsTask {
 	 * @throws Exception
 	 */
 	@Scheduled(cron = "${cron.goods.wms.product.stock}")
-	@Scheduled(fixedDelay = 3500000)
+	//@Scheduled(fixedDelay = 3500000)
 	@Async
 	public void tsbGoodsWmsProductStockJob() throws Exception {
 		goodsWmsProductStockJob.runById("cron.goods.wms.product.stock");

+ 61 - 16
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -1338,7 +1338,7 @@
 	</delete>
 	
 	<!-- TB_IF_PRODUCTSKU_TEMP 저장 -->
-	<insert id="createIfProductSku"  parameterType="IfProduct">
+	<insert id="createIfProductSku"  parameterType="java.util.HashMap">
 		/* TsbGoods.createIfProductSku */
 		INSERT INTO TB_IF_PRODUCTSKU(
 		       SKUCODE
@@ -1358,6 +1358,51 @@
 		     , SKUCODE88
 		     , UPD_DT
 		)
+		VALUES
+		<foreach collection="productSukList" item="item" index="index"  separator=",">
+		(
+		       #{item.skucode}
+		     , #{item.skumodelno}
+		     , #{item.productno}
+		     , #{item.productcode}
+		     , #{item.option1}
+		     , #{item.option2}
+		     , #{item.option3}
+		     , #{item.sellingstockamount}
+		     , #{item.sellingstocktypecd}
+		     , #{item.limitstockamount}
+		     , #{item.vendorskumodelno}
+		     , #{item.vendorskucode}
+		     , #{item.isvirtualstock}
+		     , #{item.datevirtualstock}
+		     , #{item.skucode88}
+		     , NOW()
+		)
+		</foreach>
+		
+	</insert>
+	
+	<!-- TB_IF_PRODUCTSKU_TEMP 저장 -->
+	<insert id="createIfProductSkuByRow"  parameterType="IfProduct">
+		/* TsbGoods.createIfProductSkuByRow */
+		INSERT INTO TB_IF_PRODUCTSKU(
+		       SKUCODE
+		     , SKUMODELNO
+		     , PRODUCTNO
+		     , PRODUCTCODE
+		     , OPTION1
+		     , OPTION2
+		     , OPTION3
+		     , SELLINGSTOCKAMOUNT
+		     , SELLINGSTOCKTYPECD
+		     , LIMITSTOCKAMOUNT
+		     , VENDORSKUMODELNO
+		     , VENDORSKUCODE
+		     , ISVIRTUALSTOCK
+		     , DATEVIRTUALSTOCK
+		     , SKUCODE88
+		     , UPD_DT
+		)
 		VALUES(
 		       #{skucode}
 		     , #{skumodelno}
@@ -1472,13 +1517,13 @@
 	</insert>
 	
 	<!-- ERP 재고 임시 테이블 삭제 -->
-	<delete id="deleteTbOptionSyncTemp">
+	<delete id="deleteTbOptionSyncTemp"   timeout="300">
 		/* TsbGoods.deleteTbOptionSyncTemp */
 		TRUNCATE TABLE TB_OPTION_SYNC_TEMP
 	</delete>
 
 	<!--ERP 재고 임시 테이블 이관  -->
-	<insert id="createTbOptionSyncTemp">
+	<insert id="createTbOptionSyncTemp"   timeout="300">
 		/* TsbGoods.createTbOptionSyncTemp */
 		INSERT INTO TB_OPTION_SYNC_TEMP
 		(
@@ -1562,7 +1607,7 @@
 	</insert>
 	
 	<!-- 입점상품 SELL_QTY 목록 조회 -->
-	<select id="getGoodsSelfNoStockList" resultType="Option">
+	<select id="getGoodsSelfNoStockList" resultType="Option"   timeout="300">
 		/* TsbGoods.getGoodsSelfNoStockList */
 		SELECT A.GOODS_CD
 		     , A.OPT_CD
@@ -1579,7 +1624,7 @@
 	</select>
 	
 	<!-- 상품 옵션/재고 정보 이력생성 -->
-	<insert id="createStockHst" parameterType="Option">
+	<insert id="createStockHst" parameterType="Option"   timeout="300">
 		/* TsaGoods.createStockHst */
 		INSERT INTO TB_OPTION_HST 
 		(     OPTION_HST_SQ
@@ -1625,7 +1670,7 @@
 	</insert>
 	
 	<!-- 상품 재고 정보 저장 -->
-	<update id="updateStock" parameterType="Option">
+	<update id="updateStock" parameterType="Option"  timeout="300">
 		/* TsbGoods.updateStock */
 		UPDATE TB_STOCK
 		SET CURR_ON_STOCK_QTY = GREATEST(CURR_ON_STOCK_QTY - #{saleStockQty},0)
@@ -1636,13 +1681,13 @@
 	</update>
 	
 	<!-- WMS 재고 임시 테이블 삭제 -->
-	<delete id="deleteGoodsOptionSync">
+	<delete id="deleteGoodsOptionSync"  timeout="300">
 		/* TsbGoods.deleteGoodsOptionSync */
 		TRUNCATE TABLE TB_OPTION_SYNC
 	</delete>
 	
 	<!--TB_OPTION = > TB_OPTION_SYNC 적용 -->
-	<insert id="createGoodsOptionSync">
+	<insert id="createGoodsOptionSync"  timeout="300">
 		/* TsbGoods.createGoodsOptionSync */
 		INSERT INTO TB_OPTION_SYNC
 		(
@@ -1688,7 +1733,7 @@
 	</insert>
 	
 	<!-- TB_OPTION_SYNC_TEMP => TB_OPTION_SYNC 변경적용-->
-	<insert id="saveGoodsOptionSyncSync">
+	<insert id="saveGoodsOptionSyncSync"  timeout="300">
 		/* TsbGoods.saveGoodsOptionSyncSync */
 		UPDATE TB_OPTION_SYNC A, (SELECT GOODS_CD
 		                               , OPT_CD
@@ -1708,7 +1753,7 @@
 	</insert>
 	
 	<!-- WMS 임시 테이블에서 실테이블로 변경 -->
-	<insert id="saveGoodsOptionNew">
+	<insert id="saveGoodsOptionNew"  timeout="300">
 		/* TsbGoods.saveGoodsOptionNew */
 		UPDATE TB_OPTION A, (SELECT GOODS_CD
 		                          , OPT_CD
@@ -1728,13 +1773,13 @@
 	</insert>
 		
 	<!-- TB_SELL_QTY_TEMP 테이블 삭제 -->
-	<delete id="deleteTtbSellQtyTemp">
+	<delete id="deleteTtbSellQtyTemp"  timeout="300">
 		/* TsbGoods.deleteTtbSellQtyTemp */
 		TRUNCATE TABLE TB_SELL_QTY_TEMP
 	</delete>
 	
 	<!-- TB_SELL_QTY_TEMP 테이블 삭제 -->
-	<insert id="createTtbSellQtyTemp">
+	<insert id="createTtbSellQtyTemp"  timeout="300">
 		/* TsbGoods.createTtbSellQtyTemp */
 		INSERT INTO TB_SELL_QTY_TEMP (
 		      GOODS_CD
@@ -1762,13 +1807,13 @@
 	</insert>
 
 	<!-- 주문적재 테이블 삭제 -->
-	<delete id="deleteSellQty">
+	<delete id="deleteSellQty"  timeout="300">
 		/* TsbGoods.deleteSellQty */
 		DELETE FROM TB_SELL_QTY
 	</delete>
 	
 	<!-- TB_SELL_QTY 테이블 생성 -->
-	<insert id="createTtbSellQty">
+	<insert id="createTtbSellQty"  timeout="300">
 		/* TsbGoods.createTtbSellQty */
 		INSERT INTO TB_SELL_QTY (
 		      GOODS_CD
@@ -1806,11 +1851,10 @@
 	</insert>
 	
 	<!-- TB_SELL_QTY 테이블 생성 -->
-	<insert id="createTtbSellQtyByOrderDetail">
+	<insert id="createTtbSellQtyByOrderDetail"  timeout="300">
 		/* TsbGoods.createTtbSellQtyByOrderDetail */
 		INSERT INTO TB_SELL_QTY (
 		      GOODS_CD
-		    , OPT_CD
 		    , SELL_GB
 		    , ORD_DTL_NO
 		    , AGENT_ORDER_ID
@@ -1851,4 +1895,5 @@
 		                  AND Y.ORD_DTL_NO = A.ORD_DTL_NO
 		                  )
 	</insert>
+	
 </mapper>

+ 1 - 1
style24.batch/src/main/java/com/style24/persistence/mybatis/wms/TsbWmsGoods.xml

@@ -216,7 +216,7 @@
 	<!-- WMS 재고 테이블 조회   -->
 	<select id="getWmsIfProductSukList"  resultType="IfProductSku">
 		/* TsbWmsGoods.getWmsIfProductSukList */
-		SELECT SKUCODE
+		SELECT  top 10000 SKUCODE
 		     , SKUMODELNO
 		     , PRODUCTNO
 		     , PRODUCTCODE