This commit is contained in:
myname 2023-11-07 14:33:49 +09:00
commit 0d1f1558b5
42 changed files with 11923 additions and 9922 deletions

View File

@ -1,231 +1,248 @@
package kcc.com.cmm.util; package kcc.com.cmm.util;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale; import java.util.Locale;
public final class DateUtil { public final class DateUtil {
public static final String BASE_PATTERN = "yyyyMMddHHmmssSSS"; public static final String BASE_PATTERN = "yyyyMMddHHmmssSSS";
public static final int BASE_PATTERN_LEN = BASE_PATTERN.length(); public static final int BASE_PATTERN_LEN = BASE_PATTERN.length();
private static final String[] PATTERN_CACHE = new String[BASE_PATTERN_LEN + 1]; private static final String[] PATTERN_CACHE = new String[BASE_PATTERN_LEN + 1];
static { static {
PATTERN_CACHE[BASE_PATTERN_LEN] = BASE_PATTERN; PATTERN_CACHE[BASE_PATTERN_LEN] = BASE_PATTERN;
PATTERN_CACHE[14] = BASE_PATTERN.substring(0, 14); PATTERN_CACHE[14] = BASE_PATTERN.substring(0, 14);
PATTERN_CACHE[12] = BASE_PATTERN.substring(0, 12); PATTERN_CACHE[12] = BASE_PATTERN.substring(0, 12);
PATTERN_CACHE[10] = BASE_PATTERN.substring(0, 10); PATTERN_CACHE[10] = BASE_PATTERN.substring(0, 10);
PATTERN_CACHE[8] = BASE_PATTERN.substring(0, 8); PATTERN_CACHE[8] = BASE_PATTERN.substring(0, 8);
PATTERN_CACHE[6] = BASE_PATTERN.substring(0, 6); PATTERN_CACHE[6] = BASE_PATTERN.substring(0, 6);
PATTERN_CACHE[4] = BASE_PATTERN.substring(0, 4); PATTERN_CACHE[4] = BASE_PATTERN.substring(0, 4);
PATTERN_CACHE[0] = ""; PATTERN_CACHE[0] = "";
} }
public static final String DATE_PATTERN = PATTERN_CACHE[8]; public static final String DATE_PATTERN = PATTERN_CACHE[8];
public static final String DATETIME_PATTERN = PATTERN_CACHE[14]; public static final String DATETIME_PATTERN = PATTERN_CACHE[14];
public static LocalDateTime now() { public static LocalDateTime now() {
return LocalDateTime.now(); return LocalDateTime.now();
} }
public static Date toDate(LocalDate ld) { public static Date toDate(LocalDate ld) {
Date date = null; Date date = null;
if(ld != null) { if(ld != null) {
Instant instant = ld.atStartOfDay(ZoneId.systemDefault()).toInstant(); Instant instant = ld.atStartOfDay(ZoneId.systemDefault()).toInstant();
date = Date.from(instant); date = Date.from(instant);
} }
return date; return date;
} }
public static Date toDate(LocalDateTime ldt) { public static Date toDate(LocalDateTime ldt) {
Date date = null; Date date = null;
if(ldt != null) { if(ldt != null) {
Instant instant = ldt.atZone(ZoneId.systemDefault()).toInstant(); Instant instant = ldt.atZone(ZoneId.systemDefault()).toInstant();
date = Date.from(instant); date = Date.from(instant);
} }
return date; return date;
} }
public static LocalDate toLocalDate(Date date) { public static LocalDate toLocalDate(Date date) {
LocalDate ld = null; LocalDate ld = null;
if(date != null) { if(date != null) {
ld = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); ld = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
} }
return ld; return ld;
} }
public static LocalDateTime toLocalDateTime(Date date) { public static LocalDateTime toLocalDateTime(Date date) {
LocalDateTime ldt = null; LocalDateTime ldt = null;
if(date != null) { if(date != null) {
ldt = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); ldt = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
} }
return ldt; return ldt;
} }
public static Date parse(String source, String pattern) { public static Date parse(String source, String pattern) {
Date date = null; Date date = null;
if(source == null) { if(source == null) {
return date; return date;
} }
int sourceLen = source.length(); int sourceLen = source.length();
if(sourceLen < 1) { if(sourceLen < 1) {
return date; return date;
} }
if(sourceLen > 8) { if(sourceLen > 8) {
LocalDateTime ldt = DateUtil.parseLocalDateTime(source, pattern); LocalDateTime ldt = DateUtil.parseLocalDateTime(source, pattern);
date = DateUtil.toDate(ldt); date = DateUtil.toDate(ldt);
} else { } else {
LocalDate ld = DateUtil.parseLocalDate(source, pattern); LocalDate ld = DateUtil.parseLocalDate(source, pattern);
date = DateUtil.toDate(ld); date = DateUtil.toDate(ld);
} }
return date; return date;
} }
public static Date parse(String source) { public static Date parse(String source) {
return DateUtil.parse(source, null); return DateUtil.parse(source, null);
} }
public static LocalDate parseLocalDate(String source, String pattern) { public static LocalDate parseLocalDate(String source, String pattern) {
LocalDate ld = null; LocalDate ld = null;
if(source == null) { if(source == null) {
return ld; return ld;
} }
int sourceLen = source.length(); int sourceLen = source.length();
if(sourceLen < 1) { if(sourceLen < 1) {
return ld; return ld;
} }
if(StringUtil.isEmpty(pattern)) { if(StringUtil.isEmpty(pattern)) {
pattern = PATTERN_CACHE[sourceLen]; pattern = PATTERN_CACHE[sourceLen];
if(StringUtil.isEmpty(pattern)) { if(StringUtil.isEmpty(pattern)) {
return ld; return ld;
} }
} }
ld = LocalDate.parse(source, DateTimeFormatter.ofPattern(pattern)); ld = LocalDate.parse(source, DateTimeFormatter.ofPattern(pattern));
return ld; return ld;
} }
public static LocalDate parseLocalDate(String source) { public static LocalDate parseLocalDate(String source) {
return DateUtil.parseLocalDate(source, null); return DateUtil.parseLocalDate(source, null);
} }
public static LocalDateTime parseLocalDateTime(String source, String pattern) { public static LocalDateTime parseLocalDateTime(String source, String pattern) {
LocalDateTime ldt = null; LocalDateTime ldt = null;
if(source == null) { if(source == null) {
return ldt; return ldt;
} }
int sourceLen = source.length(); int sourceLen = source.length();
if(sourceLen < 1) { if(sourceLen < 1) {
return ldt; return ldt;
} }
if(StringUtil.isEmpty(pattern)) { if(StringUtil.isEmpty(pattern)) {
pattern = PATTERN_CACHE[sourceLen]; pattern = PATTERN_CACHE[sourceLen];
if(StringUtil.isEmpty(pattern)) { if(StringUtil.isEmpty(pattern)) {
return ldt; return ldt;
} }
} }
ldt = LocalDateTime.parse(source, DateTimeFormatter.ofPattern(PATTERN_CACHE[sourceLen])); ldt = LocalDateTime.parse(source, DateTimeFormatter.ofPattern(PATTERN_CACHE[sourceLen]));
return ldt; return ldt;
} }
public static LocalDateTime parseLocalDateTime(String source) { public static LocalDateTime parseLocalDateTime(String source) {
return DateUtil.parseLocalDateTime(source, null); return DateUtil.parseLocalDateTime(source, null);
} }
static String format(Date date, String pattern) { static String format(Date date, String pattern) {
if (date == null) if (date == null)
return null; return null;
return getInnerDateFormat(pattern).format(date); return getInnerDateFormat(pattern).format(date);
} }
private static SimpleDateFormat getInnerDateFormat(String pattern) { private static SimpleDateFormat getInnerDateFormat(String pattern) {
SimpleDateFormat f = cache.get(pattern); SimpleDateFormat f = cache.get(pattern);
if (f == null) if (f == null)
f = createDateformat(pattern); f = createDateformat(pattern);
return f; return f;
} }
private static final Locale __DEFAULT_LOCALE = Locale.ENGLISH; private static final Locale __DEFAULT_LOCALE = Locale.ENGLISH;
private static HashMap<String, SimpleDateFormat> cache = new HashMap<String, SimpleDateFormat>(); private static HashMap<String, SimpleDateFormat> cache = new HashMap<String, SimpleDateFormat>();
private synchronized static SimpleDateFormat createDateformat(String pattern) { private synchronized static SimpleDateFormat createDateformat(String pattern) {
SimpleDateFormat f = cache.get(pattern); SimpleDateFormat f = cache.get(pattern);
if (f == null) { if (f == null) {
f = new SimpleDateFormat(pattern, __DEFAULT_LOCALE); f = new SimpleDateFormat(pattern, __DEFAULT_LOCALE);
cache.put(pattern, f); cache.put(pattern, f);
} }
return f; return f;
} }
//날짜에 대한 요일 텍스트 받아오기 //날짜에 대한 요일 텍스트 받아오기
public static String getWeekText(Date date) { public static String getWeekText(Date date) {
String strWeek = ""; String strWeek = "";
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.setTime(date); cal.setTime(date);
int dayNum = cal.get(Calendar.DAY_OF_WEEK); int dayNum = cal.get(Calendar.DAY_OF_WEEK);
switch(dayNum) { switch(dayNum) {
case 1: case 1:
strWeek = ""; strWeek = "";
break; break;
case 2: case 2:
strWeek = ""; strWeek = "";
break; break;
case 3: case 3:
strWeek = ""; strWeek = "";
break; break;
case 4: case 4:
strWeek = ""; strWeek = "";
break; break;
case 5: case 5:
strWeek = ""; strWeek = "";
break; break;
case 6: case 6:
strWeek = ""; strWeek = "";
break; break;
case 7: case 7:
strWeek = ""; strWeek = "";
break; break;
} }
return strWeek; return strWeek;
} }
public static int getNowyyyyMMddReturnInt() { public static int getNowyyyyMMddReturnInt() {
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyyMMdd"); DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyyMMdd");
return Integer.parseInt(LocalDateTime.now().format(formatter2)); return Integer.parseInt(LocalDateTime.now().format(formatter2));
} }
public static LocalDate getStringToLocalDate(String p_date) { public static LocalDate getStringToLocalDate(String p_date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate date = LocalDate.parse(p_date, formatter); LocalDate date = LocalDate.parse(p_date, formatter);
return date; return date;
} }
public static LocalDate getStringToLocalDateDot(String p_date) { public static LocalDate getStringToLocalDateDot(String p_date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
LocalDate date = LocalDate.parse(p_date, formatter); LocalDate date = LocalDate.parse(p_date, formatter);
return date; return date;
} }
}
// 2023 => 23
public static String getStringToLocalDateYear() {
// 현재 날짜를 얻기
LocalDate currentDate = LocalDate.now();
// 올해의 년도를 얻기
int currentYear = currentDate.getYear();
// 년도를 String으로 변환
String yearString = Integer.toString(currentYear);
// 마지막 자리 추출
String lastTwoDigits = yearString.substring(yearString.length() - 2);
// 출력
return lastTwoDigits;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

@ -1,48 +1,50 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service; package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service;
import java.util.List; import java.util.List;
public interface CndtnTrgtMngService { public interface CndtnTrgtMngService {
List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO); List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO); void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO); CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO);
void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO); void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO); void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO);
int findCntreqNmber(String reqNmbrTemp);
/* //C
void insert(VEPrcsDetailVO paramVO) throws Exception;
/* //C
//R void insert(VEPrcsDetailVO paramVO) throws Exception;
VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
//R
//U VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
int update(VEPrcsDetailVO paramVO) throws Exception;
//U
//D int update(VEPrcsDetailVO paramVO) throws Exception;
int delete(VEPrcsDetailVO paramVO) throws Exception;
//D
//L int delete(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
//L
//List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception; List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception; //List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
//Page List List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
//Page List
//교육과정 리스트 순서 수정 List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception;*/
//교육과정 리스트 순서 수정
} void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception;*/
}

View File

@ -35,9 +35,11 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
private String cmptntAthrt; // 관할청 private String cmptntAthrt; // 관할청
private String sex; // 성별 private String sex; // 성별
private String reqNmbr; // 의뢰번호 private String reqNmbr; // 의뢰번호
private String reqNmbrTemp; // 의뢰번호
private String prsctrNm; // 검사성명 private String prsctrNm; // 검사성명
private String reqStateCd; // 의뢰상태코드 private String reqStateCd; // 의뢰상태코드
private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK
private String atchFileId;// 첨부파일 ID
@ -165,6 +167,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setReqNmbr(String reqNmbr) { public void setReqNmbr(String reqNmbr) {
this.reqNmbr = reqNmbr; this.reqNmbr = reqNmbr;
} }
public String getReqNmbrTemp() {
return reqNmbrTemp;
}
public void setReqNmbrTemp(String reqNmbrTemp) {
this.reqNmbrTemp = reqNmbrTemp;
}
public String getPrsctrNm() { public String getPrsctrNm() {
return prsctrNm; return prsctrNm;
} }
@ -183,6 +191,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setPrcsAplctPrdOrdCmplt(String prcsAplctPrdOrdCmplt) { public void setPrcsAplctPrdOrdCmplt(String prcsAplctPrdOrdCmplt) {
this.prcsAplctPrdOrdCmplt = prcsAplctPrdOrdCmplt; this.prcsAplctPrdOrdCmplt = prcsAplctPrdOrdCmplt;
} }
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}

View File

@ -1,125 +1,129 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl; package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List; import java.util.List;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO; import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Repository("cndtnTrgtInfoMngDAO") @Repository("cndtnTrgtInfoMngDAO")
public class CndtnTrgtMngDAO extends EgovAbstractDAO { public class CndtnTrgtMngDAO extends EgovAbstractDAO {
/* *//** /* *//**
* 등록 - C * 등록 - C
* @param VELctrDetailVO * @param VELctrDetailVO
* @throws Exception * @throws Exception
*//* *//*
public void insert(VEPrcsDetailVO paramVO) throws Exception { public void insert(VEPrcsDetailVO paramVO) throws Exception {
insert("VEPrcsAplctPrdDAO.insert", paramVO); insert("VEPrcsAplctPrdDAO.insert", paramVO);
} }
*//** *//**
* 상세보기 - R * 상세보기 - R
* @param CndtnTrgtInfoMngVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*//* *//*
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO); return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO);
} }
*//** *//**
* 수정 - U * 수정 - U
* @param CndtnTrgtInfoMngVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*//* *//*
public int update(VEPrcsDetailVO paramVO) throws Exception { public int update(VEPrcsDetailVO paramVO) throws Exception {
return update("VEPrcsAplctPrdDAO.update", paramVO); return update("VEPrcsAplctPrdDAO.update", paramVO);
} }
*//** *//**
* 삭제 - D * 삭제 - D
* @param addrAgencyVO * @param addrAgencyVO
* @return * @return
* @throws Exception * @throws Exception
*//* *//*
public int delete(VEPrcsDetailVO paramVO) throws Exception { public int delete(VEPrcsDetailVO paramVO) throws Exception {
return delete("VEPrcsAplctPrdDAO.delete", paramVO); return delete("VEPrcsAplctPrdDAO.delete", paramVO);
} }
//L //L
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO); List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO);
return tlist; return tlist;
} }
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO); List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO);
return tlist; return tlist;
} }
*//** *//**
* L - Page * L - Page
* @param addrVO * @param addrVO
* @return * @return
* @throws Exception * @throws Exception
*//* *//*
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO); List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO);
return tlist; return tlist;
} }
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO); List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO);
return tlist; return tlist;
} }
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO); return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO);
} }
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO); return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
} }
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) { public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO); return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}*/ }*/
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.selectPagingList", cndtnTrgtInfoMngVO); return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.selectPagingList", cndtnTrgtInfoMngVO);
} }
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
insert("cndtnTrgtInfoMngDAO.insert", cndtnTrgtInfoMngVO); insert("cndtnTrgtInfoMngDAO.insert", cndtnTrgtInfoMngVO);
} }
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) { public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return (CndtnTrgtMngVO) select("cndtnTrgtInfoMngDAO.selectDetail", cndtnTrgtInfoVO); return (CndtnTrgtMngVO) select("cndtnTrgtInfoMngDAO.selectDetail", cndtnTrgtInfoVO);
} }
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
update("cndtnTrgtInfoMngDAO.update", cndtnTrgtInfoMngVO); update("cndtnTrgtInfoMngDAO.update", cndtnTrgtInfoMngVO);
} }
public String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd", cndtnTrgtInfoMngVO); return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd", cndtnTrgtInfoMngVO);
} }
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) { public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
update("cndtnTrgtInfoMngDAO.updateUserId", cndtnTrgtMngVO); update("cndtnTrgtInfoMngDAO.updateUserId", cndtnTrgtMngVO);
} }
public String findByTrgtNmAndDBirthAndUserIdAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public String findByTrgtNmAndDBirthAndUserIdAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd", cndtnTrgtInfoMngVO); return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd", cndtnTrgtInfoMngVO);
} }
public int findCntreqNmber(String reqNmbrTemp) {
} return (int) select("cndtnTrgtInfoMngDAO.findCntreqNmber", reqNmbrTemp);
}
}

View File

@ -1,117 +1,122 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl; package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Service("cndtnTrgtInfoMngService") @Service("cndtnTrgtInfoMngService")
public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService { public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
//과정신청기간순번 //과정신청기간순번
@Resource(name="prcsAplctPrdGnrService") @Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService; private EgovIdGnrService prcsAplctPrdGnrService;
//과정 //과정
//대상자 //대상자
@Resource(name="cndtnTrgtInfoMngDAO") @Resource(name="cndtnTrgtInfoMngDAO")
private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO; private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO;
@Override @Override
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO); return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO);
} }
@Override @Override
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO); cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO);
} }
@Override @Override
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) { public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO); return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO);
} }
@Override @Override
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) { public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO); cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO);
} }
@Override @Override
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) { public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO); cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
} }
/* @Override
//C public int findCntreqNmber(String reqNmbrTemp) {
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception { return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
}
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID /*
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); //C
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO); String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
} vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//R //vEPrcsDetailVO.setUseYn("Y");
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetail(paramVO); vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO);
} }
//U //R
public int update(VEPrcsDetailVO paramVO) throws Exception{ public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
vEPrcsAplctPrdDAO.update(paramVO); return vEPrcsAplctPrdDAO.selectDetail(paramVO);
return vEPrcsDAO.update(paramVO); }
}
//U
//D public int update(VEPrcsDetailVO paramVO) throws Exception{
public int delete(VEPrcsDetailVO paramVO) throws Exception{ vEPrcsAplctPrdDAO.update(paramVO);
return vEPrcsAplctPrdDAO.delete(paramVO); return vEPrcsDAO.update(paramVO);
} }
//List //D
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception{ public int delete(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList(paramVO); return vEPrcsAplctPrdDAO.delete(paramVO);
} }
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{ //List
return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO); public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception{
} return vEPrcsAplctPrdDAO.selectList(paramVO);
}
//paging List
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{ public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList(paramVO); return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO);
} }
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{ //paging List
return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO); public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{
} return vEPrcsAplctPrdDAO.selectPagingList(paramVO);
}
//R
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO); return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO);
} }
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception { //R
return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO); public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
} return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO);
}
@Override
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) { public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO); return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO);
}*/ }
} @Override
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
}*/
}

View File

@ -1,10 +1,14 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.web; package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.web;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -13,12 +17,17 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO; import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.DateUtil;
import kcc.com.cmm.util.StringUtil; import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
@ -85,6 +94,18 @@ public class CndtnTrgtMngController {
//과정차시 관리 //과정차시 관리
@Resource(name = "vEPrcsAplctPrdService") @Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService; private VEPrcsAplctPrdService vEPrcsAplctPrdService;
//파일 체크 util
@Resource(name = "checkFileUtil")
private CheckFileUtil checkFileUtil;
//파일정보의 관리
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
/* /*
// 교육신청 서비스단 // 교육신청 서비스단
@ -133,16 +154,21 @@ public class CndtnTrgtMngController {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 // LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority());
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
String userWork = this.getUserWork(request);
cndtnTrgtInfoMngVO.setSearchCondition(userWork);
//1.pageing step1 //1.pageing step1
PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO); PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO);
@ -186,6 +212,90 @@ public class CndtnTrgtMngController {
return "oprtn/cndtnSspnIdtmt/trgtList"; return "oprtn/cndtnSspnIdtmt/trgtList";
} }
/**
* @methodName : getUserWork
* @author : 이호영
* @date : 2023.11.07
* @description : 사용자 권한이 관할청 담당자일때 userWork로 관할 가져오기
* @param request
* @return
*/
private String getUserWork(HttpServletRequest request) {
String userWork = "";
HttpSession session = request.getSession();
LoginVO loginVO = (LoginVO) session.getAttribute("LoginVO");
String authority = loginVO.getAuthority();
// 관할청 담당자일때
if("ROLE_ADR_JRSDC".equals(authority)) {
userWork = loginVO.getUserWork();
}
// TODO Auto-generated method stub
return userWork;
}
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngList.do")
public String trgtMngList(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority());
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//1.pageing step1
PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo);
//검색 조회
if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){
String selectCondition = "";
String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus();
selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')";
cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
}
// List<CndtnTrgtInfoMngVO> cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
List<CndtnTrgtMngVO> cndtnTrgtInfoMngVOList = null;
try {
cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
//3.pageing step3
paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", cndtnTrgtInfoMngVOList);
return "oprtn/cndtnSspnIdtmt/trgtMngList";
}
/** /**
* @methodName : trgtCmpltList * @methodName : trgtCmpltList
* @author : 이호영 * @author : 이호영
@ -262,6 +372,7 @@ public class CndtnTrgtMngController {
public String cndtnEduPrcsMngReg( public String cndtnEduPrcsMngReg(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model , ModelMap model
, HttpServletRequest request
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
@ -271,7 +382,9 @@ public class CndtnTrgtMngController {
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
String userWork = this.getUserWork(request);
model.addAttribute("userWork", userWork);
return "oprtn/cndtnSspnIdtmt/trgtReg"; return "oprtn/cndtnSspnIdtmt/trgtReg";
} }
@ -283,8 +396,8 @@ public class CndtnTrgtMngController {
public ModelAndView cndtnEduPrcsMngRegAjax( public ModelAndView cndtnEduPrcsMngRegAjax(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO @ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model , ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request , HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception { ) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
@ -304,13 +417,36 @@ public class CndtnTrgtMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//step2.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "APLCT_" //file_name_prefix
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
// 사건번호
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId()); cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId());
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
// vEPrcsDetailVO.setPrcsOrd(prcsOrd);
// vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
// vEPrcsDetailVO.setUseYn("Y");
// vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO); cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
@ -321,7 +457,49 @@ public class CndtnTrgtMngController {
return modelAndView; return modelAndView;
} }
// 사건번호
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
private String getReqNmbr(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
//성인 미성년 구분
String adultWhether = getIsAdultInKorea(cndtnTrgtInfoMngVO.getdBirth());
String reqNmbrTemp = adultWhether+"-"+cndtnTrgtInfoMngVO.getCmptntAthrt()+"-"+LocalDate.now().getYear()+"-";
int cnt = cndtnTrgtInfoMngService.findCntreqNmber("%" + reqNmbrTemp + "%");
return adultWhether+"-"+cndtnTrgtInfoMngVO.getCmptntAthrt()+"-"+DateUtil.getStringToLocalDateYear()+"-"+(cnt+1);
}
/**
* @methodName : getIsAdultInKorea
* @author : 이호영
* @date : 2023.11.07
* @description : 성인이면 A, 미성년이면 Y
* @param birthDateString
* @return
*/
public static String getIsAdultInKorea(String birthDateString) {
String returnData = "Y";
// 생년월일 포맷 정의 (예시: "yyyy-MM-dd")
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// 문자열로부터 LocalDate 객체 생성
LocalDate birthDate = LocalDate.parse(birthDateString, formatter);
// 현재 날짜 얻기
LocalDate now = LocalDate.now();
// 생년월일과 현재 날짜 사이의 기간 계산
Period period = Period.between(birthDate, now);
if(period.getYears() >= 19) {
returnData="A";
}
// 나이가 19세 이상인지 확인
return returnData;
}
/** /**
* 조건부기소유예과정 등록 * 조건부기소유예과정 등록
*/ */
@ -331,6 +509,7 @@ public class CndtnTrgtMngController {
, ModelMap model , ModelMap model
//, RedirectAttributes redirectAttributes //, RedirectAttributes redirectAttributes
, HttpServletRequest request , HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception { ) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
@ -351,6 +530,56 @@ public class CndtnTrgtMngController {
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//step2.첨부파일 체크 저장 하기
String s_scholSealAtchFileId = "";
s_scholSealAtchFileId = cndtnTrgtInfoMngVO.getAtchFileId();
//DB에서 실제 첨부파일 존재 여부 확인
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(s_scholSealAtchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
if (result.size()<=0) {
s_scholSealAtchFileId = "";
}
//step3.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
//기존 파일 존재 여부에 따라서 insert or update 처리
if ("".equals(s_scholSealAtchFileId)) {
//atchFileId = this.fileValCheckNdbInsert(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit); //EXT, MB size and ea
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "APLCT_"
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId);
}else {
//atchFileId = this.fileValCheckNdbUpdate(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit, atchFileId); //EXT, MB size and ea
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate(
multiRequest, modelAndView
, "APLCT_"
, s_file_exts
, i_limit_size
, i_file_limit
, s_scholSealAtchFileId
); //EXT, MB size and ea
}
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
cndtnTrgtInfoMngVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id cndtnTrgtInfoMngVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO); cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO);
@ -363,7 +592,7 @@ public class CndtnTrgtMngController {
} }
/** /**
* 조건부기소유예과정 상세화면 * 대상자목록
*/ */
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do") @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do")
public String trgtDetail( public String trgtDetail(
@ -383,10 +612,49 @@ public class CndtnTrgtMngController {
//과정 조회 //과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO); model.addAttribute("info", cndtnTrgtInfoVO);
//세부과정 목록 조회
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "oprtn/cndtnSspnIdtmt/trgtDetail"; return "oprtn/cndtnSspnIdtmt/trgtDetail";
} }
/**
* 대상자목록
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngDetail.do")
public String trgtMngDetail(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
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/trgtMngDetail";
}
/** /**
* 조건부기소유예과정 수료자 상세화면 * 조건부기소유예과정 수료자 상세화면
*/ */
@ -449,10 +717,49 @@ public class CndtnTrgtMngController {
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO); CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO); model.addAttribute("info", cndtnTrgtInfoVO);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "oprtn/cndtnSspnIdtmt/trgtMdfy"; return "oprtn/cndtnSspnIdtmt/trgtMdfy";
} }
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtMngMdfy.do")
public String trgtMngMdfy(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
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/trgtMngMdfy";
}

View File

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

View File

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

View File

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

View File

@ -67,7 +67,7 @@
, #authorNm# , #authorNm#
, #authorDc# , #authorDc#
, (SELECT CAST(MAX(sort_num)+1 AS VARCHAR(2)) FROM LETTNAUTHORINFO) , (SELECT CAST(MAX(sort_num)+1 AS VARCHAR(2)) FROM LETTNAUTHORINFO)
, DATE_FORMAT(NOW(), '%Y-%m-%d')) , TO_CHAR(SYSDATE, 'YYYY-MM-DD'))
]]> ]]>
</insert> </insert>

View File

@ -1,402 +1,401 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="LoginUsr"> <sqlMap namespace="LoginUsr">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/> <typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="loginVO" type="kcc.com.cmm.LoginVO"/> <typeAlias alias="loginVO" type="kcc.com.cmm.LoginVO"/>
<!-- 로그인 처리를 위한 resultMap --> <!-- 로그인 처리를 위한 resultMap -->
<resultMap id="login" class="kcc.com.cmm.LoginVO"> <resultMap id="login" class="kcc.com.cmm.LoginVO">
<result property="id" column="id" columnIndex="1"/> <result property="id" column="id" columnIndex="1"/>
<result property="name" column="name" columnIndex="2"/> <result property="name" column="name" columnIndex="2"/>
<result property="ihidNum" column="ihidNum" columnIndex="3"/> <result property="ihidNum" column="ihidNum" columnIndex="3"/>
<result property="email" column="email" columnIndex="4"/> <result property="email" column="email" columnIndex="4"/>
<result property="password" column="password" columnIndex="5"/> <result property="password" column="password" columnIndex="5"/>
<result property="userSe" column="userSe" columnIndex="6"/> <result property="userSe" column="userSe" columnIndex="6"/>
<result property="orgnztId" column="orgnztId" columnIndex="7"/> <result property="orgnztId" column="orgnztId" columnIndex="7"/>
<result property="uniqId" column="uniqId" columnIndex="8"/> <result property="uniqId" column="uniqId" columnIndex="8"/>
<result property="passMiss" column="passMiss" columnIndex="9"/> <result property="passMiss" column="passMiss" columnIndex="9"/>
<result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/> <result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/>
<result property="membCelnum" column="membCelnum" columnIndex="11"/> <result property="membCelnum" column="membCelnum" columnIndex="11"/>
<result property="membBirth" column="membBirth" columnIndex="12"/> <result property="membBirth" column="membBirth" columnIndex="12"/>
</resultMap> </resultMap>
<!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 --> <!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 -->
<select id="loginDAO.actionLogin" resultMap="login"> <select id="loginDAO.actionLogin" resultMap="login">
<!-- 일반회원 --> <!-- 일반회원 -->
<isNotNull property="userSe"> <isNotNull property="userSe">
<isEqual property="userSe" compareValue="GNR"> <isEqual property="userSe" compareValue="GNR">
SELECT mber_id AS id SELECT mber_id AS id
, mber_nm AS name , mber_nm AS name
, password AS password , password AS password
, ihidNum AS ihidNum , ihidNum AS ihidNum
, mber_email_adres AS email , mber_email_adres AS email
, 'GNR' AS userSe , 'GNR' AS userSe
, '-' AS orgnztId , '-' AS orgnztId
, ESNTL_ID AS uniqId , ESNTL_ID AS uniqId
, 0 AS passMiss , 0 AS passMiss
, mber_sttus AS emplyrSttusCode , mber_sttus AS emplyrSttusCode
, mbtlnum AS membCelnum , mbtlnum AS membCelnum
, birth_day AS membBirth , birth_day AS membBirth
FROM lettngnrlmber a
FROM lettngnrlmber a WHERE mber_id = #id#
WHERE mber_id = #id# AND PASSWORD = #password#
AND PASSWORD = #password# <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> <!-- 업무사용자 -->
<!-- 업무사용자 --> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> SELECT EMPLYR_ID AS id
SELECT EMPLYR_ID AS id , USER_NM AS name
, USER_NM AS name , PASSWORD AS password
, PASSWORD AS password , IHIDNUM AS ihidNum
, IHIDNUM AS ihidNum , EMAIL_ADRES AS email
, EMAIL_ADRES AS email , 'USR' AS userSe
, 'USR' AS userSe , ORGNZT_ID AS orgnztId
, ORGNZT_ID AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , PASS_MISS AS passMiss
, PASS_MISS AS passMiss , EMPLYR_STTUS_CODE AS emplyrSttusCode
, EMPLYR_STTUS_CODE AS emplyrSttusCode , mbtlnum AS membCelnum
, mbtlnum AS membCelnum , '' AS membBirth
, '' AS membBirth FROM LETTNEMPLYRINFO a
FROM LETTNEMPLYRINFO a WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# AND PASSWORD = #password#
AND PASSWORD = #password# <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> </isNotNull>
</isNotNull> </select>
</select>
<!-- 개발자 아이디 선택용 -->
<!-- 개발자 아이디 선택용 --> <select id="loginDAO.actionLoginDev" resultMap="login">
<select id="loginDAO.actionLoginDev" resultMap="login"> <!-- 일반회원 -->
<!-- 일반회원 --> <isNotNull property="userSe">
<isNotNull property="userSe"> <isEqual property="userSe" compareValue="GNR">
<isEqual property="userSe" compareValue="GNR"> SELECT mber_id AS id
SELECT mber_id AS id , mber_nm AS name
, mber_nm AS name , password AS password
, password AS password , ihidNum AS ihidNum
, ihidNum AS ihidNum , mber_email_adres AS email
, mber_email_adres AS email , 'GNR' AS userSe
, 'GNR' AS userSe , '-' AS orgnztId
, '-' AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , 0 AS passMiss
, 0 AS passMiss , mber_sttus AS emplyrSttusCode
, mber_sttus AS emplyrSttusCode , mbtlnum AS membCelnum
, mbtlnum AS membCelnum , birth_day AS membBirth
, birth_day AS membBirth
FROM lettngnrlmber a
FROM lettngnrlmber a WHERE mber_seq = #id#
WHERE mber_seq = #id# <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> <!-- 업무사용자 -->
<!-- 업무사용자 --> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> SELECT EMPLYR_ID AS id
SELECT EMPLYR_ID AS id , USER_NM AS name
, USER_NM AS name , PASSWORD AS password
, PASSWORD AS password , IHIDNUM AS ihidNum
, IHIDNUM AS ihidNum , EMAIL_ADRES AS email
, EMAIL_ADRES AS email , 'USR' AS userSe
, 'USR' AS userSe , ORGNZT_ID AS orgnztId
, ORGNZT_ID AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , PASS_MISS AS passMiss
, PASS_MISS AS passMiss , EMPLYR_STTUS_CODE AS emplyrSttusCode
, EMPLYR_STTUS_CODE AS emplyrSttusCode , mbtlnum AS membCelnum
, mbtlnum AS membCelnum , '' AS membBirth
, '' AS membBirth FROM LETTNEMPLYRINFO a
FROM LETTNEMPLYRINFO a WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> </isNotNull>
</isNotNull> </select>
</select>
<!-- 일반 로그인 -->
<!-- 일반 로그인 --> <!-- <select id="loginDAO.actionLogin" resultMap="login">
<!-- <select id="loginDAO.actionLogin" resultMap="login"> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ SELECT EMPLYR_ID AS id
SELECT EMPLYR_ID AS id , USER_NM AS name
, USER_NM AS name , PASSWORD AS password
, PASSWORD AS password , IHIDNUM AS ihidNum
, IHIDNUM AS ihidNum , EMAIL_ADRES AS email
, EMAIL_ADRES AS email , 'USR' AS userSe
, 'USR' AS userSe , ORGNZT_ID AS orgnztId
, ORGNZT_ID AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , PASS_MISS AS passMiss
, PASS_MISS AS passMiss , EMPLYR_STTUS_CODE AS emplyrSttusCode
, EMPLYR_STTUS_CODE AS emplyrSttusCode FROM LETTNEMPLYRINFO a
FROM LETTNEMPLYRINFO a WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# AND PASSWORD = #password#
AND PASSWORD = #password# ]]>
]]> <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND EMPLYR_STTUS_CODE = 'P'
AND EMPLYR_STTUS_CODE = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> </select> -->
</select> -->
<!-- 등록된 sns 수량 조회 -->
<!-- 등록된 sns 수량 조회 --> <select id="loginDAO.selectSnsIdCount" parameterClass="loginVO" resultClass="int" >
<select id="loginDAO.selectSnsIdCount" parameterClass="loginVO" resultClass="int" > <![CDATA[
<![CDATA[ SELECT
SELECT COUNT(*) AS snsIdCnt
COUNT(*) AS snsIdCnt FROM
FROM LETTNEMPLYRINFO
LETTNEMPLYRINFO WHERE
WHERE 1=1
1=1 ]]>
]]> <isEqual property="snsSite" compareValue="kakao">
<isEqual property="snsSite" compareValue="kakao"> <![CDATA[
<![CDATA[ AND KAKAO_ID =#snsId#
AND KAKAO_ID =#snsId# ]]>
]]> </isEqual>
</isEqual> <isEqual property="snsSite" compareValue="naver">
<isEqual property="snsSite" compareValue="naver"> <![CDATA[
<![CDATA[ AND NAVER_ID =#snsId#
AND NAVER_ID =#snsId# ]]>
]]> </isEqual>
</isEqual> </select>
</select>
<!-- 등록된 sns 수량 조회 -->
<!-- 등록된 sns 수량 조회 --> <select id="loginDAO.selectSnsId" parameterClass="loginVO" resultClass="loginVO" >
<select id="loginDAO.selectSnsId" parameterClass="loginVO" resultClass="loginVO" > <![CDATA[
<![CDATA[ SELECT
SELECT EMPLYR_ID AS id ,
EMPLYR_ID AS id , USER_NM AS name ,
USER_NM AS name , PASSWORD AS password ,
PASSWORD AS password , IHIDNUM AS ihidNum ,
IHIDNUM AS ihidNum , EMAIL_ADRES AS email
EMAIL_ADRES AS email FROM
FROM LETTNEMPLYRINFO
LETTNEMPLYRINFO WHERE
WHERE 1=1
1=1 ]]>
]]> <isEqual property="snsSite" compareValue="kakao">
<isEqual property="snsSite" compareValue="kakao"> <![CDATA[
<![CDATA[ AND KAKAO_EMAIL = #snsEmail#
AND KAKAO_EMAIL = #snsEmail# ]]>
]]> </isEqual>
</isEqual> <isEqual property="snsSite" compareValue="naver">
<isEqual property="snsSite" compareValue="naver"> <![CDATA[
<![CDATA[ AND NAVER_EMAIL = #snsEmail#
AND NAVER_EMAIL = #snsEmail# ]]>
]]> </isEqual>
</isEqual> </select>
</select>
<update id="loginDAO.updateSnsLink" parameterClass="loginVO">
<update id="loginDAO.updateSnsLink" parameterClass="loginVO"> UPDATE
UPDATE LETTNEMPLYRINFO
LETTNEMPLYRINFO SET
SET <isEqual property="snsSite" compareValue="kakao">
<isEqual property="snsSite" compareValue="kakao"> KAKAO_ID = #snsId#
KAKAO_ID = #snsId# , KAKAO_EMAIL = #snsId#
, KAKAO_EMAIL = #snsId# </isEqual>
</isEqual> <isEqual property="snsSite" compareValue="kakao">
<isEqual property="snsSite" compareValue="kakao"> KAKAO_ID = #snsId#
KAKAO_ID = #snsId# , KAKAO_EMAIL = #snsId#
, KAKAO_EMAIL = #snsId# </isEqual>
</isEqual> WHERE
WHERE EMPLYR_ID = #id#
EMPLYR_ID = #id# </update>
</update>
<!-- 인증서 로그인
<!-- 인증서 로그인 <select id="loginDAO.actionCrtfctLogin" resultMap="login">
<select id="loginDAO.actionCrtfctLogin" resultMap="login"> <![CDATA[
<![CDATA[ SELECT emplyr_id AS id
SELECT emplyr_id AS id , USER_NM AS name
, USER_NM AS name , password AS password
, password AS password , ihidnum AS ihidNum
, ihidnum AS ihidNum , email_adres AS email
, email_adres AS email , 'USR' AS userSe
, 'USR' AS userSe , orgnzt_id AS orgnztId
, orgnzt_id AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId FROM LETTNEMPLYRINFO
FROM LETTNEMPLYRINFO WHERE sub_dn = #dn#
WHERE sub_dn = #dn# ]]>
]]> </select>
</select> -->
--> <!-- 아이디 찾기
<!-- 아이디 찾기 <select id="loginDAO.searchId" resultMap="id">
<select id="loginDAO.searchId" resultMap="id"> <isEqual property="userSe" compareValue="GNR">
<isEqual property="userSe" compareValue="GNR"> <![CDATA[
<![CDATA[ SELECT mber_id AS id
SELECT mber_id AS id FROM LETTNGNRLMBER
FROM LETTNGNRLMBER WHERE mber_nm = #name#
WHERE mber_nm = #name# AND mber_email_adres = #email#
AND mber_email_adres = #email# AND mber_sttus = 'P'
AND mber_sttus = 'P' ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="ENT">
<isEqual property="userSe" compareValue="ENT"> <![CDATA[
<![CDATA[ SELECT entrprsmber_id AS id
SELECT entrprsmber_id AS id FROM LETTNENTRPRSMBER
FROM LETTNENTRPRSMBER WHERE cmpny_nm = #name#
WHERE cmpny_nm = #name# AND applcnt_email_adres = #email#
AND applcnt_email_adres = #email# AND entrprs_mber_sttus = 'P'
AND entrprs_mber_sttus = 'P' ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ SELECT emplyr_id AS id
SELECT emplyr_id AS id FROM LETTNEMPLYRINFO
FROM LETTNEMPLYRINFO WHERE USER_NM = #name#
WHERE USER_NM = #name# AND email_adres = #email#
AND email_adres = #email# AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' ]]>
]]> </isEqual>
</isEqual> </select>
</select> -->
--> <!-- 비밀번호 찾기
<!-- 비밀번호 찾기 <select id="loginDAO.searchPassword" resultMap="password">
<select id="loginDAO.searchPassword" resultMap="password"> <isEqual property="userSe" compareValue="GNR">
<isEqual property="userSe" compareValue="GNR"> <![CDATA[
<![CDATA[ SELECT password AS password
SELECT password AS password FROM LETTNGNRLMBER
FROM LETTNGNRLMBER WHERE mber_id = #id#
WHERE mber_id = #id# AND mber_nm = #name#
AND mber_nm = #name# AND mber_email_adres = #email#
AND mber_email_adres = #email# AND password_hint = #passwordHint#
AND password_hint = #passwordHint# AND password_cnsr = #passwordCnsr#
AND password_cnsr = #passwordCnsr# AND mber_sttus = 'P'
AND mber_sttus = 'P' ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="ENT">
<isEqual property="userSe" compareValue="ENT"> <![CDATA[
<![CDATA[ SELECT entrprs_mber_password AS password
SELECT entrprs_mber_password AS password FROM LETTNENTRPRSMBER
FROM LETTNENTRPRSMBER WHERE entrprsmber_id = #id#
WHERE entrprsmber_id = #id# AND cmpny_nm = #name#
AND cmpny_nm = #name# AND applcnt_email_adres = #email#
AND applcnt_email_adres = #email# AND entrprs_mber_password_hint = #passwordHint#
AND entrprs_mber_password_hint = #passwordHint# AND entrprs_mber_password_cnsr = #passwordCnsr#
AND entrprs_mber_password_cnsr = #passwordCnsr# AND entrprs_mber_sttus = 'P'
AND entrprs_mber_sttus = 'P' ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ SELECT password AS password
SELECT password AS password FROM LETTNEMPLYRINFO
FROM LETTNEMPLYRINFO WHERE emplyr_id = #id#
WHERE emplyr_id = #id# AND USER_NM = #name#
AND USER_NM = #name# AND email_adres = #email#
AND email_adres = #email# AND password_hint = #passwordHint#
AND password_hint = #passwordHint# AND password_cnsr = #passwordCnsr#
AND password_cnsr = #passwordCnsr# AND emplyr_sttus_code = 'P'
AND emplyr_sttus_code = 'P' ]]>
]]> </isEqual>
</isEqual> </select>
</select> -->
--> <!-- 변경된 비밀번호를 저장
<!-- 변경된 비밀번호를 저장 <update id="loginDAO.updatePassword">
<update id="loginDAO.updatePassword"> <isEqual property="userSe" compareValue="GNR">
<isEqual property="userSe" compareValue="GNR"> <![CDATA[
<![CDATA[ UPDATE LETTNGNRLMBER
UPDATE LETTNGNRLMBER SET password = #password#
SET password = #password# WHERE mber_id = #id#
WHERE mber_id = #id# ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="ENT">
<isEqual property="userSe" compareValue="ENT"> <![CDATA[
<![CDATA[ UPDATE LETTNENTRPRSMBER
UPDATE LETTNENTRPRSMBER SET entrprs_mber_password = #password#
SET entrprs_mber_password = #password# WHERE entrprsmber_id = #id#
WHERE entrprsmber_id = #id# ]]>
]]> </isEqual>
</isEqual> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ UPDATE LETTNEMPLYRINFO
UPDATE LETTNEMPLYRINFO SET password = #password#
SET password = #password# WHERE emplyr_id = #id#
WHERE emplyr_id = #id# ]]>
]]> </isEqual>
</isEqual> </update>
</update> -->
-->
<!-- 사용자 권한 조회 -->
<!-- 사용자 권한 조회 --> <select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" >
<select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" > <![CDATA[
<![CDATA[ SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY
SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID AND B.USER_ID = #id#
AND B.USER_ID = #id# ]]>
]]> </select>
</select>
<!-- 일반 로그인 사이트별-->
<!-- 일반 로그인 사이트별--> <select id="loginDAO.siteActionLogin" resultMap="login">
<select id="loginDAO.siteActionLogin" resultMap="login"> <isEqual property="userSe" compareValue="USR">
<isEqual property="userSe" compareValue="USR"> <![CDATA[
<![CDATA[ SELECT EMPLYR_ID AS id
SELECT EMPLYR_ID AS id , USER_NM AS name
, USER_NM AS name , PASSWORD AS password
, PASSWORD AS password , IHIDNUM AS ihidNum
, IHIDNUM AS ihidNum , EMAIL_ADRES AS email
, EMAIL_ADRES AS email , 'USR' AS userSe
, 'USR' AS userSe , ORGNZT_ID AS orgnztId
, ORGNZT_ID AS orgnztId , ESNTL_ID AS uniqId
, ESNTL_ID AS uniqId , PASS_MISS AS passMiss
, PASS_MISS AS passMiss , EMPLYR_STTUS_CODE AS emplyrSttusCode
, EMPLYR_STTUS_CODE AS emplyrSttusCode FROM LETTNEMPLYRINFO a
FROM LETTNEMPLYRINFO a WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# AND PASSWORD = #password#
AND PASSWORD = #password# AND EMPLYR_STTUS_CODE = 'P'
AND EMPLYR_STTUS_CODE = 'P' ]]>
]]> <isEmpty property="statusAll">
<isEmpty property="statusAll"> AND EMPLYR_STTUS_CODE = 'P'
AND EMPLYR_STTUS_CODE = 'P' </isEmpty>
</isEmpty> </isEqual>
</isEqual> </select>
</select>
<!-- 유저 권한 목록 조회 by USER_ID -->
<!-- 유저 권한 목록 조회 by USER_ID --> <select id="loginDAO.selectAuthorities" resultClass="EgovMap">
<select id="loginDAO.selectAuthorities" resultClass="EgovMap"> <![CDATA[
<![CDATA[ /* WITH AA AS ( */
/* WITH AA AS ( */ SELECT AUTHOR_CODE FROM LETTNEMPLYRSCRTYESTBS
SELECT AUTHOR_CODE FROM LETTNEMPLYRSCRTYESTBS WHERE SCRTY_DTRMN_TRGET_ID =
WHERE SCRTY_DTRMN_TRGET_ID = (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_ID = (
(SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_ID = ( SELECT EMPLYR_ID FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = #id# /* AND EMPLYR_CONDITION = 1 */
SELECT EMPLYR_ID FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = #id# /* AND EMPLYR_CONDITION = 1 */ )
) )
) /*
/* )
) SELECT AUTHOR_CODE AS "authorCode" FROM AA
SELECT AUTHOR_CODE AS "authorCode" FROM AA UNION ALL
UNION ALL SELECT PARNTS_ROLE AS "authorCode" FROM LETTNROLES_HIERARCHY
SELECT PARNTS_ROLE AS "authorCode" FROM LETTNROLES_HIERARCHY CONNECT BY PRIOR PARNTS_ROLE = CHLDRN_ROLE
CONNECT BY PRIOR PARNTS_ROLE = CHLDRN_ROLE START WITH CHLDRN_ROLE = (SELECT AUTHOR_CODE FROM AA)
START WITH CHLDRN_ROLE = (SELECT AUTHOR_CODE FROM AA) */
*/ ]]>
]]> </select>
</select>
<update id="loginDAO.updatePassMissPlus" parameterClass="loginVO">
<update id="loginDAO.updatePassMissPlus" parameterClass="loginVO"> UPDATE LETTNEMPLYRINFO
UPDATE LETTNEMPLYRINFO SET PASS_MISS = PASS_MISS+1
SET PASS_MISS = PASS_MISS+1 WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# </update>
</update>
<update id="loginDAO.updatePassMissReset" parameterClass="loginVO">
<update id="loginDAO.updatePassMissReset" parameterClass="loginVO"> UPDATE LETTNEMPLYRINFO
UPDATE LETTNEMPLYRINFO SET PASS_MISS = 0
SET PASS_MISS = 0 WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# </update>
</update>
<update id="loginDAO.updateEmplyrSttusCode" parameterClass="loginVO">
<update id="loginDAO.updateEmplyrSttusCode" parameterClass="loginVO"> UPDATE LETTNEMPLYRINFO
UPDATE LETTNEMPLYRINFO SET EMPLYR_STTUS_CODE = #emplyrSttusCode#
SET EMPLYR_STTUS_CODE = #emplyrSttusCode# <isEqual property="emplyrSttusCode" compareValue="D"> /**삭제의 경우 삭제 일시 넣어줌 */
<isEqual property="emplyrSttusCode" compareValue="D"> /**삭제의 경우 삭제 일시 넣어줌 */ , WITHDRAW_DE = now()
, WITHDRAW_DE = now() </isEqual>
</isEqual> <isNotEqual property="emplyrSttusCode" compareValue="D"> /**삭제 아닌경우 삭제 일시 없애줌 */
<isNotEqual property="emplyrSttusCode" compareValue="D"> /**삭제 아닌경우 삭제 일시 없애줌 */ , WITHDRAW_DE = null
, WITHDRAW_DE = null </isNotEqual>
</isNotEqual> WHERE EMPLYR_ID = #id#
WHERE EMPLYR_ID = #id# </update>
</update> </sqlMap>
</sqlMap>

View File

@ -1,494 +1,501 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="LoginUsr"> <sqlMap namespace="LoginUsr">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/> <typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="loginVO" type="kcc.com.cmm.LoginVO"/> <typeAlias alias="loginVO" type="kcc.com.cmm.LoginVO"/>
<!-- 로그인 처리를 위한 resultMap --> <!-- 로그인 처리를 위한 resultMap -->
<resultMap id="login" class="kcc.com.cmm.LoginVO"> <resultMap id="login" class="kcc.com.cmm.LoginVO">
<result property="id" column="id" columnIndex="1"/> <result property="id" column="id" columnIndex="1"/>
<result property="name" column="name" columnIndex="2"/> <result property="name" column="name" columnIndex="2"/>
<result property="ihidNum" column="ihidNum" columnIndex="3"/> <result property="ihidNum" column="ihidNum" columnIndex="3"/>
<result property="email" column="email" columnIndex="4"/> <result property="email" column="email" columnIndex="4"/>
<result property="password" column="password" columnIndex="5"/> <result property="password" column="password" columnIndex="5"/>
<result property="userSe" column="userSe" columnIndex="6"/> <result property="userSe" column="userSe" columnIndex="6"/>
<result property="orgnztId" column="orgnztId" columnIndex="7"/> <result property="orgnztId" column="orgnztId" columnIndex="7"/>
<result property="uniqId" column="uniqId" columnIndex="8"/> <result property="uniqId" column="uniqId" columnIndex="8"/>
<result property="passMiss" column="passMiss" columnIndex="9"/> <result property="passMiss" column="passMiss" columnIndex="9"/>
<result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/> <result property="emplyrSttusCode" column="emplyrSttusCode" columnIndex="10"/>
<result property="membCelnum" column="membCelnum" columnIndex="11"/> <result property="membCelnum" column="membCelnum" columnIndex="11"/>
<result property="membBirth" column="membBirth" columnIndex="12"/> <result property="membBirth" column="membBirth" columnIndex="12"/>
</resultMap> <result property="userWork" column="userWork" columnIndex="13"/>
</resultMap>
<!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 -->
<select id="loginDAO.actionLogin" resultMap="login"> <!-- SSO용 ESNTL_ID를 이용한 로그인처리 (210818 이준호) GNR -> 일반회원, USR -> 업무담당자 -->
<!-- 일반회원 --> <select id="loginDAO.actionLogin" resultMap="login">
<isNotNull property="userSe"> /*loginDAO.actionLogin*/
<isEqual property="userSe" compareValue="GNR"> <!-- 일반회원 -->
SELECT mber_id AS id <isNotNull property="userSe">
, mber_nm AS name <isEqual property="userSe" compareValue="GNR">
, password AS password SELECT mber_id AS id
, ihidNum AS ihidNum , mber_nm AS name
, mber_email_adres AS email , password AS password
, 'GNR' AS userSe , ihidNum AS ihidNum
, '-' AS orgnztId , mber_email_adres AS email
, ESNTL_ID AS uniqId , 'GNR' AS userSe
, 0 AS passMiss , '-' AS orgnztId
, mber_sttus AS emplyrSttusCode , ESNTL_ID AS uniqId
, mbtlnum AS membCelnum , 0 AS passMiss
, birth_day AS membBirth , mber_sttus AS emplyrSttusCode
, mbtlnum AS membCelnum
FROM lettngnrlmber a , birth_day AS membBirth
WHERE mber_id = #id#
AND PASSWORD = #password# FROM lettngnrlmber a
<isEmpty property="statusAll"> WHERE mber_id = #id#
AND emplyr_sttus_code = 'P' AND PASSWORD = #password#
</isEmpty> <isEmpty property="statusAll">
</isEqual> AND emplyr_sttus_code = 'P'
<!-- 업무사용자 --> </isEmpty>
<isEqual property="userSe" compareValue="USR"> </isEqual>
SELECT EMPLYR_ID AS id <!-- 업무사용자 -->
, USER_NM AS name <isEqual property="userSe" compareValue="USR">
, PASSWORD AS password SELECT EMPLYR_ID AS id
, IHIDNUM AS ihidNum , USER_NM AS name
, EMAIL_ADRES AS email , PASSWORD AS password
, 'USR' AS userSe , IHIDNUM AS ihidNum
, ORGNZT_ID AS orgnztId , EMAIL_ADRES AS email
, ESNTL_ID AS uniqId , 'USR' AS userSe
, PASS_MISS AS passMiss , ORGNZT_ID AS orgnztId
, EMPLYR_STTUS_CODE AS emplyrSttusCode , ESNTL_ID AS uniqId
, mbtlnum AS membCelnum , PASS_MISS AS passMiss
, '' AS membBirth , EMPLYR_STTUS_CODE AS emplyrSttusCode
FROM LETTNEMPLYRINFO a , mbtlnum AS membCelnum
WHERE EMPLYR_ID = #id# , '' AS membBirth
AND PASSWORD = #password# , user_work AS userWork
<isEmpty property="statusAll"> FROM LETTNEMPLYRINFO a
AND emplyr_sttus_code = 'P' WHERE EMPLYR_ID = #id#
</isEmpty> AND PASSWORD = #password#
</isEqual> <isEmpty property="statusAll">
</isNotNull> AND emplyr_sttus_code = 'P'
</select> </isEmpty>
</isEqual>
<!-- 개발자 아이디 선택용 --> </isNotNull>
<select id="loginDAO.actionLoginDev" resultMap="login"> </select>
<!-- 일반회원 loginDAO.actionLoginDev -->
<isNotNull property="userSe"> <!-- 개발자 아이디 선택용 -->
<isEqual property="userSe" compareValue="GNR"> <select id="loginDAO.actionLoginDev" resultMap="login">
SELECT mber_id AS id /*loginDAO.actionLoginDev*/
, mber_nm AS name <!-- 일반회원 loginDAO.actionLoginDev -->
, password AS password <isNotNull property="userSe">
, ihidNum AS ihidNum <isEqual property="userSe" compareValue="GNR">
, mber_email_adres AS email SELECT mber_id AS id
, 'GNR' AS userSe , mber_nm AS name
, '-' AS orgnztId , password AS password
, ESNTL_ID AS uniqId , ihidNum AS ihidNum
, 0 AS passMiss , mber_email_adres AS email
, mber_sttus AS emplyrSttusCode , 'GNR' AS userSe
, mbtlnum AS membCelnum , '-' AS orgnztId
, birth_day AS membBirth , ESNTL_ID AS uniqId
, 0 AS passMiss
FROM lettngnrlmber a , mber_sttus AS emplyrSttusCode
WHERE mber_seq = #id# , mbtlnum AS membCelnum
<isEmpty property="statusAll"> , birth_day AS membBirth
AND emplyr_sttus_code = 'P'
</isEmpty> FROM lettngnrlmber a
</isEqual> WHERE mber_seq = #id#
<!-- 업무사용자 --> <isEmpty property="statusAll">
<isEqual property="userSe" compareValue="USR"> AND emplyr_sttus_code = 'P'
SELECT EMPLYR_ID AS id </isEmpty>
, USER_NM AS name </isEqual>
, PASSWORD AS password <!-- 업무사용자 -->
, IHIDNUM AS ihidNum <isEqual property="userSe" compareValue="USR">
, EMAIL_ADRES AS email SELECT EMPLYR_ID AS id
, 'USR' AS userSe , USER_NM AS name
, ORGNZT_ID AS orgnztId , PASSWORD AS password
, ESNTL_ID AS uniqId , IHIDNUM AS ihidNum
, PASS_MISS AS passMiss , EMAIL_ADRES AS email
, EMPLYR_STTUS_CODE AS emplyrSttusCode , 'USR' AS userSe
, mbtlnum AS membCelnum , ORGNZT_ID AS orgnztId
, '' AS membBirth , ESNTL_ID AS uniqId
FROM LETTNEMPLYRINFO a , PASS_MISS AS passMiss
WHERE EMPLYR_ID = #id# , EMPLYR_STTUS_CODE AS emplyrSttusCode
<isEmpty property="statusAll"> , mbtlnum AS membCelnum
AND emplyr_sttus_code = 'P' , '' AS membBirth
</isEmpty> , user_work AS userWork
</isEqual> FROM LETTNEMPLYRINFO a
</isNotNull> WHERE EMPLYR_ID = #id#
</select> <isEmpty property="statusAll">
AND emplyr_sttus_code = 'P'
<!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 --> </isEmpty>
<select id="loginDAO.actionLoginMberId" resultMap="login"> </isEqual>
<!-- 일반회원 loginDAO.actionLoginDev --> </isNotNull>
<isNotNull property="userSe"> </select>
<isEqual property="userSe" compareValue="GNR">
SELECT mber_id AS id <!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 -->
, mber_nm AS name <select id="loginDAO.actionLoginMberId" resultMap="login">
, password AS password /*loginDAO.actionLoginMberId*/
, ihidNum AS ihidNum <!-- 일반회원 loginDAO.actionLoginDev -->
, mber_email_adres AS email <isNotNull property="userSe">
, 'GNR' AS userSe <isEqual property="userSe" compareValue="GNR">
, '-' AS orgnztId SELECT mber_id AS id
, ESNTL_ID AS uniqId , mber_nm AS name
, 0 AS passMiss , password AS password
, mber_sttus AS emplyrSttusCode , ihidNum AS ihidNum
, mbtlnum AS membCelnum , mber_email_adres AS email
, birth_day AS membBirth , 'GNR' AS userSe
, '-' AS orgnztId
FROM lettngnrlmber a , ESNTL_ID AS uniqId
WHERE mber_id = #id# , 0 AS passMiss
<isEmpty property="statusAll"> , mber_sttus AS emplyrSttusCode
AND emplyr_sttus_code = 'P' , mbtlnum AS membCelnum
</isEmpty> , birth_day AS membBirth
</isEqual>
<!-- 업무사용자 --> FROM lettngnrlmber a
<isEqual property="userSe" compareValue="USR"> WHERE mber_id = #id#
SELECT EMPLYR_ID AS id <isEmpty property="statusAll">
, USER_NM AS name AND emplyr_sttus_code = 'P'
, PASSWORD AS password </isEmpty>
, IHIDNUM AS ihidNum </isEqual>
, EMAIL_ADRES AS email <!-- 업무사용자 -->
, 'USR' AS userSe <isEqual property="userSe" compareValue="USR">
, ORGNZT_ID AS orgnztId SELECT EMPLYR_ID AS id
, ESNTL_ID AS uniqId , USER_NM AS name
, PASS_MISS AS passMiss , PASSWORD AS password
, EMPLYR_STTUS_CODE AS emplyrSttusCode , IHIDNUM AS ihidNum
, mbtlnum AS membCelnum , EMAIL_ADRES AS email
, '' AS membBirth , 'USR' AS userSe
FROM LETTNEMPLYRINFO a , ORGNZT_ID AS orgnztId
WHERE EMPLYR_ID = #id# , ESNTL_ID AS uniqId
<isEmpty property="statusAll"> , PASS_MISS AS passMiss
AND emplyr_sttus_code = 'P' , EMPLYR_STTUS_CODE AS emplyrSttusCode
</isEmpty> , mbtlnum AS membCelnum
</isEqual> , '' AS membBirth
</isNotNull> , user_work AS userWork
</select> FROM LETTNEMPLYRINFO a
WHERE EMPLYR_ID = #id#
<!-- 일반 로그인 --> <isEmpty property="statusAll">
<!-- <select id="loginDAO.actionLogin" resultMap="login"> AND emplyr_sttus_code = 'P'
<isEqual property="userSe" compareValue="USR"> </isEmpty>
<![CDATA[ </isEqual>
SELECT EMPLYR_ID AS id </isNotNull>
, USER_NM AS name </select>
, PASSWORD AS password
, IHIDNUM AS ihidNum <!-- 일반 로그인 -->
, EMAIL_ADRES AS email <!-- <select id="loginDAO.actionLogin" resultMap="login">
, 'USR' AS userSe <isEqual property="userSe" compareValue="USR">
, ORGNZT_ID AS orgnztId <![CDATA[
, ESNTL_ID AS uniqId SELECT EMPLYR_ID AS id
, PASS_MISS AS passMiss , USER_NM AS name
, EMPLYR_STTUS_CODE AS emplyrSttusCode , PASSWORD AS password
FROM LETTNEMPLYRINFO a , IHIDNUM AS ihidNum
WHERE EMPLYR_ID = #id# , EMAIL_ADRES AS email
AND PASSWORD = #password# , 'USR' AS userSe
]]> , ORGNZT_ID AS orgnztId
<isEmpty property="statusAll"> , ESNTL_ID AS uniqId
AND EMPLYR_STTUS_CODE = 'P' , PASS_MISS AS passMiss
</isEmpty> , EMPLYR_STTUS_CODE AS emplyrSttusCode
</isEqual> FROM LETTNEMPLYRINFO a
</select> --> WHERE EMPLYR_ID = #id#
AND PASSWORD = #password#
<!-- 등록된 sns 수량 조회 --> ]]>
<select id="loginDAO.selectSnsIdCount" parameterClass="loginVO" resultClass="int" > <isEmpty property="statusAll">
<![CDATA[ AND EMPLYR_STTUS_CODE = 'P'
SELECT </isEmpty>
COUNT(*) AS snsIdCnt </isEqual>
FROM </select> -->
LETTNEMPLYRINFO
WHERE <!-- 등록된 sns 수량 조회 -->
1=1 <select id="loginDAO.selectSnsIdCount" parameterClass="loginVO" resultClass="int" >
]]> <![CDATA[
<isEqual property="snsSite" compareValue="kakao"> SELECT
<![CDATA[ COUNT(*) AS snsIdCnt
AND KAKAO_ID =#snsId# FROM
]]> LETTNEMPLYRINFO
</isEqual> WHERE
<isEqual property="snsSite" compareValue="naver"> 1=1
<![CDATA[ ]]>
AND NAVER_ID =#snsId# <isEqual property="snsSite" compareValue="kakao">
]]> <![CDATA[
</isEqual> AND KAKAO_ID =#snsId#
</select> ]]>
</isEqual>
<!-- 등록된 sns 수량 조회 --> <isEqual property="snsSite" compareValue="naver">
<select id="loginDAO.selectSnsId" parameterClass="loginVO" resultClass="loginVO" > <![CDATA[
<![CDATA[ AND NAVER_ID =#snsId#
SELECT ]]>
EMPLYR_ID AS id , </isEqual>
USER_NM AS name , </select>
PASSWORD AS password ,
IHIDNUM AS ihidNum , <!-- 등록된 sns 수량 조회 -->
EMAIL_ADRES AS email <select id="loginDAO.selectSnsId" parameterClass="loginVO" resultClass="loginVO" >
FROM <![CDATA[
LETTNEMPLYRINFO SELECT
WHERE EMPLYR_ID AS id ,
1=1 USER_NM AS name ,
]]> PASSWORD AS password ,
<isEqual property="snsSite" compareValue="kakao"> IHIDNUM AS ihidNum ,
<![CDATA[ EMAIL_ADRES AS email
AND KAKAO_EMAIL = #snsEmail# FROM
]]> LETTNEMPLYRINFO
</isEqual> WHERE
<isEqual property="snsSite" compareValue="naver"> 1=1
<![CDATA[ ]]>
AND NAVER_EMAIL = #snsEmail# <isEqual property="snsSite" compareValue="kakao">
]]> <![CDATA[
</isEqual> AND KAKAO_EMAIL = #snsEmail#
</select> ]]>
</isEqual>
<update id="loginDAO.updateSnsLink" parameterClass="loginVO"> <isEqual property="snsSite" compareValue="naver">
UPDATE <![CDATA[
LETTNEMPLYRINFO AND NAVER_EMAIL = #snsEmail#
SET ]]>
<isEqual property="snsSite" compareValue="kakao"> </isEqual>
KAKAO_ID = #snsId# </select>
, KAKAO_EMAIL = #snsId#
</isEqual> <update id="loginDAO.updateSnsLink" parameterClass="loginVO">
<isEqual property="snsSite" compareValue="kakao"> UPDATE
KAKAO_ID = #snsId# LETTNEMPLYRINFO
, KAKAO_EMAIL = #snsId# SET
</isEqual> <isEqual property="snsSite" compareValue="kakao">
WHERE KAKAO_ID = #snsId#
EMPLYR_ID = #id# , KAKAO_EMAIL = #snsId#
</update> </isEqual>
<isEqual property="snsSite" compareValue="kakao">
<!-- 인증서 로그인 KAKAO_ID = #snsId#
<select id="loginDAO.actionCrtfctLogin" resultMap="login"> , KAKAO_EMAIL = #snsId#
<![CDATA[ </isEqual>
SELECT emplyr_id AS id WHERE
, USER_NM AS name EMPLYR_ID = #id#
, password AS password </update>
, ihidnum AS ihidNum
, email_adres AS email <!-- 인증서 로그인
, 'USR' AS userSe <select id="loginDAO.actionCrtfctLogin" resultMap="login">
, orgnzt_id AS orgnztId <![CDATA[
, ESNTL_ID AS uniqId SELECT emplyr_id AS id
FROM LETTNEMPLYRINFO , USER_NM AS name
WHERE sub_dn = #dn# , password AS password
]]> , ihidnum AS ihidNum
</select> , email_adres AS email
--> , 'USR' AS userSe
<!-- 아이디 찾기 , orgnzt_id AS orgnztId
<select id="loginDAO.searchId" resultMap="id"> , ESNTL_ID AS uniqId
<isEqual property="userSe" compareValue="GNR"> FROM LETTNEMPLYRINFO
<![CDATA[ WHERE sub_dn = #dn#
SELECT mber_id AS id ]]>
FROM LETTNGNRLMBER </select>
WHERE mber_nm = #name# -->
AND mber_email_adres = #email# <!-- 아이디 찾기
AND mber_sttus = 'P' <select id="loginDAO.searchId" resultMap="id">
]]> <isEqual property="userSe" compareValue="GNR">
</isEqual> <![CDATA[
<isEqual property="userSe" compareValue="ENT"> SELECT mber_id AS id
<![CDATA[ FROM LETTNGNRLMBER
SELECT entrprsmber_id AS id WHERE mber_nm = #name#
FROM LETTNENTRPRSMBER AND mber_email_adres = #email#
WHERE cmpny_nm = #name# AND mber_sttus = 'P'
AND applcnt_email_adres = #email# ]]>
AND entrprs_mber_sttus = 'P' </isEqual>
]]> <isEqual property="userSe" compareValue="ENT">
</isEqual> <![CDATA[
<isEqual property="userSe" compareValue="USR"> SELECT entrprsmber_id AS id
<![CDATA[ FROM LETTNENTRPRSMBER
SELECT emplyr_id AS id WHERE cmpny_nm = #name#
FROM LETTNEMPLYRINFO AND applcnt_email_adres = #email#
WHERE USER_NM = #name# AND entrprs_mber_sttus = 'P'
AND email_adres = #email# ]]>
AND emplyr_sttus_code = 'P' </isEqual>
]]> <isEqual property="userSe" compareValue="USR">
</isEqual> <![CDATA[
</select> SELECT emplyr_id AS id
--> FROM LETTNEMPLYRINFO
<!-- 비밀번호 찾기 WHERE USER_NM = #name#
<select id="loginDAO.searchPassword" resultMap="password"> AND email_adres = #email#
<isEqual property="userSe" compareValue="GNR"> AND emplyr_sttus_code = 'P'
<![CDATA[ ]]>
SELECT password AS password </isEqual>
FROM LETTNGNRLMBER </select>
WHERE mber_id = #id# -->
AND mber_nm = #name# <!-- 비밀번호 찾기
AND mber_email_adres = #email# <select id="loginDAO.searchPassword" resultMap="password">
AND password_hint = #passwordHint# <isEqual property="userSe" compareValue="GNR">
AND password_cnsr = #passwordCnsr# <![CDATA[
AND mber_sttus = 'P' SELECT password AS password
]]> FROM LETTNGNRLMBER
</isEqual> WHERE mber_id = #id#
<isEqual property="userSe" compareValue="ENT"> AND mber_nm = #name#
<![CDATA[ AND mber_email_adres = #email#
SELECT entrprs_mber_password AS password AND password_hint = #passwordHint#
FROM LETTNENTRPRSMBER AND password_cnsr = #passwordCnsr#
WHERE entrprsmber_id = #id# AND mber_sttus = 'P'
AND cmpny_nm = #name# ]]>
AND applcnt_email_adres = #email# </isEqual>
AND entrprs_mber_password_hint = #passwordHint# <isEqual property="userSe" compareValue="ENT">
AND entrprs_mber_password_cnsr = #passwordCnsr# <![CDATA[
AND entrprs_mber_sttus = 'P' SELECT entrprs_mber_password AS password
]]> FROM LETTNENTRPRSMBER
</isEqual> WHERE entrprsmber_id = #id#
<isEqual property="userSe" compareValue="USR"> AND cmpny_nm = #name#
<![CDATA[ AND applcnt_email_adres = #email#
SELECT password AS password AND entrprs_mber_password_hint = #passwordHint#
FROM LETTNEMPLYRINFO AND entrprs_mber_password_cnsr = #passwordCnsr#
WHERE emplyr_id = #id# AND entrprs_mber_sttus = 'P'
AND USER_NM = #name# ]]>
AND email_adres = #email# </isEqual>
AND password_hint = #passwordHint# <isEqual property="userSe" compareValue="USR">
AND password_cnsr = #passwordCnsr# <![CDATA[
AND emplyr_sttus_code = 'P' SELECT password AS password
]]> FROM LETTNEMPLYRINFO
</isEqual> WHERE emplyr_id = #id#
</select> AND USER_NM = #name#
--> AND email_adres = #email#
<!-- 변경된 비밀번호를 저장 AND password_hint = #passwordHint#
<update id="loginDAO.updatePassword"> AND password_cnsr = #passwordCnsr#
<isEqual property="userSe" compareValue="GNR"> AND emplyr_sttus_code = 'P'
<![CDATA[ ]]>
UPDATE LETTNGNRLMBER </isEqual>
SET password = #password# </select>
WHERE mber_id = #id# -->
]]> <!-- 변경된 비밀번호를 저장
</isEqual> <update id="loginDAO.updatePassword">
<isEqual property="userSe" compareValue="ENT"> <isEqual property="userSe" compareValue="GNR">
<![CDATA[ <![CDATA[
UPDATE LETTNENTRPRSMBER UPDATE LETTNGNRLMBER
SET entrprs_mber_password = #password# SET password = #password#
WHERE entrprsmber_id = #id# WHERE mber_id = #id#
]]> ]]>
</isEqual> </isEqual>
<isEqual property="userSe" compareValue="USR"> <isEqual property="userSe" compareValue="ENT">
<![CDATA[ <![CDATA[
UPDATE LETTNEMPLYRINFO UPDATE LETTNENTRPRSMBER
SET password = #password# SET entrprs_mber_password = #password#
WHERE emplyr_id = #id# WHERE entrprsmber_id = #id#
]]> ]]>
</isEqual> </isEqual>
</update> <isEqual property="userSe" compareValue="USR">
--> <![CDATA[
UPDATE LETTNEMPLYRINFO
<!-- 사용자 권한 조회 --> SET password = #password#
<select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" > WHERE emplyr_id = #id#
<![CDATA[ ]]>
SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY </isEqual>
FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B </update>
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID -->
AND B.USER_ID = #id#
]]> <!-- 사용자 권한 조회 -->
</select> <select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" >
<![CDATA[
<!-- 일반 로그인 사이트별--> SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY
<select id="loginDAO.siteActionLogin" resultMap="login"> FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
<isEqual property="userSe" compareValue="USR"> WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID
<![CDATA[ AND B.USER_ID = #id#
SELECT EMPLYR_ID AS id ]]>
, USER_NM AS name </select>
, PASSWORD AS password
, IHIDNUM AS ihidNum <!-- 일반 로그인 사이트별-->
, EMAIL_ADRES AS email <select id="loginDAO.siteActionLogin" resultMap="login">
, 'USR' AS userSe <isEqual property="userSe" compareValue="USR">
, ORGNZT_ID AS orgnztId <![CDATA[
, ESNTL_ID AS uniqId SELECT EMPLYR_ID AS id
, PASS_MISS AS passMiss , USER_NM AS name
, EMPLYR_STTUS_CODE AS emplyrSttusCode , PASSWORD AS password
FROM LETTNEMPLYRINFO a , IHIDNUM AS ihidNum
WHERE EMPLYR_ID = #id# , EMAIL_ADRES AS email
AND PASSWORD = #password# , 'USR' AS userSe
AND EMPLYR_STTUS_CODE = 'P' , ORGNZT_ID AS orgnztId
]]> , ESNTL_ID AS uniqId
<isEmpty property="statusAll"> , PASS_MISS AS passMiss
AND EMPLYR_STTUS_CODE = 'P' , EMPLYR_STTUS_CODE AS emplyrSttusCode
</isEmpty> FROM LETTNEMPLYRINFO a
</isEqual> WHERE EMPLYR_ID = #id#
</select> AND PASSWORD = #password#
AND EMPLYR_STTUS_CODE = 'P'
<!-- 유저 권한 목록 조회 by USER_ID --> ]]>
<select id="loginDAO.selectAuthorities" resultClass="EgovMap"> <isEmpty property="statusAll">
/* loginDAO.selectAuthorities */ AND EMPLYR_STTUS_CODE = 'P'
<![CDATA[ </isEmpty>
/* WITH AA AS ( */ </isEqual>
SELECT AUTHOR_CODE FROM LETTNEMPLYRSCRTYESTBS </select>
WHERE SCRTY_DTRMN_TRGET_ID =
(SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_ID = ( <!-- 유저 권한 목록 조회 by USER_ID -->
SELECT EMPLYR_ID FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = #id# /* AND EMPLYR_CONDITION = 1 */ <select id="loginDAO.selectAuthorities" resultClass="EgovMap">
) /* loginDAO.selectAuthorities */
) <![CDATA[
/* /* WITH AA AS ( */
) SELECT AUTHOR_CODE FROM LETTNEMPLYRSCRTYESTBS
SELECT AUTHOR_CODE AS "authorCode" FROM AA WHERE SCRTY_DTRMN_TRGET_ID =
UNION ALL (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_ID = (
SELECT PARNTS_ROLE AS "authorCode" FROM LETTNROLES_HIERARCHY SELECT EMPLYR_ID FROM LETTNEMPLYRINFO WHERE EMPLYR_ID = #id# /* AND EMPLYR_CONDITION = 1 */
CONNECT BY PRIOR PARNTS_ROLE = CHLDRN_ROLE )
START WITH CHLDRN_ROLE = (SELECT AUTHOR_CODE FROM AA) )
*/ /*
]]> )
</select> SELECT AUTHOR_CODE AS "authorCode" FROM AA
UNION ALL
<update id="loginDAO.updatePassMissPlus" parameterClass="loginVO"> SELECT PARNTS_ROLE AS "authorCode" FROM LETTNROLES_HIERARCHY
UPDATE LETTNEMPLYRINFO CONNECT BY PRIOR PARNTS_ROLE = CHLDRN_ROLE
SET PASS_MISS = PASS_MISS+1 START WITH CHLDRN_ROLE = (SELECT AUTHOR_CODE FROM AA)
WHERE EMPLYR_ID = #id# */
</update> ]]>
</select>
<update id="loginDAO.updatePassMissReset" parameterClass="loginVO">
UPDATE LETTNEMPLYRINFO <update id="loginDAO.updatePassMissPlus" parameterClass="loginVO">
SET PASS_MISS = 0 UPDATE LETTNEMPLYRINFO
WHERE EMPLYR_ID = #id# SET PASS_MISS = PASS_MISS+1
</update> WHERE EMPLYR_ID = #id#
</update>
<update id="loginDAO.updateEmplyrSttusCode" parameterClass="loginVO">
UPDATE LETTNEMPLYRINFO <update id="loginDAO.updatePassMissReset" parameterClass="loginVO">
SET EMPLYR_STTUS_CODE = #emplyrSttusCode# UPDATE LETTNEMPLYRINFO
<isEqual property="emplyrSttusCode" compareValue="D"> /**삭제의 경우 삭제 일시 넣어줌 */ SET PASS_MISS = 0
, WITHDRAW_DE = now() WHERE EMPLYR_ID = #id#
</isEqual> </update>
<isNotEqual property="emplyrSttusCode" compareValue="D"> /**삭제 아닌경우 삭제 일시 없애줌 */
, WITHDRAW_DE = null <update id="loginDAO.updateEmplyrSttusCode" parameterClass="loginVO">
</isNotEqual> UPDATE LETTNEMPLYRINFO
WHERE EMPLYR_ID = #id# SET EMPLYR_STTUS_CODE = #emplyrSttusCode#
</update> <isEqual property="emplyrSttusCode" compareValue="D"> /**삭제의 경우 삭제 일시 넣어줌 */
<select id="loginDAO.APIActionLogin" resultMap="login"> , WITHDRAW_DE = now()
/* 임시.*NOT_SQL_LOG.* loginDAO.APIActionLogin */ </isEqual>
SELECT mber_id AS id <isNotEqual property="emplyrSttusCode" compareValue="D"> /**삭제 아닌경우 삭제 일시 없애줌 */
, mber_nm AS name , WITHDRAW_DE = null
, password AS password </isNotEqual>
, ihidNum AS ihidNum WHERE EMPLYR_ID = #id#
, mber_email_adres AS email </update>
, 'GNR' AS userSe <select id="loginDAO.APIActionLogin" resultMap="login">
, '-' AS orgnztId /* 임시.*NOT_SQL_LOG.* loginDAO.APIActionLogin */
, ESNTL_ID AS uniqId SELECT mber_id AS id
, 0 AS passMiss , mber_nm AS name
, mber_sttus AS emplyrSttusCode , password AS password
, mbtlnum AS membCelnum , ihidNum AS ihidNum
, birth_day AS membBirth , mber_email_adres AS email
, 'GNR' AS userSe
FROM lettngnrlmber a , '-' AS orgnztId
WHERE mber_id = #id# , ESNTL_ID AS uniqId
AND PASSWORD = #password# , 0 AS passMiss
<isEmpty property="statusAll"> , mber_sttus AS emplyrSttusCode
AND mber_sttus = 'P' , mbtlnum AS membCelnum
</isEmpty> , birth_day AS membBirth
</select>
<select id="loginDAO.selectOffeduMberChk" resultClass="loginVO"> FROM lettngnrlmber a
/* 임시.*NOT_SQL_LOG.* loginDAO.selectOffeduMberChk */ WHERE mber_id = #id#
SELECT mber_id AS user_id AND PASSWORD = #password#
, mber_seq AS key <isEmpty property="statusAll">
FROM lettngnrlmber a AND mber_sttus = 'P'
WHERE mber_id = #user_id# </isEmpty>
AND mber_seq = #key# </select>
</select> <select id="loginDAO.selectOffeduMberChk" resultClass="loginVO">
/* 임시.*NOT_SQL_LOG.* loginDAO.selectOffeduMberChk */
<update id="loginDAO.updateMberSeqKeyAjax" parameterClass="loginVO"> SELECT mber_id AS user_id
/* 임시.*NOT_SQL_LOG.* loginDAO.updateMberSeqKeyAjax*/ , mber_seq AS key
UPDATE LETTNGNRLMBER FROM lettngnrlmber a
SET mber_seq = #mberSeq# WHERE mber_id = #user_id#
WHERE mber_id = #id# AND mber_seq = #key#
</update> </select>
<update id="loginDAO.updateMberSeqKeyNull" parameterClass="loginVO"> <update id="loginDAO.updateMberSeqKeyAjax" parameterClass="loginVO">
/* 임시.*NOT_SQL_LOG.* loginDAO.updateMberSeqKeyNull*/ /* 임시.*NOT_SQL_LOG.* loginDAO.updateMberSeqKeyAjax*/
UPDATE LETTNGNRLMBER UPDATE LETTNGNRLMBER
SET mber_seq = '' SET mber_seq = #mberSeq#
WHERE mber_id = #user_id# WHERE mber_id = #id#
</update> </update>
</sqlMap>
<update id="loginDAO.updateMberSeqKeyNull" parameterClass="loginVO">
/* 임시.*NOT_SQL_LOG.* loginDAO.updateMberSeqKeyNull*/
UPDATE LETTNGNRLMBER
SET mber_seq = ''
WHERE mber_id = #user_id#
</update>
</sqlMap>

View File

@ -35,6 +35,7 @@
, req_nmbr , req_nmbr
, prsctr_nm , prsctr_nm
, req_state_cd , req_state_cd
, atch_file_id
</sql> </sql>
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
@ -62,6 +63,7 @@
, a.req_nmbr AS reqNmbr , a.req_nmbr AS reqNmbr
, a.prsctr_nm AS prsctrNm , a.prsctr_nm AS prsctrNm
, a.req_state_cd AS reqStateCd , a.req_state_cd AS reqStateCd
, a.atch_file_id AS atchFileId
</sql> </sql>
@ -93,6 +95,7 @@
, #reqNmbr# , #reqNmbr#
, #prsctrNm# , #prsctrNm#
, #reqStateCd# , #reqStateCd#
, #atchFileId#
) )
</insert> </insert>
@ -131,11 +134,21 @@
, sex = #sex# , sex = #sex#
, req_nmbr = #reqNmbr# , req_nmbr = #reqNmbr#
, prsctr_nm = #prsctrNm# , prsctr_nm = #prsctrNm#
, req_state_cd = #reqStateCd# , req_state_cd = #reqStateCd#
, atch_file_id = #atchFileId#
WHERE WHERE
sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd# sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
</update> </update>
<select id="cndtnTrgtInfoMngDAO.findCntreqNmber" resultClass="int" parameterClass="String">
SELECT
count(*)
FROM
vea_sspn_idmt_trgt
WHERE
req_nmbr LIKE #reqNmbrTemp# ;
</select>
<!-- 대상자 조회 후 대상자에 로그인 ID update --> <!-- 대상자 조회 후 대상자에 로그인 ID update -->
<update id="cndtnTrgtInfoMngDAO.updateUserId" parameterClass="CndtnPrcsInfoMngVO"> <update id="cndtnTrgtInfoMngDAO.updateUserId" parameterClass="CndtnPrcsInfoMngVO">
/* cndtnTrgtInfoMngDAO.updateSspnIdtmtTrgtOrd */ /* cndtnTrgtInfoMngDAO.updateSspnIdtmtTrgtOrd */
@ -164,6 +177,11 @@
AND a.EDU_STATE_CD = #eduStateCd# AND a.EDU_STATE_CD = #eduStateCd#
</isNotEmpty> </isNotEmpty>
/* 관할청 담당자를 위한 조건 */
<isNotEmpty property="searchCondition">
AND a.CMPTNT_ATHRT = #searchCondition#
</isNotEmpty>
/* 수료자 중복 리스트를 위한 조건문 */ /* 수료자 중복 리스트를 위한 조건문 */
<isNotEmpty property="trgtNm"> <isNotEmpty property="trgtNm">
AND a.TRGT_NM = #trgtNm# AND a.TRGT_NM = #trgtNm#

View File

@ -950,7 +950,7 @@
,LAST_UPDUSR_ID = #lastUpdusrId# ,LAST_UPDUSR_ID = #lastUpdusrId#
<isNotEmpty property="sbmtYn"> <isNotEmpty property="sbmtYn">
, SBMT_YN = #sbmtYn# , SBMT_YN = #sbmtYn#
, SBMT_PNTTM = IF(#sbmtYn# = 'Y', SYSDATE, NULL) , SBMT_PNTTM = CASE WHEN #sbmtYn# = 'Y' THEN SYSDATE ELSE NULL END
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="aprvlCd"> <isNotEmpty property="aprvlCd">
, APRVL_CD = #aprvlCd# , APRVL_CD = #aprvlCd#

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -303,7 +303,7 @@
<c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" /> <c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
</td> </td>
<td> <td>
<c:out value="${list.cmptntAthrt }" /> <ve:code codeId="VEA008" code="${list.cmptntAthrt }"/>
</td> </td>
<td> <td>
<c:out value="${list.dBirth }" /> <c:out value="${list.dBirth }" />
@ -334,7 +334,7 @@
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty list}"> <c:if test="${empty list}">
<tr><td colspan="3"><spring:message code="common.nodata.msg" /></td></tr> <tr><td colspan="11"><spring:message code="common.nodata.msg" /></td></tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>

View File

@ -29,7 +29,16 @@
<title>교육과정관리</title> <title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript"> <script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가 $(document).ready(function() {
//파일첨부관련 설정들===============================================
$(".btn_type01").on('click', function(){
$("#file_temp").click();
});
//파일첨부관련 설정들===============================================
});
function addPro() { function addPro() {
var addQuest = $(".addPro_wrap"); var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length; var questLen = addQuest.children("div").length;
@ -105,28 +114,36 @@
} }
var data = new FormData(document.getElementById("createForm")); var data = new FormData(document.getElementById("createForm"));
if(confirm("수정하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do'/>"; //첨부파일 등록 처리-step2
$.ajax({ _fileForm2.forEach(function(obj, idx) {
type:"POST", if (obj) data.append("file"+idx, obj.fileObj);
url: url, });
data: data,
dataType:'json', if(confirm("수정하시겠습니까?")){
async: false, var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtMdfyAjax.do'/>";
processData: false, $.ajax({
contentType: false, type:"POST",
cache: false, enctype: 'multipart/form-data',
success:function(returnData){ url: url,
if(returnData.result == "success"){ data: data,
alert("수정되었습니다."); dataType:'json',
fncGoList(); async: false,
} processData: false,
}, contentType: false,
error:function(request , status, error){ cache: false,
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); success:function(returnData){
if(returnData.result == "success"){
alert("수정되었습니다.");
fncGoList();
} }
}); },
} error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
} }
@ -147,7 +164,7 @@
} }
// 관할청 검사 // 관할청 검사
if($("input[name='cmptntAthrt']").val().trim() == ""){ if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요."); alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus(); $("input[name='cmptntAthrt']").focus();
return true; return true;
@ -181,11 +198,11 @@
} }
// 의뢰상태 검사 // 의뢰상태 검사
if($("#reqStateCd").val().trim() == ""){ /* if($("#reqStateCd").val().trim() == ""){
alert("의뢰상태를 입력해주세요."); alert("의뢰상태를 입력해주세요.");
$("input[name='reqStateCd']").focus(); $("input[name='reqStateCd']").focus();
return true; return true;
} } */
// 교육상태 검사 // 교육상태 검사
/* if($("input[name='eduStateCd']").val().trim() == ""){ /* if($("input[name='eduStateCd']").val().trim() == ""){
@ -219,6 +236,39 @@
listForm.submit(); listForm.submit();
} }
/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
function handleFileUpload(files,obj) //업로드 function
{
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
</script> </script>
</head> </head>
@ -227,6 +277,7 @@
</form:form> </form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post"> <form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="sspnIdtmtTrgtOrd" value="<c:out value='${info.sspnIdtmtTrgtOrd}' />"/> <input type="hidden" name="sspnIdtmtTrgtOrd" value="<c:out value='${info.sspnIdtmtTrgtOrd}' />"/>
<input type="hidden" name="atchFileId" value="<c:out value='${info.atchFileId}' />" />
<!-- cont --> <!-- cont -->
<div class="cont_wrap"> <div class="cont_wrap">
<div class="box"> <div class="box">
@ -281,7 +332,10 @@
<tr> <tr>
<th scope="row">관할청</th> <th scope="row">관할청</th>
<td> <td>
<input type="text" name="cmptntAthrt" value="<c:out value="${info.cmptntAthrt }" />" /> <ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="${info.cmptntAthrt }" defaultValue=""
defaultText='선택'
/>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -358,6 +412,87 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>첨부파일</p>
</th>
<td class="upload_area" colspan="3">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p>
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -0,0 +1,367 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : cndtnEduPrcsMngList.jsp
* @Description : 조건부 기소유예 과정관리 목록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
searchInit();
// 검색 select box
$('#searchStatus').change(function(){
$('#searchKeyword').val('');
$('#searchSmbtStartDt').val('');
$('#searchSmbtEndDt').val('');
if($(this).val() == 'frstRegistPnttm'){
$('#searchKeyword').hide();
$('#calendar').show();
}
if($(this).val() == 'trgt_nm'){
$('#searchKeyword').attr('placeholder', '이름을 입력해 주세요.');
$('#calendar').hide();
$('#searchKeyword').show();
}
if($(this).val() == 'd_birth'){
$('#searchKeyword').attr('placeholder', '생년월일을 입력해 주세요.');
$('#calendar').hide();
$('#searchKeyword').show();
}
});
});
function searchInit(){
var selecedTxt = $('#searchStatus option:checked').val();
console.log('selecedTxt : ', selecedTxt);
if(selecedTxt == 'trgt_nm' || selecedTxt == 'd_birth'){
$('#calendar').hide();
}else{
$('#searchKeyword').hide();
}
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
listForm.submit();
}
function fncGoDetail(sspnIdtmtTrgtOrd){
var detailForm = document.detailForm ;
detailForm.sspnIdtmtTrgtOrd.value = sspnIdtmtTrgtOrd;
detailForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do'/>";
detailForm.submit();
}
function fncCreate() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtReg.do'/>";
listForm.submit();
}
function fncDelete(prcsOrd){
document.listForm.prcsOrd.value = prcsOrd ;
var pageIndex = document.listForm.pageIndex.value;
if($(".listCount").length == '1'){
pageIndex = pageIndex -1;
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDeleteAjax.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("삭제되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
function fncSaveSort(prcsOrd, count){
var sortNo = $('#prcsSortNo'+count).val();
if(sortNo == ''){
alert("표시순서를 입력해 주세요.");
return false;
}
$('#prcsOrd').val(prcsOrd);
$('#prcsSortNo').val(sortNo);
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsSortUpdateAjax.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("저장되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
<title>교육과정관리</title>
</head>
<body>
<form id="detailForm" name="detailForm" method="post" >
<input type="hidden" id="sspnIdtmtTrgtOrd" name="sspnIdtmtTrgtOrd" value="" />
</form>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>대상자 목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">대상자 목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="tb_tit01">
<p>대상자 목록</p>
</div>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<div class="util_right">
<select name="searchStatus" id="searchStatus" class="sel_type1">
<option value="trgt_nm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'trgt_nm' }">selected="selected"</c:if>>이름</option>
<option value="d_birth" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'd_birth' }">selected="selected"</c:if>>생년월일</option>
<option value="frstRegistPnttm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'frstRegistPnttm' }">selected="selected"</c:if>>기간별</option>
</select>
<div id="calendar">
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="시작일" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${cndtnTrgtInfoMngVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="종료일" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${cndtnTrgtInfoMngVO.searchSmbtEndDt}">
</div>
</div>
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="이름을 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeyword}'/>">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '10' or cndtnTrgtInfoMngVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 2px">
<col style="width: 2px">
<col style="width: 2px">
<col style="width: 2px">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 2px">
<col style="width: 2px">
</colgroup>
<thead>
<tr>
<th>의뢰일</th>
<th>사건번호</th>
<th>관할청</th>
<th>생년월일</th>
<th>성명</th>
<th>성별</th>
<th>의뢰번호</th>
<th>의뢰상태</th>
<th>교육상태</th>
<th>주소</th>
<th>검사명</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount" onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;">
<%-- <td onclick="fncGoDetail('<c:out value="${list.sspnIdtmtTrgtOrd}"/>');" style="cursor:pointer;"> --%>
<%-- <c:out value='${list.prcsNm}'/> --%>
<!-- </td> -->
<td>
<c:set var="reqPnttm" value="${fn:substring(list.reqPnttm, 0, 10)}" />
<%-- <fmt:formatDate value="${list.reqPnttm }" pattern="yyyy-MM-dd" /> --%>
<c:out value="${reqPnttm }" />
</td>
<td>
<c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
</td>
<td>
<ve:code codeId="VEA008" code="${list.cmptntAthrt }"/>
</td>
<td>
<c:out value="${list.dBirth }" />
</td>
<td>
<c:out value="${list.trgtNm }" />
</td>
<td>
<ve:code codeId="COM014" code="${list.sex }"/>
</td>
<td>
<c:out value="${list.reqNmbr }" />
</td>
<td>
<ve:code codeId="VEA005" code="${list.reqStateCd }"/>
</td>
<td>
<ve:code codeId="VEA002" code="${list.eduStateCd }"/>
</td>
<c:set var="fullAddr" value="${list.addr} ${list.addrDetail}" />
<%-- <c:set var="fullAddr" value="${list.addr}" /> --%>
<td title="${fullAddr}">
${fn:length(fullAddr)> 5 ? fn:substring(fullAddr, 0, 5).concat('...') : ''}
</td>
<td>
<c:out value="${list.prsctrNm }" />
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="3"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
</div>
</div>
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -0,0 +1,518 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngMdfy.jsp
* @Description : 조건부기소유예 수정
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<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;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
if(fn_valChk())
{
return false;
}
var data = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-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);
}
});
}
}
function fn_valChk(){
// 의뢰일 검사
if($("#reqPnttm").val().trim() == ""){
alert("의뢰일을 입력해주세요.");
$("#reqPnttm").focus();
return true;
}
// 사건번호 검사
if($("input[name='vntNmbr']").val().trim() == ""){
alert("사건번호를 입력해주세요.");
$("input[name='vntNmbr']").focus();
return true;
}
// 관할청 검사
if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus();
return true;
}
if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){
alert("성별을 선택해주세요.");
$("#sex").focus();
return true;
}
// 성명 검사
if($("input[name='trgtNm']").val().trim() == ""){
alert("성명을 입력해주세요.");
$("input[name='trgtNm']").focus();
return true;
}
// 생년월일 검사
if($("#dBirth").val().trim() == ""){
alert("생년월일을 입력해주세요.");
$("#dBirth").focus();
return true;
}
// 의뢰번호 검사
if($("input[name='reqNmbr']").val().trim() == ""){
alert("의뢰번호를 입력해주세요.");
$("input[name='reqNmbr']").focus();
return true;
}
// 의뢰상태 검사
/* if($("#reqStateCd").val().trim() == ""){
alert("의뢰상태를 입력해주세요.");
$("input[name='reqStateCd']").focus();
return true;
} */
// 교육상태 검사
/* if($("input[name='eduStateCd']").val().trim() == ""){
alert("교육상태를 입력해주세요.");
$("input[name='eduStateCd']").focus();
return true;
}
*/
// 검사명 검사
if($("input[name='prsctrNm']").val().trim() == ""){
alert("검사명을 입력해주세요.");
$("input[name='prsctrNm']").focus();
return true;
}
// 주소 검사
if($("#post").val().trim() == "" || $("#addr").val().trim() == ""){
alert("주소를 입력해주세요.");
$("#post").focus();
return true;
}
return false; // 모든 검사를 통과하면 false 반환
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
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>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</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">
<!-- cont_tit -->
<div class="cont_tit">
<h2>대상자 수정</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">대상자 목록</span></li>
<li><span class="cur_nav">대상자 수정</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>대상자 수정</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">의뢰일</th>
<td>
<div id="calendar">
<div class="calendar_wrap">
<c:set var="reqPnttm" value="${fn:substring(info.reqPnttm, 0, 10)}" />
<input type="text" class="calendar" placeholder="의뢰일" title="의뢰일 선택" id="reqPnttm" name="reqPnttm" value="<c:out value="${reqPnttm }" />" />
</div>
</div>
</td>
</tr>
<tr>
<th scope="row">사건번호</th>
<td>
<input type="text" name="vntYear" style="width: 150px;margin-right: 10px;" value="<c:out value="${info.vntYear }" />"/>형제
<input type="text" name="vntNmbr" style="width: 150px;margin-left: 10px;" value="<c:out value="${info.vntNmbr }" />"/>
</td>
</tr>
<tr>
<th scope="row">관할청</th>
<td>
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="${info.cmptntAthrt }" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
<th scope="row">성별</th>
<td>
<%-- <c:set var="reqPnttm" value="<ve:code codeId="COM014" code="${info.sex }"/>" /> --%>
<ve:select codeId="COM014" name="sex" id="sex" css="class='sel_type1'"
selectedValue="${info.sex }" defaultValue=""
defaultText='선택'
/>
</td>
<th scope="row">연락처</th>
<td>
<input type="text" name="clphone" id="clphone" placeholder="00000000000" maxlength="11" value="<c:out value="${info.clphone }" />" />
</td>
</tr>
<tr>
<th scope="row">성명</th>
<td>
<input type="text" name="trgtNm" value="<c:out value="${info.trgtNm }" />" />
</td>
<th scope="row">생년월일</th>
<td>
<input type="text" name="dBirth" id="dBirth" placeholder="00000000" maxlength="8" value="<c:out value="${info.dBirth }" />" />
</td>
</tr>
<!-- <tr>
<th scope="row">연락처(핸드폰)</th>
<td>
<input type="text" name="clphone" />
</td>
</tr> -->
<tr>
<th scope="row">의뢰번호</th>
<td>
<input type="text" name="reqNmbr" value="<c:out value="${info.reqNmbr }" />" />
</td>
<th scope="row">의뢰상태</th>
<td>
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
selectedValue="${info.reqStateCd }" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
<th scope="row">교육상태</th>
<td>
<ve:select codeId="VEA002" name="eduStateCd" id="eduStateCd" css="class='sel_type1'"
selectedValue="${info.eduStateCd }" defaultValue=""
defaultText='선택'
/>
</td>
<th scope="row">검사명</th>
<td>
<input type="text" name="prsctrNm" value="<c:out value="${info.prsctrNm }" />" />
</td>
</tr>
<tr class="input_adress">
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">
<label for="post" class="label">우편번호 입력</label>
<input type="text" size="20" name="post" id="post" class="adr_input" style="background-color: #eee;" value="<c:out value='${info.post}'/>" readonly>
<button class="btnType01 btn_adr_search" onclick="fn_postCode(this); return false;">우편번호 검색</button>
<div class="detail_address">
<label for="addr" class="label">주소 입력</label>
<input type="text" size="60" name="addr" id="addr" class="searchResultAddr" value="<c:out value='${info.addr}'/>" readonly>
<label for="addrDetail" class="label">나머지 주소 입력</label>
<input type="text" size="20" name="addrDetail" id="addrDetail" class="usrInsertAddr" value="<c:out value='${info.addrDetail}'/>" maxLength="100" placeholder="나머지 주소">
</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>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,458 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngReg.jsp
* @Description : 조건부기소유예 과정 등록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<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 fncSave(){
if(fn_valChk())
{
return false;
}
var data = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-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);
}
});
}
}
function fn_valChk(){
// 의뢰일 검사
if($("#reqPnttm").val().trim() == ""){
alert("의뢰일을 입력해주세요.");
$("#reqPnttm").focus();
return true;
}
// 사건번호 검사
if($("input[name='vntYear']").val().trim() == ""){
alert("사건번호를 입력해주세요.");
$("input[name='vntYear']").focus();
return true;
}
// 사건번호 검사
if($("input[name='vntNmbr']").val().trim() == ""){
alert("사건번호를 입력해주세요.");
$("input[name='vntNmbr']").focus();
return true;
}
// 관할청 검사
if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus();
return true;
}
if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){
alert("성별을 선택해주세요.");
$("#sex").focus();
return true;
}
// 성명 검사
if($("input[name='trgtNm']").val().trim() == ""){
alert("성명을 입력해주세요.");
$("input[name='trgtNm']").focus();
return true;
}
// 생년월일 검사
if($("#dBirth").val().trim() == ""){
alert("생년월일을 입력해주세요.");
$("#dBirth").focus();
return true;
}
// 의뢰번호 검사
if($("input[name='reqNmbr']").val().trim() == ""){
alert("의뢰번호를 입력해주세요.");
$("input[name='reqNmbr']").focus();
return true;
}
// 의뢰상태 검사
/* if($("#reqStateCd").val().trim() == ""){
alert("의뢰상태를 입력해주세요.");
$("input[name='reqStateCd']").focus();
return true;
} */
// 교육상태 검사
/* if($("input[name='eduStateCd']").val().trim() == ""){
alert("교육상태를 입력해주세요.");
$("input[name='eduStateCd']").focus();
return true;
}
*/
// 검사명 검사
if($("input[name='prsctrNm']").val().trim() == ""){
alert("검사명을 입력해주세요.");
$("input[name='prsctrNm']").focus();
return true;
}
// 주소 검사
if($("#post").val().trim() == "" || $("#addr").val().trim() == ""){
alert("주소를 입력해주세요.");
$("#post").focus();
return true;
}
return false; // 모든 검사를 통과하면 false 반환
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
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>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post">
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>대상자 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">대상자 목록</span></li>
<li><span class="cur_nav">대상자 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>대상자 등록</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">의뢰일</th>
<td>
<div id="calendar">
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="의뢰일" title="의뢰일 선택" id="reqPnttm" name="reqPnttm" value="">
</div>
</div>
</td>
</tr>
<tr>
<th scope="row">사건번호</th>
<td>
<input type="text" name="vntYear" style="width: 150px;margin-right: 10px;"/>형제
<input type="text" name="vntNmbr" style="width: 150px;margin-left: 10px;" />
</td>
</tr>
<tr>
<th scope="row">관할청</th>
<td>
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
<th scope="row">성별</th>
<td>
<ve:select codeId="COM014" name="sex" id="sex" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/>
</td>
<th scope="row">연락처</th>
<td>
<input type="text" name="clphone" id="clphone" placeholder="00000000000" maxlength="11"/>
</td>
</tr>
<tr>
<th scope="row">성명</th>
<td>
<input type="text" name="trgtNm" />
</td>
<th scope="row">생년월일</th>
<td>
<input type="text" name="dBirth" id="dBirth" placeholder="00000000" maxlength="8"/>
</td>
</tr>
<!-- <tr>
<th scope="row">연락처(핸드폰)</th>
<td>
<input type="text" name="clphone" />
</td>
</tr> -->
<tr>
<th scope="row">의뢰번호</th>
<td>
<input type="text" name="reqNmbr" />
</td>
<th scope="row">의뢰상태</th>
<td>
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/>
</td>
</tr>
<tr>
<th scope="row">교육상태</th>
<td>
교육대기
<input type="hidden" name="eduStateCd" id="eduStateCd" value="10"/>
<%-- <ve:select codeId="VEA002" name="eduStateCd" id="eduStateCd" css="class='sel_type1'"
selectedText="" defaultValue=""
defaultText='선택'
/> --%>
</td>
<th scope="row">검사명</th>
<td>
<input type="text" name="prsctrNm" />
</td>
</tr>
<tr class="input_adress">
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">
<label for="post" class="label">우편번호 입력</label>
<input type="text" size="20" name="post" id="post" class="adr_input" style="background-color: #eee;" value="<c:out value='${info.post}'/>" readonly>
<button class="btnType01 btn_adr_search" onclick="fn_postCode(this); return false;">우편번호 검색</button>
<div class="detail_address">
<label for="addr" class="label">주소 입력</label>
<input type="text" size="60" name="addr" id="addr" class="searchResultAddr" value="<c:out value='${info.addr}'/>" readonly>
<label for="addrDetail" class="label">나머지 주소 입력</label>
<input type="text" size="20" name="addrDetail" id="addrDetail" class="usrInsertAddr" value="<c:out value='${info.addrDetail}'/>" maxLength="100" placeholder="나머지 주소">
</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>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -31,22 +31,12 @@
<script type="text/javascript"> <script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가 //세부과정 추가 버튼 클릭 시 세부과정 추가
$(document).ready(function() { $(document).ready(function() {
/* $('#dBirth').on('input', function() { $(".btn_type01").on('click', function(){
var input = $(this).val(); $("#file_temp").click();
var length = input.length; });
var lastChar = input.charAt(length - 1);
// 숫자만 입력되도록 검사
if (!lastChar.match(/[0-9]/)) {
$(this).val(input.substring(0, length - 1));
return;
}
// 포맷 적용
if (length === 4 || length === 7) {
$(this).val(input + '-');
}
}); */
}); });
function fncSave(){ function fncSave(){
@ -57,29 +47,43 @@
} }
var data = new FormData(document.getElementById("createForm")); var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do"; //첨부파일 등록 처리-step2
console.log(data); _fileForm2.forEach(function(obj, idx) {
$.ajax({ if (obj) data.append("file"+idx, obj.fileObj);
type:"POST",
url: url, });
data: data,
dataType:'json', $('#cmptntAthrt').prop('disabled', false);
async: false, if(confirm("저장하시겠습니까?")){
processData: false, var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do";
contentType: false, console.log(data);
cache: false, $.ajax({
success:function(returnData){ type:"POST",
if(returnData.result == "success"){ enctype: 'multipart/form-data',
alert("저장되었습니다."); url: url,
fncGoList(); data: data,
} dataType:'json',
}, async: false,
error:function(request , status, error){ processData: false,
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); 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);
$('#cmptntAthrt').prop('disabled', true);
} }
}); },
} error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
$('#cmptntAthrt').prop('disabled', true);
}
});
}
} }
@ -107,11 +111,11 @@
} }
// 관할청 검사 // 관할청 검사
if($("input[name='cmptntAthrt']").val().trim() == ""){ // if($("input[name='cmptntAthrt']").val()){
alert("관할청을 입력해주세요."); // alert("관할청을 입력해주세요.");
$("input[name='cmptntAthrt']").focus(); // $("input[name='cmptntAthrt']").focus();
return true; // return true;
} // }
if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){ if($("#sex").val() == "선택" || $("#sex").val().trim() == ""){
alert("성별을 선택해주세요."); alert("성별을 선택해주세요.");
@ -134,11 +138,11 @@
} }
// 의뢰번호 검사 // 의뢰번호 검사
if($("input[name='reqNmbr']").val().trim() == ""){ /* if($("input[name='reqNmbr']").val().trim() == ""){
alert("의뢰번호를 입력해주세요."); alert("의뢰번호를 입력해주세요.");
$("input[name='reqNmbr']").focus(); $("input[name='reqNmbr']").focus();
return true; return true;
} } */
// 의뢰상태 검사 // 의뢰상태 검사
/* if($("#reqStateCd").val().trim() == ""){ /* if($("#reqStateCd").val().trim() == ""){
@ -179,6 +183,40 @@
listForm.submit(); listForm.submit();
} }
/* 파일등록 */
var _fileIdx = 0;
var _fileForm2 = new Array();
function handleFileUpload(files,obj) //업로드 function
{
console.log('files', files);
var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB)
for (var i = 0; i < files.length; i++){
if(files[i].size > limitsize){
alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다.");
return ;
}
}
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
var tmpObj = new Object();
tmpObj.name = "file_" + _fileIdx;
tmpObj.fileObj = files[i];
_fileForm2.push(tmpObj);
sendFileToServer(fd, obj, files[i], _fileIdx);
_fileIdx++;
var totalfileSize = 0;
$('.totalfileCount').text($('.item_file_size').length) ;
$('.item_file_size').each(function(){
totalfileSize += $(this).val()*1 ;
});
$('.totalfileSize').text(getStrFileSize(totalfileSize)) ;
}
}
</script> </script>
</head> </head>
@ -239,7 +277,18 @@
<tr> <tr>
<th scope="row">관할청</th> <th scope="row">관할청</th>
<td> <td>
<input type="text" name="cmptntAthrt" /> <c:choose>
<c:when test="${empty userWork }">
<ve:select codeId="VEA008" name="cmptntAthrt" id="cmptntAthrt" css="class='sel_type1'"
selectedText="" selectedValue="" defaultValue=""
defaultText='선택'
/>
</c:when>
<c:otherwise>
<ve:code codeId="VEA008" code="${userWork }"/>
<input type="hidden" name="cmptntAthrt" value="${userWork }">
</c:otherwise>
</c:choose>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -273,10 +322,10 @@
</td> </td>
</tr> --> </tr> -->
<tr> <tr>
<th scope="row">의뢰번호</th> <!-- <th scope="row">의뢰번호</th>
<td> <td>
<input type="text" name="reqNmbr" /> <input type="text" name="reqNmbr" />
</td> </td> -->
<th scope="row">의뢰상태</th> <th scope="row">의뢰상태</th>
<td> <td>
<ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'" <ve:select codeId="VEA005" name="reqStateCd" id="reqStateCd" css="class='sel_type1'"
@ -284,6 +333,10 @@
defaultText='선택' defaultText='선택'
/> />
</td> </td>
<th scope="row">검사명</th>
<td>
<input type="text" name="prsctrNm" />
</td>
</tr> </tr>
<tr> <tr>
<th scope="row">교육상태</th> <th scope="row">교육상태</th>
@ -295,10 +348,6 @@
defaultText='선택' defaultText='선택'
/> --%> /> --%>
</td> </td>
<th scope="row">검사명</th>
<td>
<input type="text" name="prsctrNm" />
</td>
</tr> </tr>
<tr class="input_adress"> <tr class="input_adress">
<th scope="row"> <th scope="row">
@ -316,6 +365,88 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>첨부파일</p>
</th>
<td class="upload_area" colspan="3">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -215,6 +215,16 @@
</c:choose> </c:choose>
</td> </td>
</tr> </tr>
<c:if test="${info.aprvlCd eq '70'}">
<tr>
<th scope="row">
<p>수정요청사유</p>
</th>
<td colspan="3">
<c:out value="${info.aprvlCn}"/>
</td>
</tr>
</c:if>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -344,13 +354,13 @@
<tbody> <tbody>
<tr> <tr>
<th scope="row"> <th scope="row">
<p>대상학년</p> <p>대상학년/반</p>
</th> </th>
<td>${info.trgtGrade}</td> <td>${info.trgtGrade}</td>
<th scope="row"> <%-- <th scope="row">
<p>대상반</p> <p>대상반</p>
</th> </th>
<td>${info.trgtClsrm}</td> <td>${info.trgtClsrm}</td> --%>
</tr> </tr>
<tr> <tr>
<th scope="row"> <th scope="row">

View File

@ -305,12 +305,6 @@
$("#trgtGrade").focus(); $("#trgtGrade").focus();
return false; return false;
} }
if($('#trgtClsrm').val() == ''){
alert('대상반을 입력해주세요.');
$("#trgtClsrm").focus();
return false;
}
if($('#trgtPrsnl').val() == ''){ if($('#trgtPrsnl').val() == ''){
alert('학생수를 입력해주세요.'); alert('학생수를 입력해주세요.');
$("#trgtPrsnl").focus(); $("#trgtPrsnl").focus();

View File

@ -494,13 +494,13 @@
<tbody> <tbody>
<tr> <tr>
<th scope="row"> <th scope="row">
<p>대상학년</p> <p>대상학년/반</p>
</th> </th>
<td>${info.trgtGrade}</td> <td>${info.trgtGrade}</td>
<th scope="row"> <%-- <th scope="row">
<p>대상반</p> <p>대상반</p>
</th> </th>
<td>${info.trgtClsrm}</td> <td>${info.trgtClsrm}</td> --%>
</tr> </tr>
<tr> <tr>
<th scope="row"> <th scope="row">

View File

@ -83,8 +83,8 @@
<table> <table>
<colgroup> <colgroup>
<col style="width: 10%;"> <col style="width: 10%;">
<col style="width: auto;">
<col style="width: 15%;"> <col style="width: 15%;">
<col style="width: auto;">
<col style="width: 15%"> <col style="width: 15%">
<col style="width: 20%;"> <col style="width: 20%;">
<col style="width: 15%;"> <col style="width: 15%;">
@ -92,8 +92,8 @@
<thead> <thead>
<tr> <tr>
<th scope="col">번호</th> <th scope="col">번호</th>
<th scope="col">운영 연도</th>
<th scope="col">교육내용</th> <th scope="col">교육내용</th>
<th scope="col">접수종료일</th>
<th scope="col">신청일</th> <th scope="col">신청일</th>
<th scope="col">학교명</th> <th scope="col">학교명</th>
<th scope="col">처리상태</th> <th scope="col">처리상태</th>
@ -108,13 +108,13 @@
</td> </td>
<td> <td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" > <a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
${list.chrgMjr} <fmt:parseDate value="${list.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy년"/>
</a> </a>
</td> </td>
<td> <td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" > <a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/> ${list.chrgMjr}
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
</a> </a>
</td> </td>
<td> <td>

View File

@ -119,13 +119,6 @@
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button> <button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div> </div>
</div> </div>
<div class="tit_box">
<i class="tit_box_icon1"></i>
<div>
<p>찾아가는 저작권 교육</p>
<span>‘찾아가는 저작권 교육’은 저작권 교육이 필요한 <span>전국 초ㆍ중ㆍ고등학교, 청소년ㆍ아동복지ㆍ노인ㆍ장애인 기관 및 단체 등</span>에 직접 방문하여 무료로 강의를 지원하는 맞춤형 교육 서비스입니다.</span>
</div>
</div>
<div class="tb_tit01"> <div class="tb_tit01">
<div class="tb_tit01_left"> <div class="tb_tit01_left">
@ -150,7 +143,7 @@
<c:choose> <c:choose>
<c:when test="${not empty info.sbmtPnttmDetail}"> <c:when test="${not empty info.sbmtPnttmDetail}">
<fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/> <fmt:parseDate value="${info.sbmtPnttmDetail}" var="sbmtPnttm" pattern="yyyy-MM-dd HH:mm:ss"/>
<fmt:formatDate value="${sbmtPnttm}" pattern="yyyy-MM-dd HH시 mm분"/> <fmt:formatDate value="${sbmtPnttm}" pattern="yyyy-MM-dd HH:mm:ss"/>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -
@ -158,12 +151,6 @@
</c:choose> </c:choose>
</td> </td>
<th scope="row">
<p>접수종료일</p>
</th>
<td>
<c:out value="${endPnttm }"/>
</td>
</tr> </tr>
<tr class="trLength2"> <tr class="trLength2">
<th scope="row"> <th scope="row">
@ -181,21 +168,6 @@
</c:choose> </c:choose>
</td> </td>
</tr> </tr>
<tr class="trLength2">
<th scope="row">
<p>접수종료일</p>
</th>
<td colspan="3">
<c:choose>
<c:when test="${not empty endPnttm}">
<c:out value="${endPnttm }"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</td>
</tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<p>처리상태</p> <p>처리상태</p>
@ -231,6 +203,14 @@
<td colspan="3">${info.aprvlCn}</td> <td colspan="3">${info.aprvlCn}</td>
</tr> </tr>
</c:if> </c:if>
<c:if test="${info.aprvlCd eq VeConstants.APRVL_CD_70}">
<tr>
<th scope="row">
<p>수정요청사유</p>
</th>
<td colspan="3">${info.aprvlCn}</td>
</tr>
</c:if>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -283,12 +263,6 @@
<kc:code codeId="COM014" code="${info.chrgSexCd}"/> <kc:code codeId="COM014" code="${info.chrgSexCd}"/>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td>${info.email}</td>
</tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<p>휴대폰</p> <p>휴대폰</p>
@ -300,6 +274,12 @@
<p>전화</p> <p>전화</p>
</th> </th>
<td>${info.phone}</td> <td>${info.phone}</td>
</tr
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td>${info.email}</td>
</tr> </tr>
<tr> <tr>
<th scope="row"> <th scope="row">
@ -367,26 +347,26 @@
<tbody> <tbody>
<tr class="trLength4"> <tr class="trLength4">
<th scope="row"> <th scope="row">
<p>대상학년</p> <p>대상학년/반</p>
</th> </th>
<td>${info.trgtGrade}</td> <td>${info.trgtGrade}</td>
<th scope="row"> <%-- <th scope="row">
<p>대상반</p> <p>대상반</p>
</th> </th>
<td>${info.trgtClsrm}</td> <td>${info.trgtClsrm}</td> --%>
</tr> </tr>
<tr class="trLength2"> <tr class="trLength2">
<th scope="row"> <th scope="row">
<p>대상학년</p> <p>대상학년/반</p>
</th> </th>
<td colspan="3">${info.trgtGrade}</td> <td colspan="3">${info.trgtGrade}</td>
</tr> </tr>
<tr class="trLength2"> <%-- <tr class="trLength2">
<th scope="row"> <th scope="row">
<p>대상반</p> <p>대상반</p>
</th> </th>
<td colspan="3">${info.trgtClsrm}</td> <td colspan="3">${info.trgtClsrm}</td>
</tr> </tr> --%>
<tr class="trLength4"> <tr class="trLength4">
<th scope="row"> <th scope="row">
<p>대상학생수</p> <p>대상학생수</p>

View File

@ -124,8 +124,8 @@
<table> <table>
<colgroup> <colgroup>
<col style="width: 10%;"> <col style="width: 10%;">
<col style="width: auto;">
<col style="width: 15%;"> <col style="width: 15%;">
<col style="width: auto;">
<col style="width: 15%"> <col style="width: 15%">
<col style="width: 20%;"> <col style="width: 20%;">
<col style="width: 15%;"> <col style="width: 15%;">
@ -133,8 +133,8 @@
<thead> <thead>
<tr> <tr>
<th scope="col">번호</th> <th scope="col">번호</th>
<th scope="col">운영 연도</th>
<th scope="col">교육내용</th> <th scope="col">교육내용</th>
<th scope="col">접수종료일</th>
<th scope="col">신청일</th> <th scope="col">신청일</th>
<th scope="col">학교명</th> <th scope="col">학교명</th>
<th scope="col">처리상태</th> <th scope="col">처리상태</th>
@ -149,13 +149,13 @@
</td> </td>
<td> <td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" > <a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
${list.chrgMjr} <fmt:parseDate value="${list.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy년"/>
</a> </a>
</td> </td>
<td> <td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" > <a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/> ${list.chrgMjr}
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
</a> </a>
</td> </td>
<td> <td>

View File

@ -168,7 +168,7 @@
function fncSave(type){ function fncSave(type){
if(type == 'S'){ if(type == 'S' || type == 'E'){
if (!validCheck()) return; if (!validCheck()) return;
} }
@ -180,6 +180,9 @@
if(confirm("교육신청을 "+(type == 'I'? '임시저장' : '등록')+"하시겠습니까?")){ if(confirm("교육신청을 "+(type == 'I'? '임시저장' : '등록')+"하시겠습니까?")){
if(type == 'I'){ if(type == 'I'){
$("#sbmtYn").val("N"); $("#sbmtYn").val("N");
}else if(type == 'E'){
$("#sbmtYn").val("Y");
$("#aprvlCd").val(VeConstants.APRVL_CD_80);
}else{ }else{
$("#sbmtYn").val("Y"); $("#sbmtYn").val("Y");
$("#aprvlCd").val(VeConstants.APRVL_CD_10); $("#aprvlCd").val(VeConstants.APRVL_CD_10);
@ -394,15 +397,21 @@
$("#trgtGrade").focus(); $("#trgtGrade").focus();
return false; return false;
} }
if($('#trgtClsrm').val() == ''){ /* if($('#trgtClsrm').val() == ''){
alert('대상반을 입력해주세요.'); alert('대상반을 입력해주세요.');
$("#trgtClsrm").focus(); $("#trgtClsrm").focus();
return false; return false;
} } */
if($('#trgtPrsnl').val() == ''){ if($('#trgtPrsnl').val() == ''){
alert('학생수를 입력해주세요.'); alert('전체학생 수를 입력해주세요.');
$("#trgtPrsnl").focus(); $("#trgtPrsnl").focus();
return
false;
}
if($('#needTxtbNum').val() == ''){
alert('필요 교재 수량을 입력해주세요.');
$("#needTxtbNum").focus();
return false; return false;
} }
@ -567,7 +576,7 @@
} }
$("#trgtGrade").val(info.trgtGrade); $("#trgtGrade").val(info.trgtGrade);
$("#trgtClsrm").val(info.trgtClsrm); /* $("#trgtClsrm").val(info.trgtClsrm); */
$("#trgtPrsnl").val(info.trgtPrsnl); $("#trgtPrsnl").val(info.trgtPrsnl);
$("#needTxtbNum").val(info.needTxtbNum); $("#needTxtbNum").val(info.needTxtbNum);
@ -687,13 +696,12 @@
script="onFocus='this.initialSelect = this.selectedIndex;' onChange='this.selectedIndex = this.initialSelect;'"/> script="onFocus='this.initialSelect = this.selectedIndex;' onChange='this.selectedIndex = this.initialSelect;'"/>
<label for="scholInsttNm" class="label">학교(기관)명 입력</label> <label for="scholInsttNm" class="label">학교(기관)명 입력</label>
<input type="text" value="${info.scholInsttNm}" size="25" readonly id="scholInsttNm" name="scholInsttNm"> <input type="text" value="${info.scholInsttNm}" size="25" readonly id="scholInsttNm" name="scholInsttNm">
<button type="button" class="btnType01" data-tooltip="sub01_pop02" onclick="fncScholList();" title="팝업 열림">학교검색</button> <button type="button" class="btnType01" data-tooltip="sub01_pop02" onclick="fncScholList();" title="팝업 열림">학교검색</button> ※ 학교명이 검색되지 않을 경우, 담당자에게 연락
<input type="hidden" size="25" title="학교명코드" id="stndrdScholCd" name="stndrdScholCd" value="${info.stndrdScholCd}"> <input type="hidden" size="25" title="학교명코드" id="stndrdScholCd" name="stndrdScholCd" value="${info.stndrdScholCd}">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>학교구분</p> <p>학교구분</p>
</th> </th>
<td colspan="3"> <td colspan="3">
@ -785,7 +793,6 @@
</tr> </tr>
<tr class="input_adress"> <tr class="input_adress">
<th scope="row"> <th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>주소</p> <p>주소</p>
</th> </th>
<td colspan="3"> <td colspan="3">
@ -897,25 +904,26 @@
<tr> <tr>
<th scope="row"> <th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p> <p class="req_text"><span>필수입력 항목</span>*</p>
<p>학년수</p> <p>대상학년/반</p>
</th> </th>
<td> <td>
<label for="trgtGrade" class="label">대상 학년 입력</label> <label for="trgtGrade" class="label">대상 학년 입력</label>
<input type="text" name="trgtGrade" id="trgtGrade" onkeyup="onlyNumber(this);" maxlength="3" value="${info.trgtGrade}" size="20"> 학년 <input type="text" name="trgtGrade" id="trgtGrade" maxlength="20" value="${info.trgtGrade}" size="20">
</td> </td>
<th scope="row"> <!-- 231107 학년과 대상 통합 요청 -->
<%--<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p> <p class="req_text"><span>필수입력 항목</span>*</p>
<p>대상 반</p> <p>대상 반</p>
</th> </th>
<td> <td>
<label for="trgtClsrm" class="label">대상 반 입력</label> <label for="trgtClsrm" class="label">대상 반 입력</label>
<input type="text" name="trgtClsrm" id="trgtClsrm" value="${info.trgtClsrm}" title="교육인원" size="20"> 반 <input type="text" name="trgtClsrm" id="trgtClsrm" value="${info.trgtClsrm}" title="교육인원" size="20"> 반
</td> </td> --%>
</tr> </tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p> <p class="req_text"><span>필수입력 항목</span>*</p>
<p>학생수</p> <p>전체학생 수</p>
</th> </th>
<td> <td>
<label for="trgtPrsnl" class="label">학생 수 입력</label> <label for="trgtPrsnl" class="label">학생 수 입력</label>
@ -964,10 +972,11 @@
</tr> </tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>필요 교재 수량</p> <p>필요 교재 수량</p>
</th> </th>
<td> <td>
<label for="trgtGrade" class="label">필요 교재 수량 입력</label> <label for="needTxtbNum" class="label">필요 교재 수량 입력</label>
<input type="text" name="needTxtbNum" id="needTxtbNum" onkeyup="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="4"> <input type="text" name="needTxtbNum" id="needTxtbNum" onkeyup="onlyNumber(this);" value="${info.trgtPrsnlReal}" title="전체 교육인원" size="20" maxlength="4">
</td> </td>
</tr> </tr>

View File

@ -71,26 +71,26 @@
<tbody> <tbody>
<tr class="trLength4"> <tr class="trLength4">
<th scope="row"> <th scope="row">
<p>대상학년</p> <p>대상학년/반</p>
</th> </th>
<td>${info.trgtGrade}</td> <td>${info.trgtGrade}</td>
<th scope="row"> <%-- <th scope="row">
<p>대상반</p> <p>대상반</p>
</th> </th>
<td>${info.trgtClsrm}</td> <td>${info.trgtClsrm}</td> --%>
</tr> </tr>
<tr class="trLength2"> <tr class="trLength2">
<th scope="row"> <th scope="row">
<p>대상학년</p> <p>대상학년/반</p>
</th> </th>
<td colspan="3">${info.trgtGrade}</td> <td colspan="3">${info.trgtGrade}</td>
</tr> </tr>
<tr class="trLength2"> <%-- <tr class="trLength2">
<th scope="row"> <th scope="row">
<p>대상반</p> <p>대상반</p>
</th> </th>
<td colspan="3">${info.trgtClsrm}</td> <td colspan="3">${info.trgtClsrm}</td>
</tr> </tr> --%>
<tr class="trLength4"> <tr class="trLength4">
<th scope="row"> <th scope="row">
<p>대상학생수</p> <p>대상학생수</p>

View File

@ -492,13 +492,13 @@
<tbody> <tbody>
<tr> <tr>
<th scope="row"> <th scope="row">
<p>대상학년</p> <p>대상학년/반</p>
</th> </th>
<td>${info.trgtGrade}</td> <td>${info.trgtGrade}</td>
<th scope="row"> <%-- <th scope="row">
<p>대상반</p> <p>대상반</p>
</th> </th>
<td>${info.trgtClsrm}</td> <td>${info.trgtClsrm}</td> --%>
</tr> </tr>
<tr> <tr>
<th scope="row"> <th scope="row">

View File

@ -36,6 +36,12 @@
frm.submit(); frm.submit();
} }
function goMain(){
var frm = document.getElementById("prcsOrdForm");
frm.action = "<c:url value='/web/main/mainPage.do'/>";
frm.submit();
}
</script> </script>
<form id="prcsOrdForm" name="prcsOrdForm"> <form id="prcsOrdForm" name="prcsOrdForm">
@ -59,21 +65,23 @@
</c:if> </c:if>
</dl> </dl>
</div> </div>
<div class="title">· 신청서 접수 시 유의사항</div> <c:if test="${detailVO.checkYn eq 'Y' }">
<div class="list"> <div class="title">· 신청서 접수 시 유의사항</div>
<ol> <div class="list">
<li><span class="number">1.</span>저작권 체험교실 운영 신청만 가능합니다. 찾아가는 저작권 교육 신청은 불가능합니다.<span>- 찾아가는 저작권 교육 신청은 해당 사이트(www.copyright.or.kr/offedu)에서 이용하여</br> <ol>
&nbsp&nbsp주시기 바랍니다.</span></li> <li><span class="number">1.</span>저작권 체험교실 운영 신청만 가능합니다. 찾아가는 저작권 교육 신청은 불가능합니다.<span>- 찾아가는 저작권 교육 신청은 해당 사이트(www.copyright.or.kr/offedu)에서 이용하여</br>
<li><span class="number">2.</span>신청 시 공문양식을 다운로드 받아서 반드시 학교장 직인된 공문을 첨부해야 합니다.</li> &nbsp&nbsp주시기 바랍니다.</span></li>
<li><span class="number">3.</span>신청 시 반드시 본인 계정으로 신청해야 하며, 타인 계정으로 신청 시 신청 취소 처리됩니다.</li> <li><span class="number">2.</span>신청 시 공문양식을 다운로드 받아서 반드시 학교장 직인된 공문을 첨부해야 합니다.</li>
<li><span class="number">4.</span>체험교실 신규 운영 교사는 체험교실 운영 교사 연수(1일, 8시간)를 반드시 이수해야 하며, 체험교실 운영 기간내에 저작권 e-배움터에서 제공하는 온라인 강좌를 의무 이수해야 합니다.</li> <li><span class="number">3.</span>신청 시 반드시 본인 계정으로 신청해야 하며, 타인 계정으로 신청 시 신청 취소 처리됩니다.</li>
<li><span class="number">5.</span>신청기간 내 위원회 업무시간(09:00 ~ 18:00)동안 이용이 가능합니다.</li> <li><span class="number">4.</span>체험교실 신규 운영 교사는 체험교실 운영 교사 연수(1일, 8시간)를 반드시 이수해야 하며, 체험교실 운영 기간내에 저작권 e-배움터에서 제공하는 온라인 강좌를 의무 이수해야 합니다.</li>
<!-- <li><span class="number">6.</span>신청기간 내 학교급별(초등, 중등, 고등) 게시판을 반드시 확인 후 신청해 주시기 바랍니다.</li> --> <li><span class="number">5.</span>신청기간 내 위원회 업무시간(09:00 ~ 18:00)동안 이용이 가능합니다.</li>
<li><span class="number">6.</span>신청교사가 교내에서 확인 가능한 메일 계정을 기재해 주시기 바랍니다.</li> <!-- <li><span class="number">6.</span>신청기간 내 학교급별(초등, 중등, 고등) 게시판을 반드시 확인 후 신청해 주시기 바랍니다.</li> -->
<li><span class="number">7.</span>신청 중 문의사항은 위원회 체험교실 담당자에게 연락을 주시기 바랍니다(055-792-0234)</li> <li><span class="number">6.</span>신청교사가 교내에서 확인 가능한 메일 계정을 기재해 주시기 바랍니다.</li>
<li><span class="number">8.</span>선정 후 취소(신규 운영 교사 사전 연수 불참 등) 및 운영 포기교실은 차년도 참여를 제한합니다.<br>(해당 내용 학교 공문 발송 예정)</li> <li><span class="number">7.</span>신청 중 문의사항은 위원회 체험교실 담당자에게 연락을 주시기 바랍니다(055-792-0234)</li>
</ol> <li><span class="number">8.</span>선정 후 취소(신규 운영 교사 사전 연수 불참 등) 및 운영 포기교실은 차년도 참여를 제한합니다.<br>(해당 내용 학교 공문 발송 예정)</li>
</div> </ol>
</div>
</c:if>
</div> </div>
<div class="pop_btn_wrap btn_layout01"> <div class="pop_btn_wrap btn_layout01">
<div class="btn_left"> <div class="btn_left">
@ -82,6 +90,9 @@
<c:if test="${detailVO.checkYn eq 'Y' }"> <c:if test="${detailVO.checkYn eq 'Y' }">
<button type="button" class="btnType05" onclick="goWrite();">확인</button> <button type="button" class="btnType05" onclick="goWrite();">확인</button>
</c:if> </c:if>
<c:if test="${detailVO.checkYn ne 'Y' }">
<button type="button" class="btnType05" onclick="goMain();">찾아가는 저작권 교육</button>
</c:if>
<button type="button" class="btnType02 tooltip-close" data-focus="list_popup_close" data-focus-next="sub40_pop01">취소</button> <button type="button" class="btnType02 tooltip-close" data-focus="list_popup_close" data-focus-next="sub40_pop01">취소</button>
</div> </div>
<div class="btn_right"> <div class="btn_right">

View File

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

View File

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