====== 시스템관리 - 일반달력/행정달력/휴일관리 ====== ===== 개요 ===== 일반달력, 행정달력은 서비스 화면에서 날짜를 선택하는 기능으로 활용하며, 구간에 따른 조회하면을 제공한다.\\ 휴일 관리는 휴일를 등록, 수정, 목록조회, 상세조회를 제공한다. ===== 설명 ===== 일반달력, 행정달력은 팝업화면과 일간/주간/월간/연간 조회화면으로 구성되어있다. \\ 휴일의 관리는 목록조회, 상세조회, 등록, 수정, 삭제 처리 할 수 있도록 구성되어있다. === 관련소스 === ^유형^대상소스명^비고^ |Controller|egovframework.com.sym.cal.web.EgovCalRestdeManageController.java|달력, 휴일관리를 위한 컨트롤러 클래스| |Model|egovframework.com.sym.cal.service.Restde.java|휴일 정보 Model 클래스| |VO|egovframework.com.sym.cal.service.RestdeVO.java|달력, 휴일관리를 위한 VO 클래스| |Service|egovframework.com.sym.cal.service.EgovCalRestdeManageService.java|달력, 휴일관리를 위한 서비스 인터페이스| |ServiceImpl|egovframework.com.sym.cal.service.impl.EgovCalRestdeManageServiceImpl.java|달력, 휴일관리를 위한 위한 서비스구현 클래스| |DAO|egovframework.com.sym.cal.service.impl.RestdeManageDAO.java|휴일 정보 관리를 위한 데이터처리 클래스| |JS|/webapp/js/egovframework/cmm/sym/cal/EgovCalPopup.js|일반달력, 행정달력 팝업 호출을 위한 JavaScript| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovAdministCalPopup.jsp|행정달력 팝업을 위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovAdministCalendar.jsp|행정달력 팝업의 내용을 위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovAdministDayCalendar.jsp|행정달력 일간을위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovAdministMonthCalendar.jsp|행정달력 월간을위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovAdministWeekCalendar.jsp|행정달력 주간을위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovAdministYearCalendar.jsp|행정달력 연간을위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovNormalCalPopup.jsp|일반달력 팝업을 위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovNormalCalendar.jsp|일반달력 팝업의 내용을 위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovNormalDayCalendar.jsp|일반달력 일간을위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovNormalMonthCalendar.jsp|일반달력 월간을위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovNormalWeekCalendar.jsp|일반달력 주간을위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovNormalYearCalendar.jsp|일반달력 연간을위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovRestdeDetail.jsp|휴일 상세보기를 위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovRestdeList.jsp|휴일 목록을 위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovRestdeModify.jsp|휴일 수정을 위한 JSP 페이지| |JSP|/WEB-INF/jsp/egovframework/cmm/sym/cal/EgovRestdeRegist.jsp|휴일 등록을 위한 JSP 페이지| |Query XML|resources/egovframework/mapper/com/sym/cal/EgovRestdeManage_SQL_altibase.xml|달력, 휴일관리를 위한 Altibase용 Query XML| |Query XML|resources/egovframework/mapper/com/sym/cal/EgovRestdeManage_SQL_cubrid.xml|달력, 휴일관리를 위한 Cubrid용 Query XML| |Query XML|resources/egovframework/mapper/com/sym/cal/EgovRestdeManage_SQL_maria.xml|달력, 휴일관리를 위한 MariaDB용 Query XML| |Query XML|resources/egovframework/mapper/com/sym/cal/EgovRestdeManage_SQL_mysql.xml|달력, 휴일관리를 위한 MySQL용 Query XML| |Query XML|resources/egovframework/mapper/com/sym/cal/EgovRestdeManage_SQL_oracle.xml|달력, 휴일관리를 위한 Oracle용 Query XML| |Query XML|resources/egovframework/mapper/com/sym/cal/EgovRestdeManage_SQL_postgres.xml|달력, 휴일관리를 위한 PostgreSQL용 Query XML| |Query XML|resources/egovframework/mapper/com/sym/cal/EgovRestdeManage_SQL_tibero.xml|달력, 휴일관리를 위한 Tibero용 Query XML| |Validator Rule XML|resources/egovframework/validator/validator-rules.xml|Validator Rule을 정의한 XML| |Validator XML|resources/egovframework/validator/com/sym/cal/EgovRestdeManage.xml|달력, 휴일관리를 위한 Validator XML| |Message properties|resources/egovframework/message/com/sym/cal/message_en.properties|달력, 휴일관리를 위한 Message properties(영문)| |Message properties|resources/egovframework/message/com/sym/cal/message_ko.properties|달력, 휴일관리를 위한 Message properties(한글)| |Idgen XML|resources/egovframework/spring/com/idgn/context-idgn-RestDe.xml|달력, 휴일관리를 위한 Id생성 Idgen XML| === 관련테이블 === ^테이블명^테이블명(영문)^비고^ |휴일|COMTNRESTDE|휴일 정보를 관리| ===== 환경설정 ===== 휴일 관리 기능을 위하여 필요한 항목 및 그 환경 설정은 다음과 같다. === ID Generation 관련 DDL 및 DML === * ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 COMTECOPSEQ에 **RESTDE_ID** 항목을 추가해야 한다. CREATE TABLE COMTECOPSEQ ( table_name varchar(16) NOT NULL, next_id DECIMAL(30) NOT NULL, PRIMARY KEY (table_name) ); INSERT INTO COMTECOPSEQ VALUES ('RESTDE_ID','0'); === ID Generation 환경설정(context-idgn-LeaderSchdu.xml) === ===== 사용방법 ===== == 일반달력 팝업 === 일반달력 팝업 호출을 위하여 다음사항을 적용한다. _editor_url변수는 EgovCalPopup.js 호출하는 자바스크립트보다 반드시 위줄에 위치하여야 한다.(변수를 선언하여 그 값을 받아오기 때문임) 일반달력 팝업 호출을 위하여 EgovCalPopup.js 를 해당 페이지에 등록한다.
날짜를 사용할 폼에 받기위해 위 샘플 소스처럼 호출 하여 사용한다.\\ sDate는 일자 연월일 8자리를 받고, vDate는 '-'를 포함하여 받는다. {{:egovframework:com:v3.8:sym:cal:normalcalendar.png|일반달력}} **※ 달력 팝업 DB 없이 사용하기** 일반달력 팝업으로 휴일을 관리하지 않고 데이터베이스 없이 팝업 달력을 사용하기 위하여 아래와 같이 변경 하여 사용할 수 있다. ^URL^Controller^ |/sym/cmm/EgovselectNormalCalendar.do|EgovCalRestdeManageController| 다음 소스코드 부분을 restde.setYear(Integer.toString(iYear)); restde.setMonth(Integer.toString(iMonth)); cal.set(iYear,iMonth-1,1); restde.setStartWeekMonth(cal.get(Calendar.DAY_OF_WEEK)); restde.setLastDayMonth(cal.getActualMaximum(Calendar.DATE)); List CalInfoList = restdeManageService.selectNormalRestdePopup(restde); 아래와 같이 변경하여 사용할 수 있다. cal.set(iYear,iMonth-1,1); int firstWeek = cal.get(Calendar.DAY_OF_WEEK); int lastDay = cal.getActualMaximum(Calendar.DATE); int week = cal.get(Calendar.DAY_OF_WEEK); String year = Integer.toString(iYear); String month = Integer.toString(iMonth); String day = Integer.toString(cal.get(Calendar.DAY_OF_MONTH)); restde.setStartWeekMonth(firstWeek); restde.setLastDayMonth(lastDay); restde.setYear(year); restde.setMonth(month); List CalInfoList = new ArrayList(); String tmpDay = ""; /** * 계산... START */ for(int i=0; i<42;i++) { ListOrderedMap map = new ListOrderedMap(); int cc = i + 1; int dd = cc-firstWeek+1; if (dd > 0 && dd <= lastDay) { tmpDay = Integer.toString(dd); } else { tmpDay = ""; } map.put("year", year); map.put("month", month); map.put("day", tmpDay); map.put("cellNum", cc); map.put("weeks", (cc - 1) / 7 + 1); map.put("week", (week-1) % 7 + 1); map.put("restAt", ((week-1) % 7 + 1==1) ? "Y" : "N"); if (dd > 0 && dd <= lastDay) { week ++; } CalInfoList.add(map); } /** * 계산... END */ ---- == 행정달력 팝업 === 행정달력 팝업 호출을 위하여 다음사항을 적용한다. _editor_url변수는 EgovCalPopup.js 호출하는 자바스크립트보다 반드시 위줄에 위치하여야 한다.(변수를 선언하여 그 값을 받아오기 때문임) 행정달력 팝업 호출을 위하여 EgovCalPopup.js 를 해당 페이지에 등록한다.
날짜를 사용할 폼에 받기위해 위 샘플 소스처럼 호출 하여 사용한다.\\ sDate는 일자 연월일 8자리를 받고, vDate는 '-'를 포함하여 받는다. {{:egovframework:com:sym:cal:administcalendar.jpg|행정달력}} ---- == 휴일 목록 === 휴일 목록 조회를 할 수 있는 목록조회 화면으로 URL은 다음과 같다. /sym/cal/EgovRestdeList.do ^기능^URL^Controller^method^화면(URL)^ |목록조회|/sym/cal/EgovRestdeList.do|EgovCalRestdeManageController|selectRestdeList|/cmm/sym/cal/EgovRestdeList| 휴일 목록은 페이지 당 10건씩 조회되며 페이징은 10페이지씩 이루어진다.\\ 검색조건은 휴일일자, 휴일명에 대해서 수행된다.\\ 페이지 당 검색 범위를 변경하고자 하는 경우 context-properties.xml 파일의 pageUnit, pageSize를 변경한다.(단 해당 설정은 전체 공통서비스 기능에 영향을 미친다.) {{:egovframework:com:v3.8:sym:cal:restdelist.png|휴일목록 화면}} ---- == 휴일 등록 === 휴일 등록 할 수 있는 등록 화면으로 URL은 다음과 같다. /sym/cal/EgovRestdeRegist.do ^기능^URL^Controller^method^화면(URL)^ |등록|/sym/cal/EgovRestdeRegist.do|EgovCalRestdeManageController|insertRestde|/cmm/sym/cal/EgovRestdeRegist| 휴일에 대한 상세내용을 등록한다.\\ 등록이 성공하면 **[[#휴일 목록]]** 화면으로 이동한다. {{:egovframework:com:v3.8:sym:cal:restderegist.png|휴일등록 화면}} ---- == 휴일 수정 === 휴일 수정 할 수 있는 수정 화면으로 URL은 다음과 같다. /sym/cal/EgovRestdeModify.do ^기능^URL^Controller^method^화면(URL)^ |수정|/sym/cal/EgovRestdeModify.do|EgovCalRestdeManageController|updateRestde|/cmm/sym/cal/EgovRestdeModify| 수정이 성공하면 **[[#휴일 목록]]** 화면으로 이동한다. {{:egovframework:com:v3.8:sym:cal:restdemodify.png|휴일수정 화면}} ---- == 휴일 상세 조회 === 휴일 상세 조회 할 수 있는 상세 조회 화면으로 URL은 다음과 같다. /sym/cal/EgovRestdeDetail.do ^기능^URL^Controller^method^화면(URL)^ |상세조회|/sym/cal/EgovRestdeDetail.do|EgovCalRestdeManageController|selectRestdeDetail|/cmm/sym/cal/EgovRestdeDetail| |삭제|/sym/cal/EgovRestdeRemove.do|EgovCalRestdeManageController|deleteRestde|/cmm/sym/cal/EgovRestdeDetail| 상세조회에는 삭제 처리가 포함되어 있고 삭제가 성공하면 **[[#휴일 목록]]** 화면으로 이동한다. {{:egovframework:com:v3.8:sym:cal:restdedetail.png|휴일상세 화면}} ---- ---------------------------- ---------------------------- == 일반달력 일간/주간/월간/연간 === 일반달력 일간/주간/월간/연간 조회 할 수 있는 조회 화면으로 URL은 다음과 같다. ^기능^URL^Controller^method^화면(URL)^ |일간조회|/sym/cal/EgovNormalDayCalendar.do|EgovCalRestdeManageController|selectNormalDayCalendar|/cmm/sym/cal/EgovNormalDayCalendar| |주간조회|/sym/cal/EgovNormalWeekCalendar.do|EgovCalRestdeManageController|selectNormalWeekCalendar|/cmm/sym/cal/EgovNormalWeekCalendar| |월간조회|/sym/cal/EgovNormalMonthCalendar.do|EgovCalRestdeManageController|selectNormalMonthCalendar|/cmm/sym/cal/EgovNormalMonthCalendar| |연간조회|/sym/cal/EgovNormalYearCalendar.do|EgovCalRestdeManageController|selectNormalYearCalendar|/cmm/sym/cal/EgovNormalYearCalendar| |일간|{{:egovframework:com:sym:cal:nd.jpg?740|일반일간달력}}| |주간|{{:egovframework:com:sym:cal:nw.jpg?740|일반주간달력}}| |월간|{{:egovframework:com:sym:cal:nm.jpg?740|일반월간달력}}| |연간|{{:egovframework:com:sym:cal:ny.jpg?740|일반연간달력}}| ---- == 행정달력 일간/주간/월간/연간 === 행정달력 일간/주간/월간/연간 조회 할 수 있는 조회 화면으로 URL은 다음과 같다. ^기능^URL^Controller^method^화면(URL)^ |일간조회|/sym/cal/EgovAdministDayCalendar.do|EgovCalRestdeManageController|selectAdministDayCalendar|/cmm/sym/cal/EgovAdministDayCalendar| |주간조회|/sym/cal/EgovAdministWeekCalendar.do|EgovCalRestdeManageController|selectAdministWeekCalendar|/cmm/sym/cal/EgovAdministWeekCalendar| |월간조회|/sym/cal/EgovAdministMonthCalendar.do|EgovCalRestdeManageController|selectAdministMonthCalendar|/cmm/sym/cal/EgovAdministMonthCalendar| |연간조회|/sym/cal/EgovAdministYearCalendar.do|EgovCalRestdeManageController|selectAdministYearCalendar|/cmm/sym/cal/EgovAdministYearCalendar| |일간|{{:egovframework:com:sym:cal:ad.jpg?740|행정일간달력}}| |주간|{{:egovframework:com:sym:cal:aw.jpg?740|행정주간달력}}| |월간|{{:egovframework:com:sym:cal:am.jpg?740|행정월간달력}}| |연간|{{:egovframework:com:sym:cal:ay.jpg?740|행정연간달력}}| ----