2023-10-31 16:56 수정 사항 반영
This commit is contained in:
parent
16c2a9fcb2
commit
dcd285011d
@ -14,9 +14,12 @@ public interface VEEduMIXService {
|
||||
//L
|
||||
List<VEEduAplctVO> selectList(VEEduAplctVO paramVO) throws Exception;
|
||||
|
||||
//Page List
|
||||
//Page List - 대상별(차시단위)
|
||||
List<VEEduAplctVO> selectPagingList(VEEduAplctVO paramVO) throws Exception;
|
||||
|
||||
//신청별(신청단위)
|
||||
List<VEEduAplctVO> selectPagingApplyList(VEEduAplctVO paramVO) throws Exception;
|
||||
|
||||
/* 2023-0607 월별교육과정 통계와 데이터가 맞지 않아 쿼리 수정함 */
|
||||
List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception;
|
||||
|
||||
|
||||
@ -43,6 +43,12 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> selectPagingApplyList(VEEduAplctVO paramVO) throws Exception {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectPagingApplyList", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectPagingList_20230607", paramVO);
|
||||
|
||||
@ -41,6 +41,11 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
|
||||
return vEEduMIXDAO.selectPagingList(paramVO);
|
||||
}
|
||||
|
||||
public List<VEEduAplctVO> selectPagingApplyList(VEEduAplctVO paramVO) throws Exception{
|
||||
return vEEduMIXDAO.selectPagingApplyList(paramVO);
|
||||
}
|
||||
|
||||
|
||||
//paging List
|
||||
public List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception{
|
||||
return vEEduMIXDAO.selectPagingList_20230607(paramVO);
|
||||
|
||||
@ -198,7 +198,7 @@ public class EduAplctMngTngrController {
|
||||
* 2023-04-28 우영두
|
||||
*
|
||||
* */
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingApplyList(vEEduAplctVO);
|
||||
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
|
||||
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.decrypt(vEEduAplctVO.getSearchChrgNm()));
|
||||
//3.pageing step3
|
||||
@ -209,6 +209,79 @@ public class EduAplctMngTngrController {
|
||||
return "oprtn/tngrVisitEdu/eduAplctMngList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육신청관리 목록 화면(대상별)
|
||||
*/
|
||||
@RequestMapping("eduAplctMngTrgtList.do")
|
||||
public String eduAplctMngTrgtList( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , HttpSession session, ModelMap model ) throws Exception {
|
||||
|
||||
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
|
||||
//기준년도가 없으면 최종 신청년도가 속한 회차의 년도를 기본값으로 가져온다. // 없으면 올해가 기본
|
||||
/*
|
||||
{
|
||||
if ("".equals(vEEduAplctVO.getStngYr()) || vEEduAplctVO.getStngYr()==null) {
|
||||
VEAStngVO vEAStngVO = new VEAStngVO();
|
||||
String s_stngYr = vEAStngMixService.selectEduGetStngYrToStr(vEAStngVO);
|
||||
vEEduAplctVO.setStngYr(s_stngYr);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
//년도
|
||||
if(StringUtils.isBlank(vEEduAplctVO.getSearchYear())){
|
||||
//vEEduAplctVO.setSearchYear(String.valueOf(LocalDate.now().getYear()));
|
||||
}
|
||||
|
||||
//월
|
||||
if(StringUtils.isBlank(vEEduAplctVO.getSearchMonth())){
|
||||
vEEduAplctVO.setSearchMonth(String.valueOf(LocalDate.now().getMonthValue()));
|
||||
}
|
||||
if(!"".equals(vEEduAplctVO.getSearchChrgNm())) {
|
||||
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchChrgNm()));
|
||||
}
|
||||
|
||||
// 요청, 반려건
|
||||
//vEEduAplctVO.setSearchNotStatusArr(new String[]{"60"});
|
||||
// 청소년
|
||||
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
|
||||
//1.pageing step1
|
||||
PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO);
|
||||
|
||||
//정렬
|
||||
if("".equals(vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
|
||||
vEEduAplctVO.setOrderByQuery("A.SBMT_PNTTM DESC");
|
||||
}else{
|
||||
vEEduAplctVO.setOrderByQuery(vEEduAplctVO.getSearchSortCnd() + " " +vEEduAplctVO.getSearchSortOrd());
|
||||
}
|
||||
|
||||
System.out.println("vEEduAplctVO.getOrderByQuery() :: "+ vEEduAplctVO.getOrderByQuery());
|
||||
|
||||
//2. pageing step2
|
||||
vEEduAplctVO = this.setPagingStep2Sub(vEEduAplctVO, paginationInfo);
|
||||
vEEduAplctVO.setNotiUserId(user.getUniqId());
|
||||
vEEduAplctVO.setMenuNo(session.getAttribute("menuNo").toString());
|
||||
|
||||
|
||||
/*
|
||||
* 리스트 검색에서 교육일자 시작/종료일 입력 없이 검색시
|
||||
* 기존 searchEndDt where 조건에 1=2로 되어있어서 리스트 검색이 안되던 것을
|
||||
* 저작위 요청사항으로 1=1로 변경하여 날짜 입력이 안되어도 검색이 되도록 수정함
|
||||
* 2023-04-28 우영두
|
||||
*
|
||||
* */
|
||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO);
|
||||
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
|
||||
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.decrypt(vEEduAplctVO.getSearchChrgNm()));
|
||||
//3.pageing step3
|
||||
paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo);
|
||||
model.addAttribute("paginationInfo", paginationInfo);
|
||||
//대상 리스트, 페이징 정보 전달
|
||||
model.addAttribute("list", vEEduAplctVOList);
|
||||
return "oprtn/tngrVisitEdu/eduAplctMngTrgtList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육신청관리 목록 화면
|
||||
*/
|
||||
@ -834,6 +907,36 @@ public class EduAplctMngTngrController {
|
||||
return "oprtn/tngrVisitEdu/eduAplctMailDetail";
|
||||
}
|
||||
|
||||
/**
|
||||
* 청소년 교육확정 메일본문 미리보기 페이지
|
||||
*/
|
||||
@RequestMapping("popup/eduAplctMailPreviewDetail.do")
|
||||
public String eduAplctMailPreviewDetail( @ModelAttribute("cntManageVO") CntManageVO cntManageVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request ) throws Exception {
|
||||
|
||||
try {
|
||||
//샘플소스
|
||||
cntManageVO.setCntId("CNT_000000000000");
|
||||
cntManageVO.setCntDtId("CNTDT_0000000000");
|
||||
|
||||
cntManageVO = egovCntManageService.selectCntDtDetail(cntManageVO);
|
||||
model.addAttribute("cntManageVO", cntManageVO);
|
||||
|
||||
//본문적용소스
|
||||
cntManageVO.setCntId("CNT_000000000001");
|
||||
cntManageVO.setCntDtId("CNTDT_0000000001");
|
||||
|
||||
cntManageVO = egovCntManageService.selectCntDtDetail(cntManageVO);
|
||||
model.addAttribute("cntManageVO2", cntManageVO);
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
return "oprtn/tngrVisitEdu/popup/eduAplctMailPreviewDetail";
|
||||
}
|
||||
|
||||
/**
|
||||
* 청소년 교육확정 메일본문 수정
|
||||
*/
|
||||
|
||||
@ -768,6 +768,7 @@
|
||||
, b.end_oprtn_dt AS endOprtnDt
|
||||
, b.instt_nm AS insttNm
|
||||
, b.hope_sbjct AS hopeSbjct
|
||||
, b.EDU_PLACE AS eduPlace
|
||||
, a.memo_cn AS memoCn
|
||||
|
||||
, ((SUBSTR(a.end_tm, 1,2) - SUBSTR(a.strt_tm, 1,2)) * 60) + (SUBSTR(a.end_tm, 3,4) - SUBSTR(a.strt_tm, 3,4)) AS eduTM
|
||||
@ -917,6 +918,7 @@
|
||||
, b.chrg_nm AS chrgNm
|
||||
, b.phone AS phone
|
||||
, b.email AS email
|
||||
, b.edu_place AS eduPlace
|
||||
, b.end_oprtn_dt AS endOprtnDt
|
||||
, b.instt_div_cd AS insttDivCd
|
||||
, b.schol_div_cd AS scholDivCd
|
||||
|
||||
@ -328,6 +328,10 @@
|
||||
, CC.EDU_HOPE_DT AS eduHopeDt
|
||||
, CC.EDU_CHASI_ORD AS eduChasiOrd
|
||||
, CC.lrn_tm AS lrnTm
|
||||
|
||||
, CC.strt_tm AS strtTm
|
||||
, CC.end_tm AS endTm
|
||||
|
||||
, D.USER_NM AS userNm
|
||||
, E.CHRG_MJR AS chrgMjr
|
||||
, E.D_BIRTH AS dBirth
|
||||
@ -510,6 +514,8 @@
|
||||
EDU_APLCT_ORD
|
||||
,EDU_CHASI_ORD
|
||||
,SUM(lrn_tm) AS lrn_tm
|
||||
,MIN(strt_tm) AS strt_tm
|
||||
,MIN(end_tm) AS end_tm
|
||||
,MIN(
|
||||
REPLACE(
|
||||
/*
|
||||
@ -930,6 +936,753 @@
|
||||
</isNotEqual>
|
||||
</select>
|
||||
|
||||
<!-- 강사 정보 L page -->
|
||||
<select id="VEEduMIXDAO.selectPagingApplyList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* 임시.*NOT_SQL_LOG.* VEEduMIXDAO.selectPagingApplyList */
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt
|
||||
, ROWNUM AS rowNo
|
||||
, A.EDU_CN AS eduCn
|
||||
|
||||
<isNotEmpty property="s4Excel">
|
||||
, A.EDU_SLCT_CD AS eduSlctCd
|
||||
|
||||
|
||||
, (SELECT a0.code_nm
|
||||
FROM LETTCCMMNDETAILCODE a0
|
||||
WHERE a0.code_id='VE0008'
|
||||
AND a0.code =a.edu_slct_area_cd
|
||||
)
|
||||
AS eduSlctAreaCd
|
||||
, (SELECT a0.code_nm
|
||||
FROM LETTCCMMNDETAILCODE a0
|
||||
WHERE a0.code_id='VE0009'
|
||||
AND a0.code =a.schol_div_cd
|
||||
)
|
||||
AS scholDivCd
|
||||
|
||||
, (SELECT a0.code_nm
|
||||
FROM LETTCCMMNDETAILCODE a0
|
||||
WHERE a0.code_id='VE0003'
|
||||
AND a0.code =a.aprvl_cd
|
||||
)
|
||||
AS aprvlCd
|
||||
/*
|
||||
, IF(A.APRVL_CD = '60', TO_CHAR(A.APRVL_PNTTM, 'YYYY.MM.DD'), '-') AS aprvlPnttm
|
||||
*/
|
||||
|
||||
, CASE WHEN A.APRVL_CD = '60' THEN TO_CHAR(A.APRVL_PNTTM, 'YYYY.MM.DD') ELSE '-' END AS aprvlPnttm
|
||||
|
||||
, A.frst_Regist_Pnttm AS frstRegistPnttm
|
||||
|
||||
</isNotEmpty>
|
||||
|
||||
<isEmpty property="s4Excel">
|
||||
, A.EDU_SLCT_CD AS eduSlctCd
|
||||
, A.EDU_SLCT_AREA_CD AS eduSlctAreaCd
|
||||
, A.SCHOL_DIV_CD AS scholDivCd
|
||||
, A.APRVL_CD AS aprvlCd
|
||||
, TO_CHAR(A.APRVL_PNTTM, 'YYYY.MM.DD') AS aprvlPnttm
|
||||
</isEmpty>
|
||||
|
||||
, A.EDU_PLACE AS eduPlace
|
||||
|
||||
, A.SBMT_YN AS sbmtYn
|
||||
, TO_CHAR(A.SBMT_PNTTM, 'YYYY.MM.DD') AS sbmtPnttm
|
||||
|
||||
, A.SCHOL_INSTT_NM AS scholInsttNm
|
||||
|
||||
, A.INSTT_NM AS InsttNm
|
||||
|
||||
, A.EDU_APLCT_ORD AS eduAplctOrd
|
||||
, A.EDU_TRGT AS eduTrgt
|
||||
, A.EDU_PRSNL AS eduPrsnl
|
||||
, A.CHRG_NM AS chrgNm
|
||||
, A.JOB_NM AS jobNm
|
||||
, A.USE_YN AS useYn
|
||||
, A.MDFY_RQST_YN AS mdfyRqstYn
|
||||
, A.EQPMN_CN AS eqpmnCn
|
||||
, A.BLNG AS blng
|
||||
, A.DPRTM AS dprtm
|
||||
, A.FULL_NAME AS fullName
|
||||
, A.PSTN AS pstn
|
||||
, A.PRPS AS prps
|
||||
, A.RPRT_SBMT_DT AS rprtSbmtDt
|
||||
, A.hope_sbjct AS hopeSbjct
|
||||
, A.isltn_schol_yn AS isltnScholYn
|
||||
, A.clphone AS clphone
|
||||
, A.phone AS phone
|
||||
, A.Email AS email
|
||||
, A.Addr AS addr
|
||||
, A.IS_WAIT AS isWait
|
||||
, A.CORPS_EDU AS corpsEdu
|
||||
, A.BROADROOM_EDU AS broadroomEdu
|
||||
, A.ADMIN_UPDT_YN AS adminUpdtYn
|
||||
, A.OATH_ATCH_FILE_ID AS oathAtchFileId
|
||||
, A.PLAN_ATCH_FILE_ID AS planAtchFileId
|
||||
,(
|
||||
SELECT
|
||||
MAX(S2.PRCS_NM)||
|
||||
CASE WHEN COUNT(*) > 1 THEN '외' || (COUNT(*)-1)
|
||||
ELSE '' END AS PRCS_NM
|
||||
FROM VE_EDU_APLCT_ONLN S1 INNER JOIN VE_PRCS S2
|
||||
ON S1.PRCS_ORD = S2.PRCS_ORD
|
||||
WHERE 1=1
|
||||
AND S1.EDU_APLCT_ORD = A.EDU_APLCT_ORD
|
||||
GROUP BY S1.EDU_APLCT_ORD
|
||||
/*
|
||||
ORDER BY S1.PRCS_ORD
|
||||
*/
|
||||
) AS prcsGroupNm
|
||||
, A.INSTT_DIV_CD AS insttDivCd
|
||||
, A.FRST_REGISTER_ID AS frstRegisterId
|
||||
, TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY.MM.DD') AS frstRegistPnttm
|
||||
, A0.CNT-1 AS cnt
|
||||
, A0.PRCS_ORD AS prcsOrd
|
||||
, A0.PRCS_NM AS prcsNm
|
||||
|
||||
, CC.lrn_tm AS lrnTm
|
||||
|
||||
, CC.EDU_HOPE_DT AS eduHopeDt
|
||||
, CC.EDU_CHASI_ORD AS eduChasiOrd
|
||||
|
||||
, CC.strt_tm AS strtTm
|
||||
, CC.end_tm AS endTm
|
||||
|
||||
|
||||
, D.USER_NM AS userNm
|
||||
, E.CHRG_MJR AS chrgMjr
|
||||
, E.D_BIRTH AS dBirth
|
||||
, E.CHRG_SEX_CD AS chrgSexCd
|
||||
, E.CMPLT_YEAR AS cmpltYear
|
||||
, E.CMPLT_NUM AS cmpltNum
|
||||
, E.EXPRN_CLSRN_CD AS exprnClsrnCd
|
||||
, E.EXPRN_CLSRN_YEAR AS exprnClsrnYear
|
||||
, E.EXPRN_CLSRN_APLCT AS exprnClsrnAplct
|
||||
, E.EXPRN_CLSRN_APLCT_CN AS exprnClsrnAplctCn
|
||||
, E.TRGT_GRADE AS trgtGrade
|
||||
, E.TRGT_CLSRM AS trgtClsrm
|
||||
, E.TRGT_PRSNL AS trgtPrsnl
|
||||
, E.RPRT_SBMT AS rprtSbmt
|
||||
, E.OPRTN_STRT_DT AS oprtnStrtDt
|
||||
, E.OPRTN_END_DT AS oprtnEndDt
|
||||
, E.OPRTN_FILE_ID AS oprtnFileId
|
||||
, H.APRVL_CD AS rprtAprvlCd
|
||||
, (
|
||||
SELECT
|
||||
S3.end_pnttm
|
||||
FROM ve_prcs_aplct_prd S3
|
||||
WHERE S3.use_YN = 'Y' AND S3.frst_regist_pnttm = (SELECT MAX(frst_regist_pnttm) FROM ve_prcs_aplct_prd)
|
||||
) AS endPnttm
|
||||
, (
|
||||
SELECT
|
||||
S4.end_pnttm
|
||||
FROM ve_prcs_aplct_prd S4
|
||||
WHERE S4.prcs_aplct_prd_ord = A.prcs_ord
|
||||
) AS prcsEndPnttm
|
||||
, (
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM ve_edu_chasi_instr_asgnm X
|
||||
, ve_edu_chasi y
|
||||
WHERE A.edu_aplct_ord = X.edu_aplct_ord
|
||||
|
||||
AND X.asgnm_aprvl_cd = '30'
|
||||
|
||||
AND x.EDU_APLCT_ORD=y.EDU_APLCT_ORD
|
||||
AND x.EDU_CHASI_ORD=y.EDU_CHASI_ORD
|
||||
) AS instrCnfrmCnt
|
||||
,(
|
||||
SELECT
|
||||
/*
|
||||
COUNT(1)
|
||||
*/
|
||||
sum(NVL(chasi,1))
|
||||
FROM ve_edu_chasi Z
|
||||
WHERE Z.edu_aplct_ord = A.edu_aplct_ord
|
||||
) AS chasiCnt
|
||||
,
|
||||
/*
|
||||
(
|
||||
SELECT COUNT(1)
|
||||
FROM ve_new_noti e
|
||||
WHERE ((A.edu_aplct_ord = e.tbl_uniq_ord OR CC.edu_aplct_ord = e.tbl_uniq_ord) OR CC.edu_chasi_ord = e.tbl_uniq_ord)
|
||||
AND e.menu_no = menuNo
|
||||
AND e.frst_register_id = notiUserId
|
||||
)
|
||||
AS notiCnt,
|
||||
*/
|
||||
( SELECT
|
||||
COUNT(1)
|
||||
FROM ve_acmdt_aplct ZZ
|
||||
, VE_EDU_CHASI YY
|
||||
WHERE A.EDU_APLCT_ORD = ZZ.EDU_APLCT_ORD
|
||||
AND ZZ.EDU_APLCT_ORD = YY.EDU_APLCT_ORD
|
||||
AND ZZ.EDU_CHASI_ORD = YY.EDU_CHASI_ORD
|
||||
AND ZZ.sbmt_yn = 'Y'
|
||||
AND ZZ.APRVL_CD = '10'
|
||||
) AS acmdtCnt,
|
||||
( SELECT COUNT(1)
|
||||
FROM VE_ACMDT_APLCT ZZ
|
||||
, VE_EDU_CHASI YY
|
||||
WHERE A.EDU_APLCT_ORD = ZZ.EDU_APLCT_ORD
|
||||
AND ZZ.EDU_APLCT_ORD = YY.EDU_APLCT_ORD
|
||||
AND ZZ.EDU_CHASI_ORD = YY.EDU_CHASI_ORD
|
||||
AND ZZ.SBMT_YN = 'Y'
|
||||
) AS acmdtAllCnt
|
||||
|
||||
,(
|
||||
|
||||
SELECT COUNT(*)
|
||||
FROM ve_prcs_cmplt_detail a0
|
||||
INNER JOIN ve_prcs b0
|
||||
ON a0.prcs_ord = b0.prcs_ord
|
||||
INNER JOIN ve_prcs_onln_cntnt c0
|
||||
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||
WHERE 1 =1
|
||||
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||
AND NVL(a0.sbmt_yn,'N')='Y'
|
||||
|
||||
) AS isEndCnt
|
||||
|
||||
,(
|
||||
|
||||
SELECT sum(a0.EDU_PRSNL)
|
||||
FROM ve_prcs_cmplt_detail a0
|
||||
INNER JOIN ve_prcs b0
|
||||
ON a0.prcs_ord = b0.prcs_ord
|
||||
INNER JOIN ve_prcs_onln_cntnt c0
|
||||
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||
WHERE 1 =1
|
||||
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||
AND NVL(a0.sbmt_yn,'N')='Y'
|
||||
|
||||
) AS endEduPrsnl
|
||||
|
||||
|
||||
, g.edu_strt_dt AS eduStrtDt
|
||||
, g.edu_end_dt AS eduEndDt
|
||||
/*
|
||||
, IF(A.APRVL_CD='20'
|
||||
and
|
||||
(
|
||||
|
||||
SELECT COUNT(*)
|
||||
FROM ve_prcs_cmplt_detail a0
|
||||
INNER JOIN ve_prcs b0
|
||||
ON a0.prcs_ord = b0.prcs_ord
|
||||
INNER JOIN ve_prcs_onln_cntnt c0
|
||||
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||
WHERE 1 =1
|
||||
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||
AND NVL(a0.sbmt_yn,'N')='Y'
|
||||
|
||||
)>0
|
||||
|
||||
, g.edu_reg_dt
|
||||
, ''
|
||||
) AS eduRegDt
|
||||
*/
|
||||
|
||||
/*
|
||||
, IF(A.APRVL_CD='20'
|
||||
and
|
||||
(
|
||||
|
||||
SELECT COUNT(*)
|
||||
FROM ve_prcs_cmplt_detail a0
|
||||
INNER JOIN ve_prcs b0
|
||||
ON a0.prcs_ord = b0.prcs_ord
|
||||
INNER JOIN ve_prcs_onln_cntnt c0
|
||||
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||
WHERE 1 =1
|
||||
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||
AND NVL(a0.sbmt_yn,'N')='Y'
|
||||
|
||||
)>0
|
||||
and length(g.edu_strt_dt)=8
|
||||
and length(g.edu_end_dt)=8
|
||||
|
||||
,
|
||||
SUBSTRING(g.edu_strt_dt,1,4) || '.' || SUBSTRING(g.edu_strt_dt,5,2) || '.' || SUBSTRING(g.edu_strt_dt,7,2)
|
||||
|| '~'
|
||||
|| SUBSTRING(g.edu_end_dt,1,4) || '.' || SUBSTRING(g.edu_end_dt,5,2) || '.' || SUBSTRING(g.edu_end_dt,7,2)
|
||||
|
||||
|
||||
, ''
|
||||
) AS eduDt
|
||||
*/
|
||||
|
||||
FROM VE_EDU_APLCT A LEFT OUTER JOIN (
|
||||
SELECT
|
||||
AA.EDU_APLCT_ORD
|
||||
, AA.CNT
|
||||
, AA.PRCS_ORD
|
||||
, BB.PRCS_NM
|
||||
FROM (
|
||||
SELECT
|
||||
A.EDU_APLCT_ORD
|
||||
, COUNT(*) CNT
|
||||
, MIN(B.PRCS_ORD) PRCS_ORD
|
||||
FROM VE_EDU_APLCT A , VE_EDU_APLCT_ONLN B
|
||||
WHERE A.EDU_APLCT_ORD = B.EDU_APLCT_ORD
|
||||
GROUP BY A.EDU_APLCT_ORD
|
||||
)AA, VE_PRCS BB
|
||||
WHERE AA.PRCS_ORD = BB.PRCS_ORD
|
||||
)A0 ON(A.EDU_APLCT_ORD = A0.EDU_APLCT_ORD)
|
||||
/*
|
||||
LEFT OUTER JOIN (
|
||||
SELECT
|
||||
EDU_APLCT_ORD
|
||||
,EDU_CHASI_ORD
|
||||
,SUM(lrn_tm) AS lrn_tm
|
||||
,MIN(
|
||||
REPLACE(
|
||||
CASE WHEN EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = '' THEN NULL ELSE EDU_HOPE_DT END
|
||||
, '.'
|
||||
, ''
|
||||
)
|
||||
) AS EDU_HOPE_DT
|
||||
FROM VE_EDU_CHASI
|
||||
GROUP BY EDU_APLCT_ORD, EDU_CHASI_ORD
|
||||
) CC ON A.EDU_APLCT_ORD = CC.EDU_APLCT_ORD
|
||||
*/
|
||||
|
||||
LEFT OUTER JOIN
|
||||
(
|
||||
SELECT vec4.*
|
||||
FROM (
|
||||
SELECT vec1.edu_aplct_ord, min(vec1.EDU_CHASI_ORD) edu_chasi_ord
|
||||
FROM ve_edu_chasi vec1
|
||||
,(
|
||||
SELECT EDU_APLCT_ORD
|
||||
, MIN(
|
||||
/* IF(EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = '', NULL, EDU_HOPE_DT) */
|
||||
CASE
|
||||
WHEN EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = ''
|
||||
THEN '9999.12.31'
|
||||
ELSE EDU_HOPE_DT
|
||||
END ) AS EDU_HOPE_DT
|
||||
FROM ve_edu_chasi
|
||||
GROUP BY EDU_APLCT_ORD
|
||||
)vec2
|
||||
WHERE vec1.edu_aplct_ord=vec2.edu_aplct_ord
|
||||
AND vec1.edu_hope_dt=vec2.edu_hope_dt
|
||||
GROUP BY vec1.edu_aplct_ord
|
||||
)vec3
|
||||
, ve_edu_chasi vec4
|
||||
WHERE vec3.edu_aplct_ord=vec4.edu_aplct_ord
|
||||
AND vec3.edu_chasi_ord=vec4.edu_chasi_ord
|
||||
)CC
|
||||
ON A.EDU_APLCT_ORD = CC.EDU_APLCT_ORD
|
||||
|
||||
LEFT OUTER JOIN COMVNUSERMASTER D
|
||||
ON A.USER_ID = D.USER_ID
|
||||
LEFT OUTER JOIN VE_EDU_OPRTN E
|
||||
ON A.EDU_APLCT_ORD = E.EDU_APLCT_ORD
|
||||
<isEqual property="lctrDivCd" compareValue="20">
|
||||
LEFT OUTER JOIN ve_edu_chasi_instr_asgnm DD
|
||||
ON (
|
||||
A.EDU_APLCT_ORD = DD.EDU_APLCT_ORD
|
||||
AND CC.EDU_CHASI_ORD = DD.EDU_CHASI_ORD
|
||||
)
|
||||
LEFT OUTER JOIN ve_instr_detail F
|
||||
ON (DD.USER_ID = F.USER_ID
|
||||
AND F.USE_YN = 'Y'
|
||||
<isNotEmpty property="instrDiv">
|
||||
AND F.instr_div = #instrDiv#
|
||||
</isNotEmpty>
|
||||
AND F.INSTR_DIV = #instrDiv#)
|
||||
</isEqual>
|
||||
|
||||
LEFT OUTER JOIN
|
||||
(
|
||||
/*
|
||||
SELECT edu_aplct_ord, edu_strt_dt, edu_end_dt , DATE_FORMAT(sbmt_pnttm,'%Y%m%d') AS edu_reg_dt
|
||||
FROM ve_prcs_cmplt_detail
|
||||
GROUP BY edu_aplct_ord, edu_strt_dt, edu_end_dt , DATE_FORMAT(sbmt_pnttm,'%Y%m%d')
|
||||
*/
|
||||
SELECT edu_aplct_ord, edu_strt_dt, edu_end_dt , TO_CHAR(sbmt_pnttm,'YYYYMMDD') AS edu_reg_dt
|
||||
FROM ve_prcs_cmplt_detail
|
||||
GROUP BY edu_aplct_ord, edu_strt_dt, edu_end_dt , TO_CHAR(sbmt_pnttm,'YYYYMMDD')
|
||||
) G
|
||||
ON A.EDU_APLCT_ORD = G.EDU_APLCT_ORD
|
||||
LEFT OUTER JOIN ve_edu_rslt_rprt H
|
||||
ON A.EDU_APLCT_ORD = H.EDU_APLCT_ORD
|
||||
|
||||
WHERE 1=1
|
||||
/*
|
||||
AND IFNULL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
|
||||
*/
|
||||
AND NVL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
|
||||
|
||||
<isEmpty property="sbmtYn">
|
||||
AND A.SBMT_YN = 'Y'
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="sbmtYn">
|
||||
AND A.SBMT_YN != 'Y'
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchAcmdtCnt">
|
||||
AND
|
||||
(
|
||||
SELECT
|
||||
COUNT(1)
|
||||
FROM
|
||||
ve_acmdt_aplct ZZ
|
||||
WHERE
|
||||
A.edu_aplct_ord = ZZ.edu_aplct_ord
|
||||
AND
|
||||
ZZ.sbmt_yn = 'Y'
|
||||
) > 0
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="lctrDivCd">
|
||||
AND A.LCTR_DIV_CD = #lctrDivCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="aprvlCd">
|
||||
AND A.APRVL_CD=#aprvlCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchStartDt">
|
||||
AND CC.EDU_HOPE_DT <![CDATA[ >= ]]> REPLACE(#searchStartDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchEndDt">
|
||||
AND CC.EDU_HOPE_DT <![CDATA[ <= ]]> REPLACE(#searchEndDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchStartSbmtPnttm">
|
||||
AND TO_CHAR(A.SBMT_PNTTM,'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchStartSbmtPnttm#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchEndSbmtPnttm">
|
||||
AND TO_CHAR(A.SBMT_PNTTM,'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndSbmtPnttm#, '.' , '')
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchStartRegistPnttm">
|
||||
AND TO_CHAR(A.FRST_REGIST_PNTTM,'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchStartRegistPnttm#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchEndRegistPnttm">
|
||||
AND TO_CHAR(A.FRST_REGIST_PNTTM,'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndRegistPnttm#, '.' , '')
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchStratAprvlPnttm">
|
||||
AND TO_CHAR(A.APRVL_PNTTM, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchStratAprvlPnttm#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchEndAprvlPnttm">
|
||||
AND TO_CHAR(A.APRVL_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndAprvlPnttm#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSmbtStartDt">
|
||||
AND TO_CHAR(A.SBMT_PNTTM, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchSmbtEndDt">
|
||||
AND TO_CHAR(A.SBMT_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchScholDivCd">
|
||||
AND A.SCHOL_DIV_CD = #searchScholDivCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isEmpty property="searchStartDt">
|
||||
<isEmpty property="searchEndDt">
|
||||
AND 1=1
|
||||
</isEmpty>
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="searchEduSlctAreaCd">
|
||||
AND (
|
||||
|
||||
(
|
||||
A.EDU_SLCT_AREA_CD = #searchEduSlctAreaCd#
|
||||
AND
|
||||
A.EDU_SLCT_CD = '20'
|
||||
)
|
||||
OR
|
||||
(
|
||||
'400' = #searchEduSlctAreaCd#
|
||||
AND
|
||||
A.EDU_SLCT_CD = '10'
|
||||
)
|
||||
)
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchEduSlctAreaCd2">
|
||||
AND (
|
||||
A.EDU_SLCT_AREA_CD = #searchEduSlctAreaCd2#
|
||||
OR
|
||||
'400' = #searchEduSlctAreaCd2#
|
||||
)
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchEduSlctCd">
|
||||
AND A.EDU_SLCT_CD = #searchEduSlctCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchInsttDivCd">
|
||||
AND A.INSTT_DIV_CD = #searchInsttDivCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="userId">
|
||||
AND A.USER_ID = #userId#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="frstRegisterId">
|
||||
AND A.FRST_REGISTER_ID = #frstRegisterId#
|
||||
</isNotEmpty>
|
||||
<isNotEmpty property="searchScholNm">
|
||||
AND A.SCHOL_INSTT_NM LIKE '%' || #searchScholNm# || '%'
|
||||
</isNotEmpty>
|
||||
<isEmpty property="searchCondition">
|
||||
<isNotEmpty property="searchKeyword">
|
||||
AND (
|
||||
A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# '%' OR
|
||||
A.INSTT_NM LIKE '%' || #searchKeyword# || '%'
|
||||
)
|
||||
</isNotEmpty>
|
||||
</isEmpty>
|
||||
|
||||
<isNotEmpty property="searchCondition">
|
||||
<isEqual property="searchCondition" compareValue="1">
|
||||
AND A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%'
|
||||
</isEqual>
|
||||
<isEqual property="searchCondition" compareValue="2">
|
||||
AND A.CHRG_NM LIKE '%' || #searchKeyword# || '%'
|
||||
</isEqual>
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchChrgNm">
|
||||
AND A.CHRG_NM LIKE '%' || #searchChrgNm# , '%')
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchStatusArr">
|
||||
<iterate open="(" close=")" conjunction="," property="searchStatusArr" prepend="AND A.APRVL_CD IN " > #searchStatusArr[]#</iterate>
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchNotStatusArr">
|
||||
<iterate open="(" close=")" conjunction="," property="searchNotStatusArr" prepend="AND A.APRVL_CD NOT IN " > #searchNotStatusArr[]#</iterate>
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchScholDivCdArr">
|
||||
<iterate open="(" close=")" conjunction="," property="searchScholDivCdArr" prepend="AND A.SCHOL_DIV_CD IN " > #searchScholDivCdArr[]#</iterate>
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchStatus">
|
||||
<isEqual property="searchStatus" compareValue="99">
|
||||
AND
|
||||
(
|
||||
SELECT
|
||||
CNT
|
||||
FROM
|
||||
( SELECT COUNT(1) AS CNT
|
||||
FROM VE_PRCS_CMPLT_DETAIL
|
||||
WHERE edu_aplct_ord = A.edu_aplct_ord ) bb
|
||||
WHERE bb.CNT <![CDATA[ > ]]> 0
|
||||
) > 0
|
||||
</isEqual>
|
||||
<isNotEqual property="searchStatus" compareValue="99">
|
||||
AND
|
||||
(
|
||||
SELECT
|
||||
CNT
|
||||
FROM
|
||||
( SELECT COUNT(1) AS CNT
|
||||
FROM VE_PRCS_CMPLT_DETAIL
|
||||
WHERE edu_aplct_ord = A.edu_aplct_ord ) bb
|
||||
WHERE bb.CNT = 0
|
||||
) = 0
|
||||
</isNotEqual>
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchStateYear">
|
||||
AND TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY') = #searchStateYear#
|
||||
</isNotEmpty>
|
||||
|
||||
|
||||
<isNotEmpty property="searchStateStatusArr">
|
||||
AND
|
||||
|
||||
(1=2
|
||||
<iterate property="searchStateStatusArr" >
|
||||
<isEqual property="searchStateStatusArr[]" compareValue="10">
|
||||
<!-- OR (A.strt_oprtn_dt <![CDATA[ <= ]]> TO_CHAR(NOW(), 'YYYYMMDD') AND end_oprtn_dt <![CDATA[ >= ]]> TO_CHAR(NOW(), 'YYYYMMDD')) -->
|
||||
OR (E.oprtn_strt_dt <![CDATA[ <= ]]> TO_CHAR(NOW(), 'YYYYMMDD') AND E.oprtn_end_dt <![CDATA[ >= ]]> TO_CHAR(NOW(), 'YYYYMMDD'))
|
||||
</isEqual>
|
||||
<isEqual property="searchStateStatusArr[]" compareValue="20">
|
||||
<!-- OR
|
||||
(
|
||||
A.end_oprtn_dt <![CDATA[ < ]]> TO_CHAR(NOW(), 'YYYYMMDD')
|
||||
AND
|
||||
(
|
||||
SELECT
|
||||
CNT
|
||||
FROM
|
||||
( SELECT COUNT(1) AS CNT
|
||||
FROM ve_edu_rslt_rprt
|
||||
WHERE edu_aplct_ord = a.edu_aplct_ord ) AA
|
||||
WHERE AA.CNT = 0
|
||||
)
|
||||
) -->
|
||||
OR
|
||||
(
|
||||
E.oprtn_end_dt <![CDATA[ < ]]> TO_CHAR(NOW(), 'YYYYMMDD')
|
||||
AND
|
||||
( SELECT COUNT(1) AS CNT
|
||||
FROM ve_edu_rslt_rprt
|
||||
WHERE edu_aplct_ord = A.edu_aplct_ord )
|
||||
= 0
|
||||
)
|
||||
</isEqual>
|
||||
<isEqual property="searchStateStatusArr[]" compareValue="30">
|
||||
<!-- OR
|
||||
(
|
||||
A.end_oprtn_dt <![CDATA[ < ]]> TO_CHAR(NOW(), 'YYYYMMDD')
|
||||
AND
|
||||
(
|
||||
SELECT
|
||||
CNT
|
||||
FROM
|
||||
( SELECT COUNT(1) AS CNT
|
||||
FROM ve_edu_rslt_rprt
|
||||
WHERE edu_aplct_ord = a.edu_aplct_ord ) AA
|
||||
WHERE AA.CNT <![CDATA[ > ]]> 0
|
||||
)
|
||||
) -->
|
||||
OR
|
||||
(
|
||||
E.oprtn_end_dt <![CDATA[ < ]]> TO_CHAR(NOW(), 'YYYYMMDD')
|
||||
AND
|
||||
( SELECT COUNT(1) AS CNT
|
||||
FROM ve_edu_rslt_rprt
|
||||
WHERE edu_aplct_ord = A.edu_aplct_ord )
|
||||
> 0
|
||||
)
|
||||
</isEqual>
|
||||
<isEqual property="searchStateStatusArr[]" compareValue="40">
|
||||
/* 서류제출완료 */
|
||||
OR(
|
||||
1=1
|
||||
)
|
||||
|
||||
</isEqual>
|
||||
|
||||
</iterate>
|
||||
)
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchStateStatusArr">
|
||||
|
||||
|
||||
<iterate property="searchStateStatusArr" >
|
||||
<isEqual property="searchStateStatusArr[]" compareValue="40">
|
||||
/* 서류제출완료 */
|
||||
AND
|
||||
(
|
||||
a.oath_atch_file_id IS NOT NULL
|
||||
OR a.trans_atch_file_id IS NOT null
|
||||
)
|
||||
|
||||
</isEqual>
|
||||
</iterate>
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchChsYn">
|
||||
AND A.MDFY_RQST_YN = #searchChsYn#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="selectPagingListQuery">
|
||||
$selectPagingListQuery$
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="eduAplctOrd">
|
||||
AND A.EDU_APLCT_ORD = #eduAplctOrd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchStatus2">
|
||||
/* 교육콘텐츠 신청 > 수강신청 목록 셀렉트박스 검색자 */
|
||||
|
||||
|
||||
<isEqual property="searchStatus2" compareValue="90">
|
||||
AND A.APRVL_CD = '20'
|
||||
AND
|
||||
( SELECT COUNT(*)
|
||||
FROM ve_prcs_cmplt_detail a0
|
||||
INNER JOIN ve_prcs b0
|
||||
ON a0.prcs_ord = b0.prcs_ord
|
||||
INNER JOIN ve_prcs_onln_cntnt c0
|
||||
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||
WHERE 1 =1
|
||||
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||
AND NVL(a0.sbmt_yn,'N') ='Y'
|
||||
) > 0
|
||||
</isEqual>
|
||||
<isNotEqual property="searchStatus2" compareValue="90">
|
||||
AND A.APRVL_CD = #searchStatus2#
|
||||
AND 0>=
|
||||
( SELECT COUNT(*)
|
||||
FROM ve_prcs_cmplt_detail a0
|
||||
INNER JOIN ve_prcs b0
|
||||
ON a0.prcs_ord = b0.prcs_ord
|
||||
INNER JOIN ve_prcs_onln_cntnt c0
|
||||
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||
WHERE 1 =1
|
||||
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||
AND NVL(a0.sbmt_yn,'N') ='Y'
|
||||
)
|
||||
</isNotEqual>
|
||||
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchYear">
|
||||
/*저작권 체험교실 년도 검색*/
|
||||
AND TO_CHAR(A.SBMT_PNTTM,'YYYY') = #searchYear#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="eduSlctAreaCd">
|
||||
/*저작권 체험교실 지역 검색*/
|
||||
AND A.EDU_SLCT_AREA_CD = #eduSlctAreaCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchCpyAprvlCd">
|
||||
/*저작권 체험교실 상태 검색*/
|
||||
AND A.APRVL_CD = #searchCpyAprvlCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isNotEmpty property="searchFullName">
|
||||
/*교육콘텐츠 신청자 검색*/
|
||||
AND (
|
||||
/*
|
||||
A.FULL_NAME like '%' || searchFullName || '%'
|
||||
OR A.BLNG like concat('%', searchFullName, '%')
|
||||
*/
|
||||
A.FULL_NAME like '%'||#searchFullName#||'%'
|
||||
OR A.BLNG like '%'||#searchFullName#||'%'
|
||||
)
|
||||
|
||||
</isNotEmpty>
|
||||
|
||||
<isEqual property="searchAdminUpdtYn" compareValue="Y">
|
||||
AND A.ADMIN_UPDT_YN = 'Y'
|
||||
</isEqual>
|
||||
|
||||
/*
|
||||
ORDER BY 1=1
|
||||
*/
|
||||
ORDER BY 1
|
||||
<isNotEmpty property="orderByQuery">
|
||||
, $orderByQuery$
|
||||
</isNotEmpty>
|
||||
<isNotEqual property="mode" compareValue="EXCEL">
|
||||
/*
|
||||
LIMIT recordCountPerPage OFFSET firstIndex
|
||||
*/
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
</isNotEqual>
|
||||
</select>
|
||||
|
||||
<!-- 성인 찾아가는 저작권교육 교육배치확정관리 목록 -->
|
||||
<select id="VEEduMIXDAO.selectAdultPagingList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||
/* VEEduMIXDAO.selectAdultPagingList */
|
||||
|
||||
@ -92,6 +92,16 @@
|
||||
);
|
||||
}
|
||||
|
||||
//fncPreviewEmail
|
||||
function fncPreviewEmail(){
|
||||
//document.listForm.authorCode.value = vAuthorCode;
|
||||
//document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/advRndsStngMngPopup.do'/>";
|
||||
document.listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/eduAplctMailPreviewDetail.do'/>";
|
||||
window.open("#", "_aplctPreviewPop", "scrollbars = no, top=100px, left=100px, height=800px, width=1000px");
|
||||
document.listForm.target = "_aplctPreviewPop";
|
||||
document.listForm.submit();
|
||||
}
|
||||
|
||||
//발송
|
||||
function fncContent(p_url, p_cd, p_cn, p_flag
|
||||
, p_clphone1
|
||||
@ -156,13 +166,14 @@
|
||||
<div class="tb_type02">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 220px;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 220px;height:100px;">
|
||||
<col style="width: auto;height:100px;">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<th scope="row"><p>메일 샘플 코드</p> </th>
|
||||
<td>
|
||||
<c:out value='${cntManageVO.cntCn}' escapeXml="false" />
|
||||
<%-- <c:out value='${cntManageVO.cntCn}' escapeXml="false" /> --%>
|
||||
<c:out value='${cntManageVO.cntCn}' escapeXml="true" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -190,6 +201,7 @@
|
||||
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
<button type="button" class="btn_type03" onclick="fncPreviewEmail();return false;">메일 미리보기</button>
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<button type="button" class="btn_type08" onclick="fncUpdate();return false;">메일 본문 수정</button>
|
||||
@ -214,7 +226,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;">
|
||||
<input type="hidden" name="yr" id="yr" value=""/>
|
||||
</form:form>
|
||||
<!-- //cont -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -305,6 +305,7 @@
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_WAIT ? 'selected' : ''} value="${VeConstants.STATUS_CD_WAIT}">대기</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
<ve:select codeId="VE0009" name="searchScholDivCd" id="searchScholDivCd" styleClass="sel_type1" selectedValue="${vEEduAplctVO.searchScholDivCd}" defaultValue="" defaultText='전체'/>
|
||||
@ -375,7 +376,7 @@
|
||||
<option value='1000' <c:if test="${vEEduAplctVO.pageUnit == '1000'}">selected</c:if>>1000줄</option>
|
||||
</select>
|
||||
<button type="button" class="btn_type03" onclick="fncPrintListPopup(); return false;">신청서 일괄출력</button>
|
||||
<button type="button" class="btn_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button>
|
||||
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -391,6 +392,7 @@
|
||||
<col style="width: auto;">
|
||||
<col style="width: 6%">
|
||||
<col style="width: 6%">
|
||||
<col style="width: 6%">
|
||||
<col style="width: 8%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 8%">
|
||||
@ -403,8 +405,9 @@
|
||||
<th>교육일자<button class="sort sortBtn" id="sort_eduHopeDt">▲</button></th>
|
||||
<th>신청일자<button class="sort sortBtn" id="sort_sbmtPnttm">▲</button></th>
|
||||
<th>지역</th>
|
||||
<th>학교(기관)명</th>
|
||||
<th>학교(기관)명<button class="sort sortBtn" id="sort_scholInsttNm">▲</button></th>
|
||||
<th>신청시간</th>
|
||||
<th>소요시간<button class="sort sortBtn" id="sort_lrnTm">▲</button></th>
|
||||
<th>학교구분</th>
|
||||
<th>담당자</th>
|
||||
<th>신청상태</th>
|
||||
@ -436,7 +439,7 @@
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}');">
|
||||
<c:choose>
|
||||
<c:when test="${not empty list.eduHopeDt}">
|
||||
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
|
||||
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyy.MM.dd"/>
|
||||
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
@ -463,6 +466,15 @@
|
||||
<c:out value="${list.scholInsttNm}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/>
|
||||
<fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
|
||||
~
|
||||
<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/>
|
||||
<fmt:formatDate value="${endTm}" pattern="kk:mm"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
<c:out value="${list.lrnTm}"/>
|
||||
@ -556,7 +568,7 @@
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button>
|
||||
<button type="button" class="btn_type06" onclick="fncSndSms(); return false;">교육확정알림</button>
|
||||
<!-- <button type="button" class="btn_type06" onclick="fncSndSms(); return false;">교육확정알림</button> -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- page -->
|
||||
|
||||
@ -0,0 +1,590 @@
|
||||
<!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="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<style>
|
||||
input:read-only{
|
||||
background-color: #ededed;
|
||||
}
|
||||
|
||||
.list_util .btn_type03 {
|
||||
height: 40px;
|
||||
padding: 0 18px 0 18px
|
||||
margin: 0 2px;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
letter-spacing: -0.8px;
|
||||
border-radius: 5px;
|
||||
box-sizing: border-box;
|
||||
transition: background-color .1s linear;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
|
||||
});
|
||||
|
||||
function press(event) {
|
||||
if (event.keyCode==13) {
|
||||
fncGoList();
|
||||
}
|
||||
}
|
||||
|
||||
function fncCreate() {
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMngReg.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function linkPhonePage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMngPhoneList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMngTrgtList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncGoDetail(eduAplctOrd){
|
||||
/*
|
||||
var listForm = document.listForm ;
|
||||
listForm.eduAplctOrd.value = eduAplctOrd ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctMngDetail.do'/>";
|
||||
listForm.submit();
|
||||
*/
|
||||
alert("상세내용은 신청별 페이지를 통해 접근 가능합니다.");
|
||||
}
|
||||
|
||||
function excelDownLoad(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAplctExcelDownLoad.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
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 if($(this).attr('name').indexOf('stngYr') != -1){
|
||||
$(this).val('${vEEduAplctVO.stngYr}');
|
||||
}else{
|
||||
$(this).prop("selectedIndex", 0);
|
||||
}
|
||||
}else{
|
||||
$(this).val('');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//체크박스 전체 선택
|
||||
function chkAll(thisObj){
|
||||
$("input[name=chk]").prop("checked" , $(thisObj).is(":checked"));
|
||||
}
|
||||
|
||||
// 신청서 일괄 출력
|
||||
function fncPrintListPopup() {
|
||||
if ($("input:checkbox[name='chk']:checked").length <= 0) {
|
||||
alert("출력할 신청목록을 하나 이상 체크하세요.");
|
||||
}
|
||||
else {
|
||||
commonPopWindowopenForm(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/popup/eduAplctMngDetailListPopup.do"
|
||||
, "1000"
|
||||
, "700"
|
||||
, "ListPrintPopup",$("#listForm")
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function fncChkStatusUpdate() {
|
||||
var chkLen = $(listForm).find("input[name=chk]:checked").length;
|
||||
var statusVal = $("#saveStatus option:selected").val();
|
||||
|
||||
if(chkLen == 0){
|
||||
alert("선택된 항목이 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
if(statusVal == ''){
|
||||
alert('상태를 선택해주세요.');
|
||||
return false;
|
||||
}
|
||||
$("#aprvlCd").val(statusVal);
|
||||
|
||||
var data1 = new FormData(document.getElementById("listForm"));
|
||||
if(confirm("상태를 변경 하시겠습니까?")){
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/kccadr/oprtn/comm/eduAplctStatusListAjax.do",
|
||||
data: data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
if(returnData.rsCnt > 0){
|
||||
if(returnData.result == 'success'){
|
||||
alert("저장 되었습니다.");
|
||||
location.reload();
|
||||
}
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//sms 발송
|
||||
function fncSndSms(){
|
||||
|
||||
var chkLen = $(listForm).find("input[name=chk]:checked").length;
|
||||
if(chkLen == 0){
|
||||
alert("선택된 항목이 없습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
var fnExit = false;
|
||||
|
||||
var chkAplctChasi = "";
|
||||
var phones = "";
|
||||
var emails = "";
|
||||
var chkLength = $('input:checkbox[name="chk"]:checked').length;
|
||||
|
||||
$('input:checkbox[name="chk"]:checked').each(function(idx) {
|
||||
if($(this).attr("class") != "60") {
|
||||
alert("선택한 목록 중 교욱확정알림이 불가능한 건이 있습니다.");
|
||||
fnExit = true;
|
||||
}
|
||||
|
||||
if(idx === chkLength - 1) {
|
||||
//chkAplctChasi += $(this).val();
|
||||
chkAplctChasi += $(this).data("chasi");
|
||||
phones += $(this).data("phone");
|
||||
emails += $(this).data("email");
|
||||
} else {
|
||||
//chkAplctChasi += $(this).val() + ",";
|
||||
chkAplctChasi += $(this).data("chasi") + ",";
|
||||
phones += $(this).data("phone") + ",";
|
||||
emails += $(this).data("email") + ",";
|
||||
}
|
||||
});
|
||||
|
||||
//체크한 리스트 중 해당 상태에 실행 불가능한 건이 있는지 체크 후, 존재 시 함수 종료
|
||||
if(fnExit) return false;
|
||||
|
||||
var p_smsMsg = "[찾아가는 저작권 교육] 확정된 교육이 있습니다.확인해주세요.";
|
||||
|
||||
fncContent(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/smsSndAjax.do",
|
||||
"10",
|
||||
p_smsMsg,
|
||||
chkAplctChasi,
|
||||
phones,
|
||||
emails,
|
||||
"Z"
|
||||
);
|
||||
}
|
||||
|
||||
//발송
|
||||
function fncContent(p_url, p_cd, p_cn, chkAplctChasi, phones, emails, sndFlag){
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
// enctype: 'multipart/form-data',
|
||||
url:p_url,
|
||||
//data: data,
|
||||
data:{
|
||||
"sndCd": p_cd,
|
||||
"sndCn": p_cn,
|
||||
"chk": chkAplctChasi,
|
||||
"clphone": phones,
|
||||
"email" : emails,
|
||||
"sndFlag" : sndFlag
|
||||
},
|
||||
dataType:'json',
|
||||
/*
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
*/
|
||||
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("정상적으로 발송되었습니다.");
|
||||
location.reload();
|
||||
}else{
|
||||
alert("발송 중 오류가 발생하였습니다.");
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
<title>신청관리</title>
|
||||
</head>
|
||||
<body>
|
||||
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" method="post">
|
||||
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
|
||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
|
||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
|
||||
<input type="hidden" name="eduAplctOrd" value="" />
|
||||
<input type="hidden" name="aprvlCd" id="aprvlCd" value="" />
|
||||
<input type="hidden" name="lctrDivCd" id="lctrDivCd" value="<c:out value="${vEEduAplctVO.lctrDivCd}" />" />
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>교육신청 목록</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
<p>청소년 찾아가는 저작권 교육</p>
|
||||
</li>
|
||||
<li><span class="cur_nav">교육신청목록</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //cont_tit -->
|
||||
|
||||
<div class="cont">
|
||||
<!-- list_top -->
|
||||
<div class="list_top">
|
||||
<!--
|
||||
<div class="list_top_1">
|
||||
<div class="util_left">
|
||||
<p>기준년도</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<label for="searchStatus2" class="label">신청상태 선택</label>
|
||||
<ve:select codeId="VE0029" name="stngYr" id="stngYr" css="class='sel_type1'"
|
||||
selectedValue="${vEEduAplctVO.stngYr}"
|
||||
onChange="fncGoListReset(); return false;"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
<div class="list_top_1">
|
||||
<div class="util_left">
|
||||
<p>구분</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<label for="searchStatus2" class="label">신청상태 선택</label>
|
||||
<select class="sel_type1" id="searchStatus2" name="searchStatus2">
|
||||
<option ${vEEduAplctVO.searchStatus2 eq '' ? 'selected' : ''} value="">전체</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_WAIT ? 'selected' : ''} value="${VeConstants.STATUS_CD_WAIT}">대기</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEEduAplctVO.searchStatus2 eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
<ve:select codeId="VE0009" name="searchScholDivCd" id="searchScholDivCd" styleClass="sel_type1" selectedValue="${vEEduAplctVO.searchScholDivCd}" defaultValue="" defaultText='전체'/>
|
||||
<ve:select codeId="VE0008" name="searchEduSlctAreaCd" id="searchEduSlctAreaCd" styleClass="sel_type1" selectedValue="${vEEduAplctVO.searchEduSlctAreaCd}" defaultValue="" defaultText='전체'/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top_1">
|
||||
<div class="util_left">
|
||||
<p>학교(기관)명</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<input type="text" id="searchScholNm" name="searchScholNm" class="search_input" placeholder="검색어를 입력하세요" value="${vEEduAplctVO.searchScholNm}" onkeyDown="press(event);">
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top_1">
|
||||
<div class="util_left">
|
||||
<p>신청자명</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<input type="text" id="searchChrgNm" name="searchChrgNm" class="search_input" placeholder="검색어를 입력하세요" value="${vEEduAplctVO.searchChrgNm}" onkeyDown="press(event);">
|
||||
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
|
||||
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top_2">
|
||||
<div class="util_left">
|
||||
<p>교육일자</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="시작일 선택" id="searchStartDt" name="searchStartDt" value="${vEEduAplctVO.searchStartDt}">
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="종료일 선택" id="endDate" name="searchEndDt" value="${vEEduAplctVO.searchEndDt}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top_3">
|
||||
<div class="util_left">
|
||||
<p>신청일자</p>
|
||||
</div>
|
||||
<div class="util_right">
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEEduAplctVO.searchSmbtStartDt}">
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEEduAplctVO.searchSmbtEndDt}">
|
||||
</div>
|
||||
<div style="padding-left:30px;">
|
||||
관리자 수정 건만 보기<input type="checkbox" name="searchAdminUpdtYn" id="searchAdminUpdtYn" value="Y" <c:if test="${vEEduAplctVO.searchAdminUpdtYn eq 'Y'}">checked</c:if>>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- //list_top -->
|
||||
|
||||
<!-- list util -->
|
||||
<div class="list_util">
|
||||
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
|
||||
<div>
|
||||
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px">
|
||||
<option value='10' <c:if test="${vEEduAplctVO.pageUnit == '10' or vEEduAplctVO.pageUnit == ''}">selected</c:if>>10줄</option>
|
||||
<option value='20' <c:if test="${vEEduAplctVO.pageUnit == '20'}">selected</c:if>>20줄</option>
|
||||
<option value='30' <c:if test="${vEEduAplctVO.pageUnit == '30'}">selected</c:if>>30줄</option>
|
||||
<option value='100' <c:if test="${vEEduAplctVO.pageUnit == '100'}">selected</c:if>>100줄</option>
|
||||
<option value='1000' <c:if test="${vEEduAplctVO.pageUnit == '1000'}">selected</c:if>>1000줄</option>
|
||||
</select>
|
||||
<!-- <button type="button" class="btn_type03" onclick="fncPrintListPopup(); return false;">신청서 일괄출력</button> -->
|
||||
<button type="button" class="btn_down_excel" onclick="excelDownLoad();">엑셀 다운로드</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 5%">
|
||||
<col style="width: 5%">
|
||||
<col style="width: 8%">
|
||||
<col style="width: 8%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 6%">
|
||||
<col style="width: 6%">
|
||||
<col style="width: 6%">
|
||||
<col style="width: 8%">
|
||||
<col style="width: 10%">
|
||||
<col style="width: 8%">
|
||||
<col style="width: 10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th>
|
||||
<th>번호</th>
|
||||
<th>교육일자<button class="sort sortBtn" id="sort_eduHopeDt">▲</button></th>
|
||||
<th>신청일자<button class="sort sortBtn" id="sort_sbmtPnttm">▲</button></th>
|
||||
<th>지역</th>
|
||||
<th>학교(기관)명<button class="sort sortBtn" id="sort_scholInsttNm">▲</button></th>
|
||||
<th>신청시간</th>
|
||||
<th>소요시간<button class="sort sortBtn" id="sort_lrnTm">▲</button></th>
|
||||
<th>학교구분</th>
|
||||
<th>담당자</th>
|
||||
<th>신청상태</th>
|
||||
<th>확정일자</th>
|
||||
<th>관리자 수정 여부</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<c:choose>
|
||||
<c:when test="${list.notiCnt == 0}">
|
||||
<tr class="new_cont" title="<c:out value='${list.eduAplctOrd}'/>" style="cursor:pointer;">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr title="<c:out value='${list.eduAplctOrd}'/>" style="cursor:pointer;">
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<td>
|
||||
<input name="chk" class="${list.aprvlCd}"
|
||||
value="${list.eduAplctOrd}" title="Check" type="checkbox"
|
||||
data-chasi="${list.eduAplctOrd}@${list.eduChasiOrd}" data-phone="<c:out value='${list.clphone}' />"
|
||||
data-email="<c:out value='${list.email}' />"
|
||||
/>
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}');">
|
||||
<c:choose>
|
||||
<c:when test="${not empty list.eduHopeDt}">
|
||||
<fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
|
||||
<fmt:formatDate value="${eduHopeDt}" pattern="yyyy.MM.dd"/>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
<c:out value="${list.sbmtPnttm}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
<c:if test="${list.eduSlctCd eq '10'}">
|
||||
(온)
|
||||
</c:if>
|
||||
<ve:code codeId="VE0008" code="${list.eduSlctAreaCd}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
<c:out value="${list.scholInsttNm}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/>
|
||||
<fmt:formatDate value="${strtTm}" pattern="kk:mm"/>
|
||||
~
|
||||
<fmt:parseDate value="${list.endTm}" var="endTm" pattern="kkmm"/>
|
||||
<fmt:formatDate value="${endTm}" pattern="kk:mm"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
<c:out value="${list.lrnTm}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
<ve:code codeId="VE0009" code="${list.scholDivCd}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" onclick="javascript:fncGoDetail('${list.eduAplctOrd}'); return false;">
|
||||
|
||||
<c:out value="${list.chrgNm}"/>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.APRVL_CD_230}">
|
||||
<span class="app_status1">대기</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_SBMT}">
|
||||
<span class="app_status1">교육신청</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_CFRM}">
|
||||
<span class="app_status2">교육승인</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_RJT}">
|
||||
<span class="app_status4">교육반려</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_CAN}">
|
||||
<span class="app_status4">교육취소</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_CHI_CMPT}">
|
||||
<span class="app_status4">선정완료</span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDT_REQ}">
|
||||
<span class="app_status3">수정요청<c:if test="${list.isWait eq 'Y'}">(대기)</c:if></span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDT_CMPT}">
|
||||
<span class="app_status3">수정완료<c:if test="${list.isWait eq 'Y'}">(대기)</c:if></span>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq VeConstants.STATUS_CD_EDU_SELCT}">
|
||||
<span class="app_status1">교육확정</span>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<c:if test="${list.aprvlCd eq VeConstants.STATUS_CD_EDU_SELCT}">
|
||||
<p>${list.aprvlPnttm}</p>
|
||||
</c:if>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.adminUpdtYn eq 'Y'}">
|
||||
예
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
아니오
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="12"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- //list -->
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
<!--
|
||||
<select id="saveStatus" name="saveStatus" class="sel_type1">
|
||||
<option value="">상태선택</option>
|
||||
<option value="${VeConstants.STATUS_CD_WAIT}">대기</option>
|
||||
<option value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
|
||||
<option value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
|
||||
<option value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
|
||||
<option value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
<%-- <option value="${VeConstants.STATUS_CD_WAIT_N}">대기(삭제)</option> --%>
|
||||
<%-- <option value="${VeConstants.STATUS_CD_WAIT_Y}">대기(처리)</option> --%>
|
||||
</select>
|
||||
<button type="button" class="btn_type05" onclick="fncChkStatusUpdate(); return false;">상태저장</button>
|
||||
-->
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<!-- <button type="button" class="btn_type01" onclick="fncCreate(); return false;">등록</button> -->
|
||||
<button type="button" class="btn_type06" onclick="fncSndSms(); return false;">교육확정알림</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
<!-- //page -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form:form>
|
||||
<a href="#" onclick="javascript:linkPhonePage('1'); return false;">.</a>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,193 @@
|
||||
<!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="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
||||
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
|
||||
<% pageContext.setAttribute("replaceChar", "\n"); %>
|
||||
|
||||
<%
|
||||
/**
|
||||
* @Class Name : eduAplctMailPreviewDetail.jsp
|
||||
* @Description : 메일 미리보기
|
||||
* @Modification Information
|
||||
* @
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------- -------- ---------------------------
|
||||
* @ 2022.04.05 안주영 최초 생성
|
||||
* @author 안주영
|
||||
* @since 2022.04.05
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<title>청소년 메일본문 상세</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript">
|
||||
|
||||
function fncUpdate(){
|
||||
|
||||
if ($("#emailCn").val() == null || $("#emailCn").val() == ''){
|
||||
alert("메일 본문 내용은 필수값입니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if(confirm("메일 본문을 수정하시겠습니까?")){
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/eduAplctMailMdfyAjax.do",
|
||||
data: {
|
||||
"cntCn" : $("#emailCn").val()
|
||||
},
|
||||
dataType:'json',
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("수정 되었습니다.");
|
||||
location.reload(true);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//이메일 발송
|
||||
function fncSndEmail(){
|
||||
|
||||
var p_smsEmail = $("#emailCn").val();
|
||||
|
||||
if (p_smsEmail==""){
|
||||
alert("이메일 발송 내용은 필수값입니다.");
|
||||
return false;
|
||||
}
|
||||
if ($("#emailAddr").val() == null || $("#emailAddr").val() == ''){
|
||||
alert("이메일 수신 주소는 필수값입니다.");
|
||||
return false;
|
||||
}
|
||||
|
||||
//alert($("#emailType").val());
|
||||
//return false;
|
||||
|
||||
fncContent(
|
||||
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/emailSndAjax.do",
|
||||
"20",
|
||||
p_smsEmail,
|
||||
//"C"
|
||||
$("#emailType").val()
|
||||
, $("#clphone1").val()
|
||||
, $("#clphone2").val()
|
||||
);
|
||||
}
|
||||
|
||||
//fncPreviewEmail
|
||||
function fncPreviewEmail(){
|
||||
//document.listForm.authorCode.value = vAuthorCode;
|
||||
document.listForm.action = "<c:url value='/oprtn/tngrVisitEdu/popup/eduAplctMailPreviewDetail.do'/>";
|
||||
window.open("#", "_aplctPreviewPop", "scrollbars = no, top=100px, left=100px, height=800px, width=1000px");
|
||||
document.listForm.target = "_aplctPreviewPop";
|
||||
document.listForm.submit();
|
||||
}
|
||||
|
||||
//발송
|
||||
function fncContent(p_url, p_cd, p_cn, p_flag
|
||||
, p_clphone1
|
||||
, p_clphone2
|
||||
){
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
// enctype: 'multipart/form-data',
|
||||
url:p_url,
|
||||
//data: data,
|
||||
data:{
|
||||
"sndCd": p_cd,
|
||||
"sndCn": p_cn,
|
||||
"eduAplctOrd": 'test',
|
||||
"email": $("#emailAddr").val(),
|
||||
"sndFlag": p_flag,
|
||||
"clphone1": p_clphone1
|
||||
, "clphone2": p_clphone2
|
||||
},
|
||||
dataType:'json',
|
||||
/*
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
*/
|
||||
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("정상적으로 발송되었습니다.");
|
||||
|
||||
}else{
|
||||
alert("발송 중 오류가 발생하였습니다.");
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<!-- cont -->
|
||||
<div class="cont_wrap">
|
||||
<div class="box">
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>사용본문 미리보기(저장된 내용만 반영됩니다.)</h2>
|
||||
</div>
|
||||
<!-- //cont_tit -->
|
||||
<div class="cont">
|
||||
<div class="tb_type02">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<td>
|
||||
<c:out value='${cntManageVO2.cntCn}' escapeXml="false" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- //list -->
|
||||
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<button type="button" class="btn_type08" onclick="self.close();return false;">닫기</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- //cont -->
|
||||
</body>
|
||||
<form:form id="listForm" name="listForm" method="post" onsubmit="return false;" action="">
|
||||
<input type="hidden" name="yr" id="yr" value=""/>
|
||||
</form:form>
|
||||
</html>
|
||||
@ -440,6 +440,14 @@
|
||||
</c:forEach>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>교육장소</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
${info.eduPlace}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="trLength4">
|
||||
<th scope="row">
|
||||
<p>교육대상</p>
|
||||
|
||||
@ -169,6 +169,14 @@ $( document ).ready(function() {
|
||||
</c:forEach>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>교육장소</p>
|
||||
</th>
|
||||
<td colspan="3">
|
||||
${info.eduPlace}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="trLength4">
|
||||
<th scope="row">
|
||||
<p>교육대상</p>
|
||||
@ -497,12 +505,14 @@ $( document ).ready(function() {
|
||||
</th>
|
||||
<td><c:out value="${info3.unqIsues}" /></td>
|
||||
</tr>
|
||||
<!--
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>건의사항</p>
|
||||
</th>
|
||||
<td><c:out value="${info3.sgstnIsues}" /></td>
|
||||
</tr>
|
||||
-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user