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

Merge branch 'eskim' into develop

eskim 5 лет назад
Родитель
Сommit
7678b77d87
19 измененных файлов с 394 добавлено и 68 удалено
  1. 9 0
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java
  2. 12 0
      style24.admin/src/main/java/com/style24/admin/biz/service/TsaGoodsService.java
  3. 10 2
      style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java
  4. 10 4
      style24.admin/src/main/java/com/style24/persistence/domain/WmsGoods.java
  5. 35 5
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml
  6. 32 1
      style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsWmsIncomelotForm.html
  7. 9 0
      style24.batch/src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java
  8. 10 0
      style24.batch/src/main/java/com/style24/batch/biz/dao/TsbWmsGoodsDao.java
  9. 3 3
      style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsBrandproviderJob.java
  10. 69 0
      style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsProductJob.java
  11. 25 25
      style24.batch/src/main/java/com/style24/batch/biz/service/TsbGoodsService.java
  12. 68 10
      style24.batch/src/main/java/com/style24/batch/biz/service/TsbWmsGoodsService.java
  13. 2 3
      style24.batch/src/main/java/com/style24/batch/biz/task/TsbDeliveryTask.java
  14. 16 2
      style24.batch/src/main/java/com/style24/batch/biz/task/TsbGoodsTask.java
  15. 31 0
      style24.batch/src/main/java/com/style24/persistence/domain/IfProduct.java
  16. 32 12
      style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml
  17. 19 0
      style24.batch/src/main/java/com/style24/persistence/mybatis/wms/TsbWmsGoods.xml
  18. 1 0
      style24.batch/src/main/resources/config/application-locd.yml
  19. 1 1
      style24.front/target/m2e-wtp/web-resources/META-INF/maven/com.style24.front/style24.front/pom.properties

+ 9 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java

@@ -1068,6 +1068,15 @@ public interface TsaGoodsDao {
 	 */
 	public void updateFreeGoods(FreeGoods freeGoods);
 
+	/**
+	 * WMS입고상품관리 목록 건수
+	 * @param goodsSearch
+	 * @return Collection<WmsGoods>
+	 * @author eskim
+	 * @since 2021. 01. 04
+	 */
+	int getGoodsWmsIncomelotListCount(WmsGoods wmsGoods);
+
 	/**
 	 * WMS입고상품관리 목록 조회
 	 * @param goodsSearch

+ 12 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -2654,6 +2654,18 @@ public class TsaGoodsService {
 		goodsDao.updateFreeGoods(freeGoods);
 	}
 
+	/**
+	 * WMS입고상품관리 목록 건수
+	 *
+	 * @param goodsSearch
+	 * @return Collection<WmsGoods>
+	 * @author eskim
+	 * @since 2021. 01. 04
+	 */
+	public int getGoodsWmsIncomelotListCount(WmsGoods wmsGoods) {
+		return goodsDao.getGoodsWmsIncomelotListCount(wmsGoods);
+	}
+
 	/**
 	 * WMS입고상품관리 목록 조회
 	 *

+ 10 - 2
style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -1271,9 +1271,17 @@ public class TsaGoodsController extends TsaBaseController {
 	 */
 	@PostMapping("/wms/incomelot/list")
 	@ResponseBody
-	public Collection<WmsGoods> getGoodsWmsIncomelotList(@RequestBody WmsGoods wmsGoods) {
+	public GagaMap getGoodsWmsIncomelotList(@RequestBody WmsGoods wmsGoods) {
 
-		return goodsService.getGoodsWmsIncomelotList(wmsGoods);
+		GagaMap result = new GagaMap();
+
+		wmsGoods.setPageable(new TsaPageRequest(wmsGoods.getPageNo() - 1, wmsGoods.getPageSize()));
+		wmsGoods.getPageable().setTotalCount(goodsService.getGoodsWmsIncomelotListCount(wmsGoods));
+
+		result.set("pageing", wmsGoods);
+		result.set("goodsList", goodsService.getGoodsWmsIncomelotList(wmsGoods));
+
+		return result;
 	}
 
 	/**

+ 10 - 4
style24.admin/src/main/java/com/style24/persistence/domain/WmsGoods.java

@@ -1,5 +1,6 @@
 package com.style24.persistence.domain;
 
+import com.style24.persistence.TsaPageRequest;
 import com.style24.persistence.TscBaseDomain;
 
 import lombok.Data;
@@ -17,10 +18,6 @@ public class WmsGoods extends TscBaseDomain {
 	private Integer productNo;		//wms상품번호
 	private int productCode;		//wms상품코드
 	private String productName;		//상품명
-	private String skucode;			//옵션번호
-	private int normalQty;			//일반수량
-	private int brokenQty;			//불량수량
-	private int totalQty;			//총수량
 	private String modelNo;			//모델번호
 	private int providerNo;			//공급처번호
 	private String providerName;	//공급처명
@@ -35,4 +32,13 @@ public class WmsGoods extends TscBaseDomain {
 	private String stDate;
 	private String edDate;
 
+	private int startRow;
+	private int endRow;
+	private String goodsPriceYn;
+	// Pagination
+	private TsaPageRequest pageable;
+	private int pageNo = 1;
+	private int pageSize = 50;
+	private int pageUnit = 10;
+
 }

+ 35 - 5
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -3650,16 +3650,44 @@
 		WHERE PRODUCT_NO = #{productNo}
 	</update>
 	
+	<!-- WMS입고상품 목록 건수 -->
+	<select id="getGoodsWmsIncomelotListCount" parameterType="WmsGoods" resultType="int">
+		/* TsaGoods.getGoodsWmsIncomelotListCount */
+		SELECT COUNT(*)
+		FROM TB_WMS_GOODS A
+		LEFT OUTER JOIN TB_BRAND B ON A.BRAND_NO = B.BRAND_NO 
+		LEFT OUTER JOIN TB_SUPPLY_COMPANY S ON A.PROVIDER_NO = S.PROVIDER_NO
+		WHERE GOODS_REG_GB IS NULL   /* 온라인 미등록 상품 */
+		<if test="modelNo != null and modelNo != ''">
+		AND UPPER(A.MODEL_NO) LIKE CONCAT('%',UPPER(#{modelNo}),'%') 
+		</if>
+		<if test="stDate != null and stDate != ''">
+		AND A.REG_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
+		</if>
+		<if test="edDate != null and edDate != ''">
+		<![CDATA[
+		AND A.REG_DT < DATE_FORMAT(DATE_ADD(#{edDate}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%S')
+		]]>
+		</if>
+		<if test="supplyCompCd != null and supplyCompCd != ''">
+		AND UPPER(S.SUPPLY_COMP_CD) = UPPER(#{supplyCompCd}) 
+		</if>
+		<if test="brandCd != null and brandCd != ''">
+		AND UPPER(B.BRAND_CD) = UPPER(#{brandCd}) 
+		</if>
+		ORDER BY A.UPD_DT DESC
+	</select>
+	
 	<!-- WMS입고상품 목록 -->
 	<select id="getGoodsWmsIncomelotList" parameterType="WmsGoods" resultType="WmsGoods">
 		/* TsaGoods.getGoodsWmsIncomelotList */
+		SELECT Q.* FROM (
+		SELECT Z.* FROM (
+		SELECT A.*, @rownum := @rownum + 1 AS RNUM 
+		    FROM (
 		SELECT A.PRODUCT_NO
 		     , A.PRODUCT_CODE
 		     , A.PRODUCT_NAME
-		     , A.SKUCODE
-		     , A.NORMAL_QTY
-		     , A.BROKEN_QTY
-		     , A.TOTAL_QTY
 		     , A.MODEL_NO
 		     , A.PROVIDER_NO
 		     , A.PROVIDER_NAME
@@ -3676,11 +3704,12 @@
 		     , FN_GET_USER_NM(A.UPD_NO) AS UPD_NM
 		     , DATE_FORMAT(A.UPD_DT,'%Y%m%d%H%i%S') AS UPD_DT
 		FROM TB_WMS_GOODS A
+		JOIN ( SELECT @rownum := 0) R
 		LEFT OUTER JOIN TB_BRAND B ON A.BRAND_NO = B.BRAND_NO 
 		LEFT OUTER JOIN TB_SUPPLY_COMPANY S ON A.PROVIDER_NO = S.PROVIDER_NO
 		WHERE GOODS_REG_GB IS NULL   /* 온라인 미등록 상품 */
 		<if test="modelNo != null and modelNo != ''">
-		AND UPPER(A.MODEL_NO) = CONCAT('%',UPPER(#{modelNo}),'%') 
+		AND UPPER(A.MODEL_NO) LIKE CONCAT('%',UPPER(#{modelNo}),'%') 
 		</if>
 		<if test="stDate != null and stDate != ''">
 		AND A.REG_DT >= DATE_FORMAT(#{stDate}, '%Y-%m-%d %H:%i:%S')
@@ -3697,6 +3726,7 @@
 		AND UPPER(B.BRAND_CD) = UPPER(#{brandCd}) 
 		</if>
 		ORDER BY A.UPD_DT DESC
+		<include refid="getListPagingCondition_sql"/>
 	</select>
 	
 	<!-- 사은품 등록 -->

+ 32 - 1
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsWmsIncomelotForm.html

@@ -72,6 +72,15 @@
 			<ul class="panelBar">
 				<li class="right">
 					<button type="button" class="btn btn-primary btn-lg"  id="btnCreateFreeGoods">사은품 등록</button>
+					검색결과 : <strong><span id="gridRowTotalCount">0</span> 건</strong>&nbsp;
+					쪽번호 <span id="pgNo">0</span>/ <strong id="endPgNo">0</strong>&nbsp;&nbsp;
+					<select id="pageSize" name="pageSize">
+						<option value="50" selected="selected">50개씩 보기</option>
+						<option value="100">100개씩 보기</option>
+						<option value="500">500개씩 보기</option>
+						<option value="1000">1000개씩 보기</option>
+					</select>
+					<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
 				</li>
 			</ul>
 			<!-- 검색결과 영역 -->
@@ -151,6 +160,7 @@
 	
 	// 조회클릭시
 	$('#btnSearch').on('click', function() {
+		$("#goodsWmsIncomelotForm input[name=pageNo]").val('1');
 		fnGoodsWmsIncomelotListSearch('BASIC');
 	});
 
@@ -165,9 +175,30 @@
 		
 		if(!fnConditionCheck()) return;
 		
-		gagaAgGrid.fetch($('#goodsWmsIncomelotForm').prop('action'), gridOptions, '#goodsWmsIncomelotForm');
+		//gagaAgGrid.fetch($('#goodsWmsIncomelotForm').prop('action'), gridOptions, '#goodsWmsIncomelotForm');
+		
+		gagaPaging.init('goodsWmsIncomelotForm', fnSearchCallBack, 'goodsListPagination', $('#goodsWmsIncomelotForm').find('#pageSize').val());
+		gagaPaging.load($("#goodsWmsIncomelotForm input[name=pageNo]").val());
 	}
 
+	var fnSearchCallBack = function(result){
+
+		$('#goodsWmsIncomelotForm').find('#gridRowTotalCount').html(result.pageing.pageable.totalCount.addComma());
+		$('#goodsWmsIncomelotForm').find('#pageNo').val(result.pageing.pageable.pageNo.addComma());
+		$('#goodsWmsIncomelotForm').find('#pgNo').html(result.pageing.pageable.pageNo.addComma());
+		$('#goodsWmsIncomelotForm').find('#endPgNo').html(result.pageing.pageable.totalPage.addComma());
+		gridOptions.api.setRowData(result.goodsList);
+		gagaPaging.createPagination(result.pageing.pageable);
+		
+	}
+	
+	//페이징
+	$('#goodsWmsIncomelotForm select[name=pageSize]').on('change', function() {
+		$("#goodsWmsIncomelotForm input[name=pageNo]").val('1');
+		fnGoodsWmsIncomelotListSearch($("#goodsWmsIncomelotForm input[name=searchGb]").val());
+	});
+	
+	
 	//검색 조건 확인
 	var fnConditionCheck = function(){
 		var formId = '#goodsWmsIncomelotForm';

+ 9 - 0
style24.batch/src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java

@@ -11,6 +11,7 @@ import com.style24.persistence.domain.GoodsIfMeasurement;
 import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSummary;
 import com.style24.persistence.domain.IfBrand;
+import com.style24.persistence.domain.IfProduct;
 import com.style24.persistence.domain.IfProvider;
 
 /**
@@ -292,4 +293,12 @@ public interface TsbGoodsDao {
 	 */
 	Collection<IfBrand> getBrandList();
 
+	/**
+	 * 상품 정보 조회
+	 *
+	 * @author eskim
+	 * @since 2021. 01. 06
+	 */
+	Collection<IfProduct> getGoodsList();
+
 }

+ 10 - 0
style24.batch/src/main/java/com/style24/batch/biz/dao/TsbWmsGoodsDao.java

@@ -7,6 +7,7 @@ import com.style24.persistence.domain.GoodsIfIncomelot;
 import com.style24.persistence.domain.GoodsIfIncomelotitem;
 import com.style24.persistence.domain.GoodsIfMeasurement;
 import com.style24.persistence.domain.IfBrand;
+import com.style24.persistence.domain.IfProduct;
 import com.style24.persistence.domain.IfProvider;
 
 /**
@@ -72,4 +73,13 @@ public interface TsbWmsGoodsDao {
 	 */
 	void saveWmsBrandProviderXref(IfBrand ifBrand);
 
+	/**
+	 * WMS 상품 정보 송신
+	 *
+	 * @param ifProduct
+	 * @author eskim
+	 * @since 2021. 01. 06
+	 */
+	void saveWmsProduct(IfProduct ifProduct);
+
 }

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

@@ -5,7 +5,7 @@ import org.springframework.stereotype.Component;
 
 import com.style24.batch.biz.job.TsbAbstractJob;
 import com.style24.batch.biz.service.TsbCommonService;
-import com.style24.batch.biz.service.TsbGoodsService;
+import com.style24.batch.biz.service.TsbWmsGoodsService;
 import com.style24.persistence.domain.IfBrand;
 
 import lombok.extern.slf4j.Slf4j;
@@ -23,7 +23,7 @@ import com.gagaframework.web.util.GagaDateUtil;
 public class TsbGoodsWmsBrandproviderJob extends TsbAbstractJob<IfBrand, IfBrand, IfBrand> {
 
 	@Autowired
-	private TsbGoodsService goodsService;
+	private TsbWmsGoodsService wmsGoodsService;
 
 	@Autowired
 	private TsbCommonService commonService;
@@ -52,7 +52,7 @@ public class TsbGoodsWmsBrandproviderJob extends TsbAbstractJob<IfBrand, IfBrand
 	@Override
 	public IfBrand write(IfBrand ifBrand) throws Exception {
 
-		goodsService.saveWmsBrandProvider();
+		wmsGoodsService.saveWmsBrandProvider();
 
 		return ifBrand;
 	}

+ 69 - 0
style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsProductJob.java

@@ -0,0 +1,69 @@
+package com.style24.batch.biz.job.goods;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.style24.batch.biz.job.TsbAbstractJob;
+import com.style24.batch.biz.service.TsbCommonService;
+import com.style24.batch.biz.service.TsbWmsGoodsService;
+import com.style24.persistence.domain.IfProduct;
+
+import lombok.extern.slf4j.Slf4j;
+
+import com.gagaframework.web.util.GagaDateUtil;
+
+/**
+ * WMS 입고 연용
+ *
+ * @author eskim
+ * @since 2021. 01. 01
+ */
+@Component
+@Slf4j
+public class TsbGoodsWmsProductJob extends TsbAbstractJob<IfProduct, IfProduct, IfProduct> {
+
+	@Autowired
+	private TsbWmsGoodsService wmsGoodsService;
+
+	@Autowired
+	private TsbCommonService commonService;
+
+	private int succCnt = 0;
+	private int failCnt = 0;
+	private String jobdate = "";
+
+	@Override
+	public IfProduct read() throws Exception {
+
+		// WMS 동기화 옵션 여부 확인
+		String wmsSyncYn = commonService.getWmsSyncYn();
+		if ("N".equals(wmsSyncYn)) {
+			log.info("WMS 정보 동기화 미실행 {}, 연동여부 : {}", GagaDateUtil.getToday("yyyy-MM-dd HH:mm:ss"), wmsSyncYn);
+			return null;
+		}
+		IfProduct ifProduct = new IfProduct();
+		return ifProduct;
+	}
+
+	@Override
+	public IfProduct process(IfProduct ifProduct) throws Exception {
+		return ifProduct;
+	}
+
+	@Override
+	public IfProduct write(IfProduct ifProduct) throws Exception {
+
+		jobdate = GagaDateUtil.getOffsetDate(-1);	//전일자
+
+		//온라인 상품정보 조회 처리
+		wmsGoodsService.saveGoodsWmsProduct(jobdate);
+
+		return ifProduct;
+	}
+
+	@Override
+	public void notify(IfProduct ifProduct) throws Exception {
+		super.printResult(succCnt, failCnt);
+	}
+
+}

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

@@ -19,6 +19,7 @@ import com.style24.persistence.domain.GoodsIfMeasurement;
 import com.style24.persistence.domain.GoodsSafeNo;
 import com.style24.persistence.domain.GoodsSummary;
 import com.style24.persistence.domain.IfBrand;
+import com.style24.persistence.domain.IfProduct;
 import com.style24.persistence.domain.IfProvider;
 
 import io.netty.util.internal.StringUtil;
@@ -409,40 +410,39 @@ public class TsbGoodsService {
 	}
 
 	/**
-	 * WMS 브랜드/업체정보 송신
+	 * 업체정보 조회
 	 *
 	 * @return
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
-	//@Transactional("wmsTxnManager")
-	public void saveWmsBrandProvider() {
-
-		//업체정보 송신(수정일 7일)
-		/*
-		 * 매핑 확인건
-		G065_10	자사-제조
-		G065_11	자사-사입
-		G065_12	자사-위탁
-		 */
+	public Collection<IfProvider> getSupplyCompanyList() {
+		return goodsDao.getSupplyCompanyList();
+	}
 
-		Collection<IfProvider> ifProviderList = goodsDao.getSupplyCompanyList();
+	/**
+	 * 브랜드정보 조회
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 01
+	 */
+	public Collection<IfBrand> getBrandList() {
+		return goodsDao.getBrandList();
+	}
 
-		for (IfProvider ifProvider : ifProviderList) {
-			ifProvider.setRegNo(TsbConstants.REG_NO);
-			ifProvider.setUpdNo(TsbConstants.REG_NO);
-			wmsGoodsService.saveWmsProvider(ifProvider);
-		}
 
-		//브랜드, 브랜드/업체 관계정보 송신
-		Collection<IfBrand> ifBrandList = goodsDao.getBrandList();
+	/**
+	 * 상품 정보 조회
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 06
+	 */
+	public Collection<IfProduct> getGoodsList() {
+		return goodsDao.getGoodsList();
+	}
 
-		for (IfBrand ifBrand : ifBrandList) {
-			ifBrand.setRegNo(TsbConstants.REG_NO);
-			ifBrand.setUpdNo(TsbConstants.REG_NO);
-			wmsGoodsService.saveWmsBrand(ifBrand);
-		}
 
-	}
 
 }

+ 68 - 10
style24.batch/src/main/java/com/style24/batch/biz/service/TsbWmsGoodsService.java

@@ -4,12 +4,15 @@ import java.util.Collection;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.style24.batch.biz.dao.TsbWmsGoodsDao;
+import com.style24.batch.support.env.TsbConstants;
 import com.style24.persistence.domain.GoodsIfIncomelot;
 import com.style24.persistence.domain.GoodsIfIncomelotitem;
 import com.style24.persistence.domain.GoodsIfMeasurement;
 import com.style24.persistence.domain.IfBrand;
+import com.style24.persistence.domain.IfProduct;
 import com.style24.persistence.domain.IfProvider;
 
 import lombok.extern.slf4j.Slf4j;
@@ -27,6 +30,9 @@ public class TsbWmsGoodsService {
 	@Autowired
 	private TsbWmsGoodsDao wmsGoodsDao;
 
+	@Autowired
+	private TsbGoodsService goodsService;
+
 	/**
 	 * WMS 실측사이즈 연용
 	 *
@@ -67,23 +73,75 @@ public class TsbWmsGoodsService {
 	 * @author eskim
 	 * @since 2021. 01. 05
 	 */
-	//@Transactional("wmsTxnManager")
-	public void saveWmsProvider(IfProvider ifProvider) {
-		wmsGoodsDao.saveWmsProvider(ifProvider);
+	@Transactional("wmsTxnManager")
+	public void saveWmsBrand(IfBrand ifBrand) {
+		//브랜드 정보 송신
+		wmsGoodsDao.saveWmsBrand(ifBrand);
+		//WMS 브랜드업체관계정보 송신
+		wmsGoodsDao.saveWmsBrandProviderXref(ifBrand);
 	}
 
+
 	/**
-	 * WMS 업체정보 송신
+	 * WMS 브랜드/업체정보 송신
 	 *
 	 * @return
 	 * @author eskim
-	 * @since 2021. 01. 05
+	 * @since 2021. 01. 01
 	 */
-	public void saveWmsBrand(IfBrand ifBrand) {
-		//브랜드 정보 송신
-		wmsGoodsDao.saveWmsBrand(ifBrand);
-		//WMS 브랜드업체관계정보 송신
-		wmsGoodsDao.saveWmsBrandProviderXref(ifBrand);
+	@Transactional("wmsTxnManager")
+	public void saveWmsBrandProvider() {
+
+		//업체정보 송신(수정일 7일)
+		/*
+		 * 매핑 확인건
+		G065_10	자사-제조
+		G065_11	자사-사입
+		G065_12	자사-위탁
+		 */
+
+		Collection<IfProvider> ifProviderList = goodsService.getSupplyCompanyList();
+
+		for (IfProvider ifProvider : ifProviderList) {
+			ifProvider.setRegNo(TsbConstants.REG_NO);
+			ifProvider.setUpdNo(TsbConstants.REG_NO);
+			wmsGoodsDao.saveWmsProvider(ifProvider);
+		}
+
+		//브랜드, 브랜드/업체 관계정보 송신
+		Collection<IfBrand> ifBrandList = goodsService.getBrandList();
+
+		for (IfBrand ifBrand : ifBrandList) {
+			ifBrand.setRegNo(TsbConstants.REG_NO);
+			ifBrand.setUpdNo(TsbConstants.REG_NO);
+			//브랜드 정보 송신
+			wmsGoodsDao.saveWmsBrand(ifBrand);
+			//WMS 브랜드업체관계정보 송신
+			wmsGoodsDao.saveWmsBrandProviderXref(ifBrand);
+		}
+
+	}
+
+	/**
+	 * WMS 상품정보 송신
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 06
+	 */
+	@Transactional("wmsTxnManager")
+	public void saveGoodsWmsProduct(String jobdate) {
+		//상품 정보 송신
+		Collection<IfProduct> ifGoodsList = goodsService.getGoodsList();
+
+		for (IfProduct ifProduct : ifGoodsList) {
+			ifProduct.setRegNo(TsbConstants.REG_NO);
+			ifProduct.setUpdNo(TsbConstants.REG_NO);
+			//상품 정보 송신
+			wmsGoodsDao.saveWmsProduct(ifProduct);
+
+		}
+
 	}
 
 }

+ 2 - 3
style24.batch/src/main/java/com/style24/batch/biz/task/TsbDeliveryTask.java

@@ -2,7 +2,6 @@ package com.style24.batch.biz.task;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import com.style24.batch.biz.job.delivery.TsbDailyDeliveryZoneJob;
@@ -47,12 +46,12 @@ public class TsbDeliveryTask {
 	 */
 
 	/**
-	 * 총알배송 권역정보   : 일배치  오전 11시  
+	 * 총알배송 권역정보   : 일배치  오전 11시
 	 *
 	 * @throws Exception
 	 */
 	//@Scheduled(cron = "${cron.delivery.tsbDailyDeliveryZoneJob}")
-	@Scheduled(fixedDelay = 3500000)
+	//@Scheduled(fixedDelay = 3500000)
 	@Async
 	public void tsbDailyDeliveryZoneJob() throws Exception {
 		dailyDeliveryZoneJob.run("cron.delivery.daily.deliveryZone");

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

@@ -15,6 +15,7 @@ import com.style24.batch.biz.job.goods.TsbGoodsTnmJob;
 import com.style24.batch.biz.job.goods.TsbGoodsWmsBrandproviderJob;
 import com.style24.batch.biz.job.goods.TsbGoodsWmsIncomelotJob;
 import com.style24.batch.biz.job.goods.TsbGoodsWmsMeasurementJob;
+import com.style24.batch.biz.job.goods.TsbGoodsWmsProductJob;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -57,7 +58,8 @@ public class TsbGoodsTask {
 	@Autowired
 	private TsbGoodsWmsBrandproviderJob goodsWmsBrandproviderJob;
 
-
+	@Autowired
+	private TsbGoodsWmsProductJob goodsWmsProductJob;
 
 	/**
 	 * 초 분 시 일 월 주(년)
@@ -185,7 +187,7 @@ public class TsbGoodsTask {
 	 * @throws Exception
 	 */
 	@Scheduled(cron = "${cron.goods.wms.incomelot}")
-	//@Scheduled(fixedDelay = 3500000)
+	@Scheduled(fixedDelay = 3500000)
 	@Async
 	public void tsbGoodsWmsIncomelotJob() throws Exception {
 		goodsWmsIncomelotJob.runById("cron.goods.wms.incomelot");
@@ -203,5 +205,17 @@ public class TsbGoodsTask {
 		goodsWmsBrandproviderJob.runById("cron.goods.wms.brandprovider");
 	}
 
+	/**
+	 * WMS 상품정보 송신 적용 주기 : 일배치 - 03시 15분
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.goods.wms.product}")
+	//@Scheduled(fixedDelay = 3500000)
+	@Async
+	public void tsbGoodsWmsProductJob() throws Exception {
+		goodsWmsProductJob.runById("cron.goods.wms.product");
+	}
+
 
 }

+ 31 - 0
style24.batch/src/main/java/com/style24/persistence/domain/IfProduct.java

@@ -0,0 +1,31 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * wms 연동 상품정보 Domain
+ *
+ * @author eskim
+ * @since 2021. 01. 05
+ */
+@SuppressWarnings("serial")
+@Data
+public class IfProduct extends TscBaseDomain {
+
+	private Integer productno;			//상품번호
+	private String productcode;			//상품코드
+	private String productname;			//상품명
+	private int brandno;				//브랜드번호
+	private String brandname;			//브랜드명
+	private int providerno;				//공급처번호
+	private String statuscd;			//관리상태
+	private String producttypecd;		//상품타입
+	private String vendorproductcode;	//업체상품코드
+	private String goodsCd;				//온라인상품코드
+	private String brandCd;				//온라인브랜드코드
+	private String supplyCompCd;		//온라인공급업체코드
+	private String sysImgNm;			//온라인상품이미지
+
+}

+ 32 - 12
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -1208,10 +1208,6 @@
 		       PRODUCT_NO 
 		     , PRODUCT_CODE 
 		     , PRODUCT_NAME 
-		     , SKUCODE 
-		     , NORMAL_QTY 
-		     , BROKEN_QTY 
-		     , TOTAL_QTY 
 		     , MODEL_NO 
 		     , PROVIDER_NO
 		     , PROVIDER_NAME
@@ -1225,11 +1221,7 @@
 		SELECT B.PRODUCTNO 
 		     , B.PRODUCTCODE 
 		     , B.PRODUCTNAME 
-		     , B.SKUCODE 
-		     , B.NORMALQTY 
-		     , B.BROKENQTY 
-		     , B.TOTALQTY 
-		     , B.MODELNO 
+		     , LEFT(B.MODELNO,10) AS MODELNO 
 		     , A.PROVIDERNO
 		     , A.PROVIDERNAME
 		     , A.BRANDNO
@@ -1257,9 +1249,6 @@
 		</choose>
 		ON DUPLICATE KEY UPDATE
 		       PRODUCT_NAME = IF(GOODS_REG_GB IS NULL, B.PRODUCTNAME, TB_WMS_GOODS.PRODUCT_NAME)
-		     , NORMAL_QTY = IF(GOODS_REG_GB IS NULL, B.NORMALQTY, TB_WMS_GOODS.NORMAL_QTY)
-		     , BROKEN_QTY = IF(GOODS_REG_GB IS NULL, B.BROKENQTY, TB_WMS_GOODS.BROKEN_QTY)
-		     , TOTAL_QTY = IF(GOODS_REG_GB IS NULL, B.TOTALQTY, TB_WMS_GOODS.TOTAL_QTY)
 		     , MODEL_NO = IF(GOODS_REG_GB IS NULL, B.MODELNO, TB_WMS_GOODS.MODEL_NO)
 		     , PROVIDER_NO = IF(GOODS_REG_GB IS NULL, A.PROVIDERNO, TB_WMS_GOODS.PROVIDER_NO)
 		     , PROVIDER_NAME = IF(GOODS_REG_GB IS NULL, A.PROVIDERNAME, TB_WMS_GOODS.PROVIDER_NAME)
@@ -1311,4 +1300,35 @@
 		]]>
 	</select>
 	
+	<!-- 상품 목록 -->
+	<select id="getGoodsList" resultType="IfProduct">
+		/* TsbGoods.getGoodsList */
+		SELECT G.PRODUCT_NO AS PRODUCTNO
+		     , G.PRODUCT_CODE AS PRODUCTCODE
+		     , G.GOODS_NM AS PRODUCTNAME
+		     , B.BRAND_NO AS BRANDNO
+		     , B.BRAND_ENM AS BRANDNAME
+		     , C.PROVIDER_NO AS PROVIDERNO
+		     , (CASE G.GOODS_STAT WHEN 'G008_20' THEN '승인보류' 
+		                         WHEN 'G008_40' THEN '승인대기' 
+		                         WHEN 'G008_70' THEN '품절'
+		                         WHEN 'G008_99' THEN '삭제'
+		                         WHEN 'G008_95' THEN '판매중지'
+		                         ELSE '판매중'
+		        END) AS STATUSCD
+		     , G.SUPPLY_GOODS_CD AS VENDORPRODUCTCODE
+		     , G.GOODS_CD
+		     , G.BRAND_CD
+		     , G.SUPPLY_COMP_CD
+		     , (SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = G.GOODS_CD AND COLOR_CD = G.MAIN_COLOR_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
+		FROM   TB_GOODS G
+		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+		INNER JOIN TB_SUPPLY_COMPANY C ON G.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD
+		WHERE  G.SELF_GOODS_YN  = 'Y'  /* 자사 */
+		AND G.UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
+		<![CDATA[
+		AND G.UPD_DT < DATE_FORMAT(DATE_FORMAT(NOW(), '%Y%m%d'), '%Y%m%d%H%i%S')
+		]]>
+	</select>
+	
 </mapper>

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

@@ -68,6 +68,7 @@
 		     , NORMALQTY
 		     , BROKENQTY
 		     , TOTALQTY
+		     , MODELNO
 		FROM TB_IF_INCOMELOTITEM
 		WHERE 1 = 1 
 		<choose>
@@ -194,4 +195,22 @@
 		           );
 	</insert>
 	
+	<!--WMS 상품정보 송신-->
+	<update id="saveWmsProduct" parameterType="IfProduct" >
+		/* TsbWmsGoods.saveWmsProduct */
+		UPDATE TB_IF_PRODUCT
+		SET PRODUCTNAME = #{productname}
+		  , BRANDNO = #{brandno}
+		  , BRANDNAME = #{brandname}
+		  , PROVIDERNO = #{providerno}
+		  , STATUSCD = #{statuscd}
+		  , VENDORPRODUCTCODE = #{vendorproductcode}
+		  , GOODS_CD = #{goodsCd}
+		  , BRAND_CD = #{brandCd }
+		  , SUPPLY_COMP_CD = #{supplyCompCd}
+		  , SYS_IMG_NM = #{sysImgNm}
+		  , DATElASTMODIFIED = GETDATE()
+		WHERE PRODUCTCODE = #{productcode}
+	</update>
+	
 </mapper>

+ 1 - 0
style24.batch/src/main/resources/config/application-locd.yml

@@ -52,6 +52,7 @@ cron:
         wms.measurement: 2 22 2 29 2 ?
         wms.incomelot: 2 22 2 29 2 ?
         wms.brandprovider: 2 22 2 29 2 ?
+        wms.product: 2 22 2 29 2 ?
     
     #통계
     statistics:

+ 1 - 1
style24.front/target/m2e-wtp/web-resources/META-INF/maven/com.style24.front/style24.front/pom.properties

@@ -1,5 +1,5 @@
 #Generated by Maven Integration for Eclipse
-#Tue Jan 05 10:10:08 KST 2021
+#Wed Jan 06 15:15:11 KST 2021
 version=0.0.1-SNAPSHOT
 groupId=com.style24.front
 m2e.projectName=style24.front