2023-11-24 12:24 강사별 관리 메뉴 작업

This commit is contained in:
myname 2023-11-24 12:22:28 +09:00
parent 71b9b66758
commit ed70bf4b43
20 changed files with 3367 additions and 1693 deletions

View File

@ -182,6 +182,28 @@ public class ComDefaultVO implements Serializable {
private String searchStartRegistPnttm; private String searchStartRegistPnttm;
private String searchEndRegistPnttm; private String searchEndRegistPnttm;
/* 검색조건 공통 관리용 */
private String srchCndt1 = "";
private String srchKwd1_1 = "";
private String srchKwd1_2 = "";
private String srchCndt2 = "";
private String srchKwd2_1 = "";
private String srchKwd2_2 = "";
private String srchCndt3 = "";
private String srchKwd3_1 = "";
private String srchKwd3_2 = "";
private String srchCndt4 = "";
private String srchKwd4_1 = "";
private String srchKwd4_2 = "";
private String srchCndt5 = "";
private String srchKwd5_1 = "";
private String srchKwd5_2 = "";
public int getBeSort() { public int getBeSort() {
return beSort; return beSort;
} }
@ -894,4 +916,124 @@ public class ComDefaultVO implements Serializable {
this.searchEndRegistPnttm = searchEndRegistPnttm; this.searchEndRegistPnttm = searchEndRegistPnttm;
} }
public String getSrchCndt1() {
return srchCndt1;
}
public void setSrchCndt1(String srchCndt1) {
this.srchCndt1 = srchCndt1;
}
public String getSrchKwd1_1() {
return srchKwd1_1;
}
public void setSrchKwd1_1(String srchKwd1_1) {
this.srchKwd1_1 = srchKwd1_1;
}
public String getSrchKwd1_2() {
return srchKwd1_2;
}
public void setSrchKwd1_2(String srchKwd1_2) {
this.srchKwd1_2 = srchKwd1_2;
}
public String getSrchCndt2() {
return srchCndt2;
}
public void setSrchCndt2(String srchCndt2) {
this.srchCndt2 = srchCndt2;
}
public String getSrchKwd2_1() {
return srchKwd2_1;
}
public void setSrchKwd2_1(String srchKwd2_1) {
this.srchKwd2_1 = srchKwd2_1;
}
public String getSrchKwd2_2() {
return srchKwd2_2;
}
public void setSrchKwd2_2(String srchKwd2_2) {
this.srchKwd2_2 = srchKwd2_2;
}
public String getSrchCndt3() {
return srchCndt3;
}
public void setSrchCndt3(String srchCndt3) {
this.srchCndt3 = srchCndt3;
}
public String getSrchKwd3_1() {
return srchKwd3_1;
}
public void setSrchKwd3_1(String srchKwd3_1) {
this.srchKwd3_1 = srchKwd3_1;
}
public String getSrchKwd3_2() {
return srchKwd3_2;
}
public void setSrchKwd3_2(String srchKwd3_2) {
this.srchKwd3_2 = srchKwd3_2;
}
public String getSrchCndt4() {
return srchCndt4;
}
public void setSrchCndt4(String srchCndt4) {
this.srchCndt4 = srchCndt4;
}
public String getSrchKwd4_1() {
return srchKwd4_1;
}
public void setSrchKwd4_1(String srchKwd4_1) {
this.srchKwd4_1 = srchKwd4_1;
}
public String getSrchKwd4_2() {
return srchKwd4_2;
}
public void setSrchKwd4_2(String srchKwd4_2) {
this.srchKwd4_2 = srchKwd4_2;
}
public String getSrchCndt5() {
return srchCndt5;
}
public void setSrchCndt5(String srchCndt5) {
this.srchCndt5 = srchCndt5;
}
public String getSrchKwd5_1() {
return srchKwd5_1;
}
public void setSrchKwd5_1(String srchKwd5_1) {
this.srchKwd5_1 = srchKwd5_1;
}
public String getSrchKwd5_2() {
return srchKwd5_2;
}
public void setSrchKwd5_2(String srchKwd5_2) {
this.srchKwd5_2 = srchKwd5_2;
}
} }

View File

@ -28,6 +28,7 @@ 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; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.qestnr.service.VEAQestnrVO; import kcc.ve.oprtn.qestnr.service.VEAQestnrVO;
/** /**
@ -592,4 +593,18 @@ public class EgovCryptoUtil {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return vEPrcsDetailVOList; return vEPrcsDetailVOList;
} }
public List<VEPrcsDetailVO> decryptvEPrcsDetailList(List<VEPrcsDetailVO> vEPrcsDetailVOList) {
for(VEPrcsDetailVO vo : vEPrcsDetailVOList) {
vo.setInstrNm(this.decrypt(vo.getInstrNm()));
}
// TODO Auto-generated method stub
return vEPrcsDetailVOList;
}
} }

View File

@ -152,6 +152,9 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable {
private String attendAtchFileId;//강사참석확인서 파일ID private String attendAtchFileId;//강사참석확인서 파일ID
private String aplctCn; //신청내용
private String rqstCn; //요청내용
public String getMemoCn() { public String getMemoCn() {
return memoCn; return memoCn;
@ -759,5 +762,17 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable {
public void setAttendAtchFileId(String attendAtchFileId) { public void setAttendAtchFileId(String attendAtchFileId) {
this.attendAtchFileId = attendAtchFileId; this.attendAtchFileId = attendAtchFileId;
} }
public String getAplctCn() {
return aplctCn;
}
public void setAplctCn(String aplctCn) {
this.aplctCn = aplctCn;
}
public String getRqstCn() {
return rqstCn;
}
public void setRqstCn(String rqstCn) {
this.rqstCn = rqstCn;
}
} }

View File

@ -154,6 +154,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String mberNm; private String mberNm;
private String instrNm; //강사명
@ -749,6 +751,12 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setMberNm(String mberNm) { public void setMberNm(String mberNm) {
this.mberNm = mberNm; this.mberNm = mberNm;
} }
public String getInstrNm() {
return instrNm;
}
public void setInstrNm(String instrNm) {
this.instrNm = instrNm;
}
} }

View File

@ -22,4 +22,6 @@ public interface VEPrcsMIXService {
// 온라인 컨텐츠 이용신청서 상세리스트 // 온라인 컨텐츠 이용신청서 상세리스트
List<VEPrcsDetailVO> selectPrcsDetailList(VEPrcsDetailVO paramVO) throws Exception; List<VEPrcsDetailVO> selectPrcsDetailList(VEPrcsDetailVO paramVO) throws Exception;
//기반강화, 기소유예 - 강사별 관리
List<VEPrcsDetailVO> selectPagingList4FndthInstr(VEPrcsDetailVO paramVO) throws Exception;
} }

View File

@ -54,4 +54,8 @@ public class VEPrcsMIXDAO extends EgovAbstractDAO {
return tlist; return tlist;
} }
public List<VEPrcsDetailVO> selectPagingList4FndthInstr(VEPrcsDetailVO paramVO) throws Exception {
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsDAO.selectPagingList4FndthInstr", paramVO);
return tlist;
}
} }

View File

@ -45,4 +45,8 @@ public class VEPrcsMIXServiceImpl implements VEPrcsMIXService {
public List<VEPrcsDetailVO> selectPrcsDetailList(VEPrcsDetailVO paramVO) throws Exception { public List<VEPrcsDetailVO> selectPrcsDetailList(VEPrcsDetailVO paramVO) throws Exception {
return vEPrcsMIXDAO.selectPrcsDetailList(paramVO); return vEPrcsMIXDAO.selectPrcsDetailList(paramVO);
} }
public List<VEPrcsDetailVO> selectPagingList4FndthInstr(VEPrcsDetailVO paramVO) throws Exception{
return vEPrcsMIXDAO.selectPagingList4FndthInstr(paramVO);
}
} }

View File

@ -971,6 +971,7 @@ public class AreaLctrMngAdultController {
//로그인 처리==================================== //로그인 처리====================================
try {
VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = new VEInstrFeeAcmdtVO(); VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = new VEInstrFeeAcmdtVO();
vEInstrFeeAcmdtVO.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd()); vEInstrFeeAcmdtVO.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd());
@ -995,6 +996,10 @@ public class AreaLctrMngAdultController {
vEInstrFeeAcmdtVO.setTotalSum(totalSum); vEInstrFeeAcmdtVO.setTotalSum(totalSum);
model.addAttribute("info",vEInstrFeeAcmdtVO); model.addAttribute("info",vEInstrFeeAcmdtVO);
}catch(Exception ex) {
ex.printStackTrace();
}
return "oprtn/adultVisitEdu/popup/instrCostPopup"; return "oprtn/adultVisitEdu/popup/instrCostPopup";
} }

View File

@ -0,0 +1,317 @@
package kcc.ve.oprtn.cndtnSspnIdtmt.web;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.impl.CmmUseDAO;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
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.VEPrcsCmpltDetailService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
/**
* 기반강화연수(관리자) 강사관리
* 기반강화연수에 관한 controller 클래스를 정의한다.
* @author 조용준
* @since 2023.07.12
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.12.16 조용준 최초 생성
*
* </pre>
*/
@Controller
//@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn")
public class CndtnInstrMngController {
private static final Logger LOGGER = LoggerFactory.getLogger(CndtnInstrMngController.class);
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
//과정 관리
@Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService;
//과정 관리
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//온라인콘텐츠과정 관리
@Resource(name = "vEPrcsOnlnCntntService")
private VEPrcsOnlnCntntService vEPrcsOnlnCntntService;
//과정차시 관리
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
//과정차시 관리
@Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService;
//과정차시 관리
@Resource(name = "vEAPrcsAplctPrdInstrAsgnmService")
private VEAPrcsAplctPrdInstrAsgnmService vEAPrcsAplctPrdInstrAsgnmService;
//교육과정순번
@Resource(name="prcsGnrService")
private EgovIdGnrService prcsGnrService;
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정온라인콘텐츠순번
@Resource(name="prcsOnlnGnrService")
private EgovIdGnrService prcsOnlnGnrService;
//교육신청
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//차시
@Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//교육과정신청
@Resource(name = "vEPrcsCmpltDetailService")
private VEPrcsCmpltDetailService vEPrcsCmpltDetailService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
//과정
@Resource(name="cmmUseDAO")
private CmmUseDAO cmmUseDAO;
//과정신청기간순번
@Resource(name="vePrcsAplctPrdEtcGnrService")
private EgovIdGnrService vePrcsAplctPrdEtcGnrService;
/*
// 교육신청 서비스단
@Resource(name = "AdjReqMgrService")
private AdjReqMgrService adjReqMgrService;
// eGov 공통코드
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
// global 프로퍼티
@Resource(name="globalSettings")
protected Properties propertiesService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
// 첨부파일 정보
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
@Resource(name="KccadrMgrUdtService")
private KccadrMgrUdtService kccadrMgrUdtService;
// 교육신청 서비스단
@Resource(name = "checkAdrProcessUtil")
private CheckAdrProcessUtil checkAdrProcessUtil;
*/
/**
* 기소유예 교육확정관리목록
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnInstrMngList.do")
public String cndtnInstrMngList( @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, HttpSession session, ModelMap model ) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//교육확정 목록 조회
vEPrcsDetailVO.setDdlnCd("20");
//정렬
System.out.println(vEPrcsDetailVO.getSearchSortCnd());
System.out.println(vEPrcsDetailVO.getSearchSortOrd());
if(!"".equals(vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
vEPrcsDetailVO.setOrderByQuery(vEPrcsDetailVO.getSearchSortCnd() + " " +vEPrcsDetailVO.getSearchSortOrd());
}
//강사명 검색시 암호화
if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) {
vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.encrypt(vEPrcsDetailVO.getSrchKwd3_1()));
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectPagingList4FndthInstr(vEPrcsDetailVO);
//강사명 검색시 복호화
if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) {
vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.decrypt(vEPrcsDetailVO.getSrchKwd3_1()));
}
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
// 지정된 강사가 있는지 확인
vEPrcsDetailVOList.stream().forEach(t->{
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
if(vEAPrcsAplctPrdInstrAsgnmList.size() > 0) {
t.setInstrCnt(Integer.toString(vEAPrcsAplctPrdInstrAsgnmList.size()));
}
});
//대상 리스트, 페이징 정보 전달
vEPrcsDetailVOList = egovCryptoUtil.decryptvEPrcsDetailList(vEPrcsDetailVOList);
model.addAttribute("list", vEPrcsDetailVOList);
return "oprtn/cndtnSspnIdtmt/cndtnInstrMngList";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// private function
//
//
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(
VEPrcsDetailVO p_vEPrcsDetailVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit());
paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEPrcsDetailVO setPagingStep2(
VEPrcsDetailVO p_vEPrcsDetailVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
/*
if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord");
p_vEPrcsDetailVO.setSearchSortOrd("desc");
}
*/
return p_vEPrcsDetailVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3(
List<VEPrcsDetailVO> p_vEPrcsDetailVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
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

@ -0,0 +1,317 @@
package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.web;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.impl.CmmUseDAO;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
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.VEPrcsCmpltDetailService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
/**
* 기반강화연수(관리자) 강사관리
* 기반강화연수에 관한 controller 클래스를 정의한다.
* @author 조용준
* @since 2023.07.12
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2021.12.16 조용준 최초 생성
*
* </pre>
*/
@Controller
//@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn")
public class FndthInstrMngController {
private static final Logger LOGGER = LoggerFactory.getLogger(FndthInstrMngController.class);
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
//과정 관리
@Resource(name = "vEPrcsService")
private VEPrcsService vEPrcsService;
//과정 관리
@Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService;
//온라인콘텐츠과정 관리
@Resource(name = "vEPrcsOnlnCntntService")
private VEPrcsOnlnCntntService vEPrcsOnlnCntntService;
//과정차시 관리
@Resource(name = "vEPrcsAplctPrdService")
private VEPrcsAplctPrdService vEPrcsAplctPrdService;
//과정차시 관리
@Resource(name = "vEPrcsMIXService")
private VEPrcsMIXService vEPrcsMIXService;
//과정차시 관리
@Resource(name = "vEAPrcsAplctPrdInstrAsgnmService")
private VEAPrcsAplctPrdInstrAsgnmService vEAPrcsAplctPrdInstrAsgnmService;
//교육과정순번
@Resource(name="prcsGnrService")
private EgovIdGnrService prcsGnrService;
//과정신청기간순번
@Resource(name="prcsAplctPrdGnrService")
private EgovIdGnrService prcsAplctPrdGnrService;
//과정온라인콘텐츠순번
@Resource(name="prcsOnlnGnrService")
private EgovIdGnrService prcsOnlnGnrService;
//교육신청
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//차시
@Resource(name = "vEEduChasiService")
private VEEduChasiService vVEEduChasiService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//교육과정신청
@Resource(name = "vEPrcsCmpltDetailService")
private VEPrcsCmpltDetailService vEPrcsCmpltDetailService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
//과정
@Resource(name="cmmUseDAO")
private CmmUseDAO cmmUseDAO;
//과정신청기간순번
@Resource(name="vePrcsAplctPrdEtcGnrService")
private EgovIdGnrService vePrcsAplctPrdEtcGnrService;
/*
// 교육신청 서비스단
@Resource(name = "AdjReqMgrService")
private AdjReqMgrService adjReqMgrService;
// eGov 공통코드
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
// global 프로퍼티
@Resource(name="globalSettings")
protected Properties propertiesService;
//첨부파일 경로, realPath 설정
@Resource(name="EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
// 첨부파일 정보
@Resource(name="EgovFileMngService")
private EgovFileMngService fileMngService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
@Resource(name="KccadrMgrUdtService")
private KccadrMgrUdtService kccadrMgrUdtService;
// 교육신청 서비스단
@Resource(name = "checkAdrProcessUtil")
private CheckAdrProcessUtil checkAdrProcessUtil;
*/
/**
* 기반강화연수 교육확정관리목록
*/
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthInstrMngList.do")
public String fndthInstrMngList( @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, HttpSession session, ModelMap model ) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
//교육확정 목록 조회
vEPrcsDetailVO.setDdlnCd("20");
//정렬
System.out.println(vEPrcsDetailVO.getSearchSortCnd());
System.out.println(vEPrcsDetailVO.getSearchSortOrd());
if(!"".equals(vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
vEPrcsDetailVO.setOrderByQuery(vEPrcsDetailVO.getSearchSortCnd() + " " +vEPrcsDetailVO.getSearchSortOrd());
}
//강사명 검색시 암호화
if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) {
vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.encrypt(vEPrcsDetailVO.getSrchKwd3_1()));
}
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsMIXService.selectPagingList4FndthInstr(vEPrcsDetailVO);
//강사명 검색시 복호화
if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) {
vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.decrypt(vEPrcsDetailVO.getSrchKwd3_1()));
}
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
// 지정된 강사가 있는지 확인
vEPrcsDetailVOList.stream().forEach(t->{
List<VEAPrcsAplctPrdInstrAsgnmVO> vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd());
if(vEAPrcsAplctPrdInstrAsgnmList.size() > 0) {
t.setInstrCnt(Integer.toString(vEAPrcsAplctPrdInstrAsgnmList.size()));
}
});
//대상 리스트, 페이징 정보 전달
vEPrcsDetailVOList = egovCryptoUtil.decryptvEPrcsDetailList(vEPrcsDetailVOList);
model.addAttribute("list", vEPrcsDetailVOList);
return "oprtn/fndthEnhanceTrn/fndthInstrMngList";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// private function
//
//
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
private PaginationInfo setPagingStep1(
VEPrcsDetailVO p_vEPrcsDetailVO
)throws Exception{
// pageing step1
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex());
paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit());
paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize());
return paginationInfo;
}
//페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 검색 조건 초기화
private VEPrcsDetailVO setPagingStep2(
VEPrcsDetailVO p_vEPrcsDetailVO
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step2
p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex());
p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex());
p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage());
/*
if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord");
p_vEPrcsDetailVO.setSearchSortOrd("desc");
}
*/
return p_vEPrcsDetailVO;
}
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3(
List<VEPrcsDetailVO> p_vEPrcsDetailVOList
, PaginationInfo p_paginationInfo
)throws Exception{
// pageing step3
int totCnt = 0;
if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt();
p_paginationInfo.setTotalRecordCount(totCnt);
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

@ -1283,7 +1283,7 @@ public class AreaLctrMngTngrController {
//if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo; //if (!"".equals(s_userCheckNInfo)) return s_userCheckNInfo;
//로그인 처리==================================== //로그인 처리====================================
try{
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_10);// 청소년교육 코드 vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_10);// 청소년교육 코드
vEEduChasiVO.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd()); vEEduChasiVO.setEduAplctOrd(vEInstrAsgnmVO.getEduAplctOrd());
@ -1298,6 +1298,10 @@ public class AreaLctrMngTngrController {
model.addAttribute("memoCn",vEEduChasiVOInfo.getMemoCn()); model.addAttribute("memoCn",vEEduChasiVOInfo.getMemoCn());
model.addAttribute("info",vEInstrFeeAcmdtVO); model.addAttribute("info",vEInstrFeeAcmdtVO);
}catch(Exception ex) {
ex.printStackTrace();
}
return "oprtn/tngrVisitEdu/popup/instrCostPopup"; return "oprtn/tngrVisitEdu/popup/instrCostPopup";
} }

View File

@ -779,6 +779,8 @@
, (SELECT COUNT(1) FROM ve_edu_chasi_instr_asgnm_hstry WHERE edu_aplct_ord = #eduAplctOrd# AND edu_chasi_ord = #eduChasiOrd#) AS hstryCnt , (SELECT COUNT(1) FROM ve_edu_chasi_instr_asgnm_hstry WHERE edu_aplct_ord = #eduAplctOrd# AND edu_chasi_ord = #eduChasiOrd#) AS hstryCnt
, b.attend_atch_file_id AS attendAtchFileId , b.attend_atch_file_id AS attendAtchFileId
, b.pht_atch_file_id AS phtAtchFileId , b.pht_atch_file_id AS phtAtchFileId
, b.aplct_cn AS aplctCn
, b.rqst_cn AS rqstCn
FROM ve_edu_chasi a FROM ve_edu_chasi a
JOIN ve_edu_aplct b JOIN ve_edu_aplct b
ON a.edu_aplct_ord = b.edu_aplct_ord ON a.edu_aplct_ord = b.edu_aplct_ord

View File

@ -426,4 +426,101 @@
</update> </update>
<!-- 기반강화, 기소유예 강사 L page -->
<select id="VEPrcsDAO.selectPagingList4FndthInstr" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
/* VEPrcsDAO.selectPagingList4FndthInstr */
SELECT COUNT(1) OVER() AS totCnt ,
a.prcs_aplct_prd_ord AS prcsAplctPrdOrd,
a.lctr_div_cd AS lctrDivCd,
a.strt_pnttm AS strtPnttm,
a.end_pnttm AS endPnttm,
a.use_yn AS useYn,
a.anncm_cn AS anncmCn,
a.popup_cn AS popupCn,
a.atch_file_id AS atchFileId,
a.title AS title ,
a.dead_line_dt AS deadLineDt ,
a.prcs_ord AS prcsOrd ,
a.edu_part_cd AS eduPartCd ,
a.nos AS nos ,
a.ddln_cd AS ddlnCd ,
a.edu_strt_pnttm AS eduStrtPnttm ,
a.edu_ddln_pnttm AS eduDdlnPnttm ,
a.dprtm_nm AS dprtmNm ,
b.prcs_nm AS prcsNm ,
b.prcs_div AS prcsDiv
, c.user_id AS userId
, c.instr_nm AS instrNm
FROM ve_prcs_aplct_prd a
, ve_prcs b
,
(
SELECT a0.prcs_aplct_prd_ord
, a0.user_id
, b.instr_nm
FROM vea_prcs_aplct_prd_instr_asgnm a0
, ve_instr_detail b
WHERE 1=1
AND a0.asgnm_aprvl_cd='30'
AND a0.user_id=b.user_id
AND b.use_yn='Y'
) c
WHERE 1 =1
AND a.prcs_ord =b.prcs_ord
AND a.lctr_div_cd=#lctrDivCd#
/*교육확정목록을 조회하기 위한 조건문*/
AND a.ddln_cd = #ddlnCd#
AND a.use_yn='Y'
AND a.prcs_aplct_prd_ord = c.prcs_aplct_prd_ord
<!-- 대면/비대면 여부 -->
<isNotEmpty property="srchCndt1">
AND b.prcs_div = #srchCndt1#
</isNotEmpty>
<!-- 교육시작기간 -->
<isNotEmpty property="srchKwd2_1">
AND a.edu_strt_pnttm >= #srchKwd2_1#
</isNotEmpty>
<isNotEmpty property="srchKwd2_2">
AND #srchKwd2_2# >= a.edu_strt_pnttm
</isNotEmpty>
<!-- 대면/비대면 여부 -->
<isNotEmpty property="srchKwd3_1">
AND c.instr_nm = #srchKwd3_1#
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, a.prcs_aplct_prd_ord desc
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</select>
</sqlMap> </sqlMap>

View File

@ -45,6 +45,7 @@
<pattern>*/oprtn/comm/popup/**</pattern> <!-- 반려 팝업 --> <pattern>*/oprtn/comm/popup/**</pattern> <!-- 반려 팝업 -->
<pattern>*/ve/oprtn/instr/adultVisitEdu/popup/instrRsdnePopup.do</pattern> <!-- 거주지 선택 팝업 --> <pattern>*/ve/oprtn/instr/adultVisitEdu/popup/instrRsdnePopup.do</pattern> <!-- 거주지 선택 팝업 -->
<pattern>*/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do</pattern> <!-- 성인강사변경승인팝업 --> <pattern>*/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do</pattern> <!-- 성인강사변경승인팝업 -->
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/popup/slctnTeacherPopup.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
</decorator> </decorator>
<!-- 찾교 추가 관리자 --> <!-- 찾교 추가 관리자 -->
@ -157,7 +158,7 @@
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/cautionGuidePreView.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 --> <pattern>*/kccadr/oprtn/cpyrgExprnClsrm/cautionGuidePreView.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<pattern>*/kccadr/oprtn/cpyrgExprnClsrm/popup/slctnTeacherPopup.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<pattern>*/cop/bbs/EgovBBSIdListSearch.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 --> <pattern>*/cop/bbs/EgovBBSIdListSearch.do</pattern> <!-- 관리자 저작권체험교실 교육과정안내 미리보기 팝업 -->
<!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern> <!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern>

View File

@ -105,7 +105,7 @@
</form:form> </form:form>
<form:form id="createForm" name="createForm" commandName="vEEduAplctVO" method="post"> <form:form id="createForm" name="createForm" commandName="vEEduAplctVO" method="post">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${vEEduAplctVO.eduAplctOrd}" />" /> <%-- <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="eduChasiOrd" value="<c:out value="${vEEduAplctVO.eduChasiOrd}" />" />
<input type="hidden" name="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />" /> <input type="hidden" name="instrDiv" value="<c:out value="${vEEduAplctVO.instrDiv}" />" />
<!-- cont --> <!-- cont -->

View File

@ -247,10 +247,13 @@
<div class="btn_left"> <div class="btn_left">
</div> </div>
<div class="btn_center"> <div class="btn_center">
<c:if test="${info != null }">
<c:if test="${info.sbmtYn ne 'Y'}"> <c:if test="${info.sbmtYn ne 'Y'}">
<button type="button" class="btn_type04" onclick="fnSaveFee('Y')">확정</button> <button type="button" class="btn_type04" onclick="fnSaveFee('Y')">확정</button>
<button type="button" class="btn_type04" onclick="fnSaveFee('N')">저장</button> <button type="button" class="btn_type04" onclick="fnSaveFee('N')">저장</button>
</c:if> </c:if>
</c:if>
<button type="button" class="btn_type02" onclick="fncPopClose()">닫기</button> <button type="button" class="btn_type02" onclick="fncPopClose()">닫기</button>
</div> </div>
<div class="btn_right"> <div class="btn_right">

View File

@ -0,0 +1,349 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : cndtnInstrMngList.jsp
* @Description : 기소유예 강사별 관리 목록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
// 상태값 확인
$(".ddlnCdStts").each(function() {
var $currentCell = $(this);
// 텍스트가 비어있는지 확인
if ($currentCell.text().trim() === "") {
var $currentRow = $currentCell.closest('tr');
var strtPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[0].trim());
var endPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[1].trim());
var currentDate = new Date();
var ddlnCdText = '';
if (currentDate < strtPnttm) {
ddlnCdText = "접수전";
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
ddlnCdText = "접수중";
} else if (currentDate > endPnttm) {
ddlnCdText = "접수종료";
}
$currentCell.text(ddlnCdText);
}
});
});
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
//listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnInstrMngList.do'/>";
listForm.submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var listForm = document.listForm ;
listForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.do'/>";
listForm.submit();
}
function fncDelete(prcsOrd){
document.listForm.prcsOrd.value = prcsOrd ;
var pageIndex = document.listForm.pageIndex.value;
if($(".listCount").length == '1'){
pageIndex = pageIndex -1;
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
function fncSaveSort(prcsOrd, count){
var sortNo = $('#prcsSortNo'+count).val();
if(sortNo == ''){
alert("표시순서를 입력해 주세요.");
return false;
}
$('#prcsOrd').val(prcsOrd);
$('#prcsSortNo').val(sortNo);
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsSortUpdateAjax.do'/>";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function fncReset(thisObj) {
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function() {
if ($(this).prop('tagName') == 'SELECT') {
if ($(this).attr('name').indexOf('Month') != -1) {
$(this).val(new Date().getMonth() + 1);
} else if ($(this).attr('name').indexOf('Year') != -1) {
$(this).val(new Date().getFullYear());
} else {
$(this).prop("selectedIndex", 0);
}
} else {
if ($(this).attr('type') == 'checkbox') {
$(this).prop('checked', false);
} else {
$(this).val('');
}
}
});
}
</script>
<title>과정신청기간관리목록</title>
</head>
<body>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd" value="" />
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>강사별관리목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>기반강화연수관리</p>
</li>
<li><span class="cur_nav">강사별관리목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="tb_tit01">
<p>교육 확정 강사 관리</p>
</div>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<div class="util_right">
<ve:select codeId="VEA001" name="srchCndt1" id="srchCndt1" css="class='sel_type1'"
selectedValue="${vEPrcsDetailVO.srchCndt1 }" defaultValue=""
defaultText="전체"
/>
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.srchKwd2_1}"> --%>
<input type="text" class="calendar" title="시작일 선택" id="srchKwd2_1" name="srchKwd2_1" value="${vEPrcsDetailVO.srchKwd2_1}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="srchKwd2_2" name="srchKwd2_2" value="${vEPrcsDetailVO.srchKwd2_2}">
</div>
<input type="text" id="srchKwd3_1" name="srchKwd3_1" placeholder="강사명를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEPrcsDetailVO.srchKwd3_1}'/>">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: auto">
<col style="width: 180px;">
<%-- <col style="width: 180px;"> --%>
<col style="width: 10%">
<col style="width: 10%">
<%-- <col style="width: 10%"> --%>
</colgroup>
<thead>
<tr>
<th>NO</th>
<th>교육구분코드</th>
<th>강사명</th>
<th>과정명<button class="sort sortBtn" id="sort_prcsNm">▲</button></th>
<th>교육일자<button class="sort sortBtn" id="sort_eduStrtPnttm">▲</button></th>
<!-- <th>신청자/정원</th> -->
<th>상태</th>
<th>강사배정</th>
<!-- <th>공개여부</th> -->
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount">
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${status.count}"/>
</td>
<td>
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td>
<td>
<c:out value="${list.instrNm}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>
<c:out value="${list.eduStrtPnttm}"/>
</td>
<!--
<td>
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
</td>
-->
<td class="ddlnCdStts">
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
</td>
<td>
<%-- <c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/> --%>
<c:choose>
<c:when test="${list.instrCnt eq 0 or list.instrCnt eq null}">
<button type="button" class="btn_type04" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">강사배정</button>
</c:when>
<c:otherwise>
배정완료
</c:otherwise>
</c:choose>
</td>
<!-- <td> -->
<%-- <c:out value="${list.useYn}"/> --%>
<!-- </td> -->
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -0,0 +1,349 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : fndthInstrMngList.jsp
* @Description : 기반강화 강사별 관리 목록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.14 조용준 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
// 상태값 확인
$(".ddlnCdStts").each(function() {
var $currentCell = $(this);
// 텍스트가 비어있는지 확인
if ($currentCell.text().trim() === "") {
var $currentRow = $currentCell.closest('tr');
var strtPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[0].trim());
var endPnttm = new Date($currentRow.find("td:eq(3)").text().split("~")[1].trim());
var currentDate = new Date();
var ddlnCdText = '';
if (currentDate < strtPnttm) {
ddlnCdText = "접수전";
} else if (currentDate >= strtPnttm && currentDate <= endPnttm) {
ddlnCdText = "접수중";
} else if (currentDate > endPnttm) {
ddlnCdText = "접수종료";
}
$currentCell.text(ddlnCdText);
}
});
});
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
//listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthInstrMngList.do'/>";
listForm.submit();
}
function fncGoDetail(prcsAplctPrdOrd){
var listForm = document.listForm ;
listForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail.do'/>";
listForm.submit();
}
function fncDelete(prcsOrd){
document.listForm.prcsOrd.value = prcsOrd ;
var pageIndex = document.listForm.pageIndex.value;
if($(".listCount").length == '1'){
pageIndex = pageIndex -1;
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
}
function fncSaveSort(prcsOrd, count){
var sortNo = $('#prcsSortNo'+count).val();
if(sortNo == ''){
alert("표시순서를 입력해 주세요.");
return false;
}
$('#prcsOrd').val(prcsOrd);
$('#prcsSortNo').val(sortNo);
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/kccadr/oprtn/otsdCprtnPrcs/eduPrcsSortUpdateAjax.do'/>";
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function fncReset(thisObj) {
var targetObj = $(thisObj).closest('.list_top').find('select,input');
$.each(targetObj, function() {
if ($(this).prop('tagName') == 'SELECT') {
if ($(this).attr('name').indexOf('Month') != -1) {
$(this).val(new Date().getMonth() + 1);
} else if ($(this).attr('name').indexOf('Year') != -1) {
$(this).val(new Date().getFullYear());
} else {
$(this).prop("selectedIndex", 0);
}
} else {
if ($(this).attr('type') == 'checkbox') {
$(this).prop('checked', false);
} else {
$(this).val('');
}
}
});
}
</script>
<title>과정신청기간관리목록</title>
</head>
<body>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd" value="" />
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>강사별관리목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>기반강화연수관리</p>
</li>
<li><span class="cur_nav">강사별관리목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="tb_tit01">
<p>교육 확정 강사 관리</p>
</div>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<div class="util_right">
<ve:select codeId="VEA001" name="srchCndt1" id="srchCndt1" css="class='sel_type1'"
selectedValue="${vEPrcsDetailVO.srchCndt1 }" defaultValue=""
defaultText="전체"
/>
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.srchKwd2_1}"> --%>
<input type="text" class="calendar" title="시작일 선택" id="srchKwd2_1" name="srchKwd2_1" value="${vEPrcsDetailVO.srchKwd2_1}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="srchKwd2_2" name="srchKwd2_2" value="${vEPrcsDetailVO.srchKwd2_2}">
</div>
<input type="text" id="srchKwd3_1" name="srchKwd3_1" placeholder="강사명를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEPrcsDetailVO.srchKwd3_1}'/>">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 5%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: auto">
<col style="width: 180px;">
<%-- <col style="width: 180px;"> --%>
<col style="width: 10%">
<col style="width: 10%">
<%-- <col style="width: 10%"> --%>
</colgroup>
<thead>
<tr>
<th>NO</th>
<th>교육구분코드</th>
<th>강사명</th>
<th>과정명<button class="sort sortBtn" id="sort_prcsNm">▲</button></th>
<th>교육기간<button class="sort sortBtn" id="sort_eduStrtPnttm">▲</button></th>
<!-- <th>신청자/정원</th> -->
<th>상태</th>
<th>강사배정</th>
<!-- <th>공개여부</th> -->
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount">
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${status.count}"/>
</td>
<td>
<kc:code codeId="VEA001" code="${list.prcsDiv}"/>
</td>
<td>
<c:out value="${list.instrNm}"/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>
<c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/>
</td>
<!--
<td>
<c:out value="${list.nosCnt1}"/>/<c:out value="${list.nos}"/>
</td>
-->
<td class="ddlnCdStts">
<kc:code codeId="VEA004" code="${list.ddlnCd}"/>
</td>
<td>
<%-- <c:out value="${list.strtPnttm}"/>~<c:out value="${list.endPnttm}"/> --%>
<c:choose>
<c:when test="${list.instrCnt eq 0 or list.instrCnt eq null}">
<button type="button" class="btn_type04" onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');">강사배정</button>
</c:when>
<c:otherwise>
배정완료
</c:otherwise>
</c:choose>
</td>
<!-- <td> -->
<%-- <c:out value="${list.useYn}"/> --%>
<!-- </td> -->
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -205,12 +205,32 @@
</th> </th>
<td colspan="3">${info.addr}</td> <td colspan="3">${info.addr}</td>
</tr> </tr>
<tr>
<th scope="row">
<p>신청내용</p>
</th>
<td colspan="3">
<!-- , 들어간 값을 구분해서 표시한다. -->
<c:set var="aplctCns" value="${fn:split(info.aplctCn,',')}" />
<c:forEach var="aplctCn" items="${aplctCns}" varStatus="g">
<ve:code codeId="VEA006" code="${aplctCn}"/>
</c:forEach>
</td>
</tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<p>강의주제</p> <p>강의주제</p>
</th> </th>
<td colspan="3">${info.hopeSbjct}</td> <td colspan="3">${info.hopeSbjct}</td>
</tr> </tr>
<tr>
<th scope="row">
<p style="font-size:15px;">교육 주제 관련 상세 요청사항<br/>및 사전 질의</p>
</th>
<td colspan="3"><p><c:out value='${fn:replace(info.rqstCn, replaceChar, "<br/>")}' escapeXml="false" /></p></td>
</tr>
<tr class="trLength4"> <tr class="trLength4">
<th scope="row"> <th scope="row">
<p>교육대상</p> <p>교육대상</p>

View File

@ -232,12 +232,32 @@ $( document ).ready(function() {
</th> </th>
<td colspan="3"><c:out value="${info.addr}" /></td> <td colspan="3"><c:out value="${info.addr}" /></td>
</tr> </tr>
<tr>
<th scope="row">
<p>신청내용</p>
</th>
<td colspan="3">
<!-- , 들어간 값을 구분해서 표시한다. -->
<c:set var="aplctCns" value="${fn:split(info.aplctCn,',')}" />
<c:forEach var="aplctCn" items="${aplctCns}" varStatus="g">
<ve:code codeId="VEA006" code="${aplctCn}"/>
</c:forEach>
</td>
</tr>
<tr> <tr>
<th scope="row"> <th scope="row">
<p>강의주제</p> <p>강의주제</p>
</th> </th>
<td colspan="3">${info.hopeSbjct}</td> <td colspan="3">${info.hopeSbjct}</td>
</tr> </tr>
<tr>
<th scope="row">
<p style="font-size:15px;">교육 주제 관련 상세 요청사항<br/>및 사전 질의</p>
</th>
<td colspan="3"><p><c:out value='${fn:replace(info.rqstCn, replaceChar, "<br/>")}' escapeXml="false" /></p></td>
</tr>
<tr class="trLength4"> <tr class="trLength4">
<th scope="row"> <th scope="row">
<p>교육대상</p> <p>교육대상</p>