2023-10-24 11:47 강사 일정 달력 제공
This commit is contained in:
parent
48c7c20450
commit
5e058ef76c
@ -22,5 +22,7 @@ public interface SchduleManageService {
|
|||||||
//관리자 일정 페이지
|
//관리자 일정 페이지
|
||||||
List<SchduleManageVO> selectSchManageStatusAdminList(SchduleManageVO schduleManageVO) throws Exception;
|
List<SchduleManageVO> selectSchManageStatusAdminList(SchduleManageVO schduleManageVO) throws Exception;
|
||||||
|
|
||||||
|
//강사 일정 페이지
|
||||||
|
List<SchduleManageVO> selectSchManageStatusInstrList(SchduleManageVO schduleManageVO) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -119,6 +119,8 @@ public class SchduleManageVO extends ComDefaultVO {
|
|||||||
private String eduPlace; //교육장소
|
private String eduPlace; //교육장소
|
||||||
private String prcsNm; //온라인콘텐츠 신청 항목
|
private String prcsNm; //온라인콘텐츠 신청 항목
|
||||||
|
|
||||||
|
private String userId; //강사화면 달력 출력을 위해 추가한 항목
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Date getTodate() {
|
public Date getTodate() {
|
||||||
@ -482,6 +484,14 @@ public class SchduleManageVO extends ComDefaultVO {
|
|||||||
this.prcsNm = prcsNm;
|
this.prcsNm = prcsNm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(String userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,6 +29,12 @@ public class SchduleManageDAO extends EgovAbstractDAO {
|
|||||||
public List<SchduleManageVO> selectSchManageStatusAdminList(SchduleManageVO schduleManageVO)throws Exception{
|
public List<SchduleManageVO> selectSchManageStatusAdminList(SchduleManageVO schduleManageVO)throws Exception{
|
||||||
return (List<SchduleManageVO>)list("schduleManageDAO.selectSchManageStatusAdminList" , schduleManageVO);
|
return (List<SchduleManageVO>)list("schduleManageDAO.selectSchManageStatusAdminList" , schduleManageVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//강사 배정 확정 및 교육 확정된 강좌 리스트
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public List<SchduleManageVO> selectSchManageStatusInstrList(SchduleManageVO schduleManageVO)throws Exception{
|
||||||
|
return (List<SchduleManageVO>)list("schduleManageDAO.selectSchManageStatusInstrList" , schduleManageVO);
|
||||||
|
}
|
||||||
|
|
||||||
public SchduleManageVO selectSchManageDetail(SchduleManageVO schduleManageVO)throws Exception{
|
public SchduleManageVO selectSchManageDetail(SchduleManageVO schduleManageVO)throws Exception{
|
||||||
return (SchduleManageVO) select("schduleManageDAO.selectSchManageDetail" , schduleManageVO);
|
return (SchduleManageVO) select("schduleManageDAO.selectSchManageDetail" , schduleManageVO);
|
||||||
|
|||||||
@ -54,4 +54,9 @@ public class SchduleManageServiceImpl implements SchduleManageService {
|
|||||||
public List<SchduleManageVO> selectSchManageStatusAdminList(SchduleManageVO schduleManageVO) throws Exception {
|
public List<SchduleManageVO> selectSchManageStatusAdminList(SchduleManageVO schduleManageVO) throws Exception {
|
||||||
return schduleManageDAO.selectSchManageStatusAdminList(schduleManageVO);
|
return schduleManageDAO.selectSchManageStatusAdminList(schduleManageVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SchduleManageVO> selectSchManageStatusInstrList(SchduleManageVO schduleManageVO) throws Exception {
|
||||||
|
return schduleManageDAO.selectSchManageStatusInstrList(schduleManageVO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
@ -34,6 +35,8 @@ import kcc.com.utl.user.service.CheckFileUtil;
|
|||||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||||
import kcc.kccadr.accdnt.acd.service.AdjstChangeDateService;
|
import kcc.kccadr.accdnt.acd.service.AdjstChangeDateService;
|
||||||
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
|
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
|
||||||
|
import kcc.kccadr.sch.service.SchduleManageService;
|
||||||
|
import kcc.kccadr.sch.service.SchduleManageVO;
|
||||||
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.let.utl.fcc.service.EgovCryptoUtil4VO;
|
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
|
||||||
@ -135,6 +138,9 @@ public class InstrAdultPrflController {
|
|||||||
@Resource(name = "vELctrMIXService")
|
@Resource(name = "vELctrMIXService")
|
||||||
private VELctrMIXService vELctrMIXService;
|
private VELctrMIXService vELctrMIXService;
|
||||||
|
|
||||||
|
//일정 정보 가져오기
|
||||||
|
@Resource(name = "schduleManageService")
|
||||||
|
private SchduleManageService schduleManageService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 0.성인 강사 대시보드 화면
|
* 0.성인 강사 대시보드 화면
|
||||||
@ -712,6 +718,110 @@ public class InstrAdultPrflController {
|
|||||||
return modelAndView;
|
return modelAndView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1.성인대상 강사 상세화면 - 달력일정
|
||||||
|
*/
|
||||||
|
@RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl.do")
|
||||||
|
public String instrPrflSchdl(
|
||||||
|
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||||
|
|
||||||
|
, ModelMap model
|
||||||
|
, RedirectAttributes redirectAttributes
|
||||||
|
, HttpSession session
|
||||||
|
, HttpServletRequest request
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
|
if (loginVO == null || ssoLoginVO == null) {
|
||||||
|
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||||
|
}
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
//성인대상 강사 상세정보 조회
|
||||||
|
vEInstrDetailVO.setUserId(loginVO.getUniqId());
|
||||||
|
vEInstrDetailVO.setInstrDiv("20");
|
||||||
|
vEInstrDetailVO.setUseYn("Y");
|
||||||
|
VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO);
|
||||||
|
info = egovCryptoUtil.decryptVEInstrDetailVO(info);
|
||||||
|
|
||||||
|
model.addAttribute("info", info);
|
||||||
|
|
||||||
|
|
||||||
|
//성인대상 강사 신청내역 조회
|
||||||
|
vEInstrDetailVO.setFirstIndex(0);
|
||||||
|
vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회
|
||||||
|
List<VEInstrDetailVO> vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO);
|
||||||
|
|
||||||
|
model.addAttribute("vEInstrAplctList", vEInstrAplctList);
|
||||||
|
|
||||||
|
|
||||||
|
//성인대상 강사 수정신청 내역 조회
|
||||||
|
vEInstrDetailVO.setFirstIndex(0);
|
||||||
|
vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회
|
||||||
|
List<VEInstrDetailVO> vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO);
|
||||||
|
|
||||||
|
model.addAttribute("vEInstrMdfyList", vEInstrMdfyList);
|
||||||
|
|
||||||
|
|
||||||
|
//현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기
|
||||||
|
vEInstrDetailVO.setFirstIndex(0);
|
||||||
|
vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'");
|
||||||
|
List<VEInstrDetailVO> vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO);
|
||||||
|
|
||||||
|
model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList);
|
||||||
|
|
||||||
|
VELctrDetailVO lctrDetailVO = new VELctrDetailVO();
|
||||||
|
lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv());
|
||||||
|
lctrDetailVO.setUserId(vEInstrDetailVO.getUserId());
|
||||||
|
|
||||||
|
|
||||||
|
//강의설정 요청 리스트 불러오기
|
||||||
|
List<VELctrDetailVO> lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO);
|
||||||
|
model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo);
|
||||||
|
|
||||||
|
|
||||||
|
//강의설정테이블
|
||||||
|
lctrDetailVO.setUseYn("Y");
|
||||||
|
VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO);
|
||||||
|
model.addAttribute("lctrStngInfo", lctrStngInfo);
|
||||||
|
|
||||||
|
return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/web/ve/instr/adultVisitEdu/instrInfo/adultSchduleManagerAjaxLoadData.do")
|
||||||
|
@ResponseBody
|
||||||
|
public List<SchduleManageVO> adultSchduleManagerAjaxLoadData(
|
||||||
|
@ModelAttribute("schduleManageVO") SchduleManageVO schduleManageVO
|
||||||
|
, ModelMap model
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
//성인대상 강사 상세정보 조회
|
||||||
|
schduleManageVO.setUserId(loginVO.getUniqId());
|
||||||
|
|
||||||
|
|
||||||
|
schduleManageVO.setAprvlCd("60");
|
||||||
|
schduleManageVO.setLctrDivCd("20");
|
||||||
|
|
||||||
|
|
||||||
|
schduleManageVO.setSearchStartDt(schduleManageVO.getSearchStartDt().split("T")[0].replaceAll("-", ""));
|
||||||
|
|
||||||
|
return schduleManageService.selectSchManageStatusInstrList(schduleManageVO);
|
||||||
|
}
|
||||||
|
|
||||||
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
|
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
|
||||||
private PaginationInfo setPagingStep1(
|
private PaginationInfo setPagingStep1(
|
||||||
VEInstrDetailVO p_vEInstrDetailVO
|
VEInstrDetailVO p_vEInstrDetailVO
|
||||||
|
|||||||
@ -229,45 +229,51 @@ public class lctrAdultInfoStngController {
|
|||||||
}
|
}
|
||||||
//로그인 처리====================================
|
//로그인 처리====================================
|
||||||
|
|
||||||
//성인대상 강사 정보 가져오기
|
try {
|
||||||
vELctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); //강사구분 10-청소년 20-성인대상
|
//성인대상 강사 정보 가져오기
|
||||||
vELctrDetailVO.setUserId(vEInstrDetailVO.getUserId());
|
vELctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); //강사구분 10-청소년 20-성인대상
|
||||||
|
vELctrDetailVO.setUserId(vEInstrDetailVO.getUserId());
|
||||||
model.addAttribute("info", vELctrDetailVO);
|
|
||||||
|
model.addAttribute("info", vELctrDetailVO);
|
||||||
//강의지역 조회
|
|
||||||
VERsdncVO vERsdncVO = new VERsdncVO();
|
//강의지역 조회
|
||||||
List<VERsdncVO> rsdncStep1VOList = vERsdncMIXService.selectRsdncStep1List(vERsdncVO);
|
VERsdncVO vERsdncVO = new VERsdncVO();
|
||||||
model.addAttribute("rsdncStep1VOList", rsdncStep1VOList);
|
List<VERsdncVO> rsdncStep1VOList = vERsdncMIXService.selectRsdncStep1List(vERsdncVO);
|
||||||
|
model.addAttribute("rsdncStep1VOList", rsdncStep1VOList);
|
||||||
List<VERsdncVO> rsdncStep2VOList = vERsdncMIXService.selectRsdncStep2List(vERsdncVO);
|
|
||||||
model.addAttribute("rsdncStep2VOList", rsdncStep2VOList);
|
List<VERsdncVO> rsdncStep2VOList = vERsdncMIXService.selectRsdncStep2List(vERsdncVO);
|
||||||
|
model.addAttribute("rsdncStep2VOList", rsdncStep2VOList);
|
||||||
// 선호대상 공통코드 조회
|
|
||||||
List<?> prfrnTrgtList = cmmUseService.selectCmmCodeDetail("VE0006");
|
// 선호대상 공통코드 조회
|
||||||
model.addAttribute("prfrnTrgtList", prfrnTrgtList);
|
List<?> prfrnTrgtList = cmmUseService.selectCmmCodeDetail("VE0006");
|
||||||
|
model.addAttribute("prfrnTrgtList", prfrnTrgtList);
|
||||||
VELctrDetailVO lctrDetailVO = new VELctrDetailVO();
|
|
||||||
lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv());
|
VELctrDetailVO lctrDetailVO = new VELctrDetailVO();
|
||||||
lctrDetailVO.setUserId(vEInstrDetailVO.getUserId());
|
lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv());
|
||||||
|
lctrDetailVO.setUserId(vEInstrDetailVO.getUserId());
|
||||||
//강의설정테이블
|
|
||||||
//VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO);
|
//강의설정테이블
|
||||||
//VELctrDetailVO lctrStngInfo = vELctrMIXService.selectLctrStngDetail(lctrDetailVO);
|
//VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO);
|
||||||
//lctrDetailVO.setUseYn(//useYn);
|
//VELctrDetailVO lctrStngInfo = vELctrMIXService.selectLctrStngDetail(lctrDetailVO);
|
||||||
VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO);
|
//lctrDetailVO.setUseYn(//useYn);
|
||||||
model.addAttribute("lctrStngInfo", lctrStngInfo);
|
VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO);
|
||||||
|
model.addAttribute("lctrStngInfo", lctrStngInfo);
|
||||||
//선호대상 정보 테이블
|
|
||||||
vELctrDetailVO.setLctrStngOrd(lctrStngInfo.getLctrStngOrd());
|
//선호대상 정보 테이블
|
||||||
List<VELctrDetailVO> lctrPrfrnInfo = vELctrPrfrnService.selectPrfrnInfoList(vELctrDetailVO);
|
vELctrDetailVO.setLctrStngOrd(lctrStngInfo.getLctrStngOrd());
|
||||||
model.addAttribute("lctrPrfrnInfo", lctrPrfrnInfo);
|
List<VELctrDetailVO> lctrPrfrnInfo = vELctrPrfrnService.selectPrfrnInfoList(vELctrDetailVO);
|
||||||
|
model.addAttribute("lctrPrfrnInfo", lctrPrfrnInfo);
|
||||||
//강의지역 조회
|
|
||||||
vELctrDetailVO.setRecordCountPerPage(1000);
|
//강의지역 조회
|
||||||
vELctrDetailVO.setFirstIndex(0);
|
vELctrDetailVO.setRecordCountPerPage(1000);
|
||||||
List<VELctrDetailVO> vELctrAreaList = vELctrAreaService.selectPagingList(vELctrDetailVO);
|
vELctrDetailVO.setFirstIndex(0);
|
||||||
model.addAttribute("vELctrAreaList", vELctrAreaList);
|
List<VELctrDetailVO> vELctrAreaList = vELctrAreaService.selectPagingList(vELctrDetailVO);
|
||||||
|
model.addAttribute("vELctrAreaList", vELctrAreaList);
|
||||||
|
|
||||||
|
}catch(Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return "/web/ve/instr/adultVisitEdu/lctrInfo/lctrStngDetailView";
|
return "/web/ve/instr/adultVisitEdu/lctrInfo/lctrStngDetailView";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
@ -34,6 +35,8 @@ import kcc.com.utl.user.service.CheckFileUtil;
|
|||||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||||
import kcc.kccadr.accdnt.acd.service.AdjstChangeDateService;
|
import kcc.kccadr.accdnt.acd.service.AdjstChangeDateService;
|
||||||
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
|
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
|
||||||
|
import kcc.kccadr.sch.service.SchduleManageService;
|
||||||
|
import kcc.kccadr.sch.service.SchduleManageVO;
|
||||||
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.let.utl.fcc.service.EgovCryptoUtil4VO;
|
import kcc.let.utl.fcc.service.EgovCryptoUtil4VO;
|
||||||
@ -142,6 +145,10 @@ public class InstrPrflController {
|
|||||||
@Resource(name="egovCryptoUtil4VO")
|
@Resource(name="egovCryptoUtil4VO")
|
||||||
private EgovCryptoUtil4VO egovCryptoUtil4VO;
|
private EgovCryptoUtil4VO egovCryptoUtil4VO;
|
||||||
|
|
||||||
|
//일정 정보 가져오기
|
||||||
|
@Resource(name = "schduleManageService")
|
||||||
|
private SchduleManageService schduleManageService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1.신청변경신청 목록 - L
|
* 1.신청변경신청 목록 - L
|
||||||
*/
|
*/
|
||||||
@ -836,6 +843,95 @@ public class InstrPrflController {
|
|||||||
return "/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect";
|
return "/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 청소년대상 강사 일정달력
|
||||||
|
*/
|
||||||
|
@RequestMapping("/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflSchdl.do")
|
||||||
|
public String instrPrflSchdl(
|
||||||
|
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
|
||||||
|
|
||||||
|
, ModelMap model
|
||||||
|
, RedirectAttributes redirectAttributes
|
||||||
|
, HttpSession session
|
||||||
|
, HttpServletRequest request
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
|
if (loginVO == null || ssoLoginVO == null) {
|
||||||
|
return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
|
||||||
|
}
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
//청소년 강사 상세정보 조회
|
||||||
|
vEInstrDetailVO.setUserId(loginVO.getUniqId());
|
||||||
|
vEInstrDetailVO.setInstrDiv("10");
|
||||||
|
vEInstrDetailVO.setUseYn("Y");
|
||||||
|
VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO);
|
||||||
|
info = egovCryptoUtil.decryptVEInstrDetailVO(info);
|
||||||
|
|
||||||
|
model.addAttribute("info", info);
|
||||||
|
|
||||||
|
//성인대상 강사 신청내역 조회
|
||||||
|
vEInstrDetailVO.setFirstIndex(0);
|
||||||
|
vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회
|
||||||
|
List<VEInstrDetailVO> vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO);
|
||||||
|
|
||||||
|
model.addAttribute("vEInstrAplctList", vEInstrAplctList);
|
||||||
|
|
||||||
|
//성인대상 강사 수정신청 내역 조회
|
||||||
|
vEInstrDetailVO.setFirstIndex(0);
|
||||||
|
vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회
|
||||||
|
List<VEInstrDetailVO> vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO);
|
||||||
|
|
||||||
|
model.addAttribute("vEInstrMdfyList", vEInstrMdfyList);
|
||||||
|
|
||||||
|
//패널티 조회
|
||||||
|
List<VEInstrDetailVO> vEInstrPnltyList = vEInstrMixService.selectPnltyList(vEInstrDetailVO);
|
||||||
|
model.addAttribute("vEInstrPnltyList", vEInstrPnltyList);
|
||||||
|
|
||||||
|
//현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기
|
||||||
|
vEInstrDetailVO.setFirstIndex(0);
|
||||||
|
vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'");
|
||||||
|
List<VEInstrDetailVO> vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO);
|
||||||
|
|
||||||
|
model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList);
|
||||||
|
|
||||||
|
return "/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflSchdl";
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/web/ve/instr/tngrVisitEdu/instrInfo/tngrSchduleManagerAjaxLoadData.do")
|
||||||
|
@ResponseBody
|
||||||
|
public List<SchduleManageVO> adultSchduleManagerAjaxLoadData(
|
||||||
|
@ModelAttribute("schduleManageVO") SchduleManageVO schduleManageVO
|
||||||
|
, ModelMap model
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
//로그인 정보 가져오기
|
||||||
|
|
||||||
|
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||||
|
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
|
||||||
|
|
||||||
|
|
||||||
|
//로그인 처리====================================
|
||||||
|
|
||||||
|
//성인대상 강사 상세정보 조회
|
||||||
|
schduleManageVO.setUserId(loginVO.getUniqId());
|
||||||
|
|
||||||
|
|
||||||
|
schduleManageVO.setAprvlCd("60");
|
||||||
|
schduleManageVO.setLctrDivCd("10");
|
||||||
|
|
||||||
|
|
||||||
|
schduleManageVO.setSearchStartDt(schduleManageVO.getSearchStartDt().split("T")[0].replaceAll("-", ""));
|
||||||
|
|
||||||
|
return schduleManageService.selectSchManageStatusInstrList(schduleManageVO);
|
||||||
|
}
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|||||||
@ -316,6 +316,133 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 사용자(강사) 일정 달력 -->
|
||||||
|
<select id="schduleManageDAO.selectSchManageStatusInstrList" parameterClass="SchduleManageVO" resultClass="SchduleManageVO" remapResults="true">
|
||||||
|
/* schduleManageDAO.selectSchManageStatusInstrList */
|
||||||
|
SELECT aa.title
|
||||||
|
, aa.content
|
||||||
|
, aa.schSeq
|
||||||
|
, aa.schChasiSeq
|
||||||
|
, to_char( TO_DATE(aa.edu_hope_dt|| aa.strt_tm,'YYYY.MM.DDHH24MI'), 'YYYY-MM-DD HH24:MI:SS' ) AS "start"
|
||||||
|
, to_char( TO_DATE(aa.edu_hope_dt|| aa.strt_tm,'YYYY.MM.DDHH24MI'), 'YYYY-MM-DD' ) AS dateTxt
|
||||||
|
, to_char( TO_DATE(aa.edu_hope_dt|| aa.strt_tm,'YYYY.MM.DDHH24MI'), 'HH24:MI:SS' ) AS timeTxt
|
||||||
|
,
|
||||||
|
TO_CHAR( TO_DATE(aa.edu_hope_dt|| aa.strt_tm,'YYYY.MM.DDHH24MI'), 'YYYY-MM-DD HH24:MI' )
|
||||||
|
|| '~'
|
||||||
|
||TO_CHAR( TO_DATE(aa.edu_hope_dt|| AA.END_tm,'YYYY.MM.DDHH24MI'), 'HH24:MI' )
|
||||||
|
AS eduDate
|
||||||
|
, aa.url
|
||||||
|
, aa.allDay
|
||||||
|
, aa.eduSlctCd
|
||||||
|
, aa.insttDivCd
|
||||||
|
, aa.eduMd
|
||||||
|
, aa.addr || ' ' || aa.addrDetail AS addrDetail
|
||||||
|
, aa.chrgNm
|
||||||
|
, aa.jobNm
|
||||||
|
, aa.clphone
|
||||||
|
, aa.phone
|
||||||
|
, aa.email
|
||||||
|
, aa.hopeSbjct
|
||||||
|
, aa.rqstCn
|
||||||
|
, aa.trgt
|
||||||
|
, aa.prsnl
|
||||||
|
, aa.instrNm
|
||||||
|
|
||||||
|
, DECODE(aa.isltnScholYn , 'Y', '예', '아니오') AS isltnScholYn
|
||||||
|
, aa.eduPlace
|
||||||
|
FROM(
|
||||||
|
SELECT
|
||||||
|
|
||||||
|
<isNotEmpty property="lctrDivCd">
|
||||||
|
<isEqual property="lctrDivCd" compareValue="10">
|
||||||
|
a.schol_instt_nm title ,
|
||||||
|
a.schol_instt_nm content ,
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="lctrDivCd" compareValue="20">
|
||||||
|
a.instt_nm title ,
|
||||||
|
a.instt_nm content ,
|
||||||
|
</isEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
a.edu_aplct_ord schSeq ,
|
||||||
|
b.edu_chasi_ord schChasiSeq ,
|
||||||
|
b.edu_hope_dt,
|
||||||
|
b.strt_tm,
|
||||||
|
b.end_tm,
|
||||||
|
'' url ,
|
||||||
|
0 allDay,
|
||||||
|
c.code_nm eduSlctCd,
|
||||||
|
d.code_nm insttDivCd,
|
||||||
|
a.EDU_MD eduMd,
|
||||||
|
a.ADDR addr,
|
||||||
|
a.ADDR_DETAIL addrDetail,
|
||||||
|
a.CHRG_NM chrgNm,
|
||||||
|
a.JOB_NM jobNm,
|
||||||
|
a.CLPHONE clphone,
|
||||||
|
a.PHONE phone,
|
||||||
|
a.EMAIL email,
|
||||||
|
a.HOPE_SBJCT hopeSbjct,
|
||||||
|
a.RQST_CN rqstCn,
|
||||||
|
b.trgt trgt,
|
||||||
|
b.prsnl prsnl,
|
||||||
|
f.instr_nm instrNm,
|
||||||
|
a.isltn_schol_yn isltnScholYn,
|
||||||
|
a.edu_place eduPlace
|
||||||
|
|
||||||
|
FROM ve_edu_aplct a
|
||||||
|
, ve_edu_chasi b
|
||||||
|
|
||||||
|
LEFT OUTER JOIN ve_edu_chasi_instr_asgnm e
|
||||||
|
ON(
|
||||||
|
e.EDU_APLCT_ORD = b.EDU_APLCT_ORD
|
||||||
|
AND e.EDU_CHASI_ORD = b.EDU_CHASI_ORD
|
||||||
|
)
|
||||||
|
LEFT OUTER JOIN ve_instr_detail f
|
||||||
|
ON(
|
||||||
|
f.user_id = e.user_id
|
||||||
|
AND f.use_yn = 'Y'
|
||||||
|
AND f.instr_div = #lctrDivCd#
|
||||||
|
)
|
||||||
|
, lettccmmndetailcode c
|
||||||
|
, lettccmmndetailcode d
|
||||||
|
|
||||||
|
WHERE 1=1
|
||||||
|
AND NVL(A.USE_YN, 'Y') != 'N'
|
||||||
|
<isNotEmpty property="aprvlCd">
|
||||||
|
AND A.aprvl_cd = #aprvlCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="lctrDivCd">
|
||||||
|
AND A.lctr_div_cd = #lctrDivCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
AND a.edu_aplct_ord=b.edu_aplct_ord
|
||||||
|
|
||||||
|
AND length(b.edu_hope_dt)=10
|
||||||
|
AND length(b.strt_tm)=4
|
||||||
|
AND length(b.end_tm)=4
|
||||||
|
<isNotEmpty property="searchStartDt">
|
||||||
|
AND SUBSTRING(b.edu_hope_dt,1,7)
|
||||||
|
= TO_CHAR(TO_DATE(#searchStartDt#,'YYYYMMDD')+7,'YYYY.MM')
|
||||||
|
</isNotEmpty>
|
||||||
|
AND c.code_id = 'VE0007'
|
||||||
|
AND c.code = a.edu_slct_cd
|
||||||
|
<isNotEmpty property="lctrDivCd">
|
||||||
|
<isEqual property="lctrDivCd" compareValue="10">
|
||||||
|
AND d.code_id = 'VE0009'
|
||||||
|
AND d.code = a.schol_div_cd
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="lctrDivCd" compareValue="20">
|
||||||
|
AND d.code_id = 'VE0012'
|
||||||
|
AND d.code = a.instt_div_cd
|
||||||
|
</isEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
AND e.user_id = #userId#
|
||||||
|
|
||||||
|
)aa
|
||||||
|
|
||||||
|
ORDER BY eduDate
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="schduleManageDAO.selectSchManageStatusList_ori" parameterClass="SchduleManageVO" resultClass="SchduleManageVO">
|
<select id="schduleManageDAO.selectSchManageStatusList_ori" parameterClass="SchduleManageVO" resultClass="SchduleManageVO">
|
||||||
SELECT
|
SELECT
|
||||||
SCH_SEQ AS schSeq,
|
SCH_SEQ AS schSeq,
|
||||||
|
|||||||
@ -57,6 +57,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn_wrap">
|
<div class="btn_wrap">
|
||||||
<button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do'">상세정보 보기</button>
|
<button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do'">상세정보 보기</button>
|
||||||
|
<button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl.do'">일정달력 보기</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -81,7 +82,10 @@
|
|||||||
<th scope="row">
|
<th scope="row">
|
||||||
<p>강사명</p>
|
<p>강사명</p>
|
||||||
</th>
|
</th>
|
||||||
<td><c:out value='${instrInfo.instrNm}'/></td>
|
<td><c:out value='${instrInfo.instrNm}'/>
|
||||||
|
<%-- <button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.do'">상세정보 보기</button> --%>
|
||||||
|
<%-- <button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do'">상세정보 보기</button> --%>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">
|
<th scope="row">
|
||||||
|
|||||||
@ -92,8 +92,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function fncGoList(){
|
function fncGoList(){
|
||||||
var varFrom = document.getElementById("listForm");
|
//var varFrom = document.getElementById("listForm");
|
||||||
varFrom.action = "<c:url value='/web/kccadr/accdnt/adr/adjstDeputyReqList.do'/>";
|
var varFrom = document.getElementById("createForm");
|
||||||
|
varFrom.action = "<c:url value='/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do'/>";
|
||||||
varFrom.submit();
|
varFrom.submit();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -585,6 +586,9 @@
|
|||||||
<button class="btnType06 btn_list" onclick="fncMdfy(); return false;">정보 수정 </button>
|
<button class="btnType06 btn_list" onclick="fncMdfy(); return false;">정보 수정 </button>
|
||||||
</c:if>
|
</c:if>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|
||||||
|
<button class="btnType06 btn_list" onclick="fncGoList(); return false;">목록 </button>
|
||||||
|
<!-- <button class="btnType06 btn_list" onclick="fncLctrStngDetailView(); return false;">강의 설정 정보</button> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -0,0 +1,293 @@
|
|||||||
|
<%--
|
||||||
|
|
||||||
|
Class Name : instrPrflSchdl.jsp
|
||||||
|
Description : 강사정보(성인)-일정달력
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2021.12.02 조용준 내용
|
||||||
|
|
||||||
|
author : 조용준
|
||||||
|
since : 2021.12.02
|
||||||
|
|
||||||
|
--%>
|
||||||
|
<%@ page contentType="text/html; charset=utf-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<style type="text/css">
|
||||||
|
.fc-day-sat { color:#0000FF; } /* 토요일 */
|
||||||
|
.fc-day-sun { color:#FF0000; } /* 일요일 */
|
||||||
|
</style>
|
||||||
|
<link type="text/css" rel="stylesheet" href="<c:url value='/js/fullcalendar/5.9.0/main.css' />" />
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/main.js'/>"></script>
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/locales-all.js'/>"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function(){
|
||||||
|
});
|
||||||
|
|
||||||
|
var ex_s_todate;// = info.startStr;
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
var calendarEl = document.getElementById('schduleManager');
|
||||||
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||||
|
locale: 'ko',
|
||||||
|
timezone : "local",
|
||||||
|
weekends : true,
|
||||||
|
editable : false,
|
||||||
|
firstDay : 0, //월요일이 먼저 오게 하려면 1
|
||||||
|
dayMaxEvents: true,
|
||||||
|
navLinks: false,
|
||||||
|
customButtons: {
|
||||||
|
myCustomButton: {
|
||||||
|
text: '오늘',
|
||||||
|
click: function(event, elm) {
|
||||||
|
alert('clicked the custom button!');
|
||||||
|
}
|
||||||
|
},viewWeekends : {
|
||||||
|
text : '주말',
|
||||||
|
click : function (event, elm) {
|
||||||
|
calendar.setOption("weekends" , calendar.getOption("weekends") ? false : true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},buttonText: {
|
||||||
|
listMonth: '일정'
|
||||||
|
},
|
||||||
|
headerToolbar: {
|
||||||
|
//left: 'prevYear nextYear today',
|
||||||
|
left: 'today',
|
||||||
|
center: 'prev title next',
|
||||||
|
//right: 'dayGridMonth,listMonth'
|
||||||
|
right: ''
|
||||||
|
},
|
||||||
|
eventSources: [
|
||||||
|
{
|
||||||
|
events: function(info, successCallback, failureCallback) {
|
||||||
|
console.log(info);
|
||||||
|
|
||||||
|
var s_todate = info.startStr;
|
||||||
|
ex_s_todate = info.startStr;
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: '<c:url value="/web/ve/instr/adultVisitEdu/instrInfo/adultSchduleManagerAjaxLoadData.do"/>',
|
||||||
|
type: 'POST',
|
||||||
|
dataType: 'json',
|
||||||
|
data: {
|
||||||
|
searchStartDt : "",
|
||||||
|
//searchStartDt : "",
|
||||||
|
searchStartDt : s_todate,
|
||||||
|
todate : info.start,
|
||||||
|
searchYearMonth : function(){
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success: function(data) {
|
||||||
|
successCallback(data);
|
||||||
|
|
||||||
|
// 날짜 계산
|
||||||
|
setCalDate(data, info.startStr);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
eventContent: function(arg, createElement) {
|
||||||
|
event.preventDefault();
|
||||||
|
console.log(arg.event._def.url);
|
||||||
|
arg.event._def.url = "#none";
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
eventClick: function(info) {
|
||||||
|
info.jsEvent.preventDefault();
|
||||||
|
schDetailPop(info.event._def.extendedProps.schSeq, info.event._def.extendedProps.schChasiSeq);
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
});
|
||||||
|
calendar.render();
|
||||||
|
});
|
||||||
|
|
||||||
|
function schDetailPop(schSeq, schChasiSeq) {
|
||||||
|
|
||||||
|
window.open('', 'schDetailPop', "width=600, height=520, left=200, top=130","location = no","status= no","toolbars= no");
|
||||||
|
document.listForm.eduAplctOrd.value = schSeq ;
|
||||||
|
document.listForm.eduChasiOrd.value = schChasiSeq ;
|
||||||
|
|
||||||
|
document.listForm.method = "post";
|
||||||
|
document.listForm.action = "${pageContext.request.contextPath}/kccadr/oprtn/adultVisitEdu/popup/SchduleManagerPopDetail.do";
|
||||||
|
document.listForm.target = "schDetailPop" ;
|
||||||
|
document.listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.searchStartDt.value = ex_s_todate ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/adultSchduleManagerExcelDownLoad.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*##############################################################################
|
||||||
|
* START
|
||||||
|
*##############################################################################
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 날짜 계산
|
||||||
|
function setCalDate(data, startStr) {
|
||||||
|
// 현재월 구하기
|
||||||
|
startStr = startStr.substr(0, 10);
|
||||||
|
startStr = replaceAll(startStr, "-", "");
|
||||||
|
startStr = replaceAll(startStr, ".", "");
|
||||||
|
startStr = replaceAll(startStr, "/", "");
|
||||||
|
|
||||||
|
var todayYear = startStr.substring(0,4);
|
||||||
|
var todayMonth = 0;
|
||||||
|
var todayDay = startStr.substring(6,8);
|
||||||
|
|
||||||
|
if (todayDay == "01") {
|
||||||
|
todayMonth = startStr.substring(4,6);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (startStr.substring(4,6) == "12") {
|
||||||
|
todayMonth = "01";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
todayMonth = parseInt(startStr.substring(4,6), 10) + 1;
|
||||||
|
if (todayMonth < 10) {
|
||||||
|
todayMonth = "0" + todayMonth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// End
|
||||||
|
//alert(todayMonth);
|
||||||
|
|
||||||
|
var monthCnt = 0;
|
||||||
|
var week1Cnt = 0, week2Cnt = 0, week3Cnt = 0, week4Cnt = 0, week5Cnt = 0, week6Cnt = 0;
|
||||||
|
|
||||||
|
var sHtml = "";
|
||||||
|
for (var j = 0; j < data.length; j++) {
|
||||||
|
var schStartDate = data[j].start.substr(0, 10);
|
||||||
|
schStartDate = replaceAll(schStartDate, "-", "");
|
||||||
|
schStartDate = replaceAll(schStartDate, ".", "");
|
||||||
|
schStartDate = replaceAll(schStartDate, "/", "");
|
||||||
|
|
||||||
|
var thisYear = schStartDate.substring(0,4);
|
||||||
|
var thisMonth = schStartDate.substring(4,6);
|
||||||
|
var thisDay = schStartDate.substring(6,8);
|
||||||
|
var thisWeek = getSecofWeek(schStartDate);
|
||||||
|
|
||||||
|
// 해당월 데이터만 처리
|
||||||
|
if (todayMonth == thisMonth) {
|
||||||
|
monthCnt++;
|
||||||
|
|
||||||
|
if (thisWeek == 1) {
|
||||||
|
week1Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 2) {
|
||||||
|
week2Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 3) {
|
||||||
|
week3Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 4) {
|
||||||
|
week4Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 5) {
|
||||||
|
week5Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 6) {
|
||||||
|
week6Cnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sHtml += "전체 : " + monthCnt + "건";
|
||||||
|
sHtml += " (1주차 : " + week1Cnt + "건";
|
||||||
|
sHtml += ", 2주차 : " + week2Cnt + "건";
|
||||||
|
sHtml += ", 3주차 : " + week3Cnt + "건";
|
||||||
|
sHtml += ", 4주차 : " + week4Cnt + "건";
|
||||||
|
sHtml += ", 5주차 : " + week5Cnt + "건";
|
||||||
|
sHtml += ", 6주차 : " + week6Cnt + "건)";
|
||||||
|
|
||||||
|
sHtml += ' <button type="button" class="btn_down_excel" onclick="excelDownLoad();">일정현황 엑셀 다운로드</button>';
|
||||||
|
|
||||||
|
|
||||||
|
//$("#weekCnt").html(sHtml);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 해당일 주차 계산
|
||||||
|
function getSecofWeek(date) {
|
||||||
|
var d = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, date.substring(6,8) );
|
||||||
|
var fd = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, 1 );
|
||||||
|
|
||||||
|
return Math.ceil((parseInt(date.substring(6,8))+fd.getDay())/7);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReplaceAll
|
||||||
|
function replaceAll(str, searchStr, replaceStr) {
|
||||||
|
return str.split(searchStr).join(replaceStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncGoList(){
|
||||||
|
//var varFrom = document.getElementById("listForm");
|
||||||
|
var varFrom = document.getElementById("listForm");
|
||||||
|
varFrom.action = "<c:url value='/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do'/>";
|
||||||
|
varFrom.submit();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<title>일정현황</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="listForm" name="listForm" method="post">
|
||||||
|
<input type="hidden" name="eduAplctOrd" value="" />
|
||||||
|
<input type="hidden" name="eduChasiOrd" value="" />
|
||||||
|
<input type="hidden" name="searchStartDt" value="" />
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
<div class="cont_wrap">
|
||||||
|
|
||||||
|
<div class="box">
|
||||||
|
<!-- cont_tit -->
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>일정현황
|
||||||
|
|
||||||
|
</h2>
|
||||||
|
<div class="btn_wrap btn_layout01" style="margin-top: 0px;">
|
||||||
|
<div class="btn_Left">
|
||||||
|
<button class="btnType05" onclick="fncGoList(); return false;" style="width: 100px;">목록 </button>
|
||||||
|
</div>
|
||||||
|
<div class="btn_Right">
|
||||||
|
<!-- <button class="btnType05" onclick="fncGoList(); return false;">목록 </button> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- //cont_tit -->
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div style="float: right; padding-right: 40px; color: #777777;" id="weekCnt">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="cont">
|
||||||
|
<div id="schduleManager"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- //cont -->
|
||||||
|
</body>
|
||||||
@ -116,6 +116,7 @@
|
|||||||
<c:out value='${instrInfo.instrNm}'/>
|
<c:out value='${instrInfo.instrNm}'/>
|
||||||
<button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.do'">상세정보 보기</button>
|
<button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.do'">상세정보 보기</button>
|
||||||
<button type="button" class="btnType05" onclick="fncGoLctrRsrchDetail('${vELctrDetailVO.rsrchInstrDiv}','${vELctrDetailVO.stngYrMnt}');">강의설정보기</button>
|
<button type="button" class="btnType05" onclick="fncGoLctrRsrchDetail('${vELctrDetailVO.rsrchInstrDiv}','${vELctrDetailVO.stngYrMnt}');">강의설정보기</button>
|
||||||
|
<button type="button" class="btnType05" onclick="location.href='${pageContext.request.contextPath}/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflSchdl.do'">일정달력 보기</button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -0,0 +1,293 @@
|
|||||||
|
<%--
|
||||||
|
|
||||||
|
Class Name : instrPrflSchdl.jsp
|
||||||
|
Description : 청소년 강사 일정 달력
|
||||||
|
Modification Information
|
||||||
|
|
||||||
|
수정일 수정자 수정내용
|
||||||
|
------- -------- ---------------------------
|
||||||
|
2021.12.02 조용준 내용
|
||||||
|
|
||||||
|
author : 조용준
|
||||||
|
since : 2021.12.02
|
||||||
|
|
||||||
|
--%>
|
||||||
|
<%@ page contentType="text/html; charset=utf-8"%>
|
||||||
|
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||||
|
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
|
||||||
|
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
|
||||||
|
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
|
||||||
|
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||||
|
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<style type="text/css">
|
||||||
|
.fc-day-sat { color:#0000FF; } /* 토요일 */
|
||||||
|
.fc-day-sun { color:#FF0000; } /* 일요일 */
|
||||||
|
</style>
|
||||||
|
<link type="text/css" rel="stylesheet" href="<c:url value='/js/fullcalendar/5.9.0/main.css' />" />
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/main.js'/>"></script>
|
||||||
|
<script type="text/javascript" src="<c:url value='/js/fullcalendar/5.9.0/locales-all.js'/>"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function(){
|
||||||
|
});
|
||||||
|
|
||||||
|
var ex_s_todate;// = info.startStr;
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
var calendarEl = document.getElementById('schduleManager');
|
||||||
|
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||||
|
locale: 'ko',
|
||||||
|
timezone : "local",
|
||||||
|
weekends : true,
|
||||||
|
editable : false,
|
||||||
|
firstDay : 0, //월요일이 먼저 오게 하려면 1
|
||||||
|
dayMaxEvents: true,
|
||||||
|
navLinks: false,
|
||||||
|
customButtons: {
|
||||||
|
myCustomButton: {
|
||||||
|
text: '오늘',
|
||||||
|
click: function(event, elm) {
|
||||||
|
alert('clicked the custom button!');
|
||||||
|
}
|
||||||
|
},viewWeekends : {
|
||||||
|
text : '주말',
|
||||||
|
click : function (event, elm) {
|
||||||
|
calendar.setOption("weekends" , calendar.getOption("weekends") ? false : true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},buttonText: {
|
||||||
|
listMonth: '일정'
|
||||||
|
},
|
||||||
|
headerToolbar: {
|
||||||
|
//left: 'prevYear nextYear today',
|
||||||
|
left: 'today',
|
||||||
|
center: 'prev title next',
|
||||||
|
//right: 'dayGridMonth,listMonth'
|
||||||
|
right: ''
|
||||||
|
},
|
||||||
|
eventSources: [
|
||||||
|
{
|
||||||
|
events: function(info, successCallback, failureCallback) {
|
||||||
|
console.log(info);
|
||||||
|
|
||||||
|
var s_todate = info.startStr;
|
||||||
|
ex_s_todate = info.startStr;
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: '<c:url value="/web/ve/instr/tngrVisitEdu/instrInfo/tngrSchduleManagerAjaxLoadData.do"/>',
|
||||||
|
type: 'POST',
|
||||||
|
dataType: 'json',
|
||||||
|
data: {
|
||||||
|
searchStartDt : "",
|
||||||
|
//searchStartDt : "",
|
||||||
|
searchStartDt : s_todate,
|
||||||
|
todate : info.start,
|
||||||
|
searchYearMonth : function(){
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success: function(data) {
|
||||||
|
successCallback(data);
|
||||||
|
|
||||||
|
// 날짜 계산
|
||||||
|
setCalDate(data, info.startStr);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
eventContent: function(arg, createElement) {
|
||||||
|
event.preventDefault();
|
||||||
|
console.log(arg.event._def.url);
|
||||||
|
arg.event._def.url = "#none";
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
eventClick: function(info) {
|
||||||
|
info.jsEvent.preventDefault();
|
||||||
|
schDetailPop(info.event._def.extendedProps.schSeq, info.event._def.extendedProps.schChasiSeq);
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
});
|
||||||
|
calendar.render();
|
||||||
|
});
|
||||||
|
|
||||||
|
function schDetailPop(schSeq, schChasiSeq) {
|
||||||
|
|
||||||
|
window.open('', 'schDetailPop', "width=600, height=520, left=200, top=130","location = no","status= no","toolbars= no");
|
||||||
|
document.listForm.eduAplctOrd.value = schSeq ;
|
||||||
|
document.listForm.eduChasiOrd.value = schChasiSeq ;
|
||||||
|
|
||||||
|
document.listForm.method = "post";
|
||||||
|
document.listForm.action = "${pageContext.request.contextPath}/kccadr/oprtn/adultVisitEdu/popup/SchduleManagerPopDetail.do";
|
||||||
|
document.listForm.target = "schDetailPop" ;
|
||||||
|
document.listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.searchStartDt.value = ex_s_todate ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/adultSchduleManagerExcelDownLoad.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*##############################################################################
|
||||||
|
* START
|
||||||
|
*##############################################################################
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 날짜 계산
|
||||||
|
function setCalDate(data, startStr) {
|
||||||
|
// 현재월 구하기
|
||||||
|
startStr = startStr.substr(0, 10);
|
||||||
|
startStr = replaceAll(startStr, "-", "");
|
||||||
|
startStr = replaceAll(startStr, ".", "");
|
||||||
|
startStr = replaceAll(startStr, "/", "");
|
||||||
|
|
||||||
|
var todayYear = startStr.substring(0,4);
|
||||||
|
var todayMonth = 0;
|
||||||
|
var todayDay = startStr.substring(6,8);
|
||||||
|
|
||||||
|
if (todayDay == "01") {
|
||||||
|
todayMonth = startStr.substring(4,6);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (startStr.substring(4,6) == "12") {
|
||||||
|
todayMonth = "01";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
todayMonth = parseInt(startStr.substring(4,6), 10) + 1;
|
||||||
|
if (todayMonth < 10) {
|
||||||
|
todayMonth = "0" + todayMonth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// End
|
||||||
|
//alert(todayMonth);
|
||||||
|
|
||||||
|
var monthCnt = 0;
|
||||||
|
var week1Cnt = 0, week2Cnt = 0, week3Cnt = 0, week4Cnt = 0, week5Cnt = 0, week6Cnt = 0;
|
||||||
|
|
||||||
|
var sHtml = "";
|
||||||
|
for (var j = 0; j < data.length; j++) {
|
||||||
|
var schStartDate = data[j].start.substr(0, 10);
|
||||||
|
schStartDate = replaceAll(schStartDate, "-", "");
|
||||||
|
schStartDate = replaceAll(schStartDate, ".", "");
|
||||||
|
schStartDate = replaceAll(schStartDate, "/", "");
|
||||||
|
|
||||||
|
var thisYear = schStartDate.substring(0,4);
|
||||||
|
var thisMonth = schStartDate.substring(4,6);
|
||||||
|
var thisDay = schStartDate.substring(6,8);
|
||||||
|
var thisWeek = getSecofWeek(schStartDate);
|
||||||
|
|
||||||
|
// 해당월 데이터만 처리
|
||||||
|
if (todayMonth == thisMonth) {
|
||||||
|
monthCnt++;
|
||||||
|
|
||||||
|
if (thisWeek == 1) {
|
||||||
|
week1Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 2) {
|
||||||
|
week2Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 3) {
|
||||||
|
week3Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 4) {
|
||||||
|
week4Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 5) {
|
||||||
|
week5Cnt++;
|
||||||
|
}
|
||||||
|
else if (thisWeek == 6) {
|
||||||
|
week6Cnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sHtml += "전체 : " + monthCnt + "건";
|
||||||
|
sHtml += " (1주차 : " + week1Cnt + "건";
|
||||||
|
sHtml += ", 2주차 : " + week2Cnt + "건";
|
||||||
|
sHtml += ", 3주차 : " + week3Cnt + "건";
|
||||||
|
sHtml += ", 4주차 : " + week4Cnt + "건";
|
||||||
|
sHtml += ", 5주차 : " + week5Cnt + "건";
|
||||||
|
sHtml += ", 6주차 : " + week6Cnt + "건)";
|
||||||
|
|
||||||
|
sHtml += ' <button type="button" class="btn_down_excel" onclick="excelDownLoad();">일정현황 엑셀 다운로드</button>';
|
||||||
|
|
||||||
|
|
||||||
|
//$("#weekCnt").html(sHtml);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 해당일 주차 계산
|
||||||
|
function getSecofWeek(date) {
|
||||||
|
var d = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, date.substring(6,8) );
|
||||||
|
var fd = new Date( date.substring(0,4), parseInt(date.substring(4,6))-1, 1 );
|
||||||
|
|
||||||
|
return Math.ceil((parseInt(date.substring(6,8))+fd.getDay())/7);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReplaceAll
|
||||||
|
function replaceAll(str, searchStr, replaceStr) {
|
||||||
|
return str.split(searchStr).join(replaceStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncGoList(){
|
||||||
|
//var varFrom = document.getElementById("listForm");
|
||||||
|
var varFrom = document.getElementById("listForm");
|
||||||
|
varFrom.action = "<c:url value='/web/ve/instr/tngrVisitEdu/instrInfo/instrDashboard.do'/>";
|
||||||
|
varFrom.submit();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<title>일정현황</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="listForm" name="listForm" method="post">
|
||||||
|
<input type="hidden" name="eduAplctOrd" value="" />
|
||||||
|
<input type="hidden" name="eduChasiOrd" value="" />
|
||||||
|
<input type="hidden" name="searchStartDt" value="" />
|
||||||
|
|
||||||
|
</form:form>
|
||||||
|
<div class="cont_wrap">
|
||||||
|
|
||||||
|
<div class="box">
|
||||||
|
<!-- cont_tit -->
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>일정현황
|
||||||
|
|
||||||
|
</h2>
|
||||||
|
<div class="btn_wrap btn_layout01" style="margin-top: 0px;">
|
||||||
|
<div class="btn_Left">
|
||||||
|
<button class="btnType05" onclick="fncGoList(); return false;" style="width: 100px;">목록 </button>
|
||||||
|
</div>
|
||||||
|
<div class="btn_Right">
|
||||||
|
<!-- <button class="btnType05" onclick="fncGoList(); return false;">목록 </button> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- //cont_tit -->
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div style="float: right; padding-right: 40px; color: #777777;" id="weekCnt">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="cont">
|
||||||
|
<div id="schduleManager"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- //cont -->
|
||||||
|
</body>
|
||||||
Loading…
Reference in New Issue
Block a user