Merge branch 'hylee' into advc
This commit is contained in:
commit
4e3ce22004
@ -299,6 +299,10 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
private String unfthYn; //불성실여부
|
||||
|
||||
private String trgtNm; //기소유예 대상자
|
||||
|
||||
private String vs_clphone; //기소유예 대상자 폰번호
|
||||
|
||||
|
||||
public String getPrcsAplctPrdOrd() {
|
||||
return prcsAplctPrdOrd;
|
||||
@ -1523,6 +1527,18 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
|
||||
public void setNeedTxtbNum(String needTxtbNum) {
|
||||
this.needTxtbNum = needTxtbNum;
|
||||
}
|
||||
public String getTrgtNm() {
|
||||
return trgtNm;
|
||||
}
|
||||
public void setTrgtNm(String trgtNm) {
|
||||
this.trgtNm = trgtNm;
|
||||
}
|
||||
public String getVs_clphone() {
|
||||
return vs_clphone;
|
||||
}
|
||||
public void setVs_clphone(String vs_clphone) {
|
||||
this.vs_clphone = vs_clphone;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ import java.util.List;
|
||||
import kcc.let.uss.umt.service.UserManageVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduExcelVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduSatisfactionExcelVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
|
||||
public interface VEEduMIXService {
|
||||
|
||||
@ -52,4 +53,6 @@ public interface VEEduMIXService {
|
||||
void updateRsltRprtFileId(VEEduAplctVO vEEduAplctVO) throws Exception;
|
||||
//저작권 체험교실 목록
|
||||
List<VEEduAplctVO> selectExprnPagingList(VEEduAplctVO paramVO) throws Exception;
|
||||
|
||||
void updateAplctStateCd(VEEduAplctVO vEEduAplctVO);
|
||||
}
|
||||
|
||||
@ -143,4 +143,8 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
|
||||
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectExprnPagingList", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public void updateAplctStateCd(VEEduAplctVO vEEduAplctVO) {
|
||||
update("VEEduMIXDAO.updateAplctStateCd", vEEduAplctVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduSatisfactionExcelVO;
|
||||
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.prcsInfo.service.VEPrcsDetailVO;
|
||||
|
||||
@Service("vEEduMIXService")
|
||||
public class VEEduMIXServiceImpl implements VEEduMIXService {
|
||||
@ -129,4 +130,9 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
|
||||
public List<VEEduAplctVO> selectExprnPagingList(VEEduAplctVO paramVO) throws Exception{
|
||||
return vEEduMIXDAO.selectExprnPagingList(paramVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAplctStateCd(VEEduAplctVO vEEduAplctVO) {
|
||||
vEEduMIXDAO.updateAplctStateCd(vEEduAplctVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,4 +17,6 @@ public interface VEAPrcsAplctPrdInstrAsgnmService {
|
||||
VEPrcsDetailVO selectAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
|
||||
|
||||
void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO);
|
||||
|
||||
void updateAplctStateCdListAjax(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
@ -114,6 +114,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
private String eduPlace; //교육장소
|
||||
|
||||
private String instrDiv;
|
||||
private String instrCnt;
|
||||
private String userId;
|
||||
|
||||
|
||||
@ -563,6 +564,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
public void setInstrDiv(String instrDiv) {
|
||||
this.instrDiv = instrDiv;
|
||||
}
|
||||
public String getInstrCnt() {
|
||||
return instrCnt;
|
||||
}
|
||||
public void setInstrCnt(String instrCnt) {
|
||||
this.instrCnt = instrCnt;
|
||||
}
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
@ -38,4 +38,9 @@ public class VEAPrcsAplctPrdInstrAsgnmDAO extends EgovAbstractDAO {
|
||||
delete("VEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail", vEDetailVO);
|
||||
}
|
||||
|
||||
public void updateAplctStateCdListAjax(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
update("VEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax", vEPrcsDetailVO);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -58,4 +58,10 @@ public class VEAPrcsAplctPrdInstrAsgnmServiceImpl implements VEAPrcsAplctPrdInst
|
||||
public void updateAprvlCdEduAplctDetail(VEPrcsDetailVO vEDetailVO) {
|
||||
vEAPrcsAplctPrdInstrAsgnmDAO.updateAprvlCdEduAplctDetail(vEDetailVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAplctStateCdListAjax(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
vEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax(vEPrcsDetailVO);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
@ -612,7 +613,7 @@ public class CndtnPrcsInfoMngController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 기간 상세화면
|
||||
* 조건부기소유예 기간 상세화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.do")
|
||||
public String cndtnEduPrcsAplctPrdMngDetail(
|
||||
@ -652,7 +653,6 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
System.out.println("====");
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
@ -662,6 +662,7 @@ public class CndtnPrcsInfoMngController {
|
||||
// 강사 배치 정보
|
||||
{
|
||||
|
||||
System.out.println("====");
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList);
|
||||
|
||||
@ -671,9 +672,113 @@ public class CndtnPrcsInfoMngController {
|
||||
return "/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화 신청자 상태값 변경
|
||||
* 조건부기소유예 기간 상세화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.do")
|
||||
public String cndtnEduPrcsAplctCfnMngDetail(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
|
||||
, ModelMap model
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpSession session
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
//과정 조회
|
||||
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO);
|
||||
model.addAttribute("info", vEPrcsDetailVODetail);
|
||||
|
||||
//과정 신청자 정보 가져오기
|
||||
{
|
||||
//해당 과정을 제출한 사용자 정보를 가져온다.
|
||||
VEEduAplctVO paramVO = new VEEduAplctVO();
|
||||
paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
// 검색 - 날짜
|
||||
paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt());
|
||||
paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt());
|
||||
// 검색 - 검색어
|
||||
paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus());
|
||||
paramVO.setSearchSelStatus(vEPrcsDetailVO.getSearchSelStatus());
|
||||
|
||||
if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) {
|
||||
|
||||
String searchQuery = "AND vadi.APLCT_STATE_CD = "+vEPrcsDetailVO.getSearchStatus();
|
||||
paramVO.setSearchQuery(searchQuery);
|
||||
}
|
||||
|
||||
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
|
||||
}
|
||||
|
||||
// 강사 배치 정보
|
||||
{
|
||||
|
||||
System.out.println("====");
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList);
|
||||
|
||||
model.addAttribute("instrAsgnmList", instrAsgnmList);
|
||||
}
|
||||
|
||||
return "/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기소유예 이수 / 미이수 상태 변경 처리
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdAjax.do")
|
||||
public ModelAndView updateAplctStateCdAjax(
|
||||
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
|
||||
, 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 {
|
||||
|
||||
vEEduMIXService.updateAplctStateCd(vEEduAplctVO);
|
||||
modelAndView.addObject("result", "success");
|
||||
} catch (Exception e) {
|
||||
modelAndView.addObject("result", "");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
/**
|
||||
* 기소유예 신청자 상태값 변경
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/updateEduAplctAprvlCdAjax.do")
|
||||
public ModelAndView updateEduAplctAprvlCd(
|
||||
@ -718,6 +823,54 @@ public class CndtnPrcsInfoMngController {
|
||||
}
|
||||
|
||||
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 기소유예 교육확정상세 > 이수/미이수 체크버튼 처리
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdListAjax.do")
|
||||
public ModelAndView updateAplctStateCdListAjax(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, 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;
|
||||
}
|
||||
//로그인 처리====================================
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
|
||||
try {
|
||||
// 교육 신청 테이블에 신청자 상태값 update
|
||||
vEAPrcsAplctPrdInstrAsgnmService.updateAplctStateCdListAjax(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;
|
||||
|
||||
}
|
||||
@ -1037,7 +1190,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do")
|
||||
public String fndthEduPrcsAplctPrdMngList(
|
||||
public String cndtnEduPrcsAplctPrdMngList(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
@ -1095,6 +1248,76 @@ public class CndtnPrcsInfoMngController {
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do")
|
||||
public String cndtnEduPrcsAplctCfnMngList(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
//교육확정 목록 조회
|
||||
vEPrcsDetailVO.setDdlnCd("20");
|
||||
|
||||
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);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
// 지정된 강사가 있는지 확인
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
|
||||
if(vEAPrcsAplctPrdInstrAsgnmList.size() > 0) {
|
||||
t.setInstrCnt(Integer.toString(vEAPrcsAplctPrdInstrAsgnmList.size()));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
|
||||
|
||||
return "oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 기소유예 신청기간 등록 화면
|
||||
*/
|
||||
@ -1156,7 +1379,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 기간 상세수정화면
|
||||
* 조건부기소유예 기간 상세수정화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy.do")
|
||||
public String cndtnEduPrcsAplctPrdMngMdfy(
|
||||
@ -1219,7 +1442,7 @@ public class CndtnPrcsInfoMngController {
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 수정
|
||||
* 조건부기소유예 신청기간 수정
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfyAjax.do")
|
||||
public ModelAndView cndtnEduPrcsAplctPrdMngMdfyAjax(
|
||||
|
||||
@ -36,6 +36,7 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
|
||||
@ -128,66 +129,6 @@ public class FndthPrcsAplctMngController {
|
||||
@Resource(name = "mberManageService")
|
||||
private EgovMberManageService mberManageService;
|
||||
|
||||
/**
|
||||
* 기반강화연수 과정 신청 관리 목록 화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngList.do")
|
||||
public String fndthEduPrcsAplctMngList( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , HttpSession session, ModelMap model ) throws Exception {
|
||||
|
||||
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
|
||||
//년도
|
||||
if(StringUtils.isBlank(vEEduAplctVO.getSearchYear())){
|
||||
//vEEduAplctVO.setSearchYear(String.valueOf(LocalDate.now().getYear()));
|
||||
}
|
||||
|
||||
//월
|
||||
if(StringUtils.isBlank(vEEduAplctVO.getSearchMonth())){
|
||||
vEEduAplctVO.setSearchMonth(String.valueOf(LocalDate.now().getMonthValue()));
|
||||
}
|
||||
if(!"".equals(vEEduAplctVO.getSearchChrgNm())) {
|
||||
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchChrgNm()));
|
||||
}
|
||||
|
||||
// 요청, 반려건
|
||||
//vEEduAplctVO.setSearchNotStatusArr(new String[]{"60"});
|
||||
// 청소년
|
||||
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
|
||||
|
||||
//정렬
|
||||
if("".equals(vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
vEEduAplctVO.setOrderByQuery("A.SBMT_PNTTM DESC");
|
||||
}else{
|
||||
vEEduAplctVO.setOrderByQuery(vEEduAplctVO.getSearchSortCnd() + " " +vEEduAplctVO.getSearchSortOrd());
|
||||
}
|
||||
|
||||
System.out.println("vEEduAplctVO.getOrderByQuery() :: "+ vEEduAplctVO.getOrderByQuery());
|
||||
|
||||
//2. pageing step2
|
||||
vEEduAplctVO = this.setPagingStep2Sub(vEEduAplctVO, paginationInfo);
|
||||
vEEduAplctVO.setNotiUserId(user.getUniqId());
|
||||
vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString());
|
||||
|
||||
|
||||
/*
|
||||
* 리스트 검색에서 교육일자 시작/종료일 입력 없이 검색시
|
||||
* 기존 searchEndDt where 조건에 1=2로 되어있어서 리스트 검색이 안되던 것을
|
||||
* 저작위 요청사항으로 1=1로 변경하여 날짜 입력이 안되어도 검색이 되도록 수정함
|
||||
* 2023-04-28 우영두
|
||||
*
|
||||
* */
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
|
||||
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
|
||||
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.decrypt(vEEduAplctVO.getSearchChrgNm()));
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEEduAplctVOList);
|
||||
return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctMngList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 기반강화연수 신청 등록 화면
|
||||
|
||||
@ -7,6 +7,7 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Controller;
|
||||
@ -241,6 +242,147 @@ public class FndthPrcsAplctPrdMngController {
|
||||
///kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do
|
||||
}
|
||||
|
||||
/**
|
||||
* 기반강화연수 교육확정관리목록
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.do")
|
||||
public String fndthEduPrcsAplctMngList( @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, HttpSession session, ModelMap model ) throws Exception {
|
||||
|
||||
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
|
||||
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
|
||||
|
||||
//로그인 처리====================================
|
||||
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
|
||||
|
||||
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
|
||||
//paginationInfo.setRecordCountPerPage(10000);
|
||||
|
||||
//2. pageing step2
|
||||
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
|
||||
|
||||
//기반강화 조회
|
||||
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
|
||||
//교육확정 목록 조회
|
||||
vEPrcsDetailVO.setDdlnCd("20");
|
||||
|
||||
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);
|
||||
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
|
||||
|
||||
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
|
||||
// 지정된 강사가 있는지 확인
|
||||
vEPrcsDetailVOList.stream().forEach(t->{
|
||||
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
|
||||
if(vEAPrcsAplctPrdInstrAsgnmList.size() > 0) {
|
||||
t.setInstrCnt(Integer.toString(vEAPrcsAplctPrdInstrAsgnmList.size()));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEPrcsDetailVOList);
|
||||
|
||||
|
||||
|
||||
|
||||
return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 조건부기소유예 기간 상세화면
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail.do")
|
||||
public String cndtnEduPrcsAplctCfnMngDetail(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
|
||||
, ModelMap model
|
||||
, RedirectAttributes redirectAttributes
|
||||
, HttpSession session
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
//로그인 처리====================================
|
||||
//로그인 정보 가져오기
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||
|
||||
//과정 조회
|
||||
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO);
|
||||
model.addAttribute("info", vEPrcsDetailVODetail);
|
||||
|
||||
//과정 신청자 정보 가져오기
|
||||
{
|
||||
//해당 과정을 제출한 사용자 정보를 가져온다.
|
||||
VEEduAplctVO paramVO = new VEEduAplctVO();
|
||||
paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) {
|
||||
|
||||
String searchQuery = "AND vadi.APLCT_STATE_CD = "+vEPrcsDetailVO.getSearchStatus();
|
||||
paramVO.setSearchQuery(searchQuery);
|
||||
}
|
||||
// 검색 - 날짜
|
||||
paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt());
|
||||
paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt());
|
||||
// 검색 - 검색어
|
||||
paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus());
|
||||
|
||||
|
||||
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
System.out.println("====");
|
||||
|
||||
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
|
||||
}
|
||||
|
||||
// 강사 배치 정보
|
||||
{
|
||||
|
||||
System.out.println("====");
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
List<VEAPrcsAplctPrdInstrAsgnmVO> instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList);
|
||||
|
||||
model.addAttribute("instrAsgnmList", instrAsgnmList);
|
||||
}
|
||||
|
||||
return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 기반강화연수과정 신청기간 등록 화면
|
||||
|
||||
@ -110,10 +110,9 @@
|
||||
UPDATE
|
||||
<include refid="CndtnTrgtInfoMngDAO.table_name"/>
|
||||
SET
|
||||
user_id = #userId#
|
||||
, edu_state_cd = #eduStateCd#
|
||||
, last_updt_pnttm = SYSDATE
|
||||
, last_updusr_id = #lastUpdusrId#
|
||||
edu_state_cd = #eduStateCd#
|
||||
, last_updt_pnttm = SYSDATE
|
||||
, last_updusr_id = #lastUpdusrId#
|
||||
, trgt_nm = #trgtNm#
|
||||
, clphone = #clphone#
|
||||
, d_birth = #dBirth#
|
||||
|
||||
@ -117,7 +117,7 @@
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 강사 정보 L -->
|
||||
<!-- -->
|
||||
<select id="VEEduMIXDAO.selectList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* VEEduMIXDAO.selectList */
|
||||
SELECT
|
||||
@ -149,6 +149,63 @@
|
||||
AND a.aprvl_cd = #searchSelStatus#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchQuery">
|
||||
$searchQuery$
|
||||
</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>
|
||||
|
||||
<!-- -->
|
||||
<select id="VEEduMIXDAO.selectTrgtList" 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"/>,
|
||||
vsit.trgt_nm AS trgtNm,
|
||||
vsit.clphone AS vs_clphone,
|
||||
vsit.d_birth AS dBirth
|
||||
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
|
||||
LEFT JOIN VEA_SSPN_IDMT_TRGT vsit
|
||||
ON a.user_id = vsit.user_id
|
||||
WHERE
|
||||
1=1
|
||||
<isNotEmpty property="prcsOrd">
|
||||
AND a.prcs_ord=#prcsOrd#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="sbmtYn">
|
||||
AND a.sbmt_yn=#sbmtYn#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSelStatus">
|
||||
AND a.aprvl_cd = #searchSelStatus#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchQuery">
|
||||
$searchQuery$
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSmbtStartDt">
|
||||
AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
@ -3455,6 +3512,19 @@ VALUES
|
||||
edu_aplct_ord = #eduAplctOrd#
|
||||
</insert>
|
||||
|
||||
<update id="VEEduMIXDAO.updateAplctStateCd" parameterClass="VEEduAplctVO">
|
||||
/* VEEduMIXDAO.updateAplctStateCd */
|
||||
|
||||
UPDATE
|
||||
vea_aplct_detail_info
|
||||
SET
|
||||
aplct_state_cd = #aplctStateCd#
|
||||
WHERE
|
||||
prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
AND edu_aplct_ord = #eduAplctOrd#
|
||||
|
||||
|
||||
</update>
|
||||
<select id="VEEduMIXDAO.selectExprnPagingList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* 임시.*NOT_SQL_LOG.* VEEduMIXDAO.selectExprnPagingList */
|
||||
SELECT
|
||||
|
||||
@ -116,9 +116,26 @@
|
||||
|
||||
<!-- 교육 신청자 상태 update -->
|
||||
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.udpateAprvlCdEduAplct" parameterClass="VEPrcsDetailVO">
|
||||
|
||||
/* VEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax */
|
||||
|
||||
UPDATE VE_EDU_APLCT
|
||||
SET aprvl_cd = #aprvlCd#
|
||||
WHERE edu_aplct_ord IN
|
||||
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
AND edu_aplct_ord IN
|
||||
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
|
||||
#eduAplctOrdList[]#
|
||||
</iterate>
|
||||
</update>
|
||||
|
||||
<!-- 교육 신청자 상태 update -->
|
||||
<update id="VEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax" parameterClass="VEPrcsDetailVO">
|
||||
/* VEAPrcsAplctPrdInstrAsgnmDAO.updateAplctStateCdListAjax */
|
||||
|
||||
UPDATE VEA_APLCT_DETAIL_INFO
|
||||
SET aplct_state_cd = #aplctStateCd#
|
||||
WHERE prcs_aplct_prd_ord = #prcsAplctPrdOrd#
|
||||
AND edu_aplct_ord IN
|
||||
<iterate property="eduAplctOrdList" open="(" close=")" conjunction=",">
|
||||
#eduAplctOrdList[]#
|
||||
</iterate>
|
||||
@ -126,6 +143,7 @@
|
||||
|
||||
<!-- 강사 배정 등록 -->
|
||||
<select id="VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd" parameterClass="String" resultClass="VEAPrcsAplctPrdInstrAsgnmVO">
|
||||
/* VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd */
|
||||
|
||||
SELECT
|
||||
<include refid="VEAPrcsAplctPrdInstrAsgnmDAO.select_column_name"/>
|
||||
|
||||
@ -331,6 +331,10 @@
|
||||
<isNotEmpty property="prcsAplctPrdOrd">
|
||||
AND a.prcs_aplct_prd_ord=#prcsAplctPrdOrd#
|
||||
</isNotEmpty>
|
||||
/*교육확정목록을 조회하기 위한 조건문*/
|
||||
<isNotEmpty property="ddlnCd">
|
||||
AND a.ddln_cd = #ddlnCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchKeyword">
|
||||
AND b.prcs_nm LIKE '%'|| #searchKeyword# ||'%'
|
||||
@ -338,6 +342,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
ORDER BY 1
|
||||
|
||||
<isEmpty property="orderByQuery">
|
||||
|
||||
@ -0,0 +1,491 @@
|
||||
<!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 : cndtnEduPrcsAplctPrdMngDetail.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(){
|
||||
|
||||
$('#searchStatus').change(function(){
|
||||
searchpage();
|
||||
});
|
||||
});
|
||||
|
||||
function searchpage(){
|
||||
|
||||
var form = document.detailForm ;
|
||||
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.do'/>";
|
||||
form.submit();
|
||||
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncGoDetail(){
|
||||
var form = document.detailForm ;
|
||||
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.do'/>";
|
||||
form.submit();
|
||||
}
|
||||
|
||||
function fncMdfy(){
|
||||
var detailForm = document.detailForm ;
|
||||
detailForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy.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/cndtnSspnIdtmt/instrDelAjax.do'/>";
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
function fn_statusChg(eduAplctOrd, aplctStateCd){
|
||||
document.statusChgForm.eduAplctOrd.value = eduAplctOrd ;
|
||||
document.statusChgForm.aplctStateCd.value = aplctStateCd ;
|
||||
var data = new FormData(document.getElementById("statusChgForm"));
|
||||
if(confirm("상태병경을 하시겠습니까?")){
|
||||
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdAjax.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();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 강사 배치
|
||||
function fncInstrAsgnmInfo(prcsAplctPrdOrd) {
|
||||
var form = document.popForm;
|
||||
|
||||
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
|
||||
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/fndthInstrAsgnmPopup.do'/>";
|
||||
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup.do'/>";
|
||||
|
||||
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
|
||||
form.target = "_securityPop";
|
||||
form.submit();
|
||||
}
|
||||
|
||||
function chkAll(obj) {
|
||||
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
|
||||
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
|
||||
}
|
||||
|
||||
// form 데이터를 묶지 않기 때문에 prcsAplctPrdOrd 데이터 필요함
|
||||
function fn_statusChgList(p_aplctStateCd, 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,
|
||||
"aplctStateCd": p_aplctStateCd,
|
||||
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
|
||||
};
|
||||
|
||||
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdListAjax.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 id="statusChgForm" name="statusChgForm" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<input type="hidden" name="aplctStateCd" id="aplctStateCd"/>
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd"/>
|
||||
</form>
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
|
||||
</form:form>
|
||||
<form id="popForm" name="popForm" method="post">
|
||||
<input type="hidden" name="pageIndex" value="1"/>
|
||||
<input type="hidden" name="prcsAplctPrdOrd" value="" />
|
||||
<input type="hidden" name="pageUnit" value="5" />
|
||||
</form>
|
||||
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<!-- 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>
|
||||
</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>
|
||||
<ve:code codeId="VEA001" code="${info.prcsDiv}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">과정</th>
|
||||
<td>
|
||||
<c:out value="${info.prcsNm}"/>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">신청기간</th>
|
||||
<td>
|
||||
<c:out value="${info.strtPnttm}"/>~<c:out value="${info.endPnttm}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">교육장소</th>
|
||||
<td class="addPro_wrap">
|
||||
<c:out value="${info.eduPlace}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">교육기간</th>
|
||||
<td>
|
||||
<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">
|
||||
<c:out value="${info.nos}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">상태</th>
|
||||
<td id="ddlnCdStts">
|
||||
<ve:code codeId="VEA004" code="${info.ddlnCd}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<%-- <tr>
|
||||
<th scope="row">
|
||||
<p>공개여부(사용여부)</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:if test="${empty info.useYn or info.useYn eq 'Y'}">예</c:if>
|
||||
<c:if test="${info.useYn eq 'N'}">아니오</c:if>
|
||||
</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="fncMdfy(); return false;">수정</button>
|
||||
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
강사 배치 정보
|
||||
강사 배치 정보
|
||||
-->
|
||||
<div class="tb_tit01">
|
||||
<p>강사 배치 정보</p>
|
||||
</div>
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<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>
|
||||
<c:choose>
|
||||
<c:when test="${!empty instrAsgnmList }">
|
||||
<c:forEach var="list" items="${instrAsgnmList}" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<c:out value="${list.instrNm }"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.phone }"/>
|
||||
</td>
|
||||
<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="4">강사 배치 정보가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- 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="fncInstrAsgnmInfo('<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">강사배치</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
교육 신청자 list_상세
|
||||
교육 신청자 list_상세
|
||||
-->
|
||||
<div class="tb_tit01">
|
||||
<p>교육신청자</p> <!-- ${listPrcsAplct } -->
|
||||
</div>
|
||||
|
||||
<!-- list_top -->
|
||||
<div class="list_top search-only">
|
||||
<div class="list_top_1">
|
||||
<div class="util_right">
|
||||
<ve:select codeId="VEA003" name="searchStatus" id="searchStatus" css="class='sel_type1'"
|
||||
selectedValue="${vEPrcsDetailVO.searchStatus}" defaultValue='' includes="10,20"
|
||||
defaultText='전체'
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 5%">
|
||||
<col style="width: 180px;">
|
||||
<col style="width: 12%">
|
||||
<col style="width: 210px;">
|
||||
<col style="width: 210px;">
|
||||
<col style="width: 210px;">
|
||||
</colgroup>
|
||||
<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>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${!empty listPrcsAplct}">
|
||||
<c:forEach var="list" items="${listPrcsAplct}" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<input name="chk" class="${list.asgnmAprvlCd}"
|
||||
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.userNm}"/>(<c:out value="${list.trgtNm}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.dBirth}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.vs_clphone}"/>
|
||||
</td>
|
||||
<td>
|
||||
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_type04" onclick="fn_statusChg('<c:out value="${list.eduAplctOrd }" />', '20')">이수</button>
|
||||
<button type="button" class="btn_type05" onclick="fn_statusChg('<c:out value="${list.eduAplctOrd }" />', '10')">미이수</button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="6">데이터가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
|
||||
</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_type04" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'; return false;">교육확정목록</button>
|
||||
<button type="button" class="btn_type04" onclick="fn_statusChgList('20', '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">이수</button>
|
||||
<button type="button" class="btn_type04" onclick="fn_statusChgList('10', '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">미이수</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form:form>
|
||||
<!-- //cont -->
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,320 @@
|
||||
<!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 : cndtnEduPrcsAplctPrdMngList.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(){
|
||||
|
||||
// 상태값 확인
|
||||
$(".ddlnCdStts").each(function() {
|
||||
var $currentCell = $(this);
|
||||
|
||||
// 텍스트가 비어있는지 확인
|
||||
if ($currentCell.text().trim() === "") {
|
||||
var $currentRow = $currentCell.closest('tr');
|
||||
|
||||
var strtPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[0].trim());
|
||||
var endPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[1].trim());
|
||||
var currentDate = new Date();
|
||||
|
||||
var ddlnCdText = '';
|
||||
if (currentDate < strtPnttm) {
|
||||
ddlnCdText = "접수전";
|
||||
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
|
||||
ddlnCdText = "접수중";
|
||||
} else if (currentDate > endPnttm) {
|
||||
ddlnCdText = "접수종료";
|
||||
}
|
||||
|
||||
$currentCell.text(ddlnCdText);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
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/cndtnEduPrcsAplctCfnMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var listForm = document.listForm ;
|
||||
listForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.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: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="prcsAplctPrdOrd" name="prcsAplctPrdOrd" 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">
|
||||
|
||||
<ve:select codeId="VEA001" name="searchStatus" id="searchStatus" css="class='sel_type1'"
|
||||
selectedValue="${vEPrcsDetailVO.searchStatus }" defaultValue=""
|
||||
defaultText="전체"
|
||||
/>
|
||||
<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="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="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
|
||||
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
|
||||
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
|
||||
<option value='100' <c:if test="${vEPrcsDetailVO.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: 5%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: auto">
|
||||
<col style="width: 180px;">
|
||||
<col style="width: 180px;">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 10%">
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>NO</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">
|
||||
<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>
|
||||
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
|
||||
</td>
|
||||
<td class="ddlnCdStts">
|
||||
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
<%-- <c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/> --%>
|
||||
<c:choose>
|
||||
<c:when test="${list.instrCnt ne 0 }">
|
||||
배정완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<button type="button" class="btn_type04" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">강사배정</button>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<!-- <td> -->
|
||||
<%-- <c:out value="${list.useYn}"/> --%>
|
||||
<!-- </td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="7"><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>
|
||||
<!-- //page -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //cont -->
|
||||
<!-- //cont -->
|
||||
|
||||
</form:form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -115,6 +115,10 @@
|
||||
<td>
|
||||
<ve:code codeId="COM014" code="${info.sex }"/>
|
||||
</td>
|
||||
<th scope="row">연락처</th>
|
||||
<td>
|
||||
<c:out value="${info.clphone }" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">성명</th>
|
||||
|
||||
@ -293,6 +293,10 @@
|
||||
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>
|
||||
|
||||
@ -242,6 +242,10 @@
|
||||
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>
|
||||
|
||||
@ -0,0 +1,475 @@
|
||||
<!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 : cndtnEduPrcsAplctPrdMngDetail.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(){
|
||||
|
||||
$('#searchStatus').change(function(){
|
||||
searchpage();
|
||||
});
|
||||
});
|
||||
|
||||
function searchpage(){
|
||||
|
||||
var form = document.detailForm ;
|
||||
form.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail.do'/>";
|
||||
form.submit();
|
||||
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.do'/>";
|
||||
listForm.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();
|
||||
}
|
||||
|
||||
|
||||
// 기반 / 기소 공통
|
||||
function fn_statusChg(eduAplctOrd, aplctStateCd){
|
||||
document.statusChgForm.eduAplctOrd.value = eduAplctOrd ;
|
||||
document.statusChgForm.aplctStateCd.value = aplctStateCd ;
|
||||
var data = new FormData(document.getElementById("statusChgForm"));
|
||||
if(confirm("상태병경을 하시겠습니까?")){
|
||||
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdAjax.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();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 강사 배치
|
||||
function fncInstrAsgnmInfo(prcsAplctPrdOrd) {
|
||||
var form = document.popForm;
|
||||
|
||||
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
|
||||
form.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup.do'/>";
|
||||
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup.do'/>";
|
||||
|
||||
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
|
||||
form.target = "_securityPop";
|
||||
form.submit();
|
||||
}
|
||||
|
||||
function chkAll(obj) {
|
||||
// 모든 체크박스의 상태를 헤더 체크박스의 상태와 동일하게 설정
|
||||
$("input[name='chk']").prop('checked', $(obj).prop('checked'));
|
||||
}
|
||||
|
||||
// form 데이터를 묶지 않기 때문에 prcsAplctPrdOrd 데이터 필요함
|
||||
function fn_statusChgList(p_aplctStateCd, 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,
|
||||
"aplctStateCd": p_aplctStateCd,
|
||||
"prcsAplctPrdOrd": p_prcsAplctPrdOrd
|
||||
};
|
||||
|
||||
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdListAjax.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 id="statusChgForm" name="statusChgForm" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<input type="hidden" name="aplctStateCd" id="aplctStateCd"/>
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd"/>
|
||||
</form>
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
|
||||
</form:form>
|
||||
<form id="popForm" name="popForm" method="post">
|
||||
<input type="hidden" name="pageIndex" value="1"/>
|
||||
<input type="hidden" name="prcsAplctPrdOrd" value="" />
|
||||
<input type="hidden" name="pageUnit" value="5" />
|
||||
</form>
|
||||
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<!-- 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>
|
||||
</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>
|
||||
<ve:code codeId="VEA001" code="${info.prcsDiv}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">과정</th>
|
||||
<td>
|
||||
<c:out value="${info.prcsNm}"/>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">신청기간</th>
|
||||
<td>
|
||||
<c:out value="${info.strtPnttm}"/>~<c:out value="${info.endPnttm}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">교육장소</th>
|
||||
<td class="addPro_wrap">
|
||||
<c:out value="${info.eduPlace}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">교육기간</th>
|
||||
<td>
|
||||
<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">
|
||||
<c:out value="${info.nos}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">상태</th>
|
||||
<td id="ddlnCdStts">
|
||||
<ve:code codeId="VEA004" code="${info.ddlnCd}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<%-- <tr>
|
||||
<th scope="row">
|
||||
<p>공개여부(사용여부)</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:if test="${empty info.useYn or info.useYn eq 'Y'}">예</c:if>
|
||||
<c:if test="${info.useYn eq 'N'}">아니오</c:if>
|
||||
</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="fncMdfy(); return false;">수정</button>
|
||||
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
강사 배치 정보
|
||||
강사 배치 정보
|
||||
-->
|
||||
<div class="tb_tit01">
|
||||
<p>강사 배치 정보</p>
|
||||
</div>
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<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>
|
||||
<c:choose>
|
||||
<c:when test="${!empty instrAsgnmList }">
|
||||
<c:forEach var="list" items="${instrAsgnmList}" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<c:out value="${list.instrNm }"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.phone }"/>
|
||||
</td>
|
||||
<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="4">강사 배치 정보가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- 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="fncInstrAsgnmInfo('<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">강사배치</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
교육 신청자 list_상세
|
||||
교육 신청자 list_상세
|
||||
-->
|
||||
<div class="tb_tit01">
|
||||
<p>교육신청자</p> <!-- ${listPrcsAplct } -->
|
||||
</div>
|
||||
|
||||
<!-- list_top -->
|
||||
<div class="list_top search-only">
|
||||
<div class="list_top_1">
|
||||
<div class="util_right">
|
||||
<ve:select codeId="VEA003" name="searchStatus" id="searchStatus" css="class='sel_type1'"
|
||||
selectedValue="${vEPrcsDetailVO.searchStatus}" defaultValue='' includes="10,20"
|
||||
defaultText='전체'
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 5%">
|
||||
<col style="width: 180px;">
|
||||
<col style="width: 180px;">
|
||||
<col style="width: 210px;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th>
|
||||
<th>신청자</th>
|
||||
<th>교육이수여부</th>
|
||||
<th>교육이수상태변경</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${!empty listPrcsAplct}">
|
||||
<c:forEach var="list" items="${listPrcsAplct}" varStatus="status">
|
||||
<tr>
|
||||
<td>
|
||||
<input name="chk" class="${list.asgnmAprvlCd}"
|
||||
value="${list.eduAplctOrd}" title="Check" type="checkbox"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${list.userNm}"/>
|
||||
<td>
|
||||
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn_type04" onclick="fn_statusChg('<c:out value="${list.eduAplctOrd }" />', '20')">이수</button>
|
||||
<button type="button" class="btn_type05" onclick="fn_statusChg('<c:out value="${list.eduAplctOrd }" />', '10')">미이수</button>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="4">데이터가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
|
||||
</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_type04" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'; return false;">교육확정목록</button>
|
||||
<button type="button" class="btn_type04" onclick="fn_statusChgList('20', '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">이수</button>
|
||||
<button type="button" class="btn_type04" onclick="fn_statusChgList('10', '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">미이수</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form:form>
|
||||
<!-- //cont -->
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,320 @@
|
||||
<!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 : cndtnEduPrcsAplctPrdMngList.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(){
|
||||
|
||||
// 상태값 확인
|
||||
$(".ddlnCdStts").each(function() {
|
||||
var $currentCell = $(this);
|
||||
|
||||
// 텍스트가 비어있는지 확인
|
||||
if ($currentCell.text().trim() === "") {
|
||||
var $currentRow = $currentCell.closest('tr');
|
||||
|
||||
var strtPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[0].trim());
|
||||
var endPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[1].trim());
|
||||
var currentDate = new Date();
|
||||
|
||||
var ddlnCdText = '';
|
||||
if (currentDate < strtPnttm) {
|
||||
ddlnCdText = "접수전";
|
||||
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
|
||||
ddlnCdText = "접수중";
|
||||
} else if (currentDate > endPnttm) {
|
||||
ddlnCdText = "접수종료";
|
||||
}
|
||||
|
||||
$currentCell.text(ddlnCdText);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
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/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var listForm = document.listForm ;
|
||||
listForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail.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/fndthEnhanceTrn/fndthEduPrcsMngDeleteAjax.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: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="prcsAplctPrdOrd" name="prcsAplctPrdOrd" 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">
|
||||
|
||||
<ve:select codeId="VEA001" name="searchStatus" id="searchStatus" css="class='sel_type1'"
|
||||
selectedValue="${vEPrcsDetailVO.searchStatus }" defaultValue=""
|
||||
defaultText="전체"
|
||||
/>
|
||||
<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="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="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
|
||||
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
|
||||
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
|
||||
<option value='100' <c:if test="${vEPrcsDetailVO.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: 5%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: auto">
|
||||
<col style="width: 180px;">
|
||||
<col style="width: 180px;">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 10%">
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>NO</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">
|
||||
<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>
|
||||
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
|
||||
</td>
|
||||
<td class="ddlnCdStts">
|
||||
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
|
||||
</td>
|
||||
<td>
|
||||
<%-- <c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/> --%>
|
||||
<c:choose>
|
||||
<c:when test="${list.instrCnt ne 0 }">
|
||||
배정완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<button type="button" class="btn_type04" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">강사배정</button>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<!-- <td> -->
|
||||
<%-- <c:out value="${list.useYn}"/> --%>
|
||||
<!-- </td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="7"><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>
|
||||
<!-- //page -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //cont -->
|
||||
<!-- //cont -->
|
||||
|
||||
</form:form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -217,7 +217,7 @@
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
<p>조건부기소유예관리</p>
|
||||
<p>기반강화연수관리</p>
|
||||
</li>
|
||||
<li><span class="cur_nav">과정신청기간관리 신청기간 상세</span></li>
|
||||
</ul>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user