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

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

View File

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

View File

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

View File

@ -38,6 +38,7 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
private String prsctrNm; // 검사성명
private String reqStateCd; // 의뢰상태코드
private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK
private String atchFileId;// 첨부파일 ID
@ -183,6 +184,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setPrcsAplctPrdOrdCmplt(String 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.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
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.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
@ -85,6 +89,18 @@ public class CndtnTrgtMngController {
//과정차시 관리
@Resource(name = "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(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -304,8 +320,29 @@ public class CndtnTrgtMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
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.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
// vEPrcsDetailVO.setPrcsOrd(prcsOrd);
// vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
@ -331,6 +368,7 @@ public class CndtnTrgtMngController {
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -351,6 +389,56 @@ public class CndtnTrgtMngController {
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
cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO);
@ -383,7 +471,14 @@ public class CndtnTrgtMngController {
//과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
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";
}
@ -449,6 +544,14 @@ public class CndtnTrgtMngController {
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
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";
}

View File

@ -1,32 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<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"
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">
<!--
<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"
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">
-->
<!--
initial : globals.properties 연계 Url, UserName, Password 값 로드 여부(설정값 : true, false)
crypto : 계정 암호화 여부(설정값 : true, false)
algorithm : 계정 암호화 알고리즘
algorithmKey : 계정 암호화키 키
cryptoBlockSize : 계정 암호화키 블록사이즈
cryptoPropertyLocation : 설정파일 암복호화 경로 (선택) 기본값은 'classpath:/egovframework/egovProps/globals.properties'
-->
<egov-crypto:config id="egovCryptoConfig"
initial="false"
crypto="false"
algorithm="SHA-256"
algorithmKey="egovframe"
algorithmKeyHash="gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ="
cryptoBlockSize="1024"
cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties"
/>
<?xml version="1.0" encoding="UTF-8"?>
<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"
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">
<!--
<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"
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">
-->
<!--
initial : globals.properties 연계 Url, UserName, Password 값 로드 여부(설정값 : true, false)
crypto : 계정 암호화 여부(설정값 : true, false)
algorithm : 계정 암호화 알고리즘
algorithmKey : 계정 암호화키 키
cryptoBlockSize : 계정 암호화키 블록사이즈
cryptoPropertyLocation : 설정파일 암복호화 경로 (선택) 기본값은 'classpath:/egovframework/egovProps/globals.properties'
-->
<egov-crypto:config id="egovCryptoConfig"
initial="false"
crypto="false"
algorithm="SHA-256"
algorithmKey="egovframe"
algorithmKeyHash="gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ="
cryptoBlockSize="1024"
cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties"
/>
</beans>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -107,7 +107,7 @@
<tr>
<th scope="row">관할청</th>
<td>
<c:out value="${info.cmptntAthrt }" />
<ve:code codeId="VEA008" code="${info.cmptntAthrt }"/>
</td>
</tr>
<tr>
@ -170,6 +170,17 @@
</div>
</td>
</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>
</table>
</div>

View File

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

View File

@ -29,7 +29,16 @@
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
$(document).ready(function() {
//파일첨부관련 설정들===============================================
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
//파일첨부관련 설정들===============================================
});
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
@ -105,28 +114,36 @@
}
var data = new FormData(document.getElementById("createForm"));
if(confirm("수정하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do'/>";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
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);
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
if(confirm("수정하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do'/>";
$.ajax({
type:"POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
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("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus();
return true;
@ -181,11 +198,11 @@
}
// 의뢰상태 검사
if($("#reqStateCd").val().trim() == ""){
/* if($("#reqStateCd").val().trim() == ""){
alert("의뢰상태를 입력해주세요.");
$("input[name='reqStateCd']").focus();
return true;
}
} */
// 교육상태 검사
/* if($("input[name='eduStateCd']").val().trim() == ""){
@ -219,6 +236,39 @@
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>
</head>
@ -227,6 +277,7 @@
</form:form>
<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="atchFileId" value="<c:out value='${info.atchFileId}' />" />
<!-- cont -->
<div class="cont_wrap">
<div class="box">
@ -281,7 +332,10 @@
<tr>
<th scope="row">관할청</th>
<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>
</tr>
<tr>
@ -358,6 +412,87 @@
</div>
</td>
</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>
</table>
</div>

View File

@ -31,22 +31,9 @@
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
$(document).ready(function() {
/* $('#dBirth').on('input', function() {
var input = $(this).val();
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 + '-');
}
}); */
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
});
function fncSave(){
@ -57,29 +44,40 @@
}
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
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);
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data.append("file"+idx, obj.fileObj);
});
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
enctype: 'multipart/form-data',
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
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("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus();
return true;
@ -179,6 +177,40 @@
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>
</head>
@ -239,7 +271,10 @@
<tr>
<th scope="row">관할청</th>
<td>
<input type="text" name="cmptntAthrt" />
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
@ -316,6 +351,88 @@
</div>
</td>
</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>
</table>
</div>

View File

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

View File

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