Browse Source

자사 상품 등록 로직 수정

eskim 5 years ago
parent
commit
6801d5547d

+ 27 - 0
src/main/java/com/style24/persistence/domain/IfProductSku.java

@@ -0,0 +1,27 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * wms 연동 상품옵션정보 Domain
+ *
+ * @author eskim
+ * @since 2021. 01. 06
+ */
+@SuppressWarnings("serial")
+@Data
+public class IfProductSku extends TscBaseDomain {
+
+	private String goodsCd;			//상품코드
+	private String skucode;			//옵션코드
+	private String skumodelno;		//옵션모델번호
+	private int productno;			//상품번호
+	private String productcode;		//상품코드
+	private String option1;			//옵션1(색상)
+	private String option2;			//옵션2(사이즈)
+	private int WmsStockQty;		//재고
+	private String wmsColorCd;		//WMS 색상코드
+
+}

+ 25 - 2
src/main/java/com/style24/persistence/mybatis/shop/TssGoods.xml

@@ -2266,8 +2266,8 @@
 	</insert>
 	
 	<!-- wms 상품 색상 , 사이즈별 재고 정보 조회 -->
-	<select id="getGoodsWmsSizeList" parameterType="Goods"  resultType = "Option">
-		/* TssGoods.getGoodsWmsSizeList */
+	<select id="getGoodsWmsSizeList_org" parameterType="Goods"  resultType = "Option">
+		/* TssGoods.getGoodsWmsSizeList_org */
 		SELECT Z.GOODS_CD
 		     , Z.OPT_CD
 		     , F.COLOR_CD AS OPT_CD1
@@ -2314,6 +2314,29 @@
 		                                  AND F.USE_YN ='Y' 
 		GROUP BY Z.GOODS_CD, Z.OPT_CD, F.COLOR_CD, Z.OPT_CD2, Z.SKU_MODEL_NO, Z.PRODUCT_NO, Z.PRODUCT_CODE
 	</select>
+
+
+	<!-- wms 상품 색상, 재고판매율 적용 조회 -->
+	<select id="getWmsColorStock" parameterType="IfProductSku"  resultType = "Option">
+		/* TssGoods.getGoodsWmsSizeList */
+		SELECT B.GOODS_CD
+		     , F.COLOR_CD AS OPT_CD1
+		     , ROUND(GREATEST(#{WmsStockQty}, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
+		FROM TB_GOODS B 
+		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 매장코드
+		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 매장코드
+		INNER JOIN TB_WMS_COLOR_MAPPING F ON B.SUPPLY_COMP_CD = F.SUPPLY_COMP_CD
+		                                  AND #{wmsColorCd} = F.WMS_COLOR_CD
+		                                  AND F.USE_YN ='Y' 
+		WHERE B.SELF_GOODS_YN = 'Y'
+		AND B.GOODS_TYPE = 'G056_N'
+		AND B.GOODS_CD = #{goodsCd}
+	</select>
 	
 	<!-- 상품등록로그 목록 조회 -->
 	<select id="getGoodsRegLogList" parameterType="GoodsSearch" resultType="GoodsMass">

+ 36 - 46
src/main/java/com/style24/persistence/mybatis/wms/TssWmsGoods.xml

@@ -3,53 +3,43 @@
 <mapper namespace="com.style24.scm.biz.dao.TssWmsGoodsDao">
 
 	<!-- wms 상품 색상 , 사이즈별 재고 정보 조회 -->
-	<select id="getGoodsWmsSizeList" parameterType="Goods"  resultType = "Option">
-		/* TssGoods.getGoodsWmsSizeList */
-		SELECT Z.GOODS_CD
-		     , Z.OPT_CD
-		     , F.COLOR_CD AS OPT_CD1
-		     , Z.OPT_CD2
-		     , Z.SKU_MODEL_NO
-		     , Z.PRODUCT_NO
-		     , Z.PRODUCT_CODE
-		     , SUM(Z.CURR_STOCK_QTY) AS CURR_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
+	<select id="getGoodsWmsSizeList" parameterType="String"  resultType = "IfProductSku">
+		/* TssWmsGoods.getGoodsWmsSizeList */
+		SELECT GOODS_CD
+		     , SKUCODE
+		     , SKUMODELNO
+		     , OPTION1
+		     , OPTION2
+		     , PRODUCTNO
+		     , PRODUCTCODE
+		     , WMS_COLOR_CD
+		     , (LOC_QTY- PICKING_QTY - EOUT_PICKING_QTY) AS WMS_STOCK_QTY
 		FROM (
-		SELECT B.GOODS_CD
-		    , A.SKUCODE AS OPT_CD
-		    -- , MAX(A.OPTION1) AS OPT_CD1
-		    , MAX(A.OPTION2) AS OPT_CD2
-		    , MAX(A.SKUMODELNO) AS SKU_MODEL_NO
-		    , MAX(A.PRODUCTNO) AS PRODUCT_NO
-		    , MAX(A.PRODUCTCODE) AS PRODUCT_CODE
-		    , ROUND(GREATEST(A.SELLINGSTOCKAMOUNT, 0) * (IFNULL(D.STOCK_APPL_RATE, 0)/100)) AS CURR_STOCK_QTY
-		    , D.DELV_LOC_CD
-		    , D.STOCK_APPL_RATE
-		    , MAX(B.SUPPLY_COMP_CD) AS SUPPLY_COMP_CD
-		    , MAX(B.BRAND_CD) AS BRAND_CD
-		    , MAX(CASE WHEN INSTR(REPLACE(A.SKUMODELNO, ' ' , ''), 'F20') = 1 THEN MID(REPLACE(A.SKUMODELNO, ' ' , ''),13,2)
-		               WHEN INSTR(REPLACE(A.SKUMODELNO, ' ' , ''), '-') > 0 THEN MID(REPLACE(A.SKUMODELNO, ' ' , ''),12,2)
-		               ELSE MID(REPLACE(A.SKUMODELNO, ' ' , ''),11,2) END) AS WMS_COLOR_CD
-		FROM TB_IF_PRODUCTSKU A 
-		INNER JOIN TB_GOODS B ON B.SELF_GOODS_YN = 'Y'
-		                      AND B.GOODS_TYPE = 'G056_N'
-		                      AND B.GOODS_CD = #{goodsCd}
-		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
-		                             AND C.DELV_LOC_CD = D.DELV_LOC_CD
-		                             AND D.USE_YN = 'Y'
-		WHERE 1 = 1
-		AND (CASE WHEN INSTR(REPLACE(A.SKUMODELNO, ' ' , ''), 'F20') = 1 THEN LEFT(REPLACE(A.SKUMODELNO, ' ' , ''),12)
-		          WHEN INSTR(REPLACE(A.SKUMODELNO, ' ' , ''), '-') > 0 THEN LEFT(REPLACE(A.SKUMODELNO, ' ' , ''),11)
-		          ELSE LEFT(REPLACE(A.SKUMODELNO, ' ' , ''),10) END) = #{goodsCd}
-		GROUP BY B.GOODS_CD, A.SKUCODE, D.DELV_LOC_CD, D.STOCK_APPL_RATE
-		) Z
-		INNER JOIN TB_WMS_COLOR_MAPPING F ON Z.SUPPLY_COMP_CD = F.SUPPLY_COMP_CD
-		                                  AND Z.WMS_COLOR_CD = F.WMS_COLOR_CD
-		                                  AND F.USE_YN ='Y' 
-		GROUP BY Z.GOODS_CD, Z.OPT_CD, F.COLOR_CD, Z.OPT_CD2, Z.SKU_MODEL_NO, Z.PRODUCT_NO, Z.PRODUCT_CODE
+		      SELECT #{goodsCd} AS GOODS_CD
+		           , A.SKUCODE
+		           , A.SKUMODELNO
+		           , A.OPTION1
+		           , A.OPTION2
+		           , A.PRODUCTNO
+		           , A.PRODUCTCODE
+		           , SUM(B.LOC_QTY)          AS LOC_QTY
+		           , SUM(B.PICKING_QTY)      AS PICKING_QTY
+		           , SUM(B.EOUT_PICKING_QTY) AS EOUT_PICKING_QTY
+		           , MAX(CASE WHEN CHARINDEX('F20', REPLACE(A.SKUMODELNO, ' ', '')) = 1 THEN SUBSTRING(REPLACE(A.SKUMODELNO, ' ' , ''),13,2)
+		                      WHEN CHARINDEX('-', REPLACE(A.SKUMODELNO, ' ', '')) > 0 THEN SUBSTRING(REPLACE(A.SKUMODELNO, ' ' , ''),12,2)
+		                      ELSE SUBSTRING(REPLACE(A.SKUMODELNO, ' ' , ''),11,2) END) AS WMS_COLOR_CD
+		      FROM ISTYLE24_WMSIF.DBO.TB_IF_PRODUCTSKU A
+		               INNER JOIN ISTYLE24_WMS.DBO.VW_STOCK_BY_LOCCODE B ON A.SKUCODE = B.SKU_CODE
+		      WHERE 1 = 1
+		      AND (CASE
+		               WHEN CHARINDEX('F20', REPLACE(A.SKUMODELNO, ' ', '')) = 1
+		                   THEN LEFT(REPLACE(A.SKUMODELNO, ' ', ''), 12)
+		               WHEN CHARINDEX('-', REPLACE(A.SKUMODELNO, ' ', '')) > 0
+		                   THEN LEFT(REPLACE(A.SKUMODELNO, ' ', ''), 11)
+		               ELSE LEFT(REPLACE(A.SKUMODELNO, ' ', ''), 10) END) = #{goodsCd}
+		      GROUP BY A.SKUCODE, A.SKUMODELNO, A.OPTION1, A.OPTION2, A.PRODUCTNO, A.PRODUCTCODE
+		     ) Z
+		ORDER BY  PRODUCTNO, SKUCODE
 	</select>
 	
 	

+ 13 - 2
src/main/java/com/style24/scm/biz/dao/TssGoodsDao.java

@@ -16,6 +16,7 @@ import com.style24.persistence.domain.GoodsNotiInfo;
 import com.style24.persistence.domain.GoodsPriceRes;
 import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSearch;
+import com.style24.persistence.domain.IfProductSku;
 import com.style24.persistence.domain.Itemkind;
 import com.style24.persistence.domain.NotiInfo;
 import com.style24.persistence.domain.Notice;
@@ -641,7 +642,7 @@ public interface TssGoodsDao {
 	 * @since 2021. 05. 16
 	 */
 	int getGoodsOption1Count(Option option);
-	
+
 	/**
 	 * 구성상품 저장
 	 *
@@ -650,7 +651,7 @@ public interface TssGoodsDao {
 	 * @since 2021. 05. 26
 	 */
 	void saveGoodsCompose(GoodsCompose goodsCompose);
-	
+
 	/**
 	 * 구성상품 목록
 	 *
@@ -661,4 +662,14 @@ public interface TssGoodsDao {
 	 */
 	Collection<GoodsCompose> getGoodsDetailComposeList(Goods goods);
 
+	/**
+	 * wms 상품 색상, 재고판매율 적용 조회
+	 *
+	 * @param ifProductSku
+	 * @return
+	 * @author eskim
+	 * @since 2021. 05. 29
+	 */
+	Option getWmsColorStock(IfProductSku ifProductSku);
+
 }

+ 7 - 5
src/main/java/com/style24/scm/biz/dao/TssWmsGoodsDao.java

@@ -1,6 +1,9 @@
 package com.style24.scm.biz.dao;
 
+import java.util.Collection;
+
 import com.style24.core.support.annotation.WmsDs;
+import com.style24.persistence.domain.IfProductSku;
 
 /**
  * wms Dao
@@ -12,14 +15,13 @@ import com.style24.core.support.annotation.WmsDs;
 public interface TssWmsGoodsDao {
 
 	/**
-	 * 상품 사이즈별 재고 현황 목록 건수
+	 * wms 상품 색상 , 사이즈별 재고 정보 조회
 	 *
-	 * @param goodsSearch
+	 * @param goodsCd
 	 * @return
 	 * @author eskim
-	 * @since 2010. 11. 17
+	 * @since 2021. 05. 29
 	 */
-//	int getGoodsSizeStockCount(GoodsSearch goodsSearch);
+	Collection<IfProductSku> getGoodsWmsSizeList(String goodsCd);
 
-	
 }

+ 105 - 89
src/main/java/com/style24/scm/biz/service/TssGoodsService.java

@@ -30,6 +30,7 @@ import com.style24.persistence.domain.GoodsNotiInfo;
 import com.style24.persistence.domain.GoodsPriceRes;
 import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSearch;
+import com.style24.persistence.domain.IfProductSku;
 import com.style24.persistence.domain.Itemkind;
 import com.style24.persistence.domain.NotiInfo;
 import com.style24.persistence.domain.Notice;
@@ -86,8 +87,9 @@ public class TssGoodsService {
 
 	@Autowired
 	private TssRendererService rendererService;
-	
-	
+
+	@Autowired
+	private TssWmsGoodsService wmsGoodsService;
 
 	@Autowired
 	private SafetyKoreaApi safetyKoreaApi;
@@ -530,10 +532,10 @@ public class TssGoodsService {
 			GoodsSearch goodsSearch = new GoodsSearch();
 			goodsSearch.setGoodsCd(goods.getGoodsCd());
 			goodsSearch.setSupplyCompCd(TssSession.getInfo().getSupplyCompCd());
-			if( goodsDao.getGoodsListCount(goodsSearch) <= 0) {
+			if (goodsDao.getGoodsListCount(goodsSearch) <= 0) {
 				throw new IllegalStateException(goodsSearch.getGoodsCd() + " 상품코드가 업체 상품코드인지 확인해 주세요.");
 			}
-			
+
 			SearchData searchData = new SearchData();
 			searchData.setRegNo(goods.getRegNo());
 			searchData.setSearchCd(goods.getGoodsCd());
@@ -616,7 +618,7 @@ public class TssGoodsService {
 				}
 			}
 
-		}else {
+		} else {
 			if ("Y".equals(goods.getChCfrmYn())) {
 				GoodsPriceRes goodsPriceRes = new GoodsPriceRes();
 				goodsPriceRes.setGoodsCd(goods.getGoodsCd());
@@ -1245,13 +1247,40 @@ public class TssGoodsService {
 		goodsMass.setGoodsCd(goods.getGoodsCd());
 
 		// 상품사이즈 정보
-		Collection<Option> goodsWmsSizeList = goodsDao.getGoodsWmsSizeList(goods);
-		
+		Collection<IfProductSku> goodsWmsSizeList = wmsGoodsService.getGoodsWmsSizeList(goods.getGoodsCd());
+
 		if (goodsWmsSizeList == null || goodsWmsSizeList.isEmpty()) {
-			goods.setGoodsRegMsg("WMS 상품 사이즈 정보 없음");
-			goods.setGoodsStat("G008_20");
+			throw new IllegalStateException("WMS의 TB_IF_PRODUCTSKU 에  " + goods.getGoodsCd() + " 상품이 존재하지 않습니다.");
 		} else {
-			this.createSelfGoodsSize(goods, goodsWmsSizeList); // 자사 상품사이즈 정보 저장
+			int index = 1;
+			for (IfProductSku ifProductSku : goodsWmsSizeList) {
+
+				Option wmsOption = goodsDao.getWmsColorStock(ifProductSku);
+				if (wmsOption == null) {
+					throw new IllegalStateException(goods.getGoodsCd() + " 의 WMS의 색상 " + ifProductSku.getWmsColorCd() + "이(가) WMS색상관리에 없습니다.");
+				}
+
+				Option goodsStock = new Option();
+				goodsStock.setGoodsCd(goods.getGoodsCd());
+				goodsStock.setOptCd(ifProductSku.getSkucode());
+				goodsStock.setOptCd1(wmsOption.getOptCd1());
+				goodsStock.setOptCd2(ifProductSku.getOption2());
+				goodsStock.setSkuModelNo(ifProductSku.getSkumodelno());
+				goodsStock.setProductNo(ifProductSku.getProductno());
+				goodsStock.setProductCode(Integer.parseInt(ifProductSku.getProductcode()));
+				goodsStock.setBaseStockQty(0);
+				goodsStock.setCurrStockQty(wmsOption.getCurrStockQty());
+				goodsStock.setStoreStockQty(0);
+				goodsStock.setStoreMaxQty(wmsOption.getCurrStockQty());
+				goodsStock.setAddPrice(0);
+				goodsStock.setSoldoutYn("N");
+				goodsStock.setDispOrd(index);
+				goodsStock.setDispYn("Y");
+				goodsStock.setRegNo(TssSession.getInfo().getUserNo());
+				goodsStock.setUpdNo(TssSession.getInfo().getUserNo());
+				goodsDao.saveStock(goodsStock);
+				index++;
+			}
 		}
 
 		// 상품 색상 , 사이즈 옵션 정보 조회
@@ -1260,15 +1289,16 @@ public class TssGoodsService {
 			goodsColorSize.setUpdNo(TssSession.getInfo().getUserNo());
 			goodsDao.updateGoodsMainColorCd(goodsColorSize); // 대표색상 설정
 		}
-
 		int index = 0;
 		// 자사 상품 등록시 고시정보 처리
 		for (GoodsNotiInfo goodsNotiInfo : goodsNotiList) {
+
 			if (!StringUtils.isBlank(gagaMap.getString("niContent" + (index + 1)))) {
 				goodsNotiInfo.setNiContent(gagaMap.getString("niContent" + (index + 1)).trim());
 			}
 
 			if ("G005_003".equals(goodsNotiInfo.getNiItemCd())) {	// 색상
+
 				if (!StringUtils.isBlank(goodsColorSize.getOpt1Str())) {
 					goodsNotiInfo.setNiContent(goodsColorSize.getOpt1Str());
 				}
@@ -1276,25 +1306,25 @@ public class TssGoodsService {
 				if (!StringUtils.isBlank(goodsColorSize.getOpt2Str())) {
 					goodsNotiInfo.setNiContent(goodsColorSize.getOpt2Str());
 				}
-			} else if ("G005_006".equals(goodsNotiInfo.getNiItemCd())) {	//제조국
-				if (!StringUtils.isBlank(goods.getOriginNm())) {
-					goodsNotiInfo.setNiContent(goods.getOriginNm());
-				}
-			} else if ("G005_009".equals(goodsNotiInfo.getNiItemCd())) {	//제조년월
-				if (!StringUtils.isBlank(goods.getMakeYmd())) {
-					goodsNotiInfo.setNiContent(goods.getMakeYmd());
-				}
-			} else if ("G005_097".equals(goodsNotiInfo.getNiItemCd())) {	//수입여부
-				if (!StringUtils.isBlank(goods.getOriginNm()) &&
-					(goods.getOriginNm().indexOf("대한민국") >= 0 || goods.getOriginNm().indexOf("한국") >= 0 || goods.getOriginNm().toUpperCase().indexOf("KOREA") >= 0)) {
-					goodsNotiInfo.setNiContent("N");
-				} else {
-					goodsNotiInfo.setNiContent("Y");
-				}
-			} else if ("G005_099".equals(goodsNotiInfo.getNiItemCd())) {	//종류
-				if (!StringUtils.isBlank(goods.getItemkindNm())) {
-					goodsNotiInfo.setNiContent(goods.getItemkindNm());
-				}
+//			} else if ("G005_006".equals(goodsNotiInfo.getNiItemCd())) {	//제조국
+//				if (!StringUtils.isBlank(goods.getOriginNm())) {
+//					goodsNotiInfo.setNiContent(goods.getOriginNm());
+//				}
+//			} else if ("G005_009".equals(goodsNotiInfo.getNiItemCd())) {	//제조년월
+//				if (!StringUtils.isBlank(goods.getMakeYmd())) {
+//					goodsNotiInfo.setNiContent(goods.getMakeYmd());
+//				}
+//			} else if ("G005_097".equals(goodsNotiInfo.getNiItemCd())) {	//수입여부
+//				if (!StringUtils.isBlank(goods.getOriginNm()) &&
+//					(goods.getOriginNm().indexOf("대한민국") >= 0 || goods.getOriginNm().indexOf("한국") >= 0 || goods.getOriginNm().toUpperCase().indexOf("KOREA") >= 0)) {
+//					goodsNotiInfo.setNiContent("N");
+//				} else {
+//					goodsNotiInfo.setNiContent("Y");
+//				}
+//			} else if ("G005_099".equals(goodsNotiInfo.getNiItemCd())) {	//종류
+//				if (!StringUtils.isBlank(goods.getItemkindNm())) {
+//					goodsNotiInfo.setNiContent(goods.getItemkindNm());
+//				}
 			}
 			index++;
 		}
@@ -1322,15 +1352,25 @@ public class TssGoodsService {
 
 		// 상품상세 타이틀 내용 확인
 		if (!StringUtils.isBlank(goodsMass.getGoodsContent())) {
+			String[] arrString = goodsMass.getGoodsContent().split("\n");
+			StringBuffer sb = new StringBuffer();
+			for (String descData : arrString) {
+				sb.append("<p>").append(descData).append("</b>");
+			}
 			goodsDesc.setDescGb("20");
-			goodsDesc.setGoodsDesc(goodsMass.getGoodsContent().trim());
+			goodsDesc.setGoodsDesc(sb.toString());
 			this.saveGoodsDesc(goodsDesc);
 		}
 
 		// 상품상세 상품 상세 특징 확인
 		if (!StringUtils.isBlank(goodsMass.getGoodsCharacter())) {
+			String[] arrString = goodsMass.getGoodsContent().split("\n");
+			StringBuffer sb = new StringBuffer();
+			for (String descData : arrString) {
+				sb.append("<p>").append(descData).append("</b>");
+			}
 			goodsDesc.setDescGb("30");
-			goodsDesc.setGoodsDesc(goodsMass.getGoodsCharacter().trim());
+			goodsDesc.setGoodsDesc(sb.toString());
 			this.saveGoodsDesc(goodsDesc);
 		}
 
@@ -1781,11 +1821,11 @@ public class TssGoodsService {
 		int index = 0;
 		for (GoodsNotiInfo goodsNotiInfo : goodsNotiList) {
 
-			if (StringUtils.isBlank(excelMap.getString("niContent" + (index + 1)))) {
-				goodsNotiInfo.setNiContent(goodsNotiInfo.getNiContent());
-			} else {
-				goodsNotiInfo.setNiContent(excelMap.getString("niContent" + (index + 1)).trim());
-			}
+//			if (StringUtils.isBlank(excelMap.getString("niContent" + (index + 1)))) {
+//				goodsNotiInfo.setNiContent(goodsNotiInfo.getNiContent());
+//			} else {
+//				goodsNotiInfo.setNiContent(excelMap.getString("niContent" + (index + 1)).trim());
+//			}
 			goodsNotiInfo.setRegNo(TssSession.getInfo().getUserNo());
 			goodsNotiInfo.setUpdNo(TssSession.getInfo().getUserNo());
 			goodsDao.saveGoodsNotiInfo(goodsNotiInfo);
@@ -1793,30 +1833,6 @@ public class TssGoodsService {
 		}
 	}
 
-	/**
-	 * 상품등록 - 상품재고정보 (자상상품등록시)
-	 *
-	 * @param goods
-	 * @param excelMap
-	 * @return Goods
-	 * @author eskim
-	 * @since 2021. 01. 13
-	 */
-	private void createSelfGoodsSize(Goods goods, Collection<Option> goodsSizeList) {
-
-		int index = 0;
-		for (Option goodsStock : goodsSizeList) {
-			goodsStock.setSoldoutYn("N");
-			goodsStock.setDispYn("N");
-			goodsStock.setBaseStockQty(0);
-			goodsStock.setAddPrice(0);
-			goodsStock.setRegNo(TssSession.getInfo().getUserNo());
-			goodsStock.setUpdNo(TssSession.getInfo().getUserNo());
-			goodsDao.saveStock(goodsStock);
-			index++;
-		}
-	}
-
 	/**
 	 * 상품대량등록 엑셀 저장 - 입점상품
 	 *
@@ -1983,26 +1999,26 @@ public class TssGoodsService {
 				goodsNotiInfo.setNiContent(gagaMap.getString("niContent" + (index + 1)));
 			}
 
-			if ("G005_006".equals(goodsNotiInfo.getNiItemCd())) {	//제조국
-				if (!StringUtils.isBlank(goods.getOriginNm())) {
-					goodsNotiInfo.setNiContent(goods.getOriginNm());
-				}
-			} else if ("G005_009".equals(goodsNotiInfo.getNiItemCd())) {	//제조년월
-				if (!StringUtils.isBlank(goods.getMakeYmd())) {
-					goodsNotiInfo.setNiContent(goods.getMakeYmd());
-				}
-			} else if ("G005_097".equals(goodsNotiInfo.getNiItemCd())) {	//수입여부
-				if (!StringUtils.isBlank(goods.getOriginNm()) &&
-					(goods.getOriginNm().indexOf("대한민국") >= 0 || goods.getOriginNm().indexOf("한국") >= 0 || goods.getOriginNm().toUpperCase().indexOf("KOREA") >= 0)) {
-					goodsNotiInfo.setNiContent("N");
-				} else {
-					goodsNotiInfo.setNiContent("Y");
-				}
-			} else if ("G005_099".equals(goodsNotiInfo.getNiItemCd())) {	//종류
-				if (!StringUtils.isBlank(goods.getItemkindNm())) {
-					goodsNotiInfo.setNiContent(goods.getItemkindNm());
-				}
-			}
+//			if ("G005_006".equals(goodsNotiInfo.getNiItemCd())) {	//제조국
+//				if (!StringUtils.isBlank(goods.getOriginNm())) {
+//					goodsNotiInfo.setNiContent(goods.getOriginNm());
+//				}
+//			} else if ("G005_009".equals(goodsNotiInfo.getNiItemCd())) {	//제조년월
+//				if (!StringUtils.isBlank(goods.getMakeYmd())) {
+//					goodsNotiInfo.setNiContent(goods.getMakeYmd());
+//				}
+//			} else if ("G005_097".equals(goodsNotiInfo.getNiItemCd())) {	//수입여부
+//				if (!StringUtils.isBlank(goods.getOriginNm()) &&
+//					(goods.getOriginNm().indexOf("대한민국") >= 0 || goods.getOriginNm().indexOf("한국") >= 0 || goods.getOriginNm().toUpperCase().indexOf("KOREA") >= 0)) {
+//					goodsNotiInfo.setNiContent("N");
+//				} else {
+//					goodsNotiInfo.setNiContent("Y");
+//				}
+//			} else if ("G005_099".equals(goodsNotiInfo.getNiItemCd())) {	//종류
+//				if (!StringUtils.isBlank(goods.getItemkindNm())) {
+//					goodsNotiInfo.setNiContent(goods.getItemkindNm());
+//				}
+//			}
 			index++;
 		}
 
@@ -3799,7 +3815,7 @@ public class TssGoodsService {
 
 		return goodsDao.getGoodsOption1Count(option);
 	}
-	
+
 	/**
 	 * 딜상품 저장
 	 *
@@ -3840,7 +3856,7 @@ public class TssGoodsService {
 		}
 
 		for (GoodsCompose goodsCompose : goodsComposeList) {
-			
+
 			Goods extendGoods = new Goods();
 			extendGoods.setGoodsCd(goodsCompose.getCompsGoodsCd());
 			extendGoods = goodsDao.getGoods(extendGoods);
@@ -3862,21 +3878,21 @@ public class TssGoodsService {
 				regGoods.setDcRate((int)(this.getDcRate(goods.getCurrPrice(), goods.getCurrPrice())));
 			}
 		}
-		
+
 		String goodsCd = this.getGoodsCodeSeq("E", regGoods.getBrandCd()); // 입점상품 상품코드 생성
 		regGoods.setGoodsCd(goodsCd);
 		regGoods.setSupplyGoodsCd(goodsCd);
-		
+
 		for (GoodsCompose goodsCompose : goodsComposeList) {
 			goodsCompose.setGoodsCd(regGoods.getGoodsCd());
 			goodsCompose.setGoodsType(regGoods.getGoodsType());
 			goodsCompose.setRegNo(TssSession.getInfo().getUserNo());
 			goodsCompose.setUpdNo(TssSession.getInfo().getUserNo());
 		}
-		
+
 		this.createGoodsCompose(regGoods, goodsComposeList); // 딜상품 관련 정보 저장
 	}
-	
+
 	/**
 	 * 딜 상품 관련 저장
 	 *
@@ -3907,7 +3923,7 @@ public class TssGoodsService {
 				pntPrate = tmpBrand.getPntPrate20();
 				pntMrate = tmpBrand.getPntMrate20();
 			}
-			distributionGb = tmpBrand.getDistributionGb() ; // 유통구분
+			distributionGb = tmpBrand.getDistributionGb(); // 유통구분
 		}
 
 		regGoods.setPntPrate(pntPrate); // 포인트적립율(PC)
@@ -3958,7 +3974,7 @@ public class TssGoodsService {
 		goodsDao.createCategoryGoods(regGoods);
 
 	}
-	
+
 	/**
 	 * 구성상품 목록
 	 *

+ 9 - 8
src/main/java/com/style24/scm/biz/service/TssWmsGoodsService.java

@@ -1,14 +1,16 @@
 package com.style24.scm.biz.service;
 
+import java.util.Collection;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.persistence.domain.IfProductSku;
 import com.style24.scm.biz.dao.TssWmsGoodsDao;
 
 import lombok.extern.slf4j.Slf4j;
 
-
 /**
  *  wms Service
  *
@@ -25,17 +27,16 @@ public class TssWmsGoodsService {
 	@Autowired
 	private TssWmsGoodsDao wmsGoodsDao;
 
-
 	/**
-	 * 상품 사이즈별 재고 현황 목록 건수
+	 * wms 상품 색상 , 사이즈별 재고 정보 조회
 	 *
-	 * @param goodsSearch
+	 * @param goodsCd
 	 * @return
 	 * @author eskim
-	 * @since 2010. 11. 17
+	 * @since 2021. 05. 29
 	 */
-//	public int getGoodsSizeStockCount(GoodsSearch goodsSearch) {
-//		return stockDao.getGoodsSizeStockCount(goodsSearch);
-//	}
+	public Collection<IfProductSku> getGoodsWmsSizeList(String goodsCd) {
+		return wmsGoodsDao.getGoodsWmsSizeList(goodsCd);
+	}
 
 }

+ 8 - 12
src/main/java/com/style24/scm/biz/web/TssGoodsController.java

@@ -739,7 +739,6 @@ public class TssGoodsController extends TssBaseController {
 					//log.info("mkdir ={}", goodsUploadPath);
 					path.mkdir();
 				}
-				
 
 				Image srcImg = getImageObject(oldFile);
 				int width = srcImg.getWidth(null);
@@ -794,7 +793,7 @@ public class TssGoodsController extends TssBaseController {
 
 		return super.ok(message.getMessage("SUCC_0007"));
 	}
-	
+
 	/**
 	 * 상품 이미지 대량관리 화면
 	 *
@@ -843,7 +842,7 @@ public class TssGoodsController extends TssBaseController {
 
 		String[] arrGoodsImg = new String[goodsImgList.size()];
 		String[] arrGoodsCd = new String[goodsImgList.size()];
-		
+
 		index = 0;
 		for (GoodsImg goodsImg : goodsImgList) {
 
@@ -942,7 +941,7 @@ public class TssGoodsController extends TssBaseController {
 					deleteErrorFileList(errorFileDextList);
 					throw new IllegalStateException(goodsImg.getSysImgNm() + " 의" + comGoodsCd + " 상품코드가  존재하지 않습니다.");
 				}
-				
+
 				//촬영업체
 				if ("G001_E000".equals(TssSession.getInfo().getRoleCd())) {
 					if (!"Y".equals(goodsInfo.getSelfGoodsYn())) {
@@ -950,14 +949,13 @@ public class TssGoodsController extends TssBaseController {
 						deleteErrorFileList(errorFileDextList);
 						throw new IllegalStateException(goodsImg.getSysImgNm() + " 의" + comGoodsCd + " 상품코드를 확인해주세요.(자사상품만 등록 가능)");
 					}
-				}else {
+				} else {
 					if (!"N".equals(goodsInfo.getSelfGoodsYn())) {
 						deleteErrorFileList(errorFileList);
 						deleteErrorFileList(errorFileDextList);
 						throw new IllegalStateException(goodsImg.getSysImgNm() + " 의" + comGoodsCd + " 상품코드를 확인해주세요.(입점상품만 등록 가능)");
 					}
 				}
-				
 
 				strBrandNo = String.valueOf(goodsInfo.getBrandNo());
 				brandDir = GagaStringUtil.getLPadding(strBrandNo, 10, "0");
@@ -1168,12 +1166,10 @@ public class TssGoodsController extends TssBaseController {
 	@PostMapping("/mass/excelupload/create")
 	@ResponseBody
 	public GagaResponse createExceluploadGoods(@RequestBody GoodsMass goodsMass) throws Exception {
-
 		String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
 		Collection<GagaMap> ecxelGoodsList = new ArrayList<>();
 		// 자사상품등록
 		if ("createSelfGoods".equals(goodsMass.getProcJob())) {
-
 			if ("N".equals(commonService.getWmsSyncYn())) {
 				// 파일 삭제
 				GagaFileUtil.deleteFile(GagaFileUtil.getConcatenationPath(targetPath, goodsMass.getExcelFileNm()));
@@ -1182,7 +1178,7 @@ public class TssGoodsController extends TssBaseController {
 
 			// DB 처리 시 사용되는 파라미터명(셀명) 설정
 			String[] goodsNames = {"goodsNum", "brandCd", "goodsNm", "itemkindCd", "styleYear", "seasonCd",
-				"sexGb", "formalGb", "originCd", "makeYmd", "goodsTitles", "goodsContents", "goodsCharacter",
+				"sexGb", "formalGb", "originCd", "makeYmd", "goodsTitles", "goodsContent", "goodsCharacter",
 				"niClsfCd", "niContent1", "niContent2", "niContent3", "niContent4", "niContent5",
 				"niContent6", "niContent7", "niContent8", "niContent9", "niContent10", "niContent11", "niContent12",
 				"niContent13", "niContent14", "niContent15", "niContent16", "niContent17", "niContent18",
@@ -1767,9 +1763,9 @@ public class TssGoodsController extends TssBaseController {
 
 		goodsService.createGoodsDetail(goods);
 		result.set("goodsCd", goods.getGoodsCd());
-		
+
 		return result;
-		
+
 	}
 
 	/**
@@ -1828,7 +1824,7 @@ public class TssGoodsController extends TssBaseController {
 		goodsService.saveGoodsDeal(goods);
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
-	
+
 	/**
 	 * 구성상품 목록
 	 *