This commit is contained in:
subsub 2023-11-07 17:02:38 +09:00
commit 546f4f347d
110 changed files with 17304 additions and 9988 deletions

View File

@ -36,6 +36,8 @@ public class CmmnDetailCode implements Serializable {
* 코드
*/
private String code = "";
private int sort = 0;
/*
* 코드명
@ -229,4 +231,12 @@ public class CmmnDetailCode implements Serializable {
this.tempCodeId = tempCodeId;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
}

View File

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

View File

@ -62,6 +62,7 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
//서류요청 기능
public String docReqNm = ""; //요청 서류명
public String sbmtId = ""; //제출 강사 ID
public String eduDocReqOrd = "";//서류요청 순번
public String getFileType() {
@ -160,6 +161,14 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
this.sbmtId = sbmtId;
}
public String getEduDocReqOrd() {
return eduDocReqOrd;
}
public void setEduDocReqOrd(String eduDocReqOrd) {
this.eduDocReqOrd = eduDocReqOrd;
}

View File

@ -36,4 +36,6 @@ public interface InnorixFileService {
RestResponse insertInnorixReqFile(AdrInnorixFileVO adrInnorixFileVO);
RestResponse insertInnorixDocFile(AdrInnorixFileVO adrInnorixFileVO);
}

View File

@ -432,6 +432,32 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
}
} catch (Exception e) {
e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now());
}
@Override
public RestResponse insertInnorixDocFile(AdrInnorixFileVO adrInnorixFileVO) {
List<FileVO> result = null;
try {
// 파일 저장 저장할 file 정보를 받아옴
result = this.insertFileData(adrInnorixFileVO);
// 파일 정보 insert
String atchFileId = fileManageDAO.insertFileInfs(result);
//VE_EDU_DOC_REQ 서류요청테이블 insert
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setEduDocReqOrd(adrInnorixFileVO.getEduDocReqOrd());
vEEduAplctVO.setSbmtAtchFileId(atchFileId);
vEEduAplctService.updateSbmtAtchFileId(vEEduAplctVO);
} catch (Exception e) {
e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());

View File

@ -184,4 +184,29 @@ public class InnorixFileController {
return ResponseEntity.ok(innorixService.insertInnorixReqFile(adrInnorixFileVO));
}
/**
* @methodName : insertReqDocInnorixFile
* @author : 이지우
* @date : 2023.11.06
* @description : 파일 insert 전용
* @param adrInnorixFileVO
* @return
* @throws Exception
* 청소년 교육 강사 요청 서류 업로드
*/
@RequestMapping(value = {"/web/common/insertInnorixDocFileAjax.do"}, method = RequestMethod.POST)
public ResponseEntity<RestResponse> insertReqDocInnorixFile(@RequestBody AdrInnorixFileVO adrInnorixFileVO) throws Exception {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
if(userId.equals("")) {
return ResponseEntity.ok(new RestResponse(HttpStatus.UNAUTHORIZED, "로그인이 필요합니다.", LocalDateTime.now()));
}
adrInnorixFileVO.setUniqId(userId);
return ResponseEntity.ok(innorixService.insertInnorixDocFile(adrInnorixFileVO));
}
}

View File

@ -378,7 +378,8 @@ public class EgovCcmCmmnCodeManageController {
cmmnDetailCodeVO.setCodeNm(cmmnDetailCode.getCodeNm());
cmmnDetailCodeVO.setCodeDc(cmmnDetailCode.getCodeDc());
cmmnDetailCodeVO.setUseAt(cmmnDetailCode.getUseAt());
cmmnDetailCodeVO.setParent(cmmnDetailCode.getCodeId());
cmmnDetailCodeVO.setParent(cmmnDetailCode.getCodeId());
//cmmnDetailCodeVO.setSort(Integer.parseInt()cmmnDetailCode.getSort());
model.addAttribute("menuManageVO", cmmnDetailCodeVO);
}
modelAndView.addObject("status", "success");
@ -575,6 +576,7 @@ public class EgovCcmCmmnCodeManageController {
cmmnDetailCodeVO.setCodeDc(menuManageVO.getMenuDc());
cmmnDetailCodeVO.setUseAt(menuManageVO.getUseYn());
cmmnDetailCodeVO.setLastUpdusrId(user.getId());
cmmnDetailCodeVO.setSort(Integer.parseInt(menuManageVO.getSort()));
//cmmnDetailCodeManageService.updateCmmnDetailCode(cmmnDetailCodeVO);
cmmnDetailCodeManageService.updateCmmnDetailCodePk(cmmnDetailCodeVO);
newCode = menuManageVO.getUpperMenuId()+"__"+menuManageVO.getMenuNo();

View File

@ -108,6 +108,8 @@ public class MenuManageJTreeVO implements Serializable {
String [] codeArry = null; //즐겨찾기 리스트 배열 받기
private String sort; //매뉴순번
public String getTmp_snsId() {
return tmp_snsId;
}
@ -481,6 +483,14 @@ public class MenuManageJTreeVO implements Serializable {
public void setDepth(String depth) {
this.depth = depth;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
}

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

View File

@ -58,4 +58,7 @@ public interface VEAStngMixService {
//VEA_INSTR_MNT_TM - 강사월별시수
int selectList_VEAIMT_2(VEAStngVO paramVO) throws Exception; // LIST
//VEA_INSTR_INDVD_MNT_TM - 강사별월별시수
List<VEAStngVO> selectList_VEAIIMT_1(VEAStngVO paramVO) throws Exception; // LIST
}

View File

@ -68,6 +68,17 @@ public interface VEAStngService {
List<VEAStngVO> selectList_VEAIMT(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAIMT(VEAStngVO paramVO) throws Exception; // Page List
//VEA_INSTR_INDVD_MNT_TM - 강사별월별시수
void insert_VEAIIMT(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEAIIMT(VEAStngVO paramVO) throws Exception; // R
int update_VEAIIMT(VEAStngVO paramVO) throws Exception; // U
int delete_VEAIIMT(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEAIIMT(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAIIMT(VEAStngVO paramVO) throws Exception; // Page List
int delete_VEAIIMT_query(VEAStngVO paramVO) throws Exception; // D-with query
//VEA_INSTR_RSDNC_RATIO - 강사거주지별비율
void insert_VEAIRR(VEAStngVO paramVO) throws Exception; // C
@ -75,5 +86,23 @@ public interface VEAStngService {
int update_VEAIRR(VEAStngVO paramVO) throws Exception; // U
int delete_VEAIRR(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEAIRR(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAIRR(VEAStngVO paramVO) throws Exception; // Page List
List<VEAStngVO> selectPagingList_VEAIRR(VEAStngVO paramVO) throws Exception; // Page List
//VEA_BASIC_INFO_STNG - 기본설정정보
void insert_VEABIS(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEABIS(VEAStngVO paramVO) throws Exception; // R
int update_VEABIS(VEAStngVO paramVO) throws Exception; // U
int delete_VEABIS(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEABIS(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEABIS(VEAStngVO paramVO) throws Exception; // Page List
//VEA_INSTR_HSTRY_MNG - 강사이력관리
void insert_VEAIHM(VEAStngVO paramVO) throws Exception; // C
VEAStngVO selectDetail_VEAIHM(VEAStngVO paramVO) throws Exception; // R
int update_VEAIHM(VEAStngVO paramVO) throws Exception; // U
int delete_VEAIHM(VEAStngVO paramVO) throws Exception; // D
List<VEAStngVO> selectList_VEAIHM(VEAStngVO paramVO) throws Exception; // LIST
List<VEAStngVO> selectPagingList_VEAIHM(VEAStngVO paramVO) throws Exception; // Page List
}

View File

@ -94,6 +94,80 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
private String instrTm0; //해당월 0일강사인당시간
private String asgnmChasi0; //해당월 0일강사배정총차시
//vea_basic_info_stng - 기본정보
private String stngCd; //설정코드
private String cn; //내용
//vea_instr_indvd_mnt_tm - 강사별월별시수
private String userId; //강사 아이디
private String m01Ea; //1월 설정한 강의일수
private String m01Tm; //1월 계산된 최대 차시수
private String m01RegisterId; //1월 등록자
private String m01RegsitPnttm; //1월 등록일시
private String m02Ea; //1월 설정한 강의일수
private String m02Tm; //1월 계산된 최대 차시수
private String m02RegisterId; //1월 등록자
private String m02RegsitPnttm; //1월 등록일시
private String m03Ea; //1월 설정한 강의일수
private String m03Tm; //1월 계산된 최대 차시수
private String m03RegisterId; //1월 등록자
private String m03RegsitPnttm; //1월 등록일시
private String m04Ea; //1월 설정한 강의일수
private String m04Tm; //1월 계산된 최대 차시수
private String m04RegisterId; //1월 등록자
private String m04RegsitPnttm; //1월 등록일시
private String m05Ea; //1월 설정한 강의일수
private String m05Tm; //1월 계산된 최대 차시수
private String m05RegisterId; //1월 등록자
private String m05RegsitPnttm; //1월 등록일시
private String m06Ea; //1월 설정한 강의일수
private String m06Tm; //1월 계산된 최대 차시수
private String m06RegisterId; //1월 등록자
private String m06RegsitPnttm; //1월 등록일시
private String m07Ea; //1월 설정한 강의일수
private String m07Tm; //1월 계산된 최대 차시수
private String m07RegisterId; //1월 등록자
private String m07RegsitPnttm; //1월 등록일시
private String m08Ea; //1월 설정한 강의일수
private String m08Tm; //1월 계산된 최대 차시수
private String m08RegisterId; //1월 등록자
private String m08RegsitPnttm; //1월 등록일시
private String m09Ea; //1월 설정한 강의일수
private String m09Tm; //1월 계산된 최대 차시수
private String m09RegisterId; //1월 등록자
private String m09RegsitPnttm; //1월 등록일시
private String m10Ea; //1월 설정한 강의일수
private String m10Tm; //1월 계산된 최대 차시수
private String m10RegisterId; //1월 등록자
private String m10RegsitPnttm; //1월 등록일시
private String m11Ea; //1월 설정한 강의일수
private String m11Tm; //1월 계산된 최대 차시수
private String m11RegisterId; //1월 등록자
private String m11RegsitPnttm; //1월 등록일시
private String m12Ea; //1월 설정한 강의일수
private String m12Tm; //1월 계산된 최대 차시수
private String m12RegisterId; //1월 등록자
private String m12RegsitPnttm; //1월 등록일시
//vea_instr_hstry_mng - 강사이력관리
private String instrHstryOrd; //강사이력순번
private String sbjct; //주제
private String strtDt; //시작일
private String ddlnDt; //종료일
//etc
private String code; //설정 년도
private String psblTmQnttyCnt; //실제 신청 차시(관리자 달력용)
@ -108,7 +182,9 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
private String rgstrDateState; //일자기준접수상태 0,1,2 -기간전, 기간중, 기간후
private String searchWord; //검색어
private String searchWord; //검색어
private String workWeekCnt; // 수업 가능일수
//4 update
private String tableNm;
@ -120,6 +196,9 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
private String start;
private String end;
private String title;
private String titleF; //현재신청
private String titleB; //가능신청
//지역별 강의 설정
@ -602,5 +681,355 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
public void setPsblTmQnttyCnt(String psblTmQnttyCnt) {
this.psblTmQnttyCnt = psblTmQnttyCnt;
}
public String getStngCd() {
return stngCd;
}
public void setStngCd(String stngCd) {
this.stngCd = stngCd;
}
public String getCn() {
return cn;
}
public void setCn(String cn) {
this.cn = cn;
}
public String getTitleF() {
return titleF;
}
public void setTitleF(String titleF) {
this.titleF = titleF;
}
public String getTitleB() {
return titleB;
}
public void setTitleB(String titleB) {
this.titleB = titleB;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getM01Ea() {
return m01Ea;
}
public void setM01Ea(String m01Ea) {
this.m01Ea = m01Ea;
}
public String getM01Tm() {
return m01Tm;
}
public void setM01Tm(String m01Tm) {
this.m01Tm = m01Tm;
}
public String getM01RegisterId() {
return m01RegisterId;
}
public void setM01RegisterId(String m01RegisterId) {
this.m01RegisterId = m01RegisterId;
}
public String getM01RegsitPnttm() {
return m01RegsitPnttm;
}
public void setM01RegsitPnttm(String m01RegsitPnttm) {
this.m01RegsitPnttm = m01RegsitPnttm;
}
public String getM02Ea() {
return m02Ea;
}
public void setM02Ea(String m02Ea) {
this.m02Ea = m02Ea;
}
public String getM02Tm() {
return m02Tm;
}
public void setM02Tm(String m02Tm) {
this.m02Tm = m02Tm;
}
public String getM02RegisterId() {
return m02RegisterId;
}
public void setM02RegisterId(String m02RegisterId) {
this.m02RegisterId = m02RegisterId;
}
public String getM02RegsitPnttm() {
return m02RegsitPnttm;
}
public void setM02RegsitPnttm(String m02RegsitPnttm) {
this.m02RegsitPnttm = m02RegsitPnttm;
}
public String getM03Ea() {
return m03Ea;
}
public void setM03Ea(String m03Ea) {
this.m03Ea = m03Ea;
}
public String getM03Tm() {
return m03Tm;
}
public void setM03Tm(String m03Tm) {
this.m03Tm = m03Tm;
}
public String getM03RegisterId() {
return m03RegisterId;
}
public void setM03RegisterId(String m03RegisterId) {
this.m03RegisterId = m03RegisterId;
}
public String getM03RegsitPnttm() {
return m03RegsitPnttm;
}
public void setM03RegsitPnttm(String m03RegsitPnttm) {
this.m03RegsitPnttm = m03RegsitPnttm;
}
public String getM04Ea() {
return m04Ea;
}
public void setM04Ea(String m04Ea) {
this.m04Ea = m04Ea;
}
public String getM04Tm() {
return m04Tm;
}
public void setM04Tm(String m04Tm) {
this.m04Tm = m04Tm;
}
public String getM04RegisterId() {
return m04RegisterId;
}
public void setM04RegisterId(String m04RegisterId) {
this.m04RegisterId = m04RegisterId;
}
public String getM04RegsitPnttm() {
return m04RegsitPnttm;
}
public void setM04RegsitPnttm(String m04RegsitPnttm) {
this.m04RegsitPnttm = m04RegsitPnttm;
}
public String getM05Ea() {
return m05Ea;
}
public void setM05Ea(String m05Ea) {
this.m05Ea = m05Ea;
}
public String getM05Tm() {
return m05Tm;
}
public void setM05Tm(String m05Tm) {
this.m05Tm = m05Tm;
}
public String getM05RegisterId() {
return m05RegisterId;
}
public void setM05RegisterId(String m05RegisterId) {
this.m05RegisterId = m05RegisterId;
}
public String getM05RegsitPnttm() {
return m05RegsitPnttm;
}
public void setM05RegsitPnttm(String m05RegsitPnttm) {
this.m05RegsitPnttm = m05RegsitPnttm;
}
public String getM06Ea() {
return m06Ea;
}
public void setM06Ea(String m06Ea) {
this.m06Ea = m06Ea;
}
public String getM06Tm() {
return m06Tm;
}
public void setM06Tm(String m06Tm) {
this.m06Tm = m06Tm;
}
public String getM06RegisterId() {
return m06RegisterId;
}
public void setM06RegisterId(String m06RegisterId) {
this.m06RegisterId = m06RegisterId;
}
public String getM06RegsitPnttm() {
return m06RegsitPnttm;
}
public void setM06RegsitPnttm(String m06RegsitPnttm) {
this.m06RegsitPnttm = m06RegsitPnttm;
}
public String getM07Ea() {
return m07Ea;
}
public void setM07Ea(String m07Ea) {
this.m07Ea = m07Ea;
}
public String getM07Tm() {
return m07Tm;
}
public void setM07Tm(String m07Tm) {
this.m07Tm = m07Tm;
}
public String getM07RegisterId() {
return m07RegisterId;
}
public void setM07RegisterId(String m07RegisterId) {
this.m07RegisterId = m07RegisterId;
}
public String getM07RegsitPnttm() {
return m07RegsitPnttm;
}
public void setM07RegsitPnttm(String m07RegsitPnttm) {
this.m07RegsitPnttm = m07RegsitPnttm;
}
public String getM08Ea() {
return m08Ea;
}
public void setM08Ea(String m08Ea) {
this.m08Ea = m08Ea;
}
public String getM08Tm() {
return m08Tm;
}
public void setM08Tm(String m08Tm) {
this.m08Tm = m08Tm;
}
public String getM08RegisterId() {
return m08RegisterId;
}
public void setM08RegisterId(String m08RegisterId) {
this.m08RegisterId = m08RegisterId;
}
public String getM08RegsitPnttm() {
return m08RegsitPnttm;
}
public void setM08RegsitPnttm(String m08RegsitPnttm) {
this.m08RegsitPnttm = m08RegsitPnttm;
}
public String getM09Ea() {
return m09Ea;
}
public void setM09Ea(String m09Ea) {
this.m09Ea = m09Ea;
}
public String getM09Tm() {
return m09Tm;
}
public void setM09Tm(String m09Tm) {
this.m09Tm = m09Tm;
}
public String getM09RegisterId() {
return m09RegisterId;
}
public void setM09RegisterId(String m09RegisterId) {
this.m09RegisterId = m09RegisterId;
}
public String getM09RegsitPnttm() {
return m09RegsitPnttm;
}
public void setM09RegsitPnttm(String m09RegsitPnttm) {
this.m09RegsitPnttm = m09RegsitPnttm;
}
public String getM10Ea() {
return m10Ea;
}
public void setM10Ea(String m10Ea) {
this.m10Ea = m10Ea;
}
public String getM10Tm() {
return m10Tm;
}
public void setM10Tm(String m10Tm) {
this.m10Tm = m10Tm;
}
public String getM10RegisterId() {
return m10RegisterId;
}
public void setM10RegisterId(String m10RegisterId) {
this.m10RegisterId = m10RegisterId;
}
public String getM10RegsitPnttm() {
return m10RegsitPnttm;
}
public void setM10RegsitPnttm(String m10RegsitPnttm) {
this.m10RegsitPnttm = m10RegsitPnttm;
}
public String getM11Ea() {
return m11Ea;
}
public void setM11Ea(String m11Ea) {
this.m11Ea = m11Ea;
}
public String getM11Tm() {
return m11Tm;
}
public void setM11Tm(String m11Tm) {
this.m11Tm = m11Tm;
}
public String getM11RegisterId() {
return m11RegisterId;
}
public void setM11RegisterId(String m11RegisterId) {
this.m11RegisterId = m11RegisterId;
}
public String getM11RegsitPnttm() {
return m11RegsitPnttm;
}
public void setM11RegsitPnttm(String m11RegsitPnttm) {
this.m11RegsitPnttm = m11RegsitPnttm;
}
public String getM12Ea() {
return m12Ea;
}
public void setM12Ea(String m12Ea) {
this.m12Ea = m12Ea;
}
public String getM12Tm() {
return m12Tm;
}
public void setM12Tm(String m12Tm) {
this.m12Tm = m12Tm;
}
public String getM12RegisterId() {
return m12RegisterId;
}
public void setM12RegisterId(String m12RegisterId) {
this.m12RegisterId = m12RegisterId;
}
public String getM12RegsitPnttm() {
return m12RegsitPnttm;
}
public void setM12RegsitPnttm(String m12RegsitPnttm) {
this.m12RegsitPnttm = m12RegsitPnttm;
}
public String getInstrHstryOrd() {
return instrHstryOrd;
}
public void setInstrHstryOrd(String instrHstryOrd) {
this.instrHstryOrd = instrHstryOrd;
}
public String getWorkWeekCnt() {
return workWeekCnt;
}
public void setWorkWeekCnt(String workWeekCnt) {
this.workWeekCnt = workWeekCnt;
}
public String getSbjct() {
return sbjct;
}
public void setSbjct(String sbjct) {
this.sbjct = sbjct;
}
public String getStrtDt() {
return strtDt;
}
public void setStrtDt(String strtDt) {
this.strtDt = strtDt;
}
public String getDdlnDt() {
return ddlnDt;
}
public void setDdlnDt(String ddlnDt) {
this.ddlnDt = ddlnDt;
}
}

View File

@ -217,6 +217,39 @@ public class VEAStngDAO extends EgovAbstractDAO {
return tlist;
}
//VEA_INSTR_INDVD_MNT_TM - 강사별월별시수
public void insert_VEAIIMT(VEAStngVO paramVO) throws Exception {
insert("VEAInstrIndvdMntTmDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEAIIMT(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEAInstrIndvdMntTmDAO.selectDetail", paramVO);
}
public int update_VEAIIMT(VEAStngVO paramVO) throws Exception {
return update("VEAInstrIndvdMntTmDAO.update", paramVO);
}
public int delete_VEAIIMT(VEAStngVO paramVO) throws Exception {
return delete("VEAInstrIndvdMntTmDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEAIIMT(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrIndvdMntTmDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEAIIMT(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrIndvdMntTmDAO.selectPagingList", paramVO);
return tlist;
}
public int delete_VEAIIMT_query(VEAStngVO paramVO) throws Exception {
return delete("VEAInstrIndvdMntTmDAO.delete_query", paramVO);
}
//VEA_INSTR_RSDNC_RATIO - 강사거주지별비율
public void insert_VEAIRR(VEAStngVO paramVO) throws Exception {
@ -244,5 +277,63 @@ public class VEAStngDAO extends EgovAbstractDAO {
public List<VEAStngVO> selectPagingList_VEAIRR(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrRsdncRatioDAO.selectPagingList", paramVO);
return tlist;
}
//VEA_BASIC_INFO_STNG - 기본정보설정
public void insert_VEABIS(VEAStngVO paramVO) throws Exception {
insert("VEABasicInfoStngDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEABIS(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEABasicInfoStngDAO.selectDetail", paramVO);
}
public int update_VEABIS(VEAStngVO paramVO) throws Exception {
return update("VEABasicInfoStngDAO.update", paramVO);
}
public int delete_VEABIS(VEAStngVO paramVO) throws Exception {
return delete("VEABasicInfoStngDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEABIS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEABasicInfoStngDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEABIS(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEABasicInfoStngDAO.selectPagingList", paramVO);
return tlist;
}
//VEA_INSTR_HSTRY_MNG - 강사이력관리
public void insert_VEAIHM(VEAStngVO paramVO) throws Exception {
insert("VEAInstrHstryMngDAO.insert", paramVO);
}
public VEAStngVO selectDetail_VEAIHM(VEAStngVO paramVO) throws Exception {
return (VEAStngVO) select("VEAInstrHstryMngDAO.selectDetail", paramVO);
}
public int update_VEAIHM(VEAStngVO paramVO) throws Exception {
return update("VEAInstrHstryMngDAO.update", paramVO);
}
public int delete_VEAIHM(VEAStngVO paramVO) throws Exception {
return delete("VEAInstrHstryMngDAO.delete", paramVO);
}
//L
public List<VEAStngVO> selectList_VEAIHM(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrHstryMngDAO.selectList", paramVO);
return tlist;
}
public List<VEAStngVO> selectPagingList_VEAIHM(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAInstrHstryMngDAO.selectPagingList", paramVO);
return tlist;
}
}

View File

@ -94,4 +94,10 @@ public class VEAStngMixDAO extends EgovAbstractDAO {
public int selectList_VEAIMT_2(VEAStngVO paramVO) throws Exception {
return (int) select("VEAAsgnmStngMixDAO.selectList_VEAIMT_2", paramVO);
}
//L
public List<VEAStngVO> selectList_VEAIIMT_1(VEAStngVO paramVO) throws Exception {
List<VEAStngVO> tlist = (List<VEAStngVO>) list("VEAAsgnmStngMixDAO.selectList_VEAIIMT_1", paramVO);
return tlist;
}
}

View File

@ -302,4 +302,8 @@ public class VEAStngMixServiceImpl implements VEAStngMixService {
public int selectList_VEAIMT_2(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.selectList_VEAIMT_2(paramVO);
}
public List<VEAStngVO> selectList_VEAIIMT_1(VEAStngVO paramVO) throws Exception{
return vEAStngMixDAO.selectList_VEAIIMT_1(paramVO);
}
}

View File

@ -261,6 +261,44 @@ public class VEAStngServiceImpl implements VEAStngService {
}
//VEA_INSTR_INDVD_MNT_TM - 강사별월별시수
//C
public void insert_VEAIIMT(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEAIIMT(paramVO);
}
//R
public VEAStngVO selectDetail_VEAIIMT(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEAIIMT(paramVO);
}
//U
public int update_VEAIIMT(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEAIIMT(paramVO);
}
//D
public int delete_VEAIIMT(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEAIIMT(paramVO);
}
//List
public List<VEAStngVO> selectList_VEAIIMT(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEAIIMT(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEAIIMT(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEAIIMT(paramVO);
}
//D
public int delete_VEAIIMT_query(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEAIIMT_query(paramVO);
}
//VEA_INSTR_RSDNC_RATIO - 강사거주지별비율
//C
public void insert_VEAIRR(VEAStngVO paramVO) throws Exception {
@ -291,5 +329,71 @@ public class VEAStngServiceImpl implements VEAStngService {
//paging List
public List<VEAStngVO> selectPagingList_VEAIRR(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEAIRR(paramVO);
}
//VEA_BASIC_INFO_STNG - 기본설정정보
//C
public void insert_VEABIS(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEABIS(paramVO);
}
//R
public VEAStngVO selectDetail_VEABIS(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEABIS(paramVO);
}
//U
public int update_VEABIS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEABIS(paramVO);
}
//D
public int delete_VEABIS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEABIS(paramVO);
}
//List
public List<VEAStngVO> selectList_VEABIS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEABIS(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEABIS(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEABIS(paramVO);
}
//VEA_INSTR_HSTRY_MNG - 강사이력관리
//C
public void insert_VEAIHM(VEAStngVO paramVO) throws Exception {
vEAStngDAO.insert_VEAIHM(paramVO);
}
//R
public VEAStngVO selectDetail_VEAIHM(VEAStngVO paramVO) throws Exception {
return vEAStngDAO.selectDetail_VEAIHM(paramVO);
}
//U
public int update_VEAIHM(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.update_VEAIHM(paramVO);
}
//D
public int delete_VEAIHM(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.delete_VEAIHM(paramVO);
}
//List
public List<VEAStngVO> selectList_VEAIHM(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectList_VEAIHM(paramVO);
}
//paging List
public List<VEAStngVO> selectPagingList_VEAIHM(VEAStngVO paramVO) throws Exception{
return vEAStngDAO.selectPagingList_VEAIHM(paramVO);
}
}

View File

@ -901,6 +901,29 @@ public class CommonWebController {
return modelAndView;
}
// 강사 요청 서류 업르도 팝업
@RequestMapping("/popup/docFileUploadPop.do")
public String reqFileUploadPop(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model, HttpServletRequest request) throws Exception{
try {
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
vEEduAplctVO.setUserId(loginVO.getUniqId());
System.out.println("===================== loginVO.getUniqId() :: " + loginVO.getUniqId());
String fileType = request.getParameter("fileType");
System.out.println("=====================" + fileType);
model.addAttribute("fileType", fileType);
String eduDocReqOrd = request.getParameter("eduDocReqOrd");
model.addAttribute("eduDocReqOrd", eduDocReqOrd);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
return "/web/ve/comm/docFileUploadPop";
}
////////////////////////////////////////////////////////////////////////
//
//

View File

@ -26,4 +26,6 @@ public interface ScholInfoService {
int insertSelectIsltn(ScholInfoVO scholInfoVO) throws Exception;
int insertSelectIsltn20231107(ScholInfoVO scholInfoVO) throws Exception;
}

View File

@ -57,4 +57,9 @@ public class ScholInfoDAO extends EgovAbstractDAO {
public int insertSelectIsltn(ScholInfoVO scholInfoVO) throws Exception {
return update("ScholInfoDAO.insertSelectIsltn", scholInfoVO);
}
public int insertSelectIsltn20231107(ScholInfoVO scholInfoVO) throws Exception {
return update("ScholInfoDAO.insertSelectIsltn20231107", scholInfoVO);
}
}

View File

@ -64,4 +64,10 @@ public class ScholInfoServiceImpl implements ScholInfoService {
public int insertSelectIsltn(ScholInfoVO scholInfoVO) throws Exception {
return scholInfoDAO.insertSelectIsltn(scholInfoVO);
}
@Override
public int insertSelectIsltn20231107(ScholInfoVO scholInfoVO) throws Exception {
return scholInfoDAO.insertSelectIsltn20231107(scholInfoVO);
}
}

View File

@ -99,6 +99,44 @@ public class ScholInfoController {
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/popup/scholPopList";
}
/**
* 교육일정당력보기
*/
@RequestMapping("popup/calendarPopList.do")
public String popupCalendarPopList( @ModelAttribute("scholInfoVO") ScholInfoVO scholInfoVO , ModelMap model , HttpServletRequest request ) throws Exception {
//1.paging step1
PaginationInfo paginationInfo = this.setPagingStep1(scholInfoVO);
//2. paging step2
scholInfoVO = this.setPagingStep2(scholInfoVO, paginationInfo);
if (!"".equals(scholInfoVO.getSearchKeyword())) {
scholInfoVO.setSelectPagingListQuery(" AND A.SCHOL_NM LIKE '%"+scholInfoVO.getSearchKeyword()+"%' ");
}
if (!"".equals(scholInfoVO.getSearchCondition())) {
if(scholInfoVO.getSearchCondition().equals("10")) {
scholInfoVO.setScholGrade(" AND A.SCHOL_GRADE_NM LIKE '%초등%' ");
}else if(scholInfoVO.getSearchCondition().equals("20")) {
scholInfoVO.setScholGrade(" AND A.SCHOL_GRADE_NM LIKE '%중학%' ");
}else if(scholInfoVO.getSearchCondition().equals("30")) {
scholInfoVO.setScholGrade(" AND A.SCHOL_GRADE_NM LIKE '%고등%' ");
}else if(scholInfoVO.getSearchCondition().equals("40")) {
scholInfoVO.setScholGrade(" AND A.SCHOL_GRADE_NM LIKE '%특수%' ");
}else if(scholInfoVO.getSearchCondition().equals("50")) {
scholInfoVO.setScholGrade(" AND A.SCHOL_GRADE_NM LIKE '%각종%' ");
}
}
List<ScholInfoVO> scholInfoVOList = scholInfoService.selectPagingList(scholInfoVO);
//3.paging step3
paginationInfo = this.setPagingStep3(scholInfoVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
//학교정보 리스트, 페이징 정보 전달
model.addAttribute("scholList", scholInfoVOList);
return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/popup/calendarPopList";
}
//calendarPopList.jsp
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(

View File

@ -2,7 +2,6 @@ package kcc.ve.aplct.tngrVisitEdu.eduAplct.web;
import java.util.HashSet;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@ -27,6 +26,7 @@ import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngMixService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.aplct.tngrVisitEdu.eduAplct.service.EduAplctTngrService;
import kcc.ve.cmm.VeConstants;
@ -134,6 +134,11 @@ public class EduAplctTngrController {
@Resource(name = "vEAStngMixService")
private VEAStngMixService vEAStngMixService;
@Resource(name = "vEAStngService")
private VEAStngService vEAStngService;
/*
* START
* 이전작업들...
@ -160,7 +165,8 @@ public class EduAplctTngrController {
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
//2. pageing step2
vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo);
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
//List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingApplyList(vEEduAplctVO);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
@ -193,6 +199,15 @@ public class EduAplctTngrController {
model.addAttribute("list", vEPrcsDetailVOList);
model.addAttribute("uniqId", loginVO.getUniqId());
//현재 신청등록문구 가져오기
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd("TR01");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
model.addAttribute("selectBasicTRInfo", vEAStngVO);
return "/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctReg";
}

View File

@ -484,6 +484,13 @@ public class EduEndTngrController {
egovQustnrRespondManageService.selectQustnrRespondManageListCnt(searchVO);
model.addAttribute("cryptoUtil", egovCryptoUtil);
//서류 요청 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
return "/web/ve/aplct/tngrVisitEdu/eduEnd/eduEndDetail";
}

View File

@ -29,6 +29,8 @@ import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
@ -86,6 +88,9 @@ public class VEAsgnmController {
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//청소년강사 강의 요청 목록
@RequestMapping("/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.do")
public String instrAsgnmRqstList(
@ -573,6 +578,14 @@ public class VEAsgnmController {
model.addAttribute("vEEduChasiCompanionVOList", vEEduChasiCompanionVOList);
//요청서류 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEInstrAsgnmVOInfo.getEduAplctOrd());
veEduDocReqVO.setSbmtId(loginVO.getUniqId());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
}catch(Exception ex) {
ex.printStackTrace();

View File

@ -54,4 +54,7 @@ public interface VEEduAplctService {
//서류요청 목록 조회
List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception;
//요청서류 제출
void updateSbmtAtchFileId(VEEduAplctVO paramVO) throws Exception;
}

View File

@ -147,4 +147,8 @@ public class VEEduAplctDAO extends EgovAbstractDAO {
public List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception {
return (List<VEEduAplctVO>) list("VEEduAplctDAO.selectDocReqList", paramVO);
}
public void updateSbmtAtchFileId(VEEduAplctVO paramVO) throws Exception {
insert("VEEduAplctDAO.updateSbmtAtchFileId", paramVO);
}
}

View File

@ -171,4 +171,8 @@ public class VEEduAplctServiceImpl implements VEEduAplctService {
public List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception{
return vEEduAplctDAO.selectDocReqList(paramVO);
}
public void updateSbmtAtchFileId(VEEduAplctVO paramVO) throws Exception {
vEEduAplctDAO.updateSbmtAtchFileId(paramVO);
}
}

View File

@ -46,6 +46,7 @@ import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
@ -112,6 +113,9 @@ public class VEEduEndController {
@Resource(name="vEAsgnmNotiService")
private VEAsgnmNotiService vEAsgnmNotiService;
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class);
/**
@ -324,6 +328,15 @@ public class VEEduEndController {
vEAsgnmNotiVO.setTblUniqOrd(vEInstrAsgnmVO.getEduChasiOrd());
vEAsgnmNotiVO.setFrstRegisterId(loginVO.getUniqId());
//요청서류 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEInstrAsgnmVOInfo.getEduAplctOrd());
veEduDocReqVO.setSbmtId(loginVO.getUniqId());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
try {
System.out.println("session.getAttribute(menuNo).toString()");
System.out.println(session.getId());

View File

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

View File

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

View File

@ -1,48 +1,50 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service;
import java.util.List;
public interface CndtnTrgtMngService {
List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO);
void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO);
/* //C
void insert(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
//U
int update(VEPrcsDetailVO paramVO) throws Exception;
//D
int delete(VEPrcsDetailVO paramVO) throws Exception;
//L
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
//List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception;
//Page List
List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
//교육과정 리스트 순서 수정
void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception;*/
}
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service;
import java.util.List;
public interface CndtnTrgtMngService {
List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO);
void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO);
int findCntreqNmber(String reqNmbrTemp);
/* //C
void insert(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
//U
int update(VEPrcsDetailVO paramVO) throws Exception;
//D
int delete(VEPrcsDetailVO paramVO) throws Exception;
//L
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
//List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception;
//Page List
List<VEPrcsDetailVO> selectPagingList(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 sex; // 성별
private String reqNmbr; // 의뢰번호
private String reqNmbrTemp; // 의뢰번호
private String prsctrNm; // 검사성명
private String reqStateCd; // 의뢰상태코드
private String prcsAplctPrdOrdCmplt;// 중복확인을 위한 신청강의 PK
private String atchFileId;// 첨부파일 ID
@ -165,6 +167,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setReqNmbr(String reqNmbr) {
this.reqNmbr = reqNmbr;
}
public String getReqNmbrTemp() {
return reqNmbrTemp;
}
public void setReqNmbrTemp(String reqNmbrTemp) {
this.reqNmbrTemp = reqNmbrTemp;
}
public String getPrsctrNm() {
return prsctrNm;
}
@ -183,6 +191,12 @@ public class CndtnTrgtMngVO extends ComDefaultVO implements Serializable {
public void setPrcsAplctPrdOrdCmplt(String prcsAplctPrdOrdCmplt) {
this.prcsAplctPrdOrdCmplt = prcsAplctPrdOrdCmplt;
}
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}

View File

@ -1,125 +1,129 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Repository("cndtnTrgtInfoMngDAO")
public class CndtnTrgtMngDAO extends EgovAbstractDAO {
/* *//**
* 등록 - C
* @param VELctrDetailVO
* @throws Exception
*//*
public void insert(VEPrcsDetailVO paramVO) throws Exception {
insert("VEPrcsAplctPrdDAO.insert", paramVO);
}
*//**
* 상세보기 - R
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*//*
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO);
}
*//**
* 수정 - U
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*//*
public int update(VEPrcsDetailVO paramVO) throws Exception {
return update("VEPrcsAplctPrdDAO.update", paramVO);
}
*//**
* 삭제 - D
* @param addrAgencyVO
* @return
* @throws Exception
*//*
public int delete(VEPrcsDetailVO paramVO) throws Exception {
return delete("VEPrcsAplctPrdDAO.delete", paramVO);
}
//L
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO);
return tlist;
}
*//**
* L - Page
* @param addrVO
* @return
* @throws Exception
*//*
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO);
return tlist;
}
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
}
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}*/
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.selectPagingList", cndtnTrgtInfoMngVO);
}
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
insert("cndtnTrgtInfoMngDAO.insert", cndtnTrgtInfoMngVO);
}
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return (CndtnTrgtMngVO) select("cndtnTrgtInfoMngDAO.selectDetail", cndtnTrgtInfoVO);
}
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
update("cndtnTrgtInfoMngDAO.update", cndtnTrgtInfoMngVO);
}
public String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd", cndtnTrgtInfoMngVO);
}
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
update("cndtnTrgtInfoMngDAO.updateUserId", cndtnTrgtMngVO);
}
public String findByTrgtNmAndDBirthAndUserIdAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd", cndtnTrgtInfoMngVO);
}
}
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Repository("cndtnTrgtInfoMngDAO")
public class CndtnTrgtMngDAO extends EgovAbstractDAO {
/* *//**
* 등록 - C
* @param VELctrDetailVO
* @throws Exception
*//*
public void insert(VEPrcsDetailVO paramVO) throws Exception {
insert("VEPrcsAplctPrdDAO.insert", paramVO);
}
*//**
* 상세보기 - R
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*//*
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetail", paramVO);
}
*//**
* 수정 - U
* @param CndtnTrgtInfoMngVO
* @return
* @throws Exception
*//*
public int update(VEPrcsDetailVO paramVO) throws Exception {
return update("VEPrcsAplctPrdDAO.update", paramVO);
}
*//**
* 삭제 - D
* @param addrAgencyVO
* @return
* @throws Exception
*//*
public int delete(VEPrcsDetailVO paramVO) throws Exception {
return delete("VEPrcsAplctPrdDAO.delete", paramVO);
}
//L
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectList4Fndth", paramVO);
return tlist;
}
*//**
* L - Page
* @param addrVO
* @return
* @throws Exception
*//*
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList", paramVO);
return tlist;
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth", paramVO);
return tlist;
}
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne", paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
}
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}*/
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (List<CndtnTrgtMngVO>) list("cndtnTrgtInfoMngDAO.selectPagingList", cndtnTrgtInfoMngVO);
}
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
insert("cndtnTrgtInfoMngDAO.insert", cndtnTrgtInfoMngVO);
}
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return (CndtnTrgtMngVO) select("cndtnTrgtInfoMngDAO.selectDetail", cndtnTrgtInfoVO);
}
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
update("cndtnTrgtInfoMngDAO.update", cndtnTrgtInfoMngVO);
}
public String findByTrgtNmAndDBirthAndEduStateCd(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndEduStateCd", cndtnTrgtInfoMngVO);
}
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
update("cndtnTrgtInfoMngDAO.updateUserId", cndtnTrgtMngVO);
}
public String findByTrgtNmAndDBirthAndUserIdAndEduStateCd(CndtnTrgtMngVO 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;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Service("cndtnTrgtInfoMngService")
public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정
//대상자
@Resource(name="cndtnTrgtInfoMngDAO")
private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO;
@Override
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO);
}
@Override
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO);
}
@Override
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO);
}
@Override
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO);
}
@Override
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
}
/*
//C
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO);
}
//R
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetail(paramVO);
}
//U
public int update(VEPrcsDetailVO paramVO) throws Exception{
vEPrcsAplctPrdDAO.update(paramVO);
return vEPrcsDAO.update(paramVO);
}
//D
public int delete(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.delete(paramVO);
}
//List
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList(paramVO);
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO);
}
//paging List
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList(paramVO);
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO);
}
//R
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO);
}
@Override
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
}*/
}
package kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
@Service("cndtnTrgtInfoMngService")
public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정
//대상자
@Resource(name="cndtnTrgtInfoMngDAO")
private CndtnTrgtMngDAO cndtnTrgtInfoMngDAO;
@Override
public List<CndtnTrgtMngVO> selectPagingList(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
return cndtnTrgtInfoMngDAO.selectPagingList(cndtnTrgtInfoMngVO);
}
@Override
public void insert(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.insert(cndtnTrgtInfoMngVO);
}
@Override
public CndtnTrgtMngVO selectDetail(CndtnTrgtMngVO cndtnTrgtInfoVO) {
return cndtnTrgtInfoMngDAO.selectDetail(cndtnTrgtInfoVO);
}
@Override
public void update(CndtnTrgtMngVO cndtnTrgtInfoMngVO) {
cndtnTrgtInfoMngDAO.update(cndtnTrgtInfoMngVO);
}
@Override
public void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO) {
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
}
@Override
public int findCntreqNmber(String reqNmbrTemp) {
return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
}
/*
//C
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO);
}
//R
public VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetail(paramVO);
}
//U
public int update(VEPrcsDetailVO paramVO) throws Exception{
vEPrcsAplctPrdDAO.update(paramVO);
return vEPrcsDAO.update(paramVO);
}
//D
public int delete(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.delete(paramVO);
}
//List
public List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList(paramVO);
}
public List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectList4Fndth(paramVO);
}
//paging List
public List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList(paramVO);
}
public List<VEPrcsDetailVO> selectPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsAplctPrdDAO.selectPagingList4Fndth(paramVO);
}
//R
public VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne(paramVO);
}
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
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;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -13,12 +17,17 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.DateUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
@ -85,6 +94,18 @@ public class CndtnTrgtMngController {
//과정차시 관리
@Resource(name = "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 로그인 정보 가져오기
System.out.println("loginVO.getAuthority() :: "+ loginVO.getAuthority());
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
String userWork = this.getUserWork(request);
cndtnTrgtInfoMngVO.setSearchCondition(userWork);
//1.pageing step1
PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO);
@ -186,6 +212,90 @@ public class CndtnTrgtMngController {
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
* @author : 이호영
@ -262,6 +372,7 @@ public class CndtnTrgtMngController {
public String cndtnEduPrcsMngReg(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
@ -271,7 +382,9 @@ public class CndtnTrgtMngController {
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
String userWork = this.getUserWork(request);
model.addAttribute("userWork", userWork);
return "oprtn/cndtnSspnIdtmt/trgtReg";
}
@ -283,8 +396,8 @@ public class CndtnTrgtMngController {
public ModelAndView cndtnEduPrcsMngRegAjax(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -304,13 +417,36 @@ public class CndtnTrgtMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//step2.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
String s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "APLCT_" //file_name_prefix
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
// 사건번호
// 형식 : - 예시로 A-서울중앙-100-23-1 경우
// A (성인/미성년 구분), 서울중앙, 100, 23, 1
// 성인 A / 미성년 Y, 검찰청명, 검찰청 고유번호, 연도, 접수번호
cndtnTrgtInfoMngVO.setReqNmbr(this.getReqNmbr(cndtnTrgtInfoMngVO));
cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId());
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId); //학교장직인 첨부파일
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
// vEPrcsDetailVO.setPrcsOrd(prcsOrd);
// vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
// vEPrcsDetailVO.setUseYn("Y");
// vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
@ -321,7 +457,49 @@ public class CndtnTrgtMngController {
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
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -351,6 +530,56 @@ public class CndtnTrgtMngController {
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//step2.첨부파일 체크 저장 하기
String s_scholSealAtchFileId = "";
s_scholSealAtchFileId = cndtnTrgtInfoMngVO.getAtchFileId();
//DB에서 실제 첨부파일 존재 여부 확인
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(s_scholSealAtchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
if (result.size()<=0) {
s_scholSealAtchFileId = "";
}
//step3.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
//기존 파일 존재 여부에 따라서 insert or update 처리
if ("".equals(s_scholSealAtchFileId)) {
//atchFileId = this.fileValCheckNdbInsert(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit); //EXT, MB size and ea
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "APLCT_"
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
cndtnTrgtInfoMngVO.setAtchFileId(s_scholSealAtchFileId);
}else {
//atchFileId = this.fileValCheckNdbUpdate(multiRequest, modelAndView, checkFileUtil.getS_exts(), i_limit_size, i_file_limit, atchFileId); //EXT, MB size and ea
s_scholSealAtchFileId = checkFileUtil.fileValCheckNdbUpdate(
multiRequest, modelAndView
, "APLCT_"
, s_file_exts
, i_limit_size
, i_file_limit
, s_scholSealAtchFileId
); //EXT, MB size and ea
}
if ("ERROR".equals(s_scholSealAtchFileId)) return modelAndView;
cndtnTrgtInfoMngVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
cndtnTrgtInfoMngService.update(cndtnTrgtInfoMngVO);
@ -363,7 +592,7 @@ public class CndtnTrgtMngController {
}
/**
* 조건부기소유예과정 상세화면
* 대상자목록
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtDetail.do")
public String trgtDetail(
@ -383,10 +612,49 @@ public class CndtnTrgtMngController {
//과정 조회
CndtnTrgtMngVO cndtnTrgtInfoVO = cndtnTrgtInfoMngService.selectDetail(cndtnTrgtInfoMngVO);
model.addAttribute("info", cndtnTrgtInfoVO);
//세부과정 목록 조회
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(cndtnTrgtInfoVO.getAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "oprtn/cndtnSspnIdtmt/trgtDetail";
}
/**
* 대상자목록
*/
@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);
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";
}
@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

@ -42,6 +42,8 @@ import kcc.let.cop.bbs.service.Board;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoService;
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
@ -184,6 +186,9 @@ public class OprtnInstrAdultPrflContoller {
@Resource(name = "scholInfoService")
private ScholInfoService scholInfoService;
//강의설정 관리
@Resource(name = "vEAStngService")
private VEAStngService vEAStngService;
/**
* 1.강사등록신청 목록 조회 -
@ -1116,6 +1121,14 @@ public class OprtnInstrAdultPrflContoller {
lctrDetailVO.setAprvlCd("10"); // 강의 설정 요청 리스트만 불러오기
List<VELctrDetailVO> lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO);
model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo);
// 이력관리 리스트
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setUserId(vEInstrDetailVO.getUserId());
List<VEAStngVO> selectList_VEAIHM = vEAStngService.selectList_VEAIHM(vEAStngVO);
model.addAttribute("selectListVEAIHM",selectList_VEAIHM);
return "/oprtn/adultVisitEdu/instrMngDetail";
}

View File

@ -46,6 +46,9 @@ import kcc.let.cop.bbs.service.Board;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngMixService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoService;
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduPnltyService;
@ -209,6 +212,18 @@ public class OprtnInstrTngrPrflContoller {
@Resource(name = "vEEduPnltyService")
private VEEduPnltyService vEEduPnltyService;
//강의설정 관리
@Resource(name = "vEAStngService")
private VEAStngService vEAStngService;
//강의설정 관리(MIX)
@Resource(name = "vEAStngMixService")
private VEAStngMixService vEAStngMixService;
//강사료 순번 idgen
@Resource(name="instrHstryOrdGnrService")
private EgovIdGnrService instrHstryOrdGnrService;
/**
* 1.강사등록신청 목록 조회 -
*/
@ -1186,11 +1201,20 @@ public class OprtnInstrTngrPrflContoller {
for (int i=1; i<sb.size(); i++) {
String[] s_tmp = sb.get(i).split(s_split);
System.out.println("----------");
System.out.println(i);
System.out.println(sb.get(i));
System.out.println("==========");
//도서지역학교 등록 처리 동일한 정보가 있는지 확인.
//ve_schol 테이블에 학교명이 중복되지 않으면서, ve_schol_islnt 테이블에 데이터가 없으면 insert, 있으면 update
scholInfoVO.setScholNm(s_tmp[0]);
scholInfoVO.setStndrdScholCd(s_tmp[0]);
scholInfoVO.setIsltnYn(s_tmp[2]);
scholInfoVO.setIsltn2Yn(s_tmp[3]);
scholInfoVO.setIsltn3Yn(s_tmp[4]);
scholInfoVO.setPpltnReducAreaYn(s_tmp[5]);
int resultCnt = scholInfoService.insertSelectIsltn(scholInfoVO);
int resultCnt = scholInfoService.insertSelectIsltn20231107(scholInfoVO);
if(resultCnt > 0) {
succCnt++;
@ -1723,6 +1747,13 @@ public class OprtnInstrTngrPrflContoller {
List<VEInstrAsgnmVO> vEInstrAsgnmVOList = vEEduPnltyService.selectList(vEInstrAsgnmVO);
model.addAttribute("pnltyList",vEInstrAsgnmVOList);
// 이력관리 리스트
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setUserId(vEInstrDetailVO.getUserId());
List<VEAStngVO> selectList_VEAIHM = vEAStngService.selectList_VEAIHM(vEAStngVO);
model.addAttribute("selectListVEAIHM",selectList_VEAIHM);
//누계정보1
//List<VELctrDetailVO> selectAsgnmInfoT1List = vEInstrMixService.selectAsgnmInfoT1(vEInstrDetailVODetail);
@ -1742,6 +1773,50 @@ public class OprtnInstrTngrPrflContoller {
return "/oprtn/tngrVisitEdu/instrMngDetail";
}
/**
* 이력 삭제 처리
*/
@RequestMapping("/ve/oprtn/instr/tngrVisitEdu/instrInfo/popup/instrHstryDelAjax.do")
public ModelAndView instrHstryDelPopupAjax(
@ModelAttribute("vEAStngVO") VEAStngVO vEAStngVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//교육차시강사배정 테이블에 패널티 정보 삭제
try {
//목록에서 패널티를 여러 유저에게 등록
//vEEduPnltyService.delete(vEInstrAsgnmVO);
//VEAStngVO vEAStngVO = new VEAStngVO();
//vEAStngVO.setInstrHstryOrd(instrHstryOrd);
vEAStngService.delete_VEAIHM(vEAStngVO);
} catch (Exception ex) {
ex.printStackTrace();
}
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 6. 강사 관리 상세 조회
*/
@ -2594,7 +2669,100 @@ public class OprtnInstrTngrPrflContoller {
return modelAndView;
}
/**
* 6. 강사 이력 관리 팝업
*/
@RequestMapping("/kccadr/oprtn/tngrVisitEdu/popup/instrHstryMngPopup.do")
public String advRndsStngMngPopup(
@ModelAttribute("vEAStngVO") VEAStngVO vEAStngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리====================================
try {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
//등록된 해당 년도의 회차리스트 정보 가져오기
List<VEAStngVO> selectBasicList = vEAStngService.selectList_VEALRS(vEAStngVO);
model.addAttribute("selectBasicList", selectBasicList);
}catch(Exception ex)
{
ex.printStackTrace();
}
return "oprtn/tngrVisitEdu/popup/instrHstryMngPopup";
}
/**
* 강사 이력 등록
*/
@RequestMapping(value="/kccadr/oprtn/tngrVisitEdu/popup/instrHstryMngPopupAjax.do")
public ModelAndView instrHstryMngPopupAjax(
ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
//System.out.println(request.getParameter("instrDiv"));
//System.out.println(request.getParameter("ddlnStateCd"));
try {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
String s_ord = instrHstryOrdGnrService.getNextStringId();
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setInstrHstryOrd(s_ord);
vEAStngVO.setUserId(request.getParameter("userId"));
vEAStngVO.setSbjct(request.getParameter("sbjct"));
vEAStngVO.setCn(request.getParameter("cn"));
vEAStngVO.setStrtDt(request.getParameter("rgstrStrtPnttm_dt"));
vEAStngVO.setDdlnDt(request.getParameter("rgstrDdlnPnttm_dt"));
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIHM(vEAStngVO);
}catch(Exception ex) {
ex.printStackTrace();
}
modelAndView.addObject("result", "success");
return modelAndView;
}
/////////////////////////////////////////////////////////////////////////////////////
//
//

View File

@ -18,6 +18,7 @@ import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uss.ion.cnt.service.CntManageVO;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngMixService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngService;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
@ -175,6 +176,92 @@ public class AdvAreaLctrMngTngrController {
//회차 순번
@Resource(name="dtPsblTmQnttyGnrService")
private EgovIdGnrService dtPsblTmQnttyGnrService;
/**
* 청소년 등록화면 문구 수정 - TR01
* TL0E
* TL0M
* TL0H
*/
@RequestMapping("/kccadr/oprtn/tngrVisitEdu/advStngMngTRAjax.do")
public ModelAndView advStngMngTRAjax(
ModelMap model
, HttpServletRequest request ) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
String s_cn = request.getParameter("cn");
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setCn(s_cn);
vEAStngVO.setStngCd("TR01");
vEAStngService.update_VEABIS(vEAStngVO);
modelAndView.addObject("result", "success");
}catch(Exception e) {
System.err.println("IOException Occured");
modelAndView.addObject("result", "fail");
}
return modelAndView;
}
/**
* 기본 정보 설정 화면
*/
@RequestMapping("/kccadr/oprtn/tngrVisitEdu/advStngMngList.do")
public String advStngMngList(
@ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
, ModelMap model
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//현재 신청등록문구 가져오기
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd("TR01");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
model.addAttribute("selectBasicTRInfo", vEAStngVO);
return "oprtn/tngrVisitEdu/advStngMngList";
}
/**
* 청소년 교육확정 메일본문 미리보기 페이지
*/
@RequestMapping("/kccadr/oprtn/tngrVisitEdu/popup/eduAplctRegPreviewDetail.do")
public String eduAplctRegPreviewDetail( @ModelAttribute("cntManageVO") CntManageVO cntManageVO
, ModelMap model
, HttpServletRequest request ) throws Exception {
try {
//현재 신청등록문구 가져오기
VEAStngVO vEAStngVO = new VEAStngVO();
vEAStngVO.setStngCd("TR01");
vEAStngVO = vEAStngService.selectDetail_VEABIS(vEAStngVO);
model.addAttribute("selectBasicTRInfo", vEAStngVO);
}catch(Exception ex) {
ex.printStackTrace();
}
return "oprtn/tngrVisitEdu/popup/eduAplctRegPreviewDetail";
}
/**
* 지역별 강의관리 목록 화면
@ -327,6 +414,73 @@ public class AdvAreaLctrMngTngrController {
return modelAndView;
}
/**
* 지역별 접수시간 처리 팝업
*/
@RequestMapping(value="/kccadr/oprtn/tngrVisitEdu/areaLctrMngrgstrPsblTmAllAjax.do")
public ModelAndView areaLctrMngrgstrPsblTmAllAjax(
VEAStngVO vEAStngVO
//, RedirectAttributes redirectAttributes
, ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
/*
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
*/
//로그인 처리====================================
try {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
vEAStngVO.setLastUpdusrId(loginVO.getUniqId());
String p_ttlEduCnfrmPsblChasi = request.getParameter("ttlEduCnfrmPsblChasi");
String p_areaCd = request.getParameter("areaCd");
String[] a_ttlEduCnfrmPsblChasi = p_ttlEduCnfrmPsblChasi.split("_");
String[] a_areaCd = p_areaCd.split("_");
for (int i=0;i<a_areaCd.length;i++) {
String s_ttlEduCnfrmPsblChasi = a_ttlEduCnfrmPsblChasi[i];
String s_areaCd = a_areaCd[i];
if (!"".equals(s_areaCd)) {
vEAStngVO.setAreaCd(s_areaCd);
vEAStngVO.setTtlEduCnfrmPsblChasi(s_ttlEduCnfrmPsblChasi);
int i_ret = vEAStngService.update_VEAALS(vEAStngVO);
if (i_ret>0) modelAndView.addObject("result", "success");
else modelAndView.addObject("result", "fail");
}
}
//modelAndView.addObject("result", "success");
}catch(Exception ex) {
ex.printStackTrace();
}
return modelAndView;
}
/**
@ -1016,6 +1170,60 @@ public class AdvAreaLctrMngTngrController {
}catch(Exception ex)
{
ex.printStackTrace();
}
return "oprtn/tngrVisitEdu/popup/advLctrPrdCalendarPopup";
}
/**
* 강의가능기간 달력 팝업 - 해당 회차의 선택한 기간 정보에 대한 달력을 띄운다.
*/
@RequestMapping("/web/ve/tngrVisitEdu/popup/advLctrPrdCalendarPopup.do")
public String webVeadvLctrPrdCalendarPopup(
@ModelAttribute("vEAStngVO") VEAStngVO vEAStngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
//String s_userCheckNInfo = checkLoginUtil.userCheckNInfo(model, request);
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리====================================
try {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
//선택한 년도&차시의 교육가능시수 & 차시 정보
//vEAStngVO.setYr(vEAStngVO.getStngYr());
//vEAStngVO.setRndsOrd(vELctrDetailVO.getRndsOrd());
//VEAStngVO selectBasicInfo = vEAStngMixService.selectDetail_VEALYS(vEAStngVO);
//model.addAttribute("selectBasicInfo", selectBasicInfo);
//등록된 해당 년도 회차의 강의가능리스트 정보 가져오기
//List<VEAStngVO> selectBasicList = vEAStngService.selectList_VEALPPS(vEAStngVO);
//model.addAttribute("selectBasicList", selectBasicList);
System.out.println(vEAStngVO.getRndsOrd());
System.out.println(vEAStngVO.getRndsOrd());
model.addAttribute("rndsOrd", vEAStngVO.getRndsOrd());
}catch(Exception ex)
{
ex.printStackTrace();
@ -1154,8 +1362,21 @@ public class AdvAreaLctrMngTngrController {
System.out.println("vList.get(i).getDtPsblTmQnttyOrd()");
System.out.println(vList.get(i).getDtPsblTmQnttyOrd());
System.out.println(vList.get(i).getRndsNm());
if (vList.get(i).getTitle().equals("불가능"))
vList.get(i).setColor("#FF0000");
{
vList.get(i).setColor("#FF0000");
}else if (Integer.parseInt(vList.get(i).getTitleF())>=Integer.parseInt(vList.get(i).getTitleB()))
{
vList.get(i).setColor("#FF0000");
}else if (Integer.parseInt(vList.get(i).getTitleF())*5>=Integer.parseInt(vList.get(i).getTitleB())*4)
{
vList.get(i).setColor("#FFAA00");
}
}catch(Exception ex) {
ex.printStackTrace();
}

View File

@ -666,6 +666,7 @@ public class AreaLctrMngTngrController {
}
/**
* 년도 / 반기의 접수 일자 저장
*/
@ -852,6 +853,132 @@ public class AreaLctrMngTngrController {
}
/**
* 강사이력 등록 처리
*/
@RequestMapping("popup/instrHstryRegAjax.do")
public ModelAndView instrHstryRegPopupAjax(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//교육차시강사배정 테이블에 패널티 정보 update
try {
//목록에서 패널티를 여러 유저에게 등록
if(!"".equals(vEInstrAsgnmVO.getChk()) && vEInstrAsgnmVO.getChk() != null) {
String[] splitChk = vEInstrAsgnmVO.getChk().split(",");
String[] userId = vEInstrAsgnmVO.getUserId().split(",");
for(int i=0; i<splitChk.length; i++) {
if(!"".equals(splitChk[i])) {
String[] aplctChasi = splitChk[i].split("\\@");
VEInstrAsgnmVO vo = new VEInstrAsgnmVO();
vo.setEduAplctOrd(aplctChasi[0]);
vo.setEduChasiOrd(aplctChasi[1]);
vo.setPnltyCd(vEInstrAsgnmVO.getPnltyCd());
vEInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vo.setUserId(userId[i]);
String s_pnltyOrd = pnltyOrdGnrService.getNextStringId();
vo.setPnltyOrd(s_pnltyOrd);
vEEduPnltyService.insert(vo);
}
}
} else {
String[] pnltyCd = vEInstrAsgnmVO.getPnltyCd().split(",");
vEInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEInstrAsgnmVO.setUserId(vEInstrAsgnmVO.getUserId());
/*
// merge로 바꾸고 주석처리
// 기존에 등록된 패널티를 삭제
vEInstrAsgnmVO.setPnltyCd("");
vEEduPnltyService.delete(vEInstrAsgnmVO);
*/
// 체크한 패널티 코드를 insert
for (int i=0; i<pnltyCd.length; i++) {
vEInstrAsgnmVO.setPnltyCd(pnltyCd[i]);
String s_pnltyOrd = pnltyOrdGnrService.getNextStringId();
vEInstrAsgnmVO.setPnltyOrd(s_pnltyOrd);
vEEduPnltyService.insert(vEInstrAsgnmVO);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
modelAndView.addObject("result", "success");
return modelAndView;
}
/**
* 강사이력 삭제 처리
*/
/*
@RequestMapping("popup/instrHstryDelAjax.do")
public ModelAndView instrHstryDelPopupAjax(
@ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//교육차시강사배정 테이블에 패널티 정보 삭제
try {
//목록에서 패널티를 여러 유저에게 등록
vEEduPnltyService.delete(vEInstrAsgnmVO);
} catch (Exception ex) {
ex.printStackTrace();
}
modelAndView.addObject("result", "success");
return modelAndView;
}
*/
/**
* 강사료 등록 처리
*/

View File

@ -463,6 +463,13 @@ public class EduAplctMngTngrController {
System.out.println(session.toString());
System.out.println(session.getAttribute("menuNo").toString());
//서류 요청 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
return "oprtn/tngrVisitEdu/eduAplctMngDetail";
}
@ -964,6 +971,13 @@ public class EduAplctMngTngrController {
}
/**
* 교육신청관리 상세 화면
*/
@RequestMapping("popup/eduDocReqAlertPopup.do")
public String eduDocReqAlertPopup( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
return "oprtn/tngrVisitEdu/popup/eduDocReqAlertPopup";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//

View File

@ -447,6 +447,13 @@ public class NewEduCnfrmMngTngrController {
String s_yrMnt = request.getParameter("yrMnt");
String s_stngYr = request.getParameter("stngYr");
String[] a_yrMnt = s_yrMnt.split("[.]");
System.out.println(s_yrMnt);
System.out.println(s_stngYr);
System.out.println(a_yrMnt.length);
//#1
VEInstrDetailVO vEInstrDetailVO4 = null; //일별강사수 정보 - #1
int i_rate_ttl = 0; //비율 총합
@ -570,7 +577,132 @@ public class NewEduCnfrmMngTngrController {
int i_ret = vEAStngService.update_VEAIMT(vEAStngVO);
//개별 강사의 계산한 년월의 강의일수와 최대차시수를 넣어준다.
{
//step1.대상강사 리스트
//step2.강사별 월별시수 넣기
// 1.년도
// 2.강사 id
// 3.설정강의일수
// 4.최대 가능 차시수
// 5.등록자 id
System.out.println(a_yrMnt[0]);
System.out.println(a_yrMnt[1]);
//작성자 정보
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//instrVEAStngVO.setFrstRegisterId(loginVO.getUniqId());
//step1.대상강사 리스트
List<VEAStngVO> selectList_VEAIIMT_1 = vEAStngMixService.selectList_VEAIIMT_1(vEAStngVO);
for (int i=0;i<selectList_VEAIIMT_1.size();i++) {
VEAStngVO instrVEAStngVO = selectList_VEAIIMT_1.get(i);
instrVEAStngVO.setYr(a_yrMnt[0]);
if ("01".equals(a_yrMnt[1])) {
instrVEAStngVO.setM01Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM01Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM01RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("02".equals(a_yrMnt[1])) {
instrVEAStngVO.setM02Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM02Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM02RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("03".equals(a_yrMnt[1])) {
instrVEAStngVO.setM03Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM03Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM03RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("04".equals(a_yrMnt[1])) {
instrVEAStngVO.setM04Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM04Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM04RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("05".equals(a_yrMnt[1])) {
instrVEAStngVO.setM05Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM05Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM05RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("06".equals(a_yrMnt[1])) {
instrVEAStngVO.setM06Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM06Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM06RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("07".equals(a_yrMnt[1])) {
instrVEAStngVO.setM07Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM07Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM07RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("08".equals(a_yrMnt[1])) {
instrVEAStngVO.setM08Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM08Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM08RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("09".equals(a_yrMnt[1])) {
instrVEAStngVO.setM09Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM09Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM09RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("10".equals(a_yrMnt[1])) {
instrVEAStngVO.setM10Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM10Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM10RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("11".equals(a_yrMnt[1])) {
instrVEAStngVO.setM11Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM11Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM11RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}else if ("12".equals(a_yrMnt[1])) {
instrVEAStngVO.setM12Ea(instrVEAStngVO.getWorkWeekCnt());
instrVEAStngVO.setM12Tm(Integer.toString(i_rate_day*Integer.parseInt(instrVEAStngVO.getWorkWeekCnt())));
instrVEAStngVO.setM12RegisterId(loginVO.getUniqId());
vEAStngService.insert_VEAIIMT(instrVEAStngVO);
}
}
}
modelAndView.addObject("result", "success");
@ -607,6 +739,7 @@ public class NewEduCnfrmMngTngrController {
//step5.일별 총합 차시 계산#2
String s_yrMnt = request.getParameter("yrMnt");
String[] a_yrMnt= s_yrMnt.split("[.]");
//step3.1일당 비율 계산
//강사 월별 시수 계산 가져오기
@ -617,6 +750,11 @@ public class NewEduCnfrmMngTngrController {
int i_ret = vEAStngService.delete_VEAIMT(vEAStngVO);
vEAStngVO.setYr(a_yrMnt[0]);
vEAStngVO.setSetQuery(" SET m"+a_yrMnt[1]+"_ea=null , m"+a_yrMnt[1]+"_tm=null , m"+a_yrMnt[1]+"_regist_pnttm=null , m"+a_yrMnt[1]+"_register_id=null ");
i_ret = vEAStngService.delete_VEAIIMT_query(vEAStngVO);
modelAndView.addObject("result", "success");

View File

@ -697,6 +697,14 @@ public class EduRsltMngTngrController {
vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO);
//서류 요청 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
}catch(Exception ex) {
ex.printStackTrace();
}

View File

@ -95,7 +95,8 @@ public class ScholMngTngrController {
//2.1 학교명 검색
if(StringUtil.isNotEmpty(scholInfoVO.getSearchKeyword())){
selectCondition += "AND a.SCHOL_NM LIKE CONCAT ('%', '" +scholInfoVO.getSearchKeyword() + "', '%')";
//selectCondition += "AND a.SCHOL_NM LIKE CONCAT ('%', '" +scholInfoVO.getSearchKeyword() + "', '%')";
selectCondition += "AND a.SCHOL_NM LIKE '%'|| '" +scholInfoVO.getSearchKeyword() + "'|| '%'";
}
//2.2 학교종류
if(StringUtil.isNotEmpty(scholInfoVO.getScholDivCd())){

View File

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

View File

@ -2967,5 +2967,19 @@
<property name="cipers" value="10" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
<!-- 23.강사이력관리순번 vea_instr_hstry_mng -->
<bean name="instrHstryOrdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="instrHstryOrdStrategy" /><!-- strategy 값 수정 -->
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="INSTRHSTRY_ORD"/><!-- tableName 값 수정 -->
</bean>
<!-- 서류요청순번 ID Generation Strategy Config -->
<bean name="instrHstryOrdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="instrHstry_" /><!-- prefix 값 수정 -->
<property name="cipers" value="9" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
</beans>

View File

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

View File

@ -127,8 +127,12 @@
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrAsgnmCndtn_SQL_Tibero.xml"/> <!-- 강사배정조건 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrRsdncRatio_SQL_Tibero.xml"/> <!-- 강사주거지별비율 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrMntTm_SQL_Tibero.xml"/> <!-- 강사월별시수 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrIndvdMntTm_SQL_Tibero.xml"/> <!-- 강사별월별시수 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrHstryMng_SQL_Tibero.xml"/> <!-- 강사이력관리 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAAsgnmStngMix_SQL_Tibero.xml"/> <!-- 강사배정(MIX) -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEACmpltCrtfcMix_SQL_Tibero.xml"/> <!-- 이수증(MIX) -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEABasicInfoStng_SQL_Tibero.xml"/> <!-- 기본정보 -->
</sqlMapConfig>

View File

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

View File

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

View File

@ -68,9 +68,11 @@
</select>
<select id="CmmnDetailCodeManageDAO.selectCmmnDetailCodeDetail" parameterClass="CmmnDetailCode" resultClass="CmmnDetailCode">
/* CmmnDetailCodeManageDAO.selectCmmnDetailCodeDetail */
<![CDATA[
SELECT A.CODE_ID codeId
, B.CODE_ID_NM codeIdNm
, A.SORT sort
, A.CODE code
, A.CODE_NM codeNm
, A.CODE_DC codeDc
@ -177,6 +179,7 @@
</select>
<update id="CmmnDetailCodeManageDAO.updateCmmnDetailCodePk" parameterClass="CmmnDetailCode">
/* CmmnDetailCodeManageDAO.updateCmmnDetailCodePk */
UPDATE LETTCCMMNDETAILCODE
SET CODE_NM = #codeNm#
<isNotEmpty property="codeDc">
@ -185,6 +188,9 @@
<isNotEmpty property="useAt">
, USE_AT = #useAt#
</isNotEmpty>
<isNotEmpty property="sort">
, SORT = #sort#
</isNotEmpty>
, LAST_UPDT_PNTTM = SYSDATE
, LAST_UPDUSR_ID = #lastUpdusrId#
, CODE = #code#

View File

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

View File

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

View File

@ -950,7 +950,7 @@
,LAST_UPDUSR_ID = #lastUpdusrId#
<isNotEmpty property="sbmtYn">
, SBMT_YN = #sbmtYn#
, SBMT_PNTTM = IF(#sbmtYn# = 'Y', SYSDATE, NULL)
, SBMT_PNTTM = CASE WHEN #sbmtYn# = 'Y' THEN SYSDATE ELSE NULL END
</isNotEmpty>
<isNotEmpty property="aprvlCd">
, APRVL_CD = #aprvlCd#
@ -1247,10 +1247,10 @@
A.EDU_DOC_REQ_ORD AS eduDocReqOrd,
A.DOC_REQ_NM AS docReqNm,
A.DOC_FORM_ATCH_FILE_ID AS docFormAtchFileId,
A.FRST_REGIST_PNTTM AS frstRegistPnttm,
TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY-MM-DD') AS frstRegistPnttm,
A.FRST_REGISTER_ID AS frstRegisterId,
A.SBMT_ATCH_FILE_ID AS sbmtAtchFileId,
A.SBMT_PNTTM AS sbmtPnttm,
TO_CHAR(A.SBMT_PNTTM,'YYYY-MM-DD') AS sbmtPnttm,
A.SBMT_ID AS sbmtId,
B.INSTR_NM AS instrNm
FROM
@ -1263,7 +1263,20 @@
<isNotEmpty property="eduAplctOrd">
AND EDU_APLCT_ORD = #eduAplctOrd#
</isNotEmpty>
<isNotEmpty property="sbmtId">
AND SBMT_ID = #sbmtId#
</isNotEmpty>
</select>
<update id="VEEduAplctDAO.updateSbmtAtchFileId" parameterClass="VEEduAplctVO">
/* VEEduAplctDAO.updateSbmtAtchFileId */
UPDATE VE_EDU_DOC_REQ
SET
SBMT_ATCH_FILE_ID = #sbmtAtchFileId#,
SBMT_PNTTM = SYSDATE
WHERE
EDU_DOC_REQ_ORD = #eduDocReqOrd#
</update>
</sqlMap>

View File

@ -2333,11 +2333,17 @@
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND b.EDU_HOPE_DT <![CDATA[ >= ]]> REPLACE(#searchStartDt#, '.' , '')
/*
AND b.EDU_HOPE_DT <![CDATA[ >= ]]> REPLACE(searchStartDt, '.' , '')
*/
AND b.EDU_HOPE_DT <![CDATA[ >= ]]> #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND b.EDU_HOPE_DT <![CDATA[ <= ]]> REPLACE(#searchEndDt#, '.' , '')
/*
AND b.EDU_HOPE_DT <![CDATA[ <= ]]> REPLACE(searchEndDt, '.' , '')
*/
AND b.EDU_HOPE_DT <![CDATA[ <= ]]> #searchEndDt#
</isNotEmpty>
<isEmpty property="searchStartDt">

View File

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

View File

@ -362,6 +362,20 @@
ON DUPLICATE KEY UPDATE schol_id = t.schol_id
</update>
<!-- 벽지 학교 Excel 등록 C (merge) -->
<update id="ScholInfoDAO.insertSelectIsltn20231107" parameterClass="ScholInfoVO">
/* ScholInfoDAO.insertSelectIsltn20231107 */
UPDATE ve_schol a
SET a.isltn_yn=#isltnYn#
, a.isltn2_yn=#isltn2Yn#
, a.isltn3_yn=#isltn3Yn#
, a.ppltn_reduc_area_yn=#ppltnReducAreaYn#
WHERE a.SCHOL_ID =(
SELECT schol_id
FROM ve_schol
WHERE stndrd_schol_cd=#stndrdScholCd#
)
</update>
<!-- 주소 Excel 등록 C (merge) -->
<!--

View File

@ -136,5 +136,101 @@
AND substring(b.edu_hope_dt,1,7)=#mnt#
GROUP BY substring(b.edu_hope_dt,1,7)
</select>
</select>
<!-- 강사별 월별 시수 관리 대상 강사 리스트 -->
<select id="VEAAsgnmStngMixDAO.selectList_VEAIIMT_1" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEAAsgnmStngMixDAO.selectList_VEAIIMT_1 */
SELECT COUNT(1) OVER() AS totCnt ,
a00.userId,
CASE
WHEN d.mon_lctr_yn = 'Y'
THEN 1
ELSE 0
END +
CASE
WHEN d.tue_lctr_yn = 'Y'
THEN 1
ELSE 0
END +
CASE
WHEN d.wed_lctr_yn = 'Y'
THEN 1
ELSE 0
END +
CASE
WHEN d.thu_lctr_yn = 'Y'
THEN 1
ELSE 0
END +
CASE
WHEN d.fri_lctr_yn = 'Y'
THEN 1
ELSE 0
END AS workWeekCnt ,
CASE
WHEN d.mon_lctr_yn = 'Y'
THEN 1
ELSE 0
END AS monLctrYn ,
CASE
WHEN d.tue_lctr_yn = 'Y'
THEN 1
ELSE 0
END AS tueLctrYn ,
CASE
WHEN d.wed_lctr_yn = 'Y'
THEN 1
ELSE 0
END AS wedLctrYn ,
CASE
WHEN d.thu_lctr_yn = 'Y'
THEN 1
ELSE 0
END AS thuLctrYn ,
CASE
WHEN d.fri_lctr_yn = 'Y'
THEN 1
ELSE 0
END AS friLctrYn ,
(SELECT g.sbmt_pnttm
FROM ve_instr_detail g
WHERE g.user_id = a.user_id
AND g.instr_detail_ord = '1'
AND g.instr_div = a.instr_div
)
AS regSbmtPnttm
FROM ( SELECT COUNT(1) OVER() AS totCnt ,
a0.instr_div AS instrDiv ,
a0.user_id AS userId ,
a0.instr_detail_ord AS instrDetailOrd
FROM ve_instr b0 ,
ve_instr_detail a0
WHERE 1 =1
AND a0.sbmt_yn='Y'
AND a0.use_yn = 'Y'
GROUP BY a0.instr_div ,
a0.user_id ,
a0.instr_detail_ord
)
a00 ,
ve_instr_detail a
LEFT OUTER JOIN ve_lctr_stng d
ON (
d.instr_div = a.instr_div
AND d.user_id = a.user_id
AND d.use_yn ='Y'
)
WHERE 1 =1
AND a00.instrDiv =a.instr_div
AND a00.userId =a.user_id
AND a00.instrDetailOrd=a.instr_detail_ord
AND
(
a.qlfct_end_yn = 'N' OR a.qlfct_end_yn IS NULL
)
AND a.instr_div='10'
</select>
</sqlMap>

View File

@ -0,0 +1,209 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEABasicInfoStng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEABasicInfoStngDAO.table_name">
vea_basic_info_stng
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEABasicInfoStngDAO.column_name">
stng_cd,
cn,
frst_regist_pnttm,
frst_register_id,
last_updt_pnttm,
last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEABasicInfoStngDAO.select_column_name">
a.stng_cd AS stngCd,
a.cn AS cn,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId
</sql>
<!-- 강사 등록 C -->
<insert id="VEABasicInfoStngDAO.insert" parameterClass="VEAStngVO">
/* VEABasicInfoStngDAO.insert */
MERGE INTO <include refid="VEABasicInfoStngDAO.table_name"/>
USING DUAL
ON(stng_cd=#stngCd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEABasicInfoStngDAO.column_name"/>
)
VALUES(
#stngCd#,
#cn#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET cn = #cn#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
</insert>
<!-- 강사 정보 R -->
<select id="VEABasicInfoStngDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEABasicInfoStngDAO.select_column_name"/>
FROM
<include refid="VEABasicInfoStngDAO.table_name"/> a
WHERE
a.stng_cd = #stngCd#
</select>
<!-- 강사 정보 U -->
<update id="VEABasicInfoStngDAO.update" parameterClass="VEAStngVO">
/* VEABasicInfoStngDAO.update */
MERGE INTO <include refid="VEABasicInfoStngDAO.table_name"/>
USING DUAL
ON(stng_cd=#stngCd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEABasicInfoStngDAO.column_name"/>
)
VALUES(
#stngCd#,
#useYn#,
SYSDATE,
#frstRegisterId#,
NULL,
NULL
)
WHEN MATCHED THEN
UPDATE
SET cn = #cn#
, last_updusr_id = #frstRegisterId#
, last_updt_pnttm = SYSDATE
</update>
<!-- 강사 정보 U -->
<!--
<update id="VEABasicInfoStngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEABasicInfoStngDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
-->
<!-- 강사 정보 D -->
<delete id="VEABasicInfoStngDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEABasicInfoStngDAO.table_name"/> a
WHERE
a.stng_cd = #stngCd#
</delete>
<!-- 강사 정보 L -->
<select id="VEABasicInfoStngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEABasicInfoStngDAO.selectList */
SELECT
<include refid="VEABasicInfoStngDAO.select_column_name"/>
FROM
<include refid="VEABasicInfoStngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="useYn">
AND a.cn=#cn#
</isNotEmpty>
<isNotEmpty property="stngCd">
AND a.stng_cd=#stngCd#
</isNotEmpty>
<isNotEmpty property="searchWord" prepend="AND">
a.cn LIKE '%'||#searchWord#||'%'
</isNotEmpty>
</select>
<!-- 강사 정보 L page -->
<select id="VEABasicInfoStngDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEABasicInfoStngDAO.select_column_name"/>
FROM
<include refid="VEABasicInfoStngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="stngCd">
AND a.stng_cd=#stngCd#
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, a.stng_cd desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
</sqlMap>

View File

@ -0,0 +1,222 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEAInstrHstryMng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAInstrHstryMngDAO.table_name">
vea_instr_hstry_mng
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAInstrHstryMngDAO.column_name">
instr_hstry_ord,
user_id,
sbjct,
cn,
strt_dt,
ddln_dt,
frst_regist_pnttm,
frst_register_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAInstrHstryMngDAO.select_column_name">
a.instr_hstry_ord AS instrHstryOrd,
a.user_id AS userId,
a.sbjct AS sbjct,
a.cn AS cn,
a.strt_dt AS strtDt,
a.ddln_dt AS ddlnDt,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId
</sql>
<!-- 강사 등록 C -->
<insert id="VEAInstrHstryMngDAO.insert" parameterClass="VEAStngVO">
/* VEAInstrHstryMngDAO.insert */
MERGE INTO <include refid="VEAInstrHstryMngDAO.table_name"/>
USING DUAL
ON(instr_hstry_ord=#instrHstryOrd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrHstryMngDAO.column_name"/>
)
VALUES(
#instrHstryOrd#,
#userId#,
#sbjct#,
#cn#,
#strtDt#,
#ddlnDt#,
SYSDATE,
#frstRegisterId#
)
WHEN MATCHED THEN
UPDATE
SET user_id = #userId#
, sbjct = #sbjct#
, cn = #cn#
, strt_dt = #strtDt#
, ddln_dt = #ddlnDt#
, frst_regist_pnttm = SYSDATE
, frst_register_id = #frstRegisterId#
</insert>
<!-- 강사 정보 R -->
<select id="VEAInstrHstryMngDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEAInstrHstryMngDAO.select_column_name"/>
FROM
<include refid="VEAInstrHstryMngDAO.table_name"/> a
WHERE
a.asgnm_cd = #asgnmCd#
</select>
<!-- 강사 정보 U -->
<update id="VEAInstrHstryMngDAO.update" parameterClass="VEAStngVO">
/* VEAInstrHstryMngDAO.update */
MERGE INTO <include refid="VEAInstrHstryMngDAO.table_name"/>
USING DUAL
ON(instr_hstry_ord=#instrHstryOrd#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrHstryMngDAO.column_name"/>
)
VALUES(
#instrHstryOrd#,
#userId#,
#sbjct#,
#cn#,
#strtDt#,
#ddlnDt#,
SYSDATE,
#frstRegisterId#
)
WHEN MATCHED THEN
UPDATE
SET user_id = #userId#
, sbjct = #sbjct#
, cn = #cn#
, strtDt = #strtDt#
, ddlnDt = #ddlnDt#
, frst_regist_pnttm = SYSDATE
, frst_register_id = #frstRegisterId#
</update>
<!-- 강사 정보 U -->
<!--
<update id="VEAInstrHstryMngDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEAInstrHstryMngDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
-->
<!-- 강사 정보 D -->
<delete id="VEAInstrHstryMngDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEAInstrHstryMngDAO.table_name"/> a
WHERE
a.instr_hstry_ord=#instrHstryOrd#
</delete>
<!-- 강사 정보 L -->
<select id="VEAInstrHstryMngDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEAInstrHstryMngDAO.selectList */
SELECT
<include refid="VEAInstrHstryMngDAO.select_column_name"/>
, b.user_nm AS userNm
FROM
<include refid="VEAInstrHstryMngDAO.table_name"/> a
, LETTNEMPLYRINFO b
WHERE
1=1
AND a.frst_register_id=b.ESNTL_ID
<isNotEmpty property="userId">
AND a.user_id=#userId#
</isNotEmpty>
</select>
<!-- 강사 정보 L page -->
<select id="VEAInstrHstryMngDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEAInstrHstryMngDAO.select_column_name"/>
FROM
<include refid="VEAInstrHstryMngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="userId">
AND a.user_id=#userId#
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, a.instr_hstry_ord desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
</sqlMap>

View File

@ -0,0 +1,761 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<!-- 찾교 교육 결과 테이블 -->
<sqlMap namespace="VEAInstrIndvdMntTm">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAStngVO" type="kcc.ve.adv.tngr.stngInfo.service.VEAStngVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAInstrIndvdMntTmDAO.table_name">
vea_instr_indvd_mnt_tm
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAInstrIndvdMntTmDAO.column_name">
yr,
user_id,
m01_ea,
m01_tm,
m01_regist_pnttm,
m01_register_id,
m02_ea,
m02_tm,
m02_regist_pnttm,
m02_register_id,
m03_ea,
m03_tm,
m03_regist_pnttm,
m03_register_id,
m04_ea,
m04_tm,
m04_regist_pnttm,
m04_register_id,
m05_ea,
m05_tm,
m05_regist_pnttm,
m05_register_id,
m06_ea,
m06_tm,
m06_regist_pnttm,
m06_register_id,
m07_ea,
m07_tm,
m07_regist_pnttm,
m07_register_id,
m08_ea,
m08_tm,
m08_regist_pnttm,
m08_register_id,
m09_ea,
m09_tm,
m09_regist_pnttm,
m09_register_id,
m10_ea,
m10_tm,
m10_regist_pnttm,
m10_register_id,
m11_ea,
m11_tm,
m11_regist_pnttm,
m11_register_id,
m12_ea,
m12_tm,
m12_regist_pnttm,
m12_register_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAInstrIndvdMntTmDAO.select_column_name">
a.yr AS yr,
a.user_id AS userId,
a.m01_ea AS m01Ea,
a.m01_tm AS m01Tm,
TO_CHAR(a.m01_regist_pnttm,'YYYY-MM-DD') AS m01RegistPnttm,
a.m01_register_id AS m01RegisterId,
a.m02_ea AS m02Ea,
a.m02_tm AS m02Tm,
TO_CHAR(a.m02_regist_pnttm,'YYYY-MM-DD') AS m02RegistPnttm,
a.m02_register_id AS m02RegisterId,
a.m03_ea AS m03Ea,
a.m03_tm AS m03Tm,
TO_CHAR(a.m03_regist_pnttm,'YYYY-MM-DD') AS m03RegistPnttm,
a.m03_register_id AS m03RegisterId,
a.m04_ea AS m04Ea,
a.m04_tm AS m04Tm,
TO_CHAR(a.m04_regist_pnttm,'YYYY-MM-DD') AS m04RegistPnttm,
a.m04_register_id AS m04RegisterId,
a.m05_ea AS m05Ea,
a.m05_tm AS m05Tm,
TO_CHAR(a.m05_regist_pnttm,'YYYY-MM-DD') AS m05RegistPnttm,
a.m05_register_id AS m05RegisterId,
a.m06_ea AS m06Ea,
a.m06_tm AS m06Tm,
TO_CHAR(a.m06_regist_pnttm,'YYYY-MM-DD') AS m06RegistPnttm,
a.m06_register_id AS m06RegisterId,
a.m07_ea AS m07Ea,
a.m07_tm AS m07Tm,
TO_CHAR(a.m07_regist_pnttm,'YYYY-MM-DD') AS m07RegistPnttm,
a.m07_register_id AS m07RegisterId,
a.m08_ea AS m08Ea,
a.m08_tm AS m08Tm,
TO_CHAR(a.m08_regist_pnttm,'YYYY-MM-DD') AS m08RegistPnttm,
a.m08_register_id AS m08RegisterId,
a.m09_ea AS m09Ea,
a.m09_tm AS m09Tm,
TO_CHAR(a.m09_regist_pnttm,'YYYY-MM-DD') AS m09RegistPnttm,
a.m09_register_id AS m09RegisterId,
a.m10_ea AS m10Ea,
a.m10_tm AS m10Tm,
TO_CHAR(a.m10_regist_pnttm,'YYYY-MM-DD') AS m10RegistPnttm,
a.m10_register_id AS m10RegisterId,
a.m11_ea AS m11Ea,
a.m11_tm AS m11Tm,
TO_CHAR(a.m11_regist_pnttm,'YYYY-MM-DD') AS m11RegistPnttm,
a.m11_register_id AS m11RegisterId,
a.m12_ea AS m12Ea,
a.m12_tm AS m12Tm,
TO_CHAR(a.m12_regist_pnttm,'YYYY-MM-DD') AS m12RegistPnttm,
a.m12_register_id AS m12RegisterId
</sql>
<!-- 강사 등록 C -->
<insert id="VEAInstrIndvdMntTmDAO.insert" parameterClass="VEAStngVO">
/* VEAInstrIndvdMntTmDAO.insert */
MERGE INTO <include refid="VEAInstrIndvdMntTmDAO.table_name"/>
USING DUAL
ON(yr=#yr# AND user_id=#userId#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrIndvdMntTmDAO.column_name"/>
)
VALUES(
#yr#,
#userId#,
#m01Ea#,
#m01Tm#,
<isNotEmpty property="m01RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m01RegisterId">
NULL,
</isEmpty>
#m01RegisterId#,
#m02Ea#,
#m02Tm#,
<isNotEmpty property="m02RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m02RegisterId">
NULL,
</isEmpty>
#m02RegisterId#,
#m03Ea#,
#m03Tm#,
<isNotEmpty property="m03RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m03RegisterId">
NULL,
</isEmpty>
#m03RegisterId#,
#m04Ea#,
#m04Tm#,
<isNotEmpty property="m04RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m04RegisterId">
NULL,
</isEmpty>
#m04RegisterId#,
#m05Ea#,
#m05Tm#,
<isNotEmpty property="m05RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m05RegisterId">
NULL,
</isEmpty>
#m05RegisterId#,
#m06Ea#,
#m06Tm#,
<isNotEmpty property="m06RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m06RegisterId">
NULL,
</isEmpty>
#m06RegisterId#,
#m07Ea#,
#m07Tm#,
<isNotEmpty property="m07RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m07RegisterId">
NULL,
</isEmpty>
#m07RegisterId#,
#m08Ea#,
#m08Tm#,
<isNotEmpty property="m08RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m08RegisterId">
NULL,
</isEmpty>
#m08RegisterId#,
#m09Ea#,
#m09Tm#,
<isNotEmpty property="m09RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m09RegisterId">
NULL,
</isEmpty>
#m09RegisterId#,
#m10Ea#,
#m10Tm#,
<isNotEmpty property="m10RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m10RegisterId">
NULL,
</isEmpty>
#m10RegisterId#,
#m11Ea#,
#m11Tm#,
<isNotEmpty property="m11RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m11RegisterId">
NULL,
</isEmpty>
#m11RegisterId#,
#m12Ea#,
#m12Tm#,
<isNotEmpty property="m12RegisterId">
SYSDATE,
</isNotEmpty><isEmpty property="m12RegisterId">
NULL,
</isEmpty>
#m12RegisterId#
)
WHEN MATCHED THEN
UPDATE
SET
<isNotEmpty property="m01Ea">
m01_ea=#m01Ea#
</isNotEmpty><isNotEmpty property="m01Tm">
, m01_tm=#m01Tm#
</isNotEmpty><isNotEmpty property="m01RegisterId">
, m01_register_id=#m01RegisterId#
, m01_regist_pnttm=SYSDATE
</isNotEmpty>
<isNotEmpty property="m02Ea">
m02_ea=#m02Ea#
</isNotEmpty><isNotEmpty property="m02Tm">
, m02_tm=#m02Tm#
</isNotEmpty><isNotEmpty property="m02RegisterId">
, m02_register_id=#m02RegisterId#
, m02_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m03Ea">
m03_ea=#m03Ea#
</isNotEmpty><isNotEmpty property="m03Tm">
, m03_tm=#m03Tm#
</isNotEmpty><isNotEmpty property="m03RegisterId">
, m03_register_id=#m03RegisterId#
, m03_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m04Ea">
m04_ea=#m04Ea#
</isNotEmpty><isNotEmpty property="m04Tm">
, m04_tm=#m04Tm#
</isNotEmpty><isNotEmpty property="m04RegisterId">
, m04_register_id=#m04RegisterId#
, m04_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m05Ea">
m05_ea=#m05Ea#
</isNotEmpty><isNotEmpty property="m05Tm">
, m05_tm=#m05Tm#
</isNotEmpty><isNotEmpty property="m05RegisterId">
, m05_register_id=#m05RegisterId#
, m05_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m06Ea">
m06_ea=#m06Ea#
</isNotEmpty><isNotEmpty property="m06Tm">
, m06_tm=#m06Tm#
</isNotEmpty><isNotEmpty property="m06RegisterId">
, m06_register_id=#m06RegisterId#
, m06_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m07Ea">
m07_ea=#m07Ea#
</isNotEmpty><isNotEmpty property="m07Tm">
, m07_tm=#m07Tm#
</isNotEmpty><isNotEmpty property="m07RegisterId">
, m07_register_id=#m07RegisterId#
, m07_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m08Ea">
m08_ea=#m08Ea#
</isNotEmpty><isNotEmpty property="m08Tm">
, m08_tm=#m08Tm#
</isNotEmpty><isNotEmpty property="m08RegisterId">
, m08_register_id=#m08RegisterId#
, m08_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m09Ea">
m09_ea=#m09Ea#
</isNotEmpty><isNotEmpty property="m09Tm">
, m09_tm=#m09Tm#
</isNotEmpty><isNotEmpty property="m09RegisterId">
, m09_register_id=#m09RegisterId#
, m09_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m10Ea">
m10_ea=#m10Ea#
</isNotEmpty><isNotEmpty property="m10Tm">
, m10_tm=#m10Tm#
</isNotEmpty><isNotEmpty property="m10RegisterId">
, m10_register_id=#m10RegisterId#
, m10_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m11Ea">
m11_ea=#m11Ea#
</isNotEmpty><isNotEmpty property="m11Tm">
, m11_tm=#m11Tm#
</isNotEmpty><isNotEmpty property="m11RegisterId">
, m11_register_id=#m11RegisterId#
, m11_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m12Ea">
m12_ea=#m12Ea#
</isNotEmpty><isNotEmpty property="m12Tm">
, m12_tm=#m12Tm#
</isNotEmpty><isNotEmpty property="m12RegisterId">
, m12_register_id=#m12RegisterId#
, m12_regist_pnttm=SYSDATE
</isNotEmpty>
</insert>
<!-- 강사 정보 R -->
<select id="VEAInstrIndvdMntTmDAO.selectDetail" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
<include refid="VEAInstrIndvdMntTmDAO.select_column_name"/>
FROM
<include refid="VEAInstrIndvdMntTmDAO.table_name"/> a
WHERE
a.yr = #yr#
AND a.user_id = #userId#
</select>
<!-- 강사 정보 U -->
<update id="VEAInstrIndvdMntTmDAO.update" parameterClass="VEAStngVO">
/* VEAInstrIndvdMntTmDAO.update */
MERGE INTO <include refid="VEAInstrIndvdMntTmDAO.table_name"/>
USING DUAL
ON(yr=#yr# AND userId=#user_id#)
WHEN NOT MATCHED THEN
INSERT
(
<include refid="VEAInstrIndvdMntTmDAO.column_name"/>
)
VALUES(
#yr#,
#user_id#,
#m01Ea#,
#m01Tm#,
SYSDATE,
#m01RegisterId#,
#m02Ea#,
#m02Tm#,
SYSDATE,
#m02RegisterId#,
#m03Ea#,
#m03Tm#,
SYSDATE,
#m03RegisterId#,
#m04Ea#,
#m04Tm#,
SYSDATE,
#m04RegisterId#,
#m05Ea#,
#m05m#,
SYSDATE,
#m05RegisterId#,
#m06Ea#,
#m06m#,
SYSDATE,
#m06RegisterId#,
#m07Ea#,
#m07m#,
SYSDATE,
#m07RegisterId#,
#m08Ea#,
#m08m#,
SYSDATE,
#m08RegisterId#,
#m09Ea#,
#m09m#,
SYSDATE,
#m09RegisterId#,
#m10Ea#,
#m10m#,
SYSDATE,
#m10RegisterId#,
#m11Ea#,
#m11m#,
SYSDATE,
#m11RegisterId#,
#m12Ea#,
#m12m#,
SYSDATE,
#m12RegisterId#
)
WHEN MATCHED THEN
UPDATE
SET user_id = #userId#
<isNotEmpty property="m01Ea">
, m01_ea=#m01Ea#
</isNotEmpty><isNotEmpty property="m01Tm">
, m01_tm=#m01Tm#
</isNotEmpty><isNotEmpty property="m01RegisterId">
, m01_register_id=#m01RegisterId#
, m01_regist_pnttm=SYSDATE
</isNotEmpty>
<isNotEmpty property="m02Ea">
, m02_ea=#m02Ea#
</isNotEmpty><isNotEmpty property="m02Tm">
, m02_tm=#m02Tm#
</isNotEmpty><isNotEmpty property="m02RegisterId">
, m02_register_id=#m02RegisterId#
, m02_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m03Ea">
, m03_ea=#m03Ea#
</isNotEmpty><isNotEmpty property="m03Tm">
, m03_tm=#m03Tm#
</isNotEmpty><isNotEmpty property="m03RegisterId">
, m03_register_id=#m03RegisterId#
, m03_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m04Ea">
, m04_ea=#m04Ea#
</isNotEmpty><isNotEmpty property="m04Tm">
, m04_tm=#m04Tm#
</isNotEmpty><isNotEmpty property="m04RegisterId">
, m04_register_id=#m04RegisterId#
, m04_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m05Ea">
, m05_ea=#m05Ea#
</isNotEmpty><isNotEmpty property="m05Tm">
, m05_tm=#m05Tm#
</isNotEmpty><isNotEmpty property="m05RegisterId">
, m05_register_id=#m05RegisterId#
, m05_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m06Ea">
, m06_ea=#m06Ea#
</isNotEmpty><isNotEmpty property="m06Tm">
, m06_tm=#m06Tm#
</isNotEmpty><isNotEmpty property="m06RegisterId">
, m06_register_id=#m06RegisterId#
, m06_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m07Ea">
, m07_ea=#m07Ea#
</isNotEmpty><isNotEmpty property="m07Tm">
, m07_tm=#m07Tm#
</isNotEmpty><isNotEmpty property="m07RegisterId">
, m07_register_id=#m07RegisterId#
, m07_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m08Ea">
, m08_ea=#m08Ea#
</isNotEmpty><isNotEmpty property="m08Tm">
, m08_tm=#m08Tm#
</isNotEmpty><isNotEmpty property="m08RegisterId">
, m08_register_id=#m08RegisterId#
, m08_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m09Ea">
, m09_ea=#m09Ea#
</isNotEmpty><isNotEmpty property="m09Tm">
, m09_tm=#m09Tm#
</isNotEmpty><isNotEmpty property="m09RegisterId">
, m09_register_id=#m09RegisterId#
, m09_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m10Ea">
, m10_ea=#m10Ea#
</isNotEmpty><isNotEmpty property="m10Tm">
, m10_tm=#m10Tm#
</isNotEmpty><isNotEmpty property="m10RegisterId">
, m10_register_id=#m10RegisterId#
, m10_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m11Ea">
, m11_ea=#m11Ea#
</isNotEmpty><isNotEmpty property="m11Tm">
, m11_tm=#m11Tm#
</isNotEmpty><isNotEmpty property="m11RegisterId">
, m11_register_id=#m11RegisterId#
, m11_regist_pnttm=SYSDATE
</isNotEmpty><isNotEmpty property="m12Ea">
, m12_ea=#m12Ea#
</isNotEmpty><isNotEmpty property="m12Tm">
, m12_tm=#m12Tm#
</isNotEmpty><isNotEmpty property="m12RegisterId">
, m12_register_id=#m12RegisterId#
, m12_regist_pnttm=SYSDATE
</isNotEmpty>
</update>
<!-- 강사 정보 U -->
<!--
<update id="VEAInstrIndvdMntTmDAO.updateBulk" parameterClass="VEAStngVO">
INSERT INTO <include refid="VEAInstrIndvdMntTmDAO.table_name"/>
(
edu_aplct_ord,
prcs_ord,
frst_regist_pnttm,
frst_register_id
)
SELECT #eduAplctOrd#,prcs_ord, SYSDATE,#lastUpdusrId#
FROM ve_prcs_onln_cntnt
WHERE prcs_ord=#prcsOrd#
AND use_yn='Y'
ON DUPLICATE KEY UPDATE
last_updt_pnttm=SYSDATE,
last_updusr_id=#lastUpdusrId#
</update>
-->
<!-- 강사 정보 D -->
<delete id="VEAInstrIndvdMntTmDAO.delete" parameterClass="VEAStngVO">
DELETE FROM
<include refid="VEAInstrIndvdMntTmDAO.table_name"/> a
WHERE
a.yr = #yr#
AND a.user_id = #userId#
</delete>
<!-- 강사 정보 L -->
<select id="VEAInstrIndvdMntTmDAO.selectList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
/* VEAInstrIndvdMntTmDAO.selectList */
SELECT
<include refid="VEAInstrIndvdMntTmDAO.select_column_name"/>
FROM
<include refid="VEAInstrIndvdMntTmDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="yr">
AND a.yr=#yr#
</isNotEmpty>
<isNotEmpty property="userId">
AND a.user_id=#userId#
</isNotEmpty>
</select>
<!-- 강사 정보 L page -->
<select id="VEAInstrIndvdMntTmDAO.selectPagingList" parameterClass="VEAStngVO" resultClass="VEAStngVO">
SELECT
COUNT(1) OVER() AS totCnt ,
<include refid="VEAInstrIndvdMntTmDAO.select_column_name"/>
FROM
<include refid="VEAInstrIndvdMntTmDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="yr">
AND a.yr=#yr#
</isNotEmpty>
<isNotEmpty property="userId">
AND a.user_id=#userId#
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, a.yr desc
, a.user_id asc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
<!-- 강사 정보 D -->
<update id="VEAInstrIndvdMntTmDAO.delete_query" parameterClass="VEAStngVO">
UPDATE <include refid="VEAInstrIndvdMntTmDAO.table_name"/> a
$setQuery$
WHERE
a.yr = #yr#
</update>
</sqlMap>

View File

@ -243,7 +243,20 @@
/*
, ddd.LCTR_PSBL_PRD_ORD
, eee.LCTR_PSBL_PRD_ORD
*/
*/
, CASE
WHEN ddd.LCTR_PSBL_PRD_ORD IS NOT NULL THEN '불가능'
WHEN bbb.DT_PSBL_TM_QNTTY_ORD IS NULL THEN to_char(NVL(fff.psblTmQnttyCnt,0))
ELSE to_char(NVL(fff.psblTmQnttyCnt,0))
END AS titleF
, CASE
WHEN ddd.LCTR_PSBL_PRD_ORD IS NOT NULL THEN '불가능'
WHEN bbb.DT_PSBL_TM_QNTTY_ORD IS NULL THEN to_char(ccc.psbl_tm_qntty)
ELSE to_char(bbb.PSBL_TM_QNTTY)
END AS titleB
FROM (
/* Step1.올해-내년의 달력을 만들고, */
SELECT

View File

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

View File

@ -322,12 +322,14 @@ function jstreeInit() {
//코드 정보 세팅
function fn_setting_menuNo(cmmnClCodeVO){
//upperIdxs = upperIdxs.join("|");
var tmpHtml = "";
if(cmmnClCodeVO!=null){
$('#menuNo').val(cmmnClCodeVO.codeId);
$('#tmp_Id').val(cmmnClCodeVO.codeId);
$('#menuNm').val(cmmnClCodeVO.codeNm);
$('#menuDc').val(cmmnClCodeVO.codeDc);
$('#sort').val(cmmnClCodeVO.sort);
$('#upperMenuIdText').text(cmmnClCodeVO.parent);
$('#upperMenuId').val(cmmnClCodeVO.parent);
$('#useYn').val(cmmnClCodeVO.useAt);
@ -600,6 +602,12 @@ function fn_save_menuInfo(menuNo) {
<input type="text" name="menuDc" id="menuDc" />
</td>
</tr>
<tr>
<th><span>정렬순서</span></th>
<td>
<input type="text" name="sort" id="sort" />
</td>
</tr>
<tr>
<th><span>사용/미사용</span></th>
<td>

File diff suppressed because it is too large Load Diff

View File

@ -255,6 +255,57 @@ function getYears(getYear){
});
}
}
// 강사이력 등록팝업
function fnInstrHstryInsert() {
/*
var p_stngYr = $("#listForm #stngYr").val();
if(p_stngYr==''){
alert("회차관리 대상 년도를 선택해주세요.");
return false;
}
document.listForm.yr.value = p_stngYr;
*/
//document.listForm.authorCode.value = vAuthorCode;
//document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advRndsStngMngPopup.do'/>";
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrHstryMngPopup.do'/>";
window.open("#", "_instrHstryMngPop", "scrollbars = no, top=100px, left=100px, height=800px, width=1000px");
document.listForm.target = "_instrHstryMngPop";
document.listForm.submit();
}
// 이력관리 삭제
function fnInstrHstryDelete(p_instr_hstry_ord) {
$("#listForm #instrHstryOrd").val(p_instr_hstry_ord);
var data1 = new FormData(document.getElementById("listForm"));
if(confirm("해당 이력을 삭제하시겠습니까?)")){
$.ajax({
type:"POST",
url: "${pageContext.request.contextPath}/ve/oprtn/instr/tngrVisitEdu/instrInfo/popup/instrHstryDelAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("삭제 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
<%-- <form id="pop" name="pop" method="post">
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>"/> <!-- 사용자 아이디 -->
@ -788,8 +839,73 @@ function getYears(getYear){
</div>
</div>
<div class="tb_tit01">
<p>이력관리</p>
</div>
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 10%;">
</colgroup>
<thead>
<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>
</tr>
</thead>
<tbody>
<c:forEach var="pList" items="${selectListVEAIHM}" varStatus="status">
<tr>
<td><c:out value="${pList.sbjct}" /></td>
<td><c:out value="${pList.strtDt}" />~<c:out value="${pList.ddlnDt}" /></td>
<td><c:out value="${pList.cn}" /></td>
<td><c:out value="${pList.userNm}" /></td>
<td><c:out value="${pList.frstRegistPnttm}" /></td>
<td>
<button type="button" class="btn_type04" onclick="fnInstrHstryDelete('<c:out value="${pList.instrHstryOrd}" />'); return false;">삭제</button>
</td>
</tr>
</c:forEach>
<c:if test="${empty selectListVEAIHM}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left" style="width:60%;">
</div>
<div class="btn_right">
<button type="button" class="btn_type04" onclick="fnInstrHstryInsert(); return false;">이력 등록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
<!-- //cont -->
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="pnltyCd" id="pnltyCd" value="" />
<input type="hidden" name="pnltyOrd" id="pnltyOrd" value="" />
<input type="hidden" name="instrHstryOrd" id="instrHstryOrd" value="" />
<input type="hidden" name="memoCn" id="memoCn" value="" />
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>" />
</form:form>

View File

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

View File

@ -303,7 +303,7 @@
<c:out value="${list.vntYear }" />형제<c:out value="${list.vntNmbr }" />
</td>
<td>
<c:out value="${list.cmptntAthrt }" />
<ve:code codeId="VEA008" code="${list.cmptntAthrt }"/>
</td>
<td>
<c:out value="${list.dBirth }" />
@ -334,7 +334,7 @@
</tr>
</c:forEach>
<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>
</tbody>
</table>

View File

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

View File

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

View File

@ -336,7 +336,7 @@
</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${vEPrcsDetailVO.endPnttm}">
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${vEPrcsDetailVO.strtPnttm}">
</div>
~
<div class="calendar_wrap">

View File

@ -215,6 +215,16 @@
</c:choose>
</td>
</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>
</table>
</div>
@ -344,13 +354,13 @@
<tbody>
<tr>
<th scope="row">
<p>대상학년</p>
<p>대상학년/반</p>
</th>
<td>${info.trgtGrade}</td>
<th scope="row">
<%-- <th scope="row">
<p>대상반</p>
</th>
<td>${info.trgtClsrm}</td>
<td>${info.trgtClsrm}</td> --%>
</tr>
<tr>
<th scope="row">

View File

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

View File

@ -345,7 +345,76 @@
alert("지역별 총 접수시간을 입력해주세요.");
}
}
//교육설정 등록여부 체크
function fncDupleCheckAll(thisObj){
var list1 = $("input[name=checkList]");
var list2 = $("input[name=ttlEduCnfrmPsblChasi]");
//alert(list1.length);
//alert(list2.length);
if (list1.length>0 && list1.length==list2.length)
{
//alert("true");
;
}else{
alert("false");
return;
}
var v_list1 = "";
var v_list2 = "";
$.each(list1, function(idx, obj){
v_list1 = v_list1 + "_" + $(this).val();
});
$.each(list2, function(idx, obj){
v_list2 = v_list2 + "_" + $(this).val();
});
//alert(v_list1);
//alert(v_list2);
//var p_ttlEduCnfrmPsblChasi = $(thisObj).closest("td").find("input[name=ttlEduCnfrmPsblChasi]").val();
//var p_rndsOrd = $("#rndsOrd").val();
var p_rndsOrd = $("#listForm #stngYr").val(); //회차기준에서 년도 기준으로 변경함
//var p_areaCd = $(thisObj).closest("tr").find("input[name=checkList]").val();
//alert(p_areaCd);
if(v_list2 != "") {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/areaLctrMngrgstrPsblTmAllAjax.do",
data:{
"rndsOrd" : p_rndsOrd,
"areaCd" : v_list1,
"ttlEduCnfrmPsblChasi" : v_list2,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("지역별 총 접수시간을 입력해주세요.");
}
}
function fncRgstrDateSave(){
if(confirm("접수일자를 저장 하시겠습니까?")){
$.ajax({
@ -425,7 +494,7 @@
}
}
//회차관리 팝업
//회차관리 팝업
function fncRndsStng() {
var p_stngYr = $("#listForm #stngYr").val();
@ -821,6 +890,10 @@
</thead>
<tbody>
<c:set var="ttlChasi" value="0" /> <!-- 총 접수가능 차시 -->
<c:set var="ttlAplct" value="0" /> <!-- 총 신청 수 -->
<c:set var="ttlAplctChasi" value="0" /> <!-- 총 신청 차시 -->
<c:forEach var="result" items="${list}" varStatus="status">
<tr>
<td>
@ -838,17 +911,43 @@
<td>
<c:out value="${result.frstRegistPnttm}"/>
</td>
<td>
<input type="text" size="3" id="ttlEduCnfrmPsblChasi" name="ttlEduCnfrmPsblChasi" maxlength="10" value='<c:out value="${result.ttlEduCnfrmPsblChasi}"/>'/>
<td>
<c:out value="${result.ttlEduCnfrmPsblChasi}"/>
<input type="text" size="3" id="ttlEduCnfrmPsblChasi" name="ttlEduCnfrmPsblChasi" maxlength="5" value='<c:out value="${result.ttlEduCnfrmPsblChasi}"/>'/>
<!--
<button type="button" class="btn_type06"
onclick="fncDupleCheck(this); return false;" style="height: 40px; border-radius: 5px; vertical-align: middle;">수정</button>
-->
</td>
<td>
<c:out value="${result.psblTmQnttyCnt}"/>
(<c:out value="${result.aplctChasi}"/>)
</td>
</tr>
<c:set var="ttlChasi" value="${ttlChasi + result.ttlEduCnfrmPsblChasi}" /> <!-- 총 접수가능 차시 -->
<c:set var="ttlAplct" value="${ttlAplct + result.aplctChasi}" /> <!-- 총 신청 수 -->
<c:set var="ttlAplctChasi" value="${ttlAplctChasi + result.psblTmQnttyCnt}" /> <!-- 총 신청 차시 -->
</c:forEach>
<tr>
<td colspan="5">
총합
</td>
<td>
${ttlChasi}
<button type="button" class="btn_type06"
onclick="fncDupleCheckAll(this); return false;" style="height: 40px; border-radius: 5px; vertical-align: middle;">접수시간수정</button>
</td>
<td>
${ttlAplctChasi}
(${ttlAplct})
</td>
</tr>
<c:if test="${not empty list and not empty selectTimeSum}">
<tr>
<td colspan="5">

View File

@ -0,0 +1,195 @@
<!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="ve" 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" %>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : advStngMngList.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(){
});
//fncPreviewEmail
function fncPreviewEmail(){
//document.listForm.authorCode.value = vAuthorCode;
//document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advRndsStngMngPopup.do'/>";
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/eduAplctRegPreviewDetail.do'/>";
window.open("#", "_aplctPreviewPop", "scrollbars = no, top=100px, left=100px, height=500px, width=1200px");
document.listForm.target = "_aplctPreviewPop";
document.listForm.submit();
}
function fncUpdate(){
if ($("#cn").val() == null || $("#cn").val() == ''){
alert("내용은 필수값입니다.");
return false;
}
if(confirm("수정하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/advStngMngTRAjax.do",
data: {
"cn" : $("#cn").val()
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("수정 되었습니다.");
location.reload(true);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
<title>신청관리</title>
</head>
<body>
<form id="popupForm" name="popupForm" method="post">
<input type="hidden" name="stngYr" id="stngYr" value=""/>
</form>
<form id="editForm" name="editForm" method="post">
<input type="hidden" name="mode" value=""/>
<input type="hidden" name="adrSeq" value=""/>
<input type="hidden" name="edtTy" value=""/>
<input type="hidden" name="edtSn" value=""/>
<input type="hidden" name="rejectCn" value=""/>
</form>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vELctrDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vELctrDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vELctrDetailVO.searchSortOrd}" />" />
<input type="hidden" name="instrDiv" value="10"/>
<input type="hidden" name="yr" id="yr" 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="btn_wrap btn_layout01">
<div class="btn_left">!-- 참고용 --</div>
<div class="btn_center"> 삭제 대상 //${selectBasicInfo}//</div>
<div class="btn_right" style="width: 100%">
<button class="btn_type06" onclick="fncDdlnState(); return false;" >신청상태변경</button>
<button class="btn_type06" onclick="fncAplctPrd(); return false;" >강의가능기간변경</button>
<button class="btn_type06" onclick="fncLctrPsblTm(); return false;" >강의가능시간변경</button>
<button class="btn_type06" onclick="fncRndsStng(); return false;" >회차관리</button>
</div>
</div>
-->
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육신청등록문구</h2>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;height:100px;">
<col style="width: auto;height:100px;">
</colgroup>
<tr>
<th scope="row"><p>샘플 코드</p> </th>
<td>
<c:out value='<div class="tit_box"><i class="tit_box_icon1"></i><div><p>찾아가는 저작권 교육</p><span>‘찾아가는 저작권 교육’은 저작권 교육이 필요한 <span>전국 초ㆍ중ㆍ고등학교, 청소년ㆍ아동복지ㆍ노인ㆍ장애인 기관 및 단체 등</span>에 직접 방문하여무료로 강의를 지원하는 맞춤형 교육 서비스입니다.<p style="font-weight:400;color:red;font-size:17px;padding-top:8px; padding-bottom: 0;">담당자 연락처) 055-792-0224</p></span></div></div>' escapeXml="true" />
</td>
</tr>
<tr>
<th scope="row">
<p>사용중인 코드</p>
</th>
<td>
<textarea id="cn" rows="5">
<c:out value='${selectBasicTRInfo.cn}' escapeXml="true" />
</textarea>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type08" onclick="fncUpdate();return false;">내용 수정</button>
</div>
<div class="btn_right">
<button type="button" class="btn_type03" onclick="fncPreviewEmail();return false;">미리보기</button>
</div>
</div>
<!-- //cont_tit -->
<!-- list_top -->
</div>
</div>
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -289,6 +289,13 @@
});
}
// 서류요청 SMS, EMAIL 알림 팝업
function alertPopup(userId,type) { //메뉴생성 화면 호출
document.popForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/eduDocReqAlertPopup.do'/>";
window.open("#", "_eduDocReqAlertPopup", "scrollbars = no, top=100px, left=100px, height=550px, width=750px");
document.popForm.target = "_eduDocReqAlertPopup";
document.popForm.submit();
}
</script>
</head>
@ -570,6 +577,76 @@
</table>
</div>
<!-- 서류 요청 목록 -->
<c:if test="${not empty docReqList}">
<div class="tb_tit01">
<p>요청서류 목록</p>
</div>
<div class="tb_type01 list2">
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: 20%;">
<col style="width: 10%;">
<col style="width: 20%">
<col style="width: 10;">
<col style="width: auto;">
</colgroup>
<thead>
<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>
</tr>
</thead>
<tbody>
<c:forEach var="docReqList" items="${docReqList}" varStatus="status">
<tr>
<td>
<c:out value="${docReqList.instrNm}" />
</td>
<td>
<c:out value="${docReqList.docReqNm}" />
</td>
<td>
<c:out value="${docReqList.frstRegistPnttm}" />
</td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.docFormAtchFileId}" />
</c:import>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:out value="${docReqList.sbmtPnttm}" />
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
-
</c:if>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.sbmtAtchFileId}" />
</c:import>
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
<button class="btn_type06" onclick="alertPopup('<c:out value="${docReqList.sbmtId}" />','SMS'); return false;">SMS</button>
<button class="btn_type06" onclick="alertPopup('<c:out value="${docReqList.sbmtId}" />','EMAIL'); return false;">EMAIL</button>
<%-- <button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button> --%>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</c:if>
<!-- 알림 정보 상세 -->
<div class="tb_tit01">
<p>알림정보</p>

View File

@ -271,7 +271,13 @@ function replyCalculation(){
// 서류요청 SMS, EMAIL 알림 팝업
function alertPopup(userId,type) { //메뉴생성 화면 호출
document.popForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/eduDocReqAlertPopup.do'/>";
window.open("#", "_eduDocReqAlertPopup", "scrollbars = no, top=100px, left=100px, height=550px, width=750px");
document.popForm.target = "_eduDocReqAlertPopup";
document.popForm.submit();
}
@ -521,6 +527,76 @@ function replyCalculation(){
</div>
<!-- //list_상세 -->
<!-- 서류요청 목록 -->
<c:if test="${not empty docReqList}">
<div class="tb_tit01">
<p>요청서류 목록</p>
</div>
<div class="tb_type01 list2">
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: 20%;">
<col style="width: 10%;">
<col style="width: 20%">
<col style="width: 10;">
<col style="width: auto;">
</colgroup>
<thead>
<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>
</tr>
</thead>
<tbody>
<c:forEach var="docReqList" items="${docReqList}" varStatus="status">
<tr>
<td>
<c:out value="${docReqList.instrNm}" />
</td>
<td>
<c:out value="${docReqList.docReqNm}" />
</td>
<td>
<c:out value="${docReqList.frstRegistPnttm}" />
</td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.docFormAtchFileId}" />
</c:import>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:out value="${docReqList.sbmtPnttm}" />
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
-
</c:if>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.sbmtAtchFileId}" />
</c:import>
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
<button class="btn_type06" onclick="alertPopup('<c:out value="${docReqList.sbmtId}" />','SMS'); return false;">SMS</button>
<button class="btn_type06" onclick="alertPopup('<c:out value="${docReqList.sbmtId}" />','EMAIL'); return false;">EMAIL</button>
<%-- <button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button> --%>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</c:if>
<!-- list_상세 -->
<div class="tb_tit01">
<p>결과보고</p>

View File

@ -220,7 +220,7 @@
</th>
<td class="input_phone attachedFile_wrap">
<input type="text" readonly id="atFileBasicWrite" style="width:500px;" name="atFileBasicWrite"/>
<input type="file" name="file" id="file" style="display:none" accept=".txt, .xls, .xlsx" onchange="changeValue(this); return false;"/>
<input type="file" name="file" id="file" style="display:none" accept=".xls, .xlsx" onchange="changeValue(this); return false;"/>
<button type="button" class="btnType btnType9" onclick="document.all.file.click(); return false;">파일첨부</button>
<span class="reqTxt6">※ 컴퓨터 파일(엑셀)만 등록 가능합니다.<a href="https://www.copyright.or.kr/offedu/cmm/fms/FileDown.do?atchFileId=FILE_000000000018230&fileSn=0" target="_blank">sample</a></span>
</td>

View File

@ -22,7 +22,6 @@
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<!DOCTYPE html>
<html>
<head>
@ -344,7 +343,7 @@
});
}
}
// 패널티 삭제
function fnPnltyDelete(p_pnlty_ord) {
@ -373,6 +372,59 @@
});
}
}
// 이력관리 삭제
function fnInstrHstryDelete(p_instr_hstry_ord) {
$("#listForm #instrHstryOrd").val(p_instr_hstry_ord);
var data1 = new FormData(document.getElementById("listForm"));
if(confirm("해당 이력을 삭제하시겠습니까?)")){
$.ajax({
type:"POST",
url: "${pageContext.request.contextPath}/ve/oprtn/instr/tngrVisitEdu/instrInfo/popup/instrHstryDelAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("삭제 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
// 강사이력 등록팝업
function fnInstrHstryInsert() {
/*
var p_stngYr = $("#listForm #stngYr").val();
if(p_stngYr==''){
alert("회차관리 대상 년도를 선택해주세요.");
return false;
}
document.listForm.yr.value = p_stngYr;
*/
//document.listForm.authorCode.value = vAuthorCode;
//document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advRndsStngMngPopup.do'/>";
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrHstryMngPopup.do'/>";
window.open("#", "_instrHstryMngPop", "scrollbars = no, top=100px, left=100px, height=800px, width=1000px");
document.listForm.target = "_instrHstryMngPop";
document.listForm.submit();
}
</script>
</head>
<body>
@ -403,6 +455,10 @@
<input type="hidden" name="qlfctEndYn" id="qlfctEndYn" value=""/> <!-- 자격종료여부 -->
<input type="hidden" name="stngYrMnt" id="stngYrMnt" value="202202"/><!-- 강사구분 -->
<!-- cont -->
<!-- 팝업을 위한 mask -->
<div class="mask2" onclick="timeLayerUtil()"></div>
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
@ -623,13 +679,25 @@
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<c:if test="${info.qlfctEndYn eq 'Y'}">
<button type="button" class="btn_type02" onclick="fncSave('N'); return false;">강사위촉</button>
</c:if>
<c:if test="${info.qlfctEndYn ne 'Y'}">
<button type="button" class="btn_type02" onclick="fncSave('Y'); return false;">강사해촉</button>
</c:if>
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncUpdate(); return false;">정보저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
<!-- 비공개 메보 정보 -->
<div class="tb_tit01">
<p>비공개 메모</p>
@ -760,6 +828,7 @@
</tbody>
</table>
</div>
<div class="tb_tit01">
<p>패널티 목록</p>
@ -782,7 +851,7 @@
<th scope="col">교육일자</th>
<th scope="col">학교명</th>
<th scope="col">교육차시</th>
<th scope="col">삭제</th>
<th scope="col">삭제</th>
</tr>
</thead>
@ -821,7 +890,6 @@
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left" style="width:60%;">
<ve:select codeId="VE0016" name="pnltyCd1" id="pnltyCd1" css="class='sel_type1'" />
@ -829,15 +897,73 @@
<button type="button" class="btn_type04" onclick="fnPnltyInsert(); return false;">패널티 등록</button>
</div>
<div class="btn_right">
<c:if test="${info.qlfctEndYn eq 'Y'}">
<button type="button" class="btn_type02" onclick="fncSave('N'); return false;">강사위촉</button>
</c:if>
<c:if test="${info.qlfctEndYn ne 'Y'}">
<button type="button" class="btn_type02" onclick="fncSave('Y'); return false;">강사해촉</button>
</c:if>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left" style="width:60%;">
</div>
<div class="btn_right">
</div>
</div>
<div class="tb_tit01">
<p>이력관리</p>
</div>
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 10%;">
</colgroup>
<thead>
<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>
</tr>
</thead>
<tbody>
<c:forEach var="pList" items="${selectListVEAIHM}" varStatus="status">
<tr>
<td><c:out value="${pList.sbjct}" /></td>
<td><c:out value="${pList.strtDt}" />~<c:out value="${pList.ddlnDt}" /></td>
<td><c:out value="${pList.cn}" /></td>
<td><c:out value="${pList.userNm}" /></td>
<td><c:out value="${pList.frstRegistPnttm}" /></td>
<td>
<button type="button" class="btn_type04" onclick="fnInstrHstryDelete('<c:out value="${pList.instrHstryOrd}" />'); return false;">삭제</button>
</td>
</tr>
</c:forEach>
<c:if test="${empty selectListVEAIHM}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left" style="width:60%;">
</div>
<div class="btn_right">
<button type="button" class="btn_type04" onclick="fnInstrHstryInsert(); return false;">이력 등록</button>
</div>
</div>
</div>
</div>
</div>
@ -845,8 +971,9 @@
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="pnltyCd" id="pnltyCd" value="" />
<input type="hidden" name="pnltyOrd" id="pnltyOrd" value="" />
<input type="hidden" name="instrHstryOrd" id="instrHstryOrd" value="" />
<input type="hidden" name="memoCn" id="memoCn" value="" />
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>" />
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>" />
</form:form>
<!-- //cont -->

View File

@ -0,0 +1,208 @@
<!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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<% pageContext.setAttribute("replaceChar", "\n"); %>
<%
/**
* @Class Name : eduAplctRegPreviewDetail.jsp
* @Description : 메일 미리보기
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2022.04.05 안주영 최초 생성
* @author 안주영
* @since 2022.04.05
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>청소년 메일본문 상세</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/reset.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/font.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/datapicker/default.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/common.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/content.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/popup.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/datepicker/classic.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/datepicker/classic.date.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/swiper.min.css">
<link rel="stylesheet" href="/offedu/visitEdu/usr/publish/css/main.css">
<!-- script -->
<script src="/offedu/visitEdu/usr/publish/script/jquery-3.5.0.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/common.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/popup.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/postcode.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/visitEduCom.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/visitEduConstants.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/content.js"></script>
<script src="/offedu/js/antdatepicker/moment.min.js"></script>
<script src="/offedu/js/year-select.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/jquery.bxslider.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/swiper.min.js"></script>
<script src="/offedu/visitEdu/usr/publish/script/main.js"></script>
<script type="module" src="/offedu/visitEdu/usr/datapicker/duet.esm.js"></script>
<script nomodule src="/offedu/visitEdu/usr/datapicker/duet.js"></script>
<script src="/offedu/visitEdu/usr/datapicker/duet.system.js"></script>
<script type="text/javascript">
function fncUpdate(){
if ($("#emailCn").val() == null || $("#emailCn").val() == ''){
alert("메일 본문 내용은 필수값입니다.");
return false;
}
if(confirm("메일 본문을 수정하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/eduAplctMailMdfyAjax.do",
data: {
"cntCn" : $("#emailCn").val()
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("수정 되었습니다.");
location.reload(true);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
//이메일 발송
function fncSndEmail(){
var p_smsEmail = $("#emailCn").val();
if (p_smsEmail==""){
alert("이메일 발송 내용은 필수값입니다.");
return false;
}
if ($("#emailAddr").val() == null || $("#emailAddr").val() == ''){
alert("이메일 수신 주소는 필수값입니다.");
return false;
}
//alert($("#emailType").val());
//return false;
fncContent(
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/emailSndAjax.do",
"20",
p_smsEmail,
//"C"
$("#emailType").val()
, $("#clphone1").val()
, $("#clphone2").val()
);
}
//fncPreviewEmail
function fncPreviewEmail(){
//document.listForm.authorCode.value = vAuthorCode;
document.listForm.action = "<c:url value='/oprtn/tngrVisitEdu/popup/eduAplctMailPreviewDetail.do'/>";
window.open("#", "_aplctPreviewPop", "scrollbars = no, top=100px, left=100px, height=800px, width=1000px");
document.listForm.target = "_aplctPreviewPop";
document.listForm.submit();
}
//발송
function fncContent(p_url, p_cd, p_cn, p_flag
, p_clphone1
, p_clphone2
){
$.ajax({
type: "POST",
// enctype: 'multipart/form-data',
url:p_url,
//data: data,
data:{
"sndCd": p_cd,
"sndCn": p_cn,
"eduAplctOrd": 'test',
"email": $("#emailAddr").val(),
"sndFlag": p_flag,
"clphone1": p_clphone1
, "clphone2": p_clphone2
},
dataType:'json',
/*
async: false,
processData: false,
contentType: false,
cache: false,
*/
success:function(returnData){
if(returnData.result == "success"){
alert("정상적으로 발송되었습니다.");
}else{
alert("발송 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
</head>
<body>
<!-- cont -->
<div class="cont_wrap" id="sub">
<div class="cont_tit">
<h2>사용본문 미리보기(저장된 내용만 반영됩니다.)</h2>
</div>
<c:out value='${selectBasicTRInfo.cn}' escapeXml="false" />
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type08" onclick="self.close();return false;">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
<!-- //cont -->
</body>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;" action="">
<input type="hidden" name="yr" id="yr" value=""/>
</form:form>
</html>

View File

@ -0,0 +1,112 @@
<!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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<%
/**
* @Class Name : eduAplctMngDetailPopup.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">
<style>
/* Page Url Hide */
@page {
size: auto; /* auto is the initial value */
margin: 0; /* this affects the margin in the printer settings */
}
@media print {
html, body {height:auto;margin: 0 !important;padding: 0 !important;overflow: hidden;page-break-after: avoid;}
.cont_tit {page-break-before: always;}
.page_break {page-break-inside:avoid; page-break-after:auto}
.print_mark {page-break-before: auto;}
form{display: none;}
}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" method="post">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd" value="<c:out value="${info.eduAplctOrd}" />" />
</form:form>
<form id="hiddenMemoForm" name="hiddenMemoForm" method="post">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${info.eduAplctOrd}" />" />
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="" />
</form>
<!-- cont -->
<div class="area_popup">
<div class="cont_popup">
<div class="cont_tit" style="padding: 0 0 20px 0; margin-bottom: 30px;"><h2>SMS|EMIAL 발송 - 개발전</h2></div>
<table class="pop_tb_type02">
<colgroup>
<col style="width: 140px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>수신자</p>
</th>
<td>청소년강사1(010-1111-2222)</td>
</tr>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td colspan="3"><textarea rows="" cols=""></textarea></td>
</tr>
</tbody>
</table>
<div class="btnArea">
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type01" onclick="" title="새창 열림">확인</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,418 @@
<!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"%>
<%
/**
* @Class Name : instrHstryMngPopup.jsp
* @Description : 강사이력관리 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 김봉호
* @since 2021.08.21
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/classic.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/classic.date.css">
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/picker.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/picker.date.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/legacy.js"></script>
<script src="${pageContext.request.contextPath}/visitEdu/adm/publish/datepicker/ko_KR.js"></script>
<script type="text/javascript">
</script>
<title>신청반려팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
var mode = '${adjReqMgrVO.mode}';
if(mode == "D"){
$("input[type=checkbox],textarea").not("textarea[name=rejtReson]").attr("disabled" , true);
}
});
function fncAprooval(){
//var msg = "강의가능시간 변경";
var data1 = new FormData(document.getElementById("createForm"));
//console.log(data);
console.log(data1);
if (confirm("이력등록을 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrHstryMngPopupAjax.do",
//data: JSON.stringify(data),
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success: function (returnData, status) {
console.log(returnData.rs);
if(returnData.result == 'success'){
alert("정상적으로 등록 되었습니다.");
opener.location.reload();
//self.close();
}else{
alert(returnData.message);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function validationForm(data){
/*
var len = $("input[type='checkbox']:checked").length;
if (len <= 0) {
alert("보완요청항목을 선택해주세요.");
return false;
}
*/
if ($("[name='aprvlCn']").val() == '') {
alert("사유를 입력해주세요.");
return false;
}
/*
if ($("[name='adrSeq']").val() == '') {
alert("신청번호가 없습니다. 관리자에게 문의해주세요.");
return false;
}
*/
return true;
}
function fncGoEdit(){
var createForm = document.createForm ;
createForm.mode.value = "C";
createForm.action = "<c:url value='/kccadr/adjReqMgr/popup/adjReqMgrRegSecurityPopup.do'/>";
createForm.submit();
}
function fncStatusUpdate(confirmYn){
var msg = "승인";
var data = {};
data.adrSeq = '${security.adrSeq}';
data.edtSn = '${security.edtSn}';
data.apprYn = 'Y';
data.rejtReson = $("#rejtReson").val();
//data.statCd = '010100'; // 작성중 상태로 변경
if(confirmYn == "N"){
data.apprYn = 'N'; // 미승인 상태
msg = "반려";
}
if (confirm(msg+" 하시겠습니까?")) {
$.ajax({
type: "POST",
url: "/kccadr/adjReqMgr/popup/adjReqMgrRegSecurityStatusChange.do",
data: JSON.stringify(data),
dataType:'json',
async: false,
processData: false,
contentType: "application/json",
cache: false,
success: function (returnData, status) {
console.log(returnData.rs);
if(returnData.result == 'SUCCESS'){
alert("정상적으로 "+ msg +" 되었습니다.");
opener.location.reload();
self.close();
}else{
alert(returnData.message);
}
},
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
});
}
}
function fncPopClose(){
self.close();
}
//회차관리 변경
function fncRndsSave(thisObj){
//alert($("#ord_1").val());
//alert($(thisObj).closest("td"));
//alert($(thisObj).closest("td").find("input[name=ord_1]").length);
var p_ord = $(thisObj).closest("td").find("input[name=ord_1]").val();
var p_rgstrStrtPnttm_dt = $(thisObj).closest("td").find("input[name=rgstrStrtPnttm_dt]").val();
var p_rgstrStrtPnttm_tm = $(thisObj).closest("td").find("input[name=rgstrStrtPnttm_tm]").val();
var p_rgstrDdlnPnttm_dt = $(thisObj).closest("td").find("input[name=rgstrDdlnPnttm_dt]").val();
var p_rgstrDdlnPnttm_tm = $(thisObj).closest("td").find("input[name=rgstrDdlnPnttm_tm]").val();
var p_yr = $("#yr").val();
var p_ord = $("#ord").val();
var p_rgstrStrtPnttm_dt = $("#rgstrStrtPnttm_dt").val();
var p_rgstrStrtPnttm_tm = $("#rgstrStrtPnttm_tm").val();
var p_rgstrDdlnPnttm_dt = $("#rgstrDdlnPnttm_dt").val();
var p_rgstrDdlnPnttm_tm = $("#rgstrDdlnPnttm_tm").val();
//alert(p_areaCd);
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advRndsSaveAjax.do",
data:{
"yr" : p_yr,
"ord" : p_ord,
"rgstrStrtPnttm" : p_rgstrStrtPnttm_dt+p_rgstrStrtPnttm_tm,
"rgstrDdlnPnttm" : p_rgstrDdlnPnttm_dt+p_rgstrDdlnPnttm_tm,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.createForm ;
//listForm.pageIndex.value = pageNo ;
//listForm.searchCondition.value = $('#searchCondition').val();
//listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advRndsStngMngPopup.do'/>";
listForm.submit();
}
//회차관리 변경
function fncRndsUpdate(p_rndsOrd){
//alert($("#ord_1").val());
//alert($(thisObj).closest("td"));
//alert($(thisObj).closest("td").find("input[name=ord_1]").length);
//var p_ord = $(thisObj).closest("td").find("input[name=ord_1]").val();
//$("#${list.rndsOrd}"+" #lctrPsblStrtTm").val('${list.dpStrtTm}');
var p_rgstrStrtPnttm_dt = $("#"+p_rndsOrd+" #aplctPrdStrt").val();
var p_rgstrStrtPnttm_tm = $("#"+p_rndsOrd+" #lctrPsblStrtTm").val();
var p_rgstrDdlnPnttm_dt = $("#"+p_rndsOrd+" #aplctPrdEnd").val();
var p_rgstrDdlnPnttm_tm = $("#"+p_rndsOrd+" #lctrPsblEndTm").val();
var p_ord = $("#"+p_rndsOrd+" #psblTmQntty").val();
//alert(p_areaCd);
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advRndsUpdateAjax.do",
data:{
"rndsOrd" : p_rndsOrd,
//"yr" : p_yr,
"ord" : p_ord,
"rgstrStrtPnttm" : p_rgstrStrtPnttm_dt+p_rgstrStrtPnttm_tm,
"rgstrDdlnPnttm" : p_rgstrDdlnPnttm_dt+p_rgstrDdlnPnttm_tm,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
fncGoList();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
//회차관리 삭제
function fncRndsDelete(p_rndsOrd){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advRndsDeleteAjax.do",
data:{
"rndsOrd" : p_rndsOrd,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("삭제 처리 되었습니다.");
fncGoList();
}else{
alert("삭제 중 오류가 발생하였습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
</script>
</head>
<body>
<!-- 팝업을 위한 mask -->
<div class="mask2" onclick="timeLayerUtil()"></div>
<div class="area_popup">
<!-- cont_tit -->
<div class="cont_tit">
<h2>이력관리</h2>
</div>
<!-- //cont_tit -->
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" commandName="vELctrDetailVO" onsubmit="return false;">
<input type="hidden" name="userId" id="userId" value="<c:out value="${vEAStngVO.userId}" />">
<table class="pop_tb_type02">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<tbody>
<tr>
<th scope="row">구분</th>
<th scope="row">내용</th>
</tr>
</tbody>
<tbody>
<tr>
<!-- 회차 -->
<td>
<div class="util_right">
교육명
</div>
</td>
<td>
<div class="util_right">
<input type="text" id="sbjct" name="sbjct" class="search_input"
style="width:400px;" maxlength="30"
value='' onkeyDown="press(event);">
</div>
</td>
</tr>
<tr>
<!-- 회차 -->
<td>
<div class="util_right">
교육기간
</div>
</td>
<td>
<div class="util_right">
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="rgstrStrtPnttm_dt"
name="rgstrStrtPnttm_dt">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="rgstrDdlnPnttm_dt"
name="rgstrDdlnPnttm_dt">
</div>
</div>
</td>
</tr>
<tr>
<!-- 회차 -->
<td>
<div class="util_right">
비고
</div>
</td>
<td>
<div class="util_right">
<input type="text" id="cn" name="cn" class="search_input"
style="width:700px;" maxlength="300"
value='' onkeyDown="press(event);">
</div>
</td>
</tr>
</tbody>
</table>
</form:form>
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center" style="width: 100%;">
<button type="button" class="btn_type04" onclick="fncAprooval(); return false;">등록</button>
<button type="button" class="btn_type02" onclick="window.close()">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -144,6 +144,9 @@
<col style="width: 8%">
<col style="width: 8%">
<col style="width: auto;">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 8%">
<col style="width: 10%">
<col style="width: 10%">
</colgroup>
@ -153,7 +156,10 @@
<th>학교구분</th>
<th>지역</th>
<th>학교(기관)명</th>
<th>도서구분</th>
<th>도서여부</th>
<th>벽지여부</th>
<th>접적학교여부</th>
<th>인구감소지역여부</th>
<th>등록일</th>
</tr>
</thead>
@ -196,7 +202,22 @@
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.scholId}'); return false;">
<c:out value="${list.isltnScholYn}"/>
<c:out value="${list.isltnYn}"/>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.scholId}'); return false;">
<c:out value="${list.isltn2Yn}"/>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.scholId}'); return false;">
<c:out value="${list.isltn3Yn}"/>
</a>
</td>
<td>
<a href="#" onclick="javascript:fncGoDetail('${list.scholId}'); return false;">
<c:out value="${list.isltnYn}"/>
</a>
</td>
<td>
@ -207,7 +228,7 @@
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
<tr><td colspan="9"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>

View File

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

View File

@ -83,8 +83,8 @@
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: auto;">
<col style="width: 15%">
<col style="width: 20%;">
<col style="width: 15%;">
@ -92,8 +92,8 @@
<thead>
<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>
@ -108,13 +108,13 @@
</td>
<td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
${list.chrgMjr}
<fmt:parseDate value="${list.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy년"/>
</a>
</td>
<td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/>
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
${list.chrgMjr}
</a>
</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>
</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_left">
@ -150,7 +143,7 @@
<c:choose>
<c:when test="${not empty info.sbmtPnttmDetail}">
<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:otherwise>
-
@ -158,12 +151,6 @@
</c:choose>
</td>
<th scope="row">
<p>접수종료일</p>
</th>
<td>
<c:out value="${endPnttm }"/>
</td>
</tr>
<tr class="trLength2">
<th scope="row">
@ -181,21 +168,6 @@
</c:choose>
</td>
</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>
<th scope="row">
<p>처리상태</p>
@ -231,6 +203,14 @@
<td colspan="3">${info.aprvlCn}</td>
</tr>
</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>
</table>
</div>
@ -283,12 +263,6 @@
<kc:code codeId="COM014" code="${info.chrgSexCd}"/>
</td>
</tr>
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td>${info.email}</td>
</tr>
<tr>
<th scope="row">
<p>휴대폰</p>
@ -300,6 +274,12 @@
<p>전화</p>
</th>
<td>${info.phone}</td>
</tr
<tr>
<th scope="row">
<p>이메일</p>
</th>
<td>${info.email}</td>
</tr>
<tr>
<th scope="row">
@ -367,26 +347,26 @@
<tbody>
<tr class="trLength4">
<th scope="row">
<p>대상학년</p>
<p>대상학년/반</p>
</th>
<td>${info.trgtGrade}</td>
<th scope="row">
<%-- <th scope="row">
<p>대상반</p>
</th>
<td>${info.trgtClsrm}</td>
<td>${info.trgtClsrm}</td> --%>
</tr>
<tr class="trLength2">
<th scope="row">
<p>대상학년</p>
<p>대상학년/반</p>
</th>
<td colspan="3">${info.trgtGrade}</td>
</tr>
<tr class="trLength2">
<%-- <tr class="trLength2">
<th scope="row">
<p>대상반</p>
</th>
<td colspan="3">${info.trgtClsrm}</td>
</tr>
</tr> --%>
<tr class="trLength4">
<th scope="row">
<p>대상학생수</p>

View File

@ -124,8 +124,8 @@
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: auto;">
<col style="width: 15%">
<col style="width: 20%;">
<col style="width: 15%;">
@ -133,8 +133,8 @@
<thead>
<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>
@ -149,13 +149,13 @@
</td>
<td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
${list.chrgMjr}
<fmt:parseDate value="${list.oprtnStrtDt}" var="oprtnStrtDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${oprtnStrtDt}" pattern="yyyy년"/>
</a>
</td>
<td>
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');" >
<fmt:parseDate value="${list.prcsEndPnttm}" var="prcsEndPnttm" pattern="yyyyMMddHHmm"/>
<fmt:formatDate value="${prcsEndPnttm}" pattern="yyyy.MM.dd"/>
${list.chrgMjr}
</a>
</td>
<td>

View File

@ -168,7 +168,7 @@
function fncSave(type){
if(type == 'S'){
if(type == 'S' || type == 'E'){
if (!validCheck()) return;
}
@ -180,6 +180,9 @@
if(confirm("교육신청을 "+(type == 'I'? '임시저장' : '등록')+"하시겠습니까?")){
if(type == 'I'){
$("#sbmtYn").val("N");
}else if(type == 'E'){
$("#sbmtYn").val("Y");
$("#aprvlCd").val(VeConstants.APRVL_CD_80);
}else{
$("#sbmtYn").val("Y");
$("#aprvlCd").val(VeConstants.APRVL_CD_10);
@ -394,15 +397,21 @@
$("#trgtGrade").focus();
return false;
}
if($('#trgtClsrm').val() == ''){
/* if($('#trgtClsrm').val() == ''){
alert('대상반을 입력해주세요.');
$("#trgtClsrm").focus();
return false;
}
} */
if($('#trgtPrsnl').val() == ''){
alert('학생수를 입력해주세요.');
alert('전체학생 수를 입력해주세요.');
$("#trgtPrsnl").focus();
return
false;
}
if($('#needTxtbNum').val() == ''){
alert('필요 교재 수량을 입력해주세요.');
$("#needTxtbNum").focus();
return false;
}
@ -567,7 +576,7 @@
}
$("#trgtGrade").val(info.trgtGrade);
$("#trgtClsrm").val(info.trgtClsrm);
/* $("#trgtClsrm").val(info.trgtClsrm); */
$("#trgtPrsnl").val(info.trgtPrsnl);
$("#needTxtbNum").val(info.needTxtbNum);
@ -687,13 +696,12 @@
script="onFocus='this.initialSelect = this.selectedIndex;' onChange='this.selectedIndex = this.initialSelect;'"/>
<label for="scholInsttNm" class="label">학교(기관)명 입력</label>
<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}">
</td>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>학교구분</p>
</th>
<td colspan="3">
@ -785,7 +793,6 @@
</tr>
<tr class="input_adress">
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>주소</p>
</th>
<td colspan="3">
@ -897,25 +904,26 @@
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>학년수</p>
<p>대상학년/반</p>
</th>
<td>
<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>
<th scope="row">
<!-- 231107 학년과 대상 통합 요청 -->
<%--<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>대상 반</p>
</th>
<td>
<label for="trgtClsrm" class="label">대상 반 입력</label>
<input type="text" name="trgtClsrm" id="trgtClsrm" value="${info.trgtClsrm}" title="교육인원" size="20"> 반
</td>
</td> --%>
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>학생수</p>
<p>전체학생 수</p>
</th>
<td>
<label for="trgtPrsnl" class="label">학생 수 입력</label>
@ -964,10 +972,11 @@
</tr>
<tr>
<th scope="row">
<p class="req_text"><span>필수입력 항목</span>*</p>
<p>필요 교재 수량</p>
</th>
<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">
</td>
</tr>

View File

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

View File

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

View File

@ -0,0 +1,418 @@
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<script type="text/javascript" src="${pageContext.request.contextPath}/kccadrPb/usr/script/popup.js"></script>
<style type="text/css">
.fc-day-sat { color:#0000FF; } /* 토요일 */
.fc-day-sun { color:#FF0000; } /* 일요일 */
</style>
<link type="text/css" rel="stylesheet" href="<c:url value='/js/fullcalendar/5.9.0/main.css' />" />
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/main.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/locales-all.js'/>"></script>
<!-- css -->
<link rel="stylesheet" href="/offedu/visitEdu/adm/publish/css/reset.css">
<link rel="stylesheet" href="/offedu/visitEdu/adm/publish/css/font.css">
<link rel="stylesheet" href="/offedu/visitEdu/adm/publish/css/common.css">
<link rel="stylesheet" href="/offedu/visitEdu/adm/publish/css/content.css">
<link rel="stylesheet" href="/offedu/visitEdu/adm/publish/css/popup.css">
<!-- script -->
<script src="/offedu/visitEdu/adm/publish/script/jquery-3.5.0.js"></script>
<script src="/offedu/visitEdu/adm/publish/script/content.js"></script>
<script src="/offedu/kccadrPb/adm/script/postcode.js"></script>
<script src="/offedu/js/ncms_common.js"></script>
<script src="/offedu/js/util.js"></script>
<script src="/offedu/js/kccadr/kccadrCom.js"></script>
<script src="/offedu/js/kccadr/kccadrConstants.js"></script>
<script src="/offedu/js/antdatepicker/moment.min.js"></script>
<script type="text/javascript" src="/offedu/js/ve/veConstants.js"></script>
<script type="text/javaScript" language="javascript">
function fncGoScholList(){
linkPage(1);
}
function linkPage(pageNo){
var data = {
pageIndex : pageNo,
searchKeyword : $("#searchKeyword").val(),
searchCondition : $("#searchCondition").val(),
pageUnit : 5,
formId : $("#formId").val(),
}
fncScholList(data);
}
function fncScholList(paramObj) {
if(paramObj == undefined || paramObj == ''){
paramObj = {
pageIndex : 1,
searchKeyword : "",
searchCondition : "",
pageUnit : 5,
formId : $("#formId").val(),
};
}
// 학교 리스트 팝업 호출
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/scholPopList.do"
, 500
, 600
, paramObj
, "N"
, "scholPop"
);
}
function fncScholDataSlct_back(p_code, p_nm){
var fNm = "#"+$("#formId").val();
$(fNm + " #stndrdScholCd").val(p_code);
$(fNm + " #scholInsttNm").val(p_nm);
$(".btn_popup_close").click();
}
function fncScholDataSlct(thisObj){
var inObj = $(thisObj).closest("td").find("input[type=hidden]");
var rsObj = new Object();
$.each(inObj, function(idx, value){
console.log(value.value);
rsObj[value.name] = value.value;
});
callBackSchPop(rsObj);
$(".btn_popup_close").click();
}
$(document).ready(function(){
//boardCaptionDetailToggle4();
// 레이어팝업 포커싱 이동 수정
$(".tooltip-close").click(function(){
var activeTarget = $('[data-tooltip-con="sub36_pop02"]');
activeTarget.hide();
$('[data-tooltip="sub01_pop02"]').focus();
});
//레이어팝업 초정 이동 시 필요한 data 값 추가
var btnLast = $('.popup_cont').find('.page').find('button:last-child');
btnLast.attr('data-focus-next','sub36_pop02');
btnLast.attr('data-focus','sub36_pop02_close');
})
var ex_s_todate;// = info.startStr;
var calendar;
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('schduleManager');
calendar = new FullCalendar.Calendar(calendarEl, {
locale: 'ko',
timezone : "local",
weekends : true,
editable : false,
firstDay : 0, //월요일이 먼저 오게 하려면 1
dayMaxEvents: true,
navLinks: true,
navLinkDayClick: function(date, jsEvent) { //일자클릭
console.log('day', date.toISOString());
console.log('coords', jsEvent.pageX, jsEvent.pageY);
},
customButtons: {
myCustomButton: {
text: '오늘',
click: function(event, elm) {
alert('clicked the custom button!');
}
},viewWeekends : {
text : '주말',
click : function (event, elm) {
calendar.setOption("weekends" , calendar.getOption("weekends") ? false : true);
}
}
},buttonText: {
listMonth: '일정'
},
headerToolbar: {
left: 'prevYear nextYear today',
center: 'prev title next',
right: ' '
//right: 'dayGridMonth,listMonth'
},
eventSources: [
{
events: function(info, successCallback, failureCallback) {
console.log(info);
//alert(info.start);
//alert(info.startStr);
//alert(JSON.stringify(info));
//alert(JSON.stringify(info.startStr));
var s_todate = info.startStr;
ex_s_todate = info.startStr;
var searchDt = $("#searchCalendarCode").val();
$.ajax({
url: '<c:url value="/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdCalendarPopupAjax.do"/>',
type: 'POST',
dataType: 'json',
data: {
searchStartDt : "",
searchStartDt : s_todate,
todate : info.start,
dpStrtDt : s_todate,
dpDdlnDt : info.start,
rndsOrd : '${rndsOrd}',
//todate : info.startStr,
//todate : s_todate,
//todate : "",
searchYearMonth : function(){
return "";
}
},
success: function(data) {
successCallback(data);
// 날짜 계산
//setCalDate(data, info.startStr);
}
});
}
}
],
eventContent: function(arg, createElement) {
event.preventDefault();
console.log(arg.event._def.url);
arg.event._def.url = "#none";
},
eventClick: function(info) {
info.jsEvent.preventDefault();
/*
alert(info.event._def.extendedProps.lctrPsblPrdOrd);
alert(info.event._def.extendedProps.start);
alert(info.event._def.extendedProps.end);
alert(info.event._def.extendedProps.rndsNm);
alert(JSON.stringify(info.event._def.extendedProps));
*/
schDetailPop(
info.event._def.extendedProps.lctrPsblPrdOrd
, info.event._def.extendedProps.rndsOrd
, info.event._def.extendedProps.rndsNm
);
return false;
},
});
calendar.render();
});
function schDetailPop(
p_lctrPsblPrdOrd
, p_rndsOrd
, p_lctrPsblStrtDt
) {
//alert(p_lctrPsblPrdOrd);
fncChangePsblDay(p_lctrPsblPrdOrd, p_rndsOrd, p_lctrPsblStrtDt);
//calendar.fullCalendar('refetchEvents');
/*
window.open('', 'schDetailPop', "width=800, height=520, left=100, top=130","location = no","status= no","toolbars= no");
document.listForm.eduAplctOrd.value = schSeq ;
document.listForm.eduChasiOrd.value = schChasiSeq ;
document.listForm.method = "post";
document.listForm.action = "${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/SchduleManagerPopDetail.do";
document.listForm.target = "schDetailPop" ;
document.listForm.submit();
*/
}
//회차의 강의가능기간관리 삭제
function fncChangePsblDay(p_lctrPsblPrdOrd
, p_rndsOrd
, p_lctrPsblStrtDt){
//if(p_psblTmQntty != "") {
if(true) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdChangeAjax.do",
data:{
"lctrPsblPrdOrd" : p_lctrPsblPrdOrd,
"rndsOrd" : p_rndsOrd,
"lctrPsblStrtDt" : p_lctrPsblStrtDt,
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
//fncGoList();
//$('#schduleManager').fullCalendar('gotoDate', new Date('2023-10-01'));
window.location.reload(false);
//calendar.render();
}else{
alert("변경 중 오류가 발생하였습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}else{
alert("교육가능시수를 입력해주세요.");
}
}
function excelDownLoad(){
var listForm = document.listForm ;
listForm.searchStartDt.value = ex_s_todate ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/tngrSchduleManagerExcelDownLoad.do'/>";
listForm.submit();
}
/*
*##############################################################################
* START
*##############################################################################
*/
// 날짜 계산
function setCalDate(data, startStr) {
// 현재월 구하기
startStr = startStr.substr(0, 10);
startStr = replaceAll(startStr, "-", "");
startStr = replaceAll(startStr, ".", "");
startStr = replaceAll(startStr, "/", "");
var todayYear = startStr.substring(0,4);
var todayMonth = 0;
var todayDay = startStr.substring(6,8);
if (todayDay == "01") {
todayMonth = startStr.substring(4,6);
}
else {
if (startStr.substring(4,6) == "12") {
todayMonth = "01";
}
else {
todayMonth = parseInt(startStr.substring(4,6), 10) + 1;
if (todayMonth < 10) {
todayMonth = "0" + todayMonth;
}
}
}
// End
//alert(todayMonth);
var monthCnt = 0;
var week1Cnt = 0, week2Cnt = 0, week3Cnt = 0, week4Cnt = 0, week5Cnt = 0, week6Cnt = 0;
var sHtml = "";
for (var j = 0; j < data.length; j++) {
var schStartDate = data[j].start.substr(0, 10);
schStartDate = replaceAll(schStartDate, "-", "");
schStartDate = replaceAll(schStartDate, ".", "");
schStartDate = replaceAll(schStartDate, "/", "");
var thisYear = schStartDate.substring(0,4);
var thisMonth = schStartDate.substring(4,6);
var thisDay = schStartDate.substring(6,8);
var thisWeek = getSecofWeek(schStartDate);
// 해당월 데이터만 처리
if (todayMonth == thisMonth) {
monthCnt++;
if (thisWeek == 1) {
week1Cnt++;
}
else if (thisWeek == 2) {
week2Cnt++;
}
else if (thisWeek == 3) {
week3Cnt++;
}
else if (thisWeek == 4) {
week4Cnt++;
}
else if (thisWeek == 5) {
week5Cnt++;
}
else if (thisWeek == 6) {
week6Cnt++;
}
}
}
sHtml += "전체 : " + monthCnt + "건";
sHtml += " &nbsp;(1주차 : " + week1Cnt + "건";
sHtml += ", &nbsp;&nbsp;2주차 : " + week2Cnt + "건";
sHtml += ", &nbsp;&nbsp;3주차 : " + week3Cnt + "건";
sHtml += ", &nbsp;&nbsp;4주차 : " + week4Cnt + "건";
sHtml += ", &nbsp;&nbsp;5주차 : " + week5Cnt + "건";
sHtml += ", &nbsp;&nbsp;6주차 : " + week6Cnt + "건)";
sHtml += '&nbsp;<button type="button" class="btn_down_excel" onclick="excelDownLoad();">일정현황 엑셀 다운로드</button>';
$("#weekCnt").html(sHtml);
}
// 해당일 주차 계산
function getSecofWeek(date) {
var d = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, date.substring(6,8) );
var fd = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, 1 );
return Math.ceil((parseInt(date.substring(6,8))+fd.getDay())/7);
}
// ReplaceAll
function replaceAll(str, searchStr, replaceStr) {
return str.split(searchStr).join(replaceStr);
}
</script>
<!-- 일정 상세 -->
<form:form commandName="scholInfoVO" id="popList" name="popList" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${scholInfoVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${scholInfoVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${scholInfoVO.searchSortOrd}" />" />
<input type="hidden" name="formId" id="formId" value="<c:out value="${scholInfoVO.formId}" />" />
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="sub36_pop02" data-focus="sub36_pop02" data-focus-prev="sub36_pop02_close">
<div class="popup_tit">
<p>학교명 검색</p> <button class="btn_popup_close tooltip-close" data-focus="sub36_pop02_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div id="schduleManager">askfjaskdjfaskdjfasdk
asdfasfsad
asdfsadf
</div>
</div>
</div>
</form:form>

View File

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

View File

@ -232,7 +232,7 @@
return false;
}
//첨부파일 체크 및 요청
if(confirm("서류 요청을 등록하시겠습니까?")){
if(confirm("양식을 업로드 하시겠습니까?")){
if(control.getUploadFiles().length > 0){
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
@ -402,7 +402,7 @@
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop02" data-focus="sub37_pop02" data-focus-prev="sub37_pop02_close">
<div class="popup_tit">
<p>강사 연락처</p>
<p>양식 업로드</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop02_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
@ -1013,7 +1013,7 @@
</div>
<c:if test="${not empty docReqList}">
<div class="tb_tit01">
<div class="tb_tit01" style="margin-top:40px;">
<div class="tb_tit01_left">
<p>요청서류 목록</p>
</div>

View File

@ -64,10 +64,10 @@
<select class="selType1" id="searchStatus2" name="searchStatus2">
<option ${vEEduAplctVO.searchStatus2 eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CFRM ? 'selected' : ''} value="${VeConstants.STATUS_CD_CFRM}">교육승인</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_RJT ? 'selected' : ''} value="${VeConstants.STATUS_CD_RJT}">교육반려</option>
<%-- <option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CFRM ? 'selected' : ''} value="${VeConstants.STATUS_CD_CFRM}">교육승인</option> --%>
<%-- <option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_RJT ? 'selected' : ''} value="${VeConstants.STATUS_CD_RJT}">교육반려</option> --%>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CHI_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_CHI_CMPT}">선정완료</option>
<%-- <option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CHI_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_CHI_CMPT}">선정완료</option> --%>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
@ -123,7 +123,7 @@
<a href="javascript:fncGoDetail('${list.eduAplctOrd}');">
<c:choose>
<c:when test="${not empty list.eduHopeDt}">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/>
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>
</c:when>
<c:otherwise>
@ -213,7 +213,7 @@
<span>
<c:choose>
<c:when test="${not empty list.eduHopeDt}">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/>
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>
</c:when>
<c:otherwise>

Some files were not shown because too many files have changed in this diff Show More