Merge branch 'hylee' into advc

This commit is contained in:
hylee 2023-09-08 14:28:38 +09:00
commit 1d02b46751
38 changed files with 3601 additions and 322 deletions

View File

@ -170,6 +170,8 @@ public class ComDefaultVO implements Serializable {
private String searchDashboard; private String searchDashboard;
private String searchQuery;
public int getBeSort() { public int getBeSort() {
return beSort; return beSort;
} }
@ -834,4 +836,12 @@ public class ComDefaultVO implements Serializable {
this.searchInsttNm = searchInsttNm; this.searchInsttNm = searchInsttNm;
} }
public String getSearchQuery() {
return searchQuery;
}
public void setSearchQuery(String searchQuery) {
this.searchQuery = searchQuery;
}
} }

View File

@ -26,6 +26,7 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO;
import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrSttsVO; import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrSttsVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
/** /**
* *
@ -469,6 +470,18 @@ public class EgovCryptoUtil {
return p_schduleManageVOList; return p_schduleManageVOList;
} }
//VEAPrcsAplctPrdInstrAsgnmVO
//- 복호화
public List<VEAPrcsAplctPrdInstrAsgnmVO> decryptVEAPrcsAplctPrdInstrAsgnmVOList(List<VEAPrcsAplctPrdInstrAsgnmVO> p_VEAPrcsAplctPrdInstrAsgnmList){
for (int i=0;i<p_VEAPrcsAplctPrdInstrAsgnmList.size();i++) {
p_VEAPrcsAplctPrdInstrAsgnmList.get(i).setInstrNm(this.decrypt(p_VEAPrcsAplctPrdInstrAsgnmList.get(i).getInstrNm()));
p_VEAPrcsAplctPrdInstrAsgnmList.get(i).setPhone(this.decrypt(p_VEAPrcsAplctPrdInstrAsgnmList.get(i).getPhone()));
}
return p_VEAPrcsAplctPrdInstrAsgnmList;
}
//VEEduAplctVO - 복호화 //VEEduAplctVO - 복호화
public SchduleManageVO decryptSchduleManageVOInfo(SchduleManageVO p_schduleManageVO){ public SchduleManageVO decryptSchduleManageVOInfo(SchduleManageVO p_schduleManageVO){

View File

@ -0,0 +1,12 @@
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
import java.util.List;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
public interface VEAPrcsAplctPrdInstrAsgnmService {
void instrInsert(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO);
List<VEAPrcsAplctPrdInstrAsgnmVO> findByPrcsAplctPrdOrd(String prcsAplctPrdOrd);
}

View File

@ -0,0 +1,165 @@
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
/**
*
* @author : 이호영
* @fileName : VEPrcsDetailVO.java
* @date : 2023.09.05
* @description : 교육과정강사배정 태이블 [vea_prcs_aplct_prd_instr_asgnm]
* ===========================================================
* DATE AUTHOR NOTE
* ----------------------------------------------------------- *
* 2023.09.05 이호영 최초 생성
*
*
*
*/
public class VEAPrcsAplctPrdInstrAsgnmVO extends ComDefaultVO implements Serializable {
/*
*
*
* */
private static final long serialVersionUID = 1L;
private String prcsAplctPrdOrd; // 과정신청기간순번
private String userId; // 사용자아이디-강사
private String lctrPlanAtchFileId; // 강의계획서첨부파일아이디
private String docAtchFileId; // 서류첨부파일아이디
private String asgnmAprvlCd; // 배정 승인 코드(VE0019)
private String asgnmAprvlPnttm; // 배정 승인 일시
private String asgnmAprvlId; // 배정 승인 아이디
private String rmrks; // 비고
private String frstRegisterId; //
private String frstRegistPnttm;
private String lastUpdusrId; //
private String lastUpdtPnttm;
// ve_instr_detail
private String instrNm; // 강사 이름
private String phone; // phone
public String getPrcsAplctPrdOrd() {
return prcsAplctPrdOrd;
}
public void setPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
this.prcsAplctPrdOrd = prcsAplctPrdOrd;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getLctrPlanAtchFileId() {
return lctrPlanAtchFileId;
}
public void setLctrPlanAtchFileId(String lctrPlanAtchFileId) {
this.lctrPlanAtchFileId = lctrPlanAtchFileId;
}
public String getDocAtchFileId() {
return docAtchFileId;
}
public void setDocAtchFileId(String docAtchFileId) {
this.docAtchFileId = docAtchFileId;
}
public String getAsgnmAprvlCd() {
return asgnmAprvlCd;
}
public void setAsgnmAprvlCd(String asgnmAprvlCd) {
this.asgnmAprvlCd = asgnmAprvlCd;
}
public String getAsgnmAprvlPnttm() {
return asgnmAprvlPnttm;
}
public void setAsgnmAprvlPnttm(String asgnmAprvlPnttm) {
this.asgnmAprvlPnttm = asgnmAprvlPnttm;
}
public String getAsgnmAprvlId() {
return asgnmAprvlId;
}
public void setAsgnmAprvlId(String asgnmAprvlId) {
this.asgnmAprvlId = asgnmAprvlId;
}
public String getRmrks() {
return rmrks;
}
public void setRmrks(String rmrks) {
this.rmrks = rmrks;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getInstrNm() {
return instrNm;
}
public void setInstrNm(String instrNm) {
this.instrNm = instrNm;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}

View File

@ -2,6 +2,8 @@ package kcc.ve.instr.tngrVisitEdu.prcsInfo.service;
import java.util.List; import java.util.List;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
public interface VEPrcsAplctPrdService { public interface VEPrcsAplctPrdService {
//C //C
@ -33,4 +35,7 @@ public interface VEPrcsAplctPrdService {
VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception; VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception;
VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception; VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO);
} }

View File

@ -13,6 +13,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
//ve_prcs //ve_prcs
private String prcsOrd; //과정순번 private String prcsOrd; //과정순번
private String prcsDiv; //과정구분 private String prcsDiv; //과정구분
private String prcsKind; //과정종류 private String prcsKind; //과정종류
@ -104,10 +105,17 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String deadLineDt; private String deadLineDt;
private String eduPartCd; private String eduPartCd;
private String nos; private int nos;
private String ddlnCd; private String ddlnCd;
private String nosCnt1; //신청인 private String nosCnt1; //신청인
private String eduPlace; //교육장소
private String instrDiv;
private String userId;
public String getPrcsOrd() { public String getPrcsOrd() {
return prcsOrd; return prcsOrd;
@ -505,10 +513,10 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setEduPartCd(String eduPartCd) { public void setEduPartCd(String eduPartCd) {
this.eduPartCd = eduPartCd; this.eduPartCd = eduPartCd;
} }
public String getNos() { public int getNos() {
return nos; return nos;
} }
public void setNos(String nos) { public void setNos(int nos) {
this.nos = nos; this.nos = nos;
} }
public String getDdlnCd() { public String getDdlnCd() {
@ -523,4 +531,24 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setNosCnt1(String nosCnt1) { public void setNosCnt1(String nosCnt1) {
this.nosCnt1 = nosCnt1; this.nosCnt1 = nosCnt1;
} }
public String getEduPlace() {
return eduPlace;
}
public void setEduPlace(String eduPlace) {
this.eduPlace = eduPlace;
}
public String getInstrDiv() {
return instrDiv;
}
public void setInstrDiv(String instrDiv) {
this.instrDiv = instrDiv;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
} }

View File

@ -0,0 +1,24 @@
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Repository("vEAPrcsAplctPrdInstrAsgnmDAO")
public class VEAPrcsAplctPrdInstrAsgnmDAO extends EgovAbstractDAO {
public void instrInsert(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO) {
// insert("VEPrcsAplctPrdDAO.instrInsert", vEAPrcsAplctPrdInstrAsgnmVO);
insert("VEAPrcsAplctPrdInstrAsgnmDAO.instrInsert", vEAPrcsAplctPrdInstrAsgnmVO);
}
public List<VEAPrcsAplctPrdInstrAsgnmVO> findByPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
return (List<VEAPrcsAplctPrdInstrAsgnmVO>) list("VEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd", prcsAplctPrdOrd);
}
}

View File

@ -0,0 +1,38 @@
package kcc.ve.instr.tngrVisitEdu.prcsInfo.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
@Service("vEAPrcsAplctPrdInstrAsgnmService")
public class VEAPrcsAplctPrdInstrAsgnmServiceImpl implements VEAPrcsAplctPrdInstrAsgnmService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정
@Resource(name="vEAPrcsAplctPrdInstrAsgnmDAO")
private VEAPrcsAplctPrdInstrAsgnmDAO vEAPrcsAplctPrdInstrAsgnmDAO;
//과정
@Override
public void instrInsert(VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO) {
vEAPrcsAplctPrdInstrAsgnmDAO.instrInsert(vEAPrcsAplctPrdInstrAsgnmVO);
}
@Override
public List<VEAPrcsAplctPrdInstrAsgnmVO> findByPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
return vEAPrcsAplctPrdInstrAsgnmDAO.findByPrcsAplctPrdOrd(prcsAplctPrdOrd);
}
}

View File

@ -5,6 +5,8 @@ import java.util.List;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO; import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Repository("vEPrcsAplctPrdDAO") @Repository("vEPrcsAplctPrdDAO")
@ -21,7 +23,7 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
/** /**
* 상세보기 - R * 상세보기 - R
* @param VEPrcsDetailVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*/ */
@ -31,7 +33,7 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
/** /**
* 수정 - U * 수정 - U
* @param VEPrcsDetailVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*/ */
@ -85,4 +87,9 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO); return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth", paramVO);
} }
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return (List<VEInstrDetailVO>) list("VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList", vEPrcsDetailVO);
}
} }

View File

@ -7,20 +7,39 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@Service("vEPrcsAplctPrdService") @Service("vEPrcsAplctPrdService")
public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService { public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정 //과정
@Resource(name="vEPrcsAplctPrdDAO") @Resource(name="vEPrcsAplctPrdDAO")
private VEPrcsAplctPrdDAO vEPrcsAplctPrdDAO; private VEPrcsAplctPrdDAO vEPrcsAplctPrdDAO;
//과정
@Resource(name="vEPrcsDAO")
private VEPrcsDAO vEPrcsDAO;
//C //C
public void insert(VEPrcsDetailVO paramVO) throws Exception { public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
vEPrcsAplctPrdDAO.insert(paramVO);
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO);
} }
//R //R
@ -30,8 +49,8 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
//U //U
public int update(VEPrcsDetailVO paramVO) throws Exception{ public int update(VEPrcsDetailVO paramVO) throws Exception{
vEPrcsAplctPrdDAO.update(paramVO);
return vEPrcsAplctPrdDAO.update(paramVO); return vEPrcsDAO.update(paramVO);
} }
//D //D
@ -65,4 +84,10 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception { public VEPrcsDetailVO selectDetailNewOne4Fndth(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO); return vEPrcsAplctPrdDAO.selectDetailNewOne4Fndth(paramVO);
} }
@Override
public List<VEInstrDetailVO> selectinstrAsgnmPopupPagingList(VEPrcsDetailVO vEPrcsDetailVO) {
return vEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
}
} }

View File

@ -12,7 +12,7 @@ public class VEPrcsDAO extends EgovAbstractDAO {
/** /**
* 등록 - C * 등록 - C
* @param VEPrcsDetailVO * @param CndtnTrgtInfoMngVO
* @throws Exception * @throws Exception
*/ */
public void insert(VEPrcsDetailVO paramVO) throws Exception { public void insert(VEPrcsDetailVO paramVO) throws Exception {
@ -21,7 +21,7 @@ public class VEPrcsDAO extends EgovAbstractDAO {
/** /**
* 상세보기 - R * 상세보기 - R
* @param VEPrcsDetailVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*/ */
@ -31,7 +31,7 @@ public class VEPrcsDAO extends EgovAbstractDAO {
/** /**
* 수정 - U * 수정 - U
* @param VEPrcsDetailVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*/ */

View File

@ -12,7 +12,7 @@ public class VEPrcsMIXDAO extends EgovAbstractDAO {
/** /**
* 상세보기 - R * 상세보기 - R
* @param VEPrcsDetailVO * @param CndtnTrgtInfoMngVO
* @return * @return
* @throws Exception * @throws Exception
*/ */

View File

@ -333,6 +333,7 @@ public class EduCnfrmMngAdultController {
} }
//System.out.println(vEInstrAsgnmVO.getInstrNm()); //System.out.println(vEInstrAsgnmVO.getInstrNm());
System.out.println("===============================================");
if ("10".equals(vEEduAplctVO.getEduSlctCd())) { //10-온라인, 20-오프라인 if ("10".equals(vEEduAplctVO.getEduSlctCd())) { //10-온라인, 20-오프라인
selectVEInstrAsgnmVOList = vEAsgnmMIXService.selectInstrAsgnmOnPagingList_220210_adult(vEInstrAsgnmVO); selectVEInstrAsgnmVOList = vEAsgnmMIXService.selectInstrAsgnmOnPagingList_220210_adult(vEInstrAsgnmVO);
@ -371,6 +372,7 @@ public class EduCnfrmMngAdultController {
model.addAttribute("list", selectVEInstrAsgnmVOList); model.addAttribute("list", selectVEInstrAsgnmVOList);
return "oprtn/adultVisitEdu/popup/instrAsgnmPopup"; return "oprtn/adultVisitEdu/popup/instrAsgnmPopup";
} }

View File

@ -0,0 +1,41 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.service;
import java.util.List;
public interface CndtnPrcsInfoMngService {
List<CndtnPrcsInfoMngVO> selectPagingList(CndtnPrcsInfoMngVO cndtnTrgtInfoMngVO);
void insert(CndtnPrcsInfoMngVO cndtnTrgtInfoMngVO);
/* //C
void insert(VEPrcsDetailVO paramVO) throws Exception;
//R
VEPrcsDetailVO selectDetail(VEPrcsDetailVO paramVO) throws Exception;
//U
int update(VEPrcsDetailVO paramVO) throws Exception;
//D
int delete(VEPrcsDetailVO paramVO) throws Exception;
//L
List<VEPrcsDetailVO> selectList(VEPrcsDetailVO paramVO) throws Exception;
//List<VEPrcsDetailVO> selectList4Fndth(VEPrcsDetailVO paramVO) throws Exception;
List<VEPrcsDetailVO> selectTngrPrcsList(VEPrcsDetailVO paramVO) throws Exception;
//Page List
List<VEPrcsDetailVO> selectPagingList(VEPrcsDetailVO paramVO) throws Exception;
//교육과정 리스트 순서 수정
void updatePrcsSort(VEPrcsDetailVO paramVO) throws Exception;*/
}

View File

@ -0,0 +1,130 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.service;
import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
public class CndtnPrcsInfoMngVO extends ComDefaultVO implements Serializable {
/*
* 과정테이블
* */
private static final long serialVersionUID = 1L;
//ve_prcs
private String sspnIdtmtTrgtOrd; // 과정순번
private String userId; // 사용자아이디
private String trgtStateCd; // 대상상태코드 VEA002
private String frstRegistPnttm; // 등록일시
private String frstRegisterId; // 등록자
private String lastUpdtPnttm; // 수정일시
private String lastUpdusrId; // 수정자
private String trgtNm; // 대상자성명
private String clphone; // 연락처
private String dBirth; // 생년월일
private String addr; // 주소
private String addrDetail; // 상세주소
private String email; // 이메일주소
private String post; // 우편주소
public String getSspnIdtmtTrgtOrd() {
return sspnIdtmtTrgtOrd;
}
public void setSspnIdtmtTrgtOrd(String sspnIdtmtTrgtOrd) {
this.sspnIdtmtTrgtOrd = sspnIdtmtTrgtOrd;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getTrgtStateCd() {
return trgtStateCd;
}
public void setTrgtStateCd(String trgtStateCd) {
this.trgtStateCd = trgtStateCd;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getTrgtNm() {
return trgtNm;
}
public void setTrgtNm(String trgtNm) {
this.trgtNm = trgtNm;
}
public String getClphone() {
return clphone;
}
public void setClphone(String clphone) {
this.clphone = clphone;
}
public String getdBirth() {
return dBirth;
}
public void setdBirth(String dBirth) {
this.dBirth = dBirth;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getAddrDetail() {
return addrDetail;
}
public void setAddrDetail(String addrDetail) {
this.addrDetail = addrDetail;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPost() {
return post;
}
public void setPost(String post) {
this.post = post;
}
}

View File

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

View File

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

View File

@ -1,4 +1,4 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.prcsInfoMng.web; package kcc.ve.oprtn.cndtnSspnIdtmt.web;
import java.util.List; import java.util.List;
@ -25,6 +25,8 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
import kcc.ve.oprtn.cndtnSspnIdtmt.service.CndtnPrcsInfoMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.service.CndtnPrcsInfoMngVO;
/** /**
* 기반강화연수(관리자) * 기반강화연수(관리자)
@ -63,10 +65,18 @@ public class CndtnPrcsInfoMngController {
private VEPrcsOnlnCntntService vEPrcsOnlnCntntService; private VEPrcsOnlnCntntService vEPrcsOnlnCntntService;
//과정 관리
@Resource(name = "cndtnTrgtInfoMngService")
private CndtnPrcsInfoMngService cndtnTrgtInfoMngService;
//교육과정순번 //교육과정순번
@Resource(name="prcsGnrService") @Resource(name="prcsGnrService")
private EgovIdGnrService prcsGnrService; private EgovIdGnrService prcsGnrService;
//기소유예대상자
@Resource(name="trgtOrdService")
private EgovIdGnrService trgtOrdService;
//과정온라인콘텐츠순번 //과정온라인콘텐츠순번
@Resource(name="prcsOnlnGnrService") @Resource(name="prcsOnlnGnrService")
private EgovIdGnrService prcsOnlnGnrService; private EgovIdGnrService prcsOnlnGnrService;
@ -109,9 +119,11 @@ public class CndtnPrcsInfoMngController {
private CheckAdrProcessUtil checkAdrProcessUtil; private CheckAdrProcessUtil checkAdrProcessUtil;
*/ */
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do")
public String cndtnEduPrcsMngList( // @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do")
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do")
public String cndtnSspnIdtmtMngList(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnPrcsInfoMngVO cndtnTrgtInfoMngVO
, ModelMap model , ModelMap model
) throws Exception { ) throws Exception {
@ -124,57 +136,56 @@ public class CndtnPrcsInfoMngController {
//로그인 처리==================================== //로그인 처리====================================
//1.pageing step1 //1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); PaginationInfo paginationInfo = this.setCndtnPagingStep1(cndtnTrgtInfoMngVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000); //paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2 //2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); cndtnTrgtInfoMngVO = this.setCndtnPagingStep2(cndtnTrgtInfoMngVO, paginationInfo);
//기반강화 조회 //검색 조회
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 if(StringUtil.isNotEmpty(cndtnTrgtInfoMngVO.getSearchKeyword())){
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; String selectCondition = "";
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); String searchStatus = cndtnTrgtInfoMngVO.getSearchStatus();
selectCondition = "AND a."+searchStatus+" LIKE CONCAT ('%', '" +cndtnTrgtInfoMngVO.getSearchKeyword() + "', '%')";
cndtnTrgtInfoMngVO.setSearchQuery(selectCondition);
} }
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getPrcsKind())){ // List<CndtnTrgtInfoMngVO> cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
String[] splited = vEPrcsDetailVO.getPrcsKind().split(","); List<CndtnPrcsInfoMngVO> cndtnTrgtInfoMngVOList = null;
vEPrcsDetailVO.setSearchStatusArr(splited); try {
cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
} }
if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) {
vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO);
//3.pageing step3 //3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); paginationInfo = this.setCndtnPagingStep3(cndtnTrgtInfoMngVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo); model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달 //대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList); model.addAttribute("list", cndtnTrgtInfoMngVOList);
return "oprtn/cndtnSspnIdtmt/trgtList";
return "oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList";
///kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do
} }
/** /**
* 조건부기소유예과정 등록 화면 * 조건부기소유예대상자 등록 화면
*/ */
//@RequestMapping("eduPrcsMngReg.do") //@RequestMapping("eduPrcsMngReg.do")
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngReg.do") @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtReg.do")
public String cndtnEduPrcsMngReg( public String cndtnEduPrcsMngReg(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO @ModelAttribute("cndtnTrgtInfoMngVO") CndtnPrcsInfoMngVO cndtnTrgtInfoMngVO
, ModelMap model , ModelMap model
) throws Exception { ) throws Exception {
@ -187,12 +198,58 @@ public class CndtnPrcsInfoMngController {
//로그인 처리==================================== //로그인 처리====================================
return "oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngReg"; return "oprtn/cndtnSspnIdtmt/trgtReg";
} }
/** /**
* 조건부기소유예과정 등록 * 조건부기소유예과정 등록
*/ */
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do")
public ModelAndView cndtnEduPrcsMngRegAjax(
@ModelAttribute("cndtnTrgtInfoMngVO") CndtnPrcsInfoMngVO cndtnTrgtInfoMngVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
cndtnTrgtInfoMngVO.setSspnIdtmtTrgtOrd(trgtOrdService.getNextStringId());
cndtnTrgtInfoMngVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
// vEPrcsDetailVO.setPrcsOrd(prcsOrd);
// vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
// vEPrcsDetailVO.setUseYn("Y");
// vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
cndtnTrgtInfoMngService.insert(cndtnTrgtInfoMngVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
/*
*//**
* 조건부기소유예과정 등록
*//*
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngRegAjax.do") @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngRegAjax.do")
public ModelAndView cndtnEduPrcsMngRegAjax( public ModelAndView cndtnEduPrcsMngRegAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
@ -249,7 +306,7 @@ public class CndtnPrcsInfoMngController {
return modelAndView; return modelAndView;
} }
*/
/** /**
* 조건부기소유예과정 상세화면 * 조건부기소유예과정 상세화면
*/ */
@ -415,7 +472,6 @@ public class CndtnPrcsInfoMngController {
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3( private PaginationInfo setPagingStep3(
List<VEPrcsDetailVO> p_vEPrcsDetailVOList List<VEPrcsDetailVO> p_vEPrcsDetailVOList
, PaginationInfo p_paginationInfo , PaginationInfo p_paginationInfo
)throws Exception{ )throws Exception{
// pageing step3 // pageing step3
@ -423,6 +479,52 @@ public class CndtnPrcsInfoMngController {
if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt(); if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt); p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
//CndtnTrgtInfoMngVO
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setCndtnPagingStep1(
CndtnPrcsInfoMngVO p_cndtnTrgtInfoMngVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_cndtnTrgtInfoMngVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_cndtnTrgtInfoMngVO.getPageUnit());
paginationInfo.setPageSize(p_cndtnTrgtInfoMngVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private CndtnPrcsInfoMngVO setCndtnPagingStep2(
CndtnPrcsInfoMngVO p_cndtnTrgtInfoMngVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_cndtnTrgtInfoMngVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_cndtnTrgtInfoMngVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_cndtnTrgtInfoMngVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
if("".equals(p_cndtnTrgtInfoMngVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_cndtnTrgtInfoMngVO.setSearchSortCnd("prcs_ord");
p_cndtnTrgtInfoMngVO.setSearchSortOrd("desc");
}
return p_cndtnTrgtInfoMngVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setCndtnPagingStep3(
List<CndtnPrcsInfoMngVO> p_cndtnTrgtInfoMngVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_cndtnTrgtInfoMngVOList.size() > 0) totCnt = p_cndtnTrgtInfoMngVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo; return p_paginationInfo;
} }
} }

View File

@ -17,17 +17,27 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO; import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.CmmnDetailCode;
import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.impl.CmmUseDAO;
import kcc.com.cmm.util.StringUtil; import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCmpltDetailService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCmpltDetailService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@ -79,6 +89,10 @@ public class FndthPrcsAplctPrdMngController {
@Resource(name = "vEPrcsAplctPrdService") @Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService; private VEPrcsAplctPrdService vEPrcsAplctPrdService;
//과정차시 관리
@Resource(name = "vEAPrcsAplctPrdInstrAsgnmService")
private VEAPrcsAplctPrdInstrAsgnmService vEAPrcsAplctPrdInstrAsgnmService;
//교육과정순번 //교육과정순번
@Resource(name="prcsGnrService") @Resource(name="prcsGnrService")
private EgovIdGnrService prcsGnrService; private EgovIdGnrService prcsGnrService;
@ -118,6 +132,9 @@ public class FndthPrcsAplctPrdMngController {
@Resource(name = "EgovFileMngService") @Resource(name = "EgovFileMngService")
private EgovFileMngService fileService; private EgovFileMngService fileService;
//과정
@Resource(name="cmmUseDAO")
private CmmUseDAO cmmUseDAO;
/* /*
// 교육신청 서비스단 // 교육신청 서비스단
@ -187,7 +204,7 @@ public class FndthPrcsAplctPrdMngController {
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
} }
@ -261,6 +278,20 @@ public class FndthPrcsAplctPrdMngController {
//model.addAttribute("paginationInfo", paginationInfo); //model.addAttribute("paginationInfo", paginationInfo);
// 교육 부분 코드 가져오는 영역
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
codeVO.setCodeId("VEA001");//기관구분코드
codeVO.setCode(vEPrcsDetailVOList.get(0).getPrcsDiv());
model.addAttribute("prcsDivNm", cmmUseDAO.selectCmmCodeDetailValue(codeVO).getCodeNm());
// 상세교육과정 내용 가져오는 영역
VEPrcsDetailVO vEPrcsDetailVOPrcsCn = new VEPrcsDetailVO();
vEPrcsDetailVOPrcsCn.setPrcsOrd(vEPrcsDetailVOList.get(0).getPrcsOrd());
model.addAttribute("prcsCn", vEPrcsService.selectDetail(vEPrcsDetailVOPrcsCn).getPrcsCn());
//대상 리스트, 페이징 정보 전달 //대상 리스트, 페이징 정보 전달
model.addAttribute("listPrcs", vEPrcsDetailVOList); model.addAttribute("listPrcs", vEPrcsDetailVOList);
} }
@ -295,18 +326,11 @@ public class FndthPrcsAplctPrdMngController {
} }
//로그인 처리==================================== //로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEPrcsAplctPrdService.insert(vEPrcsDetailVO); vEPrcsAplctPrdService.insert(vEPrcsDetailVO);
@ -316,6 +340,50 @@ public class FndthPrcsAplctPrdMngController {
} }
/**
* 기반강화연수과정 신청기간 등록
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctSelectDivAndCnAjax.do")
public ModelAndView fndthEduPrcsAplctSelectDivAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsService.selectDetail(vEPrcsDetailVO);
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
codeVO.setCodeId("VEA001");//기관구분코드
codeVO.setCode(vEPrcsDetailVODetail.getPrcsDiv());
modelAndView.addObject("result", "success");
modelAndView.addObject("prcsDiv", cmmUseDAO.selectCmmCodeDetailValue(codeVO)
.getCodeNm());
modelAndView.addObject("prcsCn", vEPrcsDetailVODetail.getPrcsCn());
return modelAndView;
}
/** /**
* 기반강화연수과정 기간 상세화면 * 기반강화연수과정 기간 상세화면
*/ */
@ -386,6 +454,15 @@ public class FndthPrcsAplctPrdMngController {
model.addAttribute("listPrcsAplct", vEPrcsDetailVOList); model.addAttribute("listPrcsAplct", vEPrcsDetailVOList);
} }
// 강사 배치 정보
{
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
List<VEAPrcsAplctPrdInstrAsgnmVO> instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList);
model.addAttribute("instrAsgnmList", instrAsgnmList);
}
return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail"; return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail";
} }
@ -479,6 +556,7 @@ public class FndthPrcsAplctPrdMngController {
//String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID //String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID
//vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); //vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd);
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//vEPrcsDetailVO.setUseYn("Y"); //vEPrcsDetailVO.setUseYn("Y");
vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
@ -491,6 +569,134 @@ public class FndthPrcsAplctPrdMngController {
} }
/**
* 1.기반강화 강사배치 팝업 function
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup.do")
public String fndthInstrAsgnmPopup(
// @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
System.out.println("vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd());
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//3. SelectPagingListQuery set 조건 설정
String selectCondition = new String();
//3.1 제출 완료 사용중인 데이터 조회
selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'";
//3.2 강사 테이블 성인강사여부 Y인것만 조회
selectCondition += "AND (b.adult_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') ";
//3.3 이름 검색
if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
//이름 암호화 - comDefaultVO 검색단어 공통 암호화
ComDefaultVO comDefaultVO = new ComDefaultVO();
comDefaultVO.setSearchKeyword(vEPrcsDetailVO.getSearchKeyword());
comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
vEPrcsDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
vEPrcsDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
}
//3.4 요청일 시작일 검색
// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchStartDt())){
// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEPrcsDetailVO.getSearchStartDt()+"', '.', '')";
// }
//3.5 요청일 종료일 검색
// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchEndDt())){
// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEPrcsDetailVO.getSearchEndDt()+"', '.', '')";
// }
vEPrcsDetailVO.setInstrDiv("20");
vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
List<VEInstrDetailVO> vEInstrDetailVOList = vEPrcsAplctPrdService.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO);
try {
vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
//4.pageing step3
paginationInfo = this.setInstrPagingStep3(vEInstrDetailVOList, paginationInfo);
System.out.println(" ==== vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd());
model.addAttribute("vEPrcsDetailVO", vEPrcsDetailVO);
model.addAttribute("paginationInfo", paginationInfo);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEInstrDetailVOList);
return "/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup";
}
/**
* 강사배정 등록 처리
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthInstrAsgnmAjax.do")
public ModelAndView instrAsgnmAjaxinstrAsgnmAjax(
@ModelAttribute("vEAPrcsAplctPrdInstrAsgnmVO") VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO
, ModelMap model
//, RedirectAttributes redirectAttributes
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
try {
//선택한 강사 데이터 등록 처리
vEAPrcsAplctPrdInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEAPrcsAplctPrdInstrAsgnmService.instrInsert(vEAPrcsAplctPrdInstrAsgnmVO);
} catch (Exception ex) {
ex.printStackTrace();
}
modelAndView.addObject("result", "success");
return modelAndView;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //
@ -511,7 +717,6 @@ public class FndthPrcsAplctPrdMngController {
return paginationInfo; return paginationInfo;
} }
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화 //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEPrcsDetailVO setPagingStep2( private VEPrcsDetailVO setPagingStep2(
VEPrcsDetailVO p_vEPrcsDetailVO VEPrcsDetailVO p_vEPrcsDetailVO
@ -544,4 +749,21 @@ public class FndthPrcsAplctPrdMngController {
return p_paginationInfo; return p_paginationInfo;
} }
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setInstrPagingStep3(
List<VEInstrDetailVO> p_vEInstrDetailVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
return p_paginationInfo;
}
} }

View File

@ -2874,4 +2874,21 @@
<property name="cipers" value="11" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) --> <property name="cipers" value="11" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" /> <property name="fillChar" value="0" />
</bean> </bean>
<!-- 6.과정 prcs_ -->
<bean name="trgtOrdService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="trgtOrdStrategy" /><!-- strategy 값 수정 -->
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="PRCS_ORD"/><!-- tableName 값 수정 -->
</bean>
<!-- 과정 ID Generation Strategy Config -->
<bean name="trgtOrdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="trgt_" /><!-- prefix 값 수정 -->
<property name="cipers" value="15" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
</beans> </beans>

View File

@ -32,6 +32,7 @@
<!-- 과정 --> <!-- 과정 -->
<sqlMap resource="egovframework/sqlmap/ve/prcs/VEAPrcsAplctPrdInstrAsgnm_SQL_Cubrid.xml"/><!-- 기반강화 강사관련 -->
<sqlMap resource="egovframework/sqlmap/ve/prcs/VEPrcs_SQL_Cubrid.xml"/><!-- 과정 --> <sqlMap resource="egovframework/sqlmap/ve/prcs/VEPrcs_SQL_Cubrid.xml"/><!-- 과정 -->
<sqlMap resource="egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Cubrid.xml"/><!-- 과정신청기간 --> <sqlMap resource="egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Cubrid.xml"/><!-- 과정신청기간 -->
<sqlMap resource="egovframework/sqlmap/ve/prcs/VEPrcsOnlnCntnt_SQL_Cubrid.xml"/><!-- 과정온라인콘텐츠 --> <sqlMap resource="egovframework/sqlmap/ve/prcs/VEPrcsOnlnCntnt_SQL_Cubrid.xml"/><!-- 과정온라인콘텐츠 -->
@ -111,4 +112,10 @@
<!-- 강의 NOTI 관리 --> <!-- 강의 NOTI 관리 -->
<sqlMap resource="egovframework/sqlmap/ve/asgnm/VEAsgnm_NOTI_SQL_Cubrid.xml"/> <sqlMap resource="egovframework/sqlmap/ve/asgnm/VEAsgnm_NOTI_SQL_Cubrid.xml"/>
<!-- 강의 NOTI 관리 -->
<sqlMap resource="egovframework/sqlmap/ve/cndtn/cndtnTrgtInfoMng_SQL_Cubrid.xml"/>
</sqlMapConfig> </sqlMapConfig>

View File

@ -0,0 +1,100 @@
<?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="CndtnTrgtInfoMng">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="CndtnPrcsInfoMngVO" type="kcc.ve.oprtn.cndtnSspnIdtmt.service.CndtnPrcsInfoMngVO"/>
<!-- 공통 테이블 명 -->
<sql id="CndtnTrgtInfoMngDAO.table_name">
vea_sspn_idmt_trgt
</sql>
<!-- 저장용 공통 컬럼 명 -->
<sql id="CndtnTrgtInfoMngDAO.column_name">
sspn_idtmt_trgt_ord
, user_id
, trgt_state_cd
, frst_regist_pnttm
, frst_register_id
, last_updt_pnttm
, last_updusr_id
, trgt_nm
, clphone
, d_birth
, addr
, addr_detail
, email
</sql>
<!-- 조회용 공통 컬럼 명 -->
<sql id="CndtnTrgtInfoMngDAO.select_column_name">
a.sspn_idtmt_trgt_ord AS sspnIdtmtTrgtOrd
, a.user_id AS userId
, a.trgt_state_cd AS trgtStateCd
, a.frst_regist_pnttm AS frstRegistPnttm
, a.frst_register_id AS frstRegisterId
, a.last_updt_pnttm AS lastUpdtPnttm
, a.last_updusr_id AS lastUpdusrId
, a.trgt_nm AS trgtNm
, a.clphone AS clphone
, a.d_birth AS dBirth
, a.addr AS addr
, a.addr_detail AS addrDetail
, a.email AS email
</sql>
<!-- 기소유예 대상자 R -->
<select id="cndtnTrgtInfoMngDAO.selectPagingList" parameterClass="CndtnPrcsInfoMngVO" resultClass="CndtnPrcsInfoMngVO">
SELECT
<include refid="CndtnTrgtInfoMngDAO.select_column_name"/>
FROM
<include refid="CndtnTrgtInfoMngDAO.table_name"/> a
WHERE
1=1
<isNotEmpty property="searchQuery">
$searchQuery$
</isNotEmpty>
<isNotEmpty property="searchSmbtStartDt">
AND TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
</isNotEmpty>
<isNotEmpty property="searchSmbtEndDt">
AND TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<!-- 강사 등록 C -->
<insert id="cndtnTrgtInfoMngDAO.insert" parameterClass="CndtnPrcsInfoMngVO">
INSERT INTO <include refid="CndtnTrgtInfoMngDAO.table_name"/> (
<include refid="CndtnTrgtInfoMngDAO.column_name"/>
)VALUES(
#sspnIdtmtTrgtOrd#
,#userId#
,#trgtStateCd#
,now()
,#frstRegisterId#
,#lastUpdtPnttm#
,#lastUpdusrId#
,#trgtNm#
,#clphone#
,#dBirth#
,#addr#
,#addrDetail#
,#email#
)
</insert>
</sqlMap>

View File

@ -0,0 +1,91 @@
<?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"/>
<!-- 공통 테이블 명 -->
<sql id="VEAPrcsAplctPrdInstrAsgnmDAO.table_name">
vea_prcs_aplct_prd_instr_asgnm a
</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#
, NOW()
, #asgnmAprvlId#
, #rmrks#
, NOW()
, #frstRegisterId#
, NOW()
, #lastUpdusrId#
)
</insert>
<!-- 강사 배정 등록 -->
<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"/>
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

@ -4,6 +4,7 @@
<sqlMap namespace="VEPrcsAplctPrd"> <sqlMap namespace="VEPrcsAplctPrd">
<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/> <typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/> <typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
<typeAlias alias="VEInstrDetailVO" type="kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO"/>
<!-- 공통 테이블 명 --> <!-- 공통 테이블 명 -->
@ -37,6 +38,7 @@
,ddln_cd ,ddln_cd
,edu_strt_pnttm ,edu_strt_pnttm
,edu_ddln_pnttm ,edu_ddln_pnttm
,edu_place
</sql> </sql>
<!-- 조회용 공통 컬럼 명 --> <!-- 조회용 공통 컬럼 명 -->
@ -62,7 +64,7 @@
,a.dead_line_dt AS deadLineDt ,a.dead_line_dt AS deadLineDt
,a.prcs_ord AS prcsOrd ,a.prcs_ord AS prcsOrd
,a.edu_part_cd AS eduPartCd ,a.edu_part_cd AS eduPartCd
,a.nos AS nos ,NVL(a.nos, 0) AS nos
,a.ddln_cd AS ddlnCd ,a.ddln_cd AS ddlnCd
,a.edu_strt_pnttm AS eduStrtPnttm ,a.edu_strt_pnttm AS eduStrtPnttm
,a.edu_ddln_pnttm AS eduDdlnPnttm ,a.edu_ddln_pnttm AS eduDdlnPnttm
@ -100,6 +102,7 @@
,#ddlnCd# ,#ddlnCd#
,#eduStrtPnttm# ,#eduStrtPnttm#
,#eduDdlnPnttm# ,#eduDdlnPnttm#
,#eduPlace#
) )
</insert> </insert>
@ -169,6 +172,9 @@
<isNotEmpty property="eduDdlnPnttm"> <isNotEmpty property="eduDdlnPnttm">
, edu_ddln_pnttm = #eduDdlnPnttm# , edu_ddln_pnttm = #eduDdlnPnttm#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="eduPlace">
, edu_place = #eduPlace#
</isNotEmpty>
WHERE WHERE
prcs_aplct_prd_ord = #prcsAplctPrdOrd# prcs_aplct_prd_ord = #prcsAplctPrdOrd#
@ -281,6 +287,7 @@
, (SELECT user_nm FROM comvnusermaster WHERE esntl_id = a.frst_register_id) as frstRegisterNm , (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 , (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_nm as prcsNm
,b.prcs_div as prcsDiv
, (SELECT COUNT(*) , (SELECT COUNT(*)
FROM ve_edu_aplct x FROM ve_edu_aplct x
@ -300,6 +307,10 @@
AND a.prcs_ord=b.prcs_ord AND a.prcs_ord=b.prcs_ord
<isNotEmpty property="searchStatus">
AND b.prcs_div = #searchStatus#
</isNotEmpty>
<isNotEmpty property="selectPagingListQuery"> <isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$ $selectPagingListQuery$
</isNotEmpty> </isNotEmpty>
@ -318,6 +329,16 @@
<isNotEmpty property="searchSmbtStartDt">
/*등록일시*/
AND replace(to_char(a.strt_pnttm, 'YYYYMMDD'), '.' , '') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
</isNotEmpty>
<isNotEmpty property="searchSmbtEndDt">
/*등록일시*/
AND replace(to_char(a.strt_pnttm, 'YYYYMMDD'), '.' , '') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
</isNotEmpty>
ORDER BY 1=1 ORDER BY 1=1
<isEmpty property="orderByQuery"> <isEmpty property="orderByQuery">
@ -366,6 +387,99 @@
LIMIT 1 LIMIT 1
</select> </select>
<select id="VEPrcsAplctPrdDAO.selectinstrAsgnmPopupPagingList" parameterClass="VEPrcsDetailVO" resultClass="VEInstrDetailVO">
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,
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,
DATE_FORMAT(a.aprvl_pnttm,'%Y-%m-%d') AS aprvlPnttm,
a.aprvl_id AS aprvlId,
a.aprvl_cn AS aprvlCn,
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId,
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
a.last_updusr_id AS lastUpdusrId,
<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 1=1
, a.sbmt_pnttm DESC
<isEmpty property="orderByQuery">
, b.user_id desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
LIMIT #recordCountPerPage# OFFSET #firstIndex#
</select>
<!-- 강사 정보 R --> <!-- 강사 정보 R -->
<select id="VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO"> <select id="VEPrcsAplctPrdDAO.selectDetailNewOne4Fndth" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
SELECT COUNT(1) OVER() AS totCnt , SELECT COUNT(1) OVER() AS totCnt ,
@ -394,11 +508,13 @@
AS atchFileNm AS atchFileNm
, b.prcs_nm as prcsNm , b.prcs_nm as prcsNm
, b.prcs_div as prcsDiv
, a.edu_place as eduPlace
,a.dead_line_dt AS deadLineDt ,a.dead_line_dt AS deadLineDt
,a.prcs_ord AS prcsOrd ,a.prcs_ord AS prcsOrd
,a.edu_part_cd AS eduPartCd ,a.edu_part_cd AS eduPartCd
,a.nos AS nos ,NVL(a.nos, 0) AS nos
,a.ddln_cd AS ddlnCd ,a.ddln_cd AS ddlnCd
,a.edu_strt_pnttm AS eduStrtPnttm ,a.edu_strt_pnttm AS eduStrtPnttm
,a.edu_ddln_pnttm AS eduDdlnPnttm ,a.edu_ddln_pnttm AS eduDdlnPnttm

View File

@ -35,6 +35,7 @@
<!-- <pattern>*/kccadr/oprtn/adultVisitEdu/popup/*</pattern> 성인교육 팝업 --> <!-- <pattern>*/kccadr/oprtn/adultVisitEdu/popup/*</pattern> 성인교육 팝업 -->
<pattern>*/oprtn/tngrVisitEdu/popup/**</pattern> <pattern>*/oprtn/tngrVisitEdu/popup/**</pattern>
<pattern>*/oprtn/adultVisitEdu/popup/**</pattern> <pattern>*/oprtn/adultVisitEdu/popup/**</pattern>
<pattern>*/oprtn/fndthEnhanceTrn/popup/**</pattern>
<pattern>*/oprtn/instr/tngrVisitEdu/popup/**</pattern> <pattern>*/oprtn/instr/tngrVisitEdu/popup/**</pattern>
<pattern>*/oprtn/cmm/scholPopListBower.jsp</pattern> <!-- 청소년찾아가는저작권 교육 > 교육신청관리 > 교육신청 등록 > 학교검색 팝업 --> <pattern>*/oprtn/cmm/scholPopListBower.jsp</pattern> <!-- 청소년찾아가는저작권 교육 > 교육신청관리 > 교육신청 등록 > 학교검색 팝업 -->
<pattern>*/oprtn/cmm/SchduleManagerPopDetail.jsp</pattern> <!-- 청소년찾아가는저작권 교육 > 교육일정관리 > 교육내용 팝업 --> <pattern>*/oprtn/cmm/SchduleManagerPopDetail.jsp</pattern> <!-- 청소년찾아가는저작권 교육 > 교육일정관리 > 교육내용 팝업 -->

View File

@ -563,7 +563,11 @@ function fn_save_menuInfo(menuNo) {
<div class="menu_list" id="kopost_organization" class="jstree_orgChart"></div> <div class="menu_list" id="kopost_organization" class="jstree_orgChart"></div>
</div> </div>
<div class="menu_detail"> <div class="menu_detail">
<p class="menu_detail_tit">매뉴 추가등록 상세</p> <p class="menu_detail_tit">
매뉴 추가등록 상세
<button type="button" class="main1_save_btn btnType02" onclick="fn_save_menuInfo(); return false;" style="float: right; height: 33px;">저장</button>
</p>
<table class="tbType02"> <table class="tbType02">
<colgroup> <colgroup>
<col style="width: 215px;"> <col style="width: 215px;">
@ -616,9 +620,6 @@ function fn_save_menuInfo(menuNo) {
<div class="area_left"> <div class="area_left">
<button type="button" class="main1_delete_btn btnType03" onClick="fn_delete_menuInfo(); return false;">삭제</button> <button type="button" class="main1_delete_btn btnType03" onClick="fn_delete_menuInfo(); return false;">삭제</button>
</div> </div>
<div class="area_right">
<button type="button" class="main1_save_btn btnType02" onClick="fn_save_menuInfo(); return false;">저장</button>
</div>
</div> </div>
<!-- //btn_wrap --> <!-- //btn_wrap -->
</div> </div>

View File

@ -36,6 +36,48 @@
</style> </style>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){
searchInit();
// 검색 select box
$('#searchStatus').change(function(){
$('#searchKeyword').val('');
$('#searchSmbtStartDt').val('');
$('#searchSmbtEndDt').val('');
if($(this).val() == 'frstRegistPnttm'){
$('#searchKeyword').hide();
$('#calendar').show();
}
if($(this).val() == 'trgt_nm'){
$('#searchKeyword').attr('placeholder', '이름을 입력해 주세요.');
$('#calendar').hide();
$('#searchKeyword').show();
}
if($(this).val() == 'd_birth'){
$('#searchKeyword').attr('placeholder', '생년월일을 입력해 주세요.');
$('#calendar').hide();
$('#searchKeyword').show();
}
});
});
function searchInit(){
if($('#searchKeyword').val()){
$('#searchKeyword').hide();
}else{
$('#calendar').hide();
}
}
function fncGoList(){ function fncGoList(){
linkPage(1); linkPage(1);
} }
@ -169,40 +211,42 @@
<p>교육 과정 관리</p> <p>교육 과정 관리</p>
</div> </div>
<!-- list_top --> <!-- list_top -->
<div class="list_top"> <div class="list_top search-only">
<div class="list_top_1"> <div class="list_top_1">
<div class="util_left">
<p>이름</p>
</div>
<div class="util_right"> <div class="util_right">
<kc:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${vEPrcsDetailVO.prcsDiv}"/> <select name="searchStatus" id="searchStatus" class="sel_type1">
<option value="trgt_nm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'trgt_nm' }">selected="selected"</c:if>>이름</option>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '01')}">checked="checked"</c:if>> <option value="d_birth" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'd_birth' }">selected="selected"</c:if>>생년월일</option>
<label class="" for="prcsKind01">신규</label> <option value="frstRegistPnttm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'frstRegistPnttm' }">selected="selected"</c:if>>기간별</option>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
<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>
</div>
</div>
</div>
<!-- //list_top -->
<!-- list_top -->
<!-- list util -->
<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">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEEduAplctVO.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> </select>
</div> --%>
<div id="calendar">
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="시작일" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${cndtnTrgtInfoMngVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="종료일" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${cndtnTrgtInfoMngVO.searchSmbtEndDt}">
</div>
</div>
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="이름을 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeyword}'/>">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '10' or cndtnTrgtInfoMngVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div> </div>
<!-- //list_top --> <!-- //list_top -->
@ -210,52 +254,36 @@
<div class="tb_type01"> <div class="tb_type01">
<table> <table>
<colgroup> <colgroup>
<col style="width: 10%">
<col style="width: 10%">
<col style="width: auto">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: 10%"> <col style="width: 10%">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th>구분</th> <th>성명</th>
<th>구분</th> <th>생년월일</th>
<th>과정명</th> <th>등록일</th>
<th>표시순서</th>
<th>차시수</th>
<th>삭제</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="list" items="${list}" varStatus="status"> <c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount"> <tr class="listCount">
<td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;"> <%-- <td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;"> --%>
<kc:code codeId="VE0015" code="${list.prcsDiv}"/> <%-- <c:out value='${list.prcsNm}'/> --%>
</td> <!-- </td> -->
<td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;"> <td>
<c:if test="${fn:contains(list.prcsKind, '01')}">신규</c:if> <c:out value="${list.trgtNm }" />
<c:if test="${fn:contains(list.prcsKind, '02')}">갱신</c:if>
<c:if test="${fn:contains(list.prcsKind, '03')}">의무</c:if>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;">
<c:out value='${list.prcsNm}'/>
</td> </td>
<td> <td>
<input type="text" id="prcsSortNo${status.count}" name="prcsSortNo${status.count}" value="<c:out value='${list.prcsSortNo}'/>" style="width:50px;" maxLength="3"/> <c:out value="${list.dBirth }" />
&nbsp; <button type="button" class="btn_type01" onclick="fncSaveSort('<c:out value="${list.prcsOrd}"/>', '<c:out value="${status.count}"/>'); return false;">저장</button>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsOrd}"/>');" style="cursor:pointer;">
<c:out value='${list.cnt}'/>
</td> </td>
<td> <td>
<button class="btnType02" onclick="fncDelete('<c:out value='${list.prcsOrd}'/>'); return false;" >삭제</button> <fmt:formatDate value="${list.frstRegistPnttm}" pattern="yyyy-MM-dd" />
</td> </td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty list}"> <c:if test="${empty list}">
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr> <tr><td colspan="3"><spring:message code="common.nodata.msg" /></td></tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>

View File

@ -138,6 +138,7 @@
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post"> <form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form> </form:form>
<form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post"> <form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post">
<input type="hidden" name="trgtStateCd" value="20">
<!-- cont --> <!-- cont -->
<div class="cont_wrap"> <div class="cont_wrap">
<div class="box"> <div class="box">
@ -172,47 +173,38 @@
<tbody> <tbody>
<tr> <tr>
<th scope="row">구분</th> <th scope="row">성명</th>
<td> <td>
<ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> <input type="text" name="trgtNm" />
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">종류</th> <th scope="row">연락처(핸드폰)</th>
<td> <td>
<input type="text" name="clphone" />
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(info.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" <c:if test="${fn:contains(info.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" <c:if test="${fn:contains(info.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">과정명</th> <th scope="row">생년월일</th>
<td> <td>
<input type="text" placeholder="과정명을 입력해주세요." name="prcsNm" id="prcsNm" value="<c:out value='${info.prcsNm}'/>" style="width: 56%;"> <input type="text" name="dBirth" />
<button type="button" class="btn_type06" onclick="addPro(); return false;">세부과정 추가</button>
</td> </td>
</tr> </tr>
<tr> <tr class="input_adress">
<th scope="row">세부과정</th> <th scope="row">
<td class="addPro_wrap"> <p>주소</p>
<div class="tbody_one"> </th>
<span><span class="span_num3">1</span>.</span> <td colspan="3">
<div> <label for="post" class="label">우편번호 입력</label>
<input type="text" name="detailPrcsNm" id="detailPrcsNm" value="${info.detailPrcsNm}"> <input type="text" size="20" name="post" id="post" class="adr_input" style="background-color: #eee;" value="<c:out value='${info.post}'/>" readonly>
<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button> <button class="btnType01 btn_adr_search" onclick="fn_postCode(this); return false;">우편번호 검색</button>
<div class="detail_address">
<label for="addr" class="label">주소 입력</label>
<input type="text" size="60" name="addr" id="addr" class="searchResultAddr" value="<c:out value='${info.addr}'/>" readonly>
<label for="addrDetail" class="label">나머지 주소 입력</label>
<input type="text" size="20" name="addrDetail" id="addrDetail" class="usrInsertAddr" value="<c:out value='${info.addrDetail}'/>" maxLength="100" placeholder="나머지 주소">
</div> </div>
</div>
</td>
</tr>
<tr>
<th scope="row">표시순서</th>
<td class="addPro_wrap">
<input type="text" name="prcsSortNo" id="prcsSortNo" value="${info.prcsSortNo}" style="width:50px;" maxLength="3">
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -0,0 +1,158 @@
<!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 : cndtnEduPrcsMngDetail.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">
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
function fncMdfy(){
var detailForm = document.detailForm ;
detailForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfy.do'/>";
detailForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">구분</th>
<td>
<ve:code codeId="VE0015" code="${info.prcsDiv}"/>
</td>
</tr>
<tr>
<th scope="row">종류</th>
<td>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" disabled="disabled"; <c:if test="${fn:contains(info.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
<%-- 1<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" warp="span" css="disabled"/>2
<br/>
3<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" warp="span"/>4
<br/>
5<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}" css="disabled"/>6
<br/>
7<ve:checkbox codeId="VE0033" id="prcsKind" name="prcsKind" selectedJoinValue="${info.prcsKind}"/>8 --%>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<c:out value='${info.prcsNm}' />
</td>
</tr>
<tr>
<th scope="row">세부과정</th>
<td class="addPro_wrap">
<c:forEach var="list" items="${vEPrcsCntntList}" varStatus="status">
<div class="tbody_one">
<span><span class="span_num3">${status.count}</span>.</span>
<div>
<c:out value='${list.detailPrcsNm}' />
</div>
</div>
</c:forEach>
</td>
</tr>
<tr>
<th scope="row">표시순서</th>
<td>
<c:out value='${info.prcsSortNo}' />
</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>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,319 @@
<!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" %>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : cndtnEduPrcsMngList.jsp
* @Description : 조건부 기소유예 과정관리 목록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
searchInit();
// 검색 select box
$('#searchStatus').change(function(){
$('#searchKeyword').val('');
$('#searchSmbtStartDt').val('');
$('#searchSmbtEndDt').val('');
if($(this).val() == 'frstRegistPnttm'){
$('#searchKeyword').hide();
$('#calendar').show();
}
if($(this).val() == 'trgt_nm'){
$('#searchKeyword').attr('placeholder', '이름을 입력해 주세요.');
$('#calendar').hide();
$('#searchKeyword').show();
}
if($(this).val() == 'd_birth'){
$('#searchKeyword').attr('placeholder', '생년월일을 입력해 주세요.');
$('#calendar').hide();
$('#searchKeyword').show();
}
});
});
function searchInit(){
var selecedTxt = $('#searchStatus option:checked').val();
console.log('selecedTxt : ', selecedTxt);
if(selecedTxt == 'trgt_nm' || selecedTxt == 'd_birth'){
$('#calendar').hide();
}else{
$('#searchKeyword').hide();
}
}
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtList.do'/>";
listForm.submit();
}
function fncGoDetail(prcsOrd){
var listForm = document.listForm ;
listForm.prcsOrd.value = prcsOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDetail.do'/>";
listForm.submit();
}
function fncCreate() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/trgtReg.do'/>";
listForm.submit();
}
function fncDelete(prcsOrd){
document.listForm.prcsOrd.value = prcsOrd ;
var pageIndex = document.listForm.pageIndex.value;
if($(".listCount").length == '1'){
pageIndex = pageIndex -1;
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
function fncSaveSort(prcsOrd, count){
var sortNo = $('#prcsSortNo'+count).val();
if(sortNo == ''){
alert("표시순서를 입력해 주세요.");
return false;
}
$('#prcsOrd').val(prcsOrd);
$('#prcsSortNo').val(sortNo);
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsSortUpdateAjax.do'/>";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
<title>교육과정관리</title>
</head>
<body>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>과정관리목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">과정관리목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="tb_tit01">
<p>교육 과정 관리</p>
</div>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<div class="util_right">
<select name="searchStatus" id="searchStatus" class="sel_type1">
<option value="trgt_nm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'trgt_nm' }">selected="selected"</c:if>>이름</option>
<option value="d_birth" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'd_birth' }">selected="selected"</c:if>>생년월일</option>
<option value="frstRegistPnttm" <c:if test="${cndtnTrgtInfoMngVO.searchStatus == 'frstRegistPnttm' }">selected="selected"</c:if>>기간별</option>
</select>
<div id="calendar">
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="시작일" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${cndtnTrgtInfoMngVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" placeholder="종료일" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${cndtnTrgtInfoMngVO.searchSmbtEndDt}">
</div>
</div>
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="이름을 입력해주세요." title="검색어 입력" class="search_input" value="<c:out value='${cndtnTrgtInfoMngVO.searchKeyword}'/>">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<!-- <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> -->
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '10' or cndtnTrgtInfoMngVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${cndtnTrgtInfoMngVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<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.prcsOrd}"/>');" style="cursor:pointer;"> --%>
<%-- <c:out value='${list.prcsNm}'/> --%>
<!-- </td> -->
<td>
<c:out value="${list.trgtNm }" />
</td>
<td>
<c:out value="${list.dBirth }" />
</td>
<td>
<fmt:formatDate value="${list.frstRegistPnttm}" pattern="yyyy-MM-dd" />
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="3"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<%-- <div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div> --%>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
</div>
</div>
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -0,0 +1,242 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngMdfy.jsp
* @Description : 조건부기소유예 수정
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngMdfyAjax.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(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsOrd" value="<c:out value='${vEPrcsDetailVO.prcsOrd}' default='1' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">구분</th>
<td>
<ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}" defaultValue='10'/>
</td>
</tr>
<tr>
<th scope="row">종류</th>
<td>
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(info.prcsKind, '01')}">checked="checked"</c:if>>
<label class="" for="prcsKind01">신규</label>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" <c:if test="${fn:contains(info.prcsKind, '02')}">checked="checked"</c:if>>
<label class="" for="prcsKind012">갱신</label>
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" <c:if test="${fn:contains(info.prcsKind, '03')}">checked="checked"</c:if>>
<label class="" for="prcsKind0123">의무</label>
</td>
</tr>
<tr>
<th scope="row">과정명</th>
<td>
<input type="text" placeholder="과정명을 입력해주세요." name="prcsNm" id="prcsNm" value="<c:out value='${info.prcsNm}'/>" style="width: 56%;">
<button type="button" class="btn_type06" onclick="addPro(); return false;">세부과정 추가</button>
</td>
</tr>
<tr>
<th scope="row">세부과정</th>
<td class="addPro_wrap">
<c:forEach var="list" items="${vEPrcsCntntList}" varStatus="status">
<div class="tbody_one">
<span><span class="span_num3">${status.count}</span>.</span>
<div>
<input type="text" name="detailPrcsNm" id="detailPrcsNm" value="${list.detailPrcsNm}">
<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>
</div>
</div>
</c:forEach>
</td>
</tr>
<tr>
<th scope="row">표시순서</th>
<td>
<input type="text" name="prcsSortNo" id="prcsSortNo" value="<c:out value='${info.prcsSortNo}'/>" style="width: 50px;" maxLength="3">
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,231 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : cndtnEduPrcsMngReg.jsp
* @Description : 조건부기소유예 과정 등록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
//세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() {
var addQuest = $(".addPro_wrap");
var questLen = addQuest.children("div").length;
questLen = Number(questLen+1);
var trHtml="";
trHtml += '<div class="tbody_one">';
trHtml += '<span><span class="span_num3">'+ questLen +'</span>.</span>';
trHtml += '<div>';
trHtml += '<input type="text" name="detailPrcsNm" id="detailPrcsNm"> ';
trHtml += '<button type="button" class="table_del3" onclick="delPro(this)"><img src="${pageContext.request.contextPath}/visitEdu/adm/publish/image/content/btn_del.png"></button>';
trHtml += '</div>';
trHtml += '</div>';
addQuest.append(trHtml);
}
//삭제 버튼 클릭 시 현재 div 삭제 후 지문 숫자 재선언
function delPro(item) {
var bodyThis = $(item).closest('.tbody_one');
var tb = $(item).closest('.addPro_wrap').find('.tbody_one');
var len = $(item).closest('.addPro_wrap').children('.tbody_one').length;
var idx = bodyThis.index();
if(len == 1){
alert("세부과정은 최소1개가 존재해야합니다.");
return false;
}else{
bodyThis.remove();
for(var i=0;i<len;i++){
if(idx>i){
tb.eq(i).find('.span_num3').text(i+1);
}else{
tb.eq(i).find('.span_num3').text(i);
}
}
}
}
function fncAddUser(){
var obj = $(".memList:first").clone(true);
obj.children('input').val('')
/*
var len = $(".memList").length;
$.each(obj.find("input"), function(idx, objInput){
objInput.name = objInput.name.replace(/\[.*\]/,'['+(len+1)+']');
console.log(objInput.name);
if(objInput.name.indexOf("memGrade") < 0){
objInput.value = '';
}
});
obj.find("button").attr("id", obj.find("button").attr("id").replace(/[0-9]/gi, len+2));
obj.find("tr:last > td").text("");
*/
$(".memList:last").after(obj);
}
function fncDelUser(obj){
if($(".memList").length <= 1){
alert("담당자은 최소1개가 존재해야합니다.");
}else{
$(obj).closest("td").remove();
}
}
function fncSave(){
var data = new FormData(document.getElementById("createForm"));
if(confirm("저장하시겠습니까?")){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/trgtRegAjax.do";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
listForm.submit();
}
</script>
</head>
<body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form>
<form:form id="createForm" name="createForm" commandName="adjustDeptManageVO" method="post">
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육 과정 등록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>교육콘텐츠</p>
</li>
<li><span class="cur_nav">교육 과정 관리</span></li>
<li><span class="cur_nav">교육 과정 등록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육과정관리</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">성명</th>
<td>
<input type="text" name="trgtNm" />
</td>
</tr>
<tr>
<th scope="row">연락처(핸드폰)</th>
<td>
<input type="text" name="clphone" />
</td>
</tr>
<tr>
<th scope="row">생년월일</th>
<td>
<input type="text" name="dBirth" />
</td>
</tr>
<tr class="input_adress">
<th scope="row">
<p>주소</p>
</th>
<td colspan="3">
<label for="post" class="label">우편번호 입력</label>
<input type="text" size="20" name="post" id="post" class="adr_input" style="background-color: #eee;" value="<c:out value='${info.post}'/>" readonly>
<button class="btnType01 btn_adr_search" onclick="fn_postCode(this); return false;">우편번호 검색</button>
<div class="detail_address">
<label for="addr" class="label">주소 입력</label>
<input type="text" size="60" name="addr" id="addr" class="searchResultAddr" value="<c:out value='${info.addr}'/>" readonly>
<label for="addrDetail" class="label">나머지 주소 입력</label>
<input type="text" size="20" name="addrDetail" id="addrDetail" class="usrInsertAddr" value="<c:out value='${info.addrDetail}'/>" maxLength="100" placeholder="나머지 주소">
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -31,24 +31,74 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){
// 상태값 확인
ddlnCdSttsChk();
});
function ddlnCdSttsChk(){
var $ddlnCdStts = $("#ddlnCdStts");
// 텍스트가 비어있는지 확인
if ($ddlnCdStts.text().trim() === "") {
var dateText = $ddlnCdStts.closest('table').find("td:eq(2)").text().trim();
var strtPnttm = new Date(dateText.split("~")[0].trim().replace(/\./g, '-'));
var endPnttm = new Date(dateText.split("~")[1].trim().replace(/\./g, '-'));
var currentDate = new Date();
if (currentDate < strtPnttm) {
$ddlnCdStts.text("접수전");
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
$ddlnCdStts.text("접수중");
} else if (currentDate > endPnttm) {
$ddlnCdStts.text("접수종료");
}
}
}
function fncGoList(){ function fncGoList(){
var listForm = document.listForm ; var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>"; listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>";
listForm.submit(); listForm.submit();
} }
function fncMdfy(){ function fncMdfy(){
var detailForm = document.detailForm ; var detailForm = document.detailForm ;
detailForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.do'/>"; detailForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.do'/>";
detailForm.submit(); detailForm.submit();
} }
// 강사 배치
function fncInstrAsgnmInfo(prcsAplctPrdOrd) {
var form = document.popForm;
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
form.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup.do'/>";
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
form.target = "_securityPop";
form.submit();
}
</script> </script>
</head> </head>
<body> <body>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post"> <form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
</form:form> </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"> <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" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' default='1' />"/>
<!-- cont --> <!-- cont -->
@ -83,6 +133,12 @@
<col style="width: auto;"> <col style="width: auto;">
</colgroup> </colgroup>
<tbody> <tbody>
<tr>
<th scope="row">교육부분</th>
<td>
<ve:code codeId="VEA001" code="${info.prcsDiv}"/>
</td>
</tr>
<tr> <tr>
<th scope="row">과정</th> <th scope="row">과정</th>
<td> <td>
@ -90,19 +146,18 @@
</td> </td>
</tr> </tr>
<tr>
<th scope="row">교육부분코드</th>
<td>
<ve:code codeId="VEA001" code="${info.eduPartCd}"/>
</td>
</tr>
<tr> <tr>
<th scope="row">신청기간</th> <th scope="row">신청기간</th>
<td> <td>
<c:out value="${info.strtPnttm}"/>~<c:out value="${info.endPnttm}"/> <c:out value="${info.strtPnttm}"/>~<c:out value="${info.endPnttm}"/>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">교육장소</th>
<td class="addPro_wrap">
<c:out value="${info.eduPlace}"/>
</td>
</tr>
<tr> <tr>
<th scope="row">교육기간</th> <th scope="row">교육기간</th>
<td> <td>
@ -118,11 +173,11 @@
</tr> </tr>
<tr> <tr>
<th scope="row">상태</th> <th scope="row">상태</th>
<td> <td id="ddlnCdStts">
<ve:code codeId="VE0034" code="${info.ddlnCd}"/> <ve:code codeId="VEA004" code="${info.ddlnCd}"/>
</td> </td>
</tr> </tr>
<tr> <%-- <tr>
<th scope="row"> <th scope="row">
<p>공개여부(사용여부)</p> <p>공개여부(사용여부)</p>
</th> </th>
@ -130,7 +185,7 @@
<c:if test="${empty info.useYn or info.useYn eq 'Y'}">예</c:if> <c:if test="${empty info.useYn or info.useYn eq 'Y'}">예</c:if>
<c:if test="${info.useYn eq 'N'}">아니오</c:if> <c:if test="${info.useYn eq 'N'}">아니오</c:if>
</td> </td>
</tr> </tr> --%>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -148,7 +203,69 @@
</div> </div>
</div> </div>
<!-- list_상세 --> <!--
강사 배치 정보
강사 배치 정보
-->
<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;"><!-- 신청상태 -->
</colgroup>
<thead>
<tr>
<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>
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="3">강사 배치 정보가 없습니다.</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"> <div class="tb_tit01">
<p>교육신청자</p> <p>교육신청자</p>
</div> </div>
@ -166,15 +283,20 @@
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th> <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>신청자<button class="sort sortBtn" id="sort_chrgNm">▲</button></th> <th>이수여부</th>
<th>제출일시<button class="sort sortBtn" id="sort_sbmtPnttm">▲</button></th>
-->
<th>신청상태</th> <th>신청상태</th>
<th>이수증</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:choose>
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
<!-- 템플릿만 맞춤. 값은 다름 20230906-->
<c:when test="${!empty listPrcsAplct}">
<c:forEach var="list" items="${listPrcsAplct}" varStatus="status"> <c:forEach var="list" items="${listPrcsAplct}" varStatus="status">
<tr> <tr>
<td> <td>
@ -193,8 +315,24 @@
<td> <td>
<ve:code codeId="VE0003" code="${list.aprvlCd}"/> <ve:code codeId="VE0003" code="${list.aprvlCd}"/>
</td> </td>
<td>
설문조사
</td>
<td>
출력
</td>
<td>
출력
</td>
</tr> </tr>
</c:forEach> </c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="8">신청자가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody> </tbody>
</table> </table>

View File

@ -9,6 +9,7 @@
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> <%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> <%@ 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="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" /> <un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<% <%
/** /**
@ -36,6 +37,37 @@
</style> </style>
<script type="text/javascript"> <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(){ function fncGoList(){
linkPage(1); linkPage(1);
} }
@ -167,33 +199,30 @@
<div class="cont"> <div class="cont">
<div class="tb_tit01"> <div class="tb_tit01">
<p>과정 신청기간 관리</p> <p>교육 과정 관리</p>
</div> </div>
<!-- list_top --> <!-- list_top -->
<div class="list_top"> <div class="list_top search-only">
<div class="list_top_1"> <div class="list_top_1">
<div class="util_left">
<p>이름</p>
</div>
<div class="util_right"> <div class="util_right">
<kc:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${vEPrcsDetailVO.prcsDiv}"
defaultValue="" <ve:select codeId="VEA001" name="searchStatus" id="searchStatus" css="class='sel_type1'"
selectedValue="${vEPrcsDetailVO.searchStatus }" defaultValue=""
defaultText="전체" defaultText="전체"
/> />
<div class="calendar_wrap">
<input type="checkbox" id="prcsKind01" name="prcsKind" value="01" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '01')}">checked="checked"</c:if>> <input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
<label class="" for="prcsKind01">신규</label> </div>
<input type="checkbox" id="prcsKind012" name="prcsKind" value="02" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '02')}">checked="checked"</c:if>> ~
<label class="" for="prcsKind012">갱신</label> <div class="calendar_wrap">
<input type="checkbox" id="prcsKind0123" name="prcsKind" value="03" <c:if test="${fn:contains(vEPrcsDetailVO.prcsKind, '03')}">checked="checked"</c:if>> <input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
<label class="" for="prcsKind0123">의무</label> </div>
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="과정명를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEPrcsDetailVO.searchKeyword}'/>">
<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 type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div> </div>
</div> </div>
</div> </div>
<div class="list_util"> <div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p> <p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div> <div>
@ -209,33 +238,19 @@
<!-- //list_top --> <!-- //list_top -->
<!-- list_top -->
<!-- list util -->
<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">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEEduAplctVO.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>
</div> --%>
</div>
<!-- //list_top -->
<!-- list --> <!-- list -->
<div class="tb_type01"> <div class="tb_type01">
<table> <table>
<colgroup> <colgroup>
<col style="width: 10%"> <col style="width: 5%">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: auto"> <col style="width: auto">
<col style="width: 180px;"> <col style="width: 180px;">
<col style="width: 180px;"> <col style="width: 180px;">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: 10%"> <col style="width: 10%">
<col style="width: 10%"> <%-- <col style="width: 10%"> --%>
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@ -246,7 +261,7 @@
<th>교육기간</th> <th>교육기간</th>
<th>신청자/정원</th> <th>신청자/정원</th>
<th>상태</th> <th>상태</th>
<th>공개여부</th> <!-- <th>공개여부</th> -->
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -255,32 +270,27 @@
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> <td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${status.count}"/> <c:out value="${status.count}"/>
</td> </td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> <td>
<kc:code codeId="VEA001" code="${list.eduPartCd}"/> <kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td> </td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> <td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>) <c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td> </td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> <td>
<c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/> <c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/>
</td> </td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> <td>
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
</td> </td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> <td>
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/> <c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
</td> </td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> <td class="ddlnCdStts">
<kc:code codeId="VE0034" code="${list.ddlnCd}"/> <kc:code codeId="VEA004" code="${list.ddlnCd}"/>
</td> </td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> <!-- <td> -->
<c:out value="${list.useYn}"/> <%-- <c:out value="${list.useYn}"/> --%>
</td> <!-- </td> -->
<!--
<td>
<button class="btnType02" onclick="fncDelete('<c:out value='${list.prcsOrd}'/>'); return false;" >삭제</button>
</td>
-->
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty list}"> <c:if test="${empty list}">

View File

@ -173,6 +173,12 @@
<tbody> <tbody>
<tr>
<th scope="row">교육부분</th>
<td>
<ve:select codeId="VEA001" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="${info.prcsDiv}"/>
</td>
</tr>
<tr> <tr>
<th scope="row">과정</th> <th scope="row">과정</th>
<td> <td>
@ -190,12 +196,6 @@
</td> </td>
</tr> </tr>
<tr>
<th scope="row">교육부분코드</th>
<td>
<ve:select codeId="VEA001" name="eduPartCd" id="eduPartCd" css="class='sel_type1'" selectedValue="${info.eduPartCd}"/>
</td>
</tr>
<tr> <tr>
<th scope="row">신청기간</th> <th scope="row">신청기간</th>
@ -210,6 +210,12 @@
</td> </td>
</tr> </tr>
<tr>
<th scope="row">교육장소</th>
<td class="addPro_wrap">
<input type="text" name="eduPlace" id="eduPlace" value="${info.eduPlace}" >
</td>
</tr>
<tr> <tr>
<th scope="row">교육기간</th> <th scope="row">교육기간</th>
<td> <td>
@ -232,7 +238,8 @@
</tr> </tr>
<tr> <tr>
<th scope="row">상태</th> <th scope="row">상태</th>
<td><ve:select codeId="VE0034" name="ddlnCd" id="ddlnCd" css="class='sel_type1'" selectedValue="${info.ddlnCd}"/> <td>
<ve:select codeId="VEA004" name="ddlnCd" id="ddlnCd" css="class='sel_type1'" selectedValue="${info.ddlnCd}" defaultValue="" defaultText="선택"/>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -259,7 +266,7 @@
<div class="btn_center"> <div class="btn_center">
</div> </div>
<div class="btn_right"> <div class="btn_right">
<button type="button" class="btn_type02" onclick="fncSave(); return false;">저장</button> <button type="button" class="btn_type02" onclick="fncSave(); return false;">수정</button>
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button> <button type="button" class="btn_type03" onclick="fncGoList(); return false;">취소</button>
</div> </div>
</div> </div>

View File

@ -7,6 +7,7 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> <%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<% <%
/** /**
@ -29,6 +30,14 @@
<title>교육과정관리</title> <title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){
$('#prcsOrd').change(function(){
fnSelectDivAndCn($(this).val());
});
});
//세부과정 추가 버튼 클릭 시 세부과정 추가 //세부과정 추가 버튼 클릭 시 세부과정 추가
function addPro() { function addPro() {
var addQuest = $(".addPro_wrap"); var addQuest = $(".addPro_wrap");
@ -125,6 +134,29 @@
} }
} }
// div codeNm 가져오는 function
function fnSelectDivAndCn(prcsOrdVal){
var url = "${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctSelectDivAndCnAjax.do";
$.ajax({
type:"POST",
url: url,
data:{ "prcsOrd" : prcsOrdVal},
dataType:'json',
async: false,
success:function(returnData){
if(returnData.result == "success"){
$('#prcsDiv').val(returnData.prcsDiv);
$('#prcsCn').val(returnData.prcsCn);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function fncGoList(){ function fncGoList(){
var listForm = document.listForm ; var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>"; listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do'/>";
@ -171,54 +203,64 @@
<tbody> <tbody>
<tr> <tr>
<th scope="row">과정</th> <th scope="row">교육부분코드</th>
<td>
<input type="text" name="prcsDiv" id="prcsDiv" readonly="readonly" value="${prcsDivNm }"/>
</td>
</tr>
<tr>
<th scope="row">교육과정</th>
<td> <td>
<%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%> <%-- <ve:select codeId="VE0015" name="prcsDiv" id="prcsDiv" css="class='sel_type1'" selectedValue="<c:out value='${info.prcsDiv}'/>" defaultValue='10'/> --%>
<select name="prcsOrd" id="prcsOrd" class="sel_type1"> <select name="prcsOrd" id="prcsOrd" class="sel_type1">
<c:forEach var="listPrcs" items="${listPrcs}" varStatus="status"> <c:forEach var="listPrcs" items="${listPrcs}" varStatus="status">
<option value='<c:out value="${listPrcs.prcsOrd}"/>'><c:out value="${listPrcs.prcsOrd}"/>_<c:out value="${listPrcs.prcsNm}"/></option> <option value='<c:out value="${listPrcs.prcsOrd}"/>'><c:out value="${listPrcs.prcsOrd}"/>_<c:out value="${listPrcs.prcsNm}"/></option>
</c:forEach> </c:forEach>
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">교육부분코드</th>
<td>
<ve:select codeId="VEA001" name="eduPartCd" id="eduPartCd" css="class='sel_type1'" />
</td>
</tr>
<tr>
<th scope="row">신청기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${vEEduAplctVO.strtPnttm}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${vEEduAplctVO.endPnttm}">
</div>
</td>
</tr>
<tr> <tr>
<th scope="row">교육기간</th> <th scope="row">교육기간</th>
<td> <td>
<div class="calendar_wrap"> <div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="eduStrtPnttm" name="eduStrtPnttm" value="${vEEduAplctVO.eduStrtPnttm}"> <input type="text" class="calendar" title="시작일 선택" id="eduStrtPnttm" name="eduStrtPnttm" value="${vEEduAplctVO.strtPnttm}">
</div> </div>
~ ~
<div class="calendar_wrap"> <div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="eduDdlnPnttm" name="eduDdlnPnttm" value="${vEEduAplctVO.eduDdlnPnttm}"> <input type="text" class="calendar" title="종료일 선택" id="eduDdlnPnttm" name="eduDdlnPnttm" value="${vEEduAplctVO.endPnttm}">
</div>
</td>
</tr>
<tr>
<th scope="row">교육장소</th>
<td class="addPro_wrap">
<input type="text" name="eduPlace" id="eduPlace" value="${vEEduAplctVO.eduPlace}" >
</td>
</tr>
<tr>
<th scope="row">신청기간</th>
<td>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="strtPnttm" name="strtPnttm" value="${vEEduAplctVO.eduStrtPnttm}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="endPnttm" name="endPnttm" value="${vEEduAplctVO.eduDdlnPnttm}">
</div> </div>
</td> </td>
</tr> </tr>
<tr>
<th scope="row">상세교육과정</th>
<td>
<textarea name="prcsCn" id="prcsCn" class="memo" disabled="disabled" class="inputLight" style="height: 200px;"><c:out value="${prcsCn }" /></textarea>
</td>
</tr>
<tr> <tr>
<th scope="row">정원</th> <th scope="row">정원</th>
<td class="addPro_wrap"> <td class="addPro_wrap">
@ -227,14 +269,10 @@
</tr> </tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<p>공개여부(사용여부)</p> <p>상태</p>
</th> </th>
<td> <td>
<input type="radio" name="useYn" id="useY" value="Y" ${empty vEEduAplctVO.useYn or vEEduAplctVO.useYn eq 'Y' ? 'checked' : vEEduAplctVO.useYn}> <kc:select codeId="VEA004" name="ddlnCd" id="ddlnCd" defaultText="전체" defaultValue="" css="class='sel_type1'" />
<label for="useY">예</label>
<input type="radio" name="useYn" id="useN" value="N" ${vEEduAplctVO.useYn eq 'N' ? 'checked' : vEEduAplctVO.useYn}>
<label for="useN">아니오</label>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -0,0 +1,548 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : instrAsgnmPopup.jsp
* @Description : 강사배치 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
});
function fncPopClose(){
self.close();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
if($('#searchEduSlctAreaCd option:selected').text() != '전체'){
listForm.rsdne.value = $('#searchEduSlctAreaCd option:selected').text();
}
listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/popup/instrAsgnmPopup.do'/>";
listForm.submit();
}
function reloadLinkPage(){
var listForm = document.listForm ;
//listForm.pageIndex.value = pageNo ;
listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/popup/instrAsgnmPopup.do'/>";
listForm.submit();
}
function fncInstrAsgnm(p_eduAplctOrd, p_eduChasiOrd, p_id) {
$("#eduAplctOrd").val(p_eduAplctOrd);
$("#eduChasiOrd").val(p_eduChasiOrd);
$("#userId").val(p_id);
var data1 = new FormData(document.getElementById("createForm"));
if(confirm("강사를 선택 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/adultVisitEdu/popup/instrAsgnmAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd"/>
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd"/>
<input type="hidden" name="instrDiv" id="instrDiv" value="20">
<input type="hidden" name="userId" id="userId" />
</form:form>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<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="eduAplctOrd" value="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" />
<input type="hidden" name="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />" />
<input type="hidden" name="rsdne" value="" />
<div class="area_popup">
<div class="cont_popup">
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>강사검색</p>
</div>
<ve:select codeId="VE0008" name="searchEduSlctAreaCd" id="searchEduSlctAreaCd" css="class='sel_type1'"
selectedText="${vEEduAplctVO.rsdne}" defaultValue=''
defaultText='전체'
/>
<div class="util_right">
<input type="text" id="instrNm" name="instrNm" class="search_input" placeholder="검색어를 입력하세요" value="${vEEduAplctVO.instrNm}">
<button type="button" class="btn_type08" onclick="linkPage(1); return false;">검색</button>
</div>
</div>
</div>
<div class="pop_tb_tit01">
<p>강사 목록</p>(*선호분야 일치여부, 적은 할당시수 순입니다.)
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 11%;">
<col style="width: 15%;">
<%-- <col style="width: 10%"> --%>
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: 15%;">
<%-- <col style="width: 9%;"> --%>
<col style="width: 9%;">
</colgroup>
<thead>
<tr>
<th scope="col">이름</th>
<th scope="col">거주<br>지역</th>
<!-- <th scope="col">이동<br>거리</th> -->
<th scope="col">선호분야</th>
<th scope="col">온라인</th>
<th scope="col">구분</th>
<!-- <th scope="col">Penalty 횟수</th> -->
<th scope="col">선택</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td><c:out value='${list.instrNm}'/></td>
<td><c:out value='${list.rsdne}'/></td>
<%-- <td><c:out value='${list.onewayDstnc}'/>Km</td> --%>
<td><ve:code codeId="VE0004" code="${list.prfrnFldCd}"/></td>
<td><c:out value='${list.onlnPsblYn}'/></td>
<td><ve:code codeId="VE0018" code="${list.divCd}"/></td>
<%-- <td>
<c:set var="pnltyCds" value="0" />
<c:forEach var="plist" items="${pnltyList}" varStatus="pStatus">
<c:if test="${list.userId eq plist.userId}">
<c:set var="pnltyCds" value="${pnltyCds + 1}" />
</c:if>
</c:forEach>
<c:choose>
<c:when test="${pnltyCds eq 0}">
-
</c:when>
<c:otherwise>
<c:out value="${pnltyCds}" />
</c:otherwise>
</c:choose>
</td> --%>
<td>
<c:if test='${empty list.chrgNm}'>
<button class="btn_type06"
onclick="fncInstrAsgnm('<c:out value="${list.eduAplctOrd}" />', '<c:out value="${list.eduChasiOrd}" />', '<c:out value="${list.userId}" />'); return false;">선택</button>
</c:if>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type04" onclick="self.close();">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
<script type="text/javascript">
//강사 주소지 변환 호출
function tmapAPIgetLat(
p_addr
, p_i1
, p_i2
, p_s1
, p_s2
, p_oneway
, p_call_back
, p_edu_aplct_ord
, p_user_id
, p_schol_addr
, p_instr_addr
) {
// 2. API 사용요청
var fullAddr = p_addr;
$.ajax({
method : "GET",
url : "https://apis.openapi.sk.com/tmap/geo/fullAddrGeo?version=1&format=json&callback=result",
async : false,
data : {
"appKey" : "l7xx4f6bae317c4b47ec945cc4be4945fbcf",
"coordType" : "WGS84GEO",
"fullAddr" : fullAddr
},
success : function(response) {
var resultInfo = response.coordinateInfo; // .coordinate[0];
console.log(resultInfo);
// 기존 마커 삭제
//marker1.setMap(null);
// 3.마커 찍기
// 검색 결과 정보가 없을 때 처리
if (resultInfo.coordinate.length == 0) {
$("#result").text(
"요청 데이터가 올바르지 않습니다.");
} else {
var lon, lat;
var resultCoordinate = resultInfo.coordinate[0];
if (resultCoordinate.lon.length > 0) {
// 구주소
lon = resultCoordinate.lon;
lat = resultCoordinate.lat;
} else {
// 신주소
lon = resultCoordinate.newLon;
lat = resultCoordinate.newLat
}
console.log(lon);
console.log(lat);
$("input[name="+p_i1+"]").attr('value',lon);
$("input[name="+p_i2+"]").attr('value',lat);
//alert($("input[name="+p_i1+"]").attr('value'));
//alert($("input[name="+p_i2+"]").attr('value'));
//모든 데이터가 준비 되었는지 확인 한다.
val_i1 = $("input[name="+p_i1+"]").attr('value');
val_i2 = $("input[name="+p_i2+"]").attr('value');
val_s1 = $("input[name="+p_s1+"]").attr('value');
val_s2 = $("input[name="+p_s2+"]").attr('value');
if (
val_i1!=''
&& val_i2!=''
&& val_s1!=''
&& val_s2!=''
){
tmapAPIcalcDstnc(
val_i1
, val_i2
, val_s1
, val_s2
, p_oneway
, p_call_back
, p_edu_aplct_ord
, p_user_id
, p_schol_addr
, p_instr_addr
);
}
}
},
error : function(request, status, error) {
console.log(request);
console.log("code:"+request.status + "\n message:" + request.responseText +"\n error:" + error);
// 에러가 발생하면 맵을 초기화함
// markerStartLayer.clearMarkers();
// 마커초기화
//map.setCenter(new Tmapv2.LatLng(37.570028, 126.986072));
//$("#result").html("");
}
});
}
function tmapAPIcalcDstnc(
p_i1
, p_i2
, p_s1
, p_s2
, p_oneway
, p_call_back
, p_edu_aplct_ord
, p_user_id
, p_schol_addr
, p_instr_addr
) {
//JSON TYPE EDIT [S]
$
.ajax({
type : "POST",
url : "https://apis.openapi.sk.com/tmap/routes?version=1&format=json&callback=result",
async : false,
data : {
"appKey" : "l7xx4f6bae317c4b47ec945cc4be4945fbcf",
"startX" : p_i1,
"startY" : p_i2,
"endX" : p_s1,
"endY" : p_s2,
"reqCoordType" : "WGS84GEO",
"resCoordType" : "EPSG3857",
"searchOption" : "0",
"trafficInfo" : "N"
},
success : function(response) {
var resultData = response.features;
//체크 수량 증가
i_chk_cnt = i_chk_cnt + 1;
var tDistance = (resultData[0].properties.totalDistance / 1000).toFixed(1);
//거리가 제대로 왔는지 확인 한다.
if (tDistance==tDistance*1){
//DB에 저장 callback
tmapAPIsaveInstrDstnc(
p_edu_aplct_ord
, p_user_id
, p_schol_addr
, p_instr_addr
, tDistance
, p_call_back
)
}else{
//DB에 저장 callback
tmapAPIsaveInstrDstnc(
p_edu_aplct_ord
, p_user_id
, p_schol_addr
, p_instr_addr
, "9999" //거리계산이 안된 경우는 9999를 넣는다.
, p_call_back
)
}
},
error : function(request, status, error) {
console.log("code:"
+ request.status + "\n"
+ "message:"
+ request.responseText
+ "\n" + "error:" + error);
}
});
//JSON TYPE EDIT [E]
}
function tmapAPIsaveInstrDstnc(
p_edu_aplct_ord
, p_user_id
, p_schol_addr
, p_instr_addr
, p_oneway_dstnc
, p_call_back
) {
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/instrDstncAjax.do",
data: {
"eduAplctOrd" : p_edu_aplct_ord
, "userId" : p_user_id
, "scholAddr" : p_schol_addr
, "instrAddr" : p_instr_addr
, "onewayDstnc" : p_oneway_dstnc
},
dataType:'json',
success:function(returnData){
//callback func
//모든 체크가 리턴되었는지 확인 한다.
if (i_chk_cnt*1==i_ret_cnt*1){
p_call_back();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
<!-- 1.강사 거리계산용 시작 -->
<c:set var="instr_cnt" value="0"/>
<!-- 2.강사 거리계산 필요한 수량 확인 -->
<c:forEach var="list" items="${list}" varStatus="status">
<c:if test="${list.onewayDstnc eq '' or empty list.onewayDstnc}">
<c:set var="instr_cnt" value="${instr_cnt+1}"/>
</c:if>
</c:forEach>
<c:if test="${instr_cnt gt 0}">
<script type="text/javascript">
//<!-- 3.수량체크를 위한 초기값 설정 -->
var i_ret_cnt = "${instr_cnt}"*1;
var i_chk_cnt = 0;
</script>
<!-- 4.없는 거리 데이터 호출 영역 시작 -->
<c:forEach var="list" items="${list}" varStatus="status">
<!-- 5.값이 없는 경우만 거리 계산을 호출 한다. -->
<c:if test="${list.onewayDstnc eq '' or empty list.onewayDstnc}">
<input type="hidden" id="${list.userId}_i1" name="${list.userId}_i1" value=""/>
<input type="hidden" id="${list.userId}_i2" name="${list.userId}_i2" value=""/>
<input type="hidden" id="${list.userId}_s1" name="${list.userId}_s1" value=""/>
<input type="hidden" id="${list.userId}_s2" name="${list.userId}_s2" value=""/>
<script type="text/javascript">
//강사 주소지 변환 호출
/*
tmapAPIgetLat(
"<c:out value='${list.iAddr}'/>"
, "<c:out value='${list.userId}_i1'/>"
, "<c:out value='${list.userId}_i2'/>"
, "<c:out value='${list.userId}_s1'/>"
, "<c:out value='${list.userId}_s2'/>"
, "<c:out value='${list.userId}_oneway'/>"
, reloadLinkPage
, "<c:out value='${vEEduAplctVO.eduAplctOrd}' />"
, "<c:out value='${list.userId}'/>"
, "<c:out value='${list.sAddr}'/>"
, "<c:out value='${list.iAddr}'/>"
); //강사 주소지
//학교 주소지 변환 호출
tmapAPIgetLat(
"<c:out value='${list.sAddr}'/>"
, "<c:out value='${list.userId}_s1'/>"
, "<c:out value='${list.userId}_s2'/>"
, "<c:out value='${list.userId}_i1'/>"
, "<c:out value='${list.userId}_i2'/>"
, "<c:out value='${list.userId}_oneway'/>"
, reloadLinkPage
, "<c:out value='${vEEduAplctVO.eduAplctOrd}' />"
, "<c:out value='${list.userId}'/>"
, "<c:out value='${list.sAddr}'/>"
, "<c:out value='${list.iAddr}'/>"
); //학교 주소지
*/
</script>
</c:if>
</c:forEach>
</c:if>
<!-- 강사 거리계산용 끝 -->
</body>
</html>

View File

@ -0,0 +1,207 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%
/**
* @Class Name : instrAsgnmPopup.jsp
* @Description : 강사배치 팝업
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.08.09 김봉호 최초 생성
* @author 안주영
* @since 2022.1.8
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript">
</script>
<title>강사배치 팝업</title>
<script type="text/javaScript" language="javascript">
$(document).ready(function(){
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
});
function fncPopClose(){
self.close();
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
if($('#searchEduSlctAreaCd option:selected').text() != '전체'){
listForm.rsdne.value = $('#searchEduSlctAreaCd option:selected').text();
}
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup.do'/>";
listForm.submit();
}
function fncInstrAsgnm(p_id) {
$("#userId").val(p_id);
var data1 = new FormData(document.getElementById("createForm"));
if(confirm("강사를 선택 하시겠습니까?")){
$.ajax({
type:"POST",
// url:"${pageContext.request.contextPath}/kccadr/oprtn/adultVisitEdu/popup/instrAsgnmAjax.do",
url:"${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/fndthInstrAsgnmAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
</script>
</head>
<body>
<div class="area_popup supm_popup">
<div class="cont_popup">
<form:form id="createForm" name="createForm" method="post" onsubmit="return false;">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd"/>
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd"/>
<input type="hidden" name="userId" id="userId" />
<input type="hidden" name="asgnmAprvlCd" id="asgnmAprvlCd" value="30"/> <!-- VE0019 배정 승인 코드 30 확정 -->
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value="${vEPrcsDetailVO.prcsAplctPrdOrd}" />" />
</form:form>
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
<input type="hidden" name="pageUnit" value="5" />
<input type="hidden" name="rsdne" value="" />
<div class="area_popup">
<div class="cont_popup">
<!-- list_top -->
<div class="list_top">
<div class="list_top_1">
<div class="util_left">
<p>강사검색</p>
</div>
<%-- <ve:select codeId="VE0008" name="searchEduSlctAreaCd" id="searchEduSlctAreaCd" css="class='sel_type1'" --%>
<%-- selectedText="${vEEduAplctVO.rsdne}" defaultValue='' --%>
<%-- defaultText='전체' --%>
<%-- /> --%>
<div class="util_right">
<input type="text" id="searchKeyword" name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="${vEPrcsDetailVO.searchKeyword }">
<button type="button" class="btn_type08" onclick="linkPage(1); return false;">검색</button>
</div>
</div>
</div>
<div class="pop_tb_tit01">
<p>강사 목록</p>(*선호분야 일치여부, 적은 할당시수 순입니다.)
</div>
<div class="pop_tb_type01">
<table>
<colgroup>
<col style="width: 11%;">
<col style="width: 15%;">
<%-- <col style="width: 10%"> --%>
<col style="width: auto;">
<col style="width: 15%;">
<col style="width: 15%;">
<%-- <col style="width: 9%;"> --%>
<col style="width: 9%;">
</colgroup>
<thead>
<tr>
<th scope="col">이름</th>
<th scope="col">거주<br>지역</th>
<!-- <th scope="col">이동<br>거리</th> -->
<th scope="col">선호분야</th>
<th scope="col">온라인</th>
<th scope="col">구분</th>
<!-- <th scope="col">Penalty 횟수</th> -->
<th scope="col">선택</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<td><c:out value='${list.instrNm}'/></td>
<td><c:out value='${list.rsdne}'/></td>
<%-- <td><c:out value='${list.onewayDstnc}'/>Km</td> --%>
<td><ve:code codeId="VE0004" code="${list.prfrnFldCd}"/></td>
<td><c:out value='${list.onlnPsblYn}'/></td>
<td><ve:code codeId="VE0018" code="${list.divCd}"/></td>
<td>
<c:if test='${empty list.chrgNm}'>
<button class="btn_type06"
onclick="fncInstrAsgnm('<c:out value="${list.userId}" />'); return false;">선택</button>
</c:if>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
<div class="btn_wrap_pop btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type04" onclick="self.close();">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
</body>
</html>