Merge branch 'JIWOO' into advc

This commit is contained in:
jiwoo 2023-11-06 15:14:17 +09:00
commit 9941b38d27
22 changed files with 891 additions and 6 deletions

View File

@ -62,6 +62,7 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
//서류요청 기능 //서류요청 기능
public String docReqNm = ""; //요청 서류명 public String docReqNm = ""; //요청 서류명
public String sbmtId = ""; //제출 강사 ID public String sbmtId = ""; //제출 강사 ID
public String eduDocReqOrd = "";//서류요청 순번
public String getFileType() { public String getFileType() {
@ -160,6 +161,14 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
this.sbmtId = sbmtId; this.sbmtId = sbmtId;
} }
public String getEduDocReqOrd() {
return eduDocReqOrd;
}
public void setEduDocReqOrd(String eduDocReqOrd) {
this.eduDocReqOrd = eduDocReqOrd;
}

View File

@ -36,4 +36,6 @@ public interface InnorixFileService {
RestResponse insertInnorixReqFile(AdrInnorixFileVO adrInnorixFileVO); RestResponse insertInnorixReqFile(AdrInnorixFileVO adrInnorixFileVO);
RestResponse insertInnorixDocFile(AdrInnorixFileVO adrInnorixFileVO);
} }

View File

@ -432,6 +432,32 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
} }
} catch (Exception e) {
e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now());
}
@Override
public RestResponse insertInnorixDocFile(AdrInnorixFileVO adrInnorixFileVO) {
List<FileVO> result = null;
try {
// 파일 저장 저장할 file 정보를 받아옴
result = this.insertFileData(adrInnorixFileVO);
// 파일 정보 insert
String atchFileId = fileManageDAO.insertFileInfs(result);
//VE_EDU_DOC_REQ 서류요청테이블 insert
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setEduDocReqOrd(adrInnorixFileVO.getEduDocReqOrd());
vEEduAplctVO.setSbmtAtchFileId(atchFileId);
vEEduAplctService.updateSbmtAtchFileId(vEEduAplctVO);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now()); return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());

View File

@ -184,4 +184,29 @@ public class InnorixFileController {
return ResponseEntity.ok(innorixService.insertInnorixReqFile(adrInnorixFileVO)); return ResponseEntity.ok(innorixService.insertInnorixReqFile(adrInnorixFileVO));
} }
/**
* @methodName : insertReqDocInnorixFile
* @author : 이지우
* @date : 2023.11.06
* @description : 파일 insert 전용
* @param adrInnorixFileVO
* @return
* @throws Exception
* 청소년 교육 강사 요청 서류 업로드
*/
@RequestMapping(value = {"/web/common/insertInnorixDocFileAjax.do"}, method = RequestMethod.POST)
public ResponseEntity<RestResponse> insertReqDocInnorixFile(@RequestBody AdrInnorixFileVO adrInnorixFileVO) throws Exception {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
if(userId.equals("")) {
return ResponseEntity.ok(new RestResponse(HttpStatus.UNAUTHORIZED, "로그인이 필요합니다.", LocalDateTime.now()));
}
adrInnorixFileVO.setUniqId(userId);
return ResponseEntity.ok(innorixService.insertInnorixDocFile(adrInnorixFileVO));
}
} }

View File

@ -901,6 +901,29 @@ public class CommonWebController {
return modelAndView; return modelAndView;
} }
// 강사 요청 서류 업르도 팝업
@RequestMapping("/popup/docFileUploadPop.do")
public String reqFileUploadPop(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model, HttpServletRequest request) throws Exception{
try {
//로그인 정보 가져오기
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
vEEduAplctVO.setUserId(loginVO.getUniqId());
System.out.println("===================== loginVO.getUniqId() :: " + loginVO.getUniqId());
String fileType = request.getParameter("fileType");
System.out.println("=====================" + fileType);
model.addAttribute("fileType", fileType);
String eduDocReqOrd = request.getParameter("eduDocReqOrd");
model.addAttribute("eduDocReqOrd", eduDocReqOrd);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
return "/web/ve/comm/docFileUploadPop";
}
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
// //
// //

View File

@ -484,6 +484,13 @@ public class EduEndTngrController {
egovQustnrRespondManageService.selectQustnrRespondManageListCnt(searchVO); egovQustnrRespondManageService.selectQustnrRespondManageListCnt(searchVO);
model.addAttribute("cryptoUtil", egovCryptoUtil); model.addAttribute("cryptoUtil", egovCryptoUtil);
//서류 요청 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
return "/web/ve/aplct/tngrVisitEdu/eduEnd/eduEndDetail"; return "/web/ve/aplct/tngrVisitEdu/eduEnd/eduEndDetail";
} }

View File

@ -29,6 +29,8 @@ import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
@ -86,6 +88,9 @@ public class VEAsgnmController {
@Resource(name = "vEEduMIXService") @Resource(name = "vEEduMIXService")
private VEEduMIXService vEEduMIXService; private VEEduMIXService vEEduMIXService;
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
//청소년강사 강의 요청 목록 //청소년강사 강의 요청 목록
@RequestMapping("/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.do") @RequestMapping("/web/ve/instr/tngrVisitEdu/asgnmInfo/instrAsgnmRqstList.do")
public String instrAsgnmRqstList( public String instrAsgnmRqstList(
@ -573,6 +578,14 @@ public class VEAsgnmController {
model.addAttribute("vEEduChasiCompanionVOList", vEEduChasiCompanionVOList); model.addAttribute("vEEduChasiCompanionVOList", vEEduChasiCompanionVOList);
//요청서류 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEInstrAsgnmVOInfo.getEduAplctOrd());
veEduDocReqVO.setSbmtId(loginVO.getUniqId());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
}catch(Exception ex) { }catch(Exception ex) {
ex.printStackTrace(); ex.printStackTrace();

View File

@ -54,4 +54,7 @@ public interface VEEduAplctService {
//서류요청 목록 조회 //서류요청 목록 조회
List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception; List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception;
//요청서류 제출
void updateSbmtAtchFileId(VEEduAplctVO paramVO) throws Exception;
} }

View File

@ -147,4 +147,8 @@ public class VEEduAplctDAO extends EgovAbstractDAO {
public List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception { public List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception {
return (List<VEEduAplctVO>) list("VEEduAplctDAO.selectDocReqList", paramVO); return (List<VEEduAplctVO>) list("VEEduAplctDAO.selectDocReqList", paramVO);
} }
public void updateSbmtAtchFileId(VEEduAplctVO paramVO) throws Exception {
insert("VEEduAplctDAO.updateSbmtAtchFileId", paramVO);
}
} }

View File

@ -171,4 +171,8 @@ public class VEEduAplctServiceImpl implements VEEduAplctService {
public List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception{ public List<VEEduAplctVO> selectDocReqList(VEEduAplctVO paramVO) throws Exception{
return vEEduAplctDAO.selectDocReqList(paramVO); return vEEduAplctDAO.selectDocReqList(paramVO);
} }
public void updateSbmtAtchFileId(VEEduAplctVO paramVO) throws Exception {
vEEduAplctDAO.updateSbmtAtchFileId(paramVO);
}
} }

View File

@ -46,6 +46,7 @@ import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
@ -112,6 +113,9 @@ public class VEEduEndController {
@Resource(name="vEAsgnmNotiService") @Resource(name="vEAsgnmNotiService")
private VEAsgnmNotiService vEAsgnmNotiService; private VEAsgnmNotiService vEAsgnmNotiService;
@Resource(name = "vEEduAplctService")
private VEEduAplctService vEEduAplctService;
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class); private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class);
/** /**
@ -324,6 +328,15 @@ public class VEEduEndController {
vEAsgnmNotiVO.setTblUniqOrd(vEInstrAsgnmVO.getEduChasiOrd()); vEAsgnmNotiVO.setTblUniqOrd(vEInstrAsgnmVO.getEduChasiOrd());
vEAsgnmNotiVO.setFrstRegisterId(loginVO.getUniqId()); vEAsgnmNotiVO.setFrstRegisterId(loginVO.getUniqId());
//요청서류 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEInstrAsgnmVOInfo.getEduAplctOrd());
veEduDocReqVO.setSbmtId(loginVO.getUniqId());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
try { try {
System.out.println("session.getAttribute(menuNo).toString()"); System.out.println("session.getAttribute(menuNo).toString()");
System.out.println(session.getId()); System.out.println(session.getId());

View File

@ -463,6 +463,13 @@ public class EduAplctMngTngrController {
System.out.println(session.toString()); System.out.println(session.toString());
System.out.println(session.getAttribute("menuNo").toString()); System.out.println(session.getAttribute("menuNo").toString());
//서류 요청 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
return "oprtn/tngrVisitEdu/eduAplctMngDetail"; return "oprtn/tngrVisitEdu/eduAplctMngDetail";
} }
@ -964,6 +971,13 @@ public class EduAplctMngTngrController {
} }
/**
* 교육신청관리 상세 화면
*/
@RequestMapping("popup/eduDocReqAlertPopup.do")
public String eduDocReqAlertPopup( @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model , HttpServletRequest request ) throws Exception {
return "oprtn/tngrVisitEdu/popup/eduDocReqAlertPopup";
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //

View File

@ -697,6 +697,14 @@ public class EduRsltMngTngrController {
vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO); vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO);
//서류 요청 목록
VEEduAplctVO veEduDocReqVO = new VEEduAplctVO();
veEduDocReqVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
List<VEEduAplctVO> vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO);
//복호화
vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList);
model.addAttribute("docReqList", vEEduDocReqList);
}catch(Exception ex) { }catch(Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }

View File

@ -1247,10 +1247,10 @@
A.EDU_DOC_REQ_ORD AS eduDocReqOrd, A.EDU_DOC_REQ_ORD AS eduDocReqOrd,
A.DOC_REQ_NM AS docReqNm, A.DOC_REQ_NM AS docReqNm,
A.DOC_FORM_ATCH_FILE_ID AS docFormAtchFileId, A.DOC_FORM_ATCH_FILE_ID AS docFormAtchFileId,
A.FRST_REGIST_PNTTM AS frstRegistPnttm, TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY-MM-DD') AS frstRegistPnttm,
A.FRST_REGISTER_ID AS frstRegisterId, A.FRST_REGISTER_ID AS frstRegisterId,
A.SBMT_ATCH_FILE_ID AS sbmtAtchFileId, A.SBMT_ATCH_FILE_ID AS sbmtAtchFileId,
A.SBMT_PNTTM AS sbmtPnttm, TO_CHAR(A.SBMT_PNTTM,'YYYY-MM-DD') AS sbmtPnttm,
A.SBMT_ID AS sbmtId, A.SBMT_ID AS sbmtId,
B.INSTR_NM AS instrNm B.INSTR_NM AS instrNm
FROM FROM
@ -1263,7 +1263,20 @@
<isNotEmpty property="eduAplctOrd"> <isNotEmpty property="eduAplctOrd">
AND EDU_APLCT_ORD = #eduAplctOrd# AND EDU_APLCT_ORD = #eduAplctOrd#
</isNotEmpty> </isNotEmpty>
<isNotEmpty property="sbmtId">
AND SBMT_ID = #sbmtId#
</isNotEmpty>
</select> </select>
<update id="VEEduAplctDAO.updateSbmtAtchFileId" parameterClass="VEEduAplctVO">
/* VEEduAplctDAO.updateSbmtAtchFileId */
UPDATE VE_EDU_DOC_REQ
SET
SBMT_ATCH_FILE_ID = #sbmtAtchFileId#,
SBMT_PNTTM = SYSDATE
WHERE
EDU_DOC_REQ_ORD = #eduDocReqOrd#
</update>
</sqlMap> </sqlMap>

View File

@ -289,6 +289,13 @@
}); });
} }
// 서류요청 SMS, EMAIL 알림 팝업
function alertPopup(userId,type) { //메뉴생성 화면 호출
document.popForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/eduDocReqAlertPopup.do'/>";
window.open("#", "_eduDocReqAlertPopup", "scrollbars = no, top=100px, left=100px, height=550px, width=750px");
document.popForm.target = "_eduDocReqAlertPopup";
document.popForm.submit();
}
</script> </script>
</head> </head>
@ -570,6 +577,76 @@
</table> </table>
</div> </div>
<!-- 서류 요청 목록 -->
<c:if test="${not empty docReqList}">
<div class="tb_tit01">
<p>요청서류 목록</p>
</div>
<div class="tb_type01 list2">
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: 20%;">
<col style="width: 10%;">
<col style="width: 20%">
<col style="width: 10;">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th scope="col">강사명</th>
<th scope="col">서류명</th>
<th scope="col">요청일</th>
<th scope="col">양식</th>
<th scope="col">제출일</th>
<th scope="col">제출서류 및 알림</th>
</tr>
</thead>
<tbody>
<c:forEach var="docReqList" items="${docReqList}" varStatus="status">
<tr>
<td>
<c:out value="${docReqList.instrNm}" />
</td>
<td>
<c:out value="${docReqList.docReqNm}" />
</td>
<td>
<c:out value="${docReqList.frstRegistPnttm}" />
</td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.docFormAtchFileId}" />
</c:import>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:out value="${docReqList.sbmtPnttm}" />
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
-
</c:if>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.sbmtAtchFileId}" />
</c:import>
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
<button class="btn_type06" onclick="alertPopup('<c:out value="${docReqList.sbmtId}" />','SMS'); return false;">SMS</button>
<button class="btn_type06" onclick="alertPopup('<c:out value="${docReqList.sbmtId}" />','EMAIL'); return false;">EMAIL</button>
<%-- <button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button> --%>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</c:if>
<!-- 알림 정보 상세 --> <!-- 알림 정보 상세 -->
<div class="tb_tit01"> <div class="tb_tit01">
<p>알림정보</p> <p>알림정보</p>

View File

@ -271,7 +271,13 @@ function replyCalculation(){
// 서류요청 SMS, EMAIL 알림 팝업
function alertPopup(userId,type) { //메뉴생성 화면 호출
document.popForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/eduDocReqAlertPopup.do'/>";
window.open("#", "_eduDocReqAlertPopup", "scrollbars = no, top=100px, left=100px, height=550px, width=750px");
document.popForm.target = "_eduDocReqAlertPopup";
document.popForm.submit();
}
@ -521,6 +527,76 @@ function replyCalculation(){
</div> </div>
<!-- //list_상세 --> <!-- //list_상세 -->
<!-- 서류요청 목록 -->
<c:if test="${not empty docReqList}">
<div class="tb_tit01">
<p>요청서류 목록</p>
</div>
<div class="tb_type01 list2">
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: 20%;">
<col style="width: 10%;">
<col style="width: 20%">
<col style="width: 10;">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th scope="col">강사명</th>
<th scope="col">서류명</th>
<th scope="col">요청일</th>
<th scope="col">양식</th>
<th scope="col">제출일</th>
<th scope="col">제출서류 및 알림</th>
</tr>
</thead>
<tbody>
<c:forEach var="docReqList" items="${docReqList}" varStatus="status">
<tr>
<td>
<c:out value="${docReqList.instrNm}" />
</td>
<td>
<c:out value="${docReqList.docReqNm}" />
</td>
<td>
<c:out value="${docReqList.frstRegistPnttm}" />
</td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.docFormAtchFileId}" />
</c:import>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:out value="${docReqList.sbmtPnttm}" />
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
-
</c:if>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.sbmtAtchFileId}" />
</c:import>
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
<button class="btn_type06" onclick="alertPopup('<c:out value="${docReqList.sbmtId}" />','SMS'); return false;">SMS</button>
<button class="btn_type06" onclick="alertPopup('<c:out value="${docReqList.sbmtId}" />','EMAIL'); return false;">EMAIL</button>
<%-- <button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button>
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button> --%>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</c:if>
<!-- list_상세 --> <!-- list_상세 -->
<div class="tb_tit01"> <div class="tb_tit01">
<p>결과보고</p> <p>결과보고</p>

View File

@ -0,0 +1,112 @@
<!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" />
<%
/**
* @Class Name : eduAplctMngDetailPopup.jsp
* @Description : 신청 상세 보기
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용준
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육신청 상세</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
/* Page Url Hide */
@page {
size: auto; /* auto is the initial value */
margin: 0; /* this affects the margin in the printer settings */
}
@media print {
html, body {height:auto;margin: 0 !important;padding: 0 !important;overflow: hidden;page-break-after: avoid;}
.cont_tit {page-break-before: always;}
.page_break {page-break-inside:avoid; page-break-after:auto}
.print_mark {page-break-before: auto;}
form{display: none;}
}
</style>
<script type="text/javascript">
</script>
</head>
<body>
<form:form id="linkForm" name="linkForm" commandName="vEEduAplctVO" method="post">
<input type="hidden" id="eduAplctOrd" name="eduAplctOrd" value="<c:out value="${info.eduAplctOrd}" />" />
</form:form>
<form id="hiddenMemoForm" name="hiddenMemoForm" method="post">
<input type="hidden" name="eduAplctOrd" value="<c:out value="${info.eduAplctOrd}" />" />
<input type="hidden" name="prvtMemoCn" id="prvtMemoCn" value="" />
</form>
<!-- cont -->
<div class="area_popup">
<div class="cont_popup">
<div class="cont_tit" style="padding: 0 0 20px 0; margin-bottom: 30px;"><h2>SMS|EMIAL 발송 - 개발전</h2></div>
<table class="pop_tb_type02">
<colgroup>
<col style="width: 140px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">
<p>수신자</p>
</th>
<td>청소년강사1(010-1111-2222)</td>
</tr>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td colspan="3"><textarea rows="" cols=""></textarea></td>
</tr>
</tbody>
</table>
<div class="btnArea">
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btn_type01" onclick="" title="새창 열림">확인</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -232,7 +232,7 @@
return false; return false;
} }
//첨부파일 체크 및 요청 //첨부파일 체크 및 요청
if(confirm("서류 요청을 등록하시겠습니까?")){ if(confirm("양식을 업로드 하시겠습니까?")){
if(control.getUploadFiles().length > 0){ if(control.getUploadFiles().length > 0){
var postObj = new Object(); var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val(); postObj.innoDirPath = $('#innoDirPath').val();
@ -402,7 +402,7 @@
<div class="tooltip-wrap"> <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_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop02" data-focus="sub37_pop02" data-focus-prev="sub37_pop02_close">
<div class="popup_tit"> <div class="popup_tit">
<p>강사 연락처</p> <p>양식 업로드</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop02_close" title="팝업 닫기"><i></i></button> <button class="btn_popup_close tooltip-close" data-focus="sub37_pop02_close" title="팝업 닫기"><i></i></button>
</div> </div>
<div class="popup_cont"> <div class="popup_cont">
@ -1013,7 +1013,7 @@
</div> </div>
<c:if test="${not empty docReqList}"> <c:if test="${not empty docReqList}">
<div class="tb_tit01"> <div class="tb_tit01" style="margin-top:40px;">
<div class="tb_tit01_left"> <div class="tb_tit01_left">
<p>요청서류 목록</p> <p>요청서류 목록</p>
</div> </div>

View File

@ -1043,6 +1043,71 @@
</c:if> </c:if>
</tbody> </tbody>
</table> </table>
<c:if test="${not empty docReqList}">
<div class="tb_tit01" style="margin-top:40px;">
<div class="tb_tit01_left">
<p>요청서류 목록</p>
</div>
</div>
<div class="tb_type02">
<table>
<%-- <caption>교육차시 정보 교육희망일, 시간, 구분, 대상, 배정강사, 인원 을/를 제공하는 표</caption> --%>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<th scope="col">서류명</th>
<th scope="col">강사명</th>
<th scope="col">양식</th>
<th scope="col">제출여부</th>
<th scope="col">제출일</th>
</tr>
</thead>
<tbody>
<c:forEach var="docReqList" items="${docReqList}">
<tr>
<th>
<c:out value="${docReqList.docReqNm}" />
</th>
<td>
<c:out value="${docReqList.instrNm}" />
</td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.docFormAtchFileId}" />
</c:import>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.sbmtAtchFileId}" />
</c:import>
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
미제출
</c:if>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:out value="${docReqList.sbmtPnttm}" />
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
-
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<p style="color:gray;font-size:14px;padding-top:30px;">* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.</p>
</div>
</c:if>
</div> </div>
<div class="btn_wrap btn_layout01"> <div class="btn_wrap btn_layout01">

View File

@ -0,0 +1,186 @@
<%@ 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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ 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="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%-- <un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" /> --%>
<!--
대용량 솔루션 license 구분 값 추가
20230717 이호영
-->
<link rel="stylesheet" href="<c:url value='/innorix/innorix.css'/>" type="text/css">
<script type="text/javascript">
/*
* ==================================================================
* INNORIX
* 파일 업로드 솔루션 init 셋팅
* ==================================================================
*/
var control = new Object();
$(document).ready(function() {
//파일첨부버튼
$(".btn_add_file").on('click', function(){
$("#file_temp").click();
});
$('#file_temp').change(function(e){
var objUpload = $(".upload_area");
var files = $('#file_temp')[0].files;
handleFileUpload(files,objUpload); //파일업로드
if($("#file_temp").length > 0){
$("#file_temp").val(""); //파일지우기
}
});
// 레이어팝업 포커싱 이동 수정
/* $(".tooltip-close").click(function(){
$('[data-tooltip="sub35_pop01"]').focus();
}); */
$(".tooltip-close").click(function(){
var fileType = '${fileType}';
$('#'+fileType).focus();
});
/*
* ==================================================================
* 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:80
, width: 600
, 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
});
});
function fncClose() {
window.close();
}
//거래선 업로드
function fncSaveFile(type){
var setMsg = "";
if(type == 'DOC') {
setMsg = "요청서류를";
}
if(confirm(setMsg + " 업로드 하시겠습니까?")){
if(control.getUploadFiles().length > 0){
var postObj = new Object();
postObj.innoDirPath = $('#innoDirPath').val();
control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가
control.upload(); // 업로드 시작
}else{
alert("등록된 첨부파일이 없습니다.");
return false;
}
}
}
/*
* 파일 정보 DB insert Ajax
* */
function fn_callBackInnorix(data){
var type = $('#fileType').val();
var setMsg = "";
if(type == 'DOC') {
setMsg = "요청서류";
}
var url = "<c:url value='/web/common/insertInnorixDocFileAjax.do' />";
var filePath = location.pathname;
var jspFileName = filePath.substring(filePath.lastIndexOf("/")+1, filePath.lastIndexOf("."));
var sendData = {
"fileType": $('#fileType').val()
, "eduDocReqOrd": $('#eduDocReqOrd').val()
, "innorixFileListVO": data
, "successMsg" : setMsg+" 등록이 완료되었습니다."
}
/*
* 공통 : innorixCommon.js
* fn_innorixCmmAjax() 호출 후 status가 성공(OK)이면 실행
*/
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
location.reload(true);
location.reload(true);
}
}
</script>
<style>
#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>
<!-- 파일 업로드 -->
<form name="fileForm" id="fileForm" method="post" >
<input type="hidden" name="fileType" id="fileType" value="${fileType}" />
<input type="hidden" name="eduDocReqOrd" id="eduDocReqOrd" value="<c:out value='${eduDocReqOrd}'/>"/> <!-- 서류요청 순번 -->
<input type="hidden" id="innoDirPath" value="<spring:eval expression="@globalSettings['Globals.Innorix.FilePath']"/>" />
<div class="tooltip-wrap">
<div class="popup_wrap popType03" tabindex="0" data-tooltip-con="sub35_pop01" data-focus="sub35_pop01" data-focus-prev="sub35_pop01_close">
<div class="popup_tit">
<p>
<c:if test="${fileType eq 'DOC'}">요청서류</c:if>
업로드
</p>
<button class="btn_popup_close tooltip-close" data-focus="list_popup_close" title="팝업 닫기"><i></i></button>
</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">
<button type="button" class="btnType05" onclick="fncSaveFile('<c:out value="${fileType}" />');">확인</button>
<button type="button" class="btnType02 tooltip-close" data-focus="sub35_pop01_close" data-focus-next="sub35_pop01">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</form>
<!--// 파일 업로드 -->

View File

@ -11,6 +11,9 @@
<head> <head>
<title>강사프로필 목록</title> <title>강사프로필 목록</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<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>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
$( document ).ready(function() { $( document ).ready(function() {
@ -71,6 +74,16 @@
} }
} }
function filePopupLayer(eduDocReqOrd, type){
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/comm/popup/docFileUploadPop.do"
, 650
, 464
, {'eduDocReqOrd' : eduDocReqOrd ,'fileType' : type}
, "Y"
, "fileUploadPop"
);
}
</script> </script>
</head> </head>
<body> <body>
@ -774,6 +787,71 @@
</table> </table>
</div> </div>
<c:if test="${not empty docReqList}">
<div class="tb_tit01" style="margin-top:40px;">
<div class="tb_tit01_left">
<p>요청서류 목록</p>
</div>
</div>
<div class="tb_type02">
<table>
<%-- <caption>교육차시 정보 교육희망일, 시간, 구분, 대상, 배정강사, 인원 을/를 제공하는 표</caption> --%>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<th scope="col">서류명</th>
<th scope="col">요청일</th>
<th scope="col">양식</th>
<th scope="col">제출여부</th>
<th scope="col">제출일</th>
</tr>
</thead>
<tbody>
<c:forEach var="docReqList" items="${docReqList}">
<tr>
<th>
<c:out value="${docReqList.docReqNm}" />
</th>
<td>
<c:out value="${docReqList.frstRegistPnttm}" />
</td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.docFormAtchFileId}" />
</c:import>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.sbmtAtchFileId}" />
</c:import>
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
<button type="button" class="btnType01" data-tooltip="sub35_pop01" id="DOC" onclick="filePopupLayer('<c:out value="${docReqList.eduDocReqOrd}"/>','DOC')" title="팝업 열림">제출하기</button>
</c:if>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:out value="${docReqList.sbmtPnttm}" />
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
-
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<p style="color:gray;font-size:14px;padding-top:30px;">* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.</p>
</div>
</c:if>
<div class="btn_wrap btn_layout01"> <div class="btn_wrap btn_layout01">
<div class="btn_left"> <div class="btn_left">
</div> </div>

View File

@ -518,6 +518,133 @@ $( document ).ready(function() {
</div> </div>
</c:if> </c:if>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>동반강사리스트</p>
</div>
</div>
<div class="tb_list01">
<table>
<colgroup>
<col style="width: 10%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 15%">
<col style="width: 15%;">
<col style="width: 15%;">
<col style="width: 15%;">
</colgroup>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">교육일자</th>
<th scope="col">강사명</th>
<th scope="col">차시</th>
<th scope="col">학교(기관)명</th>
<th scope="col">교육장소</th>
<th scope="col">교육대상</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${vEEduChasiCompanionVOList}" varStatus="status">
<tr>
<td>
<c:out value='${status.count}'/>
</td>
<td>
${list.eduHopeDt}
</td>
<td>
${list.instrNm}
</td>
<td>
<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"/>
(<c:out value='${list.lrnTm}'/>분)
</td>
<td>
<c:out value='${list.scholInsttNm}'/>
</td>
<td>
<c:out value='${list.eduPlace}'/>
</td>
<td>
<c:out value='${list.trgt}'/>
</td>
</tr>
</c:forEach>
<c:if test="${empty vEEduChasiCompanionVOList}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<c:if test="${not empty docReqList}">
<div class="tb_tit01" style="margin-top:40px;">
<div class="tb_tit01_left">
<p>요청서류 목록</p>
</div>
</div>
<div class="tb_type02">
<table>
<%-- <caption>교육차시 정보 교육희망일, 시간, 구분, 대상, 배정강사, 인원 을/를 제공하는 표</caption> --%>
<colgroup>
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<th scope="col">서류명</th>
<th scope="col">요청일</th>
<th scope="col">양식</th>
<th scope="col">제출여부</th>
<th scope="col">제출일</th>
</tr>
</thead>
<tbody>
<c:forEach var="docReqList" items="${docReqList}">
<tr>
<th>
<c:out value="${docReqList.docReqNm}" />
</th>
<td>
<c:out value="${docReqList.frstRegistPnttm}" />
</td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.docFormAtchFileId}" />
</c:import>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${docReqList.sbmtAtchFileId}" />
</c:import>
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
-
</c:if>
</td>
<td>
<c:if test="${not empty docReqList.sbmtAtchFileId}">
<c:out value="${docReqList.sbmtPnttm}" />
</c:if>
<c:if test="${empty docReqList.sbmtAtchFileId}">
-
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<p style="color:gray;font-size:14px;padding-top:30px;">* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.</p>
</div>
</c:if>
<div class="btn_wrap btn_layout01"> <div class="btn_wrap btn_layout01">
<div class="btn_left"> <div class="btn_left">