관리자 기소유예 - 첨부파일기능, 관할청 공통코드 추가
This commit is contained in:
parent
79c001f4b6
commit
b6e4effa14
File diff suppressed because it is too large
Load Diff
@ -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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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";
|
||||
}
|
||||
|
||||
|
||||
@ -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>
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
@ -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>
|
||||
|
||||
@ -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 }" />
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user