관리자 변경 중

This commit is contained in:
leejunho 2025-10-20 12:51:57 +09:00
parent 16a432b15e
commit be76b2e446
11 changed files with 719 additions and 528 deletions

View File

@ -36,6 +36,8 @@ import org.springmodules.validation.commons.DefaultBeanValidator;
import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.property.EgovPropertyService; import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.fdl.string.EgovStringUtil;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO; import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.EgovMessageSource; import kcc.com.cmm.EgovMessageSource;
@ -52,6 +54,7 @@ import kcc.com.uss.ion.pwm.service.PopupManageVO;
import kcc.com.uss.ion.pwm.service.PopupzoneVO; import kcc.com.uss.ion.pwm.service.PopupzoneVO;
import kcc.com.uss.ion.pwm.service.SocialVO; import kcc.com.uss.ion.pwm.service.SocialVO;
import kcc.let.sym.site.service.EgovSiteManagerService; import kcc.let.sym.site.service.EgovSiteManagerService;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
/** /**
* 개요 * 개요
@ -115,6 +118,10 @@ public class EgovPopupManageController {
@Resource(name = "EgovFileMngService") @Resource(name = "EgovFileMngService")
private EgovFileMngService fileService; private EgovFileMngService fileService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
/** /**
* 팝업창관리 목록을 조회한다. * 팝업창관리 목록을 조회한다.
* @param popupManageVO * @param popupManageVO
@ -554,7 +561,11 @@ public class EgovPopupManageController {
popupzoneVo.setSearchSortCnd("SORT"); popupzoneVo.setSearchSortCnd("SORT");
popupzoneVo.setSearchSortOrd("asc"); popupzoneVo.setSearchSortOrd("asc");
} }
List<?> popupzoneList = egovPopupManageService.selectPopupzoneList(popupzoneVo); List<EgovMap> popupzoneList = (List<EgovMap>)egovPopupManageService.selectPopupzoneList(popupzoneVo);
popupzoneList.forEach(t -> {
egovCryptoUtil.decryptEgovMap(t, "registerId");
});
model.addAttribute("popupzoneList", popupzoneList); model.addAttribute("popupzoneList", popupzoneList);
/* 타겟 코드 */ /* 타겟 코드 */
@ -584,6 +595,7 @@ public class EgovPopupManageController {
if("Modify".equals((String)commandMap.get("pageType"))){ //수정 if("Modify".equals((String)commandMap.get("pageType"))){ //수정
String pozId = (String)commandMap.get("selectedId"); String pozId = (String)commandMap.get("selectedId");
popupzoneVO = egovPopupManageService.selectPopupzoneVO(pozId); popupzoneVO = egovPopupManageService.selectPopupzoneVO(pozId);
popupzoneVO.setRegisterId(egovCryptoUtil.decrypt(popupzoneVO.getRegisterId()));
if(popupzoneVO != null){ if(popupzoneVO != null){
popupzoneVO.setBeSort(popupzoneVO.getSort()); popupzoneVO.setBeSort(popupzoneVO.getSort());
FileVO fileVO = new FileVO(); FileVO fileVO = new FileVO();
@ -781,7 +793,11 @@ public class EgovPopupManageController {
if(null != loginVO && !"super".equals(loginVO.getSiteId())){ //각각의 사이트 if(null != loginVO && !"super".equals(loginVO.getSiteId())){ //각각의 사이트
mainzoneVO.setSiteId(loginVO.getSiteId()); mainzoneVO.setSiteId(loginVO.getSiteId());
} }
List<?> mainzoneList = egovPopupManageService.selectMainzoneList(mainzoneVO); List<EgovMap> mainzoneList = (List<EgovMap>)egovPopupManageService.selectMainzoneList(mainzoneVO);
mainzoneList.forEach(t -> {
egovCryptoUtil.decryptEgovMap(t, "registerId");
});
model.addAttribute("mainzoneList", mainzoneList); model.addAttribute("mainzoneList", mainzoneList);
int totCnt = egovPopupManageService.selectMainzoneCount(mainzoneVO); int totCnt = egovPopupManageService.selectMainzoneCount(mainzoneVO);
@ -854,6 +870,7 @@ public class EgovPopupManageController {
if("Modify".equals((String)commandMap.get("pageType"))){ //수정 if("Modify".equals((String)commandMap.get("pageType"))){ //수정
String mazId = (String)commandMap.get("selectedId"); String mazId = (String)commandMap.get("selectedId");
mainzoneVO = egovPopupManageService.selectMainzoneVO(mazId); mainzoneVO = egovPopupManageService.selectMainzoneVO(mazId);
mainzoneVO.setRegisterId(egovCryptoUtil.decrypt(mainzoneVO.getRegisterId()));
if(mainzoneVO != null){ if(mainzoneVO != null){
mainzoneVO.setBeSort(mainzoneVO.getSort()); mainzoneVO.setBeSort(mainzoneVO.getSort());

View File

@ -10,6 +10,7 @@ import java.lang.management.ThreadMXBean;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
@ -39,6 +40,7 @@ import egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultVO; import kcc.com.cmm.ComDefaultVO;
import kcc.com.cmm.LoginVO; import kcc.com.cmm.LoginVO;
import kcc.com.cmm.util.IpUtil;
import kcc.com.cmm.util.RedirectUrlMaker; import kcc.com.cmm.util.RedirectUrlMaker;
import kcc.com.uss.ion.bnr.service.BannerVO; import kcc.com.uss.ion.bnr.service.BannerVO;
import kcc.com.uss.ion.bnr.service.EgovBannerService; import kcc.com.uss.ion.bnr.service.EgovBannerService;
@ -64,6 +66,12 @@ import kcc.let.uss.notify.service.NotifyManageService;
import kcc.let.uss.notify.service.NotifyManageVO; import kcc.let.uss.notify.service.NotifyManageVO;
import kcc.let.uss.olp.qmc.service.EgovQustnrManageService; import kcc.let.uss.olp.qmc.service.EgovQustnrManageService;
import kcc.let.uss.umt.service.EgovUserManageService; import kcc.let.uss.umt.service.EgovUserManageService;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.cmm.VeConstants;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngService;
import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
/** /**
* 템플릿 메인 페이지 컨트롤러 클래스(Sample 소스) * 템플릿 메인 페이지 컨트롤러 클래스(Sample 소스)
@ -138,6 +146,17 @@ public class EgovMainController {
@Resource(name = "NotifyManageService") @Resource(name = "NotifyManageService")
private NotifyManageService notifyManageService; private NotifyManageService notifyManageService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
//과정 관리
@Resource(name = "cndtnTrgtInfoMngService")
private CndtnTrgtMngService cndtnTrgtInfoMngService;
//과정 관리 - 시정명령
@Resource(name = "cmdTrgtInfoMngService")
private CmdTrgtMngService cmdTrgtInfoMngService;
/** /**
@ -222,28 +241,83 @@ public class EgovMainController {
, ModelMap model , ModelMap model
, HttpSession session) throws Exception{ , HttpSession session) throws Exception{
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
/*
* notify..?
*/
/** pageing */ /** pageing */
PaginationInfo paginationInfo = new PaginationInfo(); PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(notifyManageVO.getPageIndex()); paginationInfo.setCurrentPageNo(notifyManageVO.getPageIndex());
paginationInfo.setRecordCountPerPage(notifyManageVO.getPageUnit()); paginationInfo.setRecordCountPerPage(notifyManageVO.getPageUnit());
paginationInfo.setPageSize(notifyManageVO.getPageSize()); paginationInfo.setPageSize(notifyManageVO.getPageSize());
notifyManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); notifyManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
notifyManageVO.setLastIndex(paginationInfo.getLastRecordIndex()); notifyManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
notifyManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); notifyManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
notifyManageVO.setToUserId(loginVO.getId()); notifyManageVO.setToUserId(loginVO.getId());
List<NotifyManageVO> resultList = notifyManageService.selectPagingList(notifyManageVO); List<NotifyManageVO> notifyresultList = notifyManageService.selectPagingList(notifyManageVO);
paginationInfo.setTotalRecordCount(resultList.size() > 0 ? resultList.get(0).getTotCnt() : 0); paginationInfo.setTotalRecordCount(notifyresultList.size() > 0 ? notifyresultList.get(0).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo); model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("list", resultList); model.addAttribute("list", notifyresultList);
/*
* (조건부기소유예)
* 대상자 정보
*/
Map<String, Object> cndtnTrgtInfoList = this.cndtnTrgtInfo();
//전체건수
model.addAttribute("cndtnTrgtInfoAllCnt", cndtnTrgtInfoList.get("cndtnTrgtInfoAllCnt"));
//완료건수
model.addAttribute("cndtnTrgtInfoCompleteCnt", cndtnTrgtInfoList.get("cndtnTrgtInfoCompleteCnt"));
//취소건수
model.addAttribute("cndtnTrgtInfoCancelCnt", cndtnTrgtInfoList.get("cndtnTrgtInfoCancelCnt"));
/*
* (시정명령)
* 대상자 정보
*/
Map<String, Object> cmdTrgtInfoList = this.cmdTrgtInfo();
//전체건수
model.addAttribute("cmdtnTrgtAllCnt", cmdTrgtInfoList.get("cmdtnTrgtAllCnt"));
//완료건수
model.addAttribute("cmdtnTrgtCompleteCnt", cmdTrgtInfoList.get("cmdtnTrgtCompleteCnt"));
//취소건수
model.addAttribute("cmdtnTrgtCancelCnt", cmdTrgtInfoList.get("cmdtnTrgtCancelCnt"));
/*
* (조건부기소유예)
* 과정신청기간 현황
*/
/*
* (시정명령)
* 과정신청기간 현황
*/
/*
* (예방교육)
* 과정신청기간 현황
*/
/*
* (조건부기소유예)
* 확정과정 현황
*/
/*
* (시정명령)
* 확정과정 현황
*/
/*
* (예방교육)
* 확정과정 현황
*/
return "main/EgovMainList"; return "main/EgovMainList";
/* /*
@ -571,6 +645,10 @@ public class EgovMainController {
List<MenuManageJTreeVO> quickList = menuCreateManageService.selectQuickListIncTop(menuManageJTreeVO) ; List<MenuManageJTreeVO> quickList = menuCreateManageService.selectQuickListIncTop(menuManageJTreeVO) ;
model.addAttribute("quickList", quickList); model.addAttribute("quickList", quickList);
} }
user.setName(egovCryptoUtil.decrypt(user.getName()));
model.addAttribute("userInfo", user);
model.addAttribute("userIp", IpUtil.getClientIP(req));
}catch(Exception ex) { }catch(Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
@ -1000,5 +1078,56 @@ public class EgovMainController {
System.out.println( "Calculation: " + cal ); System.out.println( "Calculation: " + cal );
System.out.println( "CPU Usage: " + usage ); System.out.println( "CPU Usage: " + usage );
} }
private Map<String, Object> cndtnTrgtInfo(){
CndtnTrgtMngVO cndtnTrgtInfoMngVO = new CndtnTrgtMngVO();
cndtnTrgtInfoMngVO.setSearchQuery("");
cndtnTrgtInfoMngVO.setRecordCountPerPage(2147483647);
cndtnTrgtInfoMngVO.setFirstIndex(0);
List<CndtnTrgtMngVO> cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
//전체건수
Integer allCnt = cndtnTrgtInfoMngVOList != null ? cndtnTrgtInfoMngVOList.size() : 0;
//완료건수
Long completeCnt = cndtnTrgtInfoMngVOList.stream().filter(t -> VeConstants.REQ_STATE_CD_COMPLETE.equals(t.getReqStateCd())).count();
//취소건수
Long cancelCnt = cndtnTrgtInfoMngVOList.stream().filter(t -> VeConstants.REQ_STATE_CD_EDUCANCEL.equals(t.getReqStateCd())).count();
Map<String, Object> returnMap = new HashMap<String, Object>();
returnMap.put("cndtnTrgtInfoAllCnt", allCnt);
returnMap.put("cndtnTrgtInfoCompleteCnt", completeCnt);
returnMap.put("cndtnTrgtInfoCancelCnt", cancelCnt);
return returnMap;
}
private Map<String, Object> cmdTrgtInfo(){
CmdTrgtMngVO cmdtnTrgtMngVO = new CmdTrgtMngVO();
cmdtnTrgtMngVO.setSearchQuery("");
cmdtnTrgtMngVO.setRecordCountPerPage(2147483647);
cmdtnTrgtMngVO.setFirstIndex(0);
// List<CndtnTrgtMngVO> cndtnTrgtInfoMngVOList = cndtnTrgtInfoMngService.selectPagingList(cndtnTrgtInfoMngVO);
List<CmdTrgtMngVO> cmdtnTrgtMngVOList = cmdTrgtInfoMngService.selectPagingList(cmdtnTrgtMngVO);;
//전체건수
Integer allCnt = cmdtnTrgtMngVOList != null ? cmdtnTrgtMngVOList.size() : 0;
//완료건수
Long completeCnt = cmdtnTrgtMngVOList.stream().filter(t -> VeConstants.REQ_STATE_CD_COMPLETE.equals(t.getReqStateCd())).count();
//취소건수
Long cancelCnt = cmdtnTrgtMngVOList.stream().filter(t -> VeConstants.REQ_STATE_CD_EDUCANCEL.equals(t.getReqStateCd())).count();
Map<String, Object> returnMap = new HashMap<String, Object>();
returnMap.put("cmdtnTrgtAllCnt", allCnt);
returnMap.put("cmdtnTrgtCompleteCnt", completeCnt);
returnMap.put("cmdtnTrgtCancelCnt", cancelCnt);
return returnMap;
}
} }

View File

@ -62,243 +62,243 @@ public class AnotaionSchedule {
@Resource(name = "egovCryptoUtil") @Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil; EgovCryptoUtil egovCryptoUtil;
//@RequestMapping("/sym/site/AdminLogMngTest.do") // //@RequestMapping("/sym/site/AdminLogMngTest.do")
//@Scheduled(fixedDelay = 1000) // //@Scheduled(fixedDelay = 1000)
// @Scheduled(cron="30 0 0 * * ?") //// @Scheduled(cron="30 0 0 * * ?")
public void SchDeleteMember() throws Exception { //설정에 따른 회원삭제 / 관리자로그 설정삭제 // public void SchDeleteMember() throws Exception { //설정에 따른 회원삭제 / 관리자로그 설정삭제
try { // try {
SiteManagerVO siteManagerVO =new SiteManagerVO(); // SiteManagerVO siteManagerVO =new SiteManagerVO();
/** paging */ // /** paging */
PaginationInfo paginationInfo = new PaginationInfo(); // PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(siteManagerVO.getPageIndex()); // paginationInfo.setCurrentPageNo(siteManagerVO.getPageIndex());
paginationInfo.setRecordCountPerPage(siteManagerVO.getPageUnit()); // paginationInfo.setRecordCountPerPage(siteManagerVO.getPageUnit());
paginationInfo.setPageSize(siteManagerVO.getPageSize()); // paginationInfo.setPageSize(siteManagerVO.getPageSize());
siteManagerVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); // siteManagerVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
siteManagerVO.setLastIndex(paginationInfo.getLastRecordIndex()); // siteManagerVO.setLastIndex(paginationInfo.getLastRecordIndex());
siteManagerVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); // siteManagerVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
List<SiteManagerVO> siteManagerList= egovSiteManagerService.selectSiteManagerList(siteManagerVO) ; // List<SiteManagerVO> siteManagerList= egovSiteManagerService.selectSiteManagerList(siteManagerVO) ;
for(SiteManagerVO tempSiteManagerVO : siteManagerList){ // for(SiteManagerVO tempSiteManagerVO : siteManagerList){
if(!"9".equals(tempSiteManagerVO.getIdWithdrawCd())) { //탈퇴회원 영구보관이 아니면 // if(!"9".equals(tempSiteManagerVO.getIdWithdrawCd())) { //탈퇴회원 영구보관이 아니면
userManageService.deleteMemberSchedule(tempSiteManagerVO); // userManageService.deleteMemberSchedule(tempSiteManagerVO);
} // }
//
if(null!=tempSiteManagerVO.getAdminlogKpCd() && !"N".equals(tempSiteManagerVO.getAdminlogKpCd())) { //관리자로그 보관설정 영구보관이 아니면 // if(null!=tempSiteManagerVO.getAdminlogKpCd() && !"N".equals(tempSiteManagerVO.getAdminlogKpCd())) { //관리자로그 보관설정 영구보관이 아니면
switch (tempSiteManagerVO.getAdminlogKpCd()) {// M:1개월,3:3개월,6:6개월보관,Y:1년, N:영구보관 // switch (tempSiteManagerVO.getAdminlogKpCd()) {// M:1개월,3:3개월,6:6개월보관,Y:1년, N:영구보관
case "M": // case "M":
tempSiteManagerVO.setAdminlogKpCd("1"); // tempSiteManagerVO.setAdminlogKpCd("1");
case "Y": // case "Y":
tempSiteManagerVO.setAdminlogKpCd("12"); // tempSiteManagerVO.setAdminlogKpCd("12");
default: // default:
} // }
userManageService.deleteAdminLogSchedule(tempSiteManagerVO); // userManageService.deleteAdminLogSchedule(tempSiteManagerVO);
} // }
} // }
}catch(Exception e) { // }catch(Exception e) {
System.out.println("Exception Error"); // System.out.println("Exception Error");
} // }
} // }
//
/* // /*
* 매일 새벽1시에 청소년 찾교 신청자 개인 정보 초기화 (담당자, 휴대폰, 전화 , 이메일) // * 매일 새벽1시에 청소년 찾교 신청자 개인 정보 초기화 (담당자, 휴대폰, 전화 , 이메일)
* */ // * */
// Schdule Lock (2분동안) // // Schdule Lock (2분동안)
@Scheduled(cron = "0 0 1 * * ?") // @Scheduled(cron = "0 0 1 * * ?")
//@Scheduled(cron = "0 * * * * ?") // //@Scheduled(cron = "0 * * * * ?")
public void deletePrivacy4tngr() throws Exception { // public void deletePrivacy4tngr() throws Exception {
//
// do something... // // do something...
try { // try {
System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>"); // System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>");
//
//문자 환불, 팩스 환불 // //문자 환불, 팩스 환불
deletePrivacy("10"); // deletePrivacy("10");
deletePrivacy("TWO"); // deletePrivacy("TWO");
/* // /*
// 문자 환불 // // 문자 환불
schdlrManageService.msgFailPayBack(); // schdlrManageService.msgFailPayBack();
* */ // * */
//
//
// do something... // // do something...
//
}catch(Exception ex) { // }catch(Exception ex) {
ex.printStackTrace(); // ex.printStackTrace();
} // }
} // }
//
/** // /**
* @methodName : oneDayBeforeTrainingStartDate // * @methodName : oneDayBeforeTrainingStartDate
* @author : 이호영 // * @author : 이호영
* @date : 2023.12.01 // * @date : 2023.12.01
* @description : // * @description :
* @throws Exception // * @throws Exception
*/ // */
@Scheduled(cron = "0 21 18 * * ?") // @Scheduled(cron = "0 21 18 * * ?")
// @Scheduled(cron = "0 0 9 * * ?") //// @Scheduled(cron = "0 0 9 * * ?")
public void oneDayBeforeTrainingStartDate() throws Exception { // public void oneDayBeforeTrainingStartDate() throws Exception {
//
// do something... // // do something...
try { // try {
System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>"); // System.out.println("=============AnotaionSchedule=====deletePrivacy4tngr =============>");
//
//
//권한에 따른 로그인 정보 가져오기 // //권한에 따른 로그인 정보 가져오기
//
//메일 발송 시작 // //메일 발송 시작
//================================================================ // //================================================================
//메일 발송 VeSendMail 파라미터 정리 // //메일 발송 VeSendMail 파라미터 정리
//1. sndFlag = 메뉴 구분 // //1. sndFlag = 메뉴 구분
// C -> 찾교청소년 // // C -> 찾교청소년
// Z -> 찾교청소년-교육확정알림(교육배치목록-확정된 강의 알림 버튼) : 청소년>교육확정 메일본문 수정 메뉴에서 관리 // // Z -> 찾교청소년-교육확정알림(교육배치목록-확정된 강의 알림 버튼) : 청소년>교육확정 메일본문 수정 메뉴에서 관리
// S -> 찾교성인 // // S -> 찾교성인
// G -> 체험교실 // // G -> 체험교실
// W -> 교육콘텐츠 // // W -> 교육콘텐츠
// A -> 기반강화 // // A -> 기반강화
// B -> 기소유예 // // B -> 기소유예
//2. sndTo = 수신자 // //2. sndTo = 수신자
//3. vEEduAplctVO = eduAplctOrd(pk) // //3. vEEduAplctVO = eduAplctOrd(pk)
// sndHstryOrd(pk) // // sndHstryOrd(pk)
// sndCd(10 - sms, 20 - email) // // sndCd(10 - sms, 20 - email)
// sndId(발송자) // // sndId(발송자)
// sndCn(발송내용) // // sndCn(발송내용)
//================================================================ // //================================================================
//
// 기반 테스트 // // 기반 테스트
// this.sendLctrDivCd("50", "2", "A"); //// this.sendLctrDivCd("50", "2", "A");
// 기반강화 // // 기반강화
// this.sendLctrDivCd50("50", "1", "A"); // LCTR_DIV_CD 50, A 기반강화, 1 하루후 //// this.sendLctrDivCd50("50", "1", "A"); // LCTR_DIV_CD 50, A 기반강화, 1 하루후
// 기소유예 // // 기소유예
// this.sendLctrDivCd("60", "2", "B"); // LCTR_DIV_CD 60, A 기반강화, 1 하루후 //// this.sendLctrDivCd("60", "2", "B"); // LCTR_DIV_CD 60, A 기반강화, 1 하루후
//
//
/* // /*
//
VeSendSMS sendSMS = new VeSendSMS(); // VeSendSMS sendSMS = new VeSendSMS();
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn()); // Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn());
//
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
//
//문자 발송 성공 로그 // //문자 발송 성공 로그
if("1".equals(resultMap.get("result_code"))){ // if("1".equals(resultMap.get("result_code"))){
String snd_ord = sndGnrService.getNextStringId(); // String snd_ord = sndGnrService.getNextStringId();
vEEduAplctVO.setSndHstryOrd(snd_ord); // vEEduAplctVO.setSndHstryOrd(snd_ord);
vEEduAplctVO.setSndId(loginVO.getUniqId()); // vEEduAplctVO.setSndId(loginVO.getUniqId());
vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone()); // vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone());
vEEduAplctSndHstryService.insert(vEEduAplctVO); // vEEduAplctSndHstryService.insert(vEEduAplctVO);
}else { // }else {
result = "fail"; // result = "fail";
message = resultMap.get("message").toString(); // message = resultMap.get("message").toString();
} // }
*/ // */
}catch(Exception ex) { // }catch(Exception ex) {
ex.printStackTrace(); // ex.printStackTrace();
} // }
} // }
//
private void sendLctrDivCd(String lctrDivCd, String diffDay, String sndFlag) throws Exception { // private void sendLctrDivCd(String lctrDivCd, String diffDay, String sndFlag) throws Exception {
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); // VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
vEPrcsDetailVO.setLctrDivCd(lctrDivCd); // vEPrcsDetailVO.setLctrDivCd(lctrDivCd);
vEPrcsDetailVO.setDiffDay(diffDay); // vEPrcsDetailVO.setDiffDay(diffDay);
//
if("10".equals(lctrDivCd)) { //청소년 // if("10".equals(lctrDivCd)) { //청소년
vEPrcsDetailVO.setSndFlag("C"); // vEPrcsDetailVO.setSndFlag("C");
}else if("20".equals(lctrDivCd)) { //성인 // }else if("20".equals(lctrDivCd)) { //성인
vEPrcsDetailVO.setSndFlag("S"); // vEPrcsDetailVO.setSndFlag("S");
}else if("30".equals(lctrDivCd)) { //체험교실 // }else if("30".equals(lctrDivCd)) { //체험교실
vEPrcsDetailVO.setSndFlag("G"); // vEPrcsDetailVO.setSndFlag("G");
}else if("40".equals(lctrDivCd)) { //기반강화 // }else if("40".equals(lctrDivCd)) { //기반강화
vEPrcsDetailVO.setSndFlag("A"); // vEPrcsDetailVO.setSndFlag("A");
}else { //기소유예 // }else { //기소유예
vEPrcsDetailVO.setSndFlag("B"); // vEPrcsDetailVO.setSndFlag("B");
} // }
//
List<VEPrcsDetailVO> VEEduAplctVOList = vEPrcsAplctPrdService.selectOneDayBeforeTrainingStartDate(vEPrcsDetailVO); // List<VEPrcsDetailVO> VEEduAplctVOList = vEPrcsAplctPrdService.selectOneDayBeforeTrainingStartDate(vEPrcsDetailVO);
//
for(VEPrcsDetailVO vo : VEEduAplctVOList) { // for(VEPrcsDetailVO vo : VEEduAplctVOList) {
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); // VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
vEEduAplctVO.setEduAplctOrd(vo.getEduAplctOrd()); // vEEduAplctVO.setEduAplctOrd(vo.getEduAplctOrd());
vEEduAplctVO.setEmail(vo.getEmail()); // vEEduAplctVO.setEmail(vo.getEmail());
vEEduAplctVO.setSndFlag(sndFlag); // vEEduAplctVO.setSndFlag(sndFlag);
//
vEEduAplctVO.setSndCn("안녕하세요 \n"+egovCryptoUtil.decrypt(vo.getMberNm())+"님이 신청해주신 \n" // vEEduAplctVO.setSndCn("안녕하세요 \n"+egovCryptoUtil.decrypt(vo.getMberNm())+"님이 신청해주신 \n"
+ vo.getPrcsNm()+"교육이 "+vo.getEduStrtPnttm()+"날 시작합니다."); // + vo.getPrcsNm()+"교육이 "+vo.getEduStrtPnttm()+"날 시작합니다.");
//
System.out.println(" vEEduAplctVO.getSndCn() :: "+vEEduAplctVO.getSndCn()); // System.out.println(" vEEduAplctVO.getSndCn() :: "+vEEduAplctVO.getSndCn());
this.sendMailModule(vEEduAplctVO); // this.sendMailModule(vEEduAplctVO);
this.sendSmsModule(vEEduAplctVO); // this.sendSmsModule(vEEduAplctVO);
//
} // }
} // }
//
private void sendSmsModule(VEEduAplctVO vEEduAplctVO) throws Exception { // private void sendSmsModule(VEEduAplctVO vEEduAplctVO) throws Exception {
VeSendSMS sendSMS = new VeSendSMS(); // VeSendSMS sendSMS = new VeSendSMS();
// String phone = vEEduAplctVO.getClphone(); //// String phone = vEEduAplctVO.getClphone();
// 테스트 // // 테스트
String phone = "01083584250"; // String phone = "01083584250";
//
Map<String, Object> resultMap = sendSMS.VeSendSMS(phone, vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag()); // Map<String, Object> resultMap = sendSMS.VeSendSMS(phone, vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
//
//
//문자 발송 성공 로그 // //문자 발송 성공 로그
if("1".equals(resultMap.get("result_code"))){ // if("1".equals(resultMap.get("result_code"))){
String snd_ord = sndGnrService.getNextStringId(); // String snd_ord = sndGnrService.getNextStringId();
vEEduAplctVO.setSndHstryOrd(snd_ord); // vEEduAplctVO.setSndHstryOrd(snd_ord);
vEEduAplctVO.setSndId(""); // vEEduAplctVO.setSndId("");
vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone()); // vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone());
vEEduAplctSndHstryService.insert(vEEduAplctVO); // vEEduAplctSndHstryService.insert(vEEduAplctVO);
}else { // }else {
} // }
//
} // }
//
private void sendMailModule(VEEduAplctVO vEEduAplctVO) { // private void sendMailModule(VEEduAplctVO vEEduAplctVO) {
VeSendMail sendMail = new VeSendMail(); // VeSendMail sendMail = new VeSendMail();
if("".equals(vEEduAplctVO.getSndFlag())) { // if("".equals(vEEduAplctVO.getSndFlag())) {
vEEduAplctVO.setSndFlag("test"); // vEEduAplctVO.setSndFlag("test");
} // }
if("".equals(vEEduAplctVO.getEmail())) { // if("".equals(vEEduAplctVO.getEmail())) {
vEEduAplctVO.setEmail("tolag3@gmail.com"); // vEEduAplctVO.setEmail("tolag3@gmail.com");
} // }
// 테스트 // // 테스트
// 테스트 // // 테스트
// 테스트 // // 테스트
vEEduAplctVO.setEmail("hehihoho3@gmail.com"); // vEEduAplctVO.setEmail("hehihoho3@gmail.com");
//
try { // try {
//
// String message = "정상적으로 발송되었습니다."; // // String message = "정상적으로 발송되었습니다.";
String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag() // 기반강화 50 , 기소유예 60 // String result = sendMail.VeSendMail(vEEduAplctVO.getSndFlag() // 기반강화 50 , 기소유예 60
, vEEduAplctVO.getEmail() // , vEEduAplctVO.getEmail()
, vEEduAplctVO // , vEEduAplctVO
); // );
//
if("success".equals(result)) { // if("success".equals(result)) {
//메일 발송 로그 // //메일 발송 로그
vEEduAplctVO.setSndHstryOrd(sndGnrService.getNextStringId()); // vEEduAplctVO.setSndHstryOrd(sndGnrService.getNextStringId());
//
vEEduAplctVO.setSndId(""); // vEEduAplctVO.setSndId("");
vEEduAplctVO.setTrgt(vEEduAplctVO.getEmail()); // vEEduAplctVO.setTrgt(vEEduAplctVO.getEmail());
vEEduAplctSndHstryService.insert(vEEduAplctVO); // vEEduAplctSndHstryService.insert(vEEduAplctVO);
}else { // }else {
// message = "발송 실패하였습니다."; // // message = "발송 실패하였습니다.";
} // }
//
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
// TODO: handle exception // // TODO: handle exception
} // }
} // }
//
//
//////////////////////////////////////////////// // ////////////////////////////////////////////////
//개인 정보 삭제 // //개인 정보 삭제
//////////////////////////////////////////////// // ////////////////////////////////////////////////
private void deletePrivacy(String p_type) throws Exception { // private void deletePrivacy(String p_type) throws Exception {
//개인 정보 삭제 - ve_edu_aplct // //개인 정보 삭제 - ve_edu_aplct
System.out.println("==== deletePrivacy ===="+p_type); // System.out.println("==== deletePrivacy ===="+p_type);
VEEduAplctVO paramVO = new VEEduAplctVO(); // VEEduAplctVO paramVO = new VEEduAplctVO();
paramVO.setLctrDivCd(p_type); // paramVO.setLctrDivCd(p_type);
vEEduAplctService.privacyUpdate(paramVO); // vEEduAplctService.privacyUpdate(paramVO);
//
} // }
} }

View File

@ -211,7 +211,7 @@ public class EgovLoginController {
* @exception Exception * @exception Exception
*/ */
@RequestMapping(value = "/uat/uia/EgovLoginUsr.do") @RequestMapping(value = "/uat/uia/EgovLoginUsr.do")
public String adminLogin(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { public String adminLogin(HttpServletRequest request, HttpServletResponse response, ModelMap model, RedirectAttributes rttr) throws Exception {
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
System.out.println("==start="); System.out.println("==start=");
@ -229,21 +229,23 @@ public class EgovLoginController {
LOGGER.debug("userIpCheck: [" + userIpCheck + "]"); LOGGER.debug("userIpCheck: [" + userIpCheck + "]");
loginPolicyGroupList = egovLoginPolicyService.selectLoginGroupPolicyAllIP(loginPolicyVOCheck); loginPolicyGroupList = egovLoginPolicyService.selectLoginGroupPolicyAllIP(loginPolicyVOCheck);
// boolean ipCheck = false; boolean ipCheck = false;
// if (loginPolicyGroupList != null) { if (loginPolicyGroupList != null) {
// for (LoginPolicyVO tempPolicyVO : loginPolicyGroupList) { for (LoginPolicyVO tempPolicyVO : loginPolicyGroupList) {
//// if(userIpCheck.equals(tempPolicyVO.getIpInfo())){ // if(userIpCheck.equals(tempPolicyVO.getIpInfo())){
// if (userIpCheck.contains(tempPolicyVO.getIpInfo())) { if (userIpCheck.contains(tempPolicyVO.getIpInfo())) {
// ipCheck = true; ipCheck = true;
// break; break;
// } }
// } }
// } }
// 1. Spring Security 사용자권한 처리 // 1. Spring Security 사용자권한 처리
// if (!ipCheck) { if (!ipCheck) {
// return "/cmm/error/ipFailure"; rttr.addFlashAttribute("message", "접근이 불가능한 아이피 입니다.");
// } return "redirect:/web/main/mainPage.do";
}
if (!isAuthenticated) { if (!isAuthenticated) {
// model.addAttribute("message", // model.addAttribute("message",
// egovMessageSource.getMessage("fail.common.login")); // egovMessageSource.getMessage("fail.common.login"));

View File

@ -788,4 +788,10 @@ public class EgovCryptoUtil {
return vEAStngVOOList; return vEAStngVOOList;
} }
public EgovMap decryptEgovMap(EgovMap map, String keyNm) {
String encStr = map.get(keyNm).toString();
map.put(keyNm, this.decrypt(encStr));
return map;
}
} }

View File

@ -199,5 +199,18 @@ public class VeConstants {
public static final String NOTI_STATUS_97 = "97"; // 서류요청 public static final String NOTI_STATUS_97 = "97"; // 서류요청
public static final String NOTI_STATUS_98 = "98"; // 서류제출 public static final String NOTI_STATUS_98 = "98"; // 서류제출
/*
* VEA005 대상자 정보 : 의뢰상태
*/
/**
*
*/
public static final String REQ_STATE_CD_COMPLETE = "30";
public static final String REQ_STATE_CD_EDUASG = "20";
public static final String REQ_STATE_CD_EDUCANCEL = "40";
public static final String REQ_STATE_CD_REQ = "15";
public static final String REQ_STATE_CD_NOTCOMPLETE = "35";
public static final String REQ_STATE_CD_EDUWAIT = "10";
} }

View File

@ -20,7 +20,7 @@
<result property="tempSortNum" column="tempSortNum" columnIndex="10"/> <result property="tempSortNum" column="tempSortNum" columnIndex="10"/>
</resultMap> </resultMap>
<select id="selectAuthorRoleList" parameterClass="authorRoleManageVO" resultMap="authorRole"> <select id="authorRoleManageDAO.selectAuthorRoleList" parameterClass="authorRoleManageVO" resultMap="authorRole">
SELECT A.ROLE_CODE, SELECT A.ROLE_CODE,
A.ROLE_NM, A.ROLE_NM,
A.ROLE_PTTRN, A.ROLE_PTTRN,
@ -57,7 +57,7 @@
</select> </select>
<select id="selectAuthorRoleListTotCnt" parameterClass="authorRoleManageVO" resultClass="int"> <select id="authorRoleManageDAO.selectAuthorRoleListTotCnt" parameterClass="authorRoleManageVO" resultClass="int">
SELECT COUNT(*) totcnt SELECT COUNT(*) totcnt
FROM ( FROM (
SELECT * FROM LETTNROLEINFO WHERE 1=1 SELECT * FROM LETTNROLEINFO WHERE 1=1
@ -73,7 +73,7 @@
ON A.ROLE_CODE = B.ROLE_CODE ON A.ROLE_CODE = B.ROLE_CODE
</select> </select>
<insert id="insertAuthorRole" parameterClass="authorRoleManage"> <insert id="authorRoleManageDAO.insertAuthorRole" parameterClass="authorRoleManage">
<![CDATA[ <![CDATA[
INSERT INTO LETTNAUTHORROLERELATE INSERT INTO LETTNAUTHORROLERELATE
( AUTHOR_CODE ( AUTHOR_CODE
@ -87,7 +87,7 @@
]]> ]]>
</insert> </insert>
<delete id="deleteAuthorRole"> <delete id="authorRoleManageDAO.deleteAuthorRole">
<![CDATA[ <![CDATA[
DELETE FROM LETTNAUTHORROLERELATE DELETE FROM LETTNAUTHORROLERELATE
WHERE AUTHOR_CODE=#authorCode# WHERE AUTHOR_CODE=#authorCode#

View File

@ -614,7 +614,10 @@
*/ */
SELECT TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD HH24:MI' ) creatDt FROM LETTNADMINLOG A SELECT TO_CHAR(A.CREAT_DT, 'YYYY-MM-DD HH24:MI' ) creatDt FROM LETTNADMINLOG A
WHERE A.CONECT_ID = #conectId# WHERE A.CONECT_ID = #conectId#
/*
AND A.PROGRM_FILE_NM = 'selectActionSecurityLogin' AND A.PROGRM_FILE_NM = 'selectActionSecurityLogin'
*/
AND A.PROGRM_FILE_NM = 'uat/uia/actionSecurityLogin.do'
ORDER BY A.CREAT_DT DESC ORDER BY A.CREAT_DT DESC
LIMIT 1 LIMIT 1
</select> </select>

View File

@ -31,7 +31,6 @@
<script type="text/javaScript" language="javascript" defer="defer"> <script type="text/javaScript" language="javascript" defer="defer">
function linkPage(pageNo){ function linkPage(pageNo){
var listForm = document.listForm ; var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ; listForm.pageIndex.value = pageNo ;
@ -39,265 +38,285 @@ function linkPage(pageNo){
listForm.submit(); listForm.submit();
} }
function fn_goDetail(cmmNotifyOrd){
var form = document.detailForm ;
form.cmmNotifyOrd.value=cmmNotifyOrd;
form.action = "<c:url value='/cmm/main/mainDetail.do'/>";
form.submit();
}
//체크박스 전체 선택
function chkAll(thisObj){
$("input[name=chk]").prop("checked" , $(thisObj).is(":checked"));
}
function chkDelete(){
var chkLen = $(listForm).find("input[name=chk]:checked").length;
if(chkLen == 0){
alert("선택된 항목이 없습니다.");
return;
}
if(confirm("삭제하시겠습니까?")){
var data = new FormData(document.getElementById("listForm"));
var url = "<c:url value='/web/my/myNotifyMngDeleteAjax.do'/>"
$.ajax({
type : "Post",
url : url,
data : data,
dataType : 'json',
async : false,
processData : false,
contentType : false,
cache : false,
success : function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
location.reload();
}else{
alert("실패하였습니다.")
}
},
error : function(request, status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
})
}
}
</script> </script>
</head> </head>
<body> <body>
<div class="cont_wrap dashboard"> <div class="cont_wrap dashboard">
<div class="box_wrap"> <div class="box_wrap">
<div class="box"> <%-- ===========================================
<div class="box_tit"> 조건부 기소유예 시작
<p>오늘의 교육 진행 현황</p> ============================================ --%>
</div> <div class="box">
<div class="box_cont today_box"> <div class="box_tit">
<div class="today_status status01"> <p>조건부기소유예 대상자 목록 현황</p>
<p>교육접수</p> <button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
<i></i> </div>
<span>18</span> <div class="box_cont today_box">
</div> <div class="today_status status01">
<i class="status_pcs"></i> <p>전체</p>
<div class="today_status status02"> <i></i>
<p>교육진행</p> <span>${cndtnTrgtInfoAllCnt}</span>
<i></i> </div>
<span>18</span> <div class="today_status status02">
</div> <p>완료</p>
<i class="status_pcs"></i> <i></i>
<div class="today_status status03"> <span>${cndtnTrgtInfoCompleteCnt}</span>
<p>교육완료</p> </div>
<i></i> <div class="today_status status03">
<span>18</span> <p>취소</p>
</div> <i></i>
</div> <span>${cndtnTrgtInfoCancelCnt}</span>
</div>
<div class="box">
<div class="box_tit">
<p>교육관리</p>
</div>
<div class="box_cont system_box">
<a href="#" class="btn_system system01">
<p>교육 일정관리</p>
<span>바로가기 ></span>
</a>
<a href="#" class="btn_system system02">
<p>고육 종료관리</p>
<span>바로가기 ></span>
</a>
<a href="#" class="btn_system system03">
<p>교육 신청관리</p>
<span>바로가기 ></span>
</a>
<a href="#" class="btn_system system04">
<p>교육 강사관리</p>
<span>바로가기 ></span>
</a>
</div>
</div>
<div class="box">
<div class="box_tit">
<p>교육건수</p>
</div>
<div class="box_cont ds_box">
<ul class="chartType01">
<li>
<p>접수</p>
<div class="chart_wrap">
<div></div>
</div>
<p class="case_number"><span>30</span>건</p>
</li>
<li>
<p>승인</p>
<div class="chart_wrap">
<div></div>
</div>
<p class="case_number"><span>30</span>건</p>
</li>
<li>
<p>진행</p>
<div class="chart_wrap">
<div></div>
</div>
<p class="case_number"><span>30</span>건</p>
</li>
<li>
<p>대기</p>
<div class="chart_wrap">
<div></div>
</div>
<p class="case_number"><span>30</span>건</p>
</li>
<li>
<p>완료</p>
<div class="chart_wrap">
<div></div>
</div>
<p class="case_number"><span>30</span>건</p>
</li>
</ul>
<ul class="chart_num">
<li>0</li>
<li>10</li>
<li>20</li>
<li>30</li>
<li>40</li>
</ul>
</div>
</div>
<div class="box">
<div class="box_tit">
<p>교육신청현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list">
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
</div>
</div>
<div class="box">
<div class="box_tit">
<p>교육진행현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list state">
<li>
<a href="#" class="list_tit">· <img src="${pageContext.request.contextPath}/kccadrPb/adm/image/icon_new.png" class="icon_new"> 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line blue">승인요청</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line orange">대기중</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
</div>
</div>
<div class="box">
<div class="box_tit">
<p>교육종료현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list state">
<li>
<a href="#" class="list_tit">· 인사교육 프로그램 교재의 저작물</a>
<p class="list_writer">admin</p>
<p class="state fill gray">보고완료</p>
</li>
<li>
<a href="#" class="list_tit">· 음악저작물 제작 및 이용에 따른</a>
<p class="list_writer">admin</p>
<p class="state fill green">설문진행</p>
</li>
<li>
<a href="#" class="list_tit">· 부주의에 의한 성명표시권 침해</a>
<p class="list_writer">admin</p>
<p class="state fill purple">비용지급</p>
</li>
<li>
<a href="#" class="list_tit">· 학위논문에서의 정당한 인용의 문제</a>
<p class="list_writer">admin</p>
<p class="state fill gray">보고완료</p>
</li>
<li>
<a href="#" class="list_tit">· 저작물 이용허락 요청 후 무단이용</a>
<p class="list_writer">admin</p>
<p class="state fill gray">보고완료</p>
</li>
</div>
</div>
</div> </div>
</div> </div>
<!-- //cont --> </div>
<div class="box">
<div class="box_tit">
<p>과정신청현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list">
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
</div>
</div>
<div class="box">
<div class="box_tit">
<p>확정과정현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list state">
<li>
<%-- <a href="#" class="list_tit">· <img src="${pageContext.request.contextPath}/kccadrPb/adm/image/icon_new.png" class="icon_new"> 상표권 교육조건부 기소유예</a> --%>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line blue">승인요청</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line orange">대기중</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
</div>
</div>
<%-- ===========================================
조건부 기소유예 끝
============================================ --%>
<%-- ===========================================
시정명령 시작
============================================ --%>
<div class="box">
<div class="box_tit">
<p>시정명령 대상자 정보 현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont today_box">
<div class="today_status status01">
<p>전체</p>
<i></i>
<span>${cmdtnTrgtAllCnt}</span>
</div>
<div class="today_status status02">
<p>완료</p>
<i></i>
<span>${cmdtnTrgtCompleteCnt}</span>
</div>
<div class="today_status status03">
<p>취소</p>
<i></i>
<span>${cmdtnTrgtCancelCnt}</span>
</div>
</div>
</div>
<div class="box">
<div class="box_tit">
<p>과정신청현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list">
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
</div>
</div>
<div class="box">
<div class="box_tit">
<p>확정과정현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list state">
<li>
<%-- <a href="#" class="list_tit">· <img src="${pageContext.request.contextPath}/kccadrPb/adm/image/icon_new.png" class="icon_new"> 상표권 교육조건부 기소유예</a> --%>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line blue">승인요청</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line orange">대기중</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
</div>
</div>
<%-- ===========================================
시정명령 끝
============================================ --%>
<%-- ===========================================
예방교육 시작
============================================ --%>
<div class="box">
<div class="box_tit">
<p>과정신청현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list">
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="list_date">2025-08-08</p>
</li>
</div>
</div>
<div class="box">
<div class="box_tit">
<p>확정과정현황</p>
<button type="button" class="btn_plus">더보기 <i class="icon plus"></i></button>
</div>
<div class="box_cont">
<ul class="dashboard_list state">
<li>
<%-- <a href="#" class="list_tit">· <img src="${pageContext.request.contextPath}/kccadrPb/adm/image/icon_new.png" class="icon_new"> 상표권 교육조건부 기소유예</a> --%>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line blue">승인요청</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line orange">대기중</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
<li>
<a href="#" class="list_tit">· 상표권 교육조건부 기소유예</a>
<p class="list_writer">admin</p>
<p class="state line gray">배정완료</p>
</li>
</div>
</div>
<%-- ===========================================
예방교육 끝
============================================ --%>
</div>
</div>
<!-- //cont -->
</body> </body>
</html> </html>

View File

@ -89,7 +89,8 @@ function modifyMem(uniqId){
</li> </li>
<li class="ip"> <li class="ip">
<i></i> <i></i>
<p>IP : 218.123.45.678</p> <!-- <p>IP : 218.123.45.678</p> -->
<p>IP : ${userIp}</p>
</li> </li>
<li class="time_out"> <li class="time_out">
<i></i> <i></i>
@ -120,14 +121,15 @@ function modifyMem(uniqId){
<div class="area_right"> <div class="area_right">
<ul class="user_info_ul"> <ul class="user_info_ul">
<li> <!-- <li>
<select name="" id=""> <select name="" id="">
<option value="">관리팀</option> <option value="">관리팀</option>
<option value="">관리팀2</option> <option value="">관리팀2</option>
</select> </select>
</li> </li> -->
<li> <li>
슈퍼관리자(honggildong235) ${userInfo.name}(<c:out value="${userInfo.id}" />)
<!-- 슈퍼관리자(honggildong235) -->
</li> </li>
</ul> </ul>
<button type="button" class="btn btn_text gray_fill btn_logout" onclick="location.href='<c:url value='/uat/uia/actionLogout.do'/>'">로그아웃</button> <button type="button" class="btn btn_text gray_fill btn_logout" onclick="location.href='<c:url value='/uat/uia/actionLogout.do'/>'">로그아웃</button>

View File

@ -309,7 +309,7 @@ function fn_egov_inqire_data(bbsId, nttId) {
<c:if test="${popipZoneList.istarget == 'N'}"> <c:if test="${popipZoneList.istarget == 'N'}">
<a class="swiper-slide" href="javascript:popzoneOpen('${popipZoneList.mlink}','${popipZoneList.istarget}');" title="새창열림" > <a class="swiper-slide" href="javascript:popzoneOpen('${popipZoneList.mlink}','${popipZoneList.istarget}');" title="새창열림" >
<div> <div>
<img style="cursor:pointer" onerror="this.src='/images/no_img.jpg'" alt="${popipZoneList.imgAlt} 팝업" <img style="cursor:pointer" onerror="this.src='${pageContext.request.contextPath}/images/no_img.jpg'" alt="${popipZoneList.imgAlt} 팝업"
src='<c:url value='/uss/ion/pwm/getImage.do'/>?atchFileId=<c:out value="${popipZoneList.popupzoneImageFile}"/>' /> src='<c:url value='/uss/ion/pwm/getImage.do'/>?atchFileId=<c:out value="${popipZoneList.popupzoneImageFile}"/>' />
</div> </div>
</a> </a>
@ -317,7 +317,7 @@ function fn_egov_inqire_data(bbsId, nttId) {
<c:if test="${popipZoneList.istarget != 'N'}"> <c:if test="${popipZoneList.istarget != 'N'}">
<a class="swiper-slide" href="javascript:popzoneOpen('${popipZoneList.mlink}','${popipZoneList.istarget}');"> <a class="swiper-slide" href="javascript:popzoneOpen('${popipZoneList.mlink}','${popipZoneList.istarget}');">
<div> <div>
<img style="cursor:pointer" onerror="this.src='/images/no_img.jpg'" alt="${popipZoneList.imgAlt} 팝업" <img style="cursor:pointer" onerror="this.src='${pageContext.request.contextPath}/images/no_img.jpg'" alt="${popipZoneList.imgAlt} 팝업"
src='<c:url value='/uss/ion/pwm/getImage.do'/>?atchFileId=<c:out value="${popipZoneList.popupzoneImageFile}"/>' /> src='<c:url value='/uss/ion/pwm/getImage.do'/>?atchFileId=<c:out value="${popipZoneList.popupzoneImageFile}"/>' />
</div> </div>
</a> </a>