2024-02-08 09:28 기소유예 알림 작업

This commit is contained in:
myname 2024-02-08 09:28:43 +09:00
parent d7a0484602
commit 55ae2fc82c
27 changed files with 891 additions and 276 deletions

View File

@ -457,6 +457,25 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I
//저장
vEAPrcsAplctPrdInstrAsgnmService.updatLctrPlanAtchFileId(vEAPrcsAplctPrdInstrAsgnmVO);
System.out.println("vEAPrcsAplctPrdInstrAsgnmVO");
System.out.println(vEAPrcsAplctPrdInstrAsgnmVO);
//강의계획서제출 알림
try {
iTNotiUtil.insertNotifyNew_60(
adrInnorixFileVO.getLctrDivCd(),
adrInnorixFileVO.getUniqId(),
VeConstants.NOTI_STATUS_31,
adrInnorixFileVO.getPrcsAplctPrdOrd(),
"",
"1",
"1"
);
}catch(Exception ex) {
ex.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());

View File

@ -17,7 +17,6 @@ import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.fcc.service.EgovStringUtil;
import kcc.kccadr.accdnt.ans.service.AnsVO;
import kcc.kccadr.cmm.RestResponse;
import kcc.kccadr.cmm.innorix.service.AdrInnorixFileVO;
import kcc.kccadr.cmm.innorix.service.InnorixFileService;
@ -160,6 +159,10 @@ public class InnorixFileController {
adrInnorixFileVO.setUniqId(userId);
}
System.out.println("adrInnorixFileVO");
System.out.println(adrInnorixFileVO);
System.out.println(adrInnorixFileVO);
return ResponseEntity.ok(innorixService.insertInnorixLctrPlanFile(adrInnorixFileVO));
}

View File

@ -80,6 +80,8 @@ public class NotifyManageVO extends ComDefaultVO implements Serializable {
private String params; //파라미터들
private String prcsAplctPrdOrd; //기소, 기반 신청순번
private String prcsNm; //과정명
private String prcsOrd; //과정순번
public String getCmmNotifyOrd() {
@ -196,6 +198,18 @@ public class NotifyManageVO extends ComDefaultVO implements Serializable {
public void setPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
this.prcsAplctPrdOrd = prcsAplctPrdOrd;
}
public String getPrcsNm() {
return prcsNm;
}
public void setPrcsNm(String prcsNm) {
this.prcsNm = prcsNm;
}
public String getPrcsOrd() {
return prcsOrd;
}
public void setPrcsOrd(String prcsOrd) {
this.prcsOrd = prcsOrd;
}

View File

@ -36,6 +36,10 @@ public class NotifyManageDAO extends EgovAbstractDAO {
return (List<NotifyManageVO>) list("VEANotifyMngDAO.selectInstrList", notifyManageVO);
}
public List<NotifyManageVO> selectAplctList(NotifyManageVO notifyManageVO) {
return (List<NotifyManageVO>) list("VEANotifyMngDAO.selectAplctList", notifyManageVO);
}
public void mngInsert(NotifyManageVO notifyManageVO) {
insert("VEANotifyMngDAO.mngInsert", notifyManageVO);
}
@ -88,6 +92,10 @@ public class NotifyManageDAO extends EgovAbstractDAO {
return (NotifyManageVO) select("VEANotifyDAO.findByUserIdFromVE_EDU_DOC_REQ_2", eduAplctOrd);
}
public NotifyManageVO findByUserIdFromVE_PRCS_APLCT_PRD(String eduAplctOrd) {
return (NotifyManageVO) select("VEANotifyDAO.findByUserIdFromVE_PRCS_APLCT_PRD", eduAplctOrd);
}
public String selectNotifyInstr(NotifyManageVO notifyManageVO) {
return (String) select("VEANotifyDAO.selectNotifyInstr", notifyManageVO);
}

View File

@ -501,7 +501,7 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements
); //- 관련화면 URL
p_notifyManageVO.setNotifyCn(
this._makeNotifyCn(s_lctrDivCd, p_noti_status)
this._makeNotifyCn(s_lctrDivCd, p_noti_status, p_notifyManageVO)
); //- noti 내용
@ -512,8 +512,7 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements
//notifyManageVO.setToUserId(notifyManageDAO.findByUserIdFromVE_EDU_APLCT(eduAplctOrd));
//notifyManageDAO.insertNotifyInfo(p_notifyManageVO);
this._findToUserIdNInsertNoti(p_notifyManageVO, s_lctrDivCd, p_noti_status);
this._findToUserIdNInsertNoti(p_notifyManageVO, s_lctrDivCd, p_noti_status);
}
//알림 링크 정보 만들기
@ -657,9 +656,65 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements
}
else if( "50".equals(p_lctrDivCd) ) { //실무
notifyPath = "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctDetail.do";
if ("10".equals(p_noti_status)) {
notifyPath = "/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.do"; //운영자 - 교육신청관리 - 상세
}else if (
"153".equals(p_noti_status) //교육확정
||"154".equals(p_noti_status) //교육취소
) {
notifyPath = "/web/ve/aplct/fndtnEnhanceTrn/main.do"; //운영자 - 교육신청관리 - 상세
}else if (
"31".equals(p_noti_status) //강의계획서 제출
) {
notifyPath = "/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail.do"; //운영자 - 강의계획서
}else if (
"91".equals(p_noti_status) //교육문의
) {
notifyPath = "/kccadr/oprtn/fndthEnhanceTrn/fndthEduQnaMngList.do"; //운영자 - 교육문의
}else if (
"92".equals(p_noti_status) //교육문의답변
) {
notifyPath = "/web/ve/aplct/fndtnEnhanceTrn/main.do"; //사용자 - 교육문의 게시판
}
}
else if( "60".equals(p_lctrDivCd) ) { //기소유예
notifyPath = "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctDetail.do";
else if( "60".equals(p_lctrDivCd) ) { //기소유예
notifyPath = "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctDetail.do";
if ("10".equals(p_noti_status)) {
notifyPath = "/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.do"; //운영자 - 교육신청관리 - 상세
}else if (
"151".equals(p_noti_status) //교육승인
||"152".equals(p_noti_status) //교육반려
||"153".equals(p_noti_status) //교육확정
) {
notifyPath = "/web/ve/aplct/sspnIdtmt/main.do"; //운영자 - 교육신청관리 - 상세
}else if (
"100".equals(p_noti_status) //강사배정확정
) {
notifyPath = "/web/ve/instr/sspnIdtmt/asgnmInfo/instrAsgnmList.do"; //강사 - 강의내역목록
}else if (
"31".equals(p_noti_status) //강의계획서 제출
) {
notifyPath = "/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.do"; //운영자 - 강의계획서
}else if (
"91".equals(p_noti_status) //교육문의
) {
notifyPath = "/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do"; //운영자 - 교육문의
}else if (
"92".equals(p_noti_status) //교육문의답변
) {
notifyPath = "/web/ve/aplct/sspnIdtmt/eduFAQList.do"; //사용자 - 교육문의 게시판
}
}
return notifyPath;
@ -811,6 +866,76 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements
//notifyManageListVO = notifyManageDAO.selectInstrList(p_notifyManageVO);
}
}else if( "50".equals(p_lctrDivCd) ) { //실무역량
if (
"10".equals(p_noti_status) //10-교육신청
||"31".equals(p_noti_status) //31-강의계획서
||"91".equals(p_noti_status) //91-교육문의
) { //10-교육신청
//담당 관리자에게 모두 알림
p_notifyManageVO.setFirstIndex(0);
p_notifyManageVO.setRecordCountPerPage(1000);
// 담당자 조회
notifyManageListVO = notifyManageDAO.selectMngPagingList(p_notifyManageVO);
} else if (
"153".equals(p_noti_status) //153-교육확정
) {
// 신청자 ID 가져오기
notifyManageListVO = notifyManageDAO.selectAplctList(p_notifyManageVO); //prcsAplctPrdOrd
} else if (
"154".equals(p_noti_status) //153-교육확정
) {
// 신청자 ID 가져오기
p_notifyManageVO.setToUserId(p_notifyManageVO.getEduAplctOrd());
} else if (
"92".equals(p_noti_status) //92-교육문의답변
) {
// 강사 ID 가져오기
p_notifyManageVO.setToUserId(p_notifyManageVO.getEduAplctOrd());
}
}else if( "60".equals(p_lctrDivCd) ) { //기소유예
if (
"10".equals(p_noti_status) //10-교육신청
||"31".equals(p_noti_status) //31-강의계획서
||"91".equals(p_noti_status) //91-교육문의
) { //10-교육신청
//담당 관리자에게 모두 알림
p_notifyManageVO.setFirstIndex(0);
p_notifyManageVO.setRecordCountPerPage(1000);
// 담당자 조회
notifyManageListVO = notifyManageDAO.selectMngPagingList(p_notifyManageVO);
} else if (
"151".equals(p_noti_status) //151-교육승인
||"152".equals(p_noti_status) //152-교육반려
) {
//해당 신청자에게 알림
p_notifyManageVO.setToUserId(notifyManageDAO.findByUserIdFromVE_EDU_APLCT(p_notifyManageVO.getEduAplctOrd()));
} else if (
"153".equals(p_noti_status) //153-교육확정
) {
// 신청자 ID 가져오기
notifyManageListVO = notifyManageDAO.selectAplctList(p_notifyManageVO); //prcsAplctPrdOrd
} else if (
"100".equals(p_noti_status) //100-강사배정확정
) {
// 강사 ID 가져오기
p_notifyManageVO.setToUserId(p_notifyManageVO.getEduAplctOrd());
} else if (
"92".equals(p_noti_status) //92-교육문의답변
) {
// 강사 ID 가져오기
p_notifyManageVO.setToUserId(p_notifyManageVO.getEduAplctOrd());
}
}
//담당자 처리 알림 DB 등록
@ -849,6 +974,7 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements
// 70-강사활동확인서, 71-강사활동확인서 신청, 72-강사활동확인서 승인
// 80-정보수정, 81-정보수정요청, 82-정보수정승인
// 90-교육문의, 91-교육문의건, 92교육문의 답변
, NotifyManageVO p_notifyManageVO
) throws FdlException{
String notifyCn = "";
@ -963,10 +1089,72 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements
notifyCn = "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctDetail.do";
}
else if( "50".equals(p_lctrDivCd) ) { //실무
notifyCn = "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctDetail.do";
if ("10".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 교육신청 건이 있습니다.";
}else if ("153".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 저작권 교육 확정 건이 있습니다.";
}else if ("154".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 저작권 교육 접수 취소건이 있습니다.";
}else if ("31".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 강의계획서 제출 건이 있습니다.";
}else if ("91".equals(p_noti_status)) {
notifyCn = "교육 문의 건이 있습니다.";
}else if ("92".equals(p_noti_status)) {
notifyCn = "교육문의에 대한 답변이 접수되었습니다.";
}
}
else if( "60".equals(p_lctrDivCd) ) { //기소유예
notifyCn = "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctDetail.do";
if ("10".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 교육신청 건이 있습니다.";
}else if ("151".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 교육 승인 건이 있습니다.";
}else if ("152".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 교육 반려 건이 있습니다.";
}else if ("153".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 교육 확정 건이 있습니다.";
}else if ("100".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 교육 강사로 배정되었습니다.";
}else if ("31".equals(p_noti_status)) {
//과정명 가져오기
NotifyManageVO t_notifyManageVO = notifyManageDAO.findByUserIdFromVE_PRCS_APLCT_PRD(p_notifyManageVO.getPrcsAplctPrdOrd());
notifyCn = "`"+t_notifyManageVO.getPrcsNm()+"` 강의계획서 제출 건이 있습니다.";
}else if ("91".equals(p_noti_status)) {
notifyCn = "교육 문의 건이 있습니다.";
}else if ("92".equals(p_noti_status)) {
notifyCn = "작성하신 문의에 답변이 게시되었습니다.";
}
}
return notifyCn;

View File

@ -40,7 +40,7 @@ public class ITNotiUtil {
// 1.VEEduAplctVO
//
//VEEduAplctVO - 암호화
//VEEduAplctVO - 암호화 //10,20
public void insertNotifyNew(
//NotifyManageService p_notifyManageService
String p_lctrDivCd //VE0008 10-청소년, 20-성인,30-체험,50-실무,60-기수
@ -99,6 +99,67 @@ public class ITNotiUtil {
}
}
}
//VEEduAplctVO - 암호화 //60 - 기소형태
public void insertNotifyNew_60(
//NotifyManageService p_notifyManageService
String p_lctrDivCd //VE0008 10-청소년, 20-성인,30-체험,50-실무,60-기수
, String p_RegisterId //등록자ID
, String p_noti_status_cd
, String p_prcsAplctPrdOrd
, String p_eduAplctOrd
, String p_move_param_type //페이지 이동에 사용하는 파라미터 설정 타입
// 0-no param(sms, email),
// 1-prcsAplctPrdOrd,
// 2-prcsAplctPrdOrd & eduAplctOrd
, String p_noti_param_type //알림 대상자 선별을 위한 파라미터 타입
// 0-no param(sms, email),
// 1-prcsAplctPrdOrd,
// 2-prcsAplctPrdOrd & eduAplctOrd
){
try {
//new - 2024.02.02
NotifyManageVO notifyManageVO = new NotifyManageVO();
notifyManageVO.setLctrDivCd(p_lctrDivCd); //VE0008 10-청소년, 20-성인,30-체험,50-실무,60-기수
notifyManageVO.setFrstRegisterId(p_RegisterId); //등록자 정보
//페이지 이동에 필요한 파라미터 설정
if("1".equals(p_move_param_type)) {
notifyManageVO.setParams("prcsAplctPrdOrd:"+p_prcsAplctPrdOrd); //ex)edu_aplct_ord:edu_001,edu_chasi_ord:edu_cha_001
}else if("2".equals(p_move_param_type)) {
notifyManageVO.setParams("prcsAplctPrdOrd:"+p_prcsAplctPrdOrd+",eduAplctOrd:"+p_eduAplctOrd);
//ex)edu_aplct_ord:edu_001,edu_chasi_ord:edu_cha_001
}
//알림 대상자 선정에 필요한 파라미터 설정
if("1".equals(p_noti_param_type)) {
notifyManageVO.setPrcsAplctPrdOrd(p_prcsAplctPrdOrd);
}else if("2".equals(p_noti_param_type)) {
notifyManageVO.setPrcsAplctPrdOrd(p_prcsAplctPrdOrd);
notifyManageVO.setEduAplctOrd(p_eduAplctOrd);
}
System.out.println("notifyManageVO.toString()");
System.out.println(notifyManageVO.toString());
//new 알림-2024.02.02
notifyManageService.insertNotifyNew(notifyManageVO, p_noti_status_cd); //교육신청 - 상태변경
}catch(Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -33,6 +33,7 @@ import kcc.let.uss.notify.service.NotifyManageService;
import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService;
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.ITNotiUtil;
import kcc.ve.adv.tngr.stngInfo.service.VEACmpltCrtfcMixService;
import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService;
import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService;
@ -179,6 +180,9 @@ public class FndtnEnhanceTrnController {
@Resource(name = "qustnrCommonUtil")
private QustnrCommonUtil qustnrCommonUtil;
//알림
@Resource(name = "iTNotiUtil")
private ITNotiUtil iTNotiUtil;
/**
* 대시보드 임시
@ -577,6 +581,20 @@ public class FndtnEnhanceTrnController {
fndtnEnhanceTrnService.insertVeEduAplct(vEEduAplctVO);
//알림 교육신청
try {
iTNotiUtil.insertNotifyNew_60(
"50",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_10,
vEPrcsDetailVO.getPrcsAplctPrdOrd(),
"",
"1",
"1"
);
}catch(Exception ex) {
ex.printStackTrace();
}
modelAndView.addObject("result", "success");
@ -629,6 +647,21 @@ public class FndtnEnhanceTrnController {
try {
fndtnEnhanceTrnService.insertVeEduQna(vEPrcsDetailVO);
//알림 교육문의
try {
iTNotiUtil.insertNotifyNew_60(
"50",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_91,
"",
"",
"0",
"0"
);
}catch(Exception ex) {
ex.printStackTrace();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();

View File

@ -31,6 +31,7 @@ import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.uss.notify.service.NotifyManageService;
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.ITNotiUtil;
import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService;
import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService;
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
@ -170,6 +171,10 @@ public class SspnIdtmtController {
@Resource(name = "EgovBBSManageService")
private EgovBBSManageService bbsMngService;
//알림
@Resource(name = "iTNotiUtil")
private ITNotiUtil iTNotiUtil;
/**
* 대시보드 임시
*/
@ -583,6 +588,7 @@ public class SspnIdtmtController {
try {
//암호화
vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO);
vEEduAplctVO.setRndsOrd(vEPrcsDetailVO.getSspnIdtmtTrgtOrd()); //2024-02-07 추가 신청서 정보에 대상자 정보를 넣어야 추후 구분이 가능해서 추가함
sspnIdtmtService.insertVeEduAplct(vEEduAplctVO);
@ -598,6 +604,21 @@ public class SspnIdtmtController {
cndtnTrgtInfoMngService.updateUserId(cndtnTrgtMngVO);
//알림 교육신청
try {
iTNotiUtil.insertNotifyNew_60(
"60",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_10,
vEPrcsDetailVO.getPrcsAplctPrdOrd(),
"",
"1",
"1"
);
}catch(Exception ex) {
ex.printStackTrace();
}
result = "success";
} catch (Exception e) {
// TODO: handle exception
@ -928,6 +949,21 @@ public class SspnIdtmtController {
try {
fndtnEnhanceTrnService.insertVeEduQna(vEPrcsDetailVO);
//알림 교육문의
try {
iTNotiUtil.insertNotifyNew_60(
"60",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_91,
"",
"",
"0",
"0"
);
}catch(Exception ex) {
ex.printStackTrace();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();

View File

@ -147,6 +147,12 @@ public class VeConstants {
public static final String NOTI_STATUS_14 = "14"; // 교육수정요청
public static final String NOTI_STATUS_15 = "15"; // 교육신청확정
public static final String NOTI_STATUS_151 = "151"; // 교육승인
public static final String NOTI_STATUS_152 = "152"; // 교육반려
public static final String NOTI_STATUS_153 = "153"; // 교육확정
public static final String NOTI_STATUS_154 = "154"; // 접수취소
public static final String NOTI_STATUS_155 = "155"; // 교육취소
public static final String NOTI_STATUS_20 = "20"; // 교육배치
public static final String NOTI_STATUS_21 = "21"; // 수락요청
public static final String NOTI_STATUS_22 = "22"; // 교육수락

View File

@ -43,7 +43,9 @@ public class VEAPrcsAplctPrdInstrAsgnmVO extends ComDefaultVO implements Seriali
// ve_instr_detail
private String instrNm; // 강사 이름
private String phone; // phone
private String rprtFileType; // 첨부파일 종류
private String rprtFileType; // 첨부파일 종류
private String lctrDivCd; //50-실무,60-기소유예
public String getPrcsAplctPrdOrd() {
return prcsAplctPrdOrd;
@ -165,6 +167,14 @@ public class VEAPrcsAplctPrdInstrAsgnmVO extends ComDefaultVO implements Seriali
this.rprtFileType = rprtFileType;
}
public String getLctrDivCd() {
return lctrDivCd;
}
public void setLctrDivCd(String lctrDivCd) {
this.lctrDivCd = lctrDivCd;
}

View File

@ -40,7 +40,9 @@ import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.ITNotiUtil;
import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
@ -126,6 +128,10 @@ public class CndtnTrgtMngController {
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//알림
@Resource(name = "iTNotiUtil")
private ITNotiUtil iTNotiUtil;
/*
// 교육신청 서비스단
@ -1641,6 +1647,20 @@ public class CndtnTrgtMngController {
vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id
vEPrcsService.qnaUpdate(vEPrcsDetailVO);
//알림 교육문의등록
try {
iTNotiUtil.insertNotifyNew_60(
"60",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_92,
"",
vEPrcsDetailVO.getFrstRegisterId(),
"0",
"2"
);
}catch(Exception ex) {
ex.printStackTrace();
}
//세부과정 지우고 다시 생성
VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO();

View File

@ -35,7 +35,9 @@ import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.uss.notify.service.NotifyManageService;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.ITNotiUtil;
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
@ -144,6 +146,11 @@ public class CndtnPrcsInfoMngController {
/** cmmUseService */
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService egovCmmUseService;
//알림
@Resource(name = "iTNotiUtil")
private ITNotiUtil iTNotiUtil;
/**
* 기반강화연수 과정 관리 목록 화면
*/
@ -831,6 +838,22 @@ public class CndtnPrcsInfoMngController {
vEPrcsAplctPrdService.updateOneColumn(vEPrcsDetailVO);
if ("20".equals(vEPrcsDetailVO.getDdlnCd())) {
//알림 교육확정
try {
iTNotiUtil.insertNotifyNew_60(
"60",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_153,
vEPrcsDetailVO.getPrcsAplctPrdOrd(),
"",
"0",
"1"
);
}catch(Exception ex) {
ex.printStackTrace();
}
}
modelAndView.addObject("result", "success");
@ -1157,6 +1180,7 @@ public class CndtnPrcsInfoMngController {
*/
/*
// 알림
notifyManageService.insertNotifyAprvlCd5060ForUser(
loginVO
@ -1165,19 +1189,18 @@ public class CndtnPrcsInfoMngController {
, vEPrcsDetailVO.getEduAplctOrdList()
, vEPrcsDetailVO.getAprvlCd()
);
*/
// 승인 - 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함
if("20".equals(vEPrcsDetailVO.getAprvlCd())) {
this.aprvlCd20(vEPrcsDetailVO,loginVO.getUniqId());
}
// 접수취소(반려) - vea_aplct_detail_info TB에 data update
else if("30".equals(vEPrcsDetailVO.getAprvlCd()))
{
this.aprvlCd30(vEPrcsDetailVO);
this.aprvlCd30(vEPrcsDetailVO,loginVO.getUniqId());
}
modelAndView.addObject("result", "success");
@ -1707,8 +1730,23 @@ public class CndtnPrcsInfoMngController {
vEAPrcsAplctPrdInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
vEAPrcsAplctPrdInstrAsgnmService.instrInsert(vEAPrcsAplctPrdInstrAsgnmVO);
notifyManageService.insertNotifyForInstr5060(loginVO, vEAPrcsAplctPrdInstrAsgnmVO.getPrcsAplctPrdOrd(), vEAPrcsAplctPrdInstrAsgnmVO.getAsgnmAprvlCd(), vEAPrcsAplctPrdInstrAsgnmVO.getUserId());
//알림
//notifyManageService.insertNotifyForInstr5060(loginVO, vEAPrcsAplctPrdInstrAsgnmVO.getPrcsAplctPrdOrd(), vEAPrcsAplctPrdInstrAsgnmVO.getAsgnmAprvlCd(), vEAPrcsAplctPrdInstrAsgnmVO.getUserId());
//알림 교육신청
try {
iTNotiUtil.insertNotifyNew_60(
"60",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_100,
vEAPrcsAplctPrdInstrAsgnmVO.getPrcsAplctPrdOrd(),
vEAPrcsAplctPrdInstrAsgnmVO.getUserId(),
"0",
"2"
);
}catch(Exception ex) {
ex.printStackTrace();
}
} catch (Exception ex) {
ex.printStackTrace();
@ -2061,6 +2099,22 @@ public class CndtnPrcsInfoMngController {
}
//알림 교육승인
try {
iTNotiUtil.insertNotifyNew_60(
"60",
uniqId,
VeConstants.NOTI_STATUS_151,
vEPrcsDetailVO.getPrcsAplctPrdOrd(),
id,
"0",
"2"
);
}catch(Exception ex) {
ex.printStackTrace();
}
}
}
@ -2075,7 +2129,7 @@ public class CndtnPrcsInfoMngController {
* @param uniqId
* @throws FdlException
*/
private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO) {
private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO, String uniqId) {
for(String id : vEPrcsDetailVO.getEduAplctOrdList()) {
VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO();
@ -2096,6 +2150,21 @@ public class CndtnPrcsInfoMngController {
}
//알림 교육반려
try {
iTNotiUtil.insertNotifyNew_60(
"60",
uniqId,
VeConstants.NOTI_STATUS_152,
vEPrcsDetailVO.getPrcsAplctPrdOrd(),
id,
"0",
"2"
);
}catch(Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -37,6 +37,8 @@ import kcc.let.uss.notify.service.NotifyManageService;
import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService;
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.ITNotiUtil;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
@ -159,7 +161,9 @@ public class FndthPrcsAplctPrdMngController {
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService egovCmmUseService;
//알림
@Resource(name = "iTNotiUtil")
private ITNotiUtil iTNotiUtil;
/*
@ -905,6 +909,22 @@ public class FndthPrcsAplctPrdMngController {
vEPrcsAplctPrdService.updateOneColumn(vEPrcsDetailVO);
if ("20".equals(vEPrcsDetailVO.getDdlnCd())) {
//알림 교육확정
try {
iTNotiUtil.insertNotifyNew_60(
"50",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_153,
vEPrcsDetailVO.getPrcsAplctPrdOrd(),
"",
"0",
"1"
);
}catch(Exception ex) {
ex.printStackTrace();
}
}
modelAndView.addObject("result", "success");
@ -1083,7 +1103,7 @@ public class FndthPrcsAplctPrdMngController {
// 접수취소(반려) - vea_aplct_detail_info TB에 data update
else if("30".equals(vEPrcsDetailVO.getAprvlCd()))
{
this.aprvlCd30(vEPrcsDetailVO);
this.aprvlCd30(vEPrcsDetailVO,loginVO.getUniqId());
}
modelAndView.addObject("result", "success");
@ -1141,7 +1161,7 @@ public class FndthPrcsAplctPrdMngController {
* @param uniqId
* @throws FdlException
*/
private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO) {
private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO, String uniqId) {
for(String id : vEPrcsDetailVO.getEduAplctOrdList()) {
VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO();
@ -1159,6 +1179,21 @@ public class FndthPrcsAplctPrdMngController {
}
//알림 교육반려
try {
iTNotiUtil.insertNotifyNew_60(
"50",
uniqId,
VeConstants.NOTI_STATUS_154,
vEPrcsDetailVO.getPrcsAplctPrdOrd(),
id,
"0",
"2"
);
}catch(Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -29,9 +29,10 @@ import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.ITNotiUtil;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCmpltDetailService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
@ -156,6 +157,10 @@ public class FndthPrcsInfoMngController {
private CheckAdrProcessUtil checkAdrProcessUtil;
*/
//알림
@Resource(name = "iTNotiUtil")
private ITNotiUtil iTNotiUtil;
/**
* 기반강화연수 과정 관리 목록 화면
*/
@ -570,6 +575,20 @@ public class FndthPrcsInfoMngController {
vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id
vEPrcsService.qnaUpdate(vEPrcsDetailVO);
//알림 교육문의등록
try {
iTNotiUtil.insertNotifyNew_60(
"50",
loginVO.getUniqId(),
VeConstants.NOTI_STATUS_92,
"",
vEPrcsDetailVO.getFrstRegisterId(),
"0",
"2"
);
}catch(Exception ex) {
ex.printStackTrace();
}
//세부과정 지우고 다시 생성
VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO();

View File

@ -68,7 +68,16 @@
AND edu_chasi_ord=#eduChasiOrd#
</select>
<select id="VEANotifyMngDAO.selectAplctList" parameterClass="notifyManageVO" resultClass="notifyManageVO">
/* VEANotifyMngDAO.selectAplctList */
SELECT user_id AS mngUserId
FROM ve_edu_aplct
WHERE prcs_ord=#prcsAplctPrdOrd#
</select>
<select id="VEANotifyMngDAO.findByMngId" parameterClass="notifyManageVO" resultClass="notifyManageVO">
/* VEANotifyMngDAO.findByMngId */
SELECT

View File

@ -165,7 +165,19 @@
LIMIT 1
</select>
<select id="VEANotifyDAO.findByUserIdFromVE_PRCS_APLCT_PRD" parameterClass="String" resultClass="notifyManageVO">
/* VEANotifyDAO.findByUserIdFromVE_PRCS_APLCT_PRD */
SELECT b.PRCS_NM AS prcsNm
, a.PRCS_APLCT_PRD_ORD AS prcsAplctPrdOrd
, b.PRCS_ORD AS prcsOrd
FROM ve_prcs_aplct_prd a
, ve_prcs b
WHERE a.PRCS_APLCT_PRD_ORD =#prcsAplctPrdOrd#
AND a.PRCS_ORD =b.PRCS_ORD
</select>
<select id="VEANotifyDAO.findByLctrDivCdFromVePrcsAplctPrd" parameterClass="String" resultClass="String">
/* VEANotifyDAO.findByLctrDivCdFromVePrcsAplctPrd */
SELECT

View File

@ -330,7 +330,8 @@
LCTR_YN,
PRVS_QS,
PHONE,
EMAIL
EMAIL,
RNDS_ORD
)
VALUES(
#eduAplctOrd#,
@ -354,7 +355,8 @@
#lctrYn#,
#prvsQs#,
#phone#,
#email#
#email#,
#rndsOrd#
)
WHEN MATCHED THEN
UPDATE
@ -404,6 +406,9 @@
<isNotEmpty property="email">
,EMAIL = #email#
</isNotEmpty>
<isNotEmpty property="rndsOrd">
,RNDS_ORD = #rndsOrd#
</isNotEmpty>
</insert>

View File

@ -295,7 +295,10 @@
JOIN LETTNGNRLMBER le ON
a.USER_ID = le.ESNTL_ID
LEFT JOIN VEA_SSPN_IDMT_TRGT vsit ON
(
a.USER_ID = vsit.USER_ID
AND a.rnds_ord=vsit.SSPN_IDTMT_TRGT_ORD
)
WHERE
1=1
<isNotEmpty property="prcsOrd">

View File

@ -468,7 +468,7 @@
</c:when>
<c:otherwise>
<tr>
<td colspan="4">강사 배치 정보가 없습니다.</td>
<td colspan="5">강사 배치 정보가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>

View File

@ -1,244 +1,246 @@
<!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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsMngDetail.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">
<script type="text/javascript">
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do'/>";
listForm.submit();
}
function updateQnaAnswerCn(){
$("#prvtMemoCn").val($("#hiddenMemo").val());
var data1 = new FormData(document.getElementById("detailForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngUpdateAjax.do",
data:data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장 되었습니다.");
// location.reload();
//답변 알림
insertNoty(
$("#prcsAplctPrdQnaOrd").val(),
'',
'[기소유예] 문의 답변이 등록되었습니다.',
'/web/ve/aplct/sspnIdtmt/eduFAQList.do',
$("#frstRegisterId").val(),
'60'
)
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function insertNoty(eduAplctOrd, eduChasiOrd, notifyCn, notifyPath, toUserId, lctrDivCd){
var notiForm = new FormData();
var notiFields = [
'eduAplctOrd',
'eduChasiOrd',
'notifyCn',
'notifyPath',
'toUserId',
'lctrDivCd'
]
notiFields.forEach(function(fieldName){
notiForm.append(fieldName, eval(fieldName));
});
$.ajax({
type:"POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/comm/insertNotifyForUserAjax.do",
data: notiForm,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
</head>
<body>
<form id="listForm" name="listForm" method="post">
</form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdQnaOrd" id="prcsAplctPrdQnaOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdQnaOrd}' />"/>
<input type="hidden" name="frstRegisterId" id="frstRegisterId" value="<c:out value='${info.frstRegisterId}' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육문의상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">교육문의상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육문의상세</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">질문자ID</th>
<td>
<c:out value='${info.qnaRegist}' />
</td>
</tr>
<tr>
<th scope="row">질문자 이름</th>
<td>
<c:out value='${info.mberNm}' />
</td>
</tr>
<tr>
<th scope="row">질문내용</th>
<td>
<c:out value='${info.qnaCn}' />
</td>
</tr>
<tr>
<th scope="row">답변상태</th>
<td>
<c:choose>
<c:when test="${empty info.qnaAnswerCn }">
미완료
</c:when>
<c:otherwise>
완료
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th scope="row">답변일시</th>
<td>
<c:choose>
<c:when test="${empty info.lastUpdtPnttm }">
-
</c:when>
<c:otherwise>
<c:out value='${info.lastUpdtPnttm }'/>
</c:otherwise>
</c:choose>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- 비공개 메보 정보 -->
<div class="tb_tit01">
<p>답변</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="qnaAnswerCn" id="qnaAnswerCn"><c:out value="${info.qnaAnswerCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateQnaAnswerCn(); return false;">답변 등록</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>
<!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="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsMngDetail.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">
<script type="text/javascript">
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do'/>";
listForm.submit();
}
function updateQnaAnswerCn(){
$("#prvtMemoCn").val($("#hiddenMemo").val());
var data1 = new FormData(document.getElementById("detailForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngUpdateAjax.do",
data:data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장 되었습니다.");
// location.reload();
//답변 알림
/* 공통 모듈로 이동함 2024-02-07
insertNoty(
$("#prcsAplctPrdQnaOrd").val(),
'',
'[기소유예] 문의 답변이 등록되었습니다.',
'/web/ve/aplct/sspnIdtmt/eduFAQList.do',
$("#frstRegisterId").val(),
'60'
)
*/
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
function insertNoty(eduAplctOrd, eduChasiOrd, notifyCn, notifyPath, toUserId, lctrDivCd){
var notiForm = new FormData();
var notiFields = [
'eduAplctOrd',
'eduChasiOrd',
'notifyCn',
'notifyPath',
'toUserId',
'lctrDivCd'
]
notiFields.forEach(function(fieldName){
notiForm.append(fieldName, eval(fieldName));
});
$.ajax({
type:"POST",
url: "${pageContext.request.contextPath}/kccadr/oprtn/comm/insertNotifyForUserAjax.do",
data: notiForm,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
</head>
<body>
<form id="listForm" name="listForm" method="post">
</form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdQnaOrd" id="prcsAplctPrdQnaOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdQnaOrd}' />"/>
<input type="hidden" name="frstRegisterId" id="frstRegisterId" value="<c:out value='${info.frstRegisterId}' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육문의상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">교육문의상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육문의상세</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">질문자ID</th>
<td>
<c:out value='${info.qnaRegist}' />
</td>
</tr>
<tr>
<th scope="row">질문자 이름</th>
<td>
<c:out value='${info.mberNm}' />
</td>
</tr>
<tr>
<th scope="row">질문내용</th>
<td>
<c:out value='${info.qnaCn}' />
</td>
</tr>
<tr>
<th scope="row">답변상태</th>
<td>
<c:choose>
<c:when test="${empty info.qnaAnswerCn }">
미완료
</c:when>
<c:otherwise>
완료
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th scope="row">답변일시</th>
<td>
<c:choose>
<c:when test="${empty info.lastUpdtPnttm }">
-
</c:when>
<c:otherwise>
<c:out value='${info.lastUpdtPnttm }'/>
</c:otherwise>
</c:choose>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- 비공개 메보 정보 -->
<div class="tb_tit01">
<p>답변</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="qnaAnswerCn" id="qnaAnswerCn"><c:out value="${info.qnaAnswerCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateQnaAnswerCn(); return false;">답변 등록</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -194,6 +194,59 @@
}
// 강의만족도제출요청
function fn_qustnrRequest(
//p_aplctStateCd,
p_prcsAplctPrdOrd
) {
var selectedEduAplctOrd = [];
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var eduAplctOrdValue = $(this).val();
selectedEduAplctOrd.push(eduAplctOrdValue);
});
console.log('selectedEduAplctOrd : ', selectedEduAplctOrd);
// 선택된 항목이 없으면 경고 메시지를 표시하고 함수를 종료
if (selectedEduAplctOrd.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
var dataToSend = {
"eduAplctOrdList": selectedEduAplctOrd,
//"aplctStateCd": p_aplctStateCd,
"prcsAplctPrdOrd": p_prcsAplctPrdOrd,
"lctrDivCd": '50'
};
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/updateAplctStateCdListAjax.do'/>";
// AJAX 호출을 통해 서버에 데이터 전송
$.ajax({
type:"POST",
url: url,
data: $.param(dataToSend, true), // 직렬화 , 컨트롤러에서 @ModelAttribute로 받을 수 있음
// contentType : 'application/json',
dataType:'json',
success:function(returnData){
if(returnData.result == "success"){
alert("변경 처리 되었습니다.");
window.location.reload();
}else{
alert("변경 중 오류가 발생하였습니다.");
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.error("AJAX Error:", textStatus, errorThrown);
console.error("Response:", jqXHR.responseText);
}
});
}
//설문조사 결과
function fncInstrCostInfo(eduId, userId) { //메뉴생성 화면 호출
var form = document.popupForm;
@ -890,12 +943,16 @@
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type04" onclick="fn_qustnrRequest('<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">강의만족도제출요청</button>
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<!-- <button type="button" class="btn_type08" onclick="chkSnd('email');return false;">email 발송</button> -->
<button type="button" class="btn_type04" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'; return false;">교육확정목록</button>
<%-- <button type="button" class="btn_type04" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'; return false;">교육확정목록</button> --%>
<button type="button" class="btn_type04" onclick="fn_statusChgList('20', '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">이수</button>
<button type="button" class="btn_type04" onclick="fn_statusChgList('10', '<c:out value="${info.prcsAplctPrdOrd }" />'); return false;">미이수</button>
</div>

View File

@ -87,6 +87,7 @@
, "innorixFileListVO": data
, "successMsg" : "제출 완료되었습니다."
, "fileType" : "LCTRPLAN"
, "lctrDivCd" : "50"
}
if(fn_innorixCmmAjax(sendData, url) == "OK")
{

View File

@ -128,7 +128,8 @@
</li>
<li>
<span>과정명</span>
<span>${list.prcsNm } (${list.prcsAplctPrdOrd })</span>
<span>${list.prcsNm }</span>
<%-- <span>${list.prcsNm } (${list.prcsAplctPrdOrd })</span> --%>
</li>
<li>
<span>교육기간</span>

View File

@ -141,7 +141,8 @@
</li>
<li>
<span>과정명</span>
<span>${list.prcsNm } (${list.prcsAplctPrdOrd })</span>
<%-- <span>${list.prcsNm } (${list.prcsAplctPrdOrd })</span> --%>
<span>${list.prcsNm }</span>
</li>
<li>
<span>교육기간</span>

View File

@ -87,6 +87,7 @@
, "innorixFileListVO": data
, "successMsg" : "제출 완료되었습니다."
, "fileType" : "LCTRPLAN"
, "lctrDivCd" : "60"
}
if(fn_innorixCmmAjax(sendData, url) == "OK")
{

View File

@ -128,7 +128,8 @@
</li>
<li>
<span>과정명</span>
<span>${list.prcsNm } (${list.prcsAplctPrdOrd })</span>
<%-- <span>${list.prcsNm } (${list.prcsAplctPrdOrd })</span> --%>
<span>${list.prcsNm }</span>
</li>
<li>
<span>교육기간</span>

View File

@ -141,7 +141,8 @@
</li>
<li>
<span>과정명</span>
<span>${list.prcsNm } (${list.prcsAplctPrdOrd })</span>
<%-- <span>${list.prcsNm } (${list.prcsAplctPrdOrd })</span> --%>
<span>${list.prcsNm }</span>
</li>
<li>
<span>교육일자</span>