Merge branch 'hylee' into advc

Conflicts:
	src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java
	src/main/resources/egovframework/spring/com/context-idgen.xml
This commit is contained in:
hylee 2023-09-26 11:49:08 +09:00
commit a39ca85c25
33 changed files with 1488 additions and 95 deletions

View File

@ -547,4 +547,14 @@ public class EgovCryptoUtil {
}
return decrypt;
}
public List<VEEduAplctVO> decryptVeEduAplctList(List<VEEduAplctVO> vEPrcsDetailVOList) {
for(VEEduAplctVO vo : vEPrcsDetailVOList) {
vo.setUserNm(this.decrypt(vo.getUserNm()));
}
// TODO Auto-generated method stub
return vEPrcsDetailVOList;
}
}

View File

@ -94,6 +94,26 @@ public class CommonWebController {
return "/web/ve/comm/searchBeforeContentPopup";
}
@RequestMapping("/popup/eduInquiryPopup.do")
public String eduInquiryPopup(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model, HttpServletRequest request) throws Exception{
//로그인 정보 가져오기
/*LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
vEEduAplctVO.setUserId(loginVO.getUniqId());
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo);
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("list", vEEduAplctVOList);*/
return "/web/ve/comm/eduInquiryPopup";
}
@RequestMapping("/popup/selectPrcsDetailList.do")
public String selectPrcsDetailList(@ModelAttribute("vEEduAplctVO") VEPrcsCntntVO vePrcsCntntVO, ModelMap model, HttpServletRequest request) throws Exception{

View File

@ -173,11 +173,95 @@ public class FndtnEnhanceTrnController {
return "/web/ve/aplct/fndtnEnhanceTrn/main";
}
/**
* 교육신청 목록 화면
*/
@RequestMapping("/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do")
public String eduAplctList(
public String eduAplctList(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, HttpServletRequest request ) throws Exception {
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
if (loginVO == null || ssoLoginVO == null) {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//로그인 처리====================================
//1.pageing step1
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
}
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getPrcsKind())){
String[] splited = vEPrcsDetailVO.getPrcsKind().split(",");
vEPrcsDetailVO.setSearchStatusArr(splited);
}
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
//vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO);
// 리스트 row마다 신청 확인하기
vEPrcsDetailVOList.stream().forEach(t->{
VEEduAplctVO vEEduAplctReqVO = new VEEduAplctVO();
vEEduAplctReqVO.setUserId(loginVO.getUniqId());
vEEduAplctReqVO.setLctrDivCd(t.getLctrDivCd());
vEEduAplctReqVO.setPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
VEEduAplctVO vEEduAplctVO = fndtnEnhanceTrnService.findByAprvlCd(vEEduAplctReqVO);
// VO를 먼저 null 체크 진행해야 에러안남
// vEEduAplctVO != null &&
if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) {
t.setAprvlCd(vEEduAplctVO.getAprvlCd());
}
});
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
return "/web/ve/aplct/fndtnEnhanceTrn/eduAplctList";
}
/**
* 교육신청 목록 화면
*/
@RequestMapping("/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList.do")
public String fndtnEduAplctList(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, HttpServletRequest request ) throws Exception {
@ -189,6 +273,7 @@ public class FndtnEnhanceTrnController {
//이전 url 처리(beforeSiteUrl)_이준호_220228추가
return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다.
}
vEPrcsDetailVO.setUserId(loginVO.getUniqId());
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
@ -222,23 +307,8 @@ public class FndtnEnhanceTrnController {
//vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO);
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO);
// 리스트 row마다 신청 확인하기
vEPrcsDetailVOList.stream().forEach(t->{
VEEduAplctVO vEEduAplctReqVO = new VEEduAplctVO();
vEEduAplctReqVO.setUserId(loginVO.getUniqId());
vEEduAplctReqVO.setLctrDivCd(t.getLctrDivCd());
vEEduAplctReqVO.setPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
VEEduAplctVO vEEduAplctVO = fndtnEnhanceTrnService.findByAprvlCd(vEEduAplctReqVO);
// VO를 먼저 null 체크 진행해야 에러안남
// vEEduAplctVO != null &&
if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) {
t.setAprvlCd(vEEduAplctVO.getAprvlCd());
}
});
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList);
@ -251,7 +321,7 @@ public class FndtnEnhanceTrnController {
return "/web/ve/aplct/fndtnEnhanceTrn/eduAplctList";
return "/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList";
}
/**
* 교육상세
@ -287,7 +357,6 @@ public class FndtnEnhanceTrnController {
public ModelAndView fndthEduPrcsAplctPrdMngRegAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {

View File

@ -128,6 +128,7 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String endEduPrsnl; //교육인원(이수)
public int getChasi() {
return chasi;
}
@ -343,6 +344,13 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String clsCmbtYn; //접적지역
private String ppulDclnYn; //인구감소지역
private String qestnrId; // 설문
private String aplctStateCd; // 교육이수 상태
public String getSpecialWorkAllow() {
return specialWorkAllow;
}
@ -1487,6 +1495,18 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setUnfthYn(String unfthYn) {
this.unfthYn = unfthYn;
}
public String getQestnrId() {
return qestnrId;
}
public void setQestnrId(String qestnrId) {
this.qestnrId = qestnrId;
}
public String getAplctStateCd() {
return aplctStateCd;
}
public void setAplctStateCd(String aplctStateCd) {
this.aplctStateCd = aplctStateCd;
}
}

View File

@ -9,4 +9,12 @@ public interface VEAPrcsAplctPrdInstrAsgnmService {
void instrInsert(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO);
List<VEAPrcsAplctPrdInstrAsgnmVO> findByPrcsAplctPrdOrd(String prcsAplctPrdOrd);
void udpateAprvlCdEduAplct(VEPrcsDetailVO vEPrcsDetailVO);
void insertAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
VEPrcsDetailVO selectAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
}

View File

@ -38,4 +38,6 @@ public interface VEPrcsAplctPrdService {
List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO);
List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO);
}

View File

@ -1,6 +1,7 @@
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
import java.io.Serializable;
import java.util.List;
import kcc.com.cmm.ComDefaultVO;
@ -41,6 +42,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
//ve_edu_aplct
private String eduAplctOrd; //교육신청순번
private List<String> eduAplctOrdList; //교육신청순번
private String eduChasiOrd; //교육차시순번
private String cnt;
@ -118,6 +120,10 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String aprvlCd;
private String aplctStateCd; // 신청상태코드 VEA003
private String eduCmpltCrtfcNmbr; // 신청상태코드 VEA003
@ -247,6 +253,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setEduAplctOrd(String eduAplctOrd) {
this.eduAplctOrd = eduAplctOrd;
}
public List<String> getEduAplctOrdList() {
return eduAplctOrdList;
}
public void setEduAplctOrdList(List<String> eduAplctOrdList) {
this.eduAplctOrdList = eduAplctOrdList;
}
public String getEduChasiOrd() {
return eduChasiOrd;
}
@ -559,6 +571,18 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setAprvlCd(String aprvlCd) {
this.aprvlCd = aprvlCd;
}
public String getAplctStateCd() {
return aplctStateCd;
}
public void setAplctStateCd(String aplctStateCd) {
this.aplctStateCd = aplctStateCd;
}
public String getEduCmpltCrtfcNmbr() {
return eduCmpltCrtfcNmbr;
}
public void setEduCmpltCrtfcNmbr(String eduCmpltCrtfcNmbr) {
this.eduCmpltCrtfcNmbr = eduCmpltCrtfcNmbr;
}
}

View File

@ -28,5 +28,7 @@ public interface VEPrcsService {
//교육과정 리스트 순서 수정
void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception;
void deleteInstr(VEPrcsDetailVO vEPrcsDetailVO);
}

View File

@ -19,6 +19,23 @@ public class VEAPrcsAplctPrdInstrAsgnmDAO extends EgovAbstractDAO {
public List<VEAPrcsAplctPrdInstrAsgnmVO> findByPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
return (List<VEAPrcsAplctPrdInstrAsgnmVO>) list("VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd", prcsAplctPrdOrd);
}
public void udpateAprvlCdEduAplct(VEPrcsDetailVO vEPrcsDetailVO) {
update("VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct", vEPrcsDetailVO);
}
public void insertAprvlCdEduAplctDetail(VEPrcsDetailVO vEPrcsDetailVO) {
insert("VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail", vEPrcsDetailVO);
}
public VEPrcsDetailVO selectAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
return (VEPrcsDetailVO) select("VEAPrcsAplctPrdInstrAsgnmDAO.selectAprvlCdEduAplctDetail", vEDetailVO);
}
public void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
delete("VEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail", vEDetailVO);
}
}

View File

@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Service("vEAPrcsAplctPrdInstrAsgnmService")
public class VEAPrcsAplctPrdInstrAsgnmServiceImpl implements VEAPrcsAplctPrdInstrAsgnmService {
@ -35,4 +36,26 @@ public class VEAPrcsAplctPrdInstrAsgnmServiceImpl implements VEAPrcsAplctPrdInst
public List<VEAPrcsAplctPrdInstrAsgnmVO> findByPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
return vEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd(prcsAplctPrdOrd);
}
@Override
public void udpateAprvlCdEduAplct(VEPrcsDetailVO vEPrcsDetailVO) {
vEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct(vEPrcsDetailVO);
}
@Override
public void insertAprvlCdEduAplctDetail(VEPrcsDetailVO vEPrcsDetailVO) {
vEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail(vEPrcsDetailVO);
}
@Override
public VEPrcsDetailVO selectAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
return vEAPrcsAplctPrdInstrAsgnmDAO.selectAprvlCdEduAplctDetail(vEDetailVO);
}
@Override
public void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
vEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail(vEDetailVO);
}
}

View File

@ -91,5 +91,9 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}
public List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.findByAprvlList", vEPrcsDetailVO);
}
}

View File

@ -89,4 +89,9 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
}
@Override
public List<VEPrcsDetailVO> findByAprvlList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.findByAprvlList(vEPrcsDetailVO);
}
}

View File

@ -76,5 +76,9 @@ public class VEPrcsDAO extends EgovAbstractDAO {
public void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception{
update("VEPrcsDAO.updatePrcsSort", paramVO);
}
public void deleteInstr(VEPrcsDetailVO vEPrcsDetailVO) {
delete("VEPrcsDAO.deleteInstr", vEPrcsDetailVO);
}
}

View File

@ -58,5 +58,11 @@ public class VEPrcsServiceImpl implements VEPrcsService {
public void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception{
vEPrcsDAO.updatePrcsSort(paramVO);
}
@Override
public void deleteInstr(VEPrcsDetailVO vEPrcsDetailVO) {
vEPrcsDAO.deleteInstr(vEPrcsDetailVO);
}
}

View File

@ -1,5 +1,6 @@
package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.web;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
@ -11,10 +12,13 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.cmmn.exception.FdlException;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO;
@ -135,6 +139,10 @@ public class FndthPrcsAplctPrdMngController {
//과정
@Resource(name="cmmUseDAO")
private CmmUseDAO cmmUseDAO;
@Resource(name="prcsDetailService")
private EgovIdGnrService prcsDetailService;
/*
// 교육신청 서비스단
@ -274,10 +282,7 @@ public class FndthPrcsAplctPrdMngController {
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
//model.addAttribute("paginationInfo", paginationInfo);
// 교육 부분 코드 가져오는 영역
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
@ -289,8 +294,6 @@ public class FndthPrcsAplctPrdMngController {
VEPrcsDetailVO vEPrcsDetailVOPrcsCn = new VEPrcsDetailVO();
vEPrcsDetailVOPrcsCn.setPrcsOrd(vEPrcsDetailVOList.get(0).getPrcsOrd());
model.addAttribute("prcsCn", vEPrcsService.selectDetail(vEPrcsDetailVOPrcsCn).getPrcsCn());
//대상 리스트, 페이징 정보 전달
model.addAttribute("listPrcs", vEPrcsDetailVOList);
@ -448,9 +451,19 @@ public class FndthPrcsAplctPrdMngController {
paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
paramVO.setSbmtYn("Y");
// 검색 - 날짜
paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt());
paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt());
// 검색 - 검색어
paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus());
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
vEPrcsDetailVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEPrcsDetailVOList);
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
System.out.println("====");
//대상 리스트, 페이징 정보 전달
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
}
@ -681,12 +694,9 @@ public class FndthPrcsAplctPrdMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
try {
//선택한 강사 데이터 등록 처리
vEAPrcsAplctPrdInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEAPrcsAplctPrdInstrAsgnmService.instrInsert(vEAPrcsAplctPrdInstrAsgnmVO);
//선택한 강사 데이터 등록 처리
vEAPrcsAplctPrdInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEAPrcsAplctPrdInstrAsgnmService.instrInsert(vEAPrcsAplctPrdInstrAsgnmVO);
} catch (Exception ex) {
ex.printStackTrace();
}
@ -698,6 +708,122 @@ public class FndthPrcsAplctPrdMngController {
}
/**
* 강사배정 등록 처리
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/updateEduAplctAprvlCdAjax.do")
public ModelAndView updateEduAplctAprvlCd(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
System.out.println(vEPrcsDetailVO.getPrcsAplctPrdOrd() +"!!!");
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 {
// 교육 신청 테이블에 신청자 상태값 update
vEAPrcsAplctPrdInstrAsgnmService.udpateAprvlCdEduAplct(vEPrcsDetailVO);
// 승인 - 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함
if("20".equals(vEPrcsDetailVO.getAprvlCd())) {
this.aprvlCd20(vEPrcsDetailVO,loginVO.getUniqId());
}
// 접수취소(반려) - vea_aplct_detail_info TB에 data update
else if("30".equals(vEPrcsDetailVO.getAprvlCd()))
{
this.aprvlCd30(vEPrcsDetailVO);
}
modelAndView.addObject("result", "success");
} catch (Exception ex) {
ex.printStackTrace();
modelAndView.addObject("result", "");
}
return modelAndView;
}
/**
* @methodName : aprvlCd20
* @author : 이호영
* @date : 2023.09.25
* @description : aprvlCd == 20 교육 승인 경유
* 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함
* @param vEPrcsDetailVO
* @param uniqId
* @throws FdlException
*/
private void aprvlCd20(VEPrcsDetailVO vEPrcsDetailVO, String uniqId) throws FdlException {
for(String id : vEPrcsDetailVO.getEduAplctOrdList()) {
VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO();
vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
vEDetailVO.setEduAplctOrd(id);
// 데이터가 있는지만 비교하기 위한 구문
VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO);
// 데이터가 없으면 Insert
if(vEDetail_DVO == null) {
vEDetailVO.setAplctStateCd("10"); // 신청상태코드 VEA003 10:미이수 20:이수
vEDetailVO.setFrstRegisterId(uniqId);
vEAPrcsAplctPrdInstrAsgnmService.insertAprvlCdEduAplctDetail(vEDetailVO);
}
}
}
/**
* @methodName : aprvlCd30
* @author : 이호영
* @date : 2023.09.25
* @description : aprvlCd == 30 교육 반려
* 승인일 경우 vea_aplct_detail_info TB에 data 삭제
* @param vEPrcsDetailVO
* @param uniqId
* @throws FdlException
*/
private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO) {
for(String id : vEPrcsDetailVO.getEduAplctOrdList()) {
VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO();
vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
vEDetailVO.setEduAplctOrd(id);
// 데이터가 있는지만 비교하기 위한 구문
VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO);
// 데이터가 있으면 삭제
if(vEDetail_DVO != null) {
vEDetailVO.setAplctStateCd("30");
vEAPrcsAplctPrdInstrAsgnmService.updateAprvlCdEduAplctDetail(vEDetailVO);
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//

View File

@ -332,7 +332,6 @@ public class FndthPrcsInfoMngController {
public ModelAndView fndthEduPrcsMngMdfyAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
@ -381,6 +380,51 @@ public class FndthPrcsInfoMngController {
}
/**
* 기반강화연수과정 신청기간 등록
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/instrDelAjax.do")
public ModelAndView instrDelAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
try {
vEPrcsService.deleteInstr(vEPrcsDetailVO);
modelAndView.addObject("result", "success");
} catch (Exception e) {
modelAndView.addObject("result", "");
}
return modelAndView;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//

View File

@ -2890,7 +2890,6 @@
<property name="cipers" value="15" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
<!-- 18.일별가능시수설정 vea_dt_psbl_tm_qntty_stng -->
<bean name="dtPsblTmQnttyGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">

View File

@ -53,6 +53,7 @@
<!-- 교육신청복합쿼리 -->
<sqlMap resource="egovframework/sqlmap/ve/prcs/VEAPrcsAplctPrdInstrAsgnm_SQL_Tibero.xml"/>
<sqlMap resource="egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml"/>

View File

@ -240,6 +240,119 @@
)
</insert>
<!-- 강사 등록 C -->
<insert id="VEEduAplctDAO.insertVeEduAplct" parameterClass="VEEduAplctVO">
INSERT INTO <include refid="VEEduAplctDAO.table_name"/> (
EDU_APLCT_ORD,
LCTR_DIV_CD,
USER_ID,
PRCS_ORD,
SBMT_YN,
SBMT_PNTTM,
APRVL_CD,
APRVL_PNTTM,
APRVL_CN,
FRST_REGIST_PNTTM,
FRST_REGISTER_ID,
USE_YN
)VALUES(
#eduAplctOrd#,
#lctrDivCd#,
#userId#,
#prcsOrd#,
#sbmtYn#,
SYSDATE,
#aprvlCd#,
SYSDATE,
#aprvlCn#,
SYSDATE,
#frstRegisterId#,
'Y'
)
</insert>
<!-- 강사 등록 C -->
<select id="VEEduAplctDAO.findByAprvlCd" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
SELECT
<include refid="VEEduAplctDAO.select_column_name"/>
FROM ve_prcs_aplct_prd vpap
LEFT JOIN <include refid="VEEduAplctDAO.table_name"/> a
ON a.prcs_ord = #prcsAplctPrdOrd#
WHERE a.lctr_div_cd ='50'
AND a.user_id = #userId#
GROUP BY
A.EDU_APLCT_ORD ,
A.LCTR_DIV_CD ,
A.USER_ID ,
A.PRCS_ORD ,
A.EDU_SLCT_CD ,
A.EDU_SLCT_AREA_CD ,
A.SCHOL_INSTT_NM ,
A.SCHOL_DIV_CD ,
A.STNDRD_SCHOL_CD ,
A.ISLTN_SCHOL_YN ,
A.ADDR ,
A.ADDR_DETAIL ,
A.CHRG_NM ,
A.CLPHONE ,
A.PHONE ,
A.EMAIL ,
A.EDU_PLACE ,
A.SBMT_YN ,
TO_CHAR(A.SBMT_PNTTM, 'YY-MM-DD') ,
A.APRVL_CD ,
TO_CHAR(A.APRVL_PNTTM, 'YY-MM-DD') ,
A.APRVL_CN ,
A.INSTT_NM ,
A.INSTT_DIV_CD ,
A.HOPE_SBJCT ,
A.RQST_CN ,
A.POST ,
A.JOB_NM ,
A.MDFY_RQST_YN ,
A.EQPMN_CN ,
A.BLNG ,
A.DPRTM ,
A.FULL_NAME ,
A.PSTN ,
A.PRPS ,
a.txt_msg_cn ,
a.e_mail_cn ,
a.prvt_memo_cn ,
TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY-MM-DD') ,
A.FRST_REGISTER_ID ,
TO_CHAR(A.LAST_UPDT_PNTTM, 'YYYY-MM-DD') ,
A.LAST_UPDUSR_ID,
A.SCHOL_SEAL_ATCH_FILE_ID ,
A.EDU_TRGT ,
A.EDU_PRSNL ,
A.EDU_CN ,
A.STRT_OPRTN_DT ,
A.END_OPRTN_DT ,
A.RPRT_SBMT_DT ,
A.TRANS_ATCH_FILE_ID ,
A.USE_YN ,
A.MNG_NMBR_YR ,
A.MNG_NMBR_SBJCT ,
A.MNG_NMBR_ORD ,
A.EDU_MD ,
A.OATH_ATCH_FILE_ID ,
A.PLAN_ATCH_FILE_ID ,
A.Attend_ATCH_FILE_ID ,
A.PHT_ATCH_FILE_ID ,
A.IS_WAIT ,
A.CORPS_EDU ,
A.BROADROOM_EDU
</select>
<!-- 강사 정보 R -->
<select id="VEEduAplctDAO.selectDetail" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
/* VEEduAplctDAO.selectDetail */

View File

@ -78,19 +78,19 @@
a.phone AS phone,
a.email AS email,
a.edu_place AS eduPlace,
a.sbmt_yn AS sbmtYn,
a.sbmt_pnttm AS sbmtPnttm,
a.aprvl_cd AS aprvlCd,
a.aprvl_pnttm AS aprvlPnttm,
a.sbmt_yn AS sbmtYn,
TO_CHAR(a.sbmt_pnttm, 'YYYY-MM-DD') AS sbmtPnttm,
a.aprvl_cd AS aprvlCd,
TO_CHAR(a.aprvl_pnttm, 'YYYY-MM-DD') AS aprvlPnttm,
a.aprvl_cn AS aprvlCn,
a.instt_nm AS insttNm,
a.instt_div_cd AS insttDivCd,
a.hope_sbjct AS hopeSbjct,
a.rqst_cn AS rqstCn,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId,
a.schol_seal_atch_file_id AS scholSealAtchFileId,
@ -100,7 +100,8 @@
a.strt_oprtn_dt AS strtOprtnDt,
a.end_oprtn_dt AS endOprtnDt,
a.rprt_sbmt_dt AS rprtSbmtDt,
a.trans_atch_file_id AS transAtchFileId
a.trans_atch_file_id AS transAtchFileId,
a.use_yn AS useYn
</sql>
@ -120,12 +121,23 @@
<select id="VEEduMIXDAO.selectList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
/* VEEduMIXDAO.selectList */
SELECT
qe.QESTNR_ID AS qestnrId , /* 설문했으면 ID가 있음 */
vadi.APLCT_STATE_CD AS aplctStateCd, /* 이수 상태 */
le.MBER_NM AS userNm,
<include refid="VEEduMIXDAO.select_column_name"/>
FROM
<include refid="VEEduMIXDAO.table_name"/> a
JOIN ve_prcs_aplct_prd vpap ON
a.PRCS_ORD = vpap.PRCS_APLCT_PRD_ORD
LEFT JOIN VEA_APLCT_DETAIL_INFO vadi ON
a.EDU_APLCT_ORD = vadi.EDU_APLCT_ORD
/* AND vpap.PRCS_APLCT_PRD_ORD = vadi.PRCS_APLCT_PRD_ORD */
JOIN LETTNGNRLMBER le ON
a.USER_ID = le.MBER_ID
LEFT JOIN LETTNQESTNRINFO qe ON
a.USER_ID = qe.FRST_REGISTER_ID
WHERE
1=1
<isNotEmpty property="prcsOrd">
AND a.prcs_ord=#prcsOrd#
</isNotEmpty>
@ -133,6 +145,16 @@
AND a.sbmt_yn=#sbmtYn#
</isNotEmpty>
<isNotEmpty property="searchSmbtStartDt">
AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
</isNotEmpty>
<isNotEmpty property="searchSmbtEndDt">
AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
</isNotEmpty>
AND a.use_yn = 'Y'
</select>
<!-- 강사 정보 L page -->

View File

@ -0,0 +1,149 @@
<?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="VEAPrcsAplctPrdInstrAsgnm">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEAPrcsAplctPrdInstrAsgnmVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO"/>
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
<!-- 공통 테이블 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.table_name">
vea_prcs_aplct_prd_instr_asgnm
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.column_name">
prcs_aplct_prd_ord
, user_id
, lctr_plan_atch_file_id
, doc_atch_file_id
, asgnm_aprvl_cd
, asgnm_aprvl_pnttm
, asgnm_aprvl_id
, rmrks
, frst_regist_pnttm
, frst_register_id
, last_updt_pnttm
, last_updusr_id
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name">
a.prcs_aplct_prd_ord as prcsAplctPrdOrd
, a.user_id as userId
, a.lctr_plan_atch_file_id as lctrPlanAtchFileId
, a.doc_atch_file_id as docAtchFileId
, a.asgnm_aprvl_cd as asgnmAprvlCd
, a.asgnm_aprvl_pnttm as asgnmAprvlPnttm
, a.asgnm_aprvl_id as asgnmAprvlId
, a.rmrks as rmrks
, a.frst_regist_pnttm as frstRegistPnttm
, a.frst_register_id as frstRegisterId
, a.last_updt_pnttm as lastUpdtPnttm
, a.last_updusr_id as lastUpdusrId
</sql>
<!-- 강사 배정 등록 -->
<insert id="VEAPrcsAplctPrdInstrAsgnmDAO.instrInsert" parameterClass="VEAPrcsAplctPrdInstrAsgnmVO">
INSERT INTO <include refid="VEAPrcsAplctPrdInstrAsgnmDAO.table_name"/> (
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.column_name"/>
)VALUES(
#prcsAplctPrdOrd#
, #userId#
, #lctrPlanAtchFileId#
, #docAtchFileId#
, #asgnmAprvlCd#
, SYSDATE
, #asgnmAprvlId#
, #rmrks#
, SYSDATE
, #frstRegisterId#
, SYSDATE
, #lastUpdusrId#
)
</insert>
<!-- 강사 배정 등록 -->
<insert id="VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO">
/* VEAPrcsAplctPrdInstrAsgnmDAO.insertAprvlCdEduAplctDetail */
INSERT INTO vea_aplct_detail_info
(
prcs_aplct_prd_ord
, edu_aplct_ord
, aplct_state_cd
, frst_regist_pnttm
, frst_register_id
)
VALUES
(
#prcsAplctPrdOrd#
, #eduAplctOrd#
, #aplctStateCd#
, SYSDATE
, #frstRegisterId#
)
</insert>
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.selectAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
select
prcs_aplct_prd_ord as prcsAplctPrdOrd
, edu_aplct_ord as eduAplctOrd
, aplct_state_cd as aplctStateCd
, frst_regist_pnttm as frstRegistPnttm
, frst_register_id as frstRegisterId
from vea_aplct_detail_info
where edu_aplct_ord = #eduAplctOrd#
and prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</select>
<delete id="VEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail" parameterClass="VEPrcsDetailVO">
UPDATE vea_aplct_detail_info SET
aplct_state_cd = #aplctStateCd#
WHERE
edu_aplct_ord = #eduAplctOrd#
AND prcs_aplct_prd_ord = #prcsAplctPrdOrd#
</delete>
<!-- 교육 신청자 상태 update -->
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct" parameterClass="VEPrcsDetailVO">
UPDATE VE_EDU_APLCT
SET aprvl_cd = #aprvlCd#
WHERE edu_aplct_ord IN
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
#eduAplctOrdList[]#
</iterate>
</update>
<!-- 강사 배정 등록 -->
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd" parameterClass="String" resultClass="VEAPrcsAplctPrdInstrAsgnmVO">
SELECT
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name"/>
, vid.instr_nm as instrNm
, vid.phone
FROM
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.table_name"/> a
LEFT JOIN ve_instr_detail vid
ON a.user_id = vid.user_id
WHERE 1=1
AND a.prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND vid.aprvl_cd ='20' <!-- 변경 승인 -->
AND vid.instr_div ='20' <!-- 성인강사 -->
AND vid.use_yn ='Y'
</select>
</sqlMap>

View File

@ -388,6 +388,7 @@
</select>
<select id="VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEInstrDetailVO">
/*VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList*/
SELECT
COUNT(1) OVER() AS totCnt ,
a.instr_div AS instrDiv,
@ -480,7 +481,7 @@
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<!-- 강사 정보 R -->
<select id="VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
SELECT COUNT(1) OVER() AS totCnt ,
a.prcs_aplct_prd_ord AS prcsAplctPrdOrd,
@ -518,6 +519,7 @@
,a.ddln_cd AS ddlnCd
,a.edu_strt_pnttm AS eduStrtPnttm
,a.edu_ddln_pnttm AS eduDdlnPnttm
,b.prcs_cn AS prcsCn
FROM ve_prcs_aplct_prd a
, ve_prcs b

View File

@ -37,6 +37,7 @@
,ddln_cd
,edu_strt_pnttm
,edu_ddln_pnttm
,edu_place
</sql>
<!-- 조회용 공통 컬럼 명 -->
@ -108,6 +109,7 @@
,#ddlnCd#
,#eduStrtPnttm#
,#eduDdlnPnttm#
,#eduPlace#
)
</insert>
@ -177,7 +179,10 @@
</isNotEmpty>
<isNotEmpty property="eduDdlnPnttm">
, edu_ddln_pnttm = #eduDdlnPnttm#
</isNotEmpty>
</isNotEmpty>
<isNotEmpty property="eduPlace">
, edu_place = #eduPlace#
</isNotEmpty>
WHERE
prcs_aplct_prd_ord = #prcsAplctPrdOrd#
@ -295,6 +300,7 @@
, (SELECT user_nm FROM comvnusermaster WHERE esntl_id = a.frst_register_id) as frstRegisterNm
, (SELECT orignl_file_nm FROM lettnfiledetail WHERE atch_file_id = a.atch_file_id LIMIT 1) as atchFileNm
, b.prcs_nm as prcsNm
, b.prcs_div as prcsDiv
, (SELECT COUNT(*)
FROM ve_edu_aplct x
@ -416,6 +422,8 @@
AS atchFileNm
, b.prcs_nm as prcsNm
, b.prcs_div as prcsDiv
, a.edu_place as eduPlace
,a.dead_line_dt AS deadLineDt
,a.prcs_ord AS prcsOrd
@ -424,6 +432,7 @@
,a.ddln_cd AS ddlnCd
,a.edu_strt_pnttm AS eduStrtPnttm
,a.edu_ddln_pnttm AS eduDdlnPnttm
,b.prcs_cn AS prcsCn
FROM ve_prcs_aplct_prd a
, ve_prcs b
@ -439,4 +448,137 @@
ORDER BY a.strt_pnttm DESC
LIMIT 1
</select>
<select id="VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEInstrDetailVO">
/*VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList*/
SELECT
COUNT(1) OVER() AS totCnt ,
a.instr_div AS instrDiv,
a.user_id AS userId,
(SELECT user_nm FROM COMVNUSERMASTER WHERE USER_ID = a.user_id) AS userNm,
a.instr_detail_ord AS instrDetailOrd,
a.instr_nm AS instrNm,
a.phone AS phone,
a.email AS email,
a.post AS post,
a.addr AS addr,
a.addr_detail AS addrDetail,
a.rsdne AS rsdne,
a.d_birth AS dBirth,
/* IF (length(a.d_birth)=8,DATE_FORMAT(STR_TO_DATE(a.d_birth, '%Y%m%d'),'%Y-%m-%d')
,IF (length(a.d_birth)=6,DATE_FORMAT(STR_TO_DATE(a.d_birth, '%y%m%d'),'%Y-%m-%d'),'')) AS Birth, */
CASE
WHEN LENGTH(NVL(a.d_birth,'')) = 8 THEN TO_CHAR(TO_DATE(a.d_birth, 'YYYYMMDD'), 'YYYY-MM-DD')
WHEN LENGTH(NVL(a.d_birth,'')) = 6 THEN TO_CHAR(TO_DATE(a.d_birth, 'YYMMDD'), 'YYYY-MM-DD')
ELSE ''
END AS Birth,
a.final_schol AS finalSchol,
a.mjr AS mjr,
a.appt_yr AS apptYr,
a.actvt_carer AS actvtCarer,
a.mn_lctr_cn AS mnLctrCn,
a.pht_atch_file_id AS phtAtchFileId,
a.blng AS blng,
a.pstn AS pstn,
a.prfsn_fld AS prfsnFld,
a.sbmt_yn AS sbmtYn,
a.sbmt_pnttm AS sbmtPnttm,
a.aprvl_cd AS aprvlCd,
TO_CHAR(a.aprvl_pnttm,'YYYY-MM-DD') AS aprvlPnttm,
a.aprvl_id AS aprvlId,
a.aprvl_cn AS aprvlCn,
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,
<isNotEmpty property="excelYn">
(SELECT a0.code_nm
FROM LETTCCMMNDETAILCODE a0
WHERE a0.code_id='VE0018'
AND a0.code =a.div_cd
)
AS divCd,
(SELECT a0.code_nm
FROM LETTCCMMNDETAILCODE a0
WHERE a0.code_id='VE0002'
AND a0.code =a.appt_div
)
AS apptDiv,
</isNotEmpty>
<isEmpty property="excelYn">
a.div_cd AS divCd,
a.appt_div AS apptDiv,
</isEmpty>
a.use_yn AS useYn,
a.qlfct_end_yn AS qlfctEndYn,
a.qlfct_end_pnttm AS qlfctEndPnttm,
a.qlfct_end_cn AS qlfctEndCn,
a.appt_dt AS apptDt,
a.hchk_dt AS hchkDt,
a.rmrks AS rmrks,
a.memo AS memo,
a.sig_memo AS sigMemo
FROM
ve_instr b
, ve_instr_detail a
WHERE
1=1
AND a.user_id=b.user_id
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="userId">
AND a.user_id=#userId#
</isNotEmpty>
<isNotEmpty property="instrDiv">
AND a.instr_div=#instrDiv#
</isNotEmpty>
ORDER BY a.sbmt_pnttm DESC
<isEmpty property="orderByQuery">
, b.user_id desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY
</select>
<!-- 강사 정보 R -->
<select id="VEPrcsAplctPrdDAO.findByAprvlList" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
/* VEPrcsAplctPrdDAO.findByAprvlList */
select
a.edu_aplct_ord AS eduAplctOrd ,
vpap.PRCS_APLCT_PRD_ORD AS prcsAplctPrdOrd ,
vp.prcs_nm AS prcsNm ,
vp.prcs_cn AS prcsCn ,
vp.prcs_div AS prcsDiv ,
vpap.strt_pnttm AS strtPnttm ,
vpap.end_pnttm AS endPnttm ,
vpap.edu_strt_pnttm AS eduStrtPnttm ,
vpap.edu_ddln_pnttm AS eduDdlnPnttm ,
a.APRVL_CD AS aprvlCd
from
VE_EDU_APLCT a
join ve_prcs_aplct_prd vpap
on a.prcs_ord = vpap.prcs_aplct_prd_ord
join ve_prcs vp /* 과정 */
on vpap.prcs_ord = vp.prcs_ord
left join vea_aplct_detail_info vadi /* 신청상세정보 */
on a.edu_aplct_ord = vadi.edu_aplct_ord
and vpap.prcs_aplct_prd_ord = vadi.prcs_aplct_prd_ord
left join vea_edu_cmplt_crtfc vecc /* 교육이수증 */
on a.edu_aplct_ord = vecc.edu_aplct_ord
and vpap.prcs_aplct_prd_ord = vecc.prcs_aplct_prd_ord
where
a.lctr_div_cd = #lctrDivCd#
and a.user_id = #userId#
</select>
</sqlMap>

View File

@ -340,4 +340,11 @@
WHERE PRCS_ORD = #prcsOrd#
</update>
<delete id="VEPrcsDAO.deleteInstr" parameterClass="VEPrcsDetailVO">
DELETE FROM VEA_PRCS_APLCT_PRD_INSTR_ASGNM
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND user_id = #userId#
</delete>
</sqlMap>

View File

@ -101,29 +101,29 @@
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctMngRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctMngRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
});
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncGoList(){

View File

@ -49,7 +49,12 @@
var strtPnttm = new Date(dateText.split("~")[0].trim().replace(/\./g, '-'));
var endPnttm = new Date(dateText.split("~")[1].trim().replace(/\./g, '-'));
var currentDate = new Date();
// 시간, 분, 초 초기화
strtPnttm.setHours(0, 0, 0, 0);
endPnttm.setHours(0, 0, 0, 0);
currentDate.setHours(0, 0, 0, 0);
if (currentDate < strtPnttm) {
$ddlnCdStts.text("접수전");
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
@ -65,12 +70,55 @@
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>";
listForm.submit();
}
function fncGoDetail(){
var form = document.detailForm ;
form.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.do'/>";
form.submit();
}
function fncMdfy(){
var detailForm = document.detailForm ;
detailForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.do'/>";
detailForm.submit();
}
function fn_delInstr(data){
document.instrForm.userId.value = data ;
var data = new FormData(document.getElementById("instrForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/instrDelAjax.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("삭제되었습니다.");
// 새로고침
window.location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
// 강사 배치
@ -86,11 +134,67 @@
form.submit();
}
function chkAll(obj) {
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
}
function updateEduAplctOrd(p_aprvlCd, p_prcsAplctPrdOrd) {
var selectedEduAplctOrd = [];
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var eduAplctOrdValue = $(this).val();
selectedEduAplctOrd.push(eduAplctOrdValue);
});
console.log('selectedEduAplctOrd : ', selectedEduAplctOrd);
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (selectedEduAplctOrd.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
var dataToSend = {
"eduAplctOrdList": selectedEduAplctOrd,
"aprvlCd": p_aprvlCd,
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
};
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/updateEduAplctAprvlCdAjax.do'/>";
// AJAX 호출을 통해 서버에 데이터 전송
$.ajax({
type:"POST",
url: url,
data: $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
// contentType : 'application/json',
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
window.location.reload();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.error("AJAX Error:", textStatus, errorThrown);
console.error("Response:", jqXHR.responseText);
}
});
}
</script>
</head>
<body>
<form id="instrForm" name="instrForm" method="post">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
<input type="hidden" name="userId" id="userId"/>
</form>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form id="popForm" name="popForm" method="post">
@ -100,7 +204,7 @@
</form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' default='1' />"/>
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
@ -164,7 +268,12 @@
<c:out value="${info.eduStrtPnttm}"/>~<c:out value="${info.eduDdlnPnttm}"/>
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<c:out value="${info.prcsCn }" />
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">
@ -216,12 +325,14 @@
<col style="width: 210px;"><!-- name -->
<col style="width: auto;"><!-- 제출일 -->
<col style="width: 210px;"><!-- 신청상태 -->
<col style="width: 210px;"><!-- 신청상태 -->
</colgroup>
<thead>
<tr>
<th>강사명</th>
<th>연락처</th>
<th>확정여부</th>
<th>삭제</th>
</tr>
</thead>
<tbody>
@ -238,12 +349,15 @@
<td>
<ve:code codeId="VE0019" code="${list.asgnmAprvlCd}"/>
</td>
<td>
<button type="button" class="btn_type01" onclick="fn_delInstr('<c:out value="${list.userId }" />')">삭제</button>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="3">강사 배치 정보가 없습니다.</td>
<td colspan="4">강사 배치 정보가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
@ -267,7 +381,30 @@
교육 신청자 list_상세
-->
<div class="tb_tit01">
<p>교육신청자</p>
<p>교육신청자</p> <!-- ${listPrcsAplct } -->
</div>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<div class="util_right">
<select id="searchStatus" name="searchStatus" class="sel_type1">
<option value="10" <c:if test="${vEPrcsDetailVO.searchStatus==10 }">selected="selected"</c:if> >확정여부</option>
<option value="20" <c:if test="${vEPrcsDetailVO.searchStatus==20 }">selected="selected"</c:if>>이수여부</option>
</select>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
</div>
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="검색어를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEPrcsDetailVO.searchKeyword}'/>">
<button type="button" class="btn_type08" onclick="fncGoDetail(); return false;">검색</button>
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
</div>
</div>
</div>
<div class="tb_type01">
<table>
@ -281,20 +418,15 @@
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th>
<th>번호</th>
<th>신청자</th>
<th>신청일</th>
<th>확정여부</th>
<th>이수여부</th>
<th>신청상태</th>
<th>이수여부</th>
<th>설문조사</th>
<th>이수증</th>
</tr>
</thead>
<tbody>
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
<c:choose>
<c:when test="${!empty listPrcsAplct}">
<c:forEach var="list" items="${listPrcsAplct}" varStatus="status">
@ -302,42 +434,66 @@
<td>
<input name="chk" class="${list.asgnmAprvlCd}"
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
</td>
<td>
<c:out value="${status.count}"/>
</td>
<td>
<c:out value="${list.chrgNm}"/>
<c:out value="${list.userNm}"/>
</td>
<td>
<c:out value="${list.sbmtPnttm}"/>
<c:out value="${list.sbmtPnttm}"/>
</td>
<td>
<ve:code codeId="VE0003" code="${list.aprvlCd}"/>
<td>
<ve:code codeId="VE0003" code="${list.aprvlCd}"/>
</td>
<td>
설문조사
<td>
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
</td>
<td>
출력
<td>
<c:choose>
<c:when test="${list.qestnrId }">
<button type="button" class="btn_type04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">설문결과</button>
</c:when>
<c:otherwise>
미입력
</c:otherwise>
</c:choose>
</td>
<td>
출력
<td>
<c:choose>
<c:when test="${list.qestnrId }">
<%-- <button type="button" class="btnType04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">출력</button> --%>
<button type="button" class="btn_type04">출력</button>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="8">신청자가 없습니다.</td>
<td colspan="7">신청자가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- //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_type04" onclick="location.href='<c:url value="/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do" />'; return false;">강의목록</button>
<button type="button" class="btn_type04" onclick="updateEduAplctOrd(30, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">접수취소(반려)</button>
<button type="button" class="btn_type04" onclick="updateEduAplctOrd(20, '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">교육승인</button>
</div>
</div>
</div>
</div>

View File

@ -294,7 +294,7 @@
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>

View File

@ -230,6 +230,13 @@
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<textarea name="prcsCn" id="prcsCn" class="memo" disabled="disabled" class="inputLight" style="height: 200px;"><c:out value="${info.prcsCn }" /></textarea>
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -35,6 +35,17 @@
$('#prcsOrd').change(function(){
fnSelectDivAndCn($(this).val());
});
$('#nos').on('input', function() {
// 숫자만 허용
$(this).val($(this).val().replace(/[^0-9]/g, ''));
// 값이 0으로 시작하면 제거
if ($(this).val().charAt(0) == '0') {
$(this).val($(this).val().substring(1));
}
});
});

View File

@ -202,6 +202,12 @@
</td>
</tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<c:out value="${info.prcsCn }" />
</td>
</tr>
<tr>
<th scope="row">정원</th>
<td class="addPro_wrap">

View File

@ -31,7 +31,17 @@ $(document).ready(function(){
var endPnttm = new Date($currentRow.find("td:eq(2)").text().split("~")[1].trim());
var currentDate = new Date();
// 시간, 분, 초 초기화
strtPnttm.setHours(0, 0, 0, 0);
endPnttm.setHours(0, 0, 0, 0);
currentDate.setHours(0, 0, 0, 0);
var ddlnCdText = '';
console.log('currentDate : ', currentDate);
console.log('strtPnttm : ', strtPnttm);
console.log('endPnttm : ', endPnttm);
console.log('');
if (currentDate < strtPnttm) {
ddlnCdText = "접수전";
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
@ -109,6 +119,20 @@ $(document).ready(function(){
$(this).val('');
});
}
function fn_eduInquiry(){
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/comm/popup/eduInquiryPopup.do"
, 470
, 464
// , data
, ""
, "Y"
, "eduInquiryPopup"
);
}
</script>
<!-- content -->
@ -200,7 +224,7 @@ $(document).ready(function(){
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>
<td>
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
</td>
<td>
@ -242,7 +266,7 @@ $(document).ready(function(){
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btnType01" onclick="goWrite()">교육문의(미개발)</button>
<button type="button" class="btnType01" onclick="fn_eduInquiry()">교육문의(미개발)</button>
</div>
</div>

View File

@ -0,0 +1,204 @@
<%@ 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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
});
function fncEduReg(prcsAplctPrdOrd){
var regForm = document.regForm;
regForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
var data = new FormData(document.getElementById("regForm"));
if(confirm("신청하시겠습니까?")){
var url = "${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/eduRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
listForm.submit();
}
function goEduAplctList(prcsAplctPrdOrd){
var goEduAplctListForm = document.goEduAplctListForm ;
goEduAplctListForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.do'/>";
goEduAplctListForm.submit();
}
function fncGoList(){
linkPage(1);
}
function fncReset(thisObj){
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function(){
$(this).val('');
});
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form name="regForm" id="regForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd">
</form>
<form name="goEduAplctListForm" id="goEduAplctListForm">
</form>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
<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" name="eduAplctOrd" id="eduAplctOrd" value="" />
<div class="cont_tit">
<h2>나의 강의 신청목록</h2>
<div class="sns_go">
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
</div>
</div>
<div class="list_top">
<div class="list_top_left">
<label for="searchStatus" class="label">신청상태 선택</label>
<select class="selType1" id="searchStatus" name="searchStatus">
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
</select>
</div>
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
</div>
~
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
</div>
</div>
<!-- list -->
<div class="tb_list01">
<table>
<colgroup>
<%-- <col style="width: 5%"> --%>
<col style="width: 10%">
<col style="width: auto">
<col style="width: 170px;">
<col style="width: 90px;">
<col style="width: 140px;">
<col style="width: 140px;">
</colgroup>
<thead>
<tr>
<!-- <th>NO</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">
<%-- <td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> --%>
<%-- <c:out value="${status.count}"/> --%>
<!-- </td> -->
<td>
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
</td>
<td class="ddlnCdStts">
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
</td>
<td>
<button type="button" class="btnType04" onclick="fncEduReg('<c:out value="${list.prcsAplctPrdOrd}"/>');">설문하기(미개발)</button>
</td>
<td class="aplctBtn">
<button type="button" class="btnType04" onclick="fncEduReg('<c:out value="${list.prcsAplctPrdOrd}"/>');">이수증 출력(미개발)</button>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</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="btnType01" onclick="goList()">강의목록</button>
</div>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
</form:form>
</div>

View File

@ -0,0 +1,166 @@
<%@ 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="kc" 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" />
<script type="text/javascript">
$(document).ready(function() {
boardCaptionDetailToggle4();
// 레이어팝업 포커싱 이동 수정
$(".tooltip-close").click(function(){
$('[data-tooltip="sub01_pop01"]').focus();
});
//레이어팝업 초정 이동 시 필요한 data 값 추가
var btnLast = $('.popup_cont').find('.page').find('button:last-child');
btnLast.attr('data-focus-next','sub01_pop01');
btnLast.attr('data-focus','sub01_pop01_close');
});
function fncClose() {
window.close();
}
function linkPage(pageNo){
var data = {'lctrDivCd' : '${vEEduAplctVO.lctrDivCd}', 'pageUnit' : 5, 'pageIndex': pageNo , 'sbmtYn' : 'N'};
searchBeforeData(data);
}
function fcnCallData(eduAplctOrd){
if(confirm("선택하신 데이터로 변경하시겠습니까?")){
$.ajax({
type:"POST",
url:"<c:url value='/web/ve/comm/dataCallAjax.do'/>",
data: {"eduAplctOrd" : eduAplctOrd, 'lctrDivCd' :'${vEEduAplctVO.lctrDivCd}' },
dataType:'json',
success:function(returnData){
if(returnData.result == 'success'){
var rsData = new Object();
rsData.info = returnData.info;
rsData.list = returnData.list;
rsData.chasiList = returnData.chasiList;
rsData.fileList = returnData.fileList;
rsData.fileListCnt = returnData.fileListCnt;
callDataSetting(rsData);
$('button[data-focus=list_popup_close]').trigger('click');
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
<input type="hidden" name="searchStatus" value="<c:out value="${vEEduAplctVO.searchStatus}" />" />
</form:form>
<div class="popup_wrap popType01" tabindex="0" data-tooltip-con="sub01_pop01" data-focus="sub01_pop01" data-focus-prev="sub01_pop01_close">
<div class="popup_tit">
<p>이전 교육신청 목록</p>
<button class="btn_popup_close tooltip-close" data-focus="list_popup_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type02">
<table>
<caption>이전 교육신청 목록 교육구분, 신청일, 선택 을/를 제공하는 표</caption>
<colgroup>
<col style="width: calc(100%/3);">
<col style="width: calc(100%/3);">
<col style="width: calc(100%/3);">
</colgroup>
<thead>
<tr>
<c:choose>
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_30}">
<th scope="col">담당교과</th>
</c:when>
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_40}">
<th scope="col">구분</th>
</c:when>
<c:otherwise>
<th scope="col">교육구분</th>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_40}">
<th scope="col">성명</th>
</c:when>
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_30}">
<th scope="col">교사명</th>
</c:when>
<c:otherwise>
<th scope="col">신청일</th>
</c:otherwise>
</c:choose>
<th scope="col">선택</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<th scope="row">
<c:choose>
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_30}">
${list.chrgMjr}
</c:when>
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_40}">
<kc:code codeId="VE0012" code="${list.insttDivCd}"/>
</c:when>
<c:otherwise>
<kc:code codeId="VE0007" code="${list.eduSlctCd}"/>
</c:otherwise>
</c:choose>
</th>
<td>
<c:choose>
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_40}">
${list.fullName}
</c:when>
<c:when test="${vEEduAplctVO.lctrDivCd eq VeConstants.LCTR_DIV_CD_30}">
${list.chrgNm}
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${not empty list.eduHopeDt}">
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</td>
<td><button type="button" class="btnType01" onclick="fcnCallData('${list.eduAplctOrd}');">선택</button></td>
</tr>
</c:forEach>
<c:if test="${fn:length(list) eq 0}">
<tr>
<td colspan="3"><spring:message code="common.nodata.msg" /></td>
</tr>
</c:if>
</tbody>
</table>
</div>
<!-- <div class="page"> -->
<%-- <ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" /> --%>
<!-- </div> -->
</div>
</div>
</div>