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

Merge branch 'develop' of http://112.172.147.34:4936/style24/STYLE24.git into develop

gagamel 5 лет назад
Родитель
Сommit
5b1d6d3017
25 измененных файлов с 712 добавлено и 186 удалено
  1. 15 0
      .gitignore
  2. 11 1
      style24.admin/.gitignore
  3. 18 2
      style24.admin/src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java
  4. 28 1
      style24.admin/src/main/java/com/style24/admin/biz/service/TsaGoodsService.java
  5. 15 0
      style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java
  6. 1 0
      style24.admin/src/main/java/com/style24/persistence/domain/WmsGoods.java
  7. 48 1
      style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml
  8. 66 83
      style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsWmsIncomelotForm.html
  9. 13 1
      style24.batch/.gitignore
  10. 19 0
      style24.batch/src/main/java/com/style24/batch/biz/dao/TsbGoodsDao.java
  11. 34 5
      style24.batch/src/main/java/com/style24/batch/biz/dao/TsbWmsGoodsDao.java
  12. 65 0
      style24.batch/src/main/java/com/style24/batch/biz/job/goods/TsbGoodsWmsBrandproviderJob.java
  13. 39 1
      style24.batch/src/main/java/com/style24/batch/biz/service/TsbGoodsService.java
  14. 28 0
      style24.batch/src/main/java/com/style24/batch/biz/service/TsbWmsGoodsService.java
  15. 20 1
      style24.batch/src/main/java/com/style24/batch/biz/task/TsbGoodsTask.java
  16. 28 0
      style24.batch/src/main/java/com/style24/persistence/domain/IfBrand.java
  17. 30 0
      style24.batch/src/main/java/com/style24/persistence/domain/IfProvider.java
  18. 0 49
      style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbCommon.xml
  19. 79 37
      style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml
  20. 114 0
      style24.batch/src/main/java/com/style24/persistence/mybatis/wms/TsbWmsGoods.xml
  21. 3 0
      style24.batch/src/main/resources/config/application-locd.yml
  22. 11 1
      style24.core/.gitignore
  23. 14 2
      style24.front/.gitignore
  24. 1 1
      style24.front/target/m2e-wtp/web-resources/META-INF/maven/com.style24.front/style24.front/pom.properties
  25. 12 0
      style24.scm/.gitignore

+ 15 - 0
.gitignore

@@ -0,0 +1,15 @@
+target/
+.settings/
+.classpath
+/bin/
+/target/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### MacOS ###
+.DS_Store
+META-INF/context.xml

+ 11 - 1
style24.admin/.gitignore

@@ -2,4 +2,14 @@ target/
 .settings/
 .classpath
 /bin/
-/target/
+/target/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### MacOS ###
+.DS_Store
+META-INF/context.xml

+ 18 - 2
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaGoodsDao.java

@@ -1068,8 +1068,6 @@ public interface TsaGoodsDao {
 	 */
 	public void updateFreeGoods(FreeGoods freeGoods);
 
-
-
 	/**
 	 * WMS입고상품관리 목록 조회
 	 * @param goodsSearch
@@ -1078,4 +1076,22 @@ public interface TsaGoodsDao {
 	 * @since 2021. 01. 04
 	 */
 	Collection<WmsGoods> getGoodsWmsIncomelotList(WmsGoods wmsGoods);
+
+	/**
+	 *  WMS 입고상품 사은품 등록
+	 * @param freeGoods
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	public void saveFreeGoods(FreeGoods freeGoods);
+
+	/**
+	 *  WMS 입고상품 사은품 상품 구분 저장
+	 * @param wmsGoods
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	public void saveGoodsWmsIncomelot(WmsGoods wmsGoods);
+
+
 }

+ 28 - 1
style24.admin/src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -2652,7 +2652,6 @@ public class TsaGoodsService {
 
 		freeGoods.setUpdNo(TsaSession.getInfo().getUserNo());
 		goodsDao.updateFreeGoods(freeGoods);
-
 	}
 
 	/**
@@ -2667,5 +2666,33 @@ public class TsaGoodsService {
 		return goodsDao.getGoodsWmsIncomelotList(wmsGoods);
 	}
 
+	/**
+	 * WMS 입고상품 사은품 등록
+	 * @param wmsGoodsList
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	@Transactional("shopTxnManager")
+	public void saveFreeGoods(Collection<WmsGoods> wmsGoodsList){
+
+		for (WmsGoods wmsGoods: wmsGoodsList) {
+			FreeGoods freeGoods = new FreeGoods();
+			freeGoods.setProductNo(wmsGoods.getProductNo());
+			freeGoods.setProductCode(wmsGoods.getProductCode());
+			freeGoods.setGoodsNum(wmsGoods.getModelNo());
+			freeGoods.setBrandCd(wmsGoods.getBrandCd());
+			freeGoods.setGoodsNm(wmsGoods.getProductName());
+			freeGoods.setUseYn("Y");
+			freeGoods.setUpdNo(TsaSession.getInfo().getUserNo());
+			freeGoods.setRegNo(TsaSession.getInfo().getUserNo());
+			goodsDao.saveFreeGoods(freeGoods);
+
+			//WMS 상품등록구분
+			wmsGoods.setGoodsRegGb("F");
+			wmsGoods.setUpdNo(TsaSession.getInfo().getUserNo());
+			wmsGoods.setRegNo(TsaSession.getInfo().getUserNo());
+			goodsDao.saveGoodsWmsIncomelot(wmsGoods);
+		}
+	}
 
 }

+ 15 - 0
style24.admin/src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -1276,6 +1276,21 @@ public class TsaGoodsController extends TsaBaseController {
 		return goodsService.getGoodsWmsIncomelotList(wmsGoods);
 	}
 
+	/**
+	 * WMS 입고상품 사은품 등록
+	 *
+	 * @param goods
+	 * @return
+	 * @author eskim
+	 * @since 2020. 10. 30
+	 */
+	@PostMapping("/free/goods/save")
+	@ResponseBody
+	public GagaResponse saveFreeGoods(@RequestBody Collection<WmsGoods> wmsGoodsList) {
+		goodsService.saveFreeGoods(wmsGoodsList);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
+
 	/**
 	 * 상품품목변경관리 화면
 	 *

+ 1 - 0
style24.admin/src/main/java/com/style24/persistence/domain/WmsGoods.java

@@ -31,6 +31,7 @@ public class WmsGoods extends TscBaseDomain {
 
 	private String supplyCompCd;
 	private String brandCd;
+	private String brandEnm;
 	private String stDate;
 	private String edDate;
 

+ 48 - 1
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaGoods.xml

@@ -3667,8 +3667,12 @@
 		     , A.BRAND_NAME
 		     , A.GOODS_REG_DT
 		     , A.GOODS_REG_GB
+		     , B.BRAND_CD
+		     , B.BRAND_ENM
+		     , A.REG_NO
 		     , FN_GET_USER_NM(A.REG_NO) AS REG_NM
 		     , DATE_FORMAT(A.REG_DT,'%Y%m%d%H%i%S') AS REG_DT
+		     , A.UPD_NO
 		     , 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
@@ -3693,5 +3697,48 @@
 		AND UPPER(B.BRAND_CD) = UPPER(#{brandCd}) 
 		</if>
 		ORDER BY A.UPD_DT DESC
-	</select>
+	</select>
+	
+	<!-- 사은품 등록 -->
+	<insert id="saveFreeGoods" parameterType="WmsGoods">
+		/* TsaGoods.saveFreeGoods */
+		INSERT INTO TB_FREE_GOODS (
+		       PRODUCT_NO
+		     , PRODUCT_CODE
+		     , GOODS_NUM
+		     , BRAND_CD
+		     , GOODS_NM
+		     , USE_YN
+		     , SYS_IMG_NM
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		VALUES (
+		       #{productNo}
+		     , #{productCode}
+		     , #{goodsNum}
+		     , #{brandCd}
+		     , #{goodsNm}
+		     , #{useYn}
+		     , NULL
+		     , #{regNo}
+		     , NOW()
+		     , #{updNo}
+		     , NOW()
+		)
+	</insert>
+	
+	<!-- WMS 입고상품 사은품 상품 구분 저장 -->
+	<update id="saveGoodsWmsIncomelot" parameterType="WmsGoods">
+		/* TsaGoods.saveGoodsWmsIncomelot */
+		UPDATE TB_WMS_GOODS
+		SET GOODS_REG_GB = #{goodsRegGb}
+		  , GOODS_REG_DT = NOW()
+		  , UPD_NO = #{updNo}
+		  , UPD_DT = NOW()
+		WHERE PRODUCT_NO = #{productNo}
+	</update>
+	
 </mapper>

+ 66 - 83
style24.admin/src/main/webapp/WEB-INF/views/goods/GoodsWmsIncomelotForm.html

@@ -22,9 +22,8 @@
 		<!-- 메뉴 설명 -->
 		<div class="infoBox menu-desc">
 		</div>
-		<form id="goodsUnregisterListForm" name="goodsUnregisterListForm" action="#" th:action="@{'/goods/wms/incomelot/list'}">
+		<form id="goodsWmsIncomelotForm" name="goodsWmsIncomelotForm" action="#" th:action="@{'/goods/wms/incomelot/list'}">
 		<input type="hidden" id="searchGb" name="searchGb" />
-		<input type="hidden" id="dateGbn" name="dateGbn" value="R" />
  		<!-- 패널 영역1 -->
 		<div class="panelStyle" >
 			<div class="panelTitle">
@@ -72,7 +71,7 @@
 		<div class="panelStyle">
 			<ul class="panelBar">
 				<li class="right">
-					<button type="button" class="btn btn-primary btn-lg"  id="btnGoodsSetMake">사은품 등록</button>
+					<button type="button" class="btn btn-primary btn-lg"  id="btnCreateFreeGoods">사은품 등록</button>
 				</li>
 			</ul>
 			<!-- 검색결과 영역 -->
@@ -91,43 +90,50 @@
 <script th:inline="javascript">
 /*<![CDATA[*/
 	var sessRoleCd = [[${sessionInfo.roleCd}]];
-	var goodsStatList = gagajf.convertToArray([[${goodsStatList}]]);
-	var itemkindList = gagajf.convertToArray([[${itemkindList}]]);
 	var columnDefs = [
 		{width: 40, minWidth: 40, cellClass: 'text-right', headerCheckboxSelection: true, checkboxSelection: true, filter: false}, 
 		{headerName: 'No', width: 60, cellClass: 'text-center', valueGetter: function(params) { return params.node.rowIndex + 1 }},
 		{headerName: "브랜드", field: "brandCd", width: 100, cellClass: 'text-center'},
 		{headerName: "브랜드명", field: "brandEnm", width: 130, cellClass: 'text-center'},
-		{headerName: "상품코드", field: "goodsCd", width: 120, cellClass: 'text-center'},
-		{headerName: "ERP상품명", field: "erpGoodsNm", width: 200, cellClass: 'text-left'},
-		{headerName: "상품명", field: "goodsNm", width: 200, cellClass: 'text-left'},
-		//{headerName: "품목코드", field: "itemkindCd", width: 100, cellClass: 'text-center'},
-		{headerName: "품목명", field: "itemkindCd" , width: 200, cellClass: 'text-left',
-			cellEditorParams: { values: gagaAgGrid.extractValues(itemkindList) },
-			valueFormatter: function (params) { return gagaAgGrid.lookupValue(itemkindList, params.value); },
-			valueParser: function (params) { return gagaAgGrid.lookupKey(itemkindList, params.newValue); }
-		},
+		{headerName: "WMS상품코드", field: "productCode", width: 120, cellClass: 'text-center'},
+		{headerName: "WMS상품명", field: "productName", width: 400, cellClass: 'text-left'},
+		{headerName: "모델번호", field: "modelNo" , width: 200, cellClass: 'text-center'},
 		{headerName: "등록일시", field: "regDt", width: 150, cellClass: 'text-center',
 			cellRenderer: function(params) {
 				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
 			}
 		},
-		{headerName: "등록자", field: "regId", width: 100, cellClass: 'text-center'},
+		{headerName: "등록자", field: "regNm", width: 100, cellClass: 'text-center'
+			,valueFormatter: function(params) {
+				if (params.data.regNo == 0) {
+					return '배치';
+				}else{
+					return params.value;
+				}
+			}
+		},
 		{headerName: "수정일시", field: "updDt", width: 150, cellClass: 'text-center',
 			cellRenderer: function(params) {
 				return !gagajf.isNull(params.value) ? params.value.toDate("YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") : '';
 			}
 		},
-		{headerName: "수정자", field: "updId", width: 100, cellClass: 'text-center'}
+		{headerName: "수정자", field: "updNm", width: 100, cellClass: 'text-center'
+			,valueFormatter: function(params) {
+				if (params.data.updNo == 0) {
+					return '배치';
+				}else{
+					return params.value;
+				}
+			}
+		}
 	];
 	
 	// Get GridOptions
 	var gridOptions = gagaAgGrid.getGridOptions(columnDefs);
 
 	// 중복 선택 가능
-	//gridOptions.rowSelection = 'multiple';
+	gridOptions.rowSelection = 'multiple';
 	gridOptions.suppressRowClickSelection = true;
-	//gridOptions.rowHeight = 60; //이미지가 있을경우 높이 지정해야함.
 
 	// 초기화 클릭시
 	$('#btnInit').on('click', function() {
@@ -135,50 +141,48 @@
 	});
 	
 	var fnInit = function(){
-		$('#goodsUnregisterListForm')[0].reset();
-		//$("#goodsUnregisterListForm input[type=radio]").removeClass("checked");
-		$("#goodsUnregisterListForm input[type=checkbox]").removeClass("checked");
-		//$("#goodsUnregisterListForm input[type=radio]").parent("label").removeClass("checked");
-		$("#goodsUnregisterListForm input[type=checkbox]").parent("label").removeClass("checked");
-		$("#goodsUnregisterListForm input[type=radio][checked]").parent("label").addClass("checked");
+		$('#goodsWmsIncomelotForm')[0].reset();
+		//$("#goodsWmsIncomelotForm input[type=radio]").removeClass("checked");
+		$("#goodsWmsIncomelotForm input[type=checkbox]").removeClass("checked");
+		//$("#goodsWmsIncomelotForm input[type=radio]").parent("label").removeClass("checked");
+		$("#goodsWmsIncomelotForm input[type=checkbox]").parent("label").removeClass("checked");
+		$("#goodsWmsIncomelotForm input[type=radio][checked]").parent("label").addClass("checked");
 	}
 	
 	// 조회클릭시
 	$('#btnSearch').on('click', function() {
-		fnGoodsUnregisterListSearch('BASIC');
+		fnGoodsWmsIncomelotListSearch('BASIC');
 	});
 
 	// 조회
-	var fnGoodsUnregisterListSearch = function(gbn) {
+	var fnGoodsWmsIncomelotListSearch = function(gbn) {
 
 		if (typeof(gbn) != 'undefined' &&  gbn == 'EXCEL'){
-			$("#goodsUnregisterListForm input[name=searchGb]").val("EXCEL");
-		}else if (typeof(gbn) != 'undefined' &&  gbn == 'EXCELRESULT'){
-			$("#goodsUnregisterListForm input[name=searchGb]").val("EXCELRESULT");
+			$("#goodsWmsIncomelotForm input[name=searchGb]").val("EXCEL");
 		}else{
-			$("#goodsUnregisterListForm input[name=searchGb]").val("BASIC");
+			$("#goodsWmsIncomelotForm input[name=searchGb]").val("BASIC");
 		}
 		
 		if(!fnConditionCheck()) return;
 		
-		gagaAgGrid.fetch($('#goodsUnregisterListForm').prop('action'), gridOptions, '#goodsUnregisterListForm');
+		gagaAgGrid.fetch($('#goodsWmsIncomelotForm').prop('action'), gridOptions, '#goodsWmsIncomelotForm');
 	}
 
 	//검색 조건 확인
 	var fnConditionCheck = function(){
-		var formId = '#goodsUnregisterListForm';
-		var form = document.goodsUnregisterListForm;
+		var formId = '#goodsWmsIncomelotForm';
+		var form = document.goodsWmsIncomelotForm;
 
-		if($("#goodsUnregisterListForm input[name=searchGb]").val() == "EXCEL" || $("#goodsUnregisterListForm input[name=searchGb]").val() == "EXCELRESULT") {
+		if($("#goodsWmsIncomelotForm input[name=searchGb]").val() == "EXCEL") {
 			return true;
 		}
 		
 		var searchFlag = false;
 		var cnt = 0;
 
-		/* if( !gagajf.isNull($("#goodsUnregisterListForm select[name=supplyCompCd]").val())
-				|| !gagajf.isNull($("#goodsUnregisterListForm input[name=condition]").val())
-				|| (!gagajf.isNull($("#goodsUnregisterListForm input[name=stDate]").val()) && !gagajf.isNull($("#goodsUnregisterListForm input[name=edDate]").val()))
+		/* if( !gagajf.isNull($("#goodsWmsIncomelotForm select[name=supplyCompCd]").val())
+				|| !gagajf.isNull($("#goodsWmsIncomelotForm input[name=condition]").val())
+				|| (!gagajf.isNull($("#goodsWmsIncomelotForm input[name=stDate]").val()) && !gagajf.isNull($("#goodsWmsIncomelotForm input[name=edDate]").val()))
 			){
 			searchFlag = true;
 		}else{ */
@@ -201,8 +205,8 @@
 			return false;
 		}
 		
-		var fromDate = $('#goodsUnregisterListForm input[name=stDate]').val();
-		var toDate = $('#goodsUnregisterListForm input[name=edDate]').val();
+		var fromDate = $('#goodsWmsIncomelotForm input[name=stDate]').val();
+		var toDate = $('#goodsWmsIncomelotForm input[name=edDate]').val();
 		
 		if (!gagajf.isNull(fromDate) || !gagajf.isNull(toDate)) {
 			
@@ -210,7 +214,7 @@
 				mcxDialog.alertC("등록일 조회시 시작일자와 종료일자를 입력하세요.", {
 					sureBtnText: "확인",
 					sureBtnClick: function() {
-						$('#goodsUnregisterListForm input[name=stDate]').focus();
+						$('#goodsWmsIncomelotForm input[name=stDate]').focus();
 					}
 				});
 				return false;
@@ -220,7 +224,7 @@
 				mcxDialog.alert("노출기간 시작일자는 종료일자 보다 클 수 없습니다.", {
 					sureBtnText: "확인",
 					sureBtnClick: function() {
-						$('#goodsUnregisterListForm input[name=stDate]').focus();
+						$('#goodsWmsIncomelotForm input[name=stDate]').focus();
 					}
 				});
 				return false;
@@ -231,65 +235,44 @@
 	}
 	
 	//업체변경시
-	$('#goodsUnregisterListForm select[name=supplyCompCd]').on('change', function() {
+	$('#goodsWmsIncomelotForm select[name=supplyCompCd]').on('change', function() {
 		var actionUrl = '/renderer/supplyCompany/brand/list/' + $(this).val();
 
 		if(sessRoleCd == "B000"){
 			actionUrl = '/renderer/brand/AuthBrandlist';
 		}
-		$("#goodsUnregisterListForm select[name=brandCd] option:gt(0)").remove();
+		$("#goodsWmsIncomelotForm select[name=brandCd] option:gt(0)").remove();
 
-		cfnCreateCombo(actionUrl, $('#goodsUnregisterListForm select[name=brandCd]'), "[전체]", "");
+		cfnCreateCombo(actionUrl, $('#goodsWmsIncomelotForm select[name=brandCd]'), "[전체]", "");
 	});
 	
-	//엑셀 다운로드 클릭시
-	$('#btnGoodsUnregisterExcelDownLoad').on('click', function() {
-		//gagaAgGrid.exportToExcel('온라인미등록상품', gridOptions);
-		var date = new Date().format("YYYYMMDDHHmmss");
-		var params = {
-			
-			fileName : "온라인미등록상품_"+ date,
-			sheetName: "DATA"
+	
+	// 사은품 등록 클릭시
+	$('#btnCreateFreeGoods').on('click', function() {
+		
+		//선택된 상품
+		var selectedData = gridOptions.api.getSelectedRows();
+		
+		if (selectedData.length == 0) {
+			mcxDialog.alert('선택된 행이 없습니다.');
+			return;
 		}
-		gridOptions.excelStyles = [
-			{
-				id: 'text-center',
-				dataType: 'string',
-				font: {size : 10, bold: false}
-			},
-			{
-				id: 'text-left',
-				dataType: 'string',
-				font: {size : 10, bold: false}
-			}
-		]
 		
-		gridOptions.api.exportDataAsExcel(params);
-	});
-	
-	//엑셀 상품명/품목코드 저장
-	$('#btnGoodsExcelSave').on('click', function() {
-		cfnExcelUploadPopup('goodsInfoExcelUpload', 'goodsInfoExcelSave');
-	});
-	
-	var goodsInfoExcelSave = function(result){
-		mcxDialog.confirm('상품명/품목코드 저장을 진행하시겠습니까?', {
+		mcxDialog.confirm('사은품 등록을 하시겠습니까?', {
 			cancelBtnText: "취소",
 			sureBtnText: "확인",
 			sureBtnClick: function(){
-				var data = {procJob : result.procJob
-						,excelFileNm : result.excelFileNm
-						};
-			var jsonData = JSON.stringify(data);
-			gagajf.ajaxJsonSubmit('/goods/unregister/excelupload/save', jsonData, fnGoodsInfoExcelSaveCallBack);
+				var jsonData = JSON.stringify(selectedData);
+				gagajf.ajaxJsonSubmit('/goods/free/goods/save', jsonData, fnCreateFreeGoodsCollback);
 			}
-		});	
-	}
+		});
+	});
 	
-	var fnGoodsInfoExcelSaveCallBack = function(result){
-		fnGoodsUnregisterListSearch("EXCELRESULT");
+	var fnCreateFreeGoodsCollback = function(result){
+		fnGoodsWmsIncomelotListSearch('BASIC');
 	}
 	
+	
 	$(document).ready(function() {
 
 		cfnCreateCalendar('#sellTerms', 'stDate', 'edDate', true, '등록일');

+ 13 - 1
style24.batch/.gitignore

@@ -1,3 +1,15 @@
 target/
+.settings/
 .classpath
-/target/
+/bin/
+/target/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### MacOS ###
+.DS_Store
+META-INF/context.xml

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

@@ -10,6 +10,8 @@ import com.style24.persistence.domain.GoodsIfIncomelotitem;
 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.IfProvider;
 
 /**
  * 상품 Dao
@@ -273,4 +275,21 @@ public interface TsbGoodsDao {
 	 * @since 2021. 01. 04
 	 */
 	void saveWmsGoods(GoodsIfIncomelot goodsIfIncomelot);
+
+	/**
+	 * 공급업체 정보 조회
+	 *
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	Collection<IfProvider> getSupplyCompanyList();
+
+	/**
+	 * 브랜드 정보 조회
+	 *
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	Collection<IfBrand> getBrandList();
+
 }

+ 34 - 5
style24.batch/src/main/java/com/style24/batch/biz/dao/TsbWmsGoodsDao.java

@@ -2,10 +2,12 @@ package com.style24.batch.biz.dao;
 
 import java.util.Collection;
 
-import com.style24.core.support.annotation.ShopDs;
+import com.style24.core.support.annotation.WmsDs;
 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.IfProvider;
 
 /**
  * WMS 상품 연동Dao
@@ -13,13 +15,13 @@ import com.style24.persistence.domain.GoodsIfMeasurement;
  * @author eskim
  * @since 2021. 01. 01
  */
-@ShopDs
+@WmsDs
 public interface TsbWmsGoodsDao {
 
 	/**
 	 * 실측사이즈 연동
 	 *
-	 * @param goods
+	 * @param jobdate
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
@@ -28,7 +30,7 @@ public interface TsbWmsGoodsDao {
 	/**
 	 * 입고 목록
 	 *
-	 * @param goods
+	 * @param jobdate
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
@@ -37,10 +39,37 @@ public interface TsbWmsGoodsDao {
 	/**
 	 * 입고 상품목록
 	 *
-	 * @param goods
+	 * @param jobdate
 	 * @author eskim
 	 * @since 2021. 01. 01
 	 */
 	Collection<GoodsIfIncomelotitem> getWmsIncomelotitemList(String jobdate);
 
+	/**
+	 * WMS 업체정보 송신
+	 *
+	 * @param ifProvider
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	void saveWmsProvider(IfProvider ifProvider);
+
+	/**
+	 * WMS 브랜드정보 송신
+	 *
+	 * @param ifBrand
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	void saveWmsBrand(IfBrand ifBrand);
+
+	/**
+	 * WMS 브랜드업체관계정보 송신
+	 *
+	 * @param ifBrand
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	void saveWmsBrandProviderXref(IfBrand ifBrand);
+
 }

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

@@ -0,0 +1,65 @@
+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.TsbGoodsService;
+import com.style24.persistence.domain.IfBrand;
+
+import lombok.extern.slf4j.Slf4j;
+
+import com.gagaframework.web.util.GagaDateUtil;
+
+/**
+ * WMS 브랜드/업체정보 송신
+ *
+ * @author eskim
+ * @since 2021. 01. 05
+ */
+@Component
+@Slf4j
+public class TsbGoodsWmsBrandproviderJob extends TsbAbstractJob<IfBrand, IfBrand, IfBrand> {
+
+	@Autowired
+	private TsbGoodsService goodsService;
+
+	@Autowired
+	private TsbCommonService commonService;
+
+	private int succCnt = 0;
+	private int failCnt = 0;
+
+	@Override
+	public IfBrand 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;
+		}
+		IfBrand ifBrand = new IfBrand();
+		return ifBrand;
+	}
+
+	@Override
+	public IfBrand process(IfBrand ifBrand) throws Exception {
+		return ifBrand;
+	}
+
+	@Override
+	public IfBrand write(IfBrand ifBrand) throws Exception {
+
+		goodsService.saveWmsBrandProvider();
+
+		return ifBrand;
+	}
+
+	@Override
+	public void notify(IfBrand ifBrand) throws Exception {
+		super.printResult(succCnt, failCnt);
+	}
+
+}

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

@@ -18,6 +18,8 @@ import com.style24.persistence.domain.GoodsIfIncomelotitem;
 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.IfProvider;
 
 import io.netty.util.internal.StringUtil;
 
@@ -365,7 +367,7 @@ public class TsbGoodsService {
 	}
 
 	/**
-	 * WMS 입고정보 연
+	 * WMS 입고정보 연
 	 *
 	 * @return
 	 * @author eskim
@@ -406,5 +408,41 @@ public class TsbGoodsService {
 
 	}
 
+	/**
+	 * WMS 브랜드/업체정보 송신
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 01
+	 */
+	//@Transactional("wmsTxnManager")
+	public void saveWmsBrandProvider() {
+
+		//업체정보 송신(수정일 7일)
+		/*
+		 * 매핑 확인건
+		G065_10	자사-제조
+		G065_11	자사-사입
+		G065_12	자사-위탁
+		 */
+
+		Collection<IfProvider> ifProviderList = goodsDao.getSupplyCompanyList();
+
+		for (IfProvider ifProvider : ifProviderList) {
+			ifProvider.setRegNo(TsbConstants.REG_NO);
+			ifProvider.setUpdNo(TsbConstants.REG_NO);
+			wmsGoodsService.saveWmsProvider(ifProvider);
+		}
+
+		//브랜드, 브랜드/업체 관계정보 송신
+		Collection<IfBrand> ifBrandList = goodsDao.getBrandList();
+
+		for (IfBrand ifBrand : ifBrandList) {
+			ifBrand.setRegNo(TsbConstants.REG_NO);
+			ifBrand.setUpdNo(TsbConstants.REG_NO);
+			wmsGoodsService.saveWmsBrand(ifBrand);
+		}
+
+	}
 
 }

+ 28 - 0
style24.batch/src/main/java/com/style24/batch/biz/service/TsbWmsGoodsService.java

@@ -9,6 +9,8 @@ import com.style24.batch.biz.dao.TsbWmsGoodsDao;
 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.IfProvider;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -58,4 +60,30 @@ public class TsbWmsGoodsService {
 		return wmsGoodsDao.getWmsIncomelotitemList(jobdate);
 	}
 
+	/**
+	 * WMS 업체정보 송신
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	//@Transactional("wmsTxnManager")
+	public void saveWmsProvider(IfProvider ifProvider) {
+		wmsGoodsDao.saveWmsProvider(ifProvider);
+	}
+
+	/**
+	 * WMS 업체정보 송신
+	 *
+	 * @return
+	 * @author eskim
+	 * @since 2021. 01. 05
+	 */
+	public void saveWmsBrand(IfBrand ifBrand) {
+		//브랜드 정보 송신
+		wmsGoodsDao.saveWmsBrand(ifBrand);
+		//WMS 브랜드업체관계정보 송신
+		wmsGoodsDao.saveWmsBrandProviderXref(ifBrand);
+	}
+
 }

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

@@ -12,6 +12,7 @@ import com.style24.batch.biz.job.goods.TsbGoodsRelateScoreJob;
 import com.style24.batch.biz.job.goods.TsbGoodsSnmJob;
 import com.style24.batch.biz.job.goods.TsbGoodsSummaryJob;
 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;
 
@@ -53,6 +54,11 @@ public class TsbGoodsTask {
 	@Autowired
 	private TsbGoodsWmsIncomelotJob goodsWmsIncomelotJob;
 
+	@Autowired
+	private TsbGoodsWmsBrandproviderJob goodsWmsBrandproviderJob;
+
+
+
 	/**
 	 * 초 분 시 일 월 주(년)
 	 * 0 0 12 * * ?" : 아무 요일, 매월, 매일 12:00:00
@@ -155,7 +161,7 @@ public class TsbGoodsTask {
 	 * @throws Exception
 	 */
 	@Scheduled(cron = "${cron.goods.infants.safe}")
-	@Scheduled(fixedDelay = 3500000)
+	//@Scheduled(fixedDelay = 3500000)
 	@Async
 	public void tsbGoodsInfantsSafeNoJob() throws Exception {
 		goodsInfantsSafeNoJob.run("cron.goods.infants.safe");
@@ -185,4 +191,17 @@ public class TsbGoodsTask {
 		goodsWmsIncomelotJob.runById("cron.goods.wms.incomelot");
 	}
 
+	/**
+	 * WMS 업체/브랜드 송신 적용 주기 : 일배치 - 03시 12분
+	 *
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "${cron.goods.wms.brandprovider}")
+	//@Scheduled(fixedDelay = 3500000)
+	@Async
+	public void tsbGoodsWmsBrandproviderJob() throws Exception {
+		goodsWmsBrandproviderJob.runById("cron.goods.wms.brandprovider");
+	}
+
+
 }

+ 28 - 0
style24.batch/src/main/java/com/style24/persistence/domain/IfBrand.java

@@ -0,0 +1,28 @@
+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 IfBrand extends TscBaseDomain {
+
+	private Integer brandno;            //브랜드 넘버
+	private String brandname;           //브랜드 명
+	private String datecreated;         //생성일
+	private String statuscd;            //상태
+	private String brandCd;             //브랜드코드
+	private String dateupdateed;        //수정일
+
+	private String supplyCompCd;       //업체코드
+	private int providerNo;            //공급처번호
+
+
+}

+ 30 - 0
style24.batch/src/main/java/com/style24/persistence/domain/IfProvider.java

@@ -0,0 +1,30 @@
+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 IfProvider extends TscBaseDomain {
+
+	private Integer providerno;		//공급처번호
+	private int vendorno;			//벤더번호 --- 대체값 확인
+	private String providername;	//공급저명
+	private String categorytypecd;	//분류코드
+	private String distributioncd;	//유통구분
+	private String chargename;		//처리담당자 이름
+	private String chargecellnum;	//처리담당자 전화번호
+	private String statuscd;		//상태 (Y: 사용, N: 미사용)
+	private String stockmgmttypecd;	//재고관리 유형
+	private String supplyCompCd;	//온라인공급업체코드
+	private String datecreated;		//생성일
+	private String dateLastmodified; //수정일
+
+}

+ 0 - 49
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbCommon.xml

@@ -2,12 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.style24.batch.biz.dao.TsbCommonDao">
 	
-	<!-- 시퀀스 값 조회 -->
-	<select id="getNextSequence" parameterType="String" resultType="String">
-		/* TsbCommon.getNextSequence */
-		SELECT ${value}.NEXTVAL AS SQ
-		FROM   DUAL
-	</select>
 	
 	<!-- WMS 연동 여부 -->
 	<select id="getWmsSyncYn" resultType="String">
@@ -18,47 +12,4 @@
 		AND CD = 'WMSSYNCYN'
 	</select>
 	
-	<!-- 기본답변문구 조회 -->
-	<select id="getBasicAnswer" parameterType="TsbBasicAnswer" resultType="TsbBasicAnswer">
-		/* TsbCommon.getBasicAnswer */
-		SELECT ANS_TITLE   --답변제목
-		     , ANS_CONTENT --답변내용
-		FROM   TB_BASIC_ANS
-		WHERE   USE_YN = 'Y'
-		<if test="ansSq != null and ansSq != ''">
-		AND     ANS_SQ = #{ansSq}
-		</if>
-		<if test="kkoCd != null and kkoCd != ''">
-		AND     KKO_CD = #{kkoCd}
-		</if>
-	</select>
-
-	<select id="getCommonCodeList" parameterType="TsbCommonCode" resultType="TsbCommonCode">
-		/* TsbCommon.getCommonCodeList */
-		SELECT CD
-		, CD_NM
-		FROM   TB_COMMON_CODE
-		WHERE  1 = 1
-		<if test="useYn != null and useYn != ''">
-			AND    USE_YN = #{useYn}
-		</if>
-		AND    CD_GB = #{cdGb}
-		<if test="cd != null and cd != ''">
-			AND    CD = #{cd}
-		</if>
-		<if test="cdNm != null and cdNm != ''">
-			AND    CD_NM = #{cdNm}
-		</if>
-		<if test="cdDesc != null and cdDesc != ''">
-			AND    CD_DESC = #{cdDesc}
-		</if>
-		<if test="exceptCds != null and exceptCds != ''">
-			AND    CD NOT IN
-			<foreach collection="exceptCds" item="item" index="index"  open="(" close=")" separator=",">
-				#{item}
-			</foreach>
-		</if>
-		ORDER  BY CD_GB, DISP_ORD
-	</select>
-	
 </mapper>

+ 79 - 37
style24.batch/src/main/java/com/style24/persistence/mybatis/shop/TsbGoods.xml

@@ -1088,7 +1088,7 @@
 		     , USERLASTMODIFIED
 		     , UPD_DT
 		)
-		(
+		VALUES(
 		       #{skucode}
 		     , #{productno}
 		     , #{productcode}
@@ -1100,8 +1100,8 @@
 		     , NVL(#{value4},0)
 		     , NVL(#{value5},0)
 		     , #{memo}
-		     , CONVERT(VARCHAR,#{dateinserted},20)  /* yyyy-mm-dd hh:mi:ss */
-		     , CONVERT(VARCHAR,#{datelastmodified},20) 
+		     , DATE_FORMAT(#{dateinserted}, '%Y-%m-%d %H:%i:%S')
+		     , DATE_FORMAT(#{datelastmodified}, '%Y-%m-%d %H:%i:%S')
 		     , NVL(#{isuse},'1')
 		     , #{userlastmodified}
 		     , NOW()
@@ -1114,15 +1114,15 @@
 		     , VALUE4 = NVL(#{value4},0)
 		     , VALUE5 = NVL(#{value5},0)
 		     , MEMO = #{memo}
-		     , DATEINSERTED = CONVERT(VARCHAR,#{dateinserted},20)  /* yyyy-mm-dd hh:mi:ss */
-		     , DATELASTMODIFIED = CONVERT(VARCHAR,#{datelastmodified},20) 
+		     , DATEINSERTED = DATE_FORMAT(#{dateinserted}, '%Y-%m-%d %H:%i:%S')
+		     , DATELASTMODIFIED = DATE_FORMAT(#{datelastmodified}, '%Y-%m-%d %H:%i:%S')
 		     , ISUSE = NVL(#{isuse},'1')
 		     , USERLASTMODIFIED = #{userlastmodified}
 		     , UPD_DT = NOW()
 	</insert>
 	
 	<!--입고 저장-->
-	<insert id="saveGoodsIfIncomelot" parameterType="GoodsIfMeasurement">
+	<insert id="saveGoodsIfIncomelot" parameterType="GoodsIfIncomelot">
 		/* TsbGoods.saveGoodsIfIncomelot */
 		INSERT INTO TB_IF_INCOMELOT (
 		       LOTNO
@@ -1134,14 +1134,14 @@
 		     , DATEINCOME
 		     , UPD_DT
 		)
-		(
+		VALUES (
 		       #{lotno}
 		     , #{purchaseno}
 		     , #{providerno}
 		     , #{providername}
 		     , #{brandno}
 		     , #{brandname}
-		     , CONVERT(VARCHAR,#{dateincome},20)  /* yyyy-mm-dd hh:mi:ss */
+		     , DATE_FORMAT(#{dateincome}, '%Y-%m-%d %H:%i:%S')
 		     , NOW()
 		)
 		ON DUPLICATE KEY UPDATE
@@ -1150,12 +1150,12 @@
 		     , PROVIDERNAME = #{providername}
 		     , BRANDNO = #{brandno}
 		     , BRANDNAME = #{brandname}
-		     , DATEINCOME = CONVERT(VARCHAR,#{dateincome},20)
+		     , DATEINCOME = DATE_FORMAT(#{dateincome}, '%Y-%m-%d %H:%i:%S')
 		     , UPD_DT = NOW()
 	</insert>
 	
 	<!--입고상품 저장-->
-	<insert id="saveGoodsIfIncomelotitem" parameterType="GoodsIfMeasurement">
+	<insert id="saveGoodsIfIncomelotitem" parameterType="GoodsIfIncomelotitem">
 		/* TsbGoods.saveGoodsIfIncomelotitem */
 		INSERT INTO TB_IF_INCOMELOTITEM (
 		       LOTNO
@@ -1172,11 +1172,11 @@
 		     , MODELNO
 		     , UPD_DT
 		)
-		(
+		VALUES (
 		       #{lotno}
 		     , #{itemno}
 		     , #{wmsitemno}
-		     , CONVERT(VARCHAR,#{dateincome},20)  /* yyyy-mm-dd hh:mi:ss */
+		     , DATE_FORMAT(#{dateincome}, '%Y-%m-%d %H:%i:%S')
 		     , #{productno}
 		     , #{productcode}
 		     , #{productname}
@@ -1189,7 +1189,7 @@
 		)
 		ON DUPLICATE KEY UPDATE
 		       WMSITEMNO = #{wmsitemno}
-		     , DATEINCOME = CONVERT(VARCHAR,#{dateincome},20)
+		     , DATEINCOME = DATE_FORMAT(#{dateincome}, '%Y-%m-%d %H:%i:%S')
 		     , PRODUCTNO = #{productno}
 		     , PRODUCTCODE = #{productcode}
 		     , PRODUCTNAME = #{productname}
@@ -1205,18 +1205,18 @@
 	<insert id="saveWmsGoods" parameterType="GoodsIfIncomelot" >
 		/* TsbGoods.saveWmsGoods */
 		INSERT INTO TB_WMS_GOODS (
-		       PRODUCTNO 
-		     , PRODUCTCODE 
-		     , PRODUCTNAME 
+		       PRODUCT_NO 
+		     , PRODUCT_CODE 
+		     , PRODUCT_NAME 
 		     , SKUCODE 
-		     , NORMALQTY 
-		     , BROKENQTY 
-		     , TOTALQTY 
-		     , MODELNO 
-		     , PROVIDERNO
-		     , PROVIDERNAME
-		     , BRANDNO
-		     , BRANDNAME
+		     , NORMAL_QTY 
+		     , BROKEN_QTY 
+		     , TOTAL_QTY 
+		     , MODEL_NO 
+		     , PROVIDER_NO
+		     , PROVIDER_NAME
+		     , BRAND_NO
+		     , BRAND_NAME
 		     , REG_NO
 		     , REG_DT
 		     , UPD_NO
@@ -1243,30 +1243,72 @@
 		WHERE 1 = 1
 		<choose>
 		    <when test='jobdate != null and jobdate != ""'>
-		AND A.UPD_DT >= DATE_FORMAT(DATE_FORMAT(#{jobdate}, '%Y%m%d'), '%Y%m%d%H%i%S') 
+		AND A.DATEINCOME >= DATE_FORMAT(DATE_FORMAT(#{jobdate}, '%Y%m%d'), '%Y%m%d%H%i%S') 
 		<![CDATA[
-		AND A.UPD_DT < DATE_FORMAT(DATE_ADD(DATE_FORMAT(#{jobdate}, '%Y%m%d'), INTERVAL 1 DAY), '%Y%m%d%H%i%S')
+		AND A.DATEINCOME < DATE_FORMAT(DATE_ADD(DATE_FORMAT(#{jobdate}, '%Y%m%d'), INTERVAL 1 DAY), '%Y%m%d%H%i%S')
 		]]>
 		    </when>
 		    <otherwise>
-		AND A.UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
+		AND A.DATEINCOME >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
 		<![CDATA[
-		AND A.UPD_DT < DATE_FORMAT(DATE_ADD(DATE_FORMAT(NOW(), '%Y%m%d'), INTERVAL 1 DAY), '%Y%m%d%H%i%S')
+		AND A.DATEINCOME < DATE_FORMAT(DATE_ADD(DATE_FORMAT(NOW(), '%Y%m%d'), INTERVAL 1 DAY), '%Y%m%d%H%i%S')
 		]]>
 		    </otherwise>
 		</choose>
 		ON DUPLICATE KEY UPDATE
-		       PRODUCTNAME = IF(GOODS_REG_GB IS NULL, B.PRODUCTNAME, TB_WMS_GOODS.PRODUCTNAME)
-		     , NORMALQTY = IF(GOODS_REG_GB IS NULL, B.NORMALQTY, TB_WMS_GOODS.NORMALQTY)
-		     , BROKENQTY = IF(GOODS_REG_GB IS NULL, B.BROKENQTY, TB_WMS_GOODS.BROKENQTY)
-		     , TOTALQTY = IF(GOODS_REG_GB IS NULL, B.TOTALQTY, TB_WMS_GOODS.TOTALQTY)
-		     , MODELNO = IF(GOODS_REG_GB IS NULL, B.MODELNO, TB_WMS_GOODS.MODELNO)
-		     , PROVIDERNO = IF(GOODS_REG_GB IS NULL, A.PROVIDERNO, TB_WMS_GOODS.PROVIDERNO)
-		     , PROVIDERNAME = IF(GOODS_REG_GB IS NULL, A.PROVIDERNAME, TB_WMS_GOODS.PROVIDERNAME)
-		     , BRANDNO = IF(GOODS_REG_GB IS NULL, A.BRANDNO, TB_WMS_GOODS.BRANDNO)
-		     , BRANDNAME = IF(GOODS_REG_GB IS NULL, A.BRANDNAME, TB_WMS_GOODS.BRANDNAME)
+		       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)
+		     , BRAND_NO = IF(GOODS_REG_GB IS NULL, A.BRANDNO, TB_WMS_GOODS.BRAND_NO)
+		     , BRAND_NAME = IF(GOODS_REG_GB IS NULL, A.BRANDNAME, TB_WMS_GOODS.BRAND_NAME)
 		     , UPD_NO = #{updNo}
 		     , UPD_DT = NOW()
 	</insert>
 	
+	<!-- 공급업체 목록 -->
+	<select id="getSupplyCompanyList" resultType="IfProvider">
+		/* TsbGoods.getSupplyCompanyList */
+		SELECT PROVIDER_NO AS PROVIDERNO
+		     , SUPPLY_COMP_NM AS PROVIDERNAME
+		     , '' AS CATEGORYTYPECD
+		     , '자사' AS DISTRIBUTIONCD
+		     , CS_CHARGE_NM AS CHARGENAME
+		     , CS_CHARGE_TELNO AS CHARGECELLNUM
+		     , CASE WHEN USE_YN = 'Y' THEN '정상'
+		            ELSE '사용중지' 
+		       END AS STATUSCD
+		     , 'WMS' AS STOCKMGMTTYPECD
+		     , SUPPLY_COMP_CD
+		FROM   TB_SUPPLY_COMPANY 
+		WHERE  DISTRIBUTION_GB  IN ('G065_10', 'G065_11', 'G065_12')  /* 자사 유통구분*/
+		AND UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -7 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
+		<![CDATA[
+		AND UPD_DT < DATE_FORMAT(DATE_FORMAT(NOW(), '%Y%m%d'), '%Y%m%d%H%i%S')
+		]]>
+	</select>
+	
+	<!-- 브랜드 목록 -->
+	<select id="getBrandList" resultType="IfBrand">
+		/* TsbGoods.getBrandList */
+		SELECT A.BRAND_NO AS BRANDNO
+		     , A.BRAND_ENM AS BRANDNAME
+		     , CASE WHEN A.USE_YN = 'Y' THEN '정상'
+		            ELSE '사용안함' 
+		       END AS STATUSCD
+		     , A.BRAND_CD
+		     , A.SUPPLY_COMP_CD
+		     , B.PROVIDER_NO
+		FROM   TB_BRAND A
+		INNER JOIN TB_SUPPLY_COMPANY B ON A.SUPPLY_COMP_CD = B.SUPPLY_COMP_CD
+		WHERE  A.SELF_YN  = 'Y'  /* 자사 */
+		AND A.UPD_DT >= DATE_FORMAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -7 DAY), '%Y%m%d'), '%Y%m%d%H%i%S') 
+		<![CDATA[
+		AND A.UPD_DT < DATE_FORMAT(DATE_FORMAT(NOW(), '%Y%m%d'), '%Y%m%d%H%i%S')
+		]]>
+	</select>
+	
 </mapper>

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

@@ -80,4 +80,118 @@
 		</choose>
 	</select>
 
+	<!--WMS 업체정보 송신-->
+	<insert id="saveWmsProvider" parameterType="IfProvider" >
+		/* TsbWmsGoods.saveWmsProvider */
+		SET IDENTITY_INSERT test.dbo.TB_IF_Provider ON
+		MERGE TB_IF_PROVIDER 
+		      USING (SELECT 'AA' AS DUAL) AS B
+		         ON (PROVIDERNO = #{providerno})
+		      WHEN MATCHED THEN
+		           UPDATE SET
+		                   PROVIDERNAME = #{providername}
+		                 , CATEGORYTYPECD = #{categorytypecd}
+		                 , DISTRIBUTIONCD = #{distributioncd}
+		                 , CHARGENAME = #{chargename}
+		                 , CHARGECELLNUM = #{chargecellnum}
+		                 , STATUSCD = #{statuscd}
+		                 , STOCKMGMTTYPECD = #{stockmgmttypecd}
+		                 , SUPPLY_COMP_CD = #{supplyCompCd}
+		                 , DATElASTMODIFIED = GETDATE()
+		      WHEN NOT MATCHED THEN
+		           INSERT (
+		                   PROVIDERNO
+		                 , VENDORNO  
+		                 , PROVIDERNAME
+		                 , CATEGORYTYPECD
+		                 , DISTRIBUTIONCD
+		                 , CHARGENAME
+		                 , CHARGECELLNUM
+		                 , STATUSCD
+		                 , STOCKMGMTTYPECD
+		                 , SUPPLY_COMP_CD
+		                 , DATECREATED
+		                 , DATElASTMODIFIED
+		           )
+		           VALUES (
+		                  #{providerno}
+		                , #{vendorno}
+		                , #{providername}
+		                , #{categorytypecd}
+		                , #{distributioncd}
+		                , #{chargename}
+		                , #{statuscd}
+		                , #{chargecellnum}
+		                , #{stockmgmttypecd}
+		                , #{dateLastmodified}
+		                , GETDATE()
+		                , GETDATE()
+		           );
+		SET IDENTITY_INSERT test.dbo.TB_IF_Provider OFF
+	</insert>
+	
+	<!--WMS 브랜드정보 송신-->
+	<insert id="saveWmsBrand" parameterType="IfBrand" >
+		/* TsbWmsGoods.saveWmsBrand */
+		SET IDENTITY_INSERT test.dbo.TB_IF_BRAND ON
+		MERGE TB_IF_BRAND 
+		      USING (SELECT 'AA' AS DUAL) AS B
+		         ON (BRANDNO = #{brandno})
+		      WHEN MATCHED THEN
+		           UPDATE SET
+		                   BRANDNAME = #{brandname}
+		                 , STATUSCD = #{statuscd}
+		                 , BRAND_CD = #{brandCd}
+		                 , DATEUPDATEED = GETDATE()
+		      WHEN NOT MATCHED THEN
+		           INSERT (
+		                   BRANDNO
+		                 , BRANDNAME
+		                 , STATUSCD
+		                 , BRAND_CD
+		                 , DATECREATED
+		                 , DATEUPDATEED
+		           )
+		           VALUES (
+		                  #{brandno}
+		                , #{brandname}
+		                , #{statuscd}
+		                , #{brandCd}
+		                , GETDATE()
+		                , GETDATE()
+		           );
+		SET IDENTITY_INSERT test.dbo.TB_IF_BRAND OFF
+	</insert>
+	
+	<!--WMS 브랜드업체관계정보 송신-->
+	<insert id="saveWmsBrandProviderXref" parameterType="IfBrand" >
+		/* TsbWmsGoods.saveWmsBrandProviderXref */
+		MERGE TB_IF_BRANDPROVIDERXREF 
+		      USING (SELECT 'AA' AS DUAL) AS B
+		         ON (BRANDNO = #{brandno})
+		      WHEN MATCHED THEN
+		           UPDATE SET
+		                   PROVIDERNO = #{providerNo}
+		                 , BRAND_CD = #{brandCd}
+		                 , SUPPLY_COMP_CD = #{supplyCompCd}
+		                 , DATEUPDATEED = GETDATE()
+		      WHEN NOT MATCHED THEN
+		           INSERT (
+		                   BRANDNO
+		                 , PROVIDERNO
+		                 , BRAND_CD
+		                 , SUPPLY_COMP_CD
+		                 , DATECREATED
+		                 , DATEUPDATEED
+		           )
+		           VALUES (
+		                  #{brandno}
+		                , #{providerNo}
+		                , #{brandCd}
+		                , #{supplyCompCd}
+		                , GETDATE()
+		                , GETDATE()
+		           );
+	</insert>
+	
 </mapper>

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

@@ -49,6 +49,9 @@ cron:
         relate.score: 2 22 2 29 2 ?
         summary: 2 22 2 29 2 ?
         infants.safe: 2 22 2 29 2 ?
+        wms.measurement: 2 22 2 29 2 ?
+        wms.incomelot: 2 22 2 29 2 ?
+        wms.brandprovider: 2 22 2 29 2 ?
     
     #통계
     statistics:

+ 11 - 1
style24.core/.gitignore

@@ -2,4 +2,14 @@ target/
 .settings/
 .classpath
 /bin/
-/target/
+/target/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### MacOS ###
+.DS_Store
+META-INF/context.xml

+ 14 - 2
style24.front/.gitignore

@@ -1,3 +1,15 @@
-/target/
+target/
+.settings/
 .classpath
-/bin/
+/bin/
+/target/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### MacOS ###
+.DS_Store
+META-INF/context.xml

+ 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
-#Mon Jan 04 10:43:31 KST 2021
+#Tue Jan 05 10:10:08 KST 2021
 version=0.0.1-SNAPSHOT
 groupId=com.style24.front
 m2e.projectName=style24.front

+ 12 - 0
style24.scm/.gitignore

@@ -1,3 +1,15 @@
 target/
 .settings/
 .classpath
+/bin/
+/target/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### MacOS ###
+.DS_Store
+META-INF/context.xml