Jelajahi Sumber

샘플양식관리 추가

gagamel 5 tahun lalu
induk
melakukan
166b8c6972

+ 26 - 0
style24.admin/src/main/java/com/style24/admin/biz/dao/TsaSystemDao.java

@@ -7,6 +7,7 @@ import com.style24.persistence.domain.CommonCode;
 import com.style24.persistence.domain.Menu;
 import com.style24.persistence.domain.MenuAccessHst;
 import com.style24.persistence.domain.MenuRole;
+import com.style24.persistence.domain.SampleFile;
 import com.style24.persistence.domain.User;
 import com.style24.persistence.domain.UserHst;
 import com.style24.persistence.domain.UserMenu;
@@ -209,4 +210,29 @@ public interface TsaSystemDao {
 	 */
 	void deleteCommonCode(CommonCode commoncode);
 
+	/**
+	 * 샘플파일 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	Collection<SampleFile> getSampleFileList();
+
+	/**
+	 * 샘플파일 등록/수정
+	 * @param sampleFile - 샘플파일 정보
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	void saveSampleFile(SampleFile sampleFile);
+
+	/**
+	 * 샘플파일 시스템파일명 조회
+	 * @param sampleFileId - 샘플파일ID
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	String getSampleFileSystemFilename(String sampleFileId);
+
 }

+ 33 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaSystemService.java

@@ -13,6 +13,7 @@ import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.CommonCode;
 import com.style24.persistence.domain.Menu;
 import com.style24.persistence.domain.MenuRole;
+import com.style24.persistence.domain.SampleFile;
 import com.style24.persistence.domain.User;
 import com.style24.persistence.domain.UserHst;
 import com.style24.persistence.domain.UserMenu;
@@ -388,4 +389,36 @@ public class TsaSystemService {
 		systemDao.deleteCommonCode(commoncode);
 	}
 
+	/**
+	 * 샘플파일 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	public Collection<SampleFile> getSampleFileList() {
+		return systemDao.getSampleFileList();
+	}
+
+	/**
+	 * 샘플파일 등록/수정
+	 * @param sampleFile - 샘플파일 정보
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	@Transactional("shopTxnManager")
+	public void saveSampleFile(SampleFile sampleFile) {
+		systemDao.saveSampleFile(sampleFile);
+	}
+
+	/**
+	 * 샘플파일 시스템파일명 조회
+	 * @param sampleFileId - 샘플파일ID
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	public String getSampleFileSystemFilename(String sampleFileId) {
+		return systemDao.getSampleFileSystemFilename(sampleFileId);
+	}
+
 }

+ 57 - 0
style24.admin/src/main/java/com/style24/admin/biz/web/TsaSystemController.java

@@ -22,6 +22,7 @@ import com.style24.admin.support.security.session.TsaSession;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.persistence.domain.CommonCode;
 import com.style24.persistence.domain.Menu;
+import com.style24.persistence.domain.SampleFile;
 import com.style24.persistence.domain.User;
 import com.style24.persistence.domain.UserMenu;
 
@@ -395,4 +396,60 @@ public class TsaSystemController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 
+	/**
+	 * 샘플파일 화면
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	@GetMapping("/sample/file/form")
+	public ModelAndView sampleFileForm() {
+		ModelAndView mav = new ModelAndView();
+
+		mav.setViewName("system/SampleFileForm");
+
+		return mav;
+	}
+
+	/**
+	 * 샘플파일 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	@GetMapping("/sample/file/list")
+	@ResponseBody
+	public Collection<SampleFile> getSampleFileList() {
+		return systemService.getSampleFileList();
+	}
+
+	/**
+	 * 샘플파일 등록/수정 처리
+	 * @param sampleFile - 샘플파일 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	@PostMapping("/sample/file/save")
+	@ResponseBody
+	public GagaResponse saveSampleFile(@RequestBody SampleFile sampleFile) {
+		sampleFile.setRegNo(TsaSession.getInfo().getUserNo());
+		sampleFile.setUpdNo(TsaSession.getInfo().getUserNo());
+		systemService.saveSampleFile(sampleFile);
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
+
+	/**
+	 * 샘플파일 시스템파일명 조회
+	 * @param sampleFileId - 샘플파일ID
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 11. 3
+	 */
+	@GetMapping("/sample/file/{sampleFileId}")
+	@ResponseBody
+	public String getSampleFileSystemFilename(@PathVariable("sampleFileId") String sampleFileId) {
+		return systemService.getSampleFileSystemFilename(sampleFileId);
+	}
+
 }

+ 23 - 0
style24.admin/src/main/java/com/style24/persistence/domain/SampleFile.java

@@ -0,0 +1,23 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 샘플파일 Domain
+ *
+ * @author gagamel
+ * @since 2020. 11. 3
+ */
+@SuppressWarnings("serial")
+@Data
+public class SampleFile extends TscBaseDomain {
+
+	private String sampleFileId;
+	private String sampleFileNm;
+	private String orgFileNm;
+	private String sysFileNm;
+	private String useYn;
+
+}

+ 56 - 0
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaSystem.xml

@@ -565,5 +565,61 @@
 		WHERE  CD_GB = #{cdGb}
 		AND    CD = #{cd}
 	</delete>
+	
+	<!-- 샘플파일 목록 -->
+	<select id="getSampleFileList" resultType="SampleFile">
+		/* TsaSystem.getSampleFileList */
+		SELECT SAMPLE_FILE_ID
+		     , SAMPLE_FILE_NM
+		     , ORG_FILE_NM
+		     , SYS_FILE_NM
+		     , USE_YN
+		FROM   TB_SAMPLE_FILE
+		ORDER  BY SAMPLE_FILE_NM
+	</select>
+
+	<!-- 샘플파일 등록/수정 -->
+	<insert id="saveSampleFile" parameterType="SampleFile">
+		/* TsaSystem.saveSampleFile */
+		INSERT INTO TB_SAMPLE_FILE (
+		       SAMPLE_FILE_ID
+		     , SAMPLE_FILE_NM
+		     , ORG_FILE_NM
+		     , SYS_FILE_NM
+		     , USE_YN
+		     , REG_NO
+		     , REG_DT
+		     , UPD_NO
+		     , UPD_DT
+		)
+		VALUES (
+		       (SELECT CONCAT('SF',IFNULL(LPAD(CAST(SUBSTRING(MAX(SAMPLE_FILE_ID),3) AS UNSIGNED) + 1,3,'0'),'000'))
+		        FROM   TB_SAMPLE_FILE Z
+		       )
+		     , #{sampleFileNm}
+		     , #{orgFileNm}
+		     , #{sysFileNm}
+		     , #{useYn}
+		     , #{regNo}
+		     , NOW()
+		     , #{updNo}
+		     , NOW()
+		)
+		ON DUPLICATE KEY UPDATE
+		       SAMPLE_FILE_NM = #{sampleFileNm}
+		     , ORG_FILE_NM = #{orgFileNm}
+		     , SYS_FILE_NM = #{sysFileNm}
+		     , USE_YN = #{useYn}
+		     , UPD_NO = #{updNo}
+		     , UPD_DT = NOW()
+	</insert>
+	
+	<!-- 샘플파일 시스템파일명 조회 -->
+	<select id="getSampleFileSystemFilename" parameterType="String" resultType="String">
+		/* TsaSystem.getSampleFileSystemFilename */
+		SELECT SYS_FILE_NM
+		FROM   TB_SAMPLE_FILE
+		WHERE  SAMPLE_FILE_ID = #{sampleFileId}
+	</select>
 
 </mapper>

+ 39 - 46
style24.admin/src/main/webapp/WEB-INF/views/system/SampleFileForm.html

@@ -6,12 +6,12 @@
  * @source  : SampleFileForm.html
  * @desc    : 샘플양식관리 Page
  *============================================================================
- * SISUN
- * Copyright(C) 2019 TSIT, All rights reserved.
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
  *============================================================================
  * VER  DATE         AUTHOR      DESCRIPTION
  * ===  ===========  ==========  =============================================
- * 1.0  2019.07.10   gagamel     최초 작성
+ * 1.0  2020.11.03   gagamel     최초 작성
  *******************************************************************************
  -->
 	<div id="main">
@@ -19,8 +19,14 @@
 		<div class="main-title">
 		</div>
 		<!-- //메인타이틀 영역 -->
+		
+		<!-- 메뉴 설명 -->
+		<div class="infoBox menu-desc">
+		</div>
+		<!-- //메뉴 설명 -->
 
-		<div class="panelStyle2">
+		<!-- 검색조건 영역 -->
+		<div class="panelStyle">
 			<form id="registerForm" name="registerForm" action="#" th:action="@{'/system/sample/file/save'}">
 				<table class="frmStyle" aria-describedby="신규">
 					<colgroup>
@@ -30,17 +36,17 @@
 						<col/>
 					</colgroup>
 					<tr>
-						<th>샘플파일ID<i class="star" aria-hidden="true"></i></th>
+						<th>샘플파일ID<em class="required" title="필수"></em></th>
 						<td>
 							<input type="text" class="w100" name="sampleFileId" placeholder="" value="자동생성" readonly="readonly"/>
 						</td>
-						<th>샘플파일명<i class="star" aria-hidden="true"></i></th>
+						<th>샘플파일명<em class="required" title="필수"></em></th>
 						<td>
 							<input type="text" name="sampleFileNm" placeholder="" required="required" data-valid-name="샘플파일명"/>
 						</td>
 					</tr>
 					<tr>
-						<th>샘플파일<i class="star" aria-hidden="true"></i></th>
+						<th>샘플파일<em class="required" title="필수"></em></th>
 						<td colspan="3">
 							<div class="uFile w600">
 								<input type="file" id="file" name="file" class="uFileInput"/>
@@ -54,26 +60,29 @@
 						</td>
 					</tr>
 					<tr>
-						<th>사용여부<i class="star" aria-hidden="true"></i></th>
+						<th>사용여부<em class="required" title="필수"></em></th>
 						<td colspan="3">
 							<input type="hidden" name="useYn"/>
-							<label><input type="checkbox" name="chkUseYn" value="Y" checked="checked" disabled="disabled"/>사용</label>
+							<label class="chkBox"><input type="checkbox" name="chkUseYn" value="Y" checked="checked" readonly="readonly"/>사용</label>
 						</td>
 					</tr>
 				</table>
 
-				<div class="panelBtnB">
-					<button type="button" class="btn btn-info btn-lg" id="btnNew">신규</button>
-					<button type="button" class="btn btn-success btn-lg" id="btnSave">저장</button>
-				</div>
+				<ul class="panelBar">
+					<li class="center">
+						<button type="button" class="btn btn-info btn-lg" id="btnNew">신규</button>
+						<button type="button" class="btn btn-success btn-lg" id="btnSave">저장</button>
+					</li>
+				</ul>
 			</form>
 		</div>
-
-		<div class="panelStyle2">
-			<div class="panelContent" style="overflow: hidden;">
-				<div id="gridList" style="width: 100%;" class="ag-theme-balham"></div>
-			</div>
+		<!-- //검색조건 영역 -->
+		
+		<!-- 리스트 영역 -->
+		<div class="panelStyle">
+			<div id="gridList" style="width: 100%; height: 570px" class="ag-theme-balham"></div>
 		</div>
+		<!-- //리스트 영역 -->
 	</div>
 
 <script th:inline="javascript">
@@ -99,42 +108,31 @@
 		if (event.colDef.field != 'sampleFileNm')
 			return;
 
-		fnBindDetail(event.data);
-	}
-
-	// 조회
-	var fnSearch = function() {
-		gagaAgGrid.fetch('/system/sample/file/list', gridOptions);
-	}
-
-	// 목록 > row 클릭 시
-	var fnBindDetail = function(rowData) {
-		$('#registerForm input[name=sampleFileId]').val(rowData.sampleFileId);
-		$('#registerForm input[name=sampleFileNm]').val(rowData.sampleFileNm);
-		$('#registerForm input[name=orgFileNm]').val(rowData.orgFileNm);
-		$('#registerForm input[name=sysFileNm]').val(rowData.sysFileNm);
-		$('#sampleFileList').html('<a href="javascript:void(0);" onclick="cfnDownloadSampleFile(\'' + rowData.sampleFileId + '\');">' + rowData.sysFileNm + '</a>');
+		$('#registerForm input[name=sampleFileId]').val(event.data.sampleFileId);
+		$('#registerForm input[name=sampleFileNm]').val(event.data.sampleFileNm);
+		$('#registerForm input[name=orgFileNm]').val(event.data.orgFileNm);
+		$('#registerForm input[name=sysFileNm]').val(event.data.sysFileNm);
+		$('#sampleFileList').html('<a href="javascript:void(0);" onclick="cfnDownloadSampleFile(\'' + event.data.sampleFileId + '\');">' + event.data.sysFileNm + '</a>');
 		$('#sampleFileList').show();
 
-		$('#registerForm input:checkbox[name=chkUseYn]').attr('disabled', false);
-		$('#registerForm input:checkbox[name=chkUseYn]').removeClass('formControl');
-		$("#registerForm input[name=useYn]").val(rowData.useYn);
-		if (rowData.useYn == 'Y') {
+		if (event.data.useYn == 'Y') {
 			$("#registerForm input:checkbox[name=chkUseYn]").prop('checked', true);
-			$("#registerForm input:checkbox[name=chkUseYn]").parent().addClass('checked');
 		} else {
 			$("#registerForm input:checkbox[name=chkUseYn]").prop('checked', false);
-			$("#registerForm input:checkbox[name=chkUseYn]").parent().removeClass('checked');
 		}
 	}
 
+	// 조회
+	$('#searchForm').on('click', function() {
+		gagaAgGrid.fetch('/system/sample/file/list', gridOptions);
+	});
+
 	// 신규
 	$('#btnNew').on('click', function() {
 		$('#registerForm')[0].reset();
 		$('#registerForm input[name=sampleFileId]').val('자동생성');
 		$('#registerForm input[name=file]').val('');
-		$('#registerForm input:checkbox[name=chkUseYn]').attr('disabled', true);
-		$('#registerForm input:checkbox[name=chkUseYn]').addClass('formControl');
+		$('#registerForm input:checkbox[name=chkUseYn]').prop('checked', true);
 		$('#sampleFileList').html('');
 		$('#sampleFileList').hide();
 	});
@@ -186,11 +184,6 @@
 	$(document).ready(function() {
 		// Create a agGrid
 		gagaAgGrid.createGrid('gridList', gridOptions);
-
-		// grid 높이 자동 조정
-		uifnFitGrid('auto');
-
-		fnSearch();
 	});
 /*]]>*/
 </script>