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

@ -37,6 +37,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

@ -228,4 +228,21 @@ public final class DateUtil {
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

@ -379,6 +379,7 @@ public class EgovCcmCmmnCodeManageController {
cmmnDetailCodeVO.setCodeDc(cmmnDetailCode.getCodeDc());
cmmnDetailCodeVO.setUseAt(cmmnDetailCode.getUseAt());
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;
}
@ -482,5 +484,13 @@ public class MenuManageJTreeVO implements Serializable {
this.depth = depth;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
}

View File

@ -600,6 +600,7 @@ public class EgovLoginController {
// 1. 로그인 처리
LoginVO resultVO = loginService.actionLogin(loginVO);
System.out.println("UserWork :: "+resultVO.getUserWork());
if (loginService.getUserAuth(resultVO) != null) {
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
@ -665,7 +666,7 @@ public class EgovLoginController {
// 2. spring security 연동
request.getSession().setAttribute("LoginVO", resultVO);
System.out.println("===============!==============");
UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter();
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
@ -1697,6 +1698,8 @@ public class EgovLoginController {
return "redirect:/web/main/mainPage.do";
} else if ("ROLE_VISIT".equals(user.getAuthority())) {
return "redirect:/cmm/main/mainPage.do";
} else if ("ROLE_ADR_JRSDC".equals(user.getAuthority())) {
return "redirect:/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do";
} else if ("ROLE_USER_MEMBER".equals(user.getAuthority())) {
System.out.println("비정상적인 사용자 redirect 임");
return "redirect:/web/main/mainPage.do";

View File

@ -527,6 +527,7 @@ public class EgovUserManageController {
}
}
//관리자등록일 경우
System.out.println("userManageVO.getGnrlUser() :: "+ userManageVO.getGnrlUser());
if(userManageVO.getGnrlUser().equals("N")) {
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/uss/umt/user/EgovUserManage.do");
return redirectUrlMaker.getRedirectUrl();

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

@ -69,6 +69,17 @@ public interface VEAStngService {
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
VEAStngVO selectDetail_VEAIRR(VEAStngVO paramVO) throws Exception; // R
@ -76,4 +87,22 @@ public interface VEAStngService {
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
//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; //실제 신청 차시(관리자 달력용)
@ -110,6 +184,8 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
private String searchWord; //검색어
private String workWeekCnt; // 수업 가능일수
//4 update
private String tableNm;
private String setQuery;
@ -121,6 +197,9 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
private String end;
private String title;
private String titleF; //현재신청
private String titleB; //가능신청
//지역별 강의 설정
private String userNm;
@ -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

@ -218,6 +218,39 @@ public class VEAStngDAO extends EgovAbstractDAO {
}
//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 {
insert("VEAInstrRsdncRatioDAO.insert", paramVO);
@ -245,4 +278,62 @@ public class VEAStngDAO extends EgovAbstractDAO {
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 {
@ -292,4 +330,70 @@ public class VEAStngServiceImpl implements VEAStngService {
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

@ -15,6 +15,8 @@ public interface CndtnTrgtMngService {
void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO);
int findCntreqNmber(String reqNmbrTemp);

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

@ -121,5 +121,9 @@ public class CndtnTrgtMngDAO extends EgovAbstractDAO {
return (String) select("cndtnTrgtInfoMngDAO.findByTrgtNmAndDBirthAndUserIdAndEduStateCd", cndtnTrgtInfoMngVO);
}
public int findCntreqNmber(String reqNmbrTemp) {
return (int) select("cndtnTrgtInfoMngDAO.findCntreqNmber", reqNmbrTemp);
}
}

View File

@ -53,6 +53,11 @@ public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
cndtnTrgtInfoMngDAO.updateUserId(cndtnTrgtMngVO);
}
@Override
public int findCntreqNmber(String reqNmbrTemp) {
return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
}
/*
//C
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {

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,6 +154,95 @@ public class CndtnTrgtMngController {
//로그인 처리====================================
//로그인 정보 가져오기
// LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
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);
//임시로 페이징 처리를 안하기 위해서 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/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 로그인 정보 가져오기
@ -183,7 +293,7 @@ public class CndtnTrgtMngController {
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", cndtnTrgtInfoMngVOList);
return "oprtn/cndtnSspnIdtmt/trgtList";
return "oprtn/cndtnSspnIdtmt/trgtMngList";
}
/**
@ -262,6 +372,7 @@ public class CndtnTrgtMngController {
public String cndtnEduPrcsMngReg(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnTrgtMngVO cndtnTrgtInfoMngVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
@ -272,6 +383,8 @@ public class CndtnTrgtMngController {
//로그인 처리====================================
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();
@ -305,12 +418,35 @@ public class CndtnTrgtMngController {
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);
@ -322,6 +458,48 @@ public class CndtnTrgtMngController {
}
// 사건번호
// 형식 : - 예시로 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++;
@ -1724,6 +1748,13 @@ public class OprtnInstrTngrPrflContoller {
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);
//model.addAttribute("asgnmInfoT1List",selectAsgnmInfoT1List);
@ -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;
@ -176,6 +177,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");
}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; //비율 총합
@ -571,6 +578,131 @@ 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

@ -2968,4 +2968,18 @@
<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

@ -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

@ -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

@ -40,7 +40,6 @@
, mber_sttus AS emplyrSttusCode
, mbtlnum AS membCelnum
, birth_day AS membBirth
FROM lettngnrlmber a
WHERE mber_id = #id#
AND PASSWORD = #password#

View File

@ -20,11 +20,13 @@
<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">
@ -40,7 +42,7 @@
, mber_sttus AS emplyrSttusCode
, mbtlnum AS membCelnum
, birth_day AS membBirth
, '' AS userWork
FROM lettngnrlmber a
WHERE mber_id = #id#
AND PASSWORD = #password#
@ -62,6 +64,7 @@
, EMPLYR_STTUS_CODE AS emplyrSttusCode
, mbtlnum AS membCelnum
, '' AS membBirth
, user_work AS userWork
FROM LETTNEMPLYRINFO a
WHERE EMPLYR_ID = #id#
AND PASSWORD = #password#
@ -74,6 +77,7 @@
<!-- 개발자 아이디 선택용 -->
<select id="loginDAO.actionLoginDev" resultMap="login">
/*loginDAO.actionLoginDev*/
<!-- 일반회원 loginDAO.actionLoginDev -->
<isNotNull property="userSe">
<isEqual property="userSe" compareValue="GNR">
@ -110,6 +114,7 @@
, EMPLYR_STTUS_CODE AS emplyrSttusCode
, mbtlnum AS membCelnum
, '' AS membBirth
, user_work AS userWork
FROM LETTNEMPLYRINFO a
WHERE EMPLYR_ID = #id#
<isEmpty property="statusAll">
@ -121,6 +126,7 @@
<!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 -->
<select id="loginDAO.actionLoginMberId" resultMap="login">
/*loginDAO.actionLoginMberId*/
<!-- 일반회원 loginDAO.actionLoginDev -->
<isNotNull property="userSe">
<isEqual property="userSe" compareValue="GNR">
@ -136,7 +142,7 @@
, mber_sttus AS emplyrSttusCode
, mbtlnum AS membCelnum
, birth_day AS membBirth
, '' AS userWork
FROM lettngnrlmber a
WHERE mber_id = #id#
<isEmpty property="statusAll">
@ -157,6 +163,7 @@
, EMPLYR_STTUS_CODE AS emplyrSttusCode
, mbtlnum AS membCelnum
, '' AS membBirth
, user_work AS userWork
FROM LETTNEMPLYRINFO a
WHERE EMPLYR_ID = #id#
<isEmpty property="statusAll">

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>
@ -132,10 +135,20 @@
, req_nmbr = #reqNmbr#
, prsctr_nm = #prsctrNm#
, 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

@ -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

@ -137,4 +137,100 @@
GROUP BY substring(b.edu_hope_dt,1,7)
</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

@ -244,6 +244,19 @@
, 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

@ -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>

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 -->
<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,10 +114,17 @@
}
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',
@ -127,6 +143,7 @@
}
});
}
}
@ -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,11 +47,20 @@
}
var data = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-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',
@ -70,13 +69,18 @@
contentType: false,
cache: false,
success:function(returnData){
console.log('returnData :: ', returnData);
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
// 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

@ -346,6 +346,75 @@
}
}
//교육설정 등록여부 체크
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({
@ -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>
@ -839,16 +912,42 @@
<c:out value="${result.frstRegistPnttm}"/>
</td>
<td>
<input type="text" size="3" id="ttlEduCnfrmPsblChasi" name="ttlEduCnfrmPsblChasi" maxlength="10" value='<c:out value="${result.ttlEduCnfrmPsblChasi}"/>'/>
<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>
@ -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>
@ -761,6 +829,7 @@
</table>
</div>
<div class="tb_tit01">
<p>패널티 목록</p>
</div>
@ -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,6 +971,7 @@
<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}'/>" />

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,6 +65,7 @@
</c:if>
</dl>
</div>
<c:if test="${detailVO.checkYn eq 'Y' }">
<div class="title">· 신청서 접수 시 유의사항</div>
<div class="list">
<ol>
@ -74,6 +81,7 @@
<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>

View File

@ -783,6 +783,28 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
}
}
function fncCalView(paramObj) {
if(paramObj == undefined || paramObj == ''){
paramObj = {
pageIndex : 1,
searchKeyword : "",
searchCondition : "",
pageUnit : 5,
formId : "createForm"
};
}
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/calendarPopList.do"
//"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/advLctrPrdCalendarPopup.do"
//"${pageContext.request.contextPath}/web/ve/tngrVisitEdu/popup/advLctrPrdCalendarPopup.do"
, 900
, 900
, paramObj
, "Y"
, "calendarPop"
);
}
</script>
<div class="mask2" onclick="timeLayerUtil()"></div>
<div class="cont_wrap" id="sub">
@ -809,6 +831,9 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div>
</div>
<c:choose>
<c:when test="${empty selectBasicTRInfo}">
<div class="tit_box">
<i class="tit_box_icon1"></i>
<div>
@ -817,6 +842,16 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
무료로 강의를 지원하는 맞춤형 교육 서비스입니다.<p style="font-weight:400;color:red;font-size:17px;padding-top:8px; padding-bottom: 0;">담당자 연락처) 055-792-0224</p></span>
</div>
</div>
</c:when>
<c:otherwise>
<c:out value='${selectBasicTRInfo.cn}' escapeXml="false" />
</c:otherwise>
</c:choose>
<c:if test=""></c:if>
<div class="tb_tit01">
<div class="tb_tit01_left">
@ -1010,6 +1045,7 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
<span class="cf_text2" style="display:block; padding-left:0; padding-top: 6px;">※ 교육추가 버튼을누러 대상별 1줄씩 작성(1줄 = 강사 1인) 바랍니다. (예시 : 3개 학급 신청 시 1학급 당 1줄씩 총 3줄을 작성)</span>
</div>
<div class="btn_wrap">
<!-- <button type="button" class="btnType01" data-tooltip="sub01_pop02" onclick="fncCalView();" title="팝업 열림">교육일정달력보기</button> -->
<button type="button" class="btnType05" title="교육차시 입력테이블 추가생성" onclick="addEduClassCopyTngr('addClassRow')">교육추가</button>
</div>
</div>

View File

@ -1043,6 +1043,71 @@
</c:if>
</tbody>
</table>
<c:if test="${not empty docReqList}">
<div class="tb_tit01" style="margin-top:40px;">
<div class="tb_tit01_left">
<p>요청서류 목록</p>
</div>
</div>
<div class="tb_type02">
<table>
<%-- <caption>교육차시 정보 교육희망일, 시간, 구분, 대상, 배정강사, 인원 을/를 제공하는 표</caption> --%>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<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}">
<tr>
<th>
<c:out value="${docReqList.docReqNm}" />
</th>
<td>
<c:out value="${docReqList.instrNm}" />
</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: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}">
미제출
</c:if>
</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>
</tr>
</c:forEach>
</tbody>
</table>
<p style="color:gray;font-size:14px;padding-top:30px;">* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.</p>
</div>
</c:if>
</div>
<div class="btn_wrap btn_layout01">

View File

@ -0,0 +1,186 @@
<%@ 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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ 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="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%-- <un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" /> --%>
<!--
대용량 솔루션 license 구분 값 추가
20230717 이호영
-->
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
<script type="text/javascript">
/*
* ==================================================================
* INNORIX
* 파일 업로드 솔루션 init 셋팅
* ==================================================================
*/
var control = new Object();
$(document).ready(function() {
//파일첨부버튼
$(".btn_add_file").on('click', function(){
$("#file_temp").click();
});
$('#file_temp').change(function(e){
var objUpload = $(".upload_area");
var files = $('#file_temp')[0].files;
handleFileUpload(files,objUpload); //파일업로드
if($("#file_temp").length > 0){
$("#file_temp").val(""); //파일지우기
}
});
// 레이어팝업 포커싱 이동 수정
/* $(".tooltip-close").click(function(){
$('[data-tooltip="sub35_pop01"]').focus();
}); */
$(".tooltip-close").click(function(){
var fileType = '${fileType}';
$('#'+fileType).focus();
});
/*
* ==================================================================
* INNORIX
* 파일전송 컨트롤 생성
* ==================================================================
*/
control = innorix.create({
el: '#fileControl' // 컨트롤 출력 HTML 객체 ID
, transferMode: 'both' // 업로드, 다운로드 혼합사용
, installUrl: '<c:url value="/innorix/install/install.html" />' // Agent 설치 페이지
, uploadUrl: '<c:url value="/innorix/exam/upload.jsp" />' // 업로드 URL
, height:80
, width: 600
, maxFileCount : 1 // 첨부파일 최대 갯수
, allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"]
// 가능한 확장자 txt|xls|xlsx|png|jpg|jpeg|doc|ppt|hwp|pdf|zip
});
// 업로드 완료 후 이벤트
control.on('uploadComplete', function (p) {
console.log('uploadComplete : ', p);
fn_callBackInnorix(p.files); // 파일 정보 DB isnert function
});
});
function fncClose() {
window.close();
}
//거래선 업로드
function fncSaveFile(type){
var setMsg = "";
if(type == 'DOC') {
setMsg = "요청서류를";
}
if(confirm(setMsg + " 업로드 하시겠습니까?")){
if(control.getUploadFiles().length > 0){
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
control.upload(); // 업로드 시작
}else{
alert("등록된 첨부파일이 없습니다.");
return false;
}
}
}
/*
* 파일 정보 DB insert Ajax
* */
function fn_callBackInnorix(data){
var type = $('#fileType').val();
var setMsg = "";
if(type == 'DOC') {
setMsg = "요청서류";
}
var url = "<c:url value='/web/common/insertInnorixDocFileAjax.do' />";
var filePath = location.pathname;
var jspFileName = filePath.substring(filePath.lastIndexOf("/")+1, filePath.lastIndexOf("."));
var sendData = {
"fileType": $('#fileType').val()
, "eduDocReqOrd": $('#eduDocReqOrd').val()
, "innorixFileListVO": data
, "successMsg" : setMsg+" 등록이 완료되었습니다."
}
/*
* 공통 : innorixCommon.js
* fn_innorixCmmAjax() 호출 후 status가 성공(OK)이면 실행
*/
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
location.reload(true);
location.reload(true);
}
}
</script>
<style>
#fileControl{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
.innorix_basic div.irx_filetree.empty-uploader{background: url(/offedu/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
</style>
<!-- 파일 업로드 -->
<form name="fileForm" id="fileForm" method="post" >
<input type="hidden" name="fileType" id="fileType" value="${fileType}" />
<input type="hidden" name="eduDocReqOrd" id="eduDocReqOrd" value="<c:out value='${eduDocReqOrd}'/>"/> <!-- 서류요청 순번 -->
<input type="hidden" id="innoDirPath" value="<spring:eval expression="@globalSettings['Globals.Innorix.FilePath']"/>" />
<div class="tooltip-wrap">
<div class="popup_wrap popType03" tabindex="0" data-tooltip-con="sub35_pop01" data-focus="sub35_pop01" data-focus-prev="sub35_pop01_close">
<div class="popup_tit">
<p>
<c:if test="${fileType eq 'DOC'}">요청서류</c:if>
업로드
</p>
<button class="btn_popup_close tooltip-close" data-focus="list_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont upload_area">
<div>
<div class="pop_search_wrap">
<label for="fileNm" class="label">첨부파일 선택</label>
<button type="button" onclick="control.openFileDialogSingle();" class="btnType01 btn_add_file">파일찾기</button>
</div>
<div id="fileControl"></div><br/>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" onclick="fncSaveFile('<c:out value="${fileType}" />');">확인</button>
<button type="button" class="btnType02 tooltip-close" data-focus="sub35_pop01_close" data-focus-next="sub35_pop01">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</form>
<!--// 파일 업로드 -->

View File

@ -11,6 +11,9 @@
<head>
<title>강사프로필 목록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
<script type="text/javaScript" language="javascript">
$( document ).ready(function() {
@ -71,6 +74,16 @@
}
}
function filePopupLayer(eduDocReqOrd, type){
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/comm/popup/docFileUploadPop.do"
, 650
, 464
, {'eduDocReqOrd' : eduDocReqOrd ,'fileType' : type}
, "Y"
, "fileUploadPop"
);
}
</script>
</head>
<body>
@ -774,6 +787,71 @@
</table>
</div>
<c:if test="${not empty docReqList}">
<div class="tb_tit01" style="margin-top:40px;">
<div class="tb_tit01_left">
<p>요청서류 목록</p>
</div>
</div>
<div class="tb_type02">
<table>
<%-- <caption>교육차시 정보 교육희망일, 시간, 구분, 대상, 배정강사, 인원 을/를 제공하는 표</caption> --%>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<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}">
<tr>
<th>
<c:out value="${docReqList.docReqNm}" />
</th>
<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: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 type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button>
</c:if>
</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>
</tr>
</c:forEach>
</tbody>
</table>
<p style="color:gray;font-size:14px;padding-top:30px;">* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.</p>
</div>
</c:if>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>

View File

@ -279,7 +279,9 @@
<button type="button" class="btnType03 m_btn_block" onclick="fncSave('40'); return false;">요청거절</button>
</c:if>
<c:if test="${info.asgnmAprvlCd eq '30' and info.hstryCd ne '40' and info.hstryCnt eq '0'}"> <!-- 배정테이블 수락승인, 변경요청 내역이 없으며, 거절 등 내역이 없는 경우 : 강사가 요청을 바로 수락 한 경우만 -->
<!--
<button type="button" class="btnType03 m_btn_block" onclick="fncSave('60'); return false;">변경요청</button>
-->
</c:if>
<button type="button" class="btnType02 m_btn_block" onclick="fncGoList(); return false;">목록</button>
</div>

View File

@ -518,6 +518,133 @@ $( document ).ready(function() {
</div>
</c:if>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>동반강사리스트</p>
</div>
</div>
<div class="tb_list01">
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 15%">
<col style="width: 15%;">
<col style="width: 15%;">
<col style="width: 15%;">
</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>
<th scope="col">교육대상</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${vEEduChasiCompanionVOList}" varStatus="status">
<tr>
<td>
<c:out value='${status.count}'/>
</td>
<td>
${list.eduHopeDt}
</td>
<td>
${list.instrNm}
</td>
<td>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
(<c:out value='${list.lrnTm}'/>분)
</td>
<td>
<c:out value='${list.scholInsttNm}'/>
</td>
<td>
<c:out value='${list.eduPlace}'/>
</td>
<td>
<c:out value='${list.trgt}'/>
</td>
</tr>
</c:forEach>
<c:if test="${empty vEEduChasiCompanionVOList}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<c:if test="${not empty docReqList}">
<div class="tb_tit01" style="margin-top:40px;">
<div class="tb_tit01_left">
<p>요청서류 목록</p>
</div>
</div>
<div class="tb_type02">
<table>
<%-- <caption>교육차시 정보 교육희망일, 시간, 구분, 대상, 배정강사, 인원 을/를 제공하는 표</caption> --%>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<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}">
<tr>
<th>
<c:out value="${docReqList.docReqNm}" />
</th>
<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: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}">
-
</c:if>
</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>
</tr>
</c:forEach>
</tbody>
</table>
<p style="color:gray;font-size:14px;padding-top:30px;">* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.</p>
</div>
</c:if>
<div class="btn_wrap btn_layout01">
<div class="btn_left">

View File

@ -51,6 +51,12 @@
varFrom.submit();
}
function fncGoDetail(eduAplctOrd,eduChasiOrd){
$("#eduAplctOrd").val(eduAplctOrd);
$("#eduChasiOrd").val(eduChasiOrd);
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmDetail.do").submit();
}
</script>
<!-- cont -->
<div class="cont_wrap" id="sub">
@ -79,16 +85,17 @@
<div class="btn_wrap">
마감기간 : ${vELctrDetailVO.rsrchEndDt}
<button type="button" class="btnType05" onclick="fncGoLctrRsrchMng('${vELctrDetailVO.rsrchInstrDiv}','${vELctrDetailVO.stngYrMnt}');">강의조사등록</button>
<button type="button" class="btnType05" onclick="fncGoLctrRsrchMng('${vELctrDetailVO.rsrchInstrDiv}','${vELctrDetailVO.stngYrMnt}');">강의지역조사 등록</button>
</div>
</div>
</c:if>
<form:form id="vELctrDetailVO" name="vELctrDetailVO" commandName="vELctrDetailVO" onsubmit="return false;">
<input type="hidden" name="rsrchInstrDiv" id="rsrchInstrDiv" value="<c:out value='${vELctrDetailVO.rsrchInstrDiv}'/>"/><!-- 강사구분 -->
<input type="hidden" name="stngYrMnt" id="stngYrMnt" value="<c:out value='${vELctrDetailVO.stngYrMnt}'/>"/><!-- 강사구분 -->
<input type="hidden" name="instrDiv" id="instrDiv" value="10"/><!-- 강사구분 -->
<input type="hidden" name="userId" id="userId" value="<c:out value='${info.userId}'/>"/> <!-- 사용자 아이디 -->
</form:form>
</c:if>
<div class="t_dashboard_top">
<div class="dashboard_id">
@ -115,7 +122,7 @@
<div class="btn_wrap">
<c:out value='${instrInfo.instrNm}'/>&nbsp;&nbsp;&nbsp;
<button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.do'">상세정보 보기</button>
<button type="button" class="btnType05" onclick="fncGoLctrRsrchDetail('${vELctrDetailVO.rsrchInstrDiv}','${vELctrDetailVO.stngYrMnt}');">강의설정보기</button>
<button type="button" class="btnType05" onclick="fncGoLctrRsrchDetail('${vELctrDetailVO.rsrchInstrDiv}','${vELctrDetailVO.stngYrMnt}');">강의지역조사</button>
<button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflSchdl.do'">일정달력 보기</button>
</div>
</td>
@ -161,17 +168,20 @@
</thead>
<tbody>
<c:forEach var="instrAsgnmList" items="${instrAsgnmList}" varStatus="status">
<c:choose>
<c:when test="${instrAsgnmList.notiCnt == 0}">
<tr class="new_cont">
<tr class="new_cont" onclick="fncGoDetail('<c:out value="${instrAsgnmList.eduAplctOrd}"/>', '<c:out value="${instrAsgnmList.eduChasiOrd}"/>');">
</c:when>
<c:otherwise>
<tr>
<tr onclick="fncGoDetail('<c:out value="${instrAsgnmList.eduAplctOrd}"/>', '<c:out value="${instrAsgnmList.eduChasiOrd}"/>');">
</c:otherwise>
</c:choose>
<td>
<p>${instrAsgnmList.eduHopeDt}</p>
</td>
<td><p>
<fmt:parseDate value="${instrAsgnmList.strtTm}" var="strtTm" pattern="kkmm"/><fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
~<fmt:parseDate value="${instrAsgnmList.endTm}" var="endTm" pattern="kkmm"/><fmt:formatDate value="${endTm}" pattern="kk:mm"/>
@ -180,6 +190,7 @@
<td><p><c:if test="${instrAsgnmList.eduSlctCd eq '10' }">(온)</c:if><ve:code codeId="VE0008" code="${instrAsgnmList.eduSlctAreaCd}"/></p></td>
<td><p><c:out value='${instrAsgnmList.scholInsttNm}'/></p></td>
</tr>
</c:forEach>
<c:if test="${empty instrAsgnmList}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
@ -354,3 +365,7 @@
</div>
<!-- //cont -->
<form:form id="listForm" name="listForm" commandName="vEInstrAsgnmVO">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="" />
</form:form>

View File

@ -289,7 +289,7 @@
</div>
<div class="cont_wrap" id="sub">
<div class="cont_tit">
<h2>청소년 강사 신청 상세</h2>
<h2>강사정보 상세</h2>
</div>
<div class="tit_box">
<i class="tit_box_icon1"></i>
@ -683,7 +683,7 @@
<c:if test="${empty vEInstrMdfyRqstList and info.qlfctEndYn ne 'Y'}">
<button class="btnType06 btn_list" onclick="fncMdfy(); return false;">정보 변경 </button>
</c:if>
<button class="btnType06 btn_list" onclick="fncCancle(); return false;">취소 </button>
<button class="btnType06 btn_list" onclick="fncCancle(); return false;">이전 </button>
</div>
</div>
<!-- //하단 버튼 -->