Merge branch 'hylee' into advc

This commit is contained in:
hylee 2023-12-22 12:58:07 +09:00
commit 146bc9ea76
11 changed files with 361 additions and 23 deletions

View File

@ -99,7 +99,8 @@ public class ExcelUtil {
// 배열로 이름 같으면 해당 데이터 쓰기
for (int i = 0; i < order.length; i++) {
for (Method method : methods) { // vo 내부 메소드 반복
// System.out.println("i :: "+ i + "methods : "+ methods);
System.out.println("voList.method()");
System.out.println(method.getName());

View File

@ -266,6 +266,7 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String chrgMjr;
private String dBirth;
private String DBirth;
private String chrgSexCd;
@ -1127,6 +1128,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
this.dBirth = dBirth;
}
public String getDBirth() {
return DBirth;
}
public void setDBirth(String dBirth) {
DBirth = dBirth;
}
public String getChrgSexCd() {
return chrgSexCd;
}

View File

@ -76,6 +76,7 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String chrgMjr;
private String dBirth;
private String DBirth;
private String chrgSexCd;
@ -518,6 +519,14 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
this.dBirth = dBirth;
}
public String getDBirth() {
return DBirth;
}
public void setDBirth(String dBirth) {
DBirth = dBirth;
}
public String getChrgSexCd() {
return chrgSexCd;
}

View File

@ -0,0 +1,103 @@
package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.service;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import kcc.com.cmm.ComDefaultVO;
public class ExcelVO extends ComDefaultVO implements Serializable {
/*
* 과정테이블
* */
private static final long serialVersionUID = 1L;
//ve_prcs
private String userNm;
private String sbmtPnttm;
private String aprvlCd;
private String chrgNm;
private String DBirth;
private String insttNm;
private String fld;
private String lctrYn;
private String email;
private String phone;
private String prvsQs;
public String getUserNm() {
return userNm;
}
public void setUserNm(String userNm) {
this.userNm = userNm;
}
public String getSbmtPnttm() {
return sbmtPnttm;
}
public void setSbmtPnttm(String sbmtPnttm) {
this.sbmtPnttm = sbmtPnttm;
}
public String getAprvlCd() {
return aprvlCd;
}
public void setAprvlCd(String aprvlCd) {
this.aprvlCd = aprvlCd;
}
public String getChrgNm() {
return chrgNm;
}
public void setChrgNm(String chrgNm) {
this.chrgNm = chrgNm;
}
public String getDBirth() {
return DBirth;
}
public void setDBirth(String dBirth) {
DBirth = dBirth;
}
public String getInsttNm() {
return insttNm;
}
public void setInsttNm(String insttNm) {
this.insttNm = insttNm;
}
public String getFld() {
return fld;
}
public void setFld(String fld) {
this.fld = fld;
}
public String getLctrYn() {
return lctrYn;
}
public void setLctrYn(String lctrYn) {
this.lctrYn = lctrYn;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPrvsQs() {
return prvsQs;
}
public void setPrvsQs(String prvsQs) {
this.prvsQs = prvsQs;
}
}

View File

@ -1,12 +1,15 @@
package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.web;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
@ -22,9 +25,11 @@ import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.impl.CmmUseDAO;
import kcc.com.cmm.spring.data.util.ExcelUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
@ -45,6 +50,7 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
import kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.service.ExcelVO;
/**
* 기반강화연수(관리자) 신청기간관리
@ -147,7 +153,10 @@ public class FndthPrcsAplctPrdMngController {
//알림 서비스
@Resource(name = "NotifyManageService")
private NotifyManageService notifyManageService;
/** cmmUseService */
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService egovCmmUseService;
@ -625,7 +634,6 @@ public class FndthPrcsAplctPrdMngController {
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
System.out.println("====");
//대상 리스트, 페이징 정보 전달
@ -644,6 +652,116 @@ public class FndthPrcsAplctPrdMngController {
return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail";
}
/**
* 성인찾아가는 저작권 교육 목록 Excel
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "/kccadr/oprtn/fndthEnhanceTrn/eduAplctExcelDownLoad.do")
public ModelAndView eduAplctExcelDownLoad(@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO, ModelMap model) throws Exception {
//년도
// if(StringUtils.isBlank(vEEduAplctVO.getSearchYear())){
// vEEduAplctVO.setSearchYear(String.valueOf(LocalDate.now().getYear()));
// }
//
// //
// if(StringUtils.isBlank(vEEduAplctVO.getSearchMonth())){
// vEEduAplctVO.setSearchMonth(String.valueOf(LocalDate.now().getMonthValue()));
// }
// 요청, 반려건
try {
VEEduAplctVO paramVO = new VEEduAplctVO();
paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
paramVO.setSbmtYn("Y");
// 검색 - 날짜
paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt());
paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt());
// 검색 - 검색어
paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus());
List<VEEduAplctVO> list = vEEduMIXService.selectList(paramVO);
list = egovCryptoUtil.decryptVeEduAplctList(list);
List<ExcelVO> excelVOList = new ArrayList<>();
// util에서 vo의 모든 변수를 순회하기 때문에 느림
// 필요한 변수들만 vo로 선언
list.forEach( vo -> {
ExcelVO excelVO = new ExcelVO();
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VE0003");
codeParam.setCode(vo.getAprvlCd());
excelVO.setAprvlCd(egovCmmUseService.selectCmmCodeDetailCodeValue(codeParam));
excelVO.setDBirth(vo.getdBirth());
excelVO.setUserNm(vo.getUserNm());
excelVO.setSbmtPnttm(vo.getSbmtPnttm());
excelVO.setChrgNm(vo.getChrgNm());
excelVO.setInsttNm(vo.getInsttNm());
excelVO.setFld(vo.getFld());
excelVO.setLctrYn(vo.getLctrYn());
excelVO.setEmail(vo.getEmail());
excelVO.setPhone(vo.getPhone());
excelVO.setPrvsQs(vo.getPrvsQs());
excelVOList.add(excelVO);
});
List<Object> excelData = new ArrayList<>();
excelData.addAll(excelVOList);
// 세팅값
String title = "실무역량강화 - 교육신청 목록";
int[] width = {
4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000, 4000
}; // 너비
String[] header = {
"신청자", "신청일", "확정여부", "성명", "생년월일"
, "소속기업", "분야", "수강여부", "E-mail", "휴대폰", "사전질의"
};
String[] order = {
"UserNm", "SbmtPnttm", "AprvlCd", "ChrgNm", "DBirth"
, "InsttNm", "Fld", "LctrYn", "Email", "Phone", "PrvsQs"
};
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title);
model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
modelAndView.addObject(model);
return modelAndView;
}
/**
* 기반강화연수과정 기간 상세수정화면
*/

View File

@ -129,6 +129,12 @@
vadi.CNCL_CN AS cnclCn,
le.MBER_NM AS userNm,
<include refid="VEEduMIXDAO.select_column_name"/>,
a.CHRG_NM AS chrgNm ,
a.D_BIRTH AS dBirth ,
a.INSTT_NM AS insttNm ,
a.FLD AS fld ,
a.LCTR_YN AS lctrYn ,
a.PRVS_QS AS prvsQs ,
CASE
WHEN EXISTS (/* 설문조사 */
SELECT

View File

@ -493,6 +493,9 @@
});
}
}
</script>
<title>신청관리</title>
</head>

View File

@ -110,7 +110,7 @@
<input type="hidden" name="userId" value="" />
<input type="hidden" name="instrDiv" value="" />
</form:form>
<form:form id="listForm" name="listForm" method="post" commandName="vEInstrDetailVO" onsubmit="return false;">
<form:form id="listForm" name="listForm" method="get" commandName="vEInstrDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEInstrDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEInstrDetailVO.searchSortOrd}" />" />

View File

@ -218,7 +218,17 @@
});
}
}
// 엑셀다운로드
function excelDownLoad() {
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/eduAplctExcelDownLoad.do'/>";
listForm.submit();
}
</script>
</head>
@ -233,6 +243,7 @@
<input type="hidden" name="userId" id="userId"/>
</form>
<form:form id="listForm" name="listForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
</form:form>
<form id="popForm" name="popForm" method="post">
<input type="hidden" name="pageIndex" value="1"/>
@ -471,6 +482,12 @@
<th>신청자</th>
<th>신청일</th>
<th>확정여부</th>
<th>성명</th>
<th>생년월일</th>
<th>소속기업</th>
<th>분야</th>
<th>수강여부</th>
<th>사전질의</th>
<th>이수여부</th>
<!-- <th>설문조사</th>
<th>이수증</th> -->
@ -494,9 +511,28 @@
<td>
<ve:code codeId="VE0003" code="${list.aprvlCd}"/>
</td>
<td>
<c:out value="${list.chrgNm}"/>
</td>
<td>
<c:out value="${list.dBirth}"/>
</td>
<td>
<c:out value="${list.insttNm}"/>
</td>
<td>
<c:out value="${list.fld}"/>
</td>
<td>
<c:out value="${list.lctrYn}"/>
</td>
<td>
<c:out value="${list.prvsQs}"/>
</td>
<td>
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
</td>
<%-- <td>
<c:choose>
<c:when test="${list.qestRsltExists }">
@ -535,6 +571,7 @@
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type02" onclick="excelDownLoad(); return false;">엑셀다운로드</button>
<button type="button" class="btn_type04" onclick="fncDdlnCdSave(10); return false;">신청마감</button>
<button type="button" class="btn_type04" onclick="fncDdlnCdSave(20); return false;">교육확정</button>
</div>

View File

@ -470,7 +470,7 @@ $(document).ready(function(){
</td>
<td class="aplctBtn">
<%-- <button type="button" class="btnType04" onclick="fncEduReg('<c:out value="${list.prcsAplctPrdOrd}"/>');" disabled>신청</button> --%>
<button type="button" class="btnType04" onclick="fn_eduRegPopup('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');" data-tooltip="target_confirm_popup" disabled>신청</button>
<button type="button" class="btnType04" onclick="fn_eduRegPopup('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');" disabled>신청</button>
</td>
</c:if>
</tr>

View File

@ -46,6 +46,21 @@ $(document).ready(function(){
incrementYears:100,
}
$('#fldSelect').change(function(){
console.log($(this).val());
console.log($(this).val() == '99');
if($(this).val() == '99'){
$('#fld').val('');
$('#fld').attr('type', 'text');
}else{
$('#fld').val($('#fldSelect option:selected').text());
$('#fld').attr('type', 'hidden');
}
})
// $('#fld').hide();
});
// value 체크
@ -53,9 +68,9 @@ $(document).ready(function(){
function fnValidation(){
var valChk = true
// 텍스트 입력 필드에 값이 있는지 확인
$('input[type="text"]').each(function() {
$('input[type="text"]').not('#fld').each(function() {
if ($(this).val() == '') {
var fieldName = $(this).closest('td').prev('th').find('p').text();
alert(fieldName + '를 입력해주세요.');
@ -64,16 +79,32 @@ $(document).ready(function(){
return false; // 함수 실행 중지
}
});
// duet-date라서 name밖에 없음
var $dBirth = $('input[name="dBirth"]');
if($dBirth.val() ==''){
alert('생년월일을 입력해 주세요.');
$dBirth.focus();
return false;
}
// alert 두번 방지 if
if(valChk){
if(!$('#fldSelect').val()){
alert('분야를 선택해 주세요.');
$('#fldSelect').focus();
return false;
}else if($('#fldSelect').val() == '99'){
if(!$('#fld').val()){
alert('분야를 입력해 주세요.');
$('#fld').focus();
return false;
}
}
// duet-date라서 name밖에 없음
var $dBirth = $('input[name="dBirth"]');
if($dBirth.val() ==''){
alert('생년월일을 입력해 주세요.');
$dBirth.focus();
return false;
}
if(!$('#chkY').prop("checked")){
alert('개인정보 처리 동의해 주세요.')
return false;
@ -159,6 +190,20 @@ $(document).ready(function(){
</div>
</td>
</tr>
<tr>
<th scope="row">
<p>핸드폰</p>
</th>
<td>
<input type="text" class="twoRow" name="phone" id="phone"/>
</td>
<th scope="row">
<p>이메일</p>
</th>
<td>
<input type="text" class="twoRow" name="email" id="email"/>
</td>
</tr>
<tr>
<th scope="row">
<p>소속기업</p>
@ -166,11 +211,19 @@ $(document).ready(function(){
<td>
<input type="text" class="twoRow" name="insttNm" id="insttNm"/>
</td>
</tr>
<tr>
<th scope="row">
<p>분야</p>
</th>
<td>
<input placeholder="어문, 음악, 영상, SW, 연극 등" type="text" class="twoRow" name="fld" id="fld"/>
<ve:select codeId="VEA014" id="fldSelect" css="class='selType1'"
selectedValue="" defaultValue=''
defaultText="선택"
/>
<!-- <input type="text" class="twoRow" name="fld" id="fld"/> -->
<td colspan="2">
<input type="hidden" placeholder="직접 입력해주세요" class="twoRow" name="fld" id="fld"/>
</td>
</tr>
<tr>
@ -190,9 +243,15 @@ $(document).ready(function(){
</td>
</tr>
<tr>
<td colspan="3">
<!-- <tr> -->
<!-- <td colspan="3"> -->
<!-- </td> -->
<!-- </tr> -->
</tbody>
</table>
</div>
<pre>개인정보 처리 동의서
한국저작권위원회에서는 귀하의 개인정보를 중요시하며, 개인정보보호법 제15조, 제17조, 제22조, 제23조 및 제24조에 따라 아래와 같이 개인정보 처리에 관하여 동의를 얻고자 합니다.
&lt;개인정보 수집 및 이용에 대한 동의 &gt;
@ -201,11 +260,6 @@ $(document).ready(function(){
ο 개인정보의 보유 및 이용기간 : 사업 종료시까지
ο 동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익이 있는 경우에는 그 불이익의 내용 : 귀하의 개인정보 제공 및 동의를 거부할 권리가 있으며, 위 항목 동의 거부시 수강신청 및 이수증 발급이 어려워질 수 있음
</pre>
</td>
</tr>
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>