Przeglądaj źródła

단품만 추가입고 개발건 1차

jmh 4 lat temu
rodzic
commit
e6c547ebaa

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

@@ -738,12 +738,5 @@ public interface TsbGoodsDao {
 	 * @since 2021. 09. 27
 	 */
 	void saveGoodsIfProductsku(GoodsIfProductsku goodsIfProductsku);
-
-	/**
-	 * 입고상품중 온라인 옵션이 없는 상품옵션 추가
-	 *
-	 * @author eskim
-	 * @since 2021. 01. 18
-	 */
-	void createGoodsOptionList_TEST();
+	
 }

+ 5 - 7
src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsProductskuJob.java

@@ -36,8 +36,6 @@ public class TsbGoodsWmsProductskuJob extends TsbAbstractJob<Collection<GoodsIfP
 	@Autowired
 	private TsbCommonService commonService;
 
-	private int succCnt = 0;
-	private int failCnt = 0;
 	private String jobdate = "";
 
 	@Override
@@ -52,7 +50,7 @@ public class TsbGoodsWmsProductskuJob extends TsbAbstractJob<Collection<GoodsIfP
 		// wms 입고상품목록 조회 (등록, 수정건 조회)
 		jobdate = GagaDateUtil.getOffsetDate(-1);	//전일자
 		Collection<GoodsIfProductsku> wmsIfProductSukList = wmsGoodsService.getWmsProductskuList(jobdate);
-		System.out.println("HMJ :: "+wmsIfProductSukList.size());
+		
 		return wmsIfProductSukList;
 	}
 
@@ -63,14 +61,14 @@ public class TsbGoodsWmsProductskuJob extends TsbAbstractJob<Collection<GoodsIfP
 
 	@Override
 	public String write(Collection<GoodsIfProductsku> wmsIfProductSukList) throws Exception {
-		/*
+		
 		if( null != wmsIfProductSukList && !wmsIfProductSukList.isEmpty()) {
 			// 1. 입고상품 IF 테이블에 저장
 			List<GoodsIfProductsku> productSukList = new ArrayList<GoodsIfProductsku>();
 			GagaMap dataMap = new GagaMap();
 			int index = 0;
 			for (GoodsIfProductsku ifProductSku : wmsIfProductSukList) {
-	
+				
 				productSukList.add(ifProductSku);
 				index++;
 				if (index % 20 == 0 || wmsIfProductSukList.size() == index) {
@@ -81,9 +79,9 @@ public class TsbGoodsWmsProductskuJob extends TsbAbstractJob<Collection<GoodsIfP
 			}
 			
 			// 2. 기존 등록된 상품중, 단품만 추가된 상품 저장
-			goodsService.createGoodsOptionList(jobdate);
+			// goodsService.createGoodsOptionList_new(jobdate);
 		}
-		*/
+		
 		return "OK";
 	}
 

+ 0 - 10
src/main/java/com/style24/batch/biz/service/TsbGoodsService.java

@@ -912,14 +912,4 @@ public class TsbGoodsService {
 		goodsDao.createIfProductSku(dataMap);
 	}
 	
-	/**
-	 * 입고상품중 온라인 옵션이 없는 상품옵션 추가
-	 *
-	 * @author jmh
-	 * @since 2021. 09. 14
-	 */
-	@Transactional("shopTxnManager")
-	public void createGoodsOptionList_TEST() {
-		goodsDao.createGoodsOptionList_TEST();
-	}
 }

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

@@ -1687,7 +1687,9 @@
 		     , NOW()
 		)
 		</foreach>
-
+		ON DUPLICATE KEY UPDATE
+			UPD_DT = NOW()
+		
 	</insert>
 
 	<!-- TB_IF_PRODUCTSKU 저장 -->
@@ -2523,28 +2525,28 @@
 		)
 		SELECT 
 			Z.MODELNO
-			, Z.SKUCODE
-			, Z.OPTION1
-			, Z.OPTION2
-			, Z.SKUMODELNO
-			, Z.PRODUCTNO
-			, Z.PRODUCTCODE
-			, 0
-			, 0
-			, 0
-			, 0
-			, 0 	/*추가금액*/
-			, 'N' 	/*SOLDOUT_YN*/
+			, Z.SKUCODE AS OPT_CD
+			, F.COLOR_CD AS OPT_CD1
+			, Z.OPTION2 AS OPT_CD2
+			, Z.SKUMODELNO AS  SKU_MODEL_NO
+			, Z.PRODUCTNO AS PRODUCT_NO
+			, Z.PRODUCTCODE AS PRODUCT_CODE
+			, 0 AS BASE_STOCK_QTY
+			, 0 AS CURR_STOCK_QTY
+			, 0 AS STORE_STOCK_QTY
+			, 0 AS STORE_MAX_QTY
+			, 0 AS ADD_PRICE
+			, 'N' AS SOLDOUT_YN
 			, ROW_NUMBER() OVER (PARTITION BY Z.MODELNO ORDER BY PRODUCTNO, SKUCODE ) 
 				+ (select MAX(DISP_ORD) from TB_OPTION where GOODS_CD = Z.MODELNO) AS DISP_ORD /*DISP_ORD*/
-			, 'Y'	/*DISP_YN*/
-			, 99999
-			, NOW()
-			, 99999
-			, NOW()
+			, 'Y' AS DISP_YN
+			, 99999 AS REG_NO
+		    , NOW() AS REG_DT
+		    , 99999 AS UPD_NO
+		    , NOW() AS UPD_DT
 		FROM (
 		      SELECT 
-		        B.PRODUCTNO
+				B.PRODUCTNO
 			   , B.PRODUCTCODE
 			   , B.SKUCODE
 			   , B.SKUMODELNO
@@ -2554,34 +2556,25 @@
 				      ELSE LEFT(REPLACE(B.SKUMODELNO, ' ' , ''),10) END) AS MODELNO
 			   , IFP.OPTION1
 			   , IFP.OPTION2
+			   , MAX(CASE WHEN INSTR(REPLACE(B.SKUMODELNO, ' ' , ''), 'F20') = 1 THEN SUBSTRING(REPLACE(B.SKUMODELNO, ' ' , ''),13,2)
+				      WHEN INSTR(REPLACE(B.SKUMODELNO, ' ' , ''), '-') > 0 AND INSTR(REPLACE(B.SKUMODELNO, ' ' , ''), '-') <![CDATA[<]]> 10 THEN SUBSTRING(REPLACE(B.SKUMODELNO, ' ' , ''),12,2)
+				      ELSE SUBSTRING(REPLACE(B.SKUMODELNO, ' ' , ''),11,2) END) AS WMS_COLOR_CD
+				
 		      FROM TB_IF_INCOMELOT  A
 		      INNER JOIN TB_IF_INCOMELOTITEM B ON A.LOTNO = B.LOTNO
-		      INNER JOIN ISTYLE24_WMSIF.DBO.TB_IF_PRODUCTSKU IFP ON B.SKUCODE = IFP.SKUCODE
+		      INNER JOIN TB_IF_PRODUCTSKU IFP ON B.SKUCODE = IFP.SKUCODE
 		      WHERE 1 = 1
 		      AND LENGTH(REPLACE(B.SKUMODELNO, ' ' , '')) >= 13                       -- 품번+색상+사이즈 최소길이
-		      <choose>
-			      <when test='jobdate != null and jobdate != ""'>
-				      AND DATEINCOME >= DATE_FORMAT(#{jobdate}, '%Y-%m-%d %H:%i:%S')
-				      <![CDATA[
-				      AND DATEINCOME < DATE_FORMAT(DATE_ADD(#{jobdate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
-				      ]]>
-			      </when>
-			      <otherwise>
-				      AND DATEINCOME >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY),'%Y%m%d' ), '%Y-%m-%d %H:%i:%S')
-				      <![CDATA[
-				      AND DATEINCOME < DATE_FORMAT(DATE_FORMAT(NOW() ,'%Y%m%d'), '%Y-%m-%d %H:%i:%S')
-				      ]]>
-			      </otherwise>
-		      </choose>
+		      AND DATE(B.DATEINCOME) = #{jobdate}
 		      GROUP BY B.PRODUCTNO , B.PRODUCTCODE, B.SKUCODE, B.SKUMODELNO, IFP.OPTION1, IFP.OPTION2
 		      ORDER BY 6, B.PRODUCTNO , B.PRODUCTCODE, B.SKUCODE
 		) Z
+		INNER JOIN TB_GOODS C ON Z.MODELNO = C.GOODS_CD                        -- 온라인 상품등록 확인
+		INNER JOIN TB_WMS_COLOR_MAPPING F ON C.SUPPLY_COMP_CD = F.SUPPLY_COMP_CD  AND F.USE_YN ='Y' and F.WMS_COLOR_CD = Z.WMS_COLOR_CD
 		WHERE 1=1
 		AND EXISTS (SELECT 1 FROM TB_GOODS WHERE GOODS_CD = Z.MODELNO)  	/* 마이그된 상품이 있는경우*/
-		AND NOT EXISTS (SELECT 1 FROM TB_OPTION WHERE OPT_CD = Z.SKUCODE )  /* 마이그된 상품이 없는경우 */
+		AND NOT EXISTS (SELECT 1 FROM TB_OPTION WHERE OPT_CD = Z.SKUCODE )
 		
-		ON DUPLICATE KEY UPDATE
-            UPD_DT = NOW()
 	</insert>
 	
 	
@@ -3332,77 +3325,4 @@
 		FROM   VW_STOCK_TMP
 	</insert>
 
-	<!-- 입고상품중 온라인 옵션이 없는 상품옵션 추가 테스트용 (기존 누적된 데이터 테스트하며 확인하기 위함용) -->
-	<insert id="createGoodsOptionList_TEST" timeout="300">
-		/* TsbGoods.createGoodsOptionList_TEST */
-		INSERT INTO TB_OPTION(
-		       GOODS_CD
-		     , OPT_CD
-		     , OPT_CD1
-		     , OPT_CD2
-		     , SKU_MODEL_NO
-		     , PRODUCT_NO
-		     , PRODUCT_CODE
-		     , BASE_STOCK_QTY
-		     , CURR_STOCK_QTY
-		     , STORE_STOCK_QTY
-		     , STORE_MAX_QTY
-		     , ADD_PRICE
-		     , SOLDOUT_YN
-		     , DISP_ORD
-		     , DISP_YN
-		     , REG_NO
-		     , REG_DT
-		     , UPD_NO
-		     , UPD_DT
-		)
-		SELECT 
-			Z.MODELNO
-			, Z.SKUCODE
-			, Z.OPTION1
-			, Z.OPTION2
-			, Z.SKUMODELNO
-			, Z.PRODUCTNO
-			, Z.PRODUCTCODE
-			, 0
-			, 0
-			, 0
-			, 0
-			, 0 	/*추가금액*/
-			, 'N' 	/*SOLDOUT_YN*/
-			, ROW_NUMBER() OVER (PARTITION BY Z.MODELNO ORDER BY PRODUCTNO, SKUCODE ) 
-				+ (select MAX(DISP_ORD) from TB_OPTION where GOODS_CD = Z.MODELNO) AS DISP_ORD /*DISP_ORD*/
-			, 'Y'	/*DISP_YN*/
-			, 99999
-			, NOW()
-			, 99999
-			, NOW()
-		FROM (
-		      SELECT 
-		        B.PRODUCTNO
-			   , B.PRODUCTCODE
-			   , B.SKUCODE
-			   , B.SKUMODELNO
-			   , MAX(B.PRODUCTNAME) AS PRODUCTNAME
-			   , MAX(CASE WHEN INSTR(REPLACE(B.SKUMODELNO, ' ' , ''), 'F20') = 1 THEN LEFT(REPLACE(B.SKUMODELNO, ' ' , ''),12)
-				      WHEN INSTR(REPLACE(B.SKUMODELNO, ' ' , ''), '-') > 0 AND INSTR(REPLACE(B.SKUMODELNO, ' ' , ''), '-') <![CDATA[<]]> 10 THEN LEFT(REPLACE(B.SKUMODELNO, ' ' , ''),11)
-				      ELSE LEFT(REPLACE(B.SKUMODELNO, ' ' , ''),10) END) AS MODELNO
-			   , IFP.OPTION1
-			   , IFP.OPTION2
-		      FROM TB_IF_INCOMELOT  A
-		      INNER JOIN TB_IF_INCOMELOTITEM B ON A.LOTNO = B.LOTNO
-		      INNER JOIN ISTYLE24_WMSIF.DBO.TB_IF_PRODUCTSKU IFP ON B.SKUCODE = IFP.SKUCODE
-		      WHERE 1 = 1
-		      AND LENGTH(REPLACE(B.SKUMODELNO, ' ' , '')) >= 13                       -- 품번+색상+사이즈 최소길이
-		      AND DATE(B.UPD_DT) = '2021-07-07'
-		      GROUP BY B.PRODUCTNO , B.PRODUCTCODE, B.SKUCODE, B.SKUMODELNO, IFP.OPTION1, IFP.OPTION2
-		      ORDER BY 6, B.PRODUCTNO , B.PRODUCTCODE, B.SKUCODE
-		) Z
-		WHERE 1=1
-		AND EXISTS (SELECT 1 FROM TB_GOODS WHERE GOODS_CD = Z.MODELNO)  	/* 마이그된 상품이 있는경우*/
-		AND NOT EXISTS (SELECT 1 FROM TB_OPTION WHERE OPT_CD = Z.SKUCODE )  /* 마이그된 상품이 없는경우 */
-		
-		ON DUPLICATE KEY UPDATE
-            UPD_DT = NOW()
-	</insert>
 </mapper>