Преглед изворни кода

Merge branch 'eskim' into develop

eskim пре 5 година
родитељ
комит
7b8b3f790f

+ 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, '등록일');

+ 1 - 1
style24.front/.gitignore

@@ -1,3 +1,3 @@
-/target/
+target/
 .classpath
 /bin/

+ 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