Sfoglia il codice sorgente

자사상품 등록 for문 controller 에서 실행

eskim 5 anni fa
parent
commit
3bd4930b8b

+ 13 - 10
src/main/java/com/style24/persistence/domain/GoodsMass.java

@@ -22,26 +22,29 @@ public class GoodsMass extends TscBaseDomain {
 	private String styleYear;	//스타일연도
 	private String seasonCd;	//시즌코드(공통코드G006)
 	private String sexGb;		//성별구분(공통코드G007)
-	private String listPrice;		//정상가(최초판매가)
-	private String currPrice;		//현재판매가
+	private String listPrice;	//정상가(최초판매가)
+	private String currPrice;	//현재판매가
 	private String costPrice;	//원가
 	private String delvFeeCd;	//배송비정책코드
 	private String originCd;	//제조국(원산지)
 	private String makeYmd;		//제조연월일
 
-	private String supplyCompCd;		//공급업체코드
-	private String supplyGoodsCd;		//공급업체상품코드(원코드)
+	private String supplyCompCd;	//공급업체코드
+	private String supplyGoodsCd;	//공급업체상품코드(원코드)
 	private String goodsTnm;		//상품타이틀명
 	private String goodsSnm1;		//상품검색명1(사용자등록용)
 	private String goodsGb;			//상품구분(공콩코드 G073)
 	private String formalGb; 		//정상이월구분(공통코드G009)
-//	private String distributionGb;		//유통구분(공콩코드 G065)
-	private String taxGb;		//과세구분(10:과세, 20:비과세)
-	private String adultYn;		//성인용품여부 'Y', 'N'
+//	private String distributionGb;	//유통구분(공콩코드 G065)
+	private String taxGb;			//과세구분(10:과세, 20:비과세)
+	private String adultYn;			//성인용품여부 'Y', 'N'
 
-	private String optStr;
-	private String baseStockStr;
-	private String currStockStr;
+	private String opt1Str;			//옵션1(입점용)
+	private String opt2Str;			//옵션2(입점용)
+	private String baseStockStr;	//안전재고(입점용)
+	private String currStockStr;	//재고(입점용)
+
+	private String goodsContent;	//상품상세 html(입점용)
 
 	private String niClsfCd;
 	private String niContent1;

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

@@ -1867,7 +1867,7 @@
 		     , GOODS_REG_DT
 		     , GOODS_REG_GB
 		FROM TB_WMS_GOODS
-		WHERE LEFT(MODEL_NO,10) = #{goodsCd}
+		WHERE MODEL_NO LIKE  CONCAT(#{goodsCd},'%')
 	</select>
 	
 	<!-- WMS 입고상품 사은품 상품 구분 저장 -->

+ 76 - 81
src/main/java/com/style24/scm/biz/service/TssGoodsService.java

@@ -1100,35 +1100,29 @@ public class TssGoodsService {
 	 * @since 2021. 01. 12
 	 */
 	@Transactional("shopTxnManager")
-	public void createExceluploadSelfGoods(Collection<GagaMap> ecxelGoodsList, String excelFilename, String procJob) {
-		String targetPath = GagaFileUtil.getConcatenationPath(env.getProperty("upload.excel.target.path"), "excel");
-		if ((ecxelGoodsList == null || ecxelGoodsList.isEmpty())) {
-			this.deleteExceluploadFile(targetPath, excelFilename);
-			throw new IllegalStateException(message.getMessage("FAIL_1001"));
-		}
+	public String createExceluploadSelfGoods(GagaMap gagaMap,  String procJob) {
 
-		for (GagaMap gagaMap : ecxelGoodsList) {
-			GoodsMass goodsMass = mapper.convertValue(gagaMap, GoodsMass.class);
+		GoodsMass goodsMass = mapper.convertValue(gagaMap, GoodsMass.class);
 
-			// 상품기본정보
-			Goods goods = this.createSelfGoodsInfo(goodsMass, procJob);
+		// 상품기본정보
+		Goods goods = this.createSelfGoodsInfo(goodsMass, procJob);
 
-			if ("10".equals(goods.getGoodsStat())) { // 정보 오류
-				this.setGoodsRegResult(goods, goodsMass, procJob);
-				continue;
-			}
+		if ("10".equals(goods.getGoodsStat())) { // 정보 오류
+			this.setGoodsRegResult(goods, goodsMass, procJob);
+			return goods.getGoodsStat();  //continue
+		}
 
-			// 상품고시정보
-			Collection<GoodsNotiInfo> goodsNotiList = goodsDao.getItemkindNotiInfoList(goods);
-			if (goodsNotiList == null || goodsNotiList.isEmpty()) {
-				goods.setGoodsRegMsg("품목의 고시정보 없음");
-				goods.setGoodsStat("10");
-				this.setGoodsRegResult(goods, goodsMass, procJob);
-				continue;
-			}
+		// 상품고시정보
+		Collection<GoodsNotiInfo> goodsNotiList = goodsDao.getItemkindNotiInfoList(goods);
+		if (goodsNotiList == null || goodsNotiList.isEmpty()) {
+			goods.setGoodsRegMsg("품목의 고시정보 없음");
+			goods.setGoodsStat("10");
+			this.setGoodsRegResult(goods, goodsMass, procJob);
+			return goods.getGoodsStat();
+		}
 
-			// 자사 상품 등록시 고시정보 처리
-			for (GoodsNotiInfo goodsNotiInfo : goodsNotiList) {
+		// 자사 상품 등록시 고시정보 처리
+		for (GoodsNotiInfo goodsNotiInfo : goodsNotiList) {
 //				if ("003".equals(goodsNotiInfo.getNiItemCd())) {	// 색상
 //					if (!StringUtils.isEmpty(goods.getColorNm())) {
 //						goodsNotiInfo.setNiContent(goods.getColorNm());
@@ -1137,81 +1131,82 @@ public class TssGoodsService {
 //					if (!StringUtils.isEmpty(goods.getSizeName())) {
 //						goodsNotiInfo.setNiContent(goods.getSizeName());
 //					}
-				if ("006".equals(goodsNotiInfo.getNiItemCd())) {	//제조국
-					if (!StringUtils.isEmpty(goods.getOriginNm())) {
-						goodsNotiInfo.setNiContent(goods.getOriginNm());
-					}
-				} else if ("009".equals(goodsNotiInfo.getNiItemCd())) {	//제조년월
-					if (!StringUtils.isEmpty(goods.getMakeYmd())) {
-						goodsNotiInfo.setNiContent(goods.getMakeYmd());
-					}
-				} else if ("097".equals(goodsNotiInfo.getNiItemCd())) {	//수입여부
-					if (!StringUtils.isEmpty(goods.getOriginNm()) &&
-							(goods.getOriginNm().indexOf("대한민국") >= 0 || goods.getOriginNm().indexOf("한국") >= 0 || goods.getOriginNm().toUpperCase().indexOf("KOREA") >= 0)) {
-						goodsNotiInfo.setNiContent("N");
-					} else {
-						goodsNotiInfo.setNiContent("Y");
-					}
+			if ("006".equals(goodsNotiInfo.getNiItemCd())) {	//제조국
+				if (!StringUtils.isEmpty(goods.getOriginNm())) {
+					goodsNotiInfo.setNiContent(goods.getOriginNm());
+				}
+			} else if ("009".equals(goodsNotiInfo.getNiItemCd())) {	//제조년월
+				if (!StringUtils.isEmpty(goods.getMakeYmd())) {
+					goodsNotiInfo.setNiContent(goods.getMakeYmd());
+				}
+			} else if ("097".equals(goodsNotiInfo.getNiItemCd())) {	//수입여부
+				if (!StringUtils.isEmpty(goods.getOriginNm()) &&
+						(goods.getOriginNm().indexOf("대한민국") >= 0 || goods.getOriginNm().indexOf("한국") >= 0 || goods.getOriginNm().toUpperCase().indexOf("KOREA") >= 0)) {
+					goodsNotiInfo.setNiContent("N");
+				} else {
+					goodsNotiInfo.setNiContent("Y");
 				}
 			}
+		}
 
-			//고시항목 필수값 확인
-			goods = this.getGoodsNotiCheck(goods, goodsNotiList, gagaMap, procJob);
+		//고시항목 필수값 확인
+		goods = this.getGoodsNotiCheck(goods, goodsNotiList, gagaMap, procJob);
 
-			if ("10".equals(goods.getGoodsStat())) { // 정보 오류
-				this.setGoodsRegResult(goods, goodsMass, procJob);
-				continue;
-			}
+		if ("10".equals(goods.getGoodsStat())) { // 정보 오류
+			this.setGoodsRegResult(goods, goodsMass, procJob);
+			return goods.getGoodsStat();
+		}
 
-			// 할인율
-			goods.setDcRate((int)(this.getDcRate(goods.getListPrice(), goods.getCurrPrice())));
+		// 할인율
+		goods.setDcRate((int)(this.getDcRate(goods.getListPrice(), goods.getCurrPrice())));
 
-			goodsDao.createGoods(goods); // 상품기본 저장
-			goodsDao.createGoodsSmmary(goods); // 상품통계 생성
+		goodsDao.createGoods(goods); // 상품기본 저장
+		goodsDao.createGoodsSmmary(goods); // 상품통계 생성
 
-			WmsGoods wmsGoods = new WmsGoods();
-			wmsGoods.setUpdNo(TssSession.getInfo().getUserNo());
-			wmsGoods.setGoodsRegGb("G"); // G: 상품, F: 사은품
-			wmsGoods.setProductNo(goods.getProductNo());
-			goodsDao.saveGoodsWmsIncomelot(wmsGoods); // wms 상품 상품등록일 변경
+		WmsGoods wmsGoods = new WmsGoods();
+		wmsGoods.setUpdNo(TssSession.getInfo().getUserNo());
+		wmsGoods.setGoodsRegGb("G"); // G: 상품, F: 사은품
+		wmsGoods.setProductNo(goods.getProductNo());
+		goodsDao.saveGoodsWmsIncomelot(wmsGoods); // wms 상품 상품등록일 변경
 
-			goodsMass.setGoodsCd(goods.getGoodsCd());
+		goodsMass.setGoodsCd(goods.getGoodsCd());
 
-			this.createGoodsNoti(gagaMap, goodsNotiList); // 상품고시정보 저장
+		this.createGoodsNoti(gagaMap, goodsNotiList); // 상품고시정보 저장
 
-			Collection<Option> goodsWmsSizeList = new ArrayList<>();
-			// 상품사이즈 정보 -- 재고 정보연동 해야함
-			goodsWmsSizeList = goodsDao.getGoodsWmsSizeList(goods);
-			if (goodsWmsSizeList == null || goodsWmsSizeList.isEmpty()) {
-				goods.setGoodsRegMsg("WMS 상품 사이즈 정보 없음");
-				goods.setGoodsStat("G008_20");
-			}
+		Collection<Option> goodsWmsSizeList = new ArrayList<>();
+		// 상품사이즈 정보 -- 재고 정보연동 해야함
+		goodsWmsSizeList = goodsDao.getGoodsWmsSizeList(goods);
+		if (goodsWmsSizeList == null || goodsWmsSizeList.isEmpty()) {
+			goods.setGoodsRegMsg("WMS 상품 사이즈 정보 없음");
+			goods.setGoodsStat("G008_20");
+		}
 
-			this.createSelfGoodsSize(goods, goodsWmsSizeList); // 자사 상품사이즈 정보 자장
+		this.createSelfGoodsSize(goods, goodsWmsSizeList); // 자사 상품사이즈 정보 자장
 
-			// 사용자 검색어를 검색어에 적용
-			String goodsSnm = goodsDao.getGoodsSnm(goods.getGoodsCd());
-			if (!StringUtils.isEmpty(goods.getGoodsSnm1())) {
-				String[] arrGoodsSnm = goods.getGoodsSnm1().split(";");
-				StringBuilder tempGoodsSnm = new StringBuilder();
-				for (String loopGoodsSnm : arrGoodsSnm) {
-					if (goodsSnm.toUpperCase().indexOf(loopGoodsSnm.toUpperCase()) <= -1) {
-						tempGoodsSnm.append(loopGoodsSnm).append(";");
-					}
+		// 사용자 검색어를 검색어에 적용
+		String goodsSnm = goodsDao.getGoodsSnm(goods.getGoodsCd());
+		if (!StringUtils.isEmpty(goods.getGoodsSnm1())) {
+			String[] arrGoodsSnm = goods.getGoodsSnm1().split(";");
+			StringBuilder tempGoodsSnm = new StringBuilder();
+			for (String loopGoodsSnm : arrGoodsSnm) {
+				if (goodsSnm.toUpperCase().indexOf(loopGoodsSnm.toUpperCase()) <= -1) {
+					tempGoodsSnm.append(loopGoodsSnm).append(";");
 				}
-				goods.setGoodsSnm(tempGoodsSnm.toString() + goodsSnm);
-
-			} else if (!goodsSnm.equals(goods.getGoodsSnm())) {
-				goods.setGoodsSnm(goodsSnm);
 			}
+			goods.setGoodsSnm(tempGoodsSnm.toString() + goodsSnm);
 
-			goodsDao.updateGoodsSnm(goods);
+		} else if (!goodsSnm.equals(goods.getGoodsSnm())) {
+			goods.setGoodsSnm(goodsSnm);
+		}
 
-			goodsDao.createCategoryGoods(goods);
+		goodsDao.updateGoodsSnm(goods);
 
-			this.setGoodsRegResult(goods, goodsMass, procJob);
+		goodsDao.createCategoryGoods(goods);
+
+		this.setGoodsRegResult(goods, goodsMass, procJob);
+
+		return goods.getGoodsStat();
 
-		}
 	}
 
 	/**

+ 4 - 1
src/main/java/com/style24/scm/biz/web/TssGoodsController.java

@@ -827,7 +827,10 @@ public class TssGoodsController extends TssBaseController {
 
 			ecxelGoodsList = GagaExcelUtil.getList(GagaFileUtil.getConcatenationPath(targetPath, goodsMass.getExcelFileNm()), 0, goodsNames, 0);
 
-			goodsService.createExceluploadSelfGoods(ecxelGoodsList, goodsMass.getExcelFileNm(), goodsMass.getProcJob());
+			for (GagaMap gagaMap : ecxelGoodsList) {
+				goodsService.createExceluploadSelfGoods(gagaMap,  goodsMass.getProcJob());
+			}
+
 
 		} else {
 			// 입점상품등록

+ 2 - 2
src/main/webapp/WEB-INF/views/goods/GoodsMassRegisterForm.html

@@ -47,7 +47,7 @@
 								}" 
 							th:style="'padding-left:80px;'">
 						<button type="button" class="btn btn-default btn-lg"  onclick="cfnDownloadSampleFile('SF014');">상품대량수정 등록양식 다운로드</button>
-						<button th:if="${wmsSyncYn == 'Y'}" type="button" class="btn btn-primary btn-lg" id="btnGoodsUpdate" >입점상품 등록</button>
+						<button th:if="${wmsSyncYn == 'Y'}" type="button" class="btn btn-primary btn-lg" id="btnGoodsUpdate" >수정상품 등록</button>
 					</span>
 				</li>
 			</ul>
@@ -215,7 +215,7 @@
 	
 	//자사상품대량등록 클릭시
 	$('#btnGoodsSelfCreate').on('click', function() {
-		cfnExcelUploadPopup('createGoods', 'createSelfGoods');
+		cfnExcelUploadPopup('createSelfGoods', 'createGoods');
 	});
 	
 	//입점상품대량등록 클릭시