2023-11-14 16:55 청소년 자동 배정 작업 중
This commit is contained in:
parent
0acd86fc7f
commit
ad767e0c48
@ -621,11 +621,13 @@ public class CommonWebController {
|
||||
vEEduAplctVO.setSearchAsgnmAprvlCd("90");
|
||||
|
||||
//Step1.자동배정 대상 차시가져오기
|
||||
//강사할당이 없는 배정 대상 차시를 가져온다.
|
||||
vEEduAplctVOList = vEEduMIXService.selectTngrRsltPagingList(vEEduAplctVO);
|
||||
}
|
||||
|
||||
|
||||
//step2.배정 대상별 가능한 대상 강사 찾기
|
||||
//step2.배정 대상별 가능한 대상 강사 찾기 및 등록
|
||||
int p=0;
|
||||
{
|
||||
for (int i=0;i<vEEduAplctVOList.size();i++) {
|
||||
//학교 지역, 희망일자가 필요
|
||||
@ -638,16 +640,58 @@ public class CommonWebController {
|
||||
System.out.println(s_addr);
|
||||
|
||||
|
||||
//step2-1.가능 강사중 월별 시수이상을 받지 않은자 & 해당 요일에 수업 가능한 강사 리스트
|
||||
//필수 조건
|
||||
//step2-1.가능 강사중 월별 시수이상을 받지 않은자 & 해당 요일에 수업 가능한 강사 리스트(필)
|
||||
VEAutoAsgnmVO vEAutoAsgnmVO = new VEAutoAsgnmVO();
|
||||
vEAutoAsgnmVO.setEduHopeMnt(s_eduHopeDt.substring(5,7));
|
||||
vEAutoAsgnmVO.setYr(s_eduHopeDt.substring(0,4));
|
||||
vEAutoAsgnmVO.setInstrDiv("10"); //10-청소년, 20-성인
|
||||
vEAutoAsgnmVO.setEduChasiOrd(tChasiInfo.getEduChasiOrd());
|
||||
List<VEAutoAsgnmVO> vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectInstrMntAsgnmtChasiList(vEAutoAsgnmVO);
|
||||
|
||||
//step2-2.해당 차시 학교의 거주 강사 검색
|
||||
//step2-3.희망 지역 강사 검색
|
||||
//step2-2.희망 지역 강사 검색(필)
|
||||
String s_user_id = "'aaa'";
|
||||
for (int j=0;j<vEInstrAssiEduAplctVOList.size();j++) {
|
||||
s_user_id = s_user_id + ",'" + vEInstrAssiEduAplctVOList.get(j).getUserId()+"'";
|
||||
}
|
||||
vEAutoAsgnmVO.setUserIds(s_user_id);
|
||||
vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectInstrHopeAreaList(vEAutoAsgnmVO);
|
||||
|
||||
//step2-3.연강가능강사검색(선택)
|
||||
//step2-4.패널티 없는 강사 검색(선택)
|
||||
|
||||
//우선순위
|
||||
//step3-1.월별시수대비할당이적은자 우선(필)
|
||||
s_user_id = "'aaa'";
|
||||
for (int j=0;j<vEInstrAssiEduAplctVOList.size();j++) {
|
||||
s_user_id = s_user_id + ",'" + vEInstrAssiEduAplctVOList.get(j).getUserId()+"'";
|
||||
}
|
||||
vEAutoAsgnmVO.setUserIds(s_user_id);
|
||||
vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectInstrPriorityList(vEAutoAsgnmVO);
|
||||
|
||||
//step3-2.거주기 강사 우선=>거주지별 배정 비율 필터(선택)
|
||||
|
||||
|
||||
//강사배정
|
||||
if (vEInstrAssiEduAplctVOList.size()>0) {
|
||||
VEInstrAsgnmVO p_vEInstrAsgnmVO = new VEInstrAsgnmVO();
|
||||
p_vEInstrAsgnmVO.setEduAplctOrd(tChasiInfo.getEduAplctOrd());
|
||||
p_vEInstrAsgnmVO.setEduChasiOrd(tChasiInfo.getEduChasiOrd());
|
||||
|
||||
p_vEInstrAsgnmVO.setUserId(vEInstrAssiEduAplctVOList.get(0).getUserId());
|
||||
p_vEInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId());
|
||||
p_vEInstrAsgnmVO.setAsgnmAprvlCd("10");
|
||||
p_vEInstrAsgnmVO.setAsgnmAprvlId(loginVO.getUniqId());
|
||||
p_vEInstrAsgnmVO.setRmrks("배정기준1순위");
|
||||
|
||||
//저장
|
||||
vEEduChasiInstrAsgnmService.insert(p_vEInstrAsgnmVO);
|
||||
|
||||
//저장여부 확인
|
||||
//step3-1.해당 차시에 강사 배정이 있는지 확인
|
||||
VEInstrAsgnmVO vEInstrAsgnmVOTmp = vEEduChasiInstrAsgnmService.selectDetail(p_vEInstrAsgnmVO);
|
||||
if (vEInstrAsgnmVOTmp!=null) p = p+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -656,6 +700,10 @@ public class CommonWebController {
|
||||
|
||||
//this.setInstrAsgnm(p_step01_list, vEInstrAsgnmVO, loginVO);
|
||||
|
||||
System.out.println("p");
|
||||
System.out.println(p);
|
||||
System.out.println(p);
|
||||
|
||||
//modelAndView.addObject("rsCnt", rs);
|
||||
modelAndView.addObject("result", "success");
|
||||
return modelAndView;
|
||||
|
||||
@ -3,10 +3,18 @@ package kcc.ve.instr.tngrVisitEdu.eduInfo.service;
|
||||
import java.util.List;
|
||||
|
||||
public interface VEAutoAsgnmMIXService {
|
||||
|
||||
//해당 배정 차시의 달에 강사에게 할당된 차시 정보
|
||||
|
||||
//step2-1.가능 강사중 월별 시수이상을 받지 않은자 & 해당 요일에 수업 가능한 강사 리스트(필)
|
||||
List<VEAutoAsgnmVO> selectInstrMntAsgnmtChasiList(VEAutoAsgnmVO paramVO) throws Exception;
|
||||
|
||||
//해당 차시 학교에 거주하는 강사
|
||||
List<VEAutoAsgnmVO> selectRsdneInstrList(VEAutoAsgnmVO paramVO) throws Exception;
|
||||
|
||||
//step2-2.희망 지역 강사 검색(필)
|
||||
List<VEAutoAsgnmVO> selectInstrHopeAreaList(VEAutoAsgnmVO paramVO) throws Exception;
|
||||
|
||||
|
||||
//step3-1.월별시수대비할당이적은자 우선(필)
|
||||
List<VEAutoAsgnmVO> selectInstrPriorityList(VEAutoAsgnmVO paramVO) throws Exception;
|
||||
|
||||
}
|
||||
|
||||
@ -23,6 +23,12 @@ public class VEAutoAsgnmVO extends ComDefaultVO implements Serializable {
|
||||
private String rsdne; //강사거주지
|
||||
private String hopeEduFld; //희망교육부분
|
||||
private String asgnmTm; //할당된시간
|
||||
|
||||
private String eduChasiOrd; //차시 고유 순번
|
||||
|
||||
private String userIds; //강사아이디들
|
||||
|
||||
private String rownum; //배정순번
|
||||
|
||||
|
||||
public String getEduHopeMnt() {
|
||||
@ -88,6 +94,30 @@ public class VEAutoAsgnmVO extends ComDefaultVO implements Serializable {
|
||||
public void setAsgnmTm(String asgnmTm) {
|
||||
this.asgnmTm = asgnmTm;
|
||||
}
|
||||
|
||||
public String getEduChasiOrd() {
|
||||
return eduChasiOrd;
|
||||
}
|
||||
|
||||
public void setEduChasiOrd(String eduChasiOrd) {
|
||||
this.eduChasiOrd = eduChasiOrd;
|
||||
}
|
||||
|
||||
public String getUserIds() {
|
||||
return userIds;
|
||||
}
|
||||
|
||||
public void setUserIds(String userIds) {
|
||||
this.userIds = userIds;
|
||||
}
|
||||
|
||||
public String getRownum() {
|
||||
return rownum;
|
||||
}
|
||||
|
||||
public void setRownum(String rownum) {
|
||||
this.rownum = rownum;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -22,5 +22,17 @@ public class VEAutoAsgnmMIXDAO extends EgovAbstractDAO {
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEAutoAsgnmVO> selectInstrHopeAreaList(VEAutoAsgnmVO paramVO) {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<VEAutoAsgnmVO> tlist = (List<VEAutoAsgnmVO>) list("VEAutoAsgnmDAO.selectInstrHopeAreaList", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEAutoAsgnmVO> selectInstrPriorityList(VEAutoAsgnmVO paramVO) {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<VEAutoAsgnmVO> tlist = (List<VEAutoAsgnmVO>) list("VEAutoAsgnmDAO.selectInstrPriorityList", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -27,5 +27,15 @@ public class VEAutoAsgnmMIXServiceImpl implements VEAutoAsgnmMIXService {
|
||||
public List<VEAutoAsgnmVO> selectRsdneInstrList(VEAutoAsgnmVO paramVO) throws Exception{
|
||||
return vEAutoAsgnmMIXDAO.selectRsdneInstrList(paramVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VEAutoAsgnmVO> selectInstrHopeAreaList(VEAutoAsgnmVO paramVO) throws Exception{
|
||||
return vEAutoAsgnmMIXDAO.selectInstrHopeAreaList(paramVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VEAutoAsgnmVO> selectInstrPriorityList(VEAutoAsgnmVO paramVO) throws Exception{
|
||||
return vEAutoAsgnmMIXDAO.selectInstrPriorityList(paramVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -49,9 +49,9 @@
|
||||
a.pnlty_id AS pnltyId,
|
||||
a.pnlty_cn AS pnltyCn,
|
||||
|
||||
DATE_FORMAT(a.frst_regist_pnttm,'%Y-%m-%d') AS frstRegistPnttm,
|
||||
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
|
||||
a.frst_register_id AS frstRegisterId,
|
||||
DATE_FORMAT(a.last_updt_pnttm,'%Y-%m-%d') AS lastUpdtPnttm,
|
||||
TO_CHAR(a.last_updt_pnttm,'YYYY-MM-DD') AS lastUpdtPnttm,
|
||||
a.last_updusr_id AS lastUpdusrId,
|
||||
|
||||
a.prvs_srvy_ord AS prvsSrvyOrd,
|
||||
@ -67,6 +67,7 @@
|
||||
<!-- 강사 등록 C -->
|
||||
<insert id="VEEduChasiInstrAsgnmDAO.insert" parameterClass="VEInstrAsgnmVO">
|
||||
|
||||
/* VEEduChasiInstrAsgnmDAO.insert */
|
||||
MERGE INTO <include refid="VEEduChasiInstrAsgnmDAO.table_name"/> T1 USING DUAL
|
||||
ON (T1.EDU_APLCT_ORD = #eduAplctOrd# AND T1.EDU_CHASI_ORD = #eduChasiOrd#)
|
||||
WHEN MATCHED THEN
|
||||
@ -116,6 +117,7 @@
|
||||
|
||||
<!-- 강사 정보 R -->
|
||||
<select id="VEEduChasiInstrAsgnmDAO.selectDetail" parameterClass="VEInstrAsgnmVO" resultClass="VEInstrAsgnmVO">
|
||||
/* VEEduChasiInstrAsgnmDAO.selectDetail */
|
||||
SELECT
|
||||
<include refid="VEEduChasiInstrAsgnmDAO.select_column_name"/>
|
||||
FROM
|
||||
|
||||
@ -107,7 +107,39 @@
|
||||
<select id="VEAutoAsgnmDAO.selectInstrMntAsgnmtChasiList" parameterClass="VEAutoAsgnmVO" resultClass="VEAutoAsgnmVO" remapResults="true">
|
||||
/* VEAutoAsgnmDAO.selectInstrMntAsgnmtChasiList */
|
||||
|
||||
SELECT NVL(aa.chasi,0) AS chasi
|
||||
SELECT
|
||||
dd.EDU_APLCT_ORD
|
||||
, dd.EDU_CHASI_ORD
|
||||
, dd.EDU_HOPE_DT
|
||||
|
||||
/* 해당요일 가능 여부 */
|
||||
, CASE
|
||||
/* 월 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=2 AND ee.mon_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
/* 화 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=3 AND ee.tue_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
/* 수 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=4 AND ee.wed_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
/* 목 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=5 AND ee.thu_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
/* 금 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=6 AND ee.fri_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
ELSE 'N'
|
||||
|
||||
|
||||
END AS psblDayYn
|
||||
|
||||
, NVL(aa.instrSumChasi,0) AS instrSumChasi /* 해당 강사 할당된 총차시 */
|
||||
, cc.userId
|
||||
, cc.rsdne
|
||||
, cc.hopeEduFld
|
||||
@ -135,13 +167,16 @@
|
||||
/*
|
||||
, bb.*
|
||||
*/
|
||||
FROM vea_instr_indvd_mnt_tm bb /* 강사의 월별 배정가능한 시수 */
|
||||
FROM
|
||||
ve_edu_chasi dd
|
||||
, ve_lctr_stng ee
|
||||
, vea_instr_indvd_mnt_tm bb /* 강사의 월별 배정가능한 시수 */
|
||||
LEFT OUTER JOIN
|
||||
(
|
||||
/* 강사에게 교육이 할당(확정, 반려, 요청전, 요첮우 모두 포함)된 차시수 */
|
||||
SELECT
|
||||
d.user_id,
|
||||
sum(NVL(b.chasi, 0)) AS chasi
|
||||
sum(NVL(b.chasi, 0)) AS instrSumChasi
|
||||
FROM ve_edu_aplct a ,
|
||||
ve_edu_chasi b
|
||||
LEFT OUTER JOIN ve_edu_chasi_instr_asgnm d
|
||||
@ -206,8 +241,14 @@
|
||||
cc.userId=bb.user_id
|
||||
)
|
||||
WHERE 1=1
|
||||
AND bb.YR=#yr#
|
||||
|
||||
AND dd.EDU_CHASI_ORD =#eduChasiOrd#
|
||||
AND bb.YR=substring(dd.edu_hope_dt,0,4)
|
||||
|
||||
AND ee.use_yn='Y'
|
||||
AND ee.user_id=cc.userId
|
||||
|
||||
|
||||
/* 대상 조건 1. 해당 월의 배정된 차시가 최대 차시 이내인 강사만 대상임 */
|
||||
AND NVL(
|
||||
CASE
|
||||
WHEN '01'=#eduHopeMnt# THEN m01_tm
|
||||
@ -224,7 +265,74 @@
|
||||
WHEN '12'=#eduHopeMnt# THEN m12_tm
|
||||
|
||||
END
|
||||
,0)>NVL(aa.chasi,0)
|
||||
,0)>NVL(aa.instrSumChasi,0)
|
||||
|
||||
/* 대상 조건 2. 해당 요일에 수업 가능한 강사만 대상임 */
|
||||
|
||||
AND CASE
|
||||
/* 월 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=2 AND ee.mon_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
/* 화 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=3 AND ee.tue_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
/* 수 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=4 AND ee.wed_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
/* 목 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=5 AND ee.thu_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
/* 금 */
|
||||
WHEN to_char(to_date(dd.EDU_HOPE_DT,'YYYY.MM.DD'),'d')=6 AND ee.fri_lctr_yn='Y'
|
||||
THEN 'Y'
|
||||
|
||||
ELSE 'N'
|
||||
|
||||
END ='Y'
|
||||
|
||||
/* 신청한 요일이 적은 강사부터 배정 대상으로 한다. */
|
||||
ORDER BY CASE
|
||||
/* 월 */
|
||||
WHEN ee.mon_lctr_yn='Y'
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
|
||||
+
|
||||
CASE
|
||||
/* 화 */
|
||||
WHEN ee.tue_lctr_yn='Y'
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
|
||||
+
|
||||
CASE
|
||||
/* 수 */
|
||||
WHEN ee.wed_lctr_yn='Y'
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
|
||||
+
|
||||
CASE
|
||||
/* 목 */
|
||||
WHEN ee.thu_lctr_yn='Y'
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
|
||||
+
|
||||
CASE
|
||||
/* 금 */
|
||||
WHEN ee.fri_lctr_yn='Y'
|
||||
THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
</select>
|
||||
|
||||
<!-- //해당 차시 학교에 거주하는 강사 L page -->
|
||||
@ -349,5 +457,178 @@
|
||||
|
||||
END
|
||||
,0)>NVL(aa.chasi,0)
|
||||
</select>
|
||||
</select>
|
||||
|
||||
<!-- //step2-2.희망 지역 강사 검색(필) L page -->
|
||||
<select id="VEAutoAsgnmDAO.selectInstrHopeAreaList" parameterClass="VEAutoAsgnmVO" resultClass="VEAutoAsgnmVO" remapResults="true">
|
||||
/* VEAutoAsgnmDAO.selectInstrHopeAreaList */
|
||||
|
||||
/* 희망지역 필수 */
|
||||
SELECT aaaaa.userId
|
||||
FROM (
|
||||
SELECT
|
||||
aaaa.saddr
|
||||
, aaaa.sAddrTop
|
||||
, aaaa.sAddrSec
|
||||
, aaaa.loc_nm AS locNm
|
||||
, aaaa.user_id AS userId
|
||||
, aaaa.one_depth_nm AS iAddrTop
|
||||
, aaaa.two_depth_nm AS iAddrSec
|
||||
|
||||
FROM (
|
||||
/* 차시 신청 정보 와 신청 학교 주소 정보 + 학교 소재지명 + 신청 가능한 강사 리스트( 주소, 설정 정보 and 패널티) */
|
||||
|
||||
SELECT
|
||||
|
||||
aaa.addr AS sAddr ,
|
||||
/* 학교주소 */
|
||||
/*
|
||||
SUBSTRING_INDEX(aaa.addr,' ',1) AS sAddrTop ,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(aaa.addr,' ',2),' ',-1) AS sAddrSec ,
|
||||
*/
|
||||
regexp_substr(aaa.addr, '[^ ]+',1,1) AS sAddrTop ,
|
||||
regexp_substr(aaa.addr, '[^ ]+',1,2) AS sAddrSec ,
|
||||
|
||||
aaa.loc_nm
|
||||
, bbb.*
|
||||
|
||||
FROM (
|
||||
/* 차시 신청 정보 와 신청 학교 주소 정보 + 학교 소재지명 */
|
||||
SELECT
|
||||
aa.isltn_schol_yn ,
|
||||
cc.loc_nm ,
|
||||
aa.addr
|
||||
FROM (
|
||||
/* 차시 신청 정보 와 신청 학교 주소 정보(학교주소교체는 여기서) */
|
||||
SELECT
|
||||
b.isltn_schol_yn
|
||||
/* y-고립, n-*/
|
||||
,b.addr
|
||||
, b.stndrd_schol_cd
|
||||
|
||||
FROM ve_edu_chasi a ,
|
||||
ve_edu_aplct b
|
||||
WHERE 1 =1
|
||||
AND a.edu_aplct_ord=b.edu_aplct_ord
|
||||
|
||||
AND a.edu_chasi_ord =#eduChasiOrd#
|
||||
)
|
||||
aa ,
|
||||
ve_schol cc
|
||||
WHERE 1 =1
|
||||
AND aa.stndrd_schol_cd=cc.stndrd_schol_cd
|
||||
)
|
||||
aaa
|
||||
,
|
||||
(
|
||||
/* 신청 가능한 전체 강사 리스트 (강사 주소 교체는 여기서)*/
|
||||
SELECT aa.user_id
|
||||
, aa.one_depth_nm
|
||||
, aa.two_depth_nm
|
||||
FROM (
|
||||
SELECT a.user_id
|
||||
, b.one_depth_nm
|
||||
, regexp_substr(NVL(b.two_depth_nm, b.three_depth_nm), '[^ ]+',1,1) AS two_depth_nm
|
||||
|
||||
FROM ve_lctr_area a
|
||||
, ve_rsdnc b
|
||||
WHERE a.AREA_CD =b.POST_ID
|
||||
AND a.user_id IN ($userIds$)
|
||||
)aa
|
||||
GROUP BY aa.user_id
|
||||
, aa.one_depth_nm
|
||||
, aa.two_depth_nm
|
||||
|
||||
)
|
||||
bbb
|
||||
)aaaa
|
||||
)aaaaa
|
||||
|
||||
WHERE sign(
|
||||
CASE
|
||||
WHEN instr(aaaaa.sAddrTop,substr(aaaaa.iAddrTop,0,2))>0 THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
+
|
||||
CASE
|
||||
WHEN instr(aaaaa.iAddrTop,substr(aaaaa.sAddrTop,0,2))>0 THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
)
|
||||
+
|
||||
sign(
|
||||
CASE
|
||||
WHEN instr(aaaaa.sAddrSec,substr(aaaaa.iAddrSec,0,2))>0 THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
+
|
||||
CASE
|
||||
WHEN instr(aaaaa.iAddrSec,substr(aaaaa.sAddrSec,0,2))>0 THEN 1
|
||||
ELSE 0
|
||||
END
|
||||
)>=2
|
||||
GROUP BY aaaaa.userId
|
||||
</select>
|
||||
|
||||
<!-- //step3-1.월별시수대비할당이적은자 우선(필) L page -->
|
||||
<select id="VEAutoAsgnmDAO.selectInstrPriorityList" parameterClass="VEAutoAsgnmVO" resultClass="VEAutoAsgnmVO" remapResults="true">
|
||||
/* VEAutoAsgnmDAO.selectInstrPriorityList */
|
||||
|
||||
SELECT
|
||||
aaa.userId
|
||||
, aaa.instrSumChasi
|
||||
, aaa.asgnmTm
|
||||
, rownum
|
||||
FROM (
|
||||
SELECT bb.*
|
||||
|
||||
, NVL(
|
||||
CASE
|
||||
WHEN '01'=#eduHopeMnt# THEN m01_tm
|
||||
WHEN '02'=#eduHopeMnt# THEN m02_tm
|
||||
WHEN '03'=#eduHopeMnt# THEN m03_tm
|
||||
WHEN '04'=#eduHopeMnt# THEN m04_tm
|
||||
WHEN '05'=#eduHopeMnt# THEN m05_tm
|
||||
WHEN '06'=#eduHopeMnt# THEN m06_tm
|
||||
WHEN '07'=#eduHopeMnt# THEN m07_tm
|
||||
WHEN '08'=#eduHopeMnt# THEN m08_tm
|
||||
WHEN '09'=#eduHopeMnt# THEN m09_tm
|
||||
WHEN '10'=#eduHopeMnt# THEN m10_tm
|
||||
WHEN '11'=#eduHopeMnt# THEN m11_tm
|
||||
WHEN '12'=#eduHopeMnt# THEN m12_tm
|
||||
|
||||
|
||||
END
|
||||
,0)
|
||||
AS asgnmTm
|
||||
|
||||
FROM vea_instr_indvd_mnt_tm aa
|
||||
,(
|
||||
/* 강사에게 교육이 할당(확정, 반려, 요청전, 요첮우 모두 포함)된 차시수 */
|
||||
SELECT d.user_id AS userId,
|
||||
SUM(NVL(b.chasi, 0)) AS instrSumChasi
|
||||
FROM ve_edu_aplct a ,
|
||||
ve_edu_chasi b
|
||||
LEFT OUTER JOIN ve_edu_chasi_instr_asgnm d
|
||||
ON (
|
||||
b.edu_aplct_ord=d.edu_aplct_ord
|
||||
AND b.edu_chasi_ord=d.edu_chasi_ord
|
||||
)
|
||||
WHERE 1 =1
|
||||
AND a.edu_aplct_ord =b.edu_aplct_ord
|
||||
|
||||
AND NVL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
|
||||
AND a.LCTR_DIV_CD = '10'
|
||||
AND a.aprvl_cd = '60'
|
||||
AND 1 =1
|
||||
AND b.edu_hope_dt LIKE #yr#||'.'||#eduHopeMnt#||'%'
|
||||
|
||||
GROUP BY d.user_id
|
||||
)bb
|
||||
WHERE aa.yr=#yr#
|
||||
AND aa.user_id IN ($userIds$)
|
||||
AND aa.USER_ID =bb.userId
|
||||
)aaa
|
||||
ORDER BY aaa.instrSumChasi*10000/(aaa.asgnmTm+1) asc
|
||||
</select>
|
||||
</sqlMap>
|
||||
|
||||
@ -328,40 +328,14 @@
|
||||
var v_searcDivCd = $('#searcDivCd').val();
|
||||
var v_searchKeyword = $('#searchKeyword').val();
|
||||
|
||||
//alert('/rf [http://192.168.0.59:3080/offedu/ve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax.do?p_searchQlfctEndYn="'+v_searchQlfctEndYn+'"&p_searcDivCd="'+v_searcDivCd+'"&p_searchKeyword="'+v_searchKeyword+'"]');
|
||||
|
||||
|
||||
var viewer = new m2soft.crownix.Viewer('http://119.193.215.98:8093/ReportingServer/service');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd','/rexport [5]');
|
||||
//viewer.openFile('sample.mrd','/rfn [sample.txt]');
|
||||
|
||||
viewer.hideToolbarItem(["save"]);
|
||||
viewer.showToolbarItem(["print_pdf"]);
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [cmplt_crtfc_20231030.json]');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='+p_prcsAplctPrdOrd+'&eduAplctOrd='+p_eduAplctOrd+']');
|
||||
//viewer.openFile('sample.mrd');p_prcsAplctPrdOrd, p_eduAplctOrd
|
||||
//viewer.openFile('adult_instr_20231102.mrd', '/rfn [adult_instr_20231102.json]');
|
||||
//viewer.openFile('adult_instr_20231102.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetailAjax.do?p_instrId='+('#p_instrId').val()+']');
|
||||
|
||||
//viewer.openFile('adult_instrs_20231107.mrd', '/rf [http://192.168.0.59:3080/offedu/ve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax.do?p_searchQlfctEndYn="'+v_searchQlfctEndYn+'"&p_searcDivCd="'+v_searcDivCd+'"&p_searchKeyword="'+v_searchKeyword+'"]');
|
||||
viewer.openFile('adult_instrs_20231107.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax.do?p_searchQlfctEndYn='+v_searchQlfctEndYn+'&p_searcDivCd='+v_searcDivCd+'&p_searchKeyword='+v_searchKeyword+']');
|
||||
//viewer.openFile('adult_instrs_20231107.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax.do?p_searchQlfctEndYn='+v_searchQlfctEndYn+'&p_searcDivCd='+v_searcDivCd+'&p_searchKeyword='+v_searchKeyword+']');
|
||||
|
||||
//System.out.println(request.getParameter("searchQlfctEndYn"));
|
||||
//System.out.println(request.getParameter("searcDivCd"));
|
||||
//System.out.println(request.getParameter("searchKeyword"));
|
||||
|
||||
|
||||
/*
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service',
|
||||
'crownix-viewer');
|
||||
viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
*/
|
||||
}
|
||||
/*
|
||||
window.onload = function(){
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service');
|
||||
viewer.openFile('json_subject.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
};
|
||||
*/
|
||||
</script>
|
||||
@ -997,34 +997,16 @@
|
||||
|
||||
|
||||
var viewer = new m2soft.crownix.Viewer('http://119.193.215.98:8093/ReportingServer/service');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd','/rexport [5]');
|
||||
//viewer.openFile('sample.mrd','/rfn [sample.txt]');
|
||||
|
||||
viewer.hideToolbarItem(["save"]);
|
||||
viewer.showToolbarItem(["print_pdf"]);
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [cmplt_crtfc_20231030.json]');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='+p_prcsAplctPrdOrd+'&eduAplctOrd='+p_eduAplctOrd+']');
|
||||
//viewer.openFile('sample.mrd');p_prcsAplctPrdOrd, p_eduAplctOrd
|
||||
//viewer.openFile('adult_instr_20231102.mrd', '/rfn [adult_instr_20231102.json]');
|
||||
//viewer.openFile('adult_instr_20231102.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetailAjax.do?p_instrId='+('#p_instrId').val()+']');
|
||||
//viewer.openFile('adult_instrs_20231107.mrd', '/rf [http://192.168.0.59:3080/offedu/ve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax.do?p_searchQlfctEndYn="'+v_searchQlfctEndYn+'"&p_searcDivCd="'+v_searcDivCd+'"&p_searchKeyword="'+v_searchKeyword+'"]');
|
||||
|
||||
//viewer.openFile('instr_activity_20231108.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/tngrVisitEdu/eduAplct/instrActivityAjax.do?p_userId='+v_userId+']');
|
||||
viewer.openFile('instr_activity_20231108.mrd', '/rf [http://192.168.0.59:3080/offedu/ve/aplct/tngrVisitEdu/eduAplct/instrActivityAjax.do?p_userId='+v_userId+']');
|
||||
viewer.openFile('instr_activity_20231108.mrd', '/rf [http://192.168.0.59:2080/offedu/ve/aplct/tngrVisitEdu/eduAplct/instrActivityAjax.do?p_userId='+v_userId+']');
|
||||
|
||||
|
||||
/*
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service',
|
||||
'crownix-viewer');
|
||||
viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
*/
|
||||
|
||||
}
|
||||
/*
|
||||
window.onload = function(){
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service');
|
||||
viewer.openFile('json_subject.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
};
|
||||
*/
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
@ -723,32 +723,15 @@
|
||||
|
||||
var v_userId = $('#p_instrId').val();
|
||||
var viewer = new m2soft.crownix.Viewer('http://119.193.215.98:8093/ReportingServer/service');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd','/rexport [5]');
|
||||
//viewer.openFile('sample.mrd','/rfn [sample.txt]');
|
||||
|
||||
viewer.hideToolbarItem(["save"]);
|
||||
viewer.showToolbarItem(["print_pdf"]);
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [cmplt_crtfc_20231030.json]');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='+p_prcsAplctPrdOrd+'&eduAplctOrd='+p_eduAplctOrd+']');
|
||||
//viewer.openFile('sample.mrd');p_prcsAplctPrdOrd, p_eduAplctOrd
|
||||
|
||||
//viewer.openFile('adult_instr_20231102.mrd', '/rfn [adult_instr_20231102.json]');
|
||||
//viewer.openFile('adult_instr_20231102.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetailAjax.do?p_instrId='+('#p_instrId').val()+']');
|
||||
viewer.openFile('adult_instr_20231102.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetailAjax.do?p_instrId='+v_userId+']');
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service',
|
||||
'crownix-viewer');
|
||||
viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
*/
|
||||
}
|
||||
/*
|
||||
window.onload = function(){
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service');
|
||||
viewer.openFile('json_subject.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
};
|
||||
*/
|
||||
|
||||
</script>
|
||||
@ -237,28 +237,13 @@ $(document).ready(function(){
|
||||
function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd){
|
||||
|
||||
var viewer = new m2soft.crownix.Viewer('http://119.193.215.98:8093/ReportingServer/service');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd','/rexport [5]');
|
||||
//viewer.openFile('sample.mrd','/rfn [sample.txt]');
|
||||
|
||||
viewer.hideToolbarItem(["save"]);
|
||||
viewer.showToolbarItem(["print_pdf"]);
|
||||
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [cmplt_crtfc_20231030.json]');
|
||||
viewer.openFile('cmplt_crtfc_20231030.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='+p_prcsAplctPrdOrd+'&eduAplctOrd='+p_eduAplctOrd+']');
|
||||
//viewer.openFile('sample.mrd');p_prcsAplctPrdOrd, p_eduAplctOrd
|
||||
|
||||
|
||||
|
||||
/*
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service',
|
||||
'crownix-viewer');
|
||||
viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
*/
|
||||
}
|
||||
/*
|
||||
window.onload = function(){
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service');
|
||||
viewer.openFile('json_subject.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
};
|
||||
*/
|
||||
</script>
|
||||
@ -1,507 +1,489 @@
|
||||
<%@ 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"%>
|
||||
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
|
||||
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
|
||||
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
|
||||
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
|
||||
<style>
|
||||
input:disabled {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
input:read-only {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
#fileControl{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
|
||||
.innorix_basic div.irx_filetree.empty-uploader{background: url(/offedu/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
|
||||
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
|
||||
</style>
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
//대용량 업로드 세팅
|
||||
|
||||
/*
|
||||
* ==================================================================
|
||||
* INNORIX
|
||||
* 파일전송 컨트롤 생성
|
||||
* ==================================================================
|
||||
*/
|
||||
control = innorix.create({
|
||||
el: '#fileControl' // 컨트롤 출력 HTML 객체 ID
|
||||
, transferMode: 'both' // 업로드, 다운로드 혼합사용
|
||||
, installUrl: '<c:url value="/innorix/install/install.html" />' // Agent 설치 페이지
|
||||
, uploadUrl: '<c:url value="/innorix/exam/upload.jsp" />' // 업로드 URL
|
||||
, height:40
|
||||
, width: 650
|
||||
, maxFileCount : 1 // 첨부파일 최대 갯수
|
||||
, allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"]
|
||||
// 가능한 확장자 txt|xls|xlsx|png|jpg|jpeg|doc|ppt|hwp|pdf|zip
|
||||
});
|
||||
|
||||
// 업로드 완료 후 이벤트
|
||||
control.on('uploadComplete', function (p) {
|
||||
console.log('uploadComplete : ', p);
|
||||
fn_callBackInnorix(p.files); // 파일 정보 DB isnert function
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
* 교육 확정일떄 취소를하면 팝업이 열림
|
||||
* 열리기전 데이터를 form에 넣고 팝업 오픈
|
||||
*/
|
||||
function fn_cnclUpdate(eduAplctOrd, prcsAplctPrdOrd){
|
||||
var cnclForm = document.cnclForm;
|
||||
cnclForm.eduAplctOrd.value = eduAplctOrd;
|
||||
cnclForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
}
|
||||
|
||||
function fn_veEduAplctCnclUpdate(eduAplctOrd){
|
||||
var form = document.veEduAplctForm;
|
||||
form.eduAplctOrd.value = eduAplctOrd;
|
||||
|
||||
var data = new FormData(document.getElementById("veEduAplctForm"));
|
||||
if(confirm("취소 신청하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/cnclUpdateAjax.do";
|
||||
console.log(data);
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: url,
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("취소되었습니다.");
|
||||
fncGoList();
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncReset(thisObj){
|
||||
var targetObj = $(thisObj).closest('.list_top').find('select,input');
|
||||
$.each(targetObj, function(){
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var viewForm = document.viewForm ;
|
||||
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
viewForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/eduAplctDetail.do'/>";
|
||||
viewForm.submit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//서류 요청
|
||||
function insetDocReq(){
|
||||
//서류명 체크
|
||||
if($("input[name=cnclCn]").val() == ''){
|
||||
alert("취소사유를 입력해 주세요");
|
||||
return false;
|
||||
}
|
||||
//첨부파일 체크 및 요청
|
||||
if(confirm("제출 하시겠습니까?")){
|
||||
if(control.getUploadFiles().length > 0){
|
||||
var postObj = new Object();
|
||||
postObj.innoDirPath = $('#innoDirPath').val();
|
||||
control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
|
||||
control.upload(); // 업로드 시작
|
||||
}else{
|
||||
alert("등록된 첨부파일이 없습니다.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//서류 요청 양식 업로드 후 콜백
|
||||
function fn_callBackInnorix(data){
|
||||
var url = "<c:url value='/web/common/insertInnorixSspnCnClAjax.do' />";
|
||||
//선택된 강사 ID
|
||||
|
||||
var sendData = {
|
||||
"fileType": "sspnForm"
|
||||
, "eduAplctOrd": $('#cnclForm #eduAplctOrd').val()
|
||||
, "prcsAplctPrdOrd": $('#cnclForm #prcsAplctPrdOrd').val()
|
||||
, "innorixFileListVO": data
|
||||
, "cnclCn" : $('#cnclCn').val()
|
||||
, "successMsg" : "등록이 완료되었습니다."
|
||||
}
|
||||
console.log('sendData : ', sendData);
|
||||
/*
|
||||
* 공통 : innorixCommon.js
|
||||
* fn_innorixCmmAjax() 호출 후 status가 성공(OK)이면 실행
|
||||
*/
|
||||
if(fn_innorixCmmAjax(sendData, url) == "OK")
|
||||
{
|
||||
location.reload(true);
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
<div class="cont_wrap" id="sub">
|
||||
|
||||
<form id="veEduAplctForm" name="veEduAplctForm">
|
||||
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
|
||||
<input type="hidden" id="aprvlCd" name="aprvlCd" value="40">
|
||||
</form>
|
||||
|
||||
<form id="cnclForm" name="cnclForm">
|
||||
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
|
||||
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
|
||||
<form name="regForm" id="regForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="viewForm" id="viewForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="goEduAplctListForm" id="goEduAplctListForm">
|
||||
</form>
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
|
||||
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
|
||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
|
||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
|
||||
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>신청목록</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top">
|
||||
<div class="list_top_left">
|
||||
<label for="searchStatus" class="label">신청상태 선택</label>
|
||||
<select class="selType1" id="searchStatus" name="searchStatus">
|
||||
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
|
||||
</div>
|
||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
|
||||
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
|
||||
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_list01">
|
||||
<table>
|
||||
<caption>교육 목록표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:10%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육과정</th>
|
||||
<th>교육일자</th>
|
||||
<th>신청결과</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
|
||||
<c:out value="${list.eduStrtPnttm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<!--
|
||||
10 요청
|
||||
120 선정완료
|
||||
140 선정취소
|
||||
20 승인
|
||||
230 대기
|
||||
30 반려
|
||||
40 취소
|
||||
60 교육확정
|
||||
70 수정요청
|
||||
80 수정완료
|
||||
90 교육미확정
|
||||
-->
|
||||
<c:choose>
|
||||
<c:when test="${not empty list.aplctStateCd }">
|
||||
<!--
|
||||
VEA003 10 미이수
|
||||
VEA003 20 이수완료
|
||||
VEA003 30 취소
|
||||
VEA003 35 취소요청
|
||||
-->
|
||||
<kc:code codeId="VEA003" code="${list.aplctStateCd }"/>
|
||||
<!-- 취소요청 내용이 있고 미이수, 이수인 상태 -->
|
||||
<c:if test="${not empty list.cnclCn and (list.aplctStateCd eq 10 or list.aplctStateCd eq 20)}">
|
||||
(취소-반려)
|
||||
</c:if>
|
||||
<c:if test="${list.aplctStateCd eq 10 }"> <!--교육 승인된 상태 (미이수)일 때만 취소버튼 노출 -->
|
||||
<button type="button" title="신청취소" class="btnType02" data-tooltip="sub37_pop02" onclick="fn_cnclUpdate('${list.eduAplctOrd }','${list.prcsAplctPrdOrd }')">취소</button>
|
||||
</c:if>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
|
||||
<c:if test="${list.aprvlCd eq 10 }">
|
||||
<button type="button" title="신청취소" class="btnType02" onclick="fn_veEduAplctCnclUpdate('${list.eduAplctOrd }')">취소</button>
|
||||
</c:if>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<!-- <button type="button" title="신청취소" class="btnType02" data-tooltip="sub01_pop01">취소</button> -->
|
||||
</td>
|
||||
<td>
|
||||
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
||||
<!--
|
||||
취소상태
|
||||
list.aplctStateCd ne 30
|
||||
list.aprvlCd ne 40
|
||||
-->
|
||||
<c:choose>
|
||||
<c:when test="${list.aprvlCd eq 20
|
||||
and list.dateChk eq 1
|
||||
and not list.qestRsltExists
|
||||
and list.aplctStateCd ne 30
|
||||
and list.aprvlCd ne 40
|
||||
}">
|
||||
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||
설문완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<!--
|
||||
취소상태
|
||||
list.aplctStateCd ne 30
|
||||
list.aprvlCd ne 40
|
||||
-->
|
||||
<c:choose>
|
||||
<c:when test="${list.qestRsltExists }">
|
||||
<button type="button" title="출력" class="btnType03">출력</button>
|
||||
</c:when>
|
||||
<c:when test="${list.dateChk eq 1
|
||||
and not list.qestRsltExists
|
||||
and list.aplctStateCd ne 30
|
||||
and list.aprvlCd ne 40
|
||||
}">
|
||||
교육완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
<button type="button" title="이수증" class="btnType01" onclick="fncCmpltCrtfc('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">이수증테스트</button>
|
||||
|
||||
</td>
|
||||
<!-- <td>-</td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/eduAplctList.do" />'">강의목록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 서류요청 팝업 -->
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop02" data-focus="sub37_pop02" data-focus-prev="sub37_pop02_close">
|
||||
<div class="popup_tit">
|
||||
<p>취소 사용 제출</p>
|
||||
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop02_close" title="팝업 닫기"><i></i></button>
|
||||
</div>
|
||||
<div class="popup_cont">
|
||||
<div class="cont_body">
|
||||
<div class="popup_table_top">
|
||||
<button type="button" class="btnType06">취소양식 다운로드</button>
|
||||
</div>
|
||||
<div class="pop_tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 22%;">
|
||||
<col style="">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<th>취소사유</th>
|
||||
<td><textarea id="cnclCn" name="cnclCn"></textarea></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="popup_cont upload_area">
|
||||
<div>
|
||||
<div class="pop_search_wrap">
|
||||
<label for="fileNm" class="label">첨부파일 선택</label>
|
||||
<button type="button" onclick="control.openFileDialogSingle();" class="btnType01 btn_add_file">파일찾기</button>
|
||||
</div>
|
||||
<div id="fileControl"></div><br/>
|
||||
<div class="pop_btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pop_btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
|
||||
<!-- <button type="button" class="btnType05">제출</button> -->
|
||||
<button type="button" class="btnType05" id="popupSubmin" onclick="insetDocReq();">요청</button>
|
||||
|
||||
<button type="button" class="btnType02 tooltip-close" data-focus="sub37_pop02_close" data-focus-next="sub37_pop02">닫기</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 서류요청 팝업-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="http://119.193.215.98:8093/ReportingServer/html5/js/crownix-viewer.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="http://119.193.215.98:8093/ReportingServer/html5/css/crownix-viewer.min.css">
|
||||
<script>
|
||||
/*
|
||||
* 오버레이 방식
|
||||
*/
|
||||
function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd) {
|
||||
|
||||
var viewer = new m2soft.crownix.Viewer(
|
||||
'http://119.193.215.98:8093/ReportingServer/service');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd','/rexport [5]');
|
||||
//viewer.openFile('sample.mrd','/rfn [sample.txt]');
|
||||
//viewer.hideToolbarItem(["save"]);
|
||||
//viewer.openFile('sample.mrd');
|
||||
viewer.hideToolbarItem([ "save" ]);
|
||||
//viewer.showToolbarItem(["print"]);
|
||||
viewer.showToolbarItem([ "print_pdf" ]);
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [cmplt_crtfc_20231030.json]');
|
||||
viewer
|
||||
.openFile(
|
||||
'cmplt_crtfc_20231030.mrd',
|
||||
'/rf [http://119.193.215.98:9989/offedu/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='
|
||||
+ p_prcsAplctPrdOrd
|
||||
+ '&eduAplctOrd='
|
||||
+ p_eduAplctOrd + ']');
|
||||
|
||||
/*
|
||||
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service',
|
||||
'crownix-viewer');
|
||||
viewer.openFile('cmplt_crtfc_20231030.mrd');
|
||||
*/
|
||||
|
||||
}
|
||||
/*
|
||||
window.onload = function(){
|
||||
var viewer = new m2soft.crownix.Viewer('http://192.168.0.176:8093/ReportingServer/service');
|
||||
viewer.openFile('json_subject.mrd', '/rfn [jsonsample_red_2.json]');
|
||||
};
|
||||
*/
|
||||
<%@ 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"%>
|
||||
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
|
||||
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
|
||||
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||
<title>교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<spring:eval expression="@property['Globals.Innorix.License']" var="license"/>
|
||||
<script src="<c:url value='/innorix/innorix_${license}.js' />"></script>
|
||||
<script src="<c:url value='/js/kccadr/innorixCommon.js' />"></script>
|
||||
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
|
||||
<style>
|
||||
input:disabled {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
input:read-only {
|
||||
background-color: #f9f9f9 !important;
|
||||
}
|
||||
#fileControl{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;}
|
||||
.innorix_basic div.irx_filetree.empty-uploader{background: url(/offedu/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;}
|
||||
.irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
|
||||
</style>
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
//대용량 업로드 세팅
|
||||
|
||||
/*
|
||||
* ==================================================================
|
||||
* INNORIX
|
||||
* 파일전송 컨트롤 생성
|
||||
* ==================================================================
|
||||
*/
|
||||
control = innorix.create({
|
||||
el: '#fileControl' // 컨트롤 출력 HTML 객체 ID
|
||||
, transferMode: 'both' // 업로드, 다운로드 혼합사용
|
||||
, installUrl: '<c:url value="/innorix/install/install.html" />' // Agent 설치 페이지
|
||||
, uploadUrl: '<c:url value="/innorix/exam/upload.jsp" />' // 업로드 URL
|
||||
, height:40
|
||||
, width: 650
|
||||
, maxFileCount : 1 // 첨부파일 최대 갯수
|
||||
, allowExtension : ["txt","xls","xlsx","png","jpg","jpeg","doc","ppt","hwp","pdf","zip"]
|
||||
// 가능한 확장자 txt|xls|xlsx|png|jpg|jpeg|doc|ppt|hwp|pdf|zip
|
||||
});
|
||||
|
||||
// 업로드 완료 후 이벤트
|
||||
control.on('uploadComplete', function (p) {
|
||||
console.log('uploadComplete : ', p);
|
||||
fn_callBackInnorix(p.files); // 파일 정보 DB isnert function
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
* 교육 확정일떄 취소를하면 팝업이 열림
|
||||
* 열리기전 데이터를 form에 넣고 팝업 오픈
|
||||
*/
|
||||
function fn_cnclUpdate(eduAplctOrd, prcsAplctPrdOrd){
|
||||
var cnclForm = document.cnclForm;
|
||||
cnclForm.eduAplctOrd.value = eduAplctOrd;
|
||||
cnclForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
}
|
||||
|
||||
function fn_veEduAplctCnclUpdate(eduAplctOrd){
|
||||
var form = document.veEduAplctForm;
|
||||
form.eduAplctOrd.value = eduAplctOrd;
|
||||
|
||||
var data = new FormData(document.getElementById("veEduAplctForm"));
|
||||
if(confirm("취소 신청하시겠습니까?")){
|
||||
var url = "${pageContext.request.contextPath}/web/ve/aplct/sspnIdtmt/cnclUpdateAjax.do";
|
||||
console.log(data);
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: url,
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
alert("취소되었습니다.");
|
||||
fncGoList();
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function linkPage(pageNo){
|
||||
var listForm = document.listForm ;
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
function fncGoList(){
|
||||
linkPage(1);
|
||||
}
|
||||
|
||||
function fncReset(thisObj){
|
||||
var targetObj = $(thisObj).closest('.list_top').find('select,input');
|
||||
$.each(targetObj, function(){
|
||||
$(this).val('');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function fncGoDetail(prcsAplctPrdOrd){
|
||||
var viewForm = document.viewForm ;
|
||||
viewForm.prcsAplctPrdOrd.value = prcsAplctPrdOrd ;
|
||||
viewForm.action = "<c:url value='/web/ve/aplct/sspnIdtmt/eduAplctDetail.do'/>";
|
||||
viewForm.submit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//서류 요청
|
||||
function insetDocReq(){
|
||||
//서류명 체크
|
||||
if($("input[name=cnclCn]").val() == ''){
|
||||
alert("취소사유를 입력해 주세요");
|
||||
return false;
|
||||
}
|
||||
//첨부파일 체크 및 요청
|
||||
if(confirm("제출 하시겠습니까?")){
|
||||
if(control.getUploadFiles().length > 0){
|
||||
var postObj = new Object();
|
||||
postObj.innoDirPath = $('#innoDirPath').val();
|
||||
control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
|
||||
control.upload(); // 업로드 시작
|
||||
}else{
|
||||
alert("등록된 첨부파일이 없습니다.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//서류 요청 양식 업로드 후 콜백
|
||||
function fn_callBackInnorix(data){
|
||||
var url = "<c:url value='/web/common/insertInnorixSspnCnClAjax.do' />";
|
||||
//선택된 강사 ID
|
||||
|
||||
var sendData = {
|
||||
"fileType": "sspnForm"
|
||||
, "eduAplctOrd": $('#cnclForm #eduAplctOrd').val()
|
||||
, "prcsAplctPrdOrd": $('#cnclForm #prcsAplctPrdOrd').val()
|
||||
, "innorixFileListVO": data
|
||||
, "cnclCn" : $('#cnclCn').val()
|
||||
, "successMsg" : "등록이 완료되었습니다."
|
||||
}
|
||||
console.log('sendData : ', sendData);
|
||||
/*
|
||||
* 공통 : innorixCommon.js
|
||||
* fn_innorixCmmAjax() 호출 후 status가 성공(OK)이면 실행
|
||||
*/
|
||||
if(fn_innorixCmmAjax(sendData, url) == "OK")
|
||||
{
|
||||
location.reload(true);
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<!-- content -->
|
||||
<div class="cont_wrap" id="sub">
|
||||
|
||||
<form id="veEduAplctForm" name="veEduAplctForm">
|
||||
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
|
||||
<input type="hidden" id="aprvlCd" name="aprvlCd" value="40">
|
||||
</form>
|
||||
|
||||
<form id="cnclForm" name="cnclForm">
|
||||
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd">
|
||||
<input type="hidden" id="prcsAplctPrdOrd" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
|
||||
<form name="regForm" id="regForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="viewForm" id="viewForm">
|
||||
<input type="hidden" name="prcsAplctPrdOrd">
|
||||
</form>
|
||||
<form name="goEduAplctListForm" id="goEduAplctListForm">
|
||||
</form>
|
||||
|
||||
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO">
|
||||
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
|
||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
|
||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
|
||||
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
|
||||
<div class="cont_tit">
|
||||
<h2>신청목록</h2>
|
||||
<div class="sns_go">
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/facebook_icon.png" alt="페이스북 바로가기"></button>
|
||||
<button type="button" title="새창열림"><img src="${pageContext.request.contextPath}/visitEdu/usr/publish/images/content/twitter_icon.png" alt="트위터 바로가기"></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list_top">
|
||||
<div class="list_top_left">
|
||||
<label for="searchStatus" class="label">신청상태 선택</label>
|
||||
<select class="selType1" id="searchStatus" name="searchStatus">
|
||||
<option ${vEPrcsDetailVO.searchStatus eq '' ? 'selected' : ''} value="">전체</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_SBMT ? 'selected' : ''} value="${VeConstants.STATUS_CD_SBMT}">교육신청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_REQ ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_REQ}">수정요청</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDT_CMPT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDT_CMPT}">수정완료</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_CAN ? 'selected' : ''} value="${VeConstants.STATUS_CD_CAN}">교육취소</option>
|
||||
<option ${vEPrcsDetailVO.searchStatus eq VeConstants.STATUS_CD_EDU_SELCT ? 'selected' : ''} value="${VeConstants.STATUS_CD_EDU_SELCT}">교육확정</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="btn_wrap">
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEPrcsDetailVO.searchStartDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchStartDt" class="startDate" value="${vEPrcsDetailVO.searchStartDt}"></duet-date-picker>
|
||||
</div>
|
||||
~
|
||||
<div class="calendar_wrap">
|
||||
<%-- <input type="text" class="calendar" id="searchEndDt" name="searchEndDt" title="종료일 선택" value="${vEPrcsDetailVO.searchEndDt}"> --%>
|
||||
<duet-date-picker identifier="date" name="searchEndDt" class="endDate" value="${vEPrcsDetailVO.searchEndDt}"></duet-date-picker>
|
||||
</div>
|
||||
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
|
||||
<button type="button" class="btnType01" onclick="fncGoList();">검색</button>
|
||||
<button type="button" class="btnType02" onclick="fncReset(this);">초기화</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_list01">
|
||||
<table>
|
||||
<caption>교육 목록표</caption>
|
||||
<colgroup>
|
||||
<col style="width:35%;">
|
||||
<col style="width:10%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
<col style="width:13%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>교육과정</th>
|
||||
<th>교육일자</th>
|
||||
<th>신청결과</th>
|
||||
<th>설문조사</th>
|
||||
<th>이수증</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach var="list" items="${list}" varStatus="status">
|
||||
<tr>
|
||||
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
|
||||
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
|
||||
</td>
|
||||
<td>
|
||||
<%-- <c:out value="${list.eduStrtPnttm}"/>~<c:out value="${list.eduDdlnPnttm}"/> --%>
|
||||
<c:out value="${list.eduStrtPnttm}"/>
|
||||
</td>
|
||||
<td>
|
||||
<!--
|
||||
10 요청
|
||||
120 선정완료
|
||||
140 선정취소
|
||||
20 승인
|
||||
230 대기
|
||||
30 반려
|
||||
40 취소
|
||||
60 교육확정
|
||||
70 수정요청
|
||||
80 수정완료
|
||||
90 교육미확정
|
||||
-->
|
||||
<c:choose>
|
||||
<c:when test="${not empty list.aplctStateCd }">
|
||||
<!--
|
||||
VEA003 10 미이수
|
||||
VEA003 20 이수완료
|
||||
VEA003 30 취소
|
||||
VEA003 35 취소요청
|
||||
-->
|
||||
<kc:code codeId="VEA003" code="${list.aplctStateCd }"/>
|
||||
<!-- 취소요청 내용이 있고 미이수, 이수인 상태 -->
|
||||
<c:if test="${not empty list.cnclCn and (list.aplctStateCd eq 10 or list.aplctStateCd eq 20)}">
|
||||
(취소-반려)
|
||||
</c:if>
|
||||
<c:if test="${list.aplctStateCd eq 10 }"> <!--교육 승인된 상태 (미이수)일 때만 취소버튼 노출 -->
|
||||
<button type="button" title="신청취소" class="btnType02" data-tooltip="sub37_pop02" onclick="fn_cnclUpdate('${list.eduAplctOrd }','${list.prcsAplctPrdOrd }')">취소</button>
|
||||
</c:if>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<kc:code codeId="VE0003" code="${list.aprvlCd}"/>
|
||||
<c:if test="${list.aprvlCd eq 10 }">
|
||||
<button type="button" title="신청취소" class="btnType02" onclick="fn_veEduAplctCnclUpdate('${list.eduAplctOrd }')">취소</button>
|
||||
</c:if>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<!-- <button type="button" title="신청취소" class="btnType02" data-tooltip="sub01_pop01">취소</button> -->
|
||||
</td>
|
||||
<td>
|
||||
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
||||
<!--
|
||||
취소상태
|
||||
list.aplctStateCd ne 30
|
||||
list.aprvlCd ne 40
|
||||
-->
|
||||
<c:choose>
|
||||
<c:when test="${list.aprvlCd eq 20
|
||||
and list.dateChk eq 1
|
||||
and not list.qestRsltExists
|
||||
and list.aplctStateCd ne 30
|
||||
and list.aprvlCd ne 40
|
||||
}">
|
||||
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
|
||||
</c:when>
|
||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||
설문완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</td>
|
||||
<td>
|
||||
<!--
|
||||
취소상태
|
||||
list.aplctStateCd ne 30
|
||||
list.aprvlCd ne 40
|
||||
-->
|
||||
<c:choose>
|
||||
<c:when test="${list.qestRsltExists }">
|
||||
<button type="button" title="출력" class="btnType03">출력</button>
|
||||
</c:when>
|
||||
<c:when test="${list.dateChk eq 1
|
||||
and not list.qestRsltExists
|
||||
and list.aplctStateCd ne 30
|
||||
and list.aprvlCd ne 40
|
||||
}">
|
||||
교육완료
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
-
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
<button type="button" title="이수증" class="btnType01" onclick="fncCmpltCrtfc('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">이수증테스트</button>
|
||||
|
||||
</td>
|
||||
<!-- <td>-</td> -->
|
||||
</tr>
|
||||
</c:forEach>
|
||||
<c:if test="${empty list}">
|
||||
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button type="button" class="btnType01" onclick="location.href='<c:url value="/web/ve/aplct/sspnIdtmt/eduAplctList.do" />'">강의목록</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- page -->
|
||||
<div class="page">
|
||||
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
|
||||
</div>
|
||||
</form:form>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 서류요청 팝업 -->
|
||||
<div class="tooltip-wrap">
|
||||
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop02" data-focus="sub37_pop02" data-focus-prev="sub37_pop02_close">
|
||||
<div class="popup_tit">
|
||||
<p>취소 사용 제출</p>
|
||||
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop02_close" title="팝업 닫기"><i></i></button>
|
||||
</div>
|
||||
<div class="popup_cont">
|
||||
<div class="cont_body">
|
||||
<div class="popup_table_top">
|
||||
<button type="button" class="btnType06">취소양식 다운로드</button>
|
||||
</div>
|
||||
<div class="pop_tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 22%;">
|
||||
<col style="">
|
||||
</colgroup>
|
||||
<tr>
|
||||
<th>취소사유</th>
|
||||
<td><textarea id="cnclCn" name="cnclCn"></textarea></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="popup_cont upload_area">
|
||||
<div>
|
||||
<div class="pop_search_wrap">
|
||||
<label for="fileNm" class="label">첨부파일 선택</label>
|
||||
<button type="button" onclick="control.openFileDialogSingle();" class="btnType01 btn_add_file">파일찾기</button>
|
||||
</div>
|
||||
<div id="fileControl"></div><br/>
|
||||
<div class="pop_btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pop_btn_wrap btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
|
||||
<!-- <button type="button" class="btnType05">제출</button> -->
|
||||
<button type="button" class="btnType05" id="popupSubmin" onclick="insetDocReq();">요청</button>
|
||||
|
||||
<button type="button" class="btnType02 tooltip-close" data-focus="sub37_pop02_close" data-focus-next="sub37_pop02">닫기</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--// 서류요청 팝업-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="http://119.193.215.98:8093/ReportingServer/html5/js/crownix-viewer.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="http://119.193.215.98:8093/ReportingServer/html5/css/crownix-viewer.min.css">
|
||||
<script>
|
||||
/*
|
||||
* 오버레이 방식
|
||||
*/
|
||||
function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd) {
|
||||
|
||||
var viewer = new m2soft.crownix.Viewer(
|
||||
'http://119.193.215.98:8093/ReportingServer/service');
|
||||
|
||||
viewer.hideToolbarItem([ "save" ]);
|
||||
//viewer.showToolbarItem(["print"]);
|
||||
viewer.showToolbarItem([ "print_pdf" ]);
|
||||
|
||||
viewer.openFile(
|
||||
'cmplt_crtfc_20231030.mrd',
|
||||
'/rf [http://119.193.215.98:9989/offedu/ve/aplct/sspnIdtmt/sspnIdtmtEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='
|
||||
+ p_prcsAplctPrdOrd
|
||||
+ '&eduAplctOrd='
|
||||
+ p_eduAplctOrd + ']');
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
@ -1065,8 +1065,8 @@ var psblFlag = "Y";//학생 신청가능기간여부 체크
|
||||
<td>
|
||||
<label for="eduPlace" class="label">교육장소 입력</label>
|
||||
<input type="text" value="${info.eduPlace}" name="eduPlace" id="eduPlace" size="25" disabled>
|
||||
<input type="checkbox" name="corpsEdu" id="corpsEdu" value="Y" <c:if test="${info.corpsEdu eq 'Y'}">checked</c:if>> <label for="corpsEdu">집체교육</label>
|
||||
<input type="checkbox" name="broadroomEdu" id="broadroomEdu" value="Y" <c:if test="${info.broadroomEdu eq 'Y'}">checked</c:if>> <label for="broadroomEdu">방송실교육</label>
|
||||
<%-- <input type="checkbox" name="corpsEdu" id="corpsEdu" value="Y" <c:if test="${info.corpsEdu eq 'Y'}">checked</c:if>> <label for="corpsEdu">집체교육</label> --%>
|
||||
<%-- <input type="checkbox" name="broadroomEdu" id="broadroomEdu" value="Y" <c:if test="${info.broadroomEdu eq 'Y'}">checked</c:if>> <label for="broadroomEdu">방송실교육</label> --%>
|
||||
<ve:radio codeId="VEA010" id="eduPlaceCd" name="eduPlaceCd"
|
||||
selectedValue="${empty info.eduPlaceCd ? '01' : info.eduPlaceCd}"
|
||||
onChange="eduPlaceChg();"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user