This commit is contained in:
myname 2023-12-28 10:25:21 +09:00
commit d3e54d3740
9 changed files with 996 additions and 559 deletions

View File

@ -101,8 +101,8 @@ public class ExcelUtil {
for (Method method : methods) { // vo 내부 메소드 반복
// System.out.println("i :: "+ i + "methods : "+ methods);
System.out.println("voList.method()");
System.out.println(method.getName());
/*System.out.println("voList.method()");
System.out.println(method.getName());*/
if (method.getName().equals("get" + (order[i] == null ? "" : order[i]))) { // vo메소드 이름과 order의 이름 비교
// getter 호출 준비

View File

@ -1,9 +1,11 @@
package kcc.kccadr.cmm;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -110,5 +112,35 @@ public class CmmUtil {
return result;
}
//YYYY.MM.DD 타입 , return
public static String getMonth(String source) {
String result = "";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
try {
Date date = dateFormat.parse(source);
SimpleDateFormat monthFormat = new SimpleDateFormat("MM");
result = monthFormat.format(date);
}catch (Exception ex) {
System.out.println("month: " + ex.getMessage());
}
return result;
}
public static String getDay(String source) {
String result = "";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
try {
Date date = dateFormat.parse(source);
SimpleDateFormat dayFormat = new SimpleDateFormat("dd");
result = dayFormat .format(date);
}catch (Exception ex) {
System.out.println("day: " + ex.getMessage());
}
return result;
}
}

View File

@ -124,10 +124,15 @@ public class VeSendMail {
//메일 내용
String Cn = vEEduAplctVO.getSndCn();
//메일 내용 textarea 작성 , 메일에 Enter 반영
if(!"".equals(Cn) && Cn != null) {
System.out.println("==============Cn================= \n"+Cn);
if(!"".equals(Cn)
&& Cn != null
&& !"SS".equals(sndFlag)
) {
Cn = Cn.replaceAll("\n", "<br/>");
}
System.out.println("==============Cn================= \n"+Cn);
//메일제목
message.setSubject("[한국저작권위원회] 찾아가는 교육서비스_알림");
@ -286,7 +291,7 @@ public class VeSendMail {
System.out.println(Cn);
message.setFrom(fromAddress);
message.addRecipient(Message.RecipientType.TO, toAddress );
message.setContent(Cn," text/html; charset=KSC5601");
System.out.println("------------------ 메일발송 시작 ----------------");
Transport.send(message);

View File

@ -20,9 +20,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private String userId; //사용자아이디
private String userNm; //신청자
private String eduYear; //신청자
private String userIdNum; //강사 아이디 고유번호
private String prcsOrd; //과정순번
private String eduSlct; //교육선택코드
private String eduSlctCd; //교육선택코드
private String eduSlctAreaCd; //교육선택지역코드
private String scholInsttNm; //학교기관이름
@ -445,6 +448,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public String eduMdCd; //교육매체 코드
public String feeInsttCd; //강사료지급기관코드
private String eduHopeMonth; //희망일자()
private String eduHopeDay; //희망일자()
private String instrEmail; //강사이메일
private String apptDiv; //강사구분
public String getSpecialWorkAllow() {
return specialWorkAllow;
@ -532,6 +541,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setPrcsOrd(String prcsOrd) {
this.prcsOrd = prcsOrd;
}
public String getEduSlct() {
return eduSlct;
}
public void setEduSlct(String eduSlct) {
this.eduSlct = eduSlct;
}
public String getEduSlctCd() {
return eduSlctCd;
}
@ -1034,14 +1049,18 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setChk(String chk) {
this.chk = chk;
}
public String getUserNm() {
return userNm;
}
public void setUserNm(String userNm) {
this.userNm = userNm;
}
public String getEduYear() {
return eduYear;
}
public void setEduYear(String eduYear) {
this.eduYear = eduYear;
}
public String getTxtMsgCn() {
return txtMsgCn;
}
@ -1959,6 +1978,30 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setFeeInsttCd(String feeInsttCd) {
this.feeInsttCd = feeInsttCd;
}
public String getEduHopeMonth() {
return eduHopeMonth;
}
public void setEduHopeMonth(String eduHopeMonth) {
this.eduHopeMonth = eduHopeMonth;
}
public String getEduHopeDay() {
return eduHopeDay;
}
public void setEduHopeDay(String eduHopeDay) {
this.eduHopeDay = eduHopeDay;
}
public String getInstrEmail() {
return instrEmail;
}
public void setInstrEmail(String instrEmail) {
this.instrEmail = instrEmail;
}
public String getApptDiv() {
return apptDiv;
}
public void setApptDiv(String apptDiv) {
this.apptDiv = apptDiv;
}
}

View File

@ -441,6 +441,7 @@ public class EduAplctMngAdultController {
vEEduAplctVO.setMode(VeConstants.MODE_EXCEL);
List<VEEduAplctVO> list = vEEduMIXService.selectPagingList(vEEduAplctVO);
list = egovCryptoUtil.decryptVEEduAplctVOList(list);
int[] rowNo = {1};
list.forEach( vo -> {
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
codeParam.setCodeId("VE0008");
@ -463,26 +464,54 @@ public class EduAplctMngAdultController {
codeParam.setCode(vo.getInsttDivCd());
vo.setInsttDivCd(egovCmmUseService.selectCmmCodeDetailCodeValue(codeParam));
codeParam.setCodeId("VEA015");
codeParam.setCode(vo.getEduMdCd());
if("99".equals(vo.getEduMdCd())) {
vo.setEduMdCd(vo.getEduMd());
}else {
vo.setEduMdCd(egovCmmUseService.selectCmmCodeDetailCodeValue(codeParam));
}
vo.setEduHopeDt(CmmUtil.getStrDateFormat(vo.getEduHopeDt()));
vo.setEduHopeMonth(CmmUtil.getMonth(vo.getEduHopeDt()));
vo.setEduHopeDay(CmmUtil.getDay(vo.getEduHopeDt()));
vo.setEduHopeDtDayOfWeek(CmmUtil.getStrDayOfWeek(vo.getEduHopeDt()));
if(vo.getAddr() == null) {
vo.setAddr("");
}
if(vo.getAddrDetail() == null) {
vo.setAddrDetail("");
}
vo.setAddr(vo.getAddr() + " " + vo.getAddrDetail());
vo.setStrtTm(vo.getStrtTm()+ " ~ " + vo.getEndTm());
vo.setEduAplctOrd(String.valueOf(rowNo[0]++));
});
List<Object> excelData = new ArrayList<>();
excelData.addAll(list);
// 세팅값
String title = "성인 찾아가는 저작권 교육 - 교육신청 목록";
String title = "성인대상 찾아가는 저작권 교육 관리 대장 - 신청목록";
int[] width = {
4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000, 4000, 4000
, 4000, 4000
}; // 너비
String[] header = {
"교육일자", "신청일자", "신청유형", "기관(단체)명", "기관구분"
, "신청자", "연락처", "휴대전화", "E-mail", "주소", "신청상태"
"STAGE", "NO", "", "", "요일"
, "날짜", "지역", "신청기관", "온/오프라인", "교육수단", "교육대상"
, "교육시간", "", "총인원", "교육내용", "담당자", "연락처1", "연락처2"
, "E-mail", "교육장소"
};
String[] order = {
"EduHopeDt", "SbmtPnttm", "EduSlctCd", "InsttNm", "InsttDivCd"
, "ChrgNm", "Phone", "Clphone", "Email", "Addr", "AprvlCd"
"InsttDivCd", "EduAplctOrd", "EduHopeMonth", "EduHopeDay", "EduHopeDtDayOfWeek"
, "EduHopeDt", "EduSlctAreaCd", "InsttNm", "EduSlctCd", "EduMdCd", "EduTrgt"
, "StrtTm", "LrnTm", "EduPrsnl", "HopeSbjct", "ChrgNm", "Phone", "Clphone"
, "Email", "Addr"
};
// 호출

View File

@ -804,7 +804,7 @@ public class EduCnfrmMngAdultController {
list.get(i).setUserId(vVo.getUserId());
list.get(i).setChrgNm(vVo.getChrgNm());
}
int[] rowNo = {1};
list.forEach( vo -> {
ComDefaultCodeVO codeParam = new ComDefaultCodeVO();
@ -843,31 +843,82 @@ public class EduCnfrmMngAdultController {
codeParam.setCode(vo.getAsgnmAprvlCd());
vo.setAsgnmAprvlCd(cmmUseService.selectCmmCodeDetailCodeValue(codeParam));
//강의구분
codeParam.setCodeId("VE0012");
codeParam.setCode(vo.getInsttDivCd());
vo.setInsttDivCd(cmmUseService.selectCmmCodeDetailCodeValue(codeParam));
//강사구분
codeParam.setCodeId("VE0018");
codeParam.setCode(vo.getApptDiv());
vo.setApptDiv(cmmUseService.selectCmmCodeDetailCodeValue(codeParam));
codeParam.setCodeId("VEA015");
codeParam.setCode(vo.getEduMdCd());
if("99".equals(vo.getEduMdCd())) {
vo.setEduMdCd(vo.getEduMd());
}else {
vo.setEduMdCd(cmmUseService.selectCmmCodeDetailCodeValue(codeParam));
}
vo.setEduHopeMonth(CmmUtil.getMonth(vo.getEduHopeDt()));
vo.setEduHopeDay(CmmUtil.getDay(vo.getEduHopeDt()));
vo.setEduHopeDtDayOfWeek(CmmUtil.getStrDayOfWeek(vo.getEduHopeDt()));
if(vo.getAddr() == null) {
vo.setAddr("");
}
if(vo.getAddrDetail() == null) {
vo.setAddrDetail("");
}
vo.setAddr(vo.getAddr() + " " + vo.getAddrDetail());
vo.setStrtTm(vo.getStrtTm()+ " ~ " + vo.getEndTm());
vo.setEduAplctOrd(String.valueOf(rowNo[0]++));
if(Integer.parseInt(vo.getQustnrRsltCnt()) > 0) {
vo.setQustnrRsltCnt("제출");
}else {
vo.setQustnrRsltCnt("미제출");
}
});
List<Object> excelData = new ArrayList<>();
excelData.addAll(list);
// 세팅값
String title = "교육배치 목록";
String title = "성인대상 찾아가는 저작권 교육 관리 대장 - 배치목록";
// 너비
int[] width = {
4000, 3000, 3000, 4000, 4000
, 8000, 4000, 4000, 4000
4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000 , 4000 , 4000, 4000 , 4000
};
// 헤더
String[] header = {
"교육희망일자", "요일", "시간", "온·오프라인", "지역"
, "기관(학교)명", "교육대상", "강사명", "확정여부"
"STAGE", "NO", "", "", "요일"
, "날짜", "지역", "신청기관", "온/오프라인", "교육수단", "교육대상"
, "교육시간", "", "총인원", "교육내용", "담당자", "연락처1", "연락처2"
, "E-mail", "교육장소", "강사", "구분", "E-mail", "연락처", "만족도"
};
// 컬럼명
String[] order = {
/* String[] order = {
"EduHopeDt", "EduHopeDtDayOfWeek", "Chasi", "EduSlctCd", "EduSlctAreaCd"
, "InsttNm", "Trgt", "InstrNm", "AsgnmAprvlCd"
};*/
String[] order = {
"InsttDivCd", "EduAplctOrd", "EduHopeMonth", "EduHopeDay", "EduHopeDtDayOfWeek"
, "EduHopeDt", "EduSlctAreaCd", "InsttNm", "EduSlctCd", "EduMdCd", "EduTrgt"
, "StrtTm", "LrnTm", "EduPrsnl", "HopeSbjct", "ChrgNm", "Phone", "Clphone"
, "Email", "Addr", "InstrNm", "ApptDiv", "InstrEmail", "InstrPhone", "QustnrRsltCnt"
};
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title);
model.addAttribute("locale", Locale.KOREA);

View File

@ -387,6 +387,7 @@
, A.phone AS phone
, A.Email AS email
, A.Addr AS addr
, A.Addr_Detail AS addrDetail
, A.IS_WAIT AS isWait
, A.CORPS_EDU AS corpsEdu
, A.BROADROOM_EDU AS broadroomEdu
@ -410,6 +411,8 @@
, A.INSTT_DIV_CD AS insttDivCd
, A.FRST_REGISTER_ID AS frstRegisterId
, TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY.MM.DD') AS frstRegistPnttm
, A.EDU_MD_CD AS eduMdCd
, A.EDU_MD AS eduMd
, A0.CNT-1 AS cnt
, A0.PRCS_ORD AS prcsOrd
, A0.PRCS_NM AS prcsNm
@ -2364,6 +2367,10 @@
a.edu_trgt AS eduTrgt ,
a.clphone AS clphone ,
a.email AS email ,
a.hope_sbjct AS hopeSbjct,
a.phone AS phone,
a.edu_md AS eduMd,
a.edu_md_cd AS eduMdCd,
b.edu_chasi_ord AS eduChasiOrd ,
b.lrn_tm AS lrnTm ,
b.edu_hope_dt AS eduHopeDt ,
@ -2378,6 +2385,9 @@
d.user_id AS userId ,
d.asgnm_aprvl_cd AS asgnmAprvlCd,
e.instr_nm AS instrNm,
e.phone AS instrPhone,
e.email AS instrEmail,
e.appt_div AS apptDiv,
g.atch_file_id AS atchFileId,
g.APRVL_CD AS acmdtAprvlCd,
d.rmrks AS rmrks,

View File

@ -10,6 +10,7 @@
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
<%
/**
@ -127,6 +128,7 @@
return false;
}
console.log(statusVal);
if(confirm("상태를 변경 하시겠습니까?")){
$.ajax({
type:"POST",
@ -140,9 +142,22 @@
success:function(returnData){
if(returnData.rsCnt > 0){
alert("상태가 변경 되었습니다.");
if(statusVal == VeConstants.APRVL_CD_20 ){
if(statusVal == VeConstants.APRVL_CD_60 ){
//교육확정 시 SMS, 메일 안내
try{
fncCfnContent(
"${pageContext.request.contextPath}/kccadr/oprtn/pblc/emailSndCfnAjax.do",
"20",
"SS"
);
}catch (e) {
}
// 확정일경우에 확정 목록으로 가도록 설정
fncGoCnfrmList();
// fncGoCnfrmList();
}else{
fncGoDetail();
}
@ -209,7 +224,7 @@
);
}
//발송
//기본 발송
function fncContent(p_url, p_cd, p_cn, p_flag){
$.ajax({
@ -249,6 +264,56 @@
}
//성공 발송
function fncCfnContent(p_url, p_sndCd, p_sndFlag){
var eduSlctCd = '<c:out value="${info.eduSlctCd}" />';
var eduSlct = '';
if(eduSlctCd == '10'){ //온라인
eduSlct = '온라인'
}else{
eduSlct = '오프라인'
} // 20 // 오프라인
// 교육 일시
var eduHopeDt = $('#eduChasiInfo td').eq(0).text().trim().replace(/\s+/g, ' ')+' '+$('#eduChasiInfo td').eq(1).text().trim().replace(/\s+/g, ' ') // 교육 일시
var eduYear = $('#eduChasiInfo td').eq(0).text().trim().replace(/\s+/g, ' ').split('.')[0];
$.ajax({
type: "POST",
// enctype: 'multipart/form-data',
url:p_url,
//data: data,
data:{
"sndCd": p_sndCd
, "sndFlag": p_sndFlag
// , "eduAplctOrd": $("#eduAplctOrd").val()
, "email": '<c:out value="${info.email}" />'
, "hopeSbjct": '<c:out value="${info.hopeSbjct}" />' // 희망주제
, "insttNm": '<c:out value="${info.insttNm}" />' // 기관(단체)명 - 의뢰처
, "addr": '('+'<c:out value="${info.post}" />'+')'+ '<c:out value="${info.addr}" />'+ '<c:out value="${info.addrDetail}" />' // 주소
, "eduSlct": eduSlct // 온라인 / 오프라인
, "eduTrgt": '<c:out value="${info.eduTrgt}" />' // 교육대상
, "eduPrsnl": '<c:out value="${info.eduPrsnl}" />' // 교육인원
, "eduHopeDt": eduHopeDt // 교육 일시
, "eduYear": eduYear // 교육명에 들어갈 교육명 년도
},
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert(returnData.message);
}else{
alert(returnData.message);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function updateHiddenMemo(){
$("#prvtMemoCn").val($("#hiddenMemo").val());
@ -578,8 +643,8 @@
</thead>
<tbody>
<c:forEach var="list" items="${chasiList}" varStatus="status">
<tr>
<th>
<tr id="eduChasiInfo">
<td>
<c:choose>
<c:when test="${not empty list.eduHopeDt}">
<%-- <fmt:parseDate value="${list.eduHopeDt}" var="eduHopeDt" pattern="yyyyMMdd"/>
@ -590,7 +655,7 @@
-
</c:otherwise>
</c:choose>
</th>
</td>
<td>
<fmt:parseDate value="${list.strtTm}" var="strtTm" pattern="kkmm"/>
<fmt:formatDate value="${strtTm}" pattern="kk:mm"/>