Merge branch 'JIWOO' into advc

This commit is contained in:
jiwoo 2024-02-16 19:04:23 +09:00
commit c1a1461b27
10 changed files with 352 additions and 19 deletions

View File

@ -561,4 +561,28 @@ public class EgovFileMngController {
return "cmm/fms/EgovBBSFileListCustom";
}
/*
* 실무역량강화 교육신청 상세 pdf 미리보기용
*
* @param fileVO
* @param commandMap
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cmm/fms/selectFndtnDetailCnFile.do")
public String selectFndtnDetailCnFile(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception {
String atchFileId = (String) commandMap.get("param_atchFileId");
String pdfView = (String) commandMap.get("pdf_view"); //'Y' 이면 pdf 직접 보여주기
fileVO.setAtchFileId(atchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
model.addAttribute("atchFileId", atchFileId);
return "cmm/fms/EgovFndtnDetailCnFile";
}
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -17,6 +18,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@ -28,6 +31,8 @@ import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.service.impl.CmmUseDAO;
import kcc.com.cmm.spring.data.util.ExcelUtil;
import kcc.com.cmm.util.StringUtil;
@ -151,6 +156,13 @@ public class CndtnPrcsInfoMngController {
@Resource(name = "iTNotiUtil")
private ITNotiUtil iTNotiUtil;
//파일 처리 egov
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil egovFileMngUtil;
/**
* 기반강화연수 과정 관리 목록 화면
*/
@ -212,6 +224,7 @@ public class CndtnPrcsInfoMngController {
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -232,6 +245,16 @@ public class CndtnPrcsInfoMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//상세교육 첨부파일 체크
String atchFileId = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()) {
//XXX_로 첨부파일 네이밍
List<FileVO> result = egovFileMngUtil.parseFileInf(files, "DETAILCN_", 0, "", "", "");
atchFileId = fileService.insertFileInfs(result);
vEPrcsDetailVO.setCnAtchFileId(atchFileId);
}
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
vEPrcsService.update(vEPrcsDetailVO);

View File

@ -1,5 +1,7 @@
package kcc.ve.oprtn.fndtnEnhanceTrn.prcsInfoMng.web;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@ -26,6 +28,7 @@ import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
@ -119,6 +122,11 @@ public class FndthPrcsInfoMngController {
//파일 처리 egov
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileMngService;
//파일 체크 util
@Resource(name = "checkFileUtil")
private CheckFileUtil checkFileUtil;
/*
// 교육신청 서비스단
@ -295,6 +303,7 @@ public class FndthPrcsInfoMngController {
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -315,7 +324,23 @@ public class FndthPrcsInfoMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = 1; // file count
int i_limit_size = 100; // file MB
String s_file_exts = "pdf"; // file exts
String atchFileId = "";
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()) {
//교육신청_로 첨부파일 네이밍
List<FileVO> result = fileUtil.parseFileInf(files, "DETAILCN_", 0, "", "", "");
atchFileId = fileMngService.insertFileInfs(result);
//첨부파일Id(atchFileId) 해당 VO atchFileId변수에 저장
vEPrcsDetailVO.setCnAtchFileId(atchFileId);
}
String prcsOrd = prcsGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsOrd(prcsOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
@ -428,6 +453,14 @@ public class FndthPrcsInfoMngController {
//과정 조회
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsService.selectDetail(vEPrcsDetailVO);
model.addAttribute("info", vEPrcsDetailVODetail);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(vEPrcsDetailVODetail.getCnAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
//세부과정 목록 조회
// VEPrcsCntntVO vePrcsCntntVO = new VEPrcsCntntVO();
// vePrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());

View File

@ -608,6 +608,7 @@
AS lctrPlanRsltAtchFileId -->
,'' AS lctrPlanRsltAtchFileId <!-- 임시 -->
,a.prvt_memo_cn AS prvtMemoCn
,b.cn_atch_file_id AS cnAtchFileId
FROM ve_prcs_aplct_prd a
, ve_prcs b

View File

@ -25,7 +25,8 @@
last_updusr_id,
lctr_div_cd,
use_yn,
image_atch_file_id
image_atch_file_id,
cn_atch_file_id
</sql>
@ -43,7 +44,8 @@
A.LAST_UPDUSR_ID AS lastUpdusrId,
A.LCTR_DIV_CD AS lctrDivCd,
A.USE_YN AS useYn,
A.IMAGE_ATCH_FILE_ID AS imageAtchFileId
A.IMAGE_ATCH_FILE_ID AS imageAtchFileId,
A.CN_ATCH_FILE_ID AS cnAtchFileId
</sql>
<!-- 강사 등록 C -->
@ -65,7 +67,8 @@
#lastUpdusrId#,
#lctrDivCd#,
#useYn#,
#imageAtchFileId#
#imageAtchFileId#,
#cnAtchFileId#
)
</insert>
@ -109,6 +112,9 @@
<isNotEmpty property="prcsSortNo">
,prcs_sort_no = #prcsSortNo#
</isNotEmpty>
<isNotEmpty property="cnAtchFileId">
,cn_atch_file_id = #cnAtchFileId#
</isNotEmpty>
WHERE
prcs_ord = #prcsOrd#

View File

@ -0,0 +1,51 @@
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%
/**
* @Class Name : EgovFileList.jsp
* @Description : 파일 목록화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ---------- ------ ---------------------------
* @ 2009.03.26 이삼섭 최초 생성
* @ 2011.07.20 옥찬우 <Input> Tag id속성 추가( Line : 68 )
*
* @author 공통서비스 개발팀 이삼섭
* @since 2009.03.26
* @version 1.0
* @see
*
*/
%>
<!-- link href="<c:url value='/css/egovframework/com/com.css' />" rel="stylesheet" type="text/css"-->
<script type="text/javascript">
function fn_egov_downFile(atchFileId, fileSn){
window.open("<c:url value='/cmm/fms/FileDown.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"'/>");
}
function fn_egov_pdfView(atchFileId, fileSn, atchFileType){
window.open("<c:url value='/cmm/fms/attachFilePreview.do?atchFileId="+atchFileId+"&fileSn="+fileSn+"&atchFileType="+atchFileType+"'/>");
}
</script>
<input type="hidden" name="atchFileId" value="${atchFileId}">
<input type="hidden" name="fileSn" >
<input type="hidden" name="fileListCnt" id="fileListCnt" value="${fileListCnt}">
<c:set var="fileCount" value="${fn:length(fileList) }" />
<c:forEach var="fileVO" items="${fileList}" varStatus="status">
<!-- 요청 시 다운로드 기능도 제공 예정 -->
<%-- <a href="javascript:fn_egov_downFile('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>')" class="file_download_a" title="다운로드">
<c:out value="${fileVO.orignlFileNm}"/><button type="button" class="btnType06 pdf_bt" onclick="fn_egov_pdfView('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>' , '<c:out value="${fileVO.fileExtsn}"/>' )" title="새창열림">미리보기</button>
</a> --%>
<c:out value="${fileVO.orignlFileNm}"/>&nbsp;<button type="button" class="btnType06 pdf_bt" onclick="fn_egov_pdfView('<c:out value="${fileVO.atchFileId}"/>','<c:out value="${fileVO.fileSn}"/>' , '<c:out value="${fileVO.fileExtsn}"/>' )" title="새창열림">미리보기</button>
</c:forEach>
<c:if test="${fn:length(fileList) == 0}">
</c:if>

View File

@ -111,7 +111,7 @@
</td>
</tr>
<tr>
<th scope="row">과정설명</th>
<th scope="row">교육내용</th>
<td>
<!-- <div id="bbs_cn"> -->
@ -121,6 +121,15 @@
<%-- <c:out value='${info.prcsCn}' /> --%>
</td>
</tr>
<tr>
<th scope="row">상세교육내용</th>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.cnAtchFileId}" />
<c:param name="pdf_view" value="Y" />
</c:import>
</td>
</tr>
<tr>
<th scope="row">사용여부</th>
<td>

View File

@ -30,6 +30,11 @@
<title>기반강화연수관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
$(document).ready(function(){
$("#filebutton").on('click', function(){
$("#file_temp").click();
});
});
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
@ -102,6 +107,9 @@
CKEDITOR.instances.prcsCn.updateElement();
var data = new FormData(document.getElementById("createForm"));
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
if(confirm("수정하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfyAjax.do'/>";
console.log(data);
@ -145,6 +153,8 @@
</form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<input type="hidden" name="limitcount" value="1" />
<input type="hidden" name="allrowFileExtsn" id="allrowFileExtsn" value="PDF" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
@ -215,7 +225,7 @@
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<th scope="row">교육내용</th>
<td>
<%-- <textarea placeholder="과정설명을 입력해주세요." name="prcsCn" id="prcsCn" class="memo" onfocus="this.placeholder=''" onblur="this.placeholder='과정설명을 입력해주세요.'" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea> --%>
@ -229,7 +239,86 @@
</td>
</tr>
<tr>
<th scope="row">
<p>상세교육내용</p>
</th>
<td class="upload_area">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p>
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
<tr>
<th scope="row">상태</th>
<td>

View File

@ -32,13 +32,20 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
$(document).ready(function(){
$("#filebutton").on('click', function(){
$("#file_temp").click();
});
});
function fncSave(){
CKEDITOR.instances.prcsCn.updateElement();
var data = new FormData(document.getElementById("vEPrcsDetailVO"));
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngRegAjax.do";
console.log(data);
@ -85,6 +92,8 @@
<%-- <form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post"> --%>
<form:form commandName="vEPrcsDetailVO" name="createForm" method="post" enctype="multipart/form-data">
<input type="hidden" name="limitcount" value="1" />
<input type="hidden" name="allrowFileExtsn" id="allrowFileExtsn" value="PDF" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
@ -147,7 +156,7 @@
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<th scope="row">교육내용</th>
<td>
<!-- <textarea placeholder="과정설명을 입력해주세요." name="prcsCn" id="prcsCn" class="memo" onfocus="this.placeholder=''" onblur="this.placeholder='과정설명을 입력해주세요.'" class="inputLight" style="height: 200px;"></textarea> -->
<%--
@ -161,6 +170,85 @@
</td>
</tr>
<tr>
<th scope="row">
<p>상세교육내용</p>
</th>
<td class="upload_area">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
<p style="padding-left:30px;">pdf만 업로드 가능합니다. </p>
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
<tr>
<th scope="row">상태</th>
<td>

View File

@ -228,7 +228,7 @@
</div>
<div class="tb_type01 tb_write">
<table>
<caption>교육신청 내용 : 교육부분, 과정, 신청기간, 교육기간, 상세교육내용, 정원, 목적, 특징, 상태, 교육장소, 교육안내문 등의 정보제공</caption>
<caption>교육신청 내용 : 교육부분, 과정, 신청기간, 교육기간, 교육내용, 정원, 상태, 교육장소, 교육안내문, 상세안내교육 등의 정보제공</caption>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
@ -259,7 +259,7 @@
</tr>
<tr>
<th scope="row">상세교육내용</th>
<th scope="row">교육내용</th>
<td colspan="3">
<c:out value="${fn:replace(info.prcsCnTwo , crlf , '<br/>')}" escapeXml="false" />
<%-- <div style="white-space:pre;"><c:out value='${info.prcsCn}'/></div> --%>
@ -270,8 +270,9 @@
<td class="addPro_wrap" colspan="3">
<c:out value="${info.nos}"/>
</td>
</tr>
<tr>
</tr>
<!-- 240216 요청으로 인하여 목적,특징 주석처리 및 상세교육 파일 항목 추가 -->
<%-- <tr>
<th scope="row">목적</th>
<td>
<c:out value="${info.prpsCn }" />
@ -280,7 +281,7 @@
<td>
<c:out value="${info.chrctCn}"/>
</td>
</tr>
</tr> --%>
<tr>
<th scope="row">상태</th>
<td id="ddlnCdStts">
@ -313,16 +314,24 @@
<tr>
<th scope="row">교육안내문</th>
<td>
<%-- <a href="<c:url value='/cmm/fms/FileDown.do?atchFileId=FILE_000000000001170&fileSn=0'/>">교육안내문.pptx 다운로드</a> --%>
<c:import url="/cmm/fms/selectSimpleDownInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="FILE_000000000001170" />
</c:import>
</td>
</tr>
</tbody>
</tr>
<c:if test="${!empty info.cnAtchFileId}">
<tr>
<th scope="row">상세교육안내</th>
<td>
<c:import url="/cmm/fms/selectFndtnDetailCnFile.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.cnAtchFileId}" />
<c:param name="pdf_view" value="Y" />
</c:import>
</td>
</tr>
</c:if>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">