Merge branch 'hylee' into advc

Conflicts:
	src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java
This commit is contained in:
hylee 2023-12-21 13:00:35 +09:00
commit dfa59f3380
18 changed files with 928 additions and 14 deletions

View File

@ -68,6 +68,23 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
public String instrDetailOrd = "";//강사 고유PK
public String lctrSbjct; //강의주제
public String lctrPlace; //강의장소
public String lctrTrgt; //교육대상
public String nos; //인원
public String instrNm; //강사명(소속)
public String lctrDay;
public String lctrStrtH;
public String lctrStrtM;
public String lctrEndH;
public String lctrEndM;
//강의활동확인서 컬럼 추가
private String sex = ""; //성별
@ -236,6 +253,86 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable {
public void setDocuNmbr(String docuNmbr) {
this.docuNmbr = docuNmbr;
}
public String getLctrSbjct() {
return lctrSbjct;
}
public void setLctrSbjct(String lctrSbjct) {
this.lctrSbjct = lctrSbjct;
}
public String getLctrPlace() {
return lctrPlace;
}
public void setLctrPlace(String lctrPlace) {
this.lctrPlace = lctrPlace;
}
public String getLctrTrgt() {
return lctrTrgt;
}
public void setLctrTrgt(String lctrTrgt) {
this.lctrTrgt = lctrTrgt;
}
public String getNos() {
return nos;
}
public void setNos(String nos) {
this.nos = nos;
}
public String getInstrNm() {
return instrNm;
}
public void setInstrNm(String instrNm) {
this.instrNm = instrNm;
}
public String getLctrDay() {
return lctrDay;
}
public void setLctrDay(String lctrDay) {
this.lctrDay = lctrDay;
}
public String getLctrStrtH() {
return lctrStrtH;
}
public void setLctrStrtH(String lctrStrtH) {
this.lctrStrtH = lctrStrtH;
}
public String getLctrStrtM() {
return lctrStrtM;
}
public void setLctrStrtM(String lctrStrtM) {
this.lctrStrtM = lctrStrtM;
}
public String getLctrEndH() {
return lctrEndH;
}
public void setLctrEndH(String lctrEndH) {
this.lctrEndH = lctrEndH;
}
public String getLctrEndM() {
return lctrEndM;
}
public void setLctrEndM(String lctrEndM) {
this.lctrEndM = lctrEndM;
}

View File

@ -41,5 +41,7 @@ public interface InnorixFileService {
RestResponse insertInnorixSspnCnClAjax(AdrInnorixFileVO adrInnorixFileVO);
RestResponse insertInnorixInstrActvtAjax(AdrInnorixFileVO adrInnorixFileVO);
RestResponse insertInnorixReqRsltAjax(AdrInnorixFileVO adrInnorixFileVO);
}

View File

@ -88,6 +88,10 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
@Resource(name="docReqOrdGnrService")
private EgovIdGnrService docReqOrdGnrService;
//성인 결과보고 테이블
@Resource(name="veaRsltRprtOrdGnrService")
private EgovIdGnrService veaRsltRprtOrdGnrService;
//서류요청 순번
@Resource(name="instrActvtHstryOrdGnrService")
private EgovIdGnrService instrActvtHstryOrdGnrService;
@ -562,4 +566,43 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now());
}
@Override
public RestResponse insertInnorixReqRsltAjax(AdrInnorixFileVO adrInnorixFileVO) {
List<FileVO> result = null;
try {
// 파일 저장 저장할 file 정보를 받아옴
result = this.insertFileData(adrInnorixFileVO);
// 파일 정보 insert
String atchFileId = fileManageDAO.insertFileInfs(result);
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setVeaRsltRprtOrd(veaRsltRprtOrdGnrService.getNextStringId());
vEEduAplctVO.setEduAplctOrd(adrInnorixFileVO.getEduAplctOrd());
vEEduAplctVO.setLctrSbjct(adrInnorixFileVO.getLctrSbjct());
vEEduAplctVO.setLctrDay(adrInnorixFileVO.getLctrDay());
vEEduAplctVO.setLctrStrtH(adrInnorixFileVO.getLctrStrtH());
vEEduAplctVO.setLctrStrtM(adrInnorixFileVO.getLctrStrtM());
vEEduAplctVO.setLctrEndH(adrInnorixFileVO.getLctrEndH());
vEEduAplctVO.setLctrEndM(adrInnorixFileVO.getLctrEndM());
vEEduAplctVO.setLctrPlace(adrInnorixFileVO.getLctrPlace());
vEEduAplctVO.setLctrTrgt(adrInnorixFileVO.getLctrTrgt());
vEEduAplctVO.setNos(adrInnorixFileVO.getNos());
vEEduAplctVO.setInstrNm(adrInnorixFileVO.getInstrNm());
vEEduAplctVO.setAtchFileId(atchFileId);
vEEduAplctVO.setFrstRegisterId(adrInnorixFileVO.getUniqId());
vEEduAplctService.insertRslt(vEEduAplctVO);
} catch (Exception e) {
e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now());
}
}

View File

@ -185,6 +185,30 @@ public class InnorixFileController {
return ResponseEntity.ok(innorixService.insertInnorixReqFile(adrInnorixFileVO));
}
/**
* @methodName : insertInnorixReqFileAjax
* @author : 이호영
* @date : 2023.12.21
* @description : 성인 찾교 > 완료상세 > 결과보고 업로드 버튼 팝업에 등록
* @param adrInnorixFileVO
* @return
* @throws Exception
*/
@RequestMapping(value = {"/web/common/insertInnorixReqRsltAjax.do"}, method = RequestMethod.POST)
public ResponseEntity<RestResponse> insertInnorixReqRsltAjax(@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.insertInnorixReqRsltAjax(adrInnorixFileVO));
}
/**
* @methodName : insertInnorixSspnCnClAjax
* @author : 이호영

View File

@ -224,6 +224,13 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
*/
private boolean allDay;
private String atchFileId;
public String getYr() {
return yr;
@ -1031,5 +1038,11 @@ public class VEAStngVO extends ComDefaultVO implements Serializable {
public void setDdlnDt(String ddlnDt) {
this.ddlnDt = ddlnDt;
}
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}
}

View File

@ -59,4 +59,6 @@ public interface VEEduAplctService {
//요청서류 제출
void updateSbmtAtchFileId(VEEduAplctVO paramVO) throws Exception;
void insertRslt(VEEduAplctVO vEEduAplctVO);
}

View File

@ -428,6 +428,20 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String cmmNotifyOrd; // 알림 PK
private String veaRsltRprtOrd;
private String lctrSbjct;
private String lctrPnttm;
private String lctrPlace;
private String lctrTrgt;
private String nos;
public String lctrDay;
public String lctrStrtH;
public String lctrStrtM;
public String lctrEndH;
public String lctrEndM;
public String getSpecialWorkAllow() {
return specialWorkAllow;
}
@ -1857,6 +1871,72 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setCmmNotifyOrd(String cmmNotifyOrd) {
this.cmmNotifyOrd = cmmNotifyOrd;
}
public String getLctrSbjct() {
return lctrSbjct;
}
public void setLctrSbjct(String lctrSbjct) {
this.lctrSbjct = lctrSbjct;
}
public String getLctrPnttm() {
return lctrPnttm;
}
public void setLctrPnttm(String lctrPnttm) {
this.lctrPnttm = lctrPnttm;
}
public String getLctrPlace() {
return lctrPlace;
}
public void setLctrPlace(String lctrPlace) {
this.lctrPlace = lctrPlace;
}
public String getLctrTrgt() {
return lctrTrgt;
}
public void setLctrTrgt(String lctrTrgt) {
this.lctrTrgt = lctrTrgt;
}
public String getNos() {
return nos;
}
public void setNos(String nos) {
this.nos = nos;
}
public String getVeaRsltRprtOrd() {
return veaRsltRprtOrd;
}
public void setVeaRsltRprtOrd(String veaRsltRprtOrd) {
this.veaRsltRprtOrd = veaRsltRprtOrd;
}
public String getLctrDay() {
return lctrDay;
}
public void setLctrDay(String lctrDay) {
this.lctrDay = lctrDay;
}
public String getLctrStrtH() {
return lctrStrtH;
}
public void setLctrStrtH(String lctrStrtH) {
this.lctrStrtH = lctrStrtH;
}
public String getLctrStrtM() {
return lctrStrtM;
}
public void setLctrStrtM(String lctrStrtM) {
this.lctrStrtM = lctrStrtM;
}
public String getLctrEndH() {
return lctrEndH;
}
public void setLctrEndH(String lctrEndH) {
this.lctrEndH = lctrEndH;
}
public String getLctrEndM() {
return lctrEndM;
}
public void setLctrEndM(String lctrEndM) {
this.lctrEndM = lctrEndM;
}
}

View File

@ -169,5 +169,9 @@ public class VEEduAplctDAO extends EgovAbstractDAO {
return (List<VEPrcsDetailVO>) list("VEEduAplctDAO.selectVeEduQna", vEPrcsDetailVO);
}
public void insertRslt(VEEduAplctVO paramVO) {
insert("VEEduAplctDAO.insertRslt", paramVO);
}
}

View File

@ -192,4 +192,9 @@ public class VEEduAplctServiceImpl implements VEEduAplctService {
vo.setClphone(egovCryptoUtil.decrypt(vo.getClphone()));
vo.setEmail(egovCryptoUtil.decrypt(vo.getEmail()));
}
@Override
public void insertRslt(VEEduAplctVO paramVO) {
vEEduAplctDAO.insertRslt(paramVO);
}
}

View File

@ -2728,6 +2728,7 @@ public class OprtnInstrTngrPrflContoller {
public ModelAndView instrHstryMngPopupAjax(
ModelMap model
, HttpServletRequest request
, final MultipartHttpServletRequest multiRequest
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
@ -2749,12 +2750,37 @@ public class OprtnInstrTngrPrflContoller {
//System.out.println(request.getParameter("ddlnStateCd"));
try {
//step2.파일 처리====================================
//파일 정상 처리 여부와 첨부 파일 정보
//String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO);
//파일 제한 수량 가져오기, 없으면 기본값 사용
int i_file_limit = checkFileUtil.getLimitCount(request); // file count
int i_limit_size = checkFileUtil.getLimitSize(request); // file MB
String s_file_exts = checkFileUtil.getS_exts(); // file exts
String atchFileId = checkFileUtil.fileValCheckNdbInsert(
multiRequest, modelAndView
, "InstrH_" //file_name_prefix
, s_file_exts
, i_limit_size
, i_file_limit
); //EXT, MB size and ea
if ("ERROR".equals(atchFileId)) return modelAndView;
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
String s_ord = instrHstryOrdGnrService.getNextStringId();
VEAStngVO vEAStngVO = new VEAStngVO();
System.out.println("atchFileId : "+ atchFileId);
vEAStngVO.setInstrHstryOrd(s_ord);
vEAStngVO.setUserId(request.getParameter("userId"));
@ -2763,6 +2789,7 @@ public class OprtnInstrTngrPrflContoller {
vEAStngVO.setStrtDt(request.getParameter("rgstrStrtPnttm_dt"));
vEAStngVO.setDdlnDt(request.getParameter("rgstrDdlnPnttm_dt"));
vEAStngVO.setFrstRegisterId(loginVO.getUniqId());
vEAStngVO.setAtchFileId(atchFileId);
vEAStngService.insert_VEAIHM(vEAStngVO);

View File

@ -3059,5 +3059,21 @@
<property name="cipers" value="10" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
<!-- 결과보고 테이블 -->
<bean name="veaRsltRprtOrdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="veaRsltRprtOrdStrategy" /><!-- strategy 값 수정 -->
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="VEA_RSLT_RPRT"/><!-- tableName 값 수정 -->
</bean>
<!-- 과정신청기간 ID Generation Strategy Config -->
<bean name="veaRsltRprtOrdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl"><!-- bean name 값에 strategy 값 입력 -->
<property name="prefix" value="veaRslt_" /><!-- prefix 값 수정 -->
<property name="cipers" value="12" /><!-- 일련번호(순번) 전체 길이(prefix길이 미포함) -->
<property name="fillChar" value="0" />
</bean>
</beans>

View File

@ -475,15 +475,29 @@
<select id="VEEduAplctDAO.selectDetail" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
/* VEEduAplctDAO.selectDetail */
SELECT
<include refid="VEEduAplctDAO.select_column_name"/>
,NVL(B.ISLTN_YN,'N') AS isltnYn
,NVL(B.ISLTN2_YN,'N') AS isltn2Yn
,NVL(B.ISLTN3_YN,'N') AS isltn3Yn
,NVL(B.PPLTN_REDUC_AREA_YN,'N') AS ppltnReducAreaYn
C.VEA_RSLT_RPRT_ORD as veaRsltRprtOrd
, C.LCTR_SBJCT as lctrSbjct
, C.LCTR_DAY as lctrDay
, C.LCTR_PLACE as lctrPlace
, C.LCTR_TRGT as lctrTrgt
, C.NOS as nos
, C.INSTR_NM as instrNm
, C.ATCH_FILE_ID as atchFileId
, C.LCTR_STRT_H as lctrStrtH
, C.LCTR_STRT_M as lctrStrtM
, C.LCTR_END_H as lctrEndH
, C.LCTR_END_M as lctrEndM
, <include refid="VEEduAplctDAO.select_column_name"/>
, NVL(B.ISLTN_YN,'N') AS isltnYn
, NVL(B.ISLTN2_YN,'N') AS isltn2Yn
, NVL(B.ISLTN3_YN,'N') AS isltn3Yn
, NVL(B.PPLTN_REDUC_AREA_YN,'N') AS ppltnReducAreaYn
FROM <include refid="VEEduAplctDAO.table_name"/> A
LEFT OUTER JOIN VE_SCHOL B
ON(A.STNDRD_SCHOL_CD=B.STNDRD_SCHOL_CD)
LEFT OUTER JOIN VEA_RSLT_RPRT C
ON (A.EDU_APLCT_ORD = C.EDU_APLCT_ORD)
WHERE A.EDU_APLCT_ORD = #eduAplctOrd#
</select>
@ -1446,6 +1460,44 @@
)
</insert>
<insert id="VEEduAplctDAO.insertRslt" parameterClass="VEEduAplctVO">
/* VEEduAplctDAO.insertRslt */
INSERT INTO VEA_RSLT_RPRT
(
VEA_RSLT_RPRT_ORD
, EDU_APLCT_ORD
, LCTR_SBJCT
, LCTR_DAY
, LCTR_STRT_H
, LCTR_STRT_M
, LCTR_END_H
, LCTR_END_M
, LCTR_PLACE
, LCTR_TRGT
, NOS
, INSTR_NM
, ATCH_FILE_ID
, FRST_REGIST_PNTTM
, FRST_REGISTER_ID
)VALUES(
#veaRsltRprtOrd#
, #eduAplctOrd#
, #lctrSbjct#
, #lctrDay#
, #lctrStrtH#
, #lctrStrtM#
, #lctrEndH#
, #lctrEndM#
, #lctrPlace#
, #lctrTrgt#
, #nos#
, #instrNm#
, #atchFileId#
, SYSDATE
, #frstRegisterId#
)
</insert>
<select id="VEEduAplctDAO.selectVeEduQna" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
/* VEEduAplctDAO.selectVeEduQna */
SELECT

View File

@ -21,7 +21,9 @@
ddln_dt,
frst_regist_pnttm,
frst_register_id
frst_register_id,
atch_file_id
</sql>
@ -38,7 +40,8 @@
TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') AS frstRegistPnttm,
a.frst_register_id AS frstRegisterId
a.frst_register_id AS frstRegisterId ,
a.atch_file_id AS atchFileId
</sql>
@ -64,7 +67,8 @@
#ddlnDt#,
SYSDATE,
#frstRegisterId#
#frstRegisterId#,
#atchFileId#
)
WHEN MATCHED THEN
UPDATE
@ -76,6 +80,7 @@
, ddln_dt = #ddlnDt#
, frst_regist_pnttm = SYSDATE
, frst_register_id = #frstRegisterId#
, atch_file_id = #atchFileId#
</insert>
<!-- 강사 정보 R -->
@ -111,7 +116,8 @@
#ddlnDt#,
SYSDATE,
#frstRegisterId#
#frstRegisterId#,
#atchFileId#
)
WHEN MATCHED THEN
UPDATE
@ -123,6 +129,7 @@
, ddlnDt = #ddlnDt#
, frst_regist_pnttm = SYSDATE
, frst_register_id = #frstRegisterId#
, atch_file_id = #atchFileId#
</update>
<!-- 강사 정보 U -->

View File

@ -943,6 +943,7 @@ function getYears(getYear){
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 10%;">
</colgroup>
<thead>
@ -953,6 +954,7 @@ function getYears(getYear){
<th scope="col">비고</th>
<th scope="col">등록자</th>
<th scope="col">등록일</th>
<th scope="col">첨부파일</th>
<th scope="col">삭제</th>
@ -966,7 +968,12 @@ function getYears(getYear){
<td><c:out value="${pList.cn}" /></td>
<td><c:out value="${pList.userNm}" /></td>
<td><c:out value="${pList.frstRegistPnttm}" /></td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${pList.atchFileId}" />
<c:param name="pdf_view" value="Y" />
</c:import>
</td>
<td>
<button type="button" class="btn_type04" onclick="fnInstrHstryDelete('<c:out value="${pList.instrHstryOrd}" />'); return false;">삭제</button>
</td>

View File

@ -922,6 +922,7 @@
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 18%;">
<col style="width: 10%;">
</colgroup>
<thead>
@ -932,6 +933,7 @@
<th scope="col">비고</th>
<th scope="col">등록자</th>
<th scope="col">등록일</th>
<th scope="col">첨부파일</th>
<th scope="col">삭제</th>
@ -945,7 +947,12 @@
<td><c:out value="${pList.cn}" /></td>
<td><c:out value="${pList.userNm}" /></td>
<td><c:out value="${pList.frstRegistPnttm}" /></td>
<td>
<c:import url="/cmm/fms/selectBBSFileInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${pList.atchFileId}" />
<c:param name="pdf_view" value="Y" />
</c:import>
</td>
<td>
<button type="button" class="btn_type04" onclick="fnInstrHstryDelete('<c:out value="${pList.instrHstryOrd}" />'); return false;">삭제</button>
</td>

View File

@ -46,13 +46,20 @@
$("input[type=checkbox],textarea").not("textarea[name=rejtReson]").attr("disabled" , true);
}
$("#filebutton").on('click', function(){
$("#file_temp").click();
});
});
function fncAprooval(){
//var msg = "강의가능시간 변경";
var data1 = new FormData(document.getElementById("createForm"));
//첨부파일 등록 처리-step2
_fileForm2.forEach(function(obj, idx) {
if (obj) data1.append("file"+idx, obj.fileObj);
});
//console.log(data);
console.log(data1);
@ -390,7 +397,86 @@
value='' onkeyDown="press(event);">
</div>
</td>
</tr>
</tr>
<tr>
<th scope="row">
<!-- <p class="req_text"><span>필수입력 항목</span>*</p> -->
<p>첨부파일</p>
</th>
<td class="upload_area" colspan="3">
<!-- <input type="text" id="fileNm" size="30" class="file_input" readonly> --><!-- <button type="button" class="btnType01 btn_add_file">파일 첨부하기</button> -->
<input type="file" id="file_temp" name="file_temp" class="uploadFile" style="display:none"/>
<button type="button" id="filebutton" class="btn_type01">파일 첨부하기</button>
<p style="padding-left:30px;">첨부파일 가능 용량은 20MB입니다. </p><!-- <p style="color:red;font-weight:500">업로드 순서는 1.신청서 2.안내문 입니다.</p> -->
<div class="file_wrap file_upload_box no_img_box">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%;">
<col style="width: auto;">
<col style="width: 20%;">
<col style="width: 10%;">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody class="tb_file_before">
<tr>
<td colspan="4">
<p>첨부하실 파일을 <span>마우스로 끌어서</span> 넣어주세요.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="file_wrap fileAfter file_list_div">
<table class="tbType02">
<caption>첨부파일 리스트 : 파일명, 종류, 크기, 삭제</caption>
<colgroup>
<col style="width: 60%">
<col style="width: 10%">
<col style="width: 20%">
<col style="width: 10%">
</colgroup>
<thead>
<!-- <th>
<input type="checkbox" id="all_check"><label for="all_check"></label>
</th> -->
<th scope="col">파일 명</th>
<th scope="col">종류</th>
<th scope="col">크기</th>
<th scope="col">삭제</th>
</thead>
<tbody id="tbody_fiielist" class="tb_file_after">
<c:forEach var="fileList" items="${fileList}" varStatus="status">
<tr class="item_<c:out value='${fileList.atchFileId}' />_<c:out value='${fileList.fileSn}' /> uploaded_obj">
<input type="hidden" name="fileSize" class="item_file_size" value="${fileList.fileSize}">
<td class="td_filename">
<!-- <img src="/direct/img/upload_hwp_img.png" alt="" /> -->
<span class="file_name_text"><c:out value='${fileList.orignlFileNm}' /></span>
</td>
<td class="td_filesort">
<span class="file_filesort_text" value="<c:out value="${fileList.fileExtsn}"/>"><c:out value="${fileList.fileExtsn}"/></span>
</td>
<td class="td_filesize">
<span class="file_size_text" value="<c:out value="${fileList.fileMg}"/>"><c:out value="${fileList.fileMg}"/></span>
</td>
<td>
<button type="button" class="btn_del" onclick="delAtchFile('<c:out value='${fileList.atchFileId}' />', '<c:out value='${fileList.fileSn}' />'); return false;" title="파일삭제"><i></i></button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>

View File

@ -31,6 +31,7 @@
<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">
<!-- for validator #2 -->
<script type="text/javascript" src="<c:url value="/validator.do"/>"></script>
@ -44,6 +45,13 @@
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;
}
tbody#rsltId input {
width: 100%;
}
</style>
<script type="text/javaScript" language="javascript">
@ -57,6 +65,35 @@
}else{
$(fileList).css("margin-bottom","0px");
}
/*
* ==================================================================
* 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: 650
, maxFileCount : 2 // 첨부파일 최대 갯수
, allowExtension : ["png","jpg","jpeg"]
// , 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 setNumberOnly(){ //숫자만 입력
@ -482,6 +519,106 @@
}
});
}
//결과 보고
function insetDocReq(){
//강사 선택 체크
// if(chkLen == 0){
// alert("강사를 선택해주세요.");
// return false;
// }
// //서류명 체크
if($('#lctrSbjct').val() == ''){
alert("강의주제를 입력해주세요");
return false;
}
if($("input[name=lctrDay]").val() == ''){
alert("날짜를 입력해주세요");
return false;
}
if($('#lctrStrtH').val() == ''){
alert("시작시간을 입력해주세요");
return false;
}
if($('#lctrStrtM').val() == ''){
alert("시작 분을 입력해주세요");
return false;
}
if($('#lctrEndH').val() == ''){
alert("시작시간을 입력해주세요");
return false;
}
if($('#lctrEndM').val() == ''){
alert("시작 분을 입력해주세요");
return false;
}
if($('#lctrPlace').val() == ''){
alert("장소를 입력해주세요");
return false;
}
if($('#lctrTrgt').val() == ''){
alert("교육장소를 입력해주세요");
return false;
}
if($('#nos').val() == ''){
alert("인원을 입력해주세요");
return false;
}
if($('#instrNm').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/insertInnorixReqRsltAjax.do' />";
// 강의 일시
var lctrDay = $('input[name=lctrDay]').val().replaceAll('.', '-');
var sendData = {
"eduAplctOrd": '<c:out value='${info.eduAplctOrd}'/>'
, "lctrDay": lctrDay
, "lctrStrtH": $('#lctrStrtH').val()
, "lctrStrtM": $('#lctrStrtM').val()
, "lctrEndH": $('#lctrEndH').val()
, "lctrEndM": $('#lctrEndM').val()
, "innorixFileListVO": data
, "lctrSbjct" : $('#lctrSbjct').val()
, "lctrPlace" : $('#lctrPlace').val()
, "lctrTrgt" : $('#lctrTrgt').val()
, "nos" : $('#nos').val()
, "instrNm" : $('#instrNm').val()
, "successMsg" : "등록이 완료되었습니다."
}
/*
* 공통 : innorixCommon.js
* fn_innorixCmmAjax() 호출 후 status가 성공(OK)이면 실행
*/
if(fn_innorixCmmAjax(sendData, url) == "OK")
{
location.reload(true);
}
}
</script>
@ -1161,6 +1298,15 @@
<th scope="row"><p>결과보고</p></th>
<td colspan="3">
<c:choose>
<c:when test="${info.veaRsltRprtOrd ne null}">
<button type="button" class="btnType01 updownRoad" data-tooltip="sub37_pop04" title="팝업 열림">결과보고 확인</button>
</c:when>
<c:otherwise>
<button type="button" class="btnType01 updownRoad" data-tooltip="sub37_pop03" title="팝업 열림">결과보고 업로드</button>
</c:otherwise>
</c:choose>
<%--
<c:choose>
<c:when test="${info.rsltAtchFileId ne null}">
<c:import url="/cmm/fms/selectSimpleDownInfs.do" charEncoding="utf-8">
@ -1171,7 +1317,7 @@
<c:otherwise>
<button type="button" class="btnType01 updownRoad" data-tooltip="sub35_pop01" id="PHT" onclick="filePopupLayer('RSLT')" title="팝업 열림">결과보고 업로드</button>
</c:otherwise>
</c:choose>
</c:choose> --%>
</td>
</tr>
@ -1345,3 +1491,289 @@
</div>
</div>
</div>
<!-- 서류요청 팝업 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop03" data-focus="sub37_pop03" data-focus-prev="sub37_pop03_close">
<div class="popup_tit">
<p>결과 보고</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop03_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>강의 개요</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>교육신청 내용 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 150px;">
<col style="width: auto;">
</colgroup>
<tbody id="rsltId">
<tr>
<th scope="row">
<p>강의주제</p>
</th>
<td colspan="3">
<input type="text" id="lctrSbjct" name="lctrSbjct" placeholder="대학생이 알아야할 저작권">
</td>
</tr>
<tr>
<th scope="row">
<p>강의날짜</p>
</th>
<td colspan="3">
<div class="btn_wrap">
<div class="calendar_wrap">
<%-- <input type="text" class="calendar" id="searchStartDt" name="searchStartDt" title="시작일 선택" value="${vEEduAplctVO.searchStartDt}"> --%>
<duet-date-picker identifier="date" name="lctrDay" class="startDate" value=""></duet-date-picker>
</div>
<script src="${pageContext.request.contextPath}/visitEdu/usr/publish/script/duetdatepicker.js"></script>
</div>
</td>
</tr>
<tr>
<th scope="row">
<p>강의시간</p>
</th>
<td colspan="3">
<div class="btn_wrap">
<!-- Hours (시) Dropdown -->
<select id="lctrStrtH" name="lctrStrtH" class="selType1">
<c:forEach var="hour" begin="0" end="23">
<option value="${hour < 10 ? '0' : ''}${hour}">${hour < 10 ? '0' : ''}${hour}시</option>
</c:forEach>
</select>
:
<!-- Minutes (분) Dropdown -->
<select id="lctrStrtM" name="lctrStrtM" class="selType1">
<c:forEach var="minute" begin="0" end="59" step="1">
<option value="${minute < 10 ? '0' : ''}${minute}">${minute < 10 ? '0' : ''}${minute}분</option>
</c:forEach>
</select>
~
<!-- Hours (시) Dropdown -->
<select id="lctrEndH" name="lctrEndH" class="selType1">
<c:forEach var="hour" begin="0" end="23">
<option value="${hour < 10 ? '0' : ''}${hour}">${hour < 10 ? '0' : ''}${hour}시</option>
</c:forEach>
</select>
:
<!-- Minutes (분) Dropdown -->
<select id="lctrEndM" name="lctrEndM" class="selType1">
<c:forEach var="minute" begin="0" end="59" step="1">
<option value="${minute < 10 ? '0' : ''}${minute}">${minute < 10 ? '0' : ''}${minute}분</option>
</c:forEach>
</select>
</div>
</td>
</tr>
<tr>
<th scope="row">
<p>장 소</p>
</th>
<td colspan="3">
<input type="text" id="lctrPlace" name="lctrPlace" placeholder="서울~, 온라인 실시간 교육(ZOOM) 등">
</td>
</tr>
<tr>
<th scope="row">
<p>교육대상</p>
</th>
<td colspan="3">
<input type="text" id="lctrTrgt" name="lctrTrgt" placeholder="예) 대학 교수">
</td>
</tr>
<tr>
<th scope="row">
<p>인 원</p>
</th>
<td colspan="3">
<input type="text" id="nos" name="nos" numberOnly placeholder="30">
</td>
</tr>
<tr>
<th scope="row">
<p>강사명(소속)</p>
</th>
<td colspan="3">
<input type="text" id="instrNm" name="instrNm" placeholder="창작이교수(저작권대학교)">
</td>
</tr>
</tbody>
</table>
</div>
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>강의 결과</p>
</div>
</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" id="popupSubmin" onclick="insetDocReq();">요청</button>
<button type="button" class="btnType02 tooltip-close" data-focus="sub37_pop03_close" data-focus-next="sub37_pop03">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 서류요청 팝업-->
<!-- 서류요청 팝업 -->
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop04" data-focus="sub37_pop04" data-focus-prev="sub37_pop04_close">
<div class="popup_tit">
<p>결과 보고 확인</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop04_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="tb_tit01">
<div class="tb_tit01_left">
<p>강의 개요</p>
</div>
</div>
<div class="tb_type01 tb_write">
<table>
<caption>교육신청 내용 (th 명)을 보여주는 표</caption>
<colgroup>
<col style="width: 150px;">
<col style="width: auto;">
</colgroup>
<tbody id="rsltId">
<tr>
<th scope="row">
<p>강의주제</p>
</th>
<td colspan="3">
<c:out value="${info.lctrSbjct }" />
</td>
</tr>
<tr>
<th scope="row">
<p>강의날짜</p>
</th>
<td colspan="3">
<c:out value="${info.lctrDay }" />
</td>
</tr>
<tr>
<th scope="row">
<p>강의시간</p>
</th>
<td colspan="3">
<div class="btn_wrap">
<!-- Hours (시) Dropdown -->
<c:out value="${info.lctrStrtH }" />
:
<c:out value="${info.lctrStrtM }" />
~
<!-- Hours (시) Dropdown -->
<c:out value="${info.lctrEndH }" />
:
<c:out value="${info.lctrEndM }" />
<!-- Minutes (분) Dropdown -->
</td>
</tr>
<tr>
<th scope="row">
<p>장 소</p>
</th>
<td colspan="3">
<c:out value="${info.lctrPlace }" />
</td>
</tr>
<tr>
<th scope="row">
<p>교육대상</p>
</th>
<td colspan="3">
<c:out value="${info.lctrTrgt }" />
</td>
</tr>
<tr>
<th scope="row">
<p>인 원</p>
</th>
<td colspan="3">
<c:out value="${info.nos }" />
</td>
</tr>
<tr>
<th scope="row">
<p>강사명(소속)</p>
</th>
<td colspan="3">
<c:out value="${info.instrNm }" />
</td>
</tr>
<tr>
<th scope="row">
<p>첨부파일</p>
</th>
<td colspan="3">
<c:import url="/cmm/fms/selectSimpleDownInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${info.atchFileId}" />
</c:import>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<!-- <button type="button" class="btnType05" id="popupSubmin" onclick="insetDocReq();">요청</button> -->
<button type="button" class="btnType02 tooltip-close" data-focus="sub37_pop04_close" data-focus-next="sub37_pop04">닫기</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
<!--// 서류요청 팝업-->

View File

@ -982,6 +982,7 @@
<col style="width: 18%;">
<col style="width: auto;">
<col style="width: 18%;">
<col style="width: 22%;">
<col style="width: 18%;">
</colgroup>
<thead>
@ -990,6 +991,7 @@
<th scope="col">교육기간</th>
<th scope="col">비고</th>
<th scope="col">등록자</th>
<th scope="col">첨부파일</th>
<th scope="col">등록일</th>
</tr>
</thead>
@ -1000,6 +1002,14 @@
<td><c:out value="${pList.strtDt}" />~<c:out value="${pList.ddlnDt}" /></td>
<td><c:out value="${pList.cn}" /></td>
<td><c:out value="${pList.userNm}" /></td>
<td>
<c:if test="${pList.atchFileId ne null}">
<c:import url="/cmm/fms/selectScholSealInfs.do" charEncoding="utf-8">
<c:param name="param_atchFileId" value="${pList.atchFileId}" />
</c:import>
<!-- <button type="button" class="btnType01" data-tooltip="sub35_pop01" id="OATH" onclick="filePopupLayer('OATH')" title="팝업 열림">서약서 파일 변경</button> -->
</c:if>
</td>
<td><c:out value="${pList.frstRegistPnttm}" /></td>
</tr>
</c:forEach>