관리자 기소유예 - 첨부파일기능, 관할청 공통코드 추가

This commit is contained in:
hehih 2023-11-02 16:48:38 +09:00
parent 79c001f4b6
commit b6e4effa14
19 changed files with 6074 additions and 5695 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,280 +1,280 @@
package kcc.let.utl.fcc.service; package kcc.let.utl.fcc.service;
import java.util.List; import java.util.List;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO;
/** /**
* *
* paging 대한 Util 클래스 * paging 대한 Util 클래스
* @author 사업기술본부 조용준(ITN) * @author 사업기술본부 조용준(ITN)
* @since 2021.07.16 * @since 2021.07.16
* @version 1.0 * @version 1.0
* @see * @see
* *
* <pre> * <pre>
* << 개정이력(Modification Information) >> * << 개정이력(Modification Information) >>
* *
* 수정일 수정자 수정내용 * 수정일 수정자 수정내용
* ------- -------- --------------------------- * ------- -------- ---------------------------
* 2021.07.16 조용준 최초 생성 * * 2021.07.16 조용준 최초 생성 *
* *
* </pre> * </pre>
*/ */
@Component("vEPagingUtil") @Component("vEPagingUtil")
public class VEPagingUtil { public class VEPagingUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(VEPagingUtil.class); private static final Logger LOGGER = LoggerFactory.getLogger(VEPagingUtil.class);
////////////////////////////////////////////////// //////////////////////////////////////////////////
// //
// VEInstrAsgnmVO paging // VEInstrAsgnmVO paging
// //
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정 //페이징을 위한 처리 step1 - 페이징 기본 정보 설정
public PaginationInfo setPagingStep1_VEInstrAsgnmVO( public PaginationInfo setPagingStep1_VEInstrAsgnmVO(
PaginationInfo p_paginationInfo, PaginationInfo p_paginationInfo,
VEInstrAsgnmVO p_VEInstrAsgnmVO VEInstrAsgnmVO p_VEInstrAsgnmVO
){ ){
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep1_VEInstrAsgnmVO()"); LOGGER.debug("VEPagingUtil-setPagingStep1_VEInstrAsgnmVO()");
// pageing step1 // pageing step1
p_paginationInfo.setCurrentPageNo(p_VEInstrAsgnmVO.getPageIndex()); p_paginationInfo.setCurrentPageNo(p_VEInstrAsgnmVO.getPageIndex());
p_paginationInfo.setRecordCountPerPage(p_VEInstrAsgnmVO.getPageUnit()); p_paginationInfo.setRecordCountPerPage(p_VEInstrAsgnmVO.getPageUnit());
p_paginationInfo.setPageSize(p_VEInstrAsgnmVO.getPageSize()); p_paginationInfo.setPageSize(p_VEInstrAsgnmVO.getPageSize());
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_paginationInfo; return p_paginationInfo;
} }
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화 //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
public VEInstrAsgnmVO setPagingStep2_VEInstrAsgnmVO( public VEInstrAsgnmVO setPagingStep2_VEInstrAsgnmVO(
VEInstrAsgnmVO p_VEInstrAsgnmVO VEInstrAsgnmVO p_VEInstrAsgnmVO
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep2_VEInstrAsgnmVO()"); LOGGER.debug("VEPagingUtil-setPagingStep2_VEInstrAsgnmVO()");
// pageing step2 // pageing step2
p_VEInstrAsgnmVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); p_VEInstrAsgnmVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_VEInstrAsgnmVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); p_VEInstrAsgnmVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_VEInstrAsgnmVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); p_VEInstrAsgnmVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_VEInstrAsgnmVO.getSearchSortCnd())){ //최초조회시 최신것 조회List if("".equals(p_VEInstrAsgnmVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_VEInstrAsgnmVO.setSearchSortCnd("prcs_ord"); p_VEInstrAsgnmVO.setSearchSortCnd("prcs_ord");
p_VEInstrAsgnmVO.setSearchSortOrd("desc"); p_VEInstrAsgnmVO.setSearchSortOrd("desc");
} }
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_VEInstrAsgnmVO; return p_VEInstrAsgnmVO;
} }
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
public PaginationInfo setPagingStep3_VEInstrAsgnmVO( public PaginationInfo setPagingStep3_VEInstrAsgnmVO(
List<VEInstrAsgnmVO> p_VEInstrAsgnmVOList List<VEInstrAsgnmVO> p_VEInstrAsgnmVOList
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep3_VEInstrAsgnmVO()"); LOGGER.debug("VEPagingUtil-setPagingStep3_VEInstrAsgnmVO()");
// pageing step3 // pageing step3
int totCnt = 0; int totCnt = 0;
if(p_VEInstrAsgnmVOList.size() > 0) totCnt = p_VEInstrAsgnmVOList.get(0).getTotCnt(); if(p_VEInstrAsgnmVOList.size() > 0) totCnt = p_VEInstrAsgnmVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt); p_paginationInfo.setTotalRecordCount(totCnt);
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_paginationInfo; return p_paginationInfo;
} }
////////////////////////////////////////////////// //////////////////////////////////////////////////
// //
// VELctrDetailVO paging // VELctrDetailVO paging
// //
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정 //페이징을 위한 처리 step1 - 페이징 기본 정보 설정
public PaginationInfo setPagingStep1_VELctrDetailVO( public PaginationInfo setPagingStep1_VELctrDetailVO(
PaginationInfo p_paginationInfo, PaginationInfo p_paginationInfo,
VELctrDetailVO p_VELctrDetailVO VELctrDetailVO p_VELctrDetailVO
){ ){
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep1_VELctrDetailVO()"); LOGGER.debug("VEPagingUtil-setPagingStep1_VELctrDetailVO()");
// pageing step1 // pageing step1
p_paginationInfo.setCurrentPageNo(p_VELctrDetailVO.getPageIndex()); p_paginationInfo.setCurrentPageNo(p_VELctrDetailVO.getPageIndex());
p_paginationInfo.setRecordCountPerPage(p_VELctrDetailVO.getPageUnit()); p_paginationInfo.setRecordCountPerPage(p_VELctrDetailVO.getPageUnit());
p_paginationInfo.setPageSize(p_VELctrDetailVO.getPageSize()); p_paginationInfo.setPageSize(p_VELctrDetailVO.getPageSize());
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_paginationInfo; return p_paginationInfo;
} }
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화 //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
public VELctrDetailVO setPagingStep2_VELctrDetailVO( public VELctrDetailVO setPagingStep2_VELctrDetailVO(
VELctrDetailVO p_VELctrDetailVO VELctrDetailVO p_VELctrDetailVO
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep2_VEInstrAsgnmVO()"); LOGGER.debug("VEPagingUtil-setPagingStep2_VEInstrAsgnmVO()");
// pageing step2 // pageing step2
p_VELctrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); p_VELctrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_VELctrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); p_VELctrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_VELctrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); p_VELctrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_VELctrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List if("".equals(p_VELctrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_VELctrDetailVO.setSearchSortCnd("prcs_ord"); p_VELctrDetailVO.setSearchSortCnd("prcs_ord");
p_VELctrDetailVO.setSearchSortOrd("desc"); p_VELctrDetailVO.setSearchSortOrd("desc");
} }
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_VELctrDetailVO; return p_VELctrDetailVO;
} }
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
public PaginationInfo setPagingStep3_VELctrDetailVO( public PaginationInfo setPagingStep3_VELctrDetailVO(
List<VELctrDetailVO> p_VELctrDetailVOList List<VELctrDetailVO> p_VELctrDetailVOList
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep3_VELctrDetailVO()"); LOGGER.debug("VEPagingUtil-setPagingStep3_VELctrDetailVO()");
// pageing step3 // pageing step3
int totCnt = 0; int totCnt = 0;
if(p_VELctrDetailVOList.size() > 0) totCnt = p_VELctrDetailVOList.get(0).getTotCnt(); if(p_VELctrDetailVOList.size() > 0) totCnt = p_VELctrDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt); p_paginationInfo.setTotalRecordCount(totCnt);
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_paginationInfo; return p_paginationInfo;
} }
////////////////////////////////////////////////// //////////////////////////////////////////////////
// //
// VEInstrDetailVO paging // VEInstrDetailVO paging
// //
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정 //페이징을 위한 처리 step1 - 페이징 기본 정보 설정
public PaginationInfo setPagingStep1_VEInstrDetailVO( public PaginationInfo setPagingStep1_VEInstrDetailVO(
PaginationInfo p_paginationInfo, PaginationInfo p_paginationInfo,
VEInstrDetailVO p_VEInstrDetailVO VEInstrDetailVO p_VEInstrDetailVO
){ ){
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep1_VEInstrDetailVO()"); LOGGER.debug("VEPagingUtil-setPagingStep1_VEInstrDetailVO()");
// pageing step1 // pageing step1
p_paginationInfo.setCurrentPageNo(p_VEInstrDetailVO.getPageIndex()); p_paginationInfo.setCurrentPageNo(p_VEInstrDetailVO.getPageIndex());
p_paginationInfo.setRecordCountPerPage(p_VEInstrDetailVO.getPageUnit()); p_paginationInfo.setRecordCountPerPage(p_VEInstrDetailVO.getPageUnit());
p_paginationInfo.setPageSize(p_VEInstrDetailVO.getPageSize()); p_paginationInfo.setPageSize(p_VEInstrDetailVO.getPageSize());
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_paginationInfo; return p_paginationInfo;
} }
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화 //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
public VEInstrDetailVO setPagingStep2_VEInstrDetailVO( public VEInstrDetailVO setPagingStep2_VEInstrDetailVO(
VEInstrDetailVO p_VEInstrDetailVO VEInstrDetailVO p_VEInstrDetailVO
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep2_p_VEInstrDetailVO()"); LOGGER.debug("VEPagingUtil-setPagingStep2_p_VEInstrDetailVO()");
// pageing step2 // pageing step2
p_VEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); p_VEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_VEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); p_VEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_VEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); p_VEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_VEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List if("".equals(p_VEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_VEInstrDetailVO.setSearchSortCnd("prcs_ord"); p_VEInstrDetailVO.setSearchSortCnd("prcs_ord");
p_VEInstrDetailVO.setSearchSortOrd("desc"); p_VEInstrDetailVO.setSearchSortOrd("desc");
} }
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_VEInstrDetailVO; return p_VEInstrDetailVO;
} }
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
public PaginationInfo setPagingStep3_VEInstrDetailVO( public PaginationInfo setPagingStep3_VEInstrDetailVO(
List<VEInstrDetailVO> p_VEInstrDetailVO List<VEInstrDetailVO> p_VEInstrDetailVO
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
try { try {
LOGGER.debug("VEPagingUtil-setPagingStep3_VEInstrDetailVO()"); LOGGER.debug("VEPagingUtil-setPagingStep3_VEInstrDetailVO()");
// pageing step3 // pageing step3
int totCnt = 0; int totCnt = 0;
if(p_VEInstrDetailVO.size() > 0) totCnt = p_VEInstrDetailVO.get(0).getTotCnt(); if(p_VEInstrDetailVO.size() > 0) totCnt = p_VEInstrDetailVO.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt); p_paginationInfo.setTotalRecordCount(totCnt);
} catch(IllegalArgumentException e) { } catch(IllegalArgumentException e) {
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("[" + e.getClass() +"] :" + e.getMessage()); LOGGER.error("[" + e.getClass() +"] :" + e.getMessage());
} }
return p_paginationInfo; return p_paginationInfo;
} }
} }

View File

@ -1,498 +1,498 @@
package kcc.ve.oprtn.adultVisitEdu.eduRsltMng.web; package kcc.ve.oprtn.adultVisitEdu.eduRsltMng.web;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO; import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService; import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO; import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.spring.data.util.ExcelUtil; import kcc.com.cmm.spring.data.util.ExcelUtil;
import kcc.com.cmm.util.IpUtil; import kcc.com.cmm.util.IpUtil;
import kcc.com.cmm.util.StringUtil; import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckAdrProcessUtil; import kcc.com.utl.user.service.CheckAdrProcessUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO; import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService; import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService; import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService;
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO; import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.cmm.VeConstants; import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduExcelVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduExcelVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduPnltyService; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduPnltyService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService; import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiService;
import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiVO; import kcc.ve.oprtn.asgnmnoti.service.VEAsgnmNotiVO;
/** /**
* 교육보고관리(관리자-성인찾아가는저작권교육) * 교육보고관리(관리자-성인찾아가는저작권교육)
* 교육보고관리에 관한 controller 클래스를 정의한다. * 교육보고관리에 관한 controller 클래스를 정의한다.
* @author 조용준 * @author 조용준
* @since 2021.12.16 * @since 2021.12.16
* @version 1.0 * @version 1.0
* @see * @see
* *
* <pre> * <pre>
* << 개정이력(Modification Information) >> * << 개정이력(Modification Information) >>
* *
* 수정일 수정자 수정내용 * 수정일 수정자 수정내용
* ------- -------- --------------------------- * ------- -------- ---------------------------
* 2021.12.16 조용준 최초 생성 * 2021.12.16 조용준 최초 생성
* *
* </pre> * </pre>
*/ */
@Controller @Controller
@RequestMapping("/kccadr/oprtn/adultVisitEdu") @RequestMapping("/kccadr/oprtn/adultVisitEdu")
public class EduRsltMngAdultController { public class EduRsltMngAdultController {
private static final Logger LOGGER = LoggerFactory.getLogger(EduRsltMngAdultController.class); private static final Logger LOGGER = LoggerFactory.getLogger(EduRsltMngAdultController.class);
//로그인 체크 util //로그인 체크 util
@Resource(name = "checkLoginUtil") @Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil; private CheckLoginUtil checkLoginUtil;
//과정 관리 //과정 관리
@Resource(name = "vEPrcsService") @Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService; private VEPrcsService vEPrcsService;
//신청과정 관리 //신청과정 관리
@Resource(name = "vEEduMIXService") @Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService; private VEEduMIXService vEEduMIXService;
//교육신청 //교육신청
@Resource(name = "vEEduAplctService") @Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService; private VEEduAplctService vEEduAplctService;
//교육과정신청 //교육과정신청
@Resource(name = "vEPrcsMIXService") @Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService; private VEPrcsMIXService vEPrcsMIXService;
//차시 //차시
@Resource(name = "vEEduChasiService") @Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService; private VEEduChasiService vVEEduChasiService;
// eGov 공통코드 // eGov 공통코드
@Resource(name = "EgovCmmUseService") @Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService; private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService") @Resource(name = "EgovFileMngService")
private EgovFileMngService fileService; private EgovFileMngService fileService;
// global 프로퍼티 // global 프로퍼티
@Resource(name="globalSettings") @Resource(name="globalSettings")
protected Properties propertiesService; protected Properties propertiesService;
//첨부파일 경로, realPath 설정 //첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil") @Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil; private EgovFileMngUtil fileUtil;
// 첨부파일 정보 // 첨부파일 정보
@Resource(name="EgovFileMngService") @Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService; private EgovFileMngService fileMngService;
//암복호화 유틸 //암복호화 유틸
@Resource(name = "egovCryptoUtil") @Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil; EgovCryptoUtil egovCryptoUtil;
@Resource(name="KccadrMgrUdtService") @Resource(name="KccadrMgrUdtService")
private KccadrMgrUdtService kccadrMgrUdtService; private KccadrMgrUdtService kccadrMgrUdtService;
// 교육신청 서비스단 // 교육신청 서비스단
@Resource(name = "checkAdrProcessUtil") @Resource(name = "checkAdrProcessUtil")
private CheckAdrProcessUtil checkAdrProcessUtil; private CheckAdrProcessUtil checkAdrProcessUtil;
// 교육패널티 // 교육패널티
@Resource(name = "vEEduPnltyService") @Resource(name = "vEEduPnltyService")
private VEEduPnltyService vEEduPnltyService; private VEEduPnltyService vEEduPnltyService;
// 강의배정정보 // 강의배정정보
@Resource(name = "vEAsgnmMIXService") @Resource(name = "vEAsgnmMIXService")
private VEAsgnmMIXService vEAsgnmMIXService; private VEAsgnmMIXService vEAsgnmMIXService;
@Resource(name = "egovQustnrRespondInfoService") @Resource(name = "egovQustnrRespondInfoService")
private EgovQustnrRespondInfoService egovQustnrRespondInfoService; private EgovQustnrRespondInfoService egovQustnrRespondInfoService;
//NOTI 서비스 //NOTI 서비스
@Resource(name="vEAsgnmNotiService") @Resource(name="vEAsgnmNotiService")
private VEAsgnmNotiService vEAsgnmNotiService; private VEAsgnmNotiService vEAsgnmNotiService;
/** /**
* 교육결과관리 목록 화면 * 교육결과관리 목록 화면
*/ */
@RequestMapping("eduRsltMngList.do") @RequestMapping("eduRsltMngList.do")
public String eduRsltMngList( public String eduRsltMngList(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, HttpSession session , HttpSession session
, ModelMap model , ModelMap model
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
//String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); //String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
//if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; //if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//로그인 처리==================================== //로그인 처리====================================
// 검색자가 '강사이름' , 암호화하여 검색자에 set한다. // 검색자가 '강사이름' , 암호화하여 검색자에 set한다.
if("2".equals(vEEduAplctVO.getSearchCondition())) { if("2".equals(vEEduAplctVO.getSearchCondition())) {
vEEduAplctVO.setSearchKeyword(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword())); vEEduAplctVO.setSearchKeyword(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword()));
} }
//1.pageing step1 //1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO); PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
//2. pageing step2 //2. pageing step2
vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo); vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo);
vEEduAplctVO.setInstrDiv("20"); // 성인 교육 코드 vEEduAplctVO.setInstrDiv("20"); // 성인 교육 코드
vEEduAplctVO.setLctrDivCd("20"); vEEduAplctVO.setLctrDivCd("20");
vEEduAplctVO.setAprvlCd("60"); vEEduAplctVO.setAprvlCd("60");
vEEduAplctVO.setNotiUserId(user.getUniqId()); vEEduAplctVO.setNotiUserId(user.getUniqId());
vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString()); vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString());
vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO); vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO); List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
VEEduAplctVO vo = new VEEduAplctVO(); VEEduAplctVO vo = new VEEduAplctVO();
for(int i=0; i < vEEduAplctVOList.size(); i++) { for(int i=0; i < vEEduAplctVOList.size(); i++) {
vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i)); vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i));
vEEduAplctVOList.get(i).setChrgNm(vo.getChrgNm()); vEEduAplctVOList.get(i).setChrgNm(vo.getChrgNm());
} }
//3.pageing step3 //3.pageing step3
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo); paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
// 검색자가 '강사이름' , 복호화하여 검색자에 set 한다. // 검색자가 '강사이름' , 복호화하여 검색자에 set 한다.
if("2".equals(vEEduAplctVO.getSearchCondition())) { if("2".equals(vEEduAplctVO.getSearchCondition())) {
vEEduAplctVO.setSearchKeyword(egovCryptoUtil.decrypt(vEEduAplctVO.getSearchKeyword())); vEEduAplctVO.setSearchKeyword(egovCryptoUtil.decrypt(vEEduAplctVO.getSearchKeyword()));
} }
model.addAttribute("paginationInfo", paginationInfo); model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달 //대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList); model.addAttribute("list", vEEduAplctVOList);
//대상 리스트, 페이징 정보 전달 //대상 리스트, 페이징 정보 전달
//model.addAttribute("resultList", vEEduAplctVOList); //model.addAttribute("resultList", vEEduAplctVOList);
return "oprtn/adultVisitEdu/eduRsltMngList"; return "oprtn/adultVisitEdu/eduRsltMngList";
} }
/** /**
* 교육결과관리 등록 화면 * 교육결과관리 등록 화면
*/ */
@RequestMapping("eduRsltMngReg.do") @RequestMapping("eduRsltMngReg.do")
public String eduRsltMngReg( public String eduRsltMngReg(
@ModelAttribute("searchVO") AdjReqMgrVO adjReqMgrVO @ModelAttribute("searchVO") AdjReqMgrVO adjReqMgrVO
, ModelMap model , ModelMap model
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
return "oprtn/adultVisitEdu/eduRsltMngReg"; return "oprtn/adultVisitEdu/eduRsltMngReg";
} }
/** /**
* 교육결과관리 상세 화면 * 교육결과관리 상세 화면
*/ */
@RequestMapping("eduRsltMngDetail.do") @RequestMapping("eduRsltMngDetail.do")
public String eduRsltMngDetail( public String eduRsltMngDetail(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, ModelMap model , ModelMap model
, HttpSession session , HttpSession session
, HttpServletRequest request , HttpServletRequest request
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request); //String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo; //if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//로그인 처리==================================== //로그인 처리====================================
String chasiOrd = vEEduAplctVO.getEduChasiOrd(); String chasiOrd = vEEduAplctVO.getEduChasiOrd();
//기본데이터 불러오기 //기본데이터 불러오기
vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO); vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
vEEduAplctVO.setEduChasiOrd(chasiOrd); vEEduAplctVO.setEduChasiOrd(chasiOrd);
//데이터 복호화 - VO 단위로 만들어서 사용 //데이터 복호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO); vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
model.addAttribute("info", vEEduAplctVO); model.addAttribute("info", vEEduAplctVO);
//사용자 교육신청 과정 리스트 //사용자 교육신청 과정 리스트
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectMberEduAplctPrcsList(vEPrcsDetailVO); List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectMberEduAplctPrcsList(vEPrcsDetailVO);
model.addAttribute("list", vEPrcsDetailVOList); model.addAttribute("list", vEPrcsDetailVOList);
//사용자 교육신청 차시 리스트 //사용자 교육신청 차시 리스트
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_20);// 청소년교육 코드 vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_20);// 청소년교육 코드
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEEduChasiVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); vEEduChasiVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd());
List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO); List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO);
VEEduChasiVO vo = new VEEduChasiVO(); VEEduChasiVO vo = new VEEduChasiVO();
for(int i=0; i < vEEduChasiVOList.size(); i++) { for(int i=0; i < vEEduChasiVOList.size(); i++) {
vo = egovCryptoUtil.decryptVEEduChasiVO(vEEduChasiVOList.get(i)); vo = egovCryptoUtil.decryptVEEduChasiVO(vEEduChasiVOList.get(i));
vEEduChasiVOList.get(i).setInstrNm(vo.getInstrNm()); vEEduChasiVOList.get(i).setInstrNm(vo.getInstrNm());
} }
model.addAttribute("chasiList", vEEduChasiVOList); model.addAttribute("chasiList", vEEduChasiVOList);
// 설문조사 정보 // 설문조사 정보
QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO();
qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_20); qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_20);
QustnrRespondInfoVO info = egovQustnrRespondInfoService.selectSiteIdQustnrTmplat(qustnrRespondInfoVO); QustnrRespondInfoVO info = egovQustnrRespondInfoService.selectSiteIdQustnrTmplat(qustnrRespondInfoVO);
// 설문조사 문항리스트 조회 // 설문조사 문항리스트 조회
Map <String, Object> commandMap =new HashMap<String, Object>(); Map <String, Object> commandMap =new HashMap<String, Object>();
commandMap.put("qestnrTmplatId", "QTMPLA_0000000000001"); commandMap.put("qestnrTmplatId", "QTMPLA_0000000000001");
commandMap.put("qestnrId",info.getQestnrId()); //문제 ID commandMap.put("qestnrId",info.getQestnrId()); //문제 ID
model.addAttribute("Comtnqustnrqesitm", egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap)); model.addAttribute("Comtnqustnrqesitm", egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap));
// 설문조사 결과 조회 // 설문조사 결과 조회
qustnrRespondInfoVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); qustnrRespondInfoVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd());
List<QustnrRespondInfoVO> chasiSrvyList = egovQustnrRespondInfoService.selectChasiSrvyList(qustnrRespondInfoVO); List<QustnrRespondInfoVO> chasiSrvyList = egovQustnrRespondInfoService.selectChasiSrvyList(qustnrRespondInfoVO);
if(chasiSrvyList.size() > 0) { if(chasiSrvyList.size() > 0) {
model.addAttribute("qestnrRespondent", chasiSrvyList.get(0).getQestnrRespondent()); model.addAttribute("qestnrRespondent", chasiSrvyList.get(0).getQestnrRespondent());
model.addAttribute("qestnrParticipant", chasiSrvyList.get(0).getQestnrParticipant()); model.addAttribute("qestnrParticipant", chasiSrvyList.get(0).getQestnrParticipant());
model.addAttribute("chasiSrvyList",chasiSrvyList); model.addAttribute("chasiSrvyList",chasiSrvyList);
} }
/* /*
System.out.println("------------------------"); System.out.println("------------------------");
//전체 차시 배정 강사 정보 //전체 차시 배정 강사 정보
vEInstrAsgnmVO.setEduChasiOrd(""); vEInstrAsgnmVO.setEduChasiOrd("");
List<VEInstrAsgnmVO> selectAsgnmInstrList = vEAsgnmMIXService.selectAsgnmInstrList(vEInstrAsgnmVO); List<VEInstrAsgnmVO> selectAsgnmInstrList = vEAsgnmMIXService.selectAsgnmInstrList(vEInstrAsgnmVO);
model.addAttribute("listChasi", selectAsgnmInstrList); model.addAttribute("listChasi", selectAsgnmInstrList);
System.out.println("------------------------======================="); System.out.println("------------------------=======================");
*/ */
//20220223 우영두 추가 //20220223 우영두 추가
//강의내역 NOTI 입력 //강의내역 NOTI 입력
VEAsgnmNotiVO vEAsgnmNotiVO = new VEAsgnmNotiVO(); VEAsgnmNotiVO vEAsgnmNotiVO = new VEAsgnmNotiVO();
String tblUnitOrd = ""; String tblUnitOrd = "";
if(StringUtil.isNotEmpty(vEEduAplctVO.getEduChasiOrd())) { if(StringUtil.isNotEmpty(vEEduAplctVO.getEduChasiOrd())) {
tblUnitOrd = vEEduAplctVO.getEduChasiOrd(); tblUnitOrd = vEEduAplctVO.getEduChasiOrd();
}else { }else {
tblUnitOrd = vEEduAplctVO.getEduAplctOrd(); tblUnitOrd = vEEduAplctVO.getEduAplctOrd();
} }
vEAsgnmNotiVO.setTblUniqOrd(tblUnitOrd); vEAsgnmNotiVO.setTblUniqOrd(tblUnitOrd);
vEAsgnmNotiVO.setFrstRegisterId(user.getUniqId()); vEAsgnmNotiVO.setFrstRegisterId(user.getUniqId());
vEAsgnmNotiVO.setMenuNo(session.getAttribute("menuNo").toString()); vEAsgnmNotiVO.setMenuNo(session.getAttribute("menuNo").toString());
vEAsgnmNotiVO.setUrlPath(IpUtil.getRequestURI(request)); vEAsgnmNotiVO.setUrlPath(IpUtil.getRequestURI(request));
vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO); vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO);
return "oprtn/adultVisitEdu/eduRsltMngDetail"; return "oprtn/adultVisitEdu/eduRsltMngDetail";
} }
/** /**
* 교육결과반려 처리 팝업 * 교육결과반려 처리 팝업
*/ */
@RequestMapping("popup/eduRsltMngDetailRfslSecurityPopup.do") @RequestMapping("popup/eduRsltMngDetailRfslSecurityPopup.do")
public String eduRsltMngDetailRfslSecurityPopup( public String eduRsltMngDetailRfslSecurityPopup(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, ModelMap model , ModelMap model
, HttpServletRequest request , HttpServletRequest request
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request); //String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo; //if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
//기본데이터 불러오기 //기본데이터 불러오기
vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO); vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//데이터 복호화 - VO 단위로 만들어서 사용 //데이터 복호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO); vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
model.addAttribute("info", vEEduAplctVO); model.addAttribute("info", vEEduAplctVO);
//사용자 교육신청 과정 리스트 //사용자 교육신청 과정 리스트
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectMberEduAplctPrcsList(vEPrcsDetailVO); List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectMberEduAplctPrcsList(vEPrcsDetailVO);
model.addAttribute("list", vEPrcsDetailVOList); model.addAttribute("list", vEPrcsDetailVOList);
//사용자 교육신청 차시 리스트 //사용자 교육신청 차시 리스트
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO); List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO);
model.addAttribute("chasiList", vEEduChasiVOList); model.addAttribute("chasiList", vEEduChasiVOList);
return "oprtn/adultVisitEdu/popup/eduRsltMngDetailRfslSecurityPopup"; return "oprtn/adultVisitEdu/popup/eduRsltMngDetailRfslSecurityPopup";
} }
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")
@RequestMapping(value = "eduRsltSrvyExcelDownLoad.do") @RequestMapping(value = "eduRsltSrvyExcelDownLoad.do")
public ModelAndView eduRsltSrvyExcelDownLoad(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model) throws Exception { public ModelAndView eduRsltSrvyExcelDownLoad(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model) throws Exception {
try { try {
// 설문조사 정보 // 설문조사 정보
QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO();
qustnrRespondInfoVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); qustnrRespondInfoVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd());
List<QustnrRespondInfoVO> chasiSrvyList = egovQustnrRespondInfoService.selectChasiSrvyExcelList(qustnrRespondInfoVO); List<QustnrRespondInfoVO> chasiSrvyList = egovQustnrRespondInfoService.selectChasiSrvyExcelList(qustnrRespondInfoVO);
System.out.println("out-list-1"); System.out.println("out-list-1");
List<Object> excelData = new ArrayList<>(); List<Object> excelData = new ArrayList<>();
excelData.addAll(chasiSrvyList); excelData.addAll(chasiSrvyList);
// 세팅값 // 세팅값
String title = "성인 찾아가는 저작권 교육"; String title = "성인 찾아가는 저작권 교육";
int[] width = { int[] width = {
18000, 4000, 4000, 4000, 4000, 4000 18000, 4000, 4000, 4000, 4000, 4000
}; // 너비 }; // 너비
//33개 항목 //33개 항목
String[] header = { String[] header = {
"평가문항", "매우만족", "만족", "보통", "불만족", "매우불만족" "평가문항", "매우만족", "만족", "보통", "불만족", "매우불만족"
}; };
String[] order = { String[] order = {
"RespondAnswerCn","VerySatisfied","Satisfied","Neither","Dissatisfied","VeryDissatisfied" "RespondAnswerCn","VerySatisfied","Satisfied","Neither","Dissatisfied","VeryDissatisfied"
}; };
// 호출 // 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title); SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title);
model.addAttribute("locale", Locale.KOREA); model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook); model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title); model.addAttribute("workbookName", title);
}catch(Exception ep) { }catch(Exception ep) {
ep.getStackTrace(); ep.getStackTrace();
} }
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView"); modelAndView.setViewName("excelDownloadView");
modelAndView.addObject(model); modelAndView.addObject(model);
return modelAndView; return modelAndView;
} }
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //
// private function // private function
// //
// //
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정 //페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1( private PaginationInfo setPagingStep1(
VEEduAplctVO p_vEEduAplctVO VEEduAplctVO p_vEEduAplctVO
)throws Exception{ )throws Exception{
// pageing step1 // pageing step1
PaginationInfo paginationInfo = new PaginationInfo(); PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex()); paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit()); paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit());
paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize()); paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize());
return paginationInfo; return paginationInfo;
} }
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화 //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEEduAplctVO setPagingStep2( private VEEduAplctVO setPagingStep2(
VEEduAplctVO p_vEEduAplctVO VEEduAplctVO p_vEEduAplctVO
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
// pageing step2 // pageing step2
p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEEduAplctVO.setSearchSortCnd("prcs_ord"); p_vEEduAplctVO.setSearchSortCnd("prcs_ord");
p_vEEduAplctVO.setSearchSortOrd("desc"); p_vEEduAplctVO.setSearchSortOrd("desc");
} }
return p_vEEduAplctVO; return p_vEEduAplctVO;
} }
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3( private PaginationInfo setPagingStep3(
List<VEEduAplctVO> p_vEEduAplctVOList List<VEEduAplctVO> p_vEEduAplctVOList
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
// pageing step3 // pageing step3
int totCnt = 0; int totCnt = 0;
if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt(); if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt); p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo; return p_paginationInfo;
} }
} }

View File

@ -1,355 +1,355 @@
package kcc.ve.oprtn.adultVisitEdu.eduSchdlMng.web; package kcc.ve.oprtn.adultVisitEdu.eduSchdlMng.web;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.service.EgovCmmUseService; import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.utl.user.service.CheckAdrProcessUtil; import kcc.com.utl.user.service.CheckAdrProcessUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrService; import kcc.kccadr.adjreqmgr.service.AdjReqMgrService;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO; import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService; import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.cmm.VeConstants; import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
/** /**
* 교육일정관리(관리자-성인찾아가는저작권교육) * 교육일정관리(관리자-성인찾아가는저작권교육)
* 교육일정관리에 관한 controller 클래스를 정의한다. * 교육일정관리에 관한 controller 클래스를 정의한다.
* @author 조용준 * @author 조용준
* @since 2021.12.16 * @since 2021.12.16
* @version 1.0 * @version 1.0
* @see * @see
* *
* <pre> * <pre>
* << 개정이력(Modification Information) >> * << 개정이력(Modification Information) >>
* *
* 수정일 수정자 수정내용 * 수정일 수정자 수정내용
* ------- -------- --------------------------- * ------- -------- ---------------------------
* 2021.12.16 조용준 최초 생성 * 2021.12.16 조용준 최초 생성
* *
* </pre> * </pre>
*/ */
@Controller @Controller
@RequestMapping("/kccadr/oprtn/adultVisitEdu") @RequestMapping("/kccadr/oprtn/adultVisitEdu")
public class EduSchdlMngAdultController { public class EduSchdlMngAdultController {
private static final Logger LOGGER = LoggerFactory.getLogger(EduSchdlMngAdultController.class); private static final Logger LOGGER = LoggerFactory.getLogger(EduSchdlMngAdultController.class);
//로그인 체크 util //로그인 체크 util
@Resource(name = "checkLoginUtil") @Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil; private CheckLoginUtil checkLoginUtil;
//과정 관리 //과정 관리
@Resource(name = "vEPrcsService") @Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService; private VEPrcsService vEPrcsService;
//신청과정 관리 //신청과정 관리
@Resource(name = "vEEduMIXService") @Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService; private VEEduMIXService vEEduMIXService;
//교육신청 //교육신청
@Resource(name = "vEEduAplctService") @Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService; private VEEduAplctService vEEduAplctService;
//교육과정신청 //교육과정신청
@Resource(name = "vEPrcsMIXService") @Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService; private VEPrcsMIXService vEPrcsMIXService;
//차시 //차시
@Resource(name = "vEEduChasiService") @Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService; private VEEduChasiService vVEEduChasiService;
// 교육신청 서비스단 // 교육신청 서비스단
@Resource(name = "AdjReqMgrService") @Resource(name = "AdjReqMgrService")
private AdjReqMgrService adjReqMgrService; private AdjReqMgrService adjReqMgrService;
// eGov 공통코드 // eGov 공통코드
@Resource(name = "EgovCmmUseService") @Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService; private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService") @Resource(name = "EgovFileMngService")
private EgovFileMngService fileService; private EgovFileMngService fileService;
// global 프로퍼티 // global 프로퍼티
@Resource(name="globalSettings") @Resource(name="globalSettings")
protected Properties propertiesService; protected Properties propertiesService;
//첨부파일 경로, realPath 설정 //첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil") @Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil; private EgovFileMngUtil fileUtil;
// 첨부파일 정보 // 첨부파일 정보
@Resource(name="EgovFileMngService") @Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService; private EgovFileMngService fileMngService;
//암복호화 유틸 //암복호화 유틸
@Resource(name = "egovCryptoUtil") @Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil; EgovCryptoUtil egovCryptoUtil;
@Resource(name="KccadrMgrUdtService") @Resource(name="KccadrMgrUdtService")
private KccadrMgrUdtService kccadrMgrUdtService; private KccadrMgrUdtService kccadrMgrUdtService;
// 교육신청 서비스단 // 교육신청 서비스단
@Resource(name = "checkAdrProcessUtil") @Resource(name = "checkAdrProcessUtil")
private CheckAdrProcessUtil checkAdrProcessUtil; private CheckAdrProcessUtil checkAdrProcessUtil;
/** /**
* 교육일정관리 목록 화면 * 교육일정관리 목록 화면
*/ */
@RequestMapping("eduSchdlMngList.do") @RequestMapping("eduSchdlMngList.do")
public String eduSchdlMngList( public String eduSchdlMngList(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, ModelMap model , ModelMap model
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
//String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); //String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
//if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; //if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20); //청소년 vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20); //청소년
//1.pageing step1 //1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO); PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
//2. pageing step2 //2. pageing step2
vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo); vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo);
//vEEduAplctVO.setLctrDivCd("30"); //vEEduAplctVO.setLctrDivCd("30");
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO); List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
//3.pageing step3 //3.pageing step3
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo); paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo); model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달 //대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEEduAplctVOList); model.addAttribute("list", vEEduAplctVOList);
/* /*
//1.pageing step1 //1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//2. pageing step2 //2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
//3.pageing step3 //3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo); model.addAttribute("paginationInfo", paginationInfo);
*/ */
//대상 리스트, 페이징 정보 전달 //대상 리스트, 페이징 정보 전달
//model.addAttribute("resultList", vEEduAplctVOList); //model.addAttribute("resultList", vEEduAplctVOList);
return "oprtn/adultVisitEdu/eduSchdlMngList"; return "oprtn/adultVisitEdu/eduSchdlMngList";
} }
/** /**
* 교육일정관리 등록 화면 * 교육일정관리 등록 화면
*/ */
@RequestMapping("eduSchdlMngReg.do") @RequestMapping("eduSchdlMngReg.do")
public String eduSchdlMngReg( public String eduSchdlMngReg(
@ModelAttribute("searchVO") AdjReqMgrVO adjReqMgrVO @ModelAttribute("searchVO") AdjReqMgrVO adjReqMgrVO
, ModelMap model , ModelMap model
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
return "oprtn/adultVisitEdu/eduSchdlMngReg"; return "oprtn/adultVisitEdu/eduSchdlMngReg";
} }
/** /**
* 교육신청관리 상세 화면 * 교육신청관리 상세 화면
*/ */
@RequestMapping("eduSchdlMngDetail.do") @RequestMapping("eduSchdlMngDetail.do")
public String eduSchdlMngDetail( public String eduSchdlMngDetail(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, ModelMap model , ModelMap model
, HttpServletRequest request , HttpServletRequest request
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request); //String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo; //if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
//기본데이터 불러오기 //기본데이터 불러오기
vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO); vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//데이터 복호화 - VO 단위로 만들어서 사용 //데이터 복호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO); vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
model.addAttribute("info", vEEduAplctVO); model.addAttribute("info", vEEduAplctVO);
//사용자 교육신청 과정 리스트 //사용자 교육신청 과정 리스트
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectMberEduAplctPrcsList(vEPrcsDetailVO); List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectMberEduAplctPrcsList(vEPrcsDetailVO);
model.addAttribute("list", vEPrcsDetailVOList); model.addAttribute("list", vEPrcsDetailVOList);
//사용자 교육신청 차시 리스트 //사용자 교육신청 차시 리스트
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO); List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO);
model.addAttribute("chasiList", vEEduChasiVOList); model.addAttribute("chasiList", vEEduChasiVOList);
return "oprtn/adultVisitEdu/eduSchdlMngDetail"; return "oprtn/adultVisitEdu/eduSchdlMngDetail";
} }
/** /**
* 교육일정반려 처리 팝업 * 교육일정반려 처리 팝업
*/ */
@RequestMapping("popup/eduSchdlMngDetailRfslSecurityPopup.do") @RequestMapping("popup/eduSchdlMngDetailRfslSecurityPopup.do")
public String eduSchdlMngDetailRfslSecurityPopup( public String eduSchdlMngDetailRfslSecurityPopup(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, ModelMap model , ModelMap model
, HttpServletRequest request , HttpServletRequest request
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request); //String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo; //if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
//기본데이터 불러오기 //기본데이터 불러오기
vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO); vEEduAplctVO = vEEduAplctService.selectDetail(vEEduAplctVO);
//데이터 복호화 - VO 단위로 만들어서 사용 //데이터 복호화 - VO 단위로 만들어서 사용
vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO); vEEduAplctVO = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVO);
model.addAttribute("info", vEEduAplctVO); model.addAttribute("info", vEEduAplctVO);
//사용자 교육신청 과정 리스트 //사용자 교육신청 과정 리스트
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); vEPrcsDetailVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectMberEduAplctPrcsList(vEPrcsDetailVO); List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectMberEduAplctPrcsList(vEPrcsDetailVO);
model.addAttribute("list", vEPrcsDetailVOList); model.addAttribute("list", vEPrcsDetailVOList);
//사용자 교육신청 차시 리스트 //사용자 교육신청 차시 리스트
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO); List<VEEduChasiVO> vEEduChasiVOList = vVEEduChasiService.selectList(vEEduChasiVO);
model.addAttribute("chasiList", vEEduChasiVOList); model.addAttribute("chasiList", vEEduChasiVOList);
return "oprtn/adultVisitEdu/popup/eduSchdlMngDetailRfslSecurityPopup"; return "oprtn/adultVisitEdu/popup/eduSchdlMngDetailRfslSecurityPopup";
} }
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //
// private function // private function
// //
// //
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정 //페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1( private PaginationInfo setPagingStep1(
VEEduAplctVO p_vEEduAplctVO VEEduAplctVO p_vEEduAplctVO
)throws Exception{ )throws Exception{
// pageing step1 // pageing step1
PaginationInfo paginationInfo = new PaginationInfo(); PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex()); paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit()); paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit());
paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize()); paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize());
return paginationInfo; return paginationInfo;
} }
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화 //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEEduAplctVO setPagingStep2( private VEEduAplctVO setPagingStep2(
VEEduAplctVO p_vEEduAplctVO VEEduAplctVO p_vEEduAplctVO
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
// pageing step2 // pageing step2
p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEEduAplctVO.setSearchSortCnd("prcs_ord"); p_vEEduAplctVO.setSearchSortCnd("prcs_ord");
p_vEEduAplctVO.setSearchSortOrd("desc"); p_vEEduAplctVO.setSearchSortOrd("desc");
} }
return p_vEEduAplctVO; return p_vEEduAplctVO;
} }
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3( private PaginationInfo setPagingStep3(
List<VEEduAplctVO> p_vEEduAplctVOList List<VEEduAplctVO> p_vEEduAplctVOList
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
// pageing step3 // pageing step3
int totCnt = 0; int totCnt = 0;
if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt(); if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt); p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo; return p_paginationInfo;
} }
} }

View File

@ -38,6 +38,7 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
private String prsctrNm; // 검사성명 private String prsctrNm; // 검사성명
private String reqStateCd; // 의뢰상태코드 private String reqStateCd; // 의뢰상태코드
private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK
private String atchFileId;// 첨부파일 ID
@ -183,6 +184,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setPrcsAplctPrdOrdCmplt(String prcsAplctPrdOrdCmplt) { public void setPrcsAplctPrdOrdCmplt(String prcsAplctPrdOrdCmplt) {
this.prcsAplctPrdOrdCmplt = prcsAplctPrdOrdCmplt; this.prcsAplctPrdOrdCmplt = prcsAplctPrdOrdCmplt;
} }
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}

View File

@ -13,12 +13,16 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO; import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.StringUtil; import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
@ -85,6 +89,18 @@ public class CndtnTrgtMngController {
//과정차시 관리 //과정차시 관리
@Resource(name = "vEPrcsAplctPrdService") @Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService; private VEPrcsAplctPrdService vEPrcsAplctPrdService;
//파일 체크 util
@Resource(name = "checkFileUtil")
private CheckFileUtil checkFileUtil;
//파일정보의 관리
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
/* /*
// 교육신청 서비스단 // 교육신청 서비스단
@ -283,8 +299,8 @@ public class CndtnTrgtMngController {
public ModelAndView cndtnEduPrcsMngRegAjax( public ModelAndView cndtnEduPrcsMngRegAjax(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model , ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request , HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception { ) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
@ -304,8 +320,29 @@ public class CndtnTrgtMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//step2.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "APLCT_" //file_name_prefix
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
System.out.println("s_scholSealAtchFileId :: "+ s_scholSealAtchFileId);
cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId()); cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId());
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
// vEPrcsDetailVO.setPrcsOrd(prcsOrd); // vEPrcsDetailVO.setPrcsOrd(prcsOrd);
// vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 // vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
@ -331,6 +368,7 @@ public class CndtnTrgtMngController {
, ModelMap model , ModelMap model
//, RedirectAttributes redirectAttributes //, RedirectAttributes redirectAttributes
, HttpServletRequest request , HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception { ) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
@ -351,6 +389,56 @@ public class CndtnTrgtMngController {
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//step2.첨부파일 체크 저장 하기
String s_scholSealAtchFileId = "";
s_scholSealAtchFileId = cndtnTrgtInfoMngVO.getAtchFileId();
//DB에서 실제 첨부파일 존재 여부 확인
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(s_scholSealAtchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
if (result.size()<=0) {
s_scholSealAtchFileId = "";
}
//step3.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
//기존 파일 존재 여부에 따라서 insert or update 처리
if ("".equals(s_scholSealAtchFileId)) {
//atchFileId = this.fileValCheckNdbInsert(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit); //EXT, MB size and ea
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "APLCT_"
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId);
}else {
//atchFileId = this.fileValCheckNdbUpdate(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit, atchFileId); //EXT, MB size and ea
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate(
multiRequest, modelAndView
, "APLCT_"
, s_file_exts
, i_limit_size
, i_file_limit
, s_scholSealAtchFileId
); //EXT, MB size and ea
}
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
cndtnTrgtInfoMngVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id cndtnTrgtInfoMngVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO); cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO);
@ -383,7 +471,14 @@ public class CndtnTrgtMngController {
//과정 조회 //과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO); model.addAttribute("info", cndtnTrgtInfoVO);
//세부과정 목록 조회
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "oprtn/cndtnSspnIdtmt/trgtDetail"; return "oprtn/cndtnSspnIdtmt/trgtDetail";
} }
@ -449,6 +544,14 @@ public class CndtnTrgtMngController {
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO); model.addAttribute("info", cndtnTrgtInfoVO);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "oprtn/cndtnSspnIdtmt/trgtMdfy"; return "oprtn/cndtnSspnIdtmt/trgtMdfy";
} }

View File

@ -1,32 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:egov-crypto="http://www.egovframe.go.kr/schema/egov-crypto" xmlns:egov-crypto="http://www.egovframe.go.kr/schema/egov-crypto"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.egovframe.go.kr/schema/egov-crypto http://www.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.8.xsd"> http://www.egovframe.go.kr/schema/egov-crypto http://www.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.8.xsd">
<!-- <!--
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:egov-crypto="http://maven.egovframe.go.kr/schema/egov-crypto" xmlns:egov-crypto="http://maven.egovframe.go.kr/schema/egov-crypto"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://maven.egovframe.go.kr/schema/egov-crypto http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.10.0.xsd"> http://maven.egovframe.go.kr/schema/egov-crypto http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.10.0.xsd">
--> -->
<!-- <!--
initial : globals.properties 연계 Url, UserName, Password 값 로드 여부(설정값 : true, false) initial : globals.properties 연계 Url, UserName, Password 값 로드 여부(설정값 : true, false)
crypto : 계정 암호화 여부(설정값 : true, false) crypto : 계정 암호화 여부(설정값 : true, false)
algorithm : 계정 암호화 알고리즘 algorithm : 계정 암호화 알고리즘
algorithmKey : 계정 암호화키 키 algorithmKey : 계정 암호화키 키
cryptoBlockSize : 계정 암호화키 블록사이즈 cryptoBlockSize : 계정 암호화키 블록사이즈
cryptoPropertyLocation : 설정파일 암복호화 경로 (선택) 기본값은 'classpath:/egovframework/egovProps/globals.properties' cryptoPropertyLocation : 설정파일 암복호화 경로 (선택) 기본값은 'classpath:/egovframework/egovProps/globals.properties'
--> -->
<egov-crypto:config id="egovCryptoConfig" <egov-crypto:config id="egovCryptoConfig"
initial="false" initial="false"
crypto="false" crypto="false"
algorithm="SHA-256" algorithm="SHA-256"
algorithmKey="egovframe" algorithmKey="egovframe"
algorithmKeyHash="gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ=" algorithmKeyHash="gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ="
cryptoBlockSize="1024" cryptoBlockSize="1024"
cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties" cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties"
/> />
</beans> </beans>

View File

@ -1,27 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd" http://www.springframework.org/schema/util/spring-util-3.0.xsd"
xmlns:util="http://www.springframework.org/schema/util" > xmlns:util="http://www.springframework.org/schema/util" >
<!-- 프로퍼티 정보 설정 --> <!-- 프로퍼티 정보 설정 -->
<bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy"> <bean name="propertiesService" class="egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
<property name="properties"> <property name="properties">
<map> <map>
<entry key="pageUnit" value="10"/> <entry key="pageUnit" value="10"/>
<entry key="pageSize" value="10"/> <entry key="pageSize" value="10"/>
<entry key="posblAtchFileSize" value="5242880"/> <entry key="posblAtchFileSize" value="5242880"/>
<entry key="posblResveThumbAtchFileNum" value="1"/> <entry key="posblResveThumbAtchFileNum" value="1"/>
<entry key="posblResveImgAtchFileNum" value="3"/> <entry key="posblResveImgAtchFileNum" value="3"/>
<entry key="posblResvePortpolioAtchFileNum" value="3"/> <entry key="posblResvePortpolioAtchFileNum" value="3"/>
<!-- <entry key="Globals.fileStorePath" value="/user/file/sht/"/> <!-- <entry key="Globals.fileStorePath" value="/user/file/sht/"/>
<entry key="Globals.addedOptions" value="false"/> --> <entry key="Globals.addedOptions" value="false"/> -->
<entry key="Globals.fileStorePath" value="/app/doc/offedu/sht/"/> <entry key="Globals.fileStorePath" value="/app/doc/offedu/sht/"/>
<entry key="Globals.resveFileStorePath" value="/app/doc/offedu/resve/"/> <entry key="Globals.resveFileStorePath" value="/app/doc/offedu/resve/"/>
<entry key="Globals.addedOptions" value="false"/> <entry key="Globals.addedOptions" value="false"/>
</map> </map>
</property> </property>
</bean> </bean>
<util:properties id="globalSettings" location="classpath:/egovframework/egovProps/globals.properties" /> <util:properties id="globalSettings" location="classpath:/egovframework/egovProps/globals.properties" />
</beans> </beans>

View File

@ -1,236 +1,236 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="File"> <sqlMap namespace="File">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/> <typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="FileVO" type="kcc.com.cmm.service.FileVO"/> <typeAlias alias="FileVO" type="kcc.com.cmm.service.FileVO"/>
<resultMap id="fileList" class="kcc.com.cmm.service.FileVO"> <resultMap id="fileList" class="kcc.com.cmm.service.FileVO">
<result property="atchFileId" column="ATCH_FILE_ID" columnIndex="1"/> <result property="atchFileId" column="ATCH_FILE_ID" columnIndex="1"/>
<result property="fileCn" column="FILE_CN" columnIndex="2"/> <result property="fileCn" column="FILE_CN" columnIndex="2"/>
<result property="fileExtsn" column="FILE_EXTSN" columnIndex="3"/> <result property="fileExtsn" column="FILE_EXTSN" columnIndex="3"/>
<result property="fileMg" column="FILE_SIZE" columnIndex="4"/> <result property="fileMg" column="FILE_SIZE" columnIndex="4"/>
<result property="fileSn" column="FILE_SN" columnIndex="5"/> <result property="fileSn" column="FILE_SN" columnIndex="5"/>
<result property="fileStreCours" column="FILE_STRE_COURS" columnIndex="6"/> <result property="fileStreCours" column="FILE_STRE_COURS" columnIndex="6"/>
<result property="orignlFileNm" column="ORIGNL_FILE_NM" columnIndex="7"/> <result property="orignlFileNm" column="ORIGNL_FILE_NM" columnIndex="7"/>
<result property="streFileNm" column="STRE_FILE_NM" columnIndex="8"/> <result property="streFileNm" column="STRE_FILE_NM" columnIndex="8"/>
<result property="creatDt" column="CREAT_DT" columnIndex="9"/> <result property="creatDt" column="CREAT_DT" columnIndex="9"/>
<result property="fileSize" column="FILE_SIZE" columnIndex="10"/> <result property="fileSize" column="FILE_SIZE" columnIndex="10"/>
</resultMap> </resultMap>
<resultMap id="fileDetail" class="kcc.com.cmm.service.FileVO"> <resultMap id="fileDetail" class="kcc.com.cmm.service.FileVO">
<result property="atchFileId" column="ATCH_FILE_ID" columnIndex="1"/> <result property="atchFileId" column="ATCH_FILE_ID" columnIndex="1"/>
<result property="fileCn" column="FILE_CN" columnIndex="2"/> <result property="fileCn" column="FILE_CN" columnIndex="2"/>
<result property="fileExtsn" column="FILE_EXTSN" columnIndex="3"/> <result property="fileExtsn" column="FILE_EXTSN" columnIndex="3"/>
<result property="fileMg" column="FILE_SIZE" columnIndex="4"/> <result property="fileMg" column="FILE_SIZE" columnIndex="4"/>
<result property="fileSn" column="FILE_SN" columnIndex="5"/> <result property="fileSn" column="FILE_SN" columnIndex="5"/>
<result property="fileStreCours" column="FILE_STRE_COURS" columnIndex="6"/> <result property="fileStreCours" column="FILE_STRE_COURS" columnIndex="6"/>
<result property="orignlFileNm" column="ORIGNL_FILE_NM" columnIndex="7"/> <result property="orignlFileNm" column="ORIGNL_FILE_NM" columnIndex="7"/>
<result property="streFileNm" column="STRE_FILE_NM" columnIndex="8"/> <result property="streFileNm" column="STRE_FILE_NM" columnIndex="8"/>
<result property="thumbFileNm" column="THUMB_FILE_NM" /> <result property="thumbFileNm" column="THUMB_FILE_NM" />
<result property="fileSize" column="FILE_SIZE" columnIndex="10"/> <result property="fileSize" column="FILE_SIZE" columnIndex="10"/>
</resultMap> </resultMap>
<select id="FileManageDAO.selectFileList" parameterClass="FileVO" resultMap="fileList" > <select id="FileManageDAO.selectFileList" parameterClass="FileVO" resultMap="fileList" >
<![CDATA[ <![CDATA[
SELECT SELECT
a.ATCH_FILE_ID, b.FILE_CN, b.FILE_SN, b.FILE_STRE_COURS, b.STRE_FILE_NM, a.ATCH_FILE_ID, b.FILE_CN, b.FILE_SN, b.FILE_STRE_COURS, b.STRE_FILE_NM,
b.FILE_EXTSN, b.ORIGNL_FILE_NM, b.FILE_SIZE, DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %h:%m:%s' ) AS CREAT_DT b.FILE_EXTSN, b.ORIGNL_FILE_NM, b.FILE_SIZE, DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %h:%m:%s' ) AS CREAT_DT
FROM FROM
LETTNFILE a, LETTNFILEDETAIL b LETTNFILE a, LETTNFILEDETAIL b
WHERE 1=1 WHERE 1=1
AND AND
a.ATCH_FILE_ID = b.ATCH_FILE_ID a.ATCH_FILE_ID = b.ATCH_FILE_ID
AND AND
a.ATCH_FILE_ID = #atchFileId# a.ATCH_FILE_ID = #atchFileId#
AND AND
a.USE_AT = 'Y' a.USE_AT = 'Y'
ORDER BY b.FILE_SN ORDER BY b.FILE_SN
]]> ]]>
</select> </select>
<select id="FileManageDAO.selectZipFileList" parameterClass="FileVO" resultMap="fileList" > <select id="FileManageDAO.selectZipFileList" parameterClass="FileVO" resultMap="fileList" >
SELECT SELECT
a.ATCH_FILE_ID, b.FILE_CN, b.FILE_SN, b.FILE_STRE_COURS, b.STRE_FILE_NM, a.ATCH_FILE_ID, b.FILE_CN, b.FILE_SN, b.FILE_STRE_COURS, b.STRE_FILE_NM,
b.FILE_EXTSN, b.ORIGNL_FILE_NM, b.FILE_SIZE, DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %h:%m:%s' ) AS CREAT_DT b.FILE_EXTSN, b.ORIGNL_FILE_NM, b.FILE_SIZE, DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %h:%m:%s' ) AS CREAT_DT
FROM FROM
LETTNFILE a, LETTNFILEDETAIL b LETTNFILE a, LETTNFILEDETAIL b
WHERE WHERE
a.ATCH_FILE_ID = b.ATCH_FILE_ID a.ATCH_FILE_ID = b.ATCH_FILE_ID
AND AND
a.USE_AT = 'Y' a.USE_AT = 'Y'
<isEqual property="downloadType" compareValue="A"> <isEqual property="downloadType" compareValue="A">
AND a.ATCH_FILE_ID IN AND a.ATCH_FILE_ID IN
<iterate property="atchFileIdList" open="(" close=")" conjunction=","> <iterate property="atchFileIdList" open="(" close=")" conjunction=",">
#atchFileIdList[]# #atchFileIdList[]#
</iterate> </iterate>
<isNotEmpty property="fileSn"> <isNotEmpty property="fileSn">
AND b.FILE_SN = #fileSn# AND b.FILE_SN = #fileSn#
</isNotEmpty> </isNotEmpty>
</isEqual> </isEqual>
<isEqual property="downloadType" compareValue="B"> <isEqual property="downloadType" compareValue="B">
AND a.ATCH_FILE_ID = #atchFileId# AND a.ATCH_FILE_ID = #atchFileId#
AND b.FILE_SN IN AND b.FILE_SN IN
<iterate property="atchFileSnList" open="(" close=")" conjunction=","> <iterate property="atchFileSnList" open="(" close=")" conjunction=",">
#atchFileSnList[]# #atchFileSnList[]#
</iterate> </iterate>
</isEqual> </isEqual>
ORDER BY b.FILE_SN ORDER BY b.FILE_SN
</select> </select>
<insert id="FileManageDAO.insertFileMaster" parameterClass="FileVO" > <insert id="FileManageDAO.insertFileMaster" parameterClass="FileVO" >
<![CDATA[ <![CDATA[
INSERT INTO LETTNFILE INSERT INTO LETTNFILE
(ATCH_FILE_ID, CREAT_DT, USE_AT) (ATCH_FILE_ID, CREAT_DT, USE_AT)
VALUES VALUES
( #atchFileId#, NOW(), 'Y') ( #atchFileId#, NOW(), 'Y')
]]> ]]>
</insert> </insert>
<insert id="FileManageDAO.insertFileDetail" parameterClass="FileVO" > <insert id="FileManageDAO.insertFileDetail" parameterClass="FileVO" >
<![CDATA[ <![CDATA[
INSERT INTO LETTNFILEDETAIL INSERT INTO LETTNFILEDETAIL
( ATCH_FILE_ID, FILE_SN, FILE_STRE_COURS, STRE_FILE_NM, ( ATCH_FILE_ID, FILE_SN, FILE_STRE_COURS, STRE_FILE_NM,
ORIGNL_FILE_NM, FILE_EXTSN, FILE_SIZE, FILE_CN, THUMB_FILE_NM ) ORIGNL_FILE_NM, FILE_EXTSN, FILE_SIZE, FILE_CN, THUMB_FILE_NM )
VALUES VALUES
( #atchFileId#, #fileSn#, #fileStreCours#, #streFileNm#, ( #atchFileId#, #fileSn#, #fileStreCours#, #streFileNm#,
#orignlFileNm#, #fileExtsn#, #fileMg#, #fileCn#, #thumbFileNm# ) #orignlFileNm#, #fileExtsn#, #fileMg#, #fileCn#, #thumbFileNm# )
]]> ]]>
</insert> </insert>
<delete id="FileManageDAO.deleteFileDetail" parameterClass="FileVO" > <delete id="FileManageDAO.deleteFileDetail" parameterClass="FileVO" >
<![CDATA[ <![CDATA[
DELETE FROM LETTNFILEDETAIL DELETE FROM LETTNFILEDETAIL
WHERE WHERE
ATCH_FILE_ID = #atchFileId# ATCH_FILE_ID = #atchFileId#
AND AND
FILE_SN = #fileSn# FILE_SN = #fileSn#
]]> ]]>
</delete> </delete>
<select id="FileManageDAO.getMaxFileSN" parameterClass="FileVO" resultClass="java.lang.Integer"> <select id="FileManageDAO.getMaxFileSN" parameterClass="FileVO" resultClass="java.lang.Integer">
<![CDATA[ <![CDATA[
SELECT IFNULL(MAX(FILE_SN),0)+1 AS FILE_SN SELECT IFNULL(MAX(FILE_SN),0)+1 AS FILE_SN
FROM LETTNFILEDETAIL FROM LETTNFILEDETAIL
WHERE ATCH_FILE_ID = #atchFileId# WHERE ATCH_FILE_ID = #atchFileId#
]]> ]]>
</select> </select>
<select id="FileManageDAO.selectFileInf" parameterClass="FileVO" resultMap="fileDetail" > <select id="FileManageDAO.selectFileInf" parameterClass="FileVO" resultMap="fileDetail" >
<![CDATA[ <![CDATA[
SELECT SELECT
ATCH_FILE_ID, FILE_CN, FILE_SN, FILE_STRE_COURS, STRE_FILE_NM, ATCH_FILE_ID, FILE_CN, FILE_SN, FILE_STRE_COURS, STRE_FILE_NM,
FILE_EXTSN, ORIGNL_FILE_NM, FILE_SIZE, THUMB_FILE_NM FILE_EXTSN, ORIGNL_FILE_NM, FILE_SIZE, THUMB_FILE_NM
FROM FROM
LETTNFILEDETAIL LETTNFILEDETAIL
WHERE WHERE
ATCH_FILE_ID = #atchFileId# ATCH_FILE_ID = #atchFileId#
AND AND
FILE_SN = #fileSn# FILE_SN = #fileSn#
]]> ]]>
</select> </select>
<update id="FileManageDAO.deleteCOMTNFILE" parameterClass="FileVO" > <update id="FileManageDAO.deleteCOMTNFILE" parameterClass="FileVO" >
<![CDATA[ <![CDATA[
UPDATE LETTNFILE UPDATE LETTNFILE
SET USE_AT = 'N' SET USE_AT = 'N'
WHERE ATCH_FILE_ID = #atchFileId# WHERE ATCH_FILE_ID = #atchFileId#
]]> ]]>
</update> </update>
<select id="FileManageDAO.selectFileListByFileNm" parameterClass="FileVO" resultMap="fileList" > <select id="FileManageDAO.selectFileListByFileNm" parameterClass="FileVO" resultMap="fileList" >
<![CDATA[ <![CDATA[
SELECT SELECT
a.ATCH_FILE_ID, b.FILE_CN, b.FILE_SN, b.FILE_STRE_COURS, b.STRE_FILE_NM, a.ATCH_FILE_ID, b.FILE_CN, b.FILE_SN, b.FILE_STRE_COURS, b.STRE_FILE_NM,
b.FILE_EXTSN, b.ORIGNL_FILE_NM, b.FILE_SIZE, DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %h:%m:%s' ) AS CREAT_DT b.FILE_EXTSN, b.ORIGNL_FILE_NM, b.FILE_SIZE, DATE_FORMAT(a.CREAT_DT, '%Y-%m-%d %h:%m:%s' ) AS CREAT_DT
FROM FROM
LETTNFILE a, LETTNFILEDETAIL b LETTNFILE a, LETTNFILEDETAIL b
WHERE WHERE
a.ATCH_FILE_ID = b.ATCH_FILE_ID a.ATCH_FILE_ID = b.ATCH_FILE_ID
AND AND
a.USE_AT = 'Y' a.USE_AT = 'Y'
]]> ]]>
<isEqual prepend="AND" property="searchCnd" compareValue="streFileNm"> <isEqual prepend="AND" property="searchCnd" compareValue="streFileNm">
<![CDATA[ b.STRE_FILE_NM LIKE CONCAT ('%', #searchWrd#,'%') ]]> <![CDATA[ b.STRE_FILE_NM LIKE CONCAT ('%', #searchWrd#,'%') ]]>
</isEqual> </isEqual>
<isEqual prepend="AND" property="searchCnd" compareValue="orignlFileNm"> <isEqual prepend="AND" property="searchCnd" compareValue="orignlFileNm">
<![CDATA[ b.ORIGNL_FILE_NM LIKE CONCAT ('%', #searchWrd#,'%') ]]> <![CDATA[ b.ORIGNL_FILE_NM LIKE CONCAT ('%', #searchWrd#,'%') ]]>
</isEqual> </isEqual>
<![CDATA[ <![CDATA[
ORDER BY a.ATCH_FILE_ID, b.FILE_SN ORDER BY a.ATCH_FILE_ID, b.FILE_SN
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT #recordCountPerPage# OFFSET #firstIndex#
]]> ]]>
</select> </select>
<select id="FileManageDAO.selectFileListCntByFileNm" parameterClass="FileVO" resultClass="java.lang.Integer" > <select id="FileManageDAO.selectFileListCntByFileNm" parameterClass="FileVO" resultClass="java.lang.Integer" >
<![CDATA[ <![CDATA[
SELECT SELECT
COUNT(a.ATCH_FILE_ID) COUNT(a.ATCH_FILE_ID)
FROM FROM
LETTNFILE a, LETTNFILEDETAIL b LETTNFILE a, LETTNFILEDETAIL b
WHERE WHERE
a.ATCH_FILE_ID = b.ATCH_FILE_ID a.ATCH_FILE_ID = b.ATCH_FILE_ID
AND AND
a.USE_AT = 'Y' a.USE_AT = 'Y'
]]> ]]>
<isEqual prepend="AND" property="searchCnd" compareValue="streFileNm"> <isEqual prepend="AND" property="searchCnd" compareValue="streFileNm">
<![CDATA[ b.STRE_FILE_NM LIKE CONCAT ('%', #searchWrd#,'%') ]]> <![CDATA[ b.STRE_FILE_NM LIKE CONCAT ('%', #searchWrd#,'%') ]]>
</isEqual> </isEqual>
<isEqual prepend="AND" property="searchCnd" compareValue="orignlFileNm"> <isEqual prepend="AND" property="searchCnd" compareValue="orignlFileNm">
<![CDATA[ b.ORIGNL_FILE_NM LIKE CONCAT ('%', #searchWrd#,'%') ]]> <![CDATA[ b.ORIGNL_FILE_NM LIKE CONCAT ('%', #searchWrd#,'%') ]]>
</isEqual> </isEqual>
</select> </select>
<select id="FileManageDAO.selectImageFileList" parameterClass="FileVO" resultMap="fileList" > <select id="FileManageDAO.selectImageFileList" parameterClass="FileVO" resultMap="fileList" >
<![CDATA[ <![CDATA[
SELECT SELECT
a.ATCH_FILE_ID, b.FILE_CN, b.FILE_SN, b.FILE_STRE_COURS, b.STRE_FILE_NM, a.ATCH_FILE_ID, b.FILE_CN, b.FILE_SN, b.FILE_STRE_COURS, b.STRE_FILE_NM,
b.FILE_EXTSN, b.ORIGNL_FILE_NM, b.FILE_SIZE, a.CREAT_DT b.FILE_EXTSN, b.ORIGNL_FILE_NM, b.FILE_SIZE, a.CREAT_DT
FROM FROM
LETTNFILE a, LETTNFILEDETAIL b LETTNFILE a, LETTNFILEDETAIL b
WHERE WHERE
a.ATCH_FILE_ID = #atchFileId# a.ATCH_FILE_ID = #atchFileId#
AND AND
a.ATCH_FILE_ID = b.ATCH_FILE_ID a.ATCH_FILE_ID = b.ATCH_FILE_ID
AND AND
UPPER(b.FILE_EXTSN) IN ('GIF','JPG','BMP','PNG') UPPER(b.FILE_EXTSN) IN ('GIF','JPG','BMP','PNG')
AND AND
a.USE_AT = 'Y' a.USE_AT = 'Y'
ORDER BY b.FILE_SN ORDER BY b.FILE_SN
]]> ]]>
</select> </select>
<update id="FileManageDAO.updateFileInfo" parameterClass="FileVO" > <update id="FileManageDAO.updateFileInfo" parameterClass="FileVO" >
<![CDATA[ <![CDATA[
INSERT INTO LETTNFILEDETAIL INSERT INTO LETTNFILEDETAIL
( ATCH_FILE_ID, FILE_SN, FILE_STRE_COURS, STRE_FILE_NM, ( ATCH_FILE_ID, FILE_SN, FILE_STRE_COURS, STRE_FILE_NM,
ORIGNL_FILE_NM, FILE_EXTSN, FILE_SIZE, FILE_CN ) ORIGNL_FILE_NM, FILE_EXTSN, FILE_SIZE, FILE_CN )
VALUES VALUES
( #atchFileId#, #fileSn#, #fileStreCours#, #streFileNm#, ( #atchFileId#, #fileSn#, #fileStreCours#, #streFileNm#,
#orignlFileNm#, #fileExtsn#, #fileMg#, #fileCn# ) #orignlFileNm#, #fileExtsn#, #fileMg#, #fileCn# )
ON DUPLICATE KEY UPDATE ATCH_FILE_ID = #atchFileId#, ON DUPLICATE KEY UPDATE ATCH_FILE_ID = #atchFileId#,
FILE_STRE_COURS = #fileStreCours#, FILE_STRE_COURS = #fileStreCours#,
STRE_FILE_NM = #streFileNm#, STRE_FILE_NM = #streFileNm#,
ORIGNL_FILE_NM = #orignlFileNm#, ORIGNL_FILE_NM = #orignlFileNm#,
FILE_EXTSN = #fileExtsn#, FILE_EXTSN = #fileExtsn#,
FILE_SIZE = #fileMg#, FILE_SIZE = #fileMg#,
FILE_CN = #fileCn# FILE_CN = #fileCn#
]]> ]]>
</update> </update>
<update id="FileManageDAO.updateFileName" parameterClass="FileVO" > <update id="FileManageDAO.updateFileName" parameterClass="FileVO" >
UPDATE UPDATE
LETTNFILEDETAIL LETTNFILEDETAIL
SET SET
ORIGNL_FILE_NM = #orignlFileNm# ORIGNL_FILE_NM = #orignlFileNm#
WHERE 1=1 WHERE 1=1
AND ATCH_FILE_ID = #atchFileId# AND ATCH_FILE_ID = #atchFileId#
AND FILE_SN = #fileSn# AND FILE_SN = #fileSn#
</update> </update>
</sqlMap> </sqlMap>

View File

@ -35,6 +35,7 @@
, req_nmbr , req_nmbr
, prsctr_nm , prsctr_nm
, req_state_cd , req_state_cd
, atch_file_id
</sql> </sql>
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
@ -62,6 +63,7 @@
, a.req_nmbr AS reqNmbr , a.req_nmbr AS reqNmbr
, a.prsctr_nm AS prsctrNm , a.prsctr_nm AS prsctrNm
, a.req_state_cd AS reqStateCd , a.req_state_cd AS reqStateCd
, a.atch_file_id AS atchFileId
</sql> </sql>
@ -93,6 +95,7 @@
, #reqNmbr# , #reqNmbr#
, #prsctrNm# , #prsctrNm#
, #reqStateCd# , #reqStateCd#
, #atchFileId#
) )
</insert> </insert>
@ -131,7 +134,8 @@
, sex = #sex# , sex = #sex#
, req_nmbr = #reqNmbr# , req_nmbr = #reqNmbr#
, prsctr_nm = #prsctrNm# , prsctr_nm = #prsctrNm#
, req_state_cd = #reqStateCd# , req_state_cd = #reqStateCd#
, atch_file_id = #atchFileId#
WHERE WHERE
sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd# sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
</update> </update>

View File

@ -1,352 +1,352 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 강사, 강사상세 테이블 --> <!-- 찾교 강사, 강사상세 테이블 -->
<sqlMap namespace="VELctrMIX"> <sqlMap namespace="VELctrMIX">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/> <typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VELctrDetailVO" type="kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO"/> <typeAlias alias="VELctrDetailVO" type="kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO"/>
<!-- 공통 테이블 명 --> <!-- 공통 테이블 명 -->
<sql id="VELctrMIXDAO.table_name"> <sql id="VELctrMIXDAO.table_name">
ve_lctr_stng ve_lctr_stng
</sql> </sql>
<!-- 저장용 공통 컬럼 명 --> <!-- 저장용 공통 컬럼 명 -->
<sql id="VELctrMIXDAO.column_name"> <sql id="VELctrMIXDAO.column_name">
instr_div, instr_div,
user_id, user_id,
lctr_stng_ord, lctr_stng_ord,
sun_lctr_yn, sun_lctr_yn,
mon_lctr_yn, mon_lctr_yn,
tue_lctr_yn, tue_lctr_yn,
wed_lctr_yn, wed_lctr_yn,
thu_lctr_yn, thu_lctr_yn,
fri_lctr_yn, fri_lctr_yn,
sat_lctr_yn, sat_lctr_yn,
zoom_yn, zoom_yn,
yr_mxmm_asgnm_tm, yr_mxmm_asgnm_tm,
mnt_mnmm_tm, mnt_mnmm_tm,
prfrn_fld_cd, prfrn_fld_cd,
onln_psbl_yn, onln_psbl_yn,
sbmt_yn, sbmt_yn,
sbmt_pnttm, sbmt_pnttm,
aprvl_cd, aprvl_cd,
aprvl_pnttm, aprvl_pnttm,
aprvl_id, aprvl_id,
aprvl_cn, aprvl_cn,
frst_regist_pnttm, frst_regist_pnttm,
frst_register_id, frst_register_id,
last_updt_pnttm, last_updt_pnttm,
last_updusr_id, last_updusr_id,
use_yn, use_yn,
isltn_psbl_yn, isltn_psbl_yn,
cntns_lctr_psbl_yn, cntns_lctr_psbl_yn,
lctr_stng_yr, lctr_stng_yr,
asgnm_tm_1, asgnm_tm_1,
asgnm_tm_2, asgnm_tm_2,
asgnm_tm_3, asgnm_tm_3,
asgnm_tm_4, asgnm_tm_4,
asgnm_tm_5, asgnm_tm_5,
asgnm_tm_6, asgnm_tm_6,
asgnm_tm_7, asgnm_tm_7,
asgnm_tm_8, asgnm_tm_8,
asgnm_tm_9, asgnm_tm_9,
asgnm_tm_10, asgnm_tm_10,
asgnm_tm_11, asgnm_tm_11,
asgnm_tm_12 asgnm_tm_12
</sql> </sql>
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
<sql id="VELctrMIXDAO.select_column_name"> <sql id="VELctrMIXDAO.select_column_name">
a.instr_div AS instrDiv, a.instr_div AS instrDiv,
a.user_id AS userId, a.user_id AS userId,
a.lctr_stng_ord AS lctrStngOrd, a.lctr_stng_ord AS lctrStngOrd,
a.sun_lctr_yn AS sunLctrYn, a.sun_lctr_yn AS sunLctrYn,
a.mon_lctr_yn AS monLctrYn, a.mon_lctr_yn AS monLctrYn,
a.tue_lctr_yn AS tueLctrYn, a.tue_lctr_yn AS tueLctrYn,
a.wed_lctr_yn AS wedLctrYn, a.wed_lctr_yn AS wedLctrYn,
a.thu_lctr_yn AS thuLctrYn, a.thu_lctr_yn AS thuLctrYn,
a.fri_lctr_yn AS friLctrYn, a.fri_lctr_yn AS friLctrYn,
a.sat_lctr_yn AS satLctrYn, a.sat_lctr_yn AS satLctrYn,
a.zoom_yn AS zoomYn, a.zoom_yn AS zoomYn,
a.yr_mxmm_asgnm_tm AS yrMxmmAsgnmTm, a.yr_mxmm_asgnm_tm AS yrMxmmAsgnmTm,
a.mnt_mnmm_tm AS mntMnmmTm, a.mnt_mnmm_tm AS mntMnmmTm,
a.prfrn_fld_cd AS prfrnFldCd, a.prfrn_fld_cd AS prfrnFldCd,
a.onln_psbl_yn AS onlnPsblYn, a.onln_psbl_yn AS onlnPsblYn,
a.sbmt_yn AS sbmtYn, a.sbmt_yn AS sbmtYn,
a.sbmt_pnttm AS sbmtPnttm, a.sbmt_pnttm AS sbmtPnttm,
a.aprvl_cd AS aprvlCd, a.aprvl_cd AS aprvlCd,
a.aprvl_pnttm AS aprvlPnttm, a.aprvl_pnttm AS aprvlPnttm,
a.aprvl_id AS aprvlId, a.aprvl_id AS aprvlId,
a.aprvl_cn AS aprvlCn, a.aprvl_cn AS aprvlCn,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm, DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId, a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm, DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId, a.last_updusr_id AS lastUpdusrId,
a.use_yn AS useYn, a.use_yn AS useYn,
a.isltn_psbl_yn AS isltnPsblYn, a.isltn_psbl_yn AS isltnPsblYn,
a.cntns_lctr_psbl_yn AS cntnsLctrPsblYn, a.cntns_lctr_psbl_yn AS cntnsLctrPsblYn,
a.lctr_stng_yr AS lctrStngYr, a.lctr_stng_yr AS lctrStngYr,
a.asgnm_tm_1 AS asgnmTm1, a.asgnm_tm_1 AS asgnmTm1,
a.asgnm_tm_2 AS asgnmTm2, a.asgnm_tm_2 AS asgnmTm2,
a.asgnm_tm_3 AS asgnmTm3, a.asgnm_tm_3 AS asgnmTm3,
a.asgnm_tm_4 AS asgnmTm4, a.asgnm_tm_4 AS asgnmTm4,
a.asgnm_tm_5 AS asgnmTm5, a.asgnm_tm_5 AS asgnmTm5,
a.asgnm_tm_6 AS asgnmTm6, a.asgnm_tm_6 AS asgnmTm6,
a.asgnm_tm_7 AS asgnmTm7, a.asgnm_tm_7 AS asgnmTm7,
a.asgnm_tm_8 AS asgnmTm8, a.asgnm_tm_8 AS asgnmTm8,
a.asgnm_tm_9 AS asgnmTm9, a.asgnm_tm_9 AS asgnmTm9,
a.asgnm_tm_10 AS asgnmTm10, a.asgnm_tm_10 AS asgnmTm10,
a.asgnm_tm_11 AS asgnmTm11, a.asgnm_tm_11 AS asgnmTm11,
a.asgnm_tm_12 AS asgnmTm12 a.asgnm_tm_12 AS asgnmTm12
</sql> </sql>
<!-- 강의 설정 정보 R --> <!-- 강의 설정 정보 R -->
<select id="VELctrMIXDAO.selectDetail" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectDetail" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
/* 강의 설정 정보 테이블 */ /* 강의 설정 정보 테이블 */
SELECT SELECT
<include refid="VELctrMIXDAO.select_column_name"/> <include refid="VELctrMIXDAO.select_column_name"/>
FROM FROM
<include refid="VELctrMIXDAO.table_name"/> a <include refid="VELctrMIXDAO.table_name"/> a
WHERE WHERE
a.instr_div = #instrDiv# a.instr_div = #instrDiv#
AND a.user_id = #userId# AND a.user_id = #userId#
<isNotEmpty property="useYn"> <isNotEmpty property="useYn">
AND a.use_yn=#useYn# /*사용중인 설정값을 가져온다. Y 로 설정*/ AND a.use_yn=#useYn# /*사용중인 설정값을 가져온다. Y 로 설정*/
</isNotEmpty><isNotEmpty property="lctrStngOrd"> </isNotEmpty><isNotEmpty property="lctrStngOrd">
AND a.lctr_stng_ord=#lctrStngOrd# /*사용자가 저장중인 row를 가져오는 설정*/ AND a.lctr_stng_ord=#lctrStngOrd# /*사용자가 저장중인 row를 가져오는 설정*/
</isNotEmpty> </isNotEmpty>
ORDER BY lctr_stng_ord desc ORDER BY lctr_stng_ord desc
LIMIT 1 LIMIT 1
</select> </select>
<!-- 강의설정 수정화면 정보 --> <!-- 강의설정 수정화면 정보 -->
<select id="VELctrMIXDAO.selectLctrStngDetail" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectLctrStngDetail" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT SELECT
<include refid="VELctrMIXDAO.select_column_name"/> <include refid="VELctrMIXDAO.select_column_name"/>
FROM FROM
<include refid="VELctrMIXDAO.table_name"/> a <include refid="VELctrMIXDAO.table_name"/> a
WHERE WHERE
a.instr_div = #instrDiv# a.instr_div = #instrDiv#
AND a.user_id = #userId# AND a.user_id = #userId#
AND a.sbmt_yn IS NULL AND a.sbmt_yn IS NULL
AND a.use_yn = 'N' AND a.use_yn = 'N'
ORDER BY lctr_stng_ord desc ORDER BY lctr_stng_ord desc
LIMIT 1 LIMIT 1
</select> </select>
<!-- 강의설정 요청 리스트 불러오기 --> <!-- 강의설정 요청 리스트 불러오기 -->
<select id="VELctrMIXDAO.selectLctrStngSbmtList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectLctrStngSbmtList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT SELECT
<include refid="VELctrMIXDAO.select_column_name"/> <include refid="VELctrMIXDAO.select_column_name"/>
FROM FROM
<include refid="VELctrMIXDAO.table_name"/> a <include refid="VELctrMIXDAO.table_name"/> a
WHERE WHERE
a.instr_div = #instrDiv# a.instr_div = #instrDiv#
AND a.user_id = #userId# AND a.user_id = #userId#
AND a.sbmt_yn ='Y' AND a.sbmt_yn ='Y'
<isNotEmpty property="aprvlCd"> <isNotEmpty property="aprvlCd">
AND a.aprvl_cd = #aprvlCd# AND a.aprvl_cd = #aprvlCd#
</isNotEmpty> </isNotEmpty>
<isEmpty property="aprvlCd"> <isEmpty property="aprvlCd">
AND a.aprvl_cd IS NOT NULL AND a.aprvl_cd IS NOT NULL
</isEmpty> </isEmpty>
</select> </select>
<!-- 강사 정보 R --> <!-- 강사 정보 R -->
<select id="VELctrMIXDAO.selectDupCheck" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectDupCheck" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT SELECT
count(*) totCnt count(*) totCnt
FROM FROM
ve_lctr_area_mng ve_lctr_area_mng
WHERE WHERE
1=1 1=1
<isNotEmpty property="selectPagingListQuery"> <isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$ $selectPagingListQuery$
</isNotEmpty> </isNotEmpty>
</select> </select>
<!-- 강사 정보 L --> <!-- 강사 정보 L -->
<select id="VELctrMIXDAO.selectList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT SELECT
<include refid="VELctrMIXDAO.select_column_name"/> <include refid="VELctrMIXDAO.select_column_name"/>
FROM FROM
<include refid="VELctrMIXDAO.table_name"/> a <include refid="VELctrMIXDAO.table_name"/> a
WHERE WHERE
1=1 1=1
</select> </select>
<!-- 강사 정보 L page --> <!-- 강사 정보 L page -->
<select id="VELctrMIXDAO.selectPagingList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectPagingList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT SELECT
COUNT(1) OVER() AS totCnt , COUNT(1) OVER() AS totCnt ,
<include refid="VELctrMIXDAO.select_column_name"/> <include refid="VELctrMIXDAO.select_column_name"/>
FROM FROM
<include refid="VELctrMIXDAO.table_name"/> a <include refid="VELctrMIXDAO.table_name"/> a
WHERE WHERE
1=1 1=1
<isNotEmpty property="selectPagingListQuery"> <isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$ $selectPagingListQuery$
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="userId"> <isNotEmpty property="userId">
AND a.user_id=#userId# AND a.user_id=#userId#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="instrDiv"> <isNotEmpty property="instrDiv">
AND a.instr_div=#instrDiv# AND a.instr_div=#instrDiv#
</isNotEmpty> </isNotEmpty>
ORDER BY 1=1 ORDER BY 1=1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
, a.user_id desc , a.user_id desc
</isEmpty> </isEmpty>
<isNotEmpty property="orderByQuery"> <isNotEmpty property="orderByQuery">
, $orderByQuery$ , $orderByQuery$
</isNotEmpty> </isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex# LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select> </select>
<!-- 설정 년월L --> <!-- 설정 년월L -->
<select id="VELctrMIXDAO.selectStngYrMntList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectStngYrMntList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT CONCAT(aa.stndrd_yr,bb.stndrd_mnt) AS stngYrMnt SELECT CONCAT(aa.stndrd_yr,bb.stndrd_mnt) AS stngYrMnt
FROM ( FROM (
SELECT a.stndrd_yr*1+b.stndrd_mnt*1 stndrd_yr SELECT a.stndrd_yr*1+b.stndrd_mnt*1 stndrd_yr
FROM ( FROM (
SELECT '2022' stndrd_yr SELECT '2022' stndrd_yr
)a )a
, ,
( (
SELECT '01' stndrd_mnt SELECT '01' stndrd_mnt
UNION ALL SELECT '02' UNION ALL SELECT '02'
UNION ALL SELECT '03' UNION ALL SELECT '03'
UNION ALL SELECT '04' UNION ALL SELECT '04'
UNION ALL SELECT '05' UNION ALL SELECT '05'
UNION ALL SELECT '06' UNION ALL SELECT '06'
UNION ALL SELECT '07' UNION ALL SELECT '07'
UNION ALL SELECT '08' UNION ALL SELECT '08'
UNION ALL SELECT '09' UNION ALL SELECT '09'
UNION ALL SELECT '10' UNION ALL SELECT '10'
UNION ALL SELECT '11' UNION ALL SELECT '11'
UNION ALL SELECT '12' UNION ALL SELECT '12'
)b )b
)aa )aa
,( ,(
SELECT '01' stndrd_mnt SELECT '01' stndrd_mnt
UNION ALL SELECT '02' UNION ALL SELECT '02'
UNION ALL SELECT '03' UNION ALL SELECT '03'
UNION ALL SELECT '04' UNION ALL SELECT '04'
UNION ALL SELECT '05' UNION ALL SELECT '05'
UNION ALL SELECT '06' UNION ALL SELECT '06'
UNION ALL SELECT '07' UNION ALL SELECT '07'
UNION ALL SELECT '08' UNION ALL SELECT '08'
UNION ALL SELECT '09' UNION ALL SELECT '09'
UNION ALL SELECT '10' UNION ALL SELECT '10'
UNION ALL SELECT '11' UNION ALL SELECT '11'
UNION ALL SELECT '12' UNION ALL SELECT '12'
)bb )bb
WHERE 1=1 WHERE 1=1
AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 month),'%Y%m')>=CONCAT(aa.stndrd_yr,bb.stndrd_mnt) AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 month),'%Y%m')>=CONCAT(aa.stndrd_yr,bb.stndrd_mnt)
ORDER BY CONCAT(aa.stndrd_yr,bb.stndrd_mnt) DESC ORDER BY CONCAT(aa.stndrd_yr,bb.stndrd_mnt) DESC
</select> </select>
<!-- 설정 년월L --> <!-- 설정 년월L -->
<select id="VELctrMIXDAO.selectStngYrList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectStngYrList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT concat(round(a.stndrd_yr*1+b.stndrd_mnt*1),'') stngYr SELECT concat(round(a.stndrd_yr*1+b.stndrd_mnt*1),'') stngYr
, IF (DATE_FORMAT(NOW(),'%Y')= concat(round(a.stndrd_yr*1+b.stndrd_mnt*1),''),1,0) useYn , IF (DATE_FORMAT(NOW(),'%Y')= concat(round(a.stndrd_yr*1+b.stndrd_mnt*1),''),1,0) useYn
FROM ( FROM (
SELECT '2022' stndrd_yr SELECT '2022' stndrd_yr
)a )a
, ,
( (
SELECT '01' stndrd_mnt SELECT '01' stndrd_mnt
UNION ALL SELECT '02' UNION ALL SELECT '02'
UNION ALL SELECT '03' UNION ALL SELECT '03'
UNION ALL SELECT '04' UNION ALL SELECT '04'
UNION ALL SELECT '05' UNION ALL SELECT '05'
UNION ALL SELECT '06' UNION ALL SELECT '06'
UNION ALL SELECT '07' UNION ALL SELECT '07'
UNION ALL SELECT '08' UNION ALL SELECT '08'
UNION ALL SELECT '09' UNION ALL SELECT '09'
UNION ALL SELECT '0' UNION ALL SELECT '0'
)b )b
ORDER BY a.stndrd_yr*1+b.stndrd_mnt*1 ORDER BY a.stndrd_yr*1+b.stndrd_mnt*1
</select> </select>
<!-- 설정 년월L --> <!-- 설정 년월L -->
<select id="VELctrMIXDAO.selectStngMntList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectStngMntList" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT b.stngMnt SELECT b.stngMnt
, IF (DATE_FORMAT(NOW(),'%m')= b.stngMnt, 1, 0) useYn , IF (DATE_FORMAT(NOW(),'%m')= b.stngMnt, 1, 0) useYn
FROM FROM
( (
SELECT '01' stngMnt SELECT '01' stngMnt
UNION ALL SELECT '02' UNION ALL SELECT '02'
UNION ALL SELECT '03' UNION ALL SELECT '03'
UNION ALL SELECT '04' UNION ALL SELECT '04'
UNION ALL SELECT '05' UNION ALL SELECT '05'
UNION ALL SELECT '06' UNION ALL SELECT '06'
UNION ALL SELECT '07' UNION ALL SELECT '07'
UNION ALL SELECT '08' UNION ALL SELECT '08'
UNION ALL SELECT '09' UNION ALL SELECT '09'
UNION ALL SELECT '10' UNION ALL SELECT '10'
UNION ALL SELECT '11' UNION ALL SELECT '11'
UNION ALL SELECT '12' UNION ALL SELECT '12'
)b )b
ORDER BY b.stngMnt ORDER BY b.stngMnt
</select> </select>
<!-- 일자중복여부 체크 --> <!-- 일자중복여부 체크 -->
<select id="VELctrMIXDAO.selectDupDateCount" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO"> <select id="VELctrMIXDAO.selectDupDateCount" parameterClass="VELctrDetailVO" resultClass="VELctrDetailVO">
SELECT count(*) AS totCnt SELECT count(*) AS totCnt
FROM ve_lctr_rsrch_mng a FROM ve_lctr_rsrch_mng a
WHERE 1=1 WHERE 1=1
AND ( AND (
(a.rsrch_strt_dt BETWEEN #rsrchStrtDt# AND #rsrchEndDt#) (a.rsrch_strt_dt BETWEEN #rsrchStrtDt# AND #rsrchEndDt#)
OR OR
(a.rsrch_end_dt BETWEEN #rsrchStrtDt# AND #rsrchEndDt#) (a.rsrch_end_dt BETWEEN #rsrchStrtDt# AND #rsrchEndDt#)
OR OR
(#rsrchStrtDt# BETWEEN a.rsrch_strt_dt AND a.rsrch_end_dt) (#rsrchStrtDt# BETWEEN a.rsrch_strt_dt AND a.rsrch_end_dt)
OR OR
(#rsrchEndDt# BETWEEN a.rsrch_strt_dt AND a.rsrch_end_dt) (#rsrchEndDt# BETWEEN a.rsrch_strt_dt AND a.rsrch_end_dt)
) )
AND CONCAT(a.rsrch_instr_div, a.stng_yr_mnt)!=CONCAT(#rsrchInstrDiv#, #stngYrMnt#) AND CONCAT(a.rsrch_instr_div, a.stng_yr_mnt)!=CONCAT(#rsrchInstrDiv#, #stngYrMnt#)
</select> </select>
</sqlMap> </sqlMap>

View File

@ -1,46 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Configuration> <Configuration>
<Appenders> <Appenders>
<Console name="console" target="SYSTEM_OUT"> <Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss.SSS}] %p{length=1} %c %M %L | %m%n" /> <PatternLayout pattern="[%d{HH:mm:ss.SSS}] %p{length=1} %c %M %L | %m%n" />
</Console> </Console>
</Appenders> </Appenders>
<Loggers> <Loggers>
<Logger name="org.apache" level="ERROR"></Logger> <Logger name="org.apache" level="ERROR"></Logger>
<Logger name="org.springframework" level="ERROR"></Logger> <Logger name="org.springframework" level="ERROR"></Logger>
<Logger name="egovframework" level="ERROR"></Logger> <Logger name="egovframework" level="ERROR"></Logger>
<Logger name="egovframework.rte" level="DEBUG"></Logger> <Logger name="egovframework.rte" level="DEBUG"></Logger>
<Logger name="com.ibatis.sqlmap" level="INFO"></Logger> <Logger name="com.ibatis.sqlmap" level="INFO"></Logger>
<Logger name="egovframework.let" level="DEBUG"></Logger> <Logger name="egovframework.let" level="DEBUG"></Logger>
<Logger name="egovframework.com.cmm" level="DEBUG"></Logger> <Logger name="egovframework.com.cmm" level="DEBUG"></Logger>
<Logger name="egovframework.kccadr" level="DEBUG"></Logger> <Logger name="egovframework.kccadr" level="DEBUG"></Logger>
<!-- <Logger name="jdbc.sqlonly" level="DEBUG"> <!-- <Logger name="jdbc.sqlonly" level="DEBUG">
<RegexFilter regex="(?s).*NOT_SQL_LOG.*" onMatch="DENY" onMismatch="NEUTRAL" useRawMsg="true" /> <RegexFilter regex="(?s).*NOT_SQL_LOG.*" onMatch="DENY" onMismatch="NEUTRAL" useRawMsg="true" />
</Logger> --> </Logger> -->
<Logger name="jdbc.sqltiming" level="WARN" additivity="false"> <Logger name="jdbc.sqltiming" level="WARN" additivity="false">
<AppenderRef ref="console" /> <AppenderRef ref="console" />
</Logger> </Logger>
<Logger name="jdbc.audit" level="OFF"></Logger> <Logger name="jdbc.audit" level="OFF"></Logger>
<Logger name="jdbc.resultset" level="OFF"></Logger> <Logger name="jdbc.resultset" level="OFF"></Logger>
<Logger name="jdbc.resultsettable" level="OFF"></Logger> <Logger name="jdbc.resultsettable" level="OFF"></Logger>
<Logger name="jdbc.connection" level="OFF"></Logger> <Logger name="jdbc.connection" level="OFF"></Logger>
<logger name="java.sql.ResultSet" level="OFF"></logger> <logger name="java.sql.ResultSet" level="OFF"></logger>
<logger name="java.sql.PreparedStatement" level="OFF"></logger> <logger name="java.sql.PreparedStatement" level="OFF"></logger>
<logger name="java.sql.Connection" level="OFF"></logger> <logger name="java.sql.Connection" level="OFF"></logger>
<logger name="org.quartz.core.QuartzSchedulerThread" level="OFF"></logger> <logger name="org.quartz.core.QuartzSchedulerThread" level="OFF"></logger>
<logger name="org.quartz.core.JobRunShell" level="OFF"></logger> <logger name="org.quartz.core.JobRunShell" level="OFF"></logger>
<logger name="log4jdbc.debug" level="OFF"></logger> <logger name="log4jdbc.debug" level="OFF"></logger>
<Root level="DEBUG"> <Root level="DEBUG">
<AppenderRef ref="console" /> <AppenderRef ref="console" />
</Root> </Root>
</Loggers> </Loggers>
</Configuration> </Configuration>

View File

@ -107,7 +107,7 @@
<tr> <tr>
<th scope="row">관할청</th> <th scope="row">관할청</th>
<td> <td>
<c:out value="${info.cmptntAthrt }" /> <ve:code codeId="VEA008" code="${info.cmptntAthrt }"/>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -170,6 +170,17 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">
<p>첨부파일</p>
</th>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.atchFileId}" />
<c:param name="pdf_view" value="Y" />
</c:import>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -303,7 +303,7 @@
<c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" /> <c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
</td> </td>
<td> <td>
<c:out value="${list.cmptntAthrt }" /> <ve:code codeId="VEA008" code="${list.cmptntAthrt }"/>
</td> </td>
<td> <td>
<c:out value="${list.dBirth }" /> <c:out value="${list.dBirth }" />

View File

@ -29,7 +29,16 @@
<title>교육과정관리</title> <title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript"> <script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가 $(document).ready(function() {
//파일첨부관련 설정들===============================================
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
//파일첨부관련 설정들===============================================
});
function addPro() { function addPro() {
var addQuest = $(".addPro_wrap"); var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length; var questLen = addQuest.children("div").length;
@ -105,28 +114,36 @@
} }
var data = new FormData(document.getElementById("createForm")); var data = new FormData(document.getElementById("createForm"));
if(confirm("수정하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do'/>"; //첨부파일 등록 처리-step2
$.ajax({ _fileForm2.forEach(function(obj, idx) {
type:"POST", if (obj) data.append("file"+idx, obj.fileObj);
url: url, });
data: data,
dataType:'json', if(confirm("수정하시겠습니까?")){
async: false, var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do'/>";
processData: false, $.ajax({
contentType: false, type:"POST",
cache: false, enctype: 'multipart/form-data',
success:function(returnData){ url: url,
if(returnData.result == "success"){ data: data,
alert("수정되었습니다."); dataType:'json',
fncGoList(); async: false,
} processData: false,
}, contentType: false,
error:function(request , status, error){ cache: false,
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); success:function(returnData){
if(returnData.result == "success"){
alert("수정되었습니다.");
fncGoList();
} }
}); },
} error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
} }
@ -147,7 +164,7 @@
} }
// 관할청 검사 // 관할청 검사
if($("input[name='cmptntAthrt']").val().trim() == ""){ if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요."); alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus(); $("input[name='cmptntAthrt']").focus();
return true; return true;
@ -181,11 +198,11 @@
} }
// 의뢰상태 검사 // 의뢰상태 검사
if($("#reqStateCd").val().trim() == ""){ /* if($("#reqStateCd").val().trim() == ""){
alert("의뢰상태를 입력해주세요."); alert("의뢰상태를 입력해주세요.");
$("input[name='reqStateCd']").focus(); $("input[name='reqStateCd']").focus();
return true; return true;
} } */
// 교육상태 검사 // 교육상태 검사
/* if($("input[name='eduStateCd']").val().trim() == ""){ /* if($("input[name='eduStateCd']").val().trim() == ""){
@ -219,6 +236,39 @@
listForm.submit(); listForm.submit();
} }
/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
function handleFileUpload(files,obj) //업로드 function
{
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
</script> </script>
</head> </head>
@ -227,6 +277,7 @@
</form:form> </form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post"> <form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="sspnIdtmtTrgtOrd" value="<c:out value='${info.sspnIdtmtTrgtOrd}' />"/> <input type="hidden" name="sspnIdtmtTrgtOrd" value="<c:out value='${info.sspnIdtmtTrgtOrd}' />"/>
<input type="hidden" name="atchFileId" value="<c:out value='${info.atchFileId}' />" />
<!-- cont --> <!-- cont -->
<div class="cont_wrap"> <div class="cont_wrap">
<div class="box"> <div class="box">
@ -281,7 +332,10 @@
<tr> <tr>
<th scope="row">관할청</th> <th scope="row">관할청</th>
<td> <td>
<input type="text" name="cmptntAthrt" value="<c:out value="${info.cmptntAthrt }" />" /> <ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="${info.cmptntAthrt }" defaultValue=""
defaultText='선택'
/>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -358,6 +412,87 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>첨부파일</p>
</th>
<td class="upload_area" colspan="3">
<!-- <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>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -31,22 +31,9 @@
<script type="text/javascript"> <script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가 //세부과정 추가 버튼 클릭 시 세부과정 추가
$(document).ready(function() { $(document).ready(function() {
/* $('#dBirth').on('input', function() { $(".btn_type01").on('click', function(){
var input = $(this).val(); $("#file_temp").click();
var length = input.length; });
var lastChar = input.charAt(length - 1);
// 숫자만 입력되도록 검사
if (!lastChar.match(/[0-9]/)) {
$(this).val(input.substring(0, length - 1));
return;
}
// 포맷 적용
if (length === 4 || length === 7) {
$(this).val(input + '-');
}
}); */
}); });
function fncSave(){ function fncSave(){
@ -57,29 +44,40 @@
} }
var data = new FormData(document.getElementById("createForm")); var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do"; //첨부파일 등록 처리-step2
console.log(data); _fileForm2.forEach(function(obj, idx) {
$.ajax({ if (obj) data.append("file"+idx, obj.fileObj);
type:"POST",
url: url, });
data: data,
dataType:'json', if(confirm("저장하시겠습니까?")){
async: false, var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do";
processData: false, console.log(data);
contentType: false, $.ajax({
cache: false, type:"POST",
success:function(returnData){ enctype: 'multipart/form-data',
if(returnData.result == "success"){ url: url,
alert("저장되었습니다."); data: data,
fncGoList(); dataType:'json',
} async: false,
}, processData: false,
error:function(request , status, error){ contentType: false,
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); cache: false,
success:function(returnData){
console.log('returnData :: ', returnData);
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}else if(returnData.result == "fail"){
alert(returnData.message);
} }
}); },
} error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
} }
@ -107,7 +105,7 @@
} }
// 관할청 검사 // 관할청 검사
if($("input[name='cmptntAthrt']").val().trim() == ""){ if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요."); alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus(); $("input[name='cmptntAthrt']").focus();
return true; return true;
@ -179,6 +177,40 @@
listForm.submit(); listForm.submit();
} }
/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
function handleFileUpload(files,obj) //업로드 function
{
console.log('files', files);
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
</script> </script>
</head> </head>
@ -239,7 +271,10 @@
<tr> <tr>
<th scope="row">관할청</th> <th scope="row">관할청</th>
<td> <td>
<input type="text" name="cmptntAthrt" /> <ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -316,6 +351,88 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>첨부파일</p>
</th>
<td class="upload_area" colspan="3">
<!-- <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>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -1,379 +1,379 @@
$(document).ready(function(){ //공통 js $(document).ready(function(){ //공통 js
/* 목록 정렬 항목 아이콘 표시 */ /* 목록 정렬 항목 아이콘 표시 */
var searchSortCnd = $("[name='searchSortCnd']").val(); var searchSortCnd = $("[name='searchSortCnd']").val();
var searchSortOrd = $("[name='searchSortOrd']").val(); var searchSortOrd = $("[name='searchSortOrd']").val();
if (searchSortCnd != "" && searchSortOrd != "" && searchSortCnd != undefined && searchSortOrd != undefined) { if (searchSortCnd != "" && searchSortOrd != "" && searchSortCnd != undefined && searchSortOrd != undefined) {
var $sort_div = $("#sort_"+ searchSortCnd); var $sort_div = $("#sort_"+ searchSortCnd);
var sortClass = 'sortBtnAsc' ; var sortClass = 'sortBtnAsc' ;
if (searchSortOrd == "desc") sortClass = "sortBtnDesc"; if (searchSortOrd == "desc") sortClass = "sortBtnDesc";
$sort_div.replaceClass('btn_sort' , sortClass) ; $sort_div.replaceClass('btn_sort' , sortClass) ;
$sort_div.attr("btn_sort", searchSortOrd); $sort_div.attr("btn_sort", searchSortOrd);
} }
// 정렬 항목 이벤트 // 정렬 항목 이벤트
$(".sort").click(function(e) { $(".sort").click(function(e) {
listSortOrd(this); listSortOrd(this);
}); });
//파일업로드 드래그앤 드롭 //파일업로드 드래그앤 드롭
var objDragAndDrop = $(".upload_area"); var objDragAndDrop = $(".upload_area");
$(document).on("dragenter",".upload_area",function(e){ $(document).on("dragenter",".upload_area",function(e){
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
//$(this).css('border', '2px solid #0B85A1'); //$(this).css('border', '2px solid #0B85A1');
}); });
$(document).on("dragover",".upload_area",function(e){ $(document).on("dragover",".upload_area",function(e){
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
}); });
$(document).on("drop",".upload_area",function(e){ $(document).on("drop",".upload_area",function(e){
//$(this).css('border', '2px dotted #0B85A1'); //$(this).css('border', '2px dotted #0B85A1');
e.preventDefault(); e.preventDefault();
var files = e.originalEvent.dataTransfer.files; var files = e.originalEvent.dataTransfer.files;
handleFileUpload(files,objDragAndDrop); //파일업로드 handleFileUpload(files,objDragAndDrop); //파일업로드
}); });
$(document).on('dragenter', function (e){ $(document).on('dragenter', function (e){
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
}); });
$(document).on('dragover', function (e){ $(document).on('dragover', function (e){
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
//objDragAndDrop.css('border', '2px dotted #0B85A1'); //objDragAndDrop.css('border', '2px dotted #0B85A1');
}); });
$(document).on('drop', function (e){ $(document).on('drop', function (e){
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
}); });
drawUploadArea() drawUploadArea()
$(function(){ //단일 파일업로드 $(function(){ //단일 파일업로드
$('#file_temp').change(function(e){ $('#file_temp').change(function(e){
var objUpload = $(".upload_area"); var objUpload = $(".upload_area");
var files = $('#file_temp')[0].files; var files = $('#file_temp')[0].files;
handleFileUpload(files,objUpload); //파일업로드 handleFileUpload(files,objUpload); //파일업로드
}); });
}); });
//최대 업로드 파일갯수 화면 노출 세팅 //최대 업로드 파일갯수 화면 노출 세팅
if($("[name='limitcount']").length>0){ if($("[name='limitcount']").length>0){
if($('.limitcount_li').length > 0){ if($('.limitcount_li').length > 0){
$('.limitcount_li').text($("[name='limitcount']").val()); $('.limitcount_li').text($("[name='limitcount']").val());
} }
} }
//프린트 워커 마크 //프린트 워커 마크
$('.printBtn').click(function(e){ $('.printBtn').click(function(e){
if(!confirm("프린트 하시겠습니까?")){ if(!confirm("프린트 하시겠습니까?")){
return false; return false;
} }
var printPopup ; var printPopup ;
printPopup= window.open("/tempPrint.html","print_open","width=760,height=750,top=0,left=0,noresizable,toolbar=no,status=no,scrollbars=yes,directory=n"); printPopup= window.open("/tempPrint.html","print_open","width=760,height=750,top=0,left=0,noresizable,toolbar=no,status=no,scrollbars=yes,directory=n");
}); });
}); });
//목록 정렬 항목 클릭 //목록 정렬 항목 클릭
function listSortOrd(obj){ function listSortOrd(obj){
var sortOrd = $(obj).attr("sortOrd"); var sortOrd = $(obj).attr("sortOrd");
var sortCnd = $(obj).attr("id"); var sortCnd = $(obj).attr("id");
$("[name='searchSortCnd']").val(sortCnd.substring(5)); // 구분자 제거 $("[name='searchSortCnd']").val(sortCnd.substring(5)); // 구분자 제거
if (sortOrd == "desc") $("[name='searchSortOrd']").val("asc"); if (sortOrd == "desc") $("[name='searchSortOrd']").val("asc");
else $("[name='searchSortOrd']").val("desc"); else $("[name='searchSortOrd']").val("desc");
linkPage('1'); //각 JSP마다 다를때 메소드 정의해 줘야됨 linkPage('1'); //각 JSP마다 다를때 메소드 정의해 줘야됨
} }
//인쇄 영역 공통 //인쇄 영역 공통
function printDiv(divName) { function printDiv(divName) {
var printContents = $("."+divName).html(); var printContents = $("."+divName).html();
var originalContents = document.body.innerHTML; var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents; document.body.innerHTML = printContents;
window.print(); window.print();
document.body.innerHTML = originalContents; document.body.innerHTML = originalContents;
//originalContents 다시 그려줘서 이전의 메소드 다시 재지정 //originalContents 다시 그려줘서 이전의 메소드 다시 재지정
$(".sort").click(function(e) { $(".sort").click(function(e) {
listSortOrd(this); listSortOrd(this);
}); });
} }
function printDiv2(divName) { function printDiv2(divName) {
var printContents = document.getElementById(divName).innerHTML; var printContents = document.getElementById(divName).innerHTML;
var originalContents = document.body.innerHTML; var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents; document.body.innerHTML = printContents;
window.print(); window.print();
document.body.innerHTML = originalContents; document.body.innerHTML = originalContents;
} }
/* 파일사이즈 가져오기 */ /* 파일사이즈 가져오기 */
function getStrFileSize(filesize){ function getStrFileSize(filesize){
var sizeStr=""; var sizeStr="";
var sizeKB = filesize/1024; var sizeKB = filesize/1024;
if(parseInt(sizeKB) > 1024){ if(parseInt(sizeKB) > 1024){
var sizeMB = sizeKB/1024; var sizeMB = sizeKB/1024;
sizeStr = sizeMB.toFixed(2)+" MB"; sizeStr = sizeMB.toFixed(2)+" MB";
}else{ }else{
sizeStr = sizeKB.toFixed(2)+" KB"; sizeStr = sizeKB.toFixed(2)+" KB";
} }
return sizeStr; return sizeStr;
} }
/* 파일 이미지 가져오기 */ /* 파일 이미지 가져오기 */
function getfile_img(file_name){ function getfile_img(file_name){
var img_type = file_name.split('.')[file_name.split('.').length-1].toLowerCase(); var img_type = file_name.split('.')[file_name.split('.').length-1].toLowerCase();
if(img_type == "xlsx"){ if(img_type == "xlsx"){
img_type = "xls"; img_type = "xls";
}else if(img_type == "jpeg" || img_type == "png" || img_type == "bmp"){ }else if(img_type == "jpeg" || img_type == "png" || img_type == "bmp"){
img_type = "jpg"; img_type = "jpg";
}else if(img_type == "doc"){ }else if(img_type == "doc"){
img_type = "hwp"; img_type = "hwp";
} }
var img_url = ""; var img_url = "";
switch (img_type) { switch (img_type) {
case "pdf" : case "pdf" :
img_url = "/direct/img/enroll_pdf_file.png" ; img_url = "/direct/img/enroll_pdf_file.png" ;
break; break;
case "xls" : case "xls" :
img_url = "/direct/img/enroll_exel_file.png" ; img_url = "/direct/img/enroll_exel_file.png" ;
break; break;
case "hwp" : case "hwp" :
img_url = "/direct/img/enroll_hwp_file.png" ; img_url = "/direct/img/enroll_hwp_file.png" ;
break; break;
case "jpg" : case "jpg" :
img_url = "/direct/img/enroll_jpg_file.png" ; img_url = "/direct/img/enroll_jpg_file.png" ;
break; break;
case "mp4" : case "mp4" :
img_url = "/direct/img/enroll_mp4_file.png" ; img_url = "/direct/img/enroll_mp4_file.png" ;
break; break;
case "ppt" : case "ppt" :
img_url = "/direct/img/enroll_ppt_file.png" ; img_url = "/direct/img/enroll_ppt_file.png" ;
break; break;
case "zip" : case "zip" :
img_url = "/direct/img/enroll_zip_file.png" ; img_url = "/direct/img/enroll_zip_file.png" ;
break; break;
default : default :
img_url = "/direct/img/enroll_jpg_file.png" ; img_url = "/direct/img/enroll_jpg_file.png" ;
} }
return img_url ; return img_url ;
} }
/*등록 시간 가져오기 */ /*등록 시간 가져오기 */
function getDate(){ function getDate(){
var d = new Date(); var d = new Date();
var year = d.getFullYear(); var year = d.getFullYear();
var month = d.getMonth() + 1 ; month.toString().length < 2 ? month = "0"+month : month; var month = d.getMonth() + 1 ; month.toString().length < 2 ? month = "0"+month : month;
var date = d.getDate() ; date.toString().length < 2 ? date = "0"+date : date; var date = d.getDate() ; date.toString().length < 2 ? date = "0"+date : date;
var currentDate = year+"-"+month+"-"+date+" "; var currentDate = year+"-"+month+"-"+date+" ";
var hour = d.getHours(); hour.toString().length < 2 ? hour = "0"+hour : hour; var hour = d.getHours(); hour.toString().length < 2 ? hour = "0"+hour : hour;
var minutes = d.getMinutes() ; minutes.toString().length < 2 ? minutes = "0"+minutes : minutes; var minutes = d.getMinutes() ; minutes.toString().length < 2 ? minutes = "0"+minutes : minutes;
var seconds = d.getSeconds() ; seconds.toString().length < 2 ? seconds = "0"+seconds : hour; var seconds = d.getSeconds() ; seconds.toString().length < 2 ? seconds = "0"+seconds : hour;
currentTime = hour+"-"+minutes+"-"+seconds ; currentTime = hour+"-"+minutes+"-"+seconds ;
return currentDate + currentTime ; return currentDate + currentTime ;
} }
/*파일 드래그앤 드롭*/ /*파일 드래그앤 드롭*/
/* 파일등록 */ /* 파일등록 */
var _fileIdx = 0; var _fileIdx = 0;
var _fileForm2 = new Array(); var _fileForm2 = new Array();
function handleFileUpload(files,obj) //업로드 function function handleFileUpload(files,obj) //업로드 function
{ {
var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB) var limitsize = 50*1024*1024; //파일 제한 체크(50개, 50MB)
var limitcount = $("input[name=limitcount]").val()*1 ; var limitcount = $("input[name=limitcount]").val()*1 ;
if($('#tbody_fiielist').find('tr').length + files.length > limitcount ){ if($('#tbody_fiielist').find('tr').length + files.length > limitcount ){
alert("업로드 파일은 최대 "+limitcount+"개 입니다."); alert("업로드 파일은 최대 "+limitcount+"개 입니다.");
return ; return ;
} }
for (var i = 0; i < files.length; i++){ for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){ if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 50MB이하만 업로드 가능합니다."); alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 50MB이하만 업로드 가능합니다.");
return ; return ;
} }
} }
for (var i = 0; i < files.length; i++) for (var i = 0; i < files.length; i++)
{ {
var fd = new FormData(); var fd = new FormData();
fd.append('file', files[i]); fd.append('file', files[i]);
var tmpObj = new Object(); var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx; tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i]; tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj); _fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx); sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++; _fileIdx++;
var totalfileSize = 0; var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ; $('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){ $('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ; totalfileSize += $(this).val()*1 ;
}); });
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ; $('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
} }
} }
function sendFileToServer(formData, obj , fileObj, _fileIdx) function sendFileToServer(formData, obj , fileObj, _fileIdx)
{ {
$('.no_img_box').hide(); //list 박스 형식 변경 $('.no_img_box').hide(); //list 박스 형식 변경
$('.file_list_div').show(); $('.file_list_div').show();
var list_html = ""; var list_html = "";
var tt = ""; var tt = "";
list_html += '<tr class="item_'+tt+' uploaded_obj">'; list_html += '<tr class="item_'+tt+' uploaded_obj">';
list_html += '<td class="file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>'; list_html += '<td class="file_name"><img src="'+getfile_img(fileObj.name)+'" alt=""><span class="file_name_text">'+fileObj.name+'</span></td>';
list_html += '<td class="file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>'; list_html += '<td class="file_size"><span class="file_size_text" value='+fileObj.size+'>'+getStrFileSize(fileObj.size)+'</span></td>';
list_html += '<td class="file_date">'+getDate()+'</td>'; list_html += '<td class="file_date">'+getDate()+'</td>';
list_html += '<td class="file_del"><input type="button" class="delBtn" alt="" onclick="delete_item(this, '+_fileIdx+')" ></td>'; list_html += '<td class="file_del"><input type="button" class="delBtn" alt="" onclick="delete_item(this, '+_fileIdx+')" ></td>';
list_html += '<input type="hidden" class="item_file_size" value="'+fileObj.size+'">'; list_html += '<input type="hidden" class="item_file_size" value="'+fileObj.size+'">';
list_html += '<input type="hidden" name="atchFileIds" class="imsi" value="'+tt+'">'; list_html += '<input type="hidden" name="atchFileIds" class="imsi" value="'+tt+'">';
list_html += '</tr>'; list_html += '</tr>';
$('#tbody_fiielist').append(list_html); $('#tbody_fiielist').append(list_html);
} }
function resetFileZone(){ function resetFileZone(){
$('.file_size').each(function(index, element){ $('.file_size').each(function(index, element){
$(this).text(getStrFileSize($(this).text())) ; $(this).text(getStrFileSize($(this).text())) ;
}); });
} }
/* 등록되어 있는 파일 삭제버튼 클릭시 */ /* 등록되어 있는 파일 삭제버튼 클릭시 */
function delAtchFile(itemId , fileSn){ function delAtchFile(itemId , fileSn){
if(!confirm("삭제하시겠습니까?")){ if(!confirm("삭제하시겠습니까?")){
return false; return false;
} }
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/uss/ion/fms/fmsfileDeleteAjax.do", url: "/uss/ion/fms/fmsfileDeleteAjax.do",
data:{ "atchFileId" : itemId , "fileSn" : fileSn}, data:{ "atchFileId" : itemId , "fileSn" : fileSn},
dataType:'json', dataType:'json',
cache: false, cache: false,
async: false, async: false,
timeout: 600000, timeout: 600000,
success: function (returnData, status) { success: function (returnData, status) {
if(status == 'success'){ if(status == 'success'){
if(returnData.result == 'fail'){ if(returnData.result == 'fail'){
alert("삭제처리가 실패하였습니다."); alert("삭제처리가 실패하였습니다.");
}else if(returnData.result == 'auth_fail'){ }else if(returnData.result == 'auth_fail'){
alert("세션이 종료되었습니다."); alert("세션이 종료되었습니다.");
}else if(returnData.result =='success'){ }else if(returnData.result =='success'){
$('.item_'+returnData.fmsFileVO.atchFileId+"_"+returnData.fmsFileVO.fileSn).remove(); $('.item_'+returnData.fmsFileVO.atchFileId+"_"+returnData.fmsFileVO.fileSn).remove();
alert("삭제되었습니다."); alert("삭제되었습니다.");
drawUploadArea(); drawUploadArea();
$('.td_txt_exist > img').attr('src', '/images/no_img.jpg') ; $('.td_txt_exist > img').attr('src', '/images/no_img.jpg') ;
} }
}else{ }else{
alert("삭제처리에 실패하였습니다."); alert("삭제처리에 실패하였습니다.");
} }
}, },
error: function (e) { error: function (e) {
console.log("ERROR : ", e); console.log("ERROR : ", e);
alert("삭제처리에 실패하였습니다."); alert("삭제처리에 실패하였습니다.");
} }
}); });
} }
/* 임시파일 삭제버튼 클릭시 */ /* 임시파일 삭제버튼 클릭시 */
function delete_item(obj, fileIdx){ function delete_item(obj, fileIdx){
$(obj).closest("tr").remove(); $(obj).closest("tr").remove();
_fileForm2.forEach(function(fobj, idx) { _fileForm2.forEach(function(fobj, idx) {
if (fobj.name == ("file_" + fileIdx)) _fileForm2[idx] = ""; if (fobj.name == ("file_" + fileIdx)) _fileForm2[idx] = "";
}); });
if($('.item_file_size').length == 0){ if($('.item_file_size').length == 0){
$('.file_upload_box ').show(); $('.file_upload_box ').show();
$('.upload_box_text').show(); $('.upload_box_text').show();
$('.fileAfter').hide(); $('.fileAfter').hide();
}else{ }else{
var totalfileSize = 0; var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ; $('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){ $('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ; totalfileSize += $(this).val()*1 ;
}); });
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ; $('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
} }
} }
function drawUploadArea(){ function drawUploadArea(){
$('.no_img_box').hide(); //list 박스 형식 변경 $('.no_img_box').hide(); //list 박스 형식 변경
$('.file_list_div').show(); $('.file_list_div').show();
$('.file_name_text').each(function(index, item){ $('.file_name_text').each(function(index, item){
$(this).parent().find('img').attr('src', getfile_img($(this).text())) ; //이미지 변경 $(this).parent().find('img').attr('src', getfile_img($(this).text())) ; //이미지 변경
}); });
$('.file_size_text').each(function(index, item){ $('.file_size_text').each(function(index, item){
$(this).text(getStrFileSize($(this).attr('value'))) $(this).text(getStrFileSize($(this).attr('value')))
}); });
var totalfileSize = 0; var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ; $('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){ $('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ; totalfileSize += $(this).val()*1 ;
}); });
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ; $('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
if( $("#tbody_fiielist > [class^=item]").length == 0 && $("#tbody_fiielist > [class^=item]").size() == 0 ){ if( $("#tbody_fiielist > [class^=item]").length == 0 && $("#tbody_fiielist > [class^=item]").size() == 0 ){
$('.no_img_box').show(); $('.no_img_box').show();
$('.file_list_div ').hide(); $('.file_list_div ').hide();
} }
} }
/* 글 저장 function */ /* 글 저장 function */
function goSave(method_parm ){ //method_parm :관리자로그 메소드에서 사용.(파일업로드 부분 공통으로 사용하여, 페이지 구분을 위해) function goSave(method_parm ){ //method_parm :관리자로그 메소드에서 사용.(파일업로드 부분 공통으로 사용하여, 페이지 구분을 위해)
if(undefined !=$("input[name=limitcount]").val() && ""!=$("input[name=limitcount]").val() ){ if(undefined !=$("input[name=limitcount]").val() && ""!=$("input[name=limitcount]").val() ){
if($('#tbody_fiielist').find('tr').length == 0){ if($('#tbody_fiielist').find('tr').length == 0){
alert("첨부파일을 추가해 주십시오"); alert("첨부파일을 추가해 주십시오");
return false; return false;
} }
} }
var msg; var msg;
msg = "해당 첨부파일을 수정하시겠습니까?"; msg = "해당 첨부파일을 수정하시겠습니까?";
var data = new FormData(document.writeForm == undefined ? document.board : document.writeForm); var data = new FormData(document.writeForm == undefined ? document.board : document.writeForm);
_fileForm2.forEach(function(obj, idx) { _fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj); if (obj) data.append("file"+idx, obj.fileObj);
}); });
var url = ""; var url = "";
if($("#pageType").val() == "insert"){ if($("#pageType").val() == "insert"){
url = "/cop/bbs/insertBoardArticleAjax.do"; url = "/cop/bbs/insertBoardArticleAjax.do";
}else{ }else{
url = document.writeForm == undefined ? "/kcc/mail/itnSendMailPro.do" : "/kcc/mail/itnSendMailPro.do"; url = document.writeForm == undefined ? "/kcc/mail/itnSendMailPro.do" : "/kcc/mail/itnSendMailPro.do";
} }
$.ajax({ $.ajax({
type: "POST", type: "POST",
enctype: 'multipart/form-data', enctype: 'multipart/form-data',
url: url, url: url,
data: data, data: data,
dataType:'json', dataType:'json',
async: false, async: false,
processData: false, processData: false,
contentType: false, contentType: false,
cache: false, cache: false,
//timeout: 600000, //timeout: 600000,
success: function (returnData, status) { success: function (returnData, status) {
if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나 if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
if("fail"==returnData.result){ if("fail"==returnData.result){
alert(returnData.message); alert(returnData.message);
return; return;
} }
alert("저장 되었습니다."); alert("저장 되었습니다.");
goList(); goList();
} else if(status== 'fail'){ } else if(status== 'fail'){
alert("저장에 실패하였습니다. !!"); alert("저장에 실패하였습니다. !!");
} }
}, },
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
}); });
} }
(function ($) { (function ($) {
$.fn.replaceClass = function (pFromClass, pToClass) { $.fn.replaceClass = function (pFromClass, pToClass) {
return this.removeClass(pFromClass).addClass(pToClass); return this.removeClass(pFromClass).addClass(pToClass);
}; };
}(jQuery)); }(jQuery));

View File

@ -1,134 +1,134 @@
String.prototype.bytes = function() { String.prototype.bytes = function() {
var str = this; var str = this;
var l = 0; var l = 0;
for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 3 : 1; for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 3 : 1;
return l; return l;
}; };
String.prototype.cut = function(len) { String.prototype.cut = function(len) {
var str = this; var str = this;
var l = 0; var l = 0;
for (var i=0; i<str.length; i++) { for (var i=0; i<str.length; i++) {
l += (str.charCodeAt(i) > 128) ? 3 : 1; l += (str.charCodeAt(i) > 128) ? 3 : 1;
if (l > len) return str.substring(0,i); if (l > len) return str.substring(0,i);
} }
return str; return str;
}; };
/** /**
* object empty check * object empty check
* */ * */
function emptyObject(param){ function emptyObject(param){
return Object.keys(param).length === 0; return Object.keys(param).length === 0;
} }
function isEmptyList(data){ function isEmptyList(data){
if(data == undefined || data == null || data.length == 0){ if(data == undefined || data == null || data.length == 0){
return true; return true;
} }
return false; return false;
} }
function dateFormatStr (dateStr) { function dateFormatStr (dateStr) {
var refinedDateStr; var refinedDateStr;
var rv; var rv;
if (dateStr == null) { if (dateStr == null) {
return null; return null;
} }
refinedDateStr = dateStr.match(/\d+/g); refinedDateStr = dateStr.match(/\d+/g);
if (refinedDateStr == null || refinedDateStr.length == 0) { if (refinedDateStr == null || refinedDateStr.length == 0) {
return null; return null;
} }
refinedDateStr = refinedDateStr + ""; refinedDateStr = refinedDateStr + "";
switch (refinedDateStr.length) { switch (refinedDateStr.length) {
case 4: case 4:
rv = moment(refinedDateStr, "HHmm"); rv = moment(refinedDateStr, "HHmm");
break; break;
case 6: case 6:
rv = moment(refinedDateStr, "HHmmss"); rv = moment(refinedDateStr, "HHmmss");
break; break;
case 8: case 8:
rv = moment(refinedDateStr, "YYYYMMDD"); rv = moment(refinedDateStr, "YYYYMMDD");
break; break;
case 12: case 12:
rv = moment(refinedDateStr, "YYYYMMDDHHmm"); rv = moment(refinedDateStr, "YYYYMMDDHHmm");
break; break;
case 14: case 14:
rv = moment(refinedDateStr, "YYYYMMDDHHmmss"); rv = moment(refinedDateStr, "YYYYMMDDHHmmss");
break; break;
default: default:
throw new Error("invalid date str " + dateStr); throw new Error("invalid date str " + dateStr);
} }
return rv; return rv;
} }
function dateFormat(str, type) { function dateFormat(str, type) {
var date = dateFormatStr(str); var date = dateFormatStr(str);
if (date == null) { if (date == null) {
return ""; return "";
} }
if (type == "slash") { if (type == "slash") {
return date.format("YYYY/MM/DD"); return date.format("YYYY/MM/DD");
} else if (type == "date") { } else if (type == "date") {
return date.format("YYYY.MM.DD"); return date.format("YYYY.MM.DD");
} else if (type == "colon") { } else if (type == "colon") {
return date.format("YYYY:MM:DD"); return date.format("YYYY:MM:DD");
} else if (type == "dash") { } else if (type == "dash") {
return date.format("YYYY-MM-DD"); return date.format("YYYY-MM-DD");
}else if(type == "normal"){ }else if(type == "normal"){
return date.format("YYYYMMDD"); return date.format("YYYYMMDD");
} else { } else {
return date.format("YYYY-MM-DD"); return date.format("YYYY-MM-DD");
} }
}; };
function timeFomat (value, type) { function timeFomat (value, type) {
var date = dateFormatStr(value); var date = dateFormatStr(value);
if (date == null) { if (date == null) {
return ""; return "";
} }
if (type == "slash") { if (type == "slash") {
return date.format("HH:mm:ss"); return date.format("HH:mm:ss");
} else if (type == "date") { } else if (type == "date") {
return date.format("HH:mm:ss"); return date.format("HH:mm:ss");
} else if (type == "colon") { } else if (type == "colon") {
return date.format("HH:mm:ss"); return date.format("HH:mm:ss");
} else if (type == "dash") { } else if (type == "dash") {
return date.format("HH:mm:ss"); return date.format("HH:mm:ss");
} else { } else {
return date.format("HH:mm"); return date.format("HH:mm");
} }
}; };
function countBytes(obj, len, target){ function countBytes(obj, len, target){
var cnt = obj.value.bytes(); var cnt = obj.value.bytes();
var txtSplit; var txtSplit;
var ieVersion; var ieVersion;
if(cnt > 0){ if(cnt > 0){
txtSplit = (obj.value).split("\n"); txtSplit = (obj.value).split("\n");
if(navigator.appName == "Microsoft Internet Explorer"){ if(navigator.appName == "Microsoft Internet Explorer"){
ieVersion = navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5,navigator.appVersion.indexOf("MSIE")+8); ieVersion = navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5,navigator.appVersion.indexOf("MSIE")+8);
if(ieVersion >= "9.0"){ if(ieVersion >= "9.0"){
cnt += txtSplit.length - 1 cnt += txtSplit.length - 1
} }
}else{ }else{
cnt += txtSplit.length - 1 cnt += txtSplit.length - 1
} }
} }
if(cnt <= len){ if(cnt <= len){
target.textContent = cnt; target.textContent = cnt;
}else{ }else{
alert("허용 글자수를 초과하였습니다."); alert("허용 글자수를 초과하였습니다.");
obj.value = obj.value.cut(len - txtSplit.length + 1); obj.value = obj.value.cut(len - txtSplit.length + 1);
target.textContent = obj.value.bytes(); target.textContent = obj.value.bytes();
} }
} }