commit a6b37aa445d30f49a793523cb0474686b0ded3d0 Author: revlis44 Date: Wed Dec 3 10:41:27 2025 +0900 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..971faf9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# Java +target/ +build/ + +# Eclipse / VSCode +.classpath +.project +.settings/ +.vscode/ + +# IntelliJ +.idea/ +*.iml + +# Gradle +.gradle/ + +# Logs +*.log +# logs/ + +# System +Thumbs.db +.DS_Store + +# Upload folders +# upload/ +# uploads/ + +# WAR +*.war +*.ear + +# 기타 캐시 +.svn/ \ No newline at end of file diff --git a/pom.sample.3.5.1 b/pom.sample.3.5.1 new file mode 100644 index 0000000..ac30a19 --- /dev/null +++ b/pom.sample.3.5.1 @@ -0,0 +1,298 @@ + + + 4.0.0 + TEST + TEST + war + 1.0.0 + TEST + http://www.egovframe.go.kr + + + 4.0.9.RELEASE + 3.5.0 + + + + + + + sayinfo-nexus + https://nexus.sayinfo.co.kr/repository/maven-public/ + + + + + + + egovframework.rte + egovframework.rte.ptl.mvc + ${egovframework.rte.version} + + + commons-logging + commons-logging + + + + + egovframework.rte + egovframework.rte.psl.dataaccess + ${egovframework.rte.version} + + + egovframework.rte + egovframework.rte.fdl.idgnr + ${egovframework.rte.version} + + + egovframework.rte + egovframework.rte.fdl.property + ${egovframework.rte.version} + + + + javax.servlet + servlet-api + provided + 2.5 + + + + javax.servlet + jstl + 1.2 + + + + commons-dbcp + commons-dbcp + 1.4 + + + + taglibs + standard + 1.1.2 + + + + org.hsqldb + hsqldb + 2.3.2 + + + + org.antlr + antlr + 3.5 + + + + + + install + ${basedir}/target + ${artifactId}-${version} + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + 80 + / + + -Xms256m -Xmx768m -XX:MaxPermSize=256m + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.7 + 1.7 + UTF-8 + + + + org.codehaus.mojo + hibernate3-maven-plugin + 2.1 + + + + hbm2ddl + annotationconfiguration + + + + + + org.hsqldb + hsqldb + 2.3.2 + + + + + + org.codehaus.mojo + emma-maven-plugin + 1.0-alpha-3 + + + + org.apache.maven.plugins + maven-pmd-plugin + 3.1 + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + true + once + xml + + **/Abstract*.java + **/*Suite.java + + + **/*Test.java + + + + + org.codehaus.mojo + emma-maven-plugin + true + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + + + + ${basedir}/target/site + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 2.7 + + + sunlink + + javadoc + + true + + + http://docs.oracle.com/javase/6/docs/api/ + + + + + + + + org.codehaus.mojo + emma-maven-plugin + true + + + org.codehaus.mojo + surefire-report-maven-plugin + true + + + + report-only + + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + 128m + 512m + ${encoding} + ${encoding} + ${encoding} + + + + + org.apache.maven.plugins + maven-jxr-plugin + + ${encoding} + ${encoding} + true + apidocs + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..d941818 --- /dev/null +++ b/pom.xml @@ -0,0 +1,703 @@ + +4.0.0 +sayit.helpdesk +sayit.helpdesk +0.0.1-SNAPSHOT +war + + + UTF-8 + + + + + 3.5.0 + + 4.0.9.RELEASE + + 3.13 + 2.2.2 + 2.1 + 1.9.13 + 4.5.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + sayinfo-nexus + https://nexus.sayinfo.co.kr/repository/maven-public/ + + + + + + + + + + + + + + + + + + + + + + + + + + + egovframework.rte + egovframework.rte.fdl.security + ${egovframework.rte.version} + + + egovframework.rte + egovframework.rte.fdl.excel + ${egovframework.rte.version} + + + + + + + + + + + + + + + + + + egovframework.rte + egovframework.rte.fdl.crypto + 2.0.0 + + + + egovframework.rte + egovframework.rte.ptl.mvc + ${egovframework.rte.version} + + + commons-logging + commons-logging + + + + + egovframework.rte + egovframework.rte.psl.dataaccess + ${egovframework.rte.version} + + + egovframework.rte + egovframework.rte.fdl.idgnr + ${egovframework.rte.version} + + + egovframework.rte + egovframework.rte.fdl.property + ${egovframework.rte.version} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.apache.tiles + tiles-core + ${tiles.version} + + + org.apache.tiles + tiles-jsp + ${tiles.version} + + + org.apache.tiles + tiles-servlet + ${tiles.version} + + + org.apache.tiles + tiles-el + ${tiles.version} + + + + + + + + + + + + + + + + + mysql + mysql-connector-java + 5.1.31 + + + commons-dbcp + commons-dbcp + 1.4 + + + + + + org.slf4j + jcl-over-slf4j + 1.7.7 + + + + + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + javax.servlet.jsp + javax.servlet.jsp-api + 2.3.1 + provided + + + + com.ibm.icu + icu4j + 73.2 + + + + + commons-fileupload + commons-fileupload + 1.3.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.apache.poi + poi + ${poi.version} + + + org.apache.poi + poi-ooxml + ${poi.version} + + + org.apache.poi + poi-scratchpad + ${poi.version} + + + + + org.apache.httpcomponents + httpclient + ${httpcomponents.version} + + + org.apache.httpcomponents + httpmime + ${httpcomponents.version} + + + + + com.googlecode.json-simple + json-simple + 1.1 + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + + + org.quartz-scheduler + quartz + 2.1.7 + + + + + + + + + + + + + + + + + + + + javax.servlet + jstl + 1.2 + + + taglibs + standard + 1.1.2 + + + + org.jdom + jdom2 + 2.0.3 + + + dom4j + dom4j + 1.6.1 + + + + org.antlr + antlr-runtime + 3.5 + + + org.aspectj + aspectjweaver + 1.8.0 + + + cglib + cglib + 3.1 + + + javax.mail + mail + 1.4.1 + + + org.jasypt + jasypt + 1.9.2 + + + net.sf.jxls + jxls-core + 1.0.5 + + + net.sf.ezmorph + ezmorph + 1.0.6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com.tmax.tibero + tibero-jdbc + 5.0 + + + + oracle + ojdbc14 + 10.2.0.4.0 + + + + com.acube + acube-ep + 1.0 + + + + local.gpki + libgpkiapi_jni + 1.0 + + + + local.passni + passniapi + 1.0 + + + + sayit + sayit-crypto + 1.0 + + + + net.sourceforge.ajaxtags + ajaxtags + 1.5-beta-0.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.slf4j + slf4j-api + 1.7.7 + + + org.slf4j + log4j-over-slf4j + 1.7.7 + + + + + aopalliance + aopalliance + 1.0 + + + + + commons-lang + commons-lang + 2.5 + + + + + org.apache.ibatis + ibatis-sqlmap + 2.3.4.726 + + + + + + + + + + + + org.apache.httpcomponents + httpcore + 4.4.4 + + + + log4j + log4j + 1.2.17 + + + + com.ysecukeypad + ysecukeypad-mobileweb + 1.0.5 + + + + org.directwebremoting + dwr + 3.0.0-rc3-RELEASE + + + + stax + stax-api + 1.0.1 + + + + + + sayit-helpdesk + + + maven-war-plugin + 3.2.3 + + + WEB-INF/lib.bak/** + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.6.1 + + + + \ No newline at end of file diff --git a/src/main/java/egovframework/cms/auth/dao/HmsAuthGroupDAO.java b/src/main/java/egovframework/cms/auth/dao/HmsAuthGroupDAO.java new file mode 100644 index 0000000..da73615 --- /dev/null +++ b/src/main/java/egovframework/cms/auth/dao/HmsAuthGroupDAO.java @@ -0,0 +1,83 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.auth.dao.HmsAuthGroupDAO + * egovframework.cms.auth.vo.HmsAuthGroupDefaultVO + * egovframework.cms.auth.vo.HmsAuthGroupVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.auth.dao; + +import egovframework.cms.auth.vo.HmsAuthGroupDefaultVO; +import egovframework.cms.auth.vo.HmsAuthGroupVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import java.util.Map; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsAuthGroupDAO") +public class HmsAuthGroupDAO +extends EgovComAbstractDAO { + public String insertHmsAuthGroup(HmsAuthGroupVO vo) throws Exception { + return (String)this.insert("hmsAuthGroupDAO.insertHmsAuthGroup_S", (Object)vo); + } + + public void updateHmsAuthGroup(HmsAuthGroupVO vo) throws Exception { + this.update("hmsAuthGroupDAO.updateHmsAuthGroup_S", (Object)vo); + } + + public void deleteHmsAuthGroup(HmsAuthGroupVO vo) throws Exception { + this.delete("hmsAuthGroupDAO.deleteHmsAuthGroup_S", (Object)vo); + } + + public HmsAuthGroupVO selectHmsAuthGroup(HmsAuthGroupVO vo) throws Exception { + return (HmsAuthGroupVO)this.selectByPk("hmsAuthGroupDAO.selectHmsAuthGroup_S", (Object)vo); + } + + public List selectHmsAuthGroupList(HmsAuthGroupDefaultVO searchVO) throws Exception { + return this.list("hmsAuthGroupDAO.selectHmsAuthGroupList_D", (Object)searchVO); + } + + public int selectHmsAuthGroupListTotCnt(HmsAuthGroupDefaultVO searchVO) { + return (Integer)this.select("hmsAuthGroupDAO.selectHmsAuthGroupListTotCnt_S", (Object)searchVO); + } + + public List selectHmsAuthList() throws Exception { + return this.list("hmsAuthGroupDAO.selectHmsAuthList", null); + } + + public void insertHmsAuthGroupAuth(Map param) throws Exception { + this.insert("hmsAuthGroupDAO.insertHmsAuthGroupAuth", param); + } + + public List selectHmsAuthGroupRelAuth(String authGroupSeq) throws Exception { + return this.list("hmsAuthGroupDAO.selectHmsAuthGroupRelAuth", (Object)authGroupSeq); + } + + public void deleteHmsAuthGroupRelAuth(String authGroupSeq) throws Exception { + this.delete("hmsAuthGroupDAO.deleteHmsAuthGroupRelAuth", (Object)authGroupSeq); + } + + public List selectHmsAuthGroupRelUser(String authGroupSeq) throws Exception { + return this.list("hmsAuthGroupDAO.selectHmsAuthGroupRelUser", (Object)authGroupSeq); + } + + public List selectHmsAuthGroupRelUserByMember(String authGroupSeq) throws Exception { + return this.list("hmsAuthGroupDAO.selectHmsAuthGroupRelUserByMember", (Object)authGroupSeq); + } + + public List selectHmsAuthGroupRelDept(String authGroupSeq) throws Exception { + return this.list("hmsAuthGroupDAO.selectHmsAuthGroupRelDept", (Object)authGroupSeq); + } + + public void deleteHmsAuthGroupRelUser(Map param) throws Exception { + this.delete("hmsAuthGroupDAO.deleteHmsAuthGroupRelUser", param); + } + + public void insertHmsAuthGroupUser(Map param) throws Exception { + this.insert("hmsAuthGroupDAO.insertHmsAuthGroupUser", param); + } +} + diff --git a/src/main/java/egovframework/cms/auth/service/HmsAuthGroupService.java b/src/main/java/egovframework/cms/auth/service/HmsAuthGroupService.java new file mode 100644 index 0000000..d062ceb --- /dev/null +++ b/src/main/java/egovframework/cms/auth/service/HmsAuthGroupService.java @@ -0,0 +1,51 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.auth.service.HmsAuthGroupService + * egovframework.cms.auth.vo.HmsAuthGroupDefaultVO + * egovframework.cms.auth.vo.HmsAuthGroupVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.auth.service; + +import egovframework.cms.auth.vo.HmsAuthGroupDefaultVO; +import egovframework.cms.auth.vo.HmsAuthGroupVO; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsAuthGroupService { + public String insertHmsAuthGroup(HmsAuthGroupVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsAuthGroup(HmsAuthGroupVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsAuthGroup(HmsAuthGroupVO var1, HttpServletRequest var2) throws Exception; + + public HmsAuthGroupVO selectHmsAuthGroup(HmsAuthGroupVO var1) throws Exception; + + public List selectHmsAuthGroupList(HmsAuthGroupDefaultVO var1) throws Exception; + + public int selectHmsAuthGroupListTotCnt(HmsAuthGroupDefaultVO var1); + + public List selectHmsAuthList() throws Exception; + + public void insertHmsAuthGroupAuth(Map var1) throws Exception; + + public List selectHmsAuthGroupRelAuth(String var1) throws Exception; + + public void deleteHmsAuthGroupRelAuth(String var1) throws Exception; + + public List selectHmsAuthGroupRelUser(String var1) throws Exception; + + public List selectHmsAuthGroupRelUserByMember(String var1) throws Exception; + + public List selectHmsAuthGroupRelDept(String var1) throws Exception; + + public void deleteHmsAuthGroupRelUser(Map var1) throws Exception; + + public void insertHmsAuthGroupUser(Map var1) throws Exception; +} + diff --git a/src/main/java/egovframework/cms/auth/service/impl/HmsAuthGroupServiceImpl.java b/src/main/java/egovframework/cms/auth/service/impl/HmsAuthGroupServiceImpl.java new file mode 100644 index 0000000..13934cc --- /dev/null +++ b/src/main/java/egovframework/cms/auth/service/impl/HmsAuthGroupServiceImpl.java @@ -0,0 +1,149 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.auth.dao.HmsAuthGroupDAO + * egovframework.cms.auth.service.HmsAuthGroupService + * egovframework.cms.auth.service.impl.HmsAuthGroupServiceImpl + * egovframework.cms.auth.vo.HmsAuthGroupDefaultVO + * egovframework.cms.auth.vo.HmsAuthGroupVO + * egovframework.cms.log.service.HmsLogService + * egovframework.cms.log.vo.HmsLogVO + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.EgovFileMngService + * egovframework.com.cmm.service.EgovFileMngUtil + * egovframework.rte.fdl.idgnr.EgovIdGnrService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * org.springframework.stereotype.Service + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.auth.service.impl; + +import egovframework.cms.auth.dao.HmsAuthGroupDAO; +import egovframework.cms.auth.service.HmsAuthGroupService; +import egovframework.cms.auth.vo.HmsAuthGroupDefaultVO; +import egovframework.cms.auth.vo.HmsAuthGroupVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service(value="hmsAuthGroupService") +public class HmsAuthGroupServiceImpl +implements HmsAuthGroupService { + @Resource(name="hmsAuthGroupDAO") + private HmsAuthGroupDAO hmsAuthGroupDAO; + @Resource(name="EgovFileMngService") + private EgovFileMngService fileMngService; + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + @Resource(name="commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + @Resource(name="hmsLogService") + private HmsLogService hmsLogService; + + public String insertHmsAuthGroup(HmsAuthGroupVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + vo.setAuthGroupSeq(this.egovIdGnrService.getNextStringId()); + this.hmsAuthGroupDAO.insertHmsAuthGroup(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_HMS_AUTH_GROUP); + logVO.setLogMessage(""); + logVO.setSeq(vo.getAuthGroupSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsAuthGroup(HmsAuthGroupVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + this.hmsAuthGroupDAO.updateHmsAuthGroup(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject(""); + logVO.setLogMessage(""); + logVO.setSeq(""); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsAuthGroup(HmsAuthGroupVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + this.hmsAuthGroupDAO.deleteHmsAuthGroup(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject(""); + logVO.setLogMessage(""); + logVO.setSeq(""); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsAuthGroupVO selectHmsAuthGroup(HmsAuthGroupVO vo) throws Exception { + HmsAuthGroupVO resultVO = this.hmsAuthGroupDAO.selectHmsAuthGroup(vo); + return resultVO; + } + + public List selectHmsAuthGroupList(HmsAuthGroupDefaultVO searchVO) throws Exception { + return this.hmsAuthGroupDAO.selectHmsAuthGroupList(searchVO); + } + + public int selectHmsAuthGroupListTotCnt(HmsAuthGroupDefaultVO searchVO) { + return this.hmsAuthGroupDAO.selectHmsAuthGroupListTotCnt(searchVO); + } + + public List selectHmsAuthList() throws Exception { + return this.hmsAuthGroupDAO.selectHmsAuthList(); + } + + public void insertHmsAuthGroupAuth(Map param) throws Exception { + this.hmsAuthGroupDAO.insertHmsAuthGroupAuth(param); + } + + public List selectHmsAuthGroupRelAuth(String authGroupSeq) throws Exception { + return this.hmsAuthGroupDAO.selectHmsAuthGroupRelAuth(authGroupSeq); + } + + public void deleteHmsAuthGroupRelAuth(String authGroupSeq) throws Exception { + this.hmsAuthGroupDAO.deleteHmsAuthGroupRelAuth(authGroupSeq); + } + + public List selectHmsAuthGroupRelUser(String authGroupSeq) throws Exception { + return this.hmsAuthGroupDAO.selectHmsAuthGroupRelUser(authGroupSeq); + } + + public List selectHmsAuthGroupRelUserByMember(String authGroupSeq) throws Exception { + return this.hmsAuthGroupDAO.selectHmsAuthGroupRelUserByMember(authGroupSeq); + } + + public List selectHmsAuthGroupRelDept(String authGroupSeq) throws Exception { + return this.hmsAuthGroupDAO.selectHmsAuthGroupRelDept(authGroupSeq); + } + + public void deleteHmsAuthGroupRelUser(Map param) throws Exception { + this.hmsAuthGroupDAO.deleteHmsAuthGroupRelUser(param); + } + + public void insertHmsAuthGroupUser(Map param) throws Exception { + this.hmsAuthGroupDAO.insertHmsAuthGroupUser(param); + } +} + diff --git a/src/main/java/egovframework/cms/auth/vo/HmsAuthGroupDefaultVO.java b/src/main/java/egovframework/cms/auth/vo/HmsAuthGroupDefaultVO.java new file mode 100644 index 0000000..737ecfe --- /dev/null +++ b/src/main/java/egovframework/cms/auth/vo/HmsAuthGroupDefaultVO.java @@ -0,0 +1,209 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.auth.vo.HmsAuthGroupDefaultVO + */ +package egovframework.cms.auth.vo; + +import java.io.Serializable; + +public class HmsAuthGroupDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String authGroupSeq; + private String searchAuthGroupDetail; + private String searchNotAuthGroupDetail; + private String[] searchAuthGroupDetailArray; + private String searchAuthGroupDetailCode; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setAuthGroupSeq(String authGroupSeq) { + this.authGroupSeq = authGroupSeq; + } + + public String getAuthGroupSeq() { + return this.authGroupSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (!this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (!this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (!this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } + + public String getSearchAuthGroupDetail() { + return this.searchAuthGroupDetail; + } + + public void setSearchAuthGroupDetail(String searchAuthGroupDetail) { + this.searchAuthGroupDetail = searchAuthGroupDetail; + } + + public String getSearchNotAuthGroupDetail() { + return this.searchNotAuthGroupDetail; + } + + public void setSearchNotAuthGroupDetail(String searchNotAuthGroupDetail) { + this.searchNotAuthGroupDetail = searchNotAuthGroupDetail; + } + + public String[] getSearchAuthGroupDetailArray() { + if (this.searchAuthGroupDetailArray == null) { + return null; + } + String[] tmp = new String[this.searchAuthGroupDetailArray.length]; + int i = 0; + while (i < this.searchAuthGroupDetailArray.length) { + tmp[i] = this.searchAuthGroupDetailArray[i]; + ++i; + } + return tmp; + } + + public void setSearchAuthGroupDetailArray(String[] searchAuthGroupDetailArray) { + if (searchAuthGroupDetailArray == null) { + return; + } + String[] tmp = new String[searchAuthGroupDetailArray.length]; + int i = 0; + while (i < searchAuthGroupDetailArray.length) { + tmp[i] = searchAuthGroupDetailArray[i]; + ++i; + } + this.searchAuthGroupDetailArray = tmp; + } + + public String getSearchAuthGroupDetailCode() { + return this.searchAuthGroupDetailCode; + } + + public void setSearchAuthGroupDetailCode(String searchAuthGroupDetailCode) { + this.searchAuthGroupDetailCode = searchAuthGroupDetailCode; + } +} + diff --git a/src/main/java/egovframework/cms/auth/vo/HmsAuthGroupVO.java b/src/main/java/egovframework/cms/auth/vo/HmsAuthGroupVO.java new file mode 100644 index 0000000..0ed9d10 --- /dev/null +++ b/src/main/java/egovframework/cms/auth/vo/HmsAuthGroupVO.java @@ -0,0 +1,80 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.auth.vo.HmsAuthGroupDefaultVO + * egovframework.cms.auth.vo.HmsAuthGroupVO + */ +package egovframework.cms.auth.vo; + +import egovframework.cms.auth.vo.HmsAuthGroupDefaultVO; + +public class HmsAuthGroupVO +extends HmsAuthGroupDefaultVO { + private String authGroupSeq; + private String authGroupNm; + private String authGroupDetail; + private String authGroupDetailCode; + private String[] authList; + public static final String GUBUN_USER = "user"; + public static final String GUBUN_DEPT = "dept"; + + public void setAuthGroupSeq(String authGroupSeq) { + this.authGroupSeq = authGroupSeq; + } + + public String getAuthGroupSeq() { + return this.authGroupSeq; + } + + public void setAuthGroupNm(String authGroupNm) { + this.authGroupNm = authGroupNm; + } + + public String getAuthGroupNm() { + return this.authGroupNm; + } + + public void setAuthGroupDetail(String authGroupDetail) { + this.authGroupDetail = authGroupDetail; + } + + public String getAuthGroupDetail() { + return this.authGroupDetail; + } + + public String[] getAuthList() { + if (this.authList != null) { + String[] tmp = new String[this.authList.length]; + int i = 0; + while (i < this.authList.length) { + tmp[i] = this.authList[i]; + ++i; + } + return tmp; + } + return this.authList; + } + + public void setAuthList(String[] authList) { + if (authList != null) { + String[] tmp = new String[authList.length]; + int i = 0; + while (i < authList.length) { + tmp[i] = authList[i]; + ++i; + } + this.authList = tmp; + } + this.authList = authList; + } + + public String getAuthGroupDetailCode() { + return this.authGroupDetailCode; + } + + public void setAuthGroupDetailCode(String authGroupDetailCode) { + this.authGroupDetailCode = authGroupDetailCode; + } +} + diff --git a/src/main/java/egovframework/cms/auth/web/HmsAuthGroupController.java b/src/main/java/egovframework/cms/auth/web/HmsAuthGroupController.java new file mode 100644 index 0000000..1be78b5 --- /dev/null +++ b/src/main/java/egovframework/cms/auth/web/HmsAuthGroupController.java @@ -0,0 +1,301 @@ +package egovframework.cms.auth.web; + +import egovframework.cms.auth.service.HmsAuthGroupService; +import egovframework.cms.auth.vo.HmsAuthGroupDefaultVO; +import egovframework.cms.auth.vo.HmsAuthGroupVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types = {HmsAuthGroupVO.class}) +public class HmsAuthGroupController { + @Resource(name = "hmsAuthGroupService") + private HmsAuthGroupService hmsAuthGroupService; + + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Resource(name = "codeResource") + private CodeResource codeResource; + + @Resource(name = "dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping({"/hms/hmsAuthGroup/hmsAuthGroupIndex.do"}) + public String hmsAuthGroupIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = selectHmsAuthGroupList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = selectHmsAuthGroup(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = addHmsAuthGroupView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = updateHmsAuthGroup(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", bmode); + model.addAttribute("loginVO", loginVO); + model.addAttribute("ROLE_AUTH", UserDetailsHelper.isRole("ROLE_AUTH")); + initModelData(model, bmode); + return viewName; + } + + @RequestMapping({"/hms/hmsAuthGroup/hmsAuthGroupIndexB.do"}) + public String hmsAuthGroupIndexB(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = selectHmsAuthGroupListB(request, response, searchVO, model); + } else if (!bmode.equals("detail")) { + if (!bmode.equals("add")) + bmode.equals("modify"); + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", bmode); + model.addAttribute("loginVO", loginVO); + initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + Map param = new HashMap<>(); + initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, this.codeResource.getCodeList(value)); + if (bmode != null && (bmode.equals("add") || bmode.equals("modify"))) + model.addAttribute(key, this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsAuthGroupList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = this.hmsAuthGroupService.selectHmsAuthGroupListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + if (totCnt > 0) { + List hmsAuthGroupList = this.hmsAuthGroupService.selectHmsAuthGroupList(searchVO); + model.addAttribute("resultList", hmsAuthGroupList); + model.addAttribute("paginationInfo", paginationInfo); + } + return "/cms/hmsAuthGroup/HmsAuthGroupList"; + } + + private String selectHmsAuthGroupListB(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUseYn("N"); + List hmsAuthGroupList = this.hmsAuthGroupService.selectHmsAuthGroupList(searchVO); + List newGroupList = new ArrayList<>(); + for (int i = hmsAuthGroupList.size() - 1; i >= 0; i--) { + EgovMap m = hmsAuthGroupList.get(i); + newGroupList.add(m); + } + model.addAttribute("resultList", newGroupList); + return "/cms/hmsAuthGroup/HmsAuthGroupListB"; + } + + private String addHmsAuthGroupView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, Model model) throws Exception { + HmsAuthGroupVO hmsAuthGroupVO = new HmsAuthGroupVO(); + model.addAttribute("hmsAuthGroupVO", hmsAuthGroupVO); + model.addAttribute("authList", this.hmsAuthGroupService.selectHmsAuthList()); + return "/cms/hmsAuthGroup/HmsAuthGroupRegister"; + } + + @RequestMapping({"/hms/hmsAuthGroup/addHmsAuthGroup.do"}) + public String addHmsAuthGroup(MultipartHttpServletRequest request, HttpServletResponse response, HmsAuthGroupVO hmsAuthGroupVO, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsAuthGroupService.insertHmsAuthGroup(hmsAuthGroupVO, request); + if (hmsAuthGroupVO.getAuthList() != null) { + Map param = new HashMap<>(); + param.put("authGroupSeq", hmsAuthGroupVO.getAuthGroupSeq()); + for (int i = 0; i < (hmsAuthGroupVO.getAuthList()).length; i++) { + param.put("authorCode", hmsAuthGroupVO.getAuthList()[i]); + this.hmsAuthGroupService.insertHmsAuthGroupAuth(param); + } + } + status.setComplete(); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request); + } + + private String updateHmsAuthGroup(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, Model model) throws Exception { + HmsAuthGroupVO hmsAuthGroupVO = new HmsAuthGroupVO(); + hmsAuthGroupVO.setAuthGroupSeq(searchVO.getAuthGroupSeq()); + hmsAuthGroupVO = this.hmsAuthGroupService.selectHmsAuthGroup(hmsAuthGroupVO); + if (!checkWriteAuth(hmsAuthGroupVO)) + return "cmm/sessionError"; + List authList = this.hmsAuthGroupService.selectHmsAuthGroupRelAuth(hmsAuthGroupVO.getAuthGroupSeq()); + if (authList.size() > 0) { + String[] tmp = new String[authList.size()]; + for (int i = 0; i < tmp.length; i++) + tmp[i] = (String)((EgovMap)authList.get(i)).get("authorCode"); + hmsAuthGroupVO.setAuthList(tmp); + } + model.addAttribute("hmsAuthGroupVO", hmsAuthGroupVO); + model.addAttribute("authList", this.hmsAuthGroupService.selectHmsAuthList()); + return "/cms/hmsAuthGroup/HmsAuthGroupRegister"; + } + + @RequestMapping({"/hms/hmsAuthGroup/updateHmsAuthGroup.do"}) + public String updateHmsAuthGroup(MultipartHttpServletRequest request, HttpServletResponse response, HmsAuthGroupVO hmsAuthGroupVO, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!checkWriteAuth(hmsAuthGroupVO)) + return "cmm/privilegeError"; + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsAuthGroupService.updateHmsAuthGroup(hmsAuthGroupVO, request); + this.hmsAuthGroupService.deleteHmsAuthGroupRelAuth(hmsAuthGroupVO.getAuthGroupSeq()); + if (hmsAuthGroupVO.getAuthList() != null) { + Map param = new HashMap<>(); + param.put("authGroupSeq", hmsAuthGroupVO.getAuthGroupSeq()); + for (int i = 0; i < (hmsAuthGroupVO.getAuthList()).length; i++) { + param.put("authorCode", hmsAuthGroupVO.getAuthList()[i]); + this.hmsAuthGroupService.insertHmsAuthGroupAuth(param); + } + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) + request.getSession().setAttribute("SEARCH_KEYWORD", searchVO.getSearchKeyword()); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request) + searchVO.toParam() + "&authGroupSeq=" + hmsAuthGroupVO.getAuthGroupSeq(); + } + + private String selectHmsAuthGroup(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsAuthGroupVO hmsAuthGroupVO = new HmsAuthGroupVO(); + hmsAuthGroupVO.setAuthGroupSeq(searchVO.getAuthGroupSeq()); + hmsAuthGroupVO = this.hmsAuthGroupService.selectHmsAuthGroup(hmsAuthGroupVO); + List authList = this.hmsAuthGroupService.selectHmsAuthGroupRelAuth(hmsAuthGroupVO.getAuthGroupSeq()); + if (authList.size() > 0) { + String[] tmp = new String[authList.size()]; + for (int i = 0; i < tmp.length; i++) + tmp[i] = (String)((EgovMap)authList.get(i)).get("authorCode"); + hmsAuthGroupVO.setAuthList(tmp); + } + model.addAttribute("hmsAuthGroupVO", hmsAuthGroupVO); + model.addAttribute("checkWriteAuth", Boolean.valueOf(checkWriteAuth(hmsAuthGroupVO))); + model.addAttribute("authList", this.hmsAuthGroupService.selectHmsAuthList()); + return "/cms/hmsAuthGroup/HmsAuthGroupDetail"; + } + + @RequestMapping({"/hms/hmsAuthGroup/deleteHmsAuthGroup.do"}) + public String deleteHmsAuthGroup(HttpServletRequest request, HmsAuthGroupVO hmsAuthGroupVO, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!checkWriteAuth(hmsAuthGroupVO)) + return "cmm/privilegeError"; + this.hmsAuthGroupService.deleteHmsAuthGroup(hmsAuthGroupVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) + request.getSession().setAttribute("SEARCH_KEYWORD", searchVO.getSearchKeyword()); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam(); + } + + @RequestMapping({"/hms/hmsAuthGroup/applyHmsAuthGroupUser.do"}) + public String applyHmsAuthGroupUser(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") HmsAuthGroupDefaultVO searchVO) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!checkWriteAuth(null)) + return "cmm/privilegeError"; + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String authGroupSeq = request.getParameter("authGroupSeq"); + try { + Map deleteParam = new HashMap<>(); + deleteParam.put("authGroupSeq", authGroupSeq); + this.hmsAuthGroupService.deleteHmsAuthGroupRelUser(deleteParam); + String[] authUser = request.getParameterValues("authUser"); + if (authUser != null) { + HashMap param = new HashMap<>(); + param.put("authGroupSeq", authGroupSeq); + for (int i = 0; i < authUser.length; i++) { + String[] gubun = authUser[i].split(":"); + if (gubun[1].equals("user")) { + param.put("gubun", "user"); + } else { + param.put("gubun", "dept"); + } + param.put("userId", gubun[0]); + this.hmsAuthGroupService.insertHmsAuthGroupUser(param); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + String parentUrl = request.getParameter("parentUrl"); + return "redirect:" + this.dwrCommonService.removeContextPath(parentUrl, request) + "?authGroupSeq=" + authGroupSeq; + } + + private boolean checkWriteAuth(HmsAuthGroupVO hmsAuthGroupVO) { + if (UserDetailsHelper.isRole("ROLE_AUTH").booleanValue()) + return true; + if (UserDetailsHelper.isRole("USER_ADMIN").booleanValue()) + return true; + return false; + } +} diff --git a/src/main/java/egovframework/cms/board/dao/HmsBrdCateDAO.java b/src/main/java/egovframework/cms/board/dao/HmsBrdCateDAO.java new file mode 100644 index 0000000..8e08c30 --- /dev/null +++ b/src/main/java/egovframework/cms/board/dao/HmsBrdCateDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.dao.HmsBrdCateDAO + * egovframework.cms.board.vo.HmsBrdCateDefaultVO + * egovframework.cms.board.vo.HmsBrdCateVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.board.dao; + +import egovframework.cms.board.vo.HmsBrdCateDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsBrdCateDAO") +public class HmsBrdCateDAO +extends EgovComAbstractDAO { + public String insertHmsBrdCate(HmsBrdCateVO vo) throws Exception { + return (String)this.insert("hmsBrdCateDAO.insertHmsBrdCate_S", (Object)vo); + } + + public void updateHmsBrdCate(HmsBrdCateVO vo) throws Exception { + this.update("hmsBrdCateDAO.updateHmsBrdCate_S", (Object)vo); + } + + public void deleteHmsBrdCate(HmsBrdCateVO vo) throws Exception { + this.delete("hmsBrdCateDAO.deleteHmsBrdCate_S", (Object)vo); + } + + public HmsBrdCateVO selectHmsBrdCate(HmsBrdCateVO vo) throws Exception { + return (HmsBrdCateVO)this.selectByPk("hmsBrdCateDAO.selectHmsBrdCate_S", (Object)vo); + } + + public List selectHmsBrdCateList(HmsBrdCateDefaultVO searchVO) throws Exception { + return this.list("hmsBrdCateDAO.selectHmsBrdCateList_D", (Object)searchVO); + } + + public int selectHmsBrdCateListTotCnt(HmsBrdCateDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsBrdCateDAO.selectHmsBrdCateListTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/board/dao/HmsBrdCateMastDAO.java b/src/main/java/egovframework/cms/board/dao/HmsBrdCateMastDAO.java new file mode 100644 index 0000000..8315be6 --- /dev/null +++ b/src/main/java/egovframework/cms/board/dao/HmsBrdCateMastDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.dao.HmsBrdCateMastDAO + * egovframework.cms.board.vo.HmsBrdCateMastDefaultVO + * egovframework.cms.board.vo.HmsBrdCateMastVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.board.dao; + +import egovframework.cms.board.vo.HmsBrdCateMastDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateMastVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsBrdCateMastDAO") +public class HmsBrdCateMastDAO +extends EgovComAbstractDAO { + public String insertHmsBrdCateMast(HmsBrdCateMastVO vo) throws Exception { + return (String)this.insert("hmsBrdCateMastDAO.insertHmsBrdCateMast_S", (Object)vo); + } + + public void updateHmsBrdCateMast(HmsBrdCateMastVO vo) throws Exception { + this.update("hmsBrdCateMastDAO.updateHmsBrdCateMast_S", (Object)vo); + } + + public void deleteHmsBrdCateMast(HmsBrdCateMastVO vo) throws Exception { + this.delete("hmsBrdCateMastDAO.deleteHmsBrdCateMast_S", (Object)vo); + } + + public HmsBrdCateMastVO selectHmsBrdCateMast(HmsBrdCateMastVO vo) throws Exception { + return (HmsBrdCateMastVO)this.selectByPk("hmsBrdCateMastDAO.selectHmsBrdCateMast_S", (Object)vo); + } + + public List selectHmsBrdCateMastList(HmsBrdCateMastDefaultVO searchVO) throws Exception { + return this.list("hmsBrdCateMastDAO.selectHmsBrdCateMastList_D", (Object)searchVO); + } + + public int selectHmsBrdCateMastListTotCnt(HmsBrdCateMastDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsBrdCateMastDAO.selectHmsBrdCateMastListTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/board/dao/HmsBrdCommentDAO.java b/src/main/java/egovframework/cms/board/dao/HmsBrdCommentDAO.java new file mode 100644 index 0000000..4e87616 --- /dev/null +++ b/src/main/java/egovframework/cms/board/dao/HmsBrdCommentDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.dao.HmsBrdCommentDAO + * egovframework.cms.board.vo.HmsBrdCommentDefaultVO + * egovframework.cms.board.vo.HmsBrdCommentVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.board.dao; + +import egovframework.cms.board.vo.HmsBrdCommentDefaultVO; +import egovframework.cms.board.vo.HmsBrdCommentVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsBrdCommentDAO") +public class HmsBrdCommentDAO +extends EgovComAbstractDAO { + public String insertHmsBrdComment(HmsBrdCommentVO vo) throws Exception { + return (String)this.insert("hmsBrdCommentDAO.insertHmsBrdComment_S", (Object)vo); + } + + public void updateHmsBrdComment(HmsBrdCommentVO vo) throws Exception { + this.update("hmsBrdCommentDAO.updateHmsBrdComment_S", (Object)vo); + } + + public void deleteHmsBrdComment(HmsBrdCommentVO vo) throws Exception { + this.delete("hmsBrdCommentDAO.deleteHmsBrdComment_S", (Object)vo); + } + + public HmsBrdCommentVO selectHmsBrdComment(HmsBrdCommentVO vo) throws Exception { + return (HmsBrdCommentVO)this.selectByPk("hmsBrdCommentDAO.selectHmsBrdComment_S", (Object)vo); + } + + public List selectHmsBrdCommentList(HmsBrdCommentDefaultVO searchVO) throws Exception { + return this.list("hmsBrdCommentDAO.selectHmsBrdCommentList_D", (Object)searchVO); + } + + public int selectHmsBrdCommentListTotCnt(HmsBrdCommentDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsBrdCommentDAO.selectHmsBrdPostCommentTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/board/dao/HmsBrdMngDAO.java b/src/main/java/egovframework/cms/board/dao/HmsBrdMngDAO.java new file mode 100644 index 0000000..c16364a --- /dev/null +++ b/src/main/java/egovframework/cms/board/dao/HmsBrdMngDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.dao.HmsBrdMngDAO + * egovframework.cms.board.vo.HmsBrdMngDefaultVO + * egovframework.cms.board.vo.HmsBrdMngVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.board.dao; + +import egovframework.cms.board.vo.HmsBrdMngDefaultVO; +import egovframework.cms.board.vo.HmsBrdMngVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsBrdMngDAO") +public class HmsBrdMngDAO +extends EgovComAbstractDAO { + public String insertHmsBrdMng(HmsBrdMngVO vo) throws Exception { + return (String)this.insert("hmsBrdMngDAO.insertHmsBrdMng_S", (Object)vo); + } + + public void updateHmsBrdMng(HmsBrdMngVO vo) throws Exception { + this.update("hmsBrdMngDAO.updateHmsBrdMng_S", (Object)vo); + } + + public void deleteHmsBrdMng(HmsBrdMngVO vo) throws Exception { + this.delete("hmsBrdMngDAO.deleteHmsBrdMng_S", (Object)vo); + } + + public HmsBrdMngVO selectHmsBrdMng(HmsBrdMngVO vo) throws Exception { + return (HmsBrdMngVO)this.selectByPk("hmsBrdMngDAO.selectHmsBrdMng_S", (Object)vo); + } + + public List selectHmsBrdMngList(HmsBrdMngDefaultVO searchVO) throws Exception { + return this.list("hmsBrdMngDAO.selectHmsBrdMngList_D", (Object)searchVO); + } + + public int selectHmsBrdMngListTotCnt(HmsBrdMngDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsBrdMngDAO.selectHmsBrdMngListTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/board/dao/HmsBrdPostDAO.java b/src/main/java/egovframework/cms/board/dao/HmsBrdPostDAO.java new file mode 100644 index 0000000..2f1ef1c --- /dev/null +++ b/src/main/java/egovframework/cms/board/dao/HmsBrdPostDAO.java @@ -0,0 +1,66 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.dao.HmsBrdPostDAO + * egovframework.cms.board.vo.HmsBrdPostDefaultVO + * egovframework.cms.board.vo.HmsBrdPostVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.board.dao; + +import egovframework.cms.board.vo.HmsBrdPostDefaultVO; +import egovframework.cms.board.vo.HmsBrdPostVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsBrdPostDAO") +public class HmsBrdPostDAO +extends EgovComAbstractDAO { + public String insertHmsBrdPost(HmsBrdPostVO vo) throws Exception { + return (String)this.insert("hmsBrdPostDAO.insertHmsBrdPost_S", (Object)vo); + } + + public void updateHmsBrdPost(HmsBrdPostVO vo) throws Exception { + this.update("hmsBrdPostDAO.updateHmsBrdPost_S", (Object)vo); + } + + public void updateIncrementHit(HmsBrdPostVO vo) throws Exception { + this.update("hmsBrdPostDAO.updateIncrementHit_S", (Object)vo); + } + + public void deleteHmsBrdPost(HmsBrdPostVO vo) throws Exception { + this.delete("hmsBrdPostDAO.deleteHmsBrdPost_S", (Object)vo); + } + + public HmsBrdPostVO selectHmsBrdPost(HmsBrdPostVO vo) throws Exception { + return (HmsBrdPostVO)this.selectByPk("hmsBrdPostDAO.selectHmsBrdPost_S", (Object)vo); + } + + public List selectHmsBrdPostList(HmsBrdPostDefaultVO searchVO) throws Exception { + return this.list("hmsBrdPostDAO.selectHmsBrdPostList_D", (Object)searchVO); + } + + public int selectHmsBrdPostListTotCnt(HmsBrdPostDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsBrdPostDAO.selectHmsBrdPostListTotCnt_S", (Object)searchVO); + } + + public void updateBrdPostReply(HmsBrdPostVO vo) throws Exception { + this.update("hmsBrdPostDAO.updateBrdPostReply", (Object)vo); + } + + public HmsBrdPostVO selectBrdLastPostByPostSort(HmsBrdPostVO vo) throws Exception { + return (HmsBrdPostVO)this.selectByPk("hmsBrdPostDAO.selectBrdLastPostByPostSort", (Object)vo); + } + + public List selectHmsBrdNewPostList(HmsBrdPostDefaultVO searchVO) throws Exception { + return this.list("hmsBrdPostDAO.selectHmsBrdNewPostList", (Object)searchVO); + } + + public int selectHmsBrdNewPostListTotCnt(HmsBrdPostDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsBrdPostDAO.selectHmsBrdNewPostListTotCnt", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/board/service/HmsBrdCateMastService.java b/src/main/java/egovframework/cms/board/service/HmsBrdCateMastService.java new file mode 100644 index 0000000..a775129 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/HmsBrdCateMastService.java @@ -0,0 +1,32 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.service.HmsBrdCateMastService + * egovframework.cms.board.vo.HmsBrdCateMastDefaultVO + * egovframework.cms.board.vo.HmsBrdCateMastVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.board.service; + +import egovframework.cms.board.vo.HmsBrdCateMastDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateMastVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsBrdCateMastService { + public String insertHmsBrdCateMast(HmsBrdCateMastVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsBrdCateMast(HmsBrdCateMastVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsBrdCateMast(HmsBrdCateMastVO var1, HttpServletRequest var2) throws Exception; + + public HmsBrdCateMastVO selectHmsBrdCateMast(HmsBrdCateMastVO var1) throws Exception; + + public List selectHmsBrdCateMastList(HmsBrdCateMastDefaultVO var1) throws Exception; + + public int selectHmsBrdCateMastListTotCnt(HmsBrdCateMastDefaultVO var1); +} + diff --git a/src/main/java/egovframework/cms/board/service/HmsBrdCateService.java b/src/main/java/egovframework/cms/board/service/HmsBrdCateService.java new file mode 100644 index 0000000..da91fb8 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/HmsBrdCateService.java @@ -0,0 +1,32 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.service.HmsBrdCateService + * egovframework.cms.board.vo.HmsBrdCateDefaultVO + * egovframework.cms.board.vo.HmsBrdCateVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.board.service; + +import egovframework.cms.board.vo.HmsBrdCateDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsBrdCateService { + public String insertHmsBrdCate(HmsBrdCateVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsBrdCate(HmsBrdCateVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsBrdCate(HmsBrdCateVO var1, HttpServletRequest var2) throws Exception; + + public HmsBrdCateVO selectHmsBrdCate(HmsBrdCateVO var1) throws Exception; + + public List selectHmsBrdCateList(HmsBrdCateDefaultVO var1) throws Exception; + + public int selectHmsBrdCateListTotCnt(HmsBrdCateDefaultVO var1); +} + diff --git a/src/main/java/egovframework/cms/board/service/HmsBrdCommentService.java b/src/main/java/egovframework/cms/board/service/HmsBrdCommentService.java new file mode 100644 index 0000000..76c08bd --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/HmsBrdCommentService.java @@ -0,0 +1,30 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.service.HmsBrdCommentService + * egovframework.cms.board.vo.HmsBrdCommentDefaultVO + * egovframework.cms.board.vo.HmsBrdCommentVO + * javax.servlet.http.HttpServletRequest + */ +package egovframework.cms.board.service; + +import egovframework.cms.board.vo.HmsBrdCommentDefaultVO; +import egovframework.cms.board.vo.HmsBrdCommentVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; + +public interface HmsBrdCommentService { + public String insertHmsBrdComment(HmsBrdCommentVO var1, HttpServletRequest var2) throws Exception; + + public void updateHmsBrdComment(HmsBrdCommentVO var1) throws Exception; + + public void deleteHmsBrdComment(HmsBrdCommentVO var1, HttpServletRequest var2) throws Exception; + + public HmsBrdCommentVO selectHmsBrdComment(HmsBrdCommentVO var1) throws Exception; + + public List selectHmsBrdCommentList(HmsBrdCommentDefaultVO var1) throws Exception; + + public int selectHmsBrdCommentListTotCnt(HmsBrdCommentDefaultVO var1); +} + diff --git a/src/main/java/egovframework/cms/board/service/HmsBrdMngService.java b/src/main/java/egovframework/cms/board/service/HmsBrdMngService.java new file mode 100644 index 0000000..ee4e3f8 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/HmsBrdMngService.java @@ -0,0 +1,30 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.service.HmsBrdMngService + * egovframework.cms.board.vo.HmsBrdMngDefaultVO + * egovframework.cms.board.vo.HmsBrdMngVO + * javax.servlet.http.HttpServletRequest + */ +package egovframework.cms.board.service; + +import egovframework.cms.board.vo.HmsBrdMngDefaultVO; +import egovframework.cms.board.vo.HmsBrdMngVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; + +public interface HmsBrdMngService { + public String insertHmsBrdMng(HmsBrdMngVO var1, HttpServletRequest var2) throws Exception; + + public void updateHmsBrdMng(HmsBrdMngVO var1, HttpServletRequest var2) throws Exception; + + public void deleteHmsBrdMng(HmsBrdMngVO var1, HttpServletRequest var2) throws Exception; + + public HmsBrdMngVO selectHmsBrdMng(HmsBrdMngVO var1) throws Exception; + + public List selectHmsBrdMngList(HmsBrdMngDefaultVO var1) throws Exception; + + public int selectHmsBrdMngListTotCnt(HmsBrdMngDefaultVO var1); +} + diff --git a/src/main/java/egovframework/cms/board/service/HmsBrdPostService.java b/src/main/java/egovframework/cms/board/service/HmsBrdPostService.java new file mode 100644 index 0000000..ec97ee6 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/HmsBrdPostService.java @@ -0,0 +1,44 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.service.HmsBrdPostService + * egovframework.cms.board.vo.HmsBrdPostDefaultVO + * egovframework.cms.board.vo.HmsBrdPostVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.board.service; + +import egovframework.cms.board.vo.HmsBrdPostDefaultVO; +import egovframework.cms.board.vo.HmsBrdPostVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsBrdPostService { + public String insertHmsBrdPost(HmsBrdPostVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsBrdPost(HmsBrdPostVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateIncrementHit(HmsBrdPostVO var1) throws Exception; + + public void deleteHmsBrdPost(HmsBrdPostVO var1, HttpServletRequest var2) throws Exception; + + public HmsBrdPostVO selectHmsBrdPost(HmsBrdPostVO var1) throws Exception; + + public List selectHmsBrdPostList(HmsBrdPostDefaultVO var1) throws Exception; + + public int selectHmsBrdPostListTotCnt(HmsBrdPostDefaultVO var1); + + public void updateBrdPostReply(HmsBrdPostVO var1) throws Exception; + + public String insertHmsBrdPostReply(HmsBrdPostVO var1, MultipartHttpServletRequest var2) throws Exception; + + public List selectHmsBrdNewPostList(HmsBrdPostDefaultVO var1) throws Exception; + + public int selectHmsBrdNewPostListTotCnt(HmsBrdPostDefaultVO var1); + + public String checkFileWhiteList(MultipartHttpServletRequest var1, String var2, String var3) throws Exception; +} + diff --git a/src/main/java/egovframework/cms/board/service/impl/HmsBrdCateMastServiceImpl.java b/src/main/java/egovframework/cms/board/service/impl/HmsBrdCateMastServiceImpl.java new file mode 100644 index 0000000..9aaac17 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/impl/HmsBrdCateMastServiceImpl.java @@ -0,0 +1,181 @@ +package egovframework.cms.board.service.impl; + +import egovframework.cms.board.dao.HmsBrdCateMastDAO; +import egovframework.cms.board.service.HmsBrdCateMastService; +import egovframework.cms.board.vo.HmsBrdCateMastDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateMastVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("hmsBrdCateMastService") +public class HmsBrdCateMastServiceImpl extends AbstractServiceImpl implements HmsBrdCateMastService { + @Resource(name = "hmsBrdCateMastDAO") + private HmsBrdCateMastDAO hmsBrdCateMastDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + public String insertHmsBrdCateMast(HmsBrdCateMastVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + vo.setCateMastSeq(this.egovIdGnrService.getNextStringId()); + this.hmsBrdCateMastDAO.insertHmsBrdCateMast(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_HMS_BRD_CATE_MAST); + logVO.setLogMessage(""); + logVO.setSeq(vo.getCateMastSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsBrdCateMast(HmsBrdCateMastVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdCateMastDAO.updateHmsBrdCateMast(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject(HmsLogVO.OBJ_HMS_BRD_CATE_MAST); + logVO.setLogMessage(""); + logVO.setSeq(vo.getCateMastSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsBrdCateMast(HmsBrdCateMastVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdCateMastDAO.deleteHmsBrdCateMast(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject(HmsLogVO.OBJ_HMS_BRD_CATE_MAST); + logVO.setLogMessage(""); + logVO.setSeq(vo.getCateMastSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsBrdCateMastVO selectHmsBrdCateMast(HmsBrdCateMastVO vo) throws Exception { + HmsBrdCateMastVO resultVO = this.hmsBrdCateMastDAO.selectHmsBrdCateMast(vo); + return resultVO; + } + + public List selectHmsBrdCateMastList(HmsBrdCateMastDefaultVO searchVO) throws Exception { + return this.hmsBrdCateMastDAO.selectHmsBrdCateMastList(searchVO); + } + + public int selectHmsBrdCateMastListTotCnt(HmsBrdCateMastDefaultVO searchVO) { + return this.hmsBrdCateMastDAO.selectHmsBrdCateMastListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + if (!fn.endsWith(".exe") && !fn.endsWith(".php") && !fn.endsWith(".jsp") && !fn.endsWith(".bat") && !fn.endsWith(".sh") && !fn.endsWith(".asp") && + !fn.equals("")) + file.put(key, mf); + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + if (!fn.endsWith(".exe") && !fn.endsWith(".php") && !fn.endsWith(".jsp") && !fn.endsWith(".bat") && !fn.endsWith(".sh") && !fn.endsWith(".asp") && + !fn.equals("")) + file.put(key, mf); + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } +} diff --git a/src/main/java/egovframework/cms/board/service/impl/HmsBrdCateServiceImpl.java b/src/main/java/egovframework/cms/board/service/impl/HmsBrdCateServiceImpl.java new file mode 100644 index 0000000..ef5a7c0 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/impl/HmsBrdCateServiceImpl.java @@ -0,0 +1,201 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.dao.HmsBrdCateDAO + * egovframework.cms.board.service.HmsBrdCateService + * egovframework.cms.board.service.impl.HmsBrdCateServiceImpl + * egovframework.cms.board.vo.HmsBrdCateDefaultVO + * egovframework.cms.board.vo.HmsBrdCateVO + * egovframework.cms.log.service.HmsLogService + * egovframework.cms.log.vo.HmsLogVO + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.EgovFileMngService + * egovframework.com.cmm.service.EgovFileMngUtil + * egovframework.com.cmm.service.FileVO + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.rte.fdl.idgnr.EgovIdGnrService + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * org.springframework.stereotype.Service + * org.springframework.web.multipart.MultipartFile + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.board.service.impl; + +import egovframework.cms.board.dao.HmsBrdCateDAO; +import egovframework.cms.board.service.HmsBrdCateService; +import egovframework.cms.board.vo.HmsBrdCateDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service(value="hmsBrdCateService") +public class HmsBrdCateServiceImpl +implements HmsBrdCateService { + @Resource(name="hmsBrdCateDAO") + private HmsBrdCateDAO hmsBrdCateDAO; + @Resource(name="EgovFileMngService") + private EgovFileMngService fileMngService; + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + @Resource(name="commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + @Resource(name="hmsLogService") + private HmsLogService hmsLogService; + + public String insertHmsBrdCate(HmsBrdCateVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + vo.setCateSeq(this.egovIdGnrService.getNextStringId()); + this.hmsBrdCateDAO.insertHmsBrdCate(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_HMS_BRD_CATE); + logVO.setLogMessage(""); + logVO.setSeq(vo.getCateSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsBrdCate(HmsBrdCateVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdCateDAO.updateHmsBrdCate(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject(HmsLogVO.OBJ_HMS_BRD_CATE); + logVO.setLogMessage(""); + logVO.setSeq(vo.getCateSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsBrdCate(HmsBrdCateVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdCateDAO.deleteHmsBrdCate(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject(HmsLogVO.OBJ_HMS_BRD_CATE); + logVO.setLogMessage(""); + logVO.setSeq(vo.getCateSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsBrdCateVO selectHmsBrdCate(HmsBrdCateVO vo) throws Exception { + HmsBrdCateVO resultVO = this.hmsBrdCateDAO.selectHmsBrdCate(vo); + return resultVO; + } + + public List selectHmsBrdCateList(HmsBrdCateDefaultVO searchVO) throws Exception { + return this.hmsBrdCateDAO.selectHmsBrdCateList(searchVO); + } + + public int selectHmsBrdCateListTotCnt(HmsBrdCateDefaultVO searchVO) { + return this.hmsBrdCateDAO.selectHmsBrdCateListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + if (!fn.endsWith(".exe") && !fn.endsWith(".php") && !fn.endsWith(".jsp") && !fn.endsWith(".bat") && !fn.endsWith(".sh") && !fn.endsWith(".asp") && + !fn.equals("")) + file.put(key, mf); + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + if (!fn.endsWith(".exe") && !fn.endsWith(".php") && !fn.endsWith(".jsp") && !fn.endsWith(".bat") && !fn.endsWith(".sh") && !fn.endsWith(".asp") && + !fn.equals("")) + file.put(key, mf); + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } + } + diff --git a/src/main/java/egovframework/cms/board/service/impl/HmsBrdCommentServiceImpl.java b/src/main/java/egovframework/cms/board/service/impl/HmsBrdCommentServiceImpl.java new file mode 100644 index 0000000..79aff95 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/impl/HmsBrdCommentServiceImpl.java @@ -0,0 +1,100 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.dao.HmsBrdCommentDAO + * egovframework.cms.board.service.HmsBrdCommentService + * egovframework.cms.board.service.impl.HmsBrdCommentServiceImpl + * egovframework.cms.board.vo.HmsBrdCommentDefaultVO + * egovframework.cms.board.vo.HmsBrdCommentVO + * egovframework.cms.board.vo.HmsBrdPostVO + * egovframework.cms.log.service.HmsLogService + * egovframework.cms.log.vo.HmsLogVO + * egovframework.com.cmm.LoginVO + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.rte.fdl.idgnr.EgovIdGnrService + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * org.springframework.stereotype.Service + */ +package egovframework.cms.board.service.impl; + +import egovframework.cms.board.dao.HmsBrdCommentDAO; +import egovframework.cms.board.service.HmsBrdCommentService; +import egovframework.cms.board.vo.HmsBrdCommentDefaultVO; +import egovframework.cms.board.vo.HmsBrdCommentVO; +import egovframework.cms.board.vo.HmsBrdPostVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; + +@Service(value="hmsBrdCommentService") +public class HmsBrdCommentServiceImpl +implements HmsBrdCommentService { + @Resource(name="hmsBrdCommentDAO") + private HmsBrdCommentDAO hmsBrdCommentDAO; + @Resource(name="brdIdGnrService") + private EgovIdGnrService egovIdGnrService; + @Resource(name="hmsLogService") + private HmsLogService hmsLogService; + + public String insertHmsBrdComment(HmsBrdCommentVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO.getId(); + String userNm = loginVO.getName(); + vo.setUserId(userId); + vo.setUserNm(userNm); + HmsBrdPostVO hmsBrdPostVO = new HmsBrdPostVO(); + vo.setBrdReplySeq(this.egovIdGnrService.getNextStringId()); + this.hmsBrdCommentDAO.insertHmsBrdComment(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_BRD_COMMENT); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdReplySeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsBrdComment(HmsBrdCommentVO vo) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdCommentDAO.updateHmsBrdComment(vo); + } + + public void deleteHmsBrdComment(HmsBrdCommentVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdCommentDAO.deleteHmsBrdComment(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject(HmsLogVO.OBJ_BRD_COMMENT); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdReplySeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsBrdCommentVO selectHmsBrdComment(HmsBrdCommentVO vo) throws Exception { + HmsBrdCommentVO resultVO = this.hmsBrdCommentDAO.selectHmsBrdComment(vo); + return resultVO; + } + + public List selectHmsBrdCommentList(HmsBrdCommentDefaultVO searchVO) throws Exception { + return this.hmsBrdCommentDAO.selectHmsBrdCommentList(searchVO); + } + + public int selectHmsBrdCommentListTotCnt(HmsBrdCommentDefaultVO searchVO) { + return this.hmsBrdCommentDAO.selectHmsBrdCommentListTotCnt(searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/board/service/impl/HmsBrdMngServiceImpl.java b/src/main/java/egovframework/cms/board/service/impl/HmsBrdMngServiceImpl.java new file mode 100644 index 0000000..187e7a8 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/impl/HmsBrdMngServiceImpl.java @@ -0,0 +1,106 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.dao.HmsBrdMngDAO + * egovframework.cms.board.service.HmsBrdMngService + * egovframework.cms.board.service.impl.HmsBrdMngServiceImpl + * egovframework.cms.board.vo.HmsBrdMngDefaultVO + * egovframework.cms.board.vo.HmsBrdMngVO + * egovframework.cms.log.service.HmsLogService + * egovframework.cms.log.vo.HmsLogVO + * egovframework.com.cmm.LoginVO + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.rte.fdl.idgnr.EgovIdGnrService + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * org.springframework.stereotype.Service + */ +package egovframework.cms.board.service.impl; + +import egovframework.cms.board.dao.HmsBrdMngDAO; +import egovframework.cms.board.service.HmsBrdMngService; +import egovframework.cms.board.vo.HmsBrdMngDefaultVO; +import egovframework.cms.board.vo.HmsBrdMngVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; + +@Service(value="hmsBrdMngService") +public class HmsBrdMngServiceImpl +implements HmsBrdMngService { + @Resource(name="hmsBrdMngDAO") + private HmsBrdMngDAO hmsBrdMngDAO; + @Resource(name="brdIdGnrService") + private EgovIdGnrService egovIdGnrService; + @Resource(name="hmsLogService") + private HmsLogService hmsLogService; + + public String insertHmsBrdMng(HmsBrdMngVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + String userId = loginVO.getId(); + String userNm = loginVO.getName(); + vo.setWriterId(userId); + vo.setWriterNm(userNm); + vo.setBrdMngSeq(this.egovIdGnrService.getNextStringId()); + this.hmsBrdMngDAO.insertHmsBrdMng(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_BRD_MNG); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdMngSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsBrdMng(HmsBrdMngVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdMngDAO.updateHmsBrdMng(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject(HmsLogVO.OBJ_BRD_MNG); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdMngSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsBrdMng(HmsBrdMngVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdMngDAO.deleteHmsBrdMng(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject(HmsLogVO.OBJ_BRD_MNG); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdMngSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsBrdMngVO selectHmsBrdMng(HmsBrdMngVO vo) throws Exception { + HmsBrdMngVO resultVO = this.hmsBrdMngDAO.selectHmsBrdMng(vo); + return resultVO; + } + + public List selectHmsBrdMngList(HmsBrdMngDefaultVO searchVO) throws Exception { + return this.hmsBrdMngDAO.selectHmsBrdMngList(searchVO); + } + + public int selectHmsBrdMngListTotCnt(HmsBrdMngDefaultVO searchVO) { + return this.hmsBrdMngDAO.selectHmsBrdMngListTotCnt(searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/board/service/impl/HmsBrdPostServiceImpl.java b/src/main/java/egovframework/cms/board/service/impl/HmsBrdPostServiceImpl.java new file mode 100644 index 0000000..38f1b77 --- /dev/null +++ b/src/main/java/egovframework/cms/board/service/impl/HmsBrdPostServiceImpl.java @@ -0,0 +1,271 @@ +package egovframework.cms.board.service.impl; + +import egovframework.cms.board.dao.HmsBrdPostDAO; +import egovframework.cms.board.service.HmsBrdMngService; +import egovframework.cms.board.service.HmsBrdPostService; +import egovframework.cms.board.vo.HmsBrdMngVO; +import egovframework.cms.board.vo.HmsBrdPostDefaultVO; +import egovframework.cms.board.vo.HmsBrdPostVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("hmsBrdPostService") +public class HmsBrdPostServiceImpl implements HmsBrdPostService { + @Resource(name = "hmsBrdPostDAO") + private HmsBrdPostDAO hmsBrdPostDAO; + + @Resource(name = "brdIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + @Resource(name = "hmsBrdMngService") + private HmsBrdMngService hmsBrdMngService; + + public String insertHmsBrdPost(HmsBrdPostVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = null; + String userId = null; + String userNm = null; + try { + loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + userId = loginVO.getId(); + userNm = loginVO.getName(); + } catch (Exception e) { + e.printStackTrace(); + } + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(vo.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + userNm = !vo.getUserNm().equals("") ? vo.getUserNm() : userNm; + vo.setUserId(userId); + vo.setUserNm(userNm); + String atchSeq = addMultiFiles(request, "file_"); + vo.setAtchSeq(atchSeq); + vo.setIp(request.getRemoteHost()); + vo.setBrdPostSeq(this.egovIdGnrService.getNextStringId()); + HmsBrdPostVO lastVO = this.hmsBrdPostDAO.selectBrdLastPostByPostSort(vo); + int postSort = (lastVO == null) ? 100 : (lastVO.getBrdSort() + 100); + int postGroup = postSort / 100; + vo.setBrdSort(postSort); + vo.setBrdGroup(postGroup); + this.hmsBrdPostDAO.insertHmsBrdPost(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_BRD_POST); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdPostSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public String insertHmsBrdPostReply(HmsBrdPostVO vo, MultipartHttpServletRequest request) throws Exception { + this.hmsBrdPostDAO.updateBrdPostReply(vo); + LoginVO loginVO = null; + String userId = null; + String userNm = null; + try { + loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + userId = loginVO.getId(); + userNm = loginVO.getName(); + } catch (Exception e) { + e.printStackTrace(); + } + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(vo.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + vo.setUserId(userId); + vo.setUserNm(userNm); + String atchSeq = addMultiFiles(request, "file_"); + vo.setAtchSeq(atchSeq); + vo.setIp(request.getRemoteHost()); + vo.setBrdPostSeq(this.egovIdGnrService.getNextStringId()); + vo.setBrdSort(vo.getBrdSort() - 1); + vo.setBrdDepth(vo.getBrdDepth() + 1); + this.hmsBrdPostDAO.insertHmsBrdPost(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_BRD_POST); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdPostSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsBrdPost(HmsBrdPostVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(vo.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + String atchSeq = updateMultiFiles(request, "file_", vo.getAtchSeq(), true); + vo.setAtchSeq(atchSeq); + this.hmsBrdPostDAO.updateHmsBrdPost(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject(HmsLogVO.OBJ_BRD_POST); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdPostSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void updateIncrementHit(HmsBrdPostVO vo) throws Exception { + this.hmsBrdPostDAO.updateIncrementHit(vo); + } + + public void deleteHmsBrdPost(HmsBrdPostVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsBrdPostDAO.deleteHmsBrdPost(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_BRD_POST); + logVO.setLogMessage(""); + logVO.setSeq(vo.getBrdPostSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsBrdPostVO selectHmsBrdPost(HmsBrdPostVO vo) throws Exception { + HmsBrdPostVO resultVO = this.hmsBrdPostDAO.selectHmsBrdPost(vo); + return resultVO; + } + + public List selectHmsBrdPostList(HmsBrdPostDefaultVO searchVO) throws Exception { + return this.hmsBrdPostDAO.selectHmsBrdPostList(searchVO); + } + + public int selectHmsBrdPostListTotCnt(HmsBrdPostDefaultVO searchVO) { + return this.hmsBrdPostDAO.selectHmsBrdPostListTotCnt(searchVO); + } + + public void updateBrdPostReply(HmsBrdPostVO vo) throws Exception { + this.hmsBrdPostDAO.updateBrdPostReply(vo); + } + + public List selectHmsBrdNewPostList(HmsBrdPostDefaultVO searchVO) throws Exception { + return this.hmsBrdPostDAO.selectHmsBrdNewPostList(searchVO); + } + + public int selectHmsBrdNewPostListTotCnt(HmsBrdPostDefaultVO searchVO) { + return this.hmsBrdPostDAO.selectHmsBrdNewPostListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + multiRequest.setCharacterEncoding("utf-8"); + Map files = multiRequest.getFileMap(); + String fileId = ""; + if (!files.isEmpty()) { + String _atchFileId = ""; + List _result = null; + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!files.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(files, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + return fileId; + } + + public String checkFileWhiteList(MultipartHttpServletRequest multiRequest, String targetNm, String whitelist) throws Exception { + if (whitelist == null || whitelist.equals("")) + return null; + String[] ext = whitelist.split(","); + if (ext == null || ext.length == 0 || ext[0] == null || ext[0].isEmpty()) + return null; + Map files = multiRequest.getFileMap(); + if (files.isEmpty()) + return null; + MultipartFile file = null; + String key = null; + Iterator> itr = files.entrySet().iterator(); + while (itr.hasNext()) { + Map.Entry entry = itr.next(); + file = entry.getValue(); + key = file.getName(); + if (key.indexOf(targetNm) < 0) + continue; + String fn = file.getOriginalFilename(); + if (fn.equals("")) + continue; + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.toLowerCase().endsWith(ext[i].toLowerCase())) { + check = true; + break; + } + } + if (!check) + return fn; + } + return null; + } +} diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdCateDefaultVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdCateDefaultVO.java new file mode 100644 index 0000000..2e13735 --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdCateDefaultVO.java @@ -0,0 +1,164 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdCateDefaultVO + */ +package egovframework.cms.board.vo; + +import java.io.Serializable; + +public class HmsBrdCateDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String cateSeq; + private String searchCateMastSeq; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setCateSeq(String cateSeq) { + this.cateSeq = cateSeq; + } + + public String getCateSeq() { + return this.cateSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (!this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } + + public String getSearchCateMastSeq() { + return this.searchCateMastSeq; + } + + public void setSearchCateMastSeq(String searchCateMastSeq) { + this.searchCateMastSeq = searchCateMastSeq; + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdCateMastDefaultVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdCateMastDefaultVO.java new file mode 100644 index 0000000..d98a9e1 --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdCateMastDefaultVO.java @@ -0,0 +1,155 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdCateMastDefaultVO + */ +package egovframework.cms.board.vo; + +import java.io.Serializable; + +public class HmsBrdCateMastDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String cateMastSeq; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setCateMastSeq(String cateMastSeq) { + this.cateMastSeq = cateMastSeq; + } + + public String getCateMastSeq() { + return this.cateMastSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (!this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdCateMastVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdCateMastVO.java new file mode 100644 index 0000000..fa03b5c --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdCateMastVO.java @@ -0,0 +1,42 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdCateMastDefaultVO + * egovframework.cms.board.vo.HmsBrdCateMastVO + */ +package egovframework.cms.board.vo; + +import egovframework.cms.board.vo.HmsBrdCateMastDefaultVO; + +public class HmsBrdCateMastVO +extends HmsBrdCateMastDefaultVO { + private String cateMastSeq; + private String cateMastNm; + private String recSts; + + public void setCateMastSeq(String cateMastSeq) { + this.cateMastSeq = cateMastSeq; + } + + public String getCateMastSeq() { + return this.cateMastSeq; + } + + public void setCateMastNm(String cateMastNm) { + this.cateMastNm = cateMastNm; + } + + public String getCateMastNm() { + return this.cateMastNm; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdCateVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdCateVO.java new file mode 100644 index 0000000..c503ede --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdCateVO.java @@ -0,0 +1,60 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdCateDefaultVO + * egovframework.cms.board.vo.HmsBrdCateVO + */ +package egovframework.cms.board.vo; + +import egovframework.cms.board.vo.HmsBrdCateDefaultVO; + +public class HmsBrdCateVO +extends HmsBrdCateDefaultVO { + private String cateSeq; + private String cateMastSeq; + private String cateNm; + private String cateSort; + private String recSts; + + public void setCateSeq(String cateSeq) { + this.cateSeq = cateSeq; + } + + public String getCateSeq() { + return this.cateSeq; + } + + public void setCateMastSeq(String cateMastSeq) { + this.cateMastSeq = cateMastSeq; + } + + public String getCateMastSeq() { + return this.cateMastSeq; + } + + public void setCateNm(String cateNm) { + this.cateNm = cateNm; + } + + public String getCateNm() { + return this.cateNm; + } + + public void setCateSort(String cateSort) { + this.cateSort = cateSort; + } + + public String getCateSort() { + return this.cateSort; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdCommentDefaultVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdCommentDefaultVO.java new file mode 100644 index 0000000..798ab1e --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdCommentDefaultVO.java @@ -0,0 +1,206 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdCommentDefaultVO + * org.apache.commons.lang.builder.ToStringBuilder + */ +package egovframework.cms.board.vo; + +import java.io.Serializable; +import org.apache.commons.lang.builder.ToStringBuilder; + +public class HmsBrdCommentDefaultVO +implements Serializable { + private String searchCondition = ""; + private String searchKeyword = ""; + private String searchUseYn = ""; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String brdReplySeq; + private String brdPostSeq; + private String brdMngSeq; + private String userNm; + private String userId; + private String contents; + + public String getBrdMngSeq() { + return this.brdMngSeq; + } + + public void setBrdMngSeq(String brdMngSeq) { + this.brdMngSeq = brdMngSeq; + } + + public String getContents() { + return this.contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getUserNm() { + return this.userNm; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getUserId() { + return this.userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getBrdPostSeq() { + return this.brdPostSeq; + } + + public void setBrdPostSeq(String brdPostSeq) { + this.brdPostSeq = brdPostSeq; + } + + public void setBrdReplySeq(String brdReplySeq) { + this.brdReplySeq = brdReplySeq; + } + + public String getBrdReplySeq() { + return this.brdReplySeq; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (!this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (!this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (!this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public String toString() { + return ToStringBuilder.reflectionToString((Object)this); + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdCommentVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdCommentVO.java new file mode 100644 index 0000000..c848711 --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdCommentVO.java @@ -0,0 +1,111 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdCommentDefaultVO + * egovframework.cms.board.vo.HmsBrdCommentVO + */ +package egovframework.cms.board.vo; + +import egovframework.cms.board.vo.HmsBrdCommentDefaultVO; +import java.sql.Date; + +public class HmsBrdCommentVO +extends HmsBrdCommentDefaultVO { + private static final long serialVersionUID = 1L; + private String brdReplySeq; + private String userId; + private String userNm; + private String passwd; + private String contents; + private Date createDate; + private String recSts; + private String ip; + private String brdPostSeq; + private String brdMngSeq; + + public String getBrdMngSeq() { + return this.brdMngSeq; + } + + public void setBrdMngSeq(String brdMngSeq) { + this.brdMngSeq = brdMngSeq; + } + + public static long getSerialversionuid() { + return 1L; + } + + public String getBrdReplySeq() { + return this.brdReplySeq; + } + + public void setBrdReplySeq(String brdReplySeq) { + this.brdReplySeq = brdReplySeq; + } + + public String getUserId() { + return this.userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserNm() { + return this.userNm; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getPasswd() { + return this.passwd; + } + + public void setPasswd(String passwd) { + this.passwd = passwd; + } + + public String getContents() { + return this.contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public Date getCreateDate() { + return this.createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public String getRecSts() { + return this.recSts; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getIp() { + return this.ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public String getBrdPostSeq() { + return this.brdPostSeq; + } + + public void setBrdPostSeq(String brdPostSeq) { + this.brdPostSeq = brdPostSeq; + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdMngDefaultVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdMngDefaultVO.java new file mode 100644 index 0000000..f8c3e6b --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdMngDefaultVO.java @@ -0,0 +1,179 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdMngDefaultVO + * org.apache.commons.lang.builder.ToStringBuilder + */ +package egovframework.cms.board.vo; + +import java.io.Serializable; +import org.apache.commons.lang.builder.ToStringBuilder; + +public class HmsBrdMngDefaultVO +implements Serializable { + private String searchCondition = ""; + private String searchKeyword = ""; + private String searchUseYn = ""; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String brdMngSeq; + private String writerNm; + private String writerId; + + public String getWriterNm() { + return this.writerNm; + } + + public void setWriterNm(String writerNm) { + this.writerNm = writerNm; + } + + public String getWriterId() { + return this.writerId; + } + + public void setWriterId(String writerId) { + this.writerId = writerId; + } + + public void setBrdMngSeq(String brdMngSeq) { + this.brdMngSeq = brdMngSeq; + } + + public String getBrdMngSeq() { + return this.brdMngSeq; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (!this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (!this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (!this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public String toString() { + return ToStringBuilder.reflectionToString((Object)this); + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdMngVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdMngVO.java new file mode 100644 index 0000000..10c754a --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdMngVO.java @@ -0,0 +1,197 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdMngDefaultVO + * egovframework.cms.board.vo.HmsBrdMngVO + */ +package egovframework.cms.board.vo; + +import egovframework.cms.board.vo.HmsBrdMngDefaultVO; +import java.sql.Date; + +public class HmsBrdMngVO +extends HmsBrdMngDefaultVO { + private static final long serialVersionUID = 1L; + private String brdMngSeq; + private String brdNm; + private String recSts; + private Date createDate; + private String writerId; + private String writerNm; + private String noticeIschk; + private String openIschk; + private String replyIschk; + private String brdType; + private String brdSkin; + private String editorFlag = "N"; + private String showNewPost; + private String addNewPost; + private String showWriteTime; + private String manager; + private int titleLength; + private String cateMastSeq; + private String atchWhite; + private String atchCnt; + + public String getBrdMngSeq() { + return this.brdMngSeq; + } + + public void setBrdMngSeq(String brdMngSeq) { + this.brdMngSeq = brdMngSeq; + } + + public String getBrdNm() { + return this.brdNm; + } + + public void setBrdNm(String brdNm) { + this.brdNm = brdNm; + } + + public String getRecSts() { + return this.recSts; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public Date getCreateDate() { + return this.createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public String getWriterId() { + return this.writerId; + } + + public void setWriterId(String writerId) { + this.writerId = writerId; + } + + public String getWriterNm() { + return this.writerNm; + } + + public void setWriterNm(String writerNm) { + this.writerNm = writerNm; + } + + public String getNoticeIschk() { + return this.noticeIschk; + } + + public void setNoticeIschk(String noticeIschk) { + this.noticeIschk = noticeIschk; + } + + public String getOpenIschk() { + return this.openIschk; + } + + public void setOpenIschk(String openIschk) { + this.openIschk = openIschk; + } + + public String getReplyIschk() { + return this.replyIschk; + } + + public void setReplyIschk(String replyIschk) { + this.replyIschk = replyIschk; + } + + public String getBrdType() { + return this.brdType; + } + + public void setBrdType(String brdType) { + this.brdType = brdType; + } + + public String getBrdSkin() { + return this.brdSkin; + } + + public void setBrdSkin(String brdSkin) { + this.brdSkin = brdSkin; + } + + public String getEditorFlag() { + return this.editorFlag; + } + + public void setEditorFlag(String editorFlag) { + this.editorFlag = editorFlag; + } + + public String getShowNewPost() { + return this.showNewPost; + } + + public void setShowNewPost(String showNewPost) { + this.showNewPost = showNewPost; + } + + public String getAddNewPost() { + return this.addNewPost; + } + + public void setAddNewPost(String addNewPost) { + this.addNewPost = addNewPost; + } + + public String getShowWriteTime() { + return this.showWriteTime; + } + + public void setShowWriteTime(String showWriteTime) { + this.showWriteTime = showWriteTime; + } + + public String getManager() { + return this.manager; + } + + public void setManager(String manager) { + this.manager = manager; + } + + public int getTitleLength() { + return this.titleLength; + } + + public void setTitleLength(int titleLength) { + this.titleLength = titleLength; + } + + public String getCateMastSeq() { + return this.cateMastSeq; + } + + public void setCateMastSeq(String cateMastSeq) { + this.cateMastSeq = cateMastSeq; + } + + public String getAtchWhite() { + return this.atchWhite; + } + + public void setAtchWhite(String atchWhite) { + this.atchWhite = atchWhite; + } + + public String getAtchCnt() { + return this.atchCnt; + } + + public void setAtchCnt(String atchCnt) { + this.atchCnt = atchCnt; + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdPostDefaultVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdPostDefaultVO.java new file mode 100644 index 0000000..dbf16ab --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdPostDefaultVO.java @@ -0,0 +1,266 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdPostDefaultVO + * org.apache.commons.lang.builder.ToStringBuilder + */ +package egovframework.cms.board.vo; + +import java.io.Serializable; +import org.apache.commons.lang.builder.ToStringBuilder; + +public class HmsBrdPostDefaultVO +implements Serializable { + private String searchCondition = ""; + private String searchKeyword = ""; + private String searchUseYn = ""; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String brdPostSeq; + private String brdMngSeq; + private String userId; + private String userNm; + private String atchSeq; + private String searchBrdDepth; + private String searchBrdGroup; + private String searchCateSeq = ""; + private String searchCreateDate; + private String searchUserId; + private String searchStartDate; + private String searchEndDate; + + public String getAtchSeq() { + return this.atchSeq; + } + + public void setAtchSeq(String atchSeq) { + this.atchSeq = atchSeq; + } + + public String getBrdMngSeq() { + return this.brdMngSeq; + } + + public void setBrdMngSeq(String brdMngSeq) { + this.brdMngSeq = brdMngSeq; + } + + public String getUserNm() { + return this.userNm; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getUserId() { + return this.userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public void setBrdPostSeq(String brdPostSeq) { + this.brdPostSeq = brdPostSeq; + } + + public String getBrdPostSeq() { + return this.brdPostSeq; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + if (this.searchCateSeq != null && !this.searchCateSeq.equals("")) { + sb.append("&searchCateSeq=" + this.searchCateSeq); + } + if (this.pageUnit != 0) { + sb.append("&pageUnit=" + this.pageUnit); + } + return sb.toString(); + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public String toString() { + return ToStringBuilder.reflectionToString((Object)this); + } + + public String getSearchBrdDepth() { + return this.searchBrdDepth; + } + + public void setSearchBrdDepth(String searchBrdDepth) { + this.searchBrdDepth = searchBrdDepth; + } + + public String getSearchBrdGroup() { + return this.searchBrdGroup; + } + + public void setSearchBrdGroup(String searchBrdGroup) { + this.searchBrdGroup = searchBrdGroup; + } + + public String getSearchCateSeq() { + return this.searchCateSeq; + } + + public void setSearchCateSeq(String searchCateSeq) { + this.searchCateSeq = searchCateSeq; + } + + public String getSearchCreateDate() { + return this.searchCreateDate; + } + + public void setSearchCreateDate(String searchCreateDate) { + this.searchCreateDate = searchCreateDate; + } + + public String getSearchUserId() { + return this.searchUserId; + } + + public void setSearchUserId(String searchUserId) { + this.searchUserId = searchUserId; + } + + public String getSearchStartDate() { + return this.searchStartDate; + } + + public void setSearchStartDate(String searchStartDate) { + this.searchStartDate = searchStartDate; + } + + public String getSearchEndDate() { + return this.searchEndDate; + } + + public void setSearchEndDate(String searchEndDate) { + this.searchEndDate = searchEndDate; + } +} + diff --git a/src/main/java/egovframework/cms/board/vo/HmsBrdPostVO.java b/src/main/java/egovframework/cms/board/vo/HmsBrdPostVO.java new file mode 100644 index 0000000..6994b13 --- /dev/null +++ b/src/main/java/egovframework/cms/board/vo/HmsBrdPostVO.java @@ -0,0 +1,318 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.vo.HmsBrdPostDefaultVO + * egovframework.cms.board.vo.HmsBrdPostVO + */ +package egovframework.cms.board.vo; + +import egovframework.cms.board.vo.HmsBrdPostDefaultVO; +import java.sql.Date; + +public class HmsBrdPostVO +extends HmsBrdPostDefaultVO { + private static final long serialVersionUID = 1L; + private String brdPostSeq; + private String userId; + private String userNm = ""; + private String atchSeq; + private String recSts; + private String title; + private String passwd; + private int viewCnt; + private String openIschk = "Y"; + private String noticeIschk = "N"; + private Date createDate; + private String contents; + private String ip; + private int brdGroup; + private int brdDepth; + private int brdSort; + private String brdMngSeq; + private String editorFlag; + private String deptNm; + private String officeNm; + private String extField01; + private String extField02; + private String extField03; + private String extField04; + private String extField05; + private String extTitle01; + private String extTitle02; + private String extTitle03; + private String extTitle04; + private String extTitle05; + private String createTime; + private String cateSeq; + private String extContents01; + + public String getBrdMngSeq() { + return this.brdMngSeq; + } + + public void setBrdMngSeq(String brdMngSeq) { + this.brdMngSeq = brdMngSeq; + } + + public static long getSerialversionuid() { + return 1L; + } + + public String getBrdPostSeq() { + return this.brdPostSeq; + } + + public void setBrdPostSeq(String brdPostSeq) { + this.brdPostSeq = brdPostSeq; + } + + public String getUserId() { + return this.userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserNm() { + return this.userNm; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getAtchSeq() { + return this.atchSeq; + } + + public void setAtchSeq(String atchSeq) { + this.atchSeq = atchSeq; + } + + public String getRecSts() { + return this.recSts; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getPasswd() { + return this.passwd; + } + + public void setPasswd(String passwd) { + this.passwd = passwd; + } + + public int getViewCnt() { + return this.viewCnt; + } + + public void setViewCnt(int viewCnt) { + this.viewCnt = viewCnt; + } + + public String getOpenIschk() { + return this.openIschk; + } + + public void setOpenIschk(String openIschk) { + this.openIschk = openIschk; + } + + public String getNoticeIschk() { + return this.noticeIschk; + } + + public void setNoticeIschk(String noticeIschk) { + this.noticeIschk = noticeIschk; + } + + public Date getCreateDate() { + return this.createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public String getContents() { + return this.contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getIp() { + return this.ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public int getBrdGroup() { + return this.brdGroup; + } + + public void setBrdGroup(int brdGroup) { + this.brdGroup = brdGroup; + } + + public int getBrdDepth() { + return this.brdDepth; + } + + public void setBrdDepth(int brdDepth) { + this.brdDepth = brdDepth; + } + + public int getBrdSort() { + return this.brdSort; + } + + public void setBrdSort(int brdSort) { + this.brdSort = brdSort; + } + + public String getEditorFlag() { + return this.editorFlag; + } + + public void setEditorFlag(String editorFlag) { + this.editorFlag = editorFlag; + } + + public String getDeptNm() { + return this.deptNm; + } + + public void setDeptNm(String deptNm) { + this.deptNm = deptNm; + } + + public String getOfficeNm() { + return this.officeNm; + } + + public void setOfficeNm(String officeNm) { + this.officeNm = officeNm; + } + + public String getExtField01() { + return this.extField01; + } + + public void setExtField01(String extField01) { + this.extField01 = extField01; + } + + public String getExtField02() { + return this.extField02; + } + + public void setExtField02(String extField02) { + this.extField02 = extField02; + } + + public String getExtField03() { + return this.extField03; + } + + public void setExtField03(String extField03) { + this.extField03 = extField03; + } + + public String getExtField04() { + return this.extField04; + } + + public void setExtField04(String extField04) { + this.extField04 = extField04; + } + + public String getExtField05() { + return this.extField05; + } + + public void setExtField05(String extField05) { + this.extField05 = extField05; + } + + public String getExtTitle01() { + return this.extTitle01; + } + + public void setExtTitle01(String extTitle01) { + this.extTitle01 = extTitle01; + } + + public String getExtTitle02() { + return this.extTitle02; + } + + public void setExtTitle02(String extTitle02) { + this.extTitle02 = extTitle02; + } + + public String getExtTitle03() { + return this.extTitle03; + } + + public void setExtTitle03(String extTitle03) { + this.extTitle03 = extTitle03; + } + + public String getExtTitle04() { + return this.extTitle04; + } + + public void setExtTitle04(String extTitle04) { + this.extTitle04 = extTitle04; + } + + public String getExtTitle05() { + return this.extTitle05; + } + + public void setExtTitle05(String extTitle05) { + this.extTitle05 = extTitle05; + } + + public String getCreateTime() { + return this.createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getCateSeq() { + return this.cateSeq; + } + + public void setCateSeq(String cateSeq) { + this.cateSeq = cateSeq; + } + + public String getExtContents01() { + return this.extContents01; + } + + public void setExtContents01(String extContents01) { + this.extContents01 = extContents01; + } +} + diff --git a/src/main/java/egovframework/cms/board/web/HmsBrdCateController.java b/src/main/java/egovframework/cms/board/web/HmsBrdCateController.java new file mode 100644 index 0000000..5cab9e2 --- /dev/null +++ b/src/main/java/egovframework/cms/board/web/HmsBrdCateController.java @@ -0,0 +1,242 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.service.HmsBrdCateMastService + * egovframework.cms.board.service.HmsBrdCateService + * egovframework.cms.board.vo.HmsBrdCateDefaultVO + * egovframework.cms.board.vo.HmsBrdCateMastVO + * egovframework.cms.board.vo.HmsBrdCateVO + * egovframework.cms.board.web.HmsBrdCateController + * egovframework.com.cmm.LoginVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.psl.dataaccess.util.EgovMap + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.board.web; + +import egovframework.cms.board.service.HmsBrdCateMastService; +import egovframework.cms.board.service.HmsBrdCateService; +import egovframework.cms.board.vo.HmsBrdCateDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateMastVO; +import egovframework.cms.board.vo.HmsBrdCateVO; +import egovframework.com.cmm.LoginVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsBrdCateVO.class}) +public class HmsBrdCateController { + @Resource(name="hmsBrdCateService") + private HmsBrdCateService hmsBrdCateService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="hmsBrdCateMastService") + private HmsBrdCateMastService hmsBrdCateMastService; + + @RequestMapping(value={"/hms/hmsBrdCate/hmsBrdCateIndex.do"}) + public String hmsBrdCateIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsBrdCateList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsBrdCate(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsBrdCateView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsBrdCate(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_BOARD", (Object)UserDetailsHelper.isRole((String)"ROLE_BOARD")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsBrdCateList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUseYn("N"); + int totCnt = this.hmsBrdCateService.selectHmsBrdCateListTotCnt(searchVO); + int nextSortNum = 10; + if (totCnt > 0) { + List hmsBrdCateList = this.hmsBrdCateService.selectHmsBrdCateList(searchVO); + try { + nextSortNum = Integer.parseInt((String)((EgovMap)hmsBrdCateList.get(hmsBrdCateList.size() - 1)).get((Object)"cateSort")) + 10; + } + catch (Exception e) { + e.printStackTrace(); + nextSortNum = 10; + } + model.addAttribute("resultList", (Object)hmsBrdCateList); + } + model.addAttribute("nextSortNum", (Object)nextSortNum); + return "/cms/hmsBrdCate/HmsBrdCateList"; + } + + private String addHmsBrdCateView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateDefaultVO searchVO, Model model) throws Exception { + HmsBrdCateMastVO hmsBrdCateMastVO = new HmsBrdCateMastVO(); + hmsBrdCateMastVO.setCateMastSeq(searchVO.getSearchCateMastSeq()); + hmsBrdCateMastVO = this.hmsBrdCateMastService.selectHmsBrdCateMast(hmsBrdCateMastVO); + HmsBrdCateVO hmsBrdCateVO = new HmsBrdCateVO(); + hmsBrdCateVO.setCateSort(request.getParameter("nextSortNum")); + model.addAttribute("hmsBrdCateVO", (Object)hmsBrdCateVO); + model.addAttribute("hmsBrdCateMastVO", (Object)hmsBrdCateMastVO); + return "/cms/hmsBrdCate/HmsBrdCateRegister"; + } + + @RequestMapping(value={"/hms/hmsBrdCate/addHmsBrdCate.do"}) + public String addHmsBrdCate(MultipartHttpServletRequest request, HttpServletResponse response, HmsBrdCateVO hmsBrdCateVO, @ModelAttribute(value="searchVO") HmsBrdCateDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsBrdCateService.insertHmsBrdCate(hmsBrdCateVO, request); + status.setComplete(); + return "redirect:" + searchVO.getParentUrl() + "?searchCateMastSeq=" + hmsBrdCateVO.getCateMastSeq(); + } + + private String updateHmsBrdCate(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateDefaultVO searchVO, Model model) throws Exception { + HmsBrdCateVO hmsBrdCateVO = new HmsBrdCateVO(); + hmsBrdCateVO.setCateSeq(searchVO.getCateSeq()); + hmsBrdCateVO = this.hmsBrdCateService.selectHmsBrdCate(hmsBrdCateVO); + if (!this.checkWriteAuth(hmsBrdCateVO)) { + return "cmm/privilegeError"; + } + HmsBrdCateMastVO hmsBrdCateMastVO = new HmsBrdCateMastVO(); + hmsBrdCateMastVO.setCateMastSeq(searchVO.getSearchCateMastSeq()); + hmsBrdCateMastVO = this.hmsBrdCateMastService.selectHmsBrdCateMast(hmsBrdCateMastVO); + model.addAttribute("hmsBrdCateVO", (Object)hmsBrdCateVO); + model.addAttribute("hmsBrdCateMastVO", (Object)hmsBrdCateMastVO); + return "/cms/hmsBrdCate/HmsBrdCateRegister"; + } + + @RequestMapping(value={"/hms/hmsBrdCate/updateHmsBrdCate.do"}) + public String updateHmsBrdCate(MultipartHttpServletRequest request, HttpServletResponse response, HmsBrdCateVO hmsBrdCateVO, @ModelAttribute(value="searchVO") HmsBrdCateDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsBrdCateVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsBrdCateService.updateHmsBrdCate(hmsBrdCateVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&cateSeq=" + hmsBrdCateVO.getCateSeq() + "&searchCateMastSeq=" + hmsBrdCateVO.getCateMastSeq(); + } + + private String selectHmsBrdCate(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsBrdCateVO hmsBrdCateVO = new HmsBrdCateVO(); + hmsBrdCateVO.setCateSeq(searchVO.getCateSeq()); + hmsBrdCateVO = this.hmsBrdCateService.selectHmsBrdCate(hmsBrdCateVO); + HmsBrdCateMastVO hmsBrdCateMastVO = new HmsBrdCateMastVO(); + hmsBrdCateMastVO.setCateMastSeq(hmsBrdCateVO.getCateMastSeq()); + hmsBrdCateMastVO = this.hmsBrdCateMastService.selectHmsBrdCateMast(hmsBrdCateMastVO); + model.addAttribute("hmsBrdCateVO", (Object)hmsBrdCateVO); + model.addAttribute("hmsBrdCateMastVO", (Object)hmsBrdCateMastVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsBrdCateVO)); + return "/cms/hmsBrdCate/HmsBrdCateDetail"; + } + + @RequestMapping(value={"/hms/hmsBrdCate/deleteHmsBrdCate.do"}) + public String deleteHmsBrdCate(HttpServletRequest request, HmsBrdCateVO hmsBrdCateVO, @ModelAttribute(value="searchVO") HmsBrdCateDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsBrdCateVO)) { + return "cmm/privilegeError"; + } + this.hmsBrdCateService.deleteHmsBrdCate(hmsBrdCateVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&searchCateMastSeq=" + hmsBrdCateVO.getCateMastSeq(); + } + + private boolean checkWriteAuth(HmsBrdCateVO hmsBrdCateVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_BOARD").booleanValue()) { + return true; + } + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/board/web/HmsBrdCateMastController.java b/src/main/java/egovframework/cms/board/web/HmsBrdCateMastController.java new file mode 100644 index 0000000..e32d932 --- /dev/null +++ b/src/main/java/egovframework/cms/board/web/HmsBrdCateMastController.java @@ -0,0 +1,224 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.service.HmsBrdCateMastService + * egovframework.cms.board.vo.HmsBrdCateMastDefaultVO + * egovframework.cms.board.vo.HmsBrdCateMastVO + * egovframework.cms.board.web.HmsBrdCateMastController + * egovframework.com.cmm.LoginVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.board.web; + +import egovframework.cms.board.service.HmsBrdCateMastService; +import egovframework.cms.board.vo.HmsBrdCateMastDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateMastVO; +import egovframework.com.cmm.LoginVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsBrdCateMastVO.class}) +public class HmsBrdCateMastController { + @Resource(name="hmsBrdCateMastService") + private HmsBrdCateMastService hmsBrdCateMastService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + + @RequestMapping(value={"/hms/hmsBrdCateMast/hmsBrdCateMastIndex.do"}) + public String hmsBrdCateMastIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateMastDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsBrdCateMastList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsBrdCateMast(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsBrdCateMastView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsBrdCateMast(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_BOARD", (Object)UserDetailsHelper.isRole((String)"ROLE_BOARD")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsBrdCateMastList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateMastDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = this.hmsBrdCateMastService.selectHmsBrdCateMastListTotCnt(searchVO); + if (totCnt > 0) { + List hmsBrdCateMastList = this.hmsBrdCateMastService.selectHmsBrdCateMastList(searchVO); + model.addAttribute("resultList", (Object)hmsBrdCateMastList); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "/cms/hmsBrdCateMast/HmsBrdCateMastList"; + } + + private String addHmsBrdCateMastView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateMastDefaultVO searchVO, Model model) throws Exception { + HmsBrdCateMastVO hmsBrdCateMastVO = new HmsBrdCateMastVO(); + model.addAttribute("hmsBrdCateMastVO", (Object)hmsBrdCateMastVO); + return "/cms/hmsBrdCateMast/HmsBrdCateMastRegister"; + } + + @RequestMapping(value={"/hms/hmsBrdCateMast/addHmsBrdCateMast.do"}) + public String addHmsBrdCateMast(MultipartHttpServletRequest request, HttpServletResponse response, HmsBrdCateMastVO hmsBrdCateMastVO, @ModelAttribute(value="searchVO") HmsBrdCateMastDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsBrdCateMastService.insertHmsBrdCateMast(hmsBrdCateMastVO, request); + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateHmsBrdCateMast(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateMastDefaultVO searchVO, Model model) throws Exception { + HmsBrdCateMastVO hmsBrdCateMastVO = new HmsBrdCateMastVO(); + hmsBrdCateMastVO.setCateMastSeq(searchVO.getCateMastSeq()); + hmsBrdCateMastVO = this.hmsBrdCateMastService.selectHmsBrdCateMast(hmsBrdCateMastVO); + if (!this.checkWriteAuth(hmsBrdCateMastVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("hmsBrdCateMastVO", (Object)hmsBrdCateMastVO); + return "/cms/hmsBrdCateMast/HmsBrdCateMastRegister"; + } + + @RequestMapping(value={"/hms/hmsBrdCateMast/updateHmsBrdCateMast.do"}) + public String updateHmsBrdCateMast(MultipartHttpServletRequest request, HttpServletResponse response, HmsBrdCateMastVO hmsBrdCateMastVO, @ModelAttribute(value="searchVO") HmsBrdCateMastDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsBrdCateMastVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsBrdCateMastService.updateHmsBrdCateMast(hmsBrdCateMastVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&cateMastSeq=" + hmsBrdCateMastVO.getCateMastSeq(); + } + + private String selectHmsBrdCateMast(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdCateMastDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsBrdCateMastVO hmsBrdCateMastVO = new HmsBrdCateMastVO(); + hmsBrdCateMastVO.setCateMastSeq(searchVO.getCateMastSeq()); + hmsBrdCateMastVO = this.hmsBrdCateMastService.selectHmsBrdCateMast(hmsBrdCateMastVO); + model.addAttribute("hmsBrdCateMastVO", (Object)hmsBrdCateMastVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsBrdCateMastVO)); + return "/cms/hmsBrdCateMast/HmsBrdCateMastDetail"; + } + + @RequestMapping(value={"/hms/hmsBrdCateMast/deleteHmsBrdCateMast.do"}) + public String deleteHmsBrdCateMast(HttpServletRequest request, HmsBrdCateMastVO hmsBrdCateMastVO, @ModelAttribute(value="searchVO") HmsBrdCateMastDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsBrdCateMastVO)) { + return "cmm/privilegeError"; + } + this.hmsBrdCateMastService.deleteHmsBrdCateMast(hmsBrdCateMastVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsBrdCateMastVO hmsBrdCateMastVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_BOARD").booleanValue()) { + return true; + } + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/board/web/HmsBrdMngController.java b/src/main/java/egovframework/cms/board/web/HmsBrdMngController.java new file mode 100644 index 0000000..bcdcfb9 --- /dev/null +++ b/src/main/java/egovframework/cms/board/web/HmsBrdMngController.java @@ -0,0 +1,266 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.board.service.HmsBrdCateMastService + * egovframework.cms.board.service.HmsBrdMngService + * egovframework.cms.board.vo.HmsBrdCateMastDefaultVO + * egovframework.cms.board.vo.HmsBrdCateMastVO + * egovframework.cms.board.vo.HmsBrdCommentDefaultVO + * egovframework.cms.board.vo.HmsBrdMngDefaultVO + * egovframework.cms.board.vo.HmsBrdMngVO + * egovframework.cms.board.web.HmsBrdMngController + * egovframework.com.cmm.LoginVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + */ +package egovframework.cms.board.web; + +import egovframework.cms.board.service.HmsBrdCateMastService; +import egovframework.cms.board.service.HmsBrdMngService; +import egovframework.cms.board.vo.HmsBrdCateMastDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateMastVO; +import egovframework.cms.board.vo.HmsBrdCommentDefaultVO; +import egovframework.cms.board.vo.HmsBrdMngDefaultVO; +import egovframework.cms.board.vo.HmsBrdMngVO; +import egovframework.com.cmm.LoginVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; + +@Controller +@SessionAttributes(types={HmsBrdMngVO.class}) +public class HmsBrdMngController { + @Resource(name="hmsBrdMngService") + private HmsBrdMngService hmsBrdMngService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="hmsBrdCateMastService") + private HmsBrdCateMastService hmsBrdCateMastService; + + @RequestMapping(value={"/hms/hmsBrdMng/hmsBrdMngIndex.do"}) + public String hmsBrdMngIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdMngDefaultVO searchVO, @ModelAttribute(value="commentVO") HmsBrdCommentDefaultVO commentVO, SessionStatus status, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/privilegeError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsBrdMngList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsBrdMng(request, response, searchVO, model, status); + } else if (bmode.equals("add")) { + viewName = this.addHmsBrdMngView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsBrdMng(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_BOARD", (Object)UserDetailsHelper.isRole((String)"ROLE_BOARD")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsBrdMngList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdMngDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + try { + List hmsBrdMngList = this.hmsBrdMngService.selectHmsBrdMngList(searchVO); + model.addAttribute("resultList", (Object)hmsBrdMngList); + int totCnt = this.hmsBrdMngService.selectHmsBrdMngListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + } + catch (Exception e) { + e.printStackTrace(); + } + return "/cms/hmsBrdMng/HmsBrdMngList"; + } + + private String addHmsBrdMngView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdMngDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist").toLowerCase(); + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setWriterId(loginVO.getId()); + hmsBrdMngVO.setWriterNm(loginVO.getName()); + hmsBrdMngVO.setShowNewPost("2"); + hmsBrdMngVO.setAddNewPost("on"); + hmsBrdMngVO.setShowWriteTime("on"); + hmsBrdMngVO.setBrdSkin("default"); + hmsBrdMngVO.setTitleLength(0); + hmsBrdMngVO.setAtchCnt("5"); + hmsBrdMngVO.setAtchWhite(whitelist); + HmsBrdCateMastDefaultVO hmsBrdCateMastDefaultVO = new HmsBrdCateMastDefaultVO(); + hmsBrdCateMastDefaultVO.setPageUseYn("N"); + hmsBrdCateMastDefaultVO.setOrderby("name"); + List hmsBrdCateMastList = this.hmsBrdCateMastService.selectHmsBrdCateMastList(hmsBrdCateMastDefaultVO); + model.addAttribute("hmsBrdMngVO", (Object)hmsBrdMngVO); + model.addAttribute("hmsBrdCateMastList", (Object)hmsBrdCateMastList); + return "/cms/hmsBrdMng/HmsBrdMngRegister"; + } + + @RequestMapping(value={"/hms/hmsBrdMng/addHmsBrdMng.do"}) + public String addHmsBrdMng(HttpServletRequest request, HmsBrdMngVO hmsBrdMngVO, @ModelAttribute(value="searchVO") HmsBrdMngDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/privilegeError"; + } + try { + Integer.parseInt(hmsBrdMngVO.getAtchCnt()); + } + catch (Exception e) { + e.printStackTrace(); + hmsBrdMngVO.setAtchCnt("0"); + } + this.hmsBrdMngService.insertHmsBrdMng(hmsBrdMngVO, request); + status.setComplete(); + return "redirect:" + searchVO.getParentUrl() + "?brdMngSeq=" + searchVO.getBrdMngSeq(); + } + + private String updateHmsBrdMng(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdMngDefaultVO searchVO, Model model) throws Exception { + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + if (!this.checkWriteAuth(hmsBrdMngVO)) { + return "cmm/privilegeError"; + } + HmsBrdCateMastDefaultVO hmsBrdCateMastDefaultVO = new HmsBrdCateMastDefaultVO(); + hmsBrdCateMastDefaultVO.setPageUseYn("N"); + hmsBrdCateMastDefaultVO.setOrderby("name"); + List hmsBrdCateMastList = this.hmsBrdCateMastService.selectHmsBrdCateMastList(hmsBrdCateMastDefaultVO); + model.addAttribute("hmsBrdMngVO", (Object)hmsBrdMngVO); + model.addAttribute("hmsBrdCateMastList", (Object)hmsBrdCateMastList); + return "/cms/hmsBrdMng/HmsBrdMngRegister"; + } + + @RequestMapping(value={"/hms/hmsBrdMng/updateHmsBrdMng.do"}) + public String updateHmsBrdMng(HttpServletRequest request, HmsBrdMngVO hmsBrdMngVO, @ModelAttribute(value="searchVO") HmsBrdMngDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsBrdMngVO)) { + return "cmm/privilegeError"; + } + try { + Integer.parseInt(hmsBrdMngVO.getAtchCnt()); + } + catch (Exception e) { + e.printStackTrace(); + hmsBrdMngVO.setAtchCnt("0"); + } + this.hmsBrdMngService.updateHmsBrdMng(hmsBrdMngVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&brdMngSeq=" + hmsBrdMngVO.getBrdMngSeq(); + } + + private String selectHmsBrdMng(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdMngDefaultVO searchVO, Model model, SessionStatus status) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + String brdMngSeq = request.getParameter("brdMngSeq"); + try { + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(brdMngSeq); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + if (hmsBrdMngVO.getCateMastSeq() != null && !hmsBrdMngVO.getCateMastSeq().equals("")) { + HmsBrdCateMastVO hmsBrdCateMastVO = new HmsBrdCateMastVO(); + hmsBrdCateMastVO.setCateMastSeq(hmsBrdMngVO.getCateMastSeq()); + hmsBrdCateMastVO = this.hmsBrdCateMastService.selectHmsBrdCateMast(hmsBrdCateMastVO); + model.addAttribute("hmsBrdCateMastVO", (Object)hmsBrdCateMastVO); + } + model.addAttribute("hmsBrdMngVO", (Object)hmsBrdMngVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsBrdMngVO)); + } + catch (Exception e) { + e.printStackTrace(); + } + return "/cms/hmsBrdMng/HmsBrdMngDetail"; + } + + @RequestMapping(value={"/hms/hmsBrdMng/deleteHmsBrdMng.do"}) + public String deleteHmsBrdMng(HttpServletRequest request, HmsBrdMngVO hmsBrdMngVO, @ModelAttribute(value="searchVO") HmsBrdMngDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsBrdMngVO)) { + return "cmm/privilegeError"; + } + this.hmsBrdMngService.deleteHmsBrdMng(hmsBrdMngVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsBrdMngVO hmsBrdMngVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_BOARD").booleanValue()) { + return true; + } + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/board/web/HmsBrdPostController.java b/src/main/java/egovframework/cms/board/web/HmsBrdPostController.java new file mode 100644 index 0000000..0723cb9 --- /dev/null +++ b/src/main/java/egovframework/cms/board/web/HmsBrdPostController.java @@ -0,0 +1,623 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * com.ibm.icu.util.Calendar + * egovframework.cms.board.service.HmsBrdCateMastService + * egovframework.cms.board.service.HmsBrdCateService + * egovframework.cms.board.service.HmsBrdCommentService + * egovframework.cms.board.service.HmsBrdMngService + * egovframework.cms.board.service.HmsBrdPostService + * egovframework.cms.board.vo.HmsBrdCateDefaultVO + * egovframework.cms.board.vo.HmsBrdCateVO + * egovframework.cms.board.vo.HmsBrdCommentDefaultVO + * egovframework.cms.board.vo.HmsBrdCommentVO + * egovframework.cms.board.vo.HmsBrdMngVO + * egovframework.cms.board.vo.HmsBrdPostDefaultVO + * egovframework.cms.board.vo.HmsBrdPostVO + * egovframework.cms.board.web.HmsBrdPostController + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.common.util.EdosiDateUtil + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.psl.dataaccess.util.EgovMap + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.board.web; + +import com.ibm.icu.util.Calendar; +import egovframework.cms.board.service.HmsBrdCateMastService; +import egovframework.cms.board.service.HmsBrdCateService; +import egovframework.cms.board.service.HmsBrdCommentService; +import egovframework.cms.board.service.HmsBrdMngService; +import egovframework.cms.board.service.HmsBrdPostService; +import egovframework.cms.board.vo.HmsBrdCateDefaultVO; +import egovframework.cms.board.vo.HmsBrdCateVO; +import egovframework.cms.board.vo.HmsBrdCommentDefaultVO; +import egovframework.cms.board.vo.HmsBrdCommentVO; +import egovframework.cms.board.vo.HmsBrdMngVO; +import egovframework.cms.board.vo.HmsBrdPostDefaultVO; +import egovframework.cms.board.vo.HmsBrdPostVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.common.util.EdosiDateUtil; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsBrdPostVO.class}) +public class HmsBrdPostController { + @Resource(name="hmsBrdPostService") + private HmsBrdPostService hmsBrdPostService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="hmsBrdCommentService") + private HmsBrdCommentService hmsBrdCommentService; + @Resource(name="hmsBrdMngService") + private HmsBrdMngService hmsBrdMngService; + @Resource(name="codeResource") + private CodeResource codeResource; + private final String COMMON_BOARD = "cboard"; + @Resource(name="hmsBrdCateService") + private HmsBrdCateService hmsBrdCateService; + @Resource(name="hmsBrdCateMastService") + private HmsBrdCateMastService hmsBrdCateMastService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/hms/hmsBrdPost/hmsBrdPostIndex.do"}) + public String hmsBrdPostIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, @ModelAttribute(value="commentVO") HmsBrdCommentDefaultVO commentVO, SessionStatus status, ModelMap modelMap, Model model) throws Exception { + UserDetailsHelper.isAuthenticated().booleanValue(); + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsBrdPostList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsBrdPost(request, response, searchVO, model, status); + } else if (bmode.equals("add")) { + viewName = this.addHmsBrdPostView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsBrdPost(request, response, searchVO, model); + } else if (bmode.equals("reply")) { + viewName = this.addHmsBrdReplyView(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsBrdPostList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, Model model) throws Exception { + if (searchVO.getBrdMngSeq() != null && searchVO.getBrdMngSeq().equals("cboard")) { + return this.selectHmsBrdNewPostList(request, response, searchVO, model); + } + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + try { + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + model.addAttribute("hmsBrdMngVO", (Object)hmsBrdMngVO); + } + catch (Exception e) { + throw new Exception(); + } + if (hmsBrdMngVO.getCateMastSeq() != null && !hmsBrdMngVO.getCateMastSeq().equals("")) { + HmsBrdCateDefaultVO hmsBrdCateDefaultVO = new HmsBrdCateDefaultVO(); + hmsBrdCateDefaultVO.setPageUseYn("N"); + hmsBrdCateDefaultVO.setSearchCateMastSeq(hmsBrdMngVO.getCateMastSeq()); + List cateList = this.hmsBrdCateService.selectHmsBrdCateList(hmsBrdCateDefaultVO); + model.addAttribute("cateList", (Object)cateList); + } + HashMap result = new HashMap(); + this.cookBoardList(result, hmsBrdMngVO, searchVO); + paginationInfo.setTotalRecordCount(((Integer)result.get("totCnt")).intValue()); + model.addAttribute("resultList", result.get("hmsBrdPostList")); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "/cms/hmsBrdPost/" + hmsBrdMngVO.getBrdSkin() + "/HmsBrdPostList"; + } + + private void cookBoardList(Map map, HmsBrdMngVO hmsBrdMngVO, HmsBrdPostDefaultVO searchVO) throws Exception { + if (hmsBrdMngVO.getBrdType().equals("notice") || hmsBrdMngVO.getBrdType().equals("qna")) { + searchVO.setSearchBrdDepth("0"); + } + int totCnt = this.hmsBrdPostService.selectHmsBrdPostListTotCnt(searchVO); + List hmsBrdPostList = null; + if (totCnt == 0) { + map.put("totCnt", totCnt); + map.put("hmsBrdPostList", hmsBrdPostList); + return; + } + if (hmsBrdMngVO.getBrdType().equals("guest")) { + hmsBrdPostList = this.hmsBrdPostService.selectHmsBrdPostList(searchVO); + int day = Integer.parseInt(hmsBrdMngVO.getShowNewPost()); + String today = EdosiDateUtil.getToDayString((String)"-", (int)(-day)); + int i = 0; + while (i < hmsBrdPostList.size()) { + EgovMap m = (EgovMap)hmsBrdPostList.get(i); + if (("" + m.get((Object)"createDate")).compareTo(today) > 0) { + m.put((Object)"newPost", (Object)"new"); + } + if (hmsBrdMngVO.getShowWriteTime() != null && ("" + m.get((Object)"createDate")).compareTo(EdosiDateUtil.getToDayString((String)"-", (int)0)) == 0) { + try { + m.put((Object)"createDate", m.get((Object)"createTime")); + } + catch (Exception e) { + e.printStackTrace(); + } + } + ++i; + } + } else { + hmsBrdPostList = this.hmsBrdPostService.selectHmsBrdPostList(searchVO); + int day = Integer.parseInt(hmsBrdMngVO.getShowNewPost()); + String today = EdosiDateUtil.getToDayString((String)"-", (int)(-day)); + int titleLength = hmsBrdMngVO.getTitleLength(); + int i = 0; + while (i < hmsBrdPostList.size()) { + EgovMap m = (EgovMap)hmsBrdPostList.get(i); + if (("" + m.get((Object)"createDate")).compareTo(today) > 0) { + m.put((Object)"newPost", (Object)"new"); + } + String titleAlt = (String)m.get((Object)"title"); + if (titleLength > 0) { + String title = ""; + title = titleAlt.length() > titleLength ? String.valueOf(titleAlt.substring(0, titleLength)) + "..." : titleAlt; + m.put((Object)"title", (Object)title); + } + m.put((Object)"titleAlt", (Object)titleAlt); + if (hmsBrdMngVO.getShowWriteTime() != null && ("" + m.get((Object)"createDate")).compareTo(EdosiDateUtil.getToDayString((String)"-", (int)0)) == 0) { + try { + m.put((Object)"createDate", m.get((Object)"createTime")); + } + catch (Exception e) { + e.printStackTrace(); + } + } + ++i; + } + } + map.put("totCnt", totCnt); + map.put("hmsBrdPostList", hmsBrdPostList); + } + + private String selectHmsBrdNewPostList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + searchVO.setSearchBrdDepth("0"); + List hmsBrdPostList = null; + int totCnt = this.hmsBrdPostService.selectHmsBrdNewPostListTotCnt(searchVO); + if (totCnt != 0) { + hmsBrdPostList = this.hmsBrdPostService.selectHmsBrdNewPostList(searchVO); + int day = 3; + String today = EdosiDateUtil.getToDayString((String)"-", (int)(-day)); + Calendar cal = Calendar.getInstance(); + int i = 0; + while (i < hmsBrdPostList.size()) { + EgovMap m = (EgovMap)hmsBrdPostList.get(i); + if (("" + m.get((Object)"createDate")).compareTo(today) > 0) { + m.put((Object)"newPost", (Object)"new"); + } + String titleAlt = (String)m.get((Object)"title"); + m.put((Object)"titleAlt", (Object)titleAlt); + if (("" + m.get((Object)"createDate")).compareTo(EdosiDateUtil.getToDayString((String)"-", (int)0)) == 0) { + try { + m.put((Object)"createDate", m.get((Object)"createTime")); + } + catch (Exception e) { + e.printStackTrace(); + } + } + ++i; + } + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("resultList", (Object)hmsBrdPostList); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "/cms/hmsBrdPost/HmsBrdNewPostList"; + } + + private String addHmsBrdPostView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, Model model) throws Exception { + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + HmsBrdPostVO hmsBrdPostVO = new HmsBrdPostVO(); + if (hmsBrdMngVO.getCateMastSeq() != null && !hmsBrdMngVO.getCateMastSeq().equals("")) { + HmsBrdCateDefaultVO hmsBrdCateDefaultVO = new HmsBrdCateDefaultVO(); + hmsBrdCateDefaultVO.setPageUseYn("N"); + hmsBrdCateDefaultVO.setSearchCateMastSeq(hmsBrdMngVO.getCateMastSeq()); + List cateList = this.hmsBrdCateService.selectHmsBrdCateList(hmsBrdCateDefaultVO); + model.addAttribute("cateList", (Object)cateList); + } + model.addAttribute("hmsBrdPostVO", (Object)hmsBrdPostVO); + model.addAttribute("hmsBrdMngVO", (Object)hmsBrdMngVO); + return "/cms/hmsBrdPost/" + hmsBrdMngVO.getBrdSkin() + "/HmsBrdPostRegister"; + } + + private String addHmsBrdReplyView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, Model model) throws Exception { + HmsBrdPostVO hmsBrdPostVO2 = new HmsBrdPostVO(); + hmsBrdPostVO2.setBrdPostSeq(searchVO.getBrdPostSeq()); + hmsBrdPostVO2.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdPostVO2 = this.hmsBrdPostService.selectHmsBrdPost(hmsBrdPostVO2); + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + HmsBrdPostVO hmsBrdPostVO = new HmsBrdPostVO(); + hmsBrdPostVO.setUserId(loginVO.getId()); + hmsBrdPostVO.setUserNm(loginVO.getName()); + hmsBrdPostVO.setTitle(hmsBrdPostVO2.getTitle()); + hmsBrdPostVO.setContents("\n\n\n\n\n====================원본 메세지==================\n" + hmsBrdPostVO2.getContents()); + hmsBrdPostVO.setBrdSort(hmsBrdPostVO2.getBrdSort()); + hmsBrdPostVO.setBrdGroup(hmsBrdPostVO2.getBrdGroup()); + hmsBrdPostVO.setBrdDepth(hmsBrdPostVO2.getBrdDepth()); + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + model.addAttribute("hmsBrdMngVO", (Object)hmsBrdMngVO); + model.addAttribute("hmsBrdPostVO", (Object)hmsBrdPostVO); + model.addAttribute("hmsBrdPostVO2", (Object)hmsBrdPostVO2); + return "/cms/hmsBrdPost/" + hmsBrdMngVO.getBrdSkin() + "/HmsBrdPostRegister"; + } + + @RequestMapping(value={"/hms/hmsBrdPost/addHmsBrdPost.do"}) + public String addHmsBrdPost(MultipartHttpServletRequest request, HttpServletResponse response, HmsBrdPostVO hmsBrdPostVO, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + String white = this.hmsBrdPostService.checkFileWhiteList(request, "file_", hmsBrdMngVO.getAtchWhite()); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.hmsBrdPostService.insertHmsBrdPost(hmsBrdPostVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + @RequestMapping(value={"/hms/hmsBrdPost/addHmsBrdReply.do"}) + public String addHmsBrdReply(MultipartHttpServletRequest request, HttpServletResponse response, HmsBrdPostVO hmsBrdPostVO, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + String white = this.hmsBrdPostService.checkFileWhiteList(request, "file_", hmsBrdMngVO.getAtchWhite()); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.hmsBrdPostService.insertHmsBrdPostReply(hmsBrdPostVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + @RequestMapping(value={"/hms/hmsBrdPost/addHmsBrdComment.do"}) + public String addHmsBrdComment(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="commentVO") HmsBrdCommentDefaultVO commentVO, SessionStatus status) throws Exception { + HmsBrdCommentVO hmsBrdCommentVO = new HmsBrdCommentVO(); + hmsBrdCommentVO.setBrdPostSeq(commentVO.getBrdPostSeq()); + hmsBrdCommentVO.setContents(commentVO.getContents()); + hmsBrdCommentVO.setUserId(commentVO.getUserId()); + hmsBrdCommentVO.setUserNm(commentVO.getUserNm()); + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsBrdCommentService.insertHmsBrdComment(hmsBrdCommentVO, request); + status.setComplete(); + return "redirect:" + commentVO.getParentUrl() + commentVO.toParam() + "&brdPostSeq=" + commentVO.getBrdPostSeq(); + } + + @RequestMapping(value={"/hms/hmsBrdPost/deleteHmsBrdComment.do"}) + public String deleteHmsBrdComment(HttpServletRequest request, HttpServletResponse response, HmsBrdCommentVO hmsBrdCommentVO, @ModelAttribute(value="commentVO") HmsBrdCommentDefaultVO commentVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsBrdCommentService.deleteHmsBrdComment(hmsBrdCommentVO, request); + status.setComplete(); + if (commentVO.getSearchKeyword() != null && !commentVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)commentVO.getSearchKeyword()); + } + return "redirect:" + commentVO.getParentUrl() + commentVO.toParam(); + } + + private String updateHmsBrdPost(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, Model model) throws Exception { + HmsBrdPostVO hmsBrdPostVO = new HmsBrdPostVO(); + hmsBrdPostVO.setBrdPostSeq(searchVO.getBrdPostSeq()); + hmsBrdPostVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdPostVO = this.hmsBrdPostService.selectHmsBrdPost(hmsBrdPostVO); + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + if (!this.checkWriteAuth(hmsBrdPostVO)) { + return "cmm/privilegeError"; + } + if (hmsBrdMngVO.getCateMastSeq() != null && !hmsBrdMngVO.getCateMastSeq().equals("")) { + HmsBrdCateDefaultVO hmsBrdCateDefaultVO = new HmsBrdCateDefaultVO(); + hmsBrdCateDefaultVO.setPageUseYn("N"); + hmsBrdCateDefaultVO.setSearchCateMastSeq(hmsBrdMngVO.getCateMastSeq()); + List cateList = this.hmsBrdCateService.selectHmsBrdCateList(hmsBrdCateDefaultVO); + model.addAttribute("cateList", (Object)cateList); + } + model.addAttribute("hmsBrdMngVO", (Object)hmsBrdMngVO); + model.addAttribute("hmsBrdPostVO", (Object)hmsBrdPostVO); + return "/cms/hmsBrdPost/" + hmsBrdMngVO.getBrdSkin() + "/HmsBrdPostRegister"; + } + + @RequestMapping(value={"/hms/hmsBrdPost/updateHmsBrdPost.do"}) + public String updateHmsBrdPost(MultipartHttpServletRequest request, HttpServletResponse response, HmsBrdPostVO hmsBrdPostVO, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, SessionStatus status) throws Exception { + block7: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + if (!this.checkWriteAuth(hmsBrdPostVO)) { + return "cmm/privilegeError"; + } + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + String white = this.hmsBrdPostService.checkFileWhiteList(request, "file_", hmsBrdMngVO.getAtchWhite()); + if (white == null) break block7; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.hmsBrdPostService.updateHmsBrdPost(hmsBrdPostVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&brdPostSeq=" + hmsBrdPostVO.getBrdPostSeq(); + } + + private String selectHmsBrdPost(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, Model model, SessionStatus status) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + model.addAttribute("hmsBrdMngVO", (Object)hmsBrdMngVO); + try { + HmsBrdPostVO hmsBrdPostVO = new HmsBrdPostVO(); + hmsBrdPostVO.setBrdPostSeq(searchVO.getBrdPostSeq()); + hmsBrdPostVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + this.hmsBrdPostService.updateIncrementHit(hmsBrdPostVO); + hmsBrdPostVO = this.hmsBrdPostService.selectHmsBrdPost(hmsBrdPostVO); + if (hmsBrdMngVO.getShowWriteTime() != null && ("" + hmsBrdPostVO.getCreateDate()).compareTo(EdosiDateUtil.getToDayString((String)"-", (int)0)) == 0) { + String createTime = hmsBrdPostVO.getCreateTime(); + model.addAttribute("createDate", (Object)createTime); + } else { + model.addAttribute("createDate", (Object)hmsBrdPostVO.getCreateDate()); + } + model.addAttribute("hmsBrdPostVO", (Object)hmsBrdPostVO); + HmsBrdCommentVO hmsBrdCommentVO = new HmsBrdCommentVO(); + hmsBrdCommentVO.setBrdPostSeq(searchVO.getBrdPostSeq()); + hmsBrdCommentVO.setBrdMngSeq(searchVO.getBrdMngSeq()); + model.addAttribute("hmsBrdCommentVO", (Object)hmsBrdCommentVO); + HmsBrdCommentDefaultVO hmsBrdCommentDefaultVO = new HmsBrdCommentDefaultVO(); + hmsBrdCommentDefaultVO.setBrdPostSeq(searchVO.getBrdPostSeq()); + List commentList = this.hmsBrdCommentService.selectHmsBrdCommentList(hmsBrdCommentDefaultVO); + String cate = hmsBrdPostVO.getCateSeq(); + if (cate != null && !cate.equals("")) { + HmsBrdCateVO hmsBrdCateVO = new HmsBrdCateVO(); + hmsBrdCateVO.setCateSeq(cate); + try { + hmsBrdCateVO = this.hmsBrdCateService.selectHmsBrdCate(hmsBrdCateVO); + model.addAttribute("hmsBrdCateVO", (Object)hmsBrdCateVO); + } + catch (Exception e) { + System.out.println("Category is not exists"); + } + } + model.addAttribute("hmsBrdCommentDefaultVO", (Object)hmsBrdCommentDefaultVO); + model.addAttribute("commentList", (Object)commentList); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsBrdPostVO)); + } + catch (Exception e) { + e.printStackTrace(); + } + return "/cms/hmsBrdPost/" + hmsBrdMngVO.getBrdSkin() + "/HmsBrdPostDetail"; + } + + @RequestMapping(value={"/hms/hmsBrdPost/deleteHmsBrdPost.do"}) + public String deleteHmsBrdPost(HttpServletRequest request, HttpServletResponse response, HmsBrdPostVO hmsBrdPostVO, @ModelAttribute(value="searchVO") HmsBrdPostDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + if (!this.checkWriteAuth(hmsBrdPostVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsBrdPostService.deleteHmsBrdPost(hmsBrdPostVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + @RequestMapping(value={"/hms/hmsBrdPost/deleteHmsBrdPostDirect.do"}) + public String deleteHmsBrdPostDirect(HttpServletRequest request, HttpServletResponse response) throws Exception { + HmsBrdPostDefaultVO searchVO = new HmsBrdPostDefaultVO(); + searchVO.setParentUrl(request.getParameter("parentUrl")); + searchVO.setBrdMngSeq(request.getParameter("brdMngSeq")); + HmsBrdPostVO hmsBrdPostVO = new HmsBrdPostVO(); + hmsBrdPostVO.setBrdMngSeq(request.getParameter("brdMngSeq")); + hmsBrdPostVO.setBrdPostSeq(request.getParameter("brdPostSeq")); + hmsBrdPostVO = this.hmsBrdPostService.selectHmsBrdPost(hmsBrdPostVO); + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + if (!this.checkWriteAuth(hmsBrdPostVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsBrdPostService.deleteHmsBrdPost(hmsBrdPostVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&brdMngSeq=" + searchVO.getBrdMngSeq(); + } + + private boolean checkWriteAuth(HmsBrdPostVO hmsBrdPostVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_BOARD").booleanValue()) { + return true; + } + if (UserDetailsHelper.isRole((String)"ROLE_ADMIN").booleanValue()) { + return true; + } + if (hmsBrdPostVO != null && loginVO != null && loginVO.getId().equals(hmsBrdPostVO.getUserId())) { + return true; + } + HmsBrdMngVO hmsBrdMngVO = new HmsBrdMngVO(); + hmsBrdMngVO.setBrdMngSeq(hmsBrdPostVO.getBrdMngSeq()); + try { + hmsBrdMngVO = this.hmsBrdMngService.selectHmsBrdMng(hmsBrdMngVO); + return hmsBrdMngVO.getManager() != null && (hmsBrdMngVO.getManager().indexOf(loginVO.getId()) > -1 || hmsBrdMngVO.getManager().equals("ALL")); + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } +} + diff --git a/src/main/java/egovframework/cms/code/dao/ComtccmmndetailcodeDAO.java b/src/main/java/egovframework/cms/code/dao/ComtccmmndetailcodeDAO.java new file mode 100644 index 0000000..db17f99 --- /dev/null +++ b/src/main/java/egovframework/cms/code/dao/ComtccmmndetailcodeDAO.java @@ -0,0 +1,54 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.code.dao.ComtccmmndetailcodeDAO + * egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO + * egovframework.cms.code.vo.ComtccmmndetailcodeVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.code.dao; + +import egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO; +import egovframework.cms.code.vo.ComtccmmndetailcodeVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="comtccmmndetailcodeDAO") +public class ComtccmmndetailcodeDAO +extends EgovComAbstractDAO { + public String insertComtccmmndetailcode(ComtccmmndetailcodeVO vo) throws Exception { + return (String)this.insert("comtccmmndetailcodeDAO.insertComtccmmndetailcode_S", (Object)vo); + } + + public void updateComtccmmndetailcode(ComtccmmndetailcodeVO vo) throws Exception { + this.update("comtccmmndetailcodeDAO.updateComtccmmndetailcode_S", (Object)vo); + } + + public void deleteComtccmmndetailcode(ComtccmmndetailcodeVO vo) throws Exception { + this.delete("comtccmmndetailcodeDAO.deleteComtccmmndetailcode_S", (Object)vo); + } + + public ComtccmmndetailcodeVO selectComtccmmndetailcode(ComtccmmndetailcodeVO vo) throws Exception { + return (ComtccmmndetailcodeVO)this.selectByPk("comtccmmndetailcodeDAO.selectComtccmmndetailcode_S", (Object)vo); + } + + public List selectComtccmmndetailcodeList(ComtccmmndetailcodeDefaultVO searchVO) throws Exception { + return this.list("comtccmmndetailcodeDAO.selectComtccmmndetailcodeList_D", (Object)searchVO); + } + + public int selectComtccmmndetailcodeListTotCnt(ComtccmmndetailcodeDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("comtccmmndetailcodeDAO.selectComtccmmndetailcodeListTotCnt_S", (Object)searchVO); + } + + public List selectComtccmmncodeList(ComtccmmndetailcodeVO vo) throws Exception { + return this.list("comtccmmndetailcodeDAO.selectComtccmmncodeList", (Object)vo); + } + + public int selectComtccmmncodeMax(ComtccmmndetailcodeVO vo) throws Exception { + return (Integer)this.getSqlMapClientTemplate().queryForObject("comtccmmndetailcodeDAO.selectComtccmmncodeMax", (Object)vo); + } +} + diff --git a/src/main/java/egovframework/cms/code/service/ComtccmmndetailcodeService.java b/src/main/java/egovframework/cms/code/service/ComtccmmndetailcodeService.java new file mode 100644 index 0000000..324711e --- /dev/null +++ b/src/main/java/egovframework/cms/code/service/ComtccmmndetailcodeService.java @@ -0,0 +1,32 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.code.service.ComtccmmndetailcodeService + * egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO + * egovframework.cms.code.vo.ComtccmmndetailcodeVO + * egovframework.rte.psl.dataaccess.util.EgovMap + */ +package egovframework.cms.code.service; + +import egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO; +import egovframework.cms.code.vo.ComtccmmndetailcodeVO; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.util.List; + +public interface ComtccmmndetailcodeService { + public String insertComtccmmndetailcode(ComtccmmndetailcodeVO var1) throws Exception; + + public void updateComtccmmndetailcode(ComtccmmndetailcodeVO var1) throws Exception; + + public void deleteComtccmmndetailcode(ComtccmmndetailcodeVO var1) throws Exception; + + public ComtccmmndetailcodeVO selectComtccmmndetailcode(ComtccmmndetailcodeVO var1) throws Exception; + + public List selectComtccmmndetailcodeList(ComtccmmndetailcodeDefaultVO var1) throws Exception; + + public int selectComtccmmndetailcodeListTotCnt(ComtccmmndetailcodeDefaultVO var1); + + public List selectComtccmmncodeList(ComtccmmndetailcodeVO var1) throws Exception; +} + diff --git a/src/main/java/egovframework/cms/code/service/impl/ComtccmmndetailcodeServiceImpl.java b/src/main/java/egovframework/cms/code/service/impl/ComtccmmndetailcodeServiceImpl.java new file mode 100644 index 0000000..aa13dfc --- /dev/null +++ b/src/main/java/egovframework/cms/code/service/impl/ComtccmmndetailcodeServiceImpl.java @@ -0,0 +1,64 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.code.dao.ComtccmmndetailcodeDAO + * egovframework.cms.code.service.ComtccmmndetailcodeService + * egovframework.cms.code.service.impl.ComtccmmndetailcodeServiceImpl + * egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO + * egovframework.cms.code.vo.ComtccmmndetailcodeVO + * egovframework.rte.psl.dataaccess.util.EgovMap + * javax.annotation.Resource + * org.springframework.stereotype.Service + */ +package egovframework.cms.code.service.impl; + +import egovframework.cms.code.dao.ComtccmmndetailcodeDAO; +import egovframework.cms.code.service.ComtccmmndetailcodeService; +import egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO; +import egovframework.cms.code.vo.ComtccmmndetailcodeVO; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.util.List; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; + +@Service(value="comtccmmndetailcodeService") +public class ComtccmmndetailcodeServiceImpl +implements ComtccmmndetailcodeService { + @Resource(name="comtccmmndetailcodeDAO") + private ComtccmmndetailcodeDAO comtccmmndetailcodeDAO; + + public String insertComtccmmndetailcode(ComtccmmndetailcodeVO vo) throws Exception { + int max = this.comtccmmndetailcodeDAO.selectComtccmmncodeMax(vo); + String maxStr = String.format("%03d", max); + vo.setCode(String.valueOf(vo.getCodeId()) + maxStr); + this.comtccmmndetailcodeDAO.insertComtccmmndetailcode(vo); + return null; + } + + public void updateComtccmmndetailcode(ComtccmmndetailcodeVO vo) throws Exception { + this.comtccmmndetailcodeDAO.updateComtccmmndetailcode(vo); + } + + public void deleteComtccmmndetailcode(ComtccmmndetailcodeVO vo) throws Exception { + this.comtccmmndetailcodeDAO.deleteComtccmmndetailcode(vo); + } + + public ComtccmmndetailcodeVO selectComtccmmndetailcode(ComtccmmndetailcodeVO vo) throws Exception { + ComtccmmndetailcodeVO resultVO = this.comtccmmndetailcodeDAO.selectComtccmmndetailcode(vo); + return resultVO; + } + + public List selectComtccmmndetailcodeList(ComtccmmndetailcodeDefaultVO searchVO) throws Exception { + return this.comtccmmndetailcodeDAO.selectComtccmmndetailcodeList(searchVO); + } + + public int selectComtccmmndetailcodeListTotCnt(ComtccmmndetailcodeDefaultVO searchVO) { + return this.comtccmmndetailcodeDAO.selectComtccmmndetailcodeListTotCnt(searchVO); + } + + public List selectComtccmmncodeList(ComtccmmndetailcodeVO vo) throws Exception { + return this.comtccmmndetailcodeDAO.selectComtccmmncodeList(vo); + } +} + diff --git a/src/main/java/egovframework/cms/code/vo/ComtccmmndetailcodeDefaultVO.java b/src/main/java/egovframework/cms/code/vo/ComtccmmndetailcodeDefaultVO.java new file mode 100644 index 0000000..9ed0555 --- /dev/null +++ b/src/main/java/egovframework/cms/code/vo/ComtccmmndetailcodeDefaultVO.java @@ -0,0 +1,170 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO + * org.apache.commons.lang.builder.ToStringBuilder + */ +package egovframework.cms.code.vo; + +import java.io.Serializable; +import org.apache.commons.lang.builder.ToStringBuilder; + +public class ComtccmmndetailcodeDefaultVO +implements Serializable { + private String searchCondition = ""; + private String searchKeyword = ""; + private String searchUseYn = ""; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String code; + private String codeId; + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (!this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (!this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (!this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public String toString() { + return ToStringBuilder.reflectionToString((Object)this); + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public void setCodeId(String codeId) { + this.codeId = codeId; + } + + public String getCodeId() { + return this.codeId; + } +} + diff --git a/src/main/java/egovframework/cms/code/vo/ComtccmmndetailcodeVO.java b/src/main/java/egovframework/cms/code/vo/ComtccmmndetailcodeVO.java new file mode 100644 index 0000000..ecf11b6 --- /dev/null +++ b/src/main/java/egovframework/cms/code/vo/ComtccmmndetailcodeVO.java @@ -0,0 +1,107 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO + * egovframework.cms.code.vo.ComtccmmndetailcodeVO + */ +package egovframework.cms.code.vo; + +import egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO; +import java.util.Date; + +public class ComtccmmndetailcodeVO +extends ComtccmmndetailcodeDefaultVO { + private static final long serialVersionUID = 1L; + private String codeId; + private String code; + private String codeNm; + private String codeDc; + private String useAt; + private Date frstRegistPnttm; + private String frstRegisterId; + private Date lastUpdtPnttm; + private String lastUpdusrId; + private String sort; + + public String getCodeId() { + return this.codeId; + } + + public void setCodeId(String codeId) { + this.codeId = codeId; + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getCodeNm() { + return this.codeNm; + } + + public void setCodeNm(String codeNm) { + this.codeNm = codeNm; + } + + public String getCodeDc() { + return this.codeDc; + } + + public void setCodeDc(String codeDc) { + this.codeDc = codeDc; + } + + public String getUseAt() { + return this.useAt; + } + + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + public Date getFrstRegistPnttm() { + return this.frstRegistPnttm; + } + + public void setFrstRegistPnttm(Date frstRegistPnttm) { + this.frstRegistPnttm = frstRegistPnttm; + } + + public String getFrstRegisterId() { + return this.frstRegisterId; + } + + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + public Date getLastUpdtPnttm() { + return this.lastUpdtPnttm; + } + + public void setLastUpdtPnttm(Date lastUpdtPnttm) { + this.lastUpdtPnttm = lastUpdtPnttm; + } + + public String getLastUpdusrId() { + return this.lastUpdusrId; + } + + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + public void setSort(String sort) { + this.sort = sort; + } + + public String getSort() { + return this.sort; + } +} + diff --git a/src/main/java/egovframework/cms/code/web/ComtccmmndetailcodeController.java b/src/main/java/egovframework/cms/code/web/ComtccmmndetailcodeController.java new file mode 100644 index 0000000..218db8e --- /dev/null +++ b/src/main/java/egovframework/cms/code/web/ComtccmmndetailcodeController.java @@ -0,0 +1,234 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.code.service.ComtccmmndetailcodeService + * egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO + * egovframework.cms.code.vo.ComtccmmndetailcodeVO + * egovframework.cms.code.web.ComtccmmndetailcodeController + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.psl.dataaccess.util.EgovMap + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + */ +package egovframework.cms.code.web; + +import egovframework.cms.code.service.ComtccmmndetailcodeService; +import egovframework.cms.code.vo.ComtccmmndetailcodeDefaultVO; +import egovframework.cms.code.vo.ComtccmmndetailcodeVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.io.PrintWriter; +import java.io.Writer; +import java.math.BigDecimal; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; + +@Controller +@SessionAttributes(types={ComtccmmndetailcodeVO.class}) +public class ComtccmmndetailcodeController { + @Resource(name="comtccmmndetailcodeService") + private ComtccmmndetailcodeService comtccmmndetailcodeService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/hms/comtccmmndetailcode/comtccmmndetailcodeIndex.do"}) + public String comtccmmndetailcodeIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") ComtccmmndetailcodeDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/privilegeError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectComtccmmndetailcodeList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectComtccmmndetailcode(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addComtccmmndetailcodeView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateComtccmmndetailcode(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_ADMIN", (Object)UserDetailsHelper.isRole((String)"ROLE_ADMIN")); + return viewName; + } + + private String selectComtccmmndetailcodeList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") ComtccmmndetailcodeDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + List comtccmmndetailcodeList = this.comtccmmndetailcodeService.selectComtccmmndetailcodeList(searchVO); + model.addAttribute("resultList", (Object)comtccmmndetailcodeList); + int totCnt = this.comtccmmndetailcodeService.selectComtccmmndetailcodeListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "/cms/comtccmmndetailcode/ComtccmmndetailcodeList"; + } + + private String addComtccmmndetailcodeView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") ComtccmmndetailcodeDefaultVO searchVO, Model model) throws Exception { + try { + List comtccmmncodeList = this.comtccmmndetailcodeService.selectComtccmmncodeList(null); + ComtccmmndetailcodeVO comtccmmndetailcodeVO = new ComtccmmndetailcodeVO(); + comtccmmndetailcodeVO.setUseAt("Y"); + if (comtccmmncodeList.size() > 0) { + String codeId = (String)((EgovMap)comtccmmncodeList.get(0)).get((Object)"codeId"); + ComtccmmndetailcodeDefaultVO comtccmmndetailcodeDefaultVO = new ComtccmmndetailcodeDefaultVO(); + comtccmmndetailcodeDefaultVO.setPageUseYn("N"); + comtccmmndetailcodeDefaultVO.setSearchCondition("3"); + comtccmmndetailcodeDefaultVO.setSearchKeyword(codeId); + List sortList = this.comtccmmndetailcodeService.selectComtccmmndetailcodeList(comtccmmndetailcodeDefaultVO); + if (((EgovMap)sortList.get(sortList.size() - 1)).get((Object)"sort") != null) { + System.out.println(((EgovMap)sortList.get(sortList.size() - 1)).get((Object)"sort") + " " + ((EgovMap)sortList.get(sortList.size() - 1)).get((Object)"sort").getClass()); + comtccmmndetailcodeVO.setSort(String.valueOf(Integer.parseInt((String)((EgovMap)sortList.get(sortList.size() - 1)).get((Object)"sort")) + 10)); + } + } + model.addAttribute("comtccmmndetailcodeVO", (Object)comtccmmndetailcodeVO); + model.addAttribute("comtccmmncode", (Object)comtccmmncodeList); + } + catch (Exception e) { + e.printStackTrace(); + } + return "/cms/comtccmmndetailcode/ComtccmmndetailcodeRegister"; + } + + @RequestMapping(value={"/hms/comtccmmndetailcode/addComtccmmndetailcode.do"}) + public String addComtccmmndetailcode(HttpServletRequest request, ComtccmmndetailcodeVO comtccmmndetailcodeVO, @ModelAttribute(value="searchVO") ComtccmmndetailcodeDefaultVO searchVO, SessionStatus status) throws Exception { + UserDetailsHelper.isAuthenticated().booleanValue(); + this.comtccmmndetailcodeService.insertComtccmmndetailcode(comtccmmndetailcodeVO); + status.setComplete(); + this.codeResource.setCodeList(comtccmmndetailcodeVO.getCodeId()); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request); + } + + private String updateComtccmmndetailcode(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") ComtccmmndetailcodeDefaultVO searchVO, Model model) throws Exception { + ComtccmmndetailcodeVO comtccmmndetailcodeVO = new ComtccmmndetailcodeVO(); + comtccmmndetailcodeVO.setCode(searchVO.getCode()); + comtccmmndetailcodeVO.setCodeId(searchVO.getCodeId()); + comtccmmndetailcodeVO = this.comtccmmndetailcodeService.selectComtccmmndetailcode(comtccmmndetailcodeVO); + if (!this.checkWriteAuth(comtccmmndetailcodeVO)) { + return "cmm/privilegeError"; + } + List comtccmmncodeList = this.comtccmmndetailcodeService.selectComtccmmncodeList(comtccmmndetailcodeVO); + model.addAttribute("comtccmmndetailcodeVO", (Object)comtccmmndetailcodeVO); + model.addAttribute("comtccmmncode", comtccmmncodeList.get(0)); + return "/cms/comtccmmndetailcode/ComtccmmndetailcodeRegister"; + } + + @RequestMapping(value={"/hms/comtccmmndetailcode/updateComtccmmndetailcode.do"}) + public String updateComtccmmndetailcode(HttpServletRequest request, ComtccmmndetailcodeVO comtccmmndetailcodeVO, @ModelAttribute(value="searchVO") ComtccmmndetailcodeDefaultVO searchVO, SessionStatus status) throws Exception { + UserDetailsHelper.isAuthenticated().booleanValue(); + if (!this.checkWriteAuth(comtccmmndetailcodeVO)) { + return "cmm/privilegeError"; + } + this.comtccmmndetailcodeService.updateComtccmmndetailcode(comtccmmndetailcodeVO); + status.setComplete(); + this.codeResource.setCodeList(comtccmmndetailcodeVO.getCodeId()); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam() + "&code=" + comtccmmndetailcodeVO.getCode() + "&codeId=" + comtccmmndetailcodeVO.getCodeId(); + } + + private String selectComtccmmndetailcode(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") ComtccmmndetailcodeDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + ComtccmmndetailcodeVO comtccmmndetailcodeVO = new ComtccmmndetailcodeVO(); + comtccmmndetailcodeVO.setCode(searchVO.getCode()); + comtccmmndetailcodeVO.setCodeId(searchVO.getCodeId()); + comtccmmndetailcodeVO = this.comtccmmndetailcodeService.selectComtccmmndetailcode(comtccmmndetailcodeVO); + List comtccmmncodeList = this.comtccmmndetailcodeService.selectComtccmmncodeList(comtccmmndetailcodeVO); + model.addAttribute("comtccmmncode", comtccmmncodeList.get(0)); + model.addAttribute("comtccmmndetailcodeVO", (Object)comtccmmndetailcodeVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(comtccmmndetailcodeVO)); + return "/cms/comtccmmndetailcode/ComtccmmndetailcodeDetail"; + } + + @RequestMapping(value={"/hms/comtccmmndetailcode/deleteComtccmmndetailcode.do"}) + public String deleteComtccmmndetailcode(HttpServletRequest request, ComtccmmndetailcodeVO comtccmmndetailcodeVO, @ModelAttribute(value="searchVO") ComtccmmndetailcodeDefaultVO searchVO, SessionStatus status) throws Exception { + UserDetailsHelper.isAuthenticated().booleanValue(); + if (!this.checkWriteAuth(comtccmmndetailcodeVO)) { + return "cmm/privilegeError"; + } + this.comtccmmndetailcodeService.deleteComtccmmndetailcode(comtccmmndetailcodeVO); + status.setComplete(); + this.codeResource.setCodeList(comtccmmndetailcodeVO.getCodeId()); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam(); + } + + @RequestMapping(value={"/hms/comtccmmndetailcode/getSortByCodeId.do"}) + private String getSortByCodeId(HttpServletRequest request, HttpServletResponse response) throws Exception { + try { + String codeId = request.getParameter("codeId"); + ComtccmmndetailcodeDefaultVO comtccmmndetailcodeDefaultVO = new ComtccmmndetailcodeDefaultVO(); + comtccmmndetailcodeDefaultVO.setPageUseYn("N"); + comtccmmndetailcodeDefaultVO.setSearchCondition("3"); + comtccmmndetailcodeDefaultVO.setSearchKeyword(codeId); + List sortList = this.comtccmmndetailcodeService.selectComtccmmndetailcodeList(comtccmmndetailcodeDefaultVO); + String sort = ""; + sort = ((EgovMap)sortList.get(sortList.size() - 1)).get((Object)"sort") != null ? String.valueOf(((BigDecimal)((EgovMap)sortList.get(sortList.size() - 1)).get((Object)"sort")).intValue() + 10) : "10"; + response.setContentType("text/html; charset=utf-8"); + PrintWriter w = response.getWriter(); + ((Writer)w).write(sort); + ((Writer)w).flush(); + ((Writer)w).close(); + } + catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + private boolean checkWriteAuth(ComtccmmndetailcodeVO comtccmmndetailcodeVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/content/dao/HmsContentDAO.java b/src/main/java/egovframework/cms/content/dao/HmsContentDAO.java new file mode 100644 index 0000000..01404ff --- /dev/null +++ b/src/main/java/egovframework/cms/content/dao/HmsContentDAO.java @@ -0,0 +1,50 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.content.dao.HmsContentDAO + * egovframework.cms.content.vo.HmsContentDefaultVO + * egovframework.cms.content.vo.HmsContentVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.content.dao; + +import egovframework.cms.content.vo.HmsContentDefaultVO; +import egovframework.cms.content.vo.HmsContentVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsContentDAO") +public class HmsContentDAO +extends EgovComAbstractDAO { + public String insertHmsContent(HmsContentVO vo) throws Exception { + return (String)this.insert("hmsContentDAO.insertHmsContent_S", (Object)vo); + } + + public void updateHmsContent(HmsContentVO vo) throws Exception { + this.update("hmsContentDAO.updateHmsContent_S", (Object)vo); + } + + public void deleteHmsContent(HmsContentVO vo) throws Exception { + this.delete("hmsContentDAO.deleteHmsContent_S", (Object)vo); + } + + public HmsContentVO selectHmsContent(HmsContentVO vo) throws Exception { + return (HmsContentVO)this.selectByPk("hmsContentDAO.selectHmsContent_S", (Object)vo); + } + + public List selectHmsContentList(HmsContentDefaultVO searchVO) throws Exception { + return this.list("hmsContentDAO.selectHmsContentList_D", (Object)searchVO); + } + + public int selectHmsContentListTotCnt(HmsContentDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsContentDAO.selectHmsContentListTotCnt_S", (Object)searchVO); + } + + public void updateHmsContentViewCnt(String seq) throws Exception { + this.update("hmsContentDAO.updateHmsContentViewCnt", (Object)seq); + } +} + diff --git a/src/main/java/egovframework/cms/content/service/HmsContentService.java b/src/main/java/egovframework/cms/content/service/HmsContentService.java new file mode 100644 index 0000000..4474555 --- /dev/null +++ b/src/main/java/egovframework/cms/content/service/HmsContentService.java @@ -0,0 +1,34 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.content.service.HmsContentService + * egovframework.cms.content.vo.HmsContentDefaultVO + * egovframework.cms.content.vo.HmsContentVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.content.service; + +import egovframework.cms.content.vo.HmsContentDefaultVO; +import egovframework.cms.content.vo.HmsContentVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsContentService { + public String insertHmsContent(HmsContentVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsContent(HmsContentVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsContent(HmsContentVO var1, HttpServletRequest var2) throws Exception; + + public HmsContentVO selectHmsContent(HmsContentVO var1) throws Exception; + + public List selectHmsContentList(HmsContentDefaultVO var1) throws Exception; + + public int selectHmsContentListTotCnt(HmsContentDefaultVO var1); + + public void updateHmsContentViewCnt(String var1) throws Exception; +} + diff --git a/src/main/java/egovframework/cms/content/service/impl/HmsContentServiceImpl.java b/src/main/java/egovframework/cms/content/service/impl/HmsContentServiceImpl.java new file mode 100644 index 0000000..3a4bc2e --- /dev/null +++ b/src/main/java/egovframework/cms/content/service/impl/HmsContentServiceImpl.java @@ -0,0 +1,243 @@ +package egovframework.cms.content.service.impl; + +import egovframework.cms.content.dao.HmsContentDAO; +import egovframework.cms.content.service.HmsContentService; +import egovframework.cms.content.vo.HmsContentDefaultVO; +import egovframework.cms.content.vo.HmsContentVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.io.File; +import java.io.FileOutputStream; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("hmsContentService") +public class HmsContentServiceImpl implements HmsContentService { + @Resource(name = "hmsContentDAO") + private HmsContentDAO hmsContentDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + private final String OBJ_CMS_CONTENT = "CMS_CONTENT"; + + public String insertHmsContent(HmsContentVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + vo.setContentSeq(this.egovIdGnrService.getNextStringId()); + vo.setUserId(loginVO.getId()); + vo.setUserNm(loginVO.getName()); + String contentUrl = EdosiResource.getInstance().getValue("contents.url"); + vo.setUrl("/" + vo.getTemplate() + contentUrl + vo.getContentSeq() + ".motion"); + this.hmsContentDAO.insertHmsContent(vo); + makeFile(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getUniqId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject("CMS_CONTENT"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getContentSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsContent(HmsContentVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + String contentUrl = EdosiResource.getInstance().getValue("contents.url"); + vo.setUrl("/" + vo.getTemplate() + contentUrl + vo.getContentSeq() + ".motion"); + this.hmsContentDAO.updateHmsContent(vo); + if (vo.getShow().equals("MNG001001")) { + makeFile(vo); + } else { + deleteFile(vo.getContentSeq()); + } + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getUniqId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject("CMS_CONTENT"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getContentSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsContent(HmsContentVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsContentDAO.deleteHmsContent(vo); + deleteFile(vo.getContentSeq()); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getUniqId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject("CMS_CONTENT"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getContentSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsContentVO selectHmsContent(HmsContentVO vo) throws Exception { + HmsContentVO resultVO = this.hmsContentDAO.selectHmsContent(vo); + return resultVO; + } + + public List selectHmsContentList(HmsContentDefaultVO searchVO) throws Exception { + return this.hmsContentDAO.selectHmsContentList(searchVO); + } + + public int selectHmsContentListTotCnt(HmsContentDefaultVO searchVO) { + return this.hmsContentDAO.selectHmsContentListTotCnt(searchVO); + } + + public void deleteFile(String seq) throws Exception { + String contentsDoc = EdosiResource.getInstance().getValue("contents.doc"); + String contentsUrl = EdosiResource.getInstance().getValue("contents.url"); + File f = new File(String.valueOf(contentsDoc) + contentsUrl + seq + ".jsp"); + if (f.exists()) + f.delete(); + } + + public void makeFile(HmsContentVO vo) throws Exception { + String contentsDoc = EdosiResource.getInstance().getValue("contents.doc"); + String contentsUrl = EdosiResource.getInstance().getValue("contents.url"); + String seq = vo.getContentSeq(); + deleteFile(seq); + StringBuilder sb = new StringBuilder(); + sb.append(makeContentHeader()); + sb.append(vo.getContents()); + sb.append(makeViewCountScript(seq)); + String data = sb.toString(); + File f = new File(String.valueOf(contentsDoc) + contentsUrl + seq + ".jsp"); + FileOutputStream fos = new FileOutputStream(f); + fos.write(data.getBytes("utf8")); + fos.flush(); + fos.close(); + } + + private String makeContentHeader() { + StringBuilder sb = new StringBuilder(); + sb.append("<%@ page contentType=\"text/html; charset=utf-8\" pageEncoding=\"utf-8\"\n"); + sb.append("%><%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\"\n"); + sb.append("%>"); + return sb.toString(); + } + + private String makeViewCountScript(String seq) { + StringBuilder sb = new StringBuilder(); + sb.append("\n\n"); + return sb.toString(); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + if (!fn.endsWith(".exe") && !fn.endsWith(".php") && !fn.endsWith(".jsp") && !fn.endsWith(".bat") && !fn.endsWith(".sh") && !fn.endsWith(".asp") && + !fn.equals("")) + file.put(key, mf); + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + if (!fn.endsWith(".exe") && !fn.endsWith(".php") && !fn.endsWith(".jsp") && !fn.endsWith(".bat") && !fn.endsWith(".sh") && !fn.endsWith(".asp") && + !fn.equals("")) + file.put(key, mf); + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } + + public void updateHmsContentViewCnt(String seq) throws Exception { + this.hmsContentDAO.updateHmsContentViewCnt(seq); + } +} diff --git a/src/main/java/egovframework/cms/content/vo/HmsContentDefaultVO.java b/src/main/java/egovframework/cms/content/vo/HmsContentDefaultVO.java new file mode 100644 index 0000000..01f2af2 --- /dev/null +++ b/src/main/java/egovframework/cms/content/vo/HmsContentDefaultVO.java @@ -0,0 +1,155 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.content.vo.HmsContentDefaultVO + */ +package egovframework.cms.content.vo; + +import java.io.Serializable; + +public class HmsContentDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String contentSeq; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setContentSeq(String contentSeq) { + this.contentSeq = contentSeq; + } + + public String getContentSeq() { + return this.contentSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (!this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } +} + diff --git a/src/main/java/egovframework/cms/content/vo/HmsContentVO.java b/src/main/java/egovframework/cms/content/vo/HmsContentVO.java new file mode 100644 index 0000000..93dc961 --- /dev/null +++ b/src/main/java/egovframework/cms/content/vo/HmsContentVO.java @@ -0,0 +1,142 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.content.vo.HmsContentDefaultVO + * egovframework.cms.content.vo.HmsContentVO + */ +package egovframework.cms.content.vo; + +import egovframework.cms.content.vo.HmsContentDefaultVO; +import java.sql.Date; + +public class HmsContentVO +extends HmsContentDefaultVO { + private String contentSeq; + private String title; + private String contents; + private String recSts; + private String userId; + private String userNm; + private String managerId; + private String url; + private String show; + private Date createDate; + private Date updateDate; + private int viewCnt; + private String managerNm; + private String template; + + public void setContentSeq(String contentSeq) { + this.contentSeq = contentSeq; + } + + public String getContentSeq() { + return this.contentSeq; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTitle() { + return this.title; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getContents() { + return this.contents; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserId() { + return this.userId; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getUserNm() { + return this.userNm; + } + + public void setManagerId(String managerId) { + this.managerId = managerId; + } + + public String getManagerId() { + return this.managerId; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUrl() { + return this.url; + } + + public void setShow(String show) { + this.show = show; + } + + public String getShow() { + return this.show; + } + + public Date getCreateDate() { + return this.createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getUpdateDate() { + return this.updateDate; + } + + public void setUpdateDate(Date updateDate) { + this.updateDate = updateDate; + } + + public int getViewCnt() { + return this.viewCnt; + } + + public void setViewCnt(int viewCnt) { + this.viewCnt = viewCnt; + } + + public String getManagerNm() { + return this.managerNm; + } + + public void setManagerNm(String managerNm) { + this.managerNm = managerNm; + } + + public String getTemplate() { + return this.template; + } + + public void setTemplate(String template) { + this.template = template; + } +} + diff --git a/src/main/java/egovframework/cms/content/web/HmsContentController.java b/src/main/java/egovframework/cms/content/web/HmsContentController.java new file mode 100644 index 0000000..5228659 --- /dev/null +++ b/src/main/java/egovframework/cms/content/web/HmsContentController.java @@ -0,0 +1,263 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.content.service.HmsContentService + * egovframework.cms.content.vo.HmsContentDefaultVO + * egovframework.cms.content.vo.HmsContentVO + * egovframework.cms.content.web.HmsContentController + * egovframework.com.cmm.LoginVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.content.web; + +import egovframework.cms.content.service.HmsContentService; +import egovframework.cms.content.vo.HmsContentDefaultVO; +import egovframework.cms.content.vo.HmsContentVO; +import egovframework.com.cmm.LoginVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsContentVO.class}) +public class HmsContentController { + @Resource(name="hmsContentService") + private HmsContentService hmsContentService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + + @RequestMapping(value={"/hms/hmsContent/hmsContentIndex.do"}) + public String hmsContentIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsContentDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsContentList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsContent(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsContentView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsContent(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + param.put("show", "MNG001"); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsContentList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsContentDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = this.hmsContentService.selectHmsContentListTotCnt(searchVO); + if (totCnt > 0) { + List hmsContentList = this.hmsContentService.selectHmsContentList(searchVO); + model.addAttribute("resultList", (Object)hmsContentList); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "/cms/hmsContent/HmsContentList"; + } + + private String addHmsContentView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsContentDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + HmsContentVO hmsContentVO = new HmsContentVO(); + hmsContentVO.setShow("MNG001001"); + hmsContentVO.setManagerId(loginVO.getId()); + hmsContentVO.setManagerNm(loginVO.getName()); + ArrayList templateList = new ArrayList(); + String contentDoc = EdosiResource.getInstance().getValue("contents.doc"); + File file = new File(String.valueOf(contentDoc) + "/WEB-INF/templates"); + File[] f = file.listFiles(); + if (f != null) { + int i = 0; + while (i < f.length) { + if (!f[i].isFile() && f[i].getName().charAt(0) != '.') { + templateList.add(f[i].getName()); + } + ++i; + } + model.addAttribute("templateList", templateList); + } + model.addAttribute("hmsContentVO", (Object)hmsContentVO); + return "/cms/hmsContent/HmsContentRegister"; + } + + @RequestMapping(value={"/hms/hmsContent/addHmsContent.do"}) + public String addHmsContent(MultipartHttpServletRequest request, HttpServletResponse response, HmsContentVO hmsContentVO, @ModelAttribute(value="searchVO") HmsContentDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsContentService.insertHmsContent(hmsContentVO, request); + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateHmsContent(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsContentDefaultVO searchVO, Model model) throws Exception { + HmsContentVO hmsContentVO = new HmsContentVO(); + hmsContentVO.setContentSeq(searchVO.getContentSeq()); + hmsContentVO = this.hmsContentService.selectHmsContent(hmsContentVO); + if (!this.checkWriteAuth(hmsContentVO)) { + return "cmm/sessionError"; + } + ArrayList templateList = new ArrayList(); + String contentDoc = EdosiResource.getInstance().getValue("contents.doc"); + File file = new File(String.valueOf(contentDoc) + "/WEB-INF/templates"); + File[] f = file.listFiles(); + if (f != null) { + int i = 0; + while (i < f.length) { + if (!f[i].isFile() && f[i].getName().charAt(0) != '.') { + templateList.add(f[i].getName()); + } + ++i; + } + model.addAttribute("templateList", templateList); + } + model.addAttribute("hmsContentVO", (Object)hmsContentVO); + return "/cms/hmsContent/HmsContentRegister"; + } + + @RequestMapping(value={"/hms/hmsContent/updateHmsContent.do"}) + public String updateHmsContent(MultipartHttpServletRequest request, HttpServletResponse response, HmsContentVO hmsContentVO, @ModelAttribute(value="searchVO") HmsContentDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsContentVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsContentService.updateHmsContent(hmsContentVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&contentSeq=" + hmsContentVO.getContentSeq(); + } + + private String selectHmsContent(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsContentDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsContentVO hmsContentVO = new HmsContentVO(); + hmsContentVO.setContentSeq(searchVO.getContentSeq()); + hmsContentVO = this.hmsContentService.selectHmsContent(hmsContentVO); + model.addAttribute("hmsContentVO", (Object)hmsContentVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsContentVO)); + return "/cms/hmsContent/HmsContentDetail"; + } + + @RequestMapping(value={"/hms/hmsContent/deleteHmsContent.do"}) + public String deleteHmsContent(HttpServletRequest request, HmsContentVO hmsContentVO, @ModelAttribute(value="searchVO") HmsContentDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsContentVO)) { + return "cmm/privilegeError"; + } + this.hmsContentService.deleteHmsContent(hmsContentVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + @RequestMapping(value={"/hms/hmsContent/updateHmsContentViewCnt.do"}) + public String updateHmsContentViewCnt(HttpServletRequest request) throws Exception { + this.hmsContentService.updateHmsContentViewCnt(request.getParameter("content_seq")); + return null; + } + + private boolean checkWriteAuth(HmsContentVO hmsContentVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + return loginVO.getId().equals(hmsContentVO.getManagerId()); + } +} + diff --git a/src/main/java/egovframework/cms/dept/dao/HmsDeptDAO.java b/src/main/java/egovframework/cms/dept/dao/HmsDeptDAO.java new file mode 100644 index 0000000..f895040 --- /dev/null +++ b/src/main/java/egovframework/cms/dept/dao/HmsDeptDAO.java @@ -0,0 +1,54 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.dao.HmsDeptDAO + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.dept.vo.HmsDeptVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.dept.dao; + +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.dept.vo.HmsDeptVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsDeptDAO") +public class HmsDeptDAO +extends EgovComAbstractDAO { + public String insertHmsDept(HmsDeptVO vo) throws Exception { + return (String)this.insert("hmsDeptDAO.insertHmsDept_S", (Object)vo); + } + + public void updateHmsDept(HmsDeptVO vo) throws Exception { + this.update("hmsDeptDAO.updateHmsDept_S", (Object)vo); + } + + public void deleteHmsDept(HmsDeptVO vo) throws Exception { + this.delete("hmsDeptDAO.deleteHmsDept_S", (Object)vo); + } + + public HmsDeptVO selectHmsDept(HmsDeptVO vo) throws Exception { + return (HmsDeptVO)this.select("hmsDeptDAO.selectHmsDept_S", (Object)vo); + } + + public List selectHmsDeptList(HmsDeptDefaultVO searchVO) throws Exception { + return this.list("hmsDeptDAO.selectHmsDeptList_D", (Object)searchVO); + } + + public int selectHmsDeptListTotCnt(HmsDeptDefaultVO searchVO) { + return (Integer)this.select("hmsDeptDAO.selectHmsDeptListTotCnt_S", (Object)searchVO); + } + + public List selectHmsDeptOrgList(HmsDeptDefaultVO searchVO) throws Exception { + return this.list("hmsDeptDAO.selectHmsDeptOrgList", (Object)searchVO); + } + + public List selectHmsUserList(HmsDeptDefaultVO searchVO) throws Exception { + return this.list("hmsDeptDAO.selectHmsUserList", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/dept/service/HmsDeptService.java b/src/main/java/egovframework/cms/dept/service/HmsDeptService.java new file mode 100644 index 0000000..73bd562 --- /dev/null +++ b/src/main/java/egovframework/cms/dept/service/HmsDeptService.java @@ -0,0 +1,36 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.dept.vo.HmsDeptVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.dept.service; + +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.dept.vo.HmsDeptVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsDeptService { + public String insertHmsDept(HmsDeptVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsDept(HmsDeptVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsDept(HmsDeptVO var1, HttpServletRequest var2) throws Exception; + + public HmsDeptVO selectHmsDept(HmsDeptVO var1) throws Exception; + + public List selectHmsDeptList(HmsDeptDefaultVO var1) throws Exception; + + public int selectHmsDeptListTotCnt(HmsDeptDefaultVO var1); + + public List selectHmsDeptOrgList(HmsDeptDefaultVO var1) throws Exception; + + public List selectHmsUserList(HmsDeptDefaultVO var1) throws Exception; +} + diff --git a/src/main/java/egovframework/cms/dept/service/impl/HmsDeptServiceImpl.java b/src/main/java/egovframework/cms/dept/service/impl/HmsDeptServiceImpl.java new file mode 100644 index 0000000..b0356ea --- /dev/null +++ b/src/main/java/egovframework/cms/dept/service/impl/HmsDeptServiceImpl.java @@ -0,0 +1,228 @@ +package egovframework.cms.dept.service.impl; + +import egovframework.cms.dept.dao.HmsDeptDAO; +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.dept.vo.HmsDeptVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("hmsDeptService") +public class HmsDeptServiceImpl implements HmsDeptService { + @Resource(name = "hmsDeptDAO") + private HmsDeptDAO hmsDeptDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + private final String OBJ_HMS_DEPT = "HMS_DEPT"; + + public String insertHmsDept(HmsDeptVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String id = this.egovIdGnrService.getNextStringId(); + vo.setDeptSeq(id); + vo.setDeptNm(request.getParameter("newDeptNm")); + vo.setParentDeptCd(request.getParameter("deptSeq")); + vo.setDeptCd(id); + vo.setDeptDepth(String.valueOf(Integer.parseInt(request.getParameter("deptDepth")) + 1)); + vo.setDeptRank("10"); + this.hmsDeptDAO.insertHmsDept(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject("HMS_DEPT"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDeptSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsDept(HmsDeptVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + vo.setDeptNm(request.getParameter("deptNm")); + vo.setParentDeptCd(request.getParameter("parentDeptCd")); + vo.setDeptCd(request.getParameter("deptCd")); + this.hmsDeptDAO.updateHmsDept(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject("HMS_DEPT"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDeptSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsDept(HmsDeptVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + this.hmsDeptDAO.deleteHmsDept(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject("HMS_DEPT"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDeptSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsDeptVO selectHmsDept(HmsDeptVO vo) throws Exception { + HmsDeptVO resultVO = this.hmsDeptDAO.selectHmsDept(vo); + return resultVO; + } + + public List selectHmsDeptList(HmsDeptDefaultVO searchVO) throws Exception { + return this.hmsDeptDAO.selectHmsDeptList(searchVO); + } + + public int selectHmsDeptListTotCnt(HmsDeptDefaultVO searchVO) { + return this.hmsDeptDAO.selectHmsDeptListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + if (whitelist == null || whitelist.equals("")) { + file.put(key, mf); + continue; + } + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + if (whitelist == null || whitelist.equals("")) { + file.put(key, mf); + continue; + } + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } + + public List selectHmsDeptOrgList(HmsDeptDefaultVO searchVO) throws Exception { + return this.hmsDeptDAO.selectHmsDeptOrgList(searchVO); + } + + public List selectHmsUserList(HmsDeptDefaultVO searchVO) throws Exception { + return this.hmsDeptDAO.selectHmsUserList(searchVO); + } +} diff --git a/src/main/java/egovframework/cms/dept/vo/HmsDeptDefaultVO.java b/src/main/java/egovframework/cms/dept/vo/HmsDeptDefaultVO.java new file mode 100644 index 0000000..ba10b86 --- /dev/null +++ b/src/main/java/egovframework/cms/dept/vo/HmsDeptDefaultVO.java @@ -0,0 +1,191 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.vo.HmsDeptDefaultVO + */ +package egovframework.cms.dept.vo; + +import java.io.Serializable; + +public class HmsDeptDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String deptSeq; + private String searchDeptDepth; + private String searchParentDeptCd; + private String searchDeptCd; + private String searchDeptSeq; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setDeptSeq(String deptSeq) { + this.deptSeq = deptSeq; + } + + public String getDeptSeq() { + return this.deptSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } + + public String getSearchDeptDepth() { + return this.searchDeptDepth; + } + + public void setSearchDeptDepth(String searchDeptDepth) { + this.searchDeptDepth = searchDeptDepth; + } + + public String getSearchParentDeptCd() { + return this.searchParentDeptCd; + } + + public void setSearchParentDeptCd(String searchParentDeptCd) { + this.searchParentDeptCd = searchParentDeptCd; + } + + public String getSearchDeptCd() { + return this.searchDeptCd; + } + + public void setSearchDeptCd(String searchDeptCd) { + this.searchDeptCd = searchDeptCd; + } + + public String getSearchDeptSeq() { + return this.searchDeptSeq; + } + + public void setSearchDeptSeq(String searchDeptSeq) { + this.searchDeptSeq = searchDeptSeq; + } +} + diff --git a/src/main/java/egovframework/cms/dept/vo/HmsDeptVO.java b/src/main/java/egovframework/cms/dept/vo/HmsDeptVO.java new file mode 100644 index 0000000..fb344ee --- /dev/null +++ b/src/main/java/egovframework/cms/dept/vo/HmsDeptVO.java @@ -0,0 +1,114 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.dept.vo.HmsDeptVO + */ +package egovframework.cms.dept.vo; + +import egovframework.cms.dept.vo.HmsDeptDefaultVO; + +public class HmsDeptVO +extends HmsDeptDefaultVO { + private String deptSeq; + private String parentDeptCd; + private String deptNm; + private String deptCd; + private String deptRank; + private String deptDepth; + private String deptFullNm; + private String extField01; + private String extField02; + private String extField03; + private String recSts; + + public void setDeptSeq(String deptSeq) { + this.deptSeq = deptSeq; + } + + public String getDeptSeq() { + return this.deptSeq; + } + + public void setParentDeptCd(String parentDeptCd) { + this.parentDeptCd = parentDeptCd; + } + + public String getParentDeptCd() { + return this.parentDeptCd; + } + + public void setDeptNm(String deptNm) { + this.deptNm = deptNm; + } + + public String getDeptNm() { + return this.deptNm; + } + + public void setDeptCd(String deptCd) { + this.deptCd = deptCd; + } + + public String getDeptCd() { + return this.deptCd; + } + + public void setDeptRank(String deptRank) { + this.deptRank = deptRank; + } + + public String getDeptRank() { + return this.deptRank; + } + + public void setDeptDepth(String deptDepth) { + this.deptDepth = deptDepth; + } + + public String getDeptDepth() { + return this.deptDepth; + } + + public void setDeptFullNm(String deptFullNm) { + this.deptFullNm = deptFullNm; + } + + public String getDeptFullNm() { + return this.deptFullNm; + } + + public void setExtField01(String extField01) { + this.extField01 = extField01; + } + + public String getExtField01() { + return this.extField01; + } + + public void setExtField02(String extField02) { + this.extField02 = extField02; + } + + public String getExtField02() { + return this.extField02; + } + + public void setExtField03(String extField03) { + this.extField03 = extField03; + } + + public String getExtField03() { + return this.extField03; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } +} + diff --git a/src/main/java/egovframework/cms/dept/web/HmsDeptAdminController.java b/src/main/java/egovframework/cms/dept/web/HmsDeptAdminController.java new file mode 100644 index 0000000..5d95060 --- /dev/null +++ b/src/main/java/egovframework/cms/dept/web/HmsDeptAdminController.java @@ -0,0 +1,285 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.dept.vo.HmsDeptVO + * egovframework.cms.dept.web.HmsDeptAdminController + * egovframework.cms.user.service.HmsUserService + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.main.MainGlobals + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.psl.dataaccess.util.EgovMap + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * net.sf.json.JSONArray + * net.sf.json.JSONObject + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.dept.web; + +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.dept.vo.HmsDeptVO; +import egovframework.cms.user.service.HmsUserService; +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.common.service.CommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.main.MainGlobals; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsDeptVO.class}) +public class HmsDeptAdminController { + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/admin/hmsDept/hmsDeptAdminIndex.do"}) + public String hmsDeptIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsDeptAdminList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsDeptAdmin(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsDeptAdminView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsDeptAdmin(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsDeptAdminList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + try { + searchVO.setPageUseYn("N"); + searchVO.setSearchDeptSeq(MainGlobals.ORG_CODE); + List hmsDeptList = this.hmsDeptService.selectHmsDeptOrgList(searchVO); + model.addAttribute("resultList", (Object)hmsDeptList); + JSONArray array = new JSONArray(); + int i = 0; + while (i < hmsDeptList.size()) { + EgovMap m = (EgovMap)hmsDeptList.get(i); + JSONObject tmp = new JSONObject(); + tmp.put((Object)"id", m.get((Object)"deptSeq")); + tmp.put((Object)"parent", m.get((Object)"parentDeptCd")); + tmp.put((Object)"text", m.get((Object)"deptNm")); + array.add((Object)tmp); + ++i; + } + model.addAttribute("orgJSON", (Object)array.toString()); + } + catch (Exception e) { + e.printStackTrace(); + } + return "cms/hmsDept/HmsDeptAdminList"; + } + + private String addHmsDeptAdminView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + return "cms/hmsDept/HmsDeptAdminRegister"; + } + + @RequestMapping(value={"/admin/hmsDept/addHmsDeptAdmin.do"}) + public String addHmsDeptAdmin(MultipartHttpServletRequest request, HttpServletResponse response, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsDeptService.insertHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request); + } + + private String updateHmsDeptAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + hmsDeptVO.setDeptSeq(searchVO.getDeptSeq()); + hmsDeptVO = this.hmsDeptService.selectHmsDept(hmsDeptVO); + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/sessionError"; + } + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + return "cms/hmsDept/HmsDeptAdminRegister"; + } + + @RequestMapping(value={"/admin/hmsDept/updateHmsDeptAdmin.do"}) + public String updateHmsDeptAdmin(MultipartHttpServletRequest request, HttpServletResponse response, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsDeptService.updateHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request); + } + + private String selectHmsDeptAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + hmsDeptVO.setDeptCd(searchVO.getSearchDeptCd()); + try { + hmsDeptVO = this.hmsDeptService.selectHmsDept(hmsDeptVO); + HmsUserDefaultVO hmsUserDefaultVO = new HmsUserDefaultVO(); + hmsUserDefaultVO.setPageUseYn("N"); + hmsUserDefaultVO.setSearchDeptCd(searchVO.getSearchDeptCd()); + List hmsUserList = this.hmsUserService.selectHmsUserList(hmsUserDefaultVO); + int i = 0; + while (i < hmsUserList.size()) { + EgovMap m = (EgovMap)hmsUserList.get(i); + if (m.get((Object)"jobTitle") != null) { + String jobTitle = ((String)m.get((Object)"jobTitle")).replaceAll("-", "\r\n"); + m.put((Object)"jobTitle", (Object)jobTitle); + } + ++i; + } + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + model.addAttribute("resultList", (Object)hmsUserList); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsDeptVO)); + return "cms/hmsDept/HmsDeptAdminDetail"; + } + + @RequestMapping(value={"/admin/hmsDept/deleteHmsDeptAdmin.do"}) + public String deleteHmsDeptAdmin(HttpServletRequest request, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsDeptService.deleteHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsDeptVO hmsDeptVO) { + if (UserDetailsHelper.isRole((String)"ROLE_USER").booleanValue()) { + return true; + } + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/dept/web/HmsDeptController.java b/src/main/java/egovframework/cms/dept/web/HmsDeptController.java new file mode 100644 index 0000000..343b4d6 --- /dev/null +++ b/src/main/java/egovframework/cms/dept/web/HmsDeptController.java @@ -0,0 +1,297 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.dept.vo.HmsDeptVO + * egovframework.cms.dept.web.HmsDeptController + * egovframework.cms.user.service.HmsUserService + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.EgovProperties + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.psl.dataaccess.util.EgovMap + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * net.sf.json.JSONArray + * net.sf.json.JSONObject + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.dept.web; + +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.dept.vo.HmsDeptVO; +import egovframework.cms.user.service.HmsUserService; +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.common.dwr.DwrCommonService; +import egovframework.common.service.CommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsDeptVO.class}) +public class HmsDeptController { + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/dms/hmsDept/hmsDeptIndex.do"}) + public String hmsDeptIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsDeptList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsDept(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsDeptView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsDept(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsDeptList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + try { + String orgCode = EgovProperties.getProperty((String)"Globals.OrgCode"); + searchVO.setSearchDeptCd(orgCode); + List hmsDeptList = this.hmsDeptService.selectHmsDeptOrgList(searchVO); + model.addAttribute("resultList", (Object)hmsDeptList); + JSONArray array = new JSONArray(); + int i = 0; + while (i < hmsDeptList.size()) { + EgovMap m = (EgovMap)hmsDeptList.get(i); + JSONObject tmp = new JSONObject(); + tmp.put((Object)"id", m.get((Object)"deptCd")); + tmp.put((Object)"parent", m.get((Object)"parentDeptCd")); + tmp.put((Object)"text", m.get((Object)"deptNm")); + array.add((Object)tmp); + ++i; + } + model.addAttribute("orgJSON", (Object)array.toString()); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "dms/hmsDept/HmsDeptList"; + } + + private String addHmsDeptView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + return "dms/hmsDept/HmsDeptRegister"; + } + + @RequestMapping(value={"/dms/hmsDept/addHmsDept.do"}) + public String addHmsDept(MultipartHttpServletRequest request, HttpServletResponse response, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsDeptService.insertHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request); + } + + private String updateHmsDept(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + hmsDeptVO.setDeptSeq(searchVO.getDeptSeq()); + hmsDeptVO = this.hmsDeptService.selectHmsDept(hmsDeptVO); + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/sessionError"; + } + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + return "dms/hmsDept/HmsDeptRegister"; + } + + @RequestMapping(value={"/dms/hmsDept/updateHmsDept.do"}) + public String updateHmsDept(MultipartHttpServletRequest request, HttpServletResponse response, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsDeptService.updateHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request) + searchVO.toParam() + "&deptSeq=" + hmsDeptVO.getDeptSeq(); + } + + private String selectHmsDept(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + hmsDeptVO.setDeptCd(searchVO.getSearchDeptCd()); + try { + hmsDeptVO = this.hmsDeptService.selectHmsDept(hmsDeptVO); + HmsUserDefaultVO hmsUserDefaultVO = new HmsUserDefaultVO(); + hmsUserDefaultVO.setPageUseYn("N"); + hmsUserDefaultVO.setSearchDeptCd(searchVO.getSearchDeptCd()); + List hmsUserList = this.hmsUserService.selectHmsUserList(hmsUserDefaultVO); + int i = 0; + while (i < hmsUserList.size()) { + EgovMap m = (EgovMap)hmsUserList.get(i); + if (m.get((Object)"jobTitle") != null) { + String jobTitle = ((String)m.get((Object)"jobTitle")).replaceAll("-", "\r\n"); + m.put((Object)"jobTitle", (Object)jobTitle); + } + ++i; + } + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + model.addAttribute("resultList", (Object)hmsUserList); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsDeptVO)); + return "dms/hmsDept/HmsDeptDetail"; + } + + @RequestMapping(value={"/dms/hmsDept/deleteHmsDept.do"}) + public String deleteHmsDept(HttpServletRequest request, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsDeptService.deleteHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsDeptVO hmsDeptVO) { + if (UserDetailsHelper.isRole((String)"ROLE_USER").booleanValue()) { + return true; + } + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/dept/web/HmsDeptFindController.java b/src/main/java/egovframework/cms/dept/web/HmsDeptFindController.java new file mode 100644 index 0000000..7f996ab --- /dev/null +++ b/src/main/java/egovframework/cms/dept/web/HmsDeptFindController.java @@ -0,0 +1,222 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.dept.vo.HmsDeptVO + * egovframework.cms.dept.web.HmsDeptFindController + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.EgovProperties + * egovframework.common.service.CommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.psl.dataaccess.util.EgovMap + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * net.sf.json.JSONArray + * net.sf.json.JSONObject + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + */ +package egovframework.cms.dept.web; + +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.dept.vo.HmsDeptVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.common.service.CommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.io.PrintWriter; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; + +@Controller +@SessionAttributes(types={HmsDeptVO.class}) +public class HmsDeptFindController { + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="commonService") + private CommonService commonService; + + @RequestMapping(value={"/popup/hmsDept/hmsUserFindIndexajax.do"}) + public String hmsUserFindIndexajax(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Model model) throws Exception { + response.setContentType("text/plain; charset=utf-8"); + PrintWriter out = response.getWriter(); + HmsDeptDefaultVO searchVO = new HmsDeptDefaultVO(); + JSONArray jsonResultList = new JSONArray(); + JSONArray jsonList = new JSONArray(); + try { + searchVO.setDeptSeq(request.getParameter("deptSeq")); + searchVO.setSearchKeyword(request.getParameter("name")); + List hmsUsertList = this.hmsDeptService.selectHmsUserList(searchVO); + if (hmsUsertList.size() > 0) { + int i = 0; + while (i < hmsUsertList.size()) { + JSONObject json = new JSONObject(); + json.put((Object)"managerId", ((EgovMap)hmsUsertList.get(i)).get((Object)"userId")); + json.put((Object)"managerNm", ((EgovMap)hmsUsertList.get(i)).get((Object)"userNm")); + json.put((Object)"managerDeptCd", ((EgovMap)hmsUsertList.get(i)).get((Object)"deptCd")); + json.put((Object)"managerDeptNm", ((EgovMap)hmsUsertList.get(i)).get((Object)"deptNm")); + json.put((Object)"managerTel", ((EgovMap)hmsUsertList.get(i)).get((Object)"tel")); + jsonList.add((Object)json); + ++i; + } + } + response.setContentType("text/xml;charset=utf-8"); + PrintWriter printWriter = response.getWriter(); + printWriter.print(jsonList); + printWriter.flush(); + printWriter.close(); + } + catch (Exception ex) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put((Object)"flag", (Object)"fail"); + jsonObject.put((Object)"message", (Object)"정보 조회 중 오류가 발생하였습니다."); + out.println(jsonObject.toString()); + } + return null; + } + + @RequestMapping(value={"/popup/hmsDept/hmsUserFindIndex.do"}) + public String hmsUserIndex(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + HmsDeptDefaultVO searchVO = new HmsDeptDefaultVO(); + try { + String orgCode = EgovProperties.getProperty((String)"Globals.OrgCode"); + searchVO.setSearchDeptCd(orgCode); + List hmsDeptList = this.hmsDeptService.selectHmsDeptOrgList(searchVO); + model.addAttribute("resultList", (Object)hmsDeptList); + JSONArray array = new JSONArray(); + int i = 0; + while (i < hmsDeptList.size()) { + EgovMap m = (EgovMap)hmsDeptList.get(i); + String deptCd = (String)m.get((Object)"deptCd"); + String deptNm = (String)m.get((Object)"deptNm"); + String parentDeptCd = (String)m.get((Object)"parentDeptCd"); + JSONObject org = new JSONObject(); + org.put((Object)"parent", (Object)parentDeptCd); + org.put((Object)"id", (Object)deptCd); + org.put((Object)"text", (Object)deptNm); + org.put((Object)"a_attr", (Object)("{'name':'" + deptNm + "','model':'" + deptNm + "'}")); + if (i == 0) { + org.put((Object)"parent", (Object)"#"); + } + array.add((Object)org); + ++i; + } + model.addAttribute("orgData", (Object)array.toString()); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("loginVO", (Object)loginVO); + return "/common/HmsDeptUserFindPopup"; + } + + @RequestMapping(value={"/popup/hmsDept/hmsDeptFindIndex.do"}) + public String hmsDeptIndex(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + HmsDeptDefaultVO searchVO = new HmsDeptDefaultVO(); + try { + String orgCode = EgovProperties.getProperty((String)"Globals.OrgCode"); + searchVO.setSearchDeptCd(orgCode); + List hmsDeptList = this.hmsDeptService.selectHmsDeptOrgList(searchVO); + model.addAttribute("resultList", (Object)hmsDeptList); + JSONArray array = new JSONArray(); + int i = 0; + while (i < hmsDeptList.size()) { + EgovMap m = (EgovMap)hmsDeptList.get(i); + String deptCd = (String)m.get((Object)"deptCd"); + String deptNm = (String)m.get((Object)"deptNm"); + String parentDeptCd = (String)m.get((Object)"parentDeptCd"); + JSONObject org = new JSONObject(); + org.put((Object)"parent", (Object)parentDeptCd); + org.put((Object)"id", (Object)deptCd); + org.put((Object)"text", (Object)deptNm); + org.put((Object)"a_attr", (Object)("{'name':'" + deptNm + "','model':'" + deptNm + "'}")); + if (i == 0) { + org.put((Object)"parent", (Object)"#"); + } + array.add((Object)org); + ++i; + } + model.addAttribute("orgData", (Object)array.toString()); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("loginVO", (Object)loginVO); + return "/common/HmsDeptFindPopup"; + } + + @RequestMapping(value={"/popup/hmsDept/hmsDeptAndUserFindIndex.do"}) + public String hmsDeptAndUserFindIndex(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + HmsDeptDefaultVO searchVO = new HmsDeptDefaultVO(); + try { + String orgCode = EgovProperties.getProperty((String)"Globals.OrgCode"); + searchVO.setSearchDeptCd(orgCode); + List hmsDeptList = this.hmsDeptService.selectHmsDeptOrgList(searchVO); + model.addAttribute("resultList", (Object)hmsDeptList); + JSONArray array = new JSONArray(); + int i = 0; + while (i < hmsDeptList.size()) { + EgovMap m = (EgovMap)hmsDeptList.get(i); + String deptCd = (String)m.get((Object)"deptCd"); + String deptNm = (String)m.get((Object)"deptNm"); + String parentDeptCd = (String)m.get((Object)"parentDeptCd"); + JSONObject org = new JSONObject(); + org.put((Object)"parent", (Object)parentDeptCd); + org.put((Object)"id", (Object)deptCd); + org.put((Object)"text", (Object)deptNm); + org.put((Object)"a_attr", (Object)("{'name':'" + deptNm + "','model':'" + deptNm + "'}")); + if (i == 0) { + org.put((Object)"parent", (Object)"#"); + } + array.add((Object)org); + ++i; + } + model.addAttribute("orgData", (Object)array.toString()); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("loginVO", (Object)loginVO); + return "/common/HmsDeptAndUserFindPopup"; + } +} + diff --git a/src/main/java/egovframework/cms/dept/web/HmsDeptMobileController.java b/src/main/java/egovframework/cms/dept/web/HmsDeptMobileController.java new file mode 100644 index 0000000..9826ee0 --- /dev/null +++ b/src/main/java/egovframework/cms/dept/web/HmsDeptMobileController.java @@ -0,0 +1,254 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.dept.vo.HmsDeptVO + * egovframework.cms.dept.web.HmsDeptMobileController + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.dept.web; + +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.dept.vo.HmsDeptVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.common.service.CommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsDeptVO.class}) +public class HmsDeptMobileController { + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/mobile/hmsDept/hmsDeptMobileIndex.do"}) + public String hmsDeptIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsDeptMobileList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsDeptMobile(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsDeptMobileView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsDeptMobile(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsDeptMobileList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.hmsDeptService.selectHmsDeptListTotCnt(searchVO); + if (totCnt > 0) { + List hmsDeptList = this.hmsDeptService.selectHmsDeptList(searchVO); + model.addAttribute("resultList", (Object)hmsDeptList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "mobile/hmsDept/HmsDeptMobileList"; + } + + private String addHmsDeptMobileView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + return "mobile/hmsDept/HmsDeptMobileRegister"; + } + + @RequestMapping(value={"/mobile/hmsDept/addHmsDeptMobile.do"}) + public String addHmsDeptMobile(MultipartHttpServletRequest request, HttpServletResponse response, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsDeptService.insertHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request); + } + + private String updateHmsDeptMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + hmsDeptVO.setDeptSeq(searchVO.getDeptSeq()); + hmsDeptVO = this.hmsDeptService.selectHmsDept(hmsDeptVO); + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/sessionError"; + } + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + return "mobile/hmsDept/HmsDeptMobileRegister"; + } + + @RequestMapping(value={"/mobile/hmsDept/updateHmsDeptMobile.do"}) + public String updateHmsDeptMobile(MultipartHttpServletRequest request, HttpServletResponse response, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsDeptService.updateHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request) + searchVO.toParam() + "&deptSeq=" + hmsDeptVO.getDeptSeq(); + } + + private String selectHmsDeptMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsDeptVO hmsDeptVO = new HmsDeptVO(); + hmsDeptVO.setDeptSeq(searchVO.getDeptSeq()); + try { + hmsDeptVO = this.hmsDeptService.selectHmsDept(hmsDeptVO); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("hmsDeptVO", (Object)hmsDeptVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsDeptVO)); + return "mobile/hmsDept/HmsDeptMobileDetail"; + } + + @RequestMapping(value={"/mobile/hmsDept/deleteHmsDeptMobile.do"}) + public String deleteHmsDeptMobile(HttpServletRequest request, HmsDeptVO hmsDeptVO, @ModelAttribute(value="searchVO") HmsDeptDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsDeptVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsDeptService.deleteHmsDept(hmsDeptVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsDeptVO hmsDeptVO) { + return true; + } +} + diff --git a/src/main/java/egovframework/cms/duty/dao/HmsDutyDAO.java b/src/main/java/egovframework/cms/duty/dao/HmsDutyDAO.java new file mode 100644 index 0000000..c03af73 --- /dev/null +++ b/src/main/java/egovframework/cms/duty/dao/HmsDutyDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.duty.dao.HmsDutyDAO + * egovframework.cms.duty.vo.HmsDutyDefaultVO + * egovframework.cms.duty.vo.HmsDutyVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.duty.dao; + +import egovframework.cms.duty.vo.HmsDutyDefaultVO; +import egovframework.cms.duty.vo.HmsDutyVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsDutyDAO") +public class HmsDutyDAO +extends EgovComAbstractDAO { + public String insertHmsDuty(HmsDutyVO vo) throws Exception { + return (String)this.insert("hmsDutyDAO.insertHmsDuty_S", (Object)vo); + } + + public void updateHmsDuty(HmsDutyVO vo) throws Exception { + this.update("hmsDutyDAO.updateHmsDuty_S", (Object)vo); + } + + public void deleteHmsDuty(HmsDutyVO vo) throws Exception { + this.delete("hmsDutyDAO.deleteHmsDuty_S", (Object)vo); + } + + public HmsDutyVO selectHmsDuty(HmsDutyVO vo) throws Exception { + return (HmsDutyVO)this.selectByPk("hmsDutyDAO.selectHmsDuty_S", (Object)vo); + } + + public List selectHmsDutyList(HmsDutyDefaultVO searchVO) throws Exception { + return this.list("hmsDutyDAO.selectHmsDutyList_D", (Object)searchVO); + } + + public int selectHmsDutyListTotCnt(HmsDutyDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsDutyDAO.selectHmsDutyListTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/duty/service/HmsDutyService.java b/src/main/java/egovframework/cms/duty/service/HmsDutyService.java new file mode 100644 index 0000000..d1d7298 --- /dev/null +++ b/src/main/java/egovframework/cms/duty/service/HmsDutyService.java @@ -0,0 +1,32 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.duty.service.HmsDutyService + * egovframework.cms.duty.vo.HmsDutyDefaultVO + * egovframework.cms.duty.vo.HmsDutyVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.duty.service; + +import egovframework.cms.duty.vo.HmsDutyDefaultVO; +import egovframework.cms.duty.vo.HmsDutyVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsDutyService { + public String insertHmsDuty(HmsDutyVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsDuty(HmsDutyVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsDuty(HmsDutyVO var1, HttpServletRequest var2) throws Exception; + + public HmsDutyVO selectHmsDuty(HmsDutyVO var1) throws Exception; + + public List selectHmsDutyList(HmsDutyDefaultVO var1) throws Exception; + + public int selectHmsDutyListTotCnt(HmsDutyDefaultVO var1); +} + diff --git a/src/main/java/egovframework/cms/duty/service/impl/HmsDutyServiceImpl.java b/src/main/java/egovframework/cms/duty/service/impl/HmsDutyServiceImpl.java new file mode 100644 index 0000000..add5991 --- /dev/null +++ b/src/main/java/egovframework/cms/duty/service/impl/HmsDutyServiceImpl.java @@ -0,0 +1,202 @@ +package egovframework.cms.duty.service.impl; + +import egovframework.cms.duty.dao.HmsDutyDAO; +import egovframework.cms.duty.service.HmsDutyService; +import egovframework.cms.duty.vo.HmsDutyDefaultVO; +import egovframework.cms.duty.vo.HmsDutyVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("hmsDutyService") +public class HmsDutyServiceImpl implements HmsDutyService { + @Resource(name = "hmsDutyDAO") + private HmsDutyDAO hmsDutyDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + public String insertHmsDuty(HmsDutyVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + vo.setDutySeq(this.egovIdGnrService.getNextStringId()); + vo.setDutyCd(vo.getDutySeq()); + this.hmsDutyDAO.insertHmsDuty(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_HMS_DUTY); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDutySeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsDuty(HmsDutyVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsDutyDAO.updateHmsDuty(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject(HmsLogVO.OBJ_HMS_DUTY); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDutySeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsDuty(HmsDutyVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsDutyDAO.deleteHmsDuty(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject(HmsLogVO.OBJ_HMS_DUTY); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDutySeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsDutyVO selectHmsDuty(HmsDutyVO vo) throws Exception { + HmsDutyVO resultVO = this.hmsDutyDAO.selectHmsDuty(vo); + return resultVO; + } + + public List selectHmsDutyList(HmsDutyDefaultVO searchVO) throws Exception { + return this.hmsDutyDAO.selectHmsDutyList(searchVO); + } + + public int selectHmsDutyListTotCnt(HmsDutyDefaultVO searchVO) { + return this.hmsDutyDAO.selectHmsDutyListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } +} diff --git a/src/main/java/egovframework/cms/duty/vo/HmsDutyDefaultVO.java b/src/main/java/egovframework/cms/duty/vo/HmsDutyDefaultVO.java new file mode 100644 index 0000000..483a96d --- /dev/null +++ b/src/main/java/egovframework/cms/duty/vo/HmsDutyDefaultVO.java @@ -0,0 +1,155 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.duty.vo.HmsDutyDefaultVO + */ +package egovframework.cms.duty.vo; + +import java.io.Serializable; + +public class HmsDutyDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String dutySeq; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setDutySeq(String dutySeq) { + this.dutySeq = dutySeq; + } + + public String getDutySeq() { + return this.dutySeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } +} + diff --git a/src/main/java/egovframework/cms/duty/vo/HmsDutyVO.java b/src/main/java/egovframework/cms/duty/vo/HmsDutyVO.java new file mode 100644 index 0000000..a809c57 --- /dev/null +++ b/src/main/java/egovframework/cms/duty/vo/HmsDutyVO.java @@ -0,0 +1,61 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.duty.vo.HmsDutyDefaultVO + * egovframework.cms.duty.vo.HmsDutyVO + */ +package egovframework.cms.duty.vo; + +import egovframework.cms.duty.vo.HmsDutyDefaultVO; +import java.sql.Date; + +public class HmsDutyVO +extends HmsDutyDefaultVO { + private String dutySeq; + private String dutyCd; + private String dutyNm; + private String recSts; + private Date createDate; + + public void setDutySeq(String dutySeq) { + this.dutySeq = dutySeq; + } + + public String getDutySeq() { + return this.dutySeq; + } + + public void setDutyCd(String dutyCd) { + this.dutyCd = dutyCd; + } + + public String getDutyCd() { + return this.dutyCd; + } + + public void setDutyNm(String dutyNm) { + this.dutyNm = dutyNm; + } + + public String getDutyNm() { + return this.dutyNm; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getCreateDate() { + return this.createDate; + } +} + diff --git a/src/main/java/egovframework/cms/duty/web/HmsDutyController.java b/src/main/java/egovframework/cms/duty/web/HmsDutyController.java new file mode 100644 index 0000000..4759e45 --- /dev/null +++ b/src/main/java/egovframework/cms/duty/web/HmsDutyController.java @@ -0,0 +1,250 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.duty.service.HmsDutyService + * egovframework.cms.duty.vo.HmsDutyDefaultVO + * egovframework.cms.duty.vo.HmsDutyVO + * egovframework.cms.duty.web.HmsDutyController + * egovframework.com.cmm.LoginVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.duty.web; + +import egovframework.cms.duty.service.HmsDutyService; +import egovframework.cms.duty.vo.HmsDutyDefaultVO; +import egovframework.cms.duty.vo.HmsDutyVO; +import egovframework.com.cmm.LoginVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsDutyVO.class}) +public class HmsDutyController { + @Resource(name="hmsDutyService") + private HmsDutyService hmsDutyService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + + @RequestMapping(value={"/hms/hmsDuty/hmsDutyIndex.do"}) + public String hmsDutyIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDutyDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsDutyList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsDuty(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsDutyView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsDuty(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_USER", (Object)UserDetailsHelper.isRole((String)"ROLE_USER")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsDutyList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDutyDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.hmsDutyService.selectHmsDutyListTotCnt(searchVO); + if (totCnt > 0) { + List hmsDutyList = this.hmsDutyService.selectHmsDutyList(searchVO); + model.addAttribute("resultList", (Object)hmsDutyList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "/cms/hmsDuty/HmsDutyList"; + } + + private String addHmsDutyView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDutyDefaultVO searchVO, Model model) throws Exception { + HmsDutyVO hmsDutyVO = new HmsDutyVO(); + model.addAttribute("hmsDutyVO", (Object)hmsDutyVO); + return "/cms/hmsDuty/HmsDutyRegister"; + } + + @RequestMapping(value={"/hms/hmsDuty/addHmsDuty.do"}) + public String addHmsDuty(MultipartHttpServletRequest request, HttpServletResponse response, HmsDutyVO hmsDutyVO, @ModelAttribute(value="searchVO") HmsDutyDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsDutyService.insertHmsDuty(hmsDutyVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateHmsDuty(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDutyDefaultVO searchVO, Model model) throws Exception { + HmsDutyVO hmsDutyVO = new HmsDutyVO(); + hmsDutyVO.setDutySeq(searchVO.getDutySeq()); + hmsDutyVO = this.hmsDutyService.selectHmsDuty(hmsDutyVO); + if (!this.checkWriteAuth(hmsDutyVO)) { + return "cmm/sessionError"; + } + model.addAttribute("hmsDutyVO", (Object)hmsDutyVO); + return "/cms/hmsDuty/HmsDutyRegister"; + } + + @RequestMapping(value={"/hms/hmsDuty/updateHmsDuty.do"}) + public String updateHmsDuty(MultipartHttpServletRequest request, HttpServletResponse response, HmsDutyVO hmsDutyVO, @ModelAttribute(value="searchVO") HmsDutyDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsDutyVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsDutyService.updateHmsDuty(hmsDutyVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&dutySeq=" + hmsDutyVO.getDutySeq(); + } + + private String selectHmsDuty(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsDutyDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsDutyVO hmsDutyVO = new HmsDutyVO(); + hmsDutyVO.setDutySeq(searchVO.getDutySeq()); + try { + hmsDutyVO = this.hmsDutyService.selectHmsDuty(hmsDutyVO); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("hmsDutyVO", (Object)hmsDutyVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsDutyVO)); + return "/cms/hmsDuty/HmsDutyDetail"; + } + + @RequestMapping(value={"/hms/hmsDuty/deleteHmsDuty.do"}) + public String deleteHmsDuty(HttpServletRequest request, HmsDutyVO hmsDutyVO, @ModelAttribute(value="searchVO") HmsDutyDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsDutyVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsDutyService.deleteHmsDuty(hmsDutyVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsDutyVO hmsDutyVO) { + if (UserDetailsHelper.isRole((String)"ROLE_USER").booleanValue()) { + return true; + } + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/env/dao/HmsEnvDAO.java b/src/main/java/egovframework/cms/env/dao/HmsEnvDAO.java new file mode 100644 index 0000000..fb6345c --- /dev/null +++ b/src/main/java/egovframework/cms/env/dao/HmsEnvDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.env.dao.HmsEnvDAO + * egovframework.cms.env.vo.HmsEnvDefaultVO + * egovframework.cms.env.vo.HmsEnvVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.env.dao; + +import egovframework.cms.env.vo.HmsEnvDefaultVO; +import egovframework.cms.env.vo.HmsEnvVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsEnvDAO") +public class HmsEnvDAO +extends EgovComAbstractDAO { + public String insertHmsEnv(HmsEnvVO vo) throws Exception { + return (String)this.insert("hmsEnvDAO.insertHmsEnv_S", (Object)vo); + } + + public void updateHmsEnv(HmsEnvVO vo) throws Exception { + this.update("hmsEnvDAO.updateHmsEnv_S", (Object)vo); + } + + public void deleteHmsEnv(HmsEnvVO vo) throws Exception { + this.delete("hmsEnvDAO.deleteHmsEnv_S", (Object)vo); + } + + public HmsEnvVO selectHmsEnv(HmsEnvVO vo) throws Exception { + return (HmsEnvVO)this.select("hmsEnvDAO.selectHmsEnv_S", (Object)vo); + } + + public List selectHmsEnvList(HmsEnvDefaultVO searchVO) throws Exception { + return this.list("hmsEnvDAO.selectHmsEnvList_D", (Object)searchVO); + } + + public int selectHmsEnvListTotCnt(HmsEnvDefaultVO searchVO) { + return (Integer)this.select("hmsEnvDAO.selectHmsEnvListTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/env/service/HmsEnvService.java b/src/main/java/egovframework/cms/env/service/HmsEnvService.java new file mode 100644 index 0000000..4d4f09a --- /dev/null +++ b/src/main/java/egovframework/cms/env/service/HmsEnvService.java @@ -0,0 +1,32 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.env.service.HmsEnvService + * egovframework.cms.env.vo.HmsEnvDefaultVO + * egovframework.cms.env.vo.HmsEnvVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.env.service; + +import egovframework.cms.env.vo.HmsEnvDefaultVO; +import egovframework.cms.env.vo.HmsEnvVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsEnvService { + public String insertHmsEnv(HmsEnvVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsEnv(HmsEnvVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsEnv(HmsEnvVO var1, HttpServletRequest var2) throws Exception; + + public HmsEnvVO selectHmsEnv(HmsEnvVO var1) throws Exception; + + public List selectHmsEnvList(HmsEnvDefaultVO var1) throws Exception; + + public int selectHmsEnvListTotCnt(HmsEnvDefaultVO var1); +} + diff --git a/src/main/java/egovframework/cms/env/service/impl/HmsEnvServiceImpl.java b/src/main/java/egovframework/cms/env/service/impl/HmsEnvServiceImpl.java new file mode 100644 index 0000000..7ce5742 --- /dev/null +++ b/src/main/java/egovframework/cms/env/service/impl/HmsEnvServiceImpl.java @@ -0,0 +1,232 @@ +package egovframework.cms.env.service.impl; + +import egovframework.cms.code.service.ComtccmmndetailcodeService; +import egovframework.cms.code.vo.ComtccmmndetailcodeVO; +import egovframework.cms.env.dao.HmsEnvDAO; +import egovframework.cms.env.service.HmsEnvService; +import egovframework.cms.env.vo.HmsEnvDefaultVO; +import egovframework.cms.env.vo.HmsEnvVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("hmsEnvService") +public class HmsEnvServiceImpl implements HmsEnvService { + @Resource(name = "hmsEnvDAO") + private HmsEnvDAO hmsEnvDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + @Resource(name = "comtccmmndetailcodeService") + private ComtccmmndetailcodeService comtccmmndetailcodeService; + + @Resource(name = "codeResource") + private CodeResource codeResource; + + public String insertHmsEnv(HmsEnvVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + vo.setLogoImage(this.egovIdGnrService.getNextStringId()); + this.hmsEnvDAO.insertHmsEnv(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject("HMS_ENV"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getLogoImage()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsEnv(HmsEnvVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + List list = this.codeResource.getCodeList("CUS001"); + Map data = new HashMap<>(); + for (int i = 0; i < list.size(); i++) + data.put(((CmmnDetailCode)list.get(i)).getCode(), ((CmmnDetailCode)list.get(i)).getCodeDc()); + String adminLogoImage = updateMultiFiles(request, "file_1", (String)data.get("CUS001001"), false); + String userLogoImage = updateMultiFiles(request, "file_2", (String)data.get("CUS001002"), false); + ComtccmmndetailcodeVO comtccmmndetailcodeVO = new ComtccmmndetailcodeVO(); + comtccmmndetailcodeVO.setCodeId("CUS001"); + comtccmmndetailcodeVO.setCode("CUS001001"); + comtccmmndetailcodeVO.setCodeDc(adminLogoImage); + comtccmmndetailcodeVO.setUseAt("Y"); + comtccmmndetailcodeVO.setSort("10"); + this.comtccmmndetailcodeService.updateComtccmmndetailcode(comtccmmndetailcodeVO); + comtccmmndetailcodeVO.setCode(null); + comtccmmndetailcodeVO.setCodeDc(null); + comtccmmndetailcodeVO.setCode("CUS001002"); + comtccmmndetailcodeVO.setCodeDc(userLogoImage); + this.comtccmmndetailcodeService.updateComtccmmndetailcode(comtccmmndetailcodeVO); + comtccmmndetailcodeVO.setCode(null); + comtccmmndetailcodeVO.setCodeDc(null); + comtccmmndetailcodeVO.setCode("CUS001003"); + comtccmmndetailcodeVO.setCodeDc(request.getParameter("footerText")); + this.comtccmmndetailcodeService.updateComtccmmndetailcode(comtccmmndetailcodeVO); + comtccmmndetailcodeVO.setCode(null); + comtccmmndetailcodeVO.setCodeDc(null); + comtccmmndetailcodeVO.setCode("CUS001004"); + comtccmmndetailcodeVO.setCodeDc(request.getParameter("notUserIds")); + this.comtccmmndetailcodeService.updateComtccmmndetailcode(comtccmmndetailcodeVO); + comtccmmndetailcodeVO.setCode(null); + comtccmmndetailcodeVO.setCodeDc(null); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject("HMS_ENV"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getLogoImage()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsEnv(HmsEnvVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsEnvDAO.deleteHmsEnv(vo); + } + + public HmsEnvVO selectHmsEnv(HmsEnvVO vo) throws Exception { + HmsEnvVO resultVO = this.hmsEnvDAO.selectHmsEnv(vo); + return resultVO; + } + + public List selectHmsEnvList(HmsEnvDefaultVO searchVO) throws Exception { + return this.hmsEnvDAO.selectHmsEnvList(searchVO); + } + + public int selectHmsEnvListTotCnt(HmsEnvDefaultVO searchVO) { + return this.hmsEnvDAO.selectHmsEnvListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } +} diff --git a/src/main/java/egovframework/cms/env/vo/HmsEnvDefaultVO.java b/src/main/java/egovframework/cms/env/vo/HmsEnvDefaultVO.java new file mode 100644 index 0000000..f7cfd4a --- /dev/null +++ b/src/main/java/egovframework/cms/env/vo/HmsEnvDefaultVO.java @@ -0,0 +1,155 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.env.vo.HmsEnvDefaultVO + */ +package egovframework.cms.env.vo; + +import java.io.Serializable; + +public class HmsEnvDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String logoImage; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setLogoImage(String logoImage) { + this.logoImage = logoImage; + } + + public String getLogoImage() { + return this.logoImage; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } +} + diff --git a/src/main/java/egovframework/cms/env/vo/HmsEnvVO.java b/src/main/java/egovframework/cms/env/vo/HmsEnvVO.java new file mode 100644 index 0000000..8cc0792 --- /dev/null +++ b/src/main/java/egovframework/cms/env/vo/HmsEnvVO.java @@ -0,0 +1,96 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.env.vo.HmsEnvDefaultVO + * egovframework.cms.env.vo.HmsEnvVO + */ +package egovframework.cms.env.vo; + +import egovframework.cms.env.vo.HmsEnvDefaultVO; + +public class HmsEnvVO +extends HmsEnvDefaultVO { + private String logoImage; + private String headerImage; + private String footerText; + private String loginFooterImage; + private String versionType; + private String introImage; + private String mobileIntroImage; + private String mobileLogoImage; + private String notUserIds; + + public void setLogoImage(String logoImage) { + this.logoImage = logoImage; + } + + public String getLogoImage() { + return this.logoImage; + } + + public void setHeaderImage(String headerImage) { + this.headerImage = headerImage; + } + + public String getHeaderImage() { + return this.headerImage; + } + + public void setFooterText(String footerText) { + this.footerText = footerText; + } + + public String getFooterText() { + return this.footerText; + } + + public void setLoginFooterImage(String loginFooterImage) { + this.loginFooterImage = loginFooterImage; + } + + public String getLoginFooterImage() { + return this.loginFooterImage; + } + + public void setVersionType(String versionType) { + this.versionType = versionType; + } + + public String getVersionType() { + return this.versionType; + } + + public String getIntroImage() { + return this.introImage; + } + + public void setIntroImage(String introImage) { + this.introImage = introImage; + } + + public String getMobileIntroImage() { + return this.mobileIntroImage; + } + + public void setMobileIntroImage(String mobileIntroImage) { + this.mobileIntroImage = mobileIntroImage; + } + + public String getMobileLogoImage() { + return this.mobileLogoImage; + } + + public void setMobileLogoImage(String mobileLogoImage) { + this.mobileLogoImage = mobileLogoImage; + } + + public String getNotUserIds() { + return this.notUserIds; + } + + public void setNotUserIds(String notUserIds) { + this.notUserIds = notUserIds; + } +} + diff --git a/src/main/java/egovframework/cms/env/web/HmsEnvController.java b/src/main/java/egovframework/cms/env/web/HmsEnvController.java new file mode 100644 index 0000000..b5471a1 --- /dev/null +++ b/src/main/java/egovframework/cms/env/web/HmsEnvController.java @@ -0,0 +1,195 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.env.service.HmsEnvService + * egovframework.cms.env.vo.HmsEnvDefaultVO + * egovframework.cms.env.vo.HmsEnvVO + * egovframework.cms.env.web.HmsEnvController + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.CmmnDetailCode + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.env.web; + +import egovframework.cms.env.service.HmsEnvService; +import egovframework.cms.env.vo.HmsEnvDefaultVO; +import egovframework.cms.env.vo.HmsEnvVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.common.dwr.DwrCommonService; +import egovframework.common.service.CommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsEnvVO.class}) +public class HmsEnvController { + @Resource(name="hmsEnvService") + private HmsEnvService hmsEnvService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/hms/hmsEnv/hmsEnvIndex.do"}) + public String hmsEnvIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsEnvDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsEnv(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsEnv(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsEnv(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String updateHmsEnv(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsEnvDefaultVO searchVO, Model model) throws Exception { + if (!this.checkWriteAuth(null)) { + return "cmm/privilegeError"; + } + List list = this.codeResource.getCodeList("CUS001"); + HashMap data = new HashMap(); + int i = 0; + while (i < list.size()) { + data.put(((CmmnDetailCode)list.get(i)).getCode(), ((CmmnDetailCode)list.get(i)).getCodeDc()); + ++i; + } + model.addAttribute("data", data); + return "/cms/hmsEnv/HmsEnvRegister"; + } + + @RequestMapping(value={"/hms/hmsEnv/updateHmsEnv.do"}) + public String updateHmsEnv(MultipartHttpServletRequest request, HttpServletResponse response, HmsEnvVO hmsEnvVO, @ModelAttribute(value="searchVO") HmsEnvDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsEnvVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsEnvService.updateHmsEnv(hmsEnvVO, request); + this.codeResource.setCodeList("CUS001"); + List list = this.codeResource.getCodeList("CUS001"); + HashMap data = new HashMap(); + int i = 0; + while (i < list.size()) { + data.put(((CmmnDetailCode)list.get(i)).getCode(), ((CmmnDetailCode)list.get(i)).getCodeDc()); + ++i; + } + request.getSession().setAttribute("env", data); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request) + searchVO.toParam(); + } + + private String selectHmsEnv(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsEnvDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + try { + List list = this.codeResource.getCodeList("CUS001"); + HashMap data = new HashMap(); + int i = 0; + while (i < list.size()) { + data.put(((CmmnDetailCode)list.get(i)).getCode(), ((CmmnDetailCode)list.get(i)).getCodeDc()); + ++i; + } + model.addAttribute("data", data); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(null)); + } + catch (Exception e) { + e.printStackTrace(); + } + return "/cms/hmsEnv/HmsEnvDetail"; + } + + private boolean checkWriteAuth(HmsEnvVO hmsEnvVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_SYSTEM").booleanValue()) { + return true; + } + return true; + } +} + diff --git a/src/main/java/egovframework/cms/log/dao/HmsLogDAO.java b/src/main/java/egovframework/cms/log/dao/HmsLogDAO.java new file mode 100644 index 0000000..56ee797 --- /dev/null +++ b/src/main/java/egovframework/cms/log/dao/HmsLogDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.log.dao.HmsLogDAO + * egovframework.cms.log.vo.HmsLogDefaultVO + * egovframework.cms.log.vo.HmsLogVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.log.dao; + +import egovframework.cms.log.vo.HmsLogDefaultVO; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsLogDAO") +public class HmsLogDAO +extends EgovComAbstractDAO { + public String insertHmsLog(HmsLogVO vo) throws Exception { + return (String)this.insert("hmsLogDAO.insertHmsLog_S", (Object)vo); + } + + public void updateHmsLog(HmsLogVO vo) throws Exception { + this.update("hmsLogDAO.updateHmsLog_S", (Object)vo); + } + + public void deleteHmsLog(HmsLogVO vo) throws Exception { + this.delete("hmsLogDAO.deleteHmsLog_S", (Object)vo); + } + + public HmsLogVO selectHmsLog(HmsLogVO vo) throws Exception { + return (HmsLogVO)this.selectByPk("hmsLogDAO.selectHmsLog_S", (Object)vo); + } + + public List selectHmsLogList(HmsLogDefaultVO searchVO) throws Exception { + return this.list("hmsLogDAO.selectHmsLogList_D", (Object)searchVO); + } + + public int selectHmsLogListTotCnt(HmsLogDefaultVO searchVO) { + return (Integer)this.select("hmsLogDAO.selectHmsLogListTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/log/service/HmsLogService.java b/src/main/java/egovframework/cms/log/service/HmsLogService.java new file mode 100644 index 0000000..4cfce5f --- /dev/null +++ b/src/main/java/egovframework/cms/log/service/HmsLogService.java @@ -0,0 +1,30 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.log.service.HmsLogService + * egovframework.cms.log.vo.HmsLogDefaultVO + * egovframework.cms.log.vo.HmsLogVO + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.log.service; + +import egovframework.cms.log.vo.HmsLogDefaultVO; +import egovframework.cms.log.vo.HmsLogVO; +import java.util.List; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsLogService { + public String insertHmsLog(HmsLogVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsLog(HmsLogVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsLog(HmsLogVO var1) throws Exception; + + public HmsLogVO selectHmsLog(HmsLogVO var1) throws Exception; + + public List selectHmsLogList(HmsLogDefaultVO var1) throws Exception; + + public int selectHmsLogListTotCnt(HmsLogDefaultVO var1); +} + diff --git a/src/main/java/egovframework/cms/log/service/impl/HmsLogServiceImpl.java b/src/main/java/egovframework/cms/log/service/impl/HmsLogServiceImpl.java new file mode 100644 index 0000000..05f3cb7 --- /dev/null +++ b/src/main/java/egovframework/cms/log/service/impl/HmsLogServiceImpl.java @@ -0,0 +1,137 @@ +package egovframework.cms.log.service.impl; + +import egovframework.cms.log.dao.HmsLogDAO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogDefaultVO; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("hmsLogService") +public class HmsLogServiceImpl implements HmsLogService { + @Resource(name = "hmsLogDAO") + private HmsLogDAO hmsLogDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "logIdGnrService") + private EgovIdGnrService egovIdGnrService; + + public String insertHmsLog(HmsLogVO vo, MultipartHttpServletRequest request) throws Exception { + vo.setLogSeq(this.egovIdGnrService.getNextStringId()); + this.hmsLogDAO.insertHmsLog(vo); + return null; + } + + public void updateHmsLog(HmsLogVO vo, MultipartHttpServletRequest request) throws Exception { + this.hmsLogDAO.updateHmsLog(vo); + } + + public void deleteHmsLog(HmsLogVO vo) throws Exception { + this.hmsLogDAO.deleteHmsLog(vo); + } + + public HmsLogVO selectHmsLog(HmsLogVO vo) throws Exception { + HmsLogVO resultVO = this.hmsLogDAO.selectHmsLog(vo); + return resultVO; + } + + public List selectHmsLogList(HmsLogDefaultVO searchVO) throws Exception { + return this.hmsLogDAO.selectHmsLogList(searchVO); + } + + public int selectHmsLogListTotCnt(HmsLogDefaultVO searchVO) { + return this.hmsLogDAO.selectHmsLogListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + if (!fn.endsWith(".exe") && !fn.endsWith(".php") && !fn.endsWith(".jsp") && !fn.endsWith(".bat") && !fn.endsWith(".sh") && !fn.endsWith(".asp") && + !fn.equals("")) + file.put(key, mf); + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + if (!fn.endsWith(".exe") && !fn.endsWith(".php") && !fn.endsWith(".jsp") && !fn.endsWith(".bat") && !fn.endsWith(".sh") && !fn.endsWith(".asp") && + !fn.equals("")) + file.put(key, mf); + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } +} diff --git a/src/main/java/egovframework/cms/log/vo/HmsLogDefaultVO.java b/src/main/java/egovframework/cms/log/vo/HmsLogDefaultVO.java new file mode 100644 index 0000000..ab56aa7 --- /dev/null +++ b/src/main/java/egovframework/cms/log/vo/HmsLogDefaultVO.java @@ -0,0 +1,155 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.log.vo.HmsLogDefaultVO + */ +package egovframework.cms.log.vo; + +import java.io.Serializable; + +public class HmsLogDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String logSeq; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setLogSeq(String logSeq) { + this.logSeq = logSeq; + } + + public String getLogSeq() { + return this.logSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (!this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (!this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (!this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } +} + diff --git a/src/main/java/egovframework/cms/log/vo/HmsLogVO.java b/src/main/java/egovframework/cms/log/vo/HmsLogVO.java new file mode 100644 index 0000000..452791b --- /dev/null +++ b/src/main/java/egovframework/cms/log/vo/HmsLogVO.java @@ -0,0 +1,128 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.log.vo.HmsLogDefaultVO + * egovframework.cms.log.vo.HmsLogVO + */ +package egovframework.cms.log.vo; + +import egovframework.cms.log.vo.HmsLogDefaultVO; +import java.sql.Date; + +public class HmsLogVO +extends HmsLogDefaultVO { + private String logSeq; + private String userId; + private String userNm; + private Date createDate; + private String ip; + private String seq; + private String logObject; + private String logMessage; + private String logStatusType; + public static String TYPE_LOGIN = "LOGIN"; + public static String TYPE_LOGOUT = "LOGOUT"; + public static String TYPE_INSERT = "INSERT"; + public static String TYPE_UPDATE = "UPDATE"; + public static String TYPE_DELETE = "DELETE"; + public static String TYPE_PATH = "PATH"; + public static String OBJ_HMS_MEMBER = "HMS_MEMBER"; + public static String OBJ_HMS_USER = "HMS_USER"; + public static String OBJ_BRD_POST = "HMS_BRD_POST"; + public static String OBJ_BRD_MNG = "HMS_BRD_MANAGER"; + public static String OBJ_BRD_COMMENT = "HMS_BRD_COMMENT"; + public static String OBJ_HMS_AUTH_GROUP = "HMS_AUTH_GROUP"; + public static String OBJ_HMS_BRD_CATE = "HMS_BRD_CATE"; + public static String OBJ_HMS_BRD_CATE_MAST = "HMS_BRD_CATE_MAST"; + public static String OBJ_DMS_OFFICIAL_ADDR = "DMS_OFFICIAL_ADDR"; + public static String OBJ_HMS_DUTY = "HMS_DUTY"; + public static String OBJ_HMS_DEPT = "HMS_DEPT"; + public static String OBJ_HMS_POSITION = "HMS_POSITION"; + public static String OBJ_DMS_IJ_OPINION = "DMS_IJ_OPINION"; + public static String OBJ_DMS_IJ_OPINION_COMMENT = "DMS_IJ_OPINION_COMMENT"; + public static final String OBJ_HMS_ENV = "HMS_ENV"; + public static final String TBL_DOCUMENT = "DMS_IJ_DOCUMENT"; + public static final String TBL_DOCUMENT_CHK = "DMS_IJ_DOCUMENT_CHK"; + public static final String TBL_ALLIM = "DMS_IJ_ALLIM"; + public static final String TBL_FIELD = "DMS_IJ_FIELD"; + public static final String TBL_GALLERY = "DMS_IJ_GALLERY"; + public static final String TBL_MEETING = "DMS_IJ_MEETING"; + public static final String TBL_MEETING_CHK = "DMS_IJ_MEETING_CHK"; + public static final String TBL_PERSON = "DMS_IJ_PERSON"; + public static final String TBL_OPINION = "DMS_IJ_OPINION"; + public static final String TBL_OPINION_COMMENT = "DMS_IJ_OPINION_COMMENT"; + + public void setLogSeq(String logSeq) { + this.logSeq = logSeq; + } + + public String getLogSeq() { + return this.logSeq; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserId() { + return this.userId; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getUserNm() { + return this.userNm; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getCreateDate() { + return this.createDate; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public String getIp() { + return this.ip; + } + + public void setSeq(String seq) { + this.seq = seq; + } + + public String getSeq() { + return this.seq; + } + + public void setLogObject(String logObject) { + this.logObject = logObject; + } + + public String getLogObject() { + return this.logObject; + } + + public void setLogMessage(String logMessage) { + this.logMessage = logMessage; + } + + public String getLogMessage() { + return this.logMessage; + } + + public void setLogStatusType(String logStatusType) { + this.logStatusType = logStatusType; + } + + public String getLogStatusType() { + return this.logStatusType; + } +} + diff --git a/src/main/java/egovframework/cms/log/web/HmsLogController.java b/src/main/java/egovframework/cms/log/web/HmsLogController.java new file mode 100644 index 0000000..3631b11 --- /dev/null +++ b/src/main/java/egovframework/cms/log/web/HmsLogController.java @@ -0,0 +1,213 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.log.service.HmsLogService + * egovframework.cms.log.vo.HmsLogDefaultVO + * egovframework.cms.log.vo.HmsLogVO + * egovframework.cms.log.web.HmsLogController + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.log.web; + +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogDefaultVO; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsLogVO.class}) +public class HmsLogController { + @Resource(name="hmsLogService") + private HmsLogService hmsLogService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/hms/hmsLog/hmsLogIndex.do"}) + public String hmsLogIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsLogDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsLogList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsLog(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsLogView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsLog(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + if (bmode != null && !bmode.equals("add")) { + bmode.equals("modify"); + } + } + + private String selectHmsLogList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsLogDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + try { + int totCnt = this.hmsLogService.selectHmsLogListTotCnt(searchVO); + if (totCnt > 0) { + List hmsLogList = this.hmsLogService.selectHmsLogList(searchVO); + model.addAttribute("resultList", (Object)hmsLogList); + } + paginationInfo.setTotalRecordCount(totCnt); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "/cms/hmsLog/HmsLogList"; + } + + private String addHmsLogView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsLogDefaultVO searchVO, Model model) throws Exception { + HmsLogVO hmsLogVO = new HmsLogVO(); + model.addAttribute("hmsLogVO", (Object)hmsLogVO); + return "/cms/hmsLog/HmsLogRegister"; + } + + @RequestMapping(value={"/hms/hmsLog/addHmsLog.do"}) + public String addHmsLog(MultipartHttpServletRequest request, HttpServletResponse response, HmsLogVO hmsLogVO, @ModelAttribute(value="searchVO") HmsLogDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsLogService.insertHmsLog(hmsLogVO, request); + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateHmsLog(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsLogDefaultVO searchVO, Model model) throws Exception { + HmsLogVO hmsLogVO = new HmsLogVO(); + hmsLogVO.setLogSeq(searchVO.getLogSeq()); + hmsLogVO = this.hmsLogService.selectHmsLog(hmsLogVO); + if (!this.checkWriteAuth(hmsLogVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("hmsLogVO", (Object)hmsLogVO); + return "/cms/hmsLog/HmsLogRegister"; + } + + @RequestMapping(value={"/hms/hmsLog/updateHmsLog.do"}) + public String updateHmsLog(MultipartHttpServletRequest request, HttpServletResponse response, HmsLogVO hmsLogVO, @ModelAttribute(value="searchVO") HmsLogDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsLogVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + this.hmsLogService.updateHmsLog(hmsLogVO, request); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&logSeq=" + hmsLogVO.getLogSeq(); + } + + private String selectHmsLog(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsLogDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsLogVO hmsLogVO = new HmsLogVO(); + hmsLogVO.setLogSeq(searchVO.getLogSeq()); + hmsLogVO = this.hmsLogService.selectHmsLog(hmsLogVO); + model.addAttribute("hmsLogVO", (Object)hmsLogVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsLogVO)); + return "/cms/hmsLog/HmsLogDetail"; + } + + @RequestMapping(value={"/hms/hmsLog/deleteHmsLog.do"}) + public String deleteHmsLog(HttpServletRequest request, HmsLogVO hmsLogVO, @ModelAttribute(value="searchVO") HmsLogDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsLogVO)) { + return "cmm/privilegeError"; + } + this.hmsLogService.deleteHmsLog(hmsLogVO); + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsLogVO hmsLogVO) { + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/position/dao/HmsPositionDAO.java b/src/main/java/egovframework/cms/position/dao/HmsPositionDAO.java new file mode 100644 index 0000000..cc37c31 --- /dev/null +++ b/src/main/java/egovframework/cms/position/dao/HmsPositionDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.position.dao.HmsPositionDAO + * egovframework.cms.position.vo.HmsPositionDefaultVO + * egovframework.cms.position.vo.HmsPositionVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.position.dao; + +import egovframework.cms.position.vo.HmsPositionDefaultVO; +import egovframework.cms.position.vo.HmsPositionVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsPositionDAO") +public class HmsPositionDAO +extends EgovComAbstractDAO { + public String insertHmsPosition(HmsPositionVO vo) throws Exception { + return (String)this.insert("hmsPositionDAO.insertHmsPosition_S", (Object)vo); + } + + public void updateHmsPosition(HmsPositionVO vo) throws Exception { + this.update("hmsPositionDAO.updateHmsPosition_S", (Object)vo); + } + + public void deleteHmsPosition(HmsPositionVO vo) throws Exception { + this.delete("hmsPositionDAO.deleteHmsPosition_S", (Object)vo); + } + + public HmsPositionVO selectHmsPosition(HmsPositionVO vo) throws Exception { + return (HmsPositionVO)this.selectByPk("hmsPositionDAO.selectHmsPosition_S", (Object)vo); + } + + public List selectHmsPositionList(HmsPositionDefaultVO searchVO) throws Exception { + return this.list("hmsPositionDAO.selectHmsPositionList_D", (Object)searchVO); + } + + public int selectHmsPositionListTotCnt(HmsPositionDefaultVO searchVO) { + return (Integer)this.getSqlMapClientTemplate().queryForObject("hmsPositionDAO.selectHmsPositionListTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/cms/position/service/HmsPositionService.java b/src/main/java/egovframework/cms/position/service/HmsPositionService.java new file mode 100644 index 0000000..7257049 --- /dev/null +++ b/src/main/java/egovframework/cms/position/service/HmsPositionService.java @@ -0,0 +1,32 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.position.service.HmsPositionService + * egovframework.cms.position.vo.HmsPositionDefaultVO + * egovframework.cms.position.vo.HmsPositionVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.position.service; + +import egovframework.cms.position.vo.HmsPositionDefaultVO; +import egovframework.cms.position.vo.HmsPositionVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsPositionService { + public String insertHmsPosition(HmsPositionVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsPosition(HmsPositionVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsPosition(HmsPositionVO var1, HttpServletRequest var2) throws Exception; + + public HmsPositionVO selectHmsPosition(HmsPositionVO var1) throws Exception; + + public List selectHmsPositionList(HmsPositionDefaultVO var1) throws Exception; + + public int selectHmsPositionListTotCnt(HmsPositionDefaultVO var1); +} + diff --git a/src/main/java/egovframework/cms/position/service/impl/HmsPositionServiceImpl.java b/src/main/java/egovframework/cms/position/service/impl/HmsPositionServiceImpl.java new file mode 100644 index 0000000..90b6d43 --- /dev/null +++ b/src/main/java/egovframework/cms/position/service/impl/HmsPositionServiceImpl.java @@ -0,0 +1,214 @@ +package egovframework.cms.position.service.impl; + +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.cms.position.dao.HmsPositionDAO; +import egovframework.cms.position.service.HmsPositionService; +import egovframework.cms.position.vo.HmsPositionDefaultVO; +import egovframework.cms.position.vo.HmsPositionVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("hmsPositionService") +public class HmsPositionServiceImpl implements HmsPositionService { + @Resource(name = "hmsPositionDAO") + private HmsPositionDAO hmsPositionDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + public String insertHmsPosition(HmsPositionVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + vo.setPositionSeq(this.egovIdGnrService.getNextStringId()); + vo.setPositionCd(vo.getPositionSeq()); + try { + Integer.parseInt(vo.getRnk()); + } catch (Exception e) { + e.printStackTrace(); + vo.setRnk("010"); + } + this.hmsPositionDAO.insertHmsPosition(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject(HmsLogVO.OBJ_HMS_POSITION); + logVO.setLogMessage(""); + logVO.setSeq(vo.getPositionSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsPosition(HmsPositionVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + try { + Integer.parseInt(vo.getRnk()); + } catch (Exception e) { + e.printStackTrace(); + vo.setRnk("010"); + } + this.hmsPositionDAO.updateHmsPosition(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject(HmsLogVO.OBJ_HMS_POSITION); + logVO.setLogMessage(""); + logVO.setSeq(vo.getPositionSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsPosition(HmsPositionVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + this.hmsPositionDAO.deleteHmsPosition(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject(HmsLogVO.OBJ_HMS_POSITION); + logVO.setLogMessage(""); + logVO.setSeq(vo.getPositionSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsPositionVO selectHmsPosition(HmsPositionVO vo) throws Exception { + HmsPositionVO resultVO = this.hmsPositionDAO.selectHmsPosition(vo); + return resultVO; + } + + public List selectHmsPositionList(HmsPositionDefaultVO searchVO) throws Exception { + return this.hmsPositionDAO.selectHmsPositionList(searchVO); + } + + public int selectHmsPositionListTotCnt(HmsPositionDefaultVO searchVO) { + return this.hmsPositionDAO.selectHmsPositionListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } +} diff --git a/src/main/java/egovframework/cms/position/vo/HmsPositionDefaultVO.java b/src/main/java/egovframework/cms/position/vo/HmsPositionDefaultVO.java new file mode 100644 index 0000000..8cd6516 --- /dev/null +++ b/src/main/java/egovframework/cms/position/vo/HmsPositionDefaultVO.java @@ -0,0 +1,155 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.position.vo.HmsPositionDefaultVO + */ +package egovframework.cms.position.vo; + +import java.io.Serializable; + +public class HmsPositionDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String positionSeq; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setPositionSeq(String positionSeq) { + this.positionSeq = positionSeq; + } + + public String getPositionSeq() { + return this.positionSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } +} + diff --git a/src/main/java/egovframework/cms/position/vo/HmsPositionVO.java b/src/main/java/egovframework/cms/position/vo/HmsPositionVO.java new file mode 100644 index 0000000..d31d160 --- /dev/null +++ b/src/main/java/egovframework/cms/position/vo/HmsPositionVO.java @@ -0,0 +1,70 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.position.vo.HmsPositionDefaultVO + * egovframework.cms.position.vo.HmsPositionVO + */ +package egovframework.cms.position.vo; + +import egovframework.cms.position.vo.HmsPositionDefaultVO; +import java.sql.Date; + +public class HmsPositionVO +extends HmsPositionDefaultVO { + private String positionCd; + private String positionNm; + private String positionSeq; + private String recSts; + private Date createDate; + private String rnk; + + public void setPositionCd(String positionCd) { + this.positionCd = positionCd; + } + + public String getPositionCd() { + return this.positionCd; + } + + public void setPositionNm(String positionNm) { + this.positionNm = positionNm; + } + + public String getPositionNm() { + return this.positionNm; + } + + public void setPositionSeq(String positionSeq) { + this.positionSeq = positionSeq; + } + + public String getPositionSeq() { + return this.positionSeq; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getCreateDate() { + return this.createDate; + } + + public String getRnk() { + return this.rnk; + } + + public void setRnk(String rnk) { + this.rnk = rnk; + } +} + diff --git a/src/main/java/egovframework/cms/position/web/HmsPositionController.java b/src/main/java/egovframework/cms/position/web/HmsPositionController.java new file mode 100644 index 0000000..87a198d --- /dev/null +++ b/src/main/java/egovframework/cms/position/web/HmsPositionController.java @@ -0,0 +1,251 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.position.service.HmsPositionService + * egovframework.cms.position.vo.HmsPositionDefaultVO + * egovframework.cms.position.vo.HmsPositionVO + * egovframework.cms.position.web.HmsPositionController + * egovframework.com.cmm.LoginVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.position.web; + +import egovframework.cms.position.service.HmsPositionService; +import egovframework.cms.position.vo.HmsPositionDefaultVO; +import egovframework.cms.position.vo.HmsPositionVO; +import egovframework.com.cmm.LoginVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={HmsPositionVO.class}) +public class HmsPositionController { + @Resource(name="hmsPositionService") + private HmsPositionService hmsPositionService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + + @RequestMapping(value={"/hms/hmsPosition/hmsPositionIndex.do"}) + public String hmsPositionIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsPositionDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsPositionList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsPosition(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsPositionView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsPosition(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_USER", (Object)UserDetailsHelper.isRole((String)"ROLE_USER")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsPositionList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsPositionDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(20); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.hmsPositionService.selectHmsPositionListTotCnt(searchVO); + if (totCnt > 0) { + List hmsPositionList = this.hmsPositionService.selectHmsPositionList(searchVO); + model.addAttribute("resultList", (Object)hmsPositionList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "/cms/hmsPosition/HmsPositionList"; + } + + private String addHmsPositionView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsPositionDefaultVO searchVO, Model model) throws Exception { + HmsPositionVO hmsPositionVO = new HmsPositionVO(); + hmsPositionVO.setRnk("010"); + model.addAttribute("hmsPositionVO", (Object)hmsPositionVO); + return "/cms/hmsPosition/HmsPositionRegister"; + } + + @RequestMapping(value={"/hms/hmsPosition/addHmsPosition.do"}) + public String addHmsPosition(MultipartHttpServletRequest request, HttpServletResponse response, HmsPositionVO hmsPositionVO, @ModelAttribute(value="searchVO") HmsPositionDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsPositionService.insertHmsPosition(hmsPositionVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateHmsPosition(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsPositionDefaultVO searchVO, Model model) throws Exception { + HmsPositionVO hmsPositionVO = new HmsPositionVO(); + hmsPositionVO.setPositionSeq(searchVO.getPositionSeq()); + hmsPositionVO = this.hmsPositionService.selectHmsPosition(hmsPositionVO); + if (!this.checkWriteAuth(hmsPositionVO)) { + return "cmm/sessionError"; + } + model.addAttribute("hmsPositionVO", (Object)hmsPositionVO); + return "/cms/hmsPosition/HmsPositionRegister"; + } + + @RequestMapping(value={"/hms/hmsPosition/updateHmsPosition.do"}) + public String updateHmsPosition(MultipartHttpServletRequest request, HttpServletResponse response, HmsPositionVO hmsPositionVO, @ModelAttribute(value="searchVO") HmsPositionDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsPositionVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsPositionService.updateHmsPosition(hmsPositionVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&positionSeq=" + hmsPositionVO.getPositionSeq(); + } + + private String selectHmsPosition(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsPositionDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsPositionVO hmsPositionVO = new HmsPositionVO(); + hmsPositionVO.setPositionSeq(searchVO.getPositionSeq()); + try { + hmsPositionVO = this.hmsPositionService.selectHmsPosition(hmsPositionVO); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("hmsPositionVO", (Object)hmsPositionVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsPositionVO)); + return "/cms/hmsPosition/HmsPositionDetail"; + } + + @RequestMapping(value={"/hms/hmsPosition/deleteHmsPosition.do"}) + public String deleteHmsPosition(HttpServletRequest request, HmsPositionVO hmsPositionVO, @ModelAttribute(value="searchVO") HmsPositionDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsPositionVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsPositionService.deleteHmsPosition(hmsPositionVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsPositionVO hmsPositionVO) { + if (UserDetailsHelper.isRole((String)"ROLE_USER").booleanValue()) { + return true; + } + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/user/dao/HmsUserDAO.java b/src/main/java/egovframework/cms/user/dao/HmsUserDAO.java new file mode 100644 index 0000000..50781f2 --- /dev/null +++ b/src/main/java/egovframework/cms/user/dao/HmsUserDAO.java @@ -0,0 +1,58 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.user.dao.HmsUserDAO + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.cms.user.vo.HmsUserVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * org.springframework.stereotype.Repository + */ +package egovframework.cms.user.dao; + +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.cms.user.vo.HmsUserVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="hmsUserDAO") +public class HmsUserDAO +extends EgovComAbstractDAO { + public String insertHmsUser(HmsUserVO vo) throws Exception { + return (String)this.insert("hmsUserDAO.insertHmsUser_S", (Object)vo); + } + + public void updateHmsUser(HmsUserVO vo) throws Exception { + this.update("hmsUserDAO.updateHmsUser_S", (Object)vo); + } + + public void deleteHmsUser(HmsUserVO vo) throws Exception { + this.delete("hmsUserDAO.deleteHmsUser_S", (Object)vo); + } + + public HmsUserVO selectHmsUser(HmsUserVO vo) throws Exception { + return (HmsUserVO)this.select("hmsUserDAO.selectHmsUser_S", (Object)vo); + } + + public List selectHmsUserList(HmsUserDefaultVO searchVO) throws Exception { + return this.list("hmsUserDAO.selectHmsUserList_D", (Object)searchVO); + } + + public int selectHmsUserListTotCnt(HmsUserDefaultVO searchVO) { + return (Integer)this.select("hmsUserDAO.selectHmsUserListTotCnt_S", (Object)searchVO); + } + + public void updateHmsUserPasswd(HmsUserVO vo) throws Exception { + this.update("hmsUserDAO.updateHmsUserPasswd", (Object)vo); + } + + public void insertHmsUserType(HmsUserVO vo) { + this.insert("hmsUserDAO.insertHmsUserType_S", (Object)vo); + } + + public void deleteHmsUserType(HmsUserVO vo) { + this.delete("hmsUserDAO.deleteHmsUserType_S", (Object)vo); + } +} + diff --git a/src/main/java/egovframework/cms/user/service/HmsUserService.java b/src/main/java/egovframework/cms/user/service/HmsUserService.java new file mode 100644 index 0000000..760a0b0 --- /dev/null +++ b/src/main/java/egovframework/cms/user/service/HmsUserService.java @@ -0,0 +1,34 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.user.service.HmsUserService + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.cms.user.vo.HmsUserVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.cms.user.service; + +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.cms.user.vo.HmsUserVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface HmsUserService { + public String insertHmsUser(HmsUserVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateHmsUser(HmsUserVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteHmsUser(HmsUserVO var1, HttpServletRequest var2) throws Exception; + + public HmsUserVO selectHmsUser(HmsUserVO var1) throws Exception; + + public List selectHmsUserList(HmsUserDefaultVO var1) throws Exception; + + public int selectHmsUserListTotCnt(HmsUserDefaultVO var1); + + public void updateHmsUserPasswd(HmsUserVO var1) throws Exception; +} + diff --git a/src/main/java/egovframework/cms/user/service/impl/HmsUserServiceImpl.java b/src/main/java/egovframework/cms/user/service/impl/HmsUserServiceImpl.java new file mode 100644 index 0000000..7f3f79d --- /dev/null +++ b/src/main/java/egovframework/cms/user/service/impl/HmsUserServiceImpl.java @@ -0,0 +1,334 @@ +package egovframework.cms.user.service.impl; + +import egovframework.cms.auth.dao.HmsAuthGroupDAO; +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.cms.user.dao.HmsUserDAO; +import egovframework.cms.user.service.HmsUserService; +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.cms.user.vo.HmsUserVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.dms.prj.dao.DmsPrjDAO; +import egovframework.dms.prj.vo.DmsPrjAuthUserVO; +import egovframework.dms.prj.vo.DmsPrjVO; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import sayit.crypto.EdosiCryptoUtil; + +@Service("hmsUserService") +public class HmsUserServiceImpl implements HmsUserService { + @Resource(name = "hmsUserDAO") + private HmsUserDAO hmsUserDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + @Resource(name = "hmsDeptService") + private HmsDeptService hmsDeptService; + + @Resource(name = "dmsPrjDAO") + private DmsPrjDAO dmsPrjDAO; + + @Resource(name = "hmsAuthGroupDAO") + private HmsAuthGroupDAO hmsAuthGroupDAO; + + private final String OBJ_HMS_USER = "HMS_USER"; + + public String insertHmsUser(HmsUserVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String auth = request.getParameter("group1"); + vo.setUserSeq(vo.getUserId()); + vo.setUserType(auth); + try { + EdosiCryptoUtil eu1 = EdosiCryptoUtil.getInstance(); + vo.setPasswd(eu1.encrypt(vo.getPasswd())); + } catch (Exception e) { + e.printStackTrace(); + } + HmsDeptDefaultVO hmsDeptDefaultVO = new HmsDeptDefaultVO(); + hmsDeptDefaultVO.setPageUseYn("N"); + List deptAllList = this.hmsDeptService.selectHmsDeptList(hmsDeptDefaultVO); + for (int i = 0; i < deptAllList.size(); i++) { + if (((String)((EgovMap)deptAllList.get(i)).get("deptSeq")).equals(vo.getDeptCd())) { + vo.setDeptNm((String)((EgovMap)deptAllList.get(i)).get("deptNm")); + break; + } + } + this.hmsUserDAO.insertHmsUser(vo); + this.hmsUserDAO.insertHmsUserType(vo); + Map param = new HashMap<>(); + if ("CUS".equals(auth)) { + param.put("authGroupSeq", "BOM_0000000000000003"); + } else { + param.put("authGroupSeq", "BOM_0000000000000004"); + } + param.put("userId", vo.getUserId()); + param.put("gubun", "user"); + this.hmsAuthGroupDAO.insertHmsAuthGroupUser(param); + String prjId = request.getParameter("prjChkId"); + String[] prjIdArray = prjId.split(","); + if (prjIdArray != null && prjIdArray.length > 0) + for (int j = 0; j < prjIdArray.length; j++) { + DmsPrjAuthUserVO dmsPrjAuthUserVO = new DmsPrjAuthUserVO(); + dmsPrjAuthUserVO.setPrjSeq(prjIdArray[j]); + dmsPrjAuthUserVO.setUserId(vo.getUserId()); + dmsPrjAuthUserVO.setUserType(vo.getUserType()); + this.dmsPrjDAO.insertDmsPrjAuthUser(dmsPrjAuthUserVO); + } + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject("HMS_USER"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getUserSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateHmsUser(HmsUserVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + if ("ADM".equals(loginVO.getUserSe())) { + try { + EdosiCryptoUtil eu1 = EdosiCryptoUtil.getInstance(); + vo.setPasswd(eu1.encrypt(vo.getPasswd())); + } catch (Exception e) { + e.printStackTrace(); + } + String auth = request.getParameter("group1"); + vo.setUserSeq(vo.getUserId()); + vo.setUserType(auth); + HmsDeptDefaultVO hmsDeptDefaultVO = new HmsDeptDefaultVO(); + hmsDeptDefaultVO.setPageUseYn("N"); + List deptAllList = this.hmsDeptService.selectHmsDeptList(hmsDeptDefaultVO); + for (int i = 0; i < deptAllList.size(); i++) { + if (((String)((EgovMap)deptAllList.get(i)).get("deptSeq")).equals(vo.getDeptCd())) { + vo.setDeptNm((String)((EgovMap)deptAllList.get(i)).get("deptNm")); + break; + } + } + Map param = new HashMap<>(); + param.put("userId", vo.getUserId()); + this.hmsAuthGroupDAO.deleteHmsAuthGroupRelUser(param); + if ("CUS".equals(auth)) { + param.put("authGroupSeq", "BOM_0000000000000003"); + } else { + param.put("authGroupSeq", "BOM_0000000000000004"); + } + param.put("gubun", "user"); + this.hmsAuthGroupDAO.insertHmsAuthGroupUser(param); + this.hmsUserDAO.updateHmsUser(vo); + this.hmsUserDAO.updateHmsUserPasswd(vo); + this.hmsUserDAO.deleteHmsUserType(vo); + this.hmsUserDAO.insertHmsUserType(vo); + DmsPrjVO prjVO = new DmsPrjVO(); + prjVO.setUserId(vo.getUserId()); + this.dmsPrjDAO.deleteDmsPrjAuthUser(prjVO); + String prjId = request.getParameter("prjChkId"); + String[] prjIdArray = prjId.split(","); + if (prjIdArray != null && prjIdArray.length > 0) + for (int j = 0; j < prjIdArray.length; j++) { + DmsPrjAuthUserVO dmsPrjAuthUserVO = new DmsPrjAuthUserVO(); + dmsPrjAuthUserVO.setPrjSeq(prjIdArray[j]); + dmsPrjAuthUserVO.setUserId(vo.getUserId()); + dmsPrjAuthUserVO.setUserType(vo.getUserType()); + this.dmsPrjDAO.insertDmsPrjAuthUser(dmsPrjAuthUserVO); + } + } else { + try { + EdosiCryptoUtil eu1 = EdosiCryptoUtil.getInstance(); + vo.setPasswd(eu1.encrypt(vo.getPasswd())); + } catch (Exception e) { + e.printStackTrace(); + } + vo.setUserSeq(vo.getUserId()); + HmsDeptDefaultVO hmsDeptDefaultVO = new HmsDeptDefaultVO(); + hmsDeptDefaultVO.setPageUseYn("N"); + List deptAllList = this.hmsDeptService.selectHmsDeptList(hmsDeptDefaultVO); + for (int i = 0; i < deptAllList.size(); i++) { + if (((String)((EgovMap)deptAllList.get(i)).get("deptSeq")).equals(vo.getDeptCd())) { + vo.setDeptNm((String)((EgovMap)deptAllList.get(i)).get("deptNm")); + break; + } + } + this.hmsUserDAO.updateHmsUser(vo); + this.hmsUserDAO.updateHmsUserPasswd(vo); + } + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject("HMS_USER"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getUserSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteHmsUser(HmsUserVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + this.hmsUserDAO.deleteHmsUser(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject("HMS_USER"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getUserSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public HmsUserVO selectHmsUser(HmsUserVO vo) throws Exception { + HmsUserVO resultVO = this.hmsUserDAO.selectHmsUser(vo); + return resultVO; + } + + public List selectHmsUserList(HmsUserDefaultVO searchVO) throws Exception { + return this.hmsUserDAO.selectHmsUserList(searchVO); + } + + public int selectHmsUserListTotCnt(HmsUserDefaultVO searchVO) { + return this.hmsUserDAO.selectHmsUserListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + String fileId = ""; + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + if (whitelist == null || whitelist.equals("")) { + file.put(key, mf); + continue; + } + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String _atchFileId = ""; + if (!file.isEmpty()) { + List _result = null; + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + } + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + Map file = new HashMap<>(); + if (!files.isEmpty()) { + Iterator it = files.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + if (key.indexOf(targetNm) > -1) { + MultipartFile mf = files.get(key); + String fn = mf.getOriginalFilename(); + String whitelist = EdosiResource.getInstance().getValue("attach.whitelist"); + if (whitelist == null || whitelist.equals("")) { + file.put(key, mf); + continue; + } + String[] ext = whitelist.split(","); + if (ext != null && ext.length > 0) { + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.endsWith(ext[i])) { + check = true; + break; + } + } + if (check) + file.put(key, mf); + } + } + } + String[] delcheck = multiRequest.getParameterValues("delcheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!file.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(file, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(file, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + } + return fileId; + } + + public void updateHmsUserPasswd(HmsUserVO vo) throws Exception { + this.hmsUserDAO.updateHmsUserPasswd(vo); + } +} diff --git a/src/main/java/egovframework/cms/user/vo/HmsUserDefaultVO.java b/src/main/java/egovframework/cms/user/vo/HmsUserDefaultVO.java new file mode 100644 index 0000000..90564ee --- /dev/null +++ b/src/main/java/egovframework/cms/user/vo/HmsUserDefaultVO.java @@ -0,0 +1,182 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.user.vo.HmsUserDefaultVO + */ +package egovframework.cms.user.vo; + +import java.io.Serializable; + +public class HmsUserDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String userSeq; + private String searchDeptCd; + private String searchDeptSeq; + private String userType; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setUserSeq(String userSeq) { + this.userSeq = userSeq; + } + + public String getUserSeq() { + return this.userSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } + + public String getSearchDeptCd() { + return this.searchDeptCd; + } + + public void setSearchDeptCd(String searchDeptCd) { + this.searchDeptCd = searchDeptCd; + } + + public String getSearchDeptSeq() { + return this.searchDeptSeq; + } + + public void setSearchDeptSeq(String searchDeptSeq) { + this.searchDeptSeq = searchDeptSeq; + } + + public String getUserType() { + return this.userType; + } + + public void setUserType(String userType) { + this.userType = userType; + } +} + diff --git a/src/main/java/egovframework/cms/user/vo/HmsUserVO.java b/src/main/java/egovframework/cms/user/vo/HmsUserVO.java new file mode 100644 index 0000000..2acc696 --- /dev/null +++ b/src/main/java/egovframework/cms/user/vo/HmsUserVO.java @@ -0,0 +1,298 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.cms.user.vo.HmsUserVO + * egovframework.rte.psl.dataaccess.util.EgovMap + */ +package egovframework.cms.user.vo; + +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.sql.Date; +import java.util.List; + +public class HmsUserVO +extends HmsUserDefaultVO { + private String userId; + private String userNm; + private String tel; + private String passwd; + private String email; + private String mobile; + private String recSts; + private Date createDate; + private String userSeq; + private String deptNm; + private String positionNm; + private String dutyNm; + private String userRank; + private String extField01; + private String extField02; + private String extField03; + private String extField04; + private String extField05; + private String officeNm; + private String positionCd; + private String dutyCd; + private String deptCd; + private String officeCd; + private String gender; + private String birthday; + private String birthdayType; + private String jobTitle; + private List positionList; + private List dutyList; + private List deptAllList; + private String userType; + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserId() { + return this.userId; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getUserNm() { + return this.userNm; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getTel() { + return this.tel; + } + + public void setPasswd(String passwd) { + this.passwd = passwd; + } + + public String getPasswd() { + return this.passwd; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEmail() { + return this.email; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getMobile() { + return this.mobile; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getCreateDate() { + return this.createDate; + } + + public void setUserSeq(String userSeq) { + this.userSeq = userSeq; + } + + public String getUserSeq() { + return this.userSeq; + } + + public void setDeptNm(String deptNm) { + this.deptNm = deptNm; + } + + public String getDeptNm() { + return this.deptNm; + } + + public void setPositionNm(String positionNm) { + this.positionNm = positionNm; + } + + public String getPositionNm() { + return this.positionNm; + } + + public void setDutyNm(String dutyNm) { + this.dutyNm = dutyNm; + } + + public String getDutyNm() { + return this.dutyNm; + } + + public void setUserRank(String userRank) { + this.userRank = userRank; + } + + public String getUserRank() { + return this.userRank; + } + + public void setExtField01(String extField01) { + this.extField01 = extField01; + } + + public String getExtField01() { + return this.extField01; + } + + public void setExtField02(String extField02) { + this.extField02 = extField02; + } + + public String getExtField02() { + return this.extField02; + } + + public void setExtField03(String extField03) { + this.extField03 = extField03; + } + + public String getExtField03() { + return this.extField03; + } + + public void setExtField04(String extField04) { + this.extField04 = extField04; + } + + public String getExtField04() { + return this.extField04; + } + + public void setExtField05(String extField05) { + this.extField05 = extField05; + } + + public String getExtField05() { + return this.extField05; + } + + public void setOfficeNm(String officeNm) { + this.officeNm = officeNm; + } + + public String getOfficeNm() { + return this.officeNm; + } + + public void setPositionCd(String positionCd) { + this.positionCd = positionCd; + } + + public String getPositionCd() { + return this.positionCd; + } + + public void setDutyCd(String dutyCd) { + this.dutyCd = dutyCd; + } + + public String getDutyCd() { + return this.dutyCd; + } + + public void setDeptCd(String deptCd) { + this.deptCd = deptCd; + } + + public String getDeptCd() { + return this.deptCd; + } + + public void setOfficeCd(String officeCd) { + this.officeCd = officeCd; + } + + public String getOfficeCd() { + return this.officeCd; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public String getGender() { + return this.gender; + } + + public void setBirthday(String birthday) { + this.birthday = birthday; + } + + public String getBirthday() { + return this.birthday; + } + + public void setBirthdayType(String birthdayType) { + this.birthdayType = birthdayType; + } + + public String getBirthdayType() { + return this.birthdayType; + } + + public String getJobTitle() { + return this.jobTitle; + } + + public void setJobTitle(String jobTitle) { + this.jobTitle = jobTitle; + } + + public List getPositionList() { + return this.positionList; + } + + public void setPositionList(List positionList) { + this.positionList = positionList; + } + + public List getDutyList() { + return this.dutyList; + } + + public void setDutyList(List dutyList) { + this.dutyList = dutyList; + } + + public List getDeptAllList() { + return this.deptAllList; + } + + public void setDeptAllList(List deptAllList) { + this.deptAllList = deptAllList; + } + + public String getUserType() { + return this.userType; + } + + public void setUserType(String userType) { + this.userType = userType; + } +} + diff --git a/src/main/java/egovframework/cms/user/web/HmsUserAdminController.java b/src/main/java/egovframework/cms/user/web/HmsUserAdminController.java new file mode 100644 index 0000000..b9a7a1b --- /dev/null +++ b/src/main/java/egovframework/cms/user/web/HmsUserAdminController.java @@ -0,0 +1,328 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.duty.service.HmsDutyService + * egovframework.cms.position.service.HmsPositionService + * egovframework.cms.user.service.HmsUserService + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.cms.user.vo.HmsUserVO + * egovframework.cms.user.web.HmsUserAdminController + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.dms.prj.service.DmsPrjService + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.psl.dataaccess.util.EgovMap + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + * sayit.crypto.EdosiCryptoUtil + */ +package egovframework.cms.user.web; + +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.duty.service.HmsDutyService; +import egovframework.cms.position.service.HmsPositionService; +import egovframework.cms.user.service.HmsUserService; +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.cms.user.vo.HmsUserVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.common.service.CommonService; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import sayit.crypto.EdosiCryptoUtil; + +@Controller +@SessionAttributes(types={HmsUserVO.class}) +public class HmsUserAdminController { + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + @Resource(name="hmsPositionService") + private HmsPositionService hmsPositionService; + @Resource(name="hmsDutyService") + private HmsDutyService hmsDutyService; + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + + @RequestMapping(value={"/dms/hmsUser/hmsUserAdminIndex.do"}) + public String hmsUserIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsUserAdminList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsUserAdmin(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsUserAdminView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsUserAdmin(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_USER", (Object)UserDetailsHelper.isRole((String)"ROLE_USER")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsUserAdminList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.hmsUserService.selectHmsUserListTotCnt(searchVO); + if (totCnt > 0) { + List hmsUserList = this.hmsUserService.selectHmsUserList(searchVO); + model.addAttribute("resultList", (Object)hmsUserList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "cms/hmsUser/HmsUserAdminList"; + } + + private String addHmsUserAdminView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + HmsUserVO hmsUserVO = new HmsUserVO(); + HmsDeptDefaultVO hmsDeptDefaultVO = new HmsDeptDefaultVO(); + hmsDeptDefaultVO.setPageUseYn("N"); + List deptAllList = this.hmsDeptService.selectHmsDeptList(hmsDeptDefaultVO); + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPageUseYn("N"); + List dmsPrjList = this.dmsPrjService.selectDmsPrjList(dmsPrjDefaultVO); + model.addAttribute("deptAllList", (Object)deptAllList); + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + model.addAttribute("prjList", (Object)dmsPrjList); + return "cms/hmsUser/HmsUserAdminRegister"; + } + + @RequestMapping(value={"/hms/hmsUser/addHmsUserAdmin.do"}) + public String addHmsUserAdmin(MultipartHttpServletRequest request, HttpServletResponse response, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsUserService.insertHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request); + } + + private String updateHmsUserAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + HmsUserVO hmsUserVO; + block6: { + hmsUserVO = new HmsUserVO(); + hmsUserVO.setUserSeq(searchVO.getUserSeq()); + hmsUserVO = this.hmsUserService.selectHmsUser(hmsUserVO); + try { + EdosiCryptoUtil eu1 = EdosiCryptoUtil.getInstance(); + hmsUserVO.setPasswd(eu1.decrypt(hmsUserVO.getPasswd())); + } + catch (Exception e) { + e.printStackTrace(); + } + if (this.checkWriteAuth(hmsUserVO)) break block6; + return "cmm/sessionError"; + } + try { + HmsDeptDefaultVO hmsDeptDefaultVO3 = new HmsDeptDefaultVO(); + hmsDeptDefaultVO3.setPageUseYn("N"); + List deptAllList = this.hmsDeptService.selectHmsDeptList(hmsDeptDefaultVO3); + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPageUseYn("N"); + List dmsPrjAllList = this.dmsPrjService.selectDmsPrjList(dmsPrjDefaultVO); + dmsPrjDefaultVO.setUserId(hmsUserVO.getUserId()); + List dmsPrjList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + String prjId = ""; + int i = 0; + while (i < dmsPrjList.size()) { + prjId = String.valueOf(prjId) + ((EgovMap)dmsPrjList.get(i)).get((Object)"prjSeq") + ","; + ++i; + } + model.addAttribute("prjId", (Object)prjId); + model.addAttribute("prjList", (Object)dmsPrjAllList); + model.addAttribute("deptAllList", (Object)deptAllList); + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + } + catch (Exception e) { + e.printStackTrace(); + } + return "cms/hmsUser/HmsUserAdminRegister"; + } + + @RequestMapping(value={"/hms/hmsUser/updateHmsUserAdmin.do"}) + public String updateHmsUserAdmin(MultipartHttpServletRequest request, HttpServletResponse response, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsUserVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsUserService.updateHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request) + searchVO.toParam() + "&userSeq=" + hmsUserVO.getUserSeq(); + } + + private String selectHmsUserAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsUserVO hmsUserVO = new HmsUserVO(); + hmsUserVO.setUserId(searchVO.getUserSeq()); + try { + hmsUserVO = this.hmsUserService.selectHmsUser(hmsUserVO); + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPageUseYn("N"); + dmsPrjDefaultVO.setUserId(hmsUserVO.getUserId()); + List dmsPrjList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + model.addAttribute("prjList", (Object)dmsPrjList); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsUserVO)); + return "cms/hmsUser/HmsUserAdminDetail"; + } + + @RequestMapping(value={"/hms/hmsUser/deleteHmsUserAdmin.do"}) + public String deleteHmsUserAdmin(HttpServletRequest request, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsUserVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsUserService.deleteHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsUserVO hmsUserVO) { + if (UserDetailsHelper.isRole((String)"ROLE_USER").booleanValue()) { + return true; + } + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/cms/user/web/HmsUserController.java b/src/main/java/egovframework/cms/user/web/HmsUserController.java new file mode 100644 index 0000000..5f08c18 --- /dev/null +++ b/src/main/java/egovframework/cms/user/web/HmsUserController.java @@ -0,0 +1,293 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.user.service.HmsUserService + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.cms.user.vo.HmsUserVO + * egovframework.cms.user.web.HmsUserController + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.dms.prj.service.DmsPrjService + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + * sayit.crypto.EdosiCryptoUtil + */ +package egovframework.cms.user.web; + +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.user.service.HmsUserService; +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.cms.user.vo.HmsUserVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.common.service.CommonService; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import sayit.crypto.EdosiCryptoUtil; + +@Controller +@SessionAttributes(types={HmsUserVO.class}) +public class HmsUserController { + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + + @RequestMapping(value={"/dms/hmsUser/hmsUserIndex.do"}) + public String hmsUserIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsUserList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsUser(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsUserView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsUser(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsUserList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.hmsUserService.selectHmsUserListTotCnt(searchVO); + if (totCnt > 0) { + List hmsUserList = this.hmsUserService.selectHmsUserList(searchVO); + model.addAttribute("resultList", (Object)hmsUserList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "dms/hmsUser/HmsUserList"; + } + + private String addHmsUserView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + HmsUserVO hmsUserVO = new HmsUserVO(); + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + return "dms/hmsUser/HmsUserRegister"; + } + + @RequestMapping(value={"/dms/hmsUser/addHmsUser.do"}) + public String addHmsUser(MultipartHttpServletRequest request, HttpServletResponse response, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsUserService.insertHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request); + } + + private String updateHmsUser(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + HmsUserVO hmsUserVO = new HmsUserVO(); + hmsUserVO.setUserId(loginVO.getId()); + hmsUserVO = this.hmsUserService.selectHmsUser(hmsUserVO); + try { + EdosiCryptoUtil eu1 = EdosiCryptoUtil.getInstance(); + hmsUserVO.setPasswd(eu1.decrypt(hmsUserVO.getPasswd())); + } + catch (Exception e) { + e.printStackTrace(); + } + if (!this.checkWriteAuth(hmsUserVO)) { + return "cmm/sessionError"; + } + HmsDeptDefaultVO hmsDeptDefaultVO3 = new HmsDeptDefaultVO(); + hmsDeptDefaultVO3.setPageUseYn("N"); + List deptAllList = this.hmsDeptService.selectHmsDeptList(hmsDeptDefaultVO3); + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPageUseYn("N"); + List dmsPrjAllList = this.dmsPrjService.selectDmsPrjList(dmsPrjDefaultVO); + model.addAttribute("deptAllList", (Object)deptAllList); + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + if (!this.checkWriteAuth(hmsUserVO)) { + return "cmm/sessionError"; + } + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + return "dms/hmsUser/HmsUserRegister"; + } + + @RequestMapping(value={"/dms/hmsUser/updateHmsUser.do"}) + public String updateHmsUser(MultipartHttpServletRequest request, HttpServletResponse response, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsUserVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsUserService.updateHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request) + searchVO.toParam() + "&userSeq=" + hmsUserVO.getUserSeq(); + } + + private String selectHmsUser(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + HmsUserVO hmsUserVO = new HmsUserVO(); + hmsUserVO.setUserId(loginVO.getId()); + try { + hmsUserVO = this.hmsUserService.selectHmsUser(hmsUserVO); + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPageUseYn("N"); + dmsPrjDefaultVO.setUserId(hmsUserVO.getUserId()); + List dmsPrjList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + model.addAttribute("prjList", (Object)dmsPrjList); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsUserVO)); + return "dms/hmsUser/HmsUserDetail"; + } + + @RequestMapping(value={"/dms/hmsUser/deleteHmsUser.do"}) + public String deleteHmsUser(HttpServletRequest request, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsUserVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsUserService.deleteHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsUserVO hmsUserVO) { + return true; + } +} + diff --git a/src/main/java/egovframework/cms/user/web/HmsUserFindController.java b/src/main/java/egovframework/cms/user/web/HmsUserFindController.java new file mode 100644 index 0000000..2414d97 --- /dev/null +++ b/src/main/java/egovframework/cms/user/web/HmsUserFindController.java @@ -0,0 +1,86 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.user.service.HmsUserService + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.cms.user.vo.HmsUserVO + * egovframework.cms.user.web.HmsUserFindController + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.dms.prj.service.DmsPrjService + * egovframework.edosi.egov.helper.UserDetailsHelper + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.RequestMapping + */ +package egovframework.cms.user.web; + +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.user.service.HmsUserService; +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.cms.user.vo.HmsUserVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import java.util.ArrayList; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class HmsUserFindController { + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + + @RequestMapping(value={"/popup/hmsUser/hmsUserFindIndex.do"}) + public String hmsUserIndex(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + try { + String mode = request.getParameter("searchMode"); + HmsUserVO hmsUserVO = new HmsUserVO(); + hmsUserVO.setPageUseYn("N"); + List resultList = new ArrayList(); + if ("EMP".equals(mode)) { + hmsUserVO.setUserType(mode); + int totCnt = this.hmsUserService.selectHmsUserListTotCnt((HmsUserDefaultVO)hmsUserVO); + if (totCnt > 0) { + resultList = this.hmsUserService.selectHmsUserList((HmsUserDefaultVO)hmsUserVO); + } + } else { + hmsUserVO.setUserType("CUS"); + int totCnt = this.hmsUserService.selectHmsUserListTotCnt((HmsUserDefaultVO)hmsUserVO); + if (totCnt > 0) { + resultList = this.hmsUserService.selectHmsUserList((HmsUserDefaultVO)hmsUserVO); + } + } + model.addAttribute("resultList", resultList); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("loginVO", (Object)loginVO); + return "/common/HmsUserFindPopup"; + } +} + diff --git a/src/main/java/egovframework/cms/user/web/HmsUserMobileController.java b/src/main/java/egovframework/cms/user/web/HmsUserMobileController.java new file mode 100644 index 0000000..e4a3bfc --- /dev/null +++ b/src/main/java/egovframework/cms/user/web/HmsUserMobileController.java @@ -0,0 +1,258 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.user.service.HmsUserService + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.cms.user.vo.HmsUserVO + * egovframework.cms.user.web.HmsUserMobileController + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.filter.XssFilter + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + * sayit.crypto.EdosiCryptoUtil + */ +package egovframework.cms.user.web; + +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.user.service.HmsUserService; +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.cms.user.vo.HmsUserVO; +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.common.service.CommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.filter.XssFilter; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import sayit.crypto.EdosiCryptoUtil; + +@Controller +@SessionAttributes(types={HmsUserVO.class}) +public class HmsUserMobileController { + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/dms/hmsUser/hmsUserMobileIndex.do"}) + public String hmsUserIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectHmsUserMobileList(request, response, searchVO, model); + } else if (bmode.equals("user")) { + viewName = this.selectHmsUserMobileUserList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectHmsUserMobile(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addHmsUserMobileView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateHmsUserMobile(request, response, searchVO, model); + } + model.addAttribute("bmode", (Object)bmode); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectHmsUserMobileList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + try { + HmsUserVO hmsUserVO = new HmsUserVO(); + hmsUserVO.setUserId(loginVO.getId()); + hmsUserVO = this.hmsUserService.selectHmsUser(hmsUserVO); + EdosiCryptoUtil eu1 = EdosiCryptoUtil.getInstance(); + hmsUserVO.setPasswd(eu1.decrypt(hmsUserVO.getPasswd())); + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + } + catch (Exception e) { + e.printStackTrace(); + } + return "mobile/hmsUser/HmsUserMobileRegister"; + } + + private String addHmsUserMobileView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + HmsUserVO hmsUserVO = new HmsUserVO(); + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + return "mobile/hmsUser/HmsUserMobileRegister"; + } + + @RequestMapping(value={"/dms/hmsUser/addHmsUserMobile.do"}) + public String addHmsUserMobile(MultipartHttpServletRequest request, HttpServletResponse response, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsUserService.insertHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request); + } + + private String updateHmsUserMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + HmsUserVO hmsUserVO = new HmsUserVO(); + hmsUserVO.setUserSeq(searchVO.getUserSeq()); + hmsUserVO = this.hmsUserService.selectHmsUser(hmsUserVO); + if (!this.checkWriteAuth(hmsUserVO)) { + return "cmm/sessionError"; + } + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + return "mobile/hmsUser/HmsUserMobileRegister"; + } + + @RequestMapping(value={"/dms/hmsUser/updateHmsUserMobile.do"}) + public String updateHmsUserMobile(MultipartHttpServletRequest request, HttpServletResponse response, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.hmsUserService.updateHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), (HttpServletRequest)request) + searchVO.toParam(); + } + + private String selectHmsUserMobileUserList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + try { + searchVO.setPageUseYn("N"); + List userList = this.hmsUserService.selectHmsUserList(searchVO); + model.addAttribute("userList", (Object)userList); + } + catch (Exception e) { + e.printStackTrace(); + } + return "mobile/hmsUser/HmsUserMobileUserList"; + } + + private String selectHmsUserMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + HmsUserVO hmsUserVO = new HmsUserVO(); + hmsUserVO.setUserSeq(searchVO.getUserSeq()); + try { + hmsUserVO = this.hmsUserService.selectHmsUser(hmsUserVO); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("hmsUserVO", (Object)hmsUserVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(hmsUserVO)); + return "mobile/hmsUser/HmsUserMobileDetail"; + } + + @RequestMapping(value={"/dms/hmsUser/deleteHmsUserMobile.do"}) + public String deleteHmsUserMobile(HttpServletRequest request, HmsUserVO hmsUserVO, @ModelAttribute(value="searchVO") HmsUserDefaultVO searchVO, SessionStatus status) throws Exception { + if (!EgovUserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(hmsUserVO)) { + return "cmm/privilegeError"; + } + try { + this.hmsUserService.deleteHmsUser(hmsUserVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + this.dwrCommonService.removeContextPath(searchVO.getParentUrl(), request) + searchVO.toParam(); + } + + private boolean checkWriteAuth(HmsUserVO hmsUserVO) { + return true; + } +} + diff --git a/src/main/java/egovframework/com/cmm/AltibaseClobStringTypeHandler.java b/src/main/java/egovframework/com/cmm/AltibaseClobStringTypeHandler.java new file mode 100644 index 0000000..e962a8a --- /dev/null +++ b/src/main/java/egovframework/com/cmm/AltibaseClobStringTypeHandler.java @@ -0,0 +1,110 @@ +package egovframework.com.cmm; +/* + * Copyright 2002-2005 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.IOException; +import java.io.Reader; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.jdbc.support.lob.LobCreator; +import org.springframework.jdbc.support.lob.LobHandler; +import egovframework.rte.psl.orm.ibatis.support.AbstractLobTypeHandler; + +/** + * iBATIS TypeHandler implementation for Strings that get mapped to CLOBs. + * Retrieves the LobHandler to use from SqlMapClientFactoryBean at config time. + * + *

Particularly useful for storing Strings with more than 4000 characters in an + * Oracle database (only possible via CLOBs), in combination with OracleLobHandler. + * + *

Can also be defined in generic iBATIS mappings, as DefaultLobCreator will + * work with most JDBC-compliant database drivers. In this case, the field type + * does not have to be BLOB: For databases like MySQL and MS SQL Server, any + * large enough binary type will work. + * + * @author Juergen Hoeller + * @since 1.1.5 + * @see org.springframework.orm.ibatis.SqlMapClientFactoryBean#setLobHandler + */ +@SuppressWarnings("deprecation") +public class AltibaseClobStringTypeHandler extends AbstractLobTypeHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(AltibaseClobStringTypeHandler.class); + + /** + * Constructor used by iBATIS: fetches config-time LobHandler from + * SqlMapClientFactoryBean. + * @see org.springframework.orm.ibatis.SqlMapClientFactoryBean#getConfigTimeLobHandler + */ + public AltibaseClobStringTypeHandler() { + super(); + } + + /** + * Constructor used for testing: takes an explicit LobHandler. + */ + protected AltibaseClobStringTypeHandler(LobHandler lobHandler) { + super(lobHandler); + } + + protected void setParameterInternal( + PreparedStatement ps, int index, Object value, String jdbcType, LobCreator lobCreator) + throws SQLException { + lobCreator.setClobAsString(ps, index, (String) value); + } + + + protected Object getResultInternal(ResultSet rs, int index, LobHandler lobHandler) + throws SQLException { + + StringBuffer read_data = new StringBuffer(""); + int read_length; + + char [] buf = new char[1024]; + + Reader rd = lobHandler.getClobAsCharacterStream(rs, index); + try { + while( (read_length=rd.read(buf)) != -1) { + read_data.append(buf, 0, read_length); + } + } catch (IOException ie) { + SQLException sqle = new SQLException(ie.getMessage()); + throw sqle; + // 2011.10.10 보안점검 후속조치 + } finally { + if (rd != null) { + try { + rd.close(); + } catch (Exception ignore) { + LOGGER.debug("IGNORE: {}", ignore.getMessage()); + } + } + } + + return read_data.toString(); + + //return lobHandler.getClobAsString(rs, index); + } + + public Object valueOf(String s) { + return s; + } + +} diff --git a/src/main/java/egovframework/com/cmm/ComDefaultCodeVO.java b/src/main/java/egovframework/com/cmm/ComDefaultCodeVO.java new file mode 100644 index 0000000..04e5518 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/ComDefaultCodeVO.java @@ -0,0 +1,185 @@ +package egovframework.com.cmm; + +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *

+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------       --------    ---------------------------
+ *   2009.3.11   이삼섭          최초 생성
+ *
+ * 
+ */ +@SuppressWarnings("serial") +public class ComDefaultCodeVO implements Serializable { + /** 코드 ID */ + private String codeId = ""; + + /** 상세코드 */ + private String code = ""; + + /** 코드명 */ + private String codeNm = ""; + + /** 코드설명 */ + private String codeDc = ""; + + /** 특정테이블명 */ + private String tableNm = ""; //특정테이블에서 코드정보를추출시 사용 + + /** 상세 조건 여부 */ + private String haveDetailCondition = "N"; + + /** 상세 조건 */ + private String detailCondition = ""; + + /** + * codeId attribute를 리턴한다. + * + * @return the codeId + */ + public String getCodeId() { + return codeId; + } + + /** + * codeId attribute 값을 설정한다. + * + * @param codeId + * the codeId to set + */ + public void setCodeId(String codeId) { + this.codeId = codeId; + } + + /** + * code attribute를 리턴한다. + * + * @return the code + */ + public String getCode() { + return code; + } + + /** + * code attribute 값을 설정한다. + * + * @param code + * the code to set + */ + public void setCode(String code) { + this.code = code; + } + + /** + * codeNm attribute를 리턴한다. + * + * @return the codeNm + */ + public String getCodeNm() { + return codeNm; + } + + /** + * codeNm attribute 값을 설정한다. + * + * @param codeNm + * the codeNm to set + */ + public void setCodeNm(String codeNm) { + this.codeNm = codeNm; + } + + /** + * codeDc attribute를 리턴한다. + * + * @return the codeDc + */ + public String getCodeDc() { + return codeDc; + } + + /** + * codeDc attribute 값을 설정한다. + * + * @param codeDc + * the codeDc to set + */ + public void setCodeDc(String codeDc) { + this.codeDc = codeDc; + } + + /** + * tableNm attribute를 리턴한다. + * + * @return the tableNm + */ + public String getTableNm() { + return tableNm; + } + + /** + * tableNm attribute 값을 설정한다. + * + * @param tableNm + * the tableNm to set + */ + public void setTableNm(String tableNm) { + this.tableNm = tableNm; + } + + /** + * haveDetailCondition attribute를 리턴한다. + * + * @return the haveDetailCondition + */ + public String getHaveDetailCondition() { + return haveDetailCondition; + } + + /** + * haveDetailCondition attribute 값을 설정한다. + * + * @param haveDetailCondition + * the haveDetailCondition to set + */ + public void setHaveDetailCondition(String haveDetailCondition) { + this.haveDetailCondition = haveDetailCondition; + } + + /** + * detailCondition attribute를 리턴한다. + * + * @return the detailCondition + */ + public String getDetailCondition() { + return detailCondition; + } + + /** + * detailCondition attribute 값을 설정한다. + * + * @param detailCondition + * the detailCondition to set + */ + public void setDetailCondition(String detailCondition) { + this.detailCondition = detailCondition; + } + + /** + * toString 메소드를 대치한다. + */ + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} diff --git a/src/main/java/egovframework/com/cmm/ComDefaultVO.java b/src/main/java/egovframework/com/cmm/ComDefaultVO.java new file mode 100644 index 0000000..3b89ade --- /dev/null +++ b/src/main/java/egovframework/com/cmm/ComDefaultVO.java @@ -0,0 +1,166 @@ +package egovframework.com.cmm; + +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @Class Name : ComDefaultVO.java + * @Description : ComDefaultVO class + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 조재영 최초 생성 + * + * @author 공통서비스 개발팀 조재영 + * @since 2009.02.01 + * @version 1.0 + * @see + * + */ +@SuppressWarnings("serial") +public class ComDefaultVO implements Serializable { + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** 검색KeywordFrom */ + private String searchKeywordFrom = ""; + + /** 검색KeywordTo */ + private String searchKeywordTo = ""; + + public int getFirstIndex() { + return firstIndex; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getLastIndex() { + return lastIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public String getSearchCondition() { + return searchCondition; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchKeyword() { + return searchKeyword; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchUseYn() { + return searchUseYn; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public int getPageIndex() { + return pageIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageUnit() { + return pageUnit; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + + + /** + * searchKeywordFrom attribute를 리턴한다. + * @return String + */ + public String getSearchKeywordFrom() { + return searchKeywordFrom; + } + + /** + * searchKeywordFrom attribute 값을 설정한다. + * @param searchKeywordFrom String + */ + public void setSearchKeywordFrom(String searchKeywordFrom) { + this.searchKeywordFrom = searchKeywordFrom; + } + + /** + * searchKeywordTo attribute를 리턴한다. + * @return String + */ + public String getSearchKeywordTo() { + return searchKeywordTo; + } + + /** + * searchKeywordTo attribute 값을 설정한다. + * @param searchKeywordTo String + */ + public void setSearchKeywordTo(String searchKeywordTo) { + this.searchKeywordTo = searchKeywordTo; + } +} diff --git a/src/main/java/egovframework/com/cmm/EgovComCrossSiteHndlr.java b/src/main/java/egovframework/com/cmm/EgovComCrossSiteHndlr.java new file mode 100644 index 0000000..2e34539 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovComCrossSiteHndlr.java @@ -0,0 +1,405 @@ +package egovframework.com.cmm; + +import java.io.IOException; +import java.io.Reader; + +import javax.servlet.jsp.JspException; +import javax.servlet.jsp.JspWriter; +import javax.servlet.jsp.PageContext; +import javax.servlet.jsp.tagext.BodyTagSupport; + +import org.apache.taglibs.standard.tag.common.core.Util; + +/** + * Cross-Site Scripting 체크하여 값을 되돌려 받는 핸들러 JSP TLD, 자바에서 사용가능 + * + * @author 공통서비스 장동한 + * @since 2010.11.09 + * @version 1.0 + * @see
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2010.11.09  장동한          최초 생성
+ *
+ * 
+ */ +@SuppressWarnings("serial") +public class EgovComCrossSiteHndlr extends BodyTagSupport { + + /* + * (One almost wishes XML and JSP could support "anonymous tags," given the + * amount of trouble we had naming this one!) :-) - sb + */ + + // ********************************************************************* + // Internal state + + protected Object value; // tag attribute + protected String def; // tag attribute + protected boolean escapeXml; // tag attribute + private boolean needBody; // non-space body needed? + + // ********************************************************************* + // Construction and initialization + + private final String m_sDiffChar ="()[]{}\"',:;= \t\r\n%!+-"; + //private String m_sDiffChar ="()[]{}\"',:;=%!+-"; + private final String m_sArrDiffChar [] = { + "(",")", + "[","]", + "{","}", + ""","'", + ",",":", + ";","=", + " ","\t", //" ","\t", + "\r","\n", //"\r","\n", + "%","!", + "+","-" + }; + + /** + * Constructs a new handler. As with TagSupport, subclasses should not + * provide other constructors and are expected to call the superclass + * constructor. + */ + public EgovComCrossSiteHndlr() { + super(); + init(); + } + + // resets local state + private void init() { + value = def = null; + escapeXml = true; + needBody = false; + } + + // Releases any resources we may have (or inherit) + public void release() { + super.release(); + init(); + } + + // ********************************************************************* + // Tag logic + + // evaluates 'value' and determines if the body should be evaluted + public int doStartTag() throws JspException { + + needBody = false; // reset state related to 'default' + this.bodyContent = null; // clean-up body (just in case container is + // pooling tag handlers) + + JspWriter out = pageContext.getOut(); + //System.out.println("EgovComCrossSiteFilter> ============================"); + try { + // print value if available; otherwise, try 'default' + if (value != null) { + //System.out.println("EgovComCrossSiteFilter> =value"); + String sWriteEscapedXml = getWriteEscapedXml(); + //System.out.println("EgovComCrossSiteFilter sWriteEscapedXml>" + sWriteEscapedXml); + out.print(sWriteEscapedXml); + return SKIP_BODY; + } else { + // if we don't have a 'default' attribute, just go to the body + if (def == null) { + needBody = true; + return EVAL_BODY_BUFFERED; + } + + //System.out.println("EgovComCrossSiteFilter def> ="+def); + + // if we do have 'default', print it + if (def != null) { + // good 'default' + out(pageContext, escapeXml, def); + //System.out.println("EgovComCrossSiteFilter> ="+def); + } + return SKIP_BODY; + } + } catch (IOException ex) { + throw new JspException(ex.toString(), ex); + } + } + + // prints the body if necessary; reports errors + public int doEndTag() throws JspException { + try { + //System.out.println("EgovComCrossSiteFilter ==== doEndTag"); + if (!needBody){ + return EVAL_PAGE; // nothing more to do + } + + // trim and print out the body + if (bodyContent != null && bodyContent.getString() != null){ + //String sWriteEscapedXml = getWriteEscapedXml(); + //out2(pageContext, escapeXml, sWriteEscapedXml.toString()); + //System.out.println("EgovComCrossSiteFilter> end"); + //System.out.println("EgovComCrossSiteFilter sWriteEscapedXml > sWriteEscapedXml"); + out(pageContext, escapeXml, bodyContent.getString().trim()); + + } + return EVAL_PAGE; + } catch (IOException ex) { + throw new JspException(ex.toString(), ex); + } + } + + // ********************************************************************* + // Public utility methods + + /** + * Outputs text to pageContext's current JspWriter. If + * escapeXml is true, performs the following substring replacements + * (to facilitate output to XML/HTML pages): + * + * & -> & < -> < > -> > " -> " ' -> ' + * + * See also Util.escapeXml(). + */ + public static void out(PageContext pageContext, boolean escapeXml, + Object obj) throws IOException { + JspWriter w = pageContext.getOut(); + + if (!escapeXml) { + // write chars as is + if (obj instanceof Reader) { + Reader reader = (Reader) obj; + char[] buf = new char[4096]; + int count; + while ((count = reader.read(buf, 0, 4096)) != -1) { + w.write(buf, 0, count); + } + } else { + w.write(obj.toString()); + } + } else { + // escape XML chars + if (obj instanceof Reader) { + Reader reader = (Reader) obj; + char[] buf = new char[4096]; + int count; + while ((count = reader.read(buf, 0, 4096)) != -1) { + writeEscapedXml(buf, count, w); + } + } else { + String text = obj.toString(); + writeEscapedXml(text.toCharArray(), text.length(), w); + } + } + + } + public static void out2(PageContext pageContext, boolean escapeXml, + Object obj) throws IOException { + JspWriter w = pageContext.getOut(); + + w.write(obj.toString()); + + } + + /** + * + * Optimized to create no extra objects and write directly to the JspWriter + * using blocks of escaped and unescaped characters + * + */ + private static void writeEscapedXml(char[] buffer, int length, JspWriter w) + throws IOException { + int start = 0; + + for (int i = 0; i < length; i++) { + char c = buffer[i]; + if (c <= Util.HIGHEST_SPECIAL) { + char[] escaped = Util.specialCharactersRepresentation[c]; + if (escaped != null) { + // add unescaped portion + if (start < i) { + w.write(buffer, start, i - start); + } + // add escaped xml + w.write(escaped); + start = i + 1; + } + } + } + // add rest of unescaped portion + if (start < length) { + w.write(buffer, start, length - start); + } + } + + /** + * + * Optimized to create no extra objects and write directly to the JspWriter + * using blocks of escaped and unescaped characters + * + */ + @SuppressWarnings("unused") + private String getWriteEscapedXml() throws IOException { + String sRtn = ""; + + Object obj = this.value; + + int start = 0; + String text = obj.toString(); + + int length = text.length(); + char[] buffer = text.toCharArray(); + boolean booleanDiff = false; + //String sDiffChar + //String sArrDiffChar + char[] cDiffChar = this.m_sDiffChar.toCharArray(); + + for(int i = 0; i < length; i++) { + char c = buffer[i]; + + booleanDiff = false; + + for(int k = 0; k < cDiffChar.length; k++){ + if(c == cDiffChar[k]){ + sRtn = sRtn + m_sArrDiffChar[k]; + booleanDiff = true; + continue; + } + } + + if(booleanDiff) continue; + + if (c <= Util.HIGHEST_SPECIAL) { + char[] escaped = Util.specialCharactersRepresentation[c]; + if (escaped != null) { + // add unescaped portion + //if (start < i) { + // sRtn = sRtn + text.substring(start, i - start); + //} + // add escaped xml + //sRtn = sRtn + escaped; + //System.out.println(buffer[i]+" :: " + escaped); + for (int j = 0; j < escaped.length; j++) { + //System.out.println(buffer[i]+" :>: " + escaped[j]); + sRtn = sRtn + escaped[j]; + } + //sRtn = sRtn+ escaped.toString(); + //sRtn = sRtn + String.valueOf(buffer[i]); + start = i + 1; + }else{ + sRtn = sRtn + c; + } + }else{ + sRtn = sRtn + c; + } + } + + return sRtn; + } + + /** + * + * Optimized to create no extra objects and write directly to the JspWriter + * using blocks of escaped and unescaped characters + * + */ + @SuppressWarnings("unused") + private String getWriteEscapedXml(String sWriteString) throws IOException { + + String sRtn = ""; + + Object obj = sWriteString; + + int start = 0; + String text = obj.toString(); + + int length = text.length(); + char[] buffer = text.toCharArray(); + boolean booleanDiff = false; + //String sDiffChar + //String sArrDiffChar + char[] cDiffChar = this.m_sDiffChar.toCharArray(); + + for(int i = 0; i < length; i++) { + char c = buffer[i]; + + booleanDiff = false; + + for(int k = 0; k < cDiffChar.length; k++){ + if(c == cDiffChar[k]){ + sRtn = sRtn + m_sArrDiffChar[k]; + booleanDiff = true; + continue; + } + } + + if(booleanDiff) continue; + + if (c <= Util.HIGHEST_SPECIAL) { + char[] escaped = Util.specialCharactersRepresentation[c]; + if (escaped != null) { + // add unescaped portion + //if (start < i) { + // sRtn = sRtn + text.substring(start, i - start); + //} + // add escaped xml + //sRtn = sRtn + escaped; + //System.out.println(buffer[i]+" :: " + escaped); + for (int j = 0; j < escaped.length; j++) { + //System.out.println(buffer[i]+" :>: " + escaped[j]); + sRtn = sRtn + escaped[j]; + } + //sRtn = sRtn+ escaped.toString(); + //sRtn = sRtn + String.valueOf(buffer[i]); + start = i + 1; + }else{ + sRtn = sRtn + c; + } + }else{ + sRtn = sRtn + c; + } + } + + return sRtn; + } + + // for tag attribute + public void setValue(Object value) { + this.value = value; + } + + // for tag attribute + public void setDefault(String def) { + this.def = def; + } + + // for tag attribute + public void setEscapeXml(boolean escapeXml) { + this.escapeXml = escapeXml; + } + + /** 2011.10.10 cmd 라인상에서 편의제공을 위해 제공, 필요없을시 삭제하여도 무방함 + public static void main(String[] args) throws IOException + { + + EgovComCrossSiteHndlr egovComCrossSiteHndlr = new EgovComCrossSiteHndlr(); + + egovComCrossSiteHndlr.value = "TRNSMIT"; + + String sCrossSiteHndlr = egovComCrossSiteHndlr.getWriteEscapedXml(); + //System.out.println("writeEscapedXml " + egovComCrossSiteHndlr.getWriteEscapedXml()); + /* + System.out.println("sCrossSiteHndlr|"+ sCrossSiteHndlr + "|"); + + try{ + System.out.println("TRY TEST 1"); + throw new Exception(); + }catch(Exception e){ + System.out.println("TRY TEST 2"); + }finally{ + System.out.println("TRY TEST 3"); + + } + } + */ + } + + diff --git a/src/main/java/egovframework/com/cmm/EgovComExcepHndlr.java b/src/main/java/egovframework/com/cmm/EgovComExcepHndlr.java new file mode 100644 index 0000000..1cdbd97 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovComExcepHndlr.java @@ -0,0 +1,48 @@ +package egovframework.com.cmm; + +import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @Class Name : EgovComExcepHndlr.java + * @Description : 공통서비스의 exception 처리 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 13. 이삼섭 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 13. + * @version + * @see + * + */ +public class EgovComExcepHndlr implements ExceptionHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovComExcepHndlr.class); + + /* + @Resource(name = "otherSSLMailSender") + private SimpleSSLMail mailSender; + */ + /** + * 발생된 Exception을 처리한다. + */ + public void occur(Exception ex, String packageName) { + //log.debug(" EgovServiceExceptionHandler run..............."); + + /* + try { + mailSender. send(ex, packageName); + log.debug(" sending a alert mail is completed "); + } catch (Exception e) { + LOGGER.error(packageName, ex); + } + */ + + LOGGER.error(packageName, ex); + } +} diff --git a/src/main/java/egovframework/com/cmm/EgovComOthersExcepHndlr.java b/src/main/java/egovframework/com/cmm/EgovComOthersExcepHndlr.java new file mode 100644 index 0000000..cc7b2f1 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovComOthersExcepHndlr.java @@ -0,0 +1,16 @@ +package egovframework.com.cmm; + +import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class EgovComOthersExcepHndlr implements ExceptionHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovComOthersExcepHndlr.class); + + public void occur(Exception exception, String packageName) { + //log.debug(" EgovServiceExceptionHandler run..............."); + LOGGER.error(packageName, exception); + } +} diff --git a/src/main/java/egovframework/com/cmm/EgovComponentChecker.java b/src/main/java/egovframework/com/cmm/EgovComponentChecker.java new file mode 100644 index 0000000..5acb325 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovComponentChecker.java @@ -0,0 +1,65 @@ +package egovframework.com.cmm; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Service; + + +/** + * EgovComUtil 클래스 + * + * @author 서준식 + * @since 2011.09.15 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    -------------    ----------------------
+ *   2011.09.15  서준식        최초 생성
+ * 
+ */ + +@Service("egovUtil") +public class EgovComponentChecker extends EgovAbstractServiceImpl implements ApplicationContextAware{ + + + public static ApplicationContext context; + + @SuppressWarnings("static-access") + public void setApplicationContext(ApplicationContext context) + throws BeansException { + + this.context = context; + } + + + /** + * Spring MVC에서 설정한 빈이 아닌 서비스 빈(컴포넌트)만을 검색할 수 있음 + * + */ + public static boolean hasComponent(String componentName){ + + try{ + Object component = context.getBean(componentName); + + if(component == null){ + return false; + }else{ + return true; + } + + }catch(NoSuchBeanDefinitionException ex){// 해당 컴포넌트를 찾을 수없을 경우 false반환 + return false; + } + } + + + +} diff --git a/src/main/java/egovframework/com/cmm/EgovMessageSource.java b/src/main/java/egovframework/com/cmm/EgovMessageSource.java new file mode 100644 index 0000000..63a1d5b --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovMessageSource.java @@ -0,0 +1,55 @@ +package egovframework.com.cmm; + +import java.util.Locale; + +import org.springframework.context.MessageSource; +import org.springframework.context.support.ReloadableResourceBundleMessageSource; + +/** + * 메시지 리소스 사용을 위한 MessageSource 인터페이스 및 ReloadableResourceBundleMessageSource 클래스의 구현체 + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +public class EgovMessageSource extends ReloadableResourceBundleMessageSource implements MessageSource { + + private ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource; + + /** + * getReloadableResourceBundleMessageSource() + * @param reloadableResourceBundleMessageSource - resource MessageSource + * @return ReloadableResourceBundleMessageSource + */ + public void setReloadableResourceBundleMessageSource(ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource) { + this.reloadableResourceBundleMessageSource = reloadableResourceBundleMessageSource; + } + + /** + * getReloadableResourceBundleMessageSource() + * @return ReloadableResourceBundleMessageSource + */ + public ReloadableResourceBundleMessageSource getReloadableResourceBundleMessageSource() { + return reloadableResourceBundleMessageSource; + } + + /** + * 정의된 메세지 조회 + * @param code - 메세지 코드 + * @return String + */ + public String getMessage(String code) { + return getReloadableResourceBundleMessageSource().getMessage(code, null, Locale.getDefault()); + } + +} diff --git a/src/main/java/egovframework/com/cmm/EgovWebUtil.java b/src/main/java/egovframework/com/cmm/EgovWebUtil.java new file mode 100644 index 0000000..d4be476 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovWebUtil.java @@ -0,0 +1,109 @@ +package egovframework.com.cmm; + +import java.util.regex.Pattern; + +/** + * 교차접속 스크립트 공격 취약성 방지(파라미터 문자열 교체) + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    	--------    ---------------------------
+ *   2011.10.10  한성곤          최초 생성
+ *
+ * 
+ */ + +public class EgovWebUtil { + public static String clearXSSMinimum(String value) { + if (value == null || value.trim().equals("")) { + return ""; + } + + String returnValue = value; + + returnValue = returnValue.replaceAll("&", "&"); + returnValue = returnValue.replaceAll("<", "<"); + returnValue = returnValue.replaceAll(">", ">"); + returnValue = returnValue.replaceAll("\"", """); + returnValue = returnValue.replaceAll("\'", "'"); + returnValue = returnValue.replaceAll(".", "."); + returnValue = returnValue.replaceAll("%2E", "."); + returnValue = returnValue.replaceAll("%2F", "/"); + return returnValue; + } + + public static String clearXSSMaximum(String value) { + String returnValue = value; + returnValue = clearXSSMinimum(returnValue); + + returnValue = returnValue.replaceAll("%00", null); + + returnValue = returnValue.replaceAll("%", "%"); + + // \\. => . + + returnValue = returnValue.replaceAll("\\.\\./", ""); // ../ + returnValue = returnValue.replaceAll("\\.\\.\\\\", ""); // ..\ + returnValue = returnValue.replaceAll("\\./", ""); // ./ + returnValue = returnValue.replaceAll("%2F", ""); + + return returnValue; + } + + public static String filePathBlackList(String value) { + String returnValue = value; + if (returnValue == null || returnValue.trim().equals("")) { + return ""; + } + + returnValue = returnValue.replaceAll("\\.\\./", ""); // ../ + returnValue = returnValue.replaceAll("\\.\\.\\\\", ""); // ..\ + + return returnValue; + } + + /** + * 행안부 보안취약점 점검 조치 방안. + * + * @param value + * @return + */ + public static String filePathReplaceAll(String value) { + String returnValue = value; + if (returnValue == null || returnValue.trim().equals("")) { + return ""; + } + + returnValue = returnValue.replaceAll("/", ""); + returnValue = returnValue.replaceAll("\\", ""); + returnValue = returnValue.replaceAll("\\.\\.", ""); // .. + returnValue = returnValue.replaceAll("&", ""); + + return returnValue; + } + + public static String filePathWhiteList(String value) { + return value; + } + + public static boolean isIPAddress(String str) { + Pattern ipPattern = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"); + + return ipPattern.matcher(str).matches(); + } + + public static String removeCRLF(String parameter) { + return parameter.replaceAll("\r", "").replaceAll("\n", ""); + } + + public static String removeSQLInjectionRisk(String parameter) { + return parameter.replaceAll("\\p{Space}", "").replaceAll("\\*", "").replaceAll("%", "").replaceAll(";", "").replaceAll("-", "").replaceAll("\\+", "").replaceAll(",", ""); + } + + public static String removeOSCmdRisk(String parameter) { + return parameter.replaceAll("\\p{Space}", "").replaceAll("\\*", "").replaceAll("|", "").replaceAll(";", ""); + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/cmm/ImagePaginationRenderer.java b/src/main/java/egovframework/com/cmm/ImagePaginationRenderer.java new file mode 100644 index 0000000..b23c261 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/ImagePaginationRenderer.java @@ -0,0 +1,48 @@ +package egovframework.com.cmm; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer; + +import javax.servlet.ServletContext; + +import org.springframework.web.context.ServletContextAware; +/** + * ImagePaginationRenderer.java 클래스 + * + * @author 서준식 + * @since 2011. 9. 16. + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    -------------    ----------------------
+ *   2011. 9. 16.   서준식       이미지 경로에 ContextPath추가
+ * 
+ */ +public class ImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware{ + + private ServletContext servletContext; + + public ImagePaginationRenderer() { + + } + + public void initVariables(){ + firstPageLabel = "\"처음\" "; + previousPageLabel = "\"이전\" "; + currentPageLabel = "{0} "; + otherPageLabel = "{2} "; + nextPageLabel = "\"다음\" "; + lastPageLabel = "\"마지막\" "; + } + + + + public void setServletContext(ServletContext servletContext) { + this.servletContext = servletContext; + initVariables(); + } + +} diff --git a/src/main/java/egovframework/com/cmm/IncludedCompInfoVO.java b/src/main/java/egovframework/com/cmm/IncludedCompInfoVO.java new file mode 100644 index 0000000..c4cfdbd --- /dev/null +++ b/src/main/java/egovframework/com/cmm/IncludedCompInfoVO.java @@ -0,0 +1,50 @@ +package egovframework.com.cmm; + +/** + * IncludedInfo annotation을 바탕으로 화면에 표시할 정보를 구성하기 위한 VO 클래스 + * @author 공통컴포넌트 정진오 + * @since 2011.08.26 + * @version 2.0.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *  수정일		수정자		수정내용
+ *  -------    	--------    ---------------------------
+ *  2011.08.26	정진오 		최초 생성
+ *
+ * 
+ */ +public class IncludedCompInfoVO { + + private String name; + private String listUrl; + private int order; + private int gid; + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getListUrl() { + return listUrl; + } + public void setListUrl(String listUrl) { + this.listUrl = listUrl; + } + public int getOrder() { + return order; + } + public void setOrder(int order) { + this.order = order; + } + public int getGid() { + return gid; + } + public void setGid(int gid) { + this.gid = gid; + } +} diff --git a/src/main/java/egovframework/com/cmm/LoginVO.java b/src/main/java/egovframework/com/cmm/LoginVO.java new file mode 100644 index 0000000..b4d473f --- /dev/null +++ b/src/main/java/egovframework/com/cmm/LoginVO.java @@ -0,0 +1,282 @@ +package egovframework.com.cmm; + +import java.io.Serializable; + +/** + * @Class Name : LoginVO.java + * @Description : Login VO class + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.03 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.03 + * @version 1.0 + * @see + * + */ +public class LoginVO implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = -8274004534207618049L; + + /** 아이디 */ + private String id; + /** 이름 */ + private String name; + /** 주민등록번호 */ + private String ihidNum; + /** 이메일주소 */ + private String email; + /** 비밀번호 */ + private String password; + /** 비밀번호 힌트 */ + private String passwordHint; + /** 비밀번호 정답 */ + private String passwordCnsr; + /** 사용자구분 */ + private String userSe; + /** 조직(부서)ID */ + private String orgnztId; + /** 조직(부서)명 */ + private String orgnztNm; + /** 고유아이디 */ + private String uniqId; + /** 로그인 후 이동할 페이지 */ + private String url; + /** 사용자 IP정보 */ + private String ip; + /** GPKI인증 DN */ + private String dn; + + private String tel; + + private String positionNm; + + private String tmpPassword; + + /** + * id attribute 를 리턴한다. + * @return String + */ + public String getId() { + return id; + } + /** + * id attribute 값을 설정한다. + * @param id String + */ + public void setId(String id) { + this.id = id; + } + /** + * name attribute 를 리턴한다. + * @return String + */ + public String getName() { + return name; + } + /** + * name attribute 값을 설정한다. + * @param name String + */ + public void setName(String name) { + this.name = name; + } + /** + * ihidNum attribute 를 리턴한다. + * @return String + */ + public String getIhidNum() { + return ihidNum; + } + /** + * ihidNum attribute 값을 설정한다. + * @param ihidNum String + */ + public void setIhidNum(String ihidNum) { + this.ihidNum = ihidNum; + } + /** + * email attribute 를 리턴한다. + * @return String + */ + public String getEmail() { + return email; + } + /** + * email attribute 값을 설정한다. + * @param email String + */ + public void setEmail(String email) { + this.email = email; + } + /** + * password attribute 를 리턴한다. + * @return String + */ + public String getPassword() { + return password; + } + /** + * password attribute 값을 설정한다. + * @param password String + */ + public void setPassword(String password) { + this.password = password; + } + /** + * passwordHint attribute 를 리턴한다. + * @return String + */ + public String getPasswordHint() { + return passwordHint; + } + /** + * passwordHint attribute 값을 설정한다. + * @param passwordHint String + */ + public void setPasswordHint(String passwordHint) { + this.passwordHint = passwordHint; + } + /** + * passwordCnsr attribute 를 리턴한다. + * @return String + */ + public String getPasswordCnsr() { + return passwordCnsr; + } + /** + * passwordCnsr attribute 값을 설정한다. + * @param passwordCnsr String + */ + public void setPasswordCnsr(String passwordCnsr) { + this.passwordCnsr = passwordCnsr; + } + /** + * userSe attribute 를 리턴한다. + * @return String + */ + public String getUserSe() { + return userSe; + } + /** + * userSe attribute 값을 설정한다. + * @param userSe String + */ + public void setUserSe(String userSe) { + this.userSe = userSe; + } + /** + * orgnztId attribute 를 리턴한다. + * @return String + */ + public String getOrgnztId() { + return orgnztId; + } + /** + * orgnztId attribute 값을 설정한다. + * @param orgnztId String + */ + public void setOrgnztId(String orgnztId) { + this.orgnztId = orgnztId; + } + /** + * uniqId attribute 를 리턴한다. + * @return String + */ + public String getUniqId() { + return uniqId; + } + /** + * uniqId attribute 값을 설정한다. + * @param uniqId String + */ + public void setUniqId(String uniqId) { + this.uniqId = uniqId; + } + /** + * url attribute 를 리턴한다. + * @return String + */ + public String getUrl() { + return url; + } + /** + * url attribute 값을 설정한다. + * @param url String + */ + public void setUrl(String url) { + this.url = url; + } + /** + * ip attribute 를 리턴한다. + * @return String + */ + public String getIp() { + return ip; + } + /** + * ip attribute 값을 설정한다. + * @param ip String + */ + public void setIp(String ip) { + this.ip = ip; + } + /** + * dn attribute 를 리턴한다. + * @return String + */ + public String getDn() { + return dn; + } + /** + * dn attribute 값을 설정한다. + * @param dn String + */ + public void setDn(String dn) { + this.dn = dn; + } + /** + * @return the orgnztNm + */ + public String getOrgnztNm() { + return orgnztNm; + } + /** + * @param orgnztNm the orgnztNm to set + */ + public void setOrgnztNm(String orgnztNm) { + this.orgnztNm = orgnztNm; + } + + + public String getTel() { + return this.tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getPositionNm() { + return this.positionNm; + } + + public void setPositionNm(String positionNm) { + this.positionNm = positionNm; + } + + public String getTmpPassword() { + return this.tmpPassword; + } + + public void setTmpPassword(String tmpPassword) { + this.tmpPassword = tmpPassword; + } + } + diff --git a/src/main/java/egovframework/com/cmm/SessionVO.java b/src/main/java/egovframework/com/cmm/SessionVO.java new file mode 100644 index 0000000..b6fd62c --- /dev/null +++ b/src/main/java/egovframework/com/cmm/SessionVO.java @@ -0,0 +1,120 @@ +package egovframework.com.cmm; + +import java.io.Serializable; + +/** + * 세션 VO 클래스 + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.06 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ * 
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2009.03.06  박지욱          최초 생성 
+ *  
+ *  
+ */ +@SuppressWarnings("serial") +public class SessionVO implements Serializable { + + /** 아이디 */ + private String sUserId; + /** 이름 */ + private String sUserNm; + /** 이메일 */ + private String sEmail; + /** 사용자구분 */ + private String sUserSe; + /** 조직(부서)ID */ + private String orgnztId; + /** 고유아이디 */ + private String uniqId; + /** + * sUserId attribute 를 리턴한다. + * @return String + */ + public String getSUserId() { + return sUserId; + } + /** + * sUserId attribute 값을 설정한다. + * @param sUserId String + */ + public void setSUserId(String userId) { + sUserId = userId; + } + /** + * sUserNm attribute 를 리턴한다. + * @return String + */ + public String getSUserNm() { + return sUserNm; + } + /** + * sUserNm attribute 값을 설정한다. + * @param sUserNm String + */ + public void setSUserNm(String userNm) { + sUserNm = userNm; + } + /** + * sEmail attribute 를 리턴한다. + * @return String + */ + public String getSEmail() { + return sEmail; + } + /** + * sEmail attribute 값을 설정한다. + * @param sEmail String + */ + public void setSEmail(String email) { + sEmail = email; + } + /** + * sUserSe attribute 를 리턴한다. + * @return String + */ + public String getSUserSe() { + return sUserSe; + } + /** + * sUserSe attribute 값을 설정한다. + * @param sUserSe String + */ + public void setSUserSe(String userSe) { + sUserSe = userSe; + } + /** + * orgnztId attribute 를 리턴한다. + * @return String + */ + public String getOrgnztId() { + return orgnztId; + } + /** + * orgnztId attribute 값을 설정한다. + * @param orgnztId String + */ + public void setOrgnztId(String orgnztId) { + this.orgnztId = orgnztId; + } + /** + * uniqId attribute 를 리턴한다. + * @return String + */ + public String getUniqId() { + return uniqId; + } + /** + * uniqId attribute 값을 설정한다. + * @param uniqId String + */ + public void setUniqId(String uniqId) { + this.uniqId = uniqId; + } +} diff --git a/src/main/java/egovframework/com/cmm/annotation/IncludedInfo.java b/src/main/java/egovframework/com/cmm/annotation/IncludedInfo.java new file mode 100644 index 0000000..a88f458 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/annotation/IncludedInfo.java @@ -0,0 +1,33 @@ +package egovframework.com.cmm.annotation; + +/** + * 컴포넌트의 포함 정보 표현을 위한 annotation 클래스 + * 기본적으로 Controller 클래스에 annotation을 부여하되, + * 하나의 Controller에 여러 개의 목록성 url mapping이 제공되는 경우에는 + * 메소드에 annotation을 부여한다. + * @author 공통컴포넌트 정진오 + * @since 2011.08.26 + * @version 2.0.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *  수정일		수정자		수정내용
+ *  -------    	--------    ---------------------------
+ *  2011.08.26	정진오 		최초 생성
+ *
+ * 
+ */ + + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface IncludedInfo { + String name() default ""; // 컴포넌트의 한글 이름 + String listUrl() default ""; // 컴포넌트의 목록정보조회를 위한 URL + int order() default 0; // 자동 생성되는 메뉴 목록에 표시되는 순서 + int gid() default 0; // 컴포넌트의 Group ID(대분류 구분) +} diff --git a/src/main/java/egovframework/com/cmm/filter/HTMLTagFilter.java b/src/main/java/egovframework/com/cmm/filter/HTMLTagFilter.java new file mode 100644 index 0000000..551d57a --- /dev/null +++ b/src/main/java/egovframework/com/cmm/filter/HTMLTagFilter.java @@ -0,0 +1,46 @@ +/* + * Copyright 2008-2009 MOPAS(MINISTRY OF SECURITY AND PUBLIC ADMINISTRATION). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package egovframework.com.cmm.filter; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; + +public class HTMLTagFilter implements Filter{ + + @SuppressWarnings("unused") + private FilterConfig config; + + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + + chain.doFilter(new HTMLTagFilterRequestWrapper((HttpServletRequest)request), response); + } + + public void init(FilterConfig config) throws ServletException { + this.config = config; + } + + public void destroy() { + + } +} diff --git a/src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java b/src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java new file mode 100644 index 0000000..c070001 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java @@ -0,0 +1,109 @@ +/* + * Copyright 2008-2009 MOPAS(MINISTRY OF SECURITY AND PUBLIC ADMINISTRATION). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package egovframework.com.cmm.filter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +public class HTMLTagFilterRequestWrapper extends HttpServletRequestWrapper { + + public HTMLTagFilterRequestWrapper(HttpServletRequest request) { + super(request); + } + + public String[] getParameterValues(String parameter) { + + String[] values = super.getParameterValues(parameter); + + if(values==null){ + return null; + } + + for (int i = 0; i < values.length; i++) { + if (values[i] != null) { + StringBuffer strBuff = new StringBuffer(); + for (int j = 0; j < values[i].length(); j++) { + char c = values[i].charAt(j); + switch (c) { + case '<': + strBuff.append("<"); + break; + case '>': + strBuff.append(">"); + break; + //case '&': + //strBuff.append("&"); + //break; + case '"': + strBuff.append("""); + break; + case '\'': + strBuff.append("'"); + break; + default: + strBuff.append(c); + break; + } + } + values[i] = strBuff.toString(); + } else { + values[i] = null; + } + } + + return values; + } + + public String getParameter(String parameter) { + + String value = super.getParameter(parameter); + + if(value==null){ + return null; + } + + StringBuffer strBuff = new StringBuffer(); + + for (int i = 0; i < value.length(); i++) { + char c = value.charAt(i); + switch (c) { + case '<': + strBuff.append("<"); + break; + case '>': + strBuff.append(">"); + break; + case '&': + strBuff.append("&"); + break; + case '"': + strBuff.append("""); + break; + case '\'': + strBuff.append("'"); + break; + default: + strBuff.append(c); + break; + } + } + + value = strBuff.toString(); + + return value; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/cmm/interceptor/AuthenticInterceptor.java b/src/main/java/egovframework/com/cmm/interceptor/AuthenticInterceptor.java new file mode 100644 index 0000000..ff889ba --- /dev/null +++ b/src/main/java/egovframework/com/cmm/interceptor/AuthenticInterceptor.java @@ -0,0 +1,64 @@ +package egovframework.com.cmm.interceptor; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.ModelAndViewDefiningException; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +/** + * 인증여부 체크 인터셉터 + * @author 공통서비스 개발팀 서준식 + * @since 2011.07.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011.07.01  서준식          최초 생성
+ *  2011.09.07  서준식          인증이 필요없는 URL을 패스하는 로직 추가
+ *  
+ */ + + +public class AuthenticInterceptor extends HandlerInterceptorAdapter { + + /** + * 세션에 계정정보(LoginVO)가 있는지 여부로 인증 여부를 체크한다. + * 계정정보(LoginVO)가 없다면, 로그인 페이지로 이동한다. + */ + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) + throws Exception { + + String uri = request.getRequestURI(); + + //세션 체크 제외 URL + if (uri.equals("/login.do") || + uri.equals("/") || + uri.equals("/actionLoginSys.do") || + uri.equals("/js/") || + uri.equals("/images/") + ) { + return true; + } + + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + + if (loginVO == null) { + response.setContentType("text/html; charset=UTF-8"); + response.getWriter().println(""); + return false; + } + + return true; + } + +} diff --git a/src/main/java/egovframework/com/cmm/interceptor/IpObtainInterceptor.java b/src/main/java/egovframework/com/cmm/interceptor/IpObtainInterceptor.java new file mode 100644 index 0000000..f4b89a4 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/interceptor/IpObtainInterceptor.java @@ -0,0 +1,42 @@ +package egovframework.com.cmm.interceptor; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +/** + * 사용자IP 체크 인터셉터 + * @author 유지보수팀 이기하 + * @since 2013.03.28 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ * 
+ *   수정일     수정자          수정내용
+ *  ----------  --------    ---------------------------
+ *  2013.03.28	이기하          최초 생성 
+ *  
+ */ + +public class IpObtainInterceptor extends HandlerInterceptorAdapter { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + + String clientIp = request.getRemoteAddr(); + + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + + if (loginVO != null) { + loginVO.setIp(clientIp); + } + + return true; + } +} diff --git a/src/main/java/egovframework/com/cmm/service/CmmnDetailCode.java b/src/main/java/egovframework/com/cmm/service/CmmnDetailCode.java new file mode 100644 index 0000000..eb97c05 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/CmmnDetailCode.java @@ -0,0 +1,194 @@ +package egovframework.com.cmm.service; + +import java.io.Serializable; + +/** + * 공통상세코드 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class CmmnDetailCode implements Serializable { + + private static final long serialVersionUID = 1L; + + /* + * 코드ID + */ + private String codeId = ""; + + /* + * 코드ID명 + */ + private String codeIdNm = ""; + + /* + * 코드 + */ + private String code = ""; + + /* + * 코드명 + */ + private String codeNm = ""; + + /* + * 코드설명 + */ + private String codeDc = ""; + + /* + * 사용여부 + */ + private String useAt = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * codeId attribute 를 리턴한다. + * @return String + */ + public String getCodeId() { + return codeId; + } + + /** + * codeId attribute 값을 설정한다. + * @param codeId String + */ + public void setCodeId(String codeId) { + this.codeId = codeId; + } + + /** + * codeIdNm attribute 를 리턴한다. + * @return String + */ + public String getCodeIdNm() { + return codeIdNm; + } + + /** + * codeIdNm attribute 값을 설정한다. + * @param codeIdNm String + */ + public void setCodeIdNm(String codeIdNm) { + this.codeIdNm = codeIdNm; + } + + /** + * code attribute 를 리턴한다. + * @return String + */ + public String getCode() { + return code; + } + + /** + * code attribute 값을 설정한다. + * @param code String + */ + public void setCode(String code) { + this.code = code; + } + + /** + * codeNm attribute 를 리턴한다. + * @return String + */ + public String getCodeNm() { + return codeNm; + } + + /** + * codeNm attribute 값을 설정한다. + * @param codeNm String + */ + public void setCodeNm(String codeNm) { + this.codeNm = codeNm; + } + + /** + * codeDc attribute 를 리턴한다. + * @return String + */ + public String getCodeDc() { + return codeDc; + } + + /** + * codeDc attribute 값을 설정한다. + * @param codeDc String + */ + public void setCodeDc(String codeDc) { + this.codeDc = codeDc; + } + + /** + * useAt attribute 를 리턴한다. + * @return String + */ + public String getUseAt() { + return useAt; + } + + /** + * useAt attribute 값을 설정한다. + * @param useAt String + */ + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/cmm/service/EgovCmmUseService.java b/src/main/java/egovframework/com/cmm/service/EgovCmmUseService.java new file mode 100644 index 0000000..54a0d03 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovCmmUseService.java @@ -0,0 +1,64 @@ +package egovframework.com.cmm.service; + +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.ComDefaultCodeVO; + + + +/** + * + * 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기 위한 서비스 인터페이스 + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이삼섭          최초 생성
+ *
+ * 
+ */ +public interface EgovCmmUseService { + + /** + * 공통코드를 조회한다. + * + * @param vo + * @return List(코드) + * @throws Exception + */ + public List selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception; + + /** + * ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다. + * + * @param voList + * @return Map(코드) + * @throws Exception + */ + public Map> selectCmmCodeDetails(List voList) throws Exception; + + /** + * 조직정보를 코드형태로 리턴한다. + * + * @param 조회조건정보 vo + * @return 조직정보 List + * @throws Exception + */ + public List selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception; + + /** + * 그룹정보를 코드형태로 리턴한다. + * + * @param 조회조건정보 vo + * @return 그룹정보 List + * @throws Exception + */ + public List selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception; +} diff --git a/src/main/java/egovframework/com/cmm/service/EgovFileMngService.java b/src/main/java/egovframework/com/cmm/service/EgovFileMngService.java new file mode 100644 index 0000000..677c16b --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovFileMngService.java @@ -0,0 +1,115 @@ +package egovframework.com.cmm.service; + +import java.util.List; +import java.util.Map; + +/** + * @Class Name : EgovFileMngService.java + * @Description : 파일정보의 관리를 위한 서비스 인터페이스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 25. 이삼섭 최초생성 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +public interface EgovFileMngService { + + /** + * 파일에 대한 목록을 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public List selectFileInfs(FileVO fvo) throws Exception; + + /** + * 하나의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @param fvo + * @throws Exception + */ + public String insertFileInf(FileVO fvo) throws Exception; + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @param fvoList + * @throws Exception + */ + public String insertFileInfs(List fvoList) throws Exception; + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다. + * + * @param fvoList + * @throws Exception + */ + public void updateFileInfs(List fvoList) throws Exception; + + /** + * 여러 개의 파일을 삭제한다. + * + * @param fvoList + * @throws Exception + */ + public void deleteFileInfs(List fvoList) throws Exception; + + /** + * 하나의 파일을 삭제한다. + * + * @param fvo + * @throws Exception + */ + public void deleteFileInf(FileVO fvo) throws Exception; + + /** + * 파일에 대한 상세정보를 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public FileVO selectFileInf(FileVO fvo) throws Exception; + + /** + * 파일 구분자에 대한 최대값을 구한다. + * + * @param fvo + * @return + * @throws Exception + */ + public int getMaxFileSN(FileVO fvo) throws Exception; + + /** + * 전체 파일을 삭제한다. + * + * @param fvo + * @throws Exception + */ + public void deleteAllFileInf(FileVO fvo) throws Exception; + + /** + * 파일명 검색에 대한 목록을 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public Map selectFileListByFileNm(FileVO fvo) throws Exception; + + /** + * 이미지 파일에 대한 목록을 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + public List selectImageFileList(FileVO vo) throws Exception; +} diff --git a/src/main/java/egovframework/com/cmm/service/EgovFileMngUtil.java b/src/main/java/egovframework/com/cmm/service/EgovFileMngUtil.java new file mode 100644 index 0000000..eaeebbe --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovFileMngUtil.java @@ -0,0 +1,421 @@ +package egovframework.com.cmm.service; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Map.Entry; + +import egovframework.com.cmm.EgovWebUtil; +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +import egovframework.rte.fdl.idgnr.EgovIdGnrService; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Component; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; + +/** + * @Class Name : EgovFileMngUtil.java + * @Description : 메시지 처리 관련 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.02.13 이삼섭 최초 생성 + * 2011.08.09 서준식 utl.fcc패키지와 Dependency제거를 위해 getTimeStamp()메서드 추가 + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 02. 13 + * @version 1.0 + * @see + * + */ +@Component("EgovFileMngUtil") +public class EgovFileMngUtil { + + public static final int BUFF_SIZE = 2048; + + @Resource(name = "egovFileIdGnrService") + private EgovIdGnrService idgenService; + + /** + * 첨부파일에 대한 목록 정보를 취득한다. + * + * @param files + * @return + * @throws Exception + */ + public List parseFileInf(Map files, String KeyStr, int fileKeyParam, String atchFileId, String storePath) throws Exception { + int fileKey = fileKeyParam; + + String storePathString = ""; + String atchFileIdString = ""; + + if ("".equals(storePath) || storePath == null) { + storePathString = EgovProperties.getProperty("Globals.fileStorePath"); + } else { + storePathString = EgovProperties.getProperty(storePath); + } + + if ("".equals(atchFileId) || atchFileId == null) { + atchFileIdString = idgenService.getNextStringId(); + } else { + atchFileIdString = atchFileId; + } + + File saveFolder = new File(EgovWebUtil.filePathBlackList(storePathString)); + + if (!saveFolder.exists() || saveFolder.isFile()) { + saveFolder.mkdirs(); + } + + Iterator> itr = files.entrySet().iterator(); + MultipartFile file; + String filePath = ""; + List result = new ArrayList(); + FileVO fvo; + + while (itr.hasNext()) { + Entry entry = itr.next(); + + file = entry.getValue(); + String orginFileName = file.getOriginalFilename(); + + //-------------------------------------- + // 원 파일명이 없는 경우 처리 + // (첨부가 되지 않은 input file type) + //-------------------------------------- + if ("".equals(orginFileName)) { + continue; + } + ////------------------------------------ + + int index = orginFileName.lastIndexOf("."); + //String fileName = orginFileName.substring(0, index); + String fileExt = orginFileName.substring(index + 1); + String newName = KeyStr + getTimeStamp() + fileKey; + long size = file.getSize(); + + if (!"".equals(orginFileName)) { + filePath = storePathString + File.separator + newName; + file.transferTo(new File(EgovWebUtil.filePathBlackList(filePath))); + } + + fvo = new FileVO(); + fvo.setFileExtsn(fileExt); + fvo.setFileStreCours(storePathString); + fvo.setFileMg(Long.toString(size)); + fvo.setOrignlFileNm(orginFileName); + fvo.setStreFileNm(newName); + fvo.setAtchFileId(atchFileIdString); + fvo.setFileSn(String.valueOf(fileKey)); + + result.add(fvo); + + fileKey++; + } + + return result; + } + + /** + * 첨부파일을 서버에 저장한다. + * + * @param file + * @param newName + * @param stordFilePath + * @throws Exception + */ + protected void writeUploadedFile(MultipartFile file, String newName, String stordFilePath) throws Exception { + InputStream stream = null; + OutputStream bos = null; + + try { + stream = file.getInputStream(); + File cFile = new File(stordFilePath); + + if (!cFile.isDirectory()) { + boolean _flag = cFile.mkdir(); + if (!_flag) { + throw new IOException("Directory creation Failed "); + } + } + + bos = new FileOutputStream(stordFilePath + File.separator + newName); + + int bytesRead = 0; + byte[] buffer = new byte[BUFF_SIZE]; + + while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) { + bos.write(buffer, 0, bytesRead); + } + } finally { + EgovResourceCloseHelper.close(bos, stream); + } + } + + /** + * 서버의 파일을 다운로드한다. + * + * @param request + * @param response + * @throws Exception + */ + public static void downFile(HttpServletRequest request, HttpServletResponse response) throws Exception { + + String downFileName = ""; + String orgFileName = ""; + + if ((String) request.getAttribute("downFile") == null) { + downFileName = ""; + } else { + downFileName = (String) request.getAttribute("downFile"); + } + + if ((String) request.getAttribute("orgFileName") == null) { + orgFileName = ""; + } else { + orgFileName = (String) request.getAttribute("orginFile"); + } + + orgFileName = orgFileName.replaceAll("\r", "").replaceAll("\n", ""); + + File file = new File(EgovWebUtil.filePathBlackList(downFileName)); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + byte[] buffer = new byte[BUFF_SIZE]; //buffer size 2K. + + response.setContentType("application/x-msdownload"); + response.setHeader("Content-Disposition:", "attachment; filename=" + new String(orgFileName.getBytes(), "UTF-8")); + response.setHeader("Content-Transfer-Encoding", "binary"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Expires", "0"); + + BufferedInputStream fin = null; + BufferedOutputStream outs = null; + + try { + fin = new BufferedInputStream(new FileInputStream(file)); + outs = new BufferedOutputStream(response.getOutputStream()); + int read = 0; + + while ((read = fin.read(buffer)) != -1) { + outs.write(buffer, 0, read); + } + } finally { + EgovResourceCloseHelper.close(outs, fin); + } + } + + /** + * 첨부로 등록된 파일을 서버에 업로드한다. + * + * @param file + * @return + * @throws Exception + */ + public static HashMap uploadFile(MultipartFile file) throws Exception { + + HashMap map = new HashMap(); + //Write File 이후 Move File???? + String newName = ""; + String stordFilePath = EgovProperties.getProperty("Globals.fileStorePath"); + String orginFileName = file.getOriginalFilename(); + + int index = orginFileName.lastIndexOf("."); + //String fileName = orginFileName.substring(0, _index); + String fileExt = orginFileName.substring(index + 1); + long size = file.getSize(); + + //newName 은 Naming Convention에 의해서 생성 + newName = getTimeStamp(); // 2012.11 KISA 보안조치 + writeFile(file, newName, stordFilePath); + //storedFilePath는 지정 + map.put(Globals.ORIGIN_FILE_NM, orginFileName); + map.put(Globals.UPLOAD_FILE_NM, newName); + map.put(Globals.FILE_EXT, fileExt); + map.put(Globals.FILE_PATH, stordFilePath); + map.put(Globals.FILE_SIZE, String.valueOf(size)); + + return map; + } + + /** + * 파일을 실제 물리적인 경로에 생성한다. + * + * @param file + * @param newName + * @param stordFilePath + * @throws Exception + */ + protected static void writeFile(MultipartFile file, String newName, String stordFilePath) throws Exception { + InputStream stream = null; + OutputStream bos = null; + + try { + stream = file.getInputStream(); + File cFile = new File(EgovWebUtil.filePathBlackList(stordFilePath)); + + if (!cFile.isDirectory()) + cFile.mkdir(); + + bos = new FileOutputStream(EgovWebUtil.filePathBlackList(stordFilePath + File.separator + newName)); + + int bytesRead = 0; + byte[] buffer = new byte[BUFF_SIZE]; + + while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) { + bos.write(buffer, 0, bytesRead); + } + } finally { + EgovResourceCloseHelper.close(bos, stream); + } + } + + /** + * 서버 파일에 대하여 다운로드를 처리한다. + * + * @param response + * @param streFileNm 파일저장 경로가 포함된 형태 + * @param orignFileNm + * @throws Exception + */ + public void downFile(HttpServletResponse response, String streFileNm, String orignFileNm) throws Exception { + String downFileName = streFileNm; + String orgFileName = orignFileNm; + + File file = new File(downFileName); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + int fSize = (int) file.length(); + if (fSize > 0) { + BufferedInputStream in = null; + + try { + in = new BufferedInputStream(new FileInputStream(file)); + + String mimetype = "application/x-msdownload"; + + //response.setBufferSize(fSize); + response.setContentType(mimetype); + response.setHeader("Content-Disposition:", "attachment; filename=" + orgFileName); + response.setContentLength(fSize); + //response.setHeader("Content-Transfer-Encoding","binary"); + //response.setHeader("Pragma","no-cache"); + //response.setHeader("Expires","0"); + FileCopyUtils.copy(in, response.getOutputStream()); + } finally { + EgovResourceCloseHelper.close(in); + } + response.getOutputStream().flush(); + response.getOutputStream().close(); + } + + /* + String uploadPath = propertiesService.getString("fileDir"); + + File uFile = new File(uploadPath, requestedFile); + int fSize = (int) uFile.length(); + + if (fSize > 0) { + BufferedInputStream in = new BufferedInputStream(new FileInputStream(uFile)); + + String mimetype = "text/html"; + + //response.setBufferSize(fSize); + response.setContentType(mimetype); + response.setHeader("Content-Disposition", "attachment; filename=\"" + requestedFile + "\""); + response.setContentLength(fSize); + + FileCopyUtils.copy(in, response.getOutputStream()); + in.close(); + response.getOutputStream().flush(); + response.getOutputStream().close(); + } else { + response.setContentType("text/html"); + PrintWriter printwriter = response.getWriter(); + printwriter.println(""); + printwriter.println("


Could not get file name:
" + requestedFile + "

"); + printwriter.println("


Back

"); + printwriter.println("


© webAccess"); + printwriter.println(""); + printwriter.flush(); + printwriter.close(); + } + //*/ + + /* + response.setContentType("application/x-msdownload"); + response.setHeader("Content-Disposition:", "attachment; filename=" + new String(orgFileName.getBytes(),"UTF-8" )); + response.setHeader("Content-Transfer-Encoding","binary"); + response.setHeader("Pragma","no-cache"); + response.setHeader("Expires","0"); + + BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file)); + BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream()); + int read = 0; + + while ((read = fin.read(b)) != -1) { + outs.write(b,0,read); + } + log.debug(this.getClass().getName()+" BufferedOutputStream Write Complete!!! "); + + outs.close(); + fin.close(); + //*/ + } + + /** + * 공통 컴포넌트 utl.fcc 패키지와 Dependency제거를 위해 내부 메서드로 추가 정의함 + * 응용어플리케이션에서 고유값을 사용하기 위해 시스템에서17자리의TIMESTAMP값을 구하는 기능 + * + * @param + * @return Timestamp 값 + * @see + */ + private static String getTimeStamp() { + + String rtnStr = null; + + // 문자열로 변환하기 위한 패턴 설정(년도-월-일 시:분:초:초(자정이후 초)) + String pattern = "yyyyMMddhhmmssSSS"; + + SimpleDateFormat sdfCurrent = new SimpleDateFormat(pattern, Locale.KOREA); + Timestamp ts = new Timestamp(System.currentTimeMillis()); + + rtnStr = sdfCurrent.format(ts.getTime()); + + return rtnStr; + } +} diff --git a/src/main/java/egovframework/com/cmm/service/EgovProperties.java b/src/main/java/egovframework/com/cmm/service/EgovProperties.java new file mode 100644 index 0000000..f87708c --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovProperties.java @@ -0,0 +1,178 @@ +package egovframework.com.cmm.service; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStreamReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import egovframework.com.cmm.EgovWebUtil; +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Class Name : EgovProperties.java + * Description : UTF-8 기반 properties 읽기 전용 수정 버전 + */ +public class EgovProperties { + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovProperties.class); + + // 파일구분자 + final static String FILE_SEPARATOR = System.getProperty("file.separator"); + + // 프로퍼티 파일의 물리적 위치 + public static final String RELATIVE_PATH_PREFIX = + EgovProperties.class.getResource("").getPath() + .substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("com")); + + public static final String GLOBALS_PROPERTIES_FILE = + RELATIVE_PATH_PREFIX + "egovProps" + FILE_SEPARATOR + "globals.properties"; + + /** + * UTF-8 로 Properties 를 읽는 공통 메서드 + */ + private static Properties loadProperties(String filePath) throws IOException { + Properties props = new Properties(); + FileInputStream fis = null; + + try { + fis = new FileInputStream(EgovWebUtil.filePathBlackList(filePath)); + props.load(new InputStreamReader(new BufferedInputStream(fis), "UTF-8")); + } finally { + EgovResourceCloseHelper.close(fis); + } + + return props; + } + + /** + * Globals 전용 상대경로 프로퍼티 → 절대경로 변환 + */ + public static String getPathProperty(String keyName) { + LOGGER.debug("getPathProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName); + + try { + Properties props = loadProperties(GLOBALS_PROPERTIES_FILE); + + String value = props.getProperty(keyName); + if (value == null) return ""; + + value = value.trim(); + return RELATIVE_PATH_PREFIX + "egovProps" + FILE_SEPARATOR + value; + + } catch (IOException e) { + throw new RuntimeException("Property file IO exception", e); + } + } + + /** + * Globals 전용 프로퍼티 가져오기 + */ + public static String getProperty(String keyName) { + LOGGER.debug("getProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName); + + try { + Properties props = loadProperties(GLOBALS_PROPERTIES_FILE); + String value = props.getProperty(keyName); + + if (value == null) return ""; + return value.trim(); + + } catch (IOException e) { + throw new RuntimeException("Property file IO exception", e); + } + } + + /** + * 기본값 제공 버전 + */ + public static String getPropertyByDefault(String keyName, String defaultValue) { + LOGGER.debug("getProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName); + + try { + Properties props = loadProperties(GLOBALS_PROPERTIES_FILE); + + String value = props.getProperty(keyName); + if (value == null) return defaultValue; + + return value.trim(); + + } catch (IOException e) { + throw new RuntimeException("Property file IO exception", e); + } + } + + /** + * 주어진 파일에서 상대경로 프로퍼티 읽기 + */ + public static String getPathProperty(String fileName, String key) { + try { + Properties props = loadProperties(fileName); + String value = props.getProperty(key); + + if (value == null) return ""; + + return RELATIVE_PATH_PREFIX + "egovProps" + FILE_SEPARATOR + value; + + } catch (IOException e) { + throw new RuntimeException("Property file IO exception", e); + } + } + + /** + * 주어진 파일에서 지정 키값 읽기 + */ + public static String getProperty(String fileName, String key) { + try { + Properties props = loadProperties(fileName); + String value = props.getProperty(key); + + if (value == null) return ""; + return value.trim(); + + } catch (IOException e) { + throw new RuntimeException("Property file IO exception", e); + } + } + + /** + * 프로퍼티 파일 전체 key-value 리스트 반환 + */ + public static ArrayList> loadPropertyFile(String property) { + ArrayList> keyList = new ArrayList<>(); + FileInputStream fis = null; + + String src = property.replace('\\', File.separatorChar).replace('/', File.separatorChar); + + try { + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (!srcFile.exists()) { + return keyList; + } + + Properties props = loadProperties(src); + + Enumeration plist = props.propertyNames(); + while (plist.hasMoreElements()) { + String key = (String) plist.nextElement(); + Map map = new HashMap<>(); + map.put(key, props.getProperty(key)); + keyList.add(map); + } + + } catch (IOException e) { + throw new RuntimeException(e); + } + + return keyList; + } +} diff --git a/src/main/java/egovframework/com/cmm/service/EgovUserDetailsService.java b/src/main/java/egovframework/com/cmm/service/EgovUserDetailsService.java new file mode 100644 index 0000000..796f5ef --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovUserDetailsService.java @@ -0,0 +1,26 @@ +package egovframework.com.cmm.service; + +import java.util.List; + +public interface EgovUserDetailsService { + + /** + * 인증된 사용자객체를 VO형식으로 가져온다. + * @return Object - 사용자 ValueObject + */ + public Object getAuthenticatedUser(); + + /** + * 인증된 사용자의 권한 정보를 가져온다. + * 예) [ROLE_ADMIN, ROLE_USER, ROLE_A, ROLE_B, ROLE_RESTRICTED, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, IS_AUTHENTICATED_ANONYMOUSLY] + * @return List - 사용자 권한정보 목록 + */ + public List getAuthorities(); + + /** + * 인증된 사용자 여부를 체크한다. + * @return Boolean - 인증된 사용자 여부(TRUE / FALSE) + */ + public Boolean isAuthenticated(); + +} diff --git a/src/main/java/egovframework/com/cmm/service/FileVO.java b/src/main/java/egovframework/com/cmm/service/FileVO.java new file mode 100644 index 0000000..6f5e0f3 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/FileVO.java @@ -0,0 +1,240 @@ +package egovframework.com.cmm.service; + +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @Class Name : FileVO.java + * @Description : 파일정보 처리를 위한 VO 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 25. 이삼섭 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +@SuppressWarnings("serial") +public class FileVO implements Serializable { + + /** + * 첨부파일 아이디 + */ + public String atchFileId = ""; + /** + * 생성일자 + */ + public String creatDt = ""; + /** + * 파일내용 + */ + public String fileCn = ""; + /** + * 파일확장자 + */ + public String fileExtsn = ""; + /** + * 파일크기 + */ + public String fileMg = ""; + /** + * 파일연번 + */ + public String fileSn = ""; + /** + * 파일저장경로 + */ + public String fileStreCours = ""; + /** + * 원파일명 + */ + public String orignlFileNm = ""; + /** + * 저장파일명 + */ + public String streFileNm = ""; + + /** + * atchFileId attribute를 리턴한다. + * + * @return the atchFileId + */ + public String getAtchFileId() { + return atchFileId; + } + + /** + * atchFileId attribute 값을 설정한다. + * + * @param atchFileId + * the atchFileId to set + */ + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + + /** + * creatDt attribute를 리턴한다. + * + * @return the creatDt + */ + public String getCreatDt() { + return creatDt; + } + + /** + * creatDt attribute 값을 설정한다. + * + * @param creatDt + * the creatDt to set + */ + public void setCreatDt(String creatDt) { + this.creatDt = creatDt; + } + + /** + * fileCn attribute를 리턴한다. + * + * @return the fileCn + */ + public String getFileCn() { + return fileCn; + } + + /** + * fileCn attribute 값을 설정한다. + * + * @param fileCn + * the fileCn to set + */ + public void setFileCn(String fileCn) { + this.fileCn = fileCn; + } + + /** + * fileExtsn attribute를 리턴한다. + * + * @return the fileExtsn + */ + public String getFileExtsn() { + return fileExtsn; + } + + /** + * fileExtsn attribute 값을 설정한다. + * + * @param fileExtsn + * the fileExtsn to set + */ + public void setFileExtsn(String fileExtsn) { + this.fileExtsn = fileExtsn; + } + + /** + * fileMg attribute를 리턴한다. + * + * @return the fileMg + */ + public String getFileMg() { + return fileMg; + } + + /** + * fileMg attribute 값을 설정한다. + * + * @param fileMg + * the fileMg to set + */ + public void setFileMg(String fileMg) { + this.fileMg = fileMg; + } + + /** + * fileSn attribute를 리턴한다. + * + * @return the fileSn + */ + public String getFileSn() { + return fileSn; + } + + /** + * fileSn attribute 값을 설정한다. + * + * @param fileSn + * the fileSn to set + */ + public void setFileSn(String fileSn) { + this.fileSn = fileSn; + } + + /** + * fileStreCours attribute를 리턴한다. + * + * @return the fileStreCours + */ + public String getFileStreCours() { + return fileStreCours; + } + + /** + * fileStreCours attribute 값을 설정한다. + * + * @param fileStreCours + * the fileStreCours to set + */ + public void setFileStreCours(String fileStreCours) { + this.fileStreCours = fileStreCours; + } + + /** + * orignlFileNm attribute를 리턴한다. + * + * @return the orignlFileNm + */ + public String getOrignlFileNm() { + return orignlFileNm; + } + + /** + * orignlFileNm attribute 값을 설정한다. + * + * @param orignlFileNm + * the orignlFileNm to set + */ + public void setOrignlFileNm(String orignlFileNm) { + this.orignlFileNm = orignlFileNm; + } + + /** + * streFileNm attribute를 리턴한다. + * + * @return the streFileNm + */ + public String getStreFileNm() { + return streFileNm; + } + + /** + * streFileNm attribute 값을 설정한다. + * + * @param streFileNm + * the streFileNm to set + */ + public void setStreFileNm(String streFileNm) { + this.streFileNm = streFileNm; + } + + /** + * toString 메소드를 대치한다. + */ + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + +} diff --git a/src/main/java/egovframework/com/cmm/service/Globals.java b/src/main/java/egovframework/com/cmm/service/Globals.java new file mode 100644 index 0000000..ae7674b --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/Globals.java @@ -0,0 +1,58 @@ +package egovframework.com.cmm.service; + +/** + * Class Name : Globals.java + * Description : 시스템 구동 시 프로퍼티를 통해 사용될 전역변수를 정의한다. + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.19 박지욱 최초 생성 + * + * @author 공통 서비스 개발팀 박지욱 + * @since 2009. 01. 19 + * @version 1.0 + * @see + * + */ + +public class Globals { + //OS 유형 + public static final String OS_TYPE = EgovProperties.getProperty("Globals.OsType"); + //DB 유형 + public static final String DB_TYPE = EgovProperties.getProperty("Globals.DbType"); + //메인 페이지 + public static final String MAIN_PAGE = EgovProperties.getProperty("Globals.MainPage"); + //ShellFile 경로 + public static final String SHELL_FILE_PATH = EgovProperties.getPathProperty("Globals.ShellFilePath"); + //퍼로퍼티 파일 위치 + public static final String CONF_PATH = EgovProperties.getPathProperty("Globals.ConfPath"); + //Server정보 프로퍼티 위치 + public static final String SERVER_CONF_PATH = EgovProperties.getPathProperty("Globals.ServerConfPath"); + //Client정보 프로퍼티 위치 + public static final String CLIENT_CONF_PATH = EgovProperties.getPathProperty("Globals.ClientConfPath"); + //파일포맷 정보 프로퍼티 위치 + public static final String FILE_FORMAT_PATH = EgovProperties.getPathProperty("Globals.FileFormatPath"); + + //파일 업로드 원 파일명 + public static final String ORIGIN_FILE_NM = "originalFileName"; + //파일 확장자 + public static final String FILE_EXT = "fileExtension"; + //파일크기 + public static final String FILE_SIZE = "fileSize"; + //업로드된 파일명 + public static final String UPLOAD_FILE_NM = "uploadFileName"; + //파일경로 + public static final String FILE_PATH = "filePath"; + + //메일발송요청 XML파일경로 + public static final String MAIL_REQUEST_PATH = EgovProperties.getPathProperty("Globals.MailRequestPath"); + //메일발송응답 XML파일경로 + public static final String MAIL_RESPONSE_PATH = EgovProperties.getPathProperty("Globals.MailRResponsePath"); + + // G4C 연결용 IP (localhost) + public static final String LOCAL_IP = EgovProperties.getProperty("Globals.LocalIp"); + + + +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/CmmUseDAO.java b/src/main/java/egovframework/com/cmm/service/impl/CmmUseDAO.java new file mode 100644 index 0000000..62a284c --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/CmmUseDAO.java @@ -0,0 +1,62 @@ +package egovframework.com.cmm.service.impl; + +import java.util.List; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.service.CmmnDetailCode; + +import org.springframework.stereotype.Repository; + +/** + * @Class Name : CmmUseDAO.java + * @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 데이터 접근 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 11. 이삼섭 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 11. + * @version + * @see + * + */ +@Repository("cmmUseDAO") +public class CmmUseDAO extends EgovComAbstractDAO { + + /** + * 주어진 조건에 따른 공통코드를 불러온다. + * + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception { + return (List) list("CmmUseDAO.selectCmmCodeDetail", vo); + } + + /** + * 공통코드로 사용할 조직정보를 를 불러온다. + * + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception { + return (List) list("CmmUseDAO.selectOgrnztIdDetail", vo); + } + + /** + * 공통코드로 사용할그룹정보를 를 불러온다. + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception { + return (List) list("CmmUseDAO.selectGroupIdDetail", vo); + } +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovCmmUseServiceImpl.java b/src/main/java/egovframework/com/cmm/service/impl/EgovCmmUseServiceImpl.java new file mode 100644 index 0000000..680be70 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovCmmUseServiceImpl.java @@ -0,0 +1,91 @@ +package egovframework.com.cmm.service.impl; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.com.cmm.service.EgovCmmUseService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * @Class Name : EgovCmmUseServiceImpl.java + * @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 서비스 구현 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 11. 이삼섭 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 11. + * @version + * @see + * + */ +@Service("EgovCmmUseService") +public class EgovCmmUseServiceImpl extends EgovAbstractServiceImpl implements EgovCmmUseService { + + @Resource(name = "cmmUseDAO") + private CmmUseDAO cmmUseDAO; + + /** + * 공통코드를 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + public List selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception { + return cmmUseDAO.selectCmmCodeDetail(vo); + } + + /** + * ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다. + * + * @param voList + * @return + * @throws Exception + */ + public Map> selectCmmCodeDetails(List voList) throws Exception { + ComDefaultCodeVO vo; + Map> map = new HashMap>(); + + Iterator iter = voList.iterator(); + while (iter.hasNext()) { + vo = (ComDefaultCodeVO)iter.next(); + map.put(vo.getCodeId(), cmmUseDAO.selectCmmCodeDetail(vo)); + } + + return map; + } + + /** + * 조직정보를 코드형태로 리턴한다. + * + * @param 조회조건정보 vo + * @return 조직정보 List + * @throws Exception + */ + public List selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception { + return cmmUseDAO.selectOgrnztIdDetail(vo); + } + + /** + * 그룹정보를 코드형태로 리턴한다. + * + * @param 조회조건정보 vo + * @return 그룹정보 List + * @throws Exception + */ + public List selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception { + return cmmUseDAO.selectGroupIdDetail(vo); + } +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java b/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java new file mode 100644 index 0000000..0358926 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java @@ -0,0 +1,36 @@ +/** + * + */ +package egovframework.com.cmm.service.impl; + +import egovframework.rte.psl.dataaccess.EgovAbstractDAO; + +import javax.annotation.Resource; + +import com.ibatis.sqlmap.client.SqlMapClient; + +/** + * EgovComAbstractDAO.java 클래스 + * + * @author 서준식 + * @since 2011. 9. 23. + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    -------------    ----------------------
+ *   2011. 9. 23.   서준식        최초 생성
+ * 
+ */ +public abstract class EgovComAbstractDAO extends EgovAbstractDAO{ + + @Resource(name="egov.sqlMapClient") + public void setSuperSqlMapClient(SqlMapClient sqlMapClient) { + super.setSuperSqlMapClient(sqlMapClient); + } + + +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovFileMngServiceImpl.java b/src/main/java/egovframework/com/cmm/service/impl/EgovFileMngServiceImpl.java new file mode 100644 index 0000000..9257998 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovFileMngServiceImpl.java @@ -0,0 +1,156 @@ +package egovframework.com.cmm.service.impl; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * @Class Name : EgovFileMngServiceImpl.java + * @Description : 파일정보의 관리를 위한 구현 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 25. 이삼섭 최초생성 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +@Service("EgovFileMngService") +public class EgovFileMngServiceImpl extends EgovAbstractServiceImpl implements EgovFileMngService { + + @Resource(name = "FileManageDAO") + private FileManageDAO fileMngDAO; + + /** + * 여러 개의 파일을 삭제한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#deleteFileInfs(java.util.List) + */ + public void deleteFileInfs(List fvoList) throws Exception { + fileMngDAO.deleteFileInfs(fvoList); + } + + /** + * 하나의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#insertFileInf(egovframework.com.cmm.service.FileVO) + */ + public String insertFileInf(FileVO fvo) throws Exception { + String atchFileId = fvo.getAtchFileId(); + + fileMngDAO.insertFileInf(fvo); + + return atchFileId; + } + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#insertFileInfs(java.util.List) + */ + public String insertFileInfs(List fvoList) throws Exception { + String atchFileId = ""; + + if (fvoList.size() != 0) { + atchFileId = fileMngDAO.insertFileInfs(fvoList); + } + if (atchFileId == "") { + atchFileId = null; + } + return atchFileId; + } + + /** + * 파일에 대한 목록을 조회한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#selectFileInfs(egovframework.com.cmm.service.FileVO) + */ + public List selectFileInfs(FileVO fvo) throws Exception { + return fileMngDAO.selectFileInfs(fvo); + } + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#updateFileInfs(java.util.List) + */ + public void updateFileInfs(List fvoList) throws Exception { + //Delete & Insert + fileMngDAO.updateFileInfs(fvoList); + } + + /** + * 하나의 파일을 삭제한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#deleteFileInf(egovframework.com.cmm.service.FileVO) + */ + public void deleteFileInf(FileVO fvo) throws Exception { + fileMngDAO.deleteFileInf(fvo); + } + + /** + * 파일에 대한 상세정보를 조회한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#selectFileInf(egovframework.com.cmm.service.FileVO) + */ + public FileVO selectFileInf(FileVO fvo) throws Exception { + return fileMngDAO.selectFileInf(fvo); + } + + /** + * 파일 구분자에 대한 최대값을 구한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#getMaxFileSN(egovframework.com.cmm.service.FileVO) + */ + public int getMaxFileSN(FileVO fvo) throws Exception { + return fileMngDAO.getMaxFileSN(fvo); + } + + /** + * 전체 파일을 삭제한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#deleteAllFileInf(egovframework.com.cmm.service.FileVO) + */ + public void deleteAllFileInf(FileVO fvo) throws Exception { + fileMngDAO.deleteAllFileInf(fvo); + } + + /** + * 파일명 검색에 대한 목록을 조회한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#selectFileListByFileNm(egovframework.com.cmm.service.FileVO) + */ + public Map selectFileListByFileNm(FileVO fvo) throws Exception { + List result = fileMngDAO.selectFileListByFileNm(fvo); + int cnt = fileMngDAO.selectFileListCntByFileNm(fvo); + + Map map = new HashMap(); + + map.put("resultList", result); + map.put("resultCnt", Integer.toString(cnt)); + + return map; + } + + /** + * 이미지 파일에 대한 목록을 조회한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#selectImageFileList(egovframework.com.cmm.service.FileVO) + */ + public List selectImageFileList(FileVO vo) throws Exception { + return fileMngDAO.selectImageFileList(vo); + } +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovTestUserDetailsServiceImpl.java b/src/main/java/egovframework/com/cmm/service/impl/EgovTestUserDetailsServiceImpl.java new file mode 100644 index 0000000..f64190a --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovTestUserDetailsServiceImpl.java @@ -0,0 +1,87 @@ +package egovframework.com.cmm.service.impl; + +import java.util.ArrayList; +import java.util.List; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovUserDetailsService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +/** + * + * @author 공통서비스 개발팀 서준식 + * @since 2011. 8. 12. + * @version 1.0 + * @see + * + *
+ * 개정이력(Modification Information)
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011. 8. 12.    서준식        최초생성
+ *
+ *  
+ */ + +public class EgovTestUserDetailsServiceImpl extends EgovAbstractServiceImpl implements + EgovUserDetailsService { + + @Override + public Object getAuthenticatedUser() { + + LoginVO loginVO = new LoginVO(); + loginVO.setId("TEST1"); + loginVO.setPassword("raHLBnHFcunwNzcDcfad4PhD11hHgXSUr7fc1Jk9uoQ="); + loginVO.setUserSe("USR"); + loginVO.setEmail("egovframe@nia.or.kr"); + loginVO.setIhidNum(""); + loginVO.setName("더미사용자"); + loginVO.setOrgnztId("ORGNZT_0000000000000"); + loginVO.setUniqId("USRCNFRM_00000000000"); + return loginVO; + + // return + // RequestContextHolder.getRequestAttributes().getAttribute("loginVO", + // RequestAttributes.SCOPE_SESSION); + + } + + @Override + public List getAuthorities() { + + // 권한 설정을 리턴한다. + + List listAuth = new ArrayList(); + listAuth.add("IS_AUTHENTICATED_ANONYMOUSLY"); + listAuth.add("IS_AUTHENTICATED_FULLY"); + listAuth.add("IS_AUTHENTICATED_REMEMBERED"); + listAuth.add("ROLE_ADMIN"); + listAuth.add("ROLE_ANONYMOUS"); + listAuth.add("ROLE_RESTRICTED"); + listAuth.add("ROLE_USER"); + + return listAuth; + } + + @Override + public Boolean isAuthenticated() { + // 인증된 유저인지 확인한다. + + /*if (RequestContextHolder.getRequestAttributes() == null) { + return false; + } else { + + if (RequestContextHolder.getRequestAttributes().getAttribute( + "loginVO", RequestAttributes.SCOPE_SESSION) == null) { + return false; + } else { + return true; + } + }*/ + + return true; + } + +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovUserDetailsSessionServiceImpl.java b/src/main/java/egovframework/com/cmm/service/impl/EgovUserDetailsSessionServiceImpl.java new file mode 100644 index 0000000..a23c5b9 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovUserDetailsSessionServiceImpl.java @@ -0,0 +1,65 @@ +package egovframework.com.cmm.service.impl; + +import java.util.ArrayList; +import java.util.List; + +import egovframework.com.cmm.service.EgovUserDetailsService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; + +/** + * + * @author 공통서비스 개발팀 서준식 + * @since 2011. 6. 25. + * @version 1.0 + * @see + * + *
+ * 개정이력(Modification Information) 
+ * 
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011. 8. 12.    서준식        최초생성
+ *  
+ *  
+ */ + +public class EgovUserDetailsSessionServiceImpl extends EgovAbstractServiceImpl implements EgovUserDetailsService { + + public Object getAuthenticatedUser() { + if (RequestContextHolder.getRequestAttributes() == null) { + return null; + } + + return RequestContextHolder.getRequestAttributes().getAttribute("loginVO", RequestAttributes.SCOPE_SESSION); + + } + + public List getAuthorities() { + + // 권한 설정을 리턴한다. + List listAuth = new ArrayList(); + + return listAuth; + } + + public Boolean isAuthenticated() { + // 인증된 유저인지 확인한다. + + if (RequestContextHolder.getRequestAttributes() == null) { + return false; + } else { + + if (RequestContextHolder.getRequestAttributes().getAttribute("loginVO", RequestAttributes.SCOPE_SESSION) == null) { + return false; + } else { + return true; + } + } + + } + +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/FileManageDAO.java b/src/main/java/egovframework/com/cmm/service/impl/FileManageDAO.java new file mode 100644 index 0000000..6458880 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/FileManageDAO.java @@ -0,0 +1,181 @@ +package egovframework.com.cmm.service.impl; + +import java.util.Iterator; +import java.util.List; + +import egovframework.com.cmm.service.FileVO; + +import org.springframework.stereotype.Repository; + +/** + * @Class Name : EgovFileMngDAO.java + * @Description : 파일정보 관리를 위한 데이터 처리 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 25. 이삼섭 최초생성 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +@Repository("FileManageDAO") +public class FileManageDAO extends EgovComAbstractDAO { + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @param fileList + * @return + * @throws Exception + */ + public String insertFileInfs(List fileList) throws Exception { + FileVO vo = (FileVO) fileList.get(0); + String atchFileId = vo.getAtchFileId(); + + insert("FileManageDAO.insertFileMaster", vo); + + Iterator iter = fileList.iterator(); + while (iter.hasNext()) { + vo = (FileVO) iter.next(); + + insert("FileManageDAO.insertFileDetail", vo); + } + + return atchFileId; + } + + /** + * 하나의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @param vo + * @throws Exception + */ + public void insertFileInf(FileVO vo) throws Exception { + insert("FileManageDAO.insertFileMaster", vo); + insert("FileManageDAO.insertFileDetail", vo); + } + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다. + * + * @param fileList + * @throws Exception + */ + public void updateFileInfs(List fileList) throws Exception { + FileVO vo; + Iterator iter = fileList.iterator(); + while (iter.hasNext()) { + vo = (FileVO) iter.next(); + insert("FileManageDAO.insertFileDetail", vo); + } + } + + /** + * 여러 개의 파일을 삭제한다. + * + * @param fileList + * @throws Exception + */ + public void deleteFileInfs(List fileList) throws Exception { + Iterator iter = fileList.iterator(); + FileVO vo; + while (iter.hasNext()) { + vo = (FileVO) iter.next(); + + delete("FileManageDAO.deleteFileDetail", vo); + } + } + + /** + * 하나의 파일을 삭제한다. + * + * @param fvo + * @throws Exception + */ + public void deleteFileInf(FileVO fvo) throws Exception { + delete("FileManageDAO.deleteFileDetail", fvo); + } + + /** + * 파일에 대한 목록을 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectFileInfs(FileVO vo) throws Exception { + return (List) list("FileManageDAO.selectFileList", vo); + } + + /** + * 파일 구분자에 대한 최대값을 구한다. + * + * @param fvo + * @return + * @throws Exception + */ + public int getMaxFileSN(FileVO fvo) throws Exception { + return (Integer) select("FileManageDAO.getMaxFileSN", fvo); + } + + /** + * 파일에 대한 상세정보를 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public FileVO selectFileInf(FileVO fvo) throws Exception { + return (FileVO) select("FileManageDAO.selectFileInf", fvo); + } + + /** + * 전체 파일을 삭제한다. + * + * @param fvo + * @throws Exception + */ + public void deleteAllFileInf(FileVO fvo) throws Exception { + update("FileManageDAO.deleteCOMTNFILE", fvo); + } + + /** + * 파일명 검색에 대한 목록을 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectFileListByFileNm(FileVO fvo) throws Exception { + return (List) list("FileManageDAO.selectFileListByFileNm", fvo); + } + + /** + * 파일명 검색에 대한 목록 전체 건수를 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public int selectFileListCntByFileNm(FileVO fvo) throws Exception { + return (Integer) select("FileManageDAO.selectFileListCntByFileNm", fvo); + } + + /** + * 이미지 파일에 대한 목록을 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectImageFileList(FileVO vo) throws Exception { + return (List) list("FileManageDAO.selectImageFileList", vo); + } +} diff --git a/src/main/java/egovframework/com/cmm/taglibs/DoubleSubmitTag.java b/src/main/java/egovframework/com/cmm/taglibs/DoubleSubmitTag.java new file mode 100644 index 0000000..95a750a --- /dev/null +++ b/src/main/java/egovframework/com/cmm/taglibs/DoubleSubmitTag.java @@ -0,0 +1,88 @@ +package egovframework.com.cmm.taglibs; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import egovframework.com.cmm.util.EgovDoubleSubmitHelper; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.servlet.jsp.JspException; +import javax.servlet.jsp.JspTagException; +import javax.servlet.jsp.tagext.TagSupport; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * TagSupport to support to double submit preventer + * @author Vincent Han + * @since 2014.08.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.08.07	표준프레임워크센터	최초 생성
+ *
+ * 
+ */ +public class DoubleSubmitTag extends TagSupport { + private static final Logger LOGGER = LoggerFactory.getLogger(DoubleSubmitTag.class); + + /** + * Generated Serial Version UID + */ + private static final long serialVersionUID = 5242217605452312594L; + + private String tokenKey = EgovDoubleSubmitHelper.DEFAULT_TOKEN_KEY; + + public String getTokenKey() { + return tokenKey; + } + + public void setTokenKey(String tokenKey) { + this.tokenKey = tokenKey; + } + + @SuppressWarnings("unchecked") + public int doStartTag() throws JspException { + StringBuilder buffer = new StringBuilder(); + + HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); + HttpSession session = request.getSession(); + + Map map = null; + + if (session.getAttribute(EgovDoubleSubmitHelper.SESSION_TOKEN_KEY) == null) { + map = new HashMap(); + + session.setAttribute(EgovDoubleSubmitHelper.SESSION_TOKEN_KEY, map); + } else { + map = (Map) session.getAttribute(EgovDoubleSubmitHelper.SESSION_TOKEN_KEY); + } + + // First call (check session) + if (map.get(tokenKey) == null) { + + map.put(tokenKey, EgovDoubleSubmitHelper.getNewUUID()); + + LOGGER.debug("[Double Submit] session token created({}) : {}", tokenKey, map.get(tokenKey)); + } + + buffer.append(""); + + try { + pageContext.getOut().print(buffer.toString()); + } catch (IOException e) { + throw new JspTagException("Error: IOException while writing to the user"); + } + + return SKIP_BODY; + } + +} diff --git a/src/main/java/egovframework/com/cmm/util/EgovBasicLogger.java b/src/main/java/egovframework/com/cmm/util/EgovBasicLogger.java new file mode 100644 index 0000000..5911261 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/util/EgovBasicLogger.java @@ -0,0 +1,83 @@ +package egovframework.com.cmm.util; + +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Utility class to support to logging information + * @author Vincent Han + * @since 2014.09.18 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.09.18	표준프레임워크센터	최초 생성
+ *
+ * 
+ */ +public class EgovBasicLogger { + private static final Level IGNORE_INFO_LEVEL = Level.OFF; + private static final Level DEBUG_INFO_LEVEL = Level.FINEST; + private static final Level INFO_INFO_LEVEL = Level.INFO; + + private static final Logger ignoreLogger = Logger.getLogger("ignore"); + private static final Logger debugLogger = Logger.getLogger("debug"); + private static final Logger infoLogger = Logger.getLogger("info"); + + /** + * 기록이나 처리가 불필요한 경우 사용. + * @param message + * @param exception + */ + public static void ignore(String message, Exception exception) { + if (exception == null) { + ignoreLogger.log(IGNORE_INFO_LEVEL, message); + } else { + ignoreLogger.log(IGNORE_INFO_LEVEL, message, exception); + } + } + + /** + * 기록이나 처리가 불필요한 경우 사용. + * @param message + * @param exception + */ + public static void ignore(String message) { + ignore(message, null); + } + + /** + * 디버그 정보를 기록하는 경우 사용. + * @param message + * @param exception + */ + public static void debug(String message, Exception exception) { + if (exception == null) { + debugLogger.log(DEBUG_INFO_LEVEL, message); + } else { + debugLogger.log(DEBUG_INFO_LEVEL, message, exception); + } + } + + /** + * 디버그 정보를 기록하는 경우 사용. + * @param message + * @param exception + */ + public static void debug(String message) { + debug(message, null); + } + + /** + * 일반적이 정보를 기록하는 경우 사용. + * @param message + * @param exception + */ + public static void info(String message) { + infoLogger.log(INFO_INFO_LEVEL, message); + } +} diff --git a/src/main/java/egovframework/com/cmm/util/EgovDoubleSubmitHelper.java b/src/main/java/egovframework/com/cmm/util/EgovDoubleSubmitHelper.java new file mode 100644 index 0000000..672087e --- /dev/null +++ b/src/main/java/egovframework/com/cmm/util/EgovDoubleSubmitHelper.java @@ -0,0 +1,80 @@ +package egovframework.com.cmm.util; + +import java.util.Map; +import java.util.UUID; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +/** + * Utility class to support to double submit preventer + * @author Vincent Han + * @since 2014.08.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.08.07	표준프레임워크센터	최초 생성
+ *
+ * 
+ */ +public class EgovDoubleSubmitHelper { + private static final Logger LOGGER = LoggerFactory.getLogger(EgovDoubleSubmitHelper.class); + + public final static String SESSION_TOKEN_KEY = "egovframework.double.submit.preventer.session.key"; + + public final static String PARAMETER_NAME = "egovframework.double.submit.preventer.parameter.name"; + + public final static String DEFAULT_TOKEN_KEY = "DEFAULT"; + + public static String getNewUUID() { + return UUID.randomUUID().toString().toUpperCase(); + } + + public static boolean checkAndSaveToken() { + return checkAndSaveToken(DEFAULT_TOKEN_KEY); + } + + public static boolean checkAndSaveToken(String tokenKey) { + + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + HttpSession session = request.getSession(); + + // check session... + if (session.getAttribute(EgovDoubleSubmitHelper.SESSION_TOKEN_KEY) == null) { + throw new RuntimeException("Double Submit Preventer TagLig isn't set. Check JSP."); + } + + String parameter = request.getParameter(EgovDoubleSubmitHelper.PARAMETER_NAME); + + // check parameter + if (parameter == null) { + throw new RuntimeException("Double Submit Preventer parameter isn't set. Check JSP."); + } + + @SuppressWarnings("unchecked") + Map map = (Map) session.getAttribute(EgovDoubleSubmitHelper.SESSION_TOKEN_KEY); + + if (parameter.equals(map.get(tokenKey))) { + + LOGGER.debug("[Double Submit] session token ({}) equals to parameter token.", tokenKey); + + map.put(tokenKey, getNewUUID()); + + return true; + } + + LOGGER.debug("[Double Submit] session token ({}) isn't equal to parameter token.", tokenKey); + + return false; + } +} diff --git a/src/main/java/egovframework/com/cmm/util/EgovHttpRequestHelper.java b/src/main/java/egovframework/com/cmm/util/EgovHttpRequestHelper.java new file mode 100644 index 0000000..4da5ef4 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/util/EgovHttpRequestHelper.java @@ -0,0 +1,56 @@ +package egovframework.com.cmm.util; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +/** + * @Class Name : EgovHttpRequestHelper.java + * @Description : HTTP Request 정보 취득 Helper 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2014.09.11 표준프레임워크 최초생성 +* @author Vincent Han + * @since 2014.09.11 + * @version 3.5 + * @see
+ * web.xml 상에 다음과 같은 Listener 등록 필요
+ * <listener>
+ *	  <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
+ * </listener>
+ * 
+ */ +public class EgovHttpRequestHelper { + + public static boolean isInHttpRequest() { + try { + getCurrentRequest(); + } catch (IllegalStateException ise) { + return false; + } + + return true; + } + + public static HttpServletRequest getCurrentRequest() { + ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes(); + + return sra.getRequest(); + } + + public static String getRequestIp() { + return getCurrentRequest().getRemoteAddr(); + } + + public static String getRequestURI() { + return getCurrentRequest().getRequestURI(); + } + + public static HttpSession getCurrentSession() { + return getCurrentRequest().getSession(); + } +} diff --git a/src/main/java/egovframework/com/cmm/util/EgovResourceCloseHelper.java b/src/main/java/egovframework/com/cmm/util/EgovResourceCloseHelper.java new file mode 100644 index 0000000..75fb2ce --- /dev/null +++ b/src/main/java/egovframework/com/cmm/util/EgovResourceCloseHelper.java @@ -0,0 +1,126 @@ +package egovframework.com.cmm.util; + +import java.io.Closeable; +import java.net.ServerSocket; +import java.net.Socket; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Statement; +import java.sql.Wrapper; + +/** + * Utility class to support to close resources + * @author Vincent Han + * @since 2014.09.18 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일        수정자       수정내용
+ *  -------       --------    ---------------------------
+ *   2014.09.18	표준프레임워크센터	최초 생성
+ *
+ * 
+ */ +public class EgovResourceCloseHelper { + /** + * Resource close 처리. + * @param resources + */ + public static void close(Closeable ... resources) { + for (Closeable resource : resources) { + if (resource != null) { + try { + resource.close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); + } + } + } + } + + /** + * JDBC 관련 resource 객체 close 처리 + * @param objects + */ + public static void closeDBObjects(Wrapper ... objects) { + for (Object object : objects) { + if (object != null) { + if (object instanceof ResultSet) { + try { + ((ResultSet)object).close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); + } + } else if (object instanceof Statement) { + try { + ((Statement)object).close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); + } + } else if (object instanceof Connection) { + try { + ((Connection)object).close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!"); + } + } else { + throw new IllegalArgumentException("Wrapper type is not found : " + object.toString()); + } + } + } + } + + /** + * Socket 관련 resource 객체 close 처리 + * @param objects + */ + public static void closeSocketObjects(Socket socket, ServerSocket server) { + if (socket != null) { + try { + socket.shutdownOutput(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to shutdown ouput is ignored!!"); + } + + try { + socket.close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); + } + } + + if (server != null) { + try { + server.close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); + } + } + } + + /** + * Socket 관련 resource 객체 close 처리 + * + * @param sockets + */ + public static void closeSockets(Socket ... sockets) { + for (Socket socket : sockets) { + if (socket != null) { + try { + socket.shutdownOutput(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to shutdown ouput is ignored!!"); + } + + try { + socket.close(); + } catch (Exception ignore) { + EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!"); + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/cmm/util/EgovUrlRewriteFilter.java b/src/main/java/egovframework/com/cmm/util/EgovUrlRewriteFilter.java new file mode 100644 index 0000000..0af1b96 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/util/EgovUrlRewriteFilter.java @@ -0,0 +1,109 @@ +package egovframework.com.cmm.util; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.util.AntPathMatcher; + +/** + * @Class Name : UrlRewriteFilter.java + * @Description : UrlRewriteFilter Class + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ --------- --------- ------------------------------- + * @ 2014.09.30 최초생성 + * + * @author 전자정부 표준프레임워크 유지보수 + * @since 2014. 09.30 + * @version 1.0 + * @see + * + * Copyright (C) by MOPAS All right reserved. + */ +public class EgovUrlRewriteFilter implements Filter { + + @SuppressWarnings("unused") + private FilterConfig config; + + private String targetURI; + private String httpsPort; + private String httpPort; + + private String[] uriPatterns; + + @Override + public void init(FilterConfig config) throws ServletException { + + String delimiter = ","; + this.config = config; + + this.targetURI = config.getInitParameter("targetURI"); + this.httpsPort = config.getInitParameter("httpsPort"); + this.httpPort = config.getInitParameter("httpPort"); + + this.uriPatterns = targetURI.split(delimiter); + + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { + + HttpServletRequest req = (HttpServletRequest) request; + HttpServletResponse res = (HttpServletResponse) response; + + String uri = req.getRequestURI(); + String getProtocol = req.getScheme(); + String getDomain = req.getServerName(); + + AntPathMatcher pm = new AntPathMatcher(); + + for (String uriPattern : uriPatterns) { + + if (pm.match(uriPattern.trim(), uri)) { + + if (getProtocol.toLowerCase().equals("http")) { + + response.setContentType("text/html"); + + String httpsPath = "https" + "://" + getDomain + ":" + httpsPort + uri; + String site = new String(httpsPath); + res.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); + res.setHeader("Location", site); + + } + + }else if(getProtocol.toLowerCase().equals("https")){ + + response.setContentType("text/html"); + + String httpPath = "http" + "://" + getDomain + ":" + httpPort + uri; + + String site = new String(httpPath); + res.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); + res.setHeader("Location", site); + + } + } + + chain.doFilter(req, res); + + } + + @Override + public void destroy() { + this.targetURI = null; + this.httpsPort = null; + this.httpPort = null; + this.uriPatterns = null; + } + +} diff --git a/src/main/java/egovframework/com/cmm/util/EgovUserDetailsHelper.java b/src/main/java/egovframework/com/cmm/util/EgovUserDetailsHelper.java new file mode 100644 index 0000000..0f67b14 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/util/EgovUserDetailsHelper.java @@ -0,0 +1,61 @@ +package egovframework.com.cmm.util; + +import java.util.List; + +import egovframework.com.cmm.service.EgovUserDetailsService; + +/** + * EgovUserDetails Helper 클래스 + * + * @author sjyoon + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    -------------    ----------------------
+ *   2009.03.10  sjyoon         최초 생성
+ *   2011.07.01	 서준식          interface 생성후 상세 로직의 분리
+ * 
+ */ + +public class EgovUserDetailsHelper { + + static EgovUserDetailsService egovUserDetailsService; + + public EgovUserDetailsService getEgovUserDetailsService() { + return egovUserDetailsService; + } + + public void setEgovUserDetailsService(EgovUserDetailsService egovUserDetailsService) { + EgovUserDetailsHelper.egovUserDetailsService = egovUserDetailsService; + } + + /** + * 인증된 사용자객체를 VO형식으로 가져온다. + * @return Object - 사용자 ValueObject + */ + public static Object getAuthenticatedUser() { + return egovUserDetailsService.getAuthenticatedUser(); + } + + /** + * 인증된 사용자의 권한 정보를 가져온다. + * + * @return List - 사용자 권한정보 목록 + */ + public static List getAuthorities() { + return egovUserDetailsService.getAuthorities(); + } + + /** + * 인증된 사용자 여부를 체크한다. + * @return Boolean - 인증된 사용자 여부(TRUE / FALSE) + */ + public static Boolean isAuthenticated() { + return egovUserDetailsService.isAuthenticated(); + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovBindingInitializer.java b/src/main/java/egovframework/com/cmm/web/EgovBindingInitializer.java new file mode 100644 index 0000000..33a1ab4 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovBindingInitializer.java @@ -0,0 +1,22 @@ +package egovframework.com.cmm.web; + +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.springframework.beans.propertyeditors.CustomDateEditor; +import org.springframework.beans.propertyeditors.StringTrimmerEditor; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.support.WebBindingInitializer; +import org.springframework.web.context.request.WebRequest; + +public class EgovBindingInitializer implements WebBindingInitializer { + + + public void initBinder(WebDataBinder binder, WebRequest request) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + dateFormat.setLenient(false); + binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); + binder.registerCustomEditor(String.class, new StringTrimmerEditor(false)); + } + +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovComIndexController.java b/src/main/java/egovframework/com/cmm/web/EgovComIndexController.java new file mode 100644 index 0000000..c102aea --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovComIndexController.java @@ -0,0 +1,169 @@ +package egovframework.com.cmm.web; + +/** + * 컴포넌트 설치 후 설치된 컴포넌트들을 IncludedInfo annotation을 통해 찾아낸 후 + * 화면에 표시할 정보를 처리하는 Controller 클래스 + * + * 개발시 메뉴 구조가 잡히기 전에 배포파일들에 포함된 공통 컴포넌트들의 목록성 화면에 + * URL을 제공하여 개발자가 편하게 활용하도록 하기 위해 작성된 것으로, + * 실제 운영되는 시스템에서는 적용해서는 안 됨 + * 실 운영 시에는 삭제해서 배포해도 좋음 + * + * 운영시에 본 컨트롤을 사용하여 메뉴를 구성하는 경우 성능 문제를 일으키거나 + * 사용자별 메뉴 구성에 오류를 발생할 수 있음 + * @author 공통컴포넌트 정진오 + * @since 2011.08.26 + * @version 2.0.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *  수정일		수정자		수정내용
+ *  -------    	--------    ---------------------------
+ *  2011.08.26	정진오 		최초 생성
+ *  2011.09.16  서준식		컨텐츠 페이지 생성
+ *  2011.09.26  이기하		header, footer 페이지 생성
+ * 
+ */ + +import java.lang.reflect.Method; +import java.util.Map; +import java.util.TreeMap; + +import egovframework.com.cmm.IncludedCompInfoVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class EgovComIndexController implements ApplicationContextAware, InitializingBean { + + private ApplicationContext applicationContext; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovComIndexController.class); + + private Map map; + + public void afterPropertiesSet() throws Exception {} + + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.applicationContext = applicationContext; + + LOGGER.info("EgovComIndexController setApplicationContext method has called!"); + } + + @RequestMapping("/index.do") + public String index(ModelMap model) { + return "egovframework/com/cmm/EgovUnitMain"; + } + + @RequestMapping("/EgovTop.do") + public String top() { + return "egovframework/com/cmm/EgovUnitTop"; + } + + @RequestMapping("/EgovBottom.do") + public String bottom() { + return "egovframework/com/cmm/EgovUnitBottom"; + } + + @RequestMapping("/EgovContent.do") + public String setContent(ModelMap model) { + + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("loginVO", loginVO); + + return "egovframework/com/cmm/EgovUnitContent"; + } + + @RequestMapping("/EgovLeft.do") + public String setLeftMenu(ModelMap model) { + + /* 최초 한 번만 실행하여 map에 저장해 놓는다. */ + if (map == null) { + map = new TreeMap(); + RequestMapping rmAnnotation; + IncludedInfo annotation; + IncludedCompInfoVO zooVO; + + /* + * EgovLoginController가 AOP Proxy되는 바람에 클래스를 reflection으로 가져올 수 없음 + */ + try { + Class loginController = Class.forName("egovframework.com.uat.uia.web.EgovLoginController"); + Method[] methods = loginController.getMethods(); + for (int i = 0; i < methods.length; i++) { + annotation = methods[i].getAnnotation(IncludedInfo.class); + + if (annotation != null) { + LOGGER.debug("Found @IncludedInfo Method : {}", methods[i]); + zooVO = new IncludedCompInfoVO(); + zooVO.setName(annotation.name()); + zooVO.setOrder(annotation.order()); + zooVO.setGid(annotation.gid()); + + rmAnnotation = methods[i].getAnnotation(RequestMapping.class); + if ("".equals(annotation.listUrl()) && rmAnnotation != null) { + zooVO.setListUrl(rmAnnotation.value()[0]); + } else { + zooVO.setListUrl(annotation.listUrl()); + } + map.put(zooVO.getOrder(), zooVO); + } + } + } catch (ClassNotFoundException e) { + LOGGER.error("No egovframework.com.uat.uia.web.EgovLoginController!!"); + } + /* 여기까지 AOP Proxy로 인한 코드 */ + + /*@Controller Annotation 처리된 클래스를 모두 찾는다.*/ + Map myZoos = applicationContext.getBeansWithAnnotation(Controller.class); + LOGGER.debug("How many Controllers : ", myZoos.size()); + for (final Object myZoo : myZoos.values()) { + Class zooClass = myZoo.getClass(); + + Method[] methods = zooClass.getMethods(); + LOGGER.debug("Controller Detected {}", zooClass); + for (int i = 0; i < methods.length; i++) { + annotation = methods[i].getAnnotation(IncludedInfo.class); + + if (annotation != null) { + //LOG.debug("Found @IncludedInfo Method : " + methods[i] ); + zooVO = new IncludedCompInfoVO(); + zooVO.setName(annotation.name()); + zooVO.setOrder(annotation.order()); + zooVO.setGid(annotation.gid()); + /* + * 목록형 조회를 위한 url 매핑은 @IncludedInfo나 @RequestMapping에서 가져온다 + */ + rmAnnotation = methods[i].getAnnotation(RequestMapping.class); + if ("".equals(annotation.listUrl())) { + zooVO.setListUrl(rmAnnotation.value()[0]); + } else { + zooVO.setListUrl(annotation.listUrl()); + } + + map.put(zooVO.getOrder(), zooVO); + } + } + } + } + + model.addAttribute("resultList", map.values()); + + LOGGER.debug("EgovComIndexController index is called "); + + return "egovframework/com/cmm/EgovUnitLeft"; + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovComUtlController.java b/src/main/java/egovframework/com/cmm/web/EgovComUtlController.java new file mode 100644 index 0000000..a42a96c --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovComUtlController.java @@ -0,0 +1,58 @@ +package egovframework.com.cmm.web; + +import egovframework.rte.fdl.property.EgovPropertyService; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @Class Name : EgovComUtlController.java + * @Description : 공통유틸리티성 작업을 위한 Controller + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.02 조재영 최초 생성 + * @ 2011.10.07 이기하 .action -> .do로 변경하면서 동일 매핑이 되어 삭제처리 + * + * @author 공통서비스 개발팀 조재영 + * @since 2009.03.02 + * @version 1.0 + * @see + * + */ +@Controller +public class EgovComUtlController { + + //@Resource(name = "egovUserManageService") + //private EgovUserManageService egovUserManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** + * JSP 호출작업만 처리하는 공통 함수 + */ + @RequestMapping(value="/EgovPageLink.do") + public String moveToPage(@RequestParam("link") String linkPage){ + String link = linkPage; + // service 사용하여 리턴할 결과값 처리하는 부분은 생략하고 단순 페이지 링크만 처리함 + if (linkPage==null || linkPage.equals("")){ + link="egovframework/com/cmm/egovError"; + } + return link; + } + + /** + * validato rule dynamic Javascript + */ + @RequestMapping("/validator.do") + public String validate(){ + return "egovframework/com/cmm/validator"; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/cmm/web/EgovFileDownloadController.java b/src/main/java/egovframework/com/cmm/web/EgovFileDownloadController.java new file mode 100644 index 0000000..50bc29a --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovFileDownloadController.java @@ -0,0 +1,188 @@ +package egovframework.com.cmm.web; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLEncoder; +import java.util.Map; + +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; +import egovframework.com.cmm.util.EgovBasicLogger; +import egovframework.com.cmm.util.EgovResourceCloseHelper; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Controller; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 파일 다운로드를 위한 컨트롤러 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *     수정일      	수정자           수정내용
+ *  ------------   --------    ---------------------------
+ *   2009.03.25  	이삼섭          최초 생성
+ *   2014.02.24		이기하          IE11 브라우저 한글 파일 다운로드시 에러 수정
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Controller +public class EgovFileDownloadController { + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + /** + * 브라우저 구분 얻기. + * + * @param request + * @return + */ + private String getBrowser(HttpServletRequest request) { + String header = request.getHeader("User-Agent"); + if (header.indexOf("MSIE") > -1) { + return "MSIE"; + } else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지 + return "Trident"; + } else if (header.indexOf("Chrome") > -1) { + return "Chrome"; + } else if (header.indexOf("Opera") > -1) { + return "Opera"; + } + return "Firefox"; + } + + /** + * Disposition 지정하기. + * + * @param filename + * @param request + * @param response + * @throws Exception + */ + private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception { + String browser = getBrowser(request); + + String dispositionPrefix = "attachment; filename="; + String encodedFilename = null; + + if (browser.equals("MSIE")) { + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지 + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Firefox")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Opera")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Chrome")) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < filename.length(); i++) { + char c = filename.charAt(i); + if (c > '~') { + sb.append(URLEncoder.encode("" + c, "UTF-8")); + } else { + sb.append(c); + } + } + encodedFilename = sb.toString(); + } else { + throw new IOException("Not supported browser"); + } + + response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); + + if ("Opera".equals(browser)) { + response.setContentType("application/octet-stream;charset=UTF-8"); + } + } + + /** + * 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다. + * + * @param commandMap + * @param response + * @throws Exception + */ + @RequestMapping(value = "/cmm/fms/FileDown.do") + public void cvplFileDownload(@RequestParam Map commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception { + + String atchFileId = (String) commandMap.get("atchFileId"); + String fileSn = (String) commandMap.get("fileSn"); + + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + + if (isAuthenticated) { + + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(atchFileId); + fileVO.setFileSn(fileSn); + FileVO fvo = fileService.selectFileInf(fileVO); + + File uFile = new File(fvo.getFileStreCours(), fvo.getStreFileNm()); + long fSize = uFile.length(); + + if (fSize > 0) { + String mimetype = "application/x-msdownload"; + + //response.setBufferSize(fSize); // OutOfMemeory 발생 + response.setContentType(mimetype); + //response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fvo.getOrignlFileNm(), "utf-8") + "\""); + setDisposition(fvo.getOrignlFileNm(), request, response); + //response.setContentLength(fSize); + + /* + * FileCopyUtils.copy(in, response.getOutputStream()); + * in.close(); + * response.getOutputStream().flush(); + * response.getOutputStream().close(); + */ + BufferedInputStream in = null; + BufferedOutputStream out = null; + + try { + in = new BufferedInputStream(new FileInputStream(uFile)); + out = new BufferedOutputStream(response.getOutputStream()); + + FileCopyUtils.copy(in, out); + out.flush(); + } catch (IOException ex) { + // 다음 Exception 무시 처리 + // Connection reset by peer: socket write error + EgovBasicLogger.ignore("IO Exception", ex); + } finally { + EgovResourceCloseHelper.close(in, out); + } + + } else { + response.setContentType("application/x-msdownload"); + + PrintWriter printwriter = response.getWriter(); + + printwriter.println(""); + printwriter.println("


Could not get file name:
" + fvo.getOrignlFileNm() + "

"); + printwriter.println("


Back

"); + printwriter.println("


© webAccess"); + printwriter.println(""); + + printwriter.flush(); + printwriter.close(); + } + } + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovFileMngController.java b/src/main/java/egovframework/com/cmm/web/EgovFileMngController.java new file mode 100644 index 0000000..671f9bb --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovFileMngController.java @@ -0,0 +1,159 @@ +package egovframework.com.cmm.web; + +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 파일 조회, 삭제, 다운로드 처리를 위한 컨트롤러 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.3.25  이삼섭          최초 생성
+ *
+ * 
+ */ +@Controller +public class EgovFileMngController { + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + /** + * 첨부파일에 대한 목록을 조회한다. + * + * @param fileVO + * @param atchFileId + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/selectFileInfs.do") + public String selectFileInfs(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map commandMap, ModelMap model) throws Exception { + String atchFileId = (String)commandMap.get("param_atchFileId"); + + fileVO.setAtchFileId(atchFileId); + List result = fileService.selectFileInfs(fileVO); + + model.addAttribute("fileList", result); + model.addAttribute("updateFlag", "N"); + model.addAttribute("fileListCnt", result.size()); + model.addAttribute("atchFileId", atchFileId); + + return "egovframework/com/cmm/fms/EgovFileList"; + } + + /** + * 첨부파일 변경을 위한 수정페이지로 이동한다. + * + * @param fileVO + * @param atchFileId + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/selectFileInfsForUpdate.do") + public String selectFileInfsForUpdate(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map commandMap, + //SessionVO sessionVO, + ModelMap model) throws Exception { + + String atchFileId = (String)commandMap.get("param_atchFileId"); + + fileVO.setAtchFileId(atchFileId); + + List result = fileService.selectFileInfs(fileVO); + + model.addAttribute("fileList", result); + model.addAttribute("updateFlag", "Y"); + model.addAttribute("fileListCnt", result.size()); + model.addAttribute("atchFileId", atchFileId); + + return "egovframework/com/cmm/fms/EgovFileList"; + } + + /** + * 첨부파일에 대한 삭제를 처리한다. + * + * @param fileVO + * @param returnUrl + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/deleteFileInfs.do") + public String deleteFileInf(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam("returnUrl") String returnUrl, + //SessionVO sessionVO, + HttpServletRequest request, + ModelMap model) throws Exception { + + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + + if (isAuthenticated) { + fileService.deleteFileInf(fileVO); + } + + //-------------------------------------------- + // contextRoot가 있는 경우 제외 시켜야 함 + //-------------------------------------------- + ////return "forward:/cmm/fms/selectFileInfs.do"; + //return "forward:" + returnUrl; + + if ("".equals(request.getContextPath()) || "/".equals(request.getContextPath())) { + return "forward:" + returnUrl; + } + + if (returnUrl.startsWith(request.getContextPath())) { + return "forward:" + returnUrl.substring(returnUrl.indexOf("/", 1)); + } else { + return "forward:" + returnUrl; + } + ////------------------------------------------ + } + + /** + * 이미지 첨부파일에 대한 목록을 조회한다. + * + * @param fileVO + * @param atchFileId + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/selectImageFileInfs.do") + public String selectImageFileInfs(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam Map commandMap, + //SessionVO sessionVO, + ModelMap model) throws Exception { + + String atchFileId = (String)commandMap.get("atchFileId"); + + fileVO.setAtchFileId(atchFileId); + List result = fileService.selectImageFileList(fileVO); + + model.addAttribute("fileList", result); + + return "egovframework/com/cmm/fms/EgovImgFileList"; + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovImageProcessController.java b/src/main/java/egovframework/com/cmm/web/EgovImageProcessController.java new file mode 100644 index 0000000..0cd6b48 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovImageProcessController.java @@ -0,0 +1,131 @@ +package egovframework.com.cmm.web; + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.util.Map; + +import egovframework.com.cmm.SessionVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + + +/** + * @Class Name : EgovImageProcessController.java + * @Description : + * @Modification Information + * + * 수정일 수정자 수정내용 + * ---------- --------- ------------------- + * 2009.04.02 이삼섭 최초생성 + * 2014.03.31 유지보수 fileSn 오류수정 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 4. 2. + * @version + * @see + * + */ +@SuppressWarnings("serial") +@Controller +public class EgovImageProcessController extends HttpServlet { + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovImageProcessController.class); + + /** + * 첨부된 이미지에 대한 미리보기 기능을 제공한다. + * + * @param atchFileId + * @param fileSn + * @param sessionVO + * @param model + * @param response + * @throws Exception + */ + @RequestMapping("/cmm/fms/getImage.do") + public void getImageInf(SessionVO sessionVO, ModelMap model, @RequestParam Map commandMap, HttpServletResponse response) throws Exception { + + //@RequestParam("atchFileId") String atchFileId, + //@RequestParam("fileSn") String fileSn, + String atchFileId = (String)commandMap.get("atchFileId"); + String fileSn = (String)commandMap.get("fileSn"); + + FileVO vo = new FileVO(); + + vo.setAtchFileId(atchFileId); + vo.setFileSn(fileSn); + + //------------------------------------------------------------ + // fileSn이 없는 경우 마지막 파일 참조 + //------------------------------------------------------------ + if (fileSn == null || fileSn.equals("")) { + int newMaxFileSN = fileService.getMaxFileSN(vo); + vo.setFileSn(Integer.toString(newMaxFileSN - 1)); + } + //------------------------------------------------------------ + + FileVO fvo = fileService.selectFileInf(vo); + + //String fileLoaction = fvo.getFileStreCours() + fvo.getStreFileNm(); + + File file = null; + FileInputStream fis = null; + + BufferedInputStream in = null; + ByteArrayOutputStream bStream = null; + + try { + file = new File(fvo.getFileStreCours(), fvo.getStreFileNm()); + fis = new FileInputStream(file); + + in = new BufferedInputStream(fis); + bStream = new ByteArrayOutputStream(); + + int imgByte; + while ((imgByte = in.read()) != -1) { + bStream.write(imgByte); + } + + String type = ""; + + if (fvo.getFileExtsn() != null && !"".equals(fvo.getFileExtsn())) { + if ("jpg".equals(fvo.getFileExtsn().toLowerCase())) { + type = "image/jpeg"; + } else { + type = "image/" + fvo.getFileExtsn().toLowerCase(); + } + type = "image/" + fvo.getFileExtsn().toLowerCase(); + + } else { + LOGGER.debug("Image fileType is null."); + } + + response.setHeader("Content-Type", type); + response.setContentLength(bStream.size()); + + bStream.writeTo(response.getOutputStream()); + + response.getOutputStream().flush(); + response.getOutputStream().close(); + + } finally { + EgovResourceCloseHelper.close(bStream, in, fis); + } + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovMultipartResolver.java b/src/main/java/egovframework/com/cmm/web/EgovMultipartResolver.java new file mode 100644 index 0000000..daf144c --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovMultipartResolver.java @@ -0,0 +1,128 @@ +package egovframework.com.cmm.web; + +/* + * Copyright 2001-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the ";License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS"; BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.servlet.ServletContext; + +import org.apache.commons.fileupload.FileItem; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartException; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; + +/** + * 실행환경의 파일업로드 처리를 위한 기능 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.3.25  이삼섭          최초 생성
+ *   2011.06.11 서준식          스프링 3.0 업그레이드 API변경으로인한 수정
+ *
+ * 
+ */ +public class EgovMultipartResolver extends CommonsMultipartResolver { + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovMultipartResolver.class); + + public EgovMultipartResolver() {} + + /** + * 첨부파일 처리를 위한 multipart resolver를 생성한다. + * + * @param servletContext + */ + public EgovMultipartResolver(ServletContext servletContext) { + super(servletContext); + } + + /** + * multipart에 대한 parsing을 처리한다. + */ + @SuppressWarnings("rawtypes") + @Override + protected MultipartParsingResult parseFileItems(List fileItems, String encoding) { + + //스프링 3.0변경으로 수정한 부분 + MultiValueMap multipartFiles = new LinkedMultiValueMap(); + Map multipartParameters = new HashMap(); + + // Extract multipart files and multipart parameters. + for (Iterator it = fileItems.iterator(); it.hasNext();) { + FileItem fileItem = (FileItem)it.next(); + + if (fileItem.isFormField()) { + + String value = null; + if (encoding != null) { + try { + value = fileItem.getString(encoding); + } catch (UnsupportedEncodingException ex) { + LOGGER.warn("Could not decode multipart item '{}' with encoding '{}': using platform default" + , fileItem.getFieldName(), encoding); + value = fileItem.getString(); + } + } else { + value = fileItem.getString(); + } + String[] curParam = (String[])multipartParameters.get(fileItem.getFieldName()); + if (curParam == null) { + // simple form field + multipartParameters.put(fileItem.getFieldName(), new String[] { value }); + } else { + // array of simple form fields + String[] newParam = StringUtils.addStringToArray(curParam, value); + multipartParameters.put(fileItem.getFieldName(), newParam); + } + } else { + + if (fileItem.getSize() > 0) { + // multipart file field + CommonsMultipartFile file = new CommonsMultipartFile(fileItem); + + //스프링 3.0 업그레이드 API변경으로인한 수정 + List fileList = new ArrayList(); + fileList.add(file); + + if (multipartFiles.put(fileItem.getName(), fileList) != null) { // CHANGED!! + throw new MultipartException("Multiple files for field name [" + file.getName() + "] found - not supported by MultipartResolver"); + } + } + + } + } + + return new MultipartParsingResult(multipartFiles, multipartParameters, null); + } +} diff --git a/src/main/java/egovframework/com/cop/com/service/EgovUserInfManageService.java b/src/main/java/egovframework/com/cop/com/service/EgovUserInfManageService.java new file mode 100644 index 0000000..6791032 --- /dev/null +++ b/src/main/java/egovframework/com/cop/com/service/EgovUserInfManageService.java @@ -0,0 +1,86 @@ +package egovframework.com.cop.com.service; + +import java.util.List; +import java.util.Map; + +/** + * 협업 기능에서 사용자 정보를 관리하기 위한 서비스 인터페이스 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.4.6  이삼섭          최초 생성
+ *
+ * 
+ */ +public interface EgovUserInfManageService { + + /** + * 사용자 정보에 대한 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public Map selectUserList(UserInfVO userVO) throws Exception; + + /** + * 커뮤니티 사용자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public Map selectCmmntyUserList(UserInfVO userVO) throws Exception; + + /** + * 커뮤니티 관리자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public Map selectCmmntyMngrList(UserInfVO userVO) throws Exception; + + /** + * 동호회 사용자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public Map selectClubUserList(UserInfVO userVO) throws Exception; + + /** + * 동호회 운영자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public Map selectClubOprtrList(UserInfVO userVO) throws Exception; + + /** + * 동호회에 대한 모든 사용자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public List selectAllClubUser(UserInfVO userVO) throws Exception; + + /** + * 커뮤니티에 대한 모든 사용자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public List selectAllCmmntyUser(UserInfVO userVO) throws Exception; +} diff --git a/src/main/java/egovframework/com/cop/com/service/UserInfVO.java b/src/main/java/egovframework/com/cop/com/service/UserInfVO.java new file mode 100644 index 0000000..b01b44c --- /dev/null +++ b/src/main/java/egovframework/com/cop/com/service/UserInfVO.java @@ -0,0 +1,561 @@ +package egovframework.com.cop.com.service; + +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * 사용자 정보 조회를 위한 VO 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.4.6  이삼섭          최초 생성
+ *
+ * 
+ */ +@SuppressWarnings("serial") +public class UserInfVO implements Serializable { + + /** 유일 아이디 */ + private String uniqId = ""; + + /** 사용자 아이디 */ + private String userId = ""; + + /** 사용자 명 */ + private String userNm = ""; + + /** 사용자 우편번호 */ + private String userZip = ""; + + /** 사용자 주소 */ + private String userAdres = ""; + + /** 사용자 이메일 */ + private String userEmail = ""; + + /** 검색시작일 */ + private String searchBgnDe = ""; + + /** 검색조건 */ + private String searchCnd = ""; + + /** 검색종료일 */ + private String searchEndDe = ""; + + /** 검색단어 */ + private String searchWrd = ""; + + /** 정렬순서(DESC,ASC) */ + private String sortOrdr = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** 첫페이지 인덱스 */ + private int firstIndex = 1; + + /** 마지막페이지 인덱스 */ + private int lastIndex = 1; + + /** 페이지당 레코드 개수 */ + private int recordCountPerPage = 10; + + /** 레코드 번호 */ + private int rowNo = 0; + + /** 대상 아이디 */ + private String trgetId = ""; + + /** 사용여부 */ + private String useAt = "Y"; + + /** 커뮤니티 아이디 */ + private String cmmntyId = ""; + + /** 동호회 아이디 */ + private String clubId = ""; + + /** 대상 중지 여부 (커뮤니티 또는 동호회) */ + private String deletedAt = "N"; + + /** + * uniqId attribute를 리턴한다. + * + * @return the uniqId + */ + public String getUniqId() { + return uniqId; + } + + /** + * uniqId attribute 값을 설정한다. + * + * @param uniqId + * the uniqId to set + */ + public void setUniqId(String uniqId) { + this.uniqId = uniqId; + } + + /** + * userId attribute를 리턴한다. + * + * @return the userId + */ + public String getUserId() { + return userId; + } + + /** + * userId attribute 값을 설정한다. + * + * @param userId + * the userId to set + */ + public void setUserId(String userId) { + this.userId = userId; + } + + /** + * userNm attribute를 리턴한다. + * + * @return the userNm + */ + public String getUserNm() { + return userNm; + } + + /** + * userNm attribute 값을 설정한다. + * + * @param userNm + * the userNm to set + */ + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + /** + * userZip attribute를 리턴한다. + * + * @return the userZip + */ + public String getUserZip() { + return userZip; + } + + /** + * userZip attribute 값을 설정한다. + * + * @param userZip + * the userZip to set + */ + public void setUserZip(String userZip) { + this.userZip = userZip; + } + + /** + * userAdres attribute를 리턴한다. + * + * @return the userAdres + */ + public String getUserAdres() { + return userAdres; + } + + /** + * userAdres attribute 값을 설정한다. + * + * @param userAdres + * the userAdres to set + */ + public void setUserAdres(String userAdres) { + this.userAdres = userAdres; + } + + /** + * userEmail attribute를 리턴한다. + * + * @return the userEmail + */ + public String getUserEmail() { + return userEmail; + } + + /** + * userEmail attribute 값을 설정한다. + * + * @param userEmail + * the userEmail to set + */ + public void setUserEmail(String userEmail) { + this.userEmail = userEmail; + } + + /** + * searchBgnDe attribute를 리턴한다. + * + * @return the searchBgnDe + */ + public String getSearchBgnDe() { + return searchBgnDe; + } + + /** + * searchBgnDe attribute 값을 설정한다. + * + * @param searchBgnDe + * the searchBgnDe to set + */ + public void setSearchBgnDe(String searchBgnDe) { + this.searchBgnDe = searchBgnDe; + } + + /** + * searchCnd attribute를 리턴한다. + * + * @return the searchCnd + */ + public String getSearchCnd() { + return searchCnd; + } + + /** + * searchCnd attribute 값을 설정한다. + * + * @param searchCnd + * the searchCnd to set + */ + public void setSearchCnd(String searchCnd) { + this.searchCnd = searchCnd; + } + + /** + * searchEndDe attribute를 리턴한다. + * + * @return the searchEndDe + */ + public String getSearchEndDe() { + return searchEndDe; + } + + /** + * searchEndDe attribute 값을 설정한다. + * + * @param searchEndDe + * the searchEndDe to set + */ + public void setSearchEndDe(String searchEndDe) { + this.searchEndDe = searchEndDe; + } + + /** + * searchWrd attribute를 리턴한다. + * + * @return the searchWrd + */ + public String getSearchWrd() { + return searchWrd; + } + + /** + * searchWrd attribute 값을 설정한다. + * + * @param searchWrd + * the searchWrd to set + */ + public void setSearchWrd(String searchWrd) { + this.searchWrd = searchWrd; + } + + /** + * sortOrdr attribute를 리턴한다. + * + * @return the sortOrdr + */ + public String getSortOrdr() { + return sortOrdr; + } + + /** + * sortOrdr attribute 값을 설정한다. + * + * @param sortOrdr + * the sortOrdr to set + */ + public void setSortOrdr(String sortOrdr) { + this.sortOrdr = sortOrdr; + } + + /** + * searchUseYn attribute를 리턴한다. + * + * @return the searchUseYn + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * + * @param searchUseYn + * the searchUseYn to set + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute를 리턴한다. + * + * @return the pageIndex + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * + * @param pageIndex + * the pageIndex to set + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute를 리턴한다. + * + * @return the pageUnit + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * + * @param pageUnit + * the pageUnit to set + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute를 리턴한다. + * + * @return the pageSize + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * + * @param pageSize + * the pageSize to set + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute를 리턴한다. + * + * @return the firstIndex + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * + * @param firstIndex + * the firstIndex to set + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute를 리턴한다. + * + * @return the lastIndex + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * + * @param lastIndex + * the lastIndex to set + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute를 리턴한다. + * + * @return the recordCountPerPage + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * + * @param recordCountPerPage + * the recordCountPerPage to set + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + /** + * rowNo attribute를 리턴한다. + * + * @return the rowNo + */ + public int getRowNo() { + return rowNo; + } + + /** + * rowNo attribute 값을 설정한다. + * + * @param rowNo + * the rowNo to set + */ + public void setRowNo(int rowNo) { + this.rowNo = rowNo; + } + + /** + * trgetId attribute를 리턴한다. + * + * @return the trgetId + */ + public String getTrgetId() { + return trgetId; + } + + /** + * trgetId attribute 값을 설정한다. + * + * @param trgetId + * the trgetId to set + */ + public void setTrgetId(String trgetId) { + this.trgetId = trgetId; + } + + /** + * useAt attribute를 리턴한다. + * + * @return the useAt + */ + public String getUseAt() { + return useAt; + } + + /** + * useAt attribute 값을 설정한다. + * + * @param useAt + * the useAt to set + */ + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + /** + * cmmntyId attribute를 리턴한다. + * + * @return the cmmntyId + */ + public String getCmmntyId() { + return cmmntyId; + } + + /** + * cmmntyId attribute 값을 설정한다. + * + * @param cmmntyId + * the cmmntyId to set + */ + public void setCmmntyId(String cmmntyId) { + this.cmmntyId = cmmntyId; + } + + /** + * clubId attribute를 리턴한다. + * + * @return the clubId + */ + public String getClubId() { + return clubId; + } + + /** + * clubId attribute 값을 설정한다. + * + * @param clubId + * the clubId to set + */ + public void setClubId(String clubId) { + this.clubId = clubId; + } + + /** + * deletedAt attribute를 리턴한다. + * + * @return the deletedAt + */ + public String getDeletedAt() { + return deletedAt; + } + + /** + * deletedAt attribute 값을 설정한다. + * + * @param deletedAt + * the deletedAt to set + */ + public void setDeletedAt(String deletedAt) { + this.deletedAt = deletedAt; + } + + /** + * toString 메소드를 대치한다. + */ + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} diff --git a/src/main/java/egovframework/com/cop/com/service/impl/EgovUserInfManageDAO.java b/src/main/java/egovframework/com/cop/com/service/impl/EgovUserInfManageDAO.java new file mode 100644 index 0000000..549376f --- /dev/null +++ b/src/main/java/egovframework/com/cop/com/service/impl/EgovUserInfManageDAO.java @@ -0,0 +1,167 @@ +package egovframework.com.cop.com.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.cop.com.service.UserInfVO; + +import org.springframework.stereotype.Repository; + +/** + * 협업 활용 사용자 정보 조회를 위한 데이터 접근 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.4.6  이삼섭          최초 생성
+ *
+ * 
+ */ +@Repository("EgovUserInfManageDAO") +public class EgovUserInfManageDAO extends EgovComAbstractDAO { + + /** + * 사용자 정보에 대한 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectUserList(UserInfVO userVO) throws Exception { + return (List) list("EgovUserInfManageDAO.selectUserList", userVO); + } + + /** + * 사용자 정보에 대한 목록 전체 건수를 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public int selectUserListCnt(UserInfVO userVO) throws Exception { + return (Integer) select("EgovUserInfManageDAO.selectUserListCnt", userVO); + } + + /** + * 커뮤니티 사용자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectCmmntyUserList(UserInfVO userVO) throws Exception { + return (List) list("EgovUserInfManageDAO.selectCmmntyUserList", userVO); + } + + /** + * 커뮤니티 사용자 목록에 대한 전체 건수를 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public int selectCmmntyUserListCnt(UserInfVO userVO) throws Exception { + return (Integer) select("EgovUserInfManageDAO.selectCmmntyUserListCnt", userVO); + } + + /** + * 커뮤니티 관리자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectCmmntyMngrList(UserInfVO userVO) throws Exception { + return (List) list("EgovUserInfManageDAO.selectCmmntyMngrList", userVO); + } + + /** + * 커뮤니티 관리자 목록에 대한 전체 건수를 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public int selectCmmntyMngrListCnt(UserInfVO userVO) throws Exception { + return (Integer) select("EgovUserInfManageDAO.selectCmmntyMngrListCnt", userVO); + } + + /** + * 동호회 사용자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectClubUserList(UserInfVO userVO) throws Exception { + return (List) list("EgovUserInfManageDAO.selectClubUserList", userVO); + } + + /** + * 동호회 사용자 목록에 대한 전체 건수를 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public int selectClubUserListCnt(UserInfVO userVO) throws Exception { + return (Integer) select("EgovUserInfManageDAO.selectClubUserListCnt", userVO); + } + + /** + * 동호회 운영자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectClubOprtrList(UserInfVO userVO) throws Exception { + return (List) list("EgovUserInfManageDAO.selectClubOprtrList", userVO); + } + + /** + * 동호회 운영자 목록에 대한 전체 건수를 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + public int selectClubOprtrListCnt(UserInfVO userVO) throws Exception { + return (Integer) select("EgovUserInfManageDAO.selectClubOprtrListCnt", userVO); + } + + /** + * 동호회에 대한 모든 사용자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectAllClubUser(UserInfVO userVO) throws Exception { + return (List) list("EgovUserInfManageDAO.selectAllClubUser", userVO); + } + + /** + * 커뮤니티에 대한 모든 사용자 목록을 조회한다. + * + * @param userVO + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectAllCmmntyUser(UserInfVO userVO) throws Exception { + return (List) list("EgovUserInfManageDAO.selectAllCmmntyUser", userVO); + } +} diff --git a/src/main/java/egovframework/com/cop/com/service/impl/EgovUserInfManageServiceImpl.java b/src/main/java/egovframework/com/cop/com/service/impl/EgovUserInfManageServiceImpl.java new file mode 100644 index 0000000..094e8cc --- /dev/null +++ b/src/main/java/egovframework/com/cop/com/service/impl/EgovUserInfManageServiceImpl.java @@ -0,0 +1,147 @@ +package egovframework.com.cop.com.service.impl; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import egovframework.com.cop.com.service.EgovUserInfManageService; +import egovframework.com.cop.com.service.UserInfVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * 협업에서 사용할 사용자 조회 서비스 기능 구현 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.4.6  이삼섭          최초 생성
+ *
+ * 
+ */ +@Service("EgovUserInfManageService") +public class EgovUserInfManageServiceImpl extends EgovAbstractServiceImpl implements EgovUserInfManageService { + + @Resource(name = "EgovUserInfManageDAO") + private EgovUserInfManageDAO userInfDAO; + + /** + * 동호회 운영자 목록을 조회한다. + * + * @see egovframework.com.cop.com.service.EgovUserInfManageService#selectClubOprtrList(egovframework.com.cop.com.service.UserInfVO) + */ + @Override + public Map selectClubOprtrList(UserInfVO userVO) throws Exception { + List result = userInfDAO.selectClubOprtrList(userVO); + int cnt = userInfDAO.selectClubOprtrListCnt(userVO); + + Map map = new HashMap(); + + map.put("resultList", result); + map.put("resultCnt", Integer.toString(cnt)); + + return map; + } + + /** + * 동호회 사용자 목록을 조회한다. + * + * @see egovframework.com.cop.com.service.EgovUserInfManageService#selectClubUserList(egovframework.com.cop.com.service.UserInfVO) + */ + @Override + public Map selectClubUserList(UserInfVO userVO) throws Exception { + List result = userInfDAO.selectClubUserList(userVO); + int cnt = userInfDAO.selectClubUserListCnt(userVO); + + Map map = new HashMap(); + + map.put("resultList", result); + map.put("resultCnt", Integer.toString(cnt)); + + return map; + } + + /** + * 커뮤니티 관리자 목록을 조회한다. + * + * @see egovframework.com.cop.com.service.EgovUserInfManageService#selectCmmntyMngrList(egovframework.com.cop.com.service.UserInfVO) + */ + @Override + public Map selectCmmntyMngrList(UserInfVO userVO) throws Exception { + List result = userInfDAO.selectCmmntyMngrList(userVO); + int cnt = userInfDAO.selectCmmntyMngrListCnt(userVO); + + Map map = new HashMap(); + + map.put("resultList", result); + map.put("resultCnt", Integer.toString(cnt)); + + return map; + } + + /** + * 커뮤니티 사용자 목록을 조회한다. + * + * @see egovframework.com.cop.com.service.EgovUserInfManageService#selectCmmntyUserList(egovframework.com.cop.com.service.UserInfVO) + */ + @Override + public Map selectCmmntyUserList(UserInfVO userVO) throws Exception { + List result = userInfDAO.selectCmmntyUserList(userVO); + int cnt = userInfDAO.selectCmmntyUserListCnt(userVO); + + Map map = new HashMap(); + + map.put("resultList", result); + map.put("resultCnt", Integer.toString(cnt)); + + return map; + } + + /** + * 사용자 정보에 대한 목록을 조회한다. + * + * @see egovframework.com.cop.com.service.EgovUserInfManageService#selectUserList(egovframework.com.cop.com.service.UserInfVO) + */ + @Override + public Map selectUserList(UserInfVO userVO) throws Exception { + List result = userInfDAO.selectUserList(userVO); + int cnt = userInfDAO.selectUserListCnt(userVO); + + Map map = new HashMap(); + + map.put("resultList", result); + map.put("resultCnt", Integer.toString(cnt)); + + return map; + } + + /** + * 동호회에 대한 모든 사용자 목록을 조회한다. + * + * @see egovframework.com.cop.com.service.EgovUserInfManageService#selectAllClubUser(egovframework.com.cop.com.service.UserInfVO) + */ + @Override + public List selectAllClubUser(UserInfVO userVO) throws Exception { + return userInfDAO.selectAllClubUser(userVO); + } + + /** + * 커뮤니티에 대한 모든 사용자 목록을 조회한다. + * + * @see egovframework.com.cop.com.service.EgovUserInfManageService#selectAllCmmntyUser(egovframework.com.cop.com.service.UserInfVO) + */ + @Override + public List selectAllCmmntyUser(UserInfVO userVO) throws Exception { + return userInfDAO.selectAllCmmntyUser(userVO); + } +} diff --git a/src/main/java/egovframework/com/cop/com/web/EgovCopUserInfController.java b/src/main/java/egovframework/com/cop/com/web/EgovCopUserInfController.java new file mode 100644 index 0000000..a688f24 --- /dev/null +++ b/src/main/java/egovframework/com/cop/com/web/EgovCopUserInfController.java @@ -0,0 +1,90 @@ +package egovframework.com.cop.com.web; + +import java.util.Map; + +import egovframework.com.cop.com.service.EgovUserInfManageService; +import egovframework.com.cop.com.service.UserInfVO; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 협업기능에서 활용하는 사용자 정보 조회용 컨트롤러 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.4.6   이삼섭          최초 생성
+ *	 2011.07.21 안민정          커뮤니티 관련 메소드 분리 (->EgovCmyUserInfController)
+ *
+ * 
+ */ +@Controller +public class EgovCopUserInfController { + + @Resource(name = "EgovUserInfManageService") + private EgovUserInfManageService userInfService; + + @Resource(name = "propertiesService") + protected EgovPropertyService propertyService; + + /** + * 사용자 정보에 대한 목록을 조회한다. + * + * @param userVO + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cop/com/selectUserList.do") + public String selectUserList(@ModelAttribute("searchVO") UserInfVO userVO, @RequestParam Map commandMap, ModelMap model) throws Exception { + String popFlag = (String) commandMap.get("PopFlag"); + String returnUrl = "egovframework/com/cop/com/EgovUserList"; + + if ("Y".equals(popFlag)) { + returnUrl = "egovframework/com/cop/com/EgovUserListPop"; + } + + userVO.setPageUnit(propertyService.getInt("pageUnit")); + userVO.setPageSize(propertyService.getInt("pageSize")); + + PaginationInfo paginationInfo = new PaginationInfo(); + + paginationInfo.setCurrentPageNo(userVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(userVO.getPageUnit()); + paginationInfo.setPageSize(userVO.getPageSize()); + + userVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + userVO.setLastIndex(paginationInfo.getLastRecordIndex()); + userVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + Map map = userInfService.selectUserList(userVO); + int totCnt = Integer.parseInt((String) map.get("resultCnt")); + + paginationInfo.setTotalRecordCount(totCnt); + + model.addAttribute("resultList", map.get("resultList")); + model.addAttribute("resultCnt", map.get("resultCnt")); + model.addAttribute("targetMethod", "selectUserList"); + model.addAttribute("trgetId", ""); + model.addAttribute("paginationInfo", paginationInfo); + + return returnUrl; + } + +} diff --git a/src/main/java/egovframework/com/cop/com/web/EgovCopViewController.java b/src/main/java/egovframework/com/cop/com/web/EgovCopViewController.java new file mode 100644 index 0000000..397660a --- /dev/null +++ b/src/main/java/egovframework/com/cop/com/web/EgovCopViewController.java @@ -0,0 +1,67 @@ +package egovframework.com.cop.com.web; + +import java.util.Map; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 협업 비로그인 유저용 컨트롤러 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.4.10  이삼섭          최초 생성
+ *
+ * 
+ */ +@Controller +public class EgovCopViewController { + + /** + * 팝업 페이지를 호출한다. + * + * @param userVO + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cop/com/openPopup.do") + public String openPopupWindow(@RequestParam Map commandMap, ModelMap model) throws Exception { + + String requestUrl = (String) commandMap.get("requestUrl"); + String trgetId = (String) commandMap.get("trgetId"); + String width = (String) commandMap.get("width"); + String height = (String) commandMap.get("height"); + String typeFlag = (String) commandMap.get("typeFlag"); + + if (trgetId != null && trgetId != "") { + if (typeFlag != null && typeFlag != "") { + model.addAttribute("requestUrl", requestUrl + "?trgetId=" + trgetId + "&PopFlag=Y&typeFlag=" + typeFlag); + } else { + model.addAttribute("requestUrl", requestUrl + "?trgetId=" + trgetId + "&PopFlag=Y"); + } + } else { + if (typeFlag != null && typeFlag != "") { + model.addAttribute("requestUrl", requestUrl + "?PopFlag=Y&typeFlag=" + typeFlag); + } else { + model.addAttribute("requestUrl", requestUrl + "?PopFlag=Y"); + } + + } + + model.addAttribute("width", width); + model.addAttribute("height", height); + + return "egovframework/com/cop/com/EgovModalPopupFrame"; + } +} diff --git a/src/main/java/egovframework/com/sec/drm/service/DeptAuthor.java b/src/main/java/egovframework/com/sec/drm/service/DeptAuthor.java new file mode 100644 index 0000000..432f726 --- /dev/null +++ b/src/main/java/egovframework/com/sec/drm/service/DeptAuthor.java @@ -0,0 +1,193 @@ +package egovframework.com.sec.drm.service; + +import egovframework.com.cmm.ComDefaultVO; +import egovframework.com.sec.rgm.service.AuthorGroup; + +/** + * 부서권한에 대한 model 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class DeptAuthor extends ComDefaultVO { + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 권한그룹관리 + */ + private AuthorGroup authorGroup; + /** + * 설정대상 사용자 ID + */ + private String userId; + /** + * 설정대상 사용자 명 + */ + private String userNm; + /** + * 설정대상 그룹 ID + */ + private String groupId; + /** + * 설정대상 사용자 유형 코드 + */ + private String mberTyCode; + /** + * 설정대상 사용자 유형 명 + */ + private String mberTyNm; + /** + * 권한코드 + */ + private String authorCode; + /** + * 등록 여부 + */ + private String regYn; + /** + * Uniq ID + */ + private String uniqId; + + /** + * authorGroup attribute 를 리턴한다. + * @return AuthorGroup + */ + public AuthorGroup getAuthorGroup() { + return authorGroup; + } + /** + * authorGroup attribute 값을 설정한다. + * @param authorGroup AuthorGroup + */ + public void setAuthorGroup(AuthorGroup authorGroup) { + this.authorGroup = authorGroup; + } + /** + * userId attribute 를 리턴한다. + * @return String + */ + public String getUserId() { + return userId; + } + /** + * userId attribute 값을 설정한다. + * @param userId String + */ + public void setUserId(String userId) { + this.userId = userId; + } + /** + * userNm attribute 를 리턴한다. + * @return String + */ + public String getUserNm() { + return userNm; + } + /** + * userNm attribute 값을 설정한다. + * @param userNm String + */ + public void setUserNm(String userNm) { + this.userNm = userNm; + } + /** + * groupId attribute 를 리턴한다. + * @return String + */ + public String getGroupId() { + return groupId; + } + /** + * groupId attribute 값을 설정한다. + * @param groupId String + */ + public void setGroupId(String groupId) { + this.groupId = groupId; + } + /** + * mberTyCode attribute 를 리턴한다. + * @return String + */ + public String getMberTyCode() { + return mberTyCode; + } + /** + * mberTyCode attribute 값을 설정한다. + * @param mberTyCode String + */ + public void setMberTyCode(String mberTyCode) { + this.mberTyCode = mberTyCode; + } + /** + * mberTyNm attribute 를 리턴한다. + * @return String + */ + public String getMberTyNm() { + return mberTyNm; + } + /** + * mberTyNm attribute 값을 설정한다. + * @param mberTyNm String + */ + public void setMberTyNm(String mberTyNm) { + this.mberTyNm = mberTyNm; + } + /** + * authorCode attribute 를 리턴한다. + * @return String + */ + public String getAuthorCode() { + return authorCode; + } + /** + * authorCode attribute 값을 설정한다. + * @param authorCode String + */ + public void setAuthorCode(String authorCode) { + this.authorCode = authorCode; + } + /** + * regYn attribute 를 리턴한다. + * @return String + */ + public String getRegYn() { + return regYn; + } + /** + * regYn attribute 값을 설정한다. + * @param regYn String + */ + public void setRegYn(String regYn) { + this.regYn = regYn; + } + /** + * uniqId attribute 를 리턴한다. + * @return String + */ + public String getUniqId() { + return uniqId; + } + /** + * uniqId attribute 값을 설정한다. + * @param uniqId String + */ + public void setUniqId(String uniqId) { + this.uniqId = uniqId; + } + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/drm/service/DeptAuthorVO.java b/src/main/java/egovframework/com/sec/drm/service/DeptAuthorVO.java new file mode 100644 index 0000000..3791d12 --- /dev/null +++ b/src/main/java/egovframework/com/sec/drm/service/DeptAuthorVO.java @@ -0,0 +1,102 @@ +package egovframework.com.sec.drm.service; + +import java.util.List; + + +/** + * 부서권한에 대한 Vo 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class DeptAuthorVO extends DeptAuthor { + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 부서권한목록 + */ + List deptAuthorList; + /** + * 부서목록 + */ + List deptList; + /** + * 부서코드 + */ + private String deptCode; + /** + * 부서 명 + */ + private String deptNm; + + /** + * deptAuthorList attribute 를 리턴한다. + * @return List + */ + public List getDeptAuthorList() { + return deptAuthorList; + } + /** + * deptAuthorList attribute 값을 설정한다. + * @param deptAuthorList List + */ + public void setDeptAuthorList(List deptAuthorList) { + this.deptAuthorList = deptAuthorList; + } + /** + * deptList attribute 를 리턴한다. + * @return List + */ + public List getDeptList() { + return deptList; + } + /** + * deptList attribute 값을 설정한다. + * @param deptList List + */ + public void setDeptList(List deptList) { + this.deptList = deptList; + } + /** + * deptCode attribute 를 리턴한다. + * @return String + */ + public String getDeptCode() { + return deptCode; + } + /** + * deptCode attribute 값을 설정한다. + * @param deptCode String + */ + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + /** + * deptNm attribute 를 리턴한다. + * @return String + */ + public String getDeptNm() { + return deptNm; + } + /** + * deptNm attribute 값을 설정한다. + * @param deptNm String + */ + public void setDeptNm(String deptNm) { + this.deptNm = deptNm; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/drm/service/EgovDeptAuthorService.java b/src/main/java/egovframework/com/sec/drm/service/EgovDeptAuthorService.java new file mode 100644 index 0000000..3727f0f --- /dev/null +++ b/src/main/java/egovframework/com/sec/drm/service/EgovDeptAuthorService.java @@ -0,0 +1,77 @@ +package egovframework.com.sec.drm.service; + +import java.util.List; + + +/** + * 부서권한관리에 관한 서비스 인터페이스 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public interface EgovDeptAuthorService { + + /** + * 부서별 할당된 권한목록 조회 + * @param deptAuthorVO DeptAuthorVO + * @return List + * @exception Exception + */ + public List selectDeptAuthorList(DeptAuthorVO deptAuthorVO) throws Exception; + + /** + * 부서에 해당하는 사용자에게 시스템 메뉴/접근권한을 일괄 할당 + * @param deptAuthor DeptAuthor + * @exception Exception + */ + public void insertDeptAuthor(DeptAuthor deptAuthor) throws Exception; + + /** + * 부서별 시스템 메뉴 접근권한을 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param deptAuthor + * @exception Exception + */ + public void updateDeptAuthor(DeptAuthor deptAuthor) throws Exception; + + /** + * 불필요한 부서권한를 조회하여 데이터베이스에서 삭제 + * @param deptAuthor DeptAuthor + * @exception Exception + */ + public void deleteDeptAuthor(DeptAuthor deptAuthor) throws Exception; + + /** + * 부서권한 목록조회 카운트를 반환한다 + * @param deptAuthorVO DeptAuthorVO + * @return int + * @exception Exception + */ + public int selectDeptAuthorListTotCnt(DeptAuthorVO deptAuthorVO) throws Exception; + + /** + * 부서목록 조회 + * @param deptAuthorVO DeptAuthorVO + * @return List + * @exception Exception + */ + public List selectDeptList(DeptAuthorVO deptAuthorVO) throws Exception; + + /** + * 부서 목록조회 카운트를 반환한다 + * @param deptAuthorVO DeptAuthorVO + * @return int + * @exception Exception + */ + public int selectDeptListTotCnt(DeptAuthorVO deptAuthorVO) throws Exception; +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/drm/service/impl/DeptAuthorDAO.java b/src/main/java/egovframework/com/sec/drm/service/impl/DeptAuthorDAO.java new file mode 100644 index 0000000..7b3d8ba --- /dev/null +++ b/src/main/java/egovframework/com/sec/drm/service/impl/DeptAuthorDAO.java @@ -0,0 +1,99 @@ +package egovframework.com.sec.drm.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sec.drm.service.DeptAuthor; +import egovframework.com.sec.drm.service.DeptAuthorVO; + +import org.springframework.stereotype.Repository; + +/** + * 부서권한에 대한 DAO 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Repository("deptAuthorDAO") +public class DeptAuthorDAO extends EgovComAbstractDAO { + + /** + * 부서별 할당된 권한목록 조회 + * @param deptAuthorVO DeptAuthorVO + * @return List + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectDeptAuthorList(DeptAuthorVO deptAuthorVO) throws Exception { + return (List) list("deptAuthorDAO.selectDeptAuthorList", deptAuthorVO); + } + + /** + * 부서에 해당하는 사용자에게 시스템 메뉴/접근권한을 일괄 할당 + * @param deptAuthor DeptAuthor + * @exception Exception + */ + public void insertDeptAuthor(DeptAuthor deptAuthor) throws Exception { + insert("deptAuthorDAO.insertDeptAuthor", deptAuthor); + } + + /** + * 부서별 시스템 메뉴 접근권한을 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param deptAuthor DeptAuthor + * @exception Exception + */ + public void updateDeptAuthor(DeptAuthor deptAuthor) throws Exception { + update("deptAuthorDAO.updateDeptAuthor", deptAuthor); + } + + /** + * 불필요한 부서권한를 조회하여 데이터베이스에서 삭제 + * @param deptAuthor DeptAuthor + * @exception Exception + */ + public void deleteDeptAuthor(DeptAuthor deptAuthor) throws Exception { + delete("deptAuthorDAO.deleteDeptAuthor", deptAuthor); + } + + /** + * 부서권한 목록조회 카운트를 반환한다 + * @param deptAuthorVO DeptAuthorVO + * @return int + * @exception Exception + */ + public int selectDeptAuthorListTotCnt(DeptAuthorVO deptAuthorVO) throws Exception { + return (Integer)select("deptAuthorDAO.selectDeptAuthorListTotCnt", deptAuthorVO); + } + + /** + * 부서목록 조회 + * @param deptAuthorVO DeptAuthorVO + * @return List + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectDeptList(DeptAuthorVO deptAuthorVO) throws Exception { + return (List) list("deptAuthorDAO.selectDeptList", deptAuthorVO); + } + + /** + * 부서목록 조회 카운트를 반환한다 + * @param deptAuthorVO DeptAuthorVO + * @return int + * @exception Exception + */ + public int selectDeptListTotCnt(DeptAuthorVO deptAuthorVO) throws Exception { + return (Integer)select("deptAuthorDAO.selectDeptListTotCnt", deptAuthorVO); + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/drm/service/impl/EgovDeptAuthorServiceImpl.java b/src/main/java/egovframework/com/sec/drm/service/impl/EgovDeptAuthorServiceImpl.java new file mode 100644 index 0000000..80d9701 --- /dev/null +++ b/src/main/java/egovframework/com/sec/drm/service/impl/EgovDeptAuthorServiceImpl.java @@ -0,0 +1,104 @@ +package egovframework.com.sec.drm.service.impl; + +import java.util.List; + +import egovframework.com.sec.drm.service.DeptAuthor; +import egovframework.com.sec.drm.service.DeptAuthorVO; +import egovframework.com.sec.drm.service.EgovDeptAuthorService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * 부서권한에 관한 ServiceImpl 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Service("egovDeptAuthorService") +public class EgovDeptAuthorServiceImpl extends EgovAbstractServiceImpl implements EgovDeptAuthorService { + + @Resource(name="deptAuthorDAO") + private DeptAuthorDAO deptAuthorDAO; + + /** + * 부서별 할당된 권한목록 조회 + * @param deptAuthorVO DeptAuthorVO + * @return List + * @exception Exception + */ + public List selectDeptAuthorList(DeptAuthorVO deptAuthorVO) throws Exception { + return deptAuthorDAO.selectDeptAuthorList(deptAuthorVO); + } + + /** + * 부서에 해당하는 사용자에게 시스템 메뉴/접근권한을 일괄 할당 + * @param deptAuthor DeptAuthor + * @exception Exception + */ + public void insertDeptAuthor(DeptAuthor deptAuthor) throws Exception { + deptAuthorDAO.insertDeptAuthor(deptAuthor); + } + + /** + * 부서별 시스템 메뉴 접근권한을 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param deptAuthor DeptAuthor + * @exception Exception + */ + public void updateDeptAuthor(DeptAuthor deptAuthor) throws Exception { + deptAuthorDAO.updateDeptAuthor(deptAuthor); + } + + /** + * 불필요한 부서권한를 조회하여 데이터베이스에서 삭제 + * @param deptAuthor DeptAuthor + * @exception Exception + */ + public void deleteDeptAuthor(DeptAuthor deptAuthor) throws Exception { + deptAuthorDAO.deleteDeptAuthor(deptAuthor); + } + + /** + * 부서권한 목록조회 카운트를 반환한다 + * @param deptAuthorVO DeptAuthorVO + * @return int + * @exception Exception + */ + public int selectDeptAuthorListTotCnt(DeptAuthorVO deptAuthorVO) throws Exception { + return deptAuthorDAO.selectDeptAuthorListTotCnt(deptAuthorVO); + } + + /** + * 부서목록 조회 + * @param deptAuthorVO DeptAuthorVO + * @return List + * @exception Exception + */ + public List selectDeptList(DeptAuthorVO deptAuthorVO) throws Exception { + return deptAuthorDAO.selectDeptList(deptAuthorVO); + } + + /** + * 부서 목록조회 카운트를 반환한다 + * @param deptAuthorVO DeptAuthorVO + * @return int + * @exception Exception + */ + public int selectDeptListTotCnt(DeptAuthorVO deptAuthorVO) throws Exception { + return deptAuthorDAO.selectDeptListTotCnt(deptAuthorVO); + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/drm/web/EgovDeptAuthorController.java b/src/main/java/egovframework/com/sec/drm/web/EgovDeptAuthorController.java new file mode 100644 index 0000000..43cac65 --- /dev/null +++ b/src/main/java/egovframework/com/sec/drm/web/EgovDeptAuthorController.java @@ -0,0 +1,212 @@ +package egovframework.com.sec.drm.web; + +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.SessionVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.sec.drm.service.DeptAuthor; +import egovframework.com.sec.drm.service.DeptAuthorVO; +import egovframework.com.sec.drm.service.EgovDeptAuthorService; +import egovframework.com.sec.ram.service.AuthorManageVO; +import egovframework.com.sec.ram.service.EgovAuthorManageService; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; + +/** + * 부서권한에 관한 controller 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * 
+ */ + + +@Controller +@SessionAttributes(types=SessionVO.class) +public class EgovDeptAuthorController { + + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + @Resource(name = "egovDeptAuthorService") + private EgovDeptAuthorService egovDeptAuthorService; + + @Resource(name = "egovAuthorManageService") + private EgovAuthorManageService egovAuthorManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** + * 권한 목록화면 이동 + * @return String + * @exception Exception + */ + @RequestMapping("/sec/drm/EgovDeptAuthorListView.do") + public String selectDeptAuthorListView() throws Exception { + return "egovframework/com/sec/drm/EgovDeptAuthorManage"; + } + + /** + * 부서별 할당된 권한목록 조회 + * + * @param deptAuthorVO DeptAuthorVO + * @param authorManageVO AuthorManageVO + * @return String + * @exception Exception + */ + @IncludedInfo(name="부서권한관리", listUrl="/sec/drm/EgovDeptAuthorList.do", order = 100,gid = 20) + @RequestMapping(value="/sec/drm/EgovDeptAuthorList.do") + public String selectDeptAuthorList(@ModelAttribute("deptAuthorVO") DeptAuthorVO deptAuthorVO, + @ModelAttribute("authorManageVO") AuthorManageVO authorManageVO, + ModelMap model) throws Exception { + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(deptAuthorVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(deptAuthorVO.getPageUnit()); + paginationInfo.setPageSize(deptAuthorVO.getPageSize()); + + deptAuthorVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + deptAuthorVO.setLastIndex(paginationInfo.getLastRecordIndex()); + deptAuthorVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + deptAuthorVO.setDeptAuthorList(egovDeptAuthorService.selectDeptAuthorList(deptAuthorVO)); + model.addAttribute("deptAuthorList", deptAuthorVO.getDeptAuthorList()); + + int totCnt = egovDeptAuthorService.selectDeptAuthorListTotCnt(deptAuthorVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorAllList(authorManageVO)); + model.addAttribute("authorManageList", authorManageVO.getAuthorManageList()); + + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + return "egovframework/com/sec/drm/EgovDeptAuthorManage"; + } + + /** + * 부서에 권한정보를 할당하여 데이터베이스에 등록 + * + * @param userIds String + * @param authorCodes String + * @param regYns String + * @param deptAuthor DeptAuthor + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/drm/EgovDeptAuthorInsert.do") + public String insertDeptAuthor(@RequestParam("userIds") String userIds, + @RequestParam("authorCodes") String authorCodes, + @RequestParam("regYns") String regYns, + @ModelAttribute("deptAuthor") DeptAuthor deptAuthor, + SessionStatus status, + ModelMap model) throws Exception { + + String [] strUserIds = userIds.split(";"); + String [] strAuthorCodes = authorCodes.split(";"); + String [] strRegYns = regYns.split(";"); + + for(int i=0; i + * << 개정이력(Modification Information) >> + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.03.20 이문준 최초 생성 + * + * + */ + +public interface EgovGroupManageService { + + /** + * 검색조건에 따른 그룹정보를 조회 + * @param groupManageVO GroupManageVO + * @return GroupManageVO + * @exception Exception + */ + public GroupManageVO selectGroup(GroupManageVO groupManageVO) throws Exception; + + /** + * 시스템사용 목적별 그룹 목록 조회 + * @param groupManageVO GroupManageVO + * @return List + * @exception Exception + */ + public List selectGroupList(GroupManageVO groupManageVO) throws Exception; + + /** + * 그룹 기본정보를 화면에서 입력하여 항목의 정합성을 체크하고 데이터베이스에 저장 + * @param groupManage GroupManage + * @param groupManageVO GroupManageVO + * @return GroupManageVO + * @exception Exception + */ + public GroupManageVO insertGroup(GroupManage groupManage, GroupManageVO groupManageVO) throws Exception; + /** + * 화면에 조회된 그룹의 기본정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param groupManage GroupManage + * @exception Exception + */ + public void updateGroup(GroupManage groupManage) throws Exception; + + /** + * 불필요한 그룹정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param groupManage GroupManage + * @exception Exception + */ + public void deleteGroup(GroupManage groupManage) throws Exception; + + /** + * 목록조회 카운트를 반환한다 + * @param groupManageVO GroupManageVO + * @return int + * @exception Exception + */ + public int selectGroupListTotCnt(GroupManageVO groupManageVO) throws Exception; +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/gmt/service/GroupManage.java b/src/main/java/egovframework/com/sec/gmt/service/GroupManage.java new file mode 100644 index 0000000..7aa1135 --- /dev/null +++ b/src/main/java/egovframework/com/sec/gmt/service/GroupManage.java @@ -0,0 +1,121 @@ +package egovframework.com.sec.gmt.service; + +import egovframework.com.cmm.ComDefaultVO; + +/** + * 그룹관리에 대한 model 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class GroupManage extends ComDefaultVO { + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 그룹 관리 + */ + private GroupManage groupManage; + /** + * 그룹 ID + */ + private String groupId; + /** + * 그룹명 + */ + private String groupNm; + /** + * 그룹등록일시 + */ + private String groupCreatDe; + /** + * 그룹설명 + */ + private String groupDc; + + /** + * groupManage attribute 를 리턴한다. + * @return GroupManage + */ + public GroupManage getGroupManage() { + return groupManage; + } + /** + * groupManage attribute 값을 설정한다. + * @param groupManage GroupManage + */ + public void setGroupManage(GroupManage groupManage) { + this.groupManage = groupManage; + } + /** + * groupId attribute 를 리턴한다. + * @return String + */ + public String getGroupId() { + return groupId; + } + /** + * groupId attribute 값을 설정한다. + * @param groupId String + */ + public void setGroupId(String groupId) { + this.groupId = groupId; + } + /** + * groupNm attribute 를 리턴한다. + * @return String + */ + public String getGroupNm() { + return groupNm; + } + /** + * groupNm attribute 값을 설정한다. + * @param groupNm String + */ + public void setGroupNm(String groupNm) { + this.groupNm = groupNm; + } + /** + * groupCreatDe attribute 를 리턴한다. + * @return String + */ + public String getGroupCreatDe() { + return groupCreatDe; + } + /** + * groupCreatDe attribute 값을 설정한다. + * @param groupCreatDe String + */ + public void setGroupCreatDe(String groupCreatDe) { + this.groupCreatDe = groupCreatDe; + } + /** + * groupDc attribute 를 리턴한다. + * @return String + */ + public String getGroupDc() { + return groupDc; + } + /** + * groupDc attribute 값을 설정한다. + * @param groupDc String + */ + public void setGroupDc(String groupDc) { + this.groupDc = groupDc; + } + + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/gmt/service/GroupManageVO.java b/src/main/java/egovframework/com/sec/gmt/service/GroupManageVO.java new file mode 100644 index 0000000..66a2632 --- /dev/null +++ b/src/main/java/egovframework/com/sec/gmt/service/GroupManageVO.java @@ -0,0 +1,71 @@ +package egovframework.com.sec.gmt.service; + +import java.util.List; + + + +/** + * 그룹관리에 대한 Vo 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class GroupManageVO extends GroupManage { + + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 그룹 목록 + */ + List groupManageList; + /** + * 삭제대상 목록 + */ + String[] delYn; + + /** + * groupManageList attribute 를 리턴한다. + * @return List + */ + public List getGroupManageList() { + return groupManageList; + } + + /** + * groupManageList attribute 값을 설정한다. + * @param groupManageList List + */ + public void setGroupManageList(List groupManageList) { + this.groupManageList = groupManageList; + } + + /** + * delYn attribute 를 리턴한다. + * @return String[] + */ + public String[] getDelYn() { + return delYn; + } + + /** + * delYn attribute 값을 설정한다. + * @param delYn String[] + */ + public void setDelYn(String[] delYn) { + this.delYn = delYn; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/gmt/service/impl/EgovGroupManageServiceImpl.java b/src/main/java/egovframework/com/sec/gmt/service/impl/EgovGroupManageServiceImpl.java new file mode 100644 index 0000000..599bd10 --- /dev/null +++ b/src/main/java/egovframework/com/sec/gmt/service/impl/EgovGroupManageServiceImpl.java @@ -0,0 +1,98 @@ +package egovframework.com.sec.gmt.service.impl; + +import java.util.List; + +import egovframework.com.sec.gmt.service.EgovGroupManageService; +import egovframework.com.sec.gmt.service.GroupManage; +import egovframework.com.sec.gmt.service.GroupManageVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * 그룹관리에 관한 ServiceImpl 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Service("egovGroupManageService") +public class EgovGroupManageServiceImpl extends EgovAbstractServiceImpl implements EgovGroupManageService { + + @Resource(name="groupManageDAO") + private GroupManageDAO groupManageDAO; + + /** + * 시스템사용 목적별 그룹 목록 조회 + * @param groupManageVO GroupManageVO + * @return List + * @exception Exception + */ + public List selectGroupList(GroupManageVO groupManageVO) throws Exception { + return groupManageDAO.selectGroupList(groupManageVO); + } + + /** + * 검색조건에 따른 그룹정보를 조회 + * @param groupManageVO GroupManageVO + * @return GroupManageVO + * @exception Exception + */ + public GroupManageVO selectGroup(GroupManageVO groupManageVO) throws Exception { + return groupManageDAO.selectGroup(groupManageVO); + } + + /** + * 그룹 기본정보를 화면에서 입력하여 항목의 정합성을 체크하고 데이터베이스에 저장 + * @param groupManage GroupManage + * @param groupManageVO GroupManageVO + * @return GroupManageVO + * @exception Exception + */ + public GroupManageVO insertGroup(GroupManage groupManage, GroupManageVO groupManageVO) throws Exception { + groupManageDAO.insertGroup(groupManage); + groupManageVO.setGroupId(groupManage.getGroupId()); + return groupManageDAO.selectGroup(groupManageVO); + } + + /** + * 화면에 조회된 그룹의 기본정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param groupManage GroupManage + * @exception Exception + */ + public void updateGroup(GroupManage groupManage) throws Exception { + groupManageDAO.updateGroup(groupManage); + } + + /** + * 불필요한 그룹정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param groupManage GroupManage + * @exception Exception + */ + public void deleteGroup(GroupManage groupManage) throws Exception { + groupManageDAO.deleteGroup(groupManage); + } + + /** + * 목록조회 카운트를 반환한다 + * @param groupManageVO GroupManageVO + * @return int + * @exception Exception + */ + public int selectGroupListTotCnt(GroupManageVO groupManageVO) throws Exception { + return groupManageDAO.selectGroupListTotCnt(groupManageVO); + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/gmt/service/impl/GroupManageDAO.java b/src/main/java/egovframework/com/sec/gmt/service/impl/GroupManageDAO.java new file mode 100644 index 0000000..3221555 --- /dev/null +++ b/src/main/java/egovframework/com/sec/gmt/service/impl/GroupManageDAO.java @@ -0,0 +1,88 @@ +package egovframework.com.sec.gmt.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sec.gmt.service.GroupManage; +import egovframework.com.sec.gmt.service.GroupManageVO; + +import org.springframework.stereotype.Repository; + +/** + * 그룹관리에 대한 DAO 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Repository("groupManageDAO") +public class GroupManageDAO extends EgovComAbstractDAO { + + /** + * 검색조건에 따른 그룹정보를 조회 + * @param groupManageVO GroupManageVO + * @return GroupManageVO + * @exception Exception + */ + public GroupManageVO selectGroup(GroupManageVO groupManageVO) throws Exception { + return (GroupManageVO) select("groupManageDAO.selectGroup", groupManageVO); + } + + /** + * 시스템사용 목적별 그룹 목록 조회 + * @param groupManageVO GroupManageVO + * @return GroupManageVO + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectGroupList(GroupManageVO groupManageVO) throws Exception { + return (List) list("groupManageDAO.selectGroupList", groupManageVO); + } + + /** + * 그룹 기본정보를 화면에서 입력하여 항목의 정합성을 체크하고 데이터베이스에 저장 + * @param groupManage GroupManage + * @exception Exception + */ + public void insertGroup(GroupManage groupManage) throws Exception { + insert("groupManageDAO.insertGroup", groupManage); + } + + /** + * 화면에 조회된 그룹의 기본정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param groupManage GroupManage + * @exception Exception + */ + public void updateGroup(GroupManage groupManage) throws Exception { + update("groupManageDAO.updateGroup", groupManage); + } + + /** + * 불필요한 그룹정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param groupManage GroupManage + * @exception Exception + */ + public void deleteGroup(GroupManage groupManage) throws Exception { + delete("groupManageDAO.deleteGroup", groupManage); + } + + /** + * 롤목록 총 갯수를 조회한다. + * @param groupManageVO GroupManageVO + * @return int + * @exception Exception + */ + public int selectGroupListTotCnt(GroupManageVO groupManageVO) throws Exception { + return (Integer)select("groupManageDAO.selectGroupListTotCnt", groupManageVO); + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/gmt/web/EgovGroupManageController.java b/src/main/java/egovframework/com/sec/gmt/web/EgovGroupManageController.java new file mode 100644 index 0000000..b966b15 --- /dev/null +++ b/src/main/java/egovframework/com/sec/gmt/web/EgovGroupManageController.java @@ -0,0 +1,266 @@ +package egovframework.com.sec.gmt.web; + +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.SessionVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.sec.gmt.service.EgovGroupManageService; +import egovframework.com.sec.gmt.service.GroupManage; +import egovframework.com.sec.gmt.service.GroupManageVO; + +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springmodules.validation.commons.DefaultBeanValidator; + +/** + * 그룹관리에 관한 controller 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * 
+ */ + + +@Controller +@SessionAttributes(types=SessionVO.class) +public class EgovGroupManageController { + + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + @Resource(name = "egovGroupManageService") + private EgovGroupManageService egovGroupManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** Message ID Generation */ + @Resource(name="egovGroupIdGnrService") + private EgovIdGnrService egovGroupIdGnrService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 그룹 목록화면 이동 + * @return String + * @exception Exception + */ + @RequestMapping("/sec/gmt/EgovGroupListView.do") + public String selectGroupListView() + throws Exception { + return "egovframework/com/sec/gmt/EgovGroupManage"; + } + + /** + * 시스템사용 목적별 그룹 목록 조회 + * @param groupManageVO GroupManageVO + * @return String + * @exception Exception + */ + @IncludedInfo(name="그룹관리", listUrl="/sec/gmt/EgovGroupList.do", order = 80,gid = 20) + @RequestMapping(value="/sec/gmt/EgovGroupList.do") + public String selectGroupList(@ModelAttribute("groupManageVO") GroupManageVO groupManageVO, + ModelMap model) throws Exception { + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(groupManageVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(groupManageVO.getPageUnit()); + paginationInfo.setPageSize(groupManageVO.getPageSize()); + + groupManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + groupManageVO.setLastIndex(paginationInfo.getLastRecordIndex()); + groupManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + groupManageVO.setGroupManageList(egovGroupManageService.selectGroupList(groupManageVO)); + model.addAttribute("groupList", groupManageVO.getGroupManageList()); + + int totCnt = egovGroupManageService.selectGroupListTotCnt(groupManageVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + return "egovframework/com/sec/gmt/EgovGroupManage"; + } + + /** + * 검색조건에 따른 그룹정보를 조회 + * @param groupManageVO GroupManageVO + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/gmt/EgovGroup.do") + public String selectGroup(@ModelAttribute("groupManageVO") GroupManageVO groupManageVO, + ModelMap model) throws Exception { + + model.addAttribute("groupManage", egovGroupManageService.selectGroup(groupManageVO)); + return "egovframework/com/sec/gmt/EgovGroupUpdate"; + } + + /** + * 그룹 등록화면 이동 + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/gmt/EgovGroupInsertView.do") + public String insertGroupView() + throws Exception { + return "egovframework/com/sec/gmt/EgovGroupInsert"; + } + + /** + * 그룹 기본정보를 화면에서 입력하여 항목의 정합성을 체크하고 데이터베이스에 저장 + * @param groupManage GroupManage + * @param groupManageVO GroupManageVO + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/gmt/EgovGroupInsert.do") + public String insertGroup(@ModelAttribute("groupManage") GroupManage groupManage, + @ModelAttribute("groupManageVO") GroupManageVO groupManageVO, + BindingResult bindingResult, + SessionStatus status, + ModelMap model) throws Exception { + + beanValidator.validate(groupManage, bindingResult); //validation 수행 + + if (bindingResult.hasErrors()) { + return "egovframework/com/sec/gmt/EgovGroupInsert"; + } else { + groupManage.setGroupId(egovGroupIdGnrService.getNextStringId()); + groupManageVO.setGroupId(groupManage.getGroupId()); + + status.setComplete(); + model.addAttribute("message", egovMessageSource.getMessage("success.common.insert")); + model.addAttribute("groupManage", egovGroupManageService.insertGroup(groupManage, groupManageVO)); + return "egovframework/com/sec/gmt/EgovGroupUpdate"; + } + } + + /** + * 화면에 조회된 그룹의 기본정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param groupManage GroupManage + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/gmt/EgovGroupUpdate.do") + public String updateGroup(@ModelAttribute("groupManage") GroupManage groupManage, + BindingResult bindingResult, + SessionStatus status, + Model model) throws Exception { + + beanValidator.validate(groupManage, bindingResult); //validation 수행 + + if (bindingResult.hasErrors()) { + return "egovframework/com/sec/gmt/EgovGroupUpdate"; + } else { + egovGroupManageService.updateGroup(groupManage); + status.setComplete(); + model.addAttribute("message", egovMessageSource.getMessage("success.common.update")); + return "forward:/sec/gmt/EgovGroup.do"; + } + } + + /** + * 불필요한 그룹정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param groupManage GroupManage + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/gmt/EgovGroupDelete.do") + public String deleteGroup(@ModelAttribute("groupManage") GroupManage groupManage, + SessionStatus status, + Model model) throws Exception { + egovGroupManageService.deleteGroup(groupManage); + status.setComplete(); + model.addAttribute("message", egovMessageSource.getMessage("success.common.delete")); + return "forward:/sec/gmt/EgovGroupList.do"; + } + + /** + * 불필요한 그룹정보 목록을 화면에 조회하여 데이터베이스에서 삭제 + * @param groupIds String + * @param groupManage GroupManage + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/gmt/EgovGroupListDelete.do") + public String deleteGroupList(@RequestParam("groupIds") String groupIds, + @ModelAttribute("groupManage") GroupManage groupManage, + SessionStatus status, + Model model) throws Exception { + String [] strGroupIds = groupIds.split(";"); + for(int i=0; i + * << 개정이력(Modification Information) >> + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.03.20 이문준 최초 생성 + * + * + */ + +public class AuthorManage extends ComDefaultVO { + + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 권한관리 + */ + private AuthorManage authorManage; + /** + * 권한코드 + */ + private String authorCode; + /** + * 권한등록일자 + */ + private String authorCreatDe; + /** + * 권한코드설명 + */ + private String authorDc; + /** + * 권한 명 + */ + private String authorNm; + + /** + * authorManage attribute 를 리턴한다. + * @return AuthorManage + */ + public AuthorManage getAuthorManage() { + return authorManage; + } + /** + * authorManage attribute 값을 설정한다. + * @param authorManage AuthorManage + */ + public void setAuthorManage(AuthorManage authorManage) { + this.authorManage = authorManage; + } + /** + * authorCode attribute 를 리턴한다. + * @return String + */ + public String getAuthorCode() { + return authorCode; + } + /** + * authorCode attribute 값을 설정한다. + * @param authorCode String + */ + public void setAuthorCode(String authorCode) { + this.authorCode = authorCode; + } + /** + * authorCreatDe attribute 를 리턴한다. + * @return String + */ + public String getAuthorCreatDe() { + return authorCreatDe; + } + /** + * authorCreatDe attribute 값을 설정한다. + * @param authorCreatDe String + */ + public void setAuthorCreatDe(String authorCreatDe) { + this.authorCreatDe = authorCreatDe; + } + /** + * authorDc attribute 를 리턴한다. + * @return String + */ + public String getAuthorDc() { + return authorDc; + } + /** + * authorDc attribute 값을 설정한다. + * @param authorDc String + */ + public void setAuthorDc(String authorDc) { + this.authorDc = authorDc; + } + /** + * authorNm attribute 를 리턴한다. + * @return String + */ + public String getAuthorNm() { + return authorNm; + } + /** + * authorNm attribute 값을 설정한다. + * @param authorNm String + */ + public void setAuthorNm(String authorNm) { + this.authorNm = authorNm; + } + + + + + +} diff --git a/src/main/java/egovframework/com/sec/ram/service/AuthorManageVO.java b/src/main/java/egovframework/com/sec/ram/service/AuthorManageVO.java new file mode 100644 index 0000000..241281d --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/AuthorManageVO.java @@ -0,0 +1,47 @@ +package egovframework.com.sec.ram.service; + +import java.util.List; + +/** + * 권한관리에 대한 Vo 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class AuthorManageVO extends AuthorManage { + + private static final long serialVersionUID = 1L; + + List authorManageList; + + + /** + * authorManageList attribute 를 리턴한다. + * @return List + */ + public List getAuthorManageList() { + return authorManageList; + } + + /** + * authorManageList attribute 값을 설정한다. + * @param authorManageList List + */ + public void setAuthorManageList(List authorManageList) { + this.authorManageList = authorManageList; + } + + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/ram/service/AuthorRoleManage.java b/src/main/java/egovframework/com/sec/ram/service/AuthorRoleManage.java new file mode 100644 index 0000000..be70966 --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/AuthorRoleManage.java @@ -0,0 +1,210 @@ +package egovframework.com.sec.ram.service; + +import egovframework.com.cmm.ComDefaultVO; + +/** + * 권한별 롤 관리에 대한 model 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class AuthorRoleManage extends ComDefaultVO { + + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 권한 롤 관리 + */ + private AuthorRoleManage authorRole; + /** + * 권한코드 + */ + private String authorCode; + /** + * 롤코드 + */ + private String roleCode; + /** + * 롤명 + */ + private String roleNm; + /** + * 롤 패턴 + */ + private String rolePtn; + /** + * 롤 설명 + */ + private String roleDc; + /** + * 롤 타입 + */ + private String roleTyp; + /** + * 롤 순서정렬 + */ + private String roleSort; + /** + * 롤 등록여부 + */ + private String regYn; + /** + * 등록일자 + */ + private String creatDt; + /** + * authorRole attribute 를 리턴한다. + * @return AuthorRoleManage + */ + public AuthorRoleManage getAuthorRole() { + return authorRole; + } + /** + * authorRole attribute 값을 설정한다. + * @param authorRole AuthorRoleManage + */ + public void setAuthorRole(AuthorRoleManage authorRole) { + this.authorRole = authorRole; + } + /** + * authorCode attribute 를 리턴한다. + * @return String + */ + public String getAuthorCode() { + return authorCode; + } + /** + * authorCode attribute 값을 설정한다. + * @param authorCode String + */ + public void setAuthorCode(String authorCode) { + this.authorCode = authorCode; + } + /** + * roleCode attribute 를 리턴한다. + * @return String + */ + public String getRoleCode() { + return roleCode; + } + /** + * roleCode attribute 값을 설정한다. + * @param roleCode String + */ + public void setRoleCode(String roleCode) { + this.roleCode = roleCode; + } + /** + * roleNm attribute 를 리턴한다. + * @return String + */ + public String getRoleNm() { + return roleNm; + } + /** + * roleNm attribute 값을 설정한다. + * @param roleNm String + */ + public void setRoleNm(String roleNm) { + this.roleNm = roleNm; + } + /** + * rolePtn attribute 를 리턴한다. + * @return String + */ + public String getRolePtn() { + return rolePtn; + } + /** + * rolePtn attribute 값을 설정한다. + * @param rolePtn String + */ + public void setRolePtn(String rolePtn) { + this.rolePtn = rolePtn; + } + /** + * roleDc attribute 를 리턴한다. + * @return String + */ + public String getRoleDc() { + return roleDc; + } + /** + * roleDc attribute 값을 설정한다. + * @param roleDc String + */ + public void setRoleDc(String roleDc) { + this.roleDc = roleDc; + } + /** + * roleTyp attribute 를 리턴한다. + * @return String + */ + public String getRoleTyp() { + return roleTyp; + } + /** + * roleTyp attribute 값을 설정한다. + * @param roleTyp String + */ + public void setRoleTyp(String roleTyp) { + this.roleTyp = roleTyp; + } + /** + * roleSort attribute 를 리턴한다. + * @return String + */ + public String getRoleSort() { + return roleSort; + } + /** + * roleSort attribute 값을 설정한다. + * @param roleSort String + */ + public void setRoleSort(String roleSort) { + this.roleSort = roleSort; + } + /** + * regYn attribute 를 리턴한다. + * @return String + */ + public String getRegYn() { + return regYn; + } + /** + * regYn attribute 값을 설정한다. + * @param regYn String + */ + public void setRegYn(String regYn) { + this.regYn = regYn; + } + /** + * creatDt attribute 를 리턴한다. + * @return String + */ + public String getCreatDt() { + return creatDt; + } + /** + * creatDt attribute 값을 설정한다. + * @param creatDt String + */ + public void setCreatDt(String creatDt) { + this.creatDt = creatDt; + } + + +} diff --git a/src/main/java/egovframework/com/sec/ram/service/AuthorRoleManageVO.java b/src/main/java/egovframework/com/sec/ram/service/AuthorRoleManageVO.java new file mode 100644 index 0000000..de8da9e --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/AuthorRoleManageVO.java @@ -0,0 +1,46 @@ +package egovframework.com.sec.ram.service; + +import java.util.List; + +/** + * 권한별 롤 관리에 대한 Vo 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class AuthorRoleManageVO extends AuthorRoleManage { + + private static final long serialVersionUID = 1L; + + List authorRoleList; + + /** + * authorRoleList attribute 를 리턴한다. + * @return List + */ + public List getAuthorRoleList() { + return authorRoleList; + } + + /** + * authorRoleList attribute 값을 설정한다. + * @param authorRoleList List + */ + public void setAuthorRoleList(List authorRoleList) { + this.authorRoleList = authorRoleList; + } + + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/ram/service/EgovAuthorManageService.java b/src/main/java/egovframework/com/sec/ram/service/EgovAuthorManageService.java new file mode 100644 index 0000000..4388119 --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/EgovAuthorManageService.java @@ -0,0 +1,75 @@ +package egovframework.com.sec.ram.service; + +import java.util.List; + +/** + * 권한관리에 관한 서비스 인터페이스 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public interface EgovAuthorManageService { + /** + * 모든 권한목록을 조회한다. + * @param authorManageVO AuthorManageVO + * @return List + * @exception Exception + */ + public List selectAuthorAllList(AuthorManageVO authorManageVO) throws Exception; + + /** + * 시스템 사용자중 불필요한 시스템권한정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param authorManage AuthorManage + * @exception Exception + */ + public void deleteAuthor(AuthorManage authorManage) throws Exception; + + /** + * 사용자의 시스테접근권한를 화면에서 입력하여 입력항목의 정합성을 체크하고 데이터베이스에 저장 + * @param authorManage AuthorManage + * @exception Exception + */ + public void insertAuthor(AuthorManage authorManage) throws Exception; + + /** + * 개별사용자에게 할당된 권한 조회 + * @param authorManageVO AuthorManageVO + * @exception Exception + */ + public AuthorManageVO selectAuthor(AuthorManageVO authorManageVO) throws Exception; + + /** + * 개별사용자에게 할당된 권한리스트 조회 + * @param authorManageVO AuthorManageVO + * @return List + * @exception Exception + */ + public List selectAuthorList(AuthorManageVO authorManageVO) throws Exception; + + /** + * 화면에 조회된 사용자권한정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param authorManage AuthorManage + * @exception Exception + */ + public void updateAuthor(AuthorManage authorManage) throws Exception; + + /** + * 목록조회 카운트를 반환한다 + * @param authorManageVO AuthorManageVO + * @return int + * @exception Exception + */ + public int selectAuthorListTotCnt(AuthorManageVO authorManageVO) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sec/ram/service/EgovAuthorRoleManageService.java b/src/main/java/egovframework/com/sec/ram/service/EgovAuthorRoleManageService.java new file mode 100644 index 0000000..f093a69 --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/EgovAuthorRoleManageService.java @@ -0,0 +1,68 @@ +package egovframework.com.sec.ram.service; + +import java.util.List; + +/** + * 권한별 롤 관리에 관한 서비스 인터페이스 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public interface EgovAuthorRoleManageService { + + /** + * 권한 롤 관계정보를 조회 + * @param authorRoleManageVO AuthorRoleManageVO + * @exception Exception + */ + public AuthorRoleManageVO selectAuthorRole(AuthorRoleManageVO authorRoleManageVO) throws Exception; + + /** + * 권한 롤 관계정보 목록 조회 + * @param authorRoleManageVO AuthorRoleManageVO + * @return List + * @exception Exception + */ + public List selectAuthorRoleList(AuthorRoleManageVO authorRoleManageVO) throws Exception; + + /** + * 권한 롤 관계정보를 화면에서 입력하여 입력항목의 정합성을 체크하고 데이터베이스에 저장 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void insertAuthorRole(AuthorRoleManage authorRoleManage) throws Exception; + + /** + * 수정된 권한 롤 관계정보를 데이터베이스에 반영 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void updateAuthorRole(AuthorRoleManage authorRoleManage) throws Exception; + + /** + * 권한 롤 관계정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void deleteAuthorRole(AuthorRoleManage authorRoleManage) throws Exception; + + /** + * 목록조회 카운트를 반환한다 + * @param authorRoleManageVO AuthorRoleManageVO + * @return int + * @exception Exception + */ + public int selectAuthorRoleListTotCnt(AuthorRoleManageVO authorRoleManageVO) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sec/ram/service/impl/AuthorManageDAO.java b/src/main/java/egovframework/com/sec/ram/service/impl/AuthorManageDAO.java new file mode 100644 index 0000000..14dacfa --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/impl/AuthorManageDAO.java @@ -0,0 +1,99 @@ +package egovframework.com.sec.ram.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sec.ram.service.AuthorManage; +import egovframework.com.sec.ram.service.AuthorManageVO; + +import org.springframework.stereotype.Repository; + +/** + * 권한관리에 대한 DAO 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Repository("authorManageDAO") +public class AuthorManageDAO extends EgovComAbstractDAO { + + /** + * 권한목록을 조회한다. + * @param authorManageVO AuthorManageVO + * @return List + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectAuthorList(AuthorManageVO authorManageVO) throws Exception { + return (List) list("authorManageDAO.selectAuthorList", authorManageVO); + } + + /** + * 권한을 등록한다. + * @param authorManage AuthorManage + * @exception Exception + */ + public void insertAuthor(AuthorManage authorManage) throws Exception { + insert("authorManageDAO.insertAuthor", authorManage); + } + + /** + * 권한을 수정한다. + * @param authorManage AuthorManage + * @exception Exception + */ + public void updateAuthor(AuthorManage authorManage) throws Exception { + update("authorManageDAO.updateAuthor", authorManage); + } + + /** + * 권한을 삭제한다. + * @param authorManage AuthorManage + * @exception Exception + */ + public void deleteAuthor(AuthorManage authorManage) throws Exception { + delete("authorManageDAO.deleteAuthor", authorManage); + } + + /** + * 권한을 조회한다. + * @param authorManageVO AuthorManageVO + * @return AuthorManageVO + * @exception Exception + */ + public AuthorManageVO selectAuthor(AuthorManageVO authorManageVO) throws Exception { + return (AuthorManageVO) select("authorManageDAO.selectAuthor", authorManageVO); + } + + /** + * 권한목록 총 갯수를 조회한다. + * @param authorManageVO AuthorManageVO + * @return int + * @exception Exception + */ + public int selectAuthorListTotCnt(AuthorManageVO authorManageVO) throws Exception { + return (Integer)select("authorManageDAO.selectAuthorListTotCnt", authorManageVO); + } + + /** + * 모든 권한목록을 조회한다. + * @param authorManageVO AuthorManageVO + * @return List + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectAuthorAllList(AuthorManageVO authorManageVO) throws Exception { + return (List) list("authorManageDAO.selectAuthorAllList", authorManageVO); + } +} diff --git a/src/main/java/egovframework/com/sec/ram/service/impl/AuthorRoleManageDAO.java b/src/main/java/egovframework/com/sec/ram/service/impl/AuthorRoleManageDAO.java new file mode 100644 index 0000000..3dfa8bf --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/impl/AuthorRoleManageDAO.java @@ -0,0 +1,89 @@ +package egovframework.com.sec.ram.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sec.ram.service.AuthorRoleManage; +import egovframework.com.sec.ram.service.AuthorRoleManageVO; + +import org.springframework.stereotype.Repository; + +/** + * 권한별 롤관리에 대한 DAO 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Repository("authorRoleManageDAO") +public class AuthorRoleManageDAO extends EgovComAbstractDAO { + + /** + * 권한 롤 관계정보를 조회 + * @param authorRoleManageVO AuthorRoleManageVO + * @return AuthorRoleManageVO + * @exception Exception + */ + public AuthorRoleManageVO selectAuthorRole(AuthorRoleManageVO authorRoleManageVO) throws Exception { + return (AuthorRoleManageVO) select("authorRoleManageDAO.selectAuthorRole", authorRoleManageVO); + } + + /** + * 권한 롤 관계정보 목록 조회 + * @param authorRoleManageVO AuthorRoleManageVO + * @return List + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectAuthorRoleList(AuthorRoleManageVO authorRoleManageVO) throws Exception { + return (List) list("authorRoleManageDAO.selectAuthorRoleList", authorRoleManageVO); + } + + /** + * 권한 롤 관계정보를 화면에서 입력하여 입력항목의 정합성을 체크하고 데이터베이스에 저장 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void insertAuthorRole(AuthorRoleManage authorRoleManage) throws Exception { + insert("authorRoleManageDAO.insertAuthorRole", authorRoleManage); + } + + /** + * 수정된 권한 롤 관계정보를 데이터베이스에 반영 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void updateAuthorRole(AuthorRoleManage authorRoleManage) throws Exception { + update("authorRoleManageDAO.updateAuthorRole", authorRoleManage); + } + + /** + * 권한 롤 관계정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void deleteAuthorRole(AuthorRoleManage authorRoleManage) throws Exception { + delete("authorRoleManageDAO.deleteAuthorRole", authorRoleManage); + } + + /** + * 목록조회 카운트를 반환한다 + * @param authorRoleManageVO AuthorRoleManageVO + * @return int + * @exception Exception + */ + public int selectAuthorRoleListTotCnt(AuthorRoleManageVO authorRoleManageVO) throws Exception { + return (Integer)select("authorRoleManageDAO.selectAuthorRoleListTotCnt", authorRoleManageVO); + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/ram/service/impl/EgovAuthorManageServiceImpl.java b/src/main/java/egovframework/com/sec/ram/service/impl/EgovAuthorManageServiceImpl.java new file mode 100644 index 0000000..ad7c367 --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/impl/EgovAuthorManageServiceImpl.java @@ -0,0 +1,107 @@ +package egovframework.com.sec.ram.service.impl; + +import java.util.List; + +import egovframework.com.sec.ram.service.AuthorManage; +import egovframework.com.sec.ram.service.AuthorManageVO; +import egovframework.com.sec.ram.service.EgovAuthorManageService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * 권한관리에 관한 ServiceImpl 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Service("egovAuthorManageService") +public class EgovAuthorManageServiceImpl extends EgovAbstractServiceImpl implements EgovAuthorManageService { + + @Resource(name="authorManageDAO") + private AuthorManageDAO authorManageDAO; + + /** + * 권한 목록을 조회한다. + * @param authorManageVO AuthorManageVO + * @return List + * @exception Exception + */ + public List selectAuthorList(AuthorManageVO authorManageVO) throws Exception { + return authorManageDAO.selectAuthorList(authorManageVO); + } + + /** + * 권한을 등록한다. + * @param authorManage AuthorManage + * @exception Exception + */ + public void insertAuthor(AuthorManage authorManage) throws Exception { + authorManageDAO.insertAuthor(authorManage); + } + + /** + * 권한을 수정한다. + * @param authorManage AuthorManage + * @exception Exception + */ + public void updateAuthor(AuthorManage authorManage) throws Exception { + authorManageDAO.updateAuthor(authorManage); + } + + /** + * 권한을 삭제한다. + * @param authorManage AuthorManage + * @exception Exception + */ + public void deleteAuthor(AuthorManage authorManage) throws Exception { + authorManageDAO.deleteAuthor(authorManage); + } + + /** + * 권한을 조회한다. + * @param authorManageVO AuthorManageVO + * @return AuthorManageVO + * @exception Exception + */ + public AuthorManageVO selectAuthor(AuthorManageVO authorManageVO) throws Exception { + AuthorManageVO resultVO = authorManageDAO.selectAuthor(authorManageVO); + if (resultVO == null) + throw processException("info.nodata.msg"); + return resultVO; + } + + /** + * 권한 목록 카운트를 조회한다. + * @param authorManageVO AuthorManageVO + * @return int + * @exception Exception + */ + public int selectAuthorListTotCnt(AuthorManageVO authorManageVO) throws Exception { + return authorManageDAO.selectAuthorListTotCnt(authorManageVO); + } + + /** + * 모든 권한목록을 조회한다. + * @param authorManageVO AuthorManageVO + * @return List + * @exception Exception + */ + public List selectAuthorAllList(AuthorManageVO authorManageVO) throws Exception { + return authorManageDAO.selectAuthorAllList(authorManageVO); + } +} diff --git a/src/main/java/egovframework/com/sec/ram/service/impl/EgovAuthorRoleManageServiceImpl.java b/src/main/java/egovframework/com/sec/ram/service/impl/EgovAuthorRoleManageServiceImpl.java new file mode 100644 index 0000000..cf0f7b8 --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/impl/EgovAuthorRoleManageServiceImpl.java @@ -0,0 +1,94 @@ +package egovframework.com.sec.ram.service.impl; + +import java.util.List; + +import egovframework.com.sec.ram.service.AuthorRoleManage; +import egovframework.com.sec.ram.service.AuthorRoleManageVO; +import egovframework.com.sec.ram.service.EgovAuthorRoleManageService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * 권한별 롤관리에 대한 DAO 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Service("egovAuthorRoleManageService") +public class EgovAuthorRoleManageServiceImpl extends EgovAbstractServiceImpl implements EgovAuthorRoleManageService { + + @Resource(name="authorRoleManageDAO") + private AuthorRoleManageDAO authorRoleManageDAO; + + /** + * 권한 롤 관계정보를 조회 + * @param authorRoleManageVO AuthorRoleManageVO + * @return AuthorRoleManageVO + * @exception Exception + */ + public AuthorRoleManageVO selectAuthorRole(AuthorRoleManageVO authorRoleManageVO) throws Exception { + return authorRoleManageDAO.selectAuthorRole(authorRoleManageVO); + } + + /** + * 권한 롤 관계정보 목록 조회 + * @param authorRoleManageVO AuthorRoleManageVO + * @return List + * @exception Exception + */ + public List selectAuthorRoleList(AuthorRoleManageVO authorRoleManageVO) throws Exception { + return authorRoleManageDAO.selectAuthorRoleList(authorRoleManageVO); + } + + /** + * 권한 롤 관계정보를 화면에서 입력하여 입력항목의 정합성을 체크하고 데이터베이스에 저장 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void insertAuthorRole(AuthorRoleManage authorRoleManage) throws Exception { + authorRoleManageDAO.insertAuthorRole(authorRoleManage); + } + + /** + * 수정된 권한 롤 관계정보를 데이터베이스에 반영 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void updateAuthorRole(AuthorRoleManage authorRoleManage) throws Exception { + authorRoleManageDAO.updateAuthorRole(authorRoleManage); + } + + /** + * 권한 롤 관계정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param authorRoleManage AuthorRoleManage + * @exception Exception + */ + public void deleteAuthorRole(AuthorRoleManage authorRoleManage) throws Exception { + authorRoleManageDAO.deleteAuthorRole(authorRoleManage); + } + + /** + * 목록조회 카운트를 반환한다 + * @param authorRoleManageVO AuthorRoleManageVO + * @return int + * @exception Exception + */ + public int selectAuthorRoleListTotCnt(AuthorRoleManageVO authorRoleManageVO) throws Exception { + return authorRoleManageDAO.selectAuthorRoleListTotCnt(authorRoleManageVO); + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/ram/service/impl/EgovUserDetailsSecurityServiceImpl.java b/src/main/java/egovframework/com/sec/ram/service/impl/EgovUserDetailsSecurityServiceImpl.java new file mode 100644 index 0000000..59cc693 --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/service/impl/EgovUserDetailsSecurityServiceImpl.java @@ -0,0 +1,65 @@ +package egovframework.com.sec.ram.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.EgovUserDetailsService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; + +/** + *권한관리 인증에 대한 ServiceImpl 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +public class EgovUserDetailsSecurityServiceImpl extends EgovAbstractServiceImpl implements EgovUserDetailsService { + + + /** + * 인증된 사용자객체를 VO형식으로 가져온다. + * @return Object - 사용자 ValueObject + */ + public Object getAuthenticatedUser() { + + // 이 메소드의 경우 인증이 되지 않더라고 null을 리턴하지 않기 때문에 + // 명시적으로 인증되지 않은 경우 null을 리턴하도록 수정함 + + if (EgovUserDetailsHelper.isAuthenticated()) { + return EgovUserDetailsHelper.getAuthenticatedUser(); + } + + return null; + } + + + /** + * 인증된 사용자의 권한 정보를 가져온다. + * 예) [ROLE_ADMIN, ROLE_USER, ROLE_A, ROLE_B, ROLE_RESTRICTED, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, IS_AUTHENTICATED_ANONYMOUSLY] + * @return List - 사용자 권한정보 목록 + */ + public List getAuthorities() { + return EgovUserDetailsHelper.getAuthorities(); + } + + /** + * 인증된 사용자 여부를 체크한다. + * @return Boolean - 인증된 사용자 여부(TRUE / FALSE) + */ + + public Boolean isAuthenticated() { + return EgovUserDetailsHelper.isAuthenticated(); + } + +} diff --git a/src/main/java/egovframework/com/sec/ram/web/EgovAuthorManageController.java b/src/main/java/egovframework/com/sec/ram/web/EgovAuthorManageController.java new file mode 100644 index 0000000..efc65b7 --- /dev/null +++ b/src/main/java/egovframework/com/sec/ram/web/EgovAuthorManageController.java @@ -0,0 +1,241 @@ +package egovframework.com.sec.ram.web; + +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.SessionVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.sec.ram.service.AuthorManage; +import egovframework.com.sec.ram.service.AuthorManageVO; +import egovframework.com.sec.ram.service.EgovAuthorManageService; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springmodules.validation.commons.DefaultBeanValidator; + +/** + * 권한관리에 관한 controller 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가s
+ *
+ * 
+ */ + + +@Controller +@SessionAttributes(types=SessionVO.class) +public class EgovAuthorManageController { + + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + @Resource(name = "egovAuthorManageService") + private EgovAuthorManageService egovAuthorManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 권한 목록화면 이동 + * @return String + * @exception Exception + */ + @RequestMapping("/sec/ram/EgovAuthorListView.do") + public String selectAuthorListView() + throws Exception { + return "egovframework/com/sec/ram/EgovAuthorManage"; + } + + /** + * 권한 목록을 조회한다 + * @param authorManageVO AuthorManageVO + * @return String + * @exception Exception + */ + @IncludedInfo(name="권한관리", listUrl="/sec/ram/EgovAuthorList.do", order = 60,gid = 20) + @RequestMapping(value="/sec/ram/EgovAuthorList.do") + public String selectAuthorList(@ModelAttribute("authorManageVO") AuthorManageVO authorManageVO, + ModelMap model) + throws Exception { + + /** EgovPropertyService.sample */ + //authorManageVO.setPageUnit(propertiesService.getInt("pageUnit")); + //authorManageVO.setPageSize(propertiesService.getInt("pageSize")); + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(authorManageVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(authorManageVO.getPageUnit()); + paginationInfo.setPageSize(authorManageVO.getPageSize()); + + authorManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + authorManageVO.setLastIndex(paginationInfo.getLastRecordIndex()); + authorManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO)); + model.addAttribute("authorList", authorManageVO.getAuthorManageList()); + + int totCnt = egovAuthorManageService.selectAuthorListTotCnt(authorManageVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + return "egovframework/com/sec/ram/EgovAuthorManage"; + } + + /** + * 권한 세부정보를 조회한다. + * @param authorCode String + * @param authorManageVO AuthorManageVO + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/ram/EgovAuthor.do") + public String selectAuthor(@RequestParam("authorCode") String authorCode, + @ModelAttribute("authorManageVO") AuthorManageVO authorManageVO, + ModelMap model) throws Exception { + + authorManageVO.setAuthorCode(authorCode); + + model.addAttribute("authorManage", egovAuthorManageService.selectAuthor(authorManageVO)); + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + return "egovframework/com/sec/ram/EgovAuthorUpdate"; + } + + /** + * 권한 등록화면 이동 + * @return String + * @exception Exception + */ + @RequestMapping("/sec/ram/EgovAuthorInsertView.do") + public String insertAuthorView() + throws Exception { + return "egovframework/com/sec/ram/EgovAuthorInsert"; + } + + /** + * 권한 세부정보를 등록한다. + * @param authorManage AuthorManage + * @param bindingResult BindingResult + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/ram/EgovAuthorInsert.do") + public String insertAuthor(@ModelAttribute("authorManage") AuthorManage authorManage, + BindingResult bindingResult, + SessionStatus status, + ModelMap model) throws Exception { + + beanValidator.validate(authorManage, bindingResult); //validation 수행 + + if (bindingResult.hasErrors()) { + return "egovframework/com/sec/ram/EgovAuthorInsert"; + } else { + egovAuthorManageService.insertAuthor(authorManage); + status.setComplete(); + model.addAttribute("message", egovMessageSource.getMessage("success.common.insert")); + return "forward:/sec/ram/EgovAuthor.do"; + } + } + + /** + * 권한 세부정보를 수정한다. + * @param authorManage AuthorManage + * @param bindingResult BindingResult + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/ram/EgovAuthorUpdate.do") + public String updateAuthor(@ModelAttribute("authorManage") AuthorManage authorManage, + BindingResult bindingResult, + SessionStatus status, + Model model) throws Exception { + + beanValidator.validate(authorManage, bindingResult); //validation 수행 + + if (bindingResult.hasErrors()) { + return "egovframework/com/sec/ram/EgovAuthorUpdate"; + } else { + egovAuthorManageService.updateAuthor(authorManage); + status.setComplete(); + model.addAttribute("message", egovMessageSource.getMessage("success.common.update")); + return "forward:/sec/ram/EgovAuthor.do"; + } + } + + /** + * 권한 세부정보를 삭제한다. + * @param authorManage AuthorManage + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/ram/EgovAuthorDelete.do") + public String deleteAuthor(@ModelAttribute("authorManage") AuthorManage authorManage, + SessionStatus status, + Model model) throws Exception { + + egovAuthorManageService.deleteAuthor(authorManage); + status.setComplete(); + model.addAttribute("message", egovMessageSource.getMessage("success.common.delete")); + return "forward:/sec/ram/EgovAuthorList.do"; + } + + /** + * 권한목록을 삭제한다. + * @param authorCodes String + * @param authorManage AuthorManage + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/ram/EgovAuthorListDelete.do") + public String deleteAuthorList(@RequestParam("authorCodes") String authorCodes, + @ModelAttribute("authorManage") AuthorManage authorManage, + SessionStatus status, + Model model) throws Exception { + + String [] strAuthorCodes = authorCodes.split(";"); + for(int i=0; i + * << 개정이력(Modification Information) >> + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.03.11 이문준 최초 생성 + * 2011.09.07 서준식 롤 등록시 이미 등록된 경우 데이터 중복 에러 발생 문제 수정 + * + */ + +@Controller +@SessionAttributes(types=SessionVO.class) +public class EgovAuthorRoleController { + + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + @Resource(name = "egovAuthorRoleManageService") + private EgovAuthorRoleManageService egovAuthorRoleManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** + * 권한 롤 관계 화면 이동 + * @return "egovframework/com/sec/ram/EgovDeptAuthorList" + * @exception Exception + */ + @RequestMapping("/sec/ram/EgovAuthorRoleListView.do") + public String selectAuthorRoleListView() throws Exception { + + return "egovframework/com/sec/ram/EgovAuthorRoleManage"; + } + + /** + * 권한별 할당된 롤 목록 조회 + * + * @param authorRoleManageVO AuthorRoleManageVO + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/ram/EgovAuthorRoleList.do") + public String selectAuthorRoleList(@ModelAttribute("authorRoleManageVO") AuthorRoleManageVO authorRoleManageVO, + ModelMap model) throws Exception { + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(authorRoleManageVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(authorRoleManageVO.getPageUnit()); + paginationInfo.setPageSize(authorRoleManageVO.getPageSize()); + + authorRoleManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + authorRoleManageVO.setLastIndex(paginationInfo.getLastRecordIndex()); + authorRoleManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + authorRoleManageVO.setAuthorRoleList(egovAuthorRoleManageService.selectAuthorRoleList(authorRoleManageVO)); + model.addAttribute("authorRoleList", authorRoleManageVO.getAuthorRoleList()); + + int totCnt = egovAuthorRoleManageService.selectAuthorRoleListTotCnt(authorRoleManageVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + return "egovframework/com/sec/ram/EgovAuthorRoleManage"; + } + + /** + * 권한정보에 롤을 할당하여 데이터베이스에 등록 + * @param authorCode String + * @param roleCodes String + * @param regYns String + * @param authorRoleManage AuthorRoleManage + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/ram/EgovAuthorRoleInsert.do") + public String insertAuthorRole(@RequestParam("authorCode") String authorCode, + @RequestParam("roleCodes") String roleCodes, + @RequestParam("regYns") String regYns, + @ModelAttribute("authorRoleManage") AuthorRoleManage authorRoleManage, + SessionStatus status, + ModelMap model) throws Exception { + + String [] strRoleCodes = roleCodes.split(";"); + String [] strRegYns = regYns.split(";"); + + authorRoleManage.setRoleCode(authorCode); + + for(int i=0; i + * << 개정이력(Modification Information) >> + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.03.20 이문준 최초 생성 + * + * + */ + +public class AuthorGroup extends ComDefaultVO { + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 권한그룹관리 + */ + private AuthorGroup authorGroup; + /** + * 설정대상 사용자 ID + */ + private String userId; + /** + * 설정대상 사용자 명 + */ + private String userNm; + /** + * 설정대상 그룹 ID + */ + private String groupId; + /** + * 설정대상 사용자 유형 코드 + */ + private String mberTyCode; + /** + * 설정대상 사용자 유형 명 + */ + private String mberTyNm; + /** + * 권한코드 + */ + private String authorCode; + /** + * 등록 여부 + */ + private String regYn; + /** + * Uniq ID + */ + private String uniqId; + + /** + * authorGroup attribute 를 리턴한다. + * @return AuthorGroup + */ + public AuthorGroup getAuthorGroup() { + return authorGroup; + } + /** + * authorGroup attribute 값을 설정한다. + * @param authorGroup AuthorGroup + */ + public void setAuthorGroup(AuthorGroup authorGroup) { + this.authorGroup = authorGroup; + } + /** + * userId attribute 를 리턴한다. + * @return String + */ + public String getUserId() { + return userId; + } + /** + * userId attribute 값을 설정한다. + * @param userId String + */ + public void setUserId(String userId) { + this.userId = userId; + } + /** + * userNm attribute 를 리턴한다. + * @return String + */ + public String getUserNm() { + return userNm; + } + /** + * userNm attribute 값을 설정한다. + * @param userNm String + */ + public void setUserNm(String userNm) { + this.userNm = userNm; + } + /** + * groupId attribute 를 리턴한다. + * @return String + */ + public String getGroupId() { + return groupId; + } + /** + * groupId attribute 값을 설정한다. + * @param groupId String + */ + public void setGroupId(String groupId) { + this.groupId = groupId; + } + /** + * mberTyCode attribute 를 리턴한다. + * @return String + */ + public String getMberTyCode() { + return mberTyCode; + } + /** + * mberTyCode attribute 값을 설정한다. + * @param mberTyCode String + */ + public void setMberTyCode(String mberTyCode) { + this.mberTyCode = mberTyCode; + } + /** + * mberTyNm attribute 를 리턴한다. + * @return String + */ + public String getMberTyNm() { + return mberTyNm; + } + /** + * mberTyNm attribute 값을 설정한다. + * @param mberTyNm String + */ + public void setMberTyNm(String mberTyNm) { + this.mberTyNm = mberTyNm; + } + /** + * authorCode attribute 를 리턴한다. + * @return String + */ + public String getAuthorCode() { + return authorCode; + } + /** + * authorCode attribute 값을 설정한다. + * @param authorCode String + */ + public void setAuthorCode(String authorCode) { + this.authorCode = authorCode; + } + /** + * regYn attribute 를 리턴한다. + * @return String + */ + public String getRegYn() { + return regYn; + } + /** + * regYn attribute 값을 설정한다. + * @param regYn String + */ + public void setRegYn(String regYn) { + this.regYn = regYn; + } + /** + * uniqId attribute 를 리턴한다. + * @return String + */ + public String getUniqId() { + return uniqId; + } + /** + * uniqId attribute 값을 설정한다. + * @param uniqId String + */ + public void setUniqId(String uniqId) { + this.uniqId = uniqId; + } + + + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rgm/service/AuthorGroupVO.java b/src/main/java/egovframework/com/sec/rgm/service/AuthorGroupVO.java new file mode 100644 index 0000000..8c2eeb7 --- /dev/null +++ b/src/main/java/egovframework/com/sec/rgm/service/AuthorGroupVO.java @@ -0,0 +1,44 @@ +package egovframework.com.sec.rgm.service; + +import java.util.List; + +/** + * 권한그룹에 대한 Vo 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class AuthorGroupVO extends AuthorGroup { + + private static final long serialVersionUID = 1L; + + List authorGroupList; + + /** + * authorGroupList attribute 를 리턴한다. + * @return List + */ + public List getAuthorGroupList() { + return authorGroupList; + } + /** + * authorGroupList attribute 값을 설정한다. + * @param authorGroupList List + */ + public void setAuthorGroupList(List authorGroupList) { + this.authorGroupList = authorGroupList; + } + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rgm/service/EgovAuthorGroupService.java b/src/main/java/egovframework/com/sec/rgm/service/EgovAuthorGroupService.java new file mode 100644 index 0000000..d352d95 --- /dev/null +++ b/src/main/java/egovframework/com/sec/rgm/service/EgovAuthorGroupService.java @@ -0,0 +1,62 @@ +package egovframework.com.sec.rgm.service; + +import java.util.List; + + +/** + * 권한그룹에 관한 서비스 인터페이스 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public interface EgovAuthorGroupService { + + /** + * 그룹별 할당된 시스템 메뉴 접근권한을 삭제 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void deleteAuthorGroup(AuthorGroup authorGroup) throws Exception; + + /** + * 그룹에 권한정보를 할당하여 데이터베이스에 등록 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void insertAuthorGroup(AuthorGroup authorGroup) throws Exception; + + /** + * 그룹별 할당된 권한 목록 조회 + * @param authorGroupVO AuthorGroupVO + * @return List + * @exception Exception + */ + public List selectAuthorGroupList(AuthorGroupVO authorGroupVO) throws Exception; + + /** + * 화면에 조회된 그룹권한정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void updateAuthorGroup(AuthorGroup authorGroup) throws Exception; + + /** + * 목록조회 카운트를 반환한다 + * @param authorGroupVO AuthorGroupVO + * @return int + * @exception Exception + */ + public int selectAuthorGroupListTotCnt(AuthorGroupVO authorGroupVO) throws Exception; + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rgm/service/impl/AuthorGroupDAO.java b/src/main/java/egovframework/com/sec/rgm/service/impl/AuthorGroupDAO.java new file mode 100644 index 0000000..04d39f9 --- /dev/null +++ b/src/main/java/egovframework/com/sec/rgm/service/impl/AuthorGroupDAO.java @@ -0,0 +1,78 @@ +package egovframework.com.sec.rgm.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sec.rgm.service.AuthorGroup; +import egovframework.com.sec.rgm.service.AuthorGroupVO; + +import org.springframework.stereotype.Repository; + +/** + * 권한그룹에 대한 DAO 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +@Repository("authorGroupDAO") +public class AuthorGroupDAO extends EgovComAbstractDAO { + + /** + * 그룹별 할당된 권한 목록 조회 + * @param authorGroupVO AuthorGroupVO + * @return List + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectAuthorGroupList(AuthorGroupVO authorGroupVO) throws Exception { + return (List) list("authorGroupDAO.selectAuthorGroupList", authorGroupVO); + } + + /** + * 그룹에 권한정보를 할당하여 데이터베이스에 등록 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void insertAuthorGroup(AuthorGroup authorGroup) throws Exception { + insert("authorGroupDAO.insertAuthorGroup", authorGroup); + } + + /** + * 화면에 조회된 그룹권한정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void updateAuthorGroup(AuthorGroup authorGroup) throws Exception { + update("authorGroupDAO.updateAuthorGroup", authorGroup); + } + + /** + * 그룹별 할당된 시스템 메뉴 접근권한을 삭제 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void deleteAuthorGroup(AuthorGroup authorGroup) throws Exception { + delete("authorGroupDAO.deleteAuthorGroup", authorGroup); + } + + /** + * 그룹권한목록 총 갯수를 조회한다. + * @param authorGroupVO AuthorGroupVO + * @return int + * @exception Exception + */ + public int selectAuthorGroupListTotCnt(AuthorGroupVO authorGroupVO) throws Exception { + return (Integer)select("authorGroupDAO.selectAuthorGroupListTotCnt", authorGroupVO); + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rgm/service/impl/EgovAuthorGroupServiceImpl.java b/src/main/java/egovframework/com/sec/rgm/service/impl/EgovAuthorGroupServiceImpl.java new file mode 100644 index 0000000..9ea5e63 --- /dev/null +++ b/src/main/java/egovframework/com/sec/rgm/service/impl/EgovAuthorGroupServiceImpl.java @@ -0,0 +1,85 @@ +package egovframework.com.sec.rgm.service.impl; + +import java.util.List; + +import egovframework.com.sec.rgm.service.AuthorGroup; +import egovframework.com.sec.rgm.service.AuthorGroupVO; +import egovframework.com.sec.rgm.service.EgovAuthorGroupService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * 권한그룹에 관한 ServiceImpl 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Service("egovAuthorGroupService") +public class EgovAuthorGroupServiceImpl extends EgovAbstractServiceImpl implements EgovAuthorGroupService { + + @Resource(name="authorGroupDAO") + private AuthorGroupDAO authorGroupDAO; + + /** + * 그룹별 할당된 권한 목록 조회 + * @param authorGroupVO AuthorGroupVO + * @return List + * @exception Exception + */ + public List selectAuthorGroupList(AuthorGroupVO authorGroupVO) throws Exception{ + return authorGroupDAO.selectAuthorGroupList(authorGroupVO); + } + + /** + * 그룹에 권한정보를 할당하여 데이터베이스에 등록 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void insertAuthorGroup(AuthorGroup authorGroup) throws Exception{ + authorGroupDAO.insertAuthorGroup(authorGroup); + } + + /** + * 화면에 조회된 그룹권한정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void updateAuthorGroup(AuthorGroup authorGroup) throws Exception{ + authorGroupDAO.updateAuthorGroup(authorGroup); + } + + /** + * 그룹별 할당된 시스템 메뉴 접근권한을 삭제 + * @param authorGroup AuthorGroup + * @exception Exception + */ + public void deleteAuthorGroup(AuthorGroup authorGroup) throws Exception { + authorGroupDAO.deleteAuthorGroup(authorGroup); + } + + /** + * 목록조회 카운트를 반환한다 + * @param authorGroupVO AuthorGroupVO + * @return int + * @exception Exception + */ + public int selectAuthorGroupListTotCnt(AuthorGroupVO authorGroupVO) throws Exception { + return authorGroupDAO.selectAuthorGroupListTotCnt(authorGroupVO); + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rgm/web/EgovAuthorGroupController.java b/src/main/java/egovframework/com/sec/rgm/web/EgovAuthorGroupController.java new file mode 100644 index 0000000..a5caf81 --- /dev/null +++ b/src/main/java/egovframework/com/sec/rgm/web/EgovAuthorGroupController.java @@ -0,0 +1,174 @@ +package egovframework.com.sec.rgm.web; + +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.SessionVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.sec.ram.service.AuthorManageVO; +import egovframework.com.sec.ram.service.EgovAuthorManageService; +import egovframework.com.sec.rgm.service.AuthorGroup; +import egovframework.com.sec.rgm.service.AuthorGroupVO; +import egovframework.com.sec.rgm.service.EgovAuthorGroupService; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; + +/** + * 권한그룹에 관한 controller 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *   2011.08.04  서준식          mberTyCodes 구분자 부분 추가
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ * 
+ */ + + +@Controller +@SessionAttributes(types=SessionVO.class) +public class EgovAuthorGroupController { + + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + @Resource(name = "egovAuthorGroupService") + private EgovAuthorGroupService egovAuthorGroupService; + + @Resource(name = "egovAuthorManageService") + private EgovAuthorManageService egovAuthorManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** + * 권한 목록화면 이동 + * @return String + * @exception Exception + */ + @RequestMapping("/sec/rgm/EgovAuthorGroupListView.do") + public String selectAuthorGroupListView() throws Exception { + + return "egovframework/com/sec/rgm/EgovAuthorGroupManage"; + } + + /** + * 그룹별 할당된 권한 목록 조회 + * @param authorGroupVO AuthorGroupVO + * @param authorManageVO AuthorManageVO + * @return String + * @exception Exception + */ + @IncludedInfo(name="권한그룹관리", listUrl="/sec/rgm/EgovAuthorGroupList.do", order = 70,gid = 20) + @RequestMapping(value="/sec/rgm/EgovAuthorGroupList.do") + public String selectAuthorGroupList(@ModelAttribute("authorGroupVO") AuthorGroupVO authorGroupVO, + @ModelAttribute("authorManageVO") AuthorManageVO authorManageVO, + ModelMap model) throws Exception { + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(authorGroupVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(authorGroupVO.getPageUnit()); + paginationInfo.setPageSize(authorGroupVO.getPageSize()); + + authorGroupVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + authorGroupVO.setLastIndex(paginationInfo.getLastRecordIndex()); + authorGroupVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + authorGroupVO.setAuthorGroupList(egovAuthorGroupService.selectAuthorGroupList(authorGroupVO)); + model.addAttribute("authorGroupList", authorGroupVO.getAuthorGroupList()); + + int totCnt = egovAuthorGroupService.selectAuthorGroupListTotCnt(authorGroupVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorAllList(authorManageVO)); + model.addAttribute("authorManageList", authorManageVO.getAuthorManageList()); + + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + return "egovframework/com/sec/rgm/EgovAuthorGroupManage"; + } + + /** + * 그룹에 권한정보를 할당하여 데이터베이스에 등록 + * @param userIds String + * @param authorCodes String + * @param regYns String + * @param authorGroup AuthorGroup + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/rgm/EgovAuthorGroupInsert.do") + public String insertAuthorGroup(@RequestParam("userIds") String userIds, + @RequestParam("authorCodes") String authorCodes, + @RequestParam("regYns") String regYns, + @RequestParam("mberTyCodes") String mberTyCodes,// 2011.08.04 수정 부분 + @ModelAttribute("authorGroup") AuthorGroup authorGroup, + SessionStatus status, + ModelMap model) throws Exception { + + String [] strUserIds = userIds.split(";"); + String [] strAuthorCodes = authorCodes.split(";"); + String [] strRegYns = regYns.split(";"); + String [] strMberTyCodes = mberTyCodes.split(";");// 2011.08.04 수정 부분 + + for(int i=0; i + * << 개정이력(Modification Information) >> + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.03.20 이문준 최초 생성 + * + * + */ + +public interface EgovRoleManageService { + + /** + * 등록된 롤 정보 조회 + * @param roleManageVO RoleManageVO + * @return RoleManageVO + * @exception Exception + */ + public RoleManageVO selectRole(RoleManageVO roleManageVO) throws Exception; + + /** + * 등록된 롤 정보 목록 조회 + * @param roleManageVO RoleManageVO + * @return List + * @exception Exception + */ + public List selectRoleList(RoleManageVO roleManageVO) throws Exception; + + /** + * 불필요한 롤정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param roleManage RoleManage + * @exception Exception + */ + public void deleteRole(RoleManage roleManage) throws Exception; + + /** + * 시스템 메뉴에 따른 접근권한, 데이터 입력, 수정, 삭제의 권한 롤을 수정 + * @param roleManage RoleManage + * @exception Exception + */ + public void updateRole(RoleManage roleManage) throws Exception; + + /** + * 시스템 메뉴에 따른 접근권한, 데이터 입력, 수정, 삭제의 권한 롤을 등록 + * @param roleManage RoleManage + * @param roleManageVO RoleManageVO + * @return RoleManageVO + * @exception Exception + */ + public RoleManageVO insertRole(RoleManage roleManage, RoleManageVO roleManageVO) throws Exception; + + /** + * 목록조회 카운트를 반환한다 + * @param roleManageVO RoleManageVO + * @return int + * @exception Exception + */ + public int selectRoleListTotCnt(RoleManageVO roleManageVO) throws Exception; + + /** + * 등록된 모든 롤 정보 목록 조회 + * @param roleManageVO RoleManageVO + * @return List + * @exception Exception + */ + public List selectRoleAllList(RoleManageVO roleManageVO) throws Exception; + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rmt/service/RoleManage.java b/src/main/java/egovframework/com/sec/rmt/service/RoleManage.java new file mode 100644 index 0000000..fb4f31c --- /dev/null +++ b/src/main/java/egovframework/com/sec/rmt/service/RoleManage.java @@ -0,0 +1,192 @@ +package egovframework.com.sec.rmt.service; + +import egovframework.com.cmm.ComDefaultVO; + +/** + * 롤관리에 대한 model 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class RoleManage extends ComDefaultVO { + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 롤 관리 + */ + private RoleManage roleManage; + /** + * 롤코드 + */ + private String roleCode; + /** + * 롤명 + */ + private String roleNm; + /** + * 롤패턴 + */ + private String rolePtn; + /** + * 롤 설명 + */ + private String roleDc; + /** + * 롤 타입 + */ + private String roleTyp; + /** + * 롤 Sort + */ + private String roleSort; + /** + * 롤 등록일시 + */ + private String roleCreatDe; + /** + * 권한 코드 + */ + private String authorCode; + + /** + * roleManage attribute 를 리턴한다. + * @return RoleManage + */ + public RoleManage getRoleManage() { + return roleManage; + } + /** + * roleManage attribute 값을 설정한다. + * @param roleManage RoleManage + */ + public void setRoleManage(RoleManage roleManage) { + this.roleManage = roleManage; + } + /** + * roleCode attribute 를 리턴한다. + * @return String + */ + public String getRoleCode() { + return roleCode; + } + /** + * roleCode attribute 값을 설정한다. + * @param roleCode String + */ + public void setRoleCode(String roleCode) { + this.roleCode = roleCode; + } + /** + * roleNm attribute 를 리턴한다. + * @return String + */ + public String getRoleNm() { + return roleNm; + } + /** + * roleNm attribute 값을 설정한다. + * @param roleNm String + */ + public void setRoleNm(String roleNm) { + this.roleNm = roleNm; + } + /** + * rolePtn attribute 를 리턴한다. + * @return String + */ + public String getRolePtn() { + return rolePtn; + } + /** + * rolePtn attribute 값을 설정한다. + * @param rolePtn String + */ + public void setRolePtn(String rolePtn) { + this.rolePtn = rolePtn; + } + /** + * roleDc attribute 를 리턴한다. + * @return String + */ + public String getRoleDc() { + return roleDc; + } + /** + * roleDc attribute 값을 설정한다. + * @param roleDc String + */ + public void setRoleDc(String roleDc) { + this.roleDc = roleDc; + } + /** + * roleTyp attribute 를 리턴한다. + * @return String + */ + public String getRoleTyp() { + return roleTyp; + } + /** + * roleTyp attribute 값을 설정한다. + * @param roleTyp String + */ + public void setRoleTyp(String roleTyp) { + this.roleTyp = roleTyp; + } + /** + * roleSort attribute 를 리턴한다. + * @return String + */ + public String getRoleSort() { + return roleSort; + } + /** + * roleSort attribute 값을 설정한다. + * @param roleSort String + */ + public void setRoleSort(String roleSort) { + this.roleSort = roleSort; + } + /** + * roleCreatDe attribute 를 리턴한다. + * @return String + */ + public String getRoleCreatDe() { + return roleCreatDe; + } + /** + * roleCreatDe attribute 값을 설정한다. + * @param roleCreatDe String + */ + public void setRoleCreatDe(String roleCreatDe) { + this.roleCreatDe = roleCreatDe; + } + /** + * authorCode attribute 를 리턴한다. + * @return String + */ + public String getAuthorCode() { + return authorCode; + } + /** + * authorCode attribute 값을 설정한다. + * @param authorCode String + */ + public void setAuthorCode(String authorCode) { + this.authorCode = authorCode; + } + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rmt/service/RoleManageVO.java b/src/main/java/egovframework/com/sec/rmt/service/RoleManageVO.java new file mode 100644 index 0000000..c2af72d --- /dev/null +++ b/src/main/java/egovframework/com/sec/rmt/service/RoleManageVO.java @@ -0,0 +1,66 @@ +package egovframework.com.sec.rmt.service; + +import java.util.List; + +/** + * 롤관리에 대한 Vo 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.20  이문준          최초 생성
+ *
+ * 
+ */ + +public class RoleManageVO extends RoleManage { + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 롤 목록 + */ + List roleManageList; + /** + * 삭제대상 목록 + */ + String[] delYn; + + /** + * roleManageList attribute 를 리턴한다. + * @return List + */ + public List getRoleManageList() { + return roleManageList; + } + /** + * roleManageList attribute 값을 설정한다. + * @param roleManageList List + */ + public void setRoleManageList(List roleManageList) { + this.roleManageList = roleManageList; + } + /** + * delYn attribute 를 리턴한다. + * @return String[] + */ + public String[] getDelYn() { + return delYn; + } + /** + * delYn attribute 값을 설정한다. + * @param delYn String[] + */ + public void setDelYn(String[] delYn) { + this.delYn = delYn; + } + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rmt/service/impl/EgovRoleManageServiceImpl.java b/src/main/java/egovframework/com/sec/rmt/service/impl/EgovRoleManageServiceImpl.java new file mode 100644 index 0000000..65ab7dc --- /dev/null +++ b/src/main/java/egovframework/com/sec/rmt/service/impl/EgovRoleManageServiceImpl.java @@ -0,0 +1,109 @@ +package egovframework.com.sec.rmt.service.impl; + +import java.util.List; + +import egovframework.com.sec.rmt.service.EgovRoleManageService; +import egovframework.com.sec.rmt.service.RoleManage; +import egovframework.com.sec.rmt.service.RoleManageVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * 롤관리에 관한 ServiceImpl 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Service("egovRoleManageService") +public class EgovRoleManageServiceImpl extends EgovAbstractServiceImpl implements EgovRoleManageService { + + @Resource(name="roleManageDAO") + public RoleManageDAO roleManageDAO; + + /** + * 등록된 롤 정보 조회 + * @param roleManageVO RoleManageVO + * @return RoleManageVO + * @exception Exception + */ + public RoleManageVO selectRole(RoleManageVO roleManageVO) throws Exception { + return roleManageDAO.selectRole(roleManageVO); + } + + /** + * 등록된 롤 정보 목록 조회 + * @param roleManageVO RoleManageVO + * @return List + * @exception Exception + */ + public List selectRoleList(RoleManageVO roleManageVO) throws Exception { + return roleManageDAO.selectRoleList(roleManageVO); + } + + /** + * 불필요한 롤정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param roleManage RoleManage + * @exception Exception + */ + public void deleteRole(RoleManage roleManage) throws Exception { + roleManageDAO.deleteRole(roleManage); + } + + /** + * 시스템 메뉴에 따른 접근권한, 데이터 입력, 수정, 삭제의 권한 롤을 수정 + * @param roleManage RoleManage + * @exception Exception + */ + public void updateRole(RoleManage roleManage) throws Exception { + roleManageDAO.updateRole(roleManage); + } + + /** + * 시스템 메뉴에 따른 접근권한, 데이터 입력, 수정, 삭제의 권한 롤을 등록 + * @param roleManage RoleManage + * @param roleManageVO RoleManageVO + * @return RoleManageVO + * @exception Exception + */ + public RoleManageVO insertRole(RoleManage roleManage, RoleManageVO roleManageVO) throws Exception { + roleManageDAO.insertRole(roleManage); + roleManageVO.setRoleCode(roleManage.getRoleCode()); + return roleManageDAO.selectRole(roleManageVO); + } + + /** + * 목록조회 카운트를 반환한다 + * @param roleManageVO RoleManageVO + * @return int + * @exception Exception + */ + public int selectRoleListTotCnt(RoleManageVO roleManageVO) throws Exception { + return roleManageDAO.selectRoleListTotCnt(roleManageVO); + } + + /** + * 등록된 모든 롤 정보 목록 조회 + * @param roleManageVO - 등록할 정보가 담긴 RoleManageVO + * @return List + * @exception Exception + */ + public List selectRoleAllList(RoleManageVO roleManageVO) throws Exception { + return roleManageDAO.selectRoleAllList(roleManageVO); + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rmt/service/impl/RoleManageDAO.java b/src/main/java/egovframework/com/sec/rmt/service/impl/RoleManageDAO.java new file mode 100644 index 0000000..7fa0270 --- /dev/null +++ b/src/main/java/egovframework/com/sec/rmt/service/impl/RoleManageDAO.java @@ -0,0 +1,98 @@ +package egovframework.com.sec.rmt.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sec.rmt.service.RoleManage; +import egovframework.com.sec.rmt.service.RoleManageVO; + +import org.springframework.stereotype.Repository; + +/** + * 롤관리에 대한 DAO 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +@Repository("roleManageDAO") +public class RoleManageDAO extends EgovComAbstractDAO { + + /** + * 등록된 롤 정보 조회 + * @param roleManageVO RoleManageVO + * @return RoleManageVO + * @exception Exception + */ + public RoleManageVO selectRole(RoleManageVO roleManageVO) throws Exception { + return (RoleManageVO) select("roleManageDAO.selectRole", roleManageVO); + } + + /** + * 등록된 롤 정보 목록 조회 + * @param roleManageVO RoleManageVO + * @return List + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectRoleList(RoleManageVO roleManageVO) throws Exception { + return (List) list("roleManageDAO.selectRoleList", roleManageVO); + } + + /** + * 시스템 메뉴에 따른 접근권한, 데이터 입력, 수정, 삭제의 권한 롤을 등록 + * @param roleManage RoleManage + * @exception Exception + */ + public void insertRole(RoleManage roleManage) throws Exception { + insert("roleManageDAO.insertRole", roleManage); + } + /** + * 시스템 메뉴에 따른 접근권한, 데이터 입력, 수정, 삭제의 권한 롤을 수정 + * @param roleManage RoleManage + * @exception Exception + */ + public void updateRole(RoleManage roleManage) throws Exception { + update("roleManageDAO.updateRole", roleManage); + } + /** + * 불필요한 롤정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param roleManage RoleManage + * @exception Exception + */ + public void deleteRole(RoleManage roleManage) throws Exception { + delete("roleManageDAO.deleteRole", roleManage); + } + + /** + * 롤목록 총 갯수를 조회한다. + * @param roleManageVO RoleManageVO + * @return int + * @exception Exception + */ + public int selectRoleListTotCnt(RoleManageVO roleManageVO) throws Exception { + return (Integer)select("roleManageDAO.selectAuthorListTotCnt", roleManageVO); + } + + /** + * 등록된 모든 롤 정보 목록 조회 + * @param roleManageVO RoleManageVO + * @return List + * @exception Exception + */ + @SuppressWarnings("unchecked") + public List selectRoleAllList(RoleManageVO roleManageVO) throws Exception { + return (List) list("roleManageDAO.selectRoleAllList", roleManageVO); + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sec/rmt/web/EgovRoleManageController.java b/src/main/java/egovframework/com/sec/rmt/web/EgovRoleManageController.java new file mode 100644 index 0000000..c97e54d --- /dev/null +++ b/src/main/java/egovframework/com/sec/rmt/web/EgovRoleManageController.java @@ -0,0 +1,279 @@ +package egovframework.com.sec.rmt.web; + +import java.util.List; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.SessionVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.service.EgovCmmUseService; +import egovframework.com.sec.ram.service.AuthorManageVO; +import egovframework.com.sec.ram.service.EgovAuthorManageService; +import egovframework.com.sec.rmt.service.EgovRoleManageService; +import egovframework.com.sec.rmt.service.RoleManage; +import egovframework.com.sec.rmt.service.RoleManageVO; + +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springmodules.validation.commons.DefaultBeanValidator; + +/** + * 롤관리에 관한 controller 클래스를 정의한다. + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * 
+ */ + + +@Controller +@SessionAttributes(types=SessionVO.class) +public class EgovRoleManageController { + + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + @Resource(name = "egovRoleManageService") + private EgovRoleManageService egovRoleManageService; + + @Resource(name = "EgovCmmUseService") + EgovCmmUseService egovCmmUseService; + + @Resource(name = "egovAuthorManageService") + private EgovAuthorManageService egovAuthorManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** Message ID Generation */ + @Resource(name="egovRoleIdGnrService") + private EgovIdGnrService egovRoleIdGnrService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 롤 목록화면 이동 + * @return String + * @exception Exception + */ + @RequestMapping("/sec/rmt/EgovRoleListView.do") + public String selectRoleListView() + throws Exception { + return "egovframework/com/sec/rmt/EgovRoleManage"; + } + + /** + * 등록된 롤 정보 목록 조회 + * @param roleManageVO RoleManageVO + * @return String + * @exception Exception + */ + @IncludedInfo(name="롤관리", listUrl="/sec/rmt/EgovRoleList.do", order = 90,gid = 20) + @RequestMapping(value="/sec/rmt/EgovRoleList.do") + public String selectRoleList(@ModelAttribute("roleManageVO") RoleManageVO roleManageVO, + ModelMap model) throws Exception { + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(roleManageVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(roleManageVO.getPageUnit()); + paginationInfo.setPageSize(roleManageVO.getPageSize()); + + roleManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + roleManageVO.setLastIndex(paginationInfo.getLastRecordIndex()); + roleManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + roleManageVO.setRoleManageList(egovRoleManageService.selectRoleList(roleManageVO)); + model.addAttribute("roleList", roleManageVO.getRoleManageList()); + + int totCnt = egovRoleManageService.selectRoleListTotCnt(roleManageVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + return "egovframework/com/sec/rmt/EgovRoleManage"; + } + + /** + * 등록된 롤 정보 조회 + * @param roleCode String + * @param roleManageVO RoleManageVO + * @param authorManageVO AuthorManageVO + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/rmt/EgovRole.do") + public String selectRole(@RequestParam("roleCode") String roleCode, + @ModelAttribute("roleManageVO") RoleManageVO roleManageVO, + @ModelAttribute("authorManageVO") AuthorManageVO authorManageVO, + ModelMap model) throws Exception { + + roleManageVO.setRoleCode(roleCode); + + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorAllList(authorManageVO)); + + model.addAttribute("roleManage", egovRoleManageService.selectRole(roleManageVO)); + model.addAttribute("authorManageList", authorManageVO.getAuthorManageList()); + model.addAttribute("cmmCodeDetailList", getCmmCodeDetailList(new ComDefaultCodeVO(),"COM029")); + + return "egovframework/com/sec/rmt/EgovRoleUpdate"; + } + + /** + * 롤 등록화면 이동 + * @param authorManageVO AuthorManageVO + * @return String + * @exception Exception + */ + @RequestMapping("/sec/rmt/EgovRoleInsertView.do") + public String insertRoleView(@ModelAttribute("authorManageVO") AuthorManageVO authorManageVO, + ModelMap model) throws Exception { + + authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorAllList(authorManageVO)); + model.addAttribute("authorManageList", authorManageVO.getAuthorManageList()); + model.addAttribute("cmmCodeDetailList", getCmmCodeDetailList(new ComDefaultCodeVO(),"COM029")); + + return "egovframework/com/sec/rmt/EgovRoleInsert"; + } + + /** + * 공통코드 호출 + * @param comDefaultCodeVO ComDefaultCodeVO + * @param codeId String + * @return List + * @exception Exception + */ + public List getCmmCodeDetailList(ComDefaultCodeVO comDefaultCodeVO, String codeId) throws Exception { + comDefaultCodeVO.setCodeId(codeId); + return egovCmmUseService.selectCmmCodeDetail(comDefaultCodeVO); + } + + /** + * 시스템 메뉴에 따른 접근권한, 데이터 입력, 수정, 삭제의 권한 롤을 등록 + * @param roleManage RoleManage + * @param roleManageVO RoleManageVO + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/rmt/EgovRoleInsert.do") + public String insertRole(@ModelAttribute("roleManage") RoleManage roleManage, + @ModelAttribute("roleManageVO") RoleManageVO roleManageVO, + BindingResult bindingResult, + SessionStatus status, + ModelMap model) throws Exception { + + beanValidator.validate(roleManage, bindingResult); //validation 수행 + + if (bindingResult.hasErrors()) { + return "egovframework/com/sec/rmt/EgovRoleInsert"; + } else { + String roleTyp = roleManage.getRoleTyp(); + if(roleTyp.equals("method")) + roleTyp = "mtd"; + else if(roleTyp.equals("pointcut")) + roleTyp = "pct"; + else roleTyp = "web"; + + roleManage.setRoleCode(roleTyp.concat("-").concat(egovRoleIdGnrService.getNextStringId())); + roleManageVO.setRoleCode(roleManage.getRoleCode()); + + status.setComplete(); + model.addAttribute("cmmCodeDetailList", getCmmCodeDetailList(new ComDefaultCodeVO(),"COM029")); + model.addAttribute("message", egovMessageSource.getMessage("success.common.insert")); + model.addAttribute("roleManage", egovRoleManageService.insertRole(roleManage, roleManageVO)); + + return "egovframework/com/sec/rmt/EgovRoleUpdate"; + } + } + + /** + * 시스템 메뉴에 따른 접근권한, 데이터 입력, 수정, 삭제의 권한 롤을 수정 + * @param roleManage RoleManage + * @param bindingResult BindingResult + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/rmt/EgovRoleUpdate.do") + public String updateRole(@ModelAttribute("roleManage") RoleManage roleManage, + BindingResult bindingResult, + SessionStatus status, + ModelMap model) throws Exception { + + beanValidator.validate(roleManage, bindingResult); //validation 수행 + if (bindingResult.hasErrors()) { + return "egovframework/com/sec/rmt/EgovRoleUpdate"; + } else { + egovRoleManageService.updateRole(roleManage); + status.setComplete(); + model.addAttribute("message", egovMessageSource.getMessage("success.common.update")); + return "forward:/sec/rmt/EgovRole.do"; + } + } + + /** + * 불필요한 롤정보를 화면에 조회하여 데이터베이스에서 삭제 + * @param roleManage RoleManage + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/rmt/EgovRoleDelete.do") + public String deleteRole(@ModelAttribute("roleManage") RoleManage roleManage, + SessionStatus status, + ModelMap model) throws Exception { + + egovRoleManageService.deleteRole(roleManage); + status.setComplete(); + model.addAttribute("message", egovMessageSource.getMessage("success.common.delete")); + return "forward:/sec/rmt/EgovRoleList.do"; + + } + + /** + * 불필요한 그룹정보 목록을 화면에 조회하여 데이터베이스에서 삭제 + * @param roleCodes String + * @param roleManage RoleManage + * @return String + * @exception Exception + */ + @RequestMapping(value="/sec/rmt/EgovRoleListDelete.do") + public String deleteRoleList(@RequestParam("roleCodes") String roleCodes, + @ModelAttribute("roleManage") RoleManage roleManage, + SessionStatus status, + Model model) throws Exception { + String [] strRoleCodes = roleCodes.split(";"); + for(int i=0; i + * << 개정이력(Modification Information) >> + * + * 수정일 수정자 수정내용 + * ------- ------------- ---------------------- + * 2009.03.10 ByungHun Woo 최초 생성 + * 2009.03.20 이문준 UPDATE + * + * + */ + +public class EgovSessionMapping extends EgovUsersByUsernameMapping { + + /** + * 사용자정보를 테이블에서 조회하여 EgovUsersByUsernameMapping 에 매핑한다. + * @param ds DataSource + * @param usersByUsernameQuery String + */ + public EgovSessionMapping(DataSource ds, String usersByUsernameQuery) { + super(ds, usersByUsernameQuery); + } + + /** + * mapRow Override + * @param rs ResultSet 결과 + * @param rownum row num + * @return Object EgovUserDetails + * @exception SQLException + */ + @Override + protected EgovUserDetails mapRow(ResultSet rs, int rownum) throws SQLException { + logger.debug("## EgovUsersByUsernameMapping mapRow ##"); + + String strUserId = rs.getString("user_id"); + String strPassWord = rs.getString("password"); + boolean strEnabled = rs.getBoolean("enabled"); + + String strUserNm = rs.getString("user_nm"); + String strUserSe = rs.getString("user_se"); + String strUserEmail = rs.getString("user_email"); + String strOrgnztId = rs.getString("orgnzt_id"); + String strUniqId = rs.getString("esntl_id"); + /**2010.06.30 *이용 *조직명 추가 */ + String strOrgnztNm = rs.getString("orgnzt_nm"); + + + + // 세션 항목 설정 + LoginVO loginVO = new LoginVO(); + loginVO.setId(strUserId); + loginVO.setPassword(strPassWord); + loginVO.setName(strUserNm); + loginVO.setUserSe(strUserSe); + loginVO.setEmail(strUserEmail); + loginVO.setOrgnztId(strOrgnztId); + loginVO.setUniqId(strUniqId); + /**2010.06.30 *이용 *조직명 추가 */ + loginVO.setOrgnztNm(strOrgnztNm); + + return new EgovUserDetails(strUserId, strPassWord, strEnabled, loginVO); + } +} diff --git a/src/main/java/egovframework/com/sec/security/filter/EgovSpringSecurityLoginFilter.java b/src/main/java/egovframework/com/sec/security/filter/EgovSpringSecurityLoginFilter.java new file mode 100644 index 0000000..9966c57 --- /dev/null +++ b/src/main/java/egovframework/com/sec/security/filter/EgovSpringSecurityLoginFilter.java @@ -0,0 +1,122 @@ +package egovframework.com.sec.security.filter; + +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.com.uat.uia.service.EgovLoginService; +import java.io.IOException; +import java.util.Map; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +public class EgovSpringSecurityLoginFilter implements Filter { + private FilterConfig config; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovSpringSecurityLoginFilter.class); + + public void destroy() {} + + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + LOGGER.info("EgovSpringSecurityLoginFilter called..."); + String loginURL = this.config.getInitParameter("loginURL"); + loginURL = loginURL.replaceAll("\r", "").replaceAll("\n", ""); + String loginProcessURL = this.config.getInitParameter("loginProcessURL"); + loginProcessURL = loginProcessURL.replaceAll("\r", "").replaceAll("\n", ""); + WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(this.config.getServletContext()); + EgovLoginService loginService = (EgovLoginService)webApplicationContext.getBean("loginService"); + EgovMessageSource egovMessageSource = (EgovMessageSource)webApplicationContext.getBean("egovMessageSource"); + HttpServletRequest httpRequest = (HttpServletRequest)request; + HttpServletResponse httpResponse = (HttpServletResponse)response; + HttpSession session = httpRequest.getSession(); + String isRemotelyAuthenticated = (String)session.getAttribute("isRemotelyAuthenticated"); + String requestURL = ((HttpServletRequest)request).getRequestURI(); + if (EgovUserDetailsHelper.getAuthenticatedUser() == null || requestURL.contains(loginProcessURL)) + if (isRemotelyAuthenticated != null && isRemotelyAuthenticated.equals("true")) { + try { + LoginVO loginVO = (LoginVO)session.getAttribute("loginVOForDBAuthentication"); + System.out.println("loginVO : " + loginVO); + loginVO = loginService.actionLoginByEsntlId(loginVO); + if (loginVO != null && loginVO.getId() != null && !loginVO.getId().equals("")) { + session.setAttribute("loginVO", loginVO); + session.setAttribute("isLocallyAuthenticated", "true"); + UsernamePasswordAuthenticationFilter springSecurity = null; + Map beans = webApplicationContext.getBeansOfType(UsernamePasswordAuthenticationFilter.class); + if (beans.size() > 0) { + springSecurity = (UsernamePasswordAuthenticationFilter)beans.values().toArray()[0]; + } else { + LOGGER.error("No AuthenticationProcessingFilter"); + throw new IllegalStateException("No AuthenticationProcessingFilter"); + } + LOGGER.debug("before security filter call...."); + springSecurity.doFilter((ServletRequest)new RequestWrapperForSecurity(httpRequest, String.valueOf(loginVO.getUserSe()) + loginVO.getId(), loginVO.getId()), (ServletResponse)httpResponse, chain); + LOGGER.debug("after security filter call...."); + } + } catch (Exception ex) { + LOGGER.debug("Local authentication Fail : {}", ex.getMessage()); + } + } else if (isRemotelyAuthenticated == null && + requestURL.contains(loginProcessURL)) { + String password = httpRequest.getParameter("password"); + System.out.println("password : " + password); + if (password == null || password.equals("") || password.length() < 8 || password.length() > 20) { + httpRequest.setAttribute("message", egovMessageSource.getMessage("fail.common.login.password")); + RequestDispatcher dispatcher = httpRequest.getRequestDispatcher(loginURL); + dispatcher.forward((ServletRequest)httpRequest, (ServletResponse)httpResponse); + return; + } + LoginVO loginVO = new LoginVO(); + loginVO.setId(httpRequest.getParameter("id")); + loginVO.setUserSe(httpRequest.getParameter("userSe")); + try { + loginVO = loginService.actionLogin(loginVO); + System.out.println("loginVO : " + loginVO); + if (loginVO != null && loginVO.getId() != null && !loginVO.getId().equals("")) { + session.setAttribute("loginVO", loginVO); + session.setAttribute("isLocallyAuthenticated", "true"); + UsernamePasswordAuthenticationFilter springSecurity = null; + Map beans = webApplicationContext.getBeansOfType(UsernamePasswordAuthenticationFilter.class); + if (beans.size() > 0) { + springSecurity = (UsernamePasswordAuthenticationFilter)beans.values().toArray()[0]; + } else { + LOGGER.error("No AuthenticationProcessingFilter"); + throw new IllegalStateException("No AuthenticationProcessingFilter"); + } + springSecurity.setContinueChainBeforeSuccessfulAuthentication(false); + LOGGER.debug("before security filter call...."); + springSecurity.doFilter((ServletRequest)new RequestWrapperForSecurity(httpRequest, String.valueOf(loginVO.getUserSe()) + loginVO.getId(), loginVO.getId()), (ServletResponse)httpResponse, chain); + LOGGER.debug("after security filter call...."); + } else { + httpRequest.setAttribute("message", egovMessageSource.getMessage("fail.common.login")); + RequestDispatcher dispatcher = httpRequest.getRequestDispatcher(loginURL); + dispatcher.forward((ServletRequest)httpRequest, (ServletResponse)httpResponse); + return; + } + } catch (Exception ex) { + LOGGER.error("Login Exception : {}", ex.getCause(), ex); + httpRequest.setAttribute("message", egovMessageSource.getMessage("fail.common.login")); + RequestDispatcher dispatcher = httpRequest.getRequestDispatcher(loginURL); + dispatcher.forward((ServletRequest)httpRequest, (ServletResponse)httpResponse); + return; + } + return; + } + chain.doFilter(request, response); + } + + public void init(FilterConfig filterConfig) throws ServletException { + this.config = filterConfig; + } +} diff --git a/src/main/java/egovframework/com/sec/security/filter/EgovSpringSecurityLogoutFilter.java b/src/main/java/egovframework/com/sec/security/filter/EgovSpringSecurityLogoutFilter.java new file mode 100644 index 0000000..ded7363 --- /dev/null +++ b/src/main/java/egovframework/com/sec/security/filter/EgovSpringSecurityLogoutFilter.java @@ -0,0 +1,61 @@ +package egovframework.com.sec.security.filter; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * + * @author 공통서비스 개발팀 서준식 + * @since 2011. 8. 29. + * @version 1.0 + * @see + * + *
+ * 개정이력(Modification Information)
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011. 8. 29.    서준식        최초생성
+ *
+ *  
+ */ + +public class EgovSpringSecurityLogoutFilter implements Filter{ + + @SuppressWarnings("unused") + private FilterConfig config; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovSpringSecurityLogoutFilter.class); + + public void destroy() {} + + + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + + String requestURL = ((HttpServletRequest)request).getRequestURI(); + LOGGER.debug(requestURL); + + ((HttpServletRequest)request).getSession().setAttribute("loginVO", null); + ((HttpServletResponse)response).sendRedirect(((HttpServletRequest)request).getContextPath() + "/j_spring_security_logout"); + + } + + public void init(FilterConfig filterConfig) throws ServletException { + + this.config = filterConfig; + + } +} diff --git a/src/main/java/egovframework/com/sec/security/filter/RequestWrapperForSecurity.java b/src/main/java/egovframework/com/sec/security/filter/RequestWrapperForSecurity.java new file mode 100644 index 0000000..f5e66d4 --- /dev/null +++ b/src/main/java/egovframework/com/sec/security/filter/RequestWrapperForSecurity.java @@ -0,0 +1,39 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.sec.security.filter.RequestWrapperForSecurity + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletRequestWrapper + */ +package egovframework.com.sec.security.filter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +class RequestWrapperForSecurity +extends HttpServletRequestWrapper { + private String username = null; + private String password = null; + + public RequestWrapperForSecurity(HttpServletRequest request, String username, String password) { + super(request); + this.username = username; + this.password = password; + } + + public String getRequestURI() { + return String.valueOf(((HttpServletRequest)super.getRequest()).getContextPath()) + "/j_spring_security_check"; + } + + public String getParameter(String name) { + if (name.equals("j_username")) { + return this.username; + } + if (name.equals("j_password")) { + return this.password; + } + return super.getParameter(name); + } +} + diff --git a/src/main/java/egovframework/com/sym/adr/web/EgovAdressCntcController.java b/src/main/java/egovframework/com/sym/adr/web/EgovAdressCntcController.java new file mode 100644 index 0000000..4eb89f7 --- /dev/null +++ b/src/main/java/egovframework/com/sym/adr/web/EgovAdressCntcController.java @@ -0,0 +1,104 @@ +package egovframework.com.sym.adr.web; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLEncoder; + +import egovframework.com.cmm.annotation.IncludedInfo; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 도로명 주소 연계를 위한 Controller + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2014.10.21 표준프레임워크 최초생성 + * 2015.04.01 전여철 Test용 Open API confmKey encode추가 + * @author 표준프레임워크 + * @since 2014.10.21 + * @version 3.5 + */ + +@Controller +public class EgovAdressCntcController { + + /** + * 도로명주소 안내시스템에서 제공하는 Open API를 호출하여 주소 정보를 얻어온다. + * + * @param req + * @param model + * @param response + * @throws Exception + */ + @RequestMapping(value="/sym/adr/getAdressCntcApi.do") + public void getAddrApi(HttpServletRequest req, ModelMap model, HttpServletResponse response) throws Exception { + + String currentPage = req.getParameter("currentPage"); + String countPerPage = req.getParameter("countPerPage"); + String confmKey = req.getParameter("confmKey"); + String keyword = req.getParameter("keyword"); + String apiUrl = "http://www.juso.go.kr/addrlink/addrLinkApi.do?currentPage="+currentPage+"&countPerPage="+countPerPage+"&keyword="+URLEncoder.encode(keyword,"UTF-8")+"&confmKey="+confmKey; + URL url = new URL(apiUrl); + BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"UTF-8")); + StringBuffer sb = new StringBuffer(); + String tempStr = null; + while(true){ + tempStr = br.readLine(); + if(tempStr == null) break; + sb.append(tempStr); + } + br.close(); + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/xml"); + response.getWriter().write(sb.toString()); + } + + /** + * 도로명주소 안내시스템에서 제공하는 Test용 Open API를 호출하여 주소 정보를 얻어온다. + * @param req + * @param model + * @param response + * @throws Exception + */ + @RequestMapping(value="/sym/adr/getAdressCntcTestApi.do") + public void getAddrApiTest(HttpServletRequest req, ModelMap model, HttpServletResponse response) throws Exception { + + String currentPage = req.getParameter("currentPage"); + String countPerPage = req.getParameter("countPerPage"); + String confmKey = req.getParameter("confmKey"); + String keyword = req.getParameter("keyword"); + String apiUrl = "http://www.juso.go.kr/addrlink/addrLinkApiTest.do?currentPage="+currentPage+"&countPerPage="+countPerPage+"&keyword="+URLEncoder.encode(keyword,"UTF-8")+"&confmKey="+URLEncoder.encode(confmKey,"UTF-8"); + URL url = new URL(apiUrl); + BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"UTF-8")); + StringBuffer sb = new StringBuffer(); + String tempStr = null; + while(true){ + tempStr = br.readLine(); + if(tempStr == null) break; + sb.append(tempStr); + } + br.close(); + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/xml"); + response.getWriter().write(sb.toString()); + } + + /** + * 주소정보연계를 위한 입력 페이지를 호출한다. + * + * @return + */ + @IncludedInfo(name="주소정보연계", listUrl="/sym/adr/getAdressCntcInitPage.do", order = 2180 ,gid = 90) + @RequestMapping(value="/sym/adr/getAdressCntcInitPage.do") + public String selectMainMenuHome() { + + return "egovframework/com/sym/adr/EgovAdressCntc"; + } +} diff --git a/src/main/java/egovframework/com/sym/cal/service/EgovCalRestdeManageService.java b/src/main/java/egovframework/com/sym/cal/service/EgovCalRestdeManageService.java new file mode 100644 index 0000000..1e3af27 --- /dev/null +++ b/src/main/java/egovframework/com/sym/cal/service/EgovCalRestdeManageService.java @@ -0,0 +1,132 @@ +package egovframework.com.sym.cal.service; + +import java.util.List; + +/** + * + * 휴일에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public interface EgovCalRestdeManageService { + + /** + * 일반달력 팝업 정보를 조회한다. + * @param restde + * @return List(일반달력 팝업 날짜정보) + * @throws Exception + */ + List selectNormalRestdePopup(Restde restde) throws Exception; + + /** + * 행정달력 팝업 정보를 조회한다. + * @param restde + * @return List(행정달력 팝업 날짜정보) + * @throws Exception + */ + List selectAdministRestdePopup(Restde restde) throws Exception; + + /** + * 일반달력 일간 정보를 조회한다. + * @param restde + * @return List(일반달력 일간 날짜정보) + * @throws Exception + */ + List selectNormalDayCal(Restde restde) throws Exception; + + /** + * 일반달력 일간 휴일을 조회한다. + * @param restde + * @return List(일반달력 일간 휴일정보) + * @throws Exception + */ + List selectNormalDayRestde(Restde restde) throws Exception; + + /** + * 일반달력 월간 휴일을 조회한다. + * @param restde + * @return List(일반달력 월간 휴일정보) + * @throws Exception + */ + List selectNormalMonthRestde(Restde restde) throws Exception; + + /** + * 행정달력 일간 정보를 조회한다. + * @param restde + * @return List(행정달력 일간 날짜정보) + * @throws Exception + */ + List selectAdministDayCal(Restde restde) throws Exception; + + /** + * 행정달력 일간 휴일을 조회한다. + * @param restde + * @return List(행정달력 일간 휴일정보) + * @throws Exception + */ + List selectAdministDayRestde(Restde restde) throws Exception; + + /** + * 행정달력 월간 휴일을 조회한다. + * @param restde + * @return List(행정달력 월간 휴일정보) + * @throws Exception + */ + List selectAdministMonthRestde(Restde restde) throws Exception; + + /** + * 휴일을 삭제한다. + * @param restde + * @throws Exception + */ + void deleteRestde(Restde restde) throws Exception; + + /** + * 휴일을 등록한다. + * @param restde + * @throws Exception + */ + void insertRestde(Restde restde) throws Exception; + + /** + * 휴일 상세항목을 조회한다. + * @param restde + * @return Restde(휴일) + * @throws Exception + */ + Restde selectRestdeDetail(Restde restde) throws Exception; + + /** + * 휴일 목록을 조회한다. + * @param searchVO + * @return List(휴일 목록) + * @throws Exception + */ + List selectRestdeList(RestdeVO searchVO) throws Exception; + + /** + * 휴일 총 갯수를 조회한다. + * @param searchVO + * @return int(휴일 총 갯수) + */ + int selectRestdeListTotCnt(RestdeVO searchVO) throws Exception; + + /** + * 휴일을 수정한다. + * @param restde + * @throws Exception + */ + void updateRestde(Restde restde) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sym/cal/service/Restde.java b/src/main/java/egovframework/com/sym/cal/service/Restde.java new file mode 100644 index 0000000..dde9021 --- /dev/null +++ b/src/main/java/egovframework/com/sym/cal/service/Restde.java @@ -0,0 +1,404 @@ +package egovframework.com.sym.cal.service; + +import java.io.Serializable; + +/** + * 휴일 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class Restde implements Serializable { + + private static final long serialVersionUID = -8509545779844669658L; + + /* + * 휴일번호 + */ + private int restdeNo = 0; + + /* + * 휴일일자 + */ + private String restdeDe = ""; + + /* + * 휴일명 + */ + private String restdeNm = ""; + + /* + * 휴일설명 + */ + private String restdeDc = ""; + + /* + * 휴일구분 + */ + private String restdeSe = ""; + + /* + * 휴일구분코드 + */ + private String restdeSeCode = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /* + * 년 + */ + private String year = ""; + + /* + * 월 + */ + private String month = ""; + + /* + * 일 + */ + private String day = ""; + + /* + * 휴일여부 + */ + private String restdeAt = ""; + + /* + * 달력셀 + */ + private int cellNum = 0; + + /* + * 월별 주순위 + */ + private int weeks = 0; + + /* + * 월 주수 + */ + private int maxWeeks = 0; + + /* + * 요일 + */ + private int week = 0; + + /* + * 시작요일 + */ + private int startWeekMonth = 0; + + /* + * 마지막 일자 + */ + private int lastDayMonth = 0; + + /** + * restdeNo attribute 를 리턴한다. + * @return int + */ + public int getRestdeNo() { + return restdeNo; + } + + /** + * restdeNo attribute 값을 설정한다. + * @param restdeNo int + */ + public void setRestdeNo(int restdeNo) { + this.restdeNo = restdeNo; + } + + /** + * restdeDe attribute 를 리턴한다. + * @return String + */ + public String getRestdeDe() { + return restdeDe; + } + + /** + * restdeDe attribute 값을 설정한다. + * @param restdeDe String + */ + public void setRestdeDe(String restdeDe) { + this.restdeDe = restdeDe; + } + + /** + * restdeNm attribute 를 리턴한다. + * @return String + */ + public String getRestdeNm() { + return restdeNm; + } + + /** + * restdeNm attribute 값을 설정한다. + * @param restdeNm String + */ + public void setRestdeNm(String restdeNm) { + this.restdeNm = restdeNm; + } + + /** + * restdeDc attribute 를 리턴한다. + * @return String + */ + public String getRestdeDc() { + return restdeDc; + } + + /** + * restdeDc attribute 값을 설정한다. + * @param restdeDc String + */ + public void setRestdeDc(String restdeDc) { + this.restdeDc = restdeDc; + } + + /** + * restdeSe attribute 를 리턴한다. + * @return String + */ + public String getRestdeSe() { + return restdeSe; + } + + /** + * restdeSe attribute 값을 설정한다. + * @param restdeSe String + */ + public void setRestdeSe(String restdeSe) { + this.restdeSe = restdeSe; + } + + /** + * restdeSeCode attribute 를 리턴한다. + * @return String + */ + public String getRestdeSeCode() { + return restdeSeCode; + } + + /** + * restdeSeCode attribute 값을 설정한다. + * @param restdeSeCode String + */ + public void setRestdeSeCode(String restdeSeCode) { + this.restdeSeCode = restdeSeCode; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + /** + * year attribute 를 리턴한다. + * @return String + */ + public String getYear() { + return year; + } + + /** + * year attribute 값을 설정한다. + * @param year String + */ + public void setYear(String year) { + this.year = year; + } + + /** + * month attribute 를 리턴한다. + * @return String + */ + public String getMonth() { + return month; + } + + /** + * month attribute 값을 설정한다. + * @param month String + */ + public void setMonth(String month) { + this.month = month; + } + + /** + * day attribute 를 리턴한다. + * @return String + */ + public String getDay() { + return day; + } + + /** + * day attribute 값을 설정한다. + * @param day String + */ + public void setDay(String day) { + this.day = day; + } + + /** + * restdeAt attribute 를 리턴한다. + * @return String + */ + public String getRestdeAt() { + return restdeAt; + } + + /** + * restdeAt attribute 값을 설정한다. + * @param restdeAt String + */ + public void setRestdeAt(String restdeAt) { + this.restdeAt = restdeAt; + } + + /** + * cellNum attribute 를 리턴한다. + * @return int + */ + public int getCellNum() { + return cellNum; + } + + /** + * cellNum attribute 값을 설정한다. + * @param cellNum int + */ + public void setCellNum(int cellNum) { + this.cellNum = cellNum; + } + + /** + * weeks attribute 를 리턴한다. + * @return int + */ + public int getWeeks() { + return weeks; + } + + /** + * weeks attribute 값을 설정한다. + * @param weeks int + */ + public void setWeeks(int weeks) { + this.weeks = weeks; + } + + /** + * maxWeeks attribute 를 리턴한다. + * @return int + */ + public int getMaxWeeks() { + return maxWeeks; + } + + /** + * maxWeeks attribute 값을 설정한다. + * @param maxWeeks int + */ + public void setMaxWeeks(int maxWeeks) { + this.maxWeeks = maxWeeks; + } + + /** + * week attribute 를 리턴한다. + * @return int + */ + public int getWeek() { + return week; + } + + /** + * week attribute 값을 설정한다. + * @param week int + */ + public void setWeek(int week) { + this.week = week; + } + + /** + * startWeekMonth attribute 를 리턴한다. + * @return int + */ + public int getStartWeekMonth() { + return startWeekMonth; + } + + /** + * startWeekMonth attribute 값을 설정한다. + * @param startWeekMonth int + */ + public void setStartWeekMonth(int startWeekMonth) { + this.startWeekMonth = startWeekMonth; + } + + /** + * lastDayMonth attribute 를 리턴한다. + * @return int + */ + public int getLastDayMonth() { + return lastDayMonth; + } + + /** + * lastDayMonth attribute 값을 설정한다. + * @param lastDayMonth int + */ + public void setLastDayMonth(int lastDayMonth) { + this.lastDayMonth = lastDayMonth; + } + + +} diff --git a/src/main/java/egovframework/com/sym/cal/service/RestdeVO.java b/src/main/java/egovframework/com/sym/cal/service/RestdeVO.java new file mode 100644 index 0000000..5e732a4 --- /dev/null +++ b/src/main/java/egovframework/com/sym/cal/service/RestdeVO.java @@ -0,0 +1,199 @@ +package egovframework.com.sym.cal.service; + +import java.io.Serializable; + +/** + * + * 휴일 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class RestdeVO extends Restde implements Serializable { + + private static final long serialVersionUID = 2548377950888283294L; + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + + +} diff --git a/src/main/java/egovframework/com/sym/cal/service/impl/EgovCalRestdeManageServiceImpl.java b/src/main/java/egovframework/com/sym/cal/service/impl/EgovCalRestdeManageServiceImpl.java new file mode 100644 index 0000000..23a96ee --- /dev/null +++ b/src/main/java/egovframework/com/sym/cal/service/impl/EgovCalRestdeManageServiceImpl.java @@ -0,0 +1,153 @@ +package egovframework.com.sym.cal.service.impl; + +import java.util.List; + +import egovframework.com.sym.cal.service.EgovCalRestdeManageService; +import egovframework.com.sym.cal.service.Restde; +import egovframework.com.sym.cal.service.RestdeVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + + + +/** + * + * 휴일에 대한 서비스 구현클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Service("RestdeManageService") +public class EgovCalRestdeManageServiceImpl extends EgovAbstractServiceImpl implements EgovCalRestdeManageService { + + @Resource(name="RestdeManageDAO") + private RestdeManageDAO restdeManageDAO; + + /** + * 일반달력 팝업 정보를 조회한다. + */ + @Override + public List selectNormalRestdePopup(Restde restde) throws Exception { + return restdeManageDAO.selectNormalRestdePopup(restde); + } + + /** + * 행정달력 팝업 정보를 조회한다. + */ + @Override + public List selectAdministRestdePopup(Restde restde) throws Exception { + return restdeManageDAO.selectAdministRestdePopup(restde); + } + + /** + * 일반달력 일간 정보를 조회한다. + */ + @Override + public List selectNormalDayCal(Restde restde) throws Exception { + return restdeManageDAO.selectNormalDayCal(restde); + } + + /** + * 일반달력 일간 휴일을 조회한다. + */ + @Override + public List selectNormalDayRestde(Restde restde) throws Exception { + return restdeManageDAO.selectNormalDayRestde(restde); + } + + /** + * 일반달력 월간 휴일을 조회한다. + */ + @Override + public List selectNormalMonthRestde(Restde restde) throws Exception { + return restdeManageDAO.selectNormalMonthRestde(restde); + } + + /** + * 행정달력 일간 정보를 조회한다. + */ + @Override + public List selectAdministDayCal(Restde restde) throws Exception { + return restdeManageDAO.selectAdministDayCal(restde); + } + + /** + * 행정달력 일간 휴일을 조회한다. + */ + @Override + public List selectAdministDayRestde(Restde restde) throws Exception { + return restdeManageDAO.selectAdministDayRestde(restde); + } + + /** + * 행정달력 월간 휴일을 조회한다. + */ + @Override + public List selectAdministMonthRestde(Restde restde) throws Exception { + return restdeManageDAO.selectAdministMonthRestde(restde); + } + + /** + * 휴일을 삭제한다. + */ + @Override + public void deleteRestde(Restde restde) throws Exception { + restdeManageDAO.deleteRestde(restde); + } + + /** + * 휴일을 등록한다. + */ + @Override + public void insertRestde(Restde restde) throws Exception { + restdeManageDAO.insertRestde(restde); + } + + /** + * 휴일 상세항목을 조회한다. + */ + @Override + public Restde selectRestdeDetail(Restde restde) throws Exception { + Restde ret = restdeManageDAO.selectRestdeDetail(restde); + return ret; + } + + /** + * 휴일 목록을 조회한다. + */ + @Override + public List selectRestdeList(RestdeVO searchVO) throws Exception { + return restdeManageDAO.selectRestdeList(searchVO); + } + + /** + * 휴일 총 갯수를 조회한다. + */ + @Override + public int selectRestdeListTotCnt(RestdeVO searchVO) throws Exception { + return restdeManageDAO.selectRestdeListTotCnt(searchVO); + } + + /** + * 휴일을 수정한다. + */ + @Override + public void updateRestde(Restde restde) throws Exception { + restdeManageDAO.updateRestde(restde); + } + +} diff --git a/src/main/java/egovframework/com/sym/cal/service/impl/RestdeManageDAO.java b/src/main/java/egovframework/com/sym/cal/service/impl/RestdeManageDAO.java new file mode 100644 index 0000000..35bae68 --- /dev/null +++ b/src/main/java/egovframework/com/sym/cal/service/impl/RestdeManageDAO.java @@ -0,0 +1,170 @@ +package egovframework.com.sym.cal.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.cal.service.Restde; +import egovframework.com.sym.cal.service.RestdeVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 휴일에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Repository("RestdeManageDAO") +public class RestdeManageDAO extends EgovComAbstractDAO { + + /** + * 일반달력 팝업 정보를 조회한다. + * @param restde + * @return List(일반달력 팝업 날짜정보) + * @throws Exception + */ + public List selectNormalRestdePopup(Restde restde) throws Exception { + return list("RestdeManageDAO.selectNormalRestdePopup", restde); + } + + /** + * 행정달력 팝업 정보를 조회한다. + * @param restde + * @return List(행정달력 팝업 날짜정보) + * @throws Exception + */ + public List selectAdministRestdePopup(Restde restde) throws Exception { + return list("RestdeManageDAO.selectAdministRestdePopup", restde); + } + + /** + * 일반달력 일간 정보를 조회한다. + * @param restde + * @return List(일반달력 일간 날짜정보) + * @throws Exception + */ + public List selectNormalDayCal(Restde restde) throws Exception { + return list("RestdeManageDAO.selectNormalDayCal", restde); + } + + /** + * 일반달력 일간 휴일을 조회한다. + * @param restde + * @return List(일반달력 일간 휴일정보) + * @throws Exception + */ + public List selectNormalDayRestde(Restde restde) throws Exception { + return list("RestdeManageDAO.selectNormalDayRestde", restde); + } + + /** + * 일반달력 월간 휴일을 조회한다. + * @param restde + * @return List(일반달력 월간 휴일정보) + * @throws Exception + */ + public List selectNormalMonthRestde(Restde restde) throws Exception { + return list("RestdeManageDAO.selectNormalMonthRestde", restde); + } + + /** + * 행정달력 일간 정보를 조회한다. + * @param restde + * @return List(행정달력 일간 날짜정보) + * @throws Exception + */ + public List selectAdministDayCal(Restde restde) throws Exception { + return list("RestdeManageDAO.selectAdministDayCal", restde); + } + + /** + * 행정달력 일간 휴일을 조회한다. + * @param restde + * @return List(행정달력 일간 휴일정보) + * @throws Exception + */ + public List selectAdministDayRestde(Restde restde) throws Exception { + return list("RestdeManageDAO.selectAdministDayRestde", restde); + } + + /** + * 행정달력 월간 휴일을 조회한다. + * @param restde + * @return List(행정달력 월간 휴일정보) + * @throws Exception + */ + public List selectAdministMonthRestde(Restde restde) throws Exception { + return list("RestdeManageDAO.selectAdministMonthRestde", restde); + } + + /** + * 휴일을 삭제한다. + * @param restde + * @throws Exception + */ + public void deleteRestde(Restde restde) throws Exception { + delete("RestdeManageDAO.deleteRestde", restde); + } + + + /** + * 휴일을 등록한다. + * @param restde + * @throws Exception + */ + public void insertRestde(Restde restde) throws Exception { + insert("RestdeManageDAO.insertRestde", restde); + } + + /** + * 휴일 상세항목을 조회한다. + * @param restde + * @return Restde(휴일) + * @throws Exception + */ + public Restde selectRestdeDetail(Restde restde) throws Exception { + return (Restde) select("RestdeManageDAO.selectRestdeDetail", restde); + } + + + /** + * 휴일 목록을 조회한다. + * @param searchVO + * @return List(휴일 목록) + * @throws Exception + */ + public List selectRestdeList(RestdeVO searchVO) throws Exception { + return list("RestdeManageDAO.selectRestdeList", searchVO); + } + + /** + * 글 총 갯수를 조회한다. + * @param searchVO + * @return int(휴일 총 갯수) + * @throws Exception + */ + public int selectRestdeListTotCnt(RestdeVO searchVO) throws Exception { + return (Integer)select("RestdeManageDAO.selectRestdeListTotCnt", searchVO); + } + + /** + * 휴일을 수정한다. + * @param restde + * @throws Exception + */ + public void updateRestde(Restde restde) throws Exception { + update("RestdeManageDAO.updateRestde", restde); + } + +} diff --git a/src/main/java/egovframework/com/sym/cal/web/EgovCalRestdeManageController.java b/src/main/java/egovframework/com/sym/cal/web/EgovCalRestdeManageController.java new file mode 100644 index 0000000..dad4483 --- /dev/null +++ b/src/main/java/egovframework/com/sym/cal/web/EgovCalRestdeManageController.java @@ -0,0 +1,1531 @@ +package egovframework.com.sym.cal.web; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.service.EgovCmmUseService; +import egovframework.com.sym.cal.service.EgovCalRestdeManageService; +import egovframework.com.sym.cal.service.Restde; +import egovframework.com.sym.cal.service.RestdeVO; + +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.apache.commons.collections.map.ListOrderedMap; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springmodules.validation.commons.DefaultBeanValidator; + + +/** + * + * 공휴일에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	  정진오	   IncludedInfo annotation 추가
+ *   2011.10.18  서준식          보안점검 조치 사항으로 sql injection에 대비한 파라미터 체크(달력 출력을 위한 숫자만 가능하도록)
+ * 
+ */ + +@Controller +public class EgovCalRestdeManageController { + + @Resource(name = "RestdeManageService") + private EgovCalRestdeManageService restdeManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Resource(name="egovRestDeIdGnrService") + private EgovIdGnrService idgenService; + + @Resource(name="EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + @Autowired + private DefaultBeanValidator beanValidator; + + public BindingResult checkRestdeWithValidator(Restde restde, BindingResult bindingResult){ + + restde.setRestdeDe("dummy"); + restde.setRestdeNm("dummy"); + restde.setRestdeDc("dummy"); + restde.setRestdeSeCode("dummy"); + + beanValidator.validate(restde, bindingResult); + + return bindingResult; + } + + /** + * 달력 메인창을 호출한다. + * @param model + * @return "egovframework/com/sym/cal/EgovNormalCalPopup" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/callCalPopup.do") + public String callCalendar (ModelMap model + ) throws Exception { + return "egovframework/com/sym/cal/EgovCalPopup"; + } + + /** + * 달력을 호출한다. + * @param model + * @return "egovframework/com/sym/cal/EgovNormalCalPopup" + * @throws Exception + */ + @SuppressWarnings("unused") + @RequestMapping(value="/sym/cal/callCal.do") + public String callCal (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + + 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 + */ + + model.addAttribute("resultList", CalInfoList); + + return "egovframework/com/sym/cal/EgovCalendar"; + } + + /** + * 일반달력 팝업 메인창을 호출한다. + * @param model + * @return "egovframework/com/sym/cal/EgovNormalCalPopup" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovNormalCalPopup.do") + public String callNormalCalPopup (ModelMap model + ) throws Exception { + return "egovframework/com/sym/cal/EgovNormalCalPopup"; + } + + /** + * 일반달력 팝업 정보를 조회한다. + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovNormalCalendar" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovselectNormalCalendar.do") + public String selectNormalRestdePopup (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + 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); + + model.addAttribute("resultList", CalInfoList); + + return "egovframework/com/sym/cal/EgovNormalCalendar"; + } + + + /** + * 행정달력 팝업 메인창을 호출한다. + * @param model + * @return "egovframework/com/sym/cal/EgovAdministCalPopup" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovAdministCalPopup.do") + public String callAdministCalPopup (ModelMap model + ) throws Exception { + return "egovframework/com/sym/cal/EgovAdministCalPopup"; + } + + /** + * 행정달력 팝업 정보를 조회한다. + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovAdministCalendar" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovselectAdministCalendar.do") + public String selectAdministRestdePopup (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + 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.selectAdministRestdePopup(restde); + + model.addAttribute("resultList", CalInfoList); + + return "egovframework/com/sym/cal/EgovAdministCalendar"; + } + + /** + * 일반달력 일간 + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovNormalDayCalendar" + * @throws Exception + */ + @SuppressWarnings("static-access") + @RequestMapping(value="/sym/cal/EgovNormalDayCalendar.do") + public String selectNormalDayCalendar (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + if(restde.getDay()==null || restde.getDay().equals("")){ + restde.setDay(Integer.toString(cal.get(Calendar.DATE))); + } + + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + int iDay = Integer.parseInt(restde.getDay()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + restde.setYear(Integer.toString(iYear)); + restde.setMonth(Integer.toString(iMonth)); + + cal.set(iYear,iMonth-1,iDay); + restde.setStartWeekMonth(cal.get(Calendar.DAY_OF_WEEK)); + + cal.set(iYear,iMonth-1,Integer.parseInt(restde.getDay())); + restde.setLastDayMonth(cal.getActualMaximum(Calendar.DAY_OF_MONTH)); + + restde.setYear(Integer.toString(cal.get(cal.YEAR))); + restde.setMonth(Integer.toString(cal.get(cal.MONTH)+1)); + restde.setDay(Integer.toString(cal.get(cal.DAY_OF_MONTH))); + restde.setWeek(cal.get(cal.DAY_OF_WEEK)); + restde.setLastDayMonth(cal.getActualMaximum(Calendar.DATE)); + + List CalInfoList = restdeManageService.selectNormalDayCal(restde); + List NormalWeekRestdeList = restdeManageService.selectNormalDayRestde(restde); + + model.addAttribute("resultList", CalInfoList); + model.addAttribute("RestdeList", NormalWeekRestdeList); + + return "egovframework/com/sym/cal/EgovNormalDayCalendar"; + } + + /** + * 일반달력 주간 + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovNormalWeekCalendar" + * @throws Exception + */ + @SuppressWarnings("static-access") + @RequestMapping(value="/sym/cal/EgovNormalWeekCalendar.do") + public String selectNormalWeekCalendar (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + if(restde.getDay()==null || restde.getDay().equals("")){ + restde.setDay(Integer.toString(cal.get(Calendar.DATE))); + } + + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + restde.setYear(Integer.toString(iYear)); + restde.setMonth(Integer.toString(iMonth)); + + cal.set(iYear,iMonth-1,1); + restde.setStartWeekMonth(cal.get(Calendar.DAY_OF_WEEK)); + + cal.set(iYear,iMonth-1,Integer.parseInt(restde.getDay())); + restde.setLastDayMonth(cal.getActualMaximum(Calendar.DAY_OF_MONTH)); + + int iStartWeek = restde.getStartWeekMonth(); + int iLastDate = restde.getLastDayMonth(); + int iDayWeek = cal.get(Calendar.DAY_OF_WEEK); + + int iMaxWeeks = (int)Math.floor(iLastDate/7); + iMaxWeeks = iMaxWeeks + (int)Math.ceil(((iLastDate - iMaxWeeks * 7) + iStartWeek - 1) / 7.0); + restde.setMaxWeeks(iMaxWeeks); + + if (iMaxWeeks < restde.getWeeks()) { + restde.setWeeks(iMaxWeeks); + } + + Restde vo = new Restde(); + Calendar weekCal = Calendar.getInstance(); + weekCal.setTime(cal.getTime()); + + if(restde.getWeeks()!=0){ + weekCal.set(weekCal.DATE, (restde.getWeeks() - 1) * 7 + 1); + if(restde.getWeeks()>1){ + iDayWeek = weekCal.get(weekCal.DAY_OF_WEEK); + weekCal.add(weekCal.DATE, (-1)*(iDayWeek-1)); + } + restde.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH)+1)); + } + + iDayWeek = weekCal.get(weekCal.DAY_OF_WEEK); + + // 일요일 + weekCal.add(weekCal.DATE, (-1)*(iDayWeek-1)); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_1 = restdeManageService.selectNormalDayCal(vo); + List NormalWeekRestdeList_1 = restdeManageService.selectNormalDayRestde(vo); + + // 월요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_2 = restdeManageService.selectNormalDayCal(vo); + List NormalWeekRestdeList_2 = restdeManageService.selectNormalDayRestde(vo); + + // 화요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_3 = restdeManageService.selectNormalDayCal(vo); + List NormalWeekRestdeList_3 = restdeManageService.selectNormalDayRestde(vo); + + // 수요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_4 = restdeManageService.selectNormalDayCal(vo); + List NormalWeekRestdeList_4 = restdeManageService.selectNormalDayRestde(vo); + + // 목요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_5 = restdeManageService.selectNormalDayCal(vo); + List NormalWeekRestdeList_5 = restdeManageService.selectNormalDayRestde(vo); + + // 금요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_6 = restdeManageService.selectNormalDayCal(vo); + List NormalWeekRestdeList_6 = restdeManageService.selectNormalDayRestde(vo); + + // 토요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_7 = restdeManageService.selectNormalDayCal(vo); + List NormalWeekRestdeList_7 = restdeManageService.selectNormalDayRestde(vo); + + model.addAttribute("resultList_1", CalInfoList_1); + model.addAttribute("resultList_2", CalInfoList_2); + model.addAttribute("resultList_3", CalInfoList_3); + model.addAttribute("resultList_4", CalInfoList_4); + model.addAttribute("resultList_5", CalInfoList_5); + model.addAttribute("resultList_6", CalInfoList_6); + model.addAttribute("resultList_7", CalInfoList_7); + model.addAttribute("RestdeList_1", NormalWeekRestdeList_1); + model.addAttribute("RestdeList_2", NormalWeekRestdeList_2); + model.addAttribute("RestdeList_3", NormalWeekRestdeList_3); + model.addAttribute("RestdeList_4", NormalWeekRestdeList_4); + model.addAttribute("RestdeList_5", NormalWeekRestdeList_5); + model.addAttribute("RestdeList_6", NormalWeekRestdeList_6); + model.addAttribute("RestdeList_7", NormalWeekRestdeList_7); + + List CalInfoList = restdeManageService.selectNormalDayCal(restde); + model.addAttribute("resultList", CalInfoList); + + return "egovframework/com/sym/cal/EgovNormalWeekCalendar"; + } + + /** + * 일반달력 월간 + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovNormalMonthCalendar" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovNormalMonthCalendar.do") + public String selectNormalMonthCalendar (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + 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); + + + List NormalMonthRestdeList = restdeManageService.selectNormalMonthRestde(restde); + + model.addAttribute("resultList", CalInfoList); + model.addAttribute("RestdeList", NormalMonthRestdeList); + + return "egovframework/com/sym/cal/EgovNormalMonthCalendar"; + } + + /** + * 일반달력 연간 + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovNormalYearCalendar" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovNormalYearCalendar.do") + public String selectNormalYearCalendar (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + restde.setYear(Integer.toString(iYear)); + + /* 월별확인 */ + + /* 1월 */ + iMonth = 1; + 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_1 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_1 = restdeManageService.selectNormalMonthRestde(restde); + + /* 2월 */ + iMonth = 2; + 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_2 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_2 = restdeManageService.selectNormalMonthRestde(restde); + + /* 3월 */ + iMonth = 3; + 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_3 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_3 = restdeManageService.selectNormalMonthRestde(restde); + + /* 4월 */ + iMonth = 4; + 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_4 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_4 = restdeManageService.selectNormalMonthRestde(restde); + + /* 5월 */ + iMonth = 5; + 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_5 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_5 = restdeManageService.selectNormalMonthRestde(restde); + + /* 6월 */ + iMonth = 6; + 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_6 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_6 = restdeManageService.selectNormalMonthRestde(restde); + + /* 7월 */ + iMonth = 7; + 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_7 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_7 = restdeManageService.selectNormalMonthRestde(restde); + + /* 8월 */ + iMonth = 8; + 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_8 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_8 = restdeManageService.selectNormalMonthRestde(restde); + + /* 9월 */ + iMonth = 9; + 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_9 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_9 = restdeManageService.selectNormalMonthRestde(restde); + + /* 10월 */ + iMonth = 10; + 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_10 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_10 = restdeManageService.selectNormalMonthRestde(restde); + + /* 11월 */ + iMonth = 11; + 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_11 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_11 = restdeManageService.selectNormalMonthRestde(restde); + + /* 12월 */ + iMonth = 12; + 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_12 = restdeManageService.selectNormalRestdePopup(restde); + List NormalMonthRestdeList_12 = restdeManageService.selectNormalMonthRestde(restde); + + model.addAttribute("resultList_1" , CalInfoList_1 ); + model.addAttribute("resultList_2" , CalInfoList_2 ); + model.addAttribute("resultList_3" , CalInfoList_3 ); + model.addAttribute("resultList_4" , CalInfoList_4 ); + model.addAttribute("resultList_5" , CalInfoList_5 ); + model.addAttribute("resultList_6" , CalInfoList_6 ); + model.addAttribute("resultList_7" , CalInfoList_7 ); + model.addAttribute("resultList_8" , CalInfoList_8 ); + model.addAttribute("resultList_9" , CalInfoList_9 ); + model.addAttribute("resultList_10", CalInfoList_10); + model.addAttribute("resultList_11", CalInfoList_11); + model.addAttribute("resultList_12", CalInfoList_12); + model.addAttribute("RestdeList_1" , NormalMonthRestdeList_1 ); + model.addAttribute("RestdeList_2" , NormalMonthRestdeList_2 ); + model.addAttribute("RestdeList_3" , NormalMonthRestdeList_3 ); + model.addAttribute("RestdeList_4" , NormalMonthRestdeList_4 ); + model.addAttribute("RestdeList_5" , NormalMonthRestdeList_5 ); + model.addAttribute("RestdeList_6" , NormalMonthRestdeList_6 ); + model.addAttribute("RestdeList_7" , NormalMonthRestdeList_7 ); + model.addAttribute("RestdeList_8" , NormalMonthRestdeList_8 ); + model.addAttribute("RestdeList_9" , NormalMonthRestdeList_9 ); + model.addAttribute("RestdeList_10", NormalMonthRestdeList_10); + model.addAttribute("RestdeList_11", NormalMonthRestdeList_11); + model.addAttribute("RestdeList_12", NormalMonthRestdeList_12); + + return "egovframework/com/sym/cal/EgovNormalYearCalendar"; + } + + + /** + * 행정달력 일간 + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovAdministDayCalendar" + * @throws Exception + */ + @SuppressWarnings("static-access") + @RequestMapping(value="/sym/cal/EgovAdministDayCalendar.do") + public String selectAdministDayCalendar (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + if(restde.getDay()==null || restde.getDay().equals("")){ + restde.setDay(Integer.toString(cal.get(Calendar.DATE))); + } + + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + int iDay = Integer.parseInt(restde.getDay()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + restde.setYear(Integer.toString(iYear)); + restde.setMonth(Integer.toString(iMonth)); + + cal.set(iYear,iMonth-1,iDay); + restde.setStartWeekMonth(cal.get(Calendar.DAY_OF_WEEK)); + + cal.set(iYear,iMonth-1,Integer.parseInt(restde.getDay())); + restde.setLastDayMonth(cal.getActualMaximum(Calendar.DAY_OF_MONTH)); + + restde.setYear(Integer.toString(cal.get(cal.YEAR))); + restde.setMonth(Integer.toString(cal.get(cal.MONTH)+1)); + restde.setDay(Integer.toString(cal.get(cal.DAY_OF_MONTH))); + restde.setWeek(cal.get(cal.DAY_OF_WEEK)); + restde.setLastDayMonth(cal.getActualMaximum(Calendar.DATE)); + + List CalInfoList = restdeManageService.selectAdministDayCal(restde); + List AdministWeekRestdeList = restdeManageService.selectAdministDayRestde(restde); + + model.addAttribute("resultList", CalInfoList); + model.addAttribute("RestdeList", AdministWeekRestdeList); + + return "egovframework/com/sym/cal/EgovAdministDayCalendar"; + } + + + /** + * 행정달력 주간 + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovAdministWeekCalendar" + * @throws Exception + */ + @SuppressWarnings("static-access") + @RequestMapping(value="/sym/cal/EgovAdministWeekCalendar.do") + public String selectAdministWeekCalendar (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + if(restde.getDay()==null || restde.getDay().equals("")){ + restde.setDay(Integer.toString(cal.get(Calendar.DATE))); + } + + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + restde.setYear(Integer.toString(iYear)); + restde.setMonth(Integer.toString(iMonth)); + + cal.set(iYear,iMonth-1,1); + restde.setStartWeekMonth(cal.get(Calendar.DAY_OF_WEEK)); + + cal.set(iYear,iMonth-1,Integer.parseInt(restde.getDay())); + restde.setLastDayMonth(cal.getActualMaximum(Calendar.DAY_OF_MONTH)); + + int iStartWeek = restde.getStartWeekMonth(); + int iLastDate = restde.getLastDayMonth(); + int iDayWeek = cal.get(Calendar.DAY_OF_WEEK); + + int iMaxWeeks = (int)Math.floor(iLastDate/7); + iMaxWeeks = iMaxWeeks + (int)Math.ceil(((iLastDate - iMaxWeeks * 7) + iStartWeek - 1) / 7.0); + restde.setMaxWeeks(iMaxWeeks); + + if (iMaxWeeks < restde.getWeeks()) { + restde.setWeeks(iMaxWeeks); + } + + Restde vo = new Restde(); + Calendar weekCal = Calendar.getInstance(); + weekCal.setTime(cal.getTime()); + + if(restde.getWeeks()!=0){ + weekCal.set(weekCal.DATE, (restde.getWeeks() - 1) * 7 + 1); + if(restde.getWeeks()>1){ + iDayWeek = weekCal.get(weekCal.DAY_OF_WEEK); + weekCal.add(weekCal.DATE, (-1)*(iDayWeek-1)); + } + restde.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH)+1)); + } + List CalInfoList = restdeManageService.selectAdministDayCal(restde); + + iDayWeek = weekCal.get(weekCal.DAY_OF_WEEK); + + // 일요일 + weekCal.add(weekCal.DATE, (-1)*(iDayWeek-1)); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_1 = restdeManageService.selectAdministDayCal(vo); + List AdministWeekRestdeList_1 = restdeManageService.selectAdministDayRestde(vo); + + // 월요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_2 = restdeManageService.selectAdministDayCal(vo); + List AdministWeekRestdeList_2 = restdeManageService.selectAdministDayRestde(vo); + + // 화요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_3 = restdeManageService.selectAdministDayCal(vo); + List AdministWeekRestdeList_3 = restdeManageService.selectAdministDayRestde(vo); + + // 수요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_4 = restdeManageService.selectAdministDayCal(vo); + List AdministWeekRestdeList_4 = restdeManageService.selectAdministDayRestde(vo); + + // 목요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_5 = restdeManageService.selectAdministDayCal(vo); + List AdministWeekRestdeList_5 = restdeManageService.selectAdministDayRestde(vo); + + // 금요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_6 = restdeManageService.selectAdministDayCal(vo); + List AdministWeekRestdeList_6 = restdeManageService.selectAdministDayRestde(vo); + + // 토요일 + weekCal.add(weekCal.DATE, 1); + vo.setYear(Integer.toString(weekCal.get(weekCal.YEAR))); + vo.setMonth(Integer.toString(weekCal.get(weekCal.MONTH)+1)); + vo.setDay(Integer.toString(weekCal.get(weekCal.DAY_OF_MONTH))); + vo.setWeek(weekCal.get(weekCal.DAY_OF_WEEK)); + List CalInfoList_7 = restdeManageService.selectAdministDayCal(vo); + List AdministWeekRestdeList_7 = restdeManageService.selectAdministDayRestde(vo); + + model.addAttribute("resultList_1", CalInfoList_1); + model.addAttribute("resultList_2", CalInfoList_2); + model.addAttribute("resultList_3", CalInfoList_3); + model.addAttribute("resultList_4", CalInfoList_4); + model.addAttribute("resultList_5", CalInfoList_5); + model.addAttribute("resultList_6", CalInfoList_6); + model.addAttribute("resultList_7", CalInfoList_7); + model.addAttribute("RestdeList_1", AdministWeekRestdeList_1); + model.addAttribute("RestdeList_2", AdministWeekRestdeList_2); + model.addAttribute("RestdeList_3", AdministWeekRestdeList_3); + model.addAttribute("RestdeList_4", AdministWeekRestdeList_4); + model.addAttribute("RestdeList_5", AdministWeekRestdeList_5); + model.addAttribute("RestdeList_6", AdministWeekRestdeList_6); + model.addAttribute("RestdeList_7", AdministWeekRestdeList_7); + + model.addAttribute("resultList", CalInfoList); + + return "egovframework/com/sym/cal/EgovAdministWeekCalendar"; + } + + /** + * 행정달력 월간 + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovAdministMonthCalendar" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovAdministMonthCalendar.do") + public String selectAdministMonthCalendar (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + 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.selectAdministRestdePopup(restde); + + + List AdministMonthRestdeList = restdeManageService.selectAdministMonthRestde(restde); + + model.addAttribute("resultList", CalInfoList); + model.addAttribute("RestdeList", AdministMonthRestdeList); + + return "egovframework/com/sym/cal/EgovAdministMonthCalendar"; + } + + + /** + * 행정달력 연간 + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovAdministYearCalendar" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovAdministYearCalendar.do") + public String selectAdministYearCalendar (Restde restde, BindingResult bindingResult + , ModelMap model + ) throws Exception { + + //2011.10.18 달력 출력을 위해 필요한 숫자 이외의 값을 사용하는 경우 체크 + bindingResult = checkRestdeWithValidator(restde, bindingResult); + + if(bindingResult.hasErrors()){ + + return "egovframework/com/cmm/error/dataAccessFailure"; + + } + + Calendar cal = Calendar.getInstance(); + + if(restde.getYear()==null || restde.getYear().equals("")){ + restde.setYear(Integer.toString(cal.get(Calendar.YEAR))); + } + if(restde.getMonth()==null || restde.getMonth().equals("")){ + restde.setMonth(Integer.toString(cal.get(Calendar.MONTH)+1)); + } + int iYear = Integer.parseInt(restde.getYear()); + int iMonth = Integer.parseInt(restde.getMonth()); + + if (iMonth<1){ + iYear--; + iMonth = 12; + } + if (iMonth>12){ + iYear++; + iMonth = 1; + } + if (iYear<1){ + iYear = 1; + iMonth = 1; + } + if (iYear>9999){ + iYear = 9999; + iMonth = 12; + } + restde.setYear(Integer.toString(iYear)); + + /* 월별확인 */ + + /* 1월 */ + iMonth = 1; + 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_1 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_1 = restdeManageService.selectAdministMonthRestde(restde); + + /* 2월 */ + iMonth = 2; + 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_2 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_2 = restdeManageService.selectAdministMonthRestde(restde); + + /* 3월 */ + iMonth = 3; + 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_3 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_3 = restdeManageService.selectAdministMonthRestde(restde); + + /* 4월 */ + iMonth = 4; + 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_4 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_4 = restdeManageService.selectAdministMonthRestde(restde); + + /* 5월 */ + iMonth = 5; + 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_5 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_5 = restdeManageService.selectAdministMonthRestde(restde); + + /* 6월 */ + iMonth = 6; + 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_6 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_6 = restdeManageService.selectAdministMonthRestde(restde); + + /* 7월 */ + iMonth = 7; + 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_7 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_7 = restdeManageService.selectAdministMonthRestde(restde); + + /* 8월 */ + iMonth = 8; + 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_8 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_8 = restdeManageService.selectAdministMonthRestde(restde); + + /* 9월 */ + iMonth = 9; + 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_9 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_9 = restdeManageService.selectAdministMonthRestde(restde); + + /* 10월 */ + iMonth = 10; + 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_10 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_10 = restdeManageService.selectAdministMonthRestde(restde); + + /* 11월 */ + iMonth = 11; + 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_11 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_11 = restdeManageService.selectAdministMonthRestde(restde); + + /* 12월 */ + iMonth = 12; + 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_12 = restdeManageService.selectAdministRestdePopup(restde); + List AdministMonthRestdeList_12 = restdeManageService.selectAdministMonthRestde(restde); + + model.addAttribute("resultList_1" , CalInfoList_1 ); + model.addAttribute("resultList_2" , CalInfoList_2 ); + model.addAttribute("resultList_3" , CalInfoList_3 ); + model.addAttribute("resultList_4" , CalInfoList_4 ); + model.addAttribute("resultList_5" , CalInfoList_5 ); + model.addAttribute("resultList_6" , CalInfoList_6 ); + model.addAttribute("resultList_7" , CalInfoList_7 ); + model.addAttribute("resultList_8" , CalInfoList_8 ); + model.addAttribute("resultList_9" , CalInfoList_9 ); + model.addAttribute("resultList_10", CalInfoList_10); + model.addAttribute("resultList_11", CalInfoList_11); + model.addAttribute("resultList_12", CalInfoList_12); + model.addAttribute("RestdeList_1" , AdministMonthRestdeList_1 ); + model.addAttribute("RestdeList_2" , AdministMonthRestdeList_2 ); + model.addAttribute("RestdeList_3" , AdministMonthRestdeList_3 ); + model.addAttribute("RestdeList_4" , AdministMonthRestdeList_4 ); + model.addAttribute("RestdeList_5" , AdministMonthRestdeList_5 ); + model.addAttribute("RestdeList_6" , AdministMonthRestdeList_6 ); + model.addAttribute("RestdeList_7" , AdministMonthRestdeList_7 ); + model.addAttribute("RestdeList_8" , AdministMonthRestdeList_8 ); + model.addAttribute("RestdeList_9" , AdministMonthRestdeList_9 ); + model.addAttribute("RestdeList_10", AdministMonthRestdeList_10); + model.addAttribute("RestdeList_11", AdministMonthRestdeList_11); + model.addAttribute("RestdeList_12", AdministMonthRestdeList_12); + + return "egovframework/com/sym/cal/EgovAdministYearCalendar"; + } + + + /** + * 휴일을 삭제한다. + * @param loginVO + * @param restde + * @param model + * @return "forward:/sym/cal/EgovRestdeList.do" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovRestdeRemove.do") + public String deleteRestde (@ModelAttribute("loginVO") LoginVO loginVO + , Restde restde + , ModelMap model + ) throws Exception { + restdeManageService.deleteRestde(restde); + return "forward:/sym/cal/EgovRestdeList.do"; + } + + + /** + * 휴일을 등록한다. + * @param loginVO + * @param restde + * @param bindingResult + * @param model + * @return "egovframework/com/sym/cal/EgovRestdeRegist" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovRestdeRegist.do") + public String insertRestde (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("restde") Restde restde + , BindingResult bindingResult + , ModelMap model + ) throws Exception { + if (restde.getRestdeDe() == null + ||restde.getRestdeDe().equals("")) { + + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + vo.setCodeId("COM017"); + List restdeCodeList = cmmUseService.selectCmmCodeDetail(vo); + model.addAttribute("restdeCode", restdeCodeList); + + return "egovframework/com/sym/cal/EgovRestdeRegist"; + } + + beanValidator.validate(restde, bindingResult); + if (bindingResult.hasErrors()){ + return "egovframework/com/sym/cal/EgovRestdeRegist"; + } + + restde.setRestdeNo(idgenService.getNextIntegerId()%1000000); + restde.setFrstRegisterId(loginVO.getUniqId()); + + restdeManageService.insertRestde(restde); + return "forward:/sym/cal/EgovRestdeList.do"; + } + + + /** + * 휴일 세부내역을 조회한다. + * @param loginVO + * @param restde + * @param model + * @return "egovframework/com/sym/cal/EgovRestdeDetail" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovRestdeDetail.do") + public String selectRestdeDetail (@ModelAttribute("loginVO") LoginVO loginVO + , Restde restde + , ModelMap model + ) throws Exception { + Restde vo = restdeManageService.selectRestdeDetail(restde); + model.addAttribute("result", vo); + + return "egovframework/com/sym/cal/EgovRestdeDetail"; + } + + /** + * 휴일 리스트를 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/cal/EgovRestdeList" + * @throws Exception + */ + @IncludedInfo(name="공휴일관리(달력)", listUrl="/sym/cal/EgovRestdeList.do", order = 1300 ,gid = 90) + @RequestMapping(value="/sym/cal/EgovRestdeList.do") + public String selectRestdeList (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("searchVO") RestdeVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = restdeManageService.selectRestdeList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = restdeManageService.selectRestdeListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/cal/EgovRestdeList"; + } + + /** + * 휴일을 수정한다. + * @param loginVO + * @param restde + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/sym/cal/EgovRestdeModify" + * @throws Exception + */ + @RequestMapping(value="/sym/cal/EgovRestdeModify.do") + public String updateRestde (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("restde") Restde restde + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + Restde vo = restdeManageService.selectRestdeDetail(restde); + model.addAttribute("restde", vo); + + ComDefaultCodeVO CodeVO = new ComDefaultCodeVO(); + CodeVO.setCodeId("COM017"); + List restdeCodeList = cmmUseService.selectCmmCodeDetail(CodeVO); + model.addAttribute("restdeCode", restdeCodeList); + + return "egovframework/com/sym/cal/EgovRestdeModify"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(restde, bindingResult); + if (bindingResult.hasErrors()){ + ComDefaultCodeVO CodeVO = new ComDefaultCodeVO(); + CodeVO.setCodeId("COM017"); + List restdeCodeList = cmmUseService.selectCmmCodeDetail(CodeVO); + model.addAttribute("restdeCode", restdeCodeList); + + return "egovframework/com/sym/cal/EgovRestdeModify"; + } + + restde.setLastUpdusrId(loginVO.getUniqId()); + restdeManageService.updateRestde(restde); + return "forward:/sym/cal/EgovRestdeList.do"; + } else { + return "forward:/sym/cal/EgovRestdeList.do"; + } + } + + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sym/ccm/acr/service/AdministCodeRecptn.java b/src/main/java/egovframework/com/sym/ccm/acr/service/AdministCodeRecptn.java new file mode 100644 index 0000000..4beb34d --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/acr/service/AdministCodeRecptn.java @@ -0,0 +1,446 @@ +package egovframework.com.sym.ccm.acr.service; + +import java.io.Serializable; + +/** + * 법정동코드수신로그 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class AdministCodeRecptn implements Serializable { + + private static final long serialVersionUID = -8112169445756353554L; + + /** + * 발생일자 + */ + private String occrrDe = ""; + + /** + * 행정구역구분 + */ + private String administZoneSe = ""; + + /** + * 행정구역코드 + */ + private String administZoneCode = ""; + + /** + * 작업일련번호 + */ + int opertSn = 0; + + /** + * 변경구분코드 + */ + private String changeSeCode = ""; + + /** + * 처리구분 + */ + private String processSe = ""; + + /** + * 행정구역명 + */ + private String administZoneNm = ""; + + /** + * 최하위행정구역명 + */ + private String lowestAdministZoneNm = ""; + + /** + * 시도코드 + */ + private String ctprvnCode = ""; + + /** + * 시군구코드 + */ + private String signguCode = ""; + + /** + * 읍면동코드 + */ + private String emdCode = ""; + + /** + * 리코드 + */ + private String liCode = ""; + + /** + * 생성일자 + */ + private String creatDe = ""; + + /** + * 폐지일자 + */ + private String ablDe = ""; + + /** + * 폐지유무 + */ + private String ablEnnc = ""; + + /* + * 상위행정구역코드 + */ + private String upperAdministZoneCode = ""; + + /* + * 상위행정구역명 + */ + private String upperAdministZoneNm = ""; + + /* + * 사용여부 + */ + private String useAt = ""; + + /** + * 최초등록자ID + */ + private String frstRegisterId = "" ; + + /** + * 최종수정자ID + */ + private String lastUpdusrId = "" ; + + /** + * occrrDe attribute 를 리턴한다. + * @return String + */ + public String getOccrrDe() { + return occrrDe; + } + + /** + * occrrDe attribute 값을 설정한다. + * @param occrrDe String + */ + public void setOccrrDe(String occrrDe) { + this.occrrDe = occrrDe; + } + + /** + * administZoneSe attribute 를 리턴한다. + * @return String + */ + public String getAdministZoneSe() { + return administZoneSe; + } + + /** + * administZoneSe attribute 값을 설정한다. + * @param administZoneSe String + */ + public void setAdministZoneSe(String administZoneSe) { + this.administZoneSe = administZoneSe; + } + + /** + * administZoneCode attribute 를 리턴한다. + * @return String + */ + public String getAdministZoneCode() { + return administZoneCode; + } + + /** + * administZoneCode attribute 값을 설정한다. + * @param administZoneCode String + */ + public void setAdministZoneCode(String administZoneCode) { + this.administZoneCode = administZoneCode; + } + + /** + * opertSn attribute 를 리턴한다. + * @return int + */ + public int getOpertSn() { + return opertSn; + } + + /** + * opertSn attribute 값을 설정한다. + * @param opertSn int + */ + public void setOpertSn(int opertSn) { + this.opertSn = opertSn; + } + + /** + * changeSeCode attribute 를 리턴한다. + * @return String + */ + public String getChangeSeCode() { + return changeSeCode; + } + + /** + * changeSeCode attribute 값을 설정한다. + * @param changeSeCode String + */ + public void setChangeSeCode(String changeSeCode) { + this.changeSeCode = changeSeCode; + } + + /** + * processSe attribute 를 리턴한다. + * @return String + */ + public String getProcessSe() { + return processSe; + } + + /** + * processSe attribute 값을 설정한다. + * @param processSe String + */ + public void setProcessSe(String processSe) { + this.processSe = processSe; + } + + /** + * administZoneNm attribute 를 리턴한다. + * @return String + */ + public String getAdministZoneNm() { + return administZoneNm; + } + + /** + * administZoneNm attribute 값을 설정한다. + * @param administZoneNm String + */ + public void setAdministZoneNm(String administZoneNm) { + this.administZoneNm = administZoneNm; + } + + /** + * lowestAdministZoneNm attribute 를 리턴한다. + * @return String + */ + public String getLowestAdministZoneNm() { + return lowestAdministZoneNm; + } + + /** + * lowestAdministZoneNm attribute 값을 설정한다. + * @param lowestAdministZoneNm String + */ + public void setLowestAdministZoneNm(String lowestAdministZoneNm) { + this.lowestAdministZoneNm = lowestAdministZoneNm; + } + + /** + * ctprvnCode attribute 를 리턴한다. + * @return String + */ + public String getCtprvnCode() { + return ctprvnCode; + } + + /** + * ctprvnCode attribute 값을 설정한다. + * @param ctprvnCode String + */ + public void setCtprvnCode(String ctprvnCode) { + this.ctprvnCode = ctprvnCode; + } + + /** + * signguCode attribute 를 리턴한다. + * @return String + */ + public String getSignguCode() { + return signguCode; + } + + /** + * signguCode attribute 값을 설정한다. + * @param signguCode String + */ + public void setSignguCode(String signguCode) { + this.signguCode = signguCode; + } + + /** + * emdCode attribute 를 리턴한다. + * @return String + */ + public String getEmdCode() { + return emdCode; + } + + /** + * emdCode attribute 값을 설정한다. + * @param emdCode String + */ + public void setEmdCode(String emdCode) { + this.emdCode = emdCode; + } + + /** + * liCode attribute 를 리턴한다. + * @return String + */ + public String getLiCode() { + return liCode; + } + + /** + * liCode attribute 값을 설정한다. + * @param liCode String + */ + public void setLiCode(String liCode) { + this.liCode = liCode; + } + + /** + * creatDe attribute 를 리턴한다. + * @return String + */ + public String getCreatDe() { + return creatDe; + } + + /** + * creatDe attribute 값을 설정한다. + * @param creatDe String + */ + public void setCreatDe(String creatDe) { + this.creatDe = creatDe; + } + + /** + * ablDe attribute 를 리턴한다. + * @return String + */ + public String getAblDe() { + return ablDe; + } + + /** + * ablDe attribute 값을 설정한다. + * @param ablDe String + */ + public void setAblDe(String ablDe) { + this.ablDe = ablDe; + } + + /** + * ablEnnc attribute 를 리턴한다. + * @return String + */ + public String getAblEnnc() { + return ablEnnc; + } + + /** + * ablEnnc attribute 값을 설정한다. + * @param ablEnnc String + */ + public void setAblEnnc(String ablEnnc) { + this.ablEnnc = ablEnnc; + } + + /** + * upperAdministZoneCode attribute 를 리턴한다. + * @return String + */ + public String getUpperAdministZoneCode() { + return upperAdministZoneCode; + } + + /** + * upperAdministZoneCode attribute 값을 설정한다. + * @param upperAdministZoneCode String + */ + public void setUpperAdministZoneCode(String upperAdministZoneCode) { + this.upperAdministZoneCode = upperAdministZoneCode; + } + + /** + * upperAdministZoneNm attribute 를 리턴한다. + * @return String + */ + public String getUpperAdministZoneNm() { + return upperAdministZoneNm; + } + + /** + * upperAdministZoneNm attribute 값을 설정한다. + * @param upperAdministZoneNm String + */ + public void setUpperAdministZoneNm(String upperAdministZoneNm) { + this.upperAdministZoneNm = upperAdministZoneNm; + } + + /** + * useAt attribute 를 리턴한다. + * @return String + */ + public String getUseAt() { + return useAt; + } + + /** + * useAt attribute 값을 설정한다. + * @param useAt String + */ + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/acr/service/AdministCodeRecptnVO.java b/src/main/java/egovframework/com/sym/ccm/acr/service/AdministCodeRecptnVO.java new file mode 100644 index 0000000..229bb7f --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/acr/service/AdministCodeRecptnVO.java @@ -0,0 +1,199 @@ +package egovframework.com.sym.ccm.acr.service; + +import java.io.Serializable; + +/** + * + * 법정동코드 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class AdministCodeRecptnVO extends AdministCodeRecptn implements Serializable { + + private static final long serialVersionUID = 8718522735836192467L; + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/acr/service/EgovAdministCodeRecptnService.java b/src/main/java/egovframework/com/sym/ccm/acr/service/EgovAdministCodeRecptnService.java new file mode 100644 index 0000000..d5a0683 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/acr/service/EgovAdministCodeRecptnService.java @@ -0,0 +1,69 @@ +package egovframework.com.sym.ccm.acr.service; + +import java.util.List; + +/** + * + * 법정동코드에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public interface EgovAdministCodeRecptnService { + + /** + * 법정동코드수신을 처리한다. + * @param administCode + * @throws Exception + */ + void insertAdministCodeRecptn() throws Exception; + + /** + * 법정동코드 상세내역을 조회한다. + * @param administCode + * @return AdministCode(법정동코드) + * @throws Exception + */ + AdministCodeRecptn selectAdministCodeDetail(AdministCodeRecptn administCodeRecptn) throws Exception; + + /** + * 법정동코드수신 목록을 조회한다. + * @param searchVO + * @return List(법정동코드 목록) + * @throws Exception + */ + List selectAdministCodeRecptnList(AdministCodeRecptnVO searchVO) throws Exception; + + /** + * 법정동코드수신 총 갯수를 조회한다. + * @param searchVO + * @return int(법정동코드 총 갯수) + */ + int selectAdministCodeRecptnListTotCnt(AdministCodeRecptnVO searchVO) throws Exception; + + /** + * 법정동코드 목록을 조회한다. + * @param searchVO + * @return List(법정동코드 목록) + * @throws Exception + */ + List selectAdministCodeList(AdministCodeRecptnVO searchVO) throws Exception; + + /** + * 법정동코드 총 갯수를 조회한다. + * @param searchVO + * @return int(법정동코드 총 갯수) + */ + int selectAdministCodeListTotCnt(AdministCodeRecptnVO searchVO) throws Exception; +} diff --git a/src/main/java/egovframework/com/sym/ccm/acr/service/impl/AdministCodeRecptnDAO.java b/src/main/java/egovframework/com/sym/ccm/acr/service/impl/AdministCodeRecptnDAO.java new file mode 100644 index 0000000..b57e611 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/acr/service/impl/AdministCodeRecptnDAO.java @@ -0,0 +1,139 @@ +package egovframework.com.sym.ccm.acr.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.ccm.acr.service.AdministCodeRecptn; +import egovframework.com.sym.ccm.acr.service.AdministCodeRecptnVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 법정동코드에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Repository("AdministCodeRecptnDAO") +public class AdministCodeRecptnDAO extends EgovComAbstractDAO { + + /** + * 법정동코드수신을 처리한다. + * @param administCode + * @throws Exception + */ + public void insertAdministCodeRecptn(AdministCodeRecptn administCodeRecptn) throws Exception { + insert("AdministCodeRecptnDAO.insertAdministCodeRecptn", administCodeRecptn); + } + + /** + * 법정동코드를 등록한다. + * @param administCode + * @throws Exception + */ + public void insertAdministCode(AdministCodeRecptn administCodeRecptn) throws Exception { + AdministCodeRecptn beforeData = (AdministCodeRecptn) select("AdministCodeRecptnDAO.selectAdministCodeDetail", administCodeRecptn); + + if (beforeData.getAdministZoneCode().equals(administCodeRecptn.getAdministZoneCode()) + && beforeData.getAdministZoneSe() .equals(administCodeRecptn.getAdministZoneSe() ) + ) { + // 기등록 자료 + administCodeRecptn.setProcessSe("10"); + } else { + int rtnValue = update("AdministCodeRecptnDAO.insertAdministCode", administCodeRecptn); + if (rtnValue != 1) { + // 등록 오류 + administCodeRecptn.setProcessSe("11"); + } + } + update("AdministCodeRecptnDAO.updateAdministCodeRecptn", administCodeRecptn); + } + + /** + * 법정동코드를 수정한다. + * @param administCode + * @throws Exception + */ + public void updateAdministCode(AdministCodeRecptn administCodeRecptn) throws Exception { + int rtnValue = update("AdministCodeRecptnDAO.updateAdministCode", administCodeRecptn); + if (rtnValue != 1) { + // 변경 오류 + administCodeRecptn.setProcessSe("12"); + } + update("AdministCodeRecptnDAO.updateAdministCodeRecptn", administCodeRecptn); + } + + /** + * 법정동코드를 삭제한다. + * @param administCode + * @throws Exception + */ + public void deleteAdministCode(AdministCodeRecptn administCodeRecptn) throws Exception { + int rtnValue = update("AdministCodeRecptnDAO.deleteAdministCode", administCodeRecptn); + if (rtnValue != 1) { + // 삭제 오류 + administCodeRecptn.setProcessSe("13"); + } + update("AdministCodeRecptnDAO.updateAdministCodeRecptn", administCodeRecptn); + } + + /** + * 법정동코드 상세내역을 조회한다. + * @param administCode + * @return AdministCode(법정동코드) + */ + public AdministCodeRecptn selectAdministCodeDetail(AdministCodeRecptn administCodeRecptn) throws Exception { + return (AdministCodeRecptn) select("AdministCodeRecptnDAO.selectAdministCodeDetail", administCodeRecptn); + } + + + /** + * 법정동코드수신 목록을 조회한다. + * @param searchVO + * @return List(법정동코드 목록) + * @throws Exception + */ + public List selectAdministCodeRecptnList(AdministCodeRecptnVO searchVO) throws Exception { + return list("AdministCodeRecptnDAO.selectAdministCodeRecptnList", searchVO); + } + + /** + * 법정동코드수신 총 갯수를 조회한다. + * @param searchVO + * @return int(법정동코드 총 갯수) + */ + public int selectAdministCodeRecptnListTotCnt(AdministCodeRecptnVO searchVO) throws Exception { + return (Integer)select("AdministCodeRecptnDAO.selectAdministCodeRecptnListTotCnt", searchVO); + } + + /** + * 법정동코드 목록을 조회한다. + * @param searchVO + * @return List(법정동코드 목록) + * @throws Exception + */ + public List selectAdministCodeList(AdministCodeRecptnVO searchVO) throws Exception { + return list("AdministCodeRecptnDAO.selectAdministCodeList", searchVO); + } + + /** + * 법정동코드 총 갯수를 조회한다. + * @param searchVO + * @return int(법정동코드 총 갯수) + */ + public int selectAdministCodeListTotCnt(AdministCodeRecptnVO searchVO) throws Exception { + return (Integer)select("AdministCodeRecptnDAO.selectAdministCodeListTotCnt", searchVO); + } +} diff --git a/src/main/java/egovframework/com/sym/ccm/acr/service/impl/EgovAdministCodeRecptnServiceImpl.java b/src/main/java/egovframework/com/sym/ccm/acr/service/impl/EgovAdministCodeRecptnServiceImpl.java new file mode 100644 index 0000000..eb5bf76 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/acr/service/impl/EgovAdministCodeRecptnServiceImpl.java @@ -0,0 +1,403 @@ +package egovframework.com.sym.ccm.acr.service.impl; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.text.SimpleDateFormat; +import java.util.List; +import java.util.Locale; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.com.cmm.util.EgovResourceCloseHelper; +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.com.sym.ccm.acr.service.AdministCodeRecptn; +import egovframework.com.sym.ccm.acr.service.AdministCodeRecptnVO; +import egovframework.com.sym.ccm.acr.service.EgovAdministCodeRecptnService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +/** + * + * 법정동코드에 대한 서비스 구현클래스를 정의한다. + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.10.07  이기하          finally문을 추가하여 에러시 자원반환할 수 있도록 추가
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Service("AdministCodeRecptnService") +public class EgovAdministCodeRecptnServiceImpl extends EgovAbstractServiceImpl implements EgovAdministCodeRecptnService { + + /** log */ + private static final Logger LOGGER = LoggerFactory.getLogger(EgovAdministCodeRecptnServiceImpl.class); + + @Resource(name = "AdministCodeRecptnDAO") + private AdministCodeRecptnDAO administCodeRecptnDAO; + + /** EgovIdGnrService */ + @Resource(name = "egovAdministCodeRecptnIdGnrService") + private EgovIdGnrService idgenService; + + /** + * 법정동코드수신을 처리한다. + */ + public void insertAdministCodeRecptn() throws Exception { + SimpleDateFormat sDate = new SimpleDateFormat("yyyyMMddHHmm", Locale.getDefault()); + String strdate = sDate.format(new java.util.Date()); + + String rcvDir = EgovProperties.getProperty("CNTC.INSTTCODE.DIR.rcv"); + String rcvOldDir = EgovProperties.getProperty("CNTC.INSTTCODE.DIR.rcvold"); + String binDir = EgovProperties.getProperty("CNTC.INSTTCODE.DIR.bin"); + + String rcvListCmd = EgovProperties.getProperty("CNTC.INSTTCODE.CMD.edircv"); + String rcvMesgCmd = EgovProperties.getProperty("CNTC.INSTTCODE.CMD.edircvmsg"); + + String userId = EgovProperties.getProperty("CNTC.INSTTCODE.INFO.userid"); + String userPw = EgovProperties.getProperty("CNTC.INSTTCODE.INFO.userpw"); + + String rcvListName = "unSEENlst"; + String CODULD = "CODULD"; // DocCode선언 + + String rcvListFullCmd = binDir + rcvListCmd; + String rcvMesgFullCmd = binDir + rcvMesgCmd; + String rcvListFullName = rcvDir + rcvListName + "." + strdate; + + String systemCmdFull = null; + + FileInputStream fin = null; + InputStreamReader sin = null; + BufferedReader in = null; + + File listFile = null; + File dataFile = null; + + File recvOldFile = null; + + InputStream is = null; + BufferedReader br = null; + + // 연계목록을 가져온다. + try { + systemCmdFull = rcvListFullCmd + " " + userId + " " + userPw + " *UNSEEN *ALL*ALL " + rcvListFullName; + Runtime runtime = Runtime.getRuntime(); + Process process = runtime.exec(systemCmdFull); + + is = process.getInputStream(); + br = new BufferedReader(new InputStreamReader(is)); + String tmp; + String temp = ""; + tmp = br.readLine(); + while (tmp != null) { + temp += tmp; + } + + egovLogger.debug("List command console output : {}", temp); + + } catch (IOException e) { + egovLogger.error("IO Exception", e); + throw e; + } finally { + EgovResourceCloseHelper.close(br, is); + } + + // 연계목록을 확인하여 연계파일을 가져온다. + try { + listFile = new File(rcvListFullName); + + if (listFile.exists()) { + fin = new FileInputStream(listFile); + sin = new InputStreamReader(fin); + in = new BufferedReader(sin); + + String readList = null; + int listCount = 0; + + // 연계목록을 확인 + readList = in.readLine(); + while (readList != null) { + listCount++; + + if (listCount < 5) { + continue; + } + + String messageID = null; // messageID + String docCode = null; // DocCode + String fileID = null; // fileID + + messageID = readList.substring(0, 20); + fileID = readList.substring(20, readList.indexOf(" ")); + docCode = readList.substring(50, 56); + + if (CODULD.equals(docCode)) { + // 연계파일을 가져온다. + try { + systemCmdFull = rcvMesgFullCmd + " " + userId + " " + userPw + " " + messageID + " *ALL*ALL " + rcvDir + fileID; + Runtime runtime = Runtime.getRuntime(); + Process process = runtime.exec(systemCmdFull); + + is = process.getInputStream(); + br = new BufferedReader(new InputStreamReader(is)); + String tmp; + String temp = ""; + tmp = br.readLine(); + while (tmp != null) { + temp += tmp; + } + + egovLogger.debug("Message command console output : {}", temp); + + } finally { + EgovResourceCloseHelper.close(br, is); + } + } + } + + EgovResourceCloseHelper.close(in); + + // 연계파일 수신이 완료되면 listFile:=rcvListFullName 파일을 recvOldFileDir 로 이동한다. + recvOldFile = new File(rcvOldDir + listFile.getName()); + if (listFile.isFile()) { + if (recvOldFile.getParentFile().isDirectory()) { + listFile.renameTo(recvOldFile); + } + } else { + // 진행종료 + processException("recvList filename or rcvold path is not valid!!!"); + } + } + } catch (IOException e) { + egovLogger.error("IOException", e); + throw e; + } finally { + EgovResourceCloseHelper.close(fin, sin, in); + } + + // 수신디렉토리의 모든 연계파일을 확인하여 연계정보를 처리한다. + String buf = ""; + //String buf2[] = null; + + File recvFileDir = new File(rcvDir); + File recvFileList[] = recvFileDir.listFiles(); + + int fileCount = 0; + + do { + if (recvFileList[fileCount].getName().indexOf(".rec") > -1) { + dataFile = new File(recvFileList[fileCount].getPath()); + } else { + fileCount++; + continue; + } + + buf += "\n\n++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; + + String readData = null; + + try { + if (dataFile.exists()) { + + fin = new FileInputStream(dataFile); + sin = new InputStreamReader(fin); + in = new BufferedReader(sin); + readData = in.readLine(); + while (readData != null) { + + AdministCodeRecptn administCodeRecptn = new AdministCodeRecptn(); + + String tokenData[] = readData.split(" ", 12); + int tokenLength = tokenData.length; + + String strTmp = null; + for (int i = 0; i < tokenLength; i++) { + strTmp = tokenData[i].trim(); + tokenData[i] = strTmp; + } + + buf += "\n\n++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; + buf += "tokenLength" + Integer.toString(tokenLength); + + if (tokenLength >= 12) { + // 마지막 문자 ';' 제거 + tokenData[tokenLength - 1] = tokenData[tokenLength - 1].replace(";", "").trim(); + + buf += "\n" + "[ F]" + dataFile.getName() // 파일명 + + "\n"; + + // 명령 변경구분코드로 변환 + strTmp = "INS".equals(tokenData[0]) ? "01" : ("UPD".equals(tokenData[0]) ? "02" : ("DEL".equals(tokenData[0]) ? "03" : "")); + + // 기본셋팅 + administCodeRecptn.setAdministZoneSe("1"); // 행정구역구분 1.법정동; 2.행정동 + + // 실제 연계 항목 Mapping 작업 + administCodeRecptn.setChangeSeCode(strTmp); // 명령 :: 변경구분코드 + administCodeRecptn.setOccrrDe(tokenData[1]); // 날짜 :: 발생일자 + administCodeRecptn.setAdministZoneCode(tokenData[2]); // 행정구역코드 :: 행정구역코드 + administCodeRecptn.setAdministZoneNm(tokenData[7]); // 행정구역명 :: 행정구역명 + administCodeRecptn.setLowestAdministZoneNm(tokenData[8]); // 최하위행정구역명 :: 최하위행정구역명 + administCodeRecptn.setCtprvnCode(tokenData[3]); // 시도코드 :: 시도코드 + administCodeRecptn.setSignguCode(tokenData[4]); // 시군구코드 :: 시군구코드 + administCodeRecptn.setEmdCode(tokenData[5]); // 읍면동코드 :: 읍면동코드 + administCodeRecptn.setLiCode(tokenData[6]); // 리코드 :: 리코드 + administCodeRecptn.setCreatDe(tokenData[9]); // 생성일자 :: 생성일자 + administCodeRecptn.setAblDe(tokenData[10]); // 폐지일자 :: 폐지일자 + administCodeRecptn.setAblEnnc(tokenData[11]); // 폐지유무 :: 폐지유무 + administCodeRecptn.setUseAt(tokenData[11]); // 폐지유무 :: 폐지유무 + + // 작업일자 + if (administCodeRecptn.getOccrrDe().equals("") || administCodeRecptn.getOccrrDe() == null) { + administCodeRecptn.setOccrrDe(strdate.substring(0, 8)); + } + + // 상위기관코드 계산 + String upperCode = administCodeRecptn.getSignguCode().equals("000") ? "" : (administCodeRecptn.getEmdCode().equals("000") ? administCodeRecptn + .getCtprvnCode() + "000" + "000" + "00" : (administCodeRecptn.getLiCode().equals("00") ? administCodeRecptn.getCtprvnCode() + + administCodeRecptn.getSignguCode() + "000" + "00" : administCodeRecptn.getCtprvnCode() + administCodeRecptn.getSignguCode() + + administCodeRecptn.getEmdCode() + "00")); + administCodeRecptn.setUpperAdministZoneCode(upperCode); + + // 작업일련번호 확인 Generation + int iOpertSn = idgenService.getNextIntegerId(); + administCodeRecptn.setOpertSn(iOpertSn); + + buf += "\n-all--------------\n"; + + for (int i = 0; i < tokenLength; i++) { + buf += "SPLIT [" + Integer.toString(tokenData[i].length()) + "]>>>>>> " + Integer.toString(i) + " : [" + tokenData[i] + "]\n"; + } + + } else { + + LOGGER.debug("\n\n*****************************************************************"); + LOGGER.debug(buf); + LOGGER.debug("\n\n*****************************************************************"); + LOGGER.debug(readData); + + continue; + } + LOGGER.debug("\n\n*****************************************************************"); + LOGGER.debug("\n\n*****************************************************************"); + LOGGER.debug(buf); + + buf += "\n---------------\n"; + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + administCodeRecptn.setFrstRegisterId(uniqId); + administCodeRecptn.setLastUpdusrId(uniqId); + + // changeSeCode 변경구분코드 + // '01' 코드생성 + // '02' 코드변경 + // '03' 코드말소 + + // processSe 처리구분 + // '00' 수신처리 + // '01' 처리완료 + // '11' 생성오류 + // '12' 변경오류 + // '13' 말소오류 + + // 작업구분 - 수신 + administCodeRecptn.setProcessSe("00"); + administCodeRecptnDAO.insertAdministCodeRecptn(administCodeRecptn); + + // 작업구분 - 처리 + administCodeRecptn.setProcessSe("01"); + if ("01".equals(administCodeRecptn.getChangeSeCode())) { + // 코드생성 + administCodeRecptnDAO.insertAdministCode(administCodeRecptn); + } else if ("02".equals(administCodeRecptn.getChangeSeCode())) { + // 코드변경 + administCodeRecptnDAO.updateAdministCode(administCodeRecptn); + } else if ("03".equals(administCodeRecptn.getChangeSeCode())) { + // 코드말소 + administCodeRecptnDAO.deleteAdministCode(administCodeRecptn); + } + } + EgovResourceCloseHelper.close(in); + + // 연계파일 수신이 완료되면 dataFile 파일을 recvOldFileDir 로 이동한다. + recvOldFile = new File(rcvOldDir + dataFile.getName()); + if (dataFile.isFile()) { + if (recvOldFile.getParentFile().isDirectory()) { + dataFile.renameTo(recvOldFile); + } + } else { + // 진행종료 + processException("dataFile filename or rcvold path is not valid!!!"); + //throw new Exception("dataFile filename or rcvold path is not valid!!!"); + } + } + } catch (IOException e) { + LOGGER.error("IO Exception", e); + } finally { + EgovResourceCloseHelper.close(in); + + fileCount++; + } + + } while (fileCount < recvFileList.length); + + } + + /** + * 법정동코드 상세내역을 조회한다. + */ + public AdministCodeRecptn selectAdministCodeDetail(AdministCodeRecptn administCodeRecptn) throws Exception { + AdministCodeRecptn ret = (AdministCodeRecptn) administCodeRecptnDAO.selectAdministCodeDetail(administCodeRecptn); + return ret; + } + + /** + * 법정동코드수신 목록을 조회한다. + */ + public List selectAdministCodeRecptnList(AdministCodeRecptnVO searchVO) throws Exception { + return administCodeRecptnDAO.selectAdministCodeRecptnList(searchVO); + } + + /** + * 법정동코드수신 총 갯수를 조회한다. + */ + public int selectAdministCodeRecptnListTotCnt(AdministCodeRecptnVO searchVO) throws Exception { + return administCodeRecptnDAO.selectAdministCodeRecptnListTotCnt(searchVO); + } + + /** + * 법정동코드 목록을 조회한다. + */ + public List selectAdministCodeList(AdministCodeRecptnVO searchVO) throws Exception { + return administCodeRecptnDAO.selectAdministCodeList(searchVO); + } + + /** + * 법정동코드 총 갯수를 조회한다. + */ + public int selectAdministCodeListTotCnt(AdministCodeRecptnVO searchVO) throws Exception { + return administCodeRecptnDAO.selectAdministCodeListTotCnt(searchVO); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/acr/web/EgovAdministCodeRecptnController.java b/src/main/java/egovframework/com/sym/ccm/acr/web/EgovAdministCodeRecptnController.java new file mode 100644 index 0000000..a4fdf9d --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/acr/web/EgovAdministCodeRecptnController.java @@ -0,0 +1,207 @@ +package egovframework.com.sym.ccm.acr.web; + +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.service.EgovCmmUseService; +import egovframework.com.sym.ccm.acr.service.AdministCodeRecptn; +import egovframework.com.sym.ccm.acr.service.AdministCodeRecptnVO; +import egovframework.com.sym.ccm.acr.service.EgovAdministCodeRecptnService; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * + * 법정동코드를 수신에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ + +@Controller +public class EgovAdministCodeRecptnController { + + @Resource(name = "AdministCodeRecptnService") + private EgovAdministCodeRecptnService administCodeManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Resource(name="EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + /** + * TEST 용 Controller + * 실 적용시 Job Scheduler 에 등록하여 처리한다. + * 법정동코드를 수신처리한다. + * @param loginVO + * @param administCode + * @param bindingResult + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeRegist" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/acr/addAdministCode.do") + public String insertAdministCodeRecptn (AdministCodeRecptn administCodeRecptn + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + + administCodeManageService.insertAdministCodeRecptn(); + + return "egovframework/com/sym/ccm/acr/EgovAdministCodeRegist_TEST"; + } else { + return "forward:/sym/ccm/acr/getAdministCodeRecptnList.do"; + } + } + + /** + * 법정동코드 상세내역을 조회한다. + * @param loginVO + * @param administCode + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeDetail" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/acr/getAdministCodeDetail.do") + public String selectAdministCodeDetail (@ModelAttribute("administCode") AdministCodeRecptn administCode + , @ModelAttribute("administCodeRecptnVO") AdministCodeRecptnVO administCodeRecptnVO + , ModelMap model + ) throws Exception { + /* 법정동코드 조회 */ + AdministCodeRecptn vo = administCodeManageService.selectAdministCodeDetail(administCode); + model.addAttribute("result", vo); + + /* 법정동코드수신 리스트 */ + administCodeRecptnVO.setRecordCountPerPage(9999999); + administCodeRecptnVO.setFirstIndex(0); + + + /* 공통코드처리 */ + ComDefaultCodeVO comCodeVO = new ComDefaultCodeVO(); + + /* 변경구분코드 */ + comCodeVO.setCodeId("COM043"); + List changeSeCodeList = cmmUseService.selectCmmCodeDetail(comCodeVO); + model.addAttribute("changeSeCodeList", changeSeCodeList); + + /* 처리구분코드 */ + comCodeVO.setCodeId("COM044"); + List processSeList = cmmUseService.selectCmmCodeDetail(comCodeVO); + model.addAttribute("processSeList", processSeList); + + administCodeRecptnVO.setSearchCondition("CodeList"); + List administCodeRecptnList = administCodeManageService.selectAdministCodeRecptnList(administCodeRecptnVO); + model.addAttribute("administCodeRecptnList", administCodeRecptnList); + + return "egovframework/com/sym/ccm/acr/EgovAdministCodeDetail"; + } + + /** + * 법정동코드수신 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeList" + * @throws Exception + */ + @IncludedInfo(name="행정코드관리", listUrl="/sym/ccm/acr/getAdministCodeRecptnList.do", order = 1010 ,gid = 60) + @RequestMapping(value="/sym/ccm/acr/getAdministCodeRecptnList.do") + public String selectAdministCodeRecptnList (@ModelAttribute("searchVO") AdministCodeRecptnVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List administCodeRecptnList = administCodeManageService.selectAdministCodeRecptnList(searchVO); + model.addAttribute("resultList", administCodeRecptnList); + + int totCnt = administCodeManageService.selectAdministCodeRecptnListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/acr/EgovAdministCodeRecptnList"; + } + + /** + * 법정동코드수신 개인화페이지용 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeList" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/acr/getAdministCodeRecptnMainList.do") + public String selectAdministCodeRecptnMainList (@ModelAttribute("searchVO") AdministCodeRecptnVO searchVO + , ModelMap model + ) throws Exception { + /** pageing */ + searchVO.setRecordCountPerPage(6); + searchVO.setFirstIndex(0); + + List administCodeRecptnList = administCodeManageService.selectAdministCodeRecptnList(searchVO); + model.addAttribute("resultList", administCodeRecptnList); + + int totCnt = administCodeManageService.selectAdministCodeRecptnListTotCnt(searchVO); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/acr/EgovAdministCodeRecptnMainList"; + } + + /** + * Map 내용을 확인한다. + * @param commandMap + * @return + */ + public String printParameterMap(@RequestParam Map commandMap){ + String ret = ""; + for(Object key:commandMap.keySet()){ + Object value = commandMap.get(key); + + ret += "key:" + key.toString() + " value:" + value.toString(); + } + return ret; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sym/ccm/adc/service/AdministCode.java b/src/main/java/egovframework/com/sym/ccm/adc/service/AdministCode.java new file mode 100644 index 0000000..d4404a2 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/adc/service/AdministCode.java @@ -0,0 +1,236 @@ +package egovframework.com.sym.ccm.adc.service; + +import java.io.Serializable; + +/** + * 행정코드 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class AdministCode implements Serializable { + + private static final long serialVersionUID = -3716488129294074398L; + + /* + * 행정구역구분 + */ + private String administZoneSe = ""; + + /* + * 행정구역코드 + */ + private String administZoneCode = ""; + + /* + * 행정구역명 + */ + private String administZoneNm = ""; + + /* + * 상위행정구역코드 + */ + private String upperAdministZoneCode = ""; + + /* + * 상위행정구역명 + */ + private String upperAdministZoneNm = ""; + + /* + * 생성일자 + */ + private String creatDe = ""; + + /* + * 폐기일자 + */ + private String ablDe = ""; + + /* + * 사용여부 + */ + private String useAt = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * administZoneSe attribute 를 리턴한다. + * @return String + */ + public String getAdministZoneSe() { + return administZoneSe; + } + + /** + * administZoneSe attribute 값을 설정한다. + * @param administZoneSe String + */ + public void setAdministZoneSe(String administZoneSe) { + this.administZoneSe = administZoneSe; + } + + /** + * administZoneCode attribute 를 리턴한다. + * @return String + */ + public String getAdministZoneCode() { + return administZoneCode; + } + + /** + * administZoneCode attribute 값을 설정한다. + * @param administZoneCode String + */ + public void setAdministZoneCode(String administZoneCode) { + this.administZoneCode = administZoneCode; + } + + /** + * administZoneNm attribute 를 리턴한다. + * @return String + */ + public String getAdministZoneNm() { + return administZoneNm; + } + + /** + * administZoneNm attribute 값을 설정한다. + * @param administZoneNm String + */ + public void setAdministZoneNm(String administZoneNm) { + this.administZoneNm = administZoneNm; + } + + /** + * upperAdministZoneCode attribute 를 리턴한다. + * @return String + */ + public String getUpperAdministZoneCode() { + return upperAdministZoneCode; + } + + /** + * upperAdministZoneCode attribute 값을 설정한다. + * @param upperAdministZoneCode String + */ + public void setUpperAdministZoneCode(String upperAdministZoneCode) { + this.upperAdministZoneCode = upperAdministZoneCode; + } + + /** + * upperAdministZoneNm attribute 를 리턴한다. + * @return String + */ + public String getUpperAdministZoneNm() { + return upperAdministZoneNm; + } + + /** + * upperAdministZoneNm attribute 값을 설정한다. + * @param upperAdministZoneNm String + */ + public void setUpperAdministZoneNm(String upperAdministZoneNm) { + this.upperAdministZoneNm = upperAdministZoneNm; + } + + /** + * creatDe attribute 를 리턴한다. + * @return String + */ + public String getCreatDe() { + return creatDe; + } + + /** + * creatDe attribute 값을 설정한다. + * @param creatDe String + */ + public void setCreatDe(String creatDe) { + this.creatDe = creatDe; + } + + /** + * ablDe attribute 를 리턴한다. + * @return String + */ + public String getAblDe() { + return ablDe; + } + + /** + * ablDe attribute 값을 설정한다. + * @param ablDe String + */ + public void setAblDe(String ablDe) { + this.ablDe = ablDe; + } + + /** + * useAt attribute 를 리턴한다. + * @return String + */ + public String getUseAt() { + return useAt; + } + + /** + * useAt attribute 값을 설정한다. + * @param useAt String + */ + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/adc/service/AdministCodeVO.java b/src/main/java/egovframework/com/sym/ccm/adc/service/AdministCodeVO.java new file mode 100644 index 0000000..a4240b0 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/adc/service/AdministCodeVO.java @@ -0,0 +1,198 @@ +package egovframework.com.sym.ccm.adc.service; + +import java.io.Serializable; + +/** + * + * 행정코드 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class AdministCodeVO extends AdministCode implements Serializable { + + private static final long serialVersionUID = 3232859721751526210L; + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/adc/service/EgovCcmAdministCodeManageService.java b/src/main/java/egovframework/com/sym/ccm/adc/service/EgovCcmAdministCodeManageService.java new file mode 100644 index 0000000..9f17875 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/adc/service/EgovCcmAdministCodeManageService.java @@ -0,0 +1,68 @@ +package egovframework.com.sym.ccm.adc.service; + +import java.util.List; + +/** + * + * 행정코드에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public interface EgovCcmAdministCodeManageService { + + /** + * 행정코드를 삭제한다. + * @param administCode + * @throws Exception + */ + void deleteAdministCode(AdministCode administCode) throws Exception; + + /** + * 행정코드를 등록한다. + * @param administCode + * @throws Exception + */ + void insertAdministCode(AdministCode administCode) throws Exception; + + /** + * 행정코드 상세항목을 조회한다. + * @param administCode + * @return AdministCode(행정코드) + * @throws Exception + */ + AdministCode selectAdministCodeDetail(AdministCode administCode) throws Exception; + + /** + * 행정코드 목록을 조회한다. + * @param searchVO + * @return List(행정코드 목록) + * @throws Exception + */ + List selectAdministCodeList(AdministCodeVO searchVO) throws Exception; + + /** + * 행정코드 총 갯수를 조회한다. + * @param searchVO + * @return int(행정코드 총 갯수) + */ + int selectAdministCodeListTotCnt(AdministCodeVO searchVO) throws Exception; + + /** + * 행정코드를 수정한다. + * @param administCode + * @throws Exception + */ + void updateAdministCode(AdministCode administCode) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sym/ccm/adc/service/impl/AdministCodeManageDAO.java b/src/main/java/egovframework/com/sym/ccm/adc/service/impl/AdministCodeManageDAO.java new file mode 100644 index 0000000..598fa1b --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/adc/service/impl/AdministCodeManageDAO.java @@ -0,0 +1,88 @@ +package egovframework.com.sym.ccm.adc.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.ccm.adc.service.AdministCode; +import egovframework.com.sym.ccm.adc.service.AdministCodeVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 행정코드에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Repository("AdministCodeManageDAO") +public class AdministCodeManageDAO extends EgovComAbstractDAO { + + /** + * 행정코드를 삭제한다. + * @param administCode + * @throws Exception + */ + public void deleteAdministCode(AdministCode administCode) throws Exception { + delete("AdministCodeManageDAO.deleteAdministCode", administCode); + } + + + /** + * 행정코드를 등록한다. + * @param administCode + * @throws Exception + */ + public void insertAdministCode(AdministCode administCode) throws Exception { + insert("AdministCodeManageDAO.insertAdministCode", administCode); + } + + /** + * 행정코드 상세항목을 조회한다. + * @param administCode + * @return AdministCode(행정코드) + */ + public AdministCode selectAdministCodeDetail(AdministCode administCode) throws Exception { + return (AdministCode) select("AdministCodeManageDAO.selectAdministCodeDetail", administCode); + } + + + /** + * 행정코드 목록을 조회한다. + * @param searchVO + * @return List(행정코드 목록) + * @throws Exception + */ + public List selectAdministCodeList(AdministCodeVO searchVO) throws Exception { + return list("AdministCodeManageDAO.selectAdministCodeList", searchVO); + } + + /** + * 행정코드 총 갯수를 조회한다. + * @param searchVO + * @return int(행정코드 총 갯수) + */ + public int selectAdministCodeListTotCnt(AdministCodeVO searchVO) throws Exception { + return (Integer)select("AdministCodeManageDAO.selectAdministCodeListTotCnt", searchVO); + } + + /** + * 행정코드를 수정한다. + * @param administCode + * @throws Exception + */ + public void updateAdministCode(AdministCode administCode) throws Exception { + update("AdministCodeManageDAO.updateAdministCode", administCode); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/adc/service/impl/EgovCcmAdministCodeManageServiceImpl.java b/src/main/java/egovframework/com/sym/ccm/adc/service/impl/EgovCcmAdministCodeManageServiceImpl.java new file mode 100644 index 0000000..84cbdcd --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/adc/service/impl/EgovCcmAdministCodeManageServiceImpl.java @@ -0,0 +1,89 @@ +package egovframework.com.sym.ccm.adc.service.impl; + +import java.util.List; + +import egovframework.com.sym.ccm.adc.service.AdministCode; +import egovframework.com.sym.ccm.adc.service.AdministCodeVO; +import egovframework.com.sym.ccm.adc.service.EgovCcmAdministCodeManageService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + + + +/** + * + * 행정코드에 대한 서비스 구현클래스를 정의한다. + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Service("AdministCodeManageService") +public class EgovCcmAdministCodeManageServiceImpl extends EgovAbstractServiceImpl implements EgovCcmAdministCodeManageService { + + @Resource(name="AdministCodeManageDAO") + private AdministCodeManageDAO administCodeManageDAO; + + /** + * 행정코드를 삭제한다. + */ + @Override + public void deleteAdministCode(AdministCode administCode) throws Exception { + administCodeManageDAO.deleteAdministCode(administCode); + } + + /** + * 행정코드를 등록한다. + */ + @Override + public void insertAdministCode(AdministCode administCode) throws Exception { + administCodeManageDAO.insertAdministCode(administCode); + } + + /** + * 행정코드 상세항목을 조회한다. + */ + @Override + public AdministCode selectAdministCodeDetail(AdministCode administCode) throws Exception { + AdministCode ret = administCodeManageDAO.selectAdministCodeDetail(administCode); + return ret; + } + + /** + * 행정코드 목록을 조회한다. + */ + @Override + public List selectAdministCodeList(AdministCodeVO searchVO) throws Exception { + return administCodeManageDAO.selectAdministCodeList(searchVO); + } + + /** + * 행정코드 총 갯수를 조회한다. + */ + @Override + public int selectAdministCodeListTotCnt(AdministCodeVO searchVO) throws Exception { + return administCodeManageDAO.selectAdministCodeListTotCnt(searchVO); + } + + /** + * 행정코드를 수정한다. + */ + @Override + public void updateAdministCode(AdministCode administCode) throws Exception { + administCodeManageDAO.updateAdministCode(administCode); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/adc/web/EgovCcmAdministCodeManageController.java b/src/main/java/egovframework/com/sym/ccm/adc/web/EgovCcmAdministCodeManageController.java new file mode 100644 index 0000000..a23f518 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/adc/web/EgovCcmAdministCodeManageController.java @@ -0,0 +1,282 @@ +package egovframework.com.sym.ccm.adc.web; + +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.sym.ccm.adc.service.AdministCode; +import egovframework.com.sym.ccm.adc.service.AdministCodeVO; +import egovframework.com.sym.ccm.adc.service.EgovCcmAdministCodeManageService; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springmodules.validation.commons.DefaultBeanValidator; + +/** + * + * 행정코드에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.08.26	정진오			IncludedInfo annotation 추가
+ *
+ * 
+ */ +@Controller +public class EgovCcmAdministCodeManageController { + + @Resource(name = "AdministCodeManageService") + private EgovCcmAdministCodeManageService administCodeManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 행정코드를 삭제한다. + * @param loginVO + * @param administCode + * @param model + * @return "forward:/sym/ccm/adc/EgovCcmAdministCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/adc/EgovCcmAdministCodeRemove.do") + public String deleteAdministCode (@ModelAttribute("loginVO") LoginVO loginVO + , AdministCode administCode + , ModelMap model + ) throws Exception { + administCodeManageService.deleteAdministCode(administCode); + return "forward:/sym/ccm/adc/EgovCcmAdministCodeList.do"; + } + + /** + * 행정코드를 등록한다. + * @param loginVO + * @param administCode + * @param bindingResult + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeRegist" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/adc/EgovCcmAdministCodeRegist.do") + public String insertAdministCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("administCode") AdministCode administCode + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (administCode.getAdministZoneSe() == null + ||administCode.getAdministZoneSe().equals("") + ||administCode.getAdministZoneCode() == null + ||administCode.getAdministZoneCode().equals("") + ||sCmd.equals("")) { + + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeRegist"; + } else if (sCmd.equals("Regist")) { + beanValidator.validate(administCode, bindingResult); + + if (bindingResult.hasErrors()){ + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeRegist"; + } + + AdministCode vo = administCodeManageService.selectAdministCodeDetail(administCode); + if(vo != null){ + administCode.setAdministZoneNm(""); + administCode.setAdministZoneCode(""); + model.addAttribute("message", "이미 등록된 행정구역코드가 존재합니다."); + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeRegist"; + } + + administCode.setFrstRegisterId(loginVO.getUniqId()); + administCodeManageService.insertAdministCode(administCode); + + return "forward:/sym/ccm/adc/EgovCcmAdministCodeList.do"; + } else { + return "forward:/sym/ccm/adc/EgovCcmAdministCodeList.do"; + } + } + + /** + * 행정코드 상세항목을 조회한다. + * @param loginVO + * @param administCode + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeDetail" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/adc/EgovCcmAdministCodeDetail.do") + public String selectAdministCodeDetail (@ModelAttribute("loginVO") LoginVO loginVO + , AdministCode administCode + , ModelMap model + ) throws Exception { + AdministCode vo = administCodeManageService.selectAdministCodeDetail(administCode); + model.addAttribute("result", vo); + + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeDetail"; + } + + /** + * 행정코드 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeList" + * @throws Exception + */ + @IncludedInfo(name="행정코드관리", order = 1010 ,gid = 60) + @RequestMapping(value="/sym/ccm/adc/EgovCcmAdministCodeList.do") + public String selectAdministCodeList (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("searchVO") AdministCodeVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = administCodeManageService.selectAdministCodeList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = administCodeManageService.selectAdministCodeListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeList"; + } + + /** + * 일반달력 팝업 메인창을 호출한다. + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodePopup" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/adc/EgovCcmAdministCodePopup.do") + public String callAdministCodePopup (ModelMap model + ) throws Exception { + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodePopup"; + } + + /** + * 행정코드 팝업 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCode" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/adc/EgovCcmAdministCode.do") + public String selectAdministCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("searchVO") AdministCodeVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = administCodeManageService.selectAdministCodeList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = administCodeManageService.selectAdministCodeListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCode"; + } + /** + * 행정코드를 수정한다. + * @param loginVO + * @param administCode + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeModify" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/adc/EgovCcmAdministCodeModify.do") + public String updateAdministCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("administCode") AdministCode administCode + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + AdministCode vo = administCodeManageService.selectAdministCodeDetail(administCode); + model.addAttribute("administCode", vo); + + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeModify"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(administCode, bindingResult); + if (bindingResult.hasErrors()){ + AdministCode vo = administCodeManageService.selectAdministCodeDetail(administCode); + model.addAttribute("administCode", vo); + + return "egovframework/com/sym/ccm/adc/EgovCcmAdministCodeModify"; + } + + administCode.setLastUpdusrId(loginVO.getUniqId()); + administCodeManageService.updateAdministCode(administCode); + return "forward:/sym/ccm/adc/EgovCcmAdministCodeList.do"; + } else { + return "forward:/sym/ccm/adc/EgovCcmAdministCodeList.do"; + } + } + + /** + * Map 내용을 확인한다. + * @param commandMap + * @return + */ + public String printParameterMap(@RequestParam Map commandMap){ + String ret = ""; + for(Object key:commandMap.keySet()){ + Object value = commandMap.get(key); + + ret += "key:" + key.toString() + " value:" + value.toString(); + } + return ret; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sym/ccm/cca/service/CmmnCode.java b/src/main/java/egovframework/com/sym/ccm/cca/service/CmmnCode.java new file mode 100644 index 0000000..687eb77 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cca/service/CmmnCode.java @@ -0,0 +1,194 @@ +package egovframework.com.sym.ccm.cca.service; + +import java.io.Serializable; + +/** + * 공통코드 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class CmmnCode implements Serializable { + + private static final long serialVersionUID = 638950577710720796L; + + /* + * 코드ID + */ + private String codeId = ""; + + /* + * 코드ID명 + */ + private String codeIdNm = ""; + + /* + * 코드ID설명 + */ + private String codeIdDc = ""; + + /* + * 분류코드 + */ + private String clCode = ""; + + /* + * 분류코드명 + */ + private String clCodeNm = ""; + + /* + * 사용여부 + */ + private String useAt = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * codeId attribute 를 리턴한다. + * @return String + */ + public String getCodeId() { + return codeId; + } + + /** + * codeId attribute 값을 설정한다. + * @param codeId String + */ + public void setCodeId(String codeId) { + this.codeId = codeId; + } + + /** + * codeIdNm attribute 를 리턴한다. + * @return String + */ + public String getCodeIdNm() { + return codeIdNm; + } + + /** + * codeIdNm attribute 값을 설정한다. + * @param codeIdNm String + */ + public void setCodeIdNm(String codeIdNm) { + this.codeIdNm = codeIdNm; + } + + /** + * codeIdDc attribute 를 리턴한다. + * @return String + */ + public String getCodeIdDc() { + return codeIdDc; + } + + /** + * codeIdDc attribute 값을 설정한다. + * @param codeIdDc String + */ + public void setCodeIdDc(String codeIdDc) { + this.codeIdDc = codeIdDc; + } + + /** + * clCode attribute 를 리턴한다. + * @return String + */ + public String getClCode() { + return clCode; + } + + /** + * clCode attribute 값을 설정한다. + * @param clCode String + */ + public void setClCode(String clCode) { + this.clCode = clCode; + } + + /** + * clCodeNm attribute 를 리턴한다. + * @return String + */ + public String getClCodeNm() { + return clCodeNm; + } + + /** + * clCodeNm attribute 값을 설정한다. + * @param clCodeNm String + */ + public void setClCodeNm(String clCodeNm) { + this.clCodeNm = clCodeNm; + } + + /** + * useAt attribute 를 리턴한다. + * @return String + */ + public String getUseAt() { + return useAt; + } + + /** + * useAt attribute 값을 설정한다. + * @param useAt String + */ + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cca/service/CmmnCodeVO.java b/src/main/java/egovframework/com/sym/ccm/cca/service/CmmnCodeVO.java new file mode 100644 index 0000000..a982e13 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cca/service/CmmnCodeVO.java @@ -0,0 +1,197 @@ +package egovframework.com.sym.ccm.cca.service; + +import java.io.Serializable; + +/** + * + * 공통코드 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class CmmnCodeVO extends CmmnCode implements Serializable { + + private static final long serialVersionUID = -4184057693049713450L; + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cca/service/EgovCcmCmmnCodeManageService.java b/src/main/java/egovframework/com/sym/ccm/cca/service/EgovCcmCmmnCodeManageService.java new file mode 100644 index 0000000..d155961 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cca/service/EgovCcmCmmnCodeManageService.java @@ -0,0 +1,68 @@ +package egovframework.com.sym.ccm.cca.service; + +import java.util.List; + +/** + * + * 공통코드에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public interface EgovCcmCmmnCodeManageService { + + /** + * 공통코드를 삭제한다. + * @param cmmnCode + * @throws Exception + */ + void deleteCmmnCode(CmmnCode cmmnCode) throws Exception; + + /** + * 공통코드를 등록한다. + * @param cmmnCode + * @throws Exception + */ + void insertCmmnCode(CmmnCode cmmnCode) throws Exception; + + /** + * 공통코드 상세항목을 조회한다. + * @param cmmnCode + * @return CmmnCode(공통코드) + * @throws Exception + */ + CmmnCode selectCmmnCodeDetail(CmmnCode cmmnCode) throws Exception; + + /** + * 공통코드 목록을 조회한다. + * @param searchVO + * @return List(공통코드 목록) + * @throws Exception + */ + List selectCmmnCodeList(CmmnCodeVO searchVO) throws Exception; + + /** + * 공통코드 총 갯수를 조회한다. + * @param searchVO + * @return int(공통코드 총 갯수) + */ + int selectCmmnCodeListTotCnt(CmmnCodeVO searchVO) throws Exception; + + /** + * 공통코드를 수정한다. + * @param cmmnCode + * @throws Exception + */ + void updateCmmnCode(CmmnCode cmmnCode) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cca/service/impl/CmmnCodeManageDAO.java b/src/main/java/egovframework/com/sym/ccm/cca/service/impl/CmmnCodeManageDAO.java new file mode 100644 index 0000000..1fb6728 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cca/service/impl/CmmnCodeManageDAO.java @@ -0,0 +1,88 @@ +package egovframework.com.sym.ccm.cca.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.ccm.cca.service.CmmnCode; +import egovframework.com.sym.ccm.cca.service.CmmnCodeVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 공통코드에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Repository("CmmnCodeManageDAO") +public class CmmnCodeManageDAO extends EgovComAbstractDAO { + + /** + * 공통코드를 삭제한다. + * @param cmmnCode + * @throws Exception + */ + public void deleteCmmnCode(CmmnCode cmmnCode) throws Exception { + delete("CmmnCodeManageDAO.deleteCmmnCode", cmmnCode); + } + + + /** + * 공통코드를 등록한다. + * @param cmmnCode + * @throws Exception + */ + public void insertCmmnCode(CmmnCode cmmnCode) throws Exception { + insert("CmmnCodeManageDAO.insertCmmnCode", cmmnCode); + } + + /** + * 공통코드 상세항목을 조회한다. + * @param cmmnCode + * @return CmmnCode(공통코드) + */ + public CmmnCode selectCmmnCodeDetail(CmmnCode cmmnCode) throws Exception { + return (CmmnCode)select("CmmnCodeManageDAO.selectCmmnCodeDetail", cmmnCode); + } + + + /** + * 공통코드 목록을 조회한다. + * @param searchVO + * @return List(공통코드 목록) + * @throws Exception + */ + public List selectCmmnCodeList(CmmnCodeVO searchVO) throws Exception { + return list("CmmnCodeManageDAO.selectCmmnCodeList", searchVO); + } + + /** + * 공통코드 총 갯수를 조회한다. + * @param searchVO + * @return int(공통코드 총 갯수) + */ + public int selectCmmnCodeListTotCnt(CmmnCodeVO searchVO) throws Exception { + return (Integer)select("CmmnCodeManageDAO.selectCmmnCodeListTotCnt", searchVO); + } + + /** + * 공통코드를 수정한다. + * @param cmmnCode + * @throws Exception + */ + public void updateCmmnCode(CmmnCode cmmnCode) throws Exception { + update("CmmnCodeManageDAO.updateCmmnCode", cmmnCode); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cca/service/impl/EgovCcmCmmnCodeManageServiceImpl.java b/src/main/java/egovframework/com/sym/ccm/cca/service/impl/EgovCcmCmmnCodeManageServiceImpl.java new file mode 100644 index 0000000..1b417b5 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cca/service/impl/EgovCcmCmmnCodeManageServiceImpl.java @@ -0,0 +1,89 @@ +package egovframework.com.sym.ccm.cca.service.impl; + +import java.util.List; + +import egovframework.com.sym.ccm.cca.service.CmmnCode; +import egovframework.com.sym.ccm.cca.service.CmmnCodeVO; +import egovframework.com.sym.ccm.cca.service.EgovCcmCmmnCodeManageService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + + + +/** + * + * 공통코드에 대한 서비스 구현클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Service("CmmnCodeManageService") +public class EgovCcmCmmnCodeManageServiceImpl extends EgovAbstractServiceImpl implements EgovCcmCmmnCodeManageService { + + @Resource(name="CmmnCodeManageDAO") + private CmmnCodeManageDAO cmmnCodeManageDAO; + + /** + * 공통코드를 삭제한다. + */ + @Override + public void deleteCmmnCode(CmmnCode cmmnCode) throws Exception { + cmmnCodeManageDAO.deleteCmmnCode(cmmnCode); + } + + /** + * 공통코드를 등록한다. + */ + @Override + public void insertCmmnCode(CmmnCode cmmnCode) throws Exception { + cmmnCodeManageDAO.insertCmmnCode(cmmnCode); + } + + /** + * 공통코드 상세항목을 조회한다. + */ + @Override + public CmmnCode selectCmmnCodeDetail(CmmnCode cmmnCode) throws Exception { + CmmnCode ret = cmmnCodeManageDAO.selectCmmnCodeDetail(cmmnCode); + return ret; + } + + /** + * 공통코드 목록을 조회한다. + */ + @Override + public List selectCmmnCodeList(CmmnCodeVO searchVO) throws Exception { + return cmmnCodeManageDAO.selectCmmnCodeList(searchVO); + } + + /** + * 공통코드 총 갯수를 조회한다. + */ + @Override + public int selectCmmnCodeListTotCnt(CmmnCodeVO searchVO) throws Exception { + return cmmnCodeManageDAO.selectCmmnCodeListTotCnt(searchVO); + } + + /** + * 공통코드를 수정한다. + */ + @Override + public void updateCmmnCode(CmmnCode cmmnCode) throws Exception { + cmmnCodeManageDAO.updateCmmnCode(cmmnCode); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cca/web/EgovCcmCmmnCodeManageController.java b/src/main/java/egovframework/com/sym/ccm/cca/web/EgovCcmCmmnCodeManageController.java new file mode 100644 index 0000000..3a53d98 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cca/web/EgovCcmCmmnCodeManageController.java @@ -0,0 +1,224 @@ +package egovframework.com.sym.ccm.cca.web; + +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.sym.ccm.cca.service.CmmnCode; +import egovframework.com.sym.ccm.cca.service.CmmnCodeVO; +import egovframework.com.sym.ccm.cca.service.EgovCcmCmmnCodeManageService; +import egovframework.com.sym.ccm.ccc.service.CmmnClCodeVO; +import egovframework.com.sym.ccm.ccc.service.EgovCcmCmmnClCodeManageService; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springmodules.validation.commons.DefaultBeanValidator; + +/** + * + * 공통코드에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * 
+ */ + +@Controller +public class EgovCcmCmmnCodeManageController { + + @Resource(name = "CmmnCodeManageService") + private EgovCcmCmmnCodeManageService cmmnCodeManageService; + + @Resource(name = "CmmnClCodeManageService") + private EgovCcmCmmnClCodeManageService cmmnClCodeManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 공통코드를 삭제한다. + * @param loginVO + * @param cmmnCode + * @param model + * @return "forward:/sym/ccm/cca/EgovCcmCmmnCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/cca/EgovCcmCmmnCodeRemove.do") + public String deleteCmmnCode (@ModelAttribute("loginVO") LoginVO loginVO + , CmmnCode cmmnCode + , ModelMap model + ) throws Exception { + cmmnCodeManageService.deleteCmmnCode(cmmnCode); + return "forward:/sym/ccm/cca/EgovCcmCmmnCodeList.do"; + } + + /** + * 공통코드를 등록한다. + * @param loginVO + * @param cmmnCode + * @param bindingResult + * @param model + * @return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeRegist" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/cca/EgovCcmCmmnCodeRegist.do") + public String insertCmmnCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("cmmnCode") CmmnCode cmmnCode + , BindingResult bindingResult + , ModelMap model + ) throws Exception { + if (cmmnCode.getClCode() == null + ||cmmnCode.getClCode().equals("")) { + + CmmnClCodeVO searchVO; + searchVO = new CmmnClCodeVO(); + searchVO.setRecordCountPerPage(999999); + searchVO.setFirstIndex(0); + searchVO.setSearchCondition("CodeList"); + List CmmnCodeList = cmmnClCodeManageService.selectCmmnClCodeList(searchVO); + model.addAttribute("cmmnClCode", CmmnCodeList); + + return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeRegist"; + } + + beanValidator.validate(cmmnCode, bindingResult); + if (bindingResult.hasErrors()){ + CmmnClCodeVO searchVO; + searchVO = new CmmnClCodeVO(); + searchVO.setRecordCountPerPage(999999); + searchVO.setFirstIndex(0); + searchVO.setSearchCondition("CodeList"); + List CmmnCodeList = cmmnClCodeManageService.selectCmmnClCodeList(searchVO); + model.addAttribute("cmmnClCode", CmmnCodeList); + + return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeRegist"; + } + + cmmnCode.setFrstRegisterId(loginVO.getUniqId()); + cmmnCodeManageService.insertCmmnCode(cmmnCode); + return "forward:/sym/ccm/cca/EgovCcmCmmnCodeList.do"; + } + + /** + * 공통코드 상세항목을 조회한다. + * @param loginVO + * @param cmmnCode + * @param model + * @return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeDetail" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/cca/EgovCcmCmmnCodeDetail.do") + public String selectCmmnCodeDetail (@ModelAttribute("loginVO") LoginVO loginVO + , CmmnCode cmmnCode + , ModelMap model + ) throws Exception { + CmmnCode vo =cmmnCodeManageService.selectCmmnCodeDetail(cmmnCode); + model.addAttribute("result", vo); + + return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeDetail"; + } + + /** + * 공통코드 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeList" + * @throws Exception + */ + @IncludedInfo(name="공통코드", listUrl="/sym/ccm/cca/EgovCcmCmmnCodeList.do", order = 980 ,gid = 60) + @RequestMapping(value="/sym/ccm/cca/EgovCcmCmmnCodeList.do") + public String selectCmmnCodeList (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("searchVO") CmmnCodeVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList =cmmnCodeManageService.selectCmmnCodeList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt =cmmnCodeManageService.selectCmmnCodeListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeList"; + } + + /** + * 공통코드를 수정한다. + * @param loginVO + * @param cmmnCode + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeModify" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/cca/EgovCcmCmmnCodeModify.do") + public String updateCmmnCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("cmmnCode") CmmnCode cmmnCode + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + CmmnCode vo =cmmnCodeManageService.selectCmmnCodeDetail(cmmnCode); + model.addAttribute("cmmnCode", vo); + + return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeModify"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(cmmnCode, bindingResult); + if (bindingResult.hasErrors()){ + CmmnCode vo =cmmnCodeManageService.selectCmmnCodeDetail(cmmnCode); + model.addAttribute("cmmnCode", vo); + + return "egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeModify"; + } + + cmmnCode.setLastUpdusrId(loginVO.getUniqId()); + cmmnCodeManageService.updateCmmnCode(cmmnCode); + return "forward:/sym/ccm/cca/EgovCcmCmmnCodeList.do"; + } else { + return "forward:/sym/ccm/cca/EgovCcmCmmnCodeList.do"; + } + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sym/ccm/ccc/service/CmmnClCode.java b/src/main/java/egovframework/com/sym/ccm/ccc/service/CmmnClCode.java new file mode 100644 index 0000000..09b3503 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/ccc/service/CmmnClCode.java @@ -0,0 +1,152 @@ +package egovframework.com.sym.ccm.ccc.service; + +import java.io.Serializable; + +/** + * 공통분류코드 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class CmmnClCode implements Serializable { + + private static final long serialVersionUID = 4861619118930452502L; + + /* + * 분류코드 + */ + private String clCode = ""; + + /* + * 분류코드명 + */ + private String clCodeNm = ""; + + /* + * 분류코드설명 + */ + private String clCodeDc = ""; + + /* + * 사용여부 + */ + private String useAt = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * clCode attribute 를 리턴한다. + * @return String + */ + public String getClCode() { + return clCode; + } + + /** + * clCode attribute 값을 설정한다. + * @param clCode String + */ + public void setClCode(String clCode) { + this.clCode = clCode; + } + + /** + * clCodeNm attribute 를 리턴한다. + * @return String + */ + public String getClCodeNm() { + return clCodeNm; + } + + /** + * clCodeNm attribute 값을 설정한다. + * @param clCodeNm String + */ + public void setClCodeNm(String clCodeNm) { + this.clCodeNm = clCodeNm; + } + + /** + * clCodeDc attribute 를 리턴한다. + * @return String + */ + public String getClCodeDc() { + return clCodeDc; + } + + /** + * clCodeDc attribute 값을 설정한다. + * @param clCodeDc String + */ + public void setClCodeDc(String clCodeDc) { + this.clCodeDc = clCodeDc; + } + + /** + * useAt attribute 를 리턴한다. + * @return String + */ + public String getUseAt() { + return useAt; + } + + /** + * useAt attribute 값을 설정한다. + * @param useAt String + */ + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/ccc/service/CmmnClCodeVO.java b/src/main/java/egovframework/com/sym/ccm/ccc/service/CmmnClCodeVO.java new file mode 100644 index 0000000..c1d5ed3 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/ccc/service/CmmnClCodeVO.java @@ -0,0 +1,198 @@ +package egovframework.com.sym.ccm.ccc.service; + +import java.io.Serializable; + +/** + * + * 공통분류코드 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class CmmnClCodeVO extends CmmnClCode implements Serializable { + + private static final long serialVersionUID = 442842373959722378L; + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/ccc/service/EgovCcmCmmnClCodeManageService.java b/src/main/java/egovframework/com/sym/ccm/ccc/service/EgovCcmCmmnClCodeManageService.java new file mode 100644 index 0000000..2d78d19 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/ccc/service/EgovCcmCmmnClCodeManageService.java @@ -0,0 +1,68 @@ +package egovframework.com.sym.ccm.ccc.service; + +import java.util.List; + +/** + * + * 공통분류코드에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public interface EgovCcmCmmnClCodeManageService { + + /** + * 공통분류코드를 삭제한다. + * @param cmmnClCode + * @throws Exception + */ + void deleteCmmnClCode(CmmnClCode cmmnClCode) throws Exception; + + /** + * 공통분류코드를 등록한다. + * @param cmmnClCode + * @throws Exception + */ + void insertCmmnClCode(CmmnClCode cmmnClCode) throws Exception; + + /** + * 공통분류코드 상세항목을 조회한다. + * @param cmmnClCode + * @return CmmnClCode(공통분류코드) + * @throws Exception + */ + CmmnClCode selectCmmnClCodeDetail(CmmnClCode cmmnClCode) throws Exception; + + /** + * 공통분류코드 목록을 조회한다. + * @param searchVO + * @return List(공통분류코드 목록) + * @throws Exception + */ + List selectCmmnClCodeList(CmmnClCodeVO searchVO) throws Exception; + + /** + * 공통분류코드 총 갯수를 조회한다. + * @param searchVO + * @return int(공통분류코드 총 갯수) + */ + int selectCmmnClCodeListTotCnt(CmmnClCodeVO searchVO) throws Exception; + + /** + * 공통분류코드를 수정한다. + * @param cmmnClCode + * @throws Exception + */ + void updateCmmnClCode(CmmnClCode cmmnClCode) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sym/ccm/ccc/service/impl/CmmnClCodeManageDAO.java b/src/main/java/egovframework/com/sym/ccm/ccc/service/impl/CmmnClCodeManageDAO.java new file mode 100644 index 0000000..d870fc0 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/ccc/service/impl/CmmnClCodeManageDAO.java @@ -0,0 +1,88 @@ +package egovframework.com.sym.ccm.ccc.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.ccm.ccc.service.CmmnClCode; +import egovframework.com.sym.ccm.ccc.service.CmmnClCodeVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 공통분류코드에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Repository("CmmnClCodeManageDAO") +public class CmmnClCodeManageDAO extends EgovComAbstractDAO { + + /** + * 공통분류코드를 삭제한다. + * @param cmmnClCode + * @throws Exception + */ + public void deleteCmmnClCode(CmmnClCode cmmnClCode) throws Exception { + delete("CmmnClCodeManageDAO.deleteCmmnClCode", cmmnClCode); + } + + + /** + * 공통분류코드를 등록한다. + * @param cmmnClCode + * @throws Exception + */ + public void insertCmmnClCode(CmmnClCode cmmnClCode) throws Exception { + insert("CmmnClCodeManageDAO.insertCmmnClCode", cmmnClCode); + } + + /** + * 공통분류코드 상세항목을 조회한다. + * @param cmmnClCode + * @return CmmnClCode(공통분류코드) + */ + public CmmnClCode selectCmmnClCodeDetail(CmmnClCode cmmnClCode) throws Exception { + return (CmmnClCode)select("CmmnClCodeManageDAO.selectCmmnClCodeDetail", cmmnClCode); + } + + + /** + * 공통분류코드 목록을 조회한다. + * @param searchVO + * @return List(공통분류코드 목록) + * @throws Exception + */ + public List selectCmmnClCodeList(CmmnClCodeVO searchVO) throws Exception { + return list("CmmnClCodeManageDAO.selectCmmnClCodeList", searchVO); + } + + /** + * 공통분류코드 총 갯수를 조회한다. + * @param searchVO + * @return int(공통분류코드 총 갯수) + */ + public int selectCmmnClCodeListTotCnt(CmmnClCodeVO searchVO) throws Exception { + return (Integer)select("CmmnClCodeManageDAO.selectCmmnClCodeListTotCnt", searchVO); + } + + /** + * 공통분류코드를 수정한다. + * @param cmmnClCode + * @throws Exception + */ + public void updateCmmnClCode(CmmnClCode cmmnClCode) throws Exception { + update("CmmnClCodeManageDAO.updateCmmnClCode", cmmnClCode); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/ccc/service/impl/EgovCcmCmmnClCodeManageServiceImpl.java b/src/main/java/egovframework/com/sym/ccm/ccc/service/impl/EgovCcmCmmnClCodeManageServiceImpl.java new file mode 100644 index 0000000..8bc89f2 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/ccc/service/impl/EgovCcmCmmnClCodeManageServiceImpl.java @@ -0,0 +1,89 @@ +package egovframework.com.sym.ccm.ccc.service.impl; + +import java.util.List; + +import egovframework.com.sym.ccm.ccc.service.CmmnClCode; +import egovframework.com.sym.ccm.ccc.service.CmmnClCodeVO; +import egovframework.com.sym.ccm.ccc.service.EgovCcmCmmnClCodeManageService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + + + +/** + * + * 공통분류코드에 대한 서비스 구현클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Service("CmmnClCodeManageService") +public class EgovCcmCmmnClCodeManageServiceImpl extends EgovAbstractServiceImpl implements EgovCcmCmmnClCodeManageService { + + @Resource(name="CmmnClCodeManageDAO") + private CmmnClCodeManageDAO cmmnClCodeManageDAO; + + /** + * 공통분류코드를 삭제한다. + */ + @Override + public void deleteCmmnClCode(CmmnClCode cmmnClCode) throws Exception { + cmmnClCodeManageDAO.deleteCmmnClCode(cmmnClCode); + } + + /** + * 공통분류코드를 등록한다. + */ + @Override + public void insertCmmnClCode(CmmnClCode cmmnClCode) throws Exception { + cmmnClCodeManageDAO.insertCmmnClCode(cmmnClCode); + } + + /** + * 공통분류코드 상세항목을 조회한다. + */ + @Override + public CmmnClCode selectCmmnClCodeDetail(CmmnClCode cmmnClCode) throws Exception { + CmmnClCode ret = cmmnClCodeManageDAO.selectCmmnClCodeDetail(cmmnClCode); + return ret; + } + + /** + * 공통분류코드 목록을 조회한다. + */ + @Override + public List selectCmmnClCodeList(CmmnClCodeVO searchVO) throws Exception { + return cmmnClCodeManageDAO.selectCmmnClCodeList(searchVO); + } + + /** + * 공통분류코드 총 갯수를 조회한다. + */ + @Override + public int selectCmmnClCodeListTotCnt(CmmnClCodeVO searchVO) throws Exception { + return cmmnClCodeManageDAO.selectCmmnClCodeListTotCnt(searchVO); + } + + /** + * 공통분류코드를 수정한다. + */ + @Override + public void updateCmmnClCode(CmmnClCode cmmnClCode) throws Exception { + cmmnClCodeManageDAO.updateCmmnClCode(cmmnClCode); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/ccc/web/EgovCcmCmmnClCodeManageController.java b/src/main/java/egovframework/com/sym/ccm/ccc/web/EgovCcmCmmnClCodeManageController.java new file mode 100644 index 0000000..110ea6c --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/ccc/web/EgovCcmCmmnClCodeManageController.java @@ -0,0 +1,205 @@ +package egovframework.com.sym.ccm.ccc.web; + +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.sym.ccm.ccc.service.CmmnClCode; +import egovframework.com.sym.ccm.ccc.service.CmmnClCodeVO; +import egovframework.com.sym.ccm.ccc.service.EgovCcmCmmnClCodeManageService; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springmodules.validation.commons.DefaultBeanValidator; +/** + * + * 공통분류코드에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * 
+ */ + +@Controller +public class EgovCcmCmmnClCodeManageController { + @Resource(name = "CmmnClCodeManageService") + private EgovCcmCmmnClCodeManageService cmmnClCodeManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 공통분류코드를 삭제한다. + * @param loginVO + * @param cmmnClCode + * @param model + * @return "forward:/sym/ccm/ccc/EgovCcmCmmnClCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/ccc/EgovCcmCmmnClCodeRemove.do") + public String deleteCmmnClCode (@ModelAttribute("loginVO") LoginVO loginVO + , CmmnClCode cmmnClCode + , ModelMap model + ) throws Exception { + cmmnClCodeManageService.deleteCmmnClCode(cmmnClCode); + return "forward:/sym/ccm/ccc/EgovCcmCmmnClCodeList.do"; + } + + /** + * 공통분류코드를 등록한다. + * @param loginVO + * @param cmmnClCode + * @param bindingResult + * @return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeRegist" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/ccc/EgovCcmCmmnClCodeRegist.do") + public String insertCmmnClCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("cmmnClCode") CmmnClCode cmmnClCode + , BindingResult bindingResult , ModelMap model + ) throws Exception { + if (cmmnClCode.getClCode() == null + ||cmmnClCode.getClCode().equals("")) { + return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeRegist"; + } + + beanValidator.validate(cmmnClCode, bindingResult); + if (bindingResult.hasErrors()){ + return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeRegist"; + } + + if(cmmnClCode.getClCode() != null){ + CmmnClCode vo = cmmnClCodeManageService.selectCmmnClCodeDetail(cmmnClCode); + if(vo != null){ + model.addAttribute("message", "이미 등록된 분류코드가 존재합니다."); + return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeRegist"; + } + } + + cmmnClCode.setFrstRegisterId(loginVO.getUniqId()); + cmmnClCodeManageService.insertCmmnClCode(cmmnClCode); + return "forward:/sym/ccm/ccc/EgovCcmCmmnClCodeList.do"; + } + + /** + * 공통분류코드 상세항목을 조회한다. + * @param loginVO + * @param cmmnClCode + * @param model + * @return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeDetail" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/ccc/EgovCcmCmmnClCodeDetail.do") + public String selectCmmnClCodeDetail (@ModelAttribute("loginVO") LoginVO loginVO + , CmmnClCode cmmnClCode + , ModelMap model + ) throws Exception { + CmmnClCode vo = cmmnClCodeManageService.selectCmmnClCodeDetail(cmmnClCode); + model.addAttribute("result", vo); + + return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeDetail"; + } + + /** + * 공통분류코드 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeList" + * @throws Exception + */ + @IncludedInfo(name="공통분류코드", listUrl="/sym/ccm/ccc/EgovCcmCmmnClCodeList.do", order = 960 ,gid = 60) + @RequestMapping(value="/sym/ccm/ccc/EgovCcmCmmnClCodeList.do") + public String selectCmmnClCodeList (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("searchVO") CmmnClCodeVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = cmmnClCodeManageService.selectCmmnClCodeList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = cmmnClCodeManageService.selectCmmnClCodeListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeList"; + } + + /** + * 공통분류코드를 수정한다. + * @param loginVO + * @param cmmnClCode + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeModify" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/ccc/EgovCcmCmmnClCodeModify.do") + public String updateCmmnClCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("administCode") CmmnClCode cmmnClCode + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + CmmnClCode vo = cmmnClCodeManageService.selectCmmnClCodeDetail(cmmnClCode); + model.addAttribute("cmmnClCode", vo); + + return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeModify"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(cmmnClCode, bindingResult); + if (bindingResult.hasErrors()){ + CmmnClCode vo = cmmnClCodeManageService.selectCmmnClCodeDetail(cmmnClCode); + model.addAttribute("cmmnClCode", vo); + + return "egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeModify"; + } + cmmnClCode.setLastUpdusrId(loginVO.getUniqId()); + cmmnClCodeManageService.updateCmmnClCode(cmmnClCode); + return "forward:/sym/ccm/ccc/EgovCcmCmmnClCodeList.do"; + } else { + return "forward:/sym/ccm/ccc/EgovCcmCmmnClCodeList.do"; + } + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sym/ccm/cde/service/CmmnDetailCodeVO.java b/src/main/java/egovframework/com/sym/ccm/cde/service/CmmnDetailCodeVO.java new file mode 100644 index 0000000..33f7025 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cde/service/CmmnDetailCodeVO.java @@ -0,0 +1,201 @@ +package egovframework.com.sym.ccm.cde.service; + +import java.io.Serializable; + +import egovframework.com.cmm.service.CmmnDetailCode; + + +/** + * + * 공통상세코드 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class CmmnDetailCodeVO extends CmmnDetailCode implements Serializable { + + private static final long serialVersionUID = 9137280036724974467L; + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cde/service/EgovCcmCmmnDetailCodeManageService.java b/src/main/java/egovframework/com/sym/ccm/cde/service/EgovCcmCmmnDetailCodeManageService.java new file mode 100644 index 0000000..adfa44a --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cde/service/EgovCcmCmmnDetailCodeManageService.java @@ -0,0 +1,71 @@ +package egovframework.com.sym.ccm.cde.service; + +import java.util.List; + +import egovframework.com.cmm.service.CmmnDetailCode; + + +/** + * + * 공통상세코드에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public interface EgovCcmCmmnDetailCodeManageService { + + /** + * 공통상세코드를 삭제한다. + * @param cmmnDetailCode + * @throws Exception + */ + void deleteCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception; + + /** + * 공통상세코드를 등록한다. + * @param cmmnDetailCode + * @throws Exception + */ + void insertCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception; + + /** + * 공통상세코드 상세항목을 조회한다. + * @param cmmnDetailCode + * @return CmmnDetailCode(공통상세코드) + * @throws Exception + */ + CmmnDetailCode selectCmmnDetailCodeDetail(CmmnDetailCode cmmnDetailCode) throws Exception; + + /** + * 공통상세코드 목록을 조회한다. + * @param searchVO + * @return List(공통상세코드 목록) + * @throws Exception + */ + List selectCmmnDetailCodeList(CmmnDetailCodeVO searchVO) throws Exception; + + /** + * 공통상세코드 총 갯수를 조회한다. + * @param searchVO + * @return int(공통상세코드 총 갯수) + */ + int selectCmmnDetailCodeListTotCnt(CmmnDetailCodeVO searchVO) throws Exception; + + /** + * 공통상세코드를 수정한다. + * @param cmmnDetailCode + * @throws Exception + */ + void updateCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cde/service/impl/CmmnDetailCodeManageDAO.java b/src/main/java/egovframework/com/sym/ccm/cde/service/impl/CmmnDetailCodeManageDAO.java new file mode 100644 index 0000000..021c281 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cde/service/impl/CmmnDetailCodeManageDAO.java @@ -0,0 +1,88 @@ +package egovframework.com.sym.ccm.cde.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.ccm.cde.service.CmmnDetailCodeVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 공통상세코드에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Repository("CmmnDetailCodeManageDAO") +public class CmmnDetailCodeManageDAO extends EgovComAbstractDAO { + + /** + * 공통상세코드를 삭제한다. + * @param cmmnDetailCode + * @throws Exception + */ + public void deleteCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception { + delete("CmmnDetailCodeManageDAO.deleteCmmnDetailCode", cmmnDetailCode); + } + + + /** + * 공통상세코드를 등록한다. + * @param cmmnDetailCode + * @throws Exception + */ + public void insertCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception { + insert("CmmnDetailCodeManageDAO.insertCmmnDetailCode", cmmnDetailCode); + } + + /** + * 공통상세코드 상세항목을 조회한다. + * @param cmmnDetailCode + * @return CmmnDetailCode(공통상세코드) + */ + public CmmnDetailCode selectCmmnDetailCodeDetail(CmmnDetailCode cmmnDetailCode) throws Exception { + return (CmmnDetailCode) select("CmmnDetailCodeManageDAO.selectCmmnDetailCodeDetail", cmmnDetailCode); + } + + + /** + * 공통상세코드 목록을 조회한다. + * @param searchVO + * @return List(공통상세코드 목록) + * @throws Exception + */ + public List selectCmmnDetailCodeList(CmmnDetailCodeVO searchVO) throws Exception { + return list("CmmnDetailCodeManageDAO.selectCmmnDetailCodeList", searchVO); + } + + /** + * 공통상세코드 총 갯수를 조회한다. + * @param searchVO + * @return int(공통상세코드 총 갯수) + */ + public int selectCmmnDetailCodeListTotCnt(CmmnDetailCodeVO searchVO) throws Exception { + return (Integer)select("CmmnDetailCodeManageDAO.selectCmmnDetailCodeListTotCnt", searchVO); + } + + /** + * 공통상세코드를 수정한다. + * @param cmmnDetailCode + * @throws Exception + */ + public void updateCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception { + update("CmmnDetailCodeManageDAO.updateCmmnDetailCode", cmmnDetailCode); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cde/service/impl/EgovCcmCmmnDetailCodeManageServiceImpl.java b/src/main/java/egovframework/com/sym/ccm/cde/service/impl/EgovCcmCmmnDetailCodeManageServiceImpl.java new file mode 100644 index 0000000..1ce6b5d --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cde/service/impl/EgovCcmCmmnDetailCodeManageServiceImpl.java @@ -0,0 +1,89 @@ +package egovframework.com.sym.ccm.cde.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.com.sym.ccm.cde.service.CmmnDetailCodeVO; +import egovframework.com.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + + + +/** + * + * 공통상세코드에 대한 서비스 구현클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Service("CmmnDetailCodeManageService") +public class EgovCcmCmmnDetailCodeManageServiceImpl extends EgovAbstractServiceImpl implements EgovCcmCmmnDetailCodeManageService { + + @Resource(name="CmmnDetailCodeManageDAO") + private CmmnDetailCodeManageDAO cmmnDetailCodeManageDAO; + + /** + * 공통상세코드를 삭제한다. + */ + @Override + public void deleteCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception { + cmmnDetailCodeManageDAO.deleteCmmnDetailCode(cmmnDetailCode); + } + + /** + * 공통상세코드를 등록한다. + */ + @Override + public void insertCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception { + cmmnDetailCodeManageDAO.insertCmmnDetailCode(cmmnDetailCode); + } + + /** + * 공통상세코드 상세항목을 조회한다. + */ + @Override + public CmmnDetailCode selectCmmnDetailCodeDetail(CmmnDetailCode cmmnDetailCode) throws Exception { + CmmnDetailCode ret = cmmnDetailCodeManageDAO.selectCmmnDetailCodeDetail(cmmnDetailCode); + return ret; + } + + /** + * 공통상세코드 목록을 조회한다. + */ + @Override + public List selectCmmnDetailCodeList(CmmnDetailCodeVO searchVO) throws Exception { + return cmmnDetailCodeManageDAO.selectCmmnDetailCodeList(searchVO); + } + + /** + * 공통상세코드 총 갯수를 조회한다. + */ + @Override + public int selectCmmnDetailCodeListTotCnt(CmmnDetailCodeVO searchVO) throws Exception { + return cmmnDetailCodeManageDAO.selectCmmnDetailCodeListTotCnt(searchVO); + } + + /** + * 공통상세코드를 수정한다. + */ + @Override + public void updateCmmnDetailCode(CmmnDetailCode cmmnDetailCode) throws Exception { + cmmnDetailCodeManageDAO.updateCmmnDetailCode(cmmnDetailCode); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/cde/web/EgovCcmCmmnDetailCodeManageController.java b/src/main/java/egovframework/com/sym/ccm/cde/web/EgovCcmCmmnDetailCodeManageController.java new file mode 100644 index 0000000..0b91b96 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/cde/web/EgovCcmCmmnDetailCodeManageController.java @@ -0,0 +1,296 @@ +package egovframework.com.sym.ccm.cde.web; + +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.com.sym.ccm.cca.service.CmmnCode; +import egovframework.com.sym.ccm.cca.service.CmmnCodeVO; +import egovframework.com.sym.ccm.cca.service.EgovCcmCmmnCodeManageService; +import egovframework.com.sym.ccm.ccc.service.CmmnClCodeVO; +import egovframework.com.sym.ccm.ccc.service.EgovCcmCmmnClCodeManageService; +import egovframework.com.sym.ccm.cde.service.CmmnDetailCodeVO; +import egovframework.com.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springmodules.validation.commons.DefaultBeanValidator; + +/** + * + * 공통상세코드에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * 
+ */ + +@Controller +public class EgovCcmCmmnDetailCodeManageController { + + @Resource(name = "CmmnDetailCodeManageService") + private EgovCcmCmmnDetailCodeManageService cmmnDetailCodeManageService; + + @Resource(name = "CmmnClCodeManageService") + private EgovCcmCmmnClCodeManageService cmmnClCodeManageService; + + @Resource(name = "CmmnCodeManageService") + private EgovCcmCmmnCodeManageService cmmnCodeManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 공통상세코드를 삭제한다. + * @param loginVO + * @param cmmnDetailCode + * @param model + * @return "forward:/sym/ccm/cde/EgovCcmCmmnDetailCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/cde/EgovCcmCmmnDetailCodeRemove.do") + public String deleteCmmnDetailCode (@ModelAttribute("loginVO") LoginVO loginVO + , CmmnDetailCode cmmnDetailCode + , ModelMap model + ) throws Exception { + cmmnDetailCodeManageService.deleteCmmnDetailCode(cmmnDetailCode); + return "forward:/sym/ccm/cde/EgovCcmCmmnDetailCodeList.do"; + } + + /** + * 공통상세코드를 등록한다. + * @param loginVO + * @param cmmnDetailCode + * @param cmmnCode + * @param bindingResult + * @param model + * @return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeRegist" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/cde/EgovCcmCmmnDetailCodeRegist.do") + public String insertCmmnDetailCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("cmmnDetailCode") CmmnDetailCode cmmnDetailCode + , @ModelAttribute("cmmnCode") CmmnCode cmmnCode + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (cmmnDetailCode.getCodeId() == null + ||cmmnDetailCode.getCodeId().equals("") + ||cmmnDetailCode.getCode() == null + ||cmmnDetailCode.getCode().equals("") + ||sCmd.equals("")) { + + CmmnClCodeVO searchClCodeVO; + searchClCodeVO = new CmmnClCodeVO(); + searchClCodeVO.setRecordCountPerPage(999999); + searchClCodeVO.setFirstIndex(0); + searchClCodeVO.setSearchCondition("CodeList"); + List CmmnClCodeList = cmmnClCodeManageService.selectCmmnClCodeList(searchClCodeVO); + model.addAttribute("cmmnClCodeList", CmmnClCodeList); + + CmmnCodeVO searchCodeVO; + searchCodeVO = new CmmnCodeVO(); + searchCodeVO.setRecordCountPerPage(999999); + searchCodeVO.setFirstIndex(0); + searchCodeVO.setSearchCondition("clCode"); + if (cmmnCode.getClCode().equals("")) { + EgovMap emp = (EgovMap)CmmnClCodeList.get(0); + cmmnCode.setClCode(emp.get("clCode").toString()); + } + searchCodeVO.setSearchKeyword(cmmnCode.getClCode()); + + List CmmnCodeList = cmmnCodeManageService.selectCmmnCodeList(searchCodeVO); + model.addAttribute("cmmnCodeList", CmmnCodeList); + + return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeRegist"; + } else if (sCmd.equals("Regist")) { + + beanValidator.validate(cmmnDetailCode, bindingResult); + if (bindingResult.hasErrors()){ + CmmnClCodeVO searchClCodeVO; + searchClCodeVO = new CmmnClCodeVO(); + searchClCodeVO.setRecordCountPerPage(999999); + searchClCodeVO.setFirstIndex(0); + List CmmnClCodeList = cmmnClCodeManageService.selectCmmnClCodeList(searchClCodeVO); + model.addAttribute("cmmnClCodeList", CmmnClCodeList); + + CmmnCodeVO searchCodeVO; + searchCodeVO = new CmmnCodeVO(); + searchCodeVO.setRecordCountPerPage(999999); + searchCodeVO.setFirstIndex(0); + searchCodeVO.setSearchCondition("clCode"); + if (cmmnCode.getClCode().equals("")) { + EgovMap emp = (EgovMap)CmmnClCodeList.get(0); + cmmnCode.setClCode(emp.get("clCode").toString()); + } + searchCodeVO.setSearchKeyword(cmmnCode.getClCode()); + + List CmmnCodeList = cmmnCodeManageService.selectCmmnCodeList(searchCodeVO); + model.addAttribute("cmmnCodeList", CmmnCodeList); + + return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeRegist"; + } + + CmmnDetailCode vo = cmmnDetailCodeManageService.selectCmmnDetailCodeDetail(cmmnDetailCode); + if(vo != null){ + model.addAttribute("message", "이미 등록된 코드가 존재합니다."); + + CmmnClCodeVO searchClCodeVO; + searchClCodeVO = new CmmnClCodeVO(); + searchClCodeVO.setRecordCountPerPage(999999); + searchClCodeVO.setFirstIndex(0); + List CmmnClCodeList = cmmnClCodeManageService.selectCmmnClCodeList(searchClCodeVO); + model.addAttribute("cmmnClCodeList", CmmnClCodeList); + + CmmnCodeVO searchCodeVO; + searchCodeVO = new CmmnCodeVO(); + searchCodeVO.setRecordCountPerPage(999999); + searchCodeVO.setFirstIndex(0); + searchCodeVO.setSearchCondition("clCode"); + if (cmmnCode.getClCode().equals("")) { + EgovMap emp = (EgovMap)CmmnClCodeList.get(0); + cmmnCode.setClCode(emp.get("clCode").toString()); + } + searchCodeVO.setSearchKeyword(cmmnCode.getClCode()); + + List CmmnCodeList = cmmnCodeManageService.selectCmmnCodeList(searchCodeVO); + model.addAttribute("cmmnCodeList", CmmnCodeList); + + return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeRegist"; + } + cmmnDetailCode.setFrstRegisterId(loginVO.getUniqId()); + cmmnDetailCodeManageService.insertCmmnDetailCode(cmmnDetailCode); + return "forward:/sym/ccm/cde/EgovCcmCmmnDetailCodeList.do"; + } else { + return "forward:/sym/ccm/cde/EgovCcmCmmnDetailCodeList.do"; + } + } + + /** + * 공통상세코드 상세항목을 조회한다. + * @param loginVO + * @param cmmnDetailCode + * @param model + * @return "egovframework/com/cmm/sym/ccm/EgovCcmCmmnDetailCodeDetail" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/cde/EgovCcmCmmnDetailCodeDetail.do") + public String selectCmmnDetailCodeDetail (@ModelAttribute("loginVO") LoginVO loginVO + , CmmnDetailCode cmmnDetailCode + , ModelMap model + ) throws Exception { + CmmnDetailCode vo = cmmnDetailCodeManageService.selectCmmnDetailCodeDetail(cmmnDetailCode); + model.addAttribute("result", vo); + + return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeDetail"; + } + + /** + * 공통상세코드 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeList" + * @throws Exception + */ + @IncludedInfo(name="공통상세코드", listUrl="/sym/ccm/cde/EgovCcmCmmnDetailCodeList.do", order = 970 ,gid = 60) + @RequestMapping(value="/sym/ccm/cde/EgovCcmCmmnDetailCodeList.do") + public String selectCmmnDetailCodeList (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("searchVO") CmmnDetailCodeVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = cmmnDetailCodeManageService.selectCmmnDetailCodeList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = cmmnDetailCodeManageService.selectCmmnDetailCodeListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeList"; + } + + /** + * 공통상세코드를 수정한다. + * @param loginVO + * @param cmmnDetailCode + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeModify" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/cde/EgovCcmCmmnDetailCodeModify.do") + public String updateCmmnDetailCode (@ModelAttribute("loginVO") LoginVO loginVO + , @ModelAttribute("cmmnDetailCode") CmmnDetailCode cmmnDetailCode + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + CmmnDetailCode vo = cmmnDetailCodeManageService.selectCmmnDetailCodeDetail(cmmnDetailCode); + model.addAttribute("cmmnDetailCode", vo); + + return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeModify"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(cmmnDetailCode, bindingResult); + if (bindingResult.hasErrors()){ + CmmnDetailCode vo = cmmnDetailCodeManageService.selectCmmnDetailCodeDetail(cmmnDetailCode); + model.addAttribute("cmmnDetailCode", vo); + + return "egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeModify"; + } + + cmmnDetailCode.setLastUpdusrId(loginVO.getUniqId()); + cmmnDetailCodeManageService.updateCmmnDetailCode(cmmnDetailCode); + return "forward:/sym/ccm/cde/EgovCcmCmmnDetailCodeList.do"; + } else { + return "forward:/sym/ccm/cde/EgovCcmCmmnDetailCodeList.do"; + } + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sym/ccm/icr/service/EgovInsttCodeRecptnService.java b/src/main/java/egovframework/com/sym/ccm/icr/service/EgovInsttCodeRecptnService.java new file mode 100644 index 0000000..10f8eb8 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/icr/service/EgovInsttCodeRecptnService.java @@ -0,0 +1,69 @@ +package egovframework.com.sym.ccm.icr.service; + +import java.util.List; + +/** + * + * 기관코드에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public interface EgovInsttCodeRecptnService { + + /** + * 기관코드수신을 처리한다. + * @param insttCode + * @throws Exception + */ + void insertInsttCodeRecptn() throws Exception; + + /** + * 기관코드 상세내역을 조회한다. + * @param insttCode + * @return InsttCode(기관코드) + * @throws Exception + */ + InsttCodeRecptn selectInsttCodeDetail(InsttCodeRecptn insttCodeRecptn) throws Exception; + + /** + * 기관코드수신 목록을 조회한다. + * @param searchVO + * @return List(기관코드 목록) + * @throws Exception + */ + List selectInsttCodeRecptnList(InsttCodeRecptnVO searchVO) throws Exception; + + /** + * 기관코드수신 총 갯수를 조회한다. + * @param searchVO + * @return int(기관코드 총 갯수) + */ + int selectInsttCodeRecptnListTotCnt(InsttCodeRecptnVO searchVO) throws Exception; + + /** + * 기관코드 목록을 조회한다. + * @param searchVO + * @return List(기관코드 목록) + * @throws Exception + */ + List selectInsttCodeList(InsttCodeRecptnVO searchVO) throws Exception; + + /** + * 기관코드 총 갯수를 조회한다. + * @param searchVO + * @return int(기관코드 총 갯수) + */ + int selectInsttCodeListTotCnt(InsttCodeRecptnVO searchVO) throws Exception; +} diff --git a/src/main/java/egovframework/com/sym/ccm/icr/service/InsttCodeRecptn.java b/src/main/java/egovframework/com/sym/ccm/icr/service/InsttCodeRecptn.java new file mode 100644 index 0000000..6bb13fd --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/icr/service/InsttCodeRecptn.java @@ -0,0 +1,635 @@ +package egovframework.com.sym.ccm.icr.service; + +import java.io.Serializable; + +/** + * 기관코드수신로그 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class InsttCodeRecptn implements Serializable { + + private static final long serialVersionUID = 1370791089416059647L; + + /* + * 발생일자 + */ + private String occrrDe = "" ; + + /* + * 기관코드 + */ + private String insttCode = "" ; + + /** + * 작업일련번호 + */ + int opertSn = 0; + + /* + * 변경구분코드 + */ + private String changeSeCode = "" ; + + /* + * 처리구분 + */ + private String processSe = "" ; + + /* + * 기타코드 + */ + private String etcCode = "" ; + + /* + * 전체기관명 + */ + private String allInsttNm = "" ; + + /* + * 최하위기관명 + */ + private String lowestInsttNm = "" ; + + /* + * 기관약칭명 + */ + private String insttAbrvNm = "" ; + + /* + * 차수 + */ + private String odr = "" ; + + /* + * 서열 + */ + private String ord = "" ; + + /* + * 기관차수 + */ + private String insttOdr = "" ; + + /* + * 최상위기관코드 + */ + private String bestInsttCode = "" ; + + /* + * 상위기관코드 + */ + private String upperInsttCode = "" ; + + /* + * 대표기관코드 + */ + private String reprsntInsttCode = "" ; + + /* + * 기관유형대분류 + */ + private String insttTyLclas = "" ; + + /* + * 기관유형중분류 + */ + private String insttTyMclas = "" ; + + /* + * 기관유형소분류 + */ + private String insttTySclas = "" ; + + /* + * 전화번호 + */ + private String telno = "" ; + + /* + * 팩스번호 + */ + private String fxnum = "" ; + + /* + * 생성일자 + */ + private String creatDe = "" ; + + /* + * 폐지일자 + */ + private String ablDe = "" ; + + /* + * 폐지유무 + */ + private String ablEnnc = "" ; + + /* + * 변경일자 + */ + private String changede = "" ; + + /* + * 변경시간 + */ + private String changeTime = "" ; + + /* + * 기초일자 + */ + private String bsisDe = "" ; + + /* + * 정렬순서 + */ + private int sortOrdr = 0 ; + + /* + * 최초등록자ID + */ + private String frstRegisterId = "" ; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = "" ; + + /** + * occrrDe attribute 를 리턴한다. + * @return String + */ + public String getOccrrDe() { + return occrrDe; + } + + /** + * occrrDe attribute 값을 설정한다. + * @param occrrDe String + */ + public void setOccrrDe(String occrrDe) { + this.occrrDe = occrrDe; + } + + /** + * insttCode attribute 를 리턴한다. + * @return String + */ + public String getInsttCode() { + return insttCode; + } + + /** + * insttCode attribute 값을 설정한다. + * @param insttCode String + */ + public void setInsttCode(String insttCode) { + this.insttCode = insttCode; + } + + /** + * opertSn attribute 를 리턴한다. + * @return int + */ + public int getOpertSn() { + return opertSn; + } + + /** + * opertSn attribute 값을 설정한다. + * @param opertSn int + */ + public void setOpertSn(int opertSn) { + this.opertSn = opertSn; + } + + /** + * changeSeCode attribute 를 리턴한다. + * @return String + */ + public String getChangeSeCode() { + return changeSeCode; + } + + /** + * changeSeCode attribute 값을 설정한다. + * @param changeSeCode String + */ + public void setChangeSeCode(String changeSeCode) { + this.changeSeCode = changeSeCode; + } + + /** + * processSe attribute 를 리턴한다. + * @return String + */ + public String getProcessSe() { + return processSe; + } + + /** + * processSe attribute 값을 설정한다. + * @param processSe String + */ + public void setProcessSe(String processSe) { + this.processSe = processSe; + } + + /** + * etcCode attribute 를 리턴한다. + * @return String + */ + public String getEtcCode() { + return etcCode; + } + + /** + * etcCode attribute 값을 설정한다. + * @param etcCode String + */ + public void setEtcCode(String etcCode) { + this.etcCode = etcCode; + } + + /** + * allInsttNm attribute 를 리턴한다. + * @return String + */ + public String getAllInsttNm() { + return allInsttNm; + } + + /** + * allInsttNm attribute 값을 설정한다. + * @param allInsttNm String + */ + public void setAllInsttNm(String allInsttNm) { + this.allInsttNm = allInsttNm; + } + + /** + * lowestInsttNm attribute 를 리턴한다. + * @return String + */ + public String getLowestInsttNm() { + return lowestInsttNm; + } + + /** + * lowestInsttNm attribute 값을 설정한다. + * @param lowestInsttNm String + */ + public void setLowestInsttNm(String lowestInsttNm) { + this.lowestInsttNm = lowestInsttNm; + } + + /** + * insttAbrvNm attribute 를 리턴한다. + * @return String + */ + public String getInsttAbrvNm() { + return insttAbrvNm; + } + + /** + * insttAbrvNm attribute 값을 설정한다. + * @param insttAbrvNm String + */ + public void setInsttAbrvNm(String insttAbrvNm) { + this.insttAbrvNm = insttAbrvNm; + } + + /** + * odr attribute 를 리턴한다. + * @return String + */ + public String getOdr() { + return odr; + } + + /** + * odr attribute 값을 설정한다. + * @param odr String + */ + public void setOdr(String odr) { + this.odr = odr; + } + + /** + * ord attribute 를 리턴한다. + * @return String + */ + public String getOrd() { + return ord; + } + + /** + * ord attribute 값을 설정한다. + * @param ord String + */ + public void setOrd(String ord) { + this.ord = ord; + } + + /** + * insttOdr attribute 를 리턴한다. + * @return String + */ + public String getInsttOdr() { + return insttOdr; + } + + /** + * insttOdr attribute 값을 설정한다. + * @param insttOdr String + */ + public void setInsttOdr(String insttOdr) { + this.insttOdr = insttOdr; + } + + /** + * bestInsttCode attribute 를 리턴한다. + * @return String + */ + public String getBestInsttCode() { + return bestInsttCode; + } + + /** + * bestInsttCode attribute 값을 설정한다. + * @param bestInsttCode String + */ + public void setBestInsttCode(String bestInsttCode) { + this.bestInsttCode = bestInsttCode; + } + + /** + * upperInsttCode attribute 를 리턴한다. + * @return String + */ + public String getUpperInsttCode() { + return upperInsttCode; + } + + /** + * upperInsttCode attribute 값을 설정한다. + * @param upperInsttCode String + */ + public void setUpperInsttCode(String upperInsttCode) { + this.upperInsttCode = upperInsttCode; + } + + /** + * reprsntInsttCode attribute 를 리턴한다. + * @return String + */ + public String getReprsntInsttCode() { + return reprsntInsttCode; + } + + /** + * reprsntInsttCode attribute 값을 설정한다. + * @param reprsntInsttCode String + */ + public void setReprsntInsttCode(String reprsntInsttCode) { + this.reprsntInsttCode = reprsntInsttCode; + } + + /** + * insttTyLclas attribute 를 리턴한다. + * @return String + */ + public String getInsttTyLclas() { + return insttTyLclas; + } + + /** + * insttTyLclas attribute 값을 설정한다. + * @param insttTyLclas String + */ + public void setInsttTyLclas(String insttTyLclas) { + this.insttTyLclas = insttTyLclas; + } + + /** + * insttTyMclas attribute 를 리턴한다. + * @return String + */ + public String getInsttTyMclas() { + return insttTyMclas; + } + + /** + * insttTyMclas attribute 값을 설정한다. + * @param insttTyMclas String + */ + public void setInsttTyMclas(String insttTyMclas) { + this.insttTyMclas = insttTyMclas; + } + + /** + * insttTySclas attribute 를 리턴한다. + * @return String + */ + public String getInsttTySclas() { + return insttTySclas; + } + + /** + * insttTySclas attribute 값을 설정한다. + * @param insttTySclas String + */ + public void setInsttTySclas(String insttTySclas) { + this.insttTySclas = insttTySclas; + } + + /** + * telno attribute 를 리턴한다. + * @return String + */ + public String getTelno() { + return telno; + } + + /** + * telno attribute 값을 설정한다. + * @param telno String + */ + public void setTelno(String telno) { + this.telno = telno; + } + + /** + * fxnum attribute 를 리턴한다. + * @return String + */ + public String getFxnum() { + return fxnum; + } + + /** + * fxnum attribute 값을 설정한다. + * @param fxnum String + */ + public void setFxnum(String fxnum) { + this.fxnum = fxnum; + } + + /** + * creatDe attribute 를 리턴한다. + * @return String + */ + public String getCreatDe() { + return creatDe; + } + + /** + * creatDe attribute 값을 설정한다. + * @param creatDe String + */ + public void setCreatDe(String creatDe) { + this.creatDe = creatDe; + } + + /** + * ablDe attribute 를 리턴한다. + * @return String + */ + public String getAblDe() { + return ablDe; + } + + /** + * ablDe attribute 값을 설정한다. + * @param ablDe String + */ + public void setAblDe(String ablDe) { + this.ablDe = ablDe; + } + + /** + * ablEnnc attribute 를 리턴한다. + * @return String + */ + public String getAblEnnc() { + return ablEnnc; + } + + /** + * ablEnnc attribute 값을 설정한다. + * @param ablEnnc String + */ + public void setAblEnnc(String ablEnnc) { + this.ablEnnc = ablEnnc; + } + + /** + * changede attribute 를 리턴한다. + * @return String + */ + public String getChangede() { + return changede; + } + + /** + * changede attribute 값을 설정한다. + * @param changede String + */ + public void setChangede(String changede) { + this.changede = changede; + } + + /** + * changeTime attribute 를 리턴한다. + * @return String + */ + public String getChangeTime() { + return changeTime; + } + + /** + * changeTime attribute 값을 설정한다. + * @param changeTime String + */ + public void setChangeTime(String changeTime) { + this.changeTime = changeTime; + } + + /** + * bsisDe attribute 를 리턴한다. + * @return String + */ + public String getBsisDe() { + return bsisDe; + } + + /** + * bsisDe attribute 값을 설정한다. + * @param bsisDe String + */ + public void setBsisDe(String bsisDe) { + this.bsisDe = bsisDe; + } + + /** + * sortOrdr attribute 를 리턴한다. + * @return int + */ + public int getSortOrdr() { + return sortOrdr; + } + + /** + * sortOrdr attribute 값을 설정한다. + * @param sortOrdr int + */ + public void setSortOrdr(int sortOrdr) { + this.sortOrdr = sortOrdr; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/icr/service/InsttCodeRecptnVO.java b/src/main/java/egovframework/com/sym/ccm/icr/service/InsttCodeRecptnVO.java new file mode 100644 index 0000000..0b62ed5 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/icr/service/InsttCodeRecptnVO.java @@ -0,0 +1,199 @@ +package egovframework.com.sym.ccm.icr.service; + +import java.io.Serializable; + +/** + * + * 기관코드 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class InsttCodeRecptnVO extends InsttCodeRecptn implements Serializable { + + private static final long serialVersionUID = -1775265891182170426L; + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/icr/service/impl/EgovInsttCodeRecptnServiceImpl.java b/src/main/java/egovframework/com/sym/ccm/icr/service/impl/EgovInsttCodeRecptnServiceImpl.java new file mode 100644 index 0000000..a1876b0 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/icr/service/impl/EgovInsttCodeRecptnServiceImpl.java @@ -0,0 +1,416 @@ +package egovframework.com.sym.ccm.icr.service.impl; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.text.SimpleDateFormat; +import java.util.List; +import java.util.Locale; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.com.cmm.util.EgovResourceCloseHelper; +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.com.sym.ccm.icr.service.EgovInsttCodeRecptnService; +import egovframework.com.sym.ccm.icr.service.InsttCodeRecptn; +import egovframework.com.sym.ccm.icr.service.InsttCodeRecptnVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; + +import javax.annotation.Resource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +/** + * + * 기관코드에 대한 서비스 구현클래스를 정의한다. + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.09.05	 서준식          파일 읽기 무한 루프 오류 수정
+ *   2011.10.07  이기하          finally문을 추가하여 에러시 자원반환할 수 있도록 추가
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Service("InsttCodeRecptnService") +public class EgovInsttCodeRecptnServiceImpl extends EgovAbstractServiceImpl implements EgovInsttCodeRecptnService { + /** log */ + private static final Logger LOGGER = LoggerFactory.getLogger(EgovInsttCodeRecptnServiceImpl.class); + + @Resource(name = "InsttCodeRecptnDAO") + private InsttCodeRecptnDAO insttCodeRecptnDAO; + + /** EgovIdGnrService */ + @Resource(name = "egovInsttCodeRecptnIdGnrService") + private EgovIdGnrService idgenService; + + /** + * 기관코드수신을 처리한다. + */ + public void insertInsttCodeRecptn() throws Exception { + SimpleDateFormat sDate = new SimpleDateFormat("yyyyMMddHHmm", Locale.getDefault()); + String strdate = sDate.format(new java.util.Date()); + + String rcvDir = EgovProperties.getProperty("CNTC.INSTTCODE.DIR.rcv"); + String rcvOldDir = EgovProperties.getProperty("CNTC.INSTTCODE.DIR.rcvold"); + String binDir = EgovProperties.getProperty("CNTC.INSTTCODE.DIR.bin"); + + String rcvListCmd = EgovProperties.getProperty("CNTC.INSTTCODE.CMD.edircv"); + String rcvMesgCmd = EgovProperties.getProperty("CNTC.INSTTCODE.CMD.edircvmsg"); + + String userId = EgovProperties.getProperty("CNTC.INSTTCODE.INFO.userid"); + String userPw = EgovProperties.getProperty("CNTC.INSTTCODE.INFO.userpw"); + + String rcvListName = "unSEENlst"; + String CODUCH = "CODUCH"; // DocCode선언 + + String rcvListFullCmd = binDir + rcvListCmd; + String rcvMesgFullCmd = binDir + rcvMesgCmd; + String rcvListFullName = rcvDir + rcvListName + "." + strdate; + + String systemCmdFull = null; + + FileInputStream fin = null; + InputStreamReader sin = null; + BufferedReader in = null; + + File listFile = null; + File dataFile = null; + + File recvOldFile = null; + + InputStream is = null; + BufferedReader br = null; + + // 연계목록을 가져온다. + try { + systemCmdFull = rcvListFullCmd + " " + userId + " " + userPw + " *UNSEEN *ALL*ALL " + rcvListFullName; + Runtime runtime = Runtime.getRuntime(); + Process process = runtime.exec(systemCmdFull); + + is = process.getInputStream(); + br = new BufferedReader(new InputStreamReader(is)); + + String tmp; + String temp = ""; + tmp = br.readLine(); + while (tmp != null) { + temp += tmp; + tmp = br.readLine(); + } + egovLogger.debug("List command console output : {}", temp); + + } finally { + EgovResourceCloseHelper.close(br, is); + } + + // 연계목록을 확인하여 연계파일을 가져온다. + try { + listFile = new File(rcvListFullName); + + if (listFile.exists()) { + fin = new FileInputStream(listFile); + sin = new InputStreamReader(fin); + in = new BufferedReader(sin); + + String readList = null; + int listCount = 0; + + // 연계목록을 확인 + readList = in.readLine(); + while (readList != null) { + listCount++; + readList = in.readLine(); + if (listCount < 4 || readList == null) { + + continue; + } + + String messageID = null; // messageID + String docCode = null; // DocCode + String fileID = null; // fileID + + if (readList.length() > 56) { //기관코드 리스트 수신 row가 56자보다 긴지 점검 + messageID = readList.substring(0, 20); + fileID = readList.substring(20, readList.indexOf(" ")); + docCode = readList.substring(50, 56); + + if (CODUCH.equals(docCode)) { + // 연계파일을 가져온다. + try { + systemCmdFull = rcvMesgFullCmd + " " + userId + " " + userPw + " " + messageID + " *ALL*ALL " + rcvDir + fileID; + Runtime runtime = Runtime.getRuntime(); + Process process = runtime.exec(systemCmdFull); + + is = process.getInputStream(); + br = new BufferedReader(new InputStreamReader(is)); + + String tmp; + String temp = ""; + tmp = br.readLine(); + while (tmp != null) { + temp += tmp; + tmp = br.readLine(); + } + + egovLogger.debug("Message command console output : {}", temp); + } finally { + EgovResourceCloseHelper.close(br, is); + } + } + } + + } + EgovResourceCloseHelper.close(in); + + // 연계파일 수신이 완료되면 listFile:=rcvListFullName 파일을 recvOldFileDir 로 이동한다. + recvOldFile = new File(rcvOldDir + listFile.getName()); + if (listFile.isFile()) { + if (recvOldFile.getParentFile().isDirectory()) { + listFile.renameTo(recvOldFile); + } + } else { + // 진행종료 + processException("recvList filename or rcvold path is not valid!!!"); + //throw new Exception("recvList filename or rcvold path is not valid!!!"); + } + } + } catch (IOException e) { + egovLogger.error("IOException", e); + throw e; + } finally { + EgovResourceCloseHelper.close(in); + } + + // 수신디렉토리의 모든 연계파일을 확인하여 연계정보를 처리한다. + String buf = ""; + //String buf2[] = null; + + File recvFileDir = new File(rcvDir); + File recvFileList[] = recvFileDir.listFiles(); + + int fileCount = 0; + + do { + if (recvFileList[fileCount].getName().indexOf(".rec") > -1) { + dataFile = new File(recvFileList[fileCount].getPath()); + + } else { + fileCount++; + continue; + } + + buf += "\n\n++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; + + String readData = null; + + try { + if (dataFile.exists()) { + + fin = new FileInputStream(dataFile); + sin = new InputStreamReader(fin); + in = new BufferedReader(sin); + readData = in.readLine(); + while (readData != null) { + + InsttCodeRecptn insttCodeRecptn = new InsttCodeRecptn(); + + String tokenData[] = readData.split(" ", 25); + int tokenLength = tokenData.length; + + String strTmp = null; + for (int i = 0; i < tokenLength; i++) { + strTmp = tokenData[i].trim(); + tokenData[i] = strTmp; + } + + if (tokenLength >= 25) { + // 마지막 문자 ';' 제거 + tokenData[tokenLength - 1] = tokenData[tokenLength - 1].replace(";", "").trim(); + + // 서열설정 3자리 숫자로 맞춤 + if (tokenData[8].length() == 1) { + tokenData[8] = "00" + tokenData[8]; + } else if (tokenData[8].length() == 2) { + tokenData[8] = "0" + tokenData[8]; + } + + // 숫자형 변환 전 처리 + tokenData[24] = (tokenData[24] == null || "".equals(tokenData[24])) ? "0" : tokenData[24]; + + buf += "\n" + "[ F]" + dataFile.getName() // 파일명 + + "\n"; + + // 명령 변경구분코드로 변환 + strTmp = "INS".equals(tokenData[0]) ? "01" : ("UPD".equals(tokenData[0]) ? "02" : ("DEL".equals(tokenData[0]) ? "03" : "")); + + // 실제 연계 항목 Mapping 작업 + insttCodeRecptn.setChangeSeCode(strTmp); // 명령 :: 변경구분코드 + insttCodeRecptn.setOccrrDe(tokenData[1]); // 날짜 :: 발생일자 + insttCodeRecptn.setEtcCode(tokenData[2]); // 2자리코드 <적용:기타코드> :: 기타코드 + insttCodeRecptn.setInsttCode(tokenData[3]); // 기관코드 :: 기관코드 + insttCodeRecptn.setAllInsttNm(tokenData[4]); // 기관명(전체) :: 전체기관명 + insttCodeRecptn.setLowestInsttNm(tokenData[5]); // 기관명(최하위) :: 최하위기관명 + insttCodeRecptn.setInsttAbrvNm(tokenData[6]); // 기관명(약어) :: 기관약칭명 + insttCodeRecptn.setOdr(tokenData[7]); // 차수 :: 차수 + insttCodeRecptn.setOrd(tokenData[8]); // 서열 :: 서열 + insttCodeRecptn.setInsttOdr(tokenData[9]); // 소속기관차수 :: 기관차수 + insttCodeRecptn.setUpperInsttCode(tokenData[10]); // 차상위기관코드 :: 상위기관코드 + insttCodeRecptn.setBestInsttCode(tokenData[11]); // 최상위기관코드 :: 최상위기관코드 + insttCodeRecptn.setReprsntInsttCode(tokenData[12]); // 대표기관코드 :: 대표기관코드 + insttCodeRecptn.setInsttTyLclas(tokenData[13]); // 기관유형(대) :: 기관유형대분류 + insttCodeRecptn.setInsttTyMclas(tokenData[14]); // 기관유형(중) :: 기관유형중분류 + insttCodeRecptn.setInsttTySclas(tokenData[15]); // 기관유형(소) :: 기관유형소분류 + insttCodeRecptn.setTelno(tokenData[16]); // 전화번호 :: 전화번호 + insttCodeRecptn.setFxnum(tokenData[17]); // 팩스번호 :: 팩스번호 + insttCodeRecptn.setCreatDe(tokenData[18]); // 생성일자 :: 생성일자 + insttCodeRecptn.setAblDe(tokenData[19]); // 폐지일자 :: 폐지일자 + insttCodeRecptn.setAblEnnc(tokenData[20]); // 폐지구분 :: 폐지유무 + insttCodeRecptn.setChangede(tokenData[21]); // 변경일자 :: 변경일자 + insttCodeRecptn.setChangeTime(tokenData[22]); // 변경시간 :: 변경시간 + insttCodeRecptn.setBsisDe(tokenData[23]); // 기초날짜 :: 기초일자 + insttCodeRecptn.setSortOrdr(Integer.parseInt(tokenData[24])); // 트리순서(트리서열) <적용:정렬순서>:: 정렬순서 + + // 작업일자 + if (insttCodeRecptn.getOccrrDe().equals("") || insttCodeRecptn.getOccrrDe() == null) { + insttCodeRecptn.setOccrrDe(strdate.substring(0, 8)); + } + + // 작업일련번호 확인 Generation + int iOpertSn = idgenService.getNextIntegerId(); + insttCodeRecptn.setOpertSn(iOpertSn); + + buf += "\n-all--------------\n"; + + for (int i = 0; i < tokenLength; i++) { + buf += "SPLIT [" + Integer.toString(tokenData[i].length()) + "]>>>>>> " + Integer.toString(i) + " : [" + tokenData[i] + "]\n"; + } + + } else { + + LOGGER.debug("\n\n*****************************************************************"); + LOGGER.debug(buf); + LOGGER.debug("\n\n*****************************************************************"); + LOGGER.debug(readData); + + continue; + } + LOGGER.debug("\n\n*****************************************************************"); + LOGGER.debug("\n\n*****************************************************************"); + LOGGER.debug(buf); + + buf += "\n---------------\n"; + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + insttCodeRecptn.setFrstRegisterId(uniqId); + insttCodeRecptn.setLastUpdusrId(uniqId); + + // changeSeCode 변경구분코드 + // '01' 기관생성 + // '02' 기관변경 + // '03' 기관말소 + + // processSe 처리구분 + // '00' 수신처리 + // '01' 처리완료 + // '11' 생성오류 + // '12' 변경오류 + // '13' 말소오류 + + // 작업구분 - 수신 + insttCodeRecptn.setProcessSe("00"); + insttCodeRecptnDAO.insertInsttCodeRecptn(insttCodeRecptn); + + // 작업구분 - 처리 + insttCodeRecptn.setProcessSe("01"); + if ("01".equals(insttCodeRecptn.getChangeSeCode())) { + // 기관생성 + insttCodeRecptnDAO.insertInsttCode(insttCodeRecptn); + } else if ("02".equals(insttCodeRecptn.getChangeSeCode())) { + // 기관변경 + insttCodeRecptnDAO.updateInsttCode(insttCodeRecptn); + } else if ("03".equals(insttCodeRecptn.getChangeSeCode())) { + // 기관말소 + insttCodeRecptnDAO.deleteInsttCode(insttCodeRecptn); + } + readData = in.readLine();//2011.09.05 + } + EgovResourceCloseHelper.close(in); + + // 연계파일 수신이 완료되면 dataFile 파일을 recvOldFileDir 로 이동한다. + recvOldFile = new File(rcvOldDir + dataFile.getName()); + if (dataFile.isFile()) { + if (recvOldFile.getParentFile().isDirectory()) { + dataFile.renameTo(recvOldFile); + } + } else { + // 진행종료 + processException("dataFile filename or rcvold path is not valid!!!"); + //throw new Exception("dataFile filename or rcvold path is not valid!!!"); + } + } + } catch (IOException e) { + egovLogger.error("IOException", e); + } finally { + EgovResourceCloseHelper.close(fin, sin, in); + + fileCount++; + } + + } while (fileCount < recvFileList.length); + + } + + /** + * 기관코드 상세내역을 조회한다. + */ + public InsttCodeRecptn selectInsttCodeDetail(InsttCodeRecptn insttCodeRecptn) throws Exception { + InsttCodeRecptn ret = (InsttCodeRecptn) insttCodeRecptnDAO.selectInsttCodeDetail(insttCodeRecptn); + return ret; + } + + /** + * 기관코드수신 목록을 조회한다. + */ + public List selectInsttCodeRecptnList(InsttCodeRecptnVO searchVO) throws Exception { + return insttCodeRecptnDAO.selectInsttCodeRecptnList(searchVO); + } + + /** + * 기관코드수신 총 갯수를 조회한다. + */ + public int selectInsttCodeRecptnListTotCnt(InsttCodeRecptnVO searchVO) throws Exception { + return insttCodeRecptnDAO.selectInsttCodeRecptnListTotCnt(searchVO); + } + + /** + * 기관코드 목록을 조회한다. + */ + public List selectInsttCodeList(InsttCodeRecptnVO searchVO) throws Exception { + return insttCodeRecptnDAO.selectInsttCodeList(searchVO); + } + + /** + * 기관코드 총 갯수를 조회한다. + */ + public int selectInsttCodeListTotCnt(InsttCodeRecptnVO searchVO) throws Exception { + return insttCodeRecptnDAO.selectInsttCodeListTotCnt(searchVO); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/icr/service/impl/InsttCodeRecptnDAO.java b/src/main/java/egovframework/com/sym/ccm/icr/service/impl/InsttCodeRecptnDAO.java new file mode 100644 index 0000000..00ab500 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/icr/service/impl/InsttCodeRecptnDAO.java @@ -0,0 +1,137 @@ +package egovframework.com.sym.ccm.icr.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.ccm.icr.service.InsttCodeRecptn; +import egovframework.com.sym.ccm.icr.service.InsttCodeRecptnVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 기관코드에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.09.05  서준식          beforeData에 대한 null체크 추가
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Repository("InsttCodeRecptnDAO") +public class InsttCodeRecptnDAO extends EgovComAbstractDAO { + + /** + * 기관코드수신을 처리한다. + * @param insttCode + * @throws Exception + */ + public void insertInsttCodeRecptn(InsttCodeRecptn insttCodeRecptn) throws Exception { + insert("InsttCodeRecptnDAO.insertInsttCodeRecptn", insttCodeRecptn); + } + + /** + * 기관코드를 등록한다. + * @param insttCode + * @throws Exception + */ + public void insertInsttCode(InsttCodeRecptn insttCodeRecptn) throws Exception { + InsttCodeRecptn beforeData = (InsttCodeRecptn) select("InsttCodeRecptnDAO.selectInsttCodeDetail", insttCodeRecptn); + + if (beforeData != null && beforeData.getInsttCode().equals(insttCodeRecptn.getInsttCode())) {//2011.09.05 + // 기등록 자료 + insttCodeRecptn.setProcessSe("10"); + } else { + int rtnValue = update("InsttCodeRecptnDAO.insertInsttCode", insttCodeRecptn); + if (rtnValue != 1) { + // 등록 오류 + insttCodeRecptn.setProcessSe("11"); + } + } + update("InsttCodeRecptnDAO.updateInsttCodeRecptn", insttCodeRecptn); + } + + /** + * 기관코드를 수정한다. + * @param insttCode + * @throws Exception + */ + public void updateInsttCode(InsttCodeRecptn insttCodeRecptn) throws Exception { + int rtnValue = update("InsttCodeRecptnDAO.updateInsttCode", insttCodeRecptn); + if (rtnValue != 1) { + // 변경 오류 + insttCodeRecptn.setProcessSe("12"); + } + update("InsttCodeRecptnDAO.updateInsttCodeRecptn", insttCodeRecptn); + } + + /** + * 기관코드를 삭제한다. + * @param insttCode + * @throws Exception + */ + public void deleteInsttCode(InsttCodeRecptn insttCodeRecptn) throws Exception { + int rtnValue = update("InsttCodeRecptnDAO.deleteInsttCode", insttCodeRecptn); + if (rtnValue != 1) { + // 삭제 오류 + insttCodeRecptn.setProcessSe("13"); + } + update("InsttCodeRecptnDAO.updateInsttCodeRecptn", insttCodeRecptn); + } + + /** + * 기관코드 상세내역을 조회한다. + * @param insttCode + * @return InsttCode(기관코드) + */ + public InsttCodeRecptn selectInsttCodeDetail(InsttCodeRecptn insttCodeRecptn) throws Exception { + return (InsttCodeRecptn) select("InsttCodeRecptnDAO.selectInsttCodeDetail", insttCodeRecptn); + } + + + /** + * 기관코드수신 목록을 조회한다. + * @param searchVO + * @return List(기관코드 목록) + * @throws Exception + */ + public List selectInsttCodeRecptnList(InsttCodeRecptnVO searchVO) throws Exception { + return list("InsttCodeRecptnDAO.selectInsttCodeRecptnList", searchVO); + } + + /** + * 기관코드수신 총 갯수를 조회한다. + * @param searchVO + * @return int(기관코드 총 갯수) + */ + public int selectInsttCodeRecptnListTotCnt(InsttCodeRecptnVO searchVO) throws Exception { + return (Integer)select("InsttCodeRecptnDAO.selectInsttCodeRecptnListTotCnt", searchVO); + } + + /** + * 기관코드 목록을 조회한다. + * @param searchVO + * @return List(기관코드 목록) + * @throws Exception + */ + public List selectInsttCodeList(InsttCodeRecptnVO searchVO) throws Exception { + return list("InsttCodeRecptnDAO.selectInsttCodeList", searchVO); + } + + /** + * 기관코드 총 갯수를 조회한다. + * @param searchVO + * @return int(기관코드 총 갯수) + */ + public int selectInsttCodeListTotCnt(InsttCodeRecptnVO searchVO) throws Exception { + return (Integer)select("InsttCodeRecptnDAO.selectInsttCodeListTotCnt", searchVO); + } +} diff --git a/src/main/java/egovframework/com/sym/ccm/icr/web/EgovInsttCodeRecptnController.java b/src/main/java/egovframework/com/sym/ccm/icr/web/EgovInsttCodeRecptnController.java new file mode 100644 index 0000000..f989272 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/icr/web/EgovInsttCodeRecptnController.java @@ -0,0 +1,207 @@ +package egovframework.com.sym.ccm.icr.web; + +import java.util.List; +import java.util.Map; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.service.EgovCmmUseService; +import egovframework.com.sym.ccm.icr.service.EgovInsttCodeRecptnService; +import egovframework.com.sym.ccm.icr.service.InsttCodeRecptn; +import egovframework.com.sym.ccm.icr.service.InsttCodeRecptnVO; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * + * 기관코드를 수신에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ + +@Controller +public class EgovInsttCodeRecptnController { + + @Resource(name = "InsttCodeRecptnService") + private EgovInsttCodeRecptnService insttCodeManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Resource(name="EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + /** + * TEST 용 Controller + * 실 적용시 Job Scheduler 에 등록하여 처리한다. + * 기관코드를 수신처리한다. + * + * @param insttCodeRecptn + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/sym/ccm/icr/EgovInsttCodeRegist_TEST" + * @return "forward:/sym/ccm/icr/getInsttCodeRecptnList.do" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/icr/addInsttCode.do") + public String insertInsttCodeRecptn (InsttCodeRecptn insttCodeRecptn + , BindingResult bindingResult + , @RequestParam Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + insttCodeManageService.insertInsttCodeRecptn(); + + return "egovframework/com/sym/ccm/icr/EgovInsttCodeRegist_TEST"; + } else { + return "forward:/sym/ccm/icr/getInsttCodeRecptnList.do"; + } + } + + /** + * 기관코드 상세내역을 조회한다. + * @param insttCode + * @param insttCodeRecptnVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/icr/getInsttCodeDetail.do") + public String selectInsttCodeDetail (@ModelAttribute("insttCode") InsttCodeRecptn insttCode + , @ModelAttribute("insttCodeRecptnVO") InsttCodeRecptnVO insttCodeRecptnVO + , ModelMap model + ) throws Exception { + /* 기관코드 조회 */ + InsttCodeRecptn vo = insttCodeManageService.selectInsttCodeDetail(insttCode); + model.addAttribute("result", vo); + + /* 기관코드수신 리스트 */ + insttCodeRecptnVO.setRecordCountPerPage(9999999); + insttCodeRecptnVO.setFirstIndex(0); + + + /* 공통코드처리 */ + ComDefaultCodeVO comCodeVO = new ComDefaultCodeVO(); + + /* 변경구분코드 */ + comCodeVO.setCodeId("COM043"); + List changeSeCodeList = cmmUseService.selectCmmCodeDetail(comCodeVO); + model.addAttribute("changeSeCodeList", changeSeCodeList); + + /* 처리구분코드 */ + comCodeVO.setCodeId("COM044"); + List processSeList = cmmUseService.selectCmmCodeDetail(comCodeVO); + model.addAttribute("processSeList", processSeList); + + insttCodeRecptnVO.setSearchCondition("CodeList"); + List insttCodeRecptnList = insttCodeManageService.selectInsttCodeRecptnList(insttCodeRecptnVO); + model.addAttribute("insttCodeRecptnList", insttCodeRecptnList); + + return "egovframework/com/sym/ccm/icr/EgovInsttCodeDetail"; + } + + /** + * 기관코드수신 목록을 조회한다. + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnList" + * @throws Exception + */ + @IncludedInfo(name="기관코드수신", listUrl="/sym/ccm/icr/getInsttCodeRecptnList.do", order = 1020 ,gid = 60) + @RequestMapping(value="/sym/ccm/icr/getInsttCodeRecptnList.do") + public String selectInsttCodeRecptnList (@ModelAttribute("searchVO") InsttCodeRecptnVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List insttCodeRecptnList = insttCodeManageService.selectInsttCodeRecptnList(searchVO); + model.addAttribute("resultList", insttCodeRecptnList); + + int totCnt = insttCodeManageService.selectInsttCodeRecptnListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnList"; + } + + /** + * 기관코드수신 개인화페이지용 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/cmm/sym/ccm/EgovCcmInsttCodeList" + * @throws Exception + */ + @RequestMapping(value="/sym/ccm/icr/getInsttCodeRecptnMainList.do") + public String selectInsttCodeRecptnMainList (@ModelAttribute("searchVO") InsttCodeRecptnVO searchVO + , ModelMap model + ) throws Exception { + /** pageing */ + searchVO.setRecordCountPerPage(6); + searchVO.setFirstIndex(0); + + List insttCodeRecptnList = insttCodeManageService.selectInsttCodeRecptnList(searchVO); + model.addAttribute("resultList", insttCodeRecptnList); + + int totCnt = insttCodeManageService.selectInsttCodeRecptnListTotCnt(searchVO); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnMainList"; + } + + /** + * Map 내용을 확인한다. + * @param commandMap + * @return + */ + public String printParameterMap(@RequestParam Map commandMap){ + String ret = ""; + for(Object key:commandMap.keySet()){ + Object value = commandMap.get(key); + + ret += "key:" + key.toString() + " value:" + value.toString(); + } + return ret; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/EgovCcmRdnmadZipManageService.java b/src/main/java/egovframework/com/sym/ccm/zip/service/EgovCcmRdnmadZipManageService.java new file mode 100644 index 0000000..315dcb7 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/EgovCcmRdnmadZipManageService.java @@ -0,0 +1,83 @@ +package egovframework.com.sym.ccm.zip.service; + +import java.io.InputStream; +import java.util.List; + + +/** + * + * 우편번호에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이기하 + * @since 2011.11.21 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *     수정일      	수정자           수정내용
+ *  -----------    --------    ---------------------------
+ *   2011.11.21		이기하           도로명주소 최초 생성
+ *
+ * 
+ */ +public interface EgovCcmRdnmadZipManageService { + + /** + * 우편번호를 삭제한다. + * @param zip + * @throws Exception + */ + void deleteZip(Zip zip) throws Exception; + + /** + * 우편번호 전체를 삭제한다. + * @throws Exception + */ + void deleteAllZip() throws Exception; + + /** + * 우편번호를 등록한다. + * @param zip + * @throws Exception + */ + void insertZip(Zip zip) throws Exception; + + /** + * 우편번호 엑셀파일을 등록한다. + * @param zip + * @throws Exception + */ + void insertExcelZip(InputStream file) throws Exception; + + /** + * 우편번호 상세항목을 조회한다. + * @param zip + * @return Zip(우편번호) + * @throws Exception + */ + Zip selectZipDetail(Zip zip) throws Exception; + + /** + * 우편번호 목록을 조회한다. + * @param searchVO + * @return List(우편번호 목록) + * @throws Exception + */ + List selectZipList(ZipVO searchVO) throws Exception; + + /** + * 우편번호 총 갯수를 조회한다. + * @param searchVO + * @return int(우편번호 총 갯수) + */ + int selectZipListTotCnt(ZipVO searchVO) throws Exception; + + /** + * 우편번호를 수정한다. + * @param zip + * @throws Exception + */ + void updateZip(Zip zip) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/EgovCcmZipManageService.java b/src/main/java/egovframework/com/sym/ccm/zip/service/EgovCcmZipManageService.java new file mode 100644 index 0000000..6a525d0 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/EgovCcmZipManageService.java @@ -0,0 +1,83 @@ +package egovframework.com.sym.ccm.zip.service; + +import java.io.InputStream; +import java.util.List; + + +/** + * + * 우편번호에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public interface EgovCcmZipManageService { + + /** + * 우편번호를 삭제한다. + * @param zip + * @throws Exception + */ + void deleteZip(Zip zip) throws Exception; + + /** + * 우편번호 전체를 삭제한다. + * @throws Exception + */ + void deleteAllZip() throws Exception; + + /** + * 우편번호를 등록한다. + * @param zip + * @throws Exception + */ + void insertZip(Zip zip) throws Exception; + + /** + * 우편번호 엑셀파일을 등록한다. + * @param zip + * @throws Exception + */ + void insertExcelZip(InputStream file) throws Exception; + + /** + * 우편번호 상세항목을 조회한다. + * @param zip + * @return Zip(우편번호) + * @throws Exception + */ + Zip selectZipDetail(Zip zip) throws Exception; + + /** + * 우편번호 목록을 조회한다. + * @param searchVO + * @return List(우편번호 목록) + * @throws Exception + */ + List selectZipList(ZipVO searchVO) throws Exception; + + /** + * 우편번호 총 갯수를 조회한다. + * @param searchVO + * @return int(우편번호 총 갯수) + */ + int selectZipListTotCnt(ZipVO searchVO) throws Exception; + + /** + * 우편번호를 수정한다. + * @param zip + * @throws Exception + */ + void updateZip(Zip zip) throws Exception; + +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/Zip.java b/src/main/java/egovframework/com/sym/ccm/zip/service/Zip.java new file mode 100644 index 0000000..6f3cc53 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/Zip.java @@ -0,0 +1,292 @@ +package egovframework.com.sym.ccm.zip.service; + +import java.io.Serializable; + +/** + * 우편번호 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.11.21  이기하          도로명주소 추가(rdmn, bdnbrMnnm, bdnbrSlno, buldNm, detailBuldNm)
+ *
+ * 
+ */ +public class Zip implements Serializable { + + private static final long serialVersionUID = -8767083970521429218L; + + /* + * 우편번호 + */ + private String zip = ""; + + /* + * 일련번호 + */ + private int sn = 0; + + /* + * 시도명 + */ + private String ctprvnNm = ""; + + /* + * 시군구명 + */ + private String signguNm = ""; + + /* + * 읍면동명 + */ + private String emdNm = ""; + + /* + * 리건물명 + */ + private String liBuldNm = ""; + + /* + * 도로명코드 + */ + private String rdmnCode = ""; + + /* + * 도로명 + */ + private String rdmn = ""; + + /* + * 건물번호본번 + */ + private String bdnbrMnnm = ""; + + /* + * 건물번호부번 + */ + private String bdnbrSlno = ""; + + /* + * 건물명 + */ + private String buldNm = ""; + + /* + * 상세건물명 + */ + private String detailBuldNm = ""; + + /* + * 번지동호 + */ + private String lnbrDongHo = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * zip attribute 를 리턴한다. + * @return String + */ + public String getZip() { + return zip; + } + + /** + * zip attribute 값을 설정한다. + * @param zip String + */ + public void setZip(String zip) { + this.zip = zip; + } + + /** + * sn attribute 를 리턴한다. + * @return int + */ + public int getSn() { + return sn; + } + + /** + * sn attribute 값을 설정한다. + * @param sn int + */ + public void setSn(int sn) { + this.sn = sn; + } + + /** + * ctprvnNm attribute 를 리턴한다. + * @return String + */ + public String getCtprvnNm() { + return ctprvnNm; + } + + /** + * ctprvnNm attribute 값을 설정한다. + * @param ctprvnNm String + */ + public void setCtprvnNm(String ctprvnNm) { + this.ctprvnNm = ctprvnNm; + } + + /** + * signguNm attribute 를 리턴한다. + * @return String + */ + public String getSignguNm() { + return signguNm; + } + + /** + * signguNm attribute 값을 설정한다. + * @param signguNm String + */ + public void setSignguNm(String signguNm) { + this.signguNm = signguNm; + } + + /** + * emdNm attribute 를 리턴한다. + * @return String + */ + public String getEmdNm() { + return emdNm; + } + + /** + * emdNm attribute 값을 설정한다. + * @param emdNm String + */ + public void setEmdNm(String emdNm) { + this.emdNm = emdNm; + } + + /** + * liBuldNm attribute 를 리턴한다. + * @return String + */ + public String getLiBuldNm() { + return liBuldNm; + } + + /** + * liBuldNm attribute 값을 설정한다. + * @param liBuldNm String + */ + public void setLiBuldNm(String liBuldNm) { + this.liBuldNm = liBuldNm; + } + + /** + * lnbrDongHo attribute 를 리턴한다. + * @return String + */ + public String getLnbrDongHo() { + return lnbrDongHo; + } + + /** + * lnbrDongHo attribute 값을 설정한다. + * @param lnbrDongHo String + */ + public void setLnbrDongHo(String lnbrDongHo) { + this.lnbrDongHo = lnbrDongHo; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + public String getRdmn() { + return rdmn; + } + + public void setRdmn(String rdmn) { + this.rdmn = rdmn; + } + + public String getBdnbrMnnm() { + return bdnbrMnnm; + } + + public void setBdnbrMnnm(String bdnbrMnnm) { + this.bdnbrMnnm = bdnbrMnnm; + } + + public String getBdnbrSlno() { + return bdnbrSlno; + } + + public void setBdnbrSlno(String bdnbrSlno) { + this.bdnbrSlno = bdnbrSlno; + } + + public String getBuldNm() { + return buldNm; + } + + public void setBuldNm(String buldNm) { + this.buldNm = buldNm; + } + + public String getDetailBuldNm() { + return detailBuldNm; + } + + public void setDetailBuldNm(String detailBuldNm) { + this.detailBuldNm = detailBuldNm; + } + + public String getRdmnCode() { + return rdmnCode; + } + + public void setRdmnCode(String rdmnCode) { + this.rdmnCode = rdmnCode; + } +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/ZipVO.java b/src/main/java/egovframework/com/sym/ccm/zip/service/ZipVO.java new file mode 100644 index 0000000..f29f98c --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/ZipVO.java @@ -0,0 +1,233 @@ +package egovframework.com.sym.ccm.zip.service; + +import java.io.Serializable; + +/** + * + * 우편번호 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.11.21  이기하          도로명주소 추가(searchList, searchCondition, searchCondition2)
+ *
+ * 
+ */ +public class ZipVO extends Zip implements Serializable { + + private static final long serialVersionUID = -1884618301732456348L; + + /** 일반주소와 도로명주소 구분 */ + private String searchList = ""; + + /** 일반주소 검색조건 */ + private String searchCondition = ""; + + /** 도로명주소 검색조건 */ + private String searchCondition2 = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchList attribute 를 리턴한다. + * @return String + */ + public String getSearchList() { + return searchList; + } + + /** + * searchList attribute 값을 설정한다. + * @param searchList String + */ + public void setSearchList(String searchList) { + this.searchList = searchList; + } + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getsearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setsearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition2() { + return searchCondition2; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition2(String searchCondition2) { + this.searchCondition2 = searchCondition2; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmExcelRdnmadZipMapping.java b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmExcelRdnmadZipMapping.java new file mode 100644 index 0000000..c527e8b --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmExcelRdnmadZipMapping.java @@ -0,0 +1,64 @@ +package egovframework.com.sym.ccm.zip.service.impl; + +import egovframework.com.sym.ccm.zip.service.Zip; + +import egovframework.rte.fdl.excel.EgovExcelMapping; +import egovframework.rte.fdl.excel.util.EgovExcelUtil; + +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.ss.usermodel.Row; + +/** + * + * Excel 우편번호 매핑 클래스 + * @author 공통서비스 개발팀 이기하 + * @since 2011.11.21 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *     수정일      	수정자           수정내용
+ *  -----------    --------    ---------------------------
+ *   2011.11.21		이기하           도로명주소 최초 생성
+ *
+ * 
+ */ +public class EgovCcmExcelRdnmadZipMapping extends EgovExcelMapping { + + /** + * 우편번호 엑셀파일 맵핑 + */ + @Override + public Object mappingColumn(Row row) { + HSSFCell cell0 = (HSSFCell) row.getCell(0); + HSSFCell cell1 = (HSSFCell) row.getCell(1); + HSSFCell cell2 = (HSSFCell) row.getCell(2); + HSSFCell cell3 = (HSSFCell) row.getCell(3); + HSSFCell cell4 = (HSSFCell) row.getCell(4); + HSSFCell cell5 = (HSSFCell) row.getCell(5); + HSSFCell cell6 = (HSSFCell) row.getCell(6); + HSSFCell cell7 = (HSSFCell) row.getCell(7); + HSSFCell cell8 = (HSSFCell) row.getCell(8); + HSSFCell cell9 = (HSSFCell) row.getCell(9); + HSSFCell cell10 = (HSSFCell) row.getCell(10); + + Zip vo = new Zip(); + + vo.setRdmnCode (EgovExcelUtil.getValue(cell0)); + vo.setSn (Integer.parseInt(EgovExcelUtil.getValue(cell1))); + vo.setCtprvnNm (EgovExcelUtil.getValue(cell2)); + vo.setSignguNm (EgovExcelUtil.getValue(cell3)); + vo.setRdmn (EgovExcelUtil.getValue(cell4)); + vo.setBdnbrMnnm (EgovExcelUtil.getValue(cell5)); + vo.setBdnbrSlno (EgovExcelUtil.getValue(cell6)); + vo.setZip (EgovExcelUtil.getValue(cell9)); + vo.setFrstRegisterId (EgovExcelUtil.getValue(cell10)); + + if (cell6 != null) {vo.setBuldNm (EgovExcelUtil.getValue(cell7));} + if (cell7 != null) {vo.setDetailBuldNm (EgovExcelUtil.getValue(cell8));} + + return vo; + } +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmExcelZipMapping.java b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmExcelZipMapping.java new file mode 100644 index 0000000..0deb1cd --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmExcelZipMapping.java @@ -0,0 +1,59 @@ +package egovframework.com.sym.ccm.zip.service.impl; + +import egovframework.com.sym.ccm.zip.service.Zip; + +import egovframework.rte.fdl.excel.EgovExcelMapping; +import egovframework.rte.fdl.excel.util.EgovExcelUtil; + +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.ss.usermodel.Row; + +/** + * + * Excel 우편번호 매핑 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class EgovCcmExcelZipMapping extends EgovExcelMapping { + + /** + * 우편번호 엑셀파일 맵핑 + */ + @Override + public Object mappingColumn(Row row) { + HSSFCell cell0 = (HSSFCell) row.getCell(0); + HSSFCell cell1 = (HSSFCell) row.getCell(1); + HSSFCell cell2 = (HSSFCell) row.getCell(2); + HSSFCell cell3 = (HSSFCell) row.getCell(3); + HSSFCell cell4 = (HSSFCell) row.getCell(4); + HSSFCell cell5 = (HSSFCell) row.getCell(5); + HSSFCell cell6 = (HSSFCell) row.getCell(6); + HSSFCell cell7 = (HSSFCell) row.getCell(7); + + Zip vo = new Zip(); + + vo.setZip (EgovExcelUtil.getValue(cell0)); + vo.setSn (Integer.parseInt(EgovExcelUtil.getValue(cell1))); + vo.setCtprvnNm (EgovExcelUtil.getValue(cell2)); + vo.setSignguNm (EgovExcelUtil.getValue(cell3)); + vo.setEmdNm (EgovExcelUtil.getValue(cell4)); + vo.setFrstRegisterId (EgovExcelUtil.getValue(cell7)); + + if (cell5 != null) {vo.setLiBuldNm (EgovExcelUtil.getValue(cell5));} + if (cell6 != null) {vo.setLnbrDongHo (EgovExcelUtil.getValue(cell6));} + + + return vo; + } +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmRdnmadZipServiceImpl.java b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmRdnmadZipServiceImpl.java new file mode 100644 index 0000000..a680d44 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmRdnmadZipServiceImpl.java @@ -0,0 +1,112 @@ +package egovframework.com.sym.ccm.zip.service.impl; + +import java.io.InputStream; +import java.util.List; + +import egovframework.com.sym.ccm.zip.service.EgovCcmRdnmadZipManageService; +import egovframework.com.sym.ccm.zip.service.Zip; +import egovframework.com.sym.ccm.zip.service.ZipVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import egovframework.rte.fdl.excel.EgovExcelService; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + + +/** + * + * 우편번호에 대한 서비스 구현클래스를 정의한다 + * @author 공통서비스 개발팀 이기하 + * @since 2011.11.21 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *     수정일      	수정자           수정내용
+ *  -----------    --------    ---------------------------
+ *   2011.11.21		이기하           도로명주소 최초 생성
+ *
+ * 
+ */ +@Service("RdnmadZipService") +public class EgovCcmRdnmadZipServiceImpl extends EgovAbstractServiceImpl implements EgovCcmRdnmadZipManageService { + + @Resource(name="RdnmadZipDAO") + private RdnmadZipDAO rdnmadZipDAO; + + @Resource(name = "excelRdnmadZipService") + private EgovExcelService excelRdnmadZipService; + + /** + * 우편번호를 삭제한다. + */ + @Override + public void deleteZip(Zip zip) throws Exception { + rdnmadZipDAO.deleteZip(zip); + } + + /** + * 우편번호 전체를 삭제한다. + */ + @Override + public void deleteAllZip() throws Exception { + rdnmadZipDAO.deleteAllZip(); + } + + /** + * 우편번호를 등록한다. + */ + @Override + public void insertZip(Zip zip) throws Exception { + rdnmadZipDAO.insertZip(zip); + } + + /** + * 우편번호 엑셀파일을 등록한다. + * @param zip + * @throws Exception + */ + @Override + public void insertExcelZip(InputStream file) throws Exception { + rdnmadZipDAO.insertExcelZip(); + excelRdnmadZipService.uploadExcel("RdnmadZipDAO.insertExcelZip", file, 1, 5000); + } + + /** + * 우편번호 상세항목을 조회한다. + */ + @Override + public Zip selectZipDetail(Zip zip) throws Exception { + Zip ret = rdnmadZipDAO.selectZipDetail(zip); + return ret; + } + + /** + * 우편번호 목록을 조회한다. + */ + @Override + public List selectZipList(ZipVO searchVO) throws Exception { + return rdnmadZipDAO.selectZipList(searchVO); + } + + /** + * 우편번호 총 갯수를 조회한다. + */ + @Override + public int selectZipListTotCnt(ZipVO searchVO) throws Exception { + return rdnmadZipDAO.selectZipListTotCnt(searchVO); + } + + /** + * 우편번호를 수정한다. + */ + @Override + public void updateZip(Zip zip) throws Exception { + rdnmadZipDAO.updateZip(zip); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmZipManageServiceImpl.java b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmZipManageServiceImpl.java new file mode 100644 index 0000000..8a97759 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/EgovCcmZipManageServiceImpl.java @@ -0,0 +1,113 @@ +package egovframework.com.sym.ccm.zip.service.impl; + +import java.io.InputStream; +import java.util.List; + +import egovframework.com.sym.ccm.zip.service.EgovCcmZipManageService; +import egovframework.com.sym.ccm.zip.service.Zip; +import egovframework.com.sym.ccm.zip.service.ZipVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import egovframework.rte.fdl.excel.EgovExcelService; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + + +/** + * + * 우편번호에 대한 서비스 구현클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.11.22  이기하          엑셀업로드 시작위치 수정(2 -> 1)
+ *
+ * 
+ */ +@Service("ZipManageService") +public class EgovCcmZipManageServiceImpl extends EgovAbstractServiceImpl implements EgovCcmZipManageService { + + @Resource(name="ZipManageDAO") + private ZipManageDAO zipManageDAO; + + @Resource(name = "excelZipService") + private EgovExcelService excelZipService; + + /** + * 우편번호를 삭제한다. + */ + @Override + public void deleteZip(Zip zip) throws Exception { + zipManageDAO.deleteZip(zip); + } + + /** + * 우편번호 전체를 삭제한다. + */ + @Override + public void deleteAllZip() throws Exception { + zipManageDAO.deleteAllZip(); + } + + /** + * 우편번호를 등록한다. + */ + @Override + public void insertZip(Zip zip) throws Exception { + zipManageDAO.insertZip(zip); + } + + /** + * 우편번호 엑셀파일을 등록한다. + * @param zip + * @throws Exception + */ + @Override + public void insertExcelZip(InputStream file) throws Exception { + zipManageDAO.insertExcelZip(); + excelZipService.uploadExcel("ZipManageDAO.insertExcelZip", file, 1, 5000); + } + + /** + * 우편번호 상세항목을 조회한다. + */ + @Override + public Zip selectZipDetail(Zip zip) throws Exception { + Zip ret = zipManageDAO.selectZipDetail(zip); + return ret; + } + + /** + * 우편번호 목록을 조회한다. + */ + @Override + public List selectZipList(ZipVO searchVO) throws Exception { + return zipManageDAO.selectZipList(searchVO); + } + + /** + * 우편번호 총 갯수를 조회한다. + */ + @Override + public int selectZipListTotCnt(ZipVO searchVO) throws Exception { + return zipManageDAO.selectZipListTotCnt(searchVO); + } + + /** + * 우편번호를 수정한다. + */ + @Override + public void updateZip(Zip zip) throws Exception { + zipManageDAO.updateZip(zip); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/impl/RdnmadZipDAO.java b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/RdnmadZipDAO.java new file mode 100644 index 0000000..af5e6d4 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/RdnmadZipDAO.java @@ -0,0 +1,105 @@ +package egovframework.com.sym.ccm.zip.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.ccm.zip.service.Zip; +import egovframework.com.sym.ccm.zip.service.ZipVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 우편번호에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이기하 + * @since 2011.11.21 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *     수정일      	수정자           수정내용
+ *  -----------    --------    ---------------------------
+ *   2011.11.21		이기하           도로명주소 최초 생성
+ *
+ * 
+ */ +@Repository("RdnmadZipDAO") +public class RdnmadZipDAO extends EgovComAbstractDAO { + + /** + * 우편번호를 삭제한다. + * @param zip + * @throws Exception + */ + public void deleteZip(Zip zip) throws Exception { + delete("RdnmadZipDAO.deleteZip", zip); + } + + /** + * 우편번호 전체를 삭제한다. + * @throws Exception + */ + public void deleteAllZip() throws Exception { + delete("RdnmadZipDAO.deleteAllZip", new Object()); + } + + /** + * 우편번호를 등록한다. + * @param zip + * @throws Exception + */ + public void insertZip(Zip zip) throws Exception { + insert("RdnmadZipDAO.insertZip", zip); + } + + /** + * 우편번호 엑셀파일을 등록한다. + * @param zip + * @throws Exception + */ + public void insertExcelZip() throws Exception { + delete("RdnmadZipDAO.deleteAllZip", new Object()); + } + + + /** + * 우편번호 상세항목을 조회한다. + * @param zip + * @return Zip(우편번호) + */ + public Zip selectZipDetail(Zip zip) throws Exception { + return (Zip) select("RdnmadZipDAO.selectZipDetail", zip); + } + + + /** + * 우편번호 목록을 조회한다. + * @param searchVO + * @return List(우편번호 목록) + * @throws Exception + */ + public List selectZipList(ZipVO searchVO) throws Exception { + return list("RdnmadZipDAO.selectZipList", searchVO); + } + + /** + * 우편번호 총 갯수를 조회한다. + * @param searchVO + * @return int(우편번호 총 갯수) + */ + public int selectZipListTotCnt(ZipVO searchVO) throws Exception { + return (Integer)select("RdnmadZipDAO.selectZipListTotCnt", searchVO); + } + + /** + * 우편번호를 수정한다. + * @param zip + * @throws Exception + */ + public void updateZip(Zip zip) throws Exception { + update("RdnmadZipDAO.updateZip", zip); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/service/impl/ZipManageDAO.java b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/ZipManageDAO.java new file mode 100644 index 0000000..e30feb2 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/service/impl/ZipManageDAO.java @@ -0,0 +1,105 @@ +package egovframework.com.sym.ccm.zip.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.sym.ccm.zip.service.Zip; +import egovframework.com.sym.ccm.zip.service.ZipVO; + +import org.springframework.stereotype.Repository; + +/** + * + * 우편번호에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +@Repository("ZipManageDAO") +public class ZipManageDAO extends EgovComAbstractDAO { + + /** + * 우편번호를 삭제한다. + * @param zip + * @throws Exception + */ + public void deleteZip(Zip zip) throws Exception { + delete("ZipManageDAO.deleteZip", zip); + } + + /** + * 우편번호 전체를 삭제한다. + * @throws Exception + */ + public void deleteAllZip() throws Exception { + delete("ZipManageDAO.deleteAllZip", new Object()); + } + + /** + * 우편번호를 등록한다. + * @param zip + * @throws Exception + */ + public void insertZip(Zip zip) throws Exception { + insert("ZipManageDAO.insertZip", zip); + } + + /** + * 우편번호 엑셀파일을 등록한다. + * @param zip + * @throws Exception + */ + public void insertExcelZip() throws Exception { + delete("ZipManageDAO.deleteAllZip", new Object()); + } + + + /** + * 우편번호 상세항목을 조회한다. + * @param zip + * @return Zip(우편번호) + */ + public Zip selectZipDetail(Zip zip) throws Exception { + return (Zip) select("ZipManageDAO.selectZipDetail", zip); + } + + + /** + * 우편번호 목록을 조회한다. + * @param searchVO + * @return List(우편번호 목록) + * @throws Exception + */ + public List selectZipList(ZipVO searchVO) throws Exception { + return list("ZipManageDAO.selectZipList", searchVO); + } + + /** + * 우편번호 총 갯수를 조회한다. + * @param searchVO + * @return int(우편번호 총 갯수) + */ + public int selectZipListTotCnt(ZipVO searchVO) throws Exception { + return (Integer)select("ZipManageDAO.selectZipListTotCnt", searchVO); + } + + /** + * 우편번호를 수정한다. + * @param zip + * @throws Exception + */ + public void updateZip(Zip zip) throws Exception { + update("ZipManageDAO.updateZip", zip); + } + +} diff --git a/src/main/java/egovframework/com/sym/ccm/zip/web/EgovCcmZipManageController.java b/src/main/java/egovframework/com/sym/ccm/zip/web/EgovCcmZipManageController.java new file mode 100644 index 0000000..6600a20 --- /dev/null +++ b/src/main/java/egovframework/com/sym/ccm/zip/web/EgovCcmZipManageController.java @@ -0,0 +1,376 @@ +package egovframework.com.sym.ccm.zip.web; + +import java.io.InputStream; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.util.EgovResourceCloseHelper; +import egovframework.com.sym.ccm.zip.service.EgovCcmRdnmadZipManageService; +import egovframework.com.sym.ccm.zip.service.EgovCcmZipManageService; +import egovframework.com.sym.ccm.zip.service.Zip; +import egovframework.com.sym.ccm.zip.service.ZipVO; + +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; +import org.springmodules.validation.commons.DefaultBeanValidator; + +/** + * + * 우편번호에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.08.26	 정진오		IncludedInfo annotation 추가
+ *	 2011.10.07	 이기하		보안취약점 수정(파일 업로드시 엑셀파일만 가능하도록 추가)
+ *	 2011.11.21	 이기하		도로명주소 추가(rdnmadZip)
+ *
+ * 
+ */ + +@Controller +public class EgovCcmZipManageController { + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovCcmZipManageController.class); + + @Resource(name = "ZipManageService") + private EgovCcmZipManageService zipManageService; + + @Resource(name = "RdnmadZipService") + private EgovCcmRdnmadZipManageService rdnmadZipService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Resource(name = "multipartResolver") + CommonsMultipartResolver mailmultipartResolver; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 우편번호 찾기 팝업 메인창을 호출한다. + * @param model + * @return "egovframework/com/sym/ccm/zip/EgovCcmZipSearchPopup" + * @throws Exception + */ + @RequestMapping(value = "/sym/ccm/zip/EgovCcmZipSearchPopup.do") + public String callNormalCalPopup(ModelMap model) throws Exception { + return "egovframework/com/sym/ccm/zip/EgovCcmZipSearchPopup"; + } + + /** + * 우편번호 찾기 목록을 조회한다. + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/zip/EgovCcmZipSearchList" + * @throws Exception + */ + @RequestMapping(value = "/sym/ccm/zip/EgovCcmZipSearchList.do") + public String selectZipSearchList(@ModelAttribute("searchVO") ZipVO searchVO, ModelMap model) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + String sList = ""; + + if (searchVO.getSearchList() != null && searchVO.getSearchList() != "") { + sList = searchVO.getSearchList().substring(0, 1); + } + model.addAttribute("searchList", sList); + + if (!sList.equals("2")) { + List CmmnCodeList = zipManageService.selectZipList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = zipManageService.selectZipListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + } else { + List CmmnCodeList = rdnmadZipService.selectZipList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = rdnmadZipService.selectZipListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + } + + return "egovframework/com/sym/ccm/zip/EgovCcmZipSearchList"; + } + + /** + * 우편번호를 삭제한다. + * @param loginVO + * @param zip + * @param model + * @return "forward:/sym/ccm/zip/EgovCcmZipList.do" + * @throws Exception + */ + @RequestMapping(value = "/sym/ccm/zip/EgovCcmZipRemove.do") + public String deleteZip(@ModelAttribute("loginVO") LoginVO loginVO, Zip zip, ZipVO searchVO, ModelMap model) throws Exception { + model.addAttribute("searchList", searchVO.getSearchList()); + if (searchVO.getSearchList().equals("1")) { + zipManageService.deleteZip(zip); + } else { + rdnmadZipService.deleteZip(zip); + } + return "forward:/sym/ccm/zip/EgovCcmZipList.do"; + } + + /** + * 우편번호를 등록한다. + * @param loginVO + * @param zip + * @param bindingResult + * @param model + * @return "egovframework/com/sym/ccm/zip/EgovCcmZipRegist" + * @throws Exception + */ + @RequestMapping(value = "/sym/ccm/zip/EgovCcmZipRegist.do") + public String insertZip(@ModelAttribute("loginVO") LoginVO loginVO, @ModelAttribute("zip") Zip zip, ZipVO searchVO, BindingResult bindingResult, ModelMap model) + throws Exception { + + model.addAttribute("searchList", searchVO.getSearchList()); + + if (zip.getZip() == null || zip.getZip().equals("")) { + + return "egovframework/com/sym/ccm/zip/EgovCcmZipRegist"; + } + + if (searchVO.getSearchList().equals("1")) { + beanValidator.validate(zip, bindingResult); + if (bindingResult.hasErrors()) { + return "egovframework/com/sym/ccm/zip/EgovCcmZipRegist"; + } + + zip.setFrstRegisterId(loginVO.getUniqId()); + zipManageService.insertZip(zip); + } else { + /*beanValidator.validate(zip, bindingResult); + if (bindingResult.hasErrors()){ + return "egovframework/com/sym/ccm/zip/EgovCcmZipRegist"; + }*/ + + zip.setFrstRegisterId(loginVO.getUniqId()); + rdnmadZipService.insertZip(zip); + } + return "forward:/sym/ccm/zip/EgovCcmZipList.do"; + } + + /** + * 엑셀파일을 업로드하여 우편번호를 등록한다. + * @param loginVO + * @param request + * @param commandMap + * @param model + * @return "egovframework/com/sym/ccm/zip/EgovCcmExcelZipRegist" + * @throws Exception + */ + @RequestMapping(value = "/sym/ccm/zip/EgovCcmExcelZipRegist.do") + public String insertExcelZip(@ModelAttribute("loginVO") LoginVO loginVO, final HttpServletRequest request, @RequestParam Map commandMap, ZipVO searchVO, Model model) + throws Exception { + model.addAttribute("searchList", searchVO.getSearchList()); + + String sCmd = commandMap.get("cmd") == null ? "" : (String) commandMap.get("cmd"); + if (sCmd.equals("")) { + return "egovframework/com/sym/ccm/zip/EgovCcmExcelZipRegist"; + } + + final MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; + final Map files = multiRequest.getFileMap(); + InputStream fis = null; + + //String sResult = ""; + + Iterator> itr = files.entrySet().iterator(); + MultipartFile file; + + while (itr.hasNext()) { + Entry entry = itr.next(); + + file = entry.getValue(); + if (!"".equals(file.getOriginalFilename())) { + // 업로드 파일에 대한 확장자를 체크 + if (file.getOriginalFilename().endsWith(".xls") || file.getOriginalFilename().endsWith(".xlsx") || file.getOriginalFilename().endsWith(".XLS") + || file.getOriginalFilename().endsWith(".XLSX")) { + + //zipManageService.deleteAllZip(); + //excelZipService.uploadExcel("ZipManageDAO.insertExcelZip", file.getInputStream(), 2); + try { + fis = file.getInputStream(); + if (searchVO.getSearchList().equals("1")) { + zipManageService.insertExcelZip(fis); + } else { + rdnmadZipService.insertExcelZip(fis); + } + } finally { + EgovResourceCloseHelper.close(fis); + } + + } else { + LOGGER.info("xls, xlsx 파일 타입만 등록이 가능합니다."); + return "egovframework/com/sym/ccm/zip/EgovCcmExcelZipRegist"; + } + // *********** 끝 *********** + + } + } + + return "forward:/sym/ccm/zip/EgovCcmZipList.do"; + } + + /** + * 우편번호 상세항목을 조회한다. + * @param loginVO + * @param zip + * @param model + * @return "egovframework/com/sym/ccm/zip/EgovCcmZipDetail" + * @throws Exception + */ + @RequestMapping(value = "/sym/ccm/zip/EgovCcmZipDetail.do") + public String selectZipDetail(@ModelAttribute("loginVO") LoginVO loginVO, Zip zip, ZipVO searchVO, ModelMap model) throws Exception { + if (searchVO.getSearchList().equals("1")) { + Zip vo = zipManageService.selectZipDetail(zip); + model.addAttribute("result", vo); + model.addAttribute("searchList", searchVO.getSearchList()); + } else { + Zip vo = rdnmadZipService.selectZipDetail(zip); + model.addAttribute("result", vo); + model.addAttribute("searchList", searchVO.getSearchList()); + } + + return "egovframework/com/sym/ccm/zip/EgovCcmZipDetail"; + } + + /** + * 우편번호 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/sym/ccm/zip/EgovCcmZipList" + * @throws Exception + */ + @IncludedInfo(name = "우편번호관리", listUrl = "/sym/ccm/zip/EgovCcmZipList.do", order = 1000, gid = 60) + @RequestMapping(value = "/sym/ccm/zip/EgovCcmZipList.do") + public String selectZipList(@ModelAttribute("loginVO") LoginVO loginVO, @ModelAttribute("searchVO") ZipVO searchVO, ModelMap model) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + if (!searchVO.getSearchList().equals("2")) { + List CmmnCodeList = zipManageService.selectZipList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = zipManageService.selectZipListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + } else { + List CmmnCodeList = rdnmadZipService.selectZipList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = rdnmadZipService.selectZipListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + } + + return "egovframework/com/sym/ccm/zip/EgovCcmZipList"; + } + + /** + * 우편번호를 수정한다. + * @param loginVO + * @param zip + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/sym/ccm/zip/EgovCcmZipModify" + * @throws Exception + */ + @RequestMapping(value = "/sym/ccm/zip/EgovCcmZipModify.do") + public String updateZip(@ModelAttribute("loginVO") LoginVO loginVO, @ModelAttribute("zip") Zip zip, ZipVO searchVO, BindingResult bindingResult, @RequestParam Map commandMap, + ModelMap model) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String) commandMap.get("cmd"); + model.addAttribute("searchList", searchVO.getSearchList()); + if (sCmd.equals("")) { + if (searchVO.getSearchList().equals("1")) { + Zip vo = zipManageService.selectZipDetail(zip); + model.addAttribute("zip", vo); + } else { + Zip vo = rdnmadZipService.selectZipDetail(zip); + model.addAttribute("zip", vo); + } + return "egovframework/com/sym/ccm/zip/EgovCcmZipModify"; + } else if (sCmd.equals("Modify")) { + if (searchVO.getSearchList().equals("1")) { + beanValidator.validate(zip, bindingResult); + if (bindingResult.hasErrors()) { + return "egovframework/com/sym/ccm/zip/EgovCcmZipModify"; + } + + zip.setLastUpdusrId(loginVO.getUniqId()); + zipManageService.updateZip(zip); + } else { + /*beanValidator.validate(zip, bindingResult); + if (bindingResult.hasErrors()){ + return "egovframework/com/sym/ccm/zip/EgovCcmZipModify"; + }*/ + + zip.setLastUpdusrId(loginVO.getUniqId()); + rdnmadZipService.updateZip(zip); + } + + return "forward:/sym/ccm/zip/EgovCcmZipList.do"; + } else { + return "forward:/sym/ccm/zip/EgovCcmZipList.do"; + } + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/uat/sso/filter/EgovSSOLoginFilter.java b/src/main/java/egovframework/com/uat/sso/filter/EgovSSOLoginFilter.java new file mode 100644 index 0000000..a4f09ed --- /dev/null +++ b/src/main/java/egovframework/com/uat/sso/filter/EgovSSOLoginFilter.java @@ -0,0 +1,146 @@ +package egovframework.com.uat.sso.filter; + +import java.io.IOException; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.uat.sso.service.EgovSSOService; +import egovframework.com.uat.uia.service.EgovLoginService; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.context.ApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +/** + * + * @author 공통서비스 개발팀 서준식 + * @since 2011. 8. 2. + * @version 1.0 + * @see + * + *
+ * 개정이력(Modification Information)
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011. 8. 2.    서준식        최초생성
+ *
+ *  
+ */ + +public class EgovSSOLoginFilter implements Filter { + + private FilterConfig config; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovSSOLoginFilter.class); + + public void destroy() { + } + + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + + ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext()); + EgovSSOService egovSSOService = null; + try { + egovSSOService = (EgovSSOService) act.getBean("egovSSOService"); + if (egovSSOService == null) { + LOGGER.error("Fail to create 'EgovSSOService' object"); + chain.doFilter(request, response); + return; + } + } catch (NoSuchBeanDefinitionException ex) { + LOGGER.error("No SSO ServiceImpl Class!"); + } + + EgovLoginService loginService = (EgovLoginService) act.getBean("loginService"); + + HttpServletRequest httpRequest = (HttpServletRequest) request; + HttpSession session = httpRequest.getSession(); + String isLocallyAuthenticated = (String) session.getAttribute("isLocallyAuthenticated"); + String isRemotelyAuthenticated = (String) session.getAttribute("isRemotelyAuthenticated"); + boolean isSSOLoggedOn = false; + + if (isLocallyAuthenticated != null && (isLocallyAuthenticated.equals("true"))) { + if (isRemotelyAuthenticated == null) { + + try { + //sso서버에 토큰 생성 + egovSSOService.requestIssueToken(request, response); + //로컬 인증 적용 여부 완료를 세션에 저장 + session.setAttribute("isLocallyAuthenticated", "true"); + //sso 인증 완료 여부를 세션에 저장 + session.setAttribute("isRemotelyAuthenticated", "true"); + + } catch (Exception ex) { + session.setAttribute("isRemotelyAuthenticated", "fail"); + LOGGER.debug("SSO Authentication fail : {}", ex.getMessage()); + } + + } + } else if (isLocallyAuthenticated == null) { + if (isRemotelyAuthenticated == null) { + //sso서버에 토큰이 존재하는지 체크함 + isSSOLoggedOn = egovSSOService.hasTokenInSSOServer(httpRequest, response); + if (isSSOLoggedOn) { + //서버에 토큰이 존재할 경우 로컬 인증을 위해 isRemotelyAuthenticated true로 변경 + session.setAttribute("isRemotelyAuthenticated", "true"); + + //로컬 DB인증을 위한 loginVO 객체를 세션에 저장 + session.setAttribute("loginVOForDBAuthentication", egovSSOService.getLoginVO(request, response)); + } + } + } + + chain.doFilter(request, response); + + isLocallyAuthenticated = (String) session.getAttribute("isLocallyAuthenticated"); + isRemotelyAuthenticated = (String) session.getAttribute("isRemotelyAuthenticated"); + + if (isLocallyAuthenticated != null && isLocallyAuthenticated.equals("true")) { + if (isRemotelyAuthenticated == null) { + + } + } else if (isLocallyAuthenticated == null) { + if (isRemotelyAuthenticated == null) { + + } else if (isRemotelyAuthenticated != null && isRemotelyAuthenticated.equals("true")) { + + try { + //세션 토큰 정보를 가지고 DB로부터 사용자 정보를 가져옴 + LoginVO loginVO = (LoginVO) session.getAttribute("loginVOForDBAuthentication"); + loginVO = loginService.actionLoginByEsntlId(loginVO); + if (loginVO != null && loginVO.getId() != null && !loginVO.getId().equals("")) { + //세션 로그인 + session.setAttribute("loginVO", loginVO); + + //로컬 인증결과 세션에 저장 + session.setAttribute("isLocallyAuthenticated", "true"); + } else { + LOGGER.debug("Local authentication by sso is failed"); + } + + } catch (Exception ex) { + //DB인증 예외가 발생할 경우 로그를 남기고 로컬인증을 시키지 않고 그대로 진행함. + LOGGER.debug("Local authentication by sso is failed : {}", ex.getMessage()); + } + + } + } + + } + + public void init(FilterConfig filterConfig) throws ServletException { + + this.config = filterConfig; + } +} diff --git a/src/main/java/egovframework/com/uat/sso/filter/EgovSSOLogoutFilter.java b/src/main/java/egovframework/com/uat/sso/filter/EgovSSOLogoutFilter.java new file mode 100644 index 0000000..5e71089 --- /dev/null +++ b/src/main/java/egovframework/com/uat/sso/filter/EgovSSOLogoutFilter.java @@ -0,0 +1,57 @@ +package egovframework.com.uat.sso.filter; + +import java.io.IOException; + +import egovframework.com.uat.sso.service.EgovSSOService; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.context.ApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +/** + * + * @author 공통서비스 개발팀 서준식 + * @since 2011. 8. 29. + * @version 1.0 + * @see + * + *
+ * 개정이력(Modification Information)
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011. 8. 29.    서준식        최초생성
+ *
+ *  
+ */ + +public class EgovSSOLogoutFilter implements Filter{ + private FilterConfig config; + + public void destroy() {} + + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + + ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext()); + EgovSSOService egovSSOService = (EgovSSOService) act.getBean("egovSSOService"); + + String returnURL = config.getInitParameter("returnURL"); + + ((HttpServletRequest)request).getSession().setAttribute("loginVO", null); + egovSSOService.ssoLogout(request, response, ((HttpServletRequest)request).getContextPath() + returnURL); + + } + + public void init(FilterConfig filterConfig) throws ServletException { + + this.config = filterConfig; + } +} diff --git a/src/main/java/egovframework/com/uat/sso/service/EgovSSOService.java b/src/main/java/egovframework/com/uat/sso/service/EgovSSOService.java new file mode 100644 index 0000000..c449de9 --- /dev/null +++ b/src/main/java/egovframework/com/uat/sso/service/EgovSSOService.java @@ -0,0 +1,61 @@ +package egovframework.com.uat.sso.service; + +import java.io.IOException; + +import egovframework.com.cmm.LoginVO; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + + +/** + * + * @author 공통서비스 개발팀 서준식 + * @since 2011. 8. 2. + * @version 1.0 + * @see + * + *
+ * 개정이력(Modification Information) 
+ * 
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011. 8. 2.    서준식        최초생성
+ *  
+ *  
+ */ + +public interface EgovSSOService { + + /** + * SSO 통합 인증 서버에 인증여부를 확인 하는 메서드 + * + */ + public boolean hasTokenInSSOServer(ServletRequest request, ServletResponse response); + + /** + * SSO 통합 인증 서버에 인증 토큰 생성을 요청하는 메서드 + * + */ + public void requestIssueToken(ServletRequest request, ServletResponse response) throws Exception ; + + + /** + * SSO 통합 인증 서버에 인증이 된 경우 인증 서버의 토큰을 활용하여 로컬 로그인을 처리하는 메서드 + * + */ + public void ssoLoginByServer(ServletRequest request, ServletResponse response) throws Exception; + + + /** + * 토큰 정보를 바탕으로 loginVO 객체를 생성하는 메서드 + * + */ + public LoginVO getLoginVO(ServletRequest request, ServletResponse response); + + /** + * SSO 통합 인증 서버에 글로벌 로그아웃(토큰 삭제)을 요청하는 메서드 + * + */ + public void ssoLogout(ServletRequest request, ServletResponse response, String returnURL) throws IOException; +} diff --git a/src/main/java/egovframework/com/uat/uap/filter/EgovLoginPolicyFilter.java b/src/main/java/egovframework/com/uat/uap/filter/EgovLoginPolicyFilter.java new file mode 100644 index 0000000..6740c4b --- /dev/null +++ b/src/main/java/egovframework/com/uat/uap/filter/EgovLoginPolicyFilter.java @@ -0,0 +1,117 @@ +package egovframework.com.uat.uap.filter; + +import java.io.IOException; + +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.uat.uap.service.EgovLoginPolicyService; +import egovframework.com.uat.uap.service.LoginPolicyVO; +import egovframework.com.utl.sim.service.EgovClntInfo; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +/** + * 로그인 정책 체크 필터 + * @author 공통서비스 개발팀 서준식 + * @since 2011.07.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011.07.01  서준식          최초 생성
+ *
+ *  
+ */ +public class EgovLoginPolicyFilter implements Filter { + + private FilterConfig config; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovLoginPolicyFilter.class); + + public void destroy() { + } + + /** + * IP를 이용해 로그인을 제한하는 메서든 + * @param request + * @param response + * @param chain + * @return void + * @exception IOException, ServletException + */ + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + + ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext()); + EgovLoginPolicyService egovLoginPolicyService = (EgovLoginPolicyService) act.getBean("egovLoginPolicyService"); + EgovMessageSource egovMessageSource = (EgovMessageSource) act.getBean("egovMessageSource"); + + HttpServletRequest httpRequest = (HttpServletRequest) request; + + String id = request.getParameter("id"); + //String password = request.getParameter("password"); + String userSe = request.getParameter("userSe"); + String userIp = ""; + + if (id == null || userSe == null) { + ((HttpServletResponse) response).sendRedirect(httpRequest.getContextPath() + "/uat/uia/egovLoginUsr.do"); + } + + // 1. LoginVO를 DB로 부터 가져오는 과정 + + try { + // 접속IP + userIp = EgovClntInfo.getClntIP((HttpServletRequest) request); + + boolean loginPolicyYn = true; + + LoginPolicyVO loginPolicyVO = new LoginPolicyVO(); + loginPolicyVO.setEmplyrId(id); + loginPolicyVO = egovLoginPolicyService.selectLoginPolicy(loginPolicyVO); + + if (loginPolicyVO == null) { + loginPolicyYn = true; + } else { + if (loginPolicyVO.getLmttAt().equals("Y")) { + if (!userIp.equals(loginPolicyVO.getIpInfo())) { + loginPolicyYn = false; + } + } + } + + if (loginPolicyYn) { + chain.doFilter(request, response); + + } else { + ((HttpServletRequest) request).setAttribute("message", egovMessageSource.getMessage("fail.common.login")); + ((HttpServletResponse) response).sendRedirect(httpRequest.getContextPath() + "/uat/uia/egovLoginUsr.do"); + } + + } catch (Exception e) { + LOGGER.error("Exception: {}", e.getClass().getName()); + LOGGER.error("Exception Message: {}", e.getMessage()); + ((HttpServletResponse) response).sendRedirect(httpRequest.getContextPath() + "/uat/uia/egovLoginUsr.do?login_error=1"); + } + } + + public void init(FilterConfig config) throws ServletException { + + this.config = config; + + } + +} diff --git a/src/main/java/egovframework/com/uat/uap/service/EgovLoginPolicyService.java b/src/main/java/egovframework/com/uat/uap/service/EgovLoginPolicyService.java new file mode 100644 index 0000000..7c904b4 --- /dev/null +++ b/src/main/java/egovframework/com/uat/uap/service/EgovLoginPolicyService.java @@ -0,0 +1,72 @@ +/** + * 개요 + * - 로그인정책에 대한 Service Interface를 정의한다. + * + * 상세내용 + * - 로그인정책에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. + * - 로그인정책의 조회기능은 목록조회, 상세조회로 구분된다. + * @author lee.m.j + * @version 1.0 + * @created 03-8-2009 오후 2:08:54 + *
+ * == 개정이력(Modification Information) ==
+ * 
+ *   수정일       수정자           수정내용
+ *  -------     --------    ---------------------------
+ *  2009.8.3    이문준     최초 생성
+ * 
+ */ + +package egovframework.com.uat.uap.service; + +import java.util.List; + + +public interface EgovLoginPolicyService { + + /** + * 로그인정책 목록을 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return List - 로그인정책 목록 + */ + public List selectLoginPolicyList(LoginPolicyVO loginPolicyVO) throws Exception; + + /** + * 로그인정책 목록 수를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return int + */ + public int selectLoginPolicyListTotCnt(LoginPolicyVO loginPolicyVO) throws Exception; + + /** + * 로그인정책 목록의 상세정보를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return LoginPolicyVO - 로그인정책 VO + */ + public LoginPolicyVO selectLoginPolicy(LoginPolicyVO loginPolicyVO) throws Exception; + + /** + * 로그인정책 정보를 신규로 등록한다. + * @param loginPolicy - 로그인정책 model + */ + public void insertLoginPolicy(LoginPolicy loginPolicy) throws Exception; + + /** + * 기 등록된 로그인정책 정보를 수정한다. + * @param loginPolicy - 로그인정책 model + */ + public void updateLoginPolicy(LoginPolicy loginPolicy) throws Exception; + + /** + * 기 등록된 로그인정책 정보를 삭제한다. + * @param loginPolicy - 로그인정책 model + */ + public void deleteLoginPolicy(LoginPolicy loginPolicy) throws Exception; + + /** + * 로그인정책에 대한 현재 반영되어 있는 결과를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return LoginPolicyVO - 로그인정책 VO + */ + public LoginPolicyVO selectLoginPolicyResult(LoginPolicyVO loginPolicyVO) throws Exception; +} diff --git a/src/main/java/egovframework/com/uat/uap/service/LoginPolicy.java b/src/main/java/egovframework/com/uat/uap/service/LoginPolicy.java new file mode 100644 index 0000000..bebbf78 --- /dev/null +++ b/src/main/java/egovframework/com/uat/uap/service/LoginPolicy.java @@ -0,0 +1,174 @@ +/** + * 개요 + * - 로그인정책에 대한 model 클래스를 정의한다. + * + * 상세내용 + * - 로그인정책정보의 사용자ID, IP정보, 중복허용여부, 제한여부 항목을 관리한다. + * @author lee.m.j + * @version 1.0 + * @created 03-8-2009 오후 2:08:53 + *
+ * == 개정이력(Modification Information) ==
+ * 
+ *   수정일       수정자           수정내용
+ *  -------     --------    ---------------------------
+ *  2009.8.3    이문준     최초 생성
+ * 
+ */ + +package egovframework.com.uat.uap.service; + +import egovframework.com.cmm.ComDefaultVO; + +public class LoginPolicy extends ComDefaultVO { + + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 사용자 ID + */ + private String emplyrId; + /** + * 사용자 명 + */ + private String emplyrNm; + /** + * 사용자 구분 + */ + private String emplyrSe; + /** + * IP정보 + */ + private String ipInfo; + /** + * 중복허용여부 + */ + private String dplctPermAt; + /** + * 제한여부 + */ + private String lmttAt; + /** + * 등록자 ID + */ + private String userId; + /** + * 등록일시 + */ + private String regDate; + /** + * 등록여부 + */ + private String regYn; + + /** + * @return the emplyrId + */ + public String getEmplyrId() { + return emplyrId; + } + /** + * @param emplyrId the emplyrId to set + */ + public void setEmplyrId(String emplyrId) { + this.emplyrId = emplyrId; + } + /** + * @return the emplyrNm + */ + public String getEmplyrNm() { + return emplyrNm; + } + /** + * @param emplyrNm the emplyrNm to set + */ + public void setEmplyrNm(String emplyrNm) { + this.emplyrNm = emplyrNm; + } + /** + * @return the emplyrSe + */ + public String getEmplyrSe() { + return emplyrSe; + } + /** + * @param emplyrSe the emplyrSe to set + */ + public void setEmplyrSe(String emplyrSe) { + this.emplyrSe = emplyrSe; + } + /** + * @return the ipInfo + */ + public String getIpInfo() { + return ipInfo; + } + /** + * @param ipInfo the ipInfo to set + */ + public void setIpInfo(String ipInfo) { + this.ipInfo = ipInfo; + } + /** + * @return the dplctPermAt + */ + public String getDplctPermAt() { + return dplctPermAt; + } + /** + * @param dplctPermAt the dplctPermAt to set + */ + public void setDplctPermAt(String dplctPermAt) { + this.dplctPermAt = dplctPermAt; + } + /** + * @return the lmttAt + */ + public String getLmttAt() { + return lmttAt; + } + /** + * @param lmttAt the lmttAt to set + */ + public void setLmttAt(String lmttAt) { + this.lmttAt = lmttAt; + } + /** + * @return the userId + */ + public String getUserId() { + return userId; + } + /** + * @param userId the userId to set + */ + public void setUserId(String userId) { + this.userId = userId; + } + /** + * @return the regDate + */ + public String getRegDate() { + return regDate; + } + /** + * @param regDate the regDate to set + */ + public void setRegDate(String regDate) { + this.regDate = regDate; + } + /** + * @return the regYn + */ + public String getRegYn() { + return regYn; + } + /** + * @param regYn the regYn to set + */ + public void setRegYn(String regYn) { + this.regYn = regYn; + } +} diff --git a/src/main/java/egovframework/com/uat/uap/service/LoginPolicyVO.java b/src/main/java/egovframework/com/uat/uap/service/LoginPolicyVO.java new file mode 100644 index 0000000..8019840 --- /dev/null +++ b/src/main/java/egovframework/com/uat/uap/service/LoginPolicyVO.java @@ -0,0 +1,64 @@ +/** + * 개요 + * - 로그인정책에 대한 VO 클래스를 정의한다. + * + * 상세내용 + * - 로그인정책정보의 목록 항목을 관리한다. + * @author lee.m.j + * @version 1.0 + * @created 03-8-2009 오후 2:08:55 + *
+ * == 개정이력(Modification Information) ==
+ * 
+ *   수정일       수정자           수정내용
+ *  -------     --------    ---------------------------
+ *  2009.8.3    이문준     최초 생성
+ * 
+ */ + +package egovframework.com.uat.uap.service; + +import java.util.List; + +public class LoginPolicyVO extends LoginPolicy { + + /** + * serialVersionUID + */ + private static final long serialVersionUID = 1L; + /** + * 로그인 정책 목록 + */ + List loginPolicyList; + /** + * 삭제 여부 + */ + String [] delYn; + + /** + * @return the loginPolicyList + */ + public List getLoginPolicyList() { + return loginPolicyList; + } + /** + * @param loginPolicyList the loginPolicyList to set + */ + public void setLoginPolicyList(List loginPolicyList) { + this.loginPolicyList = loginPolicyList; + } + /** + * @return the delYn + */ + public String[] getDelYn() { + return delYn; + } + /** + * @param delYn the delYn to set + */ + public void setDelYn(String[] delYn) { + this.delYn = delYn; + } + + +} diff --git a/src/main/java/egovframework/com/uat/uap/service/impl/EgovLoginPolicyServiceImpl.java b/src/main/java/egovframework/com/uat/uap/service/impl/EgovLoginPolicyServiceImpl.java new file mode 100644 index 0000000..8711e5b --- /dev/null +++ b/src/main/java/egovframework/com/uat/uap/service/impl/EgovLoginPolicyServiceImpl.java @@ -0,0 +1,100 @@ +/** + * 개요 + * - 로그인정책에 대한 ServiceImpl 클래스를 정의한다. + * + * 상세내용 + * - 로그인정책에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. + * - 로그인정책의 조회기능은 목록조회, 상세조회로 구분된다. + * @author lee.m.j + * @version 1.0 + * @created 03-8-2009 오후 2:08:54 + *
+ * == 개정이력(Modification Information) ==
+ * 
+ *   수정일       수정자           수정내용
+ *  -------     --------    ---------------------------
+ *  2009.8.3    이문준     최초 생성
+ * 
+ */ + +package egovframework.com.uat.uap.service.impl; + +import java.util.List; + +import egovframework.com.uat.uap.service.EgovLoginPolicyService; +import egovframework.com.uat.uap.service.LoginPolicy; +import egovframework.com.uat.uap.service.LoginPolicyVO; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("egovLoginPolicyService") +public class EgovLoginPolicyServiceImpl extends EgovAbstractServiceImpl implements EgovLoginPolicyService { + + @Resource(name="loginPolicyDAO") + LoginPolicyDAO loginPolicyDAO; + + /** + * 로그인정책 목록을 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return List - 로그인정책 목록 + */ + public List selectLoginPolicyList(LoginPolicyVO loginPolicyVO) throws Exception { + return loginPolicyDAO.selectLoginPolicyList(loginPolicyVO); + } + + /** + * 로그인정책 목록 수를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return int + */ + public int selectLoginPolicyListTotCnt(LoginPolicyVO loginPolicyVO) throws Exception { + return loginPolicyDAO.selectLoginPolicyListTotCnt(loginPolicyVO); + } + + /** + * 로그인정책 목록의 상세정보를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return LoginPolicyVO - 로그인정책 VO + */ + public LoginPolicyVO selectLoginPolicy(LoginPolicyVO loginPolicyVO) throws Exception { + return loginPolicyDAO.selectLoginPolicy(loginPolicyVO); + } + + /** + * 로그인정책 정보를 신규로 등록한다. + * @param loginPolicy - 로그인정책 model + */ + public void insertLoginPolicy(LoginPolicy loginPolicy) throws Exception { + loginPolicyDAO.insertLoginPolicy(loginPolicy); + } + + /** + * 기 등록된 로그인정책 정보를 수정한다. + * @param loginPolicy - 로그인정책 model + */ + public void updateLoginPolicy(LoginPolicy loginPolicy) throws Exception { + loginPolicyDAO.updateLoginPolicy(loginPolicy); + } + + /** + * 기 등록된 로그인정책 정보를 삭제한다. + * @param loginPolicy - 로그인정책 model + */ + public void deleteLoginPolicy(LoginPolicy loginPolicy) throws Exception { + loginPolicyDAO.deleteLoginPolicy(loginPolicy); + } + + /** + * 로그인정책에 대한 현재 반영되어 있는 결과를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return LoginPolicyVO - 로그인정책 VO + */ + public LoginPolicyVO selectLoginPolicyResult(LoginPolicyVO loginPolicyVO) throws Exception { + return loginPolicyDAO.selectLoginPolicyResult(loginPolicyVO); + } + +} diff --git a/src/main/java/egovframework/com/uat/uap/service/impl/LoginPolicyDAO.java b/src/main/java/egovframework/com/uat/uap/service/impl/LoginPolicyDAO.java new file mode 100644 index 0000000..a98f88d --- /dev/null +++ b/src/main/java/egovframework/com/uat/uap/service/impl/LoginPolicyDAO.java @@ -0,0 +1,93 @@ +/** + * 개요 + * - 로그인정책에 대한 DAO 클래스를 정의한다. + * + * 상세내용 + * - 로그인정책에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. + * - 로그인정책의 조회기능은 목록조회, 상세조회로 구분된다. + * @author lee.m.j + * @version 1.0 + * @created 03-8-2009 오후 2:08:54 + *
+ * == 개정이력(Modification Information) ==
+ * 
+ *   수정일       수정자           수정내용
+ *  -------     --------    ---------------------------
+ *  2009.8.3    이문준     최초 생성
+ * 
+ */ + +package egovframework.com.uat.uap.service.impl; + +import java.util.List; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.uat.uap.service.LoginPolicy; +import egovframework.com.uat.uap.service.LoginPolicyVO; + +import org.springframework.stereotype.Repository; + +@Repository("loginPolicyDAO") +public class LoginPolicyDAO extends EgovComAbstractDAO { + + /** + * 로그인정책 목록을 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return List - 로그인정책 목록 + */ + @SuppressWarnings("unchecked") + public List selectLoginPolicyList(LoginPolicyVO loginPolicyVO) throws Exception { + return (List) list("loginPolicyDAO.selectLoginPolicyList", loginPolicyVO); + } + + /** + * 로그인정책 목록 수를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return int + */ + public int selectLoginPolicyListTotCnt(LoginPolicyVO loginPolicyVO) throws Exception { + return (Integer)select("loginPolicyDAO.selectLoginPolicyListTotCnt", loginPolicyVO); + } + + /** + * 로그인정책 목록의 상세정보를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return LoginPolicyVO - 로그인정책 VO + */ + public LoginPolicyVO selectLoginPolicy(LoginPolicyVO loginPolicyVO) throws Exception { + return (LoginPolicyVO)select("loginPolicyDAO.selectLoginPolicy", loginPolicyVO); + } + + /** + * 로그인정책 정보를 신규로 등록한다. + * @param loginPolicy - 로그인정책 model + */ + public void insertLoginPolicy(LoginPolicy loginPolicy) throws Exception { + insert("loginPolicyDAO.insertLoginPolicy", loginPolicy); + } + + /** + * 기 등록된 로그인정책 정보를 수정한다. + * @param loginPolicy - 로그인정책 model + */ + public void updateLoginPolicy(LoginPolicy loginPolicy) throws Exception { + update("loginPolicyDAO.updateLoginPolicy", loginPolicy); + } + + /** + * 기 등록된 로그인정책 정보를 삭제한다. + * @param loginPolicy - 로그인정책 model + */ + public void deleteLoginPolicy(LoginPolicy loginPolicy) throws Exception { + delete("loginPolicyDAO.deleteLoginPolicy", loginPolicy); + } + + /** + * 로그인정책에 대한 현재 반영되어 있는 결과를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return LoginPolicyVO - 로그인정책 VO + */ + public LoginPolicyVO selectLoginPolicyResult(LoginPolicyVO loginPolicyVO) throws Exception { + return null; + } +} diff --git a/src/main/java/egovframework/com/uat/uap/web/EgovLoginPolicyController.java b/src/main/java/egovframework/com/uat/uap/web/EgovLoginPolicyController.java new file mode 100644 index 0000000..e4ee476 --- /dev/null +++ b/src/main/java/egovframework/com/uat/uap/web/EgovLoginPolicyController.java @@ -0,0 +1,210 @@ +/** + * 개요 + * - 로그인정책에 대한 controller 클래스를 정의한다. + * + * 상세내용 + * - 로그인정책에 대한 등록, 수정, 삭제, 조회, 반영확인 기능을 제공한다. + * - 로그인정책의 조회기능은 목록조회, 상세조회로 구분된다. + * @author lee.m.j + * @version 1.0 + * @created 03-8-2009 오후 2:08:53 + *
+ * == 개정이력(Modification Information) ==
+ * 
+ *   수정일       수정자           수정내용
+ *  -------     --------    ---------------------------
+ *  2009.8.3    이문준     최초 생성
+ *  2011.8.26	정진오			IncludedInfo annotation 추가
+ * 
+ */ + +package egovframework.com.uat.uap.web; + +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.com.uat.uap.service.EgovLoginPolicyService; +import egovframework.com.uat.uap.service.LoginPolicy; +import egovframework.com.uat.uap.service.LoginPolicyVO; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springmodules.validation.commons.DefaultBeanValidator; + + +@Controller +public class EgovLoginPolicyController { + + + + + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + @Resource(name="egovLoginPolicyService") + EgovLoginPolicyService egovLoginPolicyService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 로그인정책 목록 조회화면으로 이동한다. + * @return String - 리턴 Url + */ + @RequestMapping("/uat/uap/selectLoginPolicyListView.do") + public String selectLoginPolicyListView() throws Exception { + return "egovframework/com/uat/uap/EgovLoginPolicyList"; + } + + /** + * 로그인정책 목록을 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return String - 리턴 Url + */ + @IncludedInfo(name="로그인정책관리", order = 30 ,gid = 10) + @RequestMapping("/uat/uap/selectLoginPolicyList.do") + public String selectLoginPolicyList(@ModelAttribute("loginPolicyVO") LoginPolicyVO loginPolicyVO, + ModelMap model) throws Exception { + + /** paging */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(loginPolicyVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(loginPolicyVO.getPageUnit()); + paginationInfo.setPageSize(loginPolicyVO.getPageSize()); + + loginPolicyVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + loginPolicyVO.setLastIndex(paginationInfo.getLastRecordIndex()); + loginPolicyVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + loginPolicyVO.setLoginPolicyList(egovLoginPolicyService.selectLoginPolicyList(loginPolicyVO)); + model.addAttribute("loginPolicyList", loginPolicyVO.getLoginPolicyList()); + + int totCnt = egovLoginPolicyService.selectLoginPolicyListTotCnt(loginPolicyVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + return "egovframework/com/uat/uap/EgovLoginPolicyList"; + } + + /** + * 로그인정책 목록의 상세정보를 조회한다. + * @param loginPolicyVO - 로그인정책 VO + * @return String - 리턴 Url + */ + @RequestMapping("/uat/uap/getLoginPolicy.do") + public String selectLoginPolicy(@RequestParam("emplyrId") String emplyrId, + @ModelAttribute("loginPolicyVO") LoginPolicyVO loginPolicyVO, + ModelMap model) throws Exception { + + loginPolicyVO.setEmplyrId(emplyrId); + + model.addAttribute("loginPolicy", egovLoginPolicyService.selectLoginPolicy(loginPolicyVO)); + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + LoginPolicyVO vo = (LoginPolicyVO)model.get("loginPolicy"); + + if(vo.getRegYn().equals("N")) + return "egovframework/com/uat/uap/EgovLoginPolicyRegist"; + else + return "egovframework/com/uat/uap/EgovLoginPolicyUpdt"; + } + + /** + * 로그인정책 정보 등록화면으로 이동한다. + * @param loginPolicy - 로그인정책 model + * @return String - 리턴 Url + */ + @RequestMapping("/uat/uap/addLoginPolicyView.do") + public String insertLoginPolicyView(@RequestParam("emplyrId") String emplyrId, + @ModelAttribute("loginPolicyVO") LoginPolicyVO loginPolicyVO, + ModelMap model) throws Exception { + + loginPolicyVO.setEmplyrId(emplyrId); + + model.addAttribute("loginPolicy", egovLoginPolicyService.selectLoginPolicy(loginPolicyVO)); + model.addAttribute("message", egovMessageSource.getMessage("success.common.select")); + + return "egovframework/com/uat/uap/EgovLoginPolicyRegist"; + } + + /** + * 로그인정책 정보를 신규로 등록한다. + * @param loginPolicy - 로그인정책 model + * @return String - 리턴 Url + */ + @RequestMapping("/uat/uap/addLoginPolicy.do") + public String insertLoginPolicy(@ModelAttribute("loginPolicy") LoginPolicy loginPolicy, + BindingResult bindingResult, + ModelMap model) throws Exception { + + beanValidator.validate(loginPolicy, bindingResult); //validation 수행 + + if (bindingResult.hasErrors()) { + model.addAttribute("loginPolicyVO", loginPolicy); + return "egovframework/com/uat/uap/EgovLoginPolicyRegist"; + } else { + + LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + loginPolicy.setUserId(user.getId()); + + egovLoginPolicyService.insertLoginPolicy(loginPolicy); + model.addAttribute("message", egovMessageSource.getMessage("success.common.update")); + + return "forward:/uat/uap/getLoginPolicy.do"; + } + } + + /** + * 기 등록된 로그인정책 정보를 수정한다. + * @param loginPolicy - 로그인정책 model + * @return String - 리턴 Url + */ + @RequestMapping("/uat/uap/updtLoginPolicy.do") + public String updateLoginPolicy(@ModelAttribute("loginPolicy") LoginPolicy loginPolicy, + BindingResult bindingResult, + ModelMap model) throws Exception { + + beanValidator.validate(loginPolicy, bindingResult); //validation 수행 + + if (bindingResult.hasErrors()) { + model.addAttribute("loginPolicyVO", loginPolicy); + return "egovframework/com/uat/uap/EgovLoginPolicyUpdt"; + } else { + LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + loginPolicy.setUserId(user.getId()); + + egovLoginPolicyService.updateLoginPolicy(loginPolicy); + model.addAttribute("message", egovMessageSource.getMessage("success.common.update")); + + return "forward:/uat/uap/selectLoginPolicyList.do"; + } + } + + /** + * 기 등록된 로그인정책 정보를 삭제한다. + * @param loginPolicy - 로그인정책 model + * @return String - 리턴 Url + */ + @RequestMapping("/uat/uap/removeLoginPolicy.do") + public String deleteLoginPolicy(@ModelAttribute("loginPolicy") LoginPolicy loginPolicy, + ModelMap model) throws Exception { + + egovLoginPolicyService.deleteLoginPolicy(loginPolicy); + + model.addAttribute("message", egovMessageSource.getMessage("success.common.delete")); + return "forward:/uat/uap/selectLoginPolicyList.do"; + } + + +} diff --git a/src/main/java/egovframework/com/uat/uia/service/EgovLoginService.java b/src/main/java/egovframework/com/uat/uia/service/EgovLoginService.java new file mode 100644 index 0000000..52b2ec9 --- /dev/null +++ b/src/main/java/egovframework/com/uat/uia/service/EgovLoginService.java @@ -0,0 +1,63 @@ +package egovframework.com.uat.uia.service; + +import egovframework.com.cmm.LoginVO; + +/** + * 일반 로그인, 인증서 로그인을 처리하는 비즈니스 인터페이스 클래스 + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.06 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ * 
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2009.03.06  박지욱          최초 생성 
+ *  2011.08.26  서준식          EsntlId를 이용한 로그인 추가
+ *  
+ */ +public interface EgovLoginService { + + /** + * 2011.08.26 + * EsntlId를 이용한 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + public LoginVO actionLoginByEsntlId(LoginVO vo) throws Exception; + + /** + * 일반 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + LoginVO actionLogin(LoginVO vo) throws Exception; + + /** + * 인증서 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + LoginVO actionCrtfctLogin(LoginVO vo) throws Exception; + + /** + * 아이디를 찾는다. + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + LoginVO searchId(LoginVO vo) throws Exception; + + /** + * 비밀번호를 찾는다. + * @param vo LoginVO + * @return boolean + * @exception Exception + */ + boolean searchPassword(LoginVO vo) throws Exception; +} diff --git a/src/main/java/egovframework/com/uat/uia/service/impl/EgovLoginServiceImpl.java b/src/main/java/egovframework/com/uat/uia/service/impl/EgovLoginServiceImpl.java new file mode 100644 index 0000000..85d09fc --- /dev/null +++ b/src/main/java/egovframework/com/uat/uia/service/impl/EgovLoginServiceImpl.java @@ -0,0 +1,162 @@ +package egovframework.com.uat.uia.service.impl; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.uat.uia.service.EgovLoginService; +import egovframework.com.utl.fcc.service.EgovNumberUtil; +import egovframework.com.utl.fcc.service.EgovStringUtil; +import egovframework.com.utl.sim.service.EgovFileScrty; +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +/** + * 일반 로그인, 인증서 로그인을 처리하는 비즈니스 구현 클래스 + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.06 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2009.03.06  박지욱          최초 생성
+ *  2011.08.26  서준식          EsntlId를 이용한 로그인 추가
+ *  2014.12.08	이기하			암호화방식 변경(EgovFileScrty.encryptPassword)
+ *  
+ */ +@Service("loginService") +public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements EgovLoginService { + + @Resource(name="loginDAO") + private LoginDAO loginDAO; + + /** + * 2011.08.26 + * EsntlId를 이용한 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + @Override + public LoginVO actionLoginByEsntlId(LoginVO vo) throws Exception { + + LoginVO loginVO = loginDAO.actionLoginByEsntlId(vo); + + // 3. 결과를 리턴한다. + if (loginVO != null && !loginVO.getId().equals("") && !loginVO.getPassword().equals("")) { + return loginVO; + } else { + loginVO = new LoginVO(); + } + + return loginVO; + } + + + /** + * 일반 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + @Override + public LoginVO actionLogin(LoginVO vo) throws Exception { + + // 1. 입력한 비밀번호를 암호화한다. + String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId()); + vo.setPassword(enpassword); + + // 2. 아이디와 암호화된 비밀번호가 DB와 일치하는지 확인한다. + LoginVO loginVO = loginDAO.actionLogin(vo); + + // 3. 결과를 리턴한다. + if (loginVO != null && !loginVO.getId().equals("") && !loginVO.getPassword().equals("")) { + return loginVO; + } else { + loginVO = new LoginVO(); + } + + return loginVO; + } + + /** + * 인증서 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + @Override + public LoginVO actionCrtfctLogin(LoginVO vo) throws Exception { + + // 1. DN값으로 ID, PW를 조회한다. + LoginVO loginVO = loginDAO.actionCrtfctLogin(vo); + + // 3. 결과를 리턴한다. + if (loginVO != null && !loginVO.getId().equals("") && !loginVO.getPassword().equals("")) { + return loginVO; + } else { + loginVO = new LoginVO(); + } + + return loginVO; + } + + /** + * 아이디를 찾는다. + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + @Override + public LoginVO searchId(LoginVO vo) throws Exception { + + // 1. 이름, 이메일주소가 DB와 일치하는 사용자 ID를 조회한다. + LoginVO loginVO = loginDAO.searchId(vo); + + // 2. 결과를 리턴한다. + if (loginVO != null && !loginVO.getId().equals("")) { + return loginVO; + } else { + loginVO = new LoginVO(); + } + + return loginVO; + } + + /** + * 비밀번호를 찾는다. + * @param vo LoginVO + * @return boolean + * @exception Exception + */ + @Override + public boolean searchPassword(LoginVO vo) throws Exception { + boolean result = true; + LoginVO loginVO = this.loginDAO.searchPassword(vo); + if (loginVO == null || loginVO.getPassword() == null || loginVO.getPassword().equals("")) + return false; + String newpassword = ""; + for (int i = 1; i <= 8; i++) { + if (i % 3 != 0) { + newpassword = String.valueOf(newpassword) + EgovStringUtil.getRandomStr('a', 'z'); + } else { + newpassword = String.valueOf(newpassword) + EgovNumberUtil.getRandomNum(0, 9); + } + } + LoginVO pwVO = new LoginVO(); + String enpassword = EgovFileScrty.encryptPassword(newpassword, vo.getId()); + pwVO.setId(vo.getId()); + pwVO.setPassword(enpassword); + pwVO.setUserSe(vo.getUserSe()); + this.loginDAO.updatePassword(pwVO); + return result; + } +} diff --git a/src/main/java/egovframework/com/uat/uia/service/impl/LoginDAO.java b/src/main/java/egovframework/com/uat/uia/service/impl/LoginDAO.java new file mode 100644 index 0000000..8adf5b3 --- /dev/null +++ b/src/main/java/egovframework/com/uat/uia/service/impl/LoginDAO.java @@ -0,0 +1,89 @@ +package egovframework.com.uat.uia.service.impl; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; + +import org.springframework.stereotype.Repository; + +/** + * 일반 로그인, 인증서 로그인을 처리하는 DAO 클래스 + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.06 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2009.03.06  박지욱          최초 생성
+ *  2011.08.26  서준식          EsntlId를 이용한 로그인 추가
+ *  
+ */ +@Repository("loginDAO") +public class LoginDAO extends EgovComAbstractDAO { + + /** + * 2011.08.26 + * EsntlId를 이용한 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + public LoginVO actionLoginByEsntlId(LoginVO vo) throws Exception { + return (LoginVO)select("loginDAO.ssoLoginByEsntlId", vo); + } + + /** + * 일반 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + public LoginVO actionLogin(LoginVO vo) throws Exception { + return (LoginVO)select("loginDAO.actionLogin", vo); + } + + /** + * 인증서 로그인을 처리한다 + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + public LoginVO actionCrtfctLogin(LoginVO vo) throws Exception { + + return (LoginVO)select("loginDAO.actionCrtfctLogin", vo); + } + + /** + * 아이디를 찾는다. + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + public LoginVO searchId(LoginVO vo) throws Exception { + + return (LoginVO)select("loginDAO.searchId", vo); + } + + /** + * 비밀번호를 찾는다. + * @param vo LoginVO + * @return LoginVO + * @exception Exception + */ + public LoginVO searchPassword(LoginVO vo) throws Exception { + + return (LoginVO)select("loginDAO.searchPassword", vo); + } + + /** + * 변경된 비밀번호를 저장한다. + * @param vo LoginVO + * @exception Exception + */ + public void updatePassword(LoginVO vo) throws Exception { + update("loginDAO.updatePassword", vo); + } +} diff --git a/src/main/java/egovframework/com/uat/uia/web/EgovLoginController.java b/src/main/java/egovframework/com/uat/uia/web/EgovLoginController.java new file mode 100644 index 0000000..2cf812c --- /dev/null +++ b/src/main/java/egovframework/com/uat/uia/web/EgovLoginController.java @@ -0,0 +1,502 @@ +package egovframework.com.uat.uia.web; + +import java.util.List; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.EgovComponentChecker; +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.service.EgovCmmUseService; +import egovframework.com.cmm.service.Globals; +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.com.uat.uia.service.EgovLoginService; +import egovframework.com.utl.sim.service.EgovClntInfo; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; + +/* +import com.gpki.gpkiapi.cert.X509Certificate; +import com.gpki.servlet.GPKIHttpServletRequest; +import com.gpki.servlet.GPKIHttpServletResponse; +*/ + +/** + * 일반 로그인, 인증서 로그인을 처리하는 컨트롤러 클래스 + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.06 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2009.03.06  박지욱          최초 생성
+ *  2011.8.26	정진오			IncludedInfo annotation 추가
+ *  2011.09.07  서준식          스프링 시큐리티 로그인 및 SSO 인증 로직을 필터로 분리
+ *  2011.09.25  서준식          사용자 관리 컴포넌트 미포함에 대한 점검 로직 추가
+ *  2011.09.27  서준식          인증서 로그인시 스프링 시큐리티 사용에 대한 체크 로직 추가
+ *  2011.10.27  서준식          아이디 찾기 기능에서 사용자 리름 공백 제거 기능 추가
+ *  
+ */ +@Controller +public class EgovLoginController { + + /** EgovLoginService */ + @Resource(name = "loginService") + private EgovLoginService loginService; + + /** EgovCmmUseService */ + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + /** EgovMessageSource */ + @Resource(name = "egovMessageSource") + EgovMessageSource egovMessageSource; + + /** log */ + private static final Logger LOGGER = LoggerFactory.getLogger(EgovLoginController.class); + + /** + * 로그인 화면으로 들어간다 + * @param vo - 로그인후 이동할 URL이 담긴 LoginVO + * @return 로그인 페이지 + * @exception Exception + */ + @IncludedInfo(name = "로그인", listUrl = "/uat/uia/egovLoginUsr.do", order = 10, gid = 10) + @RequestMapping(value = "/uat/uia/egovLoginUsr.do") + public String loginUsrView(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + if (EgovComponentChecker.hasComponent("mberManageService")) { + model.addAttribute("useMemberManage", "true"); + } + + /* + GPKIHttpServletResponse gpkiresponse = null; + GPKIHttpServletRequest gpkirequest = null; + + try{ + + gpkiresponse=new GPKIHttpServletResponse(response); + gpkirequest= new GPKIHttpServletRequest(request); + gpkiresponse.setRequest(gpkirequest); + model.addAttribute("challenge", gpkiresponse.getChallenge()); + return "egovframework/com/uat/uia/EgovLoginUsr"; + + }catch(Exception e){ + return "egovframework/com/cmm/egovError"; + } + */ + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + + /** + * 일반(세션) 로그인을 처리한다 + * @param vo - 아이디, 비밀번호가 담긴 LoginVO + * @param request - 세션처리를 위한 HttpServletRequest + * @return result - 로그인결과(세션정보) + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/actionLogin.do") + public String actionLogin(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletRequest request, ModelMap model) throws Exception { + + // 1. 일반 로그인 처리 + LoginVO resultVO = loginService.actionLogin(loginVO); + + if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("")) { + + // 2-1. 로그인 정보를 세션에 저장 + request.getSession().setAttribute("loginVO", resultVO); + + return "redirect:/uat/uia/actionMain.do"; + + } else { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + } + + /** + * 인증서 로그인을 처리한다 + * @param vo - 주민번호가 담긴 LoginVO + * @return result - 로그인결과(세션정보) + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/actionCrtfctLogin.do") + public String actionCrtfctLogin(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + + // 접속IP + String userIp = EgovClntInfo.getClntIP(request); + LOGGER.debug("User IP : {}", userIp); + + /* + // 1. GPKI 인증 + GPKIHttpServletResponse gpkiresponse = null; + GPKIHttpServletRequest gpkirequest = null; + String dn = ""; + try{ + gpkiresponse = new GPKIHttpServletResponse(response); + gpkirequest = new GPKIHttpServletRequest(request); + gpkiresponse.setRequest(gpkirequest); + X509Certificate cert = null; + + byte[] signData = null; + byte[] privatekey_random = null; + String signType = ""; + String queryString = ""; + + cert = gpkirequest.getSignerCert(); + dn = cert.getSubjectDN(); + + java.math.BigInteger b = cert.getSerialNumber(); + b.toString(); + int message_type = gpkirequest.getRequestMessageType(); + if( message_type == gpkirequest.ENCRYPTED_SIGNDATA || message_type == gpkirequest.LOGIN_ENVELOP_SIGN_DATA || + message_type == gpkirequest.ENVELOP_SIGNDATA || message_type == gpkirequest.SIGNED_DATA){ + signData = gpkirequest.getSignedData(); + if(privatekey_random != null) { + privatekey_random = gpkirequest.getSignerRValue(); + } + signType = gpkirequest.getSignType(); + } + queryString = gpkirequest.getQueryString(); + }catch(Exception e){ + return "cmm/egovError"; + } + + // 2. 업무사용자 테이블에서 dn값으로 사용자의 ID, PW를 조회하여 이를 일반로그인 형태로 인증하도록 함 + if (dn != null && !dn.equals("")) { + + loginVO.setDn(dn); + LoginVO resultVO = loginService.actionCrtfctLogin(loginVO); + if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("")) { + + //스프링 시큐리티패키지를 사용하는지 체크하는 로직 + if(EgovComponentChecker.hasComponent("egovAuthorManageService")){ + // 3-1. spring security 연동 + return "redirect:/j_spring_security_check?j_username=" + resultVO.getUserSe() + resultVO.getId() + "&j_password=" + resultVO.getUniqId(); + + }else{ + // 3-2. 로그인 정보를 세션에 저장 + request.getSession().setAttribute("loginVO", resultVO); + return "redirect:/uat/uia/actionMain.do"; + } + + + } else { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + } else { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + */ + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + + /** + * 로그인 후 메인화면으로 들어간다 + * @param + * @return 로그인 페이지 + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/actionMain.do") + public String actionMain(ModelMap model) throws Exception { + + // 1. Spring Security 사용자권한 처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + + LOGGER.debug("User Id : {}", user.getId()); + + /* + // 2. 메뉴조회 + MenuManageVO menuManageVO = new MenuManageVO(); + menuManageVO.setTmp_Id(user.getId()); + menuManageVO.setTmp_UserSe(user.getUserSe()); + menuManageVO.setTmp_Name(user.getName()); + menuManageVO.setTmp_Email(user.getEmail()); + menuManageVO.setTmp_OrgnztId(user.getOrgnztId()); + menuManageVO.setTmp_UniqId(user.getUniqId()); + List list_headmenu = menuManageService.selectMainMenuHead(menuManageVO); + model.addAttribute("list_headmenu", list_headmenu); + */ + + // 3. 메인 페이지 이동 + String main_page = Globals.MAIN_PAGE; + + LOGGER.debug("Globals.MAIN_PAGE > " + Globals.MAIN_PAGE); + LOGGER.debug("main_page > {}", main_page); + + if (main_page.startsWith("/")) { + return "forward:" + main_page; + } else { + return main_page; + } + + /* + if (main_page != null && !main_page.equals("")) { + + // 3-1. 설정된 메인화면이 있는 경우 + return main_page; + + } else { + + // 3-2. 설정된 메인화면이 없는 경우 + if (user.getUserSe().equals("USR")) { + return "egovframework/com/EgovMainView"; + } else { + return "egovframework/com/EgovMainViewG"; + } + } + */ + } + + /** + * 로그아웃한다. + * @return String + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/actionLogout.do") + public String actionLogout(HttpServletRequest request, ModelMap model) throws Exception { + + /*String userIp = EgovClntInfo.getClntIP(request); + + // 1. Security 연동 + return "redirect:/j_spring_security_logout";*/ + + request.getSession().setAttribute("loginVO", null); + + //return "redirect:/egovDevIndex.jsp"; + return "redirect:/EgovContent.do"; + } + + /** + * 아이디/비밀번호 찾기 화면으로 들어간다 + * @param + * @return 아이디/비밀번호 찾기 페이지 + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/egovIdPasswordSearch.do") + public String idPasswordSearchView(ModelMap model) throws Exception { + + // 1. 비밀번호 힌트 공통코드 조회 + ComDefaultCodeVO vo = new ComDefaultCodeVO(); + vo.setCodeId("COM022"); + List code = cmmUseService.selectCmmCodeDetail(vo); + model.addAttribute("pwhtCdList", code); + + return "egovframework/com/uat/uia/EgovIdPasswordSearch"; + } + + /** + * 인증서안내 화면으로 들어간다 + * @return 인증서안내 페이지 + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/egovGpkiIssu.do") + public String gpkiIssuView(ModelMap model) throws Exception { + return "egovframework/com/uat/uia/EgovGpkiIssu"; + } + + /** + * 아이디를 찾는다. + * @param vo - 이름, 이메일주소, 사용자구분이 담긴 LoginVO + * @return result - 아이디 + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/searchId.do") + public String searchId(@ModelAttribute("loginVO") LoginVO loginVO, ModelMap model) throws Exception { + + if (loginVO == null || loginVO.getName() == null || loginVO.getName().equals("") && loginVO.getEmail() == null || loginVO.getEmail().equals("") + && loginVO.getUserSe() == null || loginVO.getUserSe().equals("")) { + return "egovframework/com/cmm/egovError"; + } + + // 1. 아이디 찾기 + loginVO.setName(loginVO.getName().replaceAll(" ", "")); + LoginVO resultVO = loginService.searchId(loginVO); + + if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("")) { + + model.addAttribute("resultInfo", "아이디는 " + resultVO.getId() + " 입니다."); + return "egovframework/com/uat/uia/EgovIdPasswordResult"; + } else { + model.addAttribute("resultInfo", egovMessageSource.getMessage("fail.common.idsearch")); + return "egovframework/com/uat/uia/EgovIdPasswordResult"; + } + } + + /** + * 비밀번호를 찾는다. + * @param vo - 아이디, 이름, 이메일주소, 비밀번호 힌트, 비밀번호 정답, 사용자구분이 담긴 LoginVO + * @return result - 임시비밀번호전송결과 + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/searchPassword.do") + public String searchPassword(@ModelAttribute("loginVO") LoginVO loginVO, ModelMap model) throws Exception { + + if (loginVO == null || loginVO.getId() == null || loginVO.getId().equals("") && loginVO.getName() == null || loginVO.getName().equals("") && loginVO.getEmail() == null + || loginVO.getEmail().equals("") && loginVO.getPasswordHint() == null || loginVO.getPasswordHint().equals("") && loginVO.getPasswordCnsr() == null + || loginVO.getPasswordCnsr().equals("") && loginVO.getUserSe() == null || loginVO.getUserSe().equals("")) { + return "egovframework/com/cmm/egovError"; + } + + // 1. 비밀번호 찾기 + boolean result = loginService.searchPassword(loginVO); + + // 2. 결과 리턴 + if (result) { + model.addAttribute("resultInfo", "임시 비밀번호를 발송하였습니다."); + return "egovframework/com/uat/uia/EgovIdPasswordResult"; + } else { + model.addAttribute("resultInfo", egovMessageSource.getMessage("fail.common.pwsearch")); + return "egovframework/com/uat/uia/EgovIdPasswordResult"; + } + } + + /** + * 개발 시스템 구축 시 발급된 GPKI 서버용인증서에 대한 암호화데이터를 구한다. + * 최초 한번만 실행하여, 암호화데이터를 EgovGpkiVariables.js의 ServerCert에 넣는다. + * @return String + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/getEncodingData.do") + public void getEncodingData() throws Exception { + + /* + X509Certificate x509Cert = null; + byte[] cert = null; + String base64cert = null; + try { + x509Cert = Disk.readCert("/product/jeus/egovProps/gpkisecureweb/certs/SVR1311000011_env.cer"); + cert = x509Cert.getCert(); + Base64 base64 = new Base64(); + base64cert = base64.encode(cert); + log.info("+++ Base64로 변환된 인증서는 : " + base64cert); + + } catch (GpkiApiException e) { + e.printStackTrace(); + } + */ + } + + /** + * 인증서 DN추출 팝업을 호출한다. + * @return 인증서 등록 페이지 + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/EgovGpkiRegist.do") + public String gpkiRegistView(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + + /** GPKI 인증 부분 */ + // OS에 따라 (local NT(로컬) / server Unix(서버)) 구분 + String os = System.getProperty("os.arch"); + LOGGER.debug("OS : {}", os); + + //String virusReturn = null; + + /* + // 브라우저 이름을 받기위한 처리 + String webKind = EgovClntInfo.getClntWebKind(request); + String[] ss = webKind.split(" "); + String browser = ss[1]; + model.addAttribute("browser",browser); + // -- 여기까지 + if (os.equalsIgnoreCase("x86")) { + //Local Host TEST 진행중 + } else { + if (browser.equalsIgnoreCase("Explorer")) { + GPKIHttpServletResponse gpkiresponse = null; + GPKIHttpServletRequest gpkirequest = null; + + try { + gpkiresponse = new GPKIHttpServletResponse(response); + gpkirequest = new GPKIHttpServletRequest(request); + + gpkiresponse.setRequest(gpkirequest); + model.addAttribute("challenge", gpkiresponse.getChallenge()); + + return "egovframework/com/uat/uia/EgovGpkiRegist"; + + } catch (Exception e) { + return "egovframework/com/cmm/egovError"; + } + } + } + */ + return "egovframework/com/uat/uia/EgovGpkiRegist"; + } + + /** + * 인증서 DN값을 추출한다 + * @return result - dn값 + * @exception Exception + */ + @RequestMapping(value = "/uat/uia/actionGpkiRegist.do") + public String actionGpkiRegist(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + + /** GPKI 인증 부분 */ + // OS에 따라 (local NT(로컬) / server Unix(서버)) 구분 + String os = System.getProperty("os.arch"); + LOGGER.debug("OS : {}", os); + + // String virusReturn = null; + @SuppressWarnings("unused") + String dn = ""; + + // 브라우저 이름을 받기위한 처리 + String webKind = EgovClntInfo.getClntWebKind(request); + String[] ss = webKind.split(" "); + String browser = ss[1]; + model.addAttribute("browser", browser); + /* + // -- 여기까지 + if (os.equalsIgnoreCase("x86")) { + // Local Host TEST 진행중 + } else { + if (browser.equalsIgnoreCase("Explorer")) { + GPKIHttpServletResponse gpkiresponse = null; + GPKIHttpServletRequest gpkirequest = null; + try { + gpkiresponse = new GPKIHttpServletResponse(response); + gpkirequest = new GPKIHttpServletRequest(request); + gpkiresponse.setRequest(gpkirequest); + X509Certificate cert = null; + + // byte[] signData = null; + // byte[] privatekey_random = null; + // String signType = ""; + // String queryString = ""; + + cert = gpkirequest.getSignerCert(); + dn = cert.getSubjectDN(); + + model.addAttribute("dn", dn); + model.addAttribute("challenge", gpkiresponse.getChallenge()); + + return "egovframework/com/uat/uia/EgovGpkiRegist"; + } catch (Exception e) { + return "egovframework/com/cmm/egovError"; + } + } + } + */ + return "egovframework/com/uat/uia/EgovGpkiRegist"; + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovDateFormat.java b/src/main/java/egovframework/com/utl/fcc/service/EgovDateFormat.java new file mode 100644 index 0000000..53c9428 --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovDateFormat.java @@ -0,0 +1,146 @@ +package egovframework.com.utl.fcc.service; + +import java.text.DateFormat; +import java.util.Date; +import java.util.Locale; + +/** + * 날짜 및 시간에 대한 변환을 수행하는 클래스 + */ +public class EgovDateFormat { + + /** + * 기본 Locale에 해당하는 형식으로 날짜를 변환한다. + * + * @param date 날짜 + * @return 날짜 문자열 + */ + public static String formatDate(Date date) { + return DateFormat.getDateInstance().format(date); + } + + /** + * Locale에 해당하는 형식으로 날짜를 변환한다. + * + * @param locale 로케일 + * @param date 날짜 + * @return 날짜 문자열 + */ + public static String formatDate(Locale locale, Date date) { + return DateFormat.getDateInstance(DateFormat.DEFAULT, locale).format(date); + } + + /** + * 주어진 스타일에 따라, 기본 Locale에 해당하는 형식으로 날짜를 변환한다. + * + * @param style 날짜 스타일 (사용 가능한 값 : {@link DateFormat#FULL}, {@link DateFormat#LONG}, {@link DateFormat#MEDIUM}, {@link DateFormat#SHORT}, {@link DateFormat#DEFAULT}) + * @param date 날짜 + * @return 날짜 문자열 + */ + public static String formatDate(int style, Date date) { + return DateFormat.getDateInstance(style).format(date); + } + + /** + * 주어진 스타일에 따라, Locale에 해당하는 형식으로 날짜를 변환한다. + * + * @param style 날짜 스타일 (사용 가능한 값 : {@link DateFormat#FULL}, {@link DateFormat#LONG}, {@link DateFormat#MEDIUM}, {@link DateFormat#SHORT}, {@link DateFormat#DEFAULT}) + * @param locale 로케일 + * @param date 날짜 + * @return 날짜 문자열 + */ + public static String formatDate(int style, Locale locale, Date date) { + return DateFormat.getDateInstance(style, locale).format(date); + } + + /** + * 기본 Locale에 해당하는 형식으로 날짜 및 시간을 변환한다. + * + * @param date 날짜 및 시간 + * @return 날짜 및 시간 문자열 + */ + public static String formatDateTime(Date date) { + return DateFormat.getDateTimeInstance().format(date); + } + + /** + * Locale에 해당하는 형식으로 날짜 및 시간을 변환한다. + * + * @param locale 로케일 + * @param date 날짜 및 시간 + * @return 날짜 및 시간 문자열 + */ + public static String formatDateTime(Locale locale, Date date) { + return DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT, locale).format(date); + } + + /** + * 주어진 스타일에 따라, 기본 Locale에 해당하는 형식으로 날짜 및 시간을 변환한다. + * + * @param dateStyle 날짜 스타일 (사용 가능한 값 : {@link DateFormat#FULL}, {@link DateFormat#LONG}, {@link DateFormat#MEDIUM}, {@link DateFormat#SHORT}, {@link DateFormat#DEFAULT}) + * @param timeStyle 시간 스타일 (사용 가능한 값 : {@link DateFormat#FULL}, {@link DateFormat#LONG}, {@link DateFormat#MEDIUM}, {@link DateFormat#SHORT}, {@link DateFormat#DEFAULT}) + * @param date 날짜 및 시간 + * @return 날짜 및 시간 문자열 + */ + public static String formatDateTime(int dateStyle, int timeStyle, Date date) { + return DateFormat.getDateTimeInstance(dateStyle, timeStyle).format(date); + } + + /** + * 주어진 스타일에 따라, Locale에 해당하는 형식으로 날짜 및 시간을 변환한다. + * + * @param dateStyle 날짜 스타일 (사용 가능한 값 : {@link DateFormat#FULL}, {@link DateFormat#LONG}, {@link DateFormat#MEDIUM}, {@link DateFormat#SHORT}, {@link DateFormat#DEFAULT}) + * @param timeStyle 시간 스타일 (사용 가능한 값 : {@link DateFormat#FULL}, {@link DateFormat#LONG}, {@link DateFormat#MEDIUM}, {@link DateFormat#SHORT}, {@link DateFormat#DEFAULT}) + * @param locale 로케일 + * @param date 날짜 및 시간 + * @return 날짜 및 시간 문자열 + */ + public static String formatDateTime(int dateStyle, int timeStyle, Locale locale, Date date) { + return DateFormat.getDateTimeInstance(dateStyle, timeStyle, locale).format(date); + } + + /** + * 기본 Locale에 해당하는 형식으로 시간을 변환한다. + * + * @param date 시간 + * @return 시간 문자열 + */ + public static String formatTime(Date date) { + return DateFormat.getTimeInstance().format(date); + } + + /** + * Locale에 해당하는 형식으로 시간을 변환한다. + * + * @param locale 로케일 + * @param date 시간 + * @return 시간 문자열 + */ + public static String formatTime(Locale locale, Date date) { + return DateFormat.getTimeInstance(DateFormat.DEFAULT, locale).format(date); + } + + /** + * 주어진 스타일에 따라, 기본 Locale에 해당하는 형식으로 시간을 변환한다. + * + * @param style 시간 스타일 (사용 가능한 값 : {@link DateFormat#FULL}, {@link DateFormat#LONG}, {@link DateFormat#MEDIUM}, {@link DateFormat#SHORT}, {@link DateFormat#DEFAULT}) + * @param date 시간 + * @return 시간 문자열 + */ + public static String formatTime(int style, Date date) { + return DateFormat.getTimeInstance(style).format(date); + } + + /** + * 주어진 스타일에 따라, Locale에 해당하는 형식으로 시간을 변환한다. + * + * @param style 시간 스타일 (사용 가능한 값 : {@link DateFormat#FULL}, {@link DateFormat#LONG}, {@link DateFormat#MEDIUM}, {@link DateFormat#SHORT}, {@link DateFormat#DEFAULT}) + * @param locale 로케일 + * @param date 시간 + * @return 시간 문자열 + */ + public static String formatTime(int style, Locale locale, Date date) { + return DateFormat.getTimeInstance(style, locale).format(date); + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovDateUtil.java b/src/main/java/egovframework/com/utl/fcc/service/EgovDateUtil.java new file mode 100644 index 0000000..91c5857 --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovDateUtil.java @@ -0,0 +1,865 @@ +package egovframework.com.utl.fcc.service; + +import java.security.SecureRandom; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.TimeZone; + +import com.ibm.icu.util.ChineseCalendar; + +/** + * + * Date 에 대한 Util 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.02.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.02.01  이중호          최초 생성
+ *
+ * 
+ */ +public class EgovDateUtil { + + /** + *

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 년, 월, 일을 + * 증감한다. 년, 월, 일은 가감할 수를 의미하며, 음수를 입력할 경우 감한다.

+ * + *
+	 * DateUtil.addYearMonthDay("19810828", 0, 0, 19)  = "19810916"
+	 * DateUtil.addYearMonthDay("20060228", 0, 0, -10) = "20060218"
+	 * DateUtil.addYearMonthDay("20060228", 0, 0, 10)  = "20060310"
+	 * DateUtil.addYearMonthDay("20060228", 0, 0, 32)  = "20060401"
+	 * DateUtil.addYearMonthDay("20050331", 0, -1, 0)  = "20050228"
+	 * DateUtil.addYearMonthDay("20050301", 0, 2, 30)  = "20050531"
+	 * DateUtil.addYearMonthDay("20050301", 1, 2, 30)  = "20060531"
+	 * DateUtil.addYearMonthDay("20040301", 2, 0, 0)   = "20060301"
+	 * DateUtil.addYearMonthDay("20040229", 2, 0, 0)   = "20060228"
+	 * DateUtil.addYearMonthDay("20040229", 2, 0, 1)   = "20060301"
+	 * 
+ * + * @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식) + * @param year 가감할 년. 0이 입력될 경우 가감이 없다 + * @param month 가감할 월. 0이 입력될 경우 가감이 없다 + * @param day 가감할 일. 0이 입력될 경우 가감이 없다 + * @return yyyyMMdd 형식의 날짜 문자열 + * @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우. + * 입력 값이 null인 경우. + */ + public static String addYearMonthDay(String sDate, int year, int month, int day) { + + String dateStr = validChkDate(sDate); + + Calendar cal = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); + try { + cal.setTime(sdf.parse(dateStr)); + } catch (ParseException e) { + throw new IllegalArgumentException("Invalid date format: " + dateStr); + } + + if (year != 0) { + cal.add(Calendar.YEAR, year); + } + if (month != 0) { + cal.add(Calendar.MONTH, month); + } + if (day != 0) { + cal.add(Calendar.DATE, day); + } + + return sdf.format(cal.getTime()); + } + + /** + *

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 년을 + * 증감한다. year는 가감할 수를 의미하며, 음수를 입력할 경우 감한다.

+ * + *
+	 * DateUtil.addYear("20000201", 62)  = "20620201"
+	 * DateUtil.addYear("20620201", -62) = "20000201"
+	 * DateUtil.addYear("20040229", 2)   = "20060228"
+	 * DateUtil.addYear("20060228", -2)  = "20040228"
+	 * DateUtil.addYear("19000101", 200) = "21000101"
+	 * 
+ * + * @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식) + * @param year 가감할 년. 0이 입력될 경우 가감이 없다 + * @return yyyyMMdd 형식의 날짜 문자열 + * @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우. + * 입력 값이 null인 경우. + */ + public static String addYear(String dateStr, int year) { + return addYearMonthDay(dateStr, year, 0, 0); + } + + /** + *

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 월을 + * 증감한다. month는 가감할 수를 의미하며, 음수를 입력할 경우 감한다.

+ * + *
+	 * DateUtil.addMonth("20010201", 12)  = "20020201"
+	 * DateUtil.addMonth("19800229", 12)  = "19810228"
+	 * DateUtil.addMonth("20040229", 12)  = "20050228"
+	 * DateUtil.addMonth("20050228", -12) = "20040228"
+	 * DateUtil.addMonth("20060131", 1)   = "20060228"
+	 * DateUtil.addMonth("20060228", -1)  = "20060128"
+	 * 
+ * + * @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식) + * @param month 가감할 월. 0이 입력될 경우 가감이 없다 + * @return yyyyMMdd 형식의 날짜 문자열 + * @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우. + * 입력 값이 null인 경우. + */ + public static String addMonth(String dateStr, int month) { + return addYearMonthDay(dateStr, 0, month, 0); + } + + /** + *

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 일(day)를 + * 증감한다. day는 가감할 수를 의미하며, 음수를 입력할 경우 감한다. + *

+ * 위에 정의된 addDays 메서드는 사용자가 ParseException을 반드시 처리해야 하는 불편함이 + * 있기 때문에 추가된 메서드이다.

+ * + *
+	 * DateUtil.addDay("19991201", 62) = "20000201"
+	 * DateUtil.addDay("20000201", -62) = "19991201"
+	 * DateUtil.addDay("20050831", 3) = "20050903"
+	 * DateUtil.addDay("20050831", 3) = "20050903"
+	 * // 2006년 6월 31일은 실제로 존재하지 않는 날짜이다 -> 20060701로 간주된다
+	 * DateUtil.addDay("20060631", 1) = "20060702"
+	 * 
+ * + * @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식) + * @param day 가감할 일. 0이 입력될 경우 가감이 없다 + * @return yyyyMMdd 형식의 날짜 문자열 + * @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우. + * 입력 값이 null인 경우. + */ + public static String addDay(String dateStr, int day) { + return addYearMonthDay(dateStr, 0, 0, day); + } + + /** + *

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열 dateStr1 + * dateStr2 사이의 일 수를 구한다.
+ * dateStr2dateStr1 보다 과거 날짜일 경우에는 + * 음수를 반환한다. 동일한 경우에는 0을 반환한다.

+ * + *
+	 * DateUtil.getDaysDiff("20060228","20060310") = 10
+	 * DateUtil.getDaysDiff("20060101","20070101") = 365
+	 * DateUtil.getDaysDiff("19990228","19990131") = -28
+	 * DateUtil.getDaysDiff("20060801","20060802") = 1
+	 * DateUtil.getDaysDiff("20060801","20060801") = 0
+	 * 
+ * + * @param dateStr1 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식) + * @param dateStr2 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식) + * @return 일 수 차이. + * @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우. + * 입력 값이 null인 경우. + */ + public static int getDaysDiff(String sDate1, String sDate2) { + String dateStr1 = validChkDate(sDate1); + String dateStr2 = validChkDate(sDate2); + + if (!checkDate(sDate1) || !checkDate(sDate2)) { + throw new IllegalArgumentException("Invalid date format: args[0]=" + sDate1 + " args[1]=" + sDate2); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); + + Date date1 = null; + Date date2 = null; + try { + date1 = sdf.parse(dateStr1); + date2 = sdf.parse(dateStr2); + } catch (ParseException e) { + throw new IllegalArgumentException("Invalid date format: args[0]=" + dateStr1 + " args[1]=" + dateStr2); + } + + if (date1 != null && date2 != null) { + int days1 = (int) ((date1.getTime() / 3600000) / 24); + int days2 = (int) ((date2.getTime() / 3600000) / 24); + return days2 - days1; + } else { + return 0; + } + + } + + /** + *

yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 유효한 날짜인지 검사.

+ * + *
+	 * DateUtil.checkDate("1999-02-35") = false
+	 * DateUtil.checkDate("2000-13-31") = false
+	 * DateUtil.checkDate("2006-11-31") = false
+	 * DateUtil.checkDate("2006-2-28")  = false
+	 * DateUtil.checkDate("2006-2-8")   = false
+	 * DateUtil.checkDate("20060228")   = true
+	 * DateUtil.checkDate("2006-02-28") = true
+	 * 
+ * + * @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식) + * @return 유효한 날짜인지 여부 + */ + public static boolean checkDate(String sDate) { + String dateStr = validChkDate(sDate); + + String year = dateStr.substring(0, 4); + String month = dateStr.substring(4, 6); + String day = dateStr.substring(6); + + return checkDate(year, month, day); + } + + /** + *

입력한 년, 월, 일이 유효한지 검사.

+ * + * @param year 연도 + * @param month 월 + * @param day 일 + * @return 유효한 날짜인지 여부 + */ + public static boolean checkDate(String year, String month, String day) { + try { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd", Locale.getDefault()); + + Date result = formatter.parse(year + "." + month + "." + day); + String resultStr = formatter.format(result); + if (resultStr.equalsIgnoreCase(year + "." + month + "." + day)) + return true; + else + return false; + } catch (ParseException e) { + return false; + } + } + + /** + * 날짜형태의 String의 날짜 포맷 및 TimeZone을 변경해 주는 메서드 + * + * @param strSource 바꿀 날짜 String + * @param fromDateFormat 기존의 날짜 형태 + * @param toDateFormat 원하는 날짜 형태 + * @param strTimeZone 변경할 TimeZone(""이면 변경 안함) + * @return 소스 String의 날짜 포맷을 변경한 String + */ + public static String convertDate(String strSource, String fromDateFormat, String toDateFormat, String strTimeZone) { + SimpleDateFormat simpledateformat = null; + Date date = null; + String fromFormat = ""; + String toFormat = ""; + + if (EgovStringUtil.isNullToString(strSource).trim().equals("")) { + return ""; + } + if (EgovStringUtil.isNullToString(fromDateFormat).trim().equals("")) + fromFormat = "yyyyMMddHHmmss"; // default값 + if (EgovStringUtil.isNullToString(toDateFormat).trim().equals("")) + toFormat = "yyyy-MM-dd HH:mm:ss"; // default값 + + try { + simpledateformat = new SimpleDateFormat(fromFormat, Locale.getDefault()); + date = simpledateformat.parse(strSource); + if (!EgovStringUtil.isNullToString(strTimeZone).trim().equals("")) { + simpledateformat.setTimeZone(TimeZone.getTimeZone(strTimeZone)); + } + simpledateformat = new SimpleDateFormat(toFormat, Locale.getDefault()); + } catch (ParseException exception) { + throw new RuntimeException(exception); + } + + return simpledateformat.format(date); + + } + + /** + * yyyyMMdd 형식의 날짜문자열을 원하는 캐릭터(ch)로 쪼개 돌려준다
+ *
+	* ex) 20030405, ch(.) -> 2003.04.05
+	* ex) 200304, ch(.) -> 2003.04
+	* ex) 20040101,ch(/) --> 2004/01/01 로 리턴
+	* 
+ * + * @param date yyyyMMdd 형식의 날짜문자열 + * @param ch 구분자 + * @return 변환된 문자열 + */ + public static String formatDate(String sDate, String ch) { + String dateStr = validChkDate(sDate); + + String str = dateStr.trim(); + String yyyy = ""; + String mm = ""; + String dd = ""; + + if (str.length() == 8) { + yyyy = str.substring(0, 4); + if (yyyy.equals("0000")) { + return ""; + } + + mm = str.substring(4, 6); + if (mm.equals("00")) { + return yyyy; + } + + dd = str.substring(6, 8); + if (dd.equals("00")) { + return yyyy + ch + mm; + } + + return yyyy + ch + mm + ch + dd; + + } else if (str.length() == 6) { + yyyy = str.substring(0, 4); + if (yyyy.equals("0000")) { + return ""; + } + + mm = str.substring(4, 6); + if (mm.equals("00")) { + return yyyy; + } + + return yyyy + ch + mm; + + } else if (str.length() == 4) { + yyyy = str.substring(0, 4); + if (yyyy.equals("0000")) { + return ""; + } else { + return yyyy; + } + } else { + return ""; + } + } + + /** + * HH24MISS 형식의 시간문자열을 원하는 캐릭터(ch)로 쪼개 돌려준다
+ *
+	 *     ex) 151241, ch(/) -> 15/12/31
+	 * 
+ * + * @param str HH24MISS 형식의 시간문자열 + * @param ch 구분자 + * @return 변환된 문자열 + */ + public static String formatTime(String sTime, String ch) { + String timeStr = validChkTime(sTime); + return timeStr.substring(0, 2) + ch + timeStr.substring(2, 4) + ch + timeStr.substring(4, 6); + } + + /** + * 연도를 입력 받아 해당 연도 2월의 말일(일수)를 문자열로 반환한다. + * + * @param year + * @return 해당 연도 2월의 말일(일수) + */ + public String leapYear(int year) { + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { + return "29"; + } + + return "28"; + } + + /** + *

입력받은 연도가 윤년인지 아닌지 검사한다.

+ * + *
+	 * DateUtil.isLeapYear(2004) = false
+	 * DateUtil.isLeapYear(2005) = true
+	 * DateUtil.isLeapYear(2006) = true
+	 * 
+ * + * @param year 연도 + * @return 윤년 여부 + */ + public static boolean isLeapYear(int year) { + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { + return false; + } + return true; + } + + /** + * 현재(한국기준) 날짜정보를 얻는다.
+ * 표기법은 yyyy-mm-dd
+ * @return String yyyymmdd형태의 현재 한국시간.
+ */ + public static String getToday() { + return getCurrentDate(""); + } + + /** + * 현재(한국기준) 날짜정보를 얻는다.
+ * 표기법은 yyyy-mm-dd
+ * @return String yyyymmdd형태의 현재 한국시간.
+ */ + public static String getCurrentDate(String dateType) { + Calendar aCalendar = Calendar.getInstance(); + + int year = aCalendar.get(Calendar.YEAR); + int month = aCalendar.get(Calendar.MONTH) + 1; + int date = aCalendar.get(Calendar.DATE); + String strDate = Integer.toString(year) + + ((month < 10) ? "0" + Integer.toString(month) : Integer.toString(month)) + + ((date < 10) ? "0" + Integer.toString(date) : Integer.toString(date)); + + if (!"".equals(dateType)) { + strDate = convertDate(strDate, "yyyyMMdd", dateType); + } + + return strDate; + } + + /** + * 날짜형태의 String의 날짜 포맷만을 변경해 주는 메서드 + * @param sDate 날짜 + * @param sTime 시간 + * @param sFormatStr 포멧 스트링 문자열 + * @return 지정한 날짜/시간을 지정한 포맷으로 출력 + * @See Letter Date or Time Component Presentation Examples + G Era designator Text AD + y Year Year 1996; 96 + M Month in year Month July; Jul; 07 + w Week in year Number 27 + W Week in month Number 2 + D Day in year Number 189 + d Day in month Number 10 + F Day of week in month Number 2 + E Day in week Text Tuesday; Tue + a Am/pm marker Text PM + H Hour in day (0-23) Number 0 + k Hour in day (1-24) Number 24 + K Hour in am/pm (0-11) Number 0 + h Hour in am/pm (1-12) Number 12 + m Minute in hour Number 30 + s Second in minute Number 55 + S Millisecond Number 978 + z Time zone General time zone Pacific Standard Time; PST; GMT-08:00 + Z Time zone RFC 822 time zone -0800 + + Date and Time Pattern Result + "yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT + "EEE, MMM d, ''yy" Wed, Jul 4, '01 + "h:mm a" 12:08 PM + "hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time + "K:mm a, z" 0:08 PM, PDT + "yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM + "EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700 + "yyMMddHHmmssZ" 010704120856-0700 + + */ + public static String convertDate(String sDate, String sTime, String sFormatStr) { + String dateStr = validChkDate(sDate); + String timeStr = validChkTime(sTime); + + Calendar cal = null; + cal = Calendar.getInstance(); + + cal.set(Calendar.YEAR, Integer.parseInt(dateStr.substring(0, 4))); + cal.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(4, 6)) - 1); + cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(6, 8))); + cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeStr.substring(0, 2))); + cal.set(Calendar.MINUTE, Integer.parseInt(timeStr.substring(2, 4))); + + SimpleDateFormat sdf = new SimpleDateFormat(sFormatStr, Locale.ENGLISH); + + return sdf.format(cal.getTime()); + } + + /** + * 입력받은 일자 사이의 임의의 일자를 반환 + * @param sDate1 시작일자 + * @param sDate2 종료일자 + * @return 임의일자 + */ + public static String getRandomDate(String sDate1, String sDate2) { + String dateStr1 = validChkDate(sDate1); + String dateStr2 = validChkDate(sDate2); + + String randomDate = null; + + int sYear, sMonth, sDay; + int eYear, eMonth, eDay; + + sYear = Integer.parseInt(dateStr1.substring(0, 4)); + sMonth = Integer.parseInt(dateStr1.substring(4, 6)); + sDay = Integer.parseInt(dateStr1.substring(6, 8)); + + eYear = Integer.parseInt(dateStr2.substring(0, 4)); + eMonth = Integer.parseInt(dateStr2.substring(4, 6)); + eDay = Integer.parseInt(dateStr2.substring(6, 8)); + + GregorianCalendar beginDate = new GregorianCalendar(sYear, sMonth - 1, sDay, 0, 0); + GregorianCalendar endDate = new GregorianCalendar(eYear, eMonth - 1, eDay, 23, 59); + + if (endDate.getTimeInMillis() < beginDate.getTimeInMillis()) { + throw new IllegalArgumentException("Invalid input date : " + sDate1 + "~" + sDate2); + } + + SecureRandom r = new SecureRandom(); + + r.setSeed(new Date().getTime()); + + long rand = ((r.nextLong() >>> 1) % (endDate.getTimeInMillis() - beginDate.getTimeInMillis() + 1)) + beginDate.getTimeInMillis(); + + GregorianCalendar cal = new GregorianCalendar(); + //SimpleDateFormat calformat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat calformat = new SimpleDateFormat("yyyyMMdd", Locale.ENGLISH); + cal.setTimeInMillis(rand); + randomDate = calformat.format(cal.getTime()); + + // 랜덤문자열를 리턴 + return randomDate; + } + + /** + * 입력받은 양력일자를 변환하여 음력일자로 반환 + * @param sDate 양력일자 + * @return 음력일자 + */ + public static Map toLunar(String sDate) { + String dateStr = validChkDate(sDate); + + Map hm = new HashMap(); + hm.put("day", ""); + hm.put("leap", "0"); + + if (dateStr.length() != 8) { + return hm; + } + + Calendar cal; + ChineseCalendar lcal; + + cal = Calendar.getInstance(); + lcal = new ChineseCalendar(); + + cal.set(Calendar.YEAR, Integer.parseInt(dateStr.substring(0, 4))); + cal.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(4, 6)) - 1); + cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(6, 8))); + + lcal.setTimeInMillis(cal.getTimeInMillis()); + + String year = String.valueOf(lcal.get(ChineseCalendar.EXTENDED_YEAR) - 2637); + String month = String.valueOf(lcal.get(ChineseCalendar.MONTH) + 1); + String day = String.valueOf(lcal.get(ChineseCalendar.DAY_OF_MONTH)); + String leap = String.valueOf(lcal.get(ChineseCalendar.IS_LEAP_MONTH)); + + String pad4Str = "0000"; + String pad2Str = "00"; + + String retYear = (pad4Str + year).substring(year.length()); + String retMonth = (pad2Str + month).substring(month.length()); + String retDay = (pad2Str + day).substring(day.length()); + + String SDay = retYear + retMonth + retDay; + + hm.put("day", SDay); + hm.put("leap", leap); + + return hm; + } + + /** + * 입력받은 음력일자를 변환하여 양력일자로 반환 + * @param sDate 음력일자 + * @param iLeapMonth 음력윤달여부(IS_LEAP_MONTH) + * @return 양력일자 + */ + public static String toSolar(String sDate, int iLeapMonth) { + String dateStr = validChkDate(sDate); + + Calendar cal; + ChineseCalendar lcal; + + cal = Calendar.getInstance(); + lcal = new ChineseCalendar(); + + lcal.set(ChineseCalendar.EXTENDED_YEAR, Integer.parseInt(dateStr.substring(0, 4)) + 2637); + lcal.set(ChineseCalendar.MONTH, Integer.parseInt(dateStr.substring(4, 6)) - 1); + lcal.set(ChineseCalendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(6, 8))); + lcal.set(ChineseCalendar.IS_LEAP_MONTH, iLeapMonth); + + cal.setTimeInMillis(lcal.getTimeInMillis()); + + String year = String.valueOf(cal.get(Calendar.YEAR)); + String month = String.valueOf(cal.get(Calendar.MONTH) + 1); + String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH)); + + String pad4Str = "0000"; + String pad2Str = "00"; + + String retYear = (pad4Str + year).substring(year.length()); + String retMonth = (pad2Str + month).substring(month.length()); + String retDay = (pad2Str + day).substring(day.length()); + + return retYear + retMonth + retDay; + } + + /** + * 입력받은 요일의 영문명을 국문명의 요일로 반환 + * @param sWeek 영문 요일명 + * @return 국문 요일명 + */ + public static String convertWeek(String sWeek) { + String retStr = null; + + if (sWeek.equals("SUN")) { + retStr = "일요일"; + } else if (sWeek.equals("MON")) { + retStr = "월요일"; + } else if (sWeek.equals("TUE")) { + retStr = "화요일"; + } else if (sWeek.equals("WED")) { + retStr = "수요일"; + } else if (sWeek.equals("THR")) { + retStr = "목요일"; + } else if (sWeek.equals("FRI")) { + retStr = "금요일"; + } else if (sWeek.equals("SAT")) { + retStr = "토요일"; + } + + return retStr; + } + + /** + * 입력일자의 유효 여부를 확인 + * @param sDate 일자 + * @return 유효 여부 + */ + public static boolean validDate(String sDate) { + String dateStr = validChkDate(sDate); + + Calendar cal; + boolean ret = false; + + cal = Calendar.getInstance(); + + cal.set(Calendar.YEAR, Integer.parseInt(dateStr.substring(0, 4))); + cal.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(4, 6)) - 1); + cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(6, 8))); + + String year = String.valueOf(cal.get(Calendar.YEAR)); + String month = String.valueOf(cal.get(Calendar.MONTH) + 1); + String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH)); + + String pad4Str = "0000"; + String pad2Str = "00"; + + String retYear = (pad4Str + year).substring(year.length()); + String retMonth = (pad2Str + month).substring(month.length()); + String retDay = (pad2Str + day).substring(day.length()); + + String retYMD = retYear + retMonth + retDay; + + if (sDate.equals(retYMD)) { + ret = true; + } + + return ret; + } + + /** + * 입력일자, 요일의 유효 여부를 확인 + * @param sDate 일자 + * @param sWeek 요일 (DAY_OF_WEEK) + * @return 유효 여부 + */ + public static boolean validDate(String sDate, int sWeek) { + String dateStr = validChkDate(sDate); + + Calendar cal; + boolean ret = false; + + cal = Calendar.getInstance(); + + cal.set(Calendar.YEAR, Integer.parseInt(dateStr.substring(0, 4))); + cal.set(Calendar.MONTH, Integer.parseInt(dateStr.substring(4, 6)) - 1); + cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(dateStr.substring(6, 8))); + + int Week = cal.get(Calendar.DAY_OF_WEEK); + + if (validDate(sDate)) { + if (sWeek == Week) { + ret = true; + } + } + + return ret; + } + + /** + * 입력시간의 유효 여부를 확인 + * @param sTime 입력시간 + * @return 유효 여부 + */ + public static boolean validTime(String sTime) { + String timeStr = validChkTime(sTime); + + Calendar cal; + boolean ret = false; + + cal = Calendar.getInstance(); + + cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeStr.substring(0, 2))); + cal.set(Calendar.MINUTE, Integer.parseInt(timeStr.substring(2, 4))); + + String HH = String.valueOf(cal.get(Calendar.HOUR_OF_DAY)); + String MM = String.valueOf(cal.get(Calendar.MINUTE)); + + String pad2Str = "00"; + + String retHH = (pad2Str + HH).substring(HH.length()); + String retMM = (pad2Str + MM).substring(MM.length()); + + String retTime = retHH + retMM; + + if (sTime.equals(retTime)) { + ret = true; + } + + return ret; + } + + /** + * 입력된 일자에 연, 월, 일을 가감한 날짜의 요일을 반환 + * @param sDate 날짜 + * @param year 연 + * @param month 월 + * @param day 일 + * @return 계산된 일자의 요일(DAY_OF_WEEK) + */ + public static String addYMDtoWeek(String sDate, int year, int month, int day) { + String dateStr = validChkDate(sDate); + + dateStr = addYearMonthDay(dateStr, year, month, day); + + Calendar cal = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd", Locale.ENGLISH); + try { + cal.setTime(sdf.parse(dateStr)); + } catch (ParseException e) { + throw new IllegalArgumentException("Invalid date format: " + dateStr); + } + + SimpleDateFormat rsdf = new SimpleDateFormat("E", Locale.ENGLISH); + + return rsdf.format(cal.getTime()); + } + + /** + * 입력된 일자에 연, 월, 일, 시간, 분을 가감한 날짜, 시간을 포멧스트링 형식으로 반환 + * @param sDate 날짜 + * @param sTime 시간 + * @param year 연 + * @param month 월 + * @param day 일 + * @param hour 시간 + * @param minute 분 + * @param formatStr 포멧스트링 + * @return + */ + public static String addYMDtoDayTime(String sDate, String sTime, int year, int month, int day, int hour, int minute, String formatStr) { + String dateStr = validChkDate(sDate); + String timeStr = validChkTime(sTime); + + dateStr = addYearMonthDay(dateStr, year, month, day); + + dateStr = convertDate(dateStr, timeStr, "yyyyMMddHHmm"); + + Calendar cal = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm", Locale.ENGLISH); + + try { + cal.setTime(sdf.parse(dateStr)); + } catch (ParseException e) { + throw new IllegalArgumentException("Invalid date format: " + dateStr); + } + + if (hour != 0) { + cal.add(Calendar.HOUR, hour); + } + + if (minute != 0) { + cal.add(Calendar.MINUTE, minute); + } + + SimpleDateFormat rsdf = new SimpleDateFormat(formatStr, Locale.ENGLISH); + + return rsdf.format(cal.getTime()); + } + + /** + * 입력된 일자를 int 형으로 반환 + * @param sDate 일자 + * @return int(일자) + */ + public static int datetoInt(String sDate) { + return Integer.parseInt(convertDate(sDate, "0000", "yyyyMMdd")); + } + + /** + * 입력된 시간을 int 형으로 반환 + * @param sTime 시간 + * @return int(시간) + */ + public static int timetoInt(String sTime) { + return Integer.parseInt(convertDate("00000101", sTime, "HHmm")); + } + + /** + * 입력된 일자 문자열을 확인하고 8자리로 리턴 + * @param sDate + * @return + */ + public static String validChkDate(String dateStr) { + if (dateStr == null || !(dateStr.trim().length() == 8 || dateStr.trim().length() == 10)) { + throw new IllegalArgumentException("Invalid date format: " + dateStr); + } + + if (dateStr.length() == 10) { + return EgovStringUtil.removeMinusChar(dateStr); + } + + return dateStr; + } + + /** + * 입력된 일자 문자열을 확인하고 8자리로 리턴 + * @param sDate + * @return + */ + public static String validChkTime(String timeStr) { + if (timeStr == null || !(timeStr.trim().length() == 4)) { + throw new IllegalArgumentException("Invalid time format: " + timeStr); + } + + if (timeStr.length() == 5) { + timeStr = EgovStringUtil.remove(timeStr, ':'); + } + + return timeStr; + } + +} diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovEhgtCalcUtil.java b/src/main/java/egovframework/com/utl/fcc/service/EgovEhgtCalcUtil.java new file mode 100644 index 0000000..7a8aed3 --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovEhgtCalcUtil.java @@ -0,0 +1,294 @@ +/** + * @Class Name : EgovEhgtCalcUtil.java + * @Description : 대한민국, 미국,유럽연합, 일본, 중국연합 사이의 환율계산기능을 + * 제공하는 Business Interface class + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.01.13 박정규 최초 생성 + * + * @author 공통 서비스 개발팀 박정규 + * @since 2009. 01. 13 + * @version 1.0 + * @see + * + */ + +package egovframework.com.utl.fcc.service; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.math.BigDecimal; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +import javax.swing.text.html.HTMLEditorKit; +import javax.swing.text.html.parser.ParserDelegator; + +public class EgovEhgtCalcUtil { + + // 환율.... + static final char EGHT_USD = 'U'; // 미국 + static final char EGHT_JPY = 'J'; // 일본 + static final char EGHT_EUR = 'E'; // 유럽연합 + static final char EGHT_CNY = 'C'; // 중국연합 + + static final char EGHT_KWR = 'K'; // 대한민국 + + static StringBuffer sb = new StringBuffer(); + + /** + * 대한민국(KRW), 미국(USD), 유럽연합(EUR), 일본(JPY), 중국원화(CNY) 사이의 환율을 계산하는 기능이다 + * 환율표 - 매매기준율 => 미국(USD) - 1485.00(USD), 일본-100(JPY) - 1596.26(JPY) + * 계산법: 대한민원(KRW) - 1,000원 -> 미국(USD)로 변환 시 => 1,000(원)/1485(매매기준율) = 0.67(URS) + * 계산법: 일본(JPY) - 100,000원 -> 대한민국(KRW) 변환 시 => (100,000(원) * 1596.26(매매기준율)) / 100(100엔당 기준표이므로) = 1,596,260.00 (KRW) + * 계산법: 일본(JPY) - 100,000원 -> 미국(USD) 변환 시 => ( + * (100,000(원) * 1596.26(매매기준율)) / 100(100엔당 기준표이므로) = 1,596,260.00 (KRW)) / 1,485.00 = 1,074.92 (USD) + * @param srcType - 환율기준 + * @param srcAmount - 금액 + * @param cnvrType - 변환환율 + * @return 환율금액 + * @exception MyException + * @see + */ + public void readHtmlParsing(String str) { + HttpURLConnection con = null; + InputStream is = null; + InputStreamReader reader = null; + try { + //입력받은 URL에 연결하여 InputStream을 통해 읽은 후 파싱 한다. + URL url = new URL(str); + + con = (HttpURLConnection) url.openConnection(); + + is = con.getInputStream(); + reader = new InputStreamReader(is, "euc-kr"); + //InputStreamReader reader = new InputStreamReader(con.getInputStream(), "utf-8"); + + new ParserDelegator().parse(reader, new CallbackHandler(), true); + + con.disconnect(); + + } catch (MalformedURLException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + EgovResourceCloseHelper.close(reader, is); + + if (con != null) { + con.disconnect(); + } + } + } + + //파서는 콜백 형식으로 되어 있다. 각 태그가 들어 올때 적절한 메소드가 호출됨 + private class CallbackHandler extends HTMLEditorKit.ParserCallback { + + public void handleText(char[] data, int pos) { + + String srcStr = new String(data); + + srcStr = EgovStringUtil.strip(srcStr, " "); + + sb.append(srcStr).append("/"); + } + } + + public static String getEhgtCalc(String srcType, long srcAmount, String cnvrType) throws Exception { + + String rtnStr = null; + + String[] eghtStdrRt = null; // Html에서 파싱한 환율매매기준율을 저장하기 위한 문자열배열 + + double srcStdrRt = 0.00; // 원래 매매기준율 + double cnvrStdrRt = 0.00; // 변환 매매기준율 + + //double cnvrAmount = 0.00; // 변환금액 + String sCnvrAmount = null; // 변환금액 + + String srcStr = null; + String cnvrStr = null; + + String srcTypeCnvr = srcType.toUpperCase(); + String cnvrTypeCnvr = cnvrType.toUpperCase(); + + EgovEhgtCalcUtil parser = new EgovEhgtCalcUtil(); + + parser.readHtmlParsing("http://community.fxkeb.com/fxportal/jsp/RS/DEPLOY_EXRATE/4176_0.html"); + + if (sb == null) { + throw new RuntimeException("StringBuffer is null!!"); + } + + eghtStdrRt = EgovStringUtil.split(sb.toString(), "/"); + + if (eghtStdrRt == null || (eghtStdrRt.length == 0)) + throw new RuntimeException("String Split Error!"); + + char srcChr = srcTypeCnvr.charAt(0); + char cnvrChr = cnvrTypeCnvr.charAt(0); + + // 원래 환율기준 정의 + switch (srcChr) { + + case EGHT_USD: // 미국 + srcStr = "USD"; + break; + + case EGHT_JPY: // 일본 + srcStr = "JPY"; + break; + + case EGHT_EUR: // 유럽연합 + srcStr = "EUR"; + break; + + case EGHT_CNY: // 중국연합 + srcStr = "CNY"; + break; + + default: + srcStr = "USD"; + break; + } + + // 변환하고자 하는 환율기준 정의 + switch (cnvrChr) { + + case EGHT_USD: // 미국 + cnvrStr = "USD"; + break; + + case EGHT_JPY: // 일본 + cnvrStr = "JPY"; + break; + + case EGHT_EUR: // 유럽연합 + cnvrStr = "EUR"; + break; + + case EGHT_CNY: // 중국연합 + cnvrStr = "CNY"; + break; + + default: + cnvrStr = "KRW"; + break; + } + + // 변환하고자 하는 국가의 환율매매기준율 추출... + for (int i = 0; i < eghtStdrRt.length; i++) { + + // 원래 매매기준율 추출 + if (eghtStdrRt[i].equals(srcStr)) { + srcStdrRt = Double.parseDouble(eghtStdrRt[i + 1]); + + if (i == (eghtStdrRt.length - 1)) + break; + } + + // 변환 매매기준율 추출 + if (eghtStdrRt[i].equals(cnvrStr)) { + cnvrStdrRt = Double.parseDouble(eghtStdrRt[i + 1]); + + if (i == (eghtStdrRt.length - 1)) + break; + } + } + + // 정확한 계산을 위한 BigDecimal 형태로 구현. + BigDecimal bSrcAmount = new BigDecimal(String.valueOf(srcAmount)); // 변환하고자 하는 금액 + BigDecimal bSrcStdrRt = new BigDecimal(String.valueOf(srcStdrRt)); // 원래 매매 비율 + BigDecimal bCnvrStdrRt = new BigDecimal(String.valueOf(cnvrStdrRt)); // 변환 매매 비율 + BigDecimal bStdr = new BigDecimal("100"); // 변환 매매 비율 + + // 원래 매매기준율 및 변환매매기준율 기준으로 환율금액 계산 + switch (srcChr) { + + case EGHT_KWR: // 대한민국 + if (cnvrChr == 'K') + //변환금액 = 변환대상금액; + sCnvrAmount = bSrcAmount.toString(); + else if (cnvrChr == 'J') + //변환금액 = (변환대상금액 / 변환매매비율) * 100; + sCnvrAmount = (bSrcAmount.divide(bCnvrStdrRt, 4, 4)).multiply(bStdr).setScale(2, 4).toString(); + else + //변환금액 = (변환대상금액 / 변환매매비율); + sCnvrAmount = bSrcAmount.divide(bCnvrStdrRt, 2, 4).toString(); + break; + + case EGHT_USD: // 미국 + if (cnvrChr == 'U') + //변환금액 = 변환대상금액; + sCnvrAmount = bSrcAmount.toString(); + else if (cnvrChr == 'K') + //변환금액 = 변환대상금액 * 원래 매매 비율; + sCnvrAmount = bSrcAmount.multiply(bSrcStdrRt).setScale(2, 4).toString(); + else if (cnvrChr == 'J') + //cnvrAmount = ((변환대상금액 * 원래 매매 비율) / 변환 매매 비율) * 100; + sCnvrAmount = ((bSrcAmount.multiply(bSrcStdrRt).setScale(4, 4)).divide(bCnvrStdrRt, 2, 4)).multiply(bStdr).setScale(2, 4).toString(); + else + //cnvrAmount = (변환대상금액 * 원래 매매 비율) / 변환 매매 비율; + sCnvrAmount = (bSrcAmount.multiply(bSrcStdrRt).setScale(4, 4)).divide(bCnvrStdrRt, 2, 4).toString(); + break; + + case EGHT_EUR: // 유럽연합 + if (cnvrChr == 'E') + //변환금액 = 변환대상금액; + sCnvrAmount = bSrcAmount.toString(); + else if (cnvrChr == 'K') + //cnvrAmount = 변환대상금액 * 원래 매매 비율; + sCnvrAmount = bSrcAmount.multiply(bSrcStdrRt).setScale(2, 4).toString(); + else if (cnvrChr == 'J') + //cnvrAmount = ((변환대상금액 * 원래 매매 비율) / 변환 매매 비율) * 100; + sCnvrAmount = ((bSrcAmount.multiply(bSrcStdrRt).setScale(4, 4)).divide(bCnvrStdrRt, 2, 4)).multiply(bStdr).setScale(2, 4).toString(); + else + //cnvrAmount = (변환대상금액 * 원래 매매 비율) / 변환 매매 비율; + sCnvrAmount = (bSrcAmount.multiply(bSrcStdrRt).setScale(4, 4)).divide(bCnvrStdrRt, 2, 4).toString(); + break; + + case EGHT_JPY: // 일본 + if (cnvrChr == 'J') + //변환금액 = 변환대상금액; + sCnvrAmount = bSrcAmount.toString(); + else if (cnvrChr == 'K') + //cnvrAmount = (변환대상금액 * 원래 매매 비율) / 100; + sCnvrAmount = (bSrcAmount.multiply(bSrcStdrRt).setScale(4, 4)).divide(bStdr, 2, 4).toString(); + else + //cnvrAmount = ((변환대상금액 * 원래 매매 비율) / 100) / 변환 매매 비율; + sCnvrAmount = ((bSrcAmount.multiply(bSrcStdrRt).setScale(4, 4)).divide(bStdr, 2, 4)).divide(bCnvrStdrRt, 2, 4).toString(); + break; + + case EGHT_CNY: // 중국연합 + if (cnvrChr == 'C') + //변환금액 = 변환대상금액; + sCnvrAmount = bSrcAmount.toString(); + else if (cnvrChr == 'K') + //cnvrAmount = 변환대상금액 * 원래 매매 비율; + sCnvrAmount = bSrcAmount.multiply(bSrcStdrRt).setScale(2, 4).toString(); + else if (cnvrChr == 'J') + //cnvrAmount = ((변환대상금액 * 원래 매매 비율) / 변환 매매 비율) * 100; + sCnvrAmount = ((bSrcAmount.multiply(bSrcStdrRt).setScale(4, 4)).divide(bCnvrStdrRt, 2, 4)).multiply(bStdr).setScale(2, 4).toString(); + else + //cnvrAmount = (변환대상금액 * 원래 매매 비율) / 변환 매매 비율; + sCnvrAmount = (bSrcAmount.multiply(bSrcStdrRt).setScale(4, 4)).divide(bCnvrStdrRt, 2, 4).toString(); + break; + + default: + //변환금액 = (변환대상금액 / 변환매매비율); + sCnvrAmount = bSrcAmount.divide(bCnvrStdrRt, 2, 4).toString(); + break; + } + + rtnStr = sCnvrAmount + " " + cnvrStr; + + return rtnStr; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovFileUploadUtil.java b/src/main/java/egovframework/com/utl/fcc/service/EgovFileUploadUtil.java new file mode 100644 index 0000000..eeebf45 --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovFileUploadUtil.java @@ -0,0 +1,84 @@ +package egovframework.com.utl.fcc.service; + +import java.io.File; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import egovframework.com.cmm.EgovWebUtil; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +/** + * @Class Name : EgovFileUploadUtil.java + * @Description : Spring 기반 File Upload 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.08.26 한성곤 최초 생성 + * + * @author 공통컴포넌트 개발팀 한성곤 + * @since 2009.08.26 + * @version 1.0 + * @see + */ +public class EgovFileUploadUtil extends EgovFormBasedFileUtil { + /** + * 파일을 Upload 처리한다. + * + * @param request + * @param where + * @param maxFileSize + * @return + * @throws Exception + */ + public static List uploadFiles(HttpServletRequest request, String where, long maxFileSize) throws Exception { + List list = new ArrayList(); + + MultipartHttpServletRequest mptRequest = (MultipartHttpServletRequest) request; + Iterator fileIter = mptRequest.getFileNames(); + + while (fileIter.hasNext()) { + MultipartFile mFile = mptRequest.getFile((String) fileIter.next()); + + EgovFormBasedFileVo vo = new EgovFormBasedFileVo(); + + String tmp = mFile.getOriginalFilename(); + + if (tmp.lastIndexOf("\\") >= 0) { + tmp = tmp.substring(tmp.lastIndexOf("\\") + 1); + } + + vo.setFileName(tmp); + vo.setContentType(mFile.getContentType()); + vo.setServerSubPath(getTodayString()); + vo.setPhysicalName(getPhysicalFileName()); + vo.setSize(mFile.getSize()); + + if (tmp.lastIndexOf(".") >= 0) { + vo.setPhysicalName(vo.getPhysicalName()); // 2012.11 KISA 보안조치 + } + + if (mFile.getSize() > 0) { + InputStream is = null; + + try { + is = mFile.getInputStream(); + saveFile(is, new File(EgovWebUtil.filePathBlackList(where + SEPERATOR + vo.getServerSubPath() + SEPERATOR + vo.getPhysicalName()))); + } finally { + if (is != null) { + is.close(); + } + } + list.add(vo); + } + } + + return list; + } +} diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedFileUtil.java b/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedFileUtil.java new file mode 100644 index 0000000..dc02255 --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedFileUtil.java @@ -0,0 +1,283 @@ +package egovframework.com.utl.fcc.service; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +import egovframework.com.cmm.EgovWebUtil; +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.fileupload.FileItemIterator; +import org.apache.commons.fileupload.FileItemStream; +import org.apache.commons.fileupload.servlet.ServletFileUpload; +import org.apache.commons.fileupload.util.Streams; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @Class Name : EgovFormBasedFileUtil.java + * @Description : Form-based File Upload 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.08.26 한성곤 최초 생성 + * + * @author 공통컴포넌트 개발팀 한성곤 + * @since 2009.08.26 + * @version 1.0 + * @see + */ +public class EgovFormBasedFileUtil { + /** Buffer size */ + public static final int BUFFER_SIZE = 8192; + + public static final String SEPERATOR = File.separator; + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovFormBasedFileUtil.class); + + /** + * 오늘 날짜 문자열 취득. + * ex) 20090101 + * @return + */ + public static String getTodayString() { + SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); + + return format.format(new Date()); + } + + /** + * 물리적 파일명 생성. + * @return + */ + public static String getPhysicalFileName() { + return EgovFormBasedUUID.randomUUID().toString().replaceAll("-", "").toUpperCase(); + } + + /** + * 파일명 변환. + * @param filename String + * @return + * @throws Exception + */ + protected static String convert(String filename) throws Exception { + //return java.net.URLEncoder.encode(filename, "utf-8"); + return filename; + } + + /** + * Stream으로부터 파일을 저장함. + * @param is InputStream + * @param file File + * @throws IOException + */ + public static long saveFile(InputStream is, File file) throws IOException { + // 디렉토리 생성 + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + + OutputStream os = null; + long size = 0L; + + try { + os = new FileOutputStream(file); + + int bytesRead = 0; + byte[] buffer = new byte[BUFFER_SIZE]; + + while ((bytesRead = is.read(buffer, 0, BUFFER_SIZE)) != -1) { + size += bytesRead; + os.write(buffer, 0, bytesRead); + } + } finally { + EgovResourceCloseHelper.close(os); + } + + return size; + } + + /** + * 파일을 Upload 처리한다. + * + * @param request + * @param where + * @param maxFileSize + * @return + * @throws Exception + */ + public static List uploadFiles(HttpServletRequest request, String where, long maxFileSize) throws Exception { + List list = new ArrayList(); + + // Check that we have a file upload request + boolean isMultipart = ServletFileUpload.isMultipartContent(request); + + if (isMultipart) { + // Create a new file upload handler + ServletFileUpload upload = new ServletFileUpload(); + upload.setFileSizeMax(maxFileSize); // SizeLimitExceededException + + // Parse the request + FileItemIterator iter = upload.getItemIterator(request); + while (iter.hasNext()) { + FileItemStream item = iter.next(); + String name = item.getFieldName(); + InputStream stream = item.openStream(); + if (item.isFormField()) { + LOGGER.info("Form field '{}' with value '{}' detected.", name, Streams.asString(stream)); + } else { + LOGGER.info("File field '{}' with file name '{}' detected.", name, item.getName()); + + if ("".equals(item.getName())) { + continue; + } + + // Process the input stream + EgovFormBasedFileVo vo = new EgovFormBasedFileVo(); + + String tmp = item.getName(); + + if (tmp.lastIndexOf("\\") >= 0) { + tmp = tmp.substring(tmp.lastIndexOf("\\") + 1); + } + + vo.setFileName(tmp); + vo.setContentType(item.getContentType()); + vo.setServerSubPath(getTodayString()); + vo.setPhysicalName(getPhysicalFileName()); + + if (tmp.lastIndexOf(".") >= 0) { + vo.setPhysicalName(vo.getPhysicalName() + tmp.substring(tmp.lastIndexOf("."))); + } + + long size = saveFile(stream, new File(EgovWebUtil.filePathBlackList(where) + SEPERATOR + vo.getServerSubPath() + SEPERATOR + vo.getPhysicalName())); + + vo.setSize(size); + + list.add(vo); + } + } + } else { + throw new IOException("form's 'enctype' attribute have to be 'multipart/form-data'"); + } + + return list; + } + + /** + * 파일을 Download 처리한다. + * + * @param response + * @param where + * @param serverSubPath + * @param physicalName + * @param original + * @throws Exception + */ + public static void downloadFile(HttpServletResponse response, String where, String serverSubPath, String physicalName, String original) throws Exception { + String downFileName = where + SEPERATOR + serverSubPath + SEPERATOR + physicalName; + + File file = new File(EgovWebUtil.filePathBlackList(downFileName)); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + byte[] b = new byte[BUFFER_SIZE]; + + original = original.replaceAll("\r", "").replaceAll("\n", ""); + response.setContentType("application/octet-stream"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + convert(original) + "\";"); + response.setHeader("Content-Transfer-Encoding", "binary"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Expires", "0"); + + BufferedInputStream fin = null; + BufferedOutputStream outs = null; + + try { + fin = new BufferedInputStream(new FileInputStream(file)); + outs = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + while ((read = fin.read(b)) != -1) { + outs.write(b, 0, read); + } + } finally { + EgovResourceCloseHelper.close(outs, fin); + } + } + + /** + * 이미지에 대한 미리보기 기능을 제공한다. + * + * mimeType의 경우는 JSP 상에서 다음과 같이 얻을 수 있다. + * getServletConfig().getServletContext().getMimeType(name); + * + * @param response + * @param where + * @param serverSubPath + * @param physicalName + * @param mimeType + * @throws Exception + */ + public static void viewFile(HttpServletResponse response, String where, String serverSubPath, String physicalName, String mimeTypeParam) throws Exception { + String mimeType = mimeTypeParam; + String downFileName = where + SEPERATOR + serverSubPath + SEPERATOR + physicalName; + + File file = new File(EgovWebUtil.filePathBlackList(downFileName)); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + byte[] b = new byte[BUFFER_SIZE]; + + if (mimeType == null) { + mimeType = "application/octet-stream;"; + } + + response.setContentType(EgovWebUtil.removeCRLF(mimeType)); + response.setHeader("Content-Disposition", "filename=image;"); + + BufferedInputStream fin = null; + BufferedOutputStream outs = null; + + try { + fin = new BufferedInputStream(new FileInputStream(file)); + outs = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + while ((read = fin.read(b)) != -1) { + outs.write(b, 0, read); + } + } finally { + EgovResourceCloseHelper.close(outs, fin); + } + } +} diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedFileVo.java b/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedFileVo.java new file mode 100644 index 0000000..48512db --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedFileVo.java @@ -0,0 +1,104 @@ +package egovframework.com.utl.fcc.service; + +import java.io.Serializable; + +/** + * @Class Name : EgovFormBasedFileVo.java + * @Description : Form-based File Upload VO + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.08.26 한성곤 최초 생성 + * + * @author 공통컴포넌트 개발팀 한성곤 + * @since 2009.08.26 + * @version 1.0 + * @see + * + * Copyright (C) 2008 by MOPAS All right reserved. + */ +@SuppressWarnings("serial") +public class EgovFormBasedFileVo implements Serializable { + /** 파일명 */ + private String fileName = ""; + /** ContextType */ + private String contentType = ""; + /** 하위 디렉토리 지정 */ + private String serverSubPath = ""; + /** 물리적 파일명 */ + private String physicalName = ""; + /** 파일 사이즈 */ + private long size = 0L; + + /** + * fileName attribute를 리턴한다. + * @return the fileName + */ + public String getFileName() { + return fileName; + } + /** + * fileName attribute 값을 설정한다. + * @param fileName the fileName to set + */ + public void setFileName(String fileName) { + this.fileName = fileName; + } + /** + * contentType attribute를 리턴한다. + * @return the contentType + */ + public String getContentType() { + return contentType; + } + /** + * contentType attribute 값을 설정한다. + * @param contentType the contentType to set + */ + public void setContentType(String contentType) { + this.contentType = contentType; + } + /** + * serverSubPath attribute를 리턴한다. + * @return the serverSubPath + */ + public String getServerSubPath() { + return serverSubPath; + } + /** + * serverSubPath attribute 값을 설정한다. + * @param serverSubPath the serverSubPath to set + */ + public void setServerSubPath(String serverSubPath) { + this.serverSubPath = serverSubPath; + } + /** + * physicalName attribute를 리턴한다. + * @return the physicalName + */ + public String getPhysicalName() { + return physicalName; + } + /** + * physicalName attribute 값을 설정한다. + * @param physicalName the physicalName to set + */ + public void setPhysicalName(String physicalName) { + this.physicalName = physicalName; + } + /** + * size attribute를 리턴한다. + * @return the size + */ + public long getSize() { + return size; + } + /** + * size attribute 값을 설정한다. + * @param size the size to set + */ + public void setSize(long size) { + this.size = size; + } +} diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedUUID.java b/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedUUID.java new file mode 100644 index 0000000..6df377b --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovFormBasedUUID.java @@ -0,0 +1,521 @@ +package egovframework.com.utl.fcc.service; + +import java.io.Serializable; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; + +/** + * + * A class that represents an immutable universally unique identifier (UUID). A + * UUID represents a 128-bit value. + * + *

+ * There exist different variants of these global identifiers. The methods of + * this class are for manipulating the Leach-Salz variant, although the + * constructors allow the creation of any variant of UUID (described below). + * + *

+ * The layout of a variant 2 (Leach-Salz) UUID is as follows: + * + * The most significant long consists of the following unsigned fields: + * + *

+ *   0xFFFFFFFF00000000 time_low
+ *   0x00000000FFFF0000 time_mid
+ *   0x000000000000F000 version
+ *   0x0000000000000FFF time_hi
+ * 
+ * + * The least significant long consists of the following unsigned fields: + * + *
+ *   0xC000000000000000 variant
+ *   0x3FFF000000000000 clock_seq
+ *   0x0000FFFFFFFFFFFF node
+ * 
+ * + *

+ * The variant field contains a value which identifies the layout of the + * UUID. The bit layout described above is valid only for a + * UUID with a variant value of 2, which indicates the Leach-Salz + * variant. + * + *

+ * The version field holds a value that describes the type of this UUID. + * There are four different basic types of UUIDs: time-based, DCE security, + * name-based, and randomly generated UUIDs. These types have a version value of + * 1, 2, 3 and 4, respectively. + * + *

+ * For more information including algorithms used to create UUIDs, + * see the Internet-Draft UUIDs + * and GUIDs or the standards body definition at ISO/IEC 11578:1996. + * + * @version 1.14, 07/12/04 + * @since 1.5 + */ +@SuppressWarnings("serial") +public class EgovFormBasedUUID implements Serializable { + /* + * The most significant 64 bits of this UUID. + * + * @serial + */ + private final long mostSigBits; + + /* + * The least significant 64 bits of this UUID. + * + * @serial + */ + private final long leastSigBits; + + /* + * The version number associated with this UUID. Computed on demand. + */ + private transient int version = -1; + + /* + * The variant number associated with this UUID. Computed on demand. + */ + private transient int variant = -1; + + /* + * The timestamp associated with this UUID. Computed on demand. + */ + private transient volatile long timestamp = -1; + + /* + * The clock sequence associated with this UUID. Computed on demand. + */ + private transient int sequence = -1; + + /* + * The node number associated with this UUID. Computed on demand. + */ + private transient long node = -1; + + /* + * The hashcode of this UUID. Computed on demand. + */ + private transient int hashCode = -1; + + /* + * The random number generator used by this class to create random based + * UUIDs. + */ + private static volatile SecureRandom numberGenerator = null; + + // Constructors and Factories + + /* + * Private constructor which uses a byte array to construct the new UUID. + */ + private EgovFormBasedUUID(byte[] data) { + long msb = 0; + long lsb = 0; + for (int i = 0; i < 8; i++) + msb = (msb << 8) | (data[i] & 0xff); + for (int i = 8; i < 16; i++) + lsb = (lsb << 8) | (data[i] & 0xff); + this.mostSigBits = msb; + this.leastSigBits = lsb; + } + + /** + * Constructs a new UUID using the specified data. + * mostSigBits is used for the most significant 64 bits of the + * UUID and leastSigBits becomes the least significant + * 64 bits of the UUID. + * + * @param mostSigBits + * @param leastSigBits + */ + public EgovFormBasedUUID(long mostSigBits, long leastSigBits) { + this.mostSigBits = mostSigBits; + this.leastSigBits = leastSigBits; + } + + /** + * Static factory to retrieve a type 4 (pseudo randomly generated) UUID. + * + * The UUID is generated using a cryptographically strong + * pseudo random number generator. + * + * @return a randomly generated UUID. + */ + public static EgovFormBasedUUID randomUUID() { + SecureRandom ng = numberGenerator; + if (ng == null) { + numberGenerator = ng = new SecureRandom(); + } + + byte[] randomBytes = new byte[16]; + ng.nextBytes(randomBytes); + randomBytes[6] &= 0x0f; /* clear version */ + randomBytes[6] |= 0x40; /* set to version 4 */ + randomBytes[8] &= 0x3f; /* clear variant */ + randomBytes[8] |= 0x80; /* set to IETF variant */ + + return new EgovFormBasedUUID(randomBytes); + } + + /** + * Static factory to retrieve a type 3 (name based) UUID based on + * the specified byte array. + * + * @param name + * a byte array to be used to construct a UUID. + * @return a UUID generated from the specified array. + */ + public static EgovFormBasedUUID nameUUIDFromBytes(byte[] name) { + MessageDigest md; + try { + // 2011.10.10 보안점검 후속조치 암호화 알고리즘 변경(MD5 -> SHA-256) + //md = MessageDigest.getInstance("MD5"); + md = MessageDigest.getInstance("SHA-256"); + } catch (NoSuchAlgorithmException nsae) { + //throw new InternalError("MD5 not supported"); + throw new InternalError("SHA-256 not supported"); + } + // 2011.10.10 보안점검 후속조치 + if (md == null) { + throw new RuntimeException("MessageDigest is null!!"); + } + // 2014.09.20 보안점검 후속 조치 + // Random 방식의 salt 추가 + SecureRandom ng = new SecureRandom(); + byte[] randomBytes = new byte[16]; + ng.nextBytes(randomBytes); + + md.reset(); + md.update(randomBytes); + byte[] sha = md.digest(name); + + + byte[] md5Bytes = new byte[8]; + System.arraycopy(sha, 0, md5Bytes, 0, 8); + //2011.10.10 보안점검 후속조치 끝 + + md5Bytes[6] &= 0x0f; /* clear version */ + md5Bytes[6] |= 0x30; /* set to version 3 */ + md5Bytes[8] &= 0x3f; /* clear variant */ + md5Bytes[8] |= 0x80; /* set to IETF variant */ + + return new EgovFormBasedUUID(md5Bytes); + } + + /** + * Creates a UUID from the string standard representation as + * described in the {@link #toString} method. + * + * @param name + * a string that specifies a UUID. + * @return a UUID with the specified value. + * @throws IllegalArgumentException + * if name does not conform to the string representation as + * described in {@link #toString}. + */ + public static EgovFormBasedUUID fromString(String name) { + String[] components = name.split("-"); + if (components.length != 5) + throw new IllegalArgumentException("Invalid UUID string: " + name); + for (int i = 0; i < 5; i++) + components[i] = "0x" + components[i]; + + long mostSigBits = Long.decode(components[0]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[1]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[2]).longValue(); + + long leastSigBits = Long.decode(components[3]).longValue(); + leastSigBits <<= 48; + leastSigBits |= Long.decode(components[4]).longValue(); + + return new EgovFormBasedUUID(mostSigBits, leastSigBits); + } + + // Field Accessor Methods + + /** + * Returns the least significant 64 bits of this UUID's 128 bit value. + * + * @return the least significant 64 bits of this UUID's 128 bit value. + */ + public long getLeastSignificantBits() { + return leastSigBits; + } + + /** + * Returns the most significant 64 bits of this UUID's 128 bit value. + * + * @return the most significant 64 bits of this UUID's 128 bit value. + */ + public long getMostSignificantBits() { + return mostSigBits; + } + + /** + * The version number associated with this UUID. The version + * number describes how this UUID was generated. + * + * The version number has the following meaning: + *

+ *

    + *
  • 1 Time-based UUID + *
  • 2 DCE security UUID + *
  • 3 Name-based UUID + *
  • 4 Randomly generated UUID + *
+ * + * @return the version number of this UUID. + */ + public int version() { + if (version < 0) { + // Version is bits masked by 0x000000000000F000 in MS long + version = (int) ((mostSigBits >> 12) & 0x0f); + } + return version; + } + + /** + * The variant number associated with this UUID. The variant + * number describes the layout of the UUID. + * + * The variant number has the following meaning: + *

+ *

    + *
  • 0 Reserved for NCS backward compatibility + *
  • 2 The Leach-Salz variant (used by this class) + *
  • 6 Reserved, Microsoft Corporation backward compatibility + *
  • 7 Reserved for future definition + *
+ * + * @return the variant number of this UUID. + */ + public int variant() { + if (variant < 0) { + // This field is composed of a varying number of bits + if ((leastSigBits >>> 63) == 0) { + variant = 0; + } else if ((leastSigBits >>> 62) == 2) { + variant = 2; + } else { + variant = (int) (leastSigBits >>> 61); + } + } + return variant; + } + + /** + * The timestamp value associated with this UUID. + * + *

+ * The 60 bit timestamp value is constructed from the time_low, time_mid, + * and time_hi fields of this UUID. The resulting timestamp is + * measured in 100-nanosecond units since midnight, October 15, 1582 UTC. + *

+ * + * The timestamp value is only meaningful in a time-based UUID, which has + * version type 1. If this UUID is not a time-based UUID then + * this method throws UnsupportedOperationException. + * + * @throws UnsupportedOperationException + * if this UUID is not a version 1 UUID. + */ + public long timestamp() { + if (version() != 1) { + throw new UnsupportedOperationException("Not a time-based UUID"); + } + long result = timestamp; + if (result < 0) { + result = (mostSigBits & 0x0000000000000FFFL) << 48; + result |= ((mostSigBits >> 16) & 0xFFFFL) << 32; + result |= mostSigBits >>> 32; + timestamp = result; + } + return result; + } + + /** + * The clock sequence value associated with this UUID. + * + *

+ * The 14 bit clock sequence value is constructed from the clock sequence + * field of this UUID. The clock sequence field is used to guarantee + * temporal uniqueness in a time-based UUID. + *

+ * + * The clockSequence value is only meaningful in a time-based UUID, which + * has version type 1. If this UUID is not a time-based UUID then this + * method throws UnsupportedOperationException. + * + * @return the clock sequence of this UUID. + * @throws UnsupportedOperationException + * if this UUID is not a version 1 UUID. + */ + public int clockSequence() { + if (version() != 1) { + throw new UnsupportedOperationException("Not a time-based UUID"); + } + if (sequence < 0) { + sequence = (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48); + } + return sequence; + } + + /** + * The node value associated with this UUID. + * + *

+ * The 48 bit node value is constructed from the node field of this UUID. + * This field is intended to hold the IEEE 802 address of the machine that + * generated this UUID to guarantee spatial uniqueness. + *

+ * + * The node value is only meaningful in a time-based UUID, which has version + * type 1. If this UUID is not a time-based UUID then this method throws + * UnsupportedOperationException. + * + * @return the node value of this UUID. + * @throws UnsupportedOperationException + * if this UUID is not a version 1 UUID. + */ + public long node() { + if (version() != 1) { + throw new UnsupportedOperationException("Not a time-based UUID"); + } + if (node < 0) { + node = leastSigBits & 0x0000FFFFFFFFFFFFL; + } + return node; + } + + // Object Inherited Methods + + /** + * Returns a String object representing this + * UUID. + * + *

+ * The UUID string representation is as described by this BNF : + * + *

+     *    UUID                   = <time_low> "-" <time_mid> "-"
+     *                             <time_high_and_version> "-"
+     *                             <variant_and_sequence> "-"
+     *                             <node>
+     *    time_low               = 4*<hexOctet>
+     *    time_mid               = 2*<hexOctet>
+     *    time_high_and_version  = 2*<hexOctet>
+     *    variant_and_sequence   = 2*<hexOctet>
+     *    node                   = 6*<hexOctet>
+     *    hexOctet               = <hexDigit><hexDigit>
+     *    hexDigit               =
+     *          "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
+     *          | "a" | "b" | "c" | "d" | "e" | "f"
+     *          | "A" | "B" | "C" | "D" | "E" | "F"
+     * 
+ * + * @return a string representation of this UUID. + */ + @Override + public String toString() { + return (digits(mostSigBits >> 32, 8) + "-" + + digits(mostSigBits >> 16, 4) + "-" + digits(mostSigBits, 4) + + "-" + digits(leastSigBits >> 48, 4) + "-" + digits( + leastSigBits, 12)); + } + + /** Returns val represented by the specified number of hex digits. */ + private static String digits(long val, int digits) { + long hi = 1L << (digits * 4); + return Long.toHexString(hi | (val & (hi - 1))).substring(1); + } + + /** + * Returns a hash code for this UUID. + * + * @return a hash code value for this UUID. + */ + @Override + public int hashCode() { + if (hashCode == -1) { + hashCode = (int) ((mostSigBits >> 32) ^ mostSigBits + ^ (leastSigBits >> 32) ^ leastSigBits); + } + return hashCode; + } + + /** + * Compares this object to the specified object. The result is true + * if and only if the argument is not null, is a UUID + * object, has the same variant, and contains the same value, bit for bit, + * as this UUID. + * + * @param obj + * the object to compare with. + * @return true if the objects are the same; + * false otherwise. + */ + @Override + public boolean equals(Object obj) { + // 보안 취약점 점검 지적사항 반영 시작 + if (obj == null) + return false; + // 보안 취약점 점검 지적사항 반영 시작 끝 + if (!(obj instanceof EgovFormBasedUUID)) + return false; + if (((EgovFormBasedUUID) obj).variant() != this.variant()) + return false; + EgovFormBasedUUID id = (EgovFormBasedUUID) obj; + return (mostSigBits == id.mostSigBits && leastSigBits == id.leastSigBits); + } + + // Comparison Operations + + /** + * Compares this UUID with the specified UUID. + * + *

+ * The first of two UUIDs follows the second if the most significant field + * in which the UUIDs differ is greater for the first UUID. + * + * @param val + * UUID to which this UUID is to be + * compared. + * @return -1, 0 or 1 as this UUID is less than, equal to, or + * greater than val. + */ + public int compareTo(EgovFormBasedUUID val) { + // The ordering is intentionally set up so that the UUIDs + // can simply be numerically compared as two numbers + return (this.mostSigBits < val.mostSigBits ? -1 + : (this.mostSigBits > val.mostSigBits ? 1 + : (this.leastSigBits < val.leastSigBits ? -1 + : (this.leastSigBits > val.leastSigBits ? 1 : 0)))); + } + + /** + * Reconstitute the UUID instance from a stream (that is, + * deserialize it). This is necessary to set the transient fields to their + * correct uninitialized value so they will be recomputed on demand. + */ + private void readObject(java.io.ObjectInputStream in) + throws java.io.IOException, ClassNotFoundException { + + in.defaultReadObject(); + + // Set "cached computation" fields to their initial values + version = -1; + variant = -1; + timestamp = -1; + sequence = -1; + node = -1; + hashCode = -1; + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovFormatCheckUtil.java b/src/main/java/egovframework/com/utl/fcc/service/EgovFormatCheckUtil.java new file mode 100644 index 0000000..fbdc29c --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovFormatCheckUtil.java @@ -0,0 +1,207 @@ +package egovframework.com.utl.fcc.service; + +/** + * + * 포맷유효성체크 에 대한 Util 클래스 + * @author 공통컴포넌트 개발팀 윤성록 + * @since 2009.06.23 + * @version 1.0 + * @see + * + *

+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.06.23  윤성록          최초 생성
+ *
+ * 
+ */ +public class EgovFormatCheckUtil { + + /** + *

XXX - XXX- XXXX 형식의 전화번호 앞, 중간, 뒤 문자열 3개 입력 받아 유요한 전화번호형식인지 검사.

+ * + * + * @param 전화번호 문자열( 3개 ) + * @return 유효한 전화번호 형식인지 여부 (True/False) + */ + public static boolean checkFormatTell(String tell1, String tell2, String tell3) { + + String[] check = {"02", "031", "032", "033", "041", "042", "043", "051", "052", "053", "054", "055", "061", + "062", "063", "070", "080", "0505"}; //존재하는 국번 데이터 + String temp = tell1 + tell2 + tell3; + + for(int i=0; i < temp.length(); i++){ + if (temp.charAt(i) < '0' || temp.charAt(i) > '9') + return false; + } //숫자가 아닌 값이 들어왔는지를 확인 + + for(int i = 0; i < check.length; i++){ + if(tell1.equals(check[i])) break; + if(i == check.length - 1) return false; + } //국번입력이 제대로 되었는지를 확인 + + if(tell2.charAt(0) == '0') return false; + + if(tell1.equals("02")){ + if(tell2.length() != 3 && tell2.length() !=4) return false; + if(tell3.length() != 4) return false; //서울지역(02)국번 입력때의 전화 번호 형식유효성 체크 + }else{ + if(tell2.length() != 3) return false; + if(tell3.length() != 4) return false; + } //서울을 제외한 지역(국번 입력때의 전화 번호 형식유효성 체크 + + return true; + } + + /** + *

XXX - XXX- XXXX 형식의 전화번호 하나를 입력 받아 유요한 전화번호형식인지 검사.

+ * + * + * @param 전화번호 문자열 (1개) + * @return 유효한 전화번호 형식인지 여부 (True/False) + */ + public static boolean checkFormatTell(String tellNumber) { + + String temp1; + String temp2; + String temp3; + String tell = tellNumber; + + tell = tell.replace("-", ""); + + if(tell.length() < 9 || tell.length() > 11 || tell.charAt(0) != '0') return false; //전화번호 길이에 대한 체크 + + if(tell.charAt(1) =='2'){ //서울지역 (02)국번의 경우일때 + temp1 = tell.substring(0,2); + if(tell.length() == 9){ + temp2 = tell.substring(2,5); + temp3 = tell.substring(5,9); + }else if(tell.length() == 10){ + temp2 = tell.substring(2,6); + temp3 = tell.substring(6,10); + }else + return false; + } else if(tell.substring(0,4).equals("0505")){ //평생번호(0505)국번의 경우일때 + if(tell.length() != 11) return false; + temp1 = tell.substring(0,4); + temp2 = tell.substring(4,7); + temp3 = tell.substring(7,11); + } else { // 서울지역 및 "0505" 를 제외한 일반적인 경우일때 + if(tell.length() != 10) return false; + temp1 = tell.substring(0,3); + temp2 = tell.substring(3,6); + temp3 = tell.substring(6,10); + } + + return checkFormatTell(temp1, temp2, temp3); + } + + /** + *

XXX - XXX- XXXX 형식의 휴대폰번호 앞, 중간, 뒤 문자열 3개 입력 받아 유요한 휴대폰번호형식인지 검사.

+ * + * + * @param 휴대폰번호 문자열,(3개) + * @return 유효한 휴대폰번호 형식인지 여부 (True/False) + */ + public static boolean checkFormatCell(String cell1, String cell2, String cell3) { + String[] check = {"010", "011", "016", "017", "018", "019"}; //유효한 휴대폰 첫자리 번호 데이터 + String temp = cell1 + cell2 + cell3; + + for(int i=0; i < temp.length(); i++){ + if (temp.charAt(i) < '0' || temp.charAt(i) > '9') + return false; + } //숫자가 아닌 값이 들어왔는지를 확인 + + for(int i = 0; i < check.length; i++){ + if(cell1.equals(check[i])) break; + if(i == check.length - 1) return false; + } // 휴대폰 첫자리 번호입력의 유효성 체크 + + if(cell2.charAt(0) == '0') return false; + + if(cell2.length() != 3 && cell2.length() !=4) return false; + if(cell3.length() != 4) return false; + + return true; + } + + /** + *

XXXXXXXXXX 형식의 휴대폰번호 문자열 3개 입력 받아 유요한 휴대폰번호형식인지 검사.

+ * + * + * @param 휴대폰번호 문자열(1개) + * @return 유효한 휴대폰번호 형식인지 여부 (True/False) + */ + public static boolean checkFormatCell(String cellNumber) { + + String temp1; + String temp2; + String temp3; + + String cell = cellNumber; + cell = cell.replace("-", ""); + + if(cell.length() < 10 || cell.length() > 11 || cell.charAt(0) != '0') return false; + + if(cell.length() == 10){ //전체 10자리 휴대폰 번호일 경우 + temp1 = cell.substring(0,3); + temp2 = cell.substring(3,6); + temp3 = cell.substring(6,10); + }else{ //전체 11자리 휴대폰 번호일 경우 + temp1 = cell.substring(0,3); + temp2 = cell.substring(3,7); + temp3 = cell.substring(7,11); + } + + return checkFormatCell(temp1, temp2, temp3); + } + + /** + *

이메일의 앞, 뒤 문자열 2개 입력 받아 유요한 이메일형식인지 검사.

+ * + * + * @param 이메일 문자열 (2개) + * @return 유효한 이메일 형식인지 여부 (True/False) + */ + public static boolean checkFormatMail(String mail1, String mail2) { + + int count = 0; + + for(int i = 0; i < mail1.length(); i++){ + if(mail1.charAt(i) <= 'z' && mail1.charAt(i) >= 'a') continue; + else if(mail1.charAt(i) <= 'Z' && mail1.charAt(i) >= 'A') continue; + else if(mail1.charAt(i) <= '9' && mail1.charAt(i) >= '0') continue; + else if(mail1.charAt(i) == '-' && mail1.charAt(i) == '_') continue; + else return false; + } // 유효한 문자, 숫자인지 체크 + + for(int i = 0; i < mail2.length(); i++){ + if(mail2.charAt(i) <= 'z' && mail2.charAt(i) >= 'a') continue; + else if(mail2.charAt(i) == '.'){ count++; continue;} + else return false; + } // 메일 주소의 형식 체크(XXX.XXX 형태) + + if(count == 1) return true; + else return false; + + } + + /** + *

이메일의 전체문자열 1개 입력 받아 유요한 이메일형식인지 검사.

+ * + * + * @param 이메일 문자열 (1개) + * @return 유효한 이메일 형식인지 여부 (True/False) + */ + public static boolean checkFormatMail(String mail) { + + String[] temp = mail.split("@"); // '@' 를 기점으로 앞, 뒤 문자열 구분 + + if(temp.length == 2) return checkFormatMail(temp[0], temp[1]); + else return false; + } + +} + diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovNumberCheckUtil.java b/src/main/java/egovframework/com/utl/fcc/service/EgovNumberCheckUtil.java new file mode 100644 index 0000000..88d3370 --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovNumberCheckUtil.java @@ -0,0 +1,246 @@ +package egovframework.com.utl.fcc.service; + +/** + * + * 번호유효성체크 에 대한 Util 클래스 + * @author 공통컴포넌트 개발팀 윤성록 + * @since 2009.06.10 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.06.10  윤성록          최초 생성
+ *   2012.02.27  이기하          법인번호 체크로직 수정
+ *
+ * 
+ */ +public class EgovNumberCheckUtil { + + /** + *

XXXXXX - XXXXXXX 형식의 주민번호 앞, 뒤 문자열 2개 입력 받아 유효한 주민번호인지 검사.

+ * + * + * @param 6자리 주민앞번호 문자열 , 7자리 주민뒷번호 문자열 + * @return 유효한 주민번호인지 여부 (True/False) + */ + @SuppressWarnings("static-access") + public static boolean checkJuminNumber(String jumin1, String jumin2) { + + EgovDateUtil egovDateUtil = new EgovDateUtil(); + String juminNumber = jumin1 + jumin2; + String IDAdd = "234567892345"; // 주민등록번호에 가산할 값 + + int count_num = 0; + int add_num = 0; + int total_id = 0; //검증을 위한 변수선언 + + if (juminNumber.length() != 13) return false; // 주민등록번호 자리수가 맞는가를 확인 + + for (int i = 0; i <12 ; i++){ + if(juminNumber.charAt(i)< '0' || juminNumber.charAt(i) > '9') return false; //숫자가 아닌 값이 들어왔는지를 확인 + count_num = Character.getNumericValue(juminNumber.charAt(i)); + add_num = Character.getNumericValue(IDAdd.charAt(i)); + total_id += count_num * add_num; //유효자리 검증식을 적용 + } + + if(Character.getNumericValue(juminNumber.charAt(0)) == 0 || Character.getNumericValue(juminNumber.charAt(0)) == 1){ + if(Character.getNumericValue(juminNumber.charAt(6)) > 4) return false; + String temp = "20" + juminNumber.substring(0,6); + if(!egovDateUtil.checkDate(temp)) return false; + }else{ + if(Character.getNumericValue(juminNumber.charAt(6)) > 2) return false; + String temp = "19" + juminNumber.substring(0,6); + if(!egovDateUtil.checkDate(temp)) return false; + } //주민번호 앞자리 날짜유효성체크 & 성별구분 숫자 체크 + + if(Character.getNumericValue(juminNumber.charAt(12)) == (11 - (total_id % 11)) % 10) //마지막 유효숫자와 검증식을 통한 값의 비교 + return true; + else + return false; + } + + /** + *

XXXXXXXXXXXXX 형식의 13자리 주민번호 1개를 입력 받아 유효한 주민번호인지 검사.

+ * + * + * @param 13자리 주민번호 문자열 + * @return 유효한 주민번호인지 여부 (True/False) + */ + public static boolean checkJuminNumber(String jumin) { + + if(jumin.length() != 13) return false; + + return checkJuminNumber(jumin.substring(0,6), jumin.substring(6,13)); //주민번호 + } + + /** + *

XXXXXX - XXXXXXX 형식의 법인번호 앞, 뒤 문자열 2개 입력 받아 유효한 법인번호인지 검사.

+ * + * + * @param 6자리 법인앞번호 문자열 , 7자리 법인뒷번호 문자열 + * @return 유효한 법인번호인지 여부 (True/False) + */ + public static boolean checkBubinNumber(String bubin1, String bubin2) { + + String bubinNumber = bubin1 + bubin2; + + int hap = 0; + int temp = 1; //유효검증식에 사용하기 위한 변수 + + if(bubinNumber.length() != 13) return false; //법인번호의 자리수가 맞는 지를 확인 + + for(int i=0; i < 13; i++){ + if (bubinNumber.charAt(i) < '0' || bubinNumber.charAt(i) > '9') //숫자가 아닌 값이 들어왔는지를 확인 + return false; + } + + + // 2012.02.27 법인번호 체크로직 수정( i<13 -> i<12 ) + // 맨끝 자리 수는 전산시스템으로 오류를 검증하기 위해 부여되는 검증번호임 + for ( int i=0; i<12; i++){ + if(temp ==3) temp = 1; + hap = hap + (Character.getNumericValue(bubinNumber.charAt(i)) * temp); + temp++; + } //검증을 위한 식의 계산 + + if ((10 - (hap%10))%10 == Character.getNumericValue(bubinNumber.charAt(12))) //마지막 유효숫자와 검증식을 통한 값의 비교 + return true; + else + return false; + } + + /** + *

XXXXXXXXXXXXX 형식의 13자리 법인번호 1개를 입력 받아 유효한 법인번호인지 검사.

+ * + * + * @param 13자리 법인번호 문자열 + * @return 유효한 법인번호인지 여부 (True/False) + */ + public static boolean checkBubinNumber(String bubin) { + + if(bubin.length() != 13) return false; + + return checkBubinNumber(bubin.substring(0,6), bubin.substring(6,13)); + } + + + /** + *

XXX - XX - XXXXX 형식의 사업자번호 앞,중간, 뒤 문자열 3개 입력 받아 유효한 사업자번호인지 검사.

+ * + * + * @param 3자리 사업자앞번호 문자열 , 2자리 사업자중간번호 문자열, 5자리 사업자뒷번호 문자열 + * @return 유효한 사업자번호인지 여부 (True/False) + */ + public static boolean checkCompNumber(String comp1, String comp2, String comp3) { + + String compNumber = comp1 + comp2 + comp3; + + int hap = 0; + int temp = 0; + int check[] = {1,3,7,1,3,7,1,3,5}; //사업자번호 유효성 체크 필요한 수 + + if(compNumber.length() != 10) //사업자번호의 길이가 맞는지를 확인한다. + return false; + + for(int i=0; i < 9; i++){ + if(compNumber.charAt(i) < '0' || compNumber.charAt(i) > '9') //숫자가 아닌 값이 들어왔는지를 확인한다. + return false; + + hap = hap + (Character.getNumericValue(compNumber.charAt(i)) * check[temp]); //검증식 적용 + temp++; + } + + hap += (Character.getNumericValue(compNumber.charAt(8))*5)/10; + + if ((10 - (hap%10))%10 == Character.getNumericValue(compNumber.charAt(9))) //마지막 유효숫자와 검증식을 통한 값의 비교 + return true; + else + return false; + } + + /** + *

XXXXXXXXXX 형식의 10자리 사업자번호 3개를 입력 받아 유효한 사업자번호인지 검사.

+ * + * + * @param 10자리 사업자번호 문자열 + * @return 유효한 사업자번호인지 여부 (True/False) + */ + public static boolean checkCompNumber(String comp) { + + if(comp.length() != 10) return false; + return checkCompNumber(comp.substring(0,3), comp.substring(3,5), comp.substring(5,10)); + } + + /** + *

XXXXXX - XXXXXXX 형식의 외국인등록번호 앞, 뒤 문자열 2개 입력 받아 유효한 외국인등록번호인지 검사.

+ * + * + * @param 6자리 외국인등록앞번호 문자열 , 7자리 외국인등록뒷번호 문자열 + * @return 유효한 외국인등록번호인지 여부 (True/False) + */ + @SuppressWarnings("static-access") + public static boolean checkforeignNumber( String foreign1, String foreign2 ) { + + EgovDateUtil egovDateUtil = new EgovDateUtil(); + String foreignNumber = foreign1 + foreign2; + int check = 0; + + if( foreignNumber.length() != 13 ) //외국인등록번호의 길이가 맞는지 확인한다. + return false; + + for(int i=0; i < 13; i++){ + if (foreignNumber.charAt(i) < '0' || foreignNumber.charAt(i) > '9') //숫자가 아닌 값이 들어왔는지를 확인한다. + return false; + } + + if(Character.getNumericValue(foreignNumber.charAt(0)) == 0 || Character.getNumericValue(foreignNumber.charAt(0)) == 1){ + if(Character.getNumericValue(foreignNumber.charAt(6)) == 5 && Character.getNumericValue(foreignNumber.charAt(6)) == 6) return false; + String temp = "20" + foreignNumber.substring(0,6); + if(!egovDateUtil.checkDate(temp)) return false; + }else{ + if(Character.getNumericValue(foreignNumber.charAt(6)) == 5 && Character.getNumericValue(foreignNumber.charAt(6)) == 6) return false; + String temp = "19" + foreignNumber.substring(0,6); + if(!egovDateUtil.checkDate(temp)) return false; + } //외국인등록번호 앞자리 날짜유효성체크 & 성별구분 숫자 체크 + + for( int i = 0 ; i < 12 ; i++ ) { + check += ( ( 9 - i % 8 ) * Character.getNumericValue( foreignNumber.charAt( i ) ) ); + } + + if ( check % 11 == 0 ){ + check = 1; + }else if ( check % 11==10 ){ + check = 0; + }else + check = check % 11; + + if ( check + 2 > 9 ){ + check = check + 2- 10; + }else check = check+2; //검증식을 통합 값의 도출 + + if( check == Character.getNumericValue( foreignNumber.charAt( 12 ) ) ) //마지막 유효숫자와 검증식을 통한 값의 비교 + return true; + else + return false; + } + + + /** + *

XXXXXXXXXXXXX 형식의 13자리 외국인등록번호 1개를 입력 받아 유효한 외국인등록번호인지 검사.

+ * + * + * @param 13자리 외국인등록번호 문자열 + * @return 유효한 외국인등록번호인지 여부 (True/False) + */ + public static boolean checkforeignNumber( String foreign ) { + + if(foreign.length() != 13) return false; + return checkforeignNumber(foreign.substring(0,6), foreign.substring(6,13)); + } +} + + diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovNumberFormat.java b/src/main/java/egovframework/com/utl/fcc/service/EgovNumberFormat.java new file mode 100644 index 0000000..701eda4 --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovNumberFormat.java @@ -0,0 +1,258 @@ +package egovframework.com.utl.fcc.service; + +import java.text.NumberFormat; +import java.util.Locale; + +/** + * 숫자, 통화, 퍼센트에 대한 형식 변환을 수행하는 클래스 + */ +public class EgovNumberFormat { + + private static final int MAX_FRACTION_DIGIT = 3; + private static final boolean GROUPING_USED = true; + + /** + * 기본 Locale에 해당하는 형식으로 숫자를 변환한다. + * + * @param number 숫자 + * @return 숫자 문자열 + */ + public static String formatNumber(Number number) { + return formatNumber(number, GROUPING_USED, MAX_FRACTION_DIGIT); + } + + /** + * Locale에 해당하는 형식으로 숫자를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @return 숫자 문자열 + */ + public static String formatNumber(Locale locale, Number number) { + return formatNumber(locale, number, GROUPING_USED, MAX_FRACTION_DIGIT); + } + + /** + * 기본 Locale에 해당하는 형식으로 숫자를 변환한다. + * + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @return 숫자 문자열 + */ + public static String formatNumber(Number number, boolean groupingUsed) { + return formatNumber(number, groupingUsed, MAX_FRACTION_DIGIT); + } + + /** + * Locale에 해당하는 형식으로 숫자를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @return 숫자 문자열 + */ + public static String formatNumber(Locale locale, Number number, boolean groupingUsed) { + return formatNumber(locale, number, groupingUsed, MAX_FRACTION_DIGIT); + } + + /** + * 기본 Locale에 해당하는 형식으로 숫자를 변환한다. + * + * @param number 숫자 + * @param maxFactionDigits 변환된 문자열에서 출력할 소수점 이하 최대 자리수 + * @return 숫자 문자열 + */ + public static String formatNumber(Number number, int maxFactionDigits) { + return formatNumber(number, GROUPING_USED, maxFactionDigits); + } + + /** + * Locale에 해당하는 형식으로 숫자를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @param maxFactionDigits 변환된 문자열에서 출력할 소수점 이하 최대 자리수 + * @return 숫자 문자열 + */ + public static String formatNumber(Locale locale, Number number, int maxFactionDigits) { + return formatNumber(locale, number, GROUPING_USED, maxFactionDigits); + } + + /** + * 기본 Locale에 해당하는 형식으로 숫자를 변환한다. + * + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @param maxFactionDigits 변환된 문자열에서 출력할 소수점 이하 최대 자리수 + * @return 숫자 문자열 + */ + public static String formatNumber(Number number, boolean groupingUsed, int maxFactionDigits) { + NumberFormat numberberFormat = NumberFormat.getNumberInstance(); + numberberFormat.setGroupingUsed(groupingUsed); + numberberFormat.setMaximumFractionDigits(maxFactionDigits); + return numberberFormat.format(number); + } + + /** + * Locale에 해당하는 형식으로 숫자를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @param maxFactionDigits 변환된 문자열에서 출력할 소수점 이하 최대 자리수 + * @return 숫자 문자열 + */ + public static String formatNumber(Locale locale, Number number, boolean groupingUsed, int maxFactionDigits) { + NumberFormat numberberFormat = NumberFormat.getNumberInstance(locale); + numberberFormat.setGroupingUsed(groupingUsed); + numberberFormat.setMaximumFractionDigits(maxFactionDigits); + return numberberFormat.format(number); + } + + /** + * 기본 Locale에 해당하는 형식으로 통화를 변환한다. + * + * @param number 숫자 + * @return 통화 문자열 + */ + public static String formatCurrency(Number number) { + return formatCurrency(number, GROUPING_USED); + } + + /** + * Locale에 해당하는 형식으로 통화를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @return 통화 문자열 + */ + public static String formatCurrency(Locale locale, Number number) { + return formatCurrency(locale, number, GROUPING_USED); + } + + /** + * 기본 Locale에 해당하는 형식으로 통화를 변환한다. + * + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @return 통화 문자열 + */ + public static String formatCurrency(Number number, boolean groupingUsed) { + NumberFormat numberberFormat = NumberFormat.getCurrencyInstance(); + numberberFormat.setGroupingUsed(groupingUsed); + return numberberFormat.format(number); + } + + /** + * Locale에 해당하는 형식으로 통화를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @return 통화 문자열 + */ + public static String formatCurrency(Locale locale, Number number, boolean groupingUsed) { + NumberFormat numberberFormat = NumberFormat.getCurrencyInstance(locale); + numberberFormat.setGroupingUsed(groupingUsed); + return numberberFormat.format(number); + } + + /** + * 기본 Locale에 해당하는 형식으로 퍼센트를 변환한다. + * + * @param number 숫자 + * @return 퍼센트 문자열 + */ + public static String formatPercent(Number number) { + return formatPercent(number, GROUPING_USED, MAX_FRACTION_DIGIT); + } + + /** + * Locale에 해당하는 형식으로 퍼센트를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @return 퍼센트 문자열 + */ + public static String formatPercent(Locale locale, Number number) { + return formatPercent(locale, number, GROUPING_USED, MAX_FRACTION_DIGIT); + } + + /** + * 기본 Locale에 해당하는 형식으로 퍼센트를 변환한다. + * + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @return 퍼센트 문자열 + */ + public static String formatPercent(Number number, boolean groupingUsed) { + return formatPercent(number, groupingUsed, MAX_FRACTION_DIGIT); + } + + /** + * Locale에 해당하는 형식으로 퍼센트를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @return 퍼센트 문자열 + */ + public static String formatPercent(Locale locale, Number number, boolean groupingUsed) { + return formatPercent(locale, number, groupingUsed, MAX_FRACTION_DIGIT); + } + + /** + * 기본 Locale에 해당하는 형식으로 퍼센트를 변환한다. + * + * @param number 숫자 + * @param maxFactionDigits 변환된 문자열에서 출력할 소수점 이하 최대 자리수 + * @return 퍼센트 문자열 + */ + public static String formatPercent(Number number, int maxFactionDigits) { + return formatPercent(number, GROUPING_USED, maxFactionDigits); + } + + /** + * Locale에 해당하는 형식으로 퍼센트를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @param maxFactionDigits 변환된 문자열에서 출력할 소수점 이하 최대 자리수 + * @return 퍼센트 문자열 + */ + public static String formatPercent(Locale locale, Number number, int maxFactionDigits) { + return formatPercent(locale, number, GROUPING_USED, maxFactionDigits); + } + + /** + * 기본 Locale에 해당하는 형식으로 퍼센트를 변환한다. + * + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @param maxFactionDigits 변환된 문자열에서 출력할 소수점 이하 최대 자리수 + * @return 퍼센트 문자열 + */ + public static String formatPercent(Number number, boolean groupingUsed, int maxFactionDigits) { + NumberFormat numberberFormat = NumberFormat.getPercentInstance(); + numberberFormat.setGroupingUsed(groupingUsed); + numberberFormat.setMaximumFractionDigits(maxFactionDigits); + return numberberFormat.format(number); + } + + /** + * Locale에 해당하는 형식으로 퍼센트를 변환한다. + * + * @param locale 로케일 + * @param number 숫자 + * @param groupingUsed 그룹 분리기호 포함 여부 + * @param maxFactionDigits 변환된 문자열에서 출력할 소수점 이하 최대 자리수 + * @return 퍼센트 문자열 + */ + public static String formatPercent(Locale locale, Number number, boolean groupingUsed, int maxFactionDigits) { + NumberFormat numberberFormat = NumberFormat.getPercentInstance(locale); + numberberFormat.setGroupingUsed(groupingUsed); + numberberFormat.setMaximumFractionDigits(maxFactionDigits); + return numberberFormat.format(number); + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovNumberUtil.java b/src/main/java/egovframework/com/utl/fcc/service/EgovNumberUtil.java new file mode 100644 index 0000000..2735e8b --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovNumberUtil.java @@ -0,0 +1,216 @@ +/** + * @Class Name : EgovNumberUtil.java + * @Description : 숫자 데이터 처리 관련 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.02.13 이삼섭 최초 생성 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 02. 13 + * @version 1.0 + * @see + * + */ + +package egovframework.com.utl.fcc.service; + +import java.security.SecureRandom; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + +public class EgovNumberUtil { + + /** + * 특정숫자 집합에서 랜덤 숫자를 구하는 기능 시작숫자와 종료숫자 사이에서 구한 랜덤 숫자를 반환한다 + * + * @param startNum - 시작숫자 + * @param endNum - 종료숫자 + * @return 랜덤숫자 + * @see + */ + public static int getRandomNum(int startNum, int endNum) { + int randomNum = 0; + + // 랜덤 객체 생성 + SecureRandom rnd = new SecureRandom(); + + do { + // 종료숫자내에서 랜덤 숫자를 발생시킨다. + randomNum = rnd.nextInt(endNum + 1); + } while (randomNum < startNum); // 랜덤 숫자가 시작숫자보다 작을경우 다시 랜덤숫자를 발생시킨다. + + return randomNum; + } + + /** + * 특정 숫자 집합에서 특정 숫자가 있는지 체크하는 기능 12345678에서 7이 있는지 없는지 체크하는 기능을 제공함 + * + * @param sourceInt - 특정숫자집합 + * @param searchInt - 검색숫자 + * @return 존재여부 + * @see + */ + public static Boolean getNumSearchCheck(int sourceInt, int searchInt) { + String sourceStr = String.valueOf(sourceInt); + String searchStr = String.valueOf(searchInt); + + // 특정숫자가 존재하는지 하여 위치값을 리턴한다. 없을 시 -1 + if (sourceStr.indexOf(searchStr) == -1) { + return false; + } else { + return true; + } + } + + /** + * 숫자타입을 문자열로 변환하는 기능 숫자 20081212를 문자열 '20081212'로 변환하는 기능 + * + * @param srcNumber - 숫자 + * @return 문자열 + * @see + */ + public static String getNumToStrCnvr(int srcNumber) { + String rtnStr = null; + + rtnStr = String.valueOf(srcNumber); + + return rtnStr; + } + + /** + * 숫자타입을 데이트 타입으로 변환하는 기능 + * 숫자 20081212를 데이트타입 '2008-12-12'로 변환하는 기능 + * @param srcNumber - 숫자 + * @return String + * @see + */ + public static String getNumToDateCnvr(int srcNumber) { + + String pattern = null; + String cnvrStr = null; + + String srcStr = String.valueOf(srcNumber); + + // Date 형태인 8자리 및 14자리만 정상처리 + if (srcStr.length() != 8 && srcStr.length() != 14) { + throw new IllegalArgumentException("Invalid Number: " + srcStr + " Length=" + srcStr.trim().length()); + } + + if (srcStr.length() == 8) { + pattern = "yyyyMMdd"; + } else if (srcStr.length() == 14) { + pattern = "yyyyMMddhhmmss"; + } + + SimpleDateFormat dateFormatter = new SimpleDateFormat(pattern, Locale.KOREA); + + Date cnvrDate = null; + + try { + cnvrDate = dateFormatter.parse(srcStr); + } catch (ParseException e) { + throw new RuntimeException(e); + } + + cnvrStr = String.format("%1$tY-%1$tm-%1$td", cnvrDate); + + return cnvrStr; + + } + + /** + * 체크할 숫자 중에서 숫자인지 아닌지 체크하는 기능 + * 숫자이면 True, 아니면 False를 반환한다 + * @param checkStr - 체크문자열 + * @return 숫자여부 + * @see + */ + public static Boolean getNumberValidCheck(String checkStr) { + + int i; + //String sourceStr = String.valueOf(sourceInt); + + int checkStrLt = checkStr.length(); + + for (i = 0; i < checkStrLt; i++) { + + // 아스키코드값( '0'-> 48, '9' -> 57) + if (checkStr.charAt(i) > 47 && checkStr.charAt(i) < 58) { + continue; + } else { + return false; + } + } + + return true; + } + + /** + * 특정숫자를 다른 숫자로 치환하는 기능 숫자 12345678에서 123를 999로 변환하는 기능을 제공(99945678) + * + * @param srcNumber - 숫자집합 + * @param cnvrSrcNumber - 원래숫자 + * @param cnvrTrgtNumber - 치환숫자 + * @return 치환숫자 + * @see + */ + public static int getNumberCnvr(int srcNumber, int cnvrSrcNumber, int cnvrTrgtNumber) { + + // 입력받은 숫자를 문자열로 변환 + String source = String.valueOf(srcNumber); + String subject = String.valueOf(cnvrSrcNumber); + String object = String.valueOf(cnvrTrgtNumber); + + StringBuffer rtnStr = new StringBuffer(); + String preStr = ""; + String nextStr = source; + + // 원본숫자에서 변환대상숫자의 위치를 찾는다. + while (source.indexOf(subject) >= 0) { + preStr = source.substring(0, source.indexOf(subject)); // 변환대상숫자 위치까지 숫자를 잘라낸다 + nextStr = source.substring(source.indexOf(subject) + subject.length(), source.length()); + source = nextStr; + rtnStr.append(preStr).append(object); // 변환대상위치 숫자에 변환할 숫자를 붙여준다. + } + rtnStr.append(nextStr); // 변환대상 숫자 이후 숫자를 붙여준다. + + return Integer.parseInt(rtnStr.toString()); + } + + /** + * 특정숫자가 실수인지, 정수인지, 음수인지 체크하는 기능 123이 실수인지, 정수인지, 음수인지 체크하는 기능을 제공함 + * + * @param srcNumber - 숫자집합 + * @return -1(음수), 0(정수), 1(실수) + * @see + */ + public static int checkRlnoInteger(double srcNumber) { + + // byte 1바이트 ▶소수점이 없는 숫자로, 범위 -2^7 ~ 2^7 -1 + // short 2바이트 ▶소수점이 없는 숫자로, 범위 -2^15 ~ 2^15 -1 + // int 4바이트 ▶소수점이 없는 숫자로, 범위 -2^31 ~ 2^31 - 1 + // long 8바이트 ▶소수점이 없는 숫자로, 범위 -2^63 ~ 2^63-1 + + // float 4바이트 ▶소수점이 있는 숫자로, 끝에 F 또는 f 가 붙는 숫자 (예:3.14f) + // double 8바이트 ▶소수점이 있는 숫자로, 끝에 아무것도 붙지 않는 숫자 (예:3.14) + // ▶소수점이 있는 숫자로, 끝에 D 또는 d 가 붙는 숫자(예:3.14d) + + String cnvrString = null; + + if (srcNumber < 0) { + return -1; + } else { + cnvrString = String.valueOf(srcNumber); + + if (cnvrString.indexOf(".") == -1) { + return 0; + } else { + return 1; + } + } + } +} diff --git a/src/main/java/egovframework/com/utl/fcc/service/EgovStringUtil.java b/src/main/java/egovframework/com/utl/fcc/service/EgovStringUtil.java new file mode 100644 index 0000000..eaaee5f --- /dev/null +++ b/src/main/java/egovframework/com/utl/fcc/service/EgovStringUtil.java @@ -0,0 +1,884 @@ +/** + * @Class Name : EgovStringUtil.java + * @Description : 문자열 데이터 처리 관련 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.13 박정규 최초 생성 + * 2009.02.13 이삼섭 내용 추가 + * + * @author 공통 서비스 개발팀 박정규 + * @since 2009. 01. 13 + * @version 1.0 + * @see + * + */ + +package egovframework.com.utl.fcc.service; + +/* + * Copyright 2001-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the ";License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS"; BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import java.security.SecureRandom; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.Locale; + +public class EgovStringUtil { + /** + * 빈 문자열 "". + */ + public static final String EMPTY = ""; + + /** + *

Padding을 할 수 있는 최대 수치

+ */ + // private static final int PAD_LIMIT = 8192; + + /** + *

An array of Strings used for padding.

+ *

Used for efficient space padding. The length of each String expands as needed.

+ */ + /* + private static final String[] PADDING = new String[Character.MAX_VALUE]; + + static { + // space padding is most common, start with 64 chars + PADDING[32] = " "; + } + */ + + /** + * 문자열이 지정한 길이를 초과했을때 지정한길이에다가 해당 문자열을 붙여주는 메서드. + * @param source 원본 문자열 배열 + * @param output 더할문자열 + * @param slength 지정길이 + * @return 지정길이로 잘라서 더할분자열 합친 문자열 + */ + public static String cutString(String source, String output, int slength) { + String returnVal = null; + if (source != null) { + if (source.length() > slength) { + returnVal = source.substring(0, slength) + output; + } else + returnVal = source; + } + return returnVal; + } + + /** + * 문자열이 지정한 길이를 초과했을때 해당 문자열을 삭제하는 메서드 + * @param source 원본 문자열 배열 + * @param slength 지정길이 + * @return 지정길이로 잘라서 더할분자열 합친 문자열 + */ + public static String cutString(String source, int slength) { + String result = null; + if (source != null) { + if (source.length() > slength) { + result = source.substring(0, slength); + } else + result = source; + } + return result; + } + + /** + *

+ * String이 비었거나("") 혹은 null 인지 검증한다. + *

+ * + *
+	 *  StringUtil.isEmpty(null)      = true
+	 *  StringUtil.isEmpty("")        = true
+	 *  StringUtil.isEmpty(" ")       = false
+	 *  StringUtil.isEmpty("bob")     = false
+	 *  StringUtil.isEmpty("  bob  ") = false
+	 * 
+ * + * @param str - 체크 대상 스트링오브젝트이며 null을 허용함 + * @return true - 입력받은 String 이 빈 문자열 또는 null인 경우 + */ + public static boolean isEmpty(String str) { + return str == null || str.length() == 0; + } + + /** + *

기준 문자열에 포함된 모든 대상 문자(char)를 제거한다.

+ * + *
+	 * StringUtil.remove(null, *)       = null
+	 * StringUtil.remove("", *)         = ""
+	 * StringUtil.remove("queued", 'u') = "qeed"
+	 * StringUtil.remove("queued", 'z') = "queued"
+	 * 
+ * + * @param str 입력받는 기준 문자열 + * @param remove 입력받는 문자열에서 제거할 대상 문자열 + * @return 제거대상 문자열이 제거된 입력문자열. 입력문자열이 null인 경우 출력문자열은 null + */ + public static String remove(String str, char remove) { + if (isEmpty(str) || str.indexOf(remove) == -1) { + return str; + } + char[] chars = str.toCharArray(); + int pos = 0; + for (int i = 0; i < chars.length; i++) { + if (chars[i] != remove) { + chars[pos++] = chars[i]; + } + } + return new String(chars, 0, pos); + } + + /** + *

문자열 내부의 콤마 character(,)를 모두 제거한다.

+ * + *
+	 * StringUtil.removeCommaChar(null)       = null
+	 * StringUtil.removeCommaChar("")         = ""
+	 * StringUtil.removeCommaChar("asdfg,qweqe") = "asdfgqweqe"
+	 * 
+ * + * @param str 입력받는 기준 문자열 + * @return " , "가 제거된 입력문자열 + * 입력문자열이 null인 경우 출력문자열은 null + */ + public static String removeCommaChar(String str) { + return remove(str, ','); + } + + /** + *

문자열 내부의 마이너스 character(-)를 모두 제거한다.

+ * + *
+	 * StringUtil.removeMinusChar(null)       = null
+	 * StringUtil.removeMinusChar("")         = ""
+	 * StringUtil.removeMinusChar("a-sdfg-qweqe") = "asdfgqweqe"
+	 * 
+ * + * @param str 입력받는 기준 문자열 + * @return " - "가 제거된 입력문자열 + * 입력문자열이 null인 경우 출력문자열은 null + */ + public static String removeMinusChar(String str) { + return remove(str, '-'); + } + + /** + * 원본 문자열의 포함된 특정 문자열을 새로운 문자열로 변환하는 메서드 + * @param source 원본 문자열 + * @param subject 원본 문자열에 포함된 특정 문자열 + * @param object 변환할 문자열 + * @return sb.toString() 새로운 문자열로 변환된 문자열 + */ + public static String replace(String source, String subject, String object) { + StringBuffer rtnStr = new StringBuffer(); + String preStr = ""; + String nextStr = source; + String srcStr = source; + + while (srcStr.indexOf(subject) >= 0) { + preStr = srcStr.substring(0, srcStr.indexOf(subject)); + nextStr = srcStr.substring(srcStr.indexOf(subject) + subject.length(), srcStr.length()); + srcStr = nextStr; + rtnStr.append(preStr).append(object); + } + rtnStr.append(nextStr); + + return rtnStr.toString(); + } + + /** + * 원본 문자열의 포함된 특정 문자열 첫번째 한개만 새로운 문자열로 변환하는 메서드 + * @param source 원본 문자열 + * @param subject 원본 문자열에 포함된 특정 문자열 + * @param object 변환할 문자열 + * @return sb.toString() 새로운 문자열로 변환된 문자열 / source 특정문자열이 없는 경우 원본 문자열 + */ + public static String replaceOnce(String source, String subject, String object) { + StringBuffer rtnStr = new StringBuffer(); + String preStr = ""; + String nextStr = source; + if (source.indexOf(subject) >= 0) { + preStr = source.substring(0, source.indexOf(subject)); + nextStr = source.substring(source.indexOf(subject) + subject.length(), source.length()); + rtnStr.append(preStr).append(object).append(nextStr); + + return rtnStr.toString(); + } else { + return source; + } + } + + /** + * subject에 포함된 각각의 문자를 object로 변환한다. + * + * @param source 원본 문자열 + * @param subject 원본 문자열에 포함된 특정 문자열 + * @param object 변환할 문자열 + * @return sb.toString() 새로운 문자열로 변환된 문자열 + */ + public static String replaceChar(String source, String subject, String object) { + StringBuffer rtnStr = new StringBuffer(); + String preStr = ""; + String nextStr = source; + String srcStr = source; + + char chA; + + for (int i = 0; i < subject.length(); i++) { + chA = subject.charAt(i); + + if (srcStr.indexOf(chA) >= 0) { + preStr = srcStr.substring(0, srcStr.indexOf(chA)); + nextStr = srcStr.substring(srcStr.indexOf(chA) + 1, srcStr.length()); + srcStr = rtnStr.append(preStr).append(object).append(nextStr).toString(); + } + } + + return srcStr; + } + + /** + *

strsearchStr의 시작(index) 위치를 반환.

+ * + *

입력값 중 null이 있을 경우 -1을 반환.

+ * + *
+	 * StringUtil.indexOf(null, *)          = -1
+	 * StringUtil.indexOf(*, null)          = -1
+	 * StringUtil.indexOf("", "")           = 0
+	 * StringUtil.indexOf("aabaabaa", "a")  = 0
+	 * StringUtil.indexOf("aabaabaa", "b")  = 2
+	 * StringUtil.indexOf("aabaabaa", "ab") = 1
+	 * StringUtil.indexOf("aabaabaa", "")   = 0
+	 * 
+ * + * @param str 검색 문자열 + * @param searchStr 검색 대상문자열 + * @return 검색 문자열 중 검색 대상문자열이 있는 시작 위치 검색대상 문자열이 없거나 null인 경우 -1 + */ + public static int indexOf(String str, String searchStr) { + if (str == null || searchStr == null) { + return -1; + } + + return str.indexOf(searchStr); + } + + /** + *

오라클의 decode 함수와 동일한 기능을 가진 메서드이다. + * sourStrcompareStr의 값이 같으면 + * returStr을 반환하며, 다르면 defaultStr을 반환한다. + *

+ * + *
+	 * StringUtil.decode(null, null, "foo", "bar")= "foo"
+	 * StringUtil.decode("", null, "foo", "bar") = "bar"
+	 * StringUtil.decode(null, "", "foo", "bar") = "bar"
+	 * StringUtil.decode("하이", "하이", null, "bar") = null
+	 * StringUtil.decode("하이", "하이  ", "foo", null) = null
+	 * StringUtil.decode("하이", "하이", "foo", "bar") = "foo"
+	 * StringUtil.decode("하이", "하이  ", "foo", "bar") = "bar"
+	 * 
+ * + * @param sourceStr 비교할 문자열 + * @param compareStr 비교 대상 문자열 + * @param returnStr sourceStr와 compareStr의 값이 같을 때 반환할 문자열 + * @param defaultStr sourceStr와 compareStr의 값이 다를 때 반환할 문자열 + * @return sourceStr과 compareStr의 값이 동일(equal)할 때 returnStr을 반환하며, + *
다르면 defaultStr을 반환한다. + */ + public static String decode(String sourceStr, String compareStr, String returnStr, String defaultStr) { + if (sourceStr == null && compareStr == null) { + return returnStr; + } + + if (sourceStr == null && compareStr != null) { + return defaultStr; + } + + if (sourceStr.trim().equals(compareStr)) { + return returnStr; + } + + return defaultStr; + } + + /** + *

오라클의 decode 함수와 동일한 기능을 가진 메서드이다. + * sourStrcompareStr의 값이 같으면 + * returStr을 반환하며, 다르면 sourceStr을 반환한다. + *

+ * + *
+	 * StringUtil.decode(null, null, "foo") = "foo"
+	 * StringUtil.decode("", null, "foo") = ""
+	 * StringUtil.decode(null, "", "foo") = null
+	 * StringUtil.decode("하이", "하이", "foo") = "foo"
+	 * StringUtil.decode("하이", "하이 ", "foo") = "하이"
+	 * StringUtil.decode("하이", "바이", "foo") = "하이"
+	 * 
+ * + * @param sourceStr 비교할 문자열 + * @param compareStr 비교 대상 문자열 + * @param returnStr sourceStr와 compareStr의 값이 같을 때 반환할 문자열 + * @return sourceStr과 compareStr의 값이 동일(equal)할 때 returnStr을 반환하며, + *
다르면 sourceStr을 반환한다. + */ + public static String decode(String sourceStr, String compareStr, String returnStr) { + return decode(sourceStr, compareStr, returnStr, sourceStr); + } + + /** + * 객체가 null인지 확인하고 null인 경우 "" 로 바꾸는 메서드 + * @param object 원본 객체 + * @return resultVal 문자열 + */ + public static String isNullToString(Object object) { + String string = ""; + + if (object != null) { + string = object.toString().trim(); + } + + return string; + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 ""로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
+	 *
+ */ + public static String nullConvert(Object src) { + //if (src != null && src.getClass().getName().equals("java.math.BigDecimal")) { + if (src != null && src instanceof java.math.BigDecimal) { + return ((BigDecimal) src).toString(); + } + + if (src == null || src.equals("null")) { + return ""; + } else { + return ((String) src).trim(); + } + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 ""로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
+	 *
+ */ + public static String nullConvert(String src) { + + if (src == null || src.equals("null") || "".equals(src) || " ".equals(src)) { + return ""; + } else { + return src.trim(); + } + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 "0"로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 "0"로 바꾼 String 값.
+	 *
+ */ + public static int zeroConvert(Object src) { + + if (src == null || src.equals("null")) { + return 0; + } else { + return Integer.parseInt(((String) src).trim()); + } + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 ""로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
+	 *
+ */ + public static int zeroConvert(String src) { + + if (src == null || src.equals("null") || "".equals(src) || " ".equals(src)) { + return 0; + } else { + return Integer.parseInt(src.trim()); + } + } + + /** + *

문자열에서 {@link Character#isWhitespace(char)}에 정의된 + * 모든 공백문자를 제거한다.

+ * + *
+	 * StringUtil.removeWhitespace(null)         = null
+	 * StringUtil.removeWhitespace("")           = ""
+	 * StringUtil.removeWhitespace("abc")        = "abc"
+	 * StringUtil.removeWhitespace("   ab  c  ") = "abc"
+	 * 
+ * + * @param str 공백문자가 제거도어야 할 문자열 + * @return the 공백문자가 제거된 문자열, null이 입력되면 null이 리턴 + */ + public static String removeWhitespace(String str) { + if (isEmpty(str)) { + return str; + } + int sz = str.length(); + char[] chs = new char[sz]; + int count = 0; + for (int i = 0; i < sz; i++) { + if (!Character.isWhitespace(str.charAt(i))) { + chs[count++] = str.charAt(i); + } + } + if (count == sz) { + return str; + } + + return new String(chs, 0, count); + } + + /** + * Html 코드가 들어간 문서를 표시할때 태그에 손상없이 보이기 위한 메서드 + * + * @param strString + * @return HTML 태그를 치환한 문자열 + */ + public static String checkHtmlView(String strString) { + String strNew = ""; + + StringBuffer strTxt = new StringBuffer(""); + + char chrBuff; + int len = strString.length(); + + for (int i = 0; i < len; i++) { + chrBuff = (char) strString.charAt(i); + + switch (chrBuff) { + case '<': + strTxt.append("<"); + break; + case '>': + strTxt.append(">"); + break; + case '"': + strTxt.append("""); + break; + case 10: + strTxt.append("
"); + break; + case ' ': + strTxt.append(" "); + break; + //case '&' : + //strTxt.append("&"); + //break; + default: + strTxt.append(chrBuff); + } + } + + strNew = strTxt.toString(); + + return strNew; + } + + /** + * 문자열을 지정한 분리자에 의해 배열로 리턴하는 메서드. + * @param source 원본 문자열 + * @param separator 분리자 + * @return result 분리자로 나뉘어진 문자열 배열 + */ + public static String[] split(String source, String separator) throws NullPointerException { + String[] returnVal = null; + int cnt = 1; + + int index = source.indexOf(separator); + int index0 = 0; + while (index >= 0) { + cnt++; + index = source.indexOf(separator, index + 1); + } + returnVal = new String[cnt]; + cnt = 0; + index = source.indexOf(separator); + while (index >= 0) { + returnVal[cnt] = source.substring(index0, index); + index0 = index + 1; + index = source.indexOf(separator, index + 1); + cnt++; + } + returnVal[cnt] = source.substring(index0); + + return returnVal; + } + + /** + *

{@link String#toLowerCase()}를 이용하여 소문자로 변환한다.

+ * + *
+	 * StringUtil.lowerCase(null)  = null
+	 * StringUtil.lowerCase("")    = ""
+	 * StringUtil.lowerCase("aBc") = "abc"
+	 * 
+ * + * @param str 소문자로 변환되어야 할 문자열 + * @return 소문자로 변환된 문자열, null이 입력되면 null 리턴 + */ + public static String lowerCase(String str) { + if (str == null) { + return null; + } + + return str.toLowerCase(); + } + + /** + *

{@link String#toUpperCase()}를 이용하여 대문자로 변환한다.

+ * + *
+	 * StringUtil.upperCase(null)  = null
+	 * StringUtil.upperCase("")    = ""
+	 * StringUtil.upperCase("aBc") = "ABC"
+	 * 
+ * + * @param str 대문자로 변환되어야 할 문자열 + * @return 대문자로 변환된 문자열, null이 입력되면 null 리턴 + */ + public static String upperCase(String str) { + if (str == null) { + return null; + } + + return str.toUpperCase(); + } + + /** + *

입력된 String의 앞쪽에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.

+ * + *
+	 * StringUtil.stripStart(null, *)          = null
+	 * StringUtil.stripStart("", *)            = ""
+	 * StringUtil.stripStart("abc", "")        = "abc"
+	 * StringUtil.stripStart("abc", null)      = "abc"
+	 * StringUtil.stripStart("  abc", null)    = "abc"
+	 * StringUtil.stripStart("abc  ", null)    = "abc  "
+	 * StringUtil.stripStart(" abc ", null)    = "abc "
+	 * StringUtil.stripStart("yxabc  ", "xyz") = "abc  "
+	 * 
+ * + * @param str 지정된 문자가 제거되어야 할 문자열 + * @param stripChars 제거대상 문자열 + * @return 지정된 문자가 제거된 문자열, null이 입력되면 null 리턴 + */ + public static String stripStart(String str, String stripChars) { + int strLen; + if (str == null || (strLen = str.length()) == 0) { + return str; + } + int start = 0; + if (stripChars == null) { + while ((start != strLen) && Character.isWhitespace(str.charAt(start))) { + start++; + } + } else if (stripChars.length() == 0) { + return str; + } else { + while ((start != strLen) && (stripChars.indexOf(str.charAt(start)) != -1)) { + start++; + } + } + + return str.substring(start); + } + + /** + *

입력된 String의 뒤쪽에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.

+ * + *
+	 * StringUtil.stripEnd(null, *)          = null
+	 * StringUtil.stripEnd("", *)            = ""
+	 * StringUtil.stripEnd("abc", "")        = "abc"
+	 * StringUtil.stripEnd("abc", null)      = "abc"
+	 * StringUtil.stripEnd("  abc", null)    = "  abc"
+	 * StringUtil.stripEnd("abc  ", null)    = "abc"
+	 * StringUtil.stripEnd(" abc ", null)    = " abc"
+	 * StringUtil.stripEnd("  abcyx", "xyz") = "  abc"
+	 * 
+ * + * @param str 지정된 문자가 제거되어야 할 문자열 + * @param stripChars 제거대상 문자열 + * @return 지정된 문자가 제거된 문자열, null이 입력되면 null 리턴 + */ + public static String stripEnd(String str, String stripChars) { + int end; + if (str == null || (end = str.length()) == 0) { + return str; + } + + if (stripChars == null) { + while ((end != 0) && Character.isWhitespace(str.charAt(end - 1))) { + end--; + } + } else if (stripChars.length() == 0) { + return str; + } else { + while ((end != 0) && (stripChars.indexOf(str.charAt(end - 1)) != -1)) { + end--; + } + } + + return str.substring(0, end); + } + + /** + *

입력된 String의 앞, 뒤에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.

+ * + *
+	 * StringUtil.strip(null, *)          = null
+	 * StringUtil.strip("", *)            = ""
+	 * StringUtil.strip("abc", null)      = "abc"
+	 * StringUtil.strip("  abc", null)    = "abc"
+	 * StringUtil.strip("abc  ", null)    = "abc"
+	 * StringUtil.strip(" abc ", null)    = "abc"
+	 * StringUtil.strip("  abcyx", "xyz") = "  abc"
+	 * 
+ * + * @param str 지정된 문자가 제거되어야 할 문자열 + * @param stripChars 제거대상 문자열 + * @return 지정된 문자가 제거된 문자열, null이 입력되면 null 리턴 + */ + public static String strip(String str, String stripChars) { + if (isEmpty(str)) { + return str; + } + + String srcStr = str; + srcStr = stripStart(srcStr, stripChars); + + return stripEnd(srcStr, stripChars); + } + + /** + * 문자열을 지정한 분리자에 의해 지정된 길이의 배열로 리턴하는 메서드. + * @param source 원본 문자열 + * @param separator 분리자 + * @param arraylength 배열 길이 + * @return 분리자로 나뉘어진 문자열 배열 + */ + public static String[] split(String source, String separator, int arraylength) throws NullPointerException { + String[] returnVal = new String[arraylength]; + int cnt = 0; + int index0 = 0; + int index = source.indexOf(separator); + while (index >= 0 && cnt < (arraylength - 1)) { + returnVal[cnt] = source.substring(index0, index); + index0 = index + 1; + index = source.indexOf(separator, index + 1); + cnt++; + } + returnVal[cnt] = source.substring(index0); + if (cnt < (arraylength - 1)) { + for (int i = cnt + 1; i < arraylength; i++) { + returnVal[i] = ""; + } + } + + return returnVal; + } + + /** + * 문자열 A에서 Z사이의 랜덤 문자열을 구하는 기능을 제공 시작문자열과 종료문자열 사이의 랜덤 문자열을 구하는 기능 + * + * @param startChr - 첫 문자 + * @param endChr - 마지막문자 + * @return 랜덤문자 + * @exception MyException + * @see + */ + public static String getRandomStr(char startChr, char endChr) { + + int randomInt; + String randomStr = null; + + // 시작문자 및 종료문자를 아스키숫자로 변환한다. + int startInt = Integer.valueOf(startChr); + int endInt = Integer.valueOf(endChr); + + // 시작문자열이 종료문자열보가 클경우 + if (startInt > endInt) { + throw new IllegalArgumentException("Start String: " + startChr + " End String: " + endChr); + } + + // 랜덤 객체 생성 + SecureRandom rnd = new SecureRandom(); + + do { + // 시작문자 및 종료문자 중에서 랜덤 숫자를 발생시킨다. + randomInt = rnd.nextInt(endInt + 1); + } while (randomInt < startInt); // 입력받은 문자 'A'(65)보다 작으면 다시 랜덤 숫자 발생. + + // 랜덤 숫자를 문자로 변환 후 스트링으로 다시 변환 + randomStr = (char) randomInt + ""; + + // 랜덤문자열를 리턴 + return randomStr; + } + + /** + * 문자열을 다양한 문자셋(EUC-KR[KSC5601],UTF-8..)을 사용하여 인코딩하는 기능 역으로 디코딩하여 원래의 문자열을 + * 복원하는 기능을 제공함 String temp = new String(문자열.getBytes("바꾸기전 인코딩"),"바꿀 인코딩"); + * String temp = new String(문자열.getBytes("8859_1"),"KSC5601"); => UTF-8 에서 + * EUC-KR + * + * @param srcString - 문자열 + * @param srcCharsetNm - 원래 CharsetNm + * @param charsetNm - CharsetNm + * @return 인(디)코딩 문자열 + * @exception MyException + * @see + */ + public static String getEncdDcd(String srcString, String srcCharsetNm, String cnvrCharsetNm) { + + String rtnStr = null; + + if (srcString == null) + return null; + + try { + rtnStr = new String(srcString.getBytes(srcCharsetNm), cnvrCharsetNm); + } catch (UnsupportedEncodingException e) { + rtnStr = null; + } + + return rtnStr; + } + + /** + * 특수문자를 웹 브라우저에서 정상적으로 보이기 위해 특수문자를 처리('<' -> & lT)하는 기능이다 + * @param srcString - '<' + * @return 변환문자열('<' -> "<" + * @exception MyException + * @see + */ + public static String getSpclStrCnvr(String srcString) { + + String rtnStr = null; + + StringBuffer strTxt = new StringBuffer(""); + + char chrBuff; + int len = srcString.length(); + + for (int i = 0; i < len; i++) { + chrBuff = (char) srcString.charAt(i); + + switch (chrBuff) { + case '<': + strTxt.append("<"); + break; + case '>': + strTxt.append(">"); + break; + case '&': + strTxt.append("&"); + break; + default: + strTxt.append(chrBuff); + } + } + + rtnStr = strTxt.toString(); + + return rtnStr; + } + + /** + * 응용어플리케이션에서 고유값을 사용하기 위해 시스템에서17자리의TIMESTAMP값을 구하는 기능 + * + * @param + * @return Timestamp 값 + * @exception MyException + * @see + */ + public static String getTimeStamp() { + + String rtnStr = null; + + // 문자열로 변환하기 위한 패턴 설정(년도-월-일 시:분:초:초(자정이후 초)) + String pattern = "yyyyMMddhhmmssSSS"; + + SimpleDateFormat sdfCurrent = new SimpleDateFormat(pattern, Locale.KOREA); + Timestamp ts = new Timestamp(System.currentTimeMillis()); + + rtnStr = sdfCurrent.format(ts.getTime()); + + return rtnStr; + } + + /** + * html의 특수문자를 표현하기 위해 + * + * @param srcString + * @return String + * @exception Exception + * @see + */ + public static String getHtmlStrCnvr(String srcString) { + + String tmpString = srcString; + + tmpString = tmpString.replaceAll("<", "<"); + tmpString = tmpString.replaceAll(">", ">"); + tmpString = tmpString.replaceAll("&", "&"); + tmpString = tmpString.replaceAll(" ", " "); + tmpString = tmpString.replaceAll("'", "\'"); + tmpString = tmpString.replaceAll(""", "\""); + + return tmpString; + + } + + /** + *

날짜 형식의 문자열 내부에 마이너스 character(-)를 추가한다.

+ * + *
+	 *   StringUtil.addMinusChar("20100901") = "2010-09-01"
+	 * 
+ * + * @param date 입력받는 문자열 + * @return " - "가 추가된 입력문자열 + */ + public static String addMinusChar(String date) { + if (date.length() == 8) { + return date.substring(0, 4).concat("-").concat(date.substring(4, 6)).concat("-").concat(date.substring(6, 8)); + } else { + return ""; + } + } +} diff --git a/src/main/java/egovframework/com/utl/sec/filter/CertProcessFilter.java b/src/main/java/egovframework/com/utl/sec/filter/CertProcessFilter.java new file mode 100644 index 0000000..80e6794 --- /dev/null +++ b/src/main/java/egovframework/com/utl/sec/filter/CertProcessFilter.java @@ -0,0 +1,54 @@ +package egovframework.com.utl.sec.filter; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; + +/** + * GPKISecureWeb 인증서 로그인 서비스 filter + * @author 공통컴포넌트개발팀 한성곤 + * @since 2009.08.13 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.08.13  한성곤          최초 생성
+ *
+ * 
+ */ +public class CertProcessFilter implements Filter { + @SuppressWarnings("unused") + private FilterConfig config; + + /** + * Filter init 메소드를 대치한다. + */ + public void init(FilterConfig config) throws ServletException { + this.config = config; + } + + /** + * Filter doFilter 메소드를 대치한다. + * RequestWrapper를 통해 HTML Tag 변환을 처리한다. + */ + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + chain.doFilter(new CertProcessRequestWrapper((HttpServletRequest)request), response); + } + + /** + * Filter destroy 메소드를 대치한다. + */ + public void destroy() { + // Empty Method + } +} diff --git a/src/main/java/egovframework/com/utl/sec/filter/CertProcessRequestWrapper.java b/src/main/java/egovframework/com/utl/sec/filter/CertProcessRequestWrapper.java new file mode 100644 index 0000000..dd2467c --- /dev/null +++ b/src/main/java/egovframework/com/utl/sec/filter/CertProcessRequestWrapper.java @@ -0,0 +1,84 @@ +package egovframework.com.utl.sec.filter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +/** + * GPKISecureWeb 인증서 로그인 서비스 HttpServletRequestWrapper + * @author 공통컴포넌트개발팀 한성곤 + * @since 2009.08.13 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.08.13  한성곤          최초 생성
+ *
+ * 
+ */ +public class CertProcessRequestWrapper extends HttpServletRequestWrapper { + + /** + * 생성자를 호출한다. + * + * @param request + */ + public CertProcessRequestWrapper(HttpServletRequest request) { + super(request); + } + + /** + * 변환된 HTML 태그들을 다시 변환한다. + * + * @param src + * @return + */ + protected String replaceString(String src) { + String srcString = src; + + srcString = srcString.replaceAll("<", "<"); + srcString = srcString.replaceAll(">", ">"); + srcString = srcString.replaceAll(""", "\""); + srcString = srcString.replaceAll("'", "'"); + srcString = srcString.replaceAll("&", "&"); + + return srcString; + } + + /** + * getParameterValues 메소드를 대치한다. + */ + public String[] getParameterValues(String parameter) { + String values[] = super.getParameterValues(parameter); + + if (values == null) { + return null; + } + + for(int i = 0; i < values.length; i++) { + if (values[i] != null) { + values[i] = replaceString(values[i]); + } + } + + return values; + } + + /** + * getParameter 메소드를 대치한다. + */ + public String getParameter(String parameter) { + String value = super.getParameter(parameter); + + if (value == null) { + return null; + } + + value = replaceString(value); + + return value; + } +} diff --git a/src/main/java/egovframework/com/utl/sec/service/CertInfoVO.java b/src/main/java/egovframework/com/utl/sec/service/CertInfoVO.java new file mode 100644 index 0000000..3fb096b --- /dev/null +++ b/src/main/java/egovframework/com/utl/sec/service/CertInfoVO.java @@ -0,0 +1,57 @@ +package egovframework.com.utl.sec.service; + +import java.io.Serializable; + +/** + * 인증서 정보 Value Object + * @author 공통컴포넌트개발팀 한성곤 + * @since 2009.08.06 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.08.06  한성곤          최초 생성
+ *
+ * 
+ */ +@SuppressWarnings("serial") +public class CertInfoVO implements Serializable { + /** 인증서 DN */ + private String subjectDn = null; + /** 발급자 DN */ + private String issuerDn = null; + + /** + * subjectDn attribute를 리턴한다. + * @return the subjectDn + */ + public String getSubjectDn() { + return subjectDn; + } + /** + * subjectDn attribute 값을 설정한다. + * @param subjectDn the subjectDn to set + */ + public void setSubjectDn(String subjectDn) { + this.subjectDn = subjectDn; + } + /** + * issuerDn attribute를 리턴한다. + * @return the issuerDn + */ + public String getIssuerDn() { + return issuerDn; + } + /** + * issuerDn attribute 값을 설정한다. + * @param issuerDn the issuerDn to set + */ + public void setIssuerDn(String issuerDn) { + this.issuerDn = issuerDn; + } + +} diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovClntInfo.java b/src/main/java/egovframework/com/utl/sim/service/EgovClntInfo.java new file mode 100644 index 0000000..36a8079 --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovClntInfo.java @@ -0,0 +1,122 @@ +/** + * Class Name : EgovClntInfo.java + * Description : 클라이언트(Client)의 IP주소, OS정보, 웹브라우저정보를 조회하는 Business Interface class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.19 박지욱 최초 생성 + * + * @author 공통 서비스 개발팀 박지욱 + * @since 2009. 01. 19 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +package egovframework.com.utl.sim.service; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.com.cmm.service.Globals; + +import javax.servlet.http.HttpServletRequest; + +public class EgovClntInfo { + + /** + * 클라이언트(Client)의 IP주소를 조회하는 기능 + * @param HttpServletRequest request Request객체 + * @return String ipAddr IP주소 + * @exception Exception + */ + public static String getClntIP(HttpServletRequest request) throws Exception { + + // IP주소 + String ipAddr = request.getRemoteAddr(); + return ipAddr; + } + + /** + * 클라이언트(Client)의 OS 정보를 조회하는 기능 + * @param HttpServletRequest request Request객체 + * @return String osInfo OS 정보 + * @exception Exception + */ + public static String getClntOsInfo(HttpServletRequest request) throws Exception { + + String user_agent = request.getHeader("user-agent"); + String os_info = user_agent.toUpperCase().split(";")[2].split("\\)")[0]; + String os_conf = EgovProperties.getProperty(Globals.CLIENT_CONF_PATH, os_info.replaceAll(" ", "")); + String osInfo = ""; + if (os_conf != null && !"".equals(os_conf)) { + osInfo = os_conf; + } else { + osInfo = os_info; + } + return osInfo; + } + + /** + * 클라이언트(Client)의 웹브라우저 종류를 조회하는 기능 + * @param HttpServletRequest request Request객체 + * @return String webKind 웹브라우저 종류 + * @exception Exception + */ + public static String getClntWebKind(HttpServletRequest request) throws Exception { + + String user_agent = request.getHeader("user-agent"); + + // 웹브라우저 종류 조회 + String webKind = ""; + if (user_agent.toUpperCase().indexOf("GECKO") != -1) { + if (user_agent.toUpperCase().indexOf("NESCAPE") != -1) { + webKind = "Netscape (Gecko/Netscape)"; + } else if (user_agent.toUpperCase().indexOf("FIREFOX") != -1) { + webKind = "Mozilla Firefox (Gecko/Firefox)"; + } else { + webKind = "Mozilla (Gecko/Mozilla)"; + } + } else if (user_agent.toUpperCase().indexOf("MSIE") != -1) { + if (user_agent.toUpperCase().indexOf("OPERA") != -1) { + webKind = "Opera (MSIE/Opera/Compatible)"; + } else { + webKind = "Internet Explorer (MSIE/Compatible)"; + } + } else if (user_agent.toUpperCase().indexOf("SAFARI") != -1) { + if (user_agent.toUpperCase().indexOf("CHROME") != -1) { + webKind = "Google Chrome"; + } else { + webKind = "Safari"; + } + } else if (user_agent.toUpperCase().indexOf("THUNDERBIRD") != -1) { + webKind = "Thunderbird"; + } else { + webKind = "Other Web Browsers"; + } + return webKind; + } + + /** + * 클라이언트(Client)의 웹브라우저 버전을 조회하는 기능 + * @param HttpServletRequest request Request객체 + * @return String webVer 웹브라우저 버전 + * @exception Exception + */ + public static String getClntWebVer(HttpServletRequest request) throws Exception { + + String user_agent = request.getHeader("user-agent"); + + // 웹브라우저 버전 조회 + String webVer = ""; + String [] arr = {"MSIE", "OPERA", "NETSCAPE", "FIREFOX", "SAFARI"}; + for (int i = 0; i < arr.length; i++) { + int s_loc = user_agent.toUpperCase().indexOf(arr[i]); + if (s_loc != -1) { + int f_loc = s_loc + arr[i].length(); + webVer = user_agent.toUpperCase().substring(f_loc, f_loc+5); + webVer = webVer.replaceAll("/", "").replaceAll(";", "").replaceAll("^", "").replaceAll(",", "").replaceAll("//.", ""); + } + } + return webVer; + } +} diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovFileCmprs.java b/src/main/java/egovframework/com/utl/sim/service/EgovFileCmprs.java new file mode 100644 index 0000000..e56a715 --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovFileCmprs.java @@ -0,0 +1,186 @@ +/** + * Class Name : EgovFileCmprs.java + * Description : 파일(디렉토리)의 압축 및 압축해제 하는 Business Interface class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.02.04 박지욱 최초 생성 + * + * @author 공통 서비스 개발팀 박지욱 + * @since 2009. 02. 04 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +package egovframework.com.utl.sim.service; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; +import java.util.zip.ZipOutputStream; + +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +public class EgovFileCmprs { + + final static int COMPRESSION_LEVEL = 8; + final static int BUFFER_SIZE = 64 * 1024; + final static char FILE_SEPARATOR = File.separatorChar; + + /** + * 파일(디렉토리)을 압축하는 기능 + * @param String source 원본파일명(디렉토리명) + * @param String target 압축파일명 + * @return boolean result 압축성공여부 True / False + * @exception Exception + */ + public static boolean cmprsFile(String source, String target) throws Exception { + + // 압축성공여부 + boolean result = false; + int cnt = 0; + // 읽어들일 byte 버퍼 + byte[] buffer = new byte[BUFFER_SIZE]; + + FileInputStream finput = null; + FileOutputStream foutput = null; + ZipOutputStream zoutput = null; + + String source1 = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + String target1 = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(source1); + + if (srcFile.exists()) { + + // 1. 파일인 경우 + if (srcFile.isFile()) { + + String target2 = EgovFileTool.createNewFile(target1); + File tarFile = new File(target2); + + foutput = null; + zoutput = null; + ZipEntry zentry = null; + + try { + foutput = new FileOutputStream(tarFile); + zoutput = new ZipOutputStream((OutputStream) foutput); + finput = new FileInputStream(srcFile); + zentry = new ZipEntry(srcFile.getName()); + zoutput.putNextEntry(zentry); + zoutput.setLevel(COMPRESSION_LEVEL); + cnt = 0; + while ((cnt = finput.read(buffer)) != -1) { + zoutput.write(buffer, 0, cnt); + } + zoutput.closeEntry(); + result = true; + } catch (IOException e) { + tarFile.delete(); + throw e; + } finally { + EgovResourceCloseHelper.close(finput, zoutput, foutput); + } + + // 2. 디렉토리인 경우 + } else if (srcFile.isDirectory()) { + + String target2 = EgovFileTool.createNewFile(target1); + File tarFile = new File(target2); + + ZipEntry zentry = null; + + try { + foutput = new FileOutputStream(tarFile); + zoutput = new ZipOutputStream((OutputStream) foutput); + File[] fileArr = srcFile.listFiles(); + List list = EgovFileTool.getSubFilesByAll(fileArr); + + for (int i = 0; i < list.size(); i++) { + File sfile = new File((String) list.get(i)); + finput = new FileInputStream(sfile); + zentry = new ZipEntry(sfile.getAbsolutePath().replace('\\', '/').replaceAll(srcFile.getAbsolutePath().replace('\\', '/'), "")); + zoutput.putNextEntry(zentry); + zoutput.setLevel(COMPRESSION_LEVEL); + cnt = 0; + while ((cnt = finput.read(buffer)) != -1) { + zoutput.write(buffer, 0, cnt); + } + finput.close(); + result = true; + } + zoutput.closeEntry(); + } catch (IOException e) { + tarFile.delete(); + throw e; + } finally { + EgovResourceCloseHelper.close(finput, zoutput, foutput); + } + } + } + return result; + } + + /** + * 파일(디렉토리)을 압축해제하는 기능 + * @param String source 압축파일명 + * @param String target 압출이 풀릴 디렉토리 + * @return boolean result 압축해제성공여부 True / False + * @exception Exception + */ + public static boolean decmprsFile(String source, String target) throws Exception { + + // 압축해제성공여부 + boolean result = false; + int cnt = 0; + // 읽어들일 byte 버퍼 + byte[] buffer = new byte[BUFFER_SIZE]; + + FileInputStream finput = null; + FileOutputStream foutput = null; + ZipInputStream zinput = null; + + String source1 = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + String target1 = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(source1); + + if (srcFile.exists() && srcFile.isFile()) { + + String target2 = EgovFileTool.createNewDirectory(target1); + File tarFile = new File(target2); + finput = new FileInputStream(srcFile); + zinput = new ZipInputStream((InputStream) finput); + + ZipEntry entry; + + try { + + while ((entry = zinput.getNextEntry()) != null) { + + String filename = entry.getName(); + String tempFile = EgovFileTool.createNewFile(tarFile.getAbsolutePath() + FILE_SEPARATOR + filename); + File efile = new File(tempFile); + foutput = new FileOutputStream(efile); + while ((cnt = zinput.read(buffer)) != -1) { + if (foutput != null) + foutput.write(buffer, 0, cnt); + } + } + + result = true; + + } finally { + EgovResourceCloseHelper.close(finput, zinput, foutput); + } + } + return result; + } +} diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovFileMntrg.java b/src/main/java/egovframework/com/utl/sim/service/EgovFileMntrg.java new file mode 100644 index 0000000..d278314 --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovFileMntrg.java @@ -0,0 +1,322 @@ +/** + * Class Name : EgovFileMntrg.java + * Description : 시스템 네트워크 정보를 확인하여 제공하는 Business class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.13 조재영 최초 생성 + * + * @author 공통 서비스 개발팀 조재영 + * @since 2009. 01. 13 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by EGOV All right reserved. + */ +package egovframework.com.utl.sim.service; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; + +import egovframework.com.cmm.util.EgovBasicLogger; +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +public class EgovFileMntrg extends Thread { + + /** + *

+ * 해당 파일의 변경 유무를 체크하기 위한 Default 초의 stati final 변수, 기본 적용은 값은 60초 + *

+ */ + //static final public long DEFAULT_DELAY = 60000; // 60초 + static final public long DEFAULT_DELAY = 30000; // 30초 + + /** + * 최대 문자길이 + **/ + static final int MAX_STR_LEN = 1024; + + /** + *

+ * 파일의 변경 유무를 체크하기 위한 해당파일명 변수 + *

+ */ + protected String filename; + + /** + *

+ * 해당 파일의 변경 유무를 체크하기 위한 Default 초의 stati final 변수, 기본 적용은 값은 60초{@link + * #DEFAULT_DELAY}. + *

+ */ + protected long delay = DEFAULT_DELAY; + + File file; // 타겟(감시대상) 디렉토리 + File logFile; // 감시정보보관용 로그파일 + long lastModif = 0; + boolean warnedAlready = false; + boolean interrupted = false; + List realOriginalList = new ArrayList(); // 최초의 원본리스트 + List originalList = new ArrayList(); // 직전리스트는 주기적으로 직전목록정보로 갱신된다. + List currentList = new ArrayList(); // 직전리스트와 비교할 현시점 리스트 + List changedList = new ArrayList(); // 직전리스트와 비교한 시점에 발생된 변경리스트 + List totalChangedList = new ArrayList(); // 최초리스트와 비교한 변경 리스트 + // totalChangedList는 필요시 checkAndConfigure함수 내에서 주석해제후 사용(부하량을 고려하여 사용) + int cnt = 0; + + /** + *

+ * 감시 하고자 하는 파일명을 파라메타로 받는 기본 컨스트럭터(Constructor). + *

+ * + * @param filename + */ + protected EgovFileMntrg(String filename, File logFile) { + //log.debug("EgovFileMntrg start"); + this.logFile = logFile; + this.filename = filename; + file = new File(filename); + // 1. 최초생성시 현재 디렉토리의 하위정보를 ArrayList에 보관한다. 보관정보 ==> 절대경로 + "," + 최종수정일시 + "," + 사이즈 + File[] fList = file.listFiles(); + for (int i = 0; i < fList.length; i++) { + realOriginalList.add(fList[i].getAbsolutePath() + "$" + getLastModifiedTime(fList[i]) + "$" + ((fList[i].length() / 1024) > 0 ? (fList[i].length() / 1024) : 1) + "KB"); + writeLog("ORI_" + fList[i].getAbsolutePath() + "$" + getLastModifiedTime(fList[i]) + "$" + ((fList[i].length() / 1024) > 0 ? (fList[i].length() / 1024) : 1) + "KB"); + } + originalList = new ArrayList(realOriginalList); + writeLog("START"); + setDaemon(true); + checkAndConfigure(); + //log.debug("EgovFileMntrg end"); + } + + /** + *

+ * 감시 하고자 하는 파일의 변경 유무를 체크 하고자 하는 delay 초를 set. + *

+ * + * @param delay 감시 주기 초 + */ + public void setDelay(long delay) { + this.delay = delay; + } + + /** + *

+ * 해당 파일의 변경시 작업 할 내용을 기술 할 추상(abstract) 메소드 + *

+ */ + //abstract protected void doOnChange(); + protected void doOnChange(List changedList) { + //log.debug("doOnChange() start"); + for (int i = 0; i < changedList.size(); i++) { + writeLog((String) changedList.get(i)); + } + changedList.clear(); //직전리스트와 비교해서 변경된 내역은 로그처리한 후 초기화한다. + originalList = new ArrayList(currentList); //현재리스트가 직전리스트가 된다.(새로 생성해야 함!) + cnt++; + + //log.debug("doOnChange() end"); + } + + /** + *

+ * 파일의 변경 유무를 체크하는 메소드 + *

+ */ + protected void checkAndConfigure() { + //log.debug("checkAndConfigure start"); + try { + currentList.clear(); + file = new File(filename); + // 현재정보를 ArrayList에 담는다. + File[] fList = file.listFiles(); + for (int i = 0; i < fList.length; i++) { + currentList.add(fList[i].getAbsolutePath() + "$" + getLastModifiedTime(fList[i]) + "$" + ((fList[i].length() / 1024) > 0 ? (fList[i].length() / 1024) : 1) + "KB"); + } + /* + for(int i = 0; i 0) { + //log.debug("change occur , changed file check count:"+cnt+ " , changed file count:"+changedList.size()); + doOnChange(changedList); + } + + if (isEnd()) { + //log.debug("Thread Process END !!! (CNT :"+cnt+")"); + interrupted = true; + } + //log.debug("checkAndConfigure end"+changedList.size()); + } + + /** + *

+ * 파일의 변경 유무의 체크를 주기적 초 단위로 실행 시키는 메소드 + *

+ */ + public void run() { + while (!interrupted) { + try { + Thread.sleep(delay); + } catch (InterruptedException e) { + EgovBasicLogger.ignore("Interrupted Exception", e); + } + checkAndConfigure(); + } + if (interrupted) { + this.interrupt(); + } + } + + /** + *
+	 * Comment : 디렉토리(파일)의 최종 수정시간를 확인한다.(기본로케일 java.util.Locale.KOREA 기준)
+	 * 
+ * @param File f 수정일자를 확인할 대상파일 + * @return String result 최종수정일자를 문자열로 리턴한다. + */ + public static String getLastModifiedTime(File f) { + long date = f.lastModified(); + java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("yyyyMMdd:HH:mm:ss", java.util.Locale.KOREA); + return dateFormat.format(new java.util.Date(date)); + } + + /** + *
+	 * Comment : 디렉토리(파일)의  로그정보를 기록한다.
+	 * 
+ * @param String logStr 추가할 로그정보(라인단위) + * @return boolean result 로그추가 성공여부 + */ + public boolean writeLog(String logStr) { + boolean result = false; + + FileWriter fWriter = null; + BufferedWriter bWriter = null; + BufferedReader br = null; + try { + fWriter = new FileWriter(logFile, true); + bWriter = new BufferedWriter(fWriter); + br = new BufferedReader(new StringReader(logStr)); + String line = ""; + while ((line = br.readLine()) != null) { + if (line.length() <= MAX_STR_LEN) { + bWriter.write(line + "\n", 0, line.length() + 1); + } + } + result = true; + } catch (IOException e) { + throw new RuntimeException("File IO exception", e); + } finally { + EgovResourceCloseHelper.close(br, bWriter, fWriter); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리감시 종료여부를 확인한다. 해당 디렉토리에 대한 로그파일이 삭제된 경우는 감시를 종료한다.
+	 * 
+ * @return boolean isEnd 감시종료여부 중단하려면 true 리턴, 계속하려면 false 리턴 + */ + public boolean isEnd() { + //log.debug("isEnd start"); + boolean isEnd = false; + String lastStr = ""; + BufferedReader br = null; + FileReader fr = null; + + try { + if (logFile.exists()) { + //로그파일을 읽어서 마지막 끝에 END가 있으면 종료된것임 + + fr = new FileReader(logFile); + br = new BufferedReader(fr); + //int ch = 0; + String line = ""; + while ((line = br.readLine()) != null) { + if (line.length() <= MAX_STR_LEN) { + lastStr = line; + } + } + if (lastStr.equals("END")) { + isEnd = true; + } + } else { + //로그파일이 없는 경우(삭제된 경우)도 종료한다. + isEnd = true; + } + } catch (IOException e) { + throw new RuntimeException("File IO exception", e); + } finally { + EgovResourceCloseHelper.close(br, fr); + } + return isEnd; + } +} diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovFileScrty.java b/src/main/java/egovframework/com/utl/sim/service/EgovFileScrty.java new file mode 100644 index 0000000..a8b579e --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovFileScrty.java @@ -0,0 +1,304 @@ +/** + * Class Name : EgovFileScrty.java + * Description : Base64인코딩/디코딩 방식을 이용한 데이터를 암호화/복호화하는 Business Interface class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.02.04 박지욱 최초 생성 + * + * @author 공통 서비스 개발팀 박지욱 + * @since 2009. 02. 04 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +package egovframework.com.utl.sim.service; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStreamReader; +import java.security.MessageDigest; + +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +import org.apache.commons.codec.binary.Base64; + +public class EgovFileScrty { + + // 파일구분자 + static final char FILE_SEPARATOR = File.separatorChar; + + static final int BUFFER_SIZE = 1024; + + /** + * 파일을 암호화하는 기능 + * + * @param String source 암호화할 파일 + * @param String target 암호화된 파일 + * @return boolean result 암호화여부 True/False + * @exception Exception + */ + public static boolean encryptFile(String source, String target) throws Exception { + + // 암호화 여부 + boolean result = false; + + String sourceFile = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + String targetFile = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(sourceFile); + + BufferedInputStream input = null; + BufferedOutputStream output = null; + + byte[] buffer = new byte[BUFFER_SIZE]; + + try { + if (srcFile.exists() && srcFile.isFile()) { + + input = new BufferedInputStream(new FileInputStream(srcFile)); + output = new BufferedOutputStream(new FileOutputStream(targetFile)); + + int length = 0; + while ((length = input.read(buffer)) >= 0) { + byte[] data = new byte[length]; + System.arraycopy(buffer, 0, data, 0, length); + output.write(encodeBinary(data).getBytes()); + output.write(System.getProperty("line.separator").getBytes()); + } + result = true; + } + } finally { + EgovResourceCloseHelper.close(input, output); + } + + return result; + } + + /** + * 파일을 복호화하는 기능 + * + * @param String source 복호화할 파일 + * @param String target 복호화된 파일 + * @return boolean result 복호화여부 True/False + * @exception Exception + */ + public static boolean decryptFile(String source, String target) throws Exception { + + // 복호화 여부 + boolean result = false; + + String sourceFile = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + String targetFile = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(sourceFile); + + BufferedReader input = null; + BufferedOutputStream output = null; + + //byte[] buffer = new byte[BUFFER_SIZE]; + String line = null; + + try { + if (srcFile.exists() && srcFile.isFile()) { + + input = new BufferedReader(new InputStreamReader(new FileInputStream(srcFile))); + output = new BufferedOutputStream(new FileOutputStream(targetFile)); + + while ((line = input.readLine()) != null) { + byte[] data = line.getBytes(); + output.write(decodeBinary(new String(data))); + } + + result = true; + } + } finally { + EgovResourceCloseHelper.close(input, output); + } + + return result; + } + + /** + * 데이터를 암호화하는 기능 + * + * @param byte[] data 암호화할 데이터 + * @return String result 암호화된 데이터 + * @exception Exception + */ + public static String encodeBinary(byte[] data) throws Exception { + if (data == null) { + return ""; + } + + return new String(Base64.encodeBase64(data)); + } + + /** + * 데이터를 암호화하는 기능 + * + * @param String data 암호화할 데이터 + * @return String result 암호화된 데이터 + * @exception Exception + */ + @Deprecated + public static String encode(String data) throws Exception { + return encodeBinary(data.getBytes()); + } + + /** + * 데이터를 복호화하는 기능 + * + * @param String data 복호화할 데이터 + * @return String result 복호화된 데이터 + * @exception Exception + */ + public static byte[] decodeBinary(String data) throws Exception { + return Base64.decodeBase64(data.getBytes()); + } + + /** + * 데이터를 복호화하는 기능 + * + * @param String data 복호화할 데이터 + * @return String result 복호화된 데이터 + * @exception Exception + */ + @Deprecated + public static String decode(String data) throws Exception { + return new String(decodeBinary(data)); + } + + /** + * 비밀번호를 암호화하는 기능(복호화가 되면 안되므로 SHA-256 인코딩 방식 적용). + * + * deprecated : 보안 강화를 위하여 salt로 ID를 지정하는 encryptPassword(password, id) 사용 + * + * @param String data 암호화할 비밀번호 + * @return String result 암호화된 비밀번호 + * @exception Exception + */ + @Deprecated + public static String encryptPassword(String data) throws Exception { + + if (data == null) { + return ""; + } + + byte[] plainText = null; // 평문 + byte[] hashValue = null; // 해쉬값 + plainText = data.getBytes(); + + MessageDigest md = MessageDigest.getInstance("SHA-256"); + + // 변경 시 기존 hash 값에 검증 불가.. => deprecated 시키고 유지 + /* + // Random 방식의 salt 추가 + SecureRandom ng = new SecureRandom(); + byte[] randomBytes = new byte[16]; + ng.nextBytes(randomBytes); + + md.reset(); + md.update(randomBytes); + + */ + hashValue = md.digest(plainText); + + /* + BASE64Encoder encoder = new BASE64Encoder(); + return encoder.encode(hashValue); + */ + return new String(Base64.encodeBase64(hashValue)); + } + + /** + * 비밀번호를 암호화하는 기능(복호화가 되면 안되므로 SHA-256 인코딩 방식 적용) + * + * @param password 암호화될 패스워드 + * @param id salt로 사용될 사용자 ID 지정 + * @return + * @throws Exception + */ + public static String encryptPassword(String password, String id) throws Exception { + + if (password == null) { + return ""; + } + + byte[] hashValue = null; // 해쉬값 + + MessageDigest md = MessageDigest.getInstance("SHA-256"); + + md.reset(); + md.update(id.getBytes()); + + hashValue = md.digest(password.getBytes()); + + return new String(Base64.encodeBase64(hashValue)); + } + + /** + * 비밀번호를 암호화하는 기능(복호화가 되면 안되므로 SHA-256 인코딩 방식 적용) + * @param data 암호화할 비밀번호 + * @param salt Salt + * @return 암호화된 비밀번호 + * @throws Exception + */ + public static String encryptPassword(String data, byte[] salt) throws Exception { + + if (data == null) { + return ""; + } + + byte[] hashValue = null; // 해쉬값 + + MessageDigest md = MessageDigest.getInstance("SHA-256"); + + md.reset(); + md.update(salt); + + hashValue = md.digest(data.getBytes()); + + return new String(Base64.encodeBase64(hashValue)); + } + + /** + * 비밀번호를 암호화된 패스워드 검증(salt가 사용된 경우만 적용). + * + * @param data 원 패스워드 + * @param encoded 해쉬처리된 패스워드(Base64 인코딩) + * @return + * @throws Exception + */ + public static boolean checkPassword(String data, String encoded, byte[] salt) throws Exception { + byte[] hashValue = null; // 해쉬값 + + MessageDigest md = MessageDigest.getInstance("SHA-256"); + + md.reset(); + md.update(salt); + hashValue = md.digest(data.getBytes()); + + return MessageDigest.isEqual(hashValue, Base64.decodeBase64(encoded.getBytes())); + } + + /* + public static void main(String[] args) { + try { + String password = "abc"; + String salt = "def"; + + String first = encryptPassword(password, salt.getBytes()); + String second = encryptPassword(password, salt.getBytes()); + System.out.println(password + " => " + first + " : " + checkPassword(password, first, salt.getBytes())); + System.out.println(password + " => " + second + " : " + checkPassword(password, second, salt.getBytes())); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + */ +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovFileTool.java b/src/main/java/egovframework/com/utl/sim/service/EgovFileTool.java new file mode 100644 index 0000000..6839fb3 --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovFileTool.java @@ -0,0 +1,2792 @@ +/** + * Class Name : EgovFileTool.java + * Description : 시스템 디렉토리 정보를 확인하여 제공하는 Business class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.13 조재영 최초 생성 + * + * @author 공통 서비스 개발팀 조재영,박지욱 + * @since 2009. 01. 13 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +package egovframework.com.utl.sim.service; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.StringReader; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Vector; + +import egovframework.com.cmm.EgovWebUtil; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.com.cmm.service.Globals; +import egovframework.com.cmm.util.EgovResourceCloseHelper; +import egovframework.com.utl.fcc.service.EgovStringUtil; + +public class EgovFileTool { + + // 파일사이즈 1K + static final long BUFFER_SIZE = 1024L; + // 파일구분자 + static final char FILE_SEPARATOR = File.separatorChar; + // 윈도우시스템 파일 접근권한 + static final char ACCESS_READ = 'R'; // 읽기전용 + static final char ACCESS_SYS = 'S'; // 시스템 + static final char ACCESS_HIDE = 'H'; // 숨김 + // 최대 문자길이 + static final int MAX_STR_LEN = 1024; + + // Log + //protected static final Log log = LogFactory.getLog(EgovFileTool.class); + + /** + *
+	 * Comment : 디렉토리 존재여부를 확인한다. (단일디렉토리 확인용)
+	 * 
+ * + * @param String targetDirPath 존재여부를 확인할 디렉토리의 절대경로 + * @return String result 존재하는 디렉토리 경로를 리턴한다. + */ + public static boolean getExistDirectory(String targetDirPath) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (targetDirPath == null || targetDirPath.equals("")) { + return false; + } + + boolean result = false; + File f = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + if (f.exists() && f.isDirectory()) { + result = true; + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리 존재여부를 확인한다. (하위디렉토리 확인용)
+	 * 
+ * + * @param String baseDirPath 존재여부를 확인할 디렉토리명의 기준경로 + * @param String targetDirPath 확인할 대상 디렉토리. baseDirPath 하위에서 존재여부를 확인한다. + * @param int cnt 확인할 디렉토리 갯수 (0보다 큰값이 입력되어야 한다. -1 입력시 21474846까지 찾도록 지원함 ) + * @return String result 존재하는 디렉토리 경로를 리턴한다. + */ + public static List getExistDirectory(String baseDirPath, String targetDirPath, int cnt) throws Exception { + + // 인자값 유효하지 않은 경우 빈 ArrayList 리턴 + if (baseDirPath == null || baseDirPath.equals("") || targetDirPath == null || targetDirPath.equals("") || cnt == 0) { + return new ArrayList(); + } + int dirCnt = 0; + if (cnt < 0) { + dirCnt = 21474846; + } else { + dirCnt = cnt; + } + + // 찾은 결과를 전달할 ArrayList + List result = new ArrayList(); + // 하위의 결과를 임시 보관할 ArrayList + List subResult = new ArrayList(); + // 현재경로(baseDirPath)에서 발견된 targetDirPath 갯수 + int dirFindCnt = 0; + boolean isExist = false; + String[] dirList = null; + String subDirPath = ""; + File f = null; + + f = new File(EgovWebUtil.filePathBlackList(baseDirPath)); + isExist = f.exists(); + + if (isExist) { + dirList = f.list(); + } + + for (int i = 0; dirList != null && i < dirList.length; i++) { + //log.debug("dirList["+i+"]:"+dirList[i] +"--->"+baseDirPath+"/"+dirList[i]); + subDirPath = baseDirPath + "/" + dirList[i]; + //log.debug("_"+targetDirPath+"_"); + //log.debug("_"+dirList[i]+"_"); + + f = new File(EgovWebUtil.filePathBlackList(subDirPath)); + + //현재경로(baseDirPath)에서 검색 + if (targetDirPath.equals(dirList[i])) { + // 중간에 발견하면 반복체크는 종료한다.(결과요청 갯수에 도달한 경우에 한해) - 이곳에서 종료되면 이후 하위에서 체크할 필요가 없다. + if (new File(EgovWebUtil.filePathBlackList(baseDirPath) + "/" + dirList[i]).isDirectory()) { + dirFindCnt++; + result.add(baseDirPath + "/" + dirList[i]); + if (dirFindCnt == dirCnt) { + break; + } + } + } + + //현재경로(baseDirPath)에서 발견된 하위 경로에서 반복하여 재귀적으로 검색 + int subCnt = dirCnt - dirFindCnt; + if (f.isDirectory()) { + //log.debug("f.isDirectory():"+f.isDirectory()); + subResult = getExistDirectory(subDirPath, targetDirPath, subCnt); + // 하위에서 발견된 디렉토리 갯수를 현재까지 찾은 디렉토리갯수에 추가한다. + dirFindCnt = dirFindCnt + subResult.size(); + // 하위에서 모두 발견된 경우 반복 체크는 종료한다. + if (dirCnt <= dirFindCnt) { + for (int j = 0; j < subResult.size(); j++) { + result.add((String) subResult.get(j)); + } + + break; + } else { + for (int j = 0; j < subResult.size(); j++) { + result.add((String) subResult.get(j)); + } + } + } + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리 존재여부를 확인한다. (생성일자를 조건으로 조건구간내 포함되는지 확인)
+	 * 
+ * + * @param String targetDirPath 존재여부를 확인할 디렉토리의 절대경로 + * @param String fromDate 생성일자 조건에 해당하는 시작일자(YYYYMMDD 형태로 입력) + * @param String toDate 생성일자 조건에 해당하는 종료일자(YYYYMMDD 형태로 입력) + * @return String result 존재하는 디렉토리 경로를 리턴한다. + */ + public static boolean getExistDirectory(String targetDirPath, String fromDate, String toDate) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (targetDirPath == null || targetDirPath.equals("") || fromDate == null || fromDate.equals("") || toDate == null || toDate.equals("")) { + return false; + } + + boolean result = false; + String lastModifyedDate = ""; + File f = null; + + f = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + lastModifyedDate = getLastModifiedDateFromFile(f); + //log.debug("getLastModifiedDateFromFile(f):"+lastModifyedDate); + if (Integer.parseInt(lastModifyedDate) >= Integer.parseInt(fromDate) && Integer.parseInt(lastModifyedDate) <= Integer.parseInt(toDate)) { + result = true; + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리 존재여부를 확인한다. (생성자를 조건으로 일치하는지 확인)
+	 * 
+ * + * @param String targetDirPath 존재여부를 확인할 디렉토리의 절대경로 + * @param String ownerName 생성자명(계정정보) + * @return String result 존재하는 디렉토리 경로를 리턴한다. + */ + public static boolean getExistDirectory(String targetDirPath, String ownerName) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (targetDirPath == null || targetDirPath.equals("") || ownerName == null || ownerName.equals("")) { + return false; + } + + boolean result = false; + //String tmp = ""; + + // 실행할 명령을 프로퍼티 파일에서 확인한다. + //Process p = null; + + String realOwner = getOwner(targetDirPath); + if (ownerName.equals(realOwner)) { + result = true; + } else { + result = false; + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리(파일)의 최종 수정일자를 확인한다. (기본로케일 java.util.Locale.KOREA 기준)
+	 * 
+ * + * @param File f 수정일자를 확인할 대상파일 + * @return String result 최종수정일자를 문자열로 리턴한다. + */ + public static String getLastModifiedDateFromFile(File f) { + + String result = ""; + + if (f.exists()) { + long date = f.lastModified(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", java.util.Locale.KOREA); + result = dateFormat.format(new java.util.Date(date)); + } else { + result = ""; + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리(파일)의 최종 수정일자를 확인한다. (기본로케일 java.util.Locale.KOREA 기준)
+	 * 
+ * + * @param String filePath 수정일자를 확인할 대상파일경로 + * @return String result 최종수정일자를 문자열로 리턴한다. + */ + public static String getLastModifiedDateFromFile(String filePath) { + + File f = null; + String result = ""; + f = new File(EgovWebUtil.filePathBlackList(filePath)); + result = getLastModifiedDateFromFile(f); + + return result; + } + + /** + *
+	 * Comment : 조건구간내에 생성된 디렉토리 목록을 조회한다.
+	 * 
+ * + * @param String filePath 하위디렉토리를 확인할 경로 + * @param String fromDate 조건시작일 + * @param String toDate 조건 종료일 + * @return ArrayList result 조건구간내에 생성된 디렉토리 목록을 리턴한다. + */ + public static List getLastDirectoryForModifiedDate(String baseDirPath, String fromDate, String toDate) { + + // 인자값 유효하지 않은 경우 빈 ArrayList 리턴 + if (baseDirPath == null || baseDirPath.equals("") || fromDate == null || fromDate.equals("") || toDate == null || toDate.equals("")) { + return new ArrayList(); + } + + File f = null; + File childFile = null; + String[] subDirList; + String subDirPath = ""; + List childResult = null; + List result = new ArrayList(); + + f = new File(EgovWebUtil.filePathBlackList(baseDirPath)); + subDirList = f.list(); + for (int i = 0; i < subDirList.length; i++) { + + subDirPath = baseDirPath + "/" + subDirList[i]; + childFile = new File(EgovWebUtil.filePathBlackList(subDirPath)); + if (childFile.isDirectory()) { + //childResult = getLastDirectoryForModifiedDate(subDirPath , fromDate, toDate); + String lastModifyedDate = getLastModifiedDateFromFile(childFile); + if (Integer.parseInt(lastModifyedDate) >= Integer.parseInt(fromDate) && Integer.parseInt(lastModifyedDate) <= Integer.parseInt(toDate)) { + result.add(baseDirPath + "/" + subDirList[i]); + } + childResult = getLastDirectoryForModifiedDate(baseDirPath + "/" + subDirList[i], fromDate, toDate); + // 하위디렉토리의 결과를 추가한다. + for (int j = 0; j < childResult.size(); j++) { + result.add((String) childResult.get(j)); + } + } + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리(파일)의 읽기권한을 확인한다.
+	 * 
+ * + * @param String filePath 읽기권한을 확인할 대상파일경로 + * @return boolean result 읽기가능하면 true를 리턴한다. 권한이 없어가 파일이 없는 경우는 false를 리턴한다. + */ + public static boolean canRead(String filePath) { + + // 인자값 유효하지 않은 경우 빈 false 리턴 + if (filePath == null || filePath.equals("")) { + return false; + } + + File f = null; + boolean result = false; + f = new File(EgovWebUtil.filePathBlackList(filePath)); + if (f.exists()) { + result = f.canRead(); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리(파일)의 쓰기권한을 확인한다.(대상경로가 파일인 경우만 정보가 유효함)
+	 * 
+ * + * @param String filePath 쓰기권한을 확인할 대상파일경로 + * @return boolean result 쓰기가능하면 true를 리턴한다. 권한이 없어가 파일이 없는 경우는 false를 리턴한다. + */ + public static boolean canWrite(String filePath) { + + // 인자값 유효하지 않은 경우 빈 false 리턴 + if (filePath == null || filePath.equals("")) { + return false; + } + + File f = null; + boolean result = false; + f = new File(EgovWebUtil.filePathBlackList(filePath)); + if (f.exists()) { + result = f.canWrite(); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리(파일)의 이름을  확인한다.
+	 * 
+ * + * @param String filePath 이름을 확인할 대상경로 + * @return String result 이름을 리턴한다. 존재하지 않는 경우는 블랭크를 리턴한다. + */ + public static String getName(String filePath) { + + // 인자값 유효하지 않은 경우 빈 false 리턴 + if (filePath == null || filePath.equals("")) { + return ""; + } + + File f = null; + String result = ""; + + f = new File(EgovWebUtil.filePathBlackList(filePath)); + if (f.exists()) { + result = f.getName(); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리(파일)를 삭제한다. (파일,디렉토리 구분없이 존재하는 경우 무조건 삭제한다)
+	 * 
+ * + * @param filePathToBeDeleted 삭제하고자 하는 파일의 절대경로 + 파일명 + * @return 성공하면 삭제된 절대경로, 아니면블랭크 + */ + + public static String deletePath(String filePath) { + File file = new File(EgovWebUtil.filePathBlackList(filePath)); + String result = ""; + + if (file.exists()) { + result = file.getAbsolutePath(); + if (!file.delete()) { + result = ""; + } + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리를 생성한다.
+	 * 
+ * + * @param dirPath 생성하고자 하는 절대경로 + * @return 성공하면 새성된 절대경로, 아니면 블랭크 + */ + + public static String createDirectory(String dirPath) { + File file = new File(EgovWebUtil.filePathBlackList(dirPath)); + String result = ""; + try { + if (!file.exists()) { + file.createNewFile(); + file.getAbsolutePath(); + } + + } catch (IOException e) { + throw new RuntimeException(e); + } + + return result; + } + + /** + * 디렉토리에 파일이 존재하는지 체크하는 기능 + * + * @param String dir 디렉토리 + * @param String file 파일 + * @return boolean result 존재여부 True / False + * @exception Exception + */ + public static boolean checkFileExstByName(String dir, String file) throws Exception { + + // 파일 존재 여부 + boolean result = false; + + // 디렉토리 오픈 + String drctry = dir.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcDrctry = new File(EgovWebUtil.filePathBlackList(drctry)); + + // 디렉토리이면서, 존재하면 + if (srcDrctry.exists() && srcDrctry.isDirectory()) { + + // 디렉토리 안 목록을 조회한다. (파일명) + File[] fileArray = srcDrctry.listFiles(); + List list = getSubFilesByName(fileArray, file); + if (list != null && list.size() > 0) { + result = true; + } + } + + return result; + } + + /** + * 확장자별로 디렉토리에 파일이 존재하는지 체크하는 기능 + * + * @param String dir 디렉토리 + * @param String eventn 확장자명(.txt 형태 입력) + * @return boolean result 존재여부 True / False + * @exception Exception + */ + public static boolean checkFileExstByExtnt(String dir, String eventn) throws Exception { + + // 파일 존재 여부 + boolean result = false; + + // 디렉토리 오픈 + String drctry = dir.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcDrctry = new File(EgovWebUtil.filePathBlackList(drctry)); + + // 디렉토리이면서, 존재하면 + if (srcDrctry.exists() && srcDrctry.isDirectory()) { + + // 디렉토리 안 목록을 조회한다. (확장자별) + File[] fileArray = srcDrctry.listFiles(); + List list = getSubFilesByExtnt(fileArray, eventn); + if (list != null && list.size() > 0) { + result = true; + } + } + + return result; + } + + /** + * 디렉토리에 생성자별 파일이 존재하는지 체크하는 기능 + * + * @param String dir 디렉토리 + * @param String owner 생성자 + * @return boolean result 존재여부 True / False + * @exception Exception + */ + public static boolean checkFileExstByOwner(String dir, String owner) throws Exception { + + // 파일 존재 여부 + boolean result = false; + + // 디렉토리 오픈 + String drctry = dir.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcDrctry = new File(EgovWebUtil.filePathBlackList(drctry)); + + // 디렉토리이면서, 존재하면 + if (srcDrctry.exists() && srcDrctry.isDirectory()) { + + // 디렉토리 안 목록을 조회한다. (생성자) + File[] fileArray = srcDrctry.listFiles(); + List list = getSubFilesByOwner(fileArray, owner); + if (list != null && list.size() > 0) { + result = true; + } + } + + return result; + } + + /** + * 수정기간별로 디렉토리에 파일이 존재하는지 체크하는 기능 + * + * @param String dir 디렉토리 + * @param String updtFrom 수정일자From(YYYYMMDD 형태로 입력) + * @param String updtTo 수정일자To(YYYYMMDD 형태로 입력) + * @return boolean result 존재여부 True / False + * @exception Exception + */ + public static boolean checkFileExstByUpdtPd(String dir, String updtFrom, String updtTo) throws Exception { + + // 파일 존재 여부 + boolean result = false; + + // 디렉토리 오픈 + String drctry = dir.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcDrctry = new File(EgovWebUtil.filePathBlackList(drctry)); + + // 디렉토리이면서, 존재하면 + if (srcDrctry.exists() && srcDrctry.isDirectory()) { + + // 디렉토리 안 목록을 조회한다. (수정기간별) + File[] fileArray = srcDrctry.listFiles(); + List list = getSubFilesByUpdtPd(fileArray, updtFrom, updtTo); + if (list != null && list.size() > 0) { + result = true; + } + } + + return result; + } + + /** + * 사이즈별로 디렉토리에 파일이 존재하는지 체크하는 기능 + * + * @param String dir 디렉토리 + * @param long sizeFrom 사이즈From (KB) + * @param long sizeTo 사이즈To (KB) + * @return boolean result 존재여부 True / False + * @exception Exception + */ + public static boolean checkFileExstBySize(String dir, long sizeFrom, long sizeTo) throws Exception { + + // 파일 존재 여부 + boolean result = false; + + // 디렉토리 오픈 + String drctry = dir.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcDrctry = new File(EgovWebUtil.filePathBlackList(drctry)); + + // 디렉토리이면서, 존재하면 + if (srcDrctry.exists() && srcDrctry.isDirectory()) { + + // 디렉토리 안 목록을 조회한다. (사이즈별) + File[] fileArray = srcDrctry.listFiles(); + List list = getSubFilesBySize(fileArray, sizeFrom, sizeTo); + if (list != null && list.size() > 0) { + result = true; + } + } + + return result; + } + + /** + * 디렉토리 내부 하위목록들 중에서 파일을 찾는 기능(모든 목록 조회) + * + * @param File[] fileArray 파일목록 + * @return ArrayList list 파일목록(절대경로) + * @exception Exception + */ + public static List getSubFilesByAll(File[] fileArray) throws Exception { + + ArrayList list = new ArrayList(); + + for (int i = 0; i < fileArray.length; i++) { + // 디렉토리 안에 디렉토리면 그 안의 파일목록에서 찾도록 재귀호출한다. + if (fileArray[i].isDirectory()) { + File[] tmpArray = fileArray[i].listFiles(); + list.addAll(getSubFilesByAll(tmpArray)); + // 파일이면 담는다. + } else { + list.add(fileArray[i].getAbsolutePath()); + } + } + + return list; + } + + /** + * 디렉토리 내부 하위목록들 중에서 파일을 찾는 기능(파일명) + * + * @param File[] fileArray 파일목록 + * @param String file 파일명 + * @return ArrayList list 파일목록(절대경로) + * @exception Exception + */ + public static List getSubFilesByName(File[] fileArray, String file) throws Exception { + + List list = new ArrayList(); + + for (int i = 0; i < fileArray.length; i++) { + // 디렉토리 안에 디렉토리면 그 안의 파일목록에서 찾도록 재귀호출한다. + if (fileArray[i].isDirectory()) { + File[] tmpArray = fileArray[i].listFiles(); + list.addAll(getSubFilesByName(tmpArray, file)); + // 파일이면 파일명이 같은지 비교한다. + } else { + if (fileArray[i].getName().equals(file)) { + list.add(fileArray[i].getAbsolutePath()); + } + } + } + + return list; + } + + /** + * 디렉토리 내부 하위목록들 중에서 파일을 찾는 기능(확장자별) + * + * @param File[] fileArray 파일목록 + * @param String extnt 확장자 + * @return ArrayList list 파일목록(절대경로) + * @exception Exception + */ + public static List getSubFilesByExtnt(File[] fileArray, String extnt) throws Exception { + + List list = new ArrayList(); + + for (int i = 0; i < fileArray.length; i++) { + // 디렉토리 안에 디렉토리면 그 안의 파일목록에서 찾도록 재귀호출한다. + if (fileArray[i].isDirectory()) { + File[] tmpArray = fileArray[i].listFiles(); + list.addAll(getSubFilesByExtnt(tmpArray, extnt)); + // 파일이면 확장자명이 들어있는지 비교한다. + } else { + if (fileArray[i].getName().indexOf(extnt) != -1) { + list.add(fileArray[i].getAbsolutePath()); + } + } + } + + return list; + } + + /** + * 디렉토리 내부 하위목록들 중에서 파일을 찾는 기능(최종수정기간별) + * + * @param File[] fileArray 파일목록 + * @param String updtFrom 수정일자From(YYYYMMDD 형태로 입력) + * @param String updtTo 수정일자To(YYYYMMDD 형태로 입력) + * @return ArrayList list 파일목록(절대경로) + * @exception Exception + */ + public static List getSubFilesByUpdtPd(File[] fileArray, String updtFrom, String updtTo) throws Exception { + + List list = new ArrayList(); + + for (int i = 0; i < fileArray.length; i++) { + // 디렉토리 안에 디렉토리면 그 안의 파일목록에서 찾도록 재귀호출한다. + if (fileArray[i].isDirectory()) { + File[] tmpArray = fileArray[i].listFiles(); + list.addAll(getSubFilesByUpdtPd(tmpArray, updtFrom, updtTo)); + // 파일이면 수정기간내에 존재하는지 비교한다. + } else { + // 파일의 최종수정일자 조회 + long date = fileArray[i].lastModified(); + java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("yyyyMMdd", java.util.Locale.KOREA); + String lastUpdtDate = dateFormat.format(new java.util.Date(date)); + // 수정기간 내에 존재하는지 확인 + if (Integer.parseInt(lastUpdtDate) >= Integer.parseInt(updtFrom) && Integer.parseInt(lastUpdtDate) <= Integer.parseInt(updtTo)) { + list.add(fileArray[i].getAbsolutePath()); + } + } + } + + return list; + } + + /** + * 디렉토리 내부 하위목록들 중에서 파일을 찾는 기능(사이즈별) + * + * @param File[] fileArray 파일목록 + * @param long sizeFrom 사이즈From(KB) + * @param long sizeTo 사이즈To(KB) + * @return ArrayList list 파일목록(절대경로) + * @exception Exception + */ + public static List getSubFilesBySize(File[] fileArray, long sizeFrom, long sizeTo) throws Exception { + + List list = new ArrayList(); + + for (int i = 0; i < fileArray.length; i++) { + // 디렉토리 안에 디렉토리면 그 안의 파일목록에서 찾도록 재귀호출한다. + if (fileArray[i].isDirectory()) { + File[] tmpArray = fileArray[i].listFiles(); + list.addAll(getSubFilesBySize(tmpArray, sizeFrom, sizeTo)); + // 파일이면, 사이즈내에 존재하는지 비교한다. + } else { + // 파일의 사이즈 조회 + long size = fileArray[i].length(); + // 사이즈 내에 존재하는지 확인 + if (size >= (sizeFrom * BUFFER_SIZE) && size <= (sizeTo * BUFFER_SIZE)) { + list.add(fileArray[i].getAbsolutePath()); + } + } + } + + return list; + } + + /** + * 디렉토리 내부 하위목록들 중에서 파일을 찾는 기능(생성자별) + * + * @param File[] fileArray 파일목록 + * @param String creator 생성자 + * @return ArrayList list 파일목록(절대경로) + * @exception Exception + */ + public static List getSubFilesByOwner(File[] fileArray, String owner) throws Exception { + + List list = new ArrayList(); + + for (int i = 0; i < fileArray.length; i++) { + // 디렉토리 안에 디렉토리면 그 안의 파일목록에서 찾도록 재귀호출한다. + if (fileArray[i].isDirectory()) { + File[] tmpArray = fileArray[i].listFiles(); + List list1 = getSubFilesByOwner(tmpArray, owner); + if (list1 != null) + list.addAll(list1); + + // 파일이면, 생성자가 같은지 비교한다. + } else { + // 파일 생성자 조회 + String fullpath = EgovWebUtil.filePathBlackList(fileArray[i].getAbsolutePath()); + Process p = null; + if (Globals.OS_TYPE.equals("UNIX")) { + String[] command = { EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".getDrctryByOwner"), + fullpath.substring(0, fullpath.lastIndexOf("/")), fullpath.substring(fullpath.lastIndexOf("/"), fullpath.length()), owner }; + p = Runtime.getRuntime().exec(command); + p.waitFor(); + } else if (Globals.OS_TYPE.equals("WINDOWS")) { + String command = EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".getDrctryByOwner"); + p = Runtime.getRuntime().exec(command); + p.waitFor(); + } + //프로세스 에러시 종료 + if (p != null && p.exitValue() != 0) { + BufferedReader b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + try { + while (b_err.ready()) { + //String line = b_err.readLine(); + //if (line.length() <= MAX_STR_LEN) log.debug("ERR\n" + line); + } + } finally { + EgovResourceCloseHelper.close(b_err); + } + } + //프로세스 실행 성공시 결과 확인 + else { + BufferedReader b_out = null; + try { + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (b_out.ready()) { + // 결과문자가 있으면 생성자가 일치하는 파일이 존재한다는 의미 + String tmpStr = b_out.readLine(); + if (tmpStr != null && "".equals(tmpStr) && tmpStr.length() <= MAX_STR_LEN) { + list.add(fileArray[i].getAbsolutePath()); + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + } + } + } + } + + return list; + } + + /** + *
+	 * Comment : 디렉토리를 생성한다.
+	 * 
+ * + * @param dirPath 생성하고자 하는 절대경로 + * @return 성공하면 새성된 절대경로, 아니면 블랭크 + */ + + public static String createNewDirectory(String dirPath) { + + // 인자값 유효하지 않은 경우 블랭크 리턴 + if (dirPath == null || dirPath.equals("")) { + return ""; + } + + File file = new File(EgovWebUtil.filePathBlackList(dirPath)); + String result = ""; + // 없으면 생성 + if (file.exists()) { + // 혹시 존재해도 파일이면 생성 - 생성되지 않는다.(아래는 실질적으로는 진행되지 않음) + if (file.isFile()) { + //new File(file.getParent()).mkdirs(); + if (file.mkdirs()) { + result = file.getAbsolutePath(); + } + } else { + result = file.getAbsolutePath(); + } + } else { + // 존해하지 않으면 생성 + if (file.mkdirs()) { + result = file.getAbsolutePath(); + } + } + + return result; + } + + /** + *
+	 * Comment : 파일을 생성한다.
+	 * 
+ * + * @param String fileName 파일의 절대경로 +파일명 + * @param String content 저장할 문자열입니다. c:/test/test1/test44.txt + * + */ + public static String createNewFile(String filePath) { + + // 인자값 유효하지 않은 경우 블랭크 리턴 + if (filePath == null || filePath.equals("")) { + return ""; + } + + File file = new File(EgovWebUtil.filePathBlackList(filePath)); + String result = ""; + try { + if (file.exists()) { + result = filePath; + } else { + // 존재하지 않으면 생성함 + new File(file.getParent()).mkdirs(); + if (file.createNewFile()) { + result = file.getAbsolutePath(); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리를 삭제한다.
+	 * 
+ * + * @param dirDeletePath 삭제하고자 하는디렉토리의 절대경로(파일의 경로가 들어오는 경우 삭제하지 않음) + * @return 성공하면 삭제된 절대경로, 아니면블랭크 + */ + + public static String deleteDirectory(String dirDeletePath) { + + // 인자값 유효하지 않은 경우 블랭크 리턴 + if (dirDeletePath == null || dirDeletePath.equals("")) { + return ""; + } + String result = ""; + File file = new File(EgovWebUtil.filePathBlackList(dirDeletePath)); + if (file.isDirectory()) { + String[] fileList = file.list(); + //소속된 파일을 모두 삭제 + for (int i = 0; i < fileList.length; i++) { + + //log.debug("fileList["+i+"] : "+ dirDeletePath +"/"+fileList[i]); + File f = new File(EgovWebUtil.filePathBlackList(dirDeletePath) + "/" + fileList[i]); + if (f.isFile()) { + //디렉토리에 속한 파일들을 모두 삭제한다. + f.delete(); + } else { + //디렉토리에 속한 하위 디렉토리들에 대한 삭제 명령을 재귀적으로 호출시킨다. + deleteDirectory(dirDeletePath + "/" + fileList[i]); + } + } + // 디렉토리에 속한 파일들과 하위 디렉토리가 삭제되었으면 디렉토리 자신을 삭제한다. + result = deletePath(dirDeletePath); + } else { + result = ""; + } + + return result; + } + + /** + *
+	 * Comment : 파일을 삭제한다.
+	 * 
+ * + * @param fileDeletePath 삭제하고자 하는파일의 절대경로 + * @return 성공하면 삭제된 파일의 절대경로, 아니면블랭크 + */ + + public static String deleteFile(String fileDeletePath) { + + // 인자값 유효하지 않은 경우 블랭크 리턴 + if (fileDeletePath == null || fileDeletePath.equals("")) { + return ""; + } + String result = ""; + File file = new File(EgovWebUtil.filePathBlackList(fileDeletePath)); + if (file.isFile()) { + result = deletePath(fileDeletePath); + } else { + result = ""; + } + + return result; + } + + /** + * 파일의 읽기권한을 체크한다. + * + * @param String file 파일 + * @return boolean result 읽기권한 True / False + * @exception Exception + */ + public static boolean checkReadAuth(String file) throws Exception { + + // 읽기가능여부 + boolean result = false; + + // 전달받은 경로를 통해 파일 인스턴스를 생성한다. + String file1 = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(EgovWebUtil.filePathBlackList(file1)); + + // 존재하는지 확인한다. + if (srcFile.exists()) { + // 읽기 가능한지 체크한다. + result = srcFile.canRead(); + } + + return result; + } + + /** + * 파일의 쓰기권한을 체크한다. + * + * @param String file 파일 + * @return boolean result 쓰기권한 True / False + * @exception Exception + */ + public static boolean checkWriteAuth(String file) throws Exception { + + // 쓰기가능여부 + boolean result = false; + + // 전달받은 경로를 통해 파일 인스턴스를 생성한다. + String file1 = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(EgovWebUtil.filePathBlackList(file1)); + + // 존재하는지 확인한다. + if (srcFile.exists()) { + // 쓰기 가능한지 체크한다. + result = srcFile.canWrite(); + } + + return result; + } + + /** + * 파일의 최종수정일자별 파일목록 조회하는 기능 + * + * @param String drctry 디렉토리 + * @param String updtDate 최종수정일자(YYYYMMDD 형태로 입력) + * @return ArrayList list 파일목록 + * @exception Exception + */ + public static List getFileListByDate(String drctry, String updtDate) throws Exception { + + // 결과 목록 + List list = null; + + // 디렉토리 오픈 + String drctry1 = drctry.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file = new File(EgovWebUtil.filePathBlackList(drctry1)); + + // 디렉토리이며, 존재하면 최종수정일자가 같은 파일목록 조회 시작 + if (file.exists() && file.isDirectory()) { + File[] fileArray = file.listFiles(); + list = getSubFilesByDate(fileArray, updtDate); + } + + return list; + } + + /** + * 파일의 최종수정기간내 파일목록 조회하는 기능 + * + * @param String drctry 디렉토리 + * @param String updtFrom 최종수정일자From(YYYYMMDD 형태로 입력) + * @param String updtTo 최종수정일자To(YYYYMMDD 형태로 입력) + * @return ArrayList list 파일목록 + * @exception Exception + */ + public static List getFileListByUpdtPd(String drctry, String updtFrom, String updtTo) throws Exception { + + // 결과 목록 + List list = null; + + // 디렉토리 오픈 + String drctry1 = drctry.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file = new File(EgovWebUtil.filePathBlackList(drctry1)); + + // 디렉토리이며, 최종수정기간내 존재하는 파일목록 조회 시작 + if (file.exists() && file.isDirectory()) { + File[] fileArray = file.listFiles(); + list = getSubFilesByUpdtPd(fileArray, updtFrom, updtTo); + } + + return list; + } + + /** + * 하위디렉토리 포함 최종수정일자가 같은 파일목록을 찾는 기능 + * + * @param File fileArray 파일목록 + * @param String updtDate 최종수정일자(YYYYMMDD 형태로 입력) + * @return ArrayList list 파일목록 + * @exception Exception + */ + public static List getSubFilesByDate(File[] fileArray, String updtDate) throws Exception { + + List list = new ArrayList(); + + for (int i = 0; i < fileArray.length; i++) { + // 디렉토리 안에 디렉토리면 그 안의 파일목록에서 찾도록 재귀호출한다. + if (fileArray[i].isDirectory()) { + File[] tmpArray = fileArray[i].listFiles(); + list.addAll(getSubFilesByDate(tmpArray, updtDate)); + // 파일이면 파일명이 같은지 비교한다. + } else { + // 파일의 최종수정일자 조회 + long date = fileArray[i].lastModified(); + java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("yyyyMMdd", java.util.Locale.KOREA); + String lastUpdtDate = dateFormat.format(new java.util.Date(date)); + if (Integer.parseInt(lastUpdtDate) == Integer.parseInt(updtDate)) { + list.add(fileArray[i].getAbsolutePath()); + } + } + } + + return list; + } + + /** + * 파일을 특정 구분자(',', '|', 'TAB')로 파싱하는 기능 + * + * @param String parFile 파일 + * @param String parChar 구분자(',', '|', 'TAB') + * @param int parField 필드수 + * @return Vector parResult 파싱결과 구조체 + * @exception Exception + */ + public static Vector> parsFileByChar(String parFile, String parChar, int parField) throws Exception { + + // 파싱결과 구조체 + Vector> parResult = new Vector>(); + + // 파일 오픈 + String parFile1 = parFile.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file = new File(EgovWebUtil.filePathBlackList(parFile1)); + BufferedReader br = null; + try { + // 파일이며, 존재하면 파싱 시작 + if (file.exists() && file.isFile()) { + + // 1. 파일 텍스트 내용을 읽어서 StringBuffer에 쌓는다. + br = new BufferedReader(new InputStreamReader(new FileInputStream(file))); + StringBuffer strBuff = new StringBuffer(); + String line = ""; + while ((line = br.readLine()) != null) { + if (line.length() < MAX_STR_LEN) + strBuff.append(line); + } + + // 2. 쌓은 내용을 특정 구분자로 파싱하여 String 배열로 얻는다. + String[] strArr = EgovStringUtil.split(strBuff.toString(), parChar); + + // 3. 필드 수 만큼 돌아가며 Vector 형태로 만든다. + int filedCnt = 1; + List arr = new ArrayList(); + for (int i = 0; i < strArr.length; i++) { + + if (parField != 1) { + if ((filedCnt % parField) == 1) { + if (strArr[i] != null) { + arr.add(strArr[i]); + } + if (i == (strArr.length - 1)) { + parResult.add(arr); + } + } else if ((filedCnt % parField) == 0) { + if (strArr[i] != null) { + arr.add(strArr[i]); + parResult.add(arr); + } + } else { + if (strArr[i] != null) { + arr.add(strArr[i]); + if (i == (strArr.length - 1)) { + parResult.add(arr); + } + } + } + } else { + arr = new ArrayList(); + if (strArr[i] != null) { + arr.add(strArr[i]); + } + parResult.add(arr); + } + + filedCnt++; + } + } + } finally { + EgovResourceCloseHelper.close(br); + } + + return parResult; + } + + /** + * 파일을 일정 길이로 파싱하는 기능 + * + * @param String parFile 파일 + * @param int[] parLen 각 필드의 길이 + * @param int parLine 읽어낼 라인수 + * @return Vector parResult 파싱결과 구조체 + * @exception Exception + */ + public static Vector> parsFileBySize(String parFile, int[] parLen, int parLine) throws Exception { + + // 파싱결과 구조체 + Vector> parResult = new Vector>(); + + // 파일 오픈 + String parFile1 = parFile.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file = new File(EgovWebUtil.filePathBlackList(parFile1)); + BufferedReader br = null; + try { + // 파일이며, 존재하면 파싱 시작 + if (file.exists() && file.isFile()) { + + // 1. 입력된 라인수만큼 파일 텍스트 내용을 읽어서 String[]에 쌓는다. + br = new BufferedReader(new InputStreamReader(new FileInputStream(file))); + if (parLine < 0) { + parLine = 0; + } + String[] strArr = new String[parLine]; + String line = ""; + int readCnt = 0; + while ((line = br.readLine()) != null && readCnt < parLine) { + if (line.length() <= MAX_STR_LEN) + strArr[readCnt++] = line; + } + + // 2. Vector 형태로 만든다. + for (int i = 0; i < strArr.length; i++) { + String text = strArr[i]; + List arr = new ArrayList(); + int idx = 0; + boolean result = false; + for (int j = 0; j < parLen.length; j++) { + if (!result) { //if(result != true){ + String split = ""; + if (text.length() < (idx + parLen[j])) { + split = text.substring(idx, text.length()); + result = true; + } else { + split = text.substring(idx, idx + parLen[j]); + } + arr.add(split); + idx = idx + parLen[j]; + } + } + parResult.add(arr); + } + } + } finally { + EgovResourceCloseHelper.close(br); + } + + return parResult; + } + + /** + * 두 파일의 사이즈를 비교하는 기능 (KB 단위 비교) + * + * @param String cmprFile1 파일1 + * @param String cmprFile2 파일2 + * @return boolean result 동일여부 True / False + * @exception Exception + */ + public static boolean cmprFilesBySize(String cmprFile1, String cmprFile2) throws Exception { + + // 파일 동일 여부 + boolean result = false; + + // 파일 오픈 + String cmprFile11 = cmprFile1.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + String cmprFile22 = cmprFile2.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file1 = new File(EgovWebUtil.filePathBlackList(cmprFile11)); + File file2 = new File(EgovWebUtil.filePathBlackList(cmprFile22)); + + // 파일이며, 존재하면 파일 사이즈 비교 + if (file1.exists() && file2.exists() && file1.isFile() && file2.isFile()) { + + // 파일1 사이즈 + long size1 = file1.length(); + + // 파일2 사이즈 + long size2 = file2.length(); + + // 사이즈 비교 + if (size1 == size2) { + result = true; + } + + } + + return result; + } + + /** + * 두 파일의 수정일자를 비교하는 기능 + * + * @param String cmprFile1 파일1 + * @param String cmprFile2 파일2 + * @return boolean result 동일여부 True / False + * @exception Exception + */ + public static boolean cmprFilesByUpdtPd(String cmprFile1, String cmprFile2) throws Exception { + + // 파일 동일 여부 + boolean result = false; + + // 파일 오픈 + String cmprFile11 = cmprFile1.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + String cmprFile22 = cmprFile2.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file1 = new File(EgovWebUtil.filePathBlackList(cmprFile11)); + File file2 = new File(EgovWebUtil.filePathBlackList(cmprFile22)); + + // 파일이며, 존재하면 파일 수정일자 비교 + if (file1.exists() && file2.exists() && file1.isFile() && file2.isFile()) { + + // 파일1 수정일자 + long date1 = file1.lastModified(); + java.text.SimpleDateFormat dateFormat1 = new java.text.SimpleDateFormat("yyyyMMdd", java.util.Locale.KOREA); + String lastUpdtDate1 = dateFormat1.format(new java.util.Date(date1)); + + // 파일2 수정일자 + long date2 = file2.lastModified(); + java.text.SimpleDateFormat dateFormat2 = new java.text.SimpleDateFormat("yyyyMMdd", java.util.Locale.KOREA); + String lastUpdtDate2 = dateFormat2.format(new java.util.Date(date2)); + + // 수정일자 비교 + if (lastUpdtDate1.equals(lastUpdtDate2)) { + result = true; + } + } + + return result; + } + + /** + * 두 파일의 내용을 비교하는 기능 (TEXT파일만 가능) + * + * @param String cmprFile1 파일1 + * @param String cmprFile2 파일2 + * @return boolean result 동일여부 True / False + * @exception Exception + */ + public static boolean cmprFilesByContent(String cmprFile1, String cmprFile2) throws Exception { + + // 파일 동일 여부 + boolean result = false; + + // 파일 오픈 + String cmprFile11 = cmprFile1.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + String cmprFile22 = cmprFile2.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file1 = new File(EgovWebUtil.filePathBlackList(cmprFile11)); + File file2 = new File(EgovWebUtil.filePathBlackList(cmprFile22)); + + BufferedReader br1 = null; + BufferedReader br2 = null; + + try { + // 파일이며, 존재하면 파일 내용 비교 + if (file1.exists() && file2.exists() && file1.isFile() && file2.isFile()) { + + List cmprText1 = new ArrayList(); + List cmprText2 = new ArrayList(); + + // 파일1 텍스트 내용 + br1 = new BufferedReader(new InputStreamReader(new FileInputStream(file1))); + String line1 = ""; + while ((line1 = br1.readLine()) != null) { + if (line1.length() < MAX_STR_LEN) + cmprText1.add(line1); + } + + // 파일2 텍스트 내용 + br2 = new BufferedReader(new InputStreamReader(new FileInputStream(file2))); + String line2 = ""; + while ((line2 = br2.readLine()) != null) { + if (line2.length() <= MAX_STR_LEN) + cmprText2.add(line2); + } + + // 내용 비교 + boolean isWrong = false; + for (int i = 0; i < cmprText1.size(); i++) { + if (!isWrong) { // if(isWrong != true){ + String text1 = cmprText1.get(i); + String text2 = cmprText2.get(i); + + if (!text1.equals(text2)) { + isWrong = true; + } + } + } + + if (!isWrong) { + result = true; + } + } + } finally { + EgovResourceCloseHelper.close(br1, br2); + } + + return result; + } + + /** + * 두 파일의 생성자를 비교하는 기능 + * + * @param String cmprFile1 파일1 + * @param String cmprFile2 파일2 + * @return boolean result 동일여부 True / False + * @exception Exception + */ + public static boolean cmprFilesByOwner(String cmprFile1, String cmprFile2) throws Exception { + + // 파일 동일 여부 + boolean result = false; + + // 파일1 생성자 + String owner1 = getOwner(cmprFile1); + + // 파일2 생성자 + String owner2 = getOwner(cmprFile2); + + if (owner1 != null && owner2 != null && !"".equals(owner1) && !"".equals(owner2) && owner1.equals(owner2)) { + result = true; + } + + return result; + } + + /** + * 단일 파일을 다른 파일에 복사(Copy)한다. + * + * @param String source 원본파일 + * @param String target 타겟파일 + * @return boolean result 복사여부 True / False + * @exception Exception + */ + public static boolean copyFile(String source, String target) throws Exception { + + // 복사여부 + boolean result = false; + + // 원본 파일 + String src = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + + // 타켓 파일 + String tar = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + // 원본 파일이 존재하는지 확인한다. + if (srcFile.exists()) { + + // 복사될 target 파일 생성 + tar = createNewFile(tar); + //log.debug("tar:"+tar); + File tarFile = new File(EgovWebUtil.filePathBlackList(tar)); + //log.debug("tarFile:"+tarFile.getAbsolutePath()); + // 복사 + result = execCopyFile(srcFile, tarFile); + } + + return result; + } + + /** + * 여러 파일을 다른 디렉토리에 복사(Copy)한다. + * + * @param String source 원본파일들 + * @param String target 타겟디렉토리 + * @return boolean result 복사여부 True / False + * @exception Exception + */ + public static boolean copyFiles(String[] source, String target) throws Exception { + + // 복사여부 + boolean result = true; + + // 복사 이전에 복사할 파일들의 경로가 올바른지 확인한다. + for (int i = 0; i < source.length; i++) { + String src = source[i].replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File chkFile = new File(EgovWebUtil.filePathBlackList(src)); + if (!chkFile.exists()) { + //log.debug("+++ 원본 파일이 존재하지 않습니다."); + return result; + } + } + + String tar = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + // 복사를 시작한다. + for (int j = 0; j < source.length; j++) { + + if (result) { //result != false + + // 타겟파일이름 명명 + File chkFile = new File(EgovWebUtil.filePathBlackList(source[j])); + String tarTemp = tar + FILE_SEPARATOR + chkFile.getName(); + + // 복사될 target 파일 생성 + tarTemp = createNewFile(tarTemp); + File tarFile = new File(EgovWebUtil.filePathBlackList(tarTemp)); + + // 복사 + result = execCopyFile(chkFile, tarFile); + } + } // end for + + return result; + } + + /** + * 확장자별 파일들을 다른 디렉토리에 복사(Copy)한다. + * + * @param String source 원본디렉토리 + * @param String extnt 확장자(.txt 형태 입력) + * @param String target 타겟디렉토리 + * @return boolean result 복사여부 True / False + * @exception Exception + */ + public static boolean copyFilesByExtnt(String source, String extnt, String target) throws Exception { + + // 복사여부 + boolean result = true; + + // 원본 파일 + String src = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + + // 원본 디렉토리가 존재하는지 확인한다. + if (srcFile.exists() && srcFile.isDirectory()) { + + String tar = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + // 원본 디렉토리 안에서 확장자가 일치하는 파일목록을 가져온다. + File[] fileArray = srcFile.listFiles(); + List list = getSubFilesByExtnt(fileArray, extnt); + + // 복사를 시작한다. + for (int i = 0; i < list.size(); i++) { + if (result) { //f(result != false){ + // 원본파일 절대경로 + String abspath = (String) list.get(i); + + // 타겟파일이름 명명 + File chkFile = new File(EgovWebUtil.filePathBlackList(abspath)); + String tarTemp = tar + FILE_SEPARATOR + chkFile.getName(); + + // 복사될 target 파일 생성 + tarTemp = createNewFile(tarTemp); + File tarFile = new File(EgovWebUtil.filePathBlackList(tarTemp)); + + // 복사 + result = execCopyFile(chkFile, tarFile); + } + } // end for + } + + return result; + } + + /** + * 수정기간내 파일들을 다른 디렉토리에 복사(Copy)한다. + * + * @param String source 원본디렉토리 + * @param String updtFrom 수정시작일자(YYYYMMDD 형태로 입력) + * @param String updtTo 수정종료일자(YYYYMMDD 형태로 입력) + * @param String target 타겟디렉토리 + * @return boolean result 복사여부 True / False + * @exception Exception + */ + public static boolean copyFilesByUpdtPd(String source, String updtFrom, String updtTo, String target) throws Exception { + + // 복사여부 + boolean result = true; + + // 원본 파일 + String src = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + + // 원본 디렉토리가 존재하는지 확인한다. + if (srcFile.exists() && srcFile.isDirectory()) { + + String tar = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + // 원본 디렉토리 안에서 수정기간내 존재하는 파일목록을 가져온다. + File[] fileArray = srcFile.listFiles(); + List list = getSubFilesByUpdtPd(fileArray, updtFrom, updtTo); + + // 복사를 시작한다. + for (int i = 0; i < list.size(); i++) { + + if (result) { //f(result != false){ + + // 원본파일 절대경로 + String abspath = (String) list.get(i); + + // 타겟파일이름 명명 + File chkFile = new File(EgovWebUtil.filePathBlackList(abspath)); + String tarTemp = tar + FILE_SEPARATOR + chkFile.getName(); + + // 복사될 target 파일 생성 + tarTemp = createNewFile(tarTemp); + File tarFile = new File(tarTemp); + + // 복사 + result = execCopyFile(chkFile, tarFile); + } + } // end for + } + + return result; + } + + /** + * 사이즈내 파일들을 다른 디렉토리에 복사(Copy)한다. + * + * @param String source 원본디렉토리 + * @param Long sizeFrom 최소사이즈(KB) + * @param Long sizeTo 최대사이즈(KB) + * @param String target 타겟디렉토리 + * @return boolean result 복사여부 True / False + * @exception Exception + */ + public static boolean copyFilesBySize(String source, long sizeFrom, long sizeTo, String target) throws Exception { + + // 복사여부 + boolean result = true; + + // 원본 파일 + String src = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + + // 원본 디렉토리가 존재하는지 확인한다. + if (srcFile.exists() && srcFile.isDirectory()) { + + String tar = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + // 원본 디렉토리 안에서 사이즈내 존재하는 파일목록을 가져온다. + File[] fileArray = srcFile.listFiles(); + List list = getSubFilesBySize(fileArray, sizeFrom, sizeTo); + + // 복사를 시작한다. + for (int i = 0; i < list.size(); i++) { + + if (result) { //result != false + // 원본파일 절대경로 + String abspath = (String) list.get(i); + + // 타겟파일이름 명명 + File chkFile = new File(EgovWebUtil.filePathBlackList(abspath)); + String tarTemp = tar + FILE_SEPARATOR + chkFile.getName(); + + // 복사될 target 파일 생성 + tarTemp = createNewFile(tarTemp); + File tarFile = new File(EgovWebUtil.filePathBlackList(tarTemp)); + + // 복사 + result = execCopyFile(chkFile, tarFile); + if (result) { + break; + } + } + } // end for + + } + + return result; + } + + /** + * 생성자별 파일들을 다른 디렉토리에 복사(Copy)한다. + * + * @param String source 원본디렉토리 + * @param String owner 생성자 + * @param String target 타겟디렉토리 + * @return boolean result 복사여부 True / False + * @exception Exception + */ + public static boolean copyFilesByOwner(String source, String owner, String target) throws Exception { + + // 복사여부 + boolean result = true; + + // 원본 파일 + String src = source.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + + // 원본 디렉토리가 존재하는지 확인한다. + if (srcFile.exists() && srcFile.isDirectory()) { + + String tar = target.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + // 원본 디렉토리 안에서 생성자별 일치하는 파일목록을 가져온다. + File[] fileArray = srcFile.listFiles(); + List list = getSubFilesByOwner(fileArray, owner); + + // 복사를 시작한다. + for (int i = 0; i < list.size(); i++) { + + if (result) { //result != false + + // 원본파일 절대경로 + String abspath = (String) list.get(i); + + // 타겟파일이름 명명 + File chkFile = new File(EgovWebUtil.filePathBlackList(abspath)); + String tarTemp = tar + FILE_SEPARATOR + chkFile.getName(); + + // 복사될 target 파일 생성 + tarTemp = createNewFile(tarTemp); + File tarFile = new File(EgovWebUtil.filePathBlackList(tarTemp)); + + // 복사 + result = execCopyFile(chkFile, tarFile); + + if (!result) { + break; + } + } + } // end for + + } + + return result; + } + + /** + * 복사를 수행하는 기능 + * + * @param File srcFile 원본파일 + * @param File tarFile 타겟파일 + * @return boolean result 복사여부 True / False + * @exception Exception + */ + public static boolean execCopyFile(File srcFile, File tarFile) throws Exception { + + // 결과 + boolean result = false; + FileInputStream fis = null; + FileOutputStream fos = null; + try { + // 복사 + fis = new FileInputStream(srcFile); + + //예외상황에 따른 처리 추가함. -> 만약 tarFile 이 디렉토리명인 경우 디렉토리 밑으로 새로 파일을 생성해서 복사한다.. like DOS + File tarFile1 = tarFile; + if (tarFile1.isDirectory()) { + tarFile1 = new File(EgovWebUtil.filePathBlackList(tarFile1.getAbsolutePath()) + "/" + srcFile.getName()); + } + fos = new FileOutputStream(tarFile1); + byte[] buffer = new byte[(int) BUFFER_SIZE]; + int i = 0; + if (fis != null && fos != null) { + while ((i = fis.read(buffer)) != -1) { + fos.write(buffer, 0, i); + } + } + + result = true; + } finally { + EgovResourceCloseHelper.close(fis, fos); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리를 삭제한다. (소유자 정보를 통해 삭제)
+	 * 
+ * + * @param dirDeletePath 삭제하고자 하는디렉토리의 절대경로(파일의 경로가 들어오는 경우 삭제하지 않음) + * @param owner 디렉토리의 삭제조건 생성자 + * @return 성공하면 삭제된 절대경로, 아니면블랭크 + */ + + public static String deleteDirectory(String dirDeletePath, String dirOwner) { + + // 인자값 유효하지 않은 경우 블랭크 리턴 + if (dirDeletePath == null || dirDeletePath.equals("") || dirOwner == null || dirOwner.equals("")) { + return ""; + } + + // 찾은 결과를 전달할 ArrayList + String result = ""; + File file = new File(EgovWebUtil.filePathBlackList(dirDeletePath)); + + try { + // 추가된 삭제조건 옵션에 합당한지 확인 + boolean isInCondition = false; + String realOwner = getOwner(dirDeletePath); + //log.debug("realOwner:"+realOwner); + if (dirOwner.equals(realOwner)) { + isInCondition = true; + } + // 삭제조건에 부합되면 디렉토리 삭제조치함 + if (file.isDirectory() && isInCondition) { + result = deleteDirectory(dirDeletePath); + } else { + result = realOwner; + } + } catch (Exception e) { + throw new RuntimeException(e); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리를 삭제한다. (생성일자 조건으로 삭제)
+	 * 
+ * + * @param dirDeletePath 삭제하고자 하는디렉토리의 절대경로(파일의 경로가 들어오는 경우 삭제하지 않음) + * @param fromDate 디렉토리의 삭제조건 시작일자 + * @param toDate 디렉토리의 삭제조건 종료일자 + * @return 성공하면 삭제된 절대경로, 아니면블랭크 + */ + public static String deleteDirectory(String dirDeletePath, String fromDate, String toDate) { + + // 인자값 유효하지 않은 경우 블랭크 리턴 + if (dirDeletePath == null || dirDeletePath.equals("") || fromDate == null || fromDate.equals("") || toDate == null || toDate.equals("")) { + return ""; + } + + // 찾은 결과를 전달할 ArrayList + String result = ""; + File file = new File(EgovWebUtil.filePathBlackList(dirDeletePath)); + + // 추가된 삭제조건 옵션에 합당한지 확인 + boolean isInCondition = false; + String lastModifyedDate = getLastModifiedDateFromFile(file); + //log.debug("lastModifyedDate:"+lastModifyedDate); + + if (Integer.parseInt(lastModifyedDate) >= Integer.parseInt(fromDate) && Integer.parseInt(lastModifyedDate) <= Integer.parseInt(toDate)) { + isInCondition = true; + } + + // 삭제조건에 부합되면 디렉토리 삭제조치함 + if (file.isDirectory() && isInCondition) { + result = deleteDirectory(dirDeletePath); + } + + return result; + } + + /** + * 파일(디렉토리)가 존재하는 파일시스템(마운트된 위치)을 조회하는 기능 + * + * @param String file 파일(디렉토리) + * @return String mountLc 마운트위치 + * @exception Exception + */ + public static String getMountLc(String file) throws Exception { + + // 디스크명 + String diskName = ""; + + //String drctryName = ""; + String src = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + + // 유닉스 파일시스템명 조회 (df -k $1 | grep $2 | awk -F" " '{print $7}') + if (Globals.OS_TYPE.equals("UNIX")) { + Process p = null; + String[] command = { EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".getMountLc"), src, "/" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + BufferedReader b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + try { + while (true) { + String str = b_out.readLine(); + if (str == null || "".equals(str)) { + break; + } + if (str.length() <= MAX_STR_LEN) { + diskName = str; + } else { + diskName = str.substring(0, MAX_STR_LEN); + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + } + + if (p != null) { + p.destroy(); + } + + // 윈도우 파일시스템명 조회 + } else if (Globals.OS_TYPE.equals("WINDOWS")) { + + diskName = src.substring(0, 1).toUpperCase(); + //log.debug(diskName); + } + } + + return diskName; + } + + /** + * 파일(디렉토리)가 존재하는 디렉토리(Parent)를 조회하는 기능 + * + * @param String file 파일(디렉토리) + * @return String drctryName 디렉토리 + * @exception Exception + */ + public static String getDrctryName(String file) throws Exception { + + String drctryName = ""; + String src = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + drctryName = srcFile.getParent(); + } + + return drctryName; + } + + /** + * 파일(디렉토리)가 존재하는 파일명을 조회하는 기능 + * + * @param String file 파일(디렉토리) + * @return String fileName 파일명 + * @exception Exception + */ + public static String getFileName(String file) throws Exception { + + String fileName = ""; + String src = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + fileName = srcFile.getName(); + } + + return fileName; + } + + /** + * 파일(디렉토리)의 최종수정일자를 조회하는 기능 + * + * @param String file 파일(디렉토리) + * @return String updtDate 최종수정일자(YYYYMMDD 형태) + * @exception Exception + */ + public static String getUpdtDate(String file) throws Exception { + + String updtDate = ""; + String src = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + long date = srcFile.lastModified(); + java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("yyyyMMdd", java.util.Locale.KOREA); + updtDate = dateFormat.format(new java.util.Date(date)); + } + + return updtDate; + } + + /** + * 파일(디렉토리)의 생성자를 조회하는 기능 + * + * @param String file 파일(디렉토리) + * @return String owner 생성자 + * @exception Exception + */ + public static String getOwner(String file) throws Exception { + + String owner = ""; + String src = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + BufferedReader b_err = null; + BufferedReader b_out = null; + try { + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + + // 파일 생성자 조회 + String parentPath = srcFile.getParent(); + String fname = srcFile.getName(); + + Process p = null; + String cmdStr = EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".getDrctryOwner"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), parentPath.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), + fname }; + p = Runtime.getRuntime().exec(command); + p.waitFor(); + //프로세스 에러시 종료 + if (p != null && p.exitValue() != 0) { + b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + while (b_err.ready()) { + //String line = b_err.readLine(); + //if (line.length() <= MAX_STR_LEN) log.debug("ERR\n" + line); + } + } else { //프로세스 실행 성공시 결과 확인 + boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (b_out.ready()) { + if (!result) { // result != true + // 결과문자가 있으면 생성자가 있다는 의미 + owner = b_out.readLine(); + if (owner.length() <= MAX_STR_LEN) { + if (owner != null && !"".equals(owner)) { + result = true; + break; + } + } + } + } + } + + } + } finally { + EgovResourceCloseHelper.close(b_err, b_out); + } + + return owner; + } + + /** + * 파일(디렉토리)의 접근권한을 조회하는 기능 + * + * @param String file 파일(디렉토리) + * @return String access 접근권한(유닉스=777, 666, 윈도우=Read, Write, Read Only) + * @exception Exception + */ + public static String getAccess(String file) throws Exception { + + String access = ""; + String src = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + BufferedReader b_err = null; + BufferedReader b_out = null; + try { + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + + // 접근권한 조회 + String parentPath = EgovWebUtil.filePathBlackList(srcFile.getParent()); + String fname = EgovWebUtil.filePathBlackList(srcFile.getName()); + + Process p = null; + if (Globals.OS_TYPE.equals("UNIX")) { + String[] command = { EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".getDrctryAccess"), parentPath, fname }; + p = Runtime.getRuntime().exec(command); + p.waitFor(); + //프로세스 에러시 종료 + if (p != null && p.exitValue() != 0) { + b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + while (b_err.ready()) { + //String line = b_err.readLine(); + //if (line.length() <= MAX_STR_LEN) log.debug("ERR\n" + line); + } + b_err.close(); + } + //프로세스 실행 성공시 결과 확인 + else { + boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (b_out.ready()) { + if (!result) { //result != true + access = b_out.readLine(); + if (access != null && !"".equals(access) && access.length() <= MAX_STR_LEN) { + result = true; + break; + } + } + } + b_out.close(); + } + } else if (Globals.OS_TYPE.equals("WINDOWS")) { + String[] command = { "cmd", "/c", "attrib", src }; + p = Runtime.getRuntime().exec(command); + p.waitFor(); + //프로세스 에러시 종료 + if (p != null && p.exitValue() != 0) { + b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + while (b_err.ready()) { + //String line = b_err.readLine(); + //if (line.length() <= MAX_STR_LEN) log.debug("ERR\n" + line); + } + } else { //프로세스 실행 성공시 결과 확인 + boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (b_out.ready()) { + if (!result) { //result != true + access = b_out.readLine(); + if (access != null && !"".equals(access) && access.length() <= MAX_STR_LEN) { + access = access.toUpperCase().replace(src.toUpperCase(), ""); + access = access.replace(" ", ""); + result = true; + if (result) { + break; + } + } + } + } + + if (result) { + String acs = ""; + boolean read = false; + boolean write = true; + boolean system = false; + boolean hidden = false; + + for (int i = 0; i < access.length(); i++) { + char chr = access.charAt(i); + switch (chr) { + case ACCESS_READ: + read = true; + write = false; + break; + case ACCESS_SYS: + system = true; + break; + case ACCESS_HIDE: + hidden = true; + break; + default: + break; + } + } + + if (read) { + acs += "READ-ONLY|"; + } else { + acs += "READ|"; + } + if (write) { + acs += "WRITE|"; + } + if (system) { + acs += "SYSTEM|"; + } + if (hidden) { + acs += "HIDDEN|"; + } + access = acs; + } + } + } + + } + } finally { + EgovResourceCloseHelper.close(b_err, b_out); + } + + return access; + } + + /** + * 파일(디렉토리)의 사이즈를 조회하는 기능 + * + * @param String file 파일(디렉토리) + * @return Long size 사이즈(Byte) + * @exception Exception + */ + public static long getSize(String file) throws Exception { + + long size = 0L; + String src = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + size = srcFile.length(); + } + + return size; + } + + /** + * 파일(디렉토리)의 포맷을 조회하는 기능 + * + * @param String file 파일(디렉토리) + * @return String format 포맷 + * @exception Exception + */ + public static String getFormat(String file) throws Exception { + + // 포맷, 타입 + String format = ""; + String type = ""; + + String src = file.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + + String[] strArr = src.split("\\."); + if (strArr.length >= 2) { + format = strArr[strArr.length - 1].toLowerCase(); + type = EgovProperties.getProperty(Globals.FILE_FORMAT_PATH, format); + } + } + + return type; + } + + /** + *
+	 * Comment : 디렉토리를 복사한다.
+	 * 
+ * + * @param String originalDirPath 원본 디렉토리 의 절대경로 + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @return boolean result 복사가 성공하면 true, 실패하면 false를 리턴한다. + */ + public static boolean copyDirectory(String originalDirPath, String targetDirPath) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (originalDirPath == null || originalDirPath.equals("") || targetDirPath == null || targetDirPath.equals("")) { + return false; + } + boolean result = false; + File f = null; + + f = new File(EgovWebUtil.filePathBlackList(originalDirPath)); + // 원본이 유효해야 진행한다. + if (f.exists() && f.isDirectory()) { + + //타겟으로 설정한 경로가 유효한지 확인(중간경로에 파일명 이 포함되어있으면 유효하지 못하므로 진행안함. + String targetDirPath1 = createNewDirectory(targetDirPath); + if (targetDirPath1.equals("")) { + result = false; + } else { + File targetDir = new File(EgovWebUtil.filePathBlackList(targetDirPath1)); + targetDir.mkdirs(); + // 디렉토리에 속한 파일들을 복사한다. + String[] originalFileList = f.list(); + if (originalFileList.length > 0) { + for (int i = 0; i < originalFileList.length; i++) { + File subF = new File(EgovWebUtil.filePathBlackList(originalDirPath) + FILE_SEPARATOR + originalFileList[i]); + if (subF.isFile()) { + //하위목록이 파일이면 파일복사실행 -> 실패 발생하는 경우 복사를 중단한다. + result = copyFile(originalDirPath + FILE_SEPARATOR + originalFileList[i], targetDir.getAbsolutePath() + FILE_SEPARATOR + originalFileList[i]); + } else { + //하위목록이 디렉토리이면 복사를 재귀적으로 호출한다. + result = copyDirectory(originalDirPath + "/" + originalFileList[i], targetDirPath1 + "/" + originalFileList[i]); + } + } + } else { + result = true; + } + } + } else { + // 원본자체가 유효하지 않은 경우는 false 리턴하고 종료 + result = false; + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리를 복사한다. (생성일자 조건으로  복사)
+	 * 
+ * + * @param String originalDirPath 원본 디렉토리 의 절대경로 + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @param fromDate 디렉토리의 복사조건 시작일자 + * @param toDate 디렉토리의 복사조건 종료일자 + * @return boolean result 복사가 성공함변 true, 실패하면 false를 리턴한다. + */ + public static boolean copyDirectory(String originalDirPath, String targetDirPath, String fromDate, String toDate) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (originalDirPath == null || originalDirPath.equals("") || targetDirPath == null || targetDirPath.equals("") || fromDate == null || fromDate.equals("") || toDate == null + || toDate.equals("")) { + return false; + } + boolean result = false; + File f = null; + + f = new File(EgovWebUtil.filePathBlackList(originalDirPath)); + boolean isInCondition = false; + String lastModifyedDate = getLastModifiedDateFromFile(f); + if (Integer.parseInt(lastModifyedDate) >= Integer.parseInt(fromDate) && Integer.parseInt(lastModifyedDate) <= Integer.parseInt(toDate)) { + isInCondition = true; + } + + // 원본이 유효하고 조건에 부합되야 진행한다. + if (f.exists() && f.isDirectory() && isInCondition) { + + //타겟으로 설정한 경로가 유효한지 확인(중간경로에 파일명 이 포함되어있으면 유효하지 못하므로 진행안함. + String targetDirPath1 = createNewDirectory(targetDirPath); + if (targetDirPath1.equals("")) { + result = false; + } else { + File targetDir = new File(EgovWebUtil.filePathBlackList(targetDirPath1)); + targetDir.mkdirs(); + // 디렉토리에 속한 파일들을 복사한다. + String[] originalFileList = f.list(); + if (originalFileList.length > 0) { + for (int i = 0; i < originalFileList.length; i++) { + File subF = new File(EgovWebUtil.filePathBlackList(originalDirPath) + FILE_SEPARATOR + originalFileList[i]); + if (subF.isFile()) { + //하위목록이 파일이면 파일복사실행 -> 실패 발생하는 경우 복사를 중단한다. + result = copyFile(originalDirPath + FILE_SEPARATOR + originalFileList[i], targetDir.getAbsolutePath() + FILE_SEPARATOR + originalFileList[i]); + } else { + //하위목록이 디렉토리이면 복사를 재귀적으로 호출한다. + //하위목록에 해당하는 폴더에 대해서는 생성일자 검사를 하지 않는다.(현재 폴더가 복사대상이면 현재폴더의 하위는 제외없이 복사함) + result = copyDirectory(originalDirPath + "/" + originalFileList[i], targetDirPath1 + "/" + originalFileList[i]); + } + } + } else { + result = true; + } + } + + } else { + // 원본자체가 유효하지 않은 경우는 false 리턴하고 종료 + result = false; + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리를 복사한다. (생성자 조건으로복사)
+	 * 
+ * + * @param String originalDirPath 원본 디렉토리 의 절대경로 + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @param String owner 디렉토리의 복사조건생성자 + * @return boolean result 복사가 성공함변 true, 실패하면 false를 리턴한다. + */ + public static boolean copyDirectory(String originalDirPath, String targetDirPath, String owner) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (originalDirPath == null || originalDirPath.equals("") || targetDirPath == null || targetDirPath.equals("") || owner == null || owner.equals("")) { + return false; + } + boolean result = false; + File f = null; + + f = new File(EgovWebUtil.filePathBlackList(originalDirPath)); + boolean isInCondition = false; + String realOwner = getOwner(originalDirPath); + if (realOwner.equals(owner)) { + isInCondition = true; + } + + // 원본이 유효하고 조건에 부합되야 진행한다. + if (f.exists() && f.isDirectory() && isInCondition) { + + String targetDirPath1 = createNewDirectory(targetDirPath); + if (targetDirPath1.equals("")) { + //타겟으로 설정한 경로가 유효한지 확인(중간경로에 파일명 이 포함되어있으면 유효하지 못하므로 진행안함. + result = false; + } else { + File targetDir = new File(EgovWebUtil.filePathBlackList(targetDirPath1)); + targetDir.mkdirs(); + // 디렉토리에 속한 파일들을 복사한다. + String[] originalFileList = f.list(); + if (originalFileList.length > 0) { + for (int i = 0; i < originalFileList.length; i++) { + File subF = new File(EgovWebUtil.filePathBlackList(originalDirPath) + FILE_SEPARATOR + originalFileList[i]); + if (subF.isFile()) { + //하위목록이 파일이면 파일복사실행 -> 실패 발생하는 경우 복사를 중단한다. + result = copyFile(originalDirPath + FILE_SEPARATOR + originalFileList[i], targetDir.getAbsolutePath() + FILE_SEPARATOR + originalFileList[i]); + } else { + //하위목록이 디렉토리이면 복사를 재귀적으로 호출한다. + //하위목록에 해당하는 폴더에 대해서는 생성일자 검사를 하지 않는다.(현재 폴더가 복사대상이면 현재폴더의 하위는 제외없이 복사함) + result = copyDirectory(originalDirPath + "/" + originalFileList[i], targetDirPath1 + "/" + originalFileList[i]); + } + } + } else { + result = false; + } + } + + } else { + // 원본자체가 유효하지 않은 경우는 false 리턴하고 종료 + result = false; + } + + return result; + } + + /** + * 디렉토리의 사이즈를 조회한다. + * + * @param String targetDirPath 디렉토리 + * @return long size 디렉토리사이즈 + * @exception Exception + */ + public static long getDirectorySize(String targetDirPath) throws Exception { + + File f = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + if (!f.exists()) { + return 0; + } + if (f.isFile()) { + return f.length(); + } + + File[] list = f.listFiles(); + long size = 0; + long fileSize = 0; + + for (int i = 0; i < list.length; i++) { + + if (list[i].isDirectory()) { + // 디렉토리 안에 디렉토리면 그 안의 파일목록에서 찾도록 재귀호출한다. + fileSize = getDirectorySize(list[i].getAbsolutePath()); + } else { + // 파일의 사이즈 조회 + fileSize = list[i].length(); + } + size = size + fileSize; + } + return size; + } + + /** + *
+	 * Comment : 디렉토리를 이동한다.
+	 * 
+ * + * @param String originalDirPath 원본 디렉토리 의 절대경로 + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @return boolean result 이동이 성공하면 true, 실패하면 false를 리턴한다. + */ + public static boolean moveFile(String originalDirPath, String targetDirPath) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (originalDirPath == null || originalDirPath.equals("") || targetDirPath == null || targetDirPath.equals("")) { + return false; + } + boolean result = false; + File f = null; + BufferedReader b_err = null; + BufferedReader b_out = null; + try { + f = new File(EgovWebUtil.filePathBlackList(originalDirPath)); + // 원본은 유효하고 대상이 신규로 생성가능한 상태인경우만 진행한다. + //if(f.exists() && f.isDirectory() ){ // 디렉토리만 이동할수 있도록 제한하는 경우 + if (f.exists()) { + // 타겟으로 설정한 경로가 유효한지 확인(중간경로에 파일명 이 포함되어있으면 유효하지 못하므로 진행안함. + File targetDir = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + if (targetDir.exists()) { + // 타겟경로가 이미 있는 경우는 종료 + result = false; + } else { + // 새로 생성되는 경우만 진행한다. (이동쉘을 실행시킨다.) + String cmdStr = EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".moveDrctry"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), + EgovWebUtil.filePathBlackList(originalDirPath.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR)), + EgovWebUtil.filePathBlackList(targetDirPath.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR)) }; + Process p = Runtime.getRuntime().exec(command); + //String access = ""; + p.waitFor(); + //프로세스 에러시 종료 + if (p != null && p.exitValue() != 0) { + b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + while (b_err.ready()) { + //String line = b_err.readLine(); + //if (line.length() <= MAX_STR_LEN) log.debug("ERR\n" + line); + } + b_err.close(); + } + //프로세스 실행 성공시 결과 확인 + else { + result = true; + } + } + + } else { + // 원본자체가 유효하지 않은 경우는 false 리턴하고 종료 + result = false; + } + } finally { + EgovResourceCloseHelper.close(b_err, b_out); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리를 이동한다. (생성일자 조건으로 이동)
+	 * 
+ * + * @param String originalDirPath 원본 디렉토리 의 절대경로 + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @param fromDate 디렉토리의이동조건 시작일자 + * @param toDate 디렉토리의 이동조건 종료일자 + * @return boolean result 이동이 성공하면 true, 실패하면 false를 리턴한다. + */ + public static boolean moveFile(String originalDirPath, String targetDirPath, String fromDate, String toDate) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (originalDirPath == null || originalDirPath.equals("") || targetDirPath == null || targetDirPath.equals("") || fromDate == null || fromDate.equals("") || toDate == null + || toDate.equals("")) { + return false; + } + boolean result = false; + File f = null; + BufferedReader b_err = null; + BufferedReader b_out = null; + try { + f = new File(originalDirPath); + // 원본은 유효하고 대상이 신규로 생성가능한 상태인경우만 진행한다. + //if(f.exists() && f.isDirectory() ){ // 디렉토리만 이동할수 있도록 제한하는 경우 + if (f.exists()) { + // 타겟으로 설정한 경로가 유효한지 확인(중간경로에 파일명 이 포함되어있으면 유효하지 못하므로 진행안함. + File targetDir = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + if (targetDir.exists()) { + // 타겟경로가 이미 있는 경우는 종료 + result = false; + } else { + // 새로 생성되는 경우만 진행한다. (이동쉘을 실행시킨다.) + boolean isInCondition = false; + String lastModifyedDate = getLastModifiedDateFromFile(f); + if (Integer.parseInt(lastModifyedDate) >= Integer.parseInt(fromDate) && Integer.parseInt(lastModifyedDate) <= Integer.parseInt(toDate)) { + isInCondition = true; + } + + if (isInCondition) { + String cmdStr = EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".moveDrctry"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), + EgovWebUtil.filePathBlackList(originalDirPath.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR)), + EgovWebUtil.filePathBlackList(targetDirPath.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR)) }; + Process p = Runtime.getRuntime().exec(command); + String access = ""; + p.waitFor(); + //프로세스 에러시 종료 + if (p != null && p.exitValue() != 0) { + b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + while (b_err.ready()) { + //String line = b_err.readLine(); + //if (line.length() <= MAX_STR_LEN) log.debug("ERR\n" + line); + } + } + //프로세스 실행 성공시 결과 확인 + else { + result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (b_out.ready()) { + if (!result) { // result != true + access = b_out.readLine(); + if (access != null && !"".equals(access) && access.length() <= MAX_STR_LEN) { + result = true; + break; + } + } + } + } + } + } + + } else { + // 원본자체가 유효하지 않은 경우는 false 리턴하고 종료 + result = false; + } + } finally { + EgovResourceCloseHelper.close(b_err, b_out);; + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리를 이동한다. (생성자 조건으로 이동)
+	 * 
+ * + * @param String originalDirPath 원본 디렉토리 의 절대경로 + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @param String owner 디렉토리의 이동조건생성자 + * @return boolean result 이동이 성공하면 true, 실패하면 false를 리턴한다. + */ + public static boolean moveFile(String originalDirPath, String targetDirPath, String owner) throws Exception { + + // 인자값 유효하지 않은 경우 공백 리턴 + if (originalDirPath == null || originalDirPath.equals("") || targetDirPath == null || targetDirPath.equals("") || owner == null || owner.equals("")) { + return false; + } + //log.debug("originalDirPath:"+originalDirPath); + //log.debug("targetDirPath:"+targetDirPath); + boolean result = false; + File f = null; + BufferedReader b_err = null; + BufferedReader b_out = null; + try { + f = new File(originalDirPath); + // 원본은 유효하고 대상이 신규로 생성가능한 상태인경우만 진행한다. + //if(f.exists() && f.isDirectory() ){ // 디렉토리만 이동할수 있도록 제한하는 경우 + if (f.exists()) { + // 타겟으로 설정한 경로가 유효한지 확인(중간경로에 파일명 이 포함되어있으면 유효하지 못하므로 진행안함. + File targetDir = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + if (targetDir.exists()) { + // 타겟경로가 이미 있는 경우는 종료 + result = false; + } else { + // 새로 생성되는 경우만 진행한다. (이동쉘을 실행시킨다.) + boolean isInCondition = false; + String realOwner = getOwner(originalDirPath); + if (realOwner.equals(owner)) { + isInCondition = true; + } + + if (isInCondition) { + String cmdStr = EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".moveDrctry"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), + EgovWebUtil.filePathBlackList(originalDirPath.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR)), + EgovWebUtil.filePathBlackList(targetDirPath.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR)) }; + Process p = Runtime.getRuntime().exec(command); + String access = ""; + p.waitFor(); + //프로세스 에러시 종료 + if (p != null && p.exitValue() != 0) { + b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + while (b_err.ready()) { + //String line = b_err.readLine(); + //if (line.length() <= MAX_STR_LEN) log.debug("ERR\n" + line); + } + } + //프로세스 실행 성공시 결과 확인 + else { + result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (b_out.ready()) { + + if (!result) { //result != true + access = b_out.readLine(); + if (access != null && !"".equals(access) && access.length() <= MAX_STR_LEN) { + result = true; + if (result) { + break; + } + } + } + } + } + } + } + } else { + // 원본자체가 유효하지 않은 경우는 false 리턴하고 종료 + result = false; + } + } finally { + EgovResourceCloseHelper.close(b_err, b_out); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리감시를 시작한다. 모니터링 시작시 해당 디렉토리의 이름으로 생성된 로그파일에 START기입하고 종료시END기입한다.
+	 *           (로그파일이 이미 존재하는 경우는 모니터링이 현재 진행중인 상태이므로 새로 감시기능을 시작하지 않는다.)
+	 * 
+ * + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @param String logFile 모니터링정보를 보관할 로그파일경로 + * @param String eventPrg 이벤트 발생시 동작할 프로그램 + * @return boolean result 모니터링 시작 여부를 리턴한다. (모니터링 시작했으면 true, 모니터링이 시작되지 않았으면 false) + */ + public static boolean startDirectoryMonitering(String targetDirPath) throws Exception { + + // 인자값 유효하지 않은 경우 false 리턴 + if (targetDirPath == null || targetDirPath.equals("")) { + return false; + } + + boolean result = false; + FileReader fr = null; + BufferedReader br = null; + try { + // 로그파일을 생성한다. 만약 로그파일이 존재하면 이미 감시 프로세스가 동작중이므로 새로 시작하지 않는다. + + File targetF = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + File logF = new File(EgovWebUtil.filePathBlackList(Globals.CONF_PATH) + "/" + targetF.getName() + ".log"); + + if (targetF.exists() && targetF.isDirectory()) { + + if (logF.exists()) { + // 이미 감시 프로세스 동작중임 + result = true; + //로그파일에서 중단여부 확인하여 중단된 상태이면 재실행함 + String lastStr = ""; + fr = new FileReader(logF); + br = new BufferedReader(fr); + //int ch = 0; + String line = ""; + while ((line = br.readLine()) != null) { + if (line.length() < MAX_STR_LEN) + lastStr = line; + } + //log.debug("lastStr:"+lastStr); + if (lastStr.equals("END")) { + EgovFileMntrg t = new EgovFileMntrg(EgovWebUtil.filePathBlackList(targetDirPath), logF); + t.start(); + } + } else { + result = logF.createNewFile(); + EgovFileMntrg t = new EgovFileMntrg(targetDirPath, logF); + t.start(); + } + } + } finally { + EgovResourceCloseHelper.close(fr, br); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리감시를 종료한다. 모니터링 시작시 해당 디렉토리의 이름으로 생성된 로그파일에 START기입하고 종료시END기입한다.
+	 *           (로그파일이 존재하지 않는 경우는  모니터링이 아직 시작되지 않은 상태이므로별도로   종료하지 않는다.)
+	 * 
+ * + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @param String logFile 모니터링정보를 보관할 로그파일경로(감시프로세스 확인의 키값으로 사용된다) + * @return boolean result 모니터링 시작 여부를 리턴한다. (모니터링 시작했으면 true, 모니터링이 시작되지 않았으면 false) + */ + public static boolean stopDirectoryMonitering(String targetDirPath) throws Exception { + + // 인자값 유효하지 않은 경우 false 리턴 + if (targetDirPath == null || targetDirPath.equals("")) { + return false; + } + + boolean result = false; + FileReader fr = null; + BufferedReader br = null; + FileWriter fWriter = null; + BufferedWriter bWriter = null; + try { + File targetF = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + File logF = new File(EgovWebUtil.filePathBlackList(Globals.CONF_PATH) + "/" + targetF.getName() + ".log"); + if (logF.exists()) { + + //로그파일 최종라인 확인 : END 여부 확인 + String lastStr = ""; + fr = new FileReader(logF); + br = new BufferedReader(fr); + //int ch = 0; + String line = ""; + while ((line = br.readLine()) != null) { + if (line.length() < MAX_STR_LEN) + lastStr = line; + } + br.close(); + + // if(lastStr.equals("END")){ + // // 로그파일이 존재하고 이미 종료요청이 된 상태이므로 작업없음 + // //log.debug("Already Ending Requested Status"); + // }else{ + if (!lastStr.equals("END")) { + fWriter = new FileWriter(logF, true); + bWriter = new BufferedWriter(fWriter); + br = new BufferedReader(new StringReader("END")); + while ((line = br.readLine()) != null && !lastStr.equals("END")) { + if (line.length() < MAX_STR_LEN) { + bWriter.write(line + "\n", 0, line.length() + 1); + } + } + } + result = true; + } else { + result = false; + } + + } finally { + EgovResourceCloseHelper.close(fr, br, fWriter, bWriter); + } + + return result; + } + + /** + *
+	 * Comment : 디렉토리감시정보를 로그파일로부터 읽어온다.
+	 * 
+ * + * @param String targetDirPath 타겟 디렉토리 의 절대경로 + * @param String logFile 모니터링정보를 보관하는 로그파일경로 + * @return ArrayList result 로그파일의 정보를 라인단위로 담아서 리턴한다. + */ + public static StringBuffer getDirectoryMoniteringInfo(String targetDirPath) throws Exception { + + // 인자값 유효하지 않은 경우 빈 ArrayList 리턴 + if (targetDirPath == null || targetDirPath.equals("")) { + return new StringBuffer(); + } + + StringBuffer result = new StringBuffer(); + FileReader fr = null; + try { + File targetF = new File(EgovWebUtil.filePathBlackList(targetDirPath)); + File logF = new File(EgovWebUtil.filePathBlackList(Globals.CONF_PATH) + "/" + targetF.getName() + ".log"); + if (!logF.exists()) { + result = new StringBuffer(); + } + fr = new FileReader(logF); + int ch = 0; + while ((ch = fr.read()) != -1) { + result.append((char) ch); + } + } finally { + EgovResourceCloseHelper.close(fr); + } + + return result; + } + +} diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovMenuGov.java b/src/main/java/egovframework/com/utl/sim/service/EgovMenuGov.java new file mode 100644 index 0000000..5307eac --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovMenuGov.java @@ -0,0 +1,92 @@ +/** + * Class Name : EgovMenuGov.java + * Description : 메뉴관리 Business Interface class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.02.02 이 용 최초 생성 + * + * @author 공통 서비스 개발팀 이 용 + * @since 2009. 02. 02 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by EGOV All right reserved. + */ +package egovframework.com.utl.sim.service; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileWriter; +import java.util.List; +import java.util.Vector; + +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +public class EgovMenuGov { + + // 파일구분자 + static final char FILE_SEPARATOR = File.separatorChar; + + /** + *
+	 * Comment : DAT 파일을 파싱하여 메뉴관리화면에 리턴.
+	 * 
+ * @param String parFile DAT파일명 + * @param String parChar 구분자 + * @param Int parField 필드수 + * @return Vector list + * @version 1.0 (2009.02.04.) + * @see + */ + public static Vector> parsFileByMenuChar(String parFile, String parChar, int parField) throws Exception { + Vector> list = null; + String FileName = null; + + FileName = parFile.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file = new File(FileName); + + // 파일이며, 존재하면 파싱 시작 + if (file.exists() && file.isFile()) { + list = EgovFileTool.parsFileByChar(parFile, parChar, parField); + } else { + list = new Vector>(); + } + + return list; + } + + /** + *
+	 * Comment : 메뉴관리 화면의 데이타를 DAT 파일로 생성.
+	 * 
+ * @param String[] menuIDArray ID Array + * @param String[] menuNameArray Name Array + * @param String[] menuLevelArray Lefel Array + * @param String[] menuURLArray URL Array + * @return boolean true/false + * @version 1.0 (2009.02.04.) + * @see + */ + + public static boolean setDataByDATFile(String parFile, String[] menuIDArray, String[] menuNameArray, String[] menuLevelArray, String[] menuURLArray) throws Exception { + boolean success = false; + String FileName = null; + + FileName = parFile.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + File file = new File(FileName); + BufferedWriter out = new BufferedWriter(new FileWriter(file)); + try { + + for (int i = 0; i < menuIDArray.length; i++) { //nodeId | parentNodeId | nodeName | nodeUrl + out.write(menuIDArray[i] + "|" + menuLevelArray[i] + "|" + menuNameArray[i] + "|" + menuURLArray[i] + "|"); + out.newLine(); + } + success = true; + } finally { + EgovResourceCloseHelper.close(out); + } + return success; + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovNetInfo.java b/src/main/java/egovframework/com/utl/sim/service/EgovNetInfo.java new file mode 100644 index 0000000..60abcd5 --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovNetInfo.java @@ -0,0 +1,79 @@ +/** + * Class Name : ComUtlSimNetInfo.java + * Description : 시스템 네트워크 정보를 확인하여 제공하는 Business class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.13 조재영 최초 생성 + * + * @author 공통 서비스 개발팀 조재영 + * @since 2009. 01. 13 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by EGOV All right reserved. + */ +package egovframework.com.utl.sim.service; + +import java.io.BufferedReader; +import java.io.InputStreamReader; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.com.cmm.service.Globals; +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +public class EgovNetInfo { + // 최대 문자길이 + static final int MAX_STR_LEN = 1024; + + /** + *
+	 * Comment : 호스트 정보를 확인한다.
+	 * 
+ * @return String hostStr 호스트명을 리턴한다.(테스트용 함수) + * @version 1.0 (2009.01.12.) + * @see + */ + public static String getHostName() throws Exception { + // 실행할 명령을 프로퍼티 파일에서 확인한다. + String command = EgovProperties.getPathProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".getHostName"); + + // 출력할 결과 (파싱대상) + String hostStr = ""; + String tmp = ""; + BufferedReader b_err = null; + BufferedReader b_out = null; + try { + Process p = Runtime.getRuntime().exec(command); + //프로세스가 처리될때까지 대기 + p.waitFor(); + + //프로세스 에러시 종료 + if (p.exitValue() != 0) { + b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + while (b_err.ready()) { + } + } + //프로세스 실행 성공시 결과 확인 + else { + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + int i = 0; + while (b_out.ready()) { + //도스명령어 실행시 결과는 3번째 라인부터 출력됨.. + tmp = b_out.readLine(); + if (tmp.length() <= MAX_STR_LEN) { + if (i > 1) { + hostStr += tmp + "\n"; + } + i++; + } + } + // 시스템 로그 출력 + } + } finally { + EgovResourceCloseHelper.close(b_err, b_out); + } + return hostStr; + } +} diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovNetworkState.java b/src/main/java/egovframework/com/utl/sim/service/EgovNetworkState.java new file mode 100644 index 0000000..08b73bd --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovNetworkState.java @@ -0,0 +1,275 @@ +/** + * Class Name : EgovNetworkState.java + * Description : 네트워크(Network)상태 체크 Business Interface class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.02.02 이 용 최초 생성 + * + * @author 공통 서비스 개발팀 이 용 + * @since 2009. 02. 02 + * @version 1.0 + * @see + * The type com.sun.star.lang.XeventListener cannot be resolved. It is indirectly referenced from required .class files + * Copyright (C) 2009 by EGOV All right reserved. + */ + +package egovframework.com.utl.sim.service; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.List; + +import egovframework.com.cmm.EgovWebUtil; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.com.cmm.service.Globals; +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +public class EgovNetworkState { + public static String addrIP = ""; + static final char FILE_SEPARATOR = File.separatorChar; + // 최대 문자길이 + static final int MAX_STR_LEN = 1024; + + public static final int BUFF_SIZE = 2048; + // Log + // protected static final Log log = LogFactory.getLog(EgovNetworkState.class); + + /** + *
+	 * Comment : Local MAC Address를 확인한다.
+	 * 
+ * @param String localIP 로컬 IP주소 + * @return String mac MAC Address를 리턴한다. + * @version 1.0 (2009.02.03.) + * @see + */ + public static String getMyMACAddress(String localIP) { + //log.debug("getMyMACAddress Start!! : "); + String mac = null; + try { + if ("WINDOWS".equals(Globals.OS_TYPE)) { + Process p = null; + Runtime rt = Runtime.getRuntime(); + String[] execStr = { "nbtstat", "-A", localIP }; + p = rt.exec(execStr); // 여기다 아이피 주소 넣주세여 + + InputStream in = p.getInputStream(); + String out = null; + int c; + while ((c = in.read()) != -1) { + out = out + new String(new Character((char) c).toString()); + } + in.close(); + if (out == null || out.indexOf("MAC Address = ") == -1) { + throw new IllegalArgumentException("String Split Error!"); + } + mac = out.substring(out.indexOf("MAC Address = ") + 14, out.indexOf("MAC Address = ") + 31); + + } else if ("UNIX".equals(Globals.OS_TYPE)) { + //log.debug("getMyMACAddress IP : " + localIP); + mac = getNetWorkInfo("MAC"); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return mac; + } + + /** + *
+	 * Comment : Local Port를 확인한다.
+	 * 
+ + * @return String port port를 리턴한다. + * @version 1.0 (2009.02.03.) + * @see + */ + public static List getMyPortScan() { + + List processes = new ArrayList(); + BufferedReader input = null; + + try { + + Process p = null; + Runtime rt = Runtime.getRuntime(); + if ("WINDOWS".equals(Globals.OS_TYPE)) { + String[] execStr = { "netstat", "-an" }; + p = rt.exec(execStr); + input = new BufferedReader(new InputStreamReader(p.getInputStream())); + + while (true) { + String str = input.readLine(); + if (str == null) + break; + if (str.length() >= MAX_STR_LEN) { + throw new RuntimeException("input too long"); + } + if (!str.trim().equals("")) { + processes.add(str); + } + } + } else if ("UNIX".equals(Globals.OS_TYPE)) { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getNetWorkInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "SCAN" }; + p = Runtime.getRuntime().exec(command); + p = rt.exec(command); + + input = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (true) { + String str = input.readLine(); + if (str == null) + break; + if (str.length() >= MAX_STR_LEN) { + throw new RuntimeException("input too long"); + } + if (!str.trim().equals("")) { + processes.add(str); + } + } + //log.debug("getMyPortScan 6"); + } + } catch (IOException e) { + throw new RuntimeException("IO Exception", e); + } finally { + EgovResourceCloseHelper.close(input); + } + + return processes; + } + + /** + *
+	 * Comment : Local IPAddress를 확인한다.
+	 * 
+ * @return String mac Local IPAddress를 리턴한다. + * @version 1.0 (2009.02.03.) + * @see + */ + public static String getMyIPaddress() { + try { + + if (!EgovWebUtil.isIPAddress(InetAddress.getLocalHost().getHostAddress())) { + throw new RuntimeException("IP is needed. (" + InetAddress.getLocalHost().getHostAddress() + ")"); + } + + InetAddress InetA = InetAddress.getLocalHost(); + addrIP = InetA.getHostAddress(); + + } catch (IOException ex) { + throw new RuntimeException(ex); + } + + return addrIP; + } + + /** + *
+	 * Comment : 네트워크 상태체크를 확인한다.
+	 * 
+ * @param String localIP localhost, gateway, host 주소 + * @return boolean status true/false 를 리턴한다. + * @version 1.0 (2009.02.03.) + * @see + */ + public static boolean getPingTest(String requestIP) throws Exception { + + boolean status = false; + + if (!EgovWebUtil.isIPAddress(requestIP)) { + throw new RuntimeException("IP is needed. (" + requestIP + ")"); + } + + status = InetAddress.getByName(requestIP).isReachable(3000); + + return status; + } + + /** + *
+	 * Comment : 네트워크(MAC,IP,S/M,G/W,DNS) 정보를 확인한다.
+	 * 
+ * @param String stringOne 확인할 네트웍 정보 표기 ( ex:"MAC","IP","S/M","G/W","DNS") + * @return String (MAC,IP,S/M,G/W,DNS) 정보를 리턴한다. + * @version 1.0 (2009.02.07.) + * @see + */ + public static String getNetWorkInfo(String stringOne) throws IOException { + // 실행할 명령을 프로퍼티 파일에서 확인한다. + Process p = null; + + BufferedReader b_out = null; + + String tmp = ""; + String outValue = ""; + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getNetWorkInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), stringOne }; + p = Runtime.getRuntime().exec(command); + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (true) { + tmp = b_out.readLine(); + if (tmp == null) + break; + if (tmp.length() >= MAX_STR_LEN) { + throw new IllegalArgumentException("input too long"); + } + // netstat -v ent0 | grep "하드웨어 주소" -MAC + // prtconf | grep "IP 주소" -IP + // prtconf | grep "서브넷 마스크" -SM + // prtconf | grep "게이트웨이" -GW + if ("MAC".equals(stringOne)) { + outValue = getCharFilter(tmp); + } else if ("IP".equals(stringOne)) { + outValue = getCharFilter(tmp); + } else if ("SM".equals(stringOne)) { + outValue = getCharFilter(tmp); + } else if ("GW".equals(stringOne)) { + outValue = getCharFilter(tmp); + } else if ("DNS".equals(stringOne)) { + //tmp = "was은(는) 192.168.200.21입니다"; + outValue = getCharFilter(tmp); + } else { + outValue = "데이타가 존재하지 않습니다."; + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + return outValue; + } + + /** + *
+	 * Comment : String 타입의 str값 중 숫자 정보만 필터링, 담아서 리턴.
+	 * 
+ * @param String str 필터링 대상 정보 + * @return String outValue 숫자 정보를 필터링 리턴한다. + * @version 1.0 (2009.02.07.) + * @see + */ + private static String getCharFilter(String str) { + String outValue = ""; + + for (int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + + if (c > 45 && c < 59) { + Character cr = new Character(c); + outValue += cr.toString(); + } + } + return outValue; + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/utl/sim/service/EgovSysInfo.java b/src/main/java/egovframework/com/utl/sim/service/EgovSysInfo.java new file mode 100644 index 0000000..c0e33a6 --- /dev/null +++ b/src/main/java/egovframework/com/utl/sim/service/EgovSysInfo.java @@ -0,0 +1,989 @@ +/** + * Class Name : EgovSysInfo.java + * Description : 시스템정보를 조회하는 Business Interface class + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.02.02 박지욱 최초 생성 + * + * @author 공통 서비스 개발팀 박지욱 + * @since 2009. 02. 11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +package egovframework.com.utl.sim.service; + +import java.io.BufferedReader; +import java.io.File; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.com.cmm.service.Globals; +import egovframework.com.cmm.util.EgovResourceCloseHelper; + +public class EgovSysInfo { + + // 파일구분자 + static final char FILE_SEPARATOR = File.separatorChar; + + // 최대 문자길이 + static final int MAX_STR_LEN = 1024; + + // Log + //protected static final Log log = LogFactory.getLog(EgovSysInfo.class); + + /** + * 시스템에 존재하는 서버목록을 조회하는 기능 + * @return Vector server_list 서버목록 + * @exception Exception + */ + public static Vector> getPrductList() throws Exception { + + String strlist = EgovProperties.getProperty(Globals.SERVER_CONF_PATH, "SERVER_LIST"); + String[] list = strlist.split("\\$"); + + Vector> serverList = new Vector>(); + + for (int i = 0; i < list.length; i++) { + Map map = new HashMap(); + + map.put("name", list[i]); + map.put("version", getPrductVersion(list[i])); + map.put("port", getPrductPort(list[i])); + map.put("status", getPrductStatus(getPrductPort(list[i]))); + + serverList.add(map); + } + + return serverList; + } + + /** + * 시스템에 존재하는 서버의 제품명, 버전정보를 조회하는 기능 + * @param String server 서버명 + * @return String version 버전 + * @exception Exception + */ + public static String getPrductVersion(String server) throws Exception { + + String version = EgovProperties.getProperty(Globals.SERVER_CONF_PATH, server.toUpperCase() + ".VERSION"); + + return version; + } + + /** + * 시스템에 존재하는 서버의 포트 정보를 조회하는 기능 + * @param String server 서버명 + * @return String port 포트 + * @exception Exception + */ + public static String getPrductPort(String server) throws Exception { + + String port = EgovProperties.getProperty(Globals.SERVER_CONF_PATH, server.toUpperCase() + ".PORT"); + + return port; + } + + /** + * 시스템에 존재하는 서버의 실행상태 정보를 조회하는 기능 + * @param String port 사용포트 + * @return String status 실행상태 + * @exception Exception + */ + public static String getPrductStatus(String port) throws Exception { + + String status = "CLOSE"; + Process p = null; + + BufferedReader b_out = null; + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getPrductStatus"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), port }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && Integer.parseInt(str) > 0 && str.length() <= MAX_STR_LEN) { + status = "LISTENING"; + } + } + } else if ("WINDOWS".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.indexOf(port) != -1 && str.indexOf("LISTENING") != -1 && str.length() <= MAX_STR_LEN) { + status = "LISTENING"; + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return status; + } + + /** + * 시스템의 호스트명을 조회하는 기능 + * @return String hostName 호스트명 + * @exception Exception + */ + public static String getHostName() throws Exception { + + // 호스트명 결과 + String hostName = ""; + Process p = null; + + BufferedReader b_out = null; + try { + String[] command = { "hostname" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + hostName = str; + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return hostName; + } + + /** + * 시스템의 OS 이름을 조회하는 기능 + * @return String osname OS이름 + * @exception Exception + */ + public static String getOSName() throws Exception { + + // OS 이름 + String osname = ""; + Process p = null; + BufferedReader b_out = null; + + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getOSInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "NAME" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + osname = str; + } + } + } else if ("WINDOWS".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.indexOf("OS 이름:") != -1 && str.length() <= MAX_STR_LEN) { + osname = str.replaceAll("OS 이름:", ""); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return osname; + } + + /** + * 시스템의 OS 버전을 조회하는 기능 + * @return String osversion OS버전 + * @exception Exception + */ + public static String getOSVersion() throws Exception { + + // OS 버전 + String osversion = ""; + Process p = null; + BufferedReader b_out = null; + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getOSInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "VERSION" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + osversion = str; + } + } + } else if ("WINDOWS".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.indexOf("OS 버전:") != -1 && str.length() <= MAX_STR_LEN) { + osversion = str.replaceAll("OS 버전:", ""); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return osversion; + } + + /** + * 시스템의 OS 제조사를 조회하는 기능 + * @return String osprductor OS제조사 + * @exception Exception + */ + public static String getOSPrductor() throws Exception { + + // OS 제조사 + String osprductor = ""; + Process p = null; + BufferedReader b_out = null; + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getOSInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "PRDUCTOR" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + osprductor = str; + } + } + } else if ("WINDOWS".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.indexOf("OS 제조업체:") != -1 && str.length() <= MAX_STR_LEN) { + osprductor = str.replaceAll("OS 제조업체:", ""); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return osprductor; + } + + /** + * 시스템의 Processor ID를 조회하는 기능 + * @return String processor 프로세서ID + * @exception Exception + */ + public static String getProcessorID() throws Exception { + + // 프로세서ID + String processor = ""; + Process p = null; + BufferedReader b_out = null; + + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getOSInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "PROCESSOR" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + processor = str; + } + } + } else if ("WINDOWS".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.indexOf("프로세서:") != -1 && str.length() <= MAX_STR_LEN) { + processor = str.replaceAll("\\[01\\]:", ""); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return processor; + } + + /** + * 시스템의 디스크명을 확인 + * @return ArrayList list 디스크명이 담긴 목록 + * @exception Exception + */ + public static List getDiskName() throws Exception { + + // 디스크명 + List list = new ArrayList(); + + Process p = null; + BufferedReader b_out = null; + + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getDiskInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "NAME" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + list.add(str); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return list; + } + + /** + * 시스템의 디스크 전체용량을 확인 + * @param String disk 디스크명 + * @return long cpcty 디스크 전체용량(MB) + * @exception Exception + */ + public static float getDiskFullCpcty(String disk) throws Exception { + + // 디스크 전체용량 + float cpcty = 0; + + Process p = null; + BufferedReader b_out = null; + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getDiskInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "FULL", disk }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + cpcty = Float.parseFloat(str); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return cpcty; + } + + /** + * 시스템의 디스크 사용중 용량을 확인 + * @param String disk 디스크명 + * @return long cpcty 디스크 사용중 용량(MB) + * @exception Exception + */ + public static float getDiskUsedCpcty(String disk) throws Exception { + + // 디스크 사용중 용량 + float cpcty = 0; + + Process p = null; + BufferedReader b_out = null; + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getDiskInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "USED", disk }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + cpcty = Float.parseFloat(str); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return cpcty; + } + + /** + * 시스템의 디스크 유효 용량을 확인 + * @param String disk 디스크명 + * @return long cpcty 디스크 유효 용량(MB) + * @exception Exception + */ + public static float getDiskFreeCpcty(String disk) throws Exception { + + // 디스크 유효 용량 + float cpcty = 0; + + Process p = null; + BufferedReader b_out = null; + + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getDiskInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "FREE", disk }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + cpcty = Float.parseFloat(str); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return cpcty; + } + + /** + * 시스템의 메모리 전체용량을 확인 + * @return long cpcty 메모리 전체용량(MB) + * @exception Exception + */ + public static float getMoryFullCpcty() throws Exception { + + // 메모리 전체 용량 + float cpcty = 0; + cpcty = getMoryUsedCpcty() + getMoryFreeCpcty(); + return cpcty; + + /* + // 메모리 전체 용량 + float cpcty = 0; + + Process p = null; + try + { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL."+Globals.OS_TYPE+".getMoryInfo"); + String[] command = {cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), + "FULL"}; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + boolean result = false; + BufferedReader b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true){ + String str = b_out.readLine(); + if (str == null) break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + str = str.replaceAll("mem=", "").replaceAll(" ", "").replaceAll("MB", "").replaceAll(",", ""); + cpcty = Float.parseFloat(str); + result = true; + } + } + } else if ("WINDOWS".equals(Globals.OS_TYPE)) { + // 메모리 전체용량 = 사용중 용량 + 유효 용량 + cpcty = getMoryUsedCpcty() + getMoryFreeCpcty(); + } + + b_out.close(); + + }catch(Exception ex){ + ex.printStackTrace(); + }finally{ + if (p != null) p.destroy(); + } + + return cpcty; + */ + } + + /** + * 시스템의 메모리 사용중 용량을 확인 + * @return long cpcty 메모리 사용중 용량(MB) + * @exception Exception + */ + public static float getMoryUsedCpcty() throws Exception { + + // 메모리 사용중 용량 + float cpcty = 0; + + Process p = null; + BufferedReader b_out = null; + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getMoryInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "USED" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + //boolean result = false; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + cpcty = Float.parseFloat(str); + //result = true; + } + } + } else if ("WINDOWS".equals(Globals.OS_TYPE)) { + long fullcpcty = 0; + long usedcpcty = 0; + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.indexOf("총 실제 메모리:") != -1 && str.length() <= MAX_STR_LEN) { + str = str.replaceAll("총 실제 메모리:", "").replaceAll(" ", "").replaceAll("MB", "").replaceAll(",", ""); + fullcpcty = Long.parseLong(str); + } + if (str != null && !"".equals(str) && str.indexOf("사용 가능한 실제 메모리:") != -1) { + str = str.replaceAll("사용 가능한 실제 메모리:", "").replaceAll(" ", "").replaceAll("MB", "").replaceAll(",", ""); + usedcpcty = Long.parseLong(str); + } + } + cpcty = fullcpcty - usedcpcty; + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return cpcty; + } + + /** + * 시스템의 메모리 유효 용량을 확인 + * @return long cpcty 메모리 유효 용량 + * @exception Exception + */ + public static float getMoryFreeCpcty() throws Exception { + + // 메모리 유효 용량 + float cpcty = 0; + + Process p = null; + BufferedReader b_out = null; + try { + String cmdStr = EgovProperties.getPathProperty(Globals.SERVER_CONF_PATH, "SHELL." + Globals.OS_TYPE + ".getMoryInfo"); + String[] command = { cmdStr.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR), "FREE" }; + p = Runtime.getRuntime().exec(command); + //p.waitFor(); + + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + + if ("UNIX".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.length() <= MAX_STR_LEN) { + cpcty = Float.parseFloat(str); + } + } + } else if ("WINDOWS".equals(Globals.OS_TYPE)) { + while (true) { + String str = b_out.readLine(); + if (str == null) + break; + if (str != null && !"".equals(str) && str.indexOf("사용 가능한 실제 메모리:") != -1 && str.length() <= MAX_STR_LEN) { + str = str.replaceAll("사용 가능한 실제 메모리:", "").replaceAll(" ", "").replaceAll("MB", "").replaceAll(",", ""); + cpcty = Long.parseLong(str); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_out); + + if (p != null) { + p.destroy(); + } + } + + return cpcty; + } + + /** + * 특정 프로그램을 실행시키기 위해 메모리용량이 충분한지 확인 + * @param String memory 메모리용량(MB) + * @return boolean 가용여부 True/False + * @exception Exception + */ + public static boolean checkMoryCpcty(long memory) throws Exception { + + // 가용여부 + boolean result = false; + + if (memory <= 0) { + //log.debug("+++ Memory Capacity is Not Valid.."); + return false; + } + + if (memory < getMoryFreeCpcty()) { + result = true; + } + + return result; + } + + /** + *
+	 * Comment : 디스크속성정보를 확인한다.
+	 * 
+ * @return ArrayList result 디스크속성정보를 라인단위로 담은 ArrayList를 리턴한다. + */ + public static List getDiskAttribute() { + + List result = new ArrayList(); + String[] command = { "" }; // 인자 없음 + try { + result = executeProgram("getDiskAttrb", command); + } catch (Exception e) { + throw new RuntimeException(e); + } + + return result; + } + + /** + *
+	 * Comment : 디스크용량정보를 확인한다.
+	 * 
+ * @return ArrayList result 디스크용량정보를 라인단위로 담은 ArrayList를 리턴한다. + */ + public static List getDiskCapacity() { + + List result = new ArrayList(); + String[] command = { "" }; // 인자 없음 + try { + result = executeProgram("getDiskCpcty", command); + } catch (Exception e) { + throw new RuntimeException(e); + } + + return result; + } + + /** + *
+	 * Comment : 디스크존재여부를 확인한다.
+	 * 
+ * @return ArrayList result 디스크존재여부를 라인단위로 담은 ArrayList를 리턴한다. + */ + public static List getExistDisk(String diskName) { + + List result = new ArrayList(); + String[] command = { "", diskName }; // 인자 없음 + try { + result = executeProgram("getDiskExst", command); + } catch (Exception e) { + throw new RuntimeException(e); + } + + return result; + } + + /** + * 시스템에서 특정 쉘프로그램을 동작하고 콘솔에 출력된 결과를 라인단위로 ArrayList에 담아서 전달한다. + * @param String propertyKeyword 프로퍼티키워드 -프로퍼티에서 해당키에 대한 프로그램정보를 확인) + * @param String[] command 실행할 프로그램의 argument + * @return ArrayList resultTxtList 콘솔상에 출력된 결과를 라인단위 문자열로 보관 + * @exception Exception + */ + public static List executeProgram(String propertyKeyword, String[] command) throws Exception { + + List resultTxtList = new ArrayList(); + + BufferedReader b_err = null; + BufferedReader b_out = null; + try { + Process p = null; + String cmdStr = EgovProperties.getPathProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + "." + propertyKeyword); + command[0] = cmdStr; + p = Runtime.getRuntime().exec(command); + p.waitFor(); + //프로세스 에러시 종료 + if (p.exitValue() != 0) { + b_err = new BufferedReader(new InputStreamReader(p.getErrorStream())); + while (b_err.ready()) { + //String line = b_err.readLine(); + //if (line.length() <= MAX_STR_LEN) log.debug("ERR\n" + line); + } + } else { //프로세스 실행 성공시 결과 확인 + String tmpLine = ""; + b_out = new BufferedReader(new InputStreamReader(p.getInputStream())); + while (b_out.ready()) { + // 결과문자가 있으면 생성자가 있다는 의미 + tmpLine = b_out.readLine(); + + if (tmpLine.length() <= MAX_STR_LEN) { + resultTxtList.add(tmpLine); + } + } + } + } finally { + EgovResourceCloseHelper.close(b_err, b_out); + } + + return resultTxtList; + } + + /** + *
+	 * Comment : 프로세스 정보를 확인한다. (
+	 * 
+ * @param + * @return List 프로세스 정보를 리턴한다. + * @version 1.0 (2009.01.12.) + * @see + */ + public static List getProcessId() { + + List processes = new ArrayList(); + String[] command = { "", "-all" }; // 인자 없음 + try { + String line; + String separator = null; + + Process p = null; + + if ("WINDOWS".equals(Globals.OS_TYPE)) { + p = Runtime.getRuntime().exec("tasklist.exe /fo csv /nh"); + separator = "\",\""; + + if (p == null) { + throw new RuntimeException("Can't execute process..."); + } + BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); + if (input != null) { + while ((line = input.readLine()) != null) { + if (!line.trim().equals("") && line.length() <= MAX_STR_LEN) { + + line = line.substring(1, line.length() - 1); + String[] operator = line.split(separator); + + processes.add(operator); + } + } + + input.close(); + } + + } else if ("UNIX".equals(Globals.OS_TYPE)) { + /* + String tmp = "ps -eo \"%p %G %U %c %a\"|awk -F\" \" '{print $1,$2,$3,$4,$5}'"; + log.debug(tmp); + command [0] = tmp; + p = Runtime.getRuntime().exec(tmp); + separator = " "; + */ + separator = " "; + List resultList = executeProgram("getProcInfo", command); + + for (String result : resultList) { + String[] operator = result.split(separator); + + processes.add(operator); + } + + } + + + } catch (Exception err) { + throw new RuntimeException(err); + } + + return processes; + } + + /** + *
+	 * Comment : 프로세스 정보를 확인한다. (
+	 * 
+ * @param String processName + * @return List 프로세스 정보를 리턴한다. + * @version 1.0 (2009.01.12.) + * @see + */ + public static List getProcessId(String processName) { + //log.debug("getProcessId_start"); + List processes = new ArrayList(); + String[] command = { "", "" }; // 인자 없음 + //String tmp = ""; + BufferedReader input = null; + try { + String line; + String separator = null; + + Process p = null; + + if (Globals.OS_TYPE == null) { + throw new RuntimeException("Globals.OS_TYPE property value is needed!!!"); + } + + //log.debug("Globals.OS_TYPE:"+Globals.OS_TYPE); + if ("WINDOWS".equals(Globals.OS_TYPE)) { + p = Runtime.getRuntime().exec("tasklist /fo csv /nh /fi \"imagename eq " + processName + "*\""); + separator = "\",\""; + + if (p == null) { // 2012.11 KISA 보안조치 + throw new RuntimeException("Can't execute process..."); + } + input = new BufferedReader(new InputStreamReader(p.getInputStream())); + if (input != null) { + while ((line = input.readLine()) != null) { + //log.debug("LINE__"+line); + if (line.length() <= MAX_STR_LEN) { + + line = line.substring(1, line.length() - 1); + String[] operator = line.split(separator); + + processes.add(operator); + } + } + + input.close(); + } + + } else if ("UNIX".equals(Globals.OS_TYPE)) { + //tmp = "ps -eo \"%p %G %U %c %a\"|awk -F\" \" '{print $1,$2,$3,$4,$5}'|grep "+processName; + //command [0] = tmp; + //p = Runtime.getRuntime().exec(tmp); + command[1] = processName; + + separator = " "; + + List resultList = executeProgram("getProcInfo", command); + + for (String result : resultList) { + String[] operator = result.split(separator); + + processes.add(operator); + } + } + + } catch (Exception err) { + throw new RuntimeException(err); + } + + return processes; + } +} diff --git a/src/main/java/egovframework/common/dao/CommonDAO.java b/src/main/java/egovframework/common/dao/CommonDAO.java new file mode 100644 index 0000000..1128c22 --- /dev/null +++ b/src/main/java/egovframework/common/dao/CommonDAO.java @@ -0,0 +1,49 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * egovframework.common.dao.CommonDAO + * org.springframework.stereotype.Repository + */ +package egovframework.common.dao; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import java.util.HashMap; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="commonDAO") +public class CommonDAO +extends EgovComAbstractDAO { + public void pushUserRegist(String userNm, String userId, String deviceId, String deviceAlias) { + HashMap param = new HashMap(); + param.put("userNm", userNm); + param.put("userId", userId); + param.put("deviceId", deviceId); + param.put("deviceAlias", deviceAlias); + this.insert("commonDAO.pushUserRegist", param); + } + + public void pushUserUpdate(String userNm, String userId, String deviceId, String deviceAlias) { + HashMap param = new HashMap(); + param.put("userNm", userNm); + param.put("userId", userId); + param.put("deviceId", deviceId); + param.put("deviceAlias", deviceAlias); + this.update("commonDAO.pushUserUpdate", param); + } + + public void pushUserUnregist(String deviceId) { + this.delete("commonDAO.pushUserUnregist", (Object)deviceId); + } + + public List getGcmPushUserList(String userId, String deviceId, String deviceAlias) throws Exception { + HashMap param = new HashMap(); + param.put("userId", userId); + param.put("deviceId", deviceId); + param.put("deviceAlias", deviceAlias); + return this.list("commonDAO.getGcmPushUserList", param); + } +} + diff --git a/src/main/java/egovframework/common/dao/SmsDAO.java b/src/main/java/egovframework/common/dao/SmsDAO.java new file mode 100644 index 0000000..4baff66 --- /dev/null +++ b/src/main/java/egovframework/common/dao/SmsDAO.java @@ -0,0 +1,32 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * com.ibatis.sqlmap.client.SqlMapClient + * egovframework.common.dao.SmsDAO + * egovframework.common.vo.SmsVO + * egovframework.rte.psl.dataaccess.EgovAbstractDAO + * javax.annotation.Resource + * org.springframework.stereotype.Repository + */ +package egovframework.common.dao; + +import com.ibatis.sqlmap.client.SqlMapClient; +import egovframework.common.vo.SmsVO; +import egovframework.rte.psl.dataaccess.EgovAbstractDAO; +import javax.annotation.Resource; +import org.springframework.stereotype.Repository; + +@Repository(value="smsDAO") +public class SmsDAO +extends EgovAbstractDAO { + @Resource(name="smsSqlMapClient") + public void setSuperSqlMapClient(SqlMapClient sqlMapClient) { + super.setSuperSqlMapClient(sqlMapClient); + } + + public void sendSMS(SmsVO vo) throws Exception { + this.insert("dmsSmsDAO.insertDmsSms_S", (Object)vo); + } +} + diff --git a/src/main/java/egovframework/common/dwr/DwrCommonService.java b/src/main/java/egovframework/common/dwr/DwrCommonService.java new file mode 100644 index 0000000..90a2689 --- /dev/null +++ b/src/main/java/egovframework/common/dwr/DwrCommonService.java @@ -0,0 +1,223 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.auth.service.HmsAuthGroupService + * egovframework.cms.auth.vo.HmsAuthGroupDefaultVO + * egovframework.cms.dept.service.HmsDeptService + * egovframework.cms.dept.vo.HmsDeptDefaultVO + * egovframework.cms.dept.vo.HmsDeptVO + * egovframework.cms.user.service.HmsUserService + * egovframework.cms.user.vo.HmsUserDefaultVO + * egovframework.cms.user.vo.HmsUserVO + * egovframework.com.cmm.ComDefaultCodeVO + * egovframework.com.cmm.service.CmmnDetailCode + * egovframework.com.cmm.service.EgovCmmUseService + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.dms.prj.service.DmsPrjService + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.edosi.common.code.CodeResource + * egovframework.main.service.EdosiLoginService + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Service + */ +package egovframework.common.dwr; + +import egovframework.cms.auth.service.HmsAuthGroupService; +import egovframework.cms.auth.vo.HmsAuthGroupDefaultVO; +import egovframework.cms.dept.service.HmsDeptService; +import egovframework.cms.dept.vo.HmsDeptDefaultVO; +import egovframework.cms.dept.vo.HmsDeptVO; +import egovframework.cms.user.service.HmsUserService; +import egovframework.cms.user.vo.HmsUserDefaultVO; +import egovframework.cms.user.vo.HmsUserVO; +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.com.cmm.service.EgovCmmUseService; +import egovframework.common.service.CommonService; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.main.service.EdosiLoginService; +import java.io.PrintWriter; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Service; + +@Service(value="dwrCommonService") +public class DwrCommonService { + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="EgovCmmUseService") + private EgovCmmUseService cmmUseService; + @Resource(name="hmsAuthGroupService") + private HmsAuthGroupService hmsAuthGroupService; + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + @Resource(name="hmsDeptService") + private HmsDeptService hmsDeptService; + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="edosiLoginService") + private EdosiLoginService edosiLoginService; + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + + public List dwrSelectDetailCd(String code, String searchKeyword) throws Exception { + ComDefaultCodeVO voComCode = new ComDefaultCodeVO(); + voComCode.setCodeId(code); + voComCode.setDetailCondition(searchKeyword); + List listComCode = this.cmmUseService.selectCmmCodeDetail(voComCode); + return listComCode; + } + + public List dwrUserList(String searchCondition, String searchKeyword, String sort) throws Exception { + HmsUserDefaultVO searchVO = new HmsUserDefaultVO(); + searchVO.setPageUseYn("N"); + searchVO.setSearchCondition(searchCondition); + searchVO.setSearchKeyword(searchKeyword); + if (sort != null) { + searchVO.setOrderby(sort); + } + return this.hmsUserService.selectHmsUserList(searchVO); + } + + public List dwrDeptList(String searchCondition, String searchKeyword, String sort) throws Exception { + HmsDeptDefaultVO searchVO = new HmsDeptDefaultVO(); + searchVO.setPageUseYn("N"); + searchVO.setSearchCondition(searchCondition); + searchVO.setSearchKeyword(searchKeyword); + if (sort != null) { + searchVO.setOrderby(sort); + } + return this.hmsDeptService.selectHmsDeptList(searchVO); + } + + public List dwrDeptListWithType(String type, String param1) throws Exception { + HmsDeptDefaultVO searchVO = new HmsDeptDefaultVO(); + if (type.equals("parentDeptCd")) { + searchVO.setPageUseYn("N"); + searchVO.setSearchParentDeptCd(param1); + } + return this.hmsDeptService.selectHmsDeptList(searchVO); + } + + public HmsDeptVO dwrDeptInfo(String deptSeq) throws Exception { + HmsDeptVO vo = new HmsDeptVO(); + vo.setDeptSeq(deptSeq); + return this.hmsDeptService.selectHmsDept(vo); + } + + public List dwrUserListByDeptSeq(String deptSeq) throws Exception { + HmsUserDefaultVO searchVO = new HmsUserDefaultVO(); + searchVO.setPageUseYn("N"); + searchVO.setSearchDeptSeq(deptSeq); + return this.hmsUserService.selectHmsUserList(searchVO); + } + + public List dwrAuthGroupList() throws Exception { + HmsAuthGroupDefaultVO searchVO = new HmsAuthGroupDefaultVO(); + searchVO.setPageUseYn("N"); + return this.hmsAuthGroupService.selectHmsAuthGroupList(searchVO); + } + + public List dwrAuthGroupRelUserList(String authGroupSeq) throws Exception { + List userList = this.hmsAuthGroupService.selectHmsAuthGroupRelUser(authGroupSeq); + List deptList = this.hmsAuthGroupService.selectHmsAuthGroupRelDept(authGroupSeq); + userList.addAll(deptList); + return userList; + } + + public String removeContextPath(String url, HttpServletRequest request) { + if (url.startsWith(request.getContextPath())) { + url = url.substring(request.getContextPath().length(), url.length()); + } + return url; + } + + public static void alert(HttpServletResponse response, String msg) { + try { + response.setContentType("text/html; charset=utf-8"); + PrintWriter w = response.getWriter(); + w.write(""); + w.flush(); + w.close(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + public static void alertAndGo(HttpServletResponse response, String msg, String url) { + try { + response.setContentType("text/html; charset=utf-8"); + PrintWriter w = response.getWriter(); + w.write(""); + w.flush(); + w.close(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + public static void writeMessage(HttpServletResponse response, String contentType, String msg) { + try { + response.setContentType(contentType); + PrintWriter w = response.getWriter(); + w.write(msg); + w.flush(); + w.close(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + public static void alertAndBack(HttpServletResponse response, String msg) { + try { + response.setContentType("text/html; charset=utf-8"); + PrintWriter w = response.getWriter(); + w.write(""); + w.flush(); + w.close(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + public static void openerUpdateAndClose(HttpServletResponse response) { + try { + response.setContentType("text/html; charset=utf-8"); + PrintWriter w = response.getWriter(); + w.write(""); + w.flush(); + w.close(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + public String checkUserIdDup(String userId) throws Exception { + HmsUserVO vo = new HmsUserVO(); + vo.setUserId(userId); + vo = this.hmsUserService.selectHmsUser(vo); + return vo == null ? "0" : "1"; + } + + public List userAuthPrjList(String userId) throws Exception { + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPageUseYn("N"); + dmsPrjDefaultVO.setUserId(userId); + List dmsPrjList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + return dmsPrjList; + } +} + diff --git a/src/main/java/egovframework/common/file/web/DmsFileController.java b/src/main/java/egovframework/common/file/web/DmsFileController.java new file mode 100644 index 0000000..844abcd --- /dev/null +++ b/src/main/java/egovframework/common/file/web/DmsFileController.java @@ -0,0 +1,200 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.service.EgovFileMngService + * egovframework.com.cmm.service.FileVO + * egovframework.com.cmm.web.EgovFileMngController + * egovframework.common.file.web.DmsFileController + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.apache.log4j.Logger + * org.springframework.stereotype.Controller + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.RequestParam + */ +package egovframework.common.file.web; + +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; +import egovframework.com.cmm.web.EgovFileMngController; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.log4j.Logger; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class DmsFileController { + @Resource(name="EgovFileMngService") + private EgovFileMngService fileService; + private static final Logger LOG = Logger.getLogger((String)EgovFileMngController.class.getName()); + + @RequestMapping(value={"/common/fms/selectFileInfs.do"}) + public String selectFileInfs(@ModelAttribute(value="searchVO") FileVO fileVO, @RequestParam Map commandMap, ModelMap model) throws Exception { + String atchFileId = (String)commandMap.get("param_atchFileId"); + fileVO.setAtchFileId(atchFileId); + List result = this.fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", (Object)result); + model.addAttribute("updateFlag", (Object)"N"); + model.addAttribute("fileListCnt", (Object)result.size()); + model.addAttribute("atchFileId", (Object)atchFileId); + return "common/EgovFileList"; + } + + @RequestMapping(value={"/common/fms/selectFileInfsForComment.do"}) + public String selectFileInfsForComment(@ModelAttribute(value="searchVO") FileVO fileVO, @RequestParam Map commandMap, ModelMap model) throws Exception { + String atchFileId = (String)commandMap.get("param_atchFileId"); + String isMobile = (String)commandMap.get("param_isMobile"); + fileVO.setAtchFileId(atchFileId); + List result = this.fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", (Object)result); + model.addAttribute("updateFlag", (Object)"N"); + model.addAttribute("fileListCnt", (Object)result.size()); + model.addAttribute("atchFileId", (Object)atchFileId); + model.addAttribute("isMobile", (Object)isMobile); + return "common/EgovFileListForComment"; + } + + @RequestMapping(value={"/common/fms/selectFileInfsForUpdate.do"}) + public String selectFileInfsForUpdate(@ModelAttribute(value="searchVO") FileVO fileVO, @RequestParam Map commandMap, ModelMap model) throws Exception { + String atchFileId = (String)commandMap.get("param_atchFileId"); + fileVO.setAtchFileId(atchFileId); + List result = this.fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", (Object)result); + model.addAttribute("updateFlag", (Object)"Y"); + model.addAttribute("fileListCnt", (Object)result.size()); + model.addAttribute("atchFileId", (Object)atchFileId); + return "common/EgovFileList"; + } + + @RequestMapping(value={"/common/fms/deleteFileInfs.do"}) + public String deleteFileInf(@ModelAttribute(value="searchVO") FileVO fileVO, @RequestParam(value="returnUrl") String returnUrl, HttpServletRequest request, ModelMap model) throws Exception { + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated.booleanValue()) { + this.fileService.deleteFileInf(fileVO); + } + if ("".equals(request.getContextPath()) || "/".equals(request.getContextPath())) { + return "forward:" + returnUrl; + } + if (returnUrl.startsWith(request.getContextPath())) { + return "forward:" + returnUrl.substring(returnUrl.indexOf("/", 1)); + } + return "forward:" + returnUrl; + } + + @RequestMapping(value={"/common/fms/selectImageFileInfs.do"}) + public String selectImageFileInfs(@ModelAttribute(value="searchVO") FileVO fileVO, @RequestParam Map commandMap, ModelMap model) throws Exception { + String atchFileId = (String)commandMap.get("param_atchFileId"); + String width = (String)commandMap.get("width"); + String thum = (String)commandMap.get("thum"); + fileVO.setAtchFileId(atchFileId); + List result = this.fileService.selectImageFileList(fileVO); + model.addAttribute("fileList", (Object)result); + model.addAttribute("width", (Object)width); + model.addAttribute("thum", (Object)thum); + return "common/EgovImgFileList"; + } + + @RequestMapping(value={"/common/fms/selectImageFileInfsForMobile.do"}) + public String selectImageFileInfsForMobile(@ModelAttribute(value="searchVO") FileVO fileVO, @RequestParam Map commandMap, ModelMap model, HttpServletRequest request) throws Exception { + String atchFileId = (String)commandMap.get("param_atchFileId"); + String width = (String)commandMap.get("width"); + String thum = (String)commandMap.get("thum"); + fileVO.setAtchFileId(atchFileId); + List result = this.fileService.selectImageFileList(fileVO); + String checkUser = "N"; + String userAgent = request.getHeader("user-agent"); + if (userAgent.indexOf("iPhone") > -1 || userAgent.indexOf("Android") > -1) { + checkUser = "Y"; + } + model.addAttribute("checkUser", (Object)checkUser); + model.addAttribute("fileList", (Object)result); + model.addAttribute("width", (Object)width); + model.addAttribute("thum", (Object)thum); + return "common/EgovImgFileListForMobile"; + } + + private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception { + String browser = this.getBrowser(request); + String dispositionPrefix = "attachment; filename="; + String encodedFilename = null; + if (browser.equals("MSIE")) { + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Trident")) { + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Firefox")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Opera")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Chrome")) { + StringBuffer sb = new StringBuffer(); + int i = 0; + while (i < filename.length()) { + char c = filename.charAt(i); + if (c > '~') { + sb.append(URLEncoder.encode("" + c, "UTF-8")); + } else { + sb.append(c); + } + ++i; + } + encodedFilename = sb.toString(); + } else { + throw new IOException("Not supported browser"); + } + response.setHeader("Content-Disposition", String.valueOf(dispositionPrefix) + encodedFilename); + if ("Opera".equals(browser)) { + response.setContentType("application/octet-stream;charset=UTF-8"); + } + } + + @RequestMapping(value={"/common/fms/selectFileInfsForMobile.do"}) + public String selectFileInfsForMobile(@ModelAttribute(value="searchVO") FileVO fileVO, @RequestParam Map commandMap, ModelMap model, HttpServletRequest request) throws Exception { + String atchFileId = (String)commandMap.get("param_atchFileId"); + fileVO.setAtchFileId(atchFileId); + List result = this.fileService.selectFileInfs(fileVO); + String checkUser = "N"; + String userAgent = request.getHeader("user-agent"); + if (userAgent.indexOf("iPhone") > -1 || userAgent.indexOf("Android") > -1) { + checkUser = "Y"; + } + model.addAttribute("checkUser", (Object)checkUser); + model.addAttribute("fileList", (Object)result); + model.addAttribute("updateFlag", (Object)"N"); + model.addAttribute("fileListCnt", (Object)result.size()); + model.addAttribute("atchFileId", (Object)atchFileId); + return "common/EgovFileListForMobile"; + } + + private String getBrowser(HttpServletRequest request) { + String header = request.getHeader("User-Agent"); + if (header.indexOf("MSIE") > -1) { + return "MSIE"; + } + if (header.indexOf("Trident") > -1) { + return "Trident"; + } + if (header.indexOf("Chrome") > -1) { + return "Chrome"; + } + if (header.indexOf("Opera") > -1) { + return "Opera"; + } + return "Firefox"; + } +} + diff --git a/src/main/java/egovframework/common/pagination/EdosiMobilePaginationRenderer.java b/src/main/java/egovframework/common/pagination/EdosiMobilePaginationRenderer.java new file mode 100644 index 0000000..216b017 --- /dev/null +++ b/src/main/java/egovframework/common/pagination/EdosiMobilePaginationRenderer.java @@ -0,0 +1,23 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.common.pagination.EdosiMobilePaginationRenderer + * egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer + */ +package egovframework.common.pagination; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer; + +public class EdosiMobilePaginationRenderer +extends AbstractPaginationRenderer { + public EdosiMobilePaginationRenderer() { + this.firstPageLabel = "처음 페이지 이동"; + this.previousPageLabel = "이전페이지 이동"; + this.currentPageLabel = "{0}"; + this.otherPageLabel = "{2}"; + this.nextPageLabel = "다음 10페이지 이동"; + this.lastPageLabel = "마지막 페이지 이동"; + } +} + diff --git a/src/main/java/egovframework/common/pagination/EdosiPaginationManager.java b/src/main/java/egovframework/common/pagination/EdosiPaginationManager.java new file mode 100644 index 0000000..7d87b90 --- /dev/null +++ b/src/main/java/egovframework/common/pagination/EdosiPaginationManager.java @@ -0,0 +1,29 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.common.pagination.EdosiPaginationManager + * egovframework.common.pagination.EdosiPaginationRenderer + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationManager + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationRenderer + */ +package egovframework.common.pagination; + +import egovframework.common.pagination.EdosiPaginationRenderer; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationManager; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationRenderer; +import java.util.Map; + +public class EdosiPaginationManager +implements PaginationManager { + private Map rendererType; + + public void setRendererType(Map rendererType) { + this.rendererType = rendererType; + } + + public PaginationRenderer getRendererType(String type) { + return new EdosiPaginationRenderer(); + } +} + diff --git a/src/main/java/egovframework/common/pagination/EdosiPaginationRenderer.java b/src/main/java/egovframework/common/pagination/EdosiPaginationRenderer.java new file mode 100644 index 0000000..3cc94fa --- /dev/null +++ b/src/main/java/egovframework/common/pagination/EdosiPaginationRenderer.java @@ -0,0 +1,35 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.common.pagination.EdosiPaginationRenderer + * egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer + * javax.servlet.ServletContext + * org.springframework.web.context.ServletContextAware + */ +package egovframework.common.pagination; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer; +import javax.servlet.ServletContext; +import org.springframework.web.context.ServletContextAware; + +public class EdosiPaginationRenderer +extends AbstractPaginationRenderer +implements ServletContextAware { + private ServletContext servletContext; + + public void initVariables() { + this.firstPageLabel = "처음 페이지 이동"; + this.previousPageLabel = "이전페이지 이동"; + this.currentPageLabel = "{0}"; + this.otherPageLabel = "{2}"; + this.nextPageLabel = "다음 10페이지 이동"; + this.lastPageLabel = "마지막 페이지 이동"; + } + + public void setServletContext(ServletContext servletContext) { + this.servletContext = servletContext; + this.initVariables(); + } +} + diff --git a/src/main/java/egovframework/common/service/AesUtil.java b/src/main/java/egovframework/common/service/AesUtil.java new file mode 100644 index 0000000..932237f --- /dev/null +++ b/src/main/java/egovframework/common/service/AesUtil.java @@ -0,0 +1,137 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.common.service.AesUtil + * org.apache.commons.codec.DecoderException + * org.apache.commons.codec.binary.Base64 + * org.apache.commons.codec.binary.Hex + */ +package egovframework.common.service; + +import java.io.UnsupportedEncodingException; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.security.spec.InvalidKeySpecException; +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.SecretKeySpec; +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.codec.binary.Hex; + +/* + * Exception performing whole class analysis ignored. + */ +public class AesUtil { + private final int keySize; + private final int iterationCount; + private final Cipher cipher; + public static final int KEY_SIZE = 128; + public static final int ITERATION_COUNT = 10000; + public static final String IV = "F27D5C9927726BCEFE7510B1BDD3D136"; + public static final String SALT = "3FF2EC019C627B945225DEBAD71A01B6985FE84C95A70EB132882F88C0A59A55"; + public static final String PASS_PHRASE = "jfejfpajepawjdapiwhdawjfdaiwapefjlwDJAEFJAOPSFHAIFHAIOFHAFHA"; + + public AesUtil(int keySize, int iterationCount) { + this.keySize = keySize; + this.iterationCount = iterationCount; + try { + this.cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + } + catch (NoSuchAlgorithmException | NoSuchPaddingException e) { + throw this.fail((Exception)e); + } + } + + public String encrypt(String salt, String iv, String passphrase, String plaintext) { + try { + SecretKey key = this.generateKey(salt, passphrase); + byte[] encrypted = this.doFinal(1, key, iv, plaintext.getBytes("UTF-8")); + return AesUtil.base64((byte[])encrypted); + } + catch (UnsupportedEncodingException e) { + throw this.fail((Exception)e); + } + } + + public String decrypt(String salt, String iv, String passphrase, String ciphertext) { + try { + SecretKey key = this.generateKey(salt, passphrase); + byte[] decrypted = this.doFinal(2, key, iv, AesUtil.base64((String)ciphertext)); + return new String(decrypted, "UTF-8"); + } + catch (UnsupportedEncodingException e) { + throw this.fail((Exception)e); + } + } + + private byte[] doFinal(int encryptMode, SecretKey key, String iv, byte[] bytes) { + try { + this.cipher.init(encryptMode, (Key)key, new IvParameterSpec(AesUtil.hex((String)iv))); + return this.cipher.doFinal(bytes); + } + catch (InvalidAlgorithmParameterException | InvalidKeyException | BadPaddingException | IllegalBlockSizeException e) { + throw this.fail((Exception)e); + } + } + + private SecretKey generateKey(String salt, String passphrase) { + try { + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1"); + PBEKeySpec spec = new PBEKeySpec(passphrase.toCharArray(), AesUtil.hex((String)salt), this.iterationCount, this.keySize); + SecretKeySpec key = new SecretKeySpec(factory.generateSecret(spec).getEncoded(), "AES"); + return key; + } + catch (NoSuchAlgorithmException | InvalidKeySpecException e) { + throw this.fail((Exception)e); + } + } + + public static String random(int length) { + byte[] salt = new byte[length]; + new SecureRandom().nextBytes(salt); + return AesUtil.hex((byte[])salt); + } + + public static String base64(byte[] bytes) { + return Base64.encodeBase64String((byte[])bytes); + } + + public static byte[] base64(String str) { + return Base64.decodeBase64((String)str); + } + + public static String hex(byte[] bytes) { + return Hex.encodeHexString((byte[])bytes); + } + + public static byte[] hex(String str) { + try { + return Hex.decodeHex((char[])str.toCharArray()); + } + catch (DecoderException e) { + throw new IllegalStateException(e); + } + } + + private IllegalStateException fail(Exception e) { + return new IllegalStateException(e); + } + + public static void main(String[] args) { + AesUtil a = new AesUtil(128, 10000); + String dec = a.decrypt("3FF2EC019C627B945225DEBAD71A01B6985FE84C95A70EB132882F88C0A59A55", "F27D5C9927726BCEFE7510B1BDD3D136", "jfejfpajepawjdapiwhdawjfdaiwapefjlwDJAEFJAOPSFHAIFHAIOFHAFHA", "Pwo3tZz5aK5bYs0+fRB+bg=="); + System.out.println(dec); + } +} + diff --git a/src/main/java/egovframework/common/service/CommonService.java b/src/main/java/egovframework/common/service/CommonService.java new file mode 100644 index 0000000..cac7191 --- /dev/null +++ b/src/main/java/egovframework/common/service/CommonService.java @@ -0,0 +1,167 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.user.service.HmsUserService + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.EgovProperties + * egovframework.common.dao.CommonDAO + * egovframework.common.dao.SmsDAO + * egovframework.common.service.CommonService + * egovframework.common.vo.SmsVO + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.common.util.EdosiStringUtil + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.psl.dataaccess.util.EgovMap + * javax.annotation.Resource + * org.springframework.stereotype.Service + */ +package egovframework.common.service; + +import egovframework.cms.user.service.HmsUserService; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.common.dao.CommonDAO; +import egovframework.common.dao.SmsDAO; +import egovframework.common.vo.SmsVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.common.util.EdosiStringUtil; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.io.File; +import java.io.FileWriter; +import java.io.PrintWriter; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; + +/* + * Exception performing whole class analysis ignored. + */ +@Service(value="commonService") +public class CommonService { + @Resource(name="commonDAO") + private CommonDAO commonDAO; + @Resource(name="smsDAO") + private SmsDAO smsDAO; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + private Calendar cal = Calendar.getInstance(); + + public void sendSmsUserList(List userList, String message, String sendTel) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + sendTel = EdosiStringUtil.removeMinusChar((String)sendTel); + message = this.substringeuckr(message.getBytes(), 90, "..."); + int i = 0; + while (i < userList.size()) { + EgovMap m = userList.get(i); + String recvName = (String)m.get((Object)"userNm"); + String tel = (String)m.get((Object)"tel"); + if (tel != null) { + tel = tel.replaceAll("-", ""); + try { + if (message != null) { + message = message.replaceAll("'", "").replaceAll("\"", ""); + } + SmsVO smsVO = new SmsVO(); + smsVO.setTrId(loginVO.getId()); + smsVO.setTrPhone(tel); + smsVO.setTrCallback(sendTel); + smsVO.setTrMsg(message); + smsVO.setTrEtc2(recvName); + smsVO.setTrEtc3(loginVO.getName()); + smsVO.setTrEtc4(loginVO.getIp()); + smsVO.setTrEtc5(""); + this.smsDAO.sendSMS(smsVO); + } + catch (Exception e) { + e.printStackTrace(); + } + } + ++i; + } + } + + public void sendSms(String from, String to, String message, String name) throws Exception { + from = "07049197302"; + to = to.replaceAll("-", ""); + try { + if (message != null) { + message = message.replaceAll("'", "").replaceAll("\"", ""); + } + SmsVO smsVO = new SmsVO(); + smsVO.setTrPhone(to); + smsVO.setTrMsg(message); + smsVO.setTrCallback(from); + this.smsDAO.sendSMS(smsVO); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + public String substringeuckr(byte[] b, int len, String endChar) { + if (b.length <= len) { + return new String(b); + } + int cnt = 0; + int total = 0; + byte[] bytes = new byte[len]; + int i = 0; + while (i < len - endChar.length()) { + if (b[i] < 0 || b[i] >= 255) { + ++cnt; + } + bytes[i] = b[i]; + ++total; + ++i; + } + int add = 0; + if (cnt % 3 == 1) { + add = -1; + } else if (cnt % 3 == 2) { + add = -2; + } + return String.valueOf(new String(bytes, 0, total + add)) + endChar; + } + + public static void fileLog(String data) throws Exception { + String fileLogUseYn = EgovProperties.getPropertyByDefault((String)"fileLogUseYn", (String)"N"); + if (fileLogUseYn.equals("N")) { + return; + } + String fileLogPath = EgovProperties.getPropertyByDefault((String)"fileLogPath", (String)"/webapps/"); + String now = sdf.format(new Date()); + String today = now.split(" ")[0].replaceAll("-", ""); + String fileNm = String.valueOf(today) + "_log.txt"; + File f = new File(fileLogPath, fileNm); + StackTraceElement[] sts = new Throwable().getStackTrace(); + StringBuffer sb = new StringBuffer(); + sb.append("["); + sb.append(now); + sb.append("]"); + sb.append(sts[1].getClassName()); + sb.append(" "); + sb.append(sts[1].getMethodName()); + sb.append(" "); + sb.append(sts[1].getLineNumber()); + sb.append(" line => "); + sb.append(data); + PrintWriter pw = new PrintWriter(new FileWriter(f, true)); + pw.println(sb.toString()); + pw.flush(); + pw.close(); + } + + public static void main(String[] args) throws Exception { + CommonService s = new CommonService(); + CommonService.fileLog((String)"a"); + } +} + diff --git a/src/main/java/egovframework/common/service/LgSmsService.java b/src/main/java/egovframework/common/service/LgSmsService.java new file mode 100644 index 0000000..0919acc --- /dev/null +++ b/src/main/java/egovframework/common/service/LgSmsService.java @@ -0,0 +1,190 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.user.service.HmsUserService + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.EgovProperties + * egovframework.common.service.LgSmsService + * egovframework.edosi.common.util.EdosiStringUtil + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * egovframework.rte.psl.dataaccess.util.EgovMap + * javax.annotation.Resource + * org.apache.http.HttpEntity + * org.apache.http.HttpResponse + * org.apache.http.client.methods.HttpPost + * org.apache.http.client.methods.HttpUriRequest + * org.apache.http.entity.ContentType + * org.apache.http.entity.mime.HttpMultipartMode + * org.apache.http.entity.mime.MultipartEntityBuilder + * org.apache.http.impl.client.CloseableHttpClient + * org.apache.http.impl.client.HttpClients + * org.springframework.stereotype.Service + */ +package egovframework.common.service; + +import egovframework.cms.user.service.HmsUserService; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.edosi.common.util.EdosiStringUtil; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileWriter; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.nio.charset.Charset; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import javax.annotation.Resource; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpUriRequest; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.HttpMultipartMode; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.springframework.stereotype.Service; + +/* + * Exception performing whole class analysis ignored. + */ +@Service(value="lgSmsService") +public class LgSmsService { + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + private Calendar cal = Calendar.getInstance(); + + public void sendLgSmsUserList(List userList, String subject, String message, String sendTel) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + sendTel = EdosiStringUtil.removeMinusChar((String)sendTel); + String totTel = ""; + int i = 0; + while (i < userList.size()) { + EgovMap m = userList.get(i); + String recvName = (String)m.get((Object)"userNm"); + String tel = (String)m.get((Object)"tel"); + if (tel != null) { + tel = tel.replaceAll("-", ""); + try { + if (message != null) { + message = message.replaceAll("'", "").replaceAll("\"", ""); + } + if (!"01012341243".equals(tel)) { + if (!"".equals(totTel)) { + totTel = String.valueOf(totTel) + ","; + } + totTel = String.valueOf(totTel) + tel; + } + } + catch (Exception e) { + e.printStackTrace(); + } + } + ++i; + } + try { + String encodingType = "utf-8"; + String boundary = "____boundary____"; + String sms_url = "https://apis.aligo.in/send/"; + HashMap sms = new HashMap(); + sms.put("user_id", "narae14"); + sms.put("key", "s3mq9o7sw72l0x6q3fiza7z53x68k4i0"); + sms.put("sender", sendTel); + sms.put("receiver", totTel); + sms.put("msg", message); + String image = ""; + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setBoundary("____boundary____"); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + builder.setCharset(Charset.forName("utf-8")); + for (String key : sms.keySet()) { + builder.addTextBody(key, (String)sms.get(key), ContentType.create((String)"Multipart/related", (String)"utf-8")); + } + HttpEntity entity = builder.build(); + CloseableHttpClient client = HttpClients.createDefault(); + HttpPost post = new HttpPost(sms_url); + post.setEntity(entity); + HttpResponse res = client.execute((HttpUriRequest)post); + String result = ""; + if (res != null) { + BufferedReader in = new BufferedReader(new InputStreamReader(res.getEntity().getContent(), "utf-8")); + String buffer = null; + while ((buffer = in.readLine()) != null) { + result = String.valueOf(result) + buffer; + } + in.close(); + } + System.out.println(result); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + public String substringeuckr(byte[] b, int len, String endChar) { + if (b.length <= len) { + return new String(b); + } + int cnt = 0; + int total = 0; + byte[] bytes = new byte[len]; + int i = 0; + while (i < len - endChar.length()) { + if (b[i] < 0 || b[i] >= 255) { + ++cnt; + } + bytes[i] = b[i]; + ++total; + ++i; + } + int add = 0; + if (cnt % 3 == 1) { + add = -1; + } else if (cnt % 3 == 2) { + add = -2; + } + return String.valueOf(new String(bytes, 0, total + add)) + endChar; + } + + public static void fileLog(String data) throws Exception { + String fileLogUseYn = EgovProperties.getPropertyByDefault((String)"fileLogUseYn", (String)"N"); + if (fileLogUseYn.equals("N")) { + return; + } + String fileLogPath = EgovProperties.getPropertyByDefault((String)"fileLogPath", (String)"/webapps/"); + String now = sdf.format(new Date()); + String today = now.split(" ")[0].replaceAll("-", ""); + String fileNm = String.valueOf(today) + "_log.txt"; + File f = new File(fileLogPath, fileNm); + StackTraceElement[] sts = new Throwable().getStackTrace(); + StringBuffer sb = new StringBuffer(); + sb.append("["); + sb.append(now); + sb.append("]"); + sb.append(sts[1].getClassName()); + sb.append(" "); + sb.append(sts[1].getMethodName()); + sb.append(" "); + sb.append(sts[1].getLineNumber()); + sb.append(" line => "); + sb.append(data); + PrintWriter pw = new PrintWriter(new FileWriter(f, true)); + pw.println(sb.toString()); + pw.flush(); + pw.close(); + } + + public static void main(String[] args) throws Exception { + LgSmsService s = new LgSmsService(); + LgSmsService.fileLog((String)"a"); + } +} + diff --git a/src/main/java/egovframework/common/vo/SmsVO.java b/src/main/java/egovframework/common/vo/SmsVO.java new file mode 100644 index 0000000..6121730 --- /dev/null +++ b/src/main/java/egovframework/common/vo/SmsVO.java @@ -0,0 +1,101 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.common.vo.SmsVO + */ +package egovframework.common.vo; + +public class SmsVO { + private String trEtc2 = ""; + private String trEtc3 = ""; + private String trEtc4 = ""; + private String trEtc5 = ""; + private String trId = ""; + private String trPhone = ""; + private String trCallback = ""; + private String trMsg = ""; + private String trSenddate = ""; + private String trSendstat = ""; + + public String getTrEtc2() { + return this.trEtc2; + } + + public void setTrEtc2(String trEtc2) { + this.trEtc2 = trEtc2; + } + + public String getTrId() { + return this.trId; + } + + public void setTrId(String trId) { + this.trId = trId; + } + + public String getTrEtc3() { + return this.trEtc3; + } + + public void setTrEtc3(String trEtc3) { + this.trEtc3 = trEtc3; + } + + public String getTrEtc4() { + return this.trEtc4; + } + + public void setTrEtc4(String trEtc4) { + this.trEtc4 = trEtc4; + } + + public String getTrEtc5() { + return this.trEtc5; + } + + public void setTrEtc5(String trEtc5) { + this.trEtc5 = trEtc5; + } + + public String getTrPhone() { + return this.trPhone; + } + + public void setTrPhone(String trPhone) { + this.trPhone = trPhone; + } + + public String getTrCallback() { + return this.trCallback; + } + + public void setTrCallback(String trCallback) { + this.trCallback = trCallback; + } + + public String getTrMsg() { + return this.trMsg; + } + + public void setTrMsg(String trMsg) { + this.trMsg = trMsg; + } + + public String getTrSenddate() { + return this.trSenddate; + } + + public void setTrSenddate(String trSenddate) { + this.trSenddate = trSenddate; + } + + public String getTrSendstat() { + return this.trSendstat; + } + + public void setTrSendstat(String trSendstat) { + this.trSendstat = trSendstat; + } +} + diff --git a/src/main/java/egovframework/dms/dtb/dao/DmsDtbDAO.java b/src/main/java/egovframework/dms/dtb/dao/DmsDtbDAO.java new file mode 100644 index 0000000..24295a2 --- /dev/null +++ b/src/main/java/egovframework/dms/dtb/dao/DmsDtbDAO.java @@ -0,0 +1,46 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * egovframework.dms.dtb.dao.DmsDtbDAO + * egovframework.dms.dtb.vo.DmsDtbDefaultVO + * egovframework.dms.dtb.vo.DmsDtbVO + * org.springframework.stereotype.Repository + */ +package egovframework.dms.dtb.dao; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.dms.dtb.vo.DmsDtbDefaultVO; +import egovframework.dms.dtb.vo.DmsDtbVO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="dmsDtbDAO") +public class DmsDtbDAO +extends EgovComAbstractDAO { + public String insertDmsDtb(DmsDtbVO vo) throws Exception { + return (String)this.insert("dmsDtbDAO.insertDmsDtb_S", (Object)vo); + } + + public void updateDmsDtb(DmsDtbVO vo) throws Exception { + this.update("dmsDtbDAO.updateDmsDtb_S", (Object)vo); + } + + public void deleteDmsDtb(DmsDtbVO vo) throws Exception { + this.delete("dmsDtbDAO.deleteDmsDtb_S", (Object)vo); + } + + public DmsDtbVO selectDmsDtb(DmsDtbVO vo) throws Exception { + return (DmsDtbVO)this.select("dmsDtbDAO.selectDmsDtb_S", (Object)vo); + } + + public List selectDmsDtbList(DmsDtbDefaultVO searchVO) throws Exception { + return this.list("dmsDtbDAO.selectDmsDtbList_D", (Object)searchVO); + } + + public int selectDmsDtbListTotCnt(DmsDtbDefaultVO searchVO) { + return (Integer)this.select("dmsDtbDAO.selectDmsDtbListTotCnt_S", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/dms/dtb/service/DmsDtbService.java b/src/main/java/egovframework/dms/dtb/service/DmsDtbService.java new file mode 100644 index 0000000..b98787e --- /dev/null +++ b/src/main/java/egovframework/dms/dtb/service/DmsDtbService.java @@ -0,0 +1,34 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.dtb.service.DmsDtbService + * egovframework.dms.dtb.vo.DmsDtbDefaultVO + * egovframework.dms.dtb.vo.DmsDtbVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.dtb.service; + +import egovframework.dms.dtb.vo.DmsDtbDefaultVO; +import egovframework.dms.dtb.vo.DmsDtbVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface DmsDtbService { + public String insertDmsDtb(DmsDtbVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateDmsDtb(DmsDtbVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteDmsDtb(DmsDtbVO var1, HttpServletRequest var2) throws Exception; + + public DmsDtbVO selectDmsDtb(DmsDtbVO var1) throws Exception; + + public List selectDmsDtbList(DmsDtbDefaultVO var1) throws Exception; + + public int selectDmsDtbListTotCnt(DmsDtbDefaultVO var1); + + public String checkFileWhiteList(MultipartHttpServletRequest var1, String var2, String var3) throws Exception; +} + diff --git a/src/main/java/egovframework/dms/dtb/service/impl/DmsDtbServiceImpl.java b/src/main/java/egovframework/dms/dtb/service/impl/DmsDtbServiceImpl.java new file mode 100644 index 0000000..663f12b --- /dev/null +++ b/src/main/java/egovframework/dms/dtb/service/impl/DmsDtbServiceImpl.java @@ -0,0 +1,197 @@ +package egovframework.dms.dtb.service.impl; + +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.dms.dtb.dao.DmsDtbDAO; +import egovframework.dms.dtb.service.DmsDtbService; +import egovframework.dms.dtb.vo.DmsDtbDefaultVO; +import egovframework.dms.dtb.vo.DmsDtbVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("dmsDtbService") +public class DmsDtbServiceImpl implements DmsDtbService { + @Resource(name = "dmsDtbDAO") + private DmsDtbDAO dmsDtbDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + private final String OBJ_DMS_DTB = "DMS_DTB"; + + public String insertDmsDtb(DmsDtbVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + vo.setDtbSeq(this.egovIdGnrService.getNextStringId()); + vo.setAtchFileId(addMultiFiles(request, null)); + if (UserDetailsHelper.isRole("ROLE_CUS").booleanValue()) { + vo.setUserType("CUS"); + } else { + vo.setUserType("EMP"); + } + this.dmsDtbDAO.insertDmsDtb(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject("DMS_DTB"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDtbSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateDmsDtb(DmsDtbVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String atchSeq = updateMultiFiles(request, "file_", vo.getAtchFileId(), true); + vo.setAtchFileId(atchSeq); + this.dmsDtbDAO.updateDmsDtb(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject("DMS_DTB"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDtbSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteDmsDtb(DmsDtbVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + this.dmsDtbDAO.deleteDmsDtb(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject("DMS_DTB"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getDtbSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public DmsDtbVO selectDmsDtb(DmsDtbVO vo) throws Exception { + DmsDtbVO resultVO = this.dmsDtbDAO.selectDmsDtb(vo); + return resultVO; + } + + public List selectDmsDtbList(DmsDtbDefaultVO searchVO) throws Exception { + return this.dmsDtbDAO.selectDmsDtbList(searchVO); + } + + public int selectDmsDtbListTotCnt(DmsDtbDefaultVO searchVO) { + return this.dmsDtbDAO.selectDmsDtbListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + multiRequest.setCharacterEncoding("utf-8"); + Map files = multiRequest.getFileMap(); + String fileId = ""; + if (!files.isEmpty()) { + String _atchFileId = ""; + List _result = null; + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + String[] delcheck = multiRequest.getParameterValues("delCheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!files.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(files, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + return fileId; + } + + public String checkFileWhiteList(MultipartHttpServletRequest multiRequest, String targetNm, String whitelist) throws Exception { + if (whitelist == null || whitelist.equals("")) + return null; + String[] ext = whitelist.split(","); + if (ext == null || ext.length == 0 || ext[0] == null || ext[0].isEmpty()) + return null; + Map files = multiRequest.getFileMap(); + if (files.isEmpty()) + return null; + MultipartFile file = null; + String key = null; + Iterator> itr = files.entrySet().iterator(); + while (itr.hasNext()) { + Map.Entry entry = itr.next(); + file = entry.getValue(); + key = file.getName(); + if (key.indexOf(targetNm) < 0) + continue; + String fn = file.getOriginalFilename(); + if (fn.equals("")) + continue; + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.toLowerCase().endsWith(ext[i].toLowerCase())) { + check = true; + break; + } + } + if (!check) + return fn; + } + return null; + } +} diff --git a/src/main/java/egovframework/dms/dtb/vo/DmsDtbDefaultVO.java b/src/main/java/egovframework/dms/dtb/vo/DmsDtbDefaultVO.java new file mode 100644 index 0000000..778f2e3 --- /dev/null +++ b/src/main/java/egovframework/dms/dtb/vo/DmsDtbDefaultVO.java @@ -0,0 +1,164 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.dtb.vo.DmsDtbDefaultVO + */ +package egovframework.dms.dtb.vo; + +import java.io.Serializable; + +public class DmsDtbDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String dtbSeq; + private String prjSeq; + + public String getPrjSeq() { + return this.prjSeq; + } + + public void setPrjSeq(String prjSeq) { + this.prjSeq = prjSeq; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setDtbSeq(String dtbSeq) { + this.dtbSeq = dtbSeq; + } + + public String getDtbSeq() { + return this.dtbSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } +} + diff --git a/src/main/java/egovframework/dms/dtb/vo/DmsDtbVO.java b/src/main/java/egovframework/dms/dtb/vo/DmsDtbVO.java new file mode 100644 index 0000000..6c05679 --- /dev/null +++ b/src/main/java/egovframework/dms/dtb/vo/DmsDtbVO.java @@ -0,0 +1,133 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.dtb.vo.DmsDtbDefaultVO + * egovframework.dms.dtb.vo.DmsDtbVO + */ +package egovframework.dms.dtb.vo; + +import egovframework.dms.dtb.vo.DmsDtbDefaultVO; +import java.sql.Date; + +public class DmsDtbVO +extends DmsDtbDefaultVO { + private String dtbSeq; + private String prjSeq; + private String title; + private String contents; + private Date createDate; + private String recSts; + private String atchFileId; + private String userId; + private String userNm; + private String userType; + private String etc; + private String tel; + private String email; + + public String getTel() { + return this.tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public String getEmail() { + return this.email; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setDtbSeq(String dtbSeq) { + this.dtbSeq = dtbSeq; + } + + public String getDtbSeq() { + return this.dtbSeq; + } + + public void setPrjSeq(String prjSeq) { + this.prjSeq = prjSeq; + } + + public String getPrjSeq() { + return this.prjSeq; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTitle() { + return this.title; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getContents() { + return this.contents; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getCreateDate() { + return this.createDate; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } + + public String getAtchFileId() { + return this.atchFileId; + } + + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserId() { + return this.userId; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getUserNm() { + return this.userNm; + } + + public void setUserType(String userType) { + this.userType = userType; + } + + public String getUserType() { + return this.userType; + } + + public void setEtc(String etc) { + this.etc = etc; + } + + public String getEtc() { + return this.etc; + } +} + diff --git a/src/main/java/egovframework/dms/dtb/web/DmsDtbAdminController.java b/src/main/java/egovframework/dms/dtb/web/DmsDtbAdminController.java new file mode 100644 index 0000000..c57fd21 --- /dev/null +++ b/src/main/java/egovframework/dms/dtb/web/DmsDtbAdminController.java @@ -0,0 +1,228 @@ +package egovframework.dms.dtb.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.dtb.service.DmsDtbService; +import egovframework.dms.dtb.vo.DmsDtbDefaultVO; +import egovframework.dms.dtb.vo.DmsDtbVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types = {DmsDtbVO.class}) +public class DmsDtbAdminController { + @Resource(name = "dmsDtbService") + private DmsDtbService dmsDtbService; + + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Resource(name = "codeResource") + private CodeResource codeResource; + + @Resource(name = "dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping({"/admin/dmsDtb/dmsDtbAdminIndex.do"}) + public String dmsDtbIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = selectDmsDtbAdminList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = selectDmsDtbAdmin(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = addDmsDtbAdminView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = updateDmsDtbAdmin(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", bmode); + model.addAttribute("loginVO", loginVO); + model.addAttribute("ROLE_ADMIN", UserDetailsHelper.isRole("ROLE_ADMIN")); + initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + Map param = new HashMap<>(); + initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, this.codeResource.getCodeList(value)); + if (bmode != null && (bmode.equals("add") || bmode.equals("modify"))) + model.addAttribute(key, this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsDtbAdminList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.dmsDtbService.selectDmsDtbListTotCnt(searchVO); + if (totCnt > 0) { + List dmsDtbList = this.dmsDtbService.selectDmsDtbList(searchVO); + model.addAttribute("resultList", dmsDtbList); + } + } catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + return "sys/dmsDtb/DmsDtbAdminList"; + } + + private String addDmsDtbAdminView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + model.addAttribute("dmsDtbVO", dmsDtbVO); + return "sys/dmsDtb/DmsDtbAdminRegister"; + } + + @RequestMapping({"/admin/dmsDtb/addDmsDtbAdmin.do"}) + public String addDmsDtbAdmin(MultipartHttpServletRequest request, HttpServletResponse response, DmsDtbVO dmsDtbVO, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + String white = this.dmsDtbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white != null) { + DwrCommonService.alertAndBack(response, "유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요."); + return null; + } + this.dmsDtbService.insertDmsDtb(dmsDtbVO, request); + } catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsDtbAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + dmsDtbVO.setDtbSeq(searchVO.getDtbSeq()); + dmsDtbVO = this.dmsDtbService.selectDmsDtb(dmsDtbVO); + if (!checkWriteAuth(dmsDtbVO)) + return "cmm/privilegeError"; + model.addAttribute("dmsDtbVO", dmsDtbVO); + return "sys/dmsDtb/DmsDtbAdminRegister"; + } + + @RequestMapping({"/admin/dmsDtb/updateDmsDtbAdmin.do"}) + public String updateDmsDtbAdmin(MultipartHttpServletRequest request, HttpServletResponse response, DmsDtbVO dmsDtbVO, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!checkWriteAuth(dmsDtbVO)) + return "cmm/privilegeError"; + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + String white = this.dmsDtbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white != null) { + DwrCommonService.alertAndBack(response, "유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요."); + return null; + } + this.dmsDtbService.updateDmsDtb(dmsDtbVO, request); + } catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) + request.getSession().setAttribute("SEARCH_KEYWORD", searchVO.getSearchKeyword()); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&dtbSeq=" + dmsDtbVO.getDtbSeq(); + } + + private String selectDmsDtbAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + dmsDtbVO.setDtbSeq(searchVO.getDtbSeq()); + try { + dmsDtbVO = this.dmsDtbService.selectDmsDtb(dmsDtbVO); + } catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("dmsDtbVO", dmsDtbVO); + model.addAttribute("checkWriteAuth", Boolean.valueOf(checkWriteAuth(dmsDtbVO))); + return "sys/dmsDtb/DmsDtbAdminDetail"; + } + + @RequestMapping({"/admin/dmsDtb/deleteDmsDtbAdmin.do"}) + public String deleteDmsDtbAdmin(HttpServletRequest request, DmsDtbVO dmsDtbVO, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!checkWriteAuth(dmsDtbVO)) + return "cmm/privilegeError"; + try { + this.dmsDtbService.deleteDmsDtb(dmsDtbVO, request); + } catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) + request.getSession().setAttribute("SEARCH_KEYWORD", searchVO.getSearchKeyword()); + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(DmsDtbVO dmsDtbVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole("ROLE_ADMIN").booleanValue()) + return true; + if (dmsDtbVO != null && loginVO.getId().equals(dmsDtbVO.getUserId())) + return true; + return false; + } +} diff --git a/src/main/java/egovframework/dms/dtb/web/DmsDtbController.java b/src/main/java/egovframework/dms/dtb/web/DmsDtbController.java new file mode 100644 index 0000000..167f77b --- /dev/null +++ b/src/main/java/egovframework/dms/dtb/web/DmsDtbController.java @@ -0,0 +1,229 @@ +package egovframework.dms.dtb.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.dtb.service.DmsDtbService; +import egovframework.dms.dtb.vo.DmsDtbDefaultVO; +import egovframework.dms.dtb.vo.DmsDtbVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types = {DmsDtbVO.class}) +public class DmsDtbController { + @Resource(name = "dmsDtbService") + private DmsDtbService dmsDtbService; + + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Resource(name = "codeResource") + private CodeResource codeResource; + + @Resource(name = "dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping({"/dms/dmsDtb/dmsDtbIndex.do"}) + public String dmsDtbIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + String viewName = ""; + String bmode = searchVO.getBmode(); + searchVO.setPrjSeq((String)request.getSession().getAttribute("prjSeq")); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = selectDmsDtbList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = selectDmsDtb(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = addDmsDtbView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = updateDmsDtb(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", bmode); + model.addAttribute("loginVO", loginVO); + model.addAttribute("ROLE_ADMIN", UserDetailsHelper.isRole("ROLE_ADMIN")); + initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + Map param = new HashMap<>(); + initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, this.codeResource.getCodeList(value)); + if (bmode != null && (bmode.equals("add") || bmode.equals("modify"))) + model.addAttribute(key, this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsDtbList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.dmsDtbService.selectDmsDtbListTotCnt(searchVO); + if (totCnt > 0) { + List dmsDtbList = this.dmsDtbService.selectDmsDtbList(searchVO); + model.addAttribute("resultList", dmsDtbList); + } + } catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + return "dms/dmsDtb/DmsDtbList"; + } + + private String addDmsDtbView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + model.addAttribute("dmsDtbVO", dmsDtbVO); + return "dms/dmsDtb/DmsDtbRegister"; + } + + @RequestMapping({"/dms/dmsDtb/addDmsDtb.do"}) + public String addDmsDtb(MultipartHttpServletRequest request, HttpServletResponse response, DmsDtbVO dmsDtbVO, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + String white = this.dmsDtbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white != null) { + DwrCommonService.alertAndBack(response, "유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요."); + return null; + } + this.dmsDtbService.insertDmsDtb(dmsDtbVO, request); + } catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsDtb(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + dmsDtbVO.setDtbSeq(searchVO.getDtbSeq()); + dmsDtbVO = this.dmsDtbService.selectDmsDtb(dmsDtbVO); + if (!checkWriteAuth(dmsDtbVO)) + return "cmm/privilegeError"; + model.addAttribute("dmsDtbVO", dmsDtbVO); + return "dms/dmsDtb/DmsDtbRegister"; + } + + @RequestMapping({"/dms/dmsDtb/updateDmsDtb.do"}) + public String updateDmsDtb(MultipartHttpServletRequest request, HttpServletResponse response, DmsDtbVO dmsDtbVO, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!checkWriteAuth(dmsDtbVO)) + return "cmm/privilegeError"; + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + String white = this.dmsDtbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white != null) { + DwrCommonService.alertAndBack(response, "유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요."); + return null; + } + this.dmsDtbService.updateDmsDtb(dmsDtbVO, request); + } catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) + request.getSession().setAttribute("SEARCH_KEYWORD", searchVO.getSearchKeyword()); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&dtbSeq=" + dmsDtbVO.getDtbSeq(); + } + + private String selectDmsDtb(HttpServletRequest request, HttpServletResponse response, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + dmsDtbVO.setDtbSeq(searchVO.getDtbSeq()); + try { + dmsDtbVO = this.dmsDtbService.selectDmsDtb(dmsDtbVO); + } catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("dmsDtbVO", dmsDtbVO); + model.addAttribute("checkWriteAuth", Boolean.valueOf(checkWriteAuth(dmsDtbVO))); + return "dms/dmsDtb/DmsDtbDetail"; + } + + @RequestMapping({"/dms/dmsDtb/deleteDmsDtb.do"}) + public String deleteDmsDtb(HttpServletRequest request, DmsDtbVO dmsDtbVO, @ModelAttribute("searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) + return "cmm/sessionError"; + if (!checkWriteAuth(dmsDtbVO)) + return "cmm/privilegeError"; + try { + this.dmsDtbService.deleteDmsDtb(dmsDtbVO, request); + } catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) + request.getSession().setAttribute("SEARCH_KEYWORD", searchVO.getSearchKeyword()); + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(DmsDtbVO dmsDtbVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole("ROLE_ADMIN").booleanValue()) + return true; + if (dmsDtbVO != null && loginVO.getId().equals(dmsDtbVO.getUserId())) + return true; + return false; + } +} diff --git a/src/main/java/egovframework/dms/dtb/web/DmsDtbMobileController.java b/src/main/java/egovframework/dms/dtb/web/DmsDtbMobileController.java new file mode 100644 index 0000000..07e4840 --- /dev/null +++ b/src/main/java/egovframework/dms/dtb/web/DmsDtbMobileController.java @@ -0,0 +1,273 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.dms.dtb.service.DmsDtbService + * egovframework.dms.dtb.vo.DmsDtbDefaultVO + * egovframework.dms.dtb.vo.DmsDtbVO + * egovframework.dms.dtb.web.DmsDtbMobileController + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.dtb.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.dtb.service.DmsDtbService; +import egovframework.dms.dtb.vo.DmsDtbDefaultVO; +import egovframework.dms.dtb.vo.DmsDtbVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={DmsDtbVO.class}) +public class DmsDtbMobileController { + @Resource(name="dmsDtbService") + private DmsDtbService dmsDtbService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/mobile/dmsDtb/dmsDtbMobileIndex.do"}) + public String dmsDtbIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsDtbDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + searchVO.setPrjSeq((String)request.getSession().getAttribute("prjSeq")); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectDmsDtbMobileList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectDmsDtbMobile(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addDmsDtbMobileView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateDmsDtbMobile(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_ADMIN", (Object)UserDetailsHelper.isRole((String)"ROLE_ADMIN")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, this.codeResource.getCodeList(value)); + if (bmode != null && (bmode.equals("add") || bmode.equals("modify"))) + model.addAttribute(key, this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsDtbMobileList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.dmsDtbService.selectDmsDtbListTotCnt(searchVO); + if (totCnt > 0) { + List dmsDtbList = this.dmsDtbService.selectDmsDtbList(searchVO); + model.addAttribute("resultList", (Object)dmsDtbList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "mobile/dmsDtb/DmsDtbMobileList"; + } + + private String addDmsDtbMobileView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + model.addAttribute("dmsDtbVO", (Object)dmsDtbVO); + return "mobile/dmsDtb/DmsDtbMobileRegister"; + } + + @RequestMapping(value={"/mobile/dmsDtb/addDmsDtbMobile.do"}) + public String addDmsDtbMobile(MultipartHttpServletRequest request, HttpServletResponse response, DmsDtbVO dmsDtbVO, @ModelAttribute(value="searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsDtbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsDtbService.insertDmsDtb(dmsDtbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsDtbMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + dmsDtbVO.setDtbSeq(searchVO.getDtbSeq()); + dmsDtbVO = this.dmsDtbService.selectDmsDtb(dmsDtbVO); + if (!this.checkWriteAuth(dmsDtbVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("dmsDtbVO", (Object)dmsDtbVO); + return "mobile/dmsDtb/DmsDtbMobileRegister"; + } + + @RequestMapping(value={"/mobile/dmsDtb/updateDmsDtbMobile.do"}) + public String updateDmsDtbMobile(MultipartHttpServletRequest request, HttpServletResponse response, DmsDtbVO dmsDtbVO, @ModelAttribute(value="searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + block7: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsDtbVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsDtbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block7; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsDtbService.updateDmsDtb(dmsDtbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&dtbSeq=" + dmsDtbVO.getDtbSeq(); + } + + private String selectDmsDtbMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsDtbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsDtbVO dmsDtbVO = new DmsDtbVO(); + dmsDtbVO.setDtbSeq(searchVO.getDtbSeq()); + try { + dmsDtbVO = this.dmsDtbService.selectDmsDtb(dmsDtbVO); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("dmsDtbVO", (Object)dmsDtbVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(dmsDtbVO)); + return "mobile/dmsDtb/DmsDtbMobileDetail"; + } + + @RequestMapping(value={"/mobile/dmsDtb/deleteDmsDtbMobile.do"}) + public String deleteDmsDtbMobile(HttpServletRequest request, DmsDtbVO dmsDtbVO, @ModelAttribute(value="searchVO") DmsDtbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsDtbVO)) { + return "cmm/privilegeError"; + } + try { + this.dmsDtbService.deleteDmsDtb(dmsDtbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(DmsDtbVO dmsDtbVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_ADMIN").booleanValue()) { + return true; + } + return dmsDtbVO != null && loginVO.getId().equals(dmsDtbVO.getUserId()); + } +} + diff --git a/src/main/java/egovframework/dms/hdb/dao/DmsHdbDAO.java b/src/main/java/egovframework/dms/hdb/dao/DmsHdbDAO.java new file mode 100644 index 0000000..1ee38cc --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/dao/DmsHdbDAO.java @@ -0,0 +1,77 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * egovframework.dms.hdb.dao.DmsHdbDAO + * egovframework.dms.hdb.vo.DmsHdbDefaultVO + * egovframework.dms.hdb.vo.DmsHdbReplyVO + * egovframework.dms.hdb.vo.DmsHdbVO + * org.springframework.stereotype.Repository + */ +package egovframework.dms.hdb.dao; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.dms.hdb.vo.DmsHdbDefaultVO; +import egovframework.dms.hdb.vo.DmsHdbReplyVO; +import egovframework.dms.hdb.vo.DmsHdbVO; +import egovframework.dms.hdb.vo.DmsHdbGraphVO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="dmsHdbDAO") +public class DmsHdbDAO +extends EgovComAbstractDAO { + public String insertDmsHdb(DmsHdbVO vo) throws Exception { + return (String)this.insert("dmsHdbDAO.insertDmsHdb_S", (Object)vo); + } + + public void updateDmsHdb(DmsHdbVO vo) throws Exception { + this.update("dmsHdbDAO.updateDmsHdb_S", (Object)vo); + } + + public void deleteDmsHdb(DmsHdbVO vo) throws Exception { + this.delete("dmsHdbDAO.deleteDmsHdb_S", (Object)vo); + } + + public DmsHdbVO selectDmsHdb(DmsHdbVO vo) throws Exception { + return (DmsHdbVO)this.select("dmsHdbDAO.selectDmsHdb_S", (Object)vo); + } + + public List selectDmsHdbList(DmsHdbDefaultVO searchVO) throws Exception { + return this.list("dmsHdbDAO.selectDmsHdbList_D", (Object)searchVO); + } + + public int selectDmsHdbListTotCnt(DmsHdbDefaultVO searchVO) { + return (Integer)this.select("dmsHdbDAO.selectDmsHdbListTotCnt_S", (Object)searchVO); + } + + public List selectDmsHdbReplyList(DmsHdbDefaultVO searchVO) { + return this.list("dmsHdbDAO.selectDmsHdbReplyList_D", (Object)searchVO); + } + + public void insertDmsHdbReply(DmsHdbReplyVO vo) { + this.insert("dmsHdbDAO.insertDmsHdbReply_S", (Object)vo); + } + + public void updateDmsHdbStatus(DmsHdbVO dmsHdbVO) { + this.update("dmsHdbDAO.updateDmsHdbStatus", (Object)dmsHdbVO); + } + + public void deleteDmsHdbReply(DmsHdbReplyVO vo) { + this.update("dmsHdbDAO.deleteDmsHdbReply", (Object)vo); + } + + public void updateDmsHdbRdCnt(DmsHdbDefaultVO searchVO) { + this.update("dmsHdbDAO.updateDmsHdbRdCnt", (Object)searchVO); + } + + public List selectDmsHdbPerYearChart(DmsHdbDefaultVO searchVO) { + return (List) this.list("dmsHdbDAO.selectDmsHdbPerYearChart", (Object)searchVO); + } + + public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO searchVO) { + return (DmsHdbGraphVO)this.select("dmsHdbDAO.selectDmsHdbForMonthChart", (Object)searchVO); + } +} + diff --git a/src/main/java/egovframework/dms/hdb/service/DmsHdbService.java b/src/main/java/egovframework/dms/hdb/service/DmsHdbService.java new file mode 100644 index 0000000..93edc18 --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/service/DmsHdbService.java @@ -0,0 +1,51 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.hdb.service.DmsHdbService + * egovframework.dms.hdb.vo.DmsHdbDefaultVO + * egovframework.dms.hdb.vo.DmsHdbReplyVO + * egovframework.dms.hdb.vo.DmsHdbVO + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.hdb.service; + +import egovframework.dms.hdb.vo.DmsHdbDefaultVO; +import egovframework.dms.hdb.vo.DmsHdbReplyVO; +import egovframework.dms.hdb.vo.DmsHdbVO; +import egovframework.dms.hdb.vo.DmsHdbGraphVO; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface DmsHdbService { + public String insertDmsHdb(DmsHdbVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateDmsHdb(DmsHdbVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteDmsHdb(DmsHdbVO var1, HttpServletRequest var2) throws Exception; + + public DmsHdbVO selectDmsHdb(DmsHdbVO var1) throws Exception; + + public List selectDmsHdbList(DmsHdbDefaultVO var1) throws Exception; + + public int selectDmsHdbListTotCnt(DmsHdbDefaultVO var1); + + public String checkFileWhiteList(MultipartHttpServletRequest var1, String var2, String var3) throws Exception; + + public List selectDmsHdbReplyList(DmsHdbDefaultVO var1); + + public void insertDmsHdbReply(DmsHdbReplyVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateDmsHdbStatus(DmsHdbVO var1, HttpServletRequest var2) throws Exception; + + public void deleteDmsHdbReply(DmsHdbReplyVO var1, MultipartHttpServletRequest var2); + + public void updateDmsHdbRdCnt(DmsHdbDefaultVO var1); + + public List selectDmsHdbPerYearChart(DmsHdbDefaultVO var1); + + public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO var1); +} + diff --git a/src/main/java/egovframework/dms/hdb/service/impl/DmsHdbServiceImpl.java b/src/main/java/egovframework/dms/hdb/service/impl/DmsHdbServiceImpl.java new file mode 100644 index 0000000..b95e2a8 --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/service/impl/DmsHdbServiceImpl.java @@ -0,0 +1,307 @@ +package egovframework.dms.hdb.service.impl; + +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.com.cmm.service.FileVO; +import egovframework.common.service.CommonService; +import egovframework.common.service.LgSmsService; +import egovframework.dms.hdb.dao.DmsHdbDAO; +import egovframework.dms.hdb.service.DmsHdbService; +import egovframework.dms.hdb.vo.DmsHdbDefaultVO; +import egovframework.dms.hdb.vo.DmsHdbReplyVO; +import egovframework.dms.hdb.vo.DmsHdbVO; +import egovframework.dms.hdb.vo.DmsHdbGraphVO; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("dmsHdbService") +public class DmsHdbServiceImpl implements DmsHdbService { + @Resource(name = "dmsHdbDAO") + private DmsHdbDAO dmsHdbDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + @Resource(name = "commonService") + private CommonService commonService; + + @Resource(name = "dmsPrjService") + private DmsPrjService dmsPrjService; + + @Resource(name = "lgSmsService") + private LgSmsService lgSmsService; + + private final String OBJ_DMS_HDB = "DMS_HDB"; + + public String insertDmsHdb(DmsHdbVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + vo.setHdbSeq(this.egovIdGnrService.getNextStringId()); + vo.setAtchFileId(addMultiFiles(request, null)); + if (UserDetailsHelper.isRole("ROLE_CUS").booleanValue()) { + vo.setUserType("CUS"); + } else { + vo.setUserType("EMP"); + } + this.dmsHdbDAO.insertDmsHdb(vo); + if (vo.getSmsYn().equals("Y")) { + DmsPrjDefaultVO prjVO = new DmsPrjDefaultVO(); + Map prjInfo = (Map)request.getSession().getAttribute("prjInfo"); + prjVO.setPrjSeq((String)prjInfo.get("prjSeq")); + prjVO.setSearchCondition("2"); + List userList = this.dmsPrjService.selectDmsPrjAuthList(prjVO); + String message = "[help_desk " + prjInfo.get("prjNm") + "]\n요청사항 : " + vo.getTitle(); + String subject = ""; + String sendTel = EgovProperties.getProperty("SMS.callback"); + if (userList.size() > 0) + this.lgSmsService.sendLgSmsUserList(userList, subject, message, sendTel); + } + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject("DMS_HDB"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getHdbSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateDmsHdb(DmsHdbVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String atchSeq = updateMultiFiles(request, "file_", vo.getAtchFileId(), true); + vo.setAtchFileId(atchSeq); + this.dmsHdbDAO.updateDmsHdb(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject("DMS_HDB"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getHdbSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteDmsHdb(DmsHdbVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + this.dmsHdbDAO.deleteDmsHdb(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject("DMS_HDB"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getHdbSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public DmsHdbVO selectDmsHdb(DmsHdbVO vo) throws Exception { + DmsHdbVO resultVO = this.dmsHdbDAO.selectDmsHdb(vo); + return resultVO; + } + + public List selectDmsHdbList(DmsHdbDefaultVO searchVO) throws Exception { + return this.dmsHdbDAO.selectDmsHdbList(searchVO); + } + + public int selectDmsHdbListTotCnt(DmsHdbDefaultVO searchVO) { + return this.dmsHdbDAO.selectDmsHdbListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + multiRequest.setCharacterEncoding("utf-8"); + Map files = multiRequest.getFileMap(); + String fileId = ""; + if (!files.isEmpty()) { + String _atchFileId = ""; + List _result = null; + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + String[] delcheck = multiRequest.getParameterValues("delCheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!files.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(files, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + return fileId; + } + + public String checkFileWhiteList(MultipartHttpServletRequest multiRequest, String targetNm, String whitelist) throws Exception { + if (whitelist == null || whitelist.equals("")) + return null; + String[] ext = whitelist.split(","); + if (ext == null || ext.length == 0 || ext[0] == null || ext[0].isEmpty()) + return null; + Map files = multiRequest.getFileMap(); + if (files.isEmpty()) + return null; + MultipartFile file = null; + String key = null; + Iterator> itr = files.entrySet().iterator(); + while (itr.hasNext()) { + Map.Entry entry = itr.next(); + file = entry.getValue(); + key = file.getName(); + if (key.indexOf(targetNm) < 0) + continue; + String fn = file.getOriginalFilename(); + if (fn.equals("")) + continue; + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.toLowerCase().endsWith(ext[i].toLowerCase())) { + check = true; + break; + } + } + if (!check) + return fn; + } + return null; + } + + public List selectDmsHdbReplyList(DmsHdbDefaultVO searchVO) { + return this.dmsHdbDAO.selectDmsHdbReplyList(searchVO); + } + + public void insertDmsHdbReply(DmsHdbReplyVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + vo.setHdbReplySeq(this.egovIdGnrService.getNextStringId()); + vo.setAtchFileId(addMultiFiles(request, null)); + vo.setUserId(loginVO.getId()); + vo.setUserNm(loginVO.getName()); + if (UserDetailsHelper.isRole("ROLE_CUS").booleanValue()) { + vo.setUserType("CUS"); + } else { + vo.setUserType("EMP"); + } + this.dmsHdbDAO.insertDmsHdbReply(vo); + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + dmsHdbVO.setHdbSeq(vo.getHdbSeq()); + dmsHdbVO = this.dmsHdbDAO.selectDmsHdb(dmsHdbVO); + DmsPrjDefaultVO prjVO = new DmsPrjDefaultVO(); + Map prjInfo = (Map)request.getSession().getAttribute("prjInfo"); + prjVO.setPrjSeq((String)prjInfo.get("prjSeq")); + if ("EMP".equals(loginVO.getUserSe())) { + prjVO.setUserId(dmsHdbVO.getUserId()); + prjVO.setSearchCondition("1"); + } else { + prjVO.setSearchCondition("2"); + } + List userList = this.dmsPrjService.selectDmsPrjAuthList(prjVO); + String message = "[헬프데스크 " + prjInfo.get("prjNm") + " 답변 알림]\n답변 : " + vo.getTitle(); + String sendTel = EgovProperties.getProperty("SMS.callback"); + userList.size(); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject("DMS_HDB"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getHdbSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void updateDmsHdbStatus(DmsHdbVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + this.dmsHdbDAO.updateDmsHdbStatus(vo); + if ("C".equals(vo.getHdbSts())) { + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + dmsHdbVO.setHdbSeq(vo.getHdbSeq()); + dmsHdbVO = this.dmsHdbDAO.selectDmsHdb(dmsHdbVO); + DmsPrjDefaultVO prjVO = new DmsPrjDefaultVO(); + Map prjInfo = (Map)request.getSession().getAttribute("prjInfo"); + prjVO.setPrjSeq((String)prjInfo.get("prjSeq")); + prjVO.setUserId(dmsHdbVO.getUserId()); + prjVO.setSearchCondition("1"); + List userList = this.dmsPrjService.selectDmsPrjAuthList(prjVO); + Date dt = new Date(); + SimpleDateFormat str = new SimpleDateFormat("yyyy-MM-dd, hh:mm"); + String message = "[헬프데스크 " + prjInfo.get("prjNm") + " 요청사항 완료 알림]\n" + str.format(dt).toString() + " 요청사항 완료"; + String sendTel = EgovProperties.getProperty("SMS.callback"); + userList.size(); + } + } + + public void deleteDmsHdbReply(DmsHdbReplyVO vo, MultipartHttpServletRequest request) { + this.dmsHdbDAO.deleteDmsHdbReply(vo); + } + + public void updateDmsHdbRdCnt(DmsHdbDefaultVO searchVO) { + this.dmsHdbDAO.updateDmsHdbRdCnt(searchVO); + } + + public List selectDmsHdbPerYearChart(DmsHdbDefaultVO searchVO) { + return this.dmsHdbDAO.selectDmsHdbPerYearChart(searchVO); + } + + public DmsHdbGraphVO selectDmsHdbForMonthChart(DmsHdbDefaultVO searchVO) { + return this.dmsHdbDAO.selectDmsHdbForMonthChart(searchVO); + } +} diff --git a/src/main/java/egovframework/dms/hdb/vo/DmsHdbDefaultVO.java b/src/main/java/egovframework/dms/hdb/vo/DmsHdbDefaultVO.java new file mode 100644 index 0000000..9da51c0 --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/vo/DmsHdbDefaultVO.java @@ -0,0 +1,164 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.hdb.vo.DmsHdbDefaultVO + */ +package egovframework.dms.hdb.vo; + +import java.io.Serializable; + +public class DmsHdbDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String hdbSeq; + private String prjSeq; + + public String getPrjSeq() { + return this.prjSeq; + } + + public void setPrjSeq(String prjSeq) { + this.prjSeq = prjSeq; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setHdbSeq(String hdbSeq) { + this.hdbSeq = hdbSeq; + } + + public String getHdbSeq() { + return this.hdbSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } +} + diff --git a/src/main/java/egovframework/dms/hdb/vo/DmsHdbGraphVO.java b/src/main/java/egovframework/dms/hdb/vo/DmsHdbGraphVO.java new file mode 100644 index 0000000..9c32618 --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/vo/DmsHdbGraphVO.java @@ -0,0 +1,56 @@ +package egovframework.dms.hdb.vo; + +import java.io.Serializable; + +public class DmsHdbGraphVO implements Serializable { + + private int year; + private int month; + private int cnt; + + private int hdbStsA; + private int hdbStsB; + private int hdbStsC; + + public int getYear() { + return year; + } + public void setYear(int year) { + this.year = year; + } + + public int getMonth() { + return month; + } + public void setMonth(int month) { + this.month = month; + } + + public int getCnt() { + return cnt; + } + public void setCnt(int cnt) { + this.cnt = cnt; + } + + public int getHdbStsA() { + return hdbStsA; + } + public void setHdbStsA(int hdbStsA) { + this.hdbStsA = hdbStsA; + } + + public int getHdbStsB() { + return hdbStsB; + } + public void setHdbStsB(int hdbStsB) { + this.hdbStsB = hdbStsB; + } + + public int getHdbStsC() { + return hdbStsC; + } + public void setHdbStsC(int hdbStsC) { + this.hdbStsC = hdbStsC; + } +} diff --git a/src/main/java/egovframework/dms/hdb/vo/DmsHdbReplyVO.java b/src/main/java/egovframework/dms/hdb/vo/DmsHdbReplyVO.java new file mode 100644 index 0000000..54999c4 --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/vo/DmsHdbReplyVO.java @@ -0,0 +1,105 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.hdb.vo.DmsHdbDefaultVO + * egovframework.dms.hdb.vo.DmsHdbReplyVO + */ +package egovframework.dms.hdb.vo; + +import egovframework.dms.hdb.vo.DmsHdbDefaultVO; + +public class DmsHdbReplyVO +extends DmsHdbDefaultVO { + private String hdbReplySeq; + private String hdbSeq; + private String title; + private String contents; + private String replyDate; + private String recSts; + private String atchFileId; + private String userId; + private String userNm; + private String userType; + + public String getHdbReplySeq() { + return this.hdbReplySeq; + } + + public void setHdbReplySeq(String hdbReplySeq) { + this.hdbReplySeq = hdbReplySeq; + } + + public String getHdbSeq() { + return this.hdbSeq; + } + + public void setHdbSeq(String hdbSeq) { + this.hdbSeq = hdbSeq; + } + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getContents() { + return this.contents; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getReplyDate() { + return this.replyDate; + } + + public void setReplyDate(String replyDate) { + this.replyDate = replyDate; + } + + public String getRecSts() { + return this.recSts; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getAtchFileId() { + return this.atchFileId; + } + + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + + public String getUserNm() { + return this.userNm; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getUserType() { + return this.userType; + } + + public void setUserType(String userType) { + this.userType = userType; + } + + public String getUserId() { + return this.userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } +} + diff --git a/src/main/java/egovframework/dms/hdb/vo/DmsHdbVO.java b/src/main/java/egovframework/dms/hdb/vo/DmsHdbVO.java new file mode 100644 index 0000000..5bd1e53 --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/vo/DmsHdbVO.java @@ -0,0 +1,177 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.hdb.vo.DmsHdbDefaultVO + * egovframework.dms.hdb.vo.DmsHdbVO + */ +package egovframework.dms.hdb.vo; + +import egovframework.dms.hdb.vo.DmsHdbDefaultVO; + +public class DmsHdbVO +extends DmsHdbDefaultVO { + private String hdbSeq; + private String prjSeq; + private String title; + private String contents; + private String createDate; + private String compScdDate; + private String compDate; + private String hdbSts; + private String recSts; + private String atchFileId; + private String userId; + private String userNm; + private String userType; + private String etc; + private String email; + private String tel; + private String smsYn; + private String rdCnt; + + public String getSmsYn() { + return this.smsYn; + } + + public void setSmsYn(String smsYn) { + this.smsYn = smsYn; + } + + public String getEmail() { + return this.email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getTel() { + return this.tel; + } + + public void setTel(String tel) { + this.tel = tel; + } + + public void setHdbSeq(String hdbSeq) { + this.hdbSeq = hdbSeq; + } + + public String getHdbSeq() { + return this.hdbSeq; + } + + public void setPrjSeq(String prjSeq) { + this.prjSeq = prjSeq; + } + + public String getPrjSeq() { + return this.prjSeq; + } + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setContents(String contents) { + this.contents = contents; + } + + public String getContents() { + return this.contents; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getCreateDate() { + return this.createDate; + } + + public void setCompScdDate(String compScdDate) { + this.compScdDate = compScdDate; + } + + public String getCompScdDate() { + return this.compScdDate; + } + + public void setCompDate(String compDate) { + this.compDate = compDate; + } + + public String getCompDate() { + return this.compDate; + } + + public void setHdbSts(String hdbSts) { + this.hdbSts = hdbSts; + } + + public String getHdbSts() { + return this.hdbSts; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } + + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + + public String getAtchFileId() { + return this.atchFileId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserId() { + return this.userId; + } + + public void setUserNm(String userNm) { + this.userNm = userNm; + } + + public String getUserNm() { + return this.userNm; + } + + public void setUserType(String userType) { + this.userType = userType; + } + + public String getUserType() { + return this.userType; + } + + public void setEtc(String etc) { + this.etc = etc; + } + + public String getEtc() { + return this.etc; + } + + public String getRdCnt() { + return this.rdCnt; + } + + public void setRdCnt(String rdCnt) { + this.rdCnt = rdCnt; + } +} + diff --git a/src/main/java/egovframework/dms/hdb/web/DmsHdbAdminController.java b/src/main/java/egovframework/dms/hdb/web/DmsHdbAdminController.java new file mode 100644 index 0000000..ec2db5a --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/web/DmsHdbAdminController.java @@ -0,0 +1,280 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.dms.hdb.service.DmsHdbService + * egovframework.dms.hdb.vo.DmsHdbDefaultVO + * egovframework.dms.hdb.vo.DmsHdbReplyVO + * egovframework.dms.hdb.vo.DmsHdbVO + * egovframework.dms.hdb.web.DmsHdbAdminController + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.hdb.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.hdb.service.DmsHdbService; +import egovframework.dms.hdb.vo.DmsHdbDefaultVO; +import egovframework.dms.hdb.vo.DmsHdbReplyVO; +import egovframework.dms.hdb.vo.DmsHdbVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import java.util.Iterator; + +@Controller +@SessionAttributes(types={DmsHdbVO.class}) +public class DmsHdbAdminController { + @Resource(name="dmsHdbService") + private DmsHdbService dmsHdbService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/admin/dmsHdb/dmsHdbAdminIndex.do"}) + public String dmsHdbIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectDmsHdbAdminList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectDmsHdbAdmin(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addDmsHdbAdminView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateDmsHdbAdmin(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_ADMIN", (Object)UserDetailsHelper.isRole((String)"ROLE_ADMIN")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, this.codeResource.getCodeList(value)); + if (bmode != null && (bmode.equals("add") || bmode.equals("modify"))) + model.addAttribute(key, this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsHdbAdminList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.dmsHdbService.selectDmsHdbListTotCnt(searchVO); + if (totCnt > 0) { + List dmsHdbList = this.dmsHdbService.selectDmsHdbList(searchVO); + model.addAttribute("resultList", (Object)dmsHdbList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "sys/dmsHdb/DmsHdbAdminList"; + } + + private String addDmsHdbAdminView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + return "sys/dmsHdb/DmsHdbAdminRegister"; + } + + @RequestMapping(value={"/admin/dmsHdb/addDmsHdbAdmin.do"}) + public String addDmsHdbAdmin(MultipartHttpServletRequest request, HttpServletResponse response, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsHdbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsHdbService.insertDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsHdbAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + dmsHdbVO.setHdbSeq(searchVO.getHdbSeq()); + dmsHdbVO = this.dmsHdbService.selectDmsHdb(dmsHdbVO); + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + return "sys/dmsHdb/DmsHdbAdminRegister"; + } + + @RequestMapping(value={"/admin/dmsHdb/updateDmsHdbAdmin.do"}) + public String updateDmsHdbAdmin(MultipartHttpServletRequest request, HttpServletResponse response, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + block7: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsHdbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block7; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsHdbService.updateDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + dmsHdbVO.getHdbSeq(); + } + + private String selectDmsHdbAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + dmsHdbVO.setHdbSeq(searchVO.getHdbSeq()); + try { + dmsHdbVO = this.dmsHdbService.selectDmsHdb(dmsHdbVO); + List dmsHdbReplyList = this.dmsHdbService.selectDmsHdbReplyList(searchVO); + model.addAttribute("dmsHdbReplyList", (Object)dmsHdbReplyList); + } + catch (Exception e) { + e.printStackTrace(); + } + DmsHdbReplyVO dmsHdbReplyVO = new DmsHdbReplyVO(); + model.addAttribute("dmsHdbReplyVO", (Object)dmsHdbReplyVO); + DmsHdbVO statusVO = new DmsHdbVO(); + model.addAttribute("statusVO", (Object)statusVO); + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(dmsHdbVO)); + return "sys/dmsHdb/DmsHdbAdminDetail"; + } + + @RequestMapping(value={"/admin/dmsHdb/deleteDmsHdbAdmin.do"}) + public String deleteDmsHdbAdmin(HttpServletRequest request, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + try { + this.dmsHdbService.deleteDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(DmsHdbVO dmsHdbVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_ADMIN").booleanValue()) { + return true; + } + return dmsHdbVO != null && loginVO.getId().equals(dmsHdbVO.getUserId()); + } +} + diff --git a/src/main/java/egovframework/dms/hdb/web/DmsHdbController.java b/src/main/java/egovframework/dms/hdb/web/DmsHdbController.java new file mode 100644 index 0000000..1b741f4 --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/web/DmsHdbController.java @@ -0,0 +1,377 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.dms.hdb.service.DmsHdbService + * egovframework.dms.hdb.vo.DmsHdbDefaultVO + * egovframework.dms.hdb.vo.DmsHdbReplyVO + * egovframework.dms.hdb.vo.DmsHdbVO + * egovframework.dms.hdb.web.DmsHdbController + * egovframework.dms.prj.service.DmsPrjService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.hdb.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.hdb.service.DmsHdbService; +import egovframework.dms.hdb.vo.DmsHdbDefaultVO; +import egovframework.dms.hdb.vo.DmsHdbReplyVO; +import egovframework.dms.hdb.vo.DmsHdbVO; +import egovframework.dms.hdb.vo.DmsHdbGraphVO; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={DmsHdbVO.class}) +public class DmsHdbController { + @Resource(name="dmsHdbService") + private DmsHdbService dmsHdbService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + + @RequestMapping(value={"/dms/dmsHdb/dmsHdbIndex.do"}) + public String dmsHdbIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + String moveDetail = request.getParameter("moveDetail"); + String prjSeq = request.getParameter("prjSeq"); + Map prjInfo = (Map) request.getSession().getAttribute("prjInfo"); + String prjNm = prjInfo == null ? null : (String) prjInfo.get("prjNm"); + String hdbStsA = prjInfo == null ? null : (String) prjInfo.get("hdbStsA"); + String hdbStsB = prjInfo == null ? null : (String) prjInfo.get("hdbStsB"); + String hdbStsC = prjInfo == null ? null : (String) prjInfo.get("hdbStsC"); + + if (moveDetail != null || prjSeq != null) { + request.getSession().setAttribute("prjSeq", (Object)prjSeq); + } + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectDmsHdbList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectDmsHdb(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addDmsHdbView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateDmsHdb(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_ADMIN", (Object)UserDetailsHelper.isRole((String)"ROLE_ADMIN")); + model.addAttribute("ROLE_CUS", (Object)UserDetailsHelper.isRole((String)"ROLE_CUS")); + model.addAttribute("ROLE_EMP", (Object)UserDetailsHelper.isRole((String)"ROLE_EMP")); + model.addAttribute("prjNm", prjNm); + model.addAttribute("hdbStsA", hdbStsA); + model.addAttribute("hdbStsB", hdbStsB); + model.addAttribute("hdbStsC", hdbStsC); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsHdbList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + Map prjInfo = (Map)request.getSession().getAttribute("prjInfo"); + searchVO.setPrjSeq((String)prjInfo.get("prjSeq")); + int totCnt = 0; + try { + totCnt = this.dmsHdbService.selectDmsHdbListTotCnt(searchVO); + if (totCnt > 0) { + List dmsHdbList = this.dmsHdbService.selectDmsHdbList(searchVO); + model.addAttribute("resultList", (Object)dmsHdbList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + + List annualList = dmsHdbService.selectDmsHdbPerYearChart(searchVO); + model.addAttribute("annualList", annualList); + + DmsHdbGraphVO monthlyList = dmsHdbService.selectDmsHdbForMonthChart(searchVO); + model.addAttribute("monthlyList", monthlyList); + // model.addAttribute("year", year); + + return "dms/dmsHdb/DmsHdbList"; + } + + private String addDmsHdbView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + return "dms/dmsHdb/DmsHdbRegister"; + } + + @RequestMapping(value={"/dms/dmsHdb/addDmsHdb.do"}) + public String addDmsHdb(MultipartHttpServletRequest request, HttpServletResponse response, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsHdbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsHdbService.insertDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsHdb(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + dmsHdbVO.setHdbSeq(searchVO.getHdbSeq()); + dmsHdbVO = this.dmsHdbService.selectDmsHdb(dmsHdbVO); + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + return "dms/dmsHdb/DmsHdbRegister"; + } + + @RequestMapping(value={"/dms/dmsHdb/updateDmsHdb.do"}) + public String updateDmsHdb(MultipartHttpServletRequest request, HttpServletResponse response, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + block7: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsHdbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block7; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsHdbService.updateDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + dmsHdbVO.getHdbSeq(); + } + + private String selectDmsHdb(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + dmsHdbVO.setHdbSeq(searchVO.getHdbSeq()); + try { + dmsHdbVO = this.dmsHdbService.selectDmsHdb(dmsHdbVO); + List dmsHdbReplyList = this.dmsHdbService.selectDmsHdbReplyList(searchVO); + model.addAttribute("dmsHdbReplyList", (Object)dmsHdbReplyList); + } + catch (Exception e) { + e.printStackTrace(); + } + DmsHdbReplyVO dmsHdbReplyVO = new DmsHdbReplyVO(); + model.addAttribute("dmsHdbReplyVO", (Object)dmsHdbReplyVO); + DmsHdbVO statusVO = new DmsHdbVO(); + model.addAttribute("statusVO", (Object)statusVO); + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(dmsHdbVO)); + this.dmsHdbService.updateDmsHdbRdCnt(searchVO); + return "dms/dmsHdb/DmsHdbDetail"; + } + + @RequestMapping(value={"/dms/dmsHdb/deleteDmsHdb.do"}) + public String deleteDmsHdb(HttpServletRequest request, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + try { + this.dmsHdbService.deleteDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + @RequestMapping(value={"/dms/dmsHdb/addDmsHdbReply.do"}) + public String addDmsHdbReply(MultipartHttpServletRequest request, HttpServletResponse response, DmsHdbReplyVO dmsHdbReplyVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsHdbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsHdbService.insertDmsHdbReply(dmsHdbReplyVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + searchVO.getHdbSeq(); + } + + @RequestMapping(value={"/dms/dmsHdb/updateDmsHdbStatus.do"}) + public String updateDmsHdbStatus(HttpServletRequest request, HttpServletResponse response, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.dmsHdbService.updateDmsHdbStatus(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + searchVO.getHdbSeq(); + } + + @RequestMapping(value={"/dms/dmsHdb/deleteDmsHdbReply.do"}) + public String deleteDmsHdbReply(MultipartHttpServletRequest request, DmsHdbReplyVO dmsHdbReplyVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + try { + this.dmsHdbService.deleteDmsHdbReply(dmsHdbReplyVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + searchVO.getHdbSeq(); + } + + private boolean checkWriteAuth(DmsHdbVO dmsHdbVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_ADMIN").booleanValue()) { + return true; + } + return dmsHdbVO != null && loginVO.getId().equals(dmsHdbVO.getUserId()); + } +} + diff --git a/src/main/java/egovframework/dms/hdb/web/DmsHdbMobileController.java b/src/main/java/egovframework/dms/hdb/web/DmsHdbMobileController.java new file mode 100644 index 0000000..a5db27e --- /dev/null +++ b/src/main/java/egovframework/dms/hdb/web/DmsHdbMobileController.java @@ -0,0 +1,353 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.dms.hdb.service.DmsHdbService + * egovframework.dms.hdb.vo.DmsHdbDefaultVO + * egovframework.dms.hdb.vo.DmsHdbReplyVO + * egovframework.dms.hdb.vo.DmsHdbVO + * egovframework.dms.hdb.web.DmsHdbMobileController + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.hdb.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.hdb.service.DmsHdbService; +import egovframework.dms.hdb.vo.DmsHdbDefaultVO; +import egovframework.dms.hdb.vo.DmsHdbReplyVO; +import egovframework.dms.hdb.vo.DmsHdbVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={DmsHdbVO.class}) +public class DmsHdbMobileController { + @Resource(name="dmsHdbService") + private DmsHdbService dmsHdbService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/mobile/dmsHdb/dmsHdbMobileIndex.do"}) + public String dmsHdbIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + String moveDetail = request.getParameter("moveDetail"); + String prjSeq = request.getParameter("prjSeq"); + if (moveDetail != null || prjSeq != null) { + request.getSession().setAttribute("prjSeq", (Object)prjSeq); + } + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectDmsHdbMobileList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectDmsHdbMobile(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addDmsHdbMobileView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateDmsHdbMobile(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_ADMIN", (Object)UserDetailsHelper.isRole((String)"ROLE_ADMIN")); + model.addAttribute("ROLE_CUS", (Object)UserDetailsHelper.isRole((String)"ROLE_CUS")); + model.addAttribute("ROLE_EMP", (Object)UserDetailsHelper.isRole((String)"ROLE_EMP")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsHdbMobileList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + Map prjInfo = (Map)request.getSession().getAttribute("prjInfo"); + searchVO.setPrjSeq((String)prjInfo.get("prjSeq")); + int totCnt = 0; + try { + totCnt = this.dmsHdbService.selectDmsHdbListTotCnt(searchVO); + if (totCnt > 0) { + List dmsHdbList = this.dmsHdbService.selectDmsHdbList(searchVO); + model.addAttribute("resultList", (Object)dmsHdbList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "mobile/dmsHdb/DmsHdbMobileList"; + } + + private String addDmsHdbMobileView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + return "mobile/dmsHdb/DmsHdbMobileRegister"; + } + + @RequestMapping(value={"/mobile/dmsHdb/addDmsHdbMobile.do"}) + public String addDmsHdbMobile(MultipartHttpServletRequest request, HttpServletResponse response, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsHdbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsHdbService.insertDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsHdbMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + dmsHdbVO.setHdbSeq(searchVO.getHdbSeq()); + dmsHdbVO = this.dmsHdbService.selectDmsHdb(dmsHdbVO); + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + return "mobile/dmsHdb/DmsHdbMobileRegister"; + } + + @RequestMapping(value={"/mobile/dmsHdb/updateDmsHdbMobile.do"}) + public String updateDmsHdbMobile(MultipartHttpServletRequest request, HttpServletResponse response, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + block7: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsHdbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block7; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsHdbService.updateDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + dmsHdbVO.getHdbSeq(); + } + + private String selectDmsHdbMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsHdbVO dmsHdbVO = new DmsHdbVO(); + dmsHdbVO.setHdbSeq(searchVO.getHdbSeq()); + try { + dmsHdbVO = this.dmsHdbService.selectDmsHdb(dmsHdbVO); + List dmsHdbReplyList = this.dmsHdbService.selectDmsHdbReplyList(searchVO); + model.addAttribute("dmsHdbReplyList", (Object)dmsHdbReplyList); + } + catch (Exception e) { + e.printStackTrace(); + } + DmsHdbReplyVO dmsHdbReplyVO = new DmsHdbReplyVO(); + model.addAttribute("dmsHdbReplyVO", (Object)dmsHdbReplyVO); + DmsHdbVO statusVO = new DmsHdbVO(); + model.addAttribute("statusVO", (Object)statusVO); + model.addAttribute("dmsHdbVO", (Object)dmsHdbVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(dmsHdbVO)); + return "mobile/dmsHdb/DmsHdbMobileDetail"; + } + + @RequestMapping(value={"/mobile/dmsHdb/deleteDmsHdbMobile.do"}) + public String deleteDmsHdbMobile(HttpServletRequest request, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsHdbVO)) { + return "cmm/privilegeError"; + } + try { + this.dmsHdbService.deleteDmsHdb(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + @RequestMapping(value={"/mobile/dmsHdb/addDmsHdbReply.do"}) + public String addDmsHdbReplyMobile(MultipartHttpServletRequest request, HttpServletResponse response, DmsHdbReplyVO dmsHdbReplyVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsHdbService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsHdbService.insertDmsHdbReply(dmsHdbReplyVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + searchVO.getHdbSeq(); + } + + @RequestMapping(value={"/mobile/dmsHdb/updateDmsHdbStatus.do"}) + public String updateDmsHdbStatusMobile(HttpServletRequest request, HttpServletResponse response, DmsHdbVO dmsHdbVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + try { + this.dmsHdbService.updateDmsHdbStatus(dmsHdbVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + searchVO.getHdbSeq(); + } + + @RequestMapping(value={"/mobile/dmsHdb/deleteDmsHdbReply.do"}) + public String deleteDmsHdbReplyMobile(MultipartHttpServletRequest request, DmsHdbReplyVO dmsHdbReplyVO, @ModelAttribute(value="searchVO") DmsHdbDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + try { + this.dmsHdbService.deleteDmsHdbReply(dmsHdbReplyVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&hdbSeq=" + searchVO.getHdbSeq(); + } + + private boolean checkWriteAuth(DmsHdbVO dmsHdbVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (UserDetailsHelper.isRole((String)"ROLE_ADMIN").booleanValue()) { + return true; + } + return dmsHdbVO != null && loginVO.getId().equals(dmsHdbVO.getUserId()); + } +} + diff --git a/src/main/java/egovframework/dms/prj/dao/DmsPrjDAO.java b/src/main/java/egovframework/dms/prj/dao/DmsPrjDAO.java new file mode 100644 index 0000000..9114fd1 --- /dev/null +++ b/src/main/java/egovframework/dms/prj/dao/DmsPrjDAO.java @@ -0,0 +1,60 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * egovframework.dms.prj.dao.DmsPrjDAO + * egovframework.dms.prj.vo.DmsPrjAuthUserVO + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.dms.prj.vo.DmsPrjVO + * org.springframework.stereotype.Repository + */ +package egovframework.dms.prj.dao; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.dms.prj.vo.DmsPrjAuthUserVO; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.dms.prj.vo.DmsPrjVO; +import java.util.List; +import org.springframework.stereotype.Repository; + +@Repository(value="dmsPrjDAO") +public class DmsPrjDAO +extends EgovComAbstractDAO { + public String insertDmsPrj(DmsPrjVO vo) throws Exception { + return (String)this.insert("dmsPrjDAO.insertDmsPrj_S", (Object)vo); + } + + public void updateDmsPrj(DmsPrjVO vo) throws Exception { + this.update("dmsPrjDAO.updateDmsPrj_S", (Object)vo); + } + + public void deleteDmsPrj(DmsPrjVO vo) throws Exception { + this.delete("dmsPrjDAO.deleteDmsPrj_S", (Object)vo); + } + + public DmsPrjVO selectDmsPrj(DmsPrjVO vo) throws Exception { + return (DmsPrjVO)this.select("dmsPrjDAO.selectDmsPrj_S", (Object)vo); + } + + public List selectDmsPrjList(DmsPrjDefaultVO searchVO) throws Exception { + return this.list("dmsPrjDAO.selectDmsPrjList_D", (Object)searchVO); + } + + public int selectDmsPrjListTotCnt(DmsPrjDefaultVO searchVO) { + return (Integer)this.select("dmsPrjDAO.selectDmsPrjListTotCnt_S", (Object)searchVO); + } + + public void insertDmsPrjAuthUser(DmsPrjAuthUserVO dmsPrjAuthUserVO) { + this.insert("dmsPrjDAO.insertDmsPrjAuthUser_S", (Object)dmsPrjAuthUserVO); + } + + public List selectDmsPrjAuthList(DmsPrjDefaultVO dmsPrjDefaultVO) { + return this.list("dmsPrjDAO.selectDmsPrjAuthList_D", (Object)dmsPrjDefaultVO); + } + + public void deleteDmsPrjAuthUser(DmsPrjVO vo) { + this.delete("dmsPrjDAO.deleteDmsPrjAuthUser_S", (Object)vo); + } +} + diff --git a/src/main/java/egovframework/dms/prj/service/DmsPrjService.java b/src/main/java/egovframework/dms/prj/service/DmsPrjService.java new file mode 100644 index 0000000..0dfc74c --- /dev/null +++ b/src/main/java/egovframework/dms/prj/service/DmsPrjService.java @@ -0,0 +1,38 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.prj.service.DmsPrjService + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.dms.prj.vo.DmsPrjVO + * egovframework.rte.psl.dataaccess.util.EgovMap + * javax.servlet.http.HttpServletRequest + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.prj.service; + +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.dms.prj.vo.DmsPrjVO; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +public interface DmsPrjService { + public String insertDmsPrj(DmsPrjVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void updateDmsPrj(DmsPrjVO var1, MultipartHttpServletRequest var2) throws Exception; + + public void deleteDmsPrj(DmsPrjVO var1, HttpServletRequest var2) throws Exception; + + public DmsPrjVO selectDmsPrj(DmsPrjVO var1) throws Exception; + + public List selectDmsPrjList(DmsPrjDefaultVO var1) throws Exception; + + public int selectDmsPrjListTotCnt(DmsPrjDefaultVO var1); + + public String checkFileWhiteList(MultipartHttpServletRequest var1, String var2, String var3) throws Exception; + + public List selectDmsPrjAuthList(DmsPrjDefaultVO var1) throws Exception; +} + diff --git a/src/main/java/egovframework/dms/prj/service/impl/DmsPrjServiceImpl.java b/src/main/java/egovframework/dms/prj/service/impl/DmsPrjServiceImpl.java new file mode 100644 index 0000000..41ad333 --- /dev/null +++ b/src/main/java/egovframework/dms/prj/service/impl/DmsPrjServiceImpl.java @@ -0,0 +1,237 @@ +package egovframework.dms.prj.service.impl; + +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.EgovFileMngUtil; +import egovframework.com.cmm.service.FileVO; +import egovframework.dms.prj.dao.DmsPrjDAO; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjAuthUserVO; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.dms.prj.vo.DmsPrjVO; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Service("dmsPrjService") +public class DmsPrjServiceImpl implements DmsPrjService { + @Resource(name = "dmsPrjDAO") + private DmsPrjDAO dmsPrjDAO; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + @Resource(name = "EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + @Resource(name = "commonIdGnrService") + private EgovIdGnrService egovIdGnrService; + + @Resource(name = "hmsLogService") + private HmsLogService hmsLogService; + + private final String OBJ_DMS_PRJ = "DMS_PRJ"; + + public String insertDmsPrj(DmsPrjVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + vo.setPrjSeq(this.egovIdGnrService.getNextStringId()); + vo.setAtchFileId(addMultiFiles(request, null)); + this.dmsPrjDAO.insertDmsPrj(vo); + String empId = request.getParameter("empListId"); + String cusId = request.getParameter("cusListId"); + String[] arrEmp = empId.split(","); + String[] arrCus = cusId.split(","); + int i; + for (i = 0; i < arrEmp.length; i++) { + DmsPrjAuthUserVO dmsPrjAuthUserVO = new DmsPrjAuthUserVO(); + dmsPrjAuthUserVO.setPrjSeq(vo.getPrjSeq()); + dmsPrjAuthUserVO.setUserId(arrEmp[i]); + dmsPrjAuthUserVO.setUserType("EMP"); + this.dmsPrjDAO.insertDmsPrjAuthUser(dmsPrjAuthUserVO); + } + for (i = 0; i < arrCus.length; i++) { + DmsPrjAuthUserVO dmsPrjAuthUserVO = new DmsPrjAuthUserVO(); + dmsPrjAuthUserVO.setPrjSeq(vo.getPrjSeq()); + dmsPrjAuthUserVO.setUserId(arrCus[i]); + dmsPrjAuthUserVO.setUserType("CUS"); + this.dmsPrjDAO.insertDmsPrjAuthUser(dmsPrjAuthUserVO); + } + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_INSERT); + logVO.setLogObject("DMS_PRJ"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getPrjSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + return null; + } + + public void updateDmsPrj(DmsPrjVO vo, MultipartHttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String atchSeq = updateMultiFiles(request, "file_", vo.getAtchFileId(), true); + vo.setAtchFileId(atchSeq); + this.dmsPrjDAO.updateDmsPrj(vo); + this.dmsPrjDAO.deleteDmsPrjAuthUser(vo); + String empId = request.getParameter("empListId"); + String cusId = request.getParameter("cusListId"); + String[] arrEmp = empId.split(","); + String[] arrCus = cusId.split(","); + if (!"".equals(empId)) + for (int i = 0; i < arrEmp.length; i++) { + DmsPrjAuthUserVO dmsPrjAuthUserVO = new DmsPrjAuthUserVO(); + dmsPrjAuthUserVO.setPrjSeq(vo.getPrjSeq()); + dmsPrjAuthUserVO.setUserId(arrEmp[i]); + dmsPrjAuthUserVO.setUserType("EMP"); + this.dmsPrjDAO.insertDmsPrjAuthUser(dmsPrjAuthUserVO); + } + if (!"".equals(cusId)) + for (int i = 0; i < arrCus.length; i++) { + DmsPrjAuthUserVO dmsPrjAuthUserVO = new DmsPrjAuthUserVO(); + dmsPrjAuthUserVO.setPrjSeq(vo.getPrjSeq()); + dmsPrjAuthUserVO.setUserId(arrCus[i]); + dmsPrjAuthUserVO.setUserType("CUS"); + this.dmsPrjDAO.insertDmsPrjAuthUser(dmsPrjAuthUserVO); + } + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_UPDATE); + logVO.setLogObject("DMS_PRJ"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getPrjSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public void deleteDmsPrj(DmsPrjVO vo, HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + this.dmsPrjDAO.deleteDmsPrj(vo); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_DELETE); + logVO.setLogObject("DMS_PRJ"); + logVO.setLogMessage(""); + logVO.setSeq(vo.getPrjSeq()); + this.hmsLogService.insertHmsLog(logVO, null); + } + + public DmsPrjVO selectDmsPrj(DmsPrjVO vo) throws Exception { + DmsPrjVO resultVO = this.dmsPrjDAO.selectDmsPrj(vo); + return resultVO; + } + + public List selectDmsPrjList(DmsPrjDefaultVO searchVO) throws Exception { + return this.dmsPrjDAO.selectDmsPrjList(searchVO); + } + + public int selectDmsPrjListTotCnt(DmsPrjDefaultVO searchVO) { + return this.dmsPrjDAO.selectDmsPrjListTotCnt(searchVO); + } + + public String addMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm) throws Exception { + multiRequest.setCharacterEncoding("utf-8"); + Map files = multiRequest.getFileMap(); + String fileId = ""; + if (!files.isEmpty()) { + String _atchFileId = ""; + List _result = null; + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + _atchFileId = this.fileMngService.insertFileInfs(_result); + fileId = _atchFileId; + } + return fileId; + } + + public String updateMultiFiles(MultipartHttpServletRequest multiRequest, String targetNm, String fileId, boolean multiple) throws Exception { + Map files = multiRequest.getFileMap(); + String[] delcheck = multiRequest.getParameterValues("delCheck"); + if (delcheck != null) { + FileVO fileVO = null; + for (int i = 0; i < delcheck.length; i++) { + String[] fileInf = delcheck[i].split("\\|"); + fileVO = new FileVO(); + fileVO.setAtchFileId(fileInf[0]); + fileVO.setFileSn(fileInf[1]); + this.fileMngService.deleteFileInf(fileVO); + } + } + if (!files.isEmpty()) { + List _result = null; + if (multiple) { + if (fileId == null || fileId.equals("")) { + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } else { + FileVO fvo = new FileVO(); + fvo.setAtchFileId(fileId); + int cnt = this.fileMngService.getMaxFileSN(fvo); + _result = this.fileUtil.parseFileInf(files, "FILE_", cnt, fileId, ""); + this.fileMngService.updateFileInfs(_result); + } + } else { + _result = this.fileUtil.parseFileInf(files, "FILE_", 0, "", ""); + fileId = this.fileMngService.insertFileInfs(_result); + } + } + if (fileId != null && !fileId.equals("")) { + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(fileId); + List result = this.fileMngService.selectFileInfs(fileVO); + if (result.size() == 0) + fileId = ""; + } + return fileId; + } + + public String checkFileWhiteList(MultipartHttpServletRequest multiRequest, String targetNm, String whitelist) throws Exception { + if (whitelist == null || whitelist.equals("")) + return null; + String[] ext = whitelist.split(","); + if (ext == null || ext.length == 0 || ext[0] == null || ext[0].isEmpty()) + return null; + Map files = multiRequest.getFileMap(); + if (files.isEmpty()) + return null; + MultipartFile file = null; + String key = null; + Iterator> itr = files.entrySet().iterator(); + while (itr.hasNext()) { + Map.Entry entry = itr.next(); + file = entry.getValue(); + key = file.getName(); + if (key.indexOf(targetNm) < 0) + continue; + String fn = file.getOriginalFilename(); + if (fn.equals("")) + continue; + boolean check = false; + for (int i = 0; i < ext.length; i++) { + if (fn.toLowerCase().endsWith(ext[i].toLowerCase())) { + check = true; + break; + } + } + if (!check) + return fn; + } + return null; + } + + public List selectDmsPrjAuthList(DmsPrjDefaultVO dmsPrjDefaultVO) throws Exception { + return this.dmsPrjDAO.selectDmsPrjAuthList(dmsPrjDefaultVO); + } +} diff --git a/src/main/java/egovframework/dms/prj/vo/DmsPrjAuthUserVO.java b/src/main/java/egovframework/dms/prj/vo/DmsPrjAuthUserVO.java new file mode 100644 index 0000000..c096ecd --- /dev/null +++ b/src/main/java/egovframework/dms/prj/vo/DmsPrjAuthUserVO.java @@ -0,0 +1,51 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.prj.vo.DmsPrjAuthUserVO + * egovframework.dms.prj.vo.DmsPrjDefaultVO + */ +package egovframework.dms.prj.vo; + +import egovframework.dms.prj.vo.DmsPrjDefaultVO; + +public class DmsPrjAuthUserVO +extends DmsPrjDefaultVO { + private String prjSeq; + private String userId; + private String userType; + private String sort; + + public String getPrjSeq() { + return this.prjSeq; + } + + public void setPrjSeq(String prjSeq) { + this.prjSeq = prjSeq; + } + + public String getUserId() { + return this.userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserType() { + return this.userType; + } + + public void setUserType(String userType) { + this.userType = userType; + } + + public String getSort() { + return this.sort; + } + + public void setSort(String sort) { + this.sort = sort; + } +} + diff --git a/src/main/java/egovframework/dms/prj/vo/DmsPrjDefaultVO.java b/src/main/java/egovframework/dms/prj/vo/DmsPrjDefaultVO.java new file mode 100644 index 0000000..397698b --- /dev/null +++ b/src/main/java/egovframework/dms/prj/vo/DmsPrjDefaultVO.java @@ -0,0 +1,164 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.prj.vo.DmsPrjDefaultVO + */ +package egovframework.dms.prj.vo; + +import java.io.Serializable; + +public class DmsPrjDefaultVO +implements Serializable { + private String searchCondition; + private String searchKeyword; + private String searchUseYn; + private int pageIndex = 1; + private int pageUnit = 10; + private int pageSize = 10; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String bmode; + private String parentUrl; + private String pageUseYn = "Y"; + private String orderby; + private String prjSeq; + private String userId; + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchCondition() { + return this.searchCondition; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchKeyword() { + return this.searchKeyword; + } + + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchUseYn() { + return this.searchUseYn; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit() { + return this.pageUnit; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getPageSize() { + return this.pageSize; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getFirstIndex() { + return this.firstIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getLastIndex() { + return this.lastIndex; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getRecordCountPerPage() { + return this.recordCountPerPage; + } + + public void setBmode(String bmode) { + this.bmode = bmode; + } + + public String getBmode() { + return this.bmode; + } + + public void setParentUrl(String parentUrl) { + this.parentUrl = parentUrl; + } + + public String getParentUrl() { + return this.parentUrl; + } + + public void setPageUseYn(String pageUseYn) { + this.pageUseYn = pageUseYn; + } + + public String getPageUseYn() { + return this.pageUseYn; + } + + public void setOrderby(String orderby) { + this.orderby = orderby; + } + + public String getOrderby() { + return this.orderby; + } + + public void setPrjSeq(String prjSeq) { + this.prjSeq = prjSeq; + } + + public String getPrjSeq() { + return this.prjSeq; + } + + public String toParam() { + StringBuilder sb = new StringBuilder(); + sb.append("?pageIndex=" + this.pageIndex); + if (this.bmode != null && !this.bmode.equals("")) { + sb.append("&bmode=" + this.bmode); + } + if (this.searchCondition != null && !this.searchCondition.equals("")) { + sb.append("&searchCondition=" + this.searchCondition); + } + if (this.searchKeyword != null && !this.searchKeyword.equals("")) { + sb.append("&searchKeyword=" + this.searchKeyword); + } + return sb.toString(); + } + + public String getUserId() { + return this.userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } +} + diff --git a/src/main/java/egovframework/dms/prj/vo/DmsPrjVO.java b/src/main/java/egovframework/dms/prj/vo/DmsPrjVO.java new file mode 100644 index 0000000..ab973ae --- /dev/null +++ b/src/main/java/egovframework/dms/prj/vo/DmsPrjVO.java @@ -0,0 +1,88 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.dms.prj.vo.DmsPrjVO + */ +package egovframework.dms.prj.vo; + +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import java.sql.Date; + +public class DmsPrjVO +extends DmsPrjDefaultVO { + private String prjSeq; + private String prjNm; + private String atchFileId; + private Date createDate; + private String recSts; + private String hdbStsA; + private String hdbStsB; + private String hdbStsC; + + public void setPrjSeq(String prjSeq) { + this.prjSeq = prjSeq; + } + + public String getPrjSeq() { + return this.prjSeq; + } + + public void setPrjNm(String prjNm) { + this.prjNm = prjNm; + } + + public String getPrjNm() { + return this.prjNm; + } + + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + + public String getAtchFileId() { + return this.atchFileId; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public Date getCreateDate() { + return this.createDate; + } + + public void setRecSts(String recSts) { + this.recSts = recSts; + } + + public String getRecSts() { + return this.recSts; + } + + public void setHdbStsA(String hdbStsA) { + this.hdbStsA = hdbStsA; + } + + public String geHdbStsA() { + return this.hdbStsA; + } + + public void sethHdbStsB(String hdbStsB) { + this.hdbStsB = hdbStsB; + } + + public String getHdbStsB() { + return this.hdbStsB; + } + + public void setHdbStsC(String hdbStsC) { + this.hdbStsC = hdbStsC; + } + + public String getHdbStsC() { + return this.hdbStsC; + } +} + diff --git a/src/main/java/egovframework/dms/prj/web/DmsPrjAdminController.java b/src/main/java/egovframework/dms/prj/web/DmsPrjAdminController.java new file mode 100644 index 0000000..dd27cd2 --- /dev/null +++ b/src/main/java/egovframework/dms/prj/web/DmsPrjAdminController.java @@ -0,0 +1,303 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.dms.prj.service.DmsPrjService + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.dms.prj.vo.DmsPrjVO + * egovframework.dms.prj.web.DmsPrjAdminController + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.psl.dataaccess.util.EgovMap + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.prj.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.dms.prj.vo.DmsPrjVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={DmsPrjVO.class}) +public class DmsPrjAdminController { + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/admin/dmsPrj/dmsPrjAdminIndex.do"}) + public String dmsPrjIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectDmsPrjAdminList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectDmsPrjAdmin(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addDmsPrjAdminView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateDmsPrjAdmin(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_ADMIN", (Object)UserDetailsHelper.isRole((String)"ROLE_ADMIN")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsPrjAdminList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.dmsPrjService.selectDmsPrjListTotCnt(searchVO); + if (totCnt > 0) { + List dmsPrjList = this.dmsPrjService.selectDmsPrjList(searchVO); + int i = 0; + while (i < dmsPrjList.size()) { + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPrjSeq((String)((EgovMap)dmsPrjList.get(i)).get((Object)"prjSeq")); + dmsPrjDefaultVO.setSearchCondition("1"); + List dmsPrjCusAuthList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + dmsPrjDefaultVO.setSearchCondition("2"); + List dmsPrjEmpAuthList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + String cusPersonText = ""; + cusPersonText = dmsPrjCusAuthList.size() == 0 ? "-" : (dmsPrjCusAuthList.size() == 1 ? (String)((EgovMap)dmsPrjCusAuthList.get(0)).get((Object)"userNm") : String.valueOf((String)((EgovMap)dmsPrjCusAuthList.get(0)).get((Object)"userNm")) + " 외 " + (dmsPrjCusAuthList.size() - 1) + "명"); + String empPersonText = ""; + empPersonText = dmsPrjEmpAuthList.size() == 0 ? "-" : (dmsPrjEmpAuthList.size() == 1 ? (String)((EgovMap)dmsPrjEmpAuthList.get(0)).get((Object)"userNm") : String.valueOf((String)((EgovMap)dmsPrjEmpAuthList.get(0)).get((Object)"userNm")) + " 외 " + (dmsPrjEmpAuthList.size() - 1) + "명"); + ((EgovMap)dmsPrjList.get(i)).put((Object)"cusMember", (Object)cusPersonText); + ((EgovMap)dmsPrjList.get(i)).put((Object)"empMember", (Object)empPersonText); + ++i; + } + model.addAttribute("resultList", (Object)dmsPrjList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "sys/dmsPrj/DmsPrjAdminList"; + } + + private String addDmsPrjAdminView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + return "sys/dmsPrj/DmsPrjAdminRegister"; + } + + @RequestMapping(value={"/admin/dmsPrj/addDmsPrjAdmin.do"}) + public String addDmsPrjAdmin(MultipartHttpServletRequest request, HttpServletResponse response, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsPrjService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.logolist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsPrjService.insertDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsPrjAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + dmsPrjVO.setPrjSeq(searchVO.getPrjSeq()); + dmsPrjVO = this.dmsPrjService.selectDmsPrj(dmsPrjVO); + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPrjSeq(dmsPrjVO.getPrjSeq()); + dmsPrjDefaultVO.setSearchCondition("1"); + List dmsPrjCusAuthList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + dmsPrjDefaultVO.setSearchCondition("2"); + List dmsPrjEmpAuthList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + model.addAttribute("cusAuthList", (Object)dmsPrjCusAuthList); + model.addAttribute("empAuthList", (Object)dmsPrjEmpAuthList); + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + return "sys/dmsPrj/DmsPrjAdminRegister"; + } + + @RequestMapping(value={"/admin/dmsPrj/updateDmsPrjAdmin.do"}) + public String updateDmsPrjAdmin(MultipartHttpServletRequest request, HttpServletResponse response, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + block7: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsPrjService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block7; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsPrjService.updateDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&prjSeq=" + dmsPrjVO.getPrjSeq(); + } + + private String selectDmsPrjAdmin(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + dmsPrjVO.setPrjSeq(searchVO.getPrjSeq()); + try { + dmsPrjVO = this.dmsPrjService.selectDmsPrj(dmsPrjVO); + DmsPrjDefaultVO dmsPrjDefaultVO = new DmsPrjDefaultVO(); + dmsPrjDefaultVO.setPrjSeq(dmsPrjVO.getPrjSeq()); + dmsPrjDefaultVO.setSearchCondition("1"); + List dmsPrjCusAuthList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + dmsPrjDefaultVO.setSearchCondition("2"); + List dmsPrjEmpAuthList = this.dmsPrjService.selectDmsPrjAuthList(dmsPrjDefaultVO); + model.addAttribute("cusList", (Object)dmsPrjCusAuthList); + model.addAttribute("empList", (Object)dmsPrjEmpAuthList); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(dmsPrjVO)); + return "sys/dmsPrj/DmsPrjAdminDetail"; + } + + @RequestMapping(value={"/admin/dmsPrj/deleteDmsPrjAdmin.do"}) + public String deleteDmsPrjAdmin(HttpServletRequest request, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + try { + this.dmsPrjService.deleteDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(DmsPrjVO dmsPrjVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/dms/prj/web/DmsPrjController.java b/src/main/java/egovframework/dms/prj/web/DmsPrjController.java new file mode 100644 index 0000000..4ea1f77 --- /dev/null +++ b/src/main/java/egovframework/dms/prj/web/DmsPrjController.java @@ -0,0 +1,269 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.dms.prj.service.DmsPrjService + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.dms.prj.vo.DmsPrjVO + * egovframework.dms.prj.web.DmsPrjController + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.prj.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.dms.prj.vo.DmsPrjVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={DmsPrjVO.class}) +public class DmsPrjController { + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/dms/dmsPrj/dmsPrjIndex.do"}) + public String dmsPrjIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectDmsPrjList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectDmsPrj(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addDmsPrjView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateDmsPrj(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_ADMIN", (Object)UserDetailsHelper.isRole((String)"ROLE_ADMIN")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsPrjList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.dmsPrjService.selectDmsPrjListTotCnt(searchVO); + if (totCnt > 0) { + List dmsPrjList = this.dmsPrjService.selectDmsPrjList(searchVO); + model.addAttribute("resultList", (Object)dmsPrjList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "dms/dmsPrj/DmsPrjList"; + } + + private String addDmsPrjView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + return "dms/dmsPrj/DmsPrjRegister"; + } + + @RequestMapping(value={"/dms/dmsPrj/addDmsPrj.do"}) + public String addDmsPrj(MultipartHttpServletRequest request, HttpServletResponse response, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsPrjService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsPrjService.insertDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsPrj(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + dmsPrjVO.setPrjSeq(searchVO.getPrjSeq()); + dmsPrjVO = this.dmsPrjService.selectDmsPrj(dmsPrjVO); + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + return "dms/dmsPrj/DmsPrjRegister"; + } + + @RequestMapping(value={"/dms/dmsPrj/updateDmsPrj.do"}) + public String updateDmsPrj(MultipartHttpServletRequest request, HttpServletResponse response, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + block7: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsPrjService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block7; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsPrjService.updateDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&prjSeq=" + dmsPrjVO.getPrjSeq(); + } + + private String selectDmsPrj(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + dmsPrjVO.setPrjSeq(searchVO.getPrjSeq()); + try { + dmsPrjVO = this.dmsPrjService.selectDmsPrj(dmsPrjVO); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(dmsPrjVO)); + return "dms/dmsPrj/DmsPrjDetail"; + } + + @RequestMapping(value={"/dms/dmsPrj/deleteDmsPrj.do"}) + public String deleteDmsPrj(HttpServletRequest request, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + try { + this.dmsPrjService.deleteDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(DmsPrjVO dmsPrjVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/dms/prj/web/DmsPrjMobileController.java b/src/main/java/egovframework/dms/prj/web/DmsPrjMobileController.java new file mode 100644 index 0000000..72283c7 --- /dev/null +++ b/src/main/java/egovframework/dms/prj/web/DmsPrjMobileController.java @@ -0,0 +1,269 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.dms.prj.service.DmsPrjService + * egovframework.dms.prj.vo.DmsPrjDefaultVO + * egovframework.dms.prj.vo.DmsPrjVO + * egovframework.dms.prj.web.DmsPrjMobileController + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.edosi.filter.XssFilter + * egovframework.edosi.resource.EdosiResource + * egovframework.rte.fdl.property.EgovPropertyService + * egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo + * javax.annotation.Resource + * javax.servlet.RequestDispatcher + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.Model + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.bind.annotation.SessionAttributes + * org.springframework.web.bind.support.SessionStatus + * org.springframework.web.multipart.MultipartHttpServletRequest + */ +package egovframework.dms.prj.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjDefaultVO; +import egovframework.dms.prj.vo.DmsPrjVO; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.edosi.filter.XssFilter; +import egovframework.edosi.resource.EdosiResource; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.SessionAttributes; +import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +@SessionAttributes(types={DmsPrjVO.class}) +public class DmsPrjMobileController { + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + + @RequestMapping(value={"/mobile/dmsPrj/dmsPrjMobileIndex.do"}) + public String dmsPrjIndex(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, ModelMap modelMap, Model model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = ""; + String bmode = searchVO.getBmode(); + if (bmode == null || bmode.equals("") || bmode.equals("list")) { + viewName = this.selectDmsPrjMobileList(request, response, searchVO, model); + } else if (bmode.equals("detail")) { + viewName = this.selectDmsPrjMobile(request, response, searchVO, model); + } else if (bmode.equals("add")) { + viewName = this.addDmsPrjMobileView(request, response, searchVO, model); + } else if (bmode.equals("modify")) { + viewName = this.updateDmsPrjMobile(request, response, searchVO, model); + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("bmode", (Object)bmode); + model.addAttribute("loginVO", (Object)loginVO); + model.addAttribute("ROLE_ADMIN", (Object)UserDetailsHelper.isRole((String)"ROLE_ADMIN")); + this.initModelData(model, bmode); + return viewName; + } + + private void initModelData(Model model, String bmode) throws Exception { + HashMap param = new HashMap(); + this.initModelData(param, model, bmode); + } + + private void initModelData(Map param, Model model, String bmode) throws Exception { + Iterator it = param.keySet().iterator(); + while (it.hasNext()) { + String key = it.next(); + String value = (String)param.get(key); + model.addAttribute(key, (Object)this.codeResource.getCodeList(value)); + if (bmode == null || !bmode.equals("add") && !bmode.equals("modify")) continue; + model.addAttribute(key, (Object)this.codeResource.removeCodeResourceForNotUse(value)); + } + } + + private String selectDmsPrjMobileList(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + searchVO.setPageUnit(this.propertiesService.getInt("pageUnit")); + searchVO.setPageSize(this.propertiesService.getInt("pageSize")); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + int totCnt = 0; + try { + totCnt = this.dmsPrjService.selectDmsPrjListTotCnt(searchVO); + if (totCnt > 0) { + List dmsPrjList = this.dmsPrjService.selectDmsPrjList(searchVO); + model.addAttribute("resultList", (Object)dmsPrjList); + } + } + catch (Exception e) { + e.printStackTrace(); + } + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", (Object)paginationInfo); + return "mobile/dmsPrj/DmsPrjMobileList"; + } + + private String addDmsPrjMobileView(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + return "mobile/dmsPrj/DmsPrjMobileRegister"; + } + + @RequestMapping(value={"/mobile/dmsPrj/addDmsPrjMobile.do"}) + public String addDmsPrjMobile(MultipartHttpServletRequest request, HttpServletResponse response, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + block5: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsPrjService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block5; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsPrjService.insertDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + return "redirect:" + searchVO.getParentUrl(); + } + + private String updateDmsPrjMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + dmsPrjVO.setPrjSeq(searchVO.getPrjSeq()); + dmsPrjVO = this.dmsPrjService.selectDmsPrj(dmsPrjVO); + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + return "mobile/dmsPrj/DmsPrjMobileRegister"; + } + + @RequestMapping(value={"/mobile/dmsPrj/updateDmsPrjMobile.do"}) + public String updateDmsPrjMobile(MultipartHttpServletRequest request, HttpServletResponse response, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + block7: { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + if (!XssFilter.getInstance().isNotFindXSS((ServletRequest)request)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(XssFilter.infoUrl); + dispatcher.forward((ServletRequest)request, (ServletResponse)response); + return null; + } + String white = this.dmsPrjService.checkFileWhiteList(request, "file_", EdosiResource.getInstance().getValue("attach.whitelist")); + if (white == null) break block7; + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)("유효하지 않은 첨부파일(" + white + ")이 있습니다. 다시 확인해주세요.")); + return null; + } + try { + this.dmsPrjService.updateDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam() + "&prjSeq=" + dmsPrjVO.getPrjSeq(); + } + + private String selectDmsPrjMobile(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, Model model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + if (request.getSession().getAttribute("SEARCH_KEYWORD") != null) { + searchVO.setSearchKeyword((String)request.getSession().getAttribute("SEARCH_KEYWORD")); + request.getSession().setAttribute("SEARCH_KEYWORD", null); + } + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + dmsPrjVO.setPrjSeq(searchVO.getPrjSeq()); + try { + dmsPrjVO = this.dmsPrjService.selectDmsPrj(dmsPrjVO); + } + catch (Exception e) { + e.printStackTrace(); + } + model.addAttribute("dmsPrjVO", (Object)dmsPrjVO); + model.addAttribute("checkWriteAuth", (Object)this.checkWriteAuth(dmsPrjVO)); + return "mobile/dmsPrj/DmsPrjMobileDetail"; + } + + @RequestMapping(value={"/mobile/dmsPrj/deleteDmsPrjMobile.do"}) + public String deleteDmsPrjMobile(HttpServletRequest request, DmsPrjVO dmsPrjVO, @ModelAttribute(value="searchVO") DmsPrjDefaultVO searchVO, SessionStatus status) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + if (!this.checkWriteAuth(dmsPrjVO)) { + return "cmm/privilegeError"; + } + try { + this.dmsPrjService.deleteDmsPrj(dmsPrjVO, request); + } + catch (Exception e) { + e.printStackTrace(); + } + status.setComplete(); + if (searchVO.getSearchKeyword() != null && !searchVO.getSearchKeyword().equals("")) { + request.getSession().setAttribute("SEARCH_KEYWORD", (Object)searchVO.getSearchKeyword()); + } + searchVO.setBmode(null); + return "redirect:" + searchVO.getParentUrl() + searchVO.toParam(); + } + + private boolean checkWriteAuth(DmsPrjVO dmsPrjVO) { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + return UserDetailsHelper.isRole((String)"ROLE_ADMIN") != false; + } +} + diff --git a/src/main/java/egovframework/edosi/common/code/CodeResource.java b/src/main/java/egovframework/edosi/common/code/CodeResource.java new file mode 100644 index 0000000..023557c --- /dev/null +++ b/src/main/java/egovframework/edosi/common/code/CodeResource.java @@ -0,0 +1,65 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.ComDefaultCodeVO + * egovframework.com.cmm.service.CmmnDetailCode + * egovframework.com.cmm.service.EgovCmmUseService + * egovframework.edosi.common.code.CodeResource + */ +package egovframework.edosi.common.code; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.com.cmm.service.EgovCmmUseService; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class CodeResource { + private final Map> map = new HashMap(); + private EgovCmmUseService cmmUseService; + + public void setCmmUseService(EgovCmmUseService cmmUseService) { + this.cmmUseService = cmmUseService; + } + + public List getCodeList(String code) throws Exception { + if (this.map.containsKey(code)) { + return (List)this.map.get(code); + } + ComDefaultCodeVO voComCode = new ComDefaultCodeVO(); + voComCode.setCodeId(code); + List listComCode = this.cmmUseService.selectCmmCodeDetail(voComCode); + this.map.put(code, listComCode); + return listComCode; + } + + public List setCodeList(String code) throws Exception { + ComDefaultCodeVO voComCode = new ComDefaultCodeVO(); + voComCode.setCodeId(code); + List listComCode = this.cmmUseService.selectCmmCodeDetail(voComCode); + this.map.put(code, listComCode); + return listComCode; + } + + public List removeCodeResourceForNotUse(String code) { + ArrayList tmpDetailCodeList = new ArrayList(); + try { + List detailCodeList = this.getCodeList(code); + int i = 0; + while (i < detailCodeList.size()) { + if ("Y".equals(((CmmnDetailCode)detailCodeList.get(i)).getUseAt())) { + tmpDetailCodeList.add((CmmnDetailCode)detailCodeList.get(i)); + } + ++i; + } + } + catch (Exception e) { + e.printStackTrace(); + } + return tmpDetailCodeList; + } +} + diff --git a/src/main/java/egovframework/edosi/common/security/RealNameUtil.java b/src/main/java/egovframework/edosi/common/security/RealNameUtil.java new file mode 100644 index 0000000..9a0c38e --- /dev/null +++ b/src/main/java/egovframework/edosi/common/security/RealNameUtil.java @@ -0,0 +1,25 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.security.RealNameUtil + * egovframework.edosi.resource.EdosiConsts + * egovframework.edosi.resource.EdosiResource + */ +package egovframework.edosi.common.security; + +import egovframework.edosi.resource.EdosiConsts; +import egovframework.edosi.resource.EdosiResource; + +public class RealNameUtil { + public static String convertDupInfo(String authKey) { + EdosiResource resource = EdosiResource.getInstance(); + String sSiteCode = resource.getValue(EdosiConsts.IpinId); + String sSitePw = resource.getValue(EdosiConsts.IpinPw); + String sJumin = authKey; + String sFlag = "SID"; + String sDupInfo = null; + return sDupInfo; + } +} + diff --git a/src/main/java/egovframework/edosi/common/security/RealNameVO.java b/src/main/java/egovframework/edosi/common/security/RealNameVO.java new file mode 100644 index 0000000..0197f71 --- /dev/null +++ b/src/main/java/egovframework/edosi/common/security/RealNameVO.java @@ -0,0 +1,71 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.security.RealNameVO + * egovframework.edosi.common.util.EdosiDateUtil + */ +package egovframework.edosi.common.security; + +import egovframework.edosi.common.util.EdosiDateUtil; + +public class RealNameVO { + String userName; + String authKey; + String birthDay; + String gender; + String dupInfo; + String nationalInfo; + + public String getUserName() { + return this.userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getAuthKey() { + return this.authKey; + } + + public void setAuthKey(String authKey) { + this.authKey = authKey; + } + + public String getGender() { + return this.gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public String getDupInfo() { + return this.dupInfo; + } + + public void setDupInfo(String dupInfo) { + this.dupInfo = dupInfo; + } + + public String getBirthDay() { + return this.birthDay; + } + + public void setBirthDay(String birthDay) { + if (birthDay != null && birthDay.length() == 8) { + birthDay = EdosiDateUtil.getStrDayString((String)birthDay, (String)".", (int)0); + } + this.birthDay = birthDay; + } + + public String getNationalInfo() { + return this.nationalInfo; + } + + public void setNationalInfo(String nationalInfo) { + this.nationalInfo = nationalInfo; + } +} + diff --git a/src/main/java/egovframework/edosi/common/security/SecurityVO.java b/src/main/java/egovframework/edosi/common/security/SecurityVO.java new file mode 100644 index 0000000..a101ac8 --- /dev/null +++ b/src/main/java/egovframework/edosi/common/security/SecurityVO.java @@ -0,0 +1,65 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.security.SecurityVO + */ +package egovframework.edosi.common.security; + +public class SecurityVO { + boolean isPriAdmin = false; + boolean isPriOwner = false; + boolean isPriParti = false; + boolean isPriAnswer = false; + boolean isPriList = false; + boolean isPriRead = false; + + public boolean isPriAdmin() { + return this.isPriAdmin; + } + + public void setPriAdmin(boolean isPriAdmin) { + this.isPriAdmin = isPriAdmin; + } + + public boolean isPriOwner() { + return this.isPriOwner; + } + + public void setPriOwner(boolean isPriOwner) { + this.isPriOwner = isPriOwner; + } + + public boolean isPriAnswer() { + return this.isPriAnswer; + } + + public void setPriAnswer(boolean isPriAnswer) { + this.isPriAnswer = isPriAnswer; + } + + public boolean isPriList() { + return this.isPriList; + } + + public void setPriList(boolean isPriList) { + this.isPriList = isPriList; + } + + public boolean isPriRead() { + return this.isPriRead; + } + + public void setPriRead(boolean isPriRead) { + this.isPriRead = isPriRead; + } + + public boolean isPriParti() { + return this.isPriParti; + } + + public void setPriParti(boolean isPriParti) { + this.isPriParti = isPriParti; + } +} + diff --git a/src/main/java/egovframework/edosi/common/tags/CodeResourceTag.java b/src/main/java/egovframework/edosi/common/tags/CodeResourceTag.java new file mode 100644 index 0000000..48b0896 --- /dev/null +++ b/src/main/java/egovframework/edosi/common/tags/CodeResourceTag.java @@ -0,0 +1,79 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.service.CmmnDetailCode + * egovframework.edosi.common.tags.CodeResourceTag + * javax.servlet.jsp.JspException + * javax.servlet.jsp.JspTagException + * javax.servlet.jsp.tagext.TagSupport + */ +package egovframework.edosi.common.tags; + +import egovframework.com.cmm.service.CmmnDetailCode; +import java.io.IOException; +import java.util.List; +import javax.servlet.jsp.JspException; +import javax.servlet.jsp.JspTagException; +import javax.servlet.jsp.tagext.TagSupport; + +public class CodeResourceTag +extends TagSupport { + protected List items; + protected String code; + private String var; + private int scope; + + public CodeResourceTag() { + this.init(); + } + + private void init() { + this.items = null; + this.scope = 1; + this.code = null; + } + + public void setVar(String var) { + this.var = var; + } + + public void setCode(String code) { + this.code = code; + } + + public void setItems(List items) { + this.items = items; + } + + public void release() { + this.init(); + } + + public int doEndTag() throws JspException { + if (this.items == null || this.code == null) { + return 6; + } + String formatted = null; + int i = 0; + while (i < this.items.size()) { + if (((CmmnDetailCode)this.items.get(i)).getCode().equals(this.code)) { + formatted = ((CmmnDetailCode)this.items.get(i)).getCodeNm(); + break; + } + ++i; + } + if (this.var != null) { + this.pageContext.setAttribute(this.var, formatted, this.scope); + } else { + try { + this.pageContext.getOut().print(formatted); + } + catch (IOException ioe) { + throw new JspTagException(ioe.toString(), (Throwable)ioe); + } + } + return 6; + } +} + diff --git a/src/main/java/egovframework/edosi/common/tags/FormatDateTag.java b/src/main/java/egovframework/edosi/common/tags/FormatDateTag.java new file mode 100644 index 0000000..1211b2c --- /dev/null +++ b/src/main/java/egovframework/edosi/common/tags/FormatDateTag.java @@ -0,0 +1,70 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.tags.FormatDateTag + * egovframework.edosi.common.util.EdosiDateUtil + * javax.servlet.jsp.JspException + * javax.servlet.jsp.JspTagException + * javax.servlet.jsp.tagext.TagSupport + */ +package egovframework.edosi.common.tags; + +import egovframework.edosi.common.util.EdosiDateUtil; +import java.io.IOException; +import javax.servlet.jsp.JspException; +import javax.servlet.jsp.JspTagException; +import javax.servlet.jsp.tagext.TagSupport; + +public class FormatDateTag +extends TagSupport { + protected String value; + protected String delimiter; + private String var; + private int scope; + + public FormatDateTag() { + this.init(); + } + + private void init() { + this.value = null; + this.delimiter = ""; + this.scope = 1; + } + + public void setVar(String var) { + this.var = var; + } + + public void setValue(String value) { + this.value = value; + } + + public void setDelimiter(String delimiter) { + this.delimiter = delimiter; + } + + public void release() { + this.init(); + } + + public int doEndTag() throws JspException { + if (this.value == null) { + return 6; + } + String formatted = String.valueOf(EdosiDateUtil.getDayOfDelimAsString((String)this.value, (String)this.delimiter)) + "(" + EdosiDateUtil.getDayOfWeekAsString((String)this.value, (String)"") + ")"; + if (this.var != null) { + this.pageContext.setAttribute(this.var, (Object)formatted, this.scope); + } else { + try { + this.pageContext.getOut().print(formatted); + } + catch (IOException ioe) { + throw new JspTagException(ioe.toString(), (Throwable)ioe); + } + } + return 6; + } +} + diff --git a/src/main/java/egovframework/edosi/common/tags/FormatHtmlTag.java b/src/main/java/egovframework/edosi/common/tags/FormatHtmlTag.java new file mode 100644 index 0000000..8d0f81f --- /dev/null +++ b/src/main/java/egovframework/edosi/common/tags/FormatHtmlTag.java @@ -0,0 +1,64 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.tags.FormatHtmlTag + * egovframework.edosi.common.util.EdosiStringUtil + * javax.servlet.jsp.JspException + * javax.servlet.jsp.JspTagException + * javax.servlet.jsp.tagext.TagSupport + */ +package egovframework.edosi.common.tags; + +import egovframework.edosi.common.util.EdosiStringUtil; +import java.io.IOException; +import javax.servlet.jsp.JspException; +import javax.servlet.jsp.JspTagException; +import javax.servlet.jsp.tagext.TagSupport; + +public class FormatHtmlTag +extends TagSupport { + protected String value; + private String var; + private int scope; + + public FormatHtmlTag() { + this.init(); + } + + private void init() { + this.value = null; + this.scope = 1; + } + + public void setVar(String var) { + this.var = var; + } + + public void setValue(String value) { + this.value = value; + } + + public void release() { + this.init(); + } + + public int doEndTag() throws JspException { + if (this.value == null) { + return 6; + } + String formatted = EdosiStringUtil.checkHtmlView((String)this.value); + if (this.var != null) { + this.pageContext.setAttribute(this.var, (Object)formatted, this.scope); + } else { + try { + this.pageContext.getOut().print(formatted); + } + catch (IOException ioe) { + throw new JspTagException(ioe.toString(), (Throwable)ioe); + } + } + return 6; + } +} + diff --git a/src/main/java/egovframework/edosi/common/util/EdosiDateUtil.java b/src/main/java/egovframework/edosi/common/util/EdosiDateUtil.java new file mode 100644 index 0000000..592ba9a --- /dev/null +++ b/src/main/java/egovframework/edosi/common/util/EdosiDateUtil.java @@ -0,0 +1,265 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.util.EdosiDateUtil + * egovframework.edosi.common.util.EdosiStringUtil + * egovframework.rte.fdl.string.EgovDateUtil + */ +package egovframework.edosi.common.util; + +import egovframework.edosi.common.util.EdosiStringUtil; +import egovframework.rte.fdl.string.EgovDateUtil; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Locale; +import java.util.StringTokenizer; + +/* + * Exception performing whole class analysis ignored. + */ +public class EdosiDateUtil +extends EgovDateUtil { + public static String getDayOfWeekAsString(String date, String delim) { + String _year = ""; + String _month = ""; + String _day = ""; + if (date != null && date.length() >= 8) { + if (date.length() == 8 && (delim == null || delim.length() == 0)) { + _year = date.substring(0, 4); + _month = date.substring(4, 6); + _day = date.substring(6, 8); + } else { + StringTokenizer dates = new StringTokenizer(date, delim); + if (dates.countTokens() == 3) { + _year = dates.nextToken(); + _month = dates.nextToken(); + _day = dates.nextToken(); + } + } + if (_year.length() == 4 && _month.length() == 2 && _day.length() == 2) { + return EgovDateUtil.getDayOfWeekAsString((String)_year, (String)_month, (String)_day); + } + } + return ""; + } + + public static int getDayOfWeek(String date, String delim) { + String _year = ""; + String _month = ""; + String _day = ""; + if (date != null && date.length() >= 8) { + if (date.length() == 8 && (delim == null || delim.length() == 0)) { + _year = date.substring(0, 4); + _month = date.substring(4, 6); + _day = date.substring(6, 8); + } else { + StringTokenizer dates = new StringTokenizer(date, delim); + if (dates.countTokens() == 3) { + _year = dates.nextToken(); + _month = dates.nextToken(); + _day = dates.nextToken(); + } + } + if (_year.length() == 4 && _month.length() == 2 && _day.length() == 2) { + Calendar cal = Calendar.getInstance(); + cal.set(Integer.parseInt(_year), Integer.parseInt(_month), Integer.parseInt(_day)); + return cal.get(7); + } + } + return 0; + } + + public static String getDayOfDelimAsString(String date, String delim) { + String _year = ""; + String _month = ""; + String _day = ""; + if (date != null && date.length() == 8 && delim != null) { + _year = date.substring(0, 4); + _month = date.substring(4, 6); + _day = date.substring(6, 8); + return String.valueOf(_year) + delim + _month + delim + _day; + } + return date; + } + + public static String getToDayString(String delim, int amount) { + Calendar _calendar = Calendar.getInstance(); + _calendar.add(5, amount); + String _year = Integer.toString(_calendar.get(1)); + String _month = _calendar.get(2) + 1 < 10 ? "0" + Integer.toString(_calendar.get(2) + 1) : Integer.toString(_calendar.get(2) + 1); + String _day = _calendar.get(5) < 10 ? "0" + Integer.toString(_calendar.get(5)) : Integer.toString(_calendar.get(5)); + return String.valueOf(_year) + delim + _month + delim + _day; + } + + public static String getStrDayString(String strDate, String delim, int amount) { + Calendar _calendar = Calendar.getInstance(); + _calendar = EdosiDateUtil.CalendarFromStringSimple((String)strDate); + _calendar.add(5, amount); + String _year = Integer.toString(_calendar.get(1)); + String _month = _calendar.get(2) + 1 < 10 ? "0" + Integer.toString(_calendar.get(2) + 1) : Integer.toString(_calendar.get(2) + 1); + String _day = _calendar.get(5) < 10 ? "0" + Integer.toString(_calendar.get(5)) : Integer.toString(_calendar.get(5)); + return String.valueOf(_year) + delim + _month + delim + _day; + } + + public static Calendar CalendarFromStringSimple(String date) { + Calendar cal = Calendar.getInstance(); + try { + SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); + cal.setTime(formatter.parse(date)); + } + catch (ParseException e) { + e.printStackTrace(); + } + return cal; + } + + public static String getDateSimpleFormat(Calendar cal) { + return EdosiDateUtil.getDateSimpleFormat((Calendar)cal, (String)"yyyy-MM-dd HH:mm:ss"); + } + + public static String getDateSimpleFormat(Calendar cal, String format) { + SimpleDateFormat formatter = new SimpleDateFormat(format); + return formatter.format(cal.getTime()); + } + + public static String[] getMonthList() { + String[] months = new String[]{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"}; + return months; + } + + public static String[] getYearList() { + int year = EgovDateUtil.getCurrentYearAsInt(); + String[] years = new String[10]; + int i = 0; + while (i < 10) { + years[i] = Integer.toString(year + i); + ++i; + } + return years; + } + + public static String[] getDates(String date, String delim) { + String _year = ""; + String _month = ""; + String _day = ""; + String[] array = new String[3]; + if (date != null && date.length() >= 8) { + if (date.length() == 8 && (delim == null || delim.length() == 0)) { + array[0] = date.substring(0, 4); + array[1] = date.substring(4, 6); + array[2] = date.substring(6, 8); + } else { + StringTokenizer dates = new StringTokenizer(date, delim); + if (dates.countTokens() == 3) { + array[0] = dates.nextToken(); + array[1] = dates.nextToken(); + array[2] = dates.nextToken(); + } + } + } + return array; + } + + public static String[] getDailyList(String startDate, String endDate, String delim) { + String[] startDates = EdosiDateUtil.getDates((String)startDate, (String)delim); + String[] endDates = EdosiDateUtil.getDates((String)endDate, (String)delim); + String[] dailys = null; + try { + dailys = new String[EdosiDateUtil.getDayCount((String)startDate.replaceAll(delim, ""), (String)endDate.replaceAll(delim, "")) + 1]; + int dailyCursor = 0; + int termMonth = Integer.parseInt(String.valueOf(endDates[0]) + endDates[1]) - Integer.parseInt(String.valueOf(startDates[0]) + startDates[1]); + int monthLength = 0; + Calendar cal = Calendar.getInstance(); + cal.set(Integer.parseInt(startDates[0]), Integer.parseInt(startDates[1]), Integer.parseInt(startDates[2])); + int i = 0; + while (i <= termMonth) { + if (dailyCursor != dailys.length) { + monthLength = EdosiDateUtil.getDayCountForMonth((int)cal.get(1), (int)cal.get(2)); + int j = 0; + while (j < monthLength) { + if (dailyCursor == dailys.length) break; + if (startDate.equals(endDate)) { + if (j >= Integer.parseInt(startDates[2]) - 1 && j < Integer.parseInt(endDates[2]) - 1) { + dailys[dailyCursor++] = String.valueOf(Integer.toString(cal.get(1))) + (cal.get(2) < 10 ? "0" + Integer.toString(cal.get(2)) : Integer.toString(cal.get(2))) + (j + 1 < 10 ? "0" + Integer.toString(j + 1) : Integer.toString(j + 1)); + } + } else if (cal.get(1) == Integer.parseInt(startDates[0]) && cal.get(2) == Integer.parseInt(startDates[1])) { + if (j >= Integer.parseInt(startDates[2]) - 1) { + dailys[dailyCursor++] = String.valueOf(Integer.toString(cal.get(1))) + (cal.get(2) < 10 ? "0" + Integer.toString(cal.get(2)) : Integer.toString(cal.get(2))) + (j + 1 < 10 ? "0" + Integer.toString(j + 1) : Integer.toString(j + 1)); + } + } else if (cal.get(1) == Integer.parseInt(endDates[0]) && cal.get(2) == Integer.parseInt(endDates[1])) { + if (j <= Integer.parseInt(endDates[2]) - 1) { + dailys[dailyCursor++] = String.valueOf(Integer.toString(cal.get(1))) + (cal.get(2) < 10 ? "0" + Integer.toString(cal.get(2)) : Integer.toString(cal.get(2))) + (j + 1 < 10 ? "0" + Integer.toString(j + 1) : Integer.toString(j + 1)); + } + } else { + dailys[dailyCursor++] = String.valueOf(Integer.toString(cal.get(1))) + (cal.get(2) < 10 ? "0" + Integer.toString(cal.get(2)) : Integer.toString(cal.get(2))) + (j + 1 < 10 ? "0" + Integer.toString(j + 1) : Integer.toString(j + 1)); + } + ++j; + } + cal.add(2, 1); + ++i; + continue; + } + break; + } + } + catch (ParseException e) { + e.printStackTrace(); + } + return dailys; + } + + public static String getToday() { + return EdosiDateUtil.getCurrentDate((String)""); + } + + public static String getCurrentDate(String dateType) { + Calendar aCalendar = Calendar.getInstance(); + int year = aCalendar.get(1); + int month = aCalendar.get(2) + 1; + int date = aCalendar.get(5); + String strDate = String.valueOf(Integer.toString(year)) + (month < 10 ? "0" + Integer.toString(month) : Integer.toString(month)) + (date < 10 ? "0" + Integer.toString(date) : Integer.toString(date)); + if (!"".equals(dateType)) { + strDate = EdosiDateUtil.convertDate((String)strDate, (String)"yyyyMMdd", (String)dateType); + } + return strDate; + } + + public static String convertDate(String sDate, String sTime, String sFormatStr) { + String dateStr = EdosiDateUtil.validChkDate((String)sDate); + String timeStr = EdosiDateUtil.validChkTime((String)sTime); + Calendar cal = null; + cal = Calendar.getInstance(); + cal.set(1, Integer.parseInt(dateStr.substring(0, 4))); + cal.set(2, Integer.parseInt(dateStr.substring(4, 6)) - 1); + cal.set(5, Integer.parseInt(dateStr.substring(6, 8))); + cal.set(11, Integer.parseInt(timeStr.substring(0, 2))); + cal.set(12, Integer.parseInt(timeStr.substring(2, 4))); + SimpleDateFormat sdf = new SimpleDateFormat(sFormatStr, Locale.ENGLISH); + return sdf.format(cal.getTime()); + } + + public static String validChkDate(String dateStr) { + String _dateStr = dateStr; + if (dateStr == null || dateStr.trim().length() != 8 && dateStr.trim().length() != 10) { + throw new IllegalArgumentException("Invalid date format: " + dateStr); + } + if (dateStr.length() == 10) { + _dateStr = EdosiStringUtil.removeMinusChar((String)dateStr); + } + return _dateStr; + } + + public static String validChkTime(String timeStr) { + String _timeStr = timeStr; + if (_timeStr.length() == 5) { + _timeStr = EdosiStringUtil.remove((String)_timeStr, (char)':'); + } + if (_timeStr == null || _timeStr.trim().length() != 4) { + throw new IllegalArgumentException("Invalid time format: " + _timeStr); + } + return _timeStr; + } +} + diff --git a/src/main/java/egovframework/edosi/common/util/EdosiStringUtil.java b/src/main/java/egovframework/edosi/common/util/EdosiStringUtil.java new file mode 100644 index 0000000..233ef26 --- /dev/null +++ b/src/main/java/egovframework/edosi/common/util/EdosiStringUtil.java @@ -0,0 +1,227 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.util.EdosiStringUtil + */ +package egovframework.edosi.common.util; + +import java.io.UnsupportedEncodingException; +import java.text.DecimalFormat; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/* + * Exception performing whole class analysis ignored. + */ +public class EdosiStringUtil { + public static String getChargeFormat(int charge) { + if (charge >= 0) { + DecimalFormat chargeFormat = new DecimalFormat("###,###"); + return chargeFormat.format(charge); + } + return ""; + } + + public static String checkHtmlView(String strString) { + String strNew = ""; + StringBuffer strTxt = new StringBuffer(""); + int len = strString.length(); + int i = 0; + while (i < len) { + char chrBuff = strString.charAt(i); + switch (chrBuff) { + case '<': { + strTxt.append("<"); + break; + } + case '>': { + strTxt.append(">"); + break; + } + case '\"': { + strTxt.append("""); + break; + } + case '\n': { + strTxt.append("
"); + break; + } + case ' ': { + strTxt.append(" "); + break; + } + default: { + strTxt.append(chrBuff); + } + } + ++i; + } + strNew = strTxt.toString(); + return strNew; + } + + public static String getBirthdayFormat(String date, String delim) { + String _year = ""; + String _month = ""; + String _day = ""; + if (date != null && date.length() == 8) { + _year = date.substring(0, 4); + _month = date.substring(4, 6); + _day = date.substring(6, 8); + return String.valueOf(_year) + delim + _month + delim + _day; + } + return date; + } + + public static String getCardViewFormat(String cardNo) { + String _tmp = ""; + if (cardNo != null && cardNo.length() >= 12) { + String _cardNo = String.valueOf(cardNo.substring(0, 4)) + "-xxxx-xxxx-"; + int i = 12; + while (i < _cardNo.length()) { + _tmp = String.valueOf(_tmp) + "x"; + ++i; + } + return String.valueOf(_cardNo) + _tmp; + } + return ""; + } + + public static String toKorean(String value) { + if (value != null) { + try { + value = new String(value.getBytes("ISO-8859-1"), "EUC_KR"); + return value; + } + catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + return value; + } + + public static String dateConvert(int value) { + String retVal = ""; + retVal = value >= 10 ? Integer.toString(value) : "0" + Integer.toString(value); + return retVal; + } + + public static String removeALink(String str) { + String b = str; + b = str; + Pattern p1 = Pattern.compile("", 2); + Matcher m = p1.matcher(b); + while (m.find()) { + b = m.replaceAll(""); + } + Pattern p2 = Pattern.compile("]*>", 2); + Matcher m2 = p2.matcher(b); + while (m2.find()) { + b = m2.replaceAll(""); + } + return b; + } + + public static String remove(String str, char remove) { + if (EdosiStringUtil.isEmpty((String)str) || str.indexOf(remove) == -1) { + return str; + } + char[] chars = str.toCharArray(); + int pos = 0; + int i = 0; + while (i < chars.length) { + if (chars[i] != remove) { + chars[pos++] = chars[i]; + } + ++i; + } + return new String(chars, 0, pos); + } + + public static String removeCommaChar(String str) { + return EdosiStringUtil.remove((String)str, (char)','); + } + + public static String removeMinusChar(String str) { + return EdosiStringUtil.remove((String)str, (char)'-'); + } + + public static boolean isEmpty(String str) { + return str == null || str.length() == 0; + } + + public static String removeXSS(String str, boolean use_html) { + if (str == null) { + return ""; + } + String str_low = ""; + if (use_html) { + str = str.replaceAll("<", "<"); + str = str.replaceAll(">", ">"); + str = str.replaceAll("\"", ">"); + str = str.replaceAll("&", "&"); + str = str.replaceAll("%00", null); + str = str.replaceAll("\"", """); + str = str.replaceAll("'", "'"); + str = str.replaceAll("%", "%"); + str = str.replaceAll("../", ""); + str = str.replaceAll("..\\\\", ""); + str = str.replaceAll("./", ""); + str = str.replaceAll("%2F", ""); + str = str.replaceAll("<p>", "

"); + str = str.replaceAll("<P>", "

"); + str = str.replaceAll("<br>", "
"); + str_low = (str = str.replaceAll("<BR>", "
")).toLowerCase(); + if (str_low.contains("javascript") || str_low.contains("script") || str_low.contains("iframe") || str_low.contains("document") || str_low.contains("vbscript") || str_low.contains("applet") || str_low.contains("embed") || str_low.contains("object") || str_low.contains("frame") || str_low.contains("grameset") || str_low.contains("layer") || str_low.contains("bgsound") || str_low.contains("alert") || str_low.contains("onblur") || str_low.contains("onchange") || str_low.contains("onclick") || str_low.contains("ondblclick") || str_low.contains("enerror") || str_low.contains("onfocus") || str_low.contains("onload") || str_low.contains("onmouse") || str_low.contains("onscroll") || str_low.contains("onsubmit") || str_low.contains("onunload")) { + str = str_low; + str = str.replaceAll("javascript", "x-javascript"); + str = str.replaceAll("script", "x-script"); + str = str.replaceAll("iframe", "x-iframe"); + str = str.replaceAll("document", "x-document"); + str = str.replaceAll("vbscript", "x-vbscript"); + str = str.replaceAll("applet", "x-applet"); + str = str.replaceAll("embed", "x-embed"); + str = str.replaceAll("object", "x-object"); + str = str.replaceAll("frame", "x-frame"); + str = str.replaceAll("grameset", "x-grameset"); + str = str.replaceAll("layer", "x-layer"); + str = str.replaceAll("bgsound", "x-bgsound"); + str = str.replaceAll("alert", "x-alert"); + str = str.replaceAll("onblur", "x-onblur"); + str = str.replaceAll("onchange", "x-onchange"); + str = str.replaceAll("onclick", "x-onclick"); + str = str.replaceAll("ondblclick", "x-ondblclick"); + str = str.replaceAll("enerror", "x-enerror"); + str = str.replaceAll("onfocus", "x-onfocus"); + str = str.replaceAll("onload", "x-onload"); + str = str.replaceAll("onmouse", "x-onmouse"); + str = str.replaceAll("onscroll", "x-onscroll"); + str = str.replaceAll("onsubmit", "x-onsubmit"); + str = str.replaceAll("onunload", "x-onunload"); + } + } else { + str = str.replaceAll("\"", ">"); + str = str.replaceAll("&", "&"); + str = str.replaceAll("<", "<"); + str = str.replaceAll(">", ">"); + str = str.replaceAll("%00", null); + str = str.replaceAll("\"", """); + str = str.replaceAll("'", "'"); + str = str.replaceAll("%", "%"); + str = str.replaceAll("../", ""); + str = str.replaceAll("..\\\\", ""); + str = str.replaceAll("./", ""); + str = str.replaceAll("%2F", ""); + } + return str; + } + + public static String addMinusChar(String date) { + if (date.length() == 8) { + return date.substring(0, 4).concat("-").concat(date.substring(4, 6)).concat("-").concat(date.substring(6, 8)); + } + return ""; + } +} + diff --git a/src/main/java/egovframework/edosi/common/util/ImageUtil.java b/src/main/java/egovframework/edosi/common/util/ImageUtil.java new file mode 100644 index 0000000..c88eab7 --- /dev/null +++ b/src/main/java/egovframework/edosi/common/util/ImageUtil.java @@ -0,0 +1,110 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.util.ImageUtil + */ +package egovframework.edosi.common.util; + +import java.awt.Image; +import java.awt.image.BufferedImage; +import java.awt.image.PixelGrabber; +import java.awt.image.RenderedImage; +import java.io.File; +import java.io.IOException; +import javax.imageio.ImageIO; +import javax.swing.ImageIcon; + +public class ImageUtil { + public static final int RATIO = 0; + public static final int SAME = -1; + + public static void resize(File src, File dest, int width, int height, String fileExtsn) throws IOException { + double ratio; + System.out.println("width" + width); + System.out.println("src" + src); + Image srcImg = null; + String suffix = src.getName().substring(src.getName().lastIndexOf(46) + 1).toLowerCase(); + srcImg = suffix.equals("bmp") || suffix.equals("png") || suffix.equals("gif") ? ImageIO.read(src) : new ImageIcon(src.getAbsolutePath()).getImage(); + int srcWidth = srcImg.getWidth(null); + int srcHeight = srcImg.getHeight(null); + int destWidth = -1; + int destHeight = -1; + if (width == -1) { + destWidth = srcWidth; + } else if (width > 0) { + destWidth = width; + } + if (height == -1) { + destHeight = srcHeight; + } else if (height > 0) { + destHeight = height; + } + if (width == 0 && height == 0) { + destWidth = srcWidth; + destHeight = srcHeight; + } else if (width == 0) { + ratio = (double)destHeight / (double)srcHeight; + destWidth = (int)((double)srcWidth * ratio); + } else if (height == 0) { + ratio = (double)destWidth / (double)srcWidth; + destHeight = (int)((double)srcHeight * ratio); + } + Image imgTarget = srcImg.getScaledInstance(destWidth, destHeight, 4); + int[] pixels = new int[destWidth * destHeight]; + PixelGrabber pg = new PixelGrabber(imgTarget, 0, 0, destWidth, destHeight, pixels, 0, destWidth); + try { + pg.grabPixels(); + } + catch (InterruptedException e) { + throw new IOException(e.getMessage()); + } + BufferedImage destImg = new BufferedImage(destWidth, destHeight, 1); + destImg.setRGB(0, 0, destWidth, destHeight, pixels, 0, destWidth); + ImageIO.write((RenderedImage)destImg, fileExtsn, dest); + } + + public static Image resize(Image srcImg, int width, int height) throws IOException { + double ratio; + File dest = new File(String.valueOf(System.getProperty("java.io.tmpdir")) + File.separator + "tmp_photo.gif"); + int srcWidth = srcImg.getWidth(null); + int srcHeight = srcImg.getHeight(null); + int destWidth = -1; + int destHeight = -1; + if (width == -1) { + destWidth = srcWidth; + } else if (width > 0) { + destWidth = width; + } + if (height == -1) { + destHeight = srcHeight; + } else if (height > 0) { + destHeight = height; + } + if (width == 0 && height == 0) { + destWidth = srcWidth; + destHeight = srcHeight; + } else if (width == 0) { + ratio = (double)destHeight / (double)srcHeight; + destWidth = (int)((double)srcWidth * ratio); + } else if (height == 0) { + ratio = (double)destWidth / (double)srcWidth; + destHeight = (int)((double)srcHeight * ratio); + } + Image imgTarget = srcImg.getScaledInstance(destWidth, destHeight, 4); + int[] pixels = new int[destWidth * destHeight]; + PixelGrabber pg = new PixelGrabber(imgTarget, 0, 0, destWidth, destHeight, pixels, 0, destWidth); + try { + pg.grabPixels(); + } + catch (InterruptedException e) { + throw new IOException(e.getMessage()); + } + BufferedImage destImg = new BufferedImage(destWidth, destHeight, 1); + destImg.setRGB(0, 0, destWidth, destHeight, pixels, 0, destWidth); + ImageIO.write((RenderedImage)destImg, "gif", dest); + ImageIcon icon = new ImageIcon(dest.getAbsolutePath()); + return icon.getImage(); + } +} + diff --git a/src/main/java/egovframework/edosi/common/util/Page.java b/src/main/java/egovframework/edosi/common/util/Page.java new file mode 100644 index 0000000..9718386 --- /dev/null +++ b/src/main/java/egovframework/edosi/common/util/Page.java @@ -0,0 +1,166 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.common.util.Page + * javax.servlet.http.HttpServletRequest + */ +package egovframework.edosi.common.util; + +import javax.servlet.http.HttpServletRequest; + +public class Page { + private HttpServletRequest request; + protected int page; + protected int row_total; + protected int page_total; + protected int start; + protected int listRow; + protected int pageRow; + protected int start_page; + protected int end_page; + protected String firstImage; + protected String lastImage; + protected String prevImage; + protected String nextImage; + private String link; + + public Page() { + } + + public Page(int listRow, int pageRow) { + this.listRow = listRow; + this.pageRow = pageRow; + } + + public void setListRow(int listRow) { + this.listRow = listRow; + } + + public int getListRow() { + return this.listRow; + } + + public void setPageRow(int pageRow) { + this.pageRow = pageRow; + } + + public int getPageRow() { + return this.pageRow; + } + + public int getStart() { + return this.start; + } + + public void setPage(HttpServletRequest request, int page, String link) { + this.request = request; + this.page = page; + this.start = (page - 1) * this.listRow; + this.link = link; + } + + public String putPage(int row_total) { + this.row_total = row_total; + this.page_total = (int)Math.ceil((float)row_total / (float)this.listRow); + StringBuilder sb = new StringBuilder(); + String uri = this.request.getParameter("parentUrl"); + int co = (int)((float)this.page / (float)this.pageRow); + if (this.page % this.pageRow != 0) { + ++co; + } + this.start_page = (co - 1) * this.pageRow + 1; + this.end_page = this.start_page + this.pageRow - 1; + sb.append("
" + this.getFirstImage() + " "); + if (this.page > this.pageRow) { + int pre = this.end_page - this.pageRow; + sb.append("" + this.getPrevImage() + ""); + } else { + sb.append(this.getPrevImage()); + } + if (this.page_total < this.end_page) { + this.end_page = this.page_total; + } + sb.append(" "); + int i = this.start_page; + while (i <= this.end_page) { + if (i == this.page) { + sb.append("[" + i + "]"); + } else { + sb.append("" + i + ""); + } + if (i != this.end_page) { + sb.append(" | "); + } + ++i; + } + if (this.end_page < this.page_total) { + int next = this.end_page + 1; + sb.append(""); + } else { + sb.append(this.getNextImage()); + } + sb.append(" " + this.getLastImage() + ""); + if (this.start_page < this.end_page) { + return sb.toString(); + } + return ""; + } + + public int getFirstNo(int total, int cur_page) { + return total - (cur_page - 1) * this.listRow; + } + + public int getFirstNo() { + return this.row_total - (this.page - 1) * this.listRow; + } + + public int getPageTotal() { + return this.page_total; + } + + public void setFirstImage(String firstImage) { + this.firstImage = "\"첫"; + } + + public String getFirstImage() { + if (this.firstImage == null) { + return "[첫 단락]"; + } + return this.firstImage; + } + + public void setLastImage(String lastImage) { + this.lastImage = "\"마지막"; + } + + public String getLastImage() { + if (this.lastImage == null) { + return "[마지막 단락]"; + } + return this.lastImage; + } + + public void setPrevImage(String prevImage) { + this.prevImage = "\"이전단락\""; + } + + public String getPrevImage() { + if (this.prevImage == null) { + return "[이전단락]"; + } + return this.prevImage; + } + + public void setNextImage(String nextImage) { + this.nextImage = "\"다음단락\""; + } + + public String getNextImage() { + if (this.nextImage == null) { + return "[다음단락]"; + } + return this.nextImage; + } +} + diff --git a/src/main/java/egovframework/edosi/egov/helper/UserDetailsHelper.java b/src/main/java/egovframework/edosi/egov/helper/UserDetailsHelper.java new file mode 100644 index 0000000..397441d --- /dev/null +++ b/src/main/java/egovframework/edosi/egov/helper/UserDetailsHelper.java @@ -0,0 +1,41 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.util.EgovUserDetailsHelper + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.rte.fdl.string.EgovObjectUtil + * org.springframework.security.core.Authentication + * org.springframework.security.core.context.SecurityContext + * org.springframework.security.core.context.SecurityContextHolder + */ +package egovframework.edosi.egov.helper; + +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.rte.fdl.string.EgovObjectUtil; +import java.util.List; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; + +public class UserDetailsHelper +extends EgovUserDetailsHelper { + public static Boolean isRole(String roleName) { + SecurityContext context = SecurityContextHolder.getContext(); + Authentication authentication = context.getAuthentication(); + EgovUserDetailsHelper.getAuthorities(); + if (EgovObjectUtil.isNull((Object)authentication) || authentication.getName().equals("roleAnonymous")) { + return Boolean.FALSE; + } + List list = EgovUserDetailsHelper.getAuthorities(); + int i = 0; + while (i < list.size()) { + if (((String)list.get(i)).equals(roleName)) { + return Boolean.TRUE; + } + ++i; + } + return Boolean.FALSE; + } +} + diff --git a/src/main/java/egovframework/edosi/egov/session/CustomBindingListener.java b/src/main/java/egovframework/edosi/egov/session/CustomBindingListener.java new file mode 100644 index 0000000..6c1aec0 --- /dev/null +++ b/src/main/java/egovframework/edosi/egov/session/CustomBindingListener.java @@ -0,0 +1,27 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.egov.session.CustomBindingListener + * javax.servlet.http.HttpSessionBindingEvent + * javax.servlet.http.HttpSessionBindingListener + */ +package egovframework.edosi.egov.session; + +import javax.servlet.http.HttpSessionBindingEvent; +import javax.servlet.http.HttpSessionBindingListener; + +class CustomBindingListener +implements HttpSessionBindingListener { + CustomBindingListener() { + } + + public void valueBound(HttpSessionBindingEvent event) { + System.out.println("BOUND as " + event.getName() + " to " + event.getSession().getId()); + } + + public void valueUnbound(HttpSessionBindingEvent event) { + System.out.println("UNBOUND as " + event.getName() + " to " + event.getSession().getId()); + } +} + diff --git a/src/main/java/egovframework/edosi/egov/session/EdosiSessionBindingListener.java b/src/main/java/egovframework/edosi/egov/session/EdosiSessionBindingListener.java new file mode 100644 index 0000000..1329306 --- /dev/null +++ b/src/main/java/egovframework/edosi/egov/session/EdosiSessionBindingListener.java @@ -0,0 +1,24 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.egov.session.EdosiSessionBindingListener + * javax.servlet.http.HttpSessionBindingEvent + * javax.servlet.http.HttpSessionBindingListener + */ +package egovframework.edosi.egov.session; + +import javax.servlet.http.HttpSessionBindingEvent; +import javax.servlet.http.HttpSessionBindingListener; + +public class EdosiSessionBindingListener +implements HttpSessionBindingListener { + public void valueBound(HttpSessionBindingEvent arg0) { + System.out.println("Session Bound"); + } + + public void valueUnbound(HttpSessionBindingEvent arg0) { + System.out.println("Session Unbound"); + } +} + diff --git a/src/main/java/egovframework/edosi/egov/session/EdosiSessionListener.java b/src/main/java/egovframework/edosi/egov/session/EdosiSessionListener.java new file mode 100644 index 0000000..836154b --- /dev/null +++ b/src/main/java/egovframework/edosi/egov/session/EdosiSessionListener.java @@ -0,0 +1,24 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.egov.session.EdosiSessionListener + * javax.servlet.http.HttpSessionEvent + * javax.servlet.http.HttpSessionListener + */ +package egovframework.edosi.egov.session; + +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionListener; + +public class EdosiSessionListener +implements HttpSessionListener { + public void sessionCreated(HttpSessionEvent arg0) { + System.out.println("sessionCreated"); + } + + public void sessionDestroyed(HttpSessionEvent arg0) { + System.out.println("sessionDestroyed"); + } +} + diff --git a/src/main/java/egovframework/edosi/egov/session/SessionChecker.java b/src/main/java/egovframework/edosi/egov/session/SessionChecker.java new file mode 100644 index 0000000..a8f74d3 --- /dev/null +++ b/src/main/java/egovframework/edosi/egov/session/SessionChecker.java @@ -0,0 +1,20 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.egov.session.CustomBindingListener + * egovframework.edosi.egov.session.SessionChecker + * javax.servlet.http.HttpSession + */ +package egovframework.edosi.egov.session; + +import egovframework.edosi.egov.session.CustomBindingListener; +import javax.servlet.http.HttpSession; + +public class SessionChecker { + public void setSession(HttpSession session) { + System.out.println("세션시작"); + session.setAttribute("listener", (Object)new CustomBindingListener()); + } +} + diff --git a/src/main/java/egovframework/edosi/egov/wrapper/HttpsRequestWrapper.java b/src/main/java/egovframework/edosi/egov/wrapper/HttpsRequestWrapper.java new file mode 100644 index 0000000..2b56d99 --- /dev/null +++ b/src/main/java/egovframework/edosi/egov/wrapper/HttpsRequestWrapper.java @@ -0,0 +1,63 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.egov.wrapper.HttpsRequestWrapper + * javax.servlet.http.Cookie + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletRequestWrapper + * javax.servlet.http.HttpServletResponse + * javax.servlet.http.HttpSession + */ +package egovframework.edosi.egov.wrapper; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +public class HttpsRequestWrapper +extends HttpServletRequestWrapper { + private HttpServletResponse response = null; + + public HttpsRequestWrapper(HttpServletRequest request) { + super(request); + } + + public void setResponse(HttpServletResponse response) { + this.response = response; + } + + public HttpSession getSession() { + HttpSession session = super.getSession(); + this.processSessionCookie(session); + return session; + } + + public HttpSession getSession(boolean create) { + HttpSession session = super.getSession(create); + this.processSessionCookie(session); + return session; + } + + private void processSessionCookie(HttpSession session) { + if (this.response == null || session == null) { + return; + } + Object cookieOverWritten = this.getAttribute("COOKIE_OVERWRITTEN_FLAG"); + if (cookieOverWritten == null && this.isSecure() && this.isRequestedSessionIdFromCookie() && session.isNew()) { + Cookie cookie = new Cookie("JSESSIONID", session.getId()); + cookie.setMaxAge(-1); + String contextPath = this.getContextPath(); + if (contextPath != null && contextPath.length() > 0) { + cookie.setPath(contextPath); + } else { + cookie.setPath("/"); + } + this.response.addCookie(cookie); + this.setAttribute("COOKIE_OVERWRITTEN_FLAG", (Object)"true"); + } + } +} + diff --git a/src/main/java/egovframework/edosi/filter/FileFilter.java b/src/main/java/egovframework/edosi/filter/FileFilter.java new file mode 100644 index 0000000..392e886 --- /dev/null +++ b/src/main/java/egovframework/edosi/filter/FileFilter.java @@ -0,0 +1,106 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.filter.FileFilter + * javax.servlet.Filter + * javax.servlet.FilterChain + * javax.servlet.FilterConfig + * javax.servlet.RequestDispatcher + * javax.servlet.ServletException + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * sutil.MultipartRequest + */ +package egovframework.edosi.filter; + +import java.io.IOException; +import java.util.Enumeration; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import sutil.MultipartRequest; + +public class FileFilter +implements Filter { + private String whiteList; + private String blackList; + private int type = 1; + private int maxSize = 1; + private String infoUrl = "/"; + + public void init(FilterConfig fConfig) throws ServletException { + this.whiteList = fConfig.getInitParameter("fileWhiteList"); + this.blackList = fConfig.getInitParameter("fileBlackList"); + String value = fConfig.getInitParameter("fileMaxSize"); + if (value != null) { + this.maxSize = Integer.parseInt(value); + } + if ((value = fConfig.getInitParameter("fileType")) != null) { + this.type = Integer.parseInt(value); + } + if ((value = fConfig.getInitParameter("fileInfoUrl")) != null) { + this.infoUrl = value; + } + } + + public void destroy() { + } + + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + boolean isAllow = true; + isAllow = this.isFileUploadAllow(request); + if (isAllow) { + chain.doFilter(request, response); + } else { + RequestDispatcher dispatcher = request.getRequestDispatcher(this.infoUrl); + dispatcher.forward(request, response); + } + } + + private boolean isFileUploadAllow(ServletRequest request) { + String contentType = request.getContentType(); + boolean isAllow = true; + if (contentType != null && contentType.startsWith("multipart/form-data")) { + try { + MultipartRequest multi = new MultipartRequest(request, "/", this.maxSize * 1024 * 1024); + Enumeration files = multi.getFileNames(); + while (files.hasMoreElements()) { + String name = (String)files.nextElement(); + String fileName = multi.getFilesystemName(name); + String type = multi.getContentType(name); + String ext = null; + if (fileName == null) continue; + int idx = fileName.lastIndexOf("."); + if (idx != -1 && idx != fileName.length()) { + ext = fileName.substring(idx + 1, fileName.length()); + } + System.out.println("EXT:" + ext); + if (this.type == 1) { + if (ext != null && this.whiteList.lastIndexOf(ext.toLowerCase()) > -1) { + isAllow = true; + continue; + } + isAllow = false; + break; + } + if (this.type != 2) continue; + if (ext != null && this.blackList.lastIndexOf(ext.toLowerCase()) > -1) { + isAllow = false; + break; + } + isAllow = true; + } + } + catch (Exception e) { + System.out.println(e); + } + } + return isAllow; + } +} + diff --git a/src/main/java/egovframework/edosi/filter/HttpsFilter.java b/src/main/java/egovframework/edosi/filter/HttpsFilter.java new file mode 100644 index 0000000..af43821 --- /dev/null +++ b/src/main/java/egovframework/edosi/filter/HttpsFilter.java @@ -0,0 +1,43 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.egov.wrapper.HttpsRequestWrapper + * egovframework.edosi.filter.HttpsFilter + * javax.servlet.Filter + * javax.servlet.FilterChain + * javax.servlet.FilterConfig + * javax.servlet.ServletException + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + */ +package egovframework.edosi.filter; + +import egovframework.edosi.egov.wrapper.HttpsRequestWrapper; +import java.io.IOException; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class HttpsFilter +implements Filter { + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + HttpsRequestWrapper httpsRequest = new HttpsRequestWrapper((HttpServletRequest)request); + httpsRequest.setResponse((HttpServletResponse)response); + chain.doFilter((ServletRequest)httpsRequest, response); + } + + public void destroy() { + } + + public void init(FilterConfig arg0) throws ServletException { + } +} + diff --git a/src/main/java/egovframework/edosi/filter/XssFilter.java b/src/main/java/egovframework/edosi/filter/XssFilter.java new file mode 100644 index 0000000..46259d9 --- /dev/null +++ b/src/main/java/egovframework/edosi/filter/XssFilter.java @@ -0,0 +1,210 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.filter.XssFilter + * javax.servlet.Filter + * javax.servlet.FilterChain + * javax.servlet.FilterConfig + * javax.servlet.RequestDispatcher + * javax.servlet.ServletException + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + */ +package egovframework.edosi.filter; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Enumeration; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; + +public class XssFilter +implements Filter { + private boolean use = false; + private int type = 1; + public static String infoUrl = "/"; + private static final String XSS_REGEXP_01 = "", ""); + value = value.replaceAll("(\\.location|location\\.|onload=|\\.cookie|alert\\(|window\\.open\\(|onmouse|onkey|onclick|view\\-source\\:)+", "/"); + } else if (this.type == 2) { + value = value.replaceAll("<", "<").replaceAll(">", ">"); + value = value.replaceAll("\\(", "(").replaceAll("\\)", ")"); + value = value.replaceAll("'", "'"); + value = value.replaceAll("eval\\((.*)\\)", ""); + value = value.replaceAll("[\\\"\\'][\\s]*javascript:(.*)[\\\"\\']", "\"\""); + value = value.replaceAll("script", ""); + } + return value; + } +} + diff --git a/src/main/java/egovframework/edosi/resource/EdosiConsts.java b/src/main/java/egovframework/edosi/resource/EdosiConsts.java new file mode 100644 index 0000000..30a0eb3 --- /dev/null +++ b/src/main/java/egovframework/edosi/resource/EdosiConsts.java @@ -0,0 +1,37 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.resource.EdosiConsts + */ +package egovframework.edosi.resource; + +public class EdosiConsts { + private final String Key; + private final String DefaultValue; + public static final EdosiConsts RealNameId = new EdosiConsts("realname.id"); + public static final EdosiConsts RealNamePw = new EdosiConsts("realname.pw"); + public static final EdosiConsts IpinId = new EdosiConsts("ipin.id"); + public static final EdosiConsts IpinPw = new EdosiConsts("ipin.pw"); + public static final EdosiConsts DaumLocalKey = new EdosiConsts("daum.local.key"); + public static final EdosiConsts DaumMapKey = new EdosiConsts("daum.map.key"); + public static final EdosiConsts EncyptPasswd = new EdosiConsts("encrypt.passwd"); + + private EdosiConsts(String key) { + this(key, null); + } + + private EdosiConsts(String key, String default_value) { + this.Key = key; + this.DefaultValue = default_value; + } + + public String getKey() { + return this.Key; + } + + public String getDefaultValue() { + return this.DefaultValue; + } +} + diff --git a/src/main/java/egovframework/edosi/resource/EdosiResource.java b/src/main/java/egovframework/edosi/resource/EdosiResource.java new file mode 100644 index 0000000..f024eda --- /dev/null +++ b/src/main/java/egovframework/edosi/resource/EdosiResource.java @@ -0,0 +1,102 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.resource.EdosiConsts + * egovframework.edosi.resource.EdosiResource + * org.apache.commons.io.IOUtils + */ +package egovframework.edosi.resource; + +import egovframework.edosi.resource.EdosiConsts; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.Properties; +import org.apache.commons.io.IOUtils; + +public class EdosiResource { + private static final EdosiResource instance = new EdosiResource(); + private static final String P_NAME = "/resource.properties"; + private Properties props; + + private EdosiResource() { + block5: { + InputStream is = null; + try { + try { + is = this.getClass().getResourceAsStream(P_NAME); + this.props = new Properties(); + this.props.load(is); + } + catch (Exception e) { + e.printStackTrace(); + IOUtils.closeQuietly((InputStream)is); + break block5; + } + } + catch (Throwable throwable) { + IOUtils.closeQuietly(is); + throw throwable; + } + IOUtils.closeQuietly((InputStream)is); + } + } + + private EdosiResource(String filePath) { + InputStream is = null; + try { + try { + is = new FileInputStream(new File(filePath)); + this.props = new Properties(); + this.props.load(is); + } + catch (Exception e) { + e.printStackTrace(); + try { + if (is != null) { + is.close(); + } + } + catch (Exception ee) { + ee.printStackTrace(); + } + } + } + finally { + try { + if (is != null) { + is.close(); + } + } + catch (Exception ee) { + ee.printStackTrace(); + } + } + } + + public static EdosiResource getInstance() { + return instance; + } + + public static EdosiResource getInstance(String filePath) { + return instance; + } + + public String getValue(EdosiConsts res) { + String val = null; + val = this.props != null && (val = this.props.getProperty(res.getKey())) != null ? this.props.getProperty(res.getKey()) : res.getDefaultValue(); + return val; + } + + public String getValue(String key, String defaultValue) { + String val = null; + val = this.props != null && (val = this.props.getProperty(key)) != null ? this.props.getProperty(key) : defaultValue; + return val; + } + + public String getValue(String key) { + return this.getValue(key, ""); + } +} + diff --git a/src/main/java/egovframework/edosi/view/EdosiExcelVO.java b/src/main/java/egovframework/edosi/view/EdosiExcelVO.java new file mode 100644 index 0000000..53150c9 --- /dev/null +++ b/src/main/java/egovframework/edosi/view/EdosiExcelVO.java @@ -0,0 +1,33 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.view.EdosiExcelVO + */ +package egovframework.edosi.view; + +import java.io.Serializable; + +public class EdosiExcelVO +implements Serializable { + private static final long serialVersionUID = -8579485332754954904L; + private String name; + private String addr; + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAddr() { + return this.addr; + } + + public void setAddr(String addr) { + this.addr = addr; + } +} + diff --git a/src/main/java/egovframework/edosi/view/EdosiExcelView.java b/src/main/java/egovframework/edosi/view/EdosiExcelView.java new file mode 100644 index 0000000..02d1e41 --- /dev/null +++ b/src/main/java/egovframework/edosi/view/EdosiExcelView.java @@ -0,0 +1,66 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.edosi.view.EdosiExcelVO + * egovframework.edosi.view.EdosiExcelView + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.apache.poi.hssf.usermodel.HSSFCell + * org.apache.poi.hssf.usermodel.HSSFSheet + * org.apache.poi.hssf.usermodel.HSSFWorkbook + * org.springframework.web.servlet.view.document.AbstractExcelView + */ +package egovframework.edosi.view; + +import egovframework.edosi.view.EdosiExcelVO; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.springframework.web.servlet.view.document.AbstractExcelView; + +public class EdosiExcelView +extends AbstractExcelView { + protected void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + List list = (List)model.get("test"); + response.setHeader("Content-Disposition", "attachment;fileName=\"파일명.xls\";"); + HSSFSheet sheet = workbook.createSheet("예약통계"); + int row = 0; + sheet.setDefaultColumnWidth((short)12); + row = this.setFirstCell(row, sheet); + Iterator it = list.iterator(); + EdosiExcelVO bean = null; + while (it.hasNext()) { + bean = (EdosiExcelVO)it.next(); + row = this.setCell(row, sheet, bean); + } + } + + private int setFirstCell(int row, HSSFSheet sheet) { + HSSFCell cell = this.getCell(sheet, row, 0); + this.setText(cell, "일자"); + cell = this.getCell(sheet, row, 1); + this.setText(cell, "예약건수"); + cell = this.getCell(sheet, row, 2); + this.setText(cell, "취소건수"); + cell = this.getCell(sheet, row, 3); + this.setText(cell, "완료건수"); + cell = this.getCell(sheet, row, 4); + this.setText(cell, "유효예약률"); + return ++row; + } + + private int setCell(int row, HSSFSheet sheet, EdosiExcelVO bean) { + HSSFCell cell = this.getCell(sheet, row, 0); + this.setText(cell, bean.getName()); + cell = this.getCell(sheet, row, 1); + this.setText(cell, bean.getAddr()); + return ++row; + } +} + diff --git a/src/main/java/egovframework/edosi/web/TemplateController.java b/src/main/java/egovframework/edosi/web/TemplateController.java new file mode 100644 index 0000000..24e6fe5 --- /dev/null +++ b/src/main/java/egovframework/edosi/web/TemplateController.java @@ -0,0 +1,85 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.log.service.HmsLogService + * egovframework.cms.log.vo.HmsLogVO + * egovframework.dms.prj.service.DmsPrjService + * egovframework.dms.prj.vo.DmsPrjVO + * egovframework.edosi.web.TemplateController + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * org.springframework.stereotype.Controller + * org.springframework.web.bind.annotation.PathVariable + * org.springframework.web.bind.annotation.RequestMapping + */ +package egovframework.edosi.web; + +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.dms.prj.service.DmsPrjService; +import egovframework.dms.prj.vo.DmsPrjVO; +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class TemplateController { + @Resource(name="hmsLogService") + private HmsLogService hmsLogService; + @Resource(name="dmsPrjService") + private DmsPrjService dmsPrjService; + + @RequestMapping(value={"/{template}/**/**/*.static", "/{template}/**/**/*.motion"}) + public String getTemplateUrl(HttpServletRequest request, @PathVariable String template) throws Exception { + String ext; + String requestUri = request.getRequestURI(); + String prjSeq = request.getParameter("prjSeq"); + String moveDetail = request.getParameter("moveDetail"); + try { + if (prjSeq != null && moveDetail != null) { + DmsPrjVO dmsPrjVO = new DmsPrjVO(); + dmsPrjVO.setPrjSeq(prjSeq); + dmsPrjVO = this.dmsPrjService.selectDmsPrj(dmsPrjVO); + Map logoSession = (Map)request.getSession().getAttribute("env"); + logoSession.put("CUS001001", dmsPrjVO.getAtchFileId()); + request.getSession().setAttribute("data", (Object)logoSession); + HashMap prjInfo = new HashMap(); + prjInfo.put("prjSeq", prjSeq); + prjInfo.put("prjNm", dmsPrjVO.getPrjNm()); + prjInfo.put("hdbStsA", request.getParameter("hdbStsA")); + prjInfo.put("hdbStsB", request.getParameter("hdbStsB")); + prjInfo.put("hdbStsC", request.getParameter("hdbStsC")); + request.getSession().setAttribute("prjInfo", prjInfo); + } + } + catch (Exception e) { + e.printStackTrace(); + } + if (requestUri.indexOf(".motion") > -1) { + ext = ".jsp"; + requestUri = requestUri.replaceAll(".motion", ""); + } else { + ext = ".html"; + requestUri = requestUri.replaceAll(".static", ""); + } + int startLoc = template.length() + 1; + String currentUri = String.valueOf(requestUri.substring(startLoc += request.getContextPath().length() > 0 ? request.getContextPath().length() : 0, requestUri.length())) + ext; + request.getSession().setAttribute("CURRENT_URI", (Object)currentUri); + String templateView = "/template." + template; + System.out.println("#TEMPLATE VIEW : " + templateView + " ### currentUri : " + currentUri); + HmsLogVO logVO = new HmsLogVO(); + logVO.setIp(request.getRemoteAddr()); + logVO.setLogStatusType(HmsLogVO.TYPE_PATH); + logVO.setLogObject(""); + logVO.setLogMessage(currentUri); + logVO.setSeq(""); + this.hmsLogService.insertHmsLog(logVO, null); + return templateView; + } +} + diff --git a/src/main/java/egovframework/main/MainGlobals.java b/src/main/java/egovframework/main/MainGlobals.java new file mode 100644 index 0000000..a9aa8ee --- /dev/null +++ b/src/main/java/egovframework/main/MainGlobals.java @@ -0,0 +1,74 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.service.EgovProperties + * egovframework.main.MainGlobals + */ +package egovframework.main; + +import egovframework.com.cmm.service.EgovProperties; + +public class MainGlobals { + public static final String ORG_KEY = EgovProperties.getProperty((String)"Globals.OrgKey"); + public static final String VERSION = EgovProperties.getProperty((String)"Globals.Version"); + public static final String ORG_NM = EgovProperties.getProperty((String)"Globals.OrgNm"); + public static final String ORG_CODE = EgovProperties.getProperty((String)"Globals.OrgCode"); + public static final String AREA_GUBUN1 = EgovProperties.getProperty((String)"Globals.AreaGubun1"); + public static final String AREA_GUBUN2 = EgovProperties.getProperty((String)"Globals.AreaGubun2"); + public static final String AREA_GUBUN3 = EgovProperties.getProperty((String)"Globals.AreaGubun3"); + public static final String TOWN_MASTER_NM = EgovProperties.getProperty((String)"Globals.TownMasterNm"); + public static final String ACCESS_IP = EgovProperties.getProperty((String)"Globals.AccessIp"); + public static final String SITE_TITLE = EgovProperties.getProperty((String)"Globals.SiteTitle"); + public static final String MOBILE_START_PAGE = EgovProperties.getProperty((String)"Globals.MobileStartPage"); + public static final String ONNARA_XML_TYPE = EgovProperties.getProperty((String)"ONNARA_XML_TYPE"); + public static final String PUSH_URL = EgovProperties.getProperty((String)"PushUrl"); + public static final String MENU_DOC = EgovProperties.getProperty((String)"MENU.DOC"); + public static final String MENU_DOC_SEND = EgovProperties.getProperty((String)"MENU.DOC.SEND"); + public static final String MENU_DOC_RECV = EgovProperties.getProperty((String)"MENU.DOC.RECV"); + public static final String MENU_DOC_SEND2 = EgovProperties.getProperty((String)"MENU.DOC.SEND2"); + public static final String MENU_DOC_RECV2 = EgovProperties.getProperty((String)"MENU.DOC.RECV2"); + public static final String MENU_FIELD = EgovProperties.getProperty((String)"MENU.FIELD"); + public static final String MENU_FIELD1 = EgovProperties.getProperty((String)"MENU.FIELD1"); + public static final String MENU_FIELD2 = EgovProperties.getProperty((String)"MENU.FIELD2"); + public static final String MENU_FIELD3 = EgovProperties.getProperty((String)"MENU.FIELD3"); + public static final String MENU_MEET = EgovProperties.getProperty((String)"MENU.MEET"); + public static final String MENU_COOP = EgovProperties.getProperty((String)"MENU.COOP"); + public static final String MENU_COOP_RECV = EgovProperties.getProperty((String)"MENU.COOP.RECV"); + public static final String MENU_COOP_SEND = EgovProperties.getProperty((String)"MENU.COOP.SEND"); + public static final String MENU_ALLIM = EgovProperties.getProperty((String)"MENU.ALLIM"); + public static final String MENU_STT = EgovProperties.getProperty((String)"MENU.STT"); + public static final String MENU_STT_CONNECT = EgovProperties.getProperty((String)"MENU.STT.CONNECT"); + public static final String MENU_STT_CONNSTATIC = EgovProperties.getProperty((String)"MENU.STT.CONNSTATIC"); + public static final String MENU_STT_SENDSTATIC = EgovProperties.getProperty((String)"MENU.STT.SENDSTATIC"); + public static final String MENU_STT_SERVICE = EgovProperties.getProperty((String)"MENU.STT.SERVICE"); + public static final String MENU_STT_USECONN = EgovProperties.getProperty((String)"MENU.STT.USECONN"); + public static final String MENU_STT_COOP = EgovProperties.getProperty((String)"MENU.STT.COOP"); + public static final String MENU_STT_NEWS = EgovProperties.getProperty((String)"MENU.STT.NEWS"); + public static final String MENU_STT_PROPOSAL = EgovProperties.getProperty((String)"MENU.STT.PROPOSAL"); + public static final String MENU_STT_MAP = EgovProperties.getProperty((String)"MENU.STT.MAP"); + public static final String MENU_MEMBER = EgovProperties.getProperty((String)"MENU.MEMBER"); + public static final String MENU_MEMBER_INFO = EgovProperties.getProperty((String)"MENU.MEMBER.INFO"); + public static final String MENU_MEMBER_INFO2 = EgovProperties.getProperty((String)"MENU.MEMBER.INFO2"); + public static final String MENU_MEMBER_DEPT = EgovProperties.getProperty((String)"MENU.MEMBER.DEPT"); + public static final String MENU_MEMBER_ORG = EgovProperties.getProperty((String)"MENU.MEMBER.ORG"); + public static final String MENU_MEMBER_TWORG = EgovProperties.getProperty((String)"MENU.MEMBER.TWORG"); + public static final String MENU_AUTH = EgovProperties.getProperty((String)"MENU.AUTH"); + public static final String MENU_GALLERY = EgovProperties.getProperty((String)"MENU.GALLERY"); + public static final String MENU_OPN = EgovProperties.getProperty((String)"MENU.OPN"); + public static final String MENU_AUTH_GROUP = EgovProperties.getProperty((String)"MENU.AUTH.GROUP"); + public static final String MENU_AUTH_GROUP_USER = EgovProperties.getProperty((String)"MENU.AUTH.GROUP.USER"); + public static final String MENU_AUTH_GROUP_MEMBER = EgovProperties.getProperty((String)"MENU.AUTH.GROUP.MEMBER"); + public static final String MENU_MYPAGE = EgovProperties.getProperty((String)"MENU.MYPAGE"); + public static final String MENU_BOARD_PDS = EgovProperties.getProperty((String)"MENU.BOARD.PDS"); + public static final String MENU_BOARD_PDS2 = EgovProperties.getProperty((String)"MENU.BOARD.PDS2"); + public static final String MENU_LINK_GOV30 = EgovProperties.getProperty((String)"MENU.LINK.GOV30"); + public static final String MENU_LINK_HOME = EgovProperties.getProperty((String)"MENU.LINK.HOME"); + public static final String MENU_LINK_BLOG = EgovProperties.getProperty((String)"MENU.LINK.BLOG"); + public static final String MENU_PRJ = EgovProperties.getProperty((String)"MENU.PRJ"); + public static final String MENU_USER = EgovProperties.getProperty((String)"MENU.USER"); + public static final String MENU_HDB = EgovProperties.getProperty((String)"MENU.HDB"); + public static final String MENU_DTB = EgovProperties.getProperty((String)"MENU.DTB"); + public static final String MENU_BOARD_STT = EgovProperties.getProperty((String)"MENU.BOARD.STT"); +} + diff --git a/src/main/java/egovframework/main/service/EdosiLoginDAO.java b/src/main/java/egovframework/main/service/EdosiLoginDAO.java new file mode 100644 index 0000000..04b8916 --- /dev/null +++ b/src/main/java/egovframework/main/service/EdosiLoginDAO.java @@ -0,0 +1,23 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.impl.EgovComAbstractDAO + * egovframework.main.service.EdosiLoginDAO + * org.springframework.stereotype.Repository + */ +package egovframework.main.service; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import org.springframework.stereotype.Repository; + +@Repository(value="edosiLoginDAO") +public class EdosiLoginDAO +extends EgovComAbstractDAO { + public LoginVO getLoginVO(LoginVO vo) throws Exception { + return (LoginVO)this.select("loginDAO.getLoginVO", (Object)vo); + } +} + diff --git a/src/main/java/egovframework/main/service/EdosiLoginService.java b/src/main/java/egovframework/main/service/EdosiLoginService.java new file mode 100644 index 0000000..d227c01 --- /dev/null +++ b/src/main/java/egovframework/main/service/EdosiLoginService.java @@ -0,0 +1,27 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.main.service.EdosiLoginDAO + * egovframework.main.service.EdosiLoginService + * javax.annotation.Resource + * org.springframework.stereotype.Service + */ +package egovframework.main.service; + +import egovframework.com.cmm.LoginVO; +import egovframework.main.service.EdosiLoginDAO; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; + +@Service(value="edosiLoginService") +public class EdosiLoginService { + @Resource(name="edosiLoginDAO") + private EdosiLoginDAO loginDAO; + + public LoginVO getLoginVO(LoginVO vo) throws Exception { + return this.loginDAO.getLoginVO(vo); + } +} + diff --git a/src/main/java/egovframework/main/service/EgovSessionMapping.java b/src/main/java/egovframework/main/service/EgovSessionMapping.java new file mode 100644 index 0000000..f28cf59 --- /dev/null +++ b/src/main/java/egovframework/main/service/EgovSessionMapping.java @@ -0,0 +1,50 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.main.service.EgovSessionMapping + * egovframework.rte.fdl.security.userdetails.EgovUserDetails + * egovframework.rte.fdl.security.userdetails.jdbc.EgovUsersByUsernameMapping + */ +package egovframework.main.service; + +import egovframework.com.cmm.LoginVO; +import egovframework.rte.fdl.security.userdetails.EgovUserDetails; +import egovframework.rte.fdl.security.userdetails.jdbc.EgovUsersByUsernameMapping; +import java.sql.ResultSet; +import java.sql.SQLException; +import javax.sql.DataSource; + +public class EgovSessionMapping +extends EgovUsersByUsernameMapping { + public EgovSessionMapping(DataSource ds, String usersByUsernameQuery) { + super(ds, usersByUsernameQuery); + } + + protected EgovUserDetails mapRow(ResultSet rs, int rownum) throws SQLException { + this.logger.debug((Object)"## EgovUsersByUsernameMapping mapRow ##"); + String strUserId = rs.getString("user_id"); + String strPassWord = rs.getString("password"); + boolean strEnabled = rs.getBoolean("enabled"); + String strUserNm = rs.getString("user_nm"); + String strUserSe = rs.getString("user_se"); + String strUserEmail = rs.getString("user_email"); + String strOrgnztId = rs.getString("orgnzt_id"); + String strUniqId = rs.getString("esntl_id"); + String strOrgnztNm = rs.getString("orgnzt_nm"); + LoginVO loginVO = new LoginVO(); + loginVO.setId(strUserId); + loginVO.setPassword(strPassWord); + loginVO.setName(strUserNm); + loginVO.setUserSe(strUserSe); + loginVO.setEmail(strUserEmail); + loginVO.setOrgnztId(strOrgnztId); + loginVO.setUniqId(strUniqId); + loginVO.setOrgnztNm(strOrgnztNm); + loginVO.setTel(rs.getString("tel")); + loginVO.setPositionNm(rs.getString("position_nm")); + return new EgovUserDetails(strUserId, strPassWord, strEnabled, (Object)loginVO); + } +} + diff --git a/src/main/java/egovframework/main/web/LoginController.java b/src/main/java/egovframework/main/web/LoginController.java new file mode 100644 index 0000000..b9f7bad --- /dev/null +++ b/src/main/java/egovframework/main/web/LoginController.java @@ -0,0 +1,282 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.cms.log.service.HmsLogService + * egovframework.cms.log.vo.HmsLogVO + * egovframework.cms.user.service.HmsUserService + * egovframework.com.cmm.EgovMessageSource + * egovframework.com.cmm.LoginVO + * egovframework.com.cmm.service.CmmnDetailCode + * egovframework.com.utl.sim.service.EgovClntInfo + * egovframework.common.dwr.DwrCommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.main.MainGlobals + * egovframework.main.service.EdosiLoginService + * egovframework.main.web.LoginController + * egovframework.main.web.RequestWrapperForSecurity2 + * egovframework.rte.fdl.cmmn.trace.LeaveaTrace + * egovframework.rte.fdl.property.EgovPropertyService + * javax.annotation.Resource + * javax.servlet.ServletContext + * javax.servlet.ServletRequest + * javax.servlet.ServletResponse + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter + * org.springframework.stereotype.Controller + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.ModelAttribute + * org.springframework.web.bind.annotation.RequestMapping + * org.springframework.web.context.WebApplicationContext + * org.springframework.web.context.support.WebApplicationContextUtils + * sayit.crypto.EdosiCryptoUtil + */ +package egovframework.main.web; + +import egovframework.cms.log.service.HmsLogService; +import egovframework.cms.log.vo.HmsLogVO; +import egovframework.cms.user.service.HmsUserService; +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.CmmnDetailCode; +import egovframework.com.utl.sim.service.EgovClntInfo; +import egovframework.common.dwr.DwrCommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.main.MainGlobals; +import egovframework.main.service.EdosiLoginService; +import egovframework.main.web.RequestWrapperForSecurity2; +import egovframework.rte.fdl.cmmn.trace.LeaveaTrace; +import egovframework.rte.fdl.property.EgovPropertyService; +import java.net.URLDecoder; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import javax.annotation.Resource; +import javax.servlet.ServletContext; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; +import sayit.crypto.EdosiCryptoUtil; + +@Controller +public class LoginController { + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + @Resource(name="propertiesService") + protected EgovPropertyService propertiesService; + @Resource(name="leaveaTrace") + LeaveaTrace leaveaTrace; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + @Resource(name="hmsUserService") + private HmsUserService hmsUserService; + @Resource(name="hmsLogService") + private HmsLogService hmsLogService; + @Resource(name="edosiLoginService") + private EdosiLoginService edosiLoginService; + @Resource(name="codeResource") + private CodeResource codeResource; + + @RequestMapping(value={"/login.do"}) + public String loginAdmin(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + String isMobile = request.getParameter("isMobile"); + String viewName = ""; + String userAgent = request.getHeader("user-agent"); + String referer = request.getHeader("referer"); + String loginPage = "/main/login"; + List list = this.codeResource.getCodeList("CUS001"); + HashMap data = new HashMap(); + int i = 0; + while (i < list.size()) { + data.put(((CmmnDetailCode)list.get(i)).getCode(), ((CmmnDetailCode)list.get(i)).getCodeDc()); + ++i; + } + request.getSession().setAttribute("env", data); + if (UserDetailsHelper.isAuthenticated().booleanValue()) { + if (userAgent != null && userAgent.indexOf("Android") > 0 || "1".equals(isMobile) || userAgent.indexOf("iPhone") > 0 || userAgent.indexOf("iPad") > 0 || userAgent.indexOf("iPod") > 0) { + String returnUrl = request.getParameter("retUrl"); + System.out.println("returnUrl : " + returnUrl); + if (returnUrl != null && !"".equals(returnUrl)) { + try { + returnUrl = URLDecoder.decode(returnUrl, "utf-8"); + returnUrl = returnUrl.replace("amp;", ""); + return "redirect:" + returnUrl; + } + catch (Exception e) { + e.printStackTrace(); + } + } + return "redirect:/mobile/main.do"; + } + return "redirect:/main.do"; + } + if (userAgent != null && userAgent.indexOf("Android") > 0 || "1".equals(isMobile) || userAgent.indexOf("iPhone") > 0 || userAgent.indexOf("iPad") > 0 || userAgent.indexOf("iPod") > 0) { + String isLogout = (String)request.getSession().getAttribute("isLogout"); + request.getSession().removeAttribute("isLogout"); + request.getSession().invalidate(); + int i2 = 0; + while (i2 < list.size()) { + data.put(((CmmnDetailCode)list.get(i2)).getCode(), ((CmmnDetailCode)list.get(i2)).getCodeDc()); + ++i2; + } + request.getSession().setAttribute("env", data); + model.addAttribute("isLogout", (Object)isLogout); + loginPage = "/mobile/login"; + } + return loginPage; + } + + @RequestMapping(value={"/actionLoginSys.do"}) + public String actionLoginAdmin(@ModelAttribute(value="loginVO") LoginVO loginVO, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + String returnUrl = request.getParameter("retUrl"); + String deptCd = request.getParameter("deptCd"); + String requestIp = request.getRemoteAddr(); + String permitIp = MainGlobals.ACCESS_IP; + String isMobile = request.getParameter("isMobile"); + request.getSession().setAttribute("isMobile", (Object)isMobile); + String viewName = ""; + String userAgent = request.getHeader("user-agent"); + try { + if (!permitIp.isEmpty() && requestIp.indexOf(permitIp) < 0 && requestIp.indexOf("122") < 0 && requestIp.indexOf("0") < 0 && requestIp.indexOf("127") < 0) { + DwrCommonService.alertAndGo((HttpServletResponse)response, (String)"유효하지 않은 접속 경로입니다.", (String)"/loginSys.do"); + return null; + } + } + catch (Exception e) { + e.printStackTrace(); + } + if (returnUrl != null && !"".equals(returnUrl)) { + returnUrl = returnUrl.replace("amp;", ""); + request.getSession().setAttribute("returnUrlParam", (Object)returnUrl.substring(returnUrl.indexOf("?"), returnUrl.length())); + } + if (loginVO.getId() == null || loginVO.getId().equals("")) { + if (userAgent != null && userAgent.indexOf("Android") > 0 || "1".equals(isMobile)) { + request.getSession().setAttribute("isLogout", (Object)"Y"); + request.getSession().setAttribute("invalidUser", (Object)"Y"); + return "/mobile/login"; + } + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)"아이디를 입력하세요."); + return null; + } + if (loginVO.getPassword() == null || loginVO.getPassword().equals("")) { + if (userAgent != null && userAgent.indexOf("Android") > 0 || "1".equals(isMobile)) { + request.getSession().setAttribute("isLogout", (Object)"Y"); + request.getSession().setAttribute("invalidUser", (Object)"Y"); + return "/mobile/login"; + } + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)"비밀번호를 입력하세요."); + return null; + } + try { + EdosiCryptoUtil eu1 = EdosiCryptoUtil.getInstance(); + loginVO.setPassword(eu1.encrypt(loginVO.getPassword())); + loginVO = this.edosiLoginService.getLoginVO(loginVO); + } + catch (Exception e) { + e.printStackTrace(); + loginVO = null; + } + if (loginVO == null) { + if (userAgent != null && userAgent.indexOf("Android") > 0 || "1".equals(isMobile)) { + request.getSession().setAttribute("isLogout", (Object)"Y"); + request.getSession().setAttribute("invalidUser", (Object)"Y"); + } else { + DwrCommonService.alertAndBack((HttpServletResponse)response, (String)"아이디와 비밀번호가 일치하지 않습니다."); + return null; + } + } + String userIp = EgovClntInfo.getClntIP((HttpServletRequest)request); + UsernamePasswordAuthenticationFilter springSecurity = null; + WebApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext((ServletContext)request.getSession().getServletContext()); + Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class); + if (beans.size() <= 0) { + throw new IllegalStateException("No AuthenticationProcessingFilter"); + } + springSecurity = (UsernamePasswordAuthenticationFilter)beans.values().toArray()[0]; + springSecurity.setContinueChainBeforeSuccessfulAuthentication(false); + springSecurity.doFilter((ServletRequest)new RequestWrapperForSecurity2(request, String.valueOf(loginVO.getUserSe()) + loginVO.getId(), loginVO.getId()), (ServletResponse)response, null); + return "forward:/main.do"; + } + + @RequestMapping(value={"/actionLoginUser.do"}) + public String actionLoginUser(HttpServletRequest request) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + String returnUrl = "/main.do"; + String isMobile = (String)request.getSession().getAttribute("isMobile"); + String userAgent = request.getHeader("user-agent"); + if (userAgent != null && userAgent.indexOf("Android") > 0 || "1".equals(isMobile) || userAgent.indexOf("iPhone") > 0 || userAgent.indexOf("iPad") > 0 || userAgent.indexOf("iPod") > 0) { + request.getSession().setAttribute("isLogout", (Object)"Y"); + request.getSession().setAttribute("invalidUser", (Object)"Y"); + returnUrl = "/mobile/main.do"; + } + if ("ADM".equals(loginVO.getUserSe())) { + request.getSession().setAttribute("loginType", (Object)"admin"); + returnUrl = "/sysMain.do"; + } else { + request.getSession().setAttribute("loginType", (Object)"user"); + } + request.getSession().setAttribute("loginVO", (Object)loginVO); + HmsLogVO logVO = new HmsLogVO(); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_LOGIN); + logVO.setIp(request.getRemoteHost()); + logVO.setLogObject("WEB LOGIN"); + logVO.setLogMessage("Web 로그인 하였습니다."); + this.hmsLogService.insertHmsLog(logVO, null); + return "redirect:" + returnUrl; + } + + @RequestMapping(value={"/actionLogout2.do"}) + public String actionLogout(HttpServletRequest request, ModelMap model) throws Exception { + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + String isMobile = (String)request.getSession().getAttribute("isMobile"); + try { + if (loginVO != null) { + HmsLogVO logVO = new HmsLogVO(); + logVO.setUserId(loginVO.getId()); + logVO.setUserNm(loginVO.getName()); + logVO.setLogStatusType(HmsLogVO.TYPE_LOGOUT); + logVO.setIp(request.getRemoteHost()); + if ("1".equals(isMobile)) { + logVO.setLogObject("MOBILE LOGOUT"); + logVO.setLogMessage("App 로그아웃 하였습니다."); + } else { + logVO.setLogObject("WEB LOGOUT"); + logVO.setLogMessage("Web 로그아웃 하였습니다."); + } + this.hmsLogService.insertHmsLog(logVO, null); + } + request.getSession().invalidate(); + String isLogout = request.getParameter("isLogout"); + System.out.println(isLogout); + if (isLogout != null) { + request.getSession().setAttribute("isLogout", (Object)isLogout); + return "redirect:/login.do?isMobile=1"; + } + } + catch (Exception e) { + e.printStackTrace(); + } + return "redirect:/j_spring_security_logout"; + } + + @RequestMapping(value={"/getEncKey.do"}) + public String getEncKey(HttpServletRequest request, HttpServletResponse response) { + String id = request.getSession().getId(); + DwrCommonService.writeMessage((HttpServletResponse)response, (String)"text/html; charset=utf-8", (String)id); + return null; + } +} + diff --git a/src/main/java/egovframework/main/web/MainController.java b/src/main/java/egovframework/main/web/MainController.java new file mode 100644 index 0000000..5a58e02 --- /dev/null +++ b/src/main/java/egovframework/main/web/MainController.java @@ -0,0 +1,92 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.com.cmm.LoginVO + * egovframework.common.dwr.DwrCommonService + * egovframework.common.service.CommonService + * egovframework.edosi.common.code.CodeResource + * egovframework.edosi.egov.helper.UserDetailsHelper + * egovframework.main.web.MainController + * egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper + * javax.annotation.Resource + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletResponse + * org.springframework.stereotype.Controller + * org.springframework.ui.ModelMap + * org.springframework.web.bind.annotation.RequestMapping + */ +package egovframework.main.web; + +import egovframework.com.cmm.LoginVO; +import egovframework.common.dwr.DwrCommonService; +import egovframework.common.service.CommonService; +import egovframework.edosi.common.code.CodeResource; +import egovframework.edosi.egov.helper.UserDetailsHelper; +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import java.text.SimpleDateFormat; +import java.util.List; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class MainController { + @Resource(name="commonService") + private CommonService commonService; + @Resource(name="codeResource") + private CodeResource codeResource; + @Resource(name="dwrCommonService") + private DwrCommonService dwrCommonService; + private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + @RequestMapping(value={"/main.do"}) + public String main(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = "main/main"; + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + List authPrjList = this.dwrCommonService.userAuthPrjList(loginVO.getId()); + request.getSession().setAttribute("sessionPrjList", (Object)authPrjList); + return viewName; + } + + @RequestMapping(value={"/mobile/main.do"}) + public String mobileMain(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + String viewName = "mobile/main"; + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + List authPrjList = this.dwrCommonService.userAuthPrjList(loginVO.getId()); + request.getSession().setAttribute("sessionPrjList", (Object)authPrjList); + return viewName; + } + + @RequestMapping(value={"/sysMain.do"}) + public String sysMain(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + if (!UserDetailsHelper.isAuthenticated().booleanValue()) { + return "cmm/sessionError"; + } + LoginVO loginVO = (LoginVO)UserDetailsHelper.getAuthenticatedUser(); + return "redirect:/sys/contents/sys/prj/01/prj.01.001.motion"; + } + + @RequestMapping(value={"/intro.do"}) + public String intro(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("loginVO", (Object)loginVO); + String startPage = "main/intro"; + String userAgent = request.getHeader("user-agent"); + if (userAgent != null && userAgent.indexOf("Android") > 0) { + startPage = "mobile/main"; + return startPage; + } + return startPage; + } +} + diff --git a/src/main/java/egovframework/main/web/RequestWrapperForSecurity2.java b/src/main/java/egovframework/main/web/RequestWrapperForSecurity2.java new file mode 100644 index 0000000..8d7cb01 --- /dev/null +++ b/src/main/java/egovframework/main/web/RequestWrapperForSecurity2.java @@ -0,0 +1,39 @@ +/* + * Decompiled with CFR 0.152. + * + * Could not load the following classes: + * egovframework.main.web.RequestWrapperForSecurity2 + * javax.servlet.http.HttpServletRequest + * javax.servlet.http.HttpServletRequestWrapper + */ +package egovframework.main.web; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +public class RequestWrapperForSecurity2 +extends HttpServletRequestWrapper { + private String username = null; + private String password = null; + + public RequestWrapperForSecurity2(HttpServletRequest request, String username, String password) { + super(request); + this.username = username; + this.password = password; + } + + public String getRequestURI() { + return String.valueOf(((HttpServletRequest)super.getRequest()).getContextPath()) + "/j_spring_security_check"; + } + + public String getParameter(String name) { + if (name.equals("j_username")) { + return this.username; + } + if (name.equals("j_password")) { + return this.password; + } + return super.getParameter(name); + } +} + diff --git a/src/main/java/log/QueryLoggingInterceptor.java b/src/main/java/log/QueryLoggingInterceptor.java new file mode 100644 index 0000000..07348fc --- /dev/null +++ b/src/main/java/log/QueryLoggingInterceptor.java @@ -0,0 +1,33 @@ +package log; + +import org.aopalliance.intercept.MethodInterceptor; +import org.aopalliance.intercept.MethodInvocation; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.Arrays; + +public class QueryLoggingInterceptor implements MethodInterceptor { + + private static final Logger log = LogManager.getLogger(QueryLoggingInterceptor.class); + + @Override + public Object invoke(MethodInvocation invocation) throws Throwable { + + String className = invocation.getMethod().getDeclaringClass().getSimpleName(); + String methodName = invocation.getMethod().getName(); + + // 파라미터 + Object[] args = invocation.getArguments(); + String params = Arrays.toString(args); + + log.debug("▼▼▼ [DAO Method Called] ====================================="); + log.debug("DAO.Method : {}", className + "." + methodName); + + try { + return invocation.proceed(); + } finally { + log.debug("▲▲▲ [DAO Method Finished] ==================================="); + } + } +} diff --git a/src/main/resources/bms.properties b/src/main/resources/bms.properties new file mode 100644 index 0000000..0bf21a3 --- /dev/null +++ b/src/main/resources/bms.properties @@ -0,0 +1,45 @@ +#===================================================== +#\uc628\ub098\ub77c \uc6f9\uc11c\ube44\uc2a4(BMS) \uae30\ubcf8\uc815\ubcf4 +# - \uc815\ubcf4\ubcc0\uacbd\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 \uc218\uc815\ud6c4 \uc11c\ube44\uc2a4\ub97c \uc7ac\uc2dc\uc791\ud574\uc57c \uc801\uc6a9\ub429\ub2c8\ub2e4. +#----------------------------------------------------- + +#===================================================== +#\uae30\ubcf8\uac12 +#----------------------------------------------------- +#\uc544\uc774\ud53c\ub294 30\ubc88\uacfc 32\ubc88 2\uac1c\uc774\ub098 31\ubc88\uc774 L4\ub85c \ub3d9\uc791\ud55c\ub2e4. +#\uadf8\ub7ec\ubbc0\ub85c \uc2e4\uc11c\ubc84\uc5d0\uc11c\ub294 30\ubc88\uc744 \uc774\uc6a9\ud558\uace0 \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 +#31\ubc88\uc744 \uc774\uc6a9\ud574\uc57c \ud55c\ub2e4. +#\uc694\uccad\uc11c\ubc84 IP +bms.reqIp =10.159.1.31 +#\uc6f9\uc11c\ube44\uc2a4 \uc11c\ubc84 IP +bms.ip =10.159.1.31 +#\uc0ac\uc6a9 \uc2dc\uc2a4\ud15c ID +bms.systemId =jungchak +#\uc778\uc99d\ud0a4 +bms.authKey =b2a0c1d01533b09bf76c578f9c93254a089a580d788e17bb25160dfb88db6bb6 +#\uc0ac\uc6a9 \uc2dc\uc2a4\ud15c \ucf54\ub4dc +bms.systemCd = CJPD +bms.userId=7300HJ5D +bms.deptCd=5690197 +#----------------------------------------------------- + +#===================================================== +#\uc6f9\uc11c\ube44\uc2a4\uc8fc\uc18c +#----------------------------------------------------- +#RPC_END_POINT +bms.rpcEndPoint = javax.xml.rpc.service.endpoint.address +#\ubb38\uc11c\ub4f1\ub85d\ub300\uc7a5 +bms.dctDept.url = http://10.159.1.31:80/bms/service/BmsSifDctDeptListService?wsdl +#\uacb0\uc7ac\ud568 +bms.dctComplete.url=http://10.159.1.31:80/bms/service/BmsSifDctCompleteApprovedService?wsdl +#\uacf5\ud1b5\uc11c\ube44\uc2a4 +bms.comService.url = http://10.159.1.31:80/bms/service/BmsSifComService_V2?WSDL + +bms.dctView.url = http://10.159.1.31:80/bms/service/BmsSifDctViewService_V2?WSDL +#\uc811\uc218\ub300\uae30\ubb38\uc11c\uc870\ud68c +bms.dctComplete.url=http://10.159.1.31:80/bms/service/BmsSifDctAcceptHoldService?WSDL +#\uae30\uc548\ud568 +bms.dctDraft.url=http://10.159.1.31:80/bms/service/BmsSifDctDraftService?wsdl +#----------------------------------------------------- + +bms.tmpDownloadPath = /webapps/upload/ diff --git a/src/main/resources/crypto_config.properties b/src/main/resources/crypto_config.properties new file mode 100644 index 0000000..5101315 --- /dev/null +++ b/src/main/resources/crypto_config.properties @@ -0,0 +1,8 @@ +#===================================================== +#\uc554\ud638\ud654 +#----------------------------------------------------- +crypto.charset=UTF-8 +crypto.algorithm=SHA-256 +crypto.hashed.password=MpSMOCvFqIykM8BxKIlfUGEGMGZFk6oHymmN1KAqF7A= +crypto.password = sayit +#----------------------------------------------------- diff --git a/src/main/resources/egovframework/egovProps/ck.properties b/src/main/resources/egovframework/egovProps/ck.properties new file mode 100644 index 0000000..77ed02a --- /dev/null +++ b/src/main/resources/egovframework/egovProps/ck.properties @@ -0,0 +1,14 @@ +# CKEditor Image File Upload + +#optional +ck.image.type.allow=jpg,jpeg,gif,bmp,png +#optional +#ck.image.save.class=Implementation of egovframework.com.utl.wed.filter.FileSaveManager + +# if you use "separate image server" or other case. (apache, cdn, nas...) +#ck.image.dir=/www/images.mydomain.com/upload +#ck.image.url=http://images.mydomain.com/upload/ + +# if you use "web application"'s deployed directory. +ck.image.dir=/webApplicationDeployDirectory/upload +ck.image.url=/contextRoot/upload/ \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/conf/SMEConfig.properties b/src/main/resources/egovframework/egovProps/conf/SMEConfig.properties new file mode 100644 index 0000000..f99fa8b --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/SMEConfig.properties @@ -0,0 +1,14 @@ +sms_url = sme://127.0.0.1:20000 +sms_id = ID +sms_pwd = PW + +use_console_logger = false +use_file_logger = false +log_layout = [%d] [%-5p] %l - %m%n + +# debug / info +log_level = debug + +# path +log_path = C:\egovframework\log\SMELog.log +ping_term = 60 \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/conf/client.properties b/src/main/resources/egovframework/egovProps/conf/client.properties new file mode 100644 index 0000000..58c497f --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/client.properties @@ -0,0 +1,27 @@ +#----------------------------------------------------------------------- +# +# client.properties : \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 OS\uc815\ubcf4\ub97c \ub098\ud0c0\ub0b4\ub294 Config \ud30c\uc77c +# +#----------------------------------------------------------------------- +# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. +# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 +# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 +# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) +# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) +# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' +# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 +# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 +#----------------------------------------------------------------------- + +# \ud074\ub77c\uc774\uc5b8\ud2b8 OS \uc720\ud615 \ubaa9\ub85d +WINDOWS95 = Windows 95 +WINDOWS98 = Windows 98 +WINDOWSNT = Windows NT +WINDOWSNT5.0 = Windows 2000 +WINDOWSNT5.1 = Windows XP +WINDOWSNT5.2 = Windows Server 2003 +WINDOWSNT6.0 = Windows Vista +WIN32 = Windows XP +MSN2.5 = MSN 2.5 on Windows 98 +MAC_POWERPC = Mac OS X +SUNOS5.9SUN4U = SunOS 5.0 \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/conf/confirmmessage.properties b/src/main/resources/egovframework/egovProps/conf/confirmmessage.properties new file mode 100644 index 0000000..23cde90 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/confirmmessage.properties @@ -0,0 +1 @@ +test.message = confirm message diff --git a/src/main/resources/egovframework/egovProps/conf/errormessage.properties b/src/main/resources/egovframework/egovProps/conf/errormessage.properties new file mode 100644 index 0000000..e4cdad3 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/errormessage.properties @@ -0,0 +1 @@ +test.message = error message diff --git a/src/main/resources/egovframework/egovProps/conf/format.properties b/src/main/resources/egovframework/egovProps/conf/format.properties new file mode 100644 index 0000000..7b62771 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/format.properties @@ -0,0 +1,166 @@ +abs=audio/x-mpeg +ai=application/postscript +aif=audio/x-aiff +aif=caudio/x-aiff +aiff=audio/x-aiff +aim=application/x-aim +art=image/x-jg +asf=video/x-ms-asf +asx=video/x-ms-asf +au=audio/basic +avi=video/x-msvideo +avx=video/x-rad-screenplay +bcpio=application/x-bcpio +bin=application/octet-stream +bmp=image/bmp +body=text/html +cdf=application/x-cdf +cer=application/x-x509-ca-cert +class=application/java +cpio=application/x-cpio +csh=application/x-csh +css=text/css +dib=image/bmp +doc=application/msword +dtd=application/xml-dtd +dv=video/x-dv +dvi=application/x-dvi +eps=application/postscript +etx=text/x-setext +exe=application/octet-stream +gif=image/gif +gtar=application/x-gtar +gz=application/x-gzip +hdf=application/x-hdf +hqx=application/mac-binhex40 +htc=text/x-component +htm=text/html +html=text/html +hqx=application/mac-binhex40 +ief=image/ief +jad=text/vnd.sun.j2me.app-descriptor +jar=application/java-archive +java=text/plain +jnlp=application/x-java-jnlp-file +jpe=image/jpeg +jpeg=image/jpeg +jpg=image/jpeg +js=text/javascript +jsf=text/plain +jspf=text/plain +kar=audio/x-midi +latex=application/x-latex +m3u=audio/x-mpegurl +mac=image/x-macpaint +man=application/x-troff-man +mathml=application/mathml+xml +me=application/x-troff-me +mid=audio/x-midi +midi=audio/x-midi +mif=application/x-mif +mov=video/quicktime +movie=video/x-sgi-movie +mp1=audio/x-mpeg +mp2=audio/x-mpeg +mp3=audio/x-mpeg +mp4=video/mp4 +mpa=audio/x-mpeg +mpe=video/mpeg +mpeg=video/mpeg +mpega=audio/x-mpeg +mpg=video/mpeg +mpv2=video/mpeg2 +ms=application/x-wais-source +nc=application/x-netcdf +oda=application/oda +odb=application/vnd.oasis.opendocument.database +odc=application/vnd.oasis.opendocument.chart +odf=application/vnd.oasis.opendocument.formula +odg=application/vnd.oasis.opendocument.graphics +odi=application/vnd.oasis.opendocument.image +odm=application/vnd.oasis.opendocument.text-master +odp=application/vnd.oasis.opendocument.presentation +ods=application/vnd.oasis.opendocument.spreadsheet +odt=application/vnd.oasis.opendocument.text +ogg=application/ogg +otg=application/vnd.oasis.opendocument.graphics-template +oth=application/vnd.oasis.opendocument.text-web +otp=application/vnd.oasis.opendocument.presentation-template +ots=application/vnd.oasis.opendocument.spreadsheet-template +ott=application/vnd.oasis.opendocument.text-template +pbm=image/x-portable-bitmap +pct=image/pict +pdf=application/pdf +pgm=image/x-portable-graymap +pic=image/pict +pict=image/pict +pls=audio/x-scpls +png=image/png +pnm=image/x-portable-anymap +pnt=image/x-macpaint +ppm=image/x-portable-pixmap +ppt=application/powerpoint +ps=application/postscript +psd=image/x-photoshop +qt=video/quicktime +qti=image/x-quicktime +qtif=image/x-quicktime +ras=image/x-cmu-raster +rdf=application/rdf+xml +rgb=image/x-rgb +rm=application/vnd.rn-realmedia +roff=application/x-troff +rtf=application/rtf +rtx=text/richtext +sh=application/x-sh +shar=application/x-shar +shtml=text/x-server-parsed-html +smf=audio/x-midi +sit=application/x-stuffit +snd=audio/basic +src=application/x-wais-source +sv4cpio=application/x-sv4cpio +sv4crc=application/x-sv4crc +swf=application/x-shockwave-flash +t=application/x-troff +tar=application/x-tar +tcl=application/x-tcl +tex=application/x-tex +texi=application/x-texinfo +texinfo=application/x-texinfo +tif=image/tiff +tiff=image/tiff +tr=application/x-troff +tsv=text/tab-separated-values +txt=text/plain +ulw=audio/basic +ustar=application/x-ustar +vxml=application/voicexml+xml +xbm=image/x-xbitmap +xht=application/xhtml+xml +xhtml=application/xhtml+xml +xml=application/xml +xpm=image/x-xpixmap +xsl=application/xml +xslt=application/xslt+xml +xul=application/vnd.mozilla.xul+xml +xwd=image/x-xwindowdump +wav=audio/x-wav +svg=image/svg+xml +svgz=image/svg+xml +vsd=application/x-visio +wbmp=image/vnd.wap.wbmp +wml=text/vnd.wap.wml +wmlc=application/vnd.wap.wmlc +wmls=text/vnd.wap.wmlscript +wmlscriptc=application/vnd.wap.wmlscriptc +wmv=video/x-ms-wmv +wrl=x-world/x-vrml +wspolicy=application/wspolicy+xml +Z=application/x-compress +z=application/x-compress +zip=application/zip +xls=application/vnd.ms-excel +doc=application/vnd.ms-word +ppt=application/vnd.ms-powerpoint + \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/conf/gpki.properties b/src/main/resources/egovframework/egovProps/conf/gpki.properties new file mode 100644 index 0000000..5cf8acd --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/gpki.properties @@ -0,0 +1,20 @@ +#-------------------------- +# for GPKI LDAP access +#-------------------------- +#gpki.ldap.ip=ldap.gcc.go.kr +#gpki.ldap.ip=10.1.7.140 +gpki.ldap.ip=152.99.56.86 +gpki.ldap.port=389 +gpki.ldap.basedn=ou=Group of Server,o=Government of Korea,c=kr +gpki.ldap.attribute=usercertificate;binary + +#-------------------------- +# \uc778\uc99d\uc11c \uc815\ubcf4 +# \uc2e4\uc81c \uc778\uc99d\uc11c \uad00\ub828 \ud30c\uc77c\ub4e4\uc740 \uac01 \uc18d\uc131\ub4e4\uc744 \uc870\ud569\ud574\uc11c \uc5bb\uc74c +#-------------------------- +gpki.certificate.path = /home/gpki/certificate/class1 +gpki.certificate.server = server +gpki.privatekey.password = PW +#gpki.certificate.path = C:/Documents and Settings/Administrator/egovProps/gpkisecureweb/certs +#gpki.certificate.server = 1310505011 +#gpki.privatekey.password = 8866kim4 diff --git a/src/main/resources/egovframework/egovProps/conf/infomessage.properties b/src/main/resources/egovframework/egovProps/conf/infomessage.properties new file mode 100644 index 0000000..0d6e145 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/infomessage.properties @@ -0,0 +1 @@ +test.message = info message diff --git a/src/main/resources/egovframework/egovProps/conf/server.properties b/src/main/resources/egovframework/egovProps/conf/server.properties new file mode 100644 index 0000000..735e07b --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/server.properties @@ -0,0 +1,46 @@ +#----------------------------------------------------------------------- +# +# server.properties : \uc124\uce58\ub41c \uc11c\ubc84\uc758 \uc815\ubcf4\ub97c \uae30\ub85d\ud558\ub294 Config \ud30c\uc77c +# +#----------------------------------------------------------------------- +# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. +# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 +# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 +# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) +# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) +# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' +# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 +# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 +#----------------------------------------------------------------------- + +# \uc11c\ubc84\uc81c\ud488 +SERVER_LIST = WEBLOGIC$JEUS$JBOSS +WEBLOGIC.VERSION = 9.2 MP3 +JEUS.VERSION = 6.0 +JBOSS.VERSION = 3.1 +WEBLOGIC.PORT = 7001 +JEUS.PORT = 9736 +JBOSS.PORT = 8080 + +# \uc11c\ubc84\ubc84\uc804 +SHELL.WINDOWS.getPrductVersion = prg/getPrductVersion.bat +SHELL.UNIX.getPrductVersion = prg/getPrductVersion.sh + +# \uc11c\ubc84\uc2e4\ud589\uc0c1\ud0dc +SHELL.WINDOWS.getPrductStatus = prg/getPrductStatus.bat +SHELL.UNIX.getPrductStatus = prg/getPrductStatus.sh + +# \uc2dc\uc2a4\ud15c OS\uc815\ubcf4 +SHELL.WINDOWS.getOSInfo = prg/getOSInfo.bat +SHELL.UNIX.getOSInfo = prg/getOSInfo.sh + +# \uc2dc\uc2a4\ud15c \ub514\uc2a4\ud06c \uc6a9\ub7c9 \uc815\ubcf4 +SHELL.WINDOWS.getDiskInfo = prg/getDiskInfo.bat +SHELL.UNIX.getDiskInfo = prg/getDiskInfo.sh + +# \uc2dc\uc2a4\ud15c \uba54\ubaa8\ub9ac \uc6a9\ub7c9 \uc815\ubcf4 +SHELL.WINDOWS.getMoryInfo = prg/getMoryInfo.bat +SHELL.UNIX.getMoryInfo = prg/getMoryInfo.sh + +# MAC +SHELL.UNIX.getNetWorkInfo = prg/getNetWorkInfo.sh diff --git a/src/main/resources/egovframework/egovProps/conf/warnmessage.properties b/src/main/resources/egovframework/egovProps/conf/warnmessage.properties new file mode 100644 index 0000000..bd58879 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/conf/warnmessage.properties @@ -0,0 +1,4 @@ +test.message = warn message + + + diff --git a/src/main/resources/egovframework/egovProps/globals.properties b/src/main/resources/egovframework/egovProps/globals.properties new file mode 100644 index 0000000..ec95bf3 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/globals.properties @@ -0,0 +1,147 @@ +#----------------------------------------------------------------------- +# +# globals.properties : 시스템 +# +#----------------------------------------------------------------------- +# 1. key = value 구조입니다. +# 2. key값은 공백문자를 포함불가, value값은 공백문자를 가능 +# 3. key값으로 한글을 사용불가, value값은 한글사용이 가능 +# 4. 줄을 바꿀 필요가 있으면 '\'를 라인의 끝에 추가(만약 '\'문자를 사용해야 하는 경우는 '\\'를 사용) +# 5. Windows에서의 디렉토리 표시 : '\\' or '/' ('\' 사용하면 안됨) +# 6. Unix에서의 디렉토리 표시 : '/' +# 7. 주석문 처리는 #사용 +# 8. value값 뒤에 스페이스가 존재하는 경우 서블릿에서 참조할때는 에러발생할 수 있으므로 trim()하거나 마지막 공백없이 properties 값을 설정할것 +#----------------------------------------------------------------------- + +# 운영서버 타입(WINDOWS, UNIX) +Globals.OsType =UNIX + +# DB서버 타입(ORACLE, MYSQL) - datasource 및 sqlMap 파일 지정에 사용됨 +#Globals.DbType =oracle +Globals.DbType =mysql + +# 위저드 사용시 데이터베이스 관련 설정을 불러옴 +#Globals.DriverClassName=oracle.jdbc.OracleDriver +#Globals.Url=jdbc:oracle:thin:@122.199.152.76:1521:oradev +#Globals.UserName =say_cms +#Globals.Password =sksrhdqnffkr + +## 세이헬프데스크 +Globals.DriverClassName=com.mysql.jdbc.Driver +#운영 +#Globals.Url=jdbc:mysql://192.168.0.217:3306/helpdesk_db?characterEncoding=utf8 +#개발 +Globals.Url=jdbc:mysql://192.168.0.114:13314/helpdesk_db?characterEncoding=utf8 +Globals.UserName =helpdesk +Globals.Password =helpdesk + +# MainPage Setting +Globals.MainPage =/EgovContent.do +#통합메인메뉴 +#Globals.MainPage = /sym/mnu/mpm/EgovMainMenuHome.do + +SMS.DriverClassName=com.mysql.jdbc.Driver +SMS.Url=jdbc:mysql://122.199.152.77:3306/edosi?characterEncoding=utf8 +SMS.UserName=edosi +SMS.Password=!dlehtl# + +SMS.callback=07041152667 +SMS.ddd= +SMS.guk= + +Globals.Version=1.0 +Globals.OrgKey= +Globals.OrgNm=세이정보기술 +Globals.OrgCode=8188 + +#Globals.AccessIp=10 +Globals.SiteTitle=세이정보기술 Help-desk +#Globals.MobileStartPage=/mobile/intro.do +Globals.MobileStartPage=/login.do +PushUrl=http://www.sejong.go.kr/sotong +#PushUrl=http://122.199.152.176:8080/sotong + +fileLogUseYn=N +fileLogPath=/webapps/ + +MENU.PRJ = 프로젝트관리 +MENU.USER = 회원관리 +MENU.HDB = 요청작업관리 +MENU.DTB = 자료실 +MENU.MYPAGE = 마이페이지 +MENU.BOARD.STT = 게시판이용현황 + +# 환경파일 위치 +Globals.ShellFilePath =globals.properties +Globals.ServerConfPath =conf/server.properties +Globals.ClientConfPath =conf/client.properties +Globals.FileFormatPath =conf/format.properties +Globals.GPKIConfPath =conf/gpki.properties +Globals.ConfPath =conf +Globals.MailRequestPath =mail/request/ +Globals.MailRResponsePath =mail/response/ +Globals.SMEConfigPath =conf/SMEConfig.properties + +# WINDOWS용 쉘파일 정보 +SHELL.WINDOWS.getHostName =prg/sh_001.bat +SHELL.WINDOWS.getDrctryByOwner =prg/getDrctryByOwner.bat +SHELL.WINDOWS.getDrctryOwner =prg/getDrctryOwner.bat +SHELL.WINDOWS.moveDrctry =prg/moveDrctry.bat +SHELL.WINDOWS.compileSchema =prg/compileSchema.bat +SHELL.WINDOWS.getDiskAttrb =prg/getDiskAttrb.bat +SHELL.WINDOWS.getDiskCpcty =prg/getDiskCpcty.bat +SHELL.WINDOWS.getDiskExst =prg/getDiskExst.bat + +# UNIX용 쉘파일 정보 - 개발was jeus에서 사용할때 기준 +SHELL.UNIX.getHostName =prg/sh_001.sh +SHELL.UNIX.getDrctryByOwner =prg/getDrctryByOwner.sh +SHELL.UNIX.getDrctryOwner =prg/getDrctryOwner.sh +SHELL.UNIX.getDrctryAccess =prg/getDrctryAccess.sh +SHELL.UNIX.getMountLc =prg/getMountLc.sh +SHELL.UNIX.getDiskName =prg/getNetWorkInfo.sh +SHELL.UNIX.moveDrctry =prg/moveDrctry.sh +SHELL.UNIX.compileSchema =prg/compileSchema.sh +SHELL.UNIX.getDiskAttrb =prg/getDiskAttrb.sh +SHELL.UNIX.getDiskCpcty =prg/getDiskCpcty.sh +SHELL.UNIX.getDiskExst =prg/getDiskExst.sh +SHELL.UNIX.getProcInfo =prg/getProcInfo.sh + +# LINUX용 쉘파일 정보 + +# 연계 +# 기관코드수신용(경로 설정은 반드시 절대경로를 사용해야함.) +CNTC.INSTTCODE.DIR.rcv =D:/tmp/test/rcv/ +CNTC.INSTTCODE.DIR.rcvold =D:/tmp/test/rcvold/ +CNTC.INSTTCODE.DIR.bin =D:/tmp/test/bin/ + +CNTC.INSTTCODE.CMD.edircv =gcc_edircv.bat +CNTC.INSTTCODE.CMD.edircvmsg =gcc_edircvmsg.bat + +CNTC.INSTTCODE.INFO.userid =USERID +CNTC.INSTTCODE.INFO.userpw =****** + +# 파일 업로드 경로(경로 설정은 반드시 절대경로를 사용해야함, 경로 뒤에 /를 붙여 주어야함.) +#Globals.fileStorePath =/webapps/upload/ +Globals.fileStorePath =/webapps/proj/help_desk/upload/ + +# 파일 동기화 컴포넌트에서 사용할 파일 업로드 경로(경로 설정은 반드시 절대경로를 사용해야함, 경로 뒤에 /를 붙여 주어야함.) +Globals.SynchrnServerPath =C:/egovframework/upload/Synch/ + +# for JFile properties +system.uploadpath =C:/egovframework/upload/ +no.image.url =/resources/jfile/swfupload/images/no_img.gif +ftp.server.ip =127.0.0.1 +ftp.user.id =test +ftp.user.password =test + +# Social(Facebook, Oauth 컴포넌트 사용시 활용) +facebook.appId = +facebook.appSecret = +twitter.consumerKey = +twitter.consumerSecret = + +#LDAP조직도관리 컴포넌트 사용시 LDAP서버설정정보 필요 +ldap.url =ldap://localhost:10389 +ldap.rootDn =c=kr +ldap.username =uid=admin,ou=system +ldap.password =secret diff --git a/src/main/resources/egovframework/egovProps/globals.properties.20200731 b/src/main/resources/egovframework/egovProps/globals.properties.20200731 new file mode 100644 index 0000000..7215570 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/globals.properties.20200731 @@ -0,0 +1,151 @@ +#----------------------------------------------------------------------- +# +# globals.properties : \uc2dc\uc2a4\ud15c +# +#----------------------------------------------------------------------- +# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. +# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 +# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 +# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) +# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) +# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' +# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 +# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 +#----------------------------------------------------------------------- + +# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX) +Globals.OsType =UNIX + +# DB\uc11c\ubc84 \ud0c0\uc785(ORACLE, MYSQL) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428 +#Globals.DbType =oracle +Globals.DbType =mysql + +# \uc704\uc800\ub4dc \uc0ac\uc6a9\uc2dc \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub828 \uc124\uc815\uc744 \ubd88\ub7ec\uc634 +#Globals.DriverClassName=oracle.jdbc.OracleDriver +#Globals.Url=jdbc:oracle:thin:@122.199.152.76:1521:oradev +#Globals.UserName =say_cms +#Globals.Password =sksrhdqnffkr + +## \uc138\uc774\ud5ec\ud504\ub370\uc2a4\ud06c +Globals.DriverClassName=com.mysql.jdbc.Driver +#Globals.Url=jdbc:mysql://122.199.152.80:3306/helpdesk_db?characterEncoding=utf8 +#Globals.Url=jdbc:mysql://112.217.205.186:3306/helpdesk_db?characterEncoding=utf8 +Globals.Url=jdbc:mysql://112.216.99.66:3306/helpdesk_db?characterEncoding=utf8 +Globals.UserName =helpdesk +Globals.Password =helpdesk + + + +# MainPage Setting +Globals.MainPage =/EgovContent.do +#\ud1b5\ud569\uba54\uc778\uba54\ub274 +#Globals.MainPage = /sym/mnu/mpm/EgovMainMenuHome.do + +SMS.DriverClassName=com.mysql.jdbc.Driver +SMS.Url=jdbc:mysql://122.199.152.77:3306/edosi?characterEncoding=utf8 +SMS.UserName=edosi +SMS.Password=!dlehtl# + +SMS.callback=07041152667 +SMS.ddd= +SMS.guk= + +Globals.Version=1.0 +Globals.OrgKey= +Globals.OrgNm=\uc138\uc774\uc815\ubcf4\uae30\uc220 +Globals.OrgCode=8188 + +#Globals.AccessIp=10 +Globals.SiteTitle=\uc138\uc774\uc815\ubcf4\uae30\uc220 Help-desk +#Globals.MobileStartPage=/mobile/intro.do +Globals.MobileStartPage=/login.do +PushUrl=http://www.sejong.go.kr/sotong +#PushUrl=http://122.199.152.176:8080/sotong + +fileLogUseYn=N +fileLogPath=/webapps/ + +MENU.PRJ = \ud504\ub85c\uc81d\ud2b8\uad00\ub9ac +MENU.USER = \ud68c\uc6d0\uad00\ub9ac +MENU.HDB = \uc694\uccad\uc791\uc5c5\uad00\ub9ac +MENU.DTB = \uc790\ub8cc\uc2e4 +MENU.MYPAGE = \ub9c8\uc774\ud398\uc774\uc9c0 +MENU.BOARD.STT = \uac8c\uc2dc\ud310\uc774\uc6a9\ud604\ud669 + + + +# \ud658\uacbd\ud30c\uc77c \uc704\uce58 +Globals.ShellFilePath =globals.properties +Globals.ServerConfPath =conf/server.properties +Globals.ClientConfPath =conf/client.properties +Globals.FileFormatPath =conf/format.properties +Globals.GPKIConfPath =conf/gpki.properties +Globals.ConfPath =conf +Globals.MailRequestPath =mail/request/ +Globals.MailRResponsePath =mail/response/ +Globals.SMEConfigPath =conf/SMEConfig.properties + +# WINDOWS\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 +SHELL.WINDOWS.getHostName =prg/sh_001.bat +SHELL.WINDOWS.getDrctryByOwner =prg/getDrctryByOwner.bat +SHELL.WINDOWS.getDrctryOwner =prg/getDrctryOwner.bat +SHELL.WINDOWS.moveDrctry =prg/moveDrctry.bat +SHELL.WINDOWS.compileSchema =prg/compileSchema.bat +SHELL.WINDOWS.getDiskAttrb =prg/getDiskAttrb.bat +SHELL.WINDOWS.getDiskCpcty =prg/getDiskCpcty.bat +SHELL.WINDOWS.getDiskExst =prg/getDiskExst.bat + +# UNIX\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 - \uac1c\ubc1cwas jeus\uc5d0\uc11c \uc0ac\uc6a9\ud560\ub54c \uae30\uc900 +SHELL.UNIX.getHostName =prg/sh_001.sh +SHELL.UNIX.getDrctryByOwner =prg/getDrctryByOwner.sh +SHELL.UNIX.getDrctryOwner =prg/getDrctryOwner.sh +SHELL.UNIX.getDrctryAccess =prg/getDrctryAccess.sh +SHELL.UNIX.getMountLc =prg/getMountLc.sh +SHELL.UNIX.getDiskName =prg/getNetWorkInfo.sh +SHELL.UNIX.moveDrctry =prg/moveDrctry.sh +SHELL.UNIX.compileSchema =prg/compileSchema.sh +SHELL.UNIX.getDiskAttrb =prg/getDiskAttrb.sh +SHELL.UNIX.getDiskCpcty =prg/getDiskCpcty.sh +SHELL.UNIX.getDiskExst =prg/getDiskExst.sh +SHELL.UNIX.getProcInfo =prg/getProcInfo.sh + +# LINUX\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 + +# \uc5f0\uacc4 +# \uae30\uad00\ucf54\ub4dc\uc218\uc2e0\uc6a9(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568.) +CNTC.INSTTCODE.DIR.rcv =D:/tmp/test/rcv/ +CNTC.INSTTCODE.DIR.rcvold =D:/tmp/test/rcvold/ +CNTC.INSTTCODE.DIR.bin =D:/tmp/test/bin/ + +CNTC.INSTTCODE.CMD.edircv =gcc_edircv.bat +CNTC.INSTTCODE.CMD.edircvmsg =gcc_edircvmsg.bat + +CNTC.INSTTCODE.INFO.userid =USERID +CNTC.INSTTCODE.INFO.userpw =****** + +# \ud30c\uc77c \uc5c5\ub85c\ub4dc \uacbd\ub85c(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568, \uacbd\ub85c \ub4a4\uc5d0 /\ub97c \ubd99\uc5ec \uc8fc\uc5b4\uc57c\ud568.) +#Globals.fileStorePath =/webapps/upload/ +Globals.fileStorePath =/webapps/proj/help_desk/upload/ + + +# \ud30c\uc77c \ub3d9\uae30\ud654 \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud560 \ud30c\uc77c \uc5c5\ub85c\ub4dc \uacbd\ub85c(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568, \uacbd\ub85c \ub4a4\uc5d0 /\ub97c \ubd99\uc5ec \uc8fc\uc5b4\uc57c\ud568.) +Globals.SynchrnServerPath =C:/egovframework/upload/Synch/ + +# for JFile properties +system.uploadpath =C:/egovframework/upload/ +no.image.url =/resources/jfile/swfupload/images/no_img.gif +ftp.server.ip =127.0.0.1 +ftp.user.id =test +ftp.user.password =test + +# Social(Facebook, Oauth \ucef4\ud3ec\ub10c\ud2b8 \uc0ac\uc6a9\uc2dc \ud65c\uc6a9) +facebook.appId = +facebook.appSecret = +twitter.consumerKey = +twitter.consumerSecret = + +#LDAP\uc870\uc9c1\ub3c4\uad00\ub9ac \ucef4\ud3ec\ub10c\ud2b8 \uc0ac\uc6a9\uc2dc LDAP\uc11c\ubc84\uc124\uc815\uc815\ubcf4 \ud544\uc694 +ldap.url =ldap://localhost:10389 +ldap.rootDn =c=kr +ldap.username =uid=admin,ou=system +ldap.password =secret diff --git a/src/main/resources/egovframework/egovProps/globals.properties.20210111 b/src/main/resources/egovframework/egovProps/globals.properties.20210111 new file mode 100644 index 0000000..b638ec9 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/globals.properties.20210111 @@ -0,0 +1,151 @@ +#----------------------------------------------------------------------- +# +# globals.properties : \uc2dc\uc2a4\ud15c +# +#----------------------------------------------------------------------- +# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. +# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 +# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 +# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) +# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) +# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' +# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 +# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 +#----------------------------------------------------------------------- + +# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX) +Globals.OsType =UNIX + +# DB\uc11c\ubc84 \ud0c0\uc785(ORACLE, MYSQL) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428 +#Globals.DbType =oracle +Globals.DbType =mysql + +# \uc704\uc800\ub4dc \uc0ac\uc6a9\uc2dc \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub828 \uc124\uc815\uc744 \ubd88\ub7ec\uc634 +#Globals.DriverClassName=oracle.jdbc.OracleDriver +#Globals.Url=jdbc:oracle:thin:@122.199.152.76:1521:oradev +#Globals.UserName =say_cms +#Globals.Password =sksrhdqnffkr + +## \uc138\uc774\ud5ec\ud504\ub370\uc2a4\ud06c +Globals.DriverClassName=com.mysql.jdbc.Driver +#Globals.Url=jdbc:mysql://122.199.152.80:3306/helpdesk_db?characterEncoding=utf8 +#Globals.Url=jdbc:mysql://112.217.205.186:3306/helpdesk_db?characterEncoding=utf8 +Globals.Url=jdbc:mysql://112.216.99.66:3306/helpdesk_db?characterEncoding=utf8 +Globals.UserName =helpdesk +Globals.Password =helpdesk + + + +# MainPage Setting +Globals.MainPage =/EgovContent.do +#\ud1b5\ud569\uba54\uc778\uba54\ub274 +#Globals.MainPage = /sym/mnu/mpm/EgovMainMenuHome.do + +SMS.DriverClassName=com.mysql.jdbc.Driver +SMS.Url=jdbc:mysql://122.199.152.77:3306/edosi?characterEncoding=utf8 +SMS.UserName=edosi +SMS.Password=!dlehtl# + +SMS.callback=07041152667 +SMS.ddd= +SMS.guk= + +Globals.Version=1.0 +Globals.OrgKey= +Globals.OrgNm=\uc138\uc774\uc815\ubcf4\uae30\uc220 +Globals.OrgCode=8188 + +#Globals.AccessIp=10 +Globals.SiteTitle=\uc138\uc774@\ub098\ub798 Help-desk +#Globals.MobileStartPage=/mobile/intro.do +Globals.MobileStartPage=/login.do +PushUrl=http://www.sejong.go.kr/sotong +#PushUrl=http://122.199.152.176:8080/sotong + +fileLogUseYn=N +fileLogPath=/webapps/ + +MENU.PRJ = \ud504\ub85c\uc81d\ud2b8\uad00\ub9ac +MENU.USER = \ud68c\uc6d0\uad00\ub9ac +MENU.HDB = \uc694\uccad\uc791\uc5c5\uad00\ub9ac +MENU.DTB = \uc790\ub8cc\uc2e4 +MENU.MYPAGE = \ub9c8\uc774\ud398\uc774\uc9c0 +MENU.BOARD.STT = \uac8c\uc2dc\ud310\uc774\uc6a9\ud604\ud669 + + + +# \ud658\uacbd\ud30c\uc77c \uc704\uce58 +Globals.ShellFilePath =globals.properties +Globals.ServerConfPath =conf/server.properties +Globals.ClientConfPath =conf/client.properties +Globals.FileFormatPath =conf/format.properties +Globals.GPKIConfPath =conf/gpki.properties +Globals.ConfPath =conf +Globals.MailRequestPath =mail/request/ +Globals.MailRResponsePath =mail/response/ +Globals.SMEConfigPath =conf/SMEConfig.properties + +# WINDOWS\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 +SHELL.WINDOWS.getHostName =prg/sh_001.bat +SHELL.WINDOWS.getDrctryByOwner =prg/getDrctryByOwner.bat +SHELL.WINDOWS.getDrctryOwner =prg/getDrctryOwner.bat +SHELL.WINDOWS.moveDrctry =prg/moveDrctry.bat +SHELL.WINDOWS.compileSchema =prg/compileSchema.bat +SHELL.WINDOWS.getDiskAttrb =prg/getDiskAttrb.bat +SHELL.WINDOWS.getDiskCpcty =prg/getDiskCpcty.bat +SHELL.WINDOWS.getDiskExst =prg/getDiskExst.bat + +# UNIX\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 - \uac1c\ubc1cwas jeus\uc5d0\uc11c \uc0ac\uc6a9\ud560\ub54c \uae30\uc900 +SHELL.UNIX.getHostName =prg/sh_001.sh +SHELL.UNIX.getDrctryByOwner =prg/getDrctryByOwner.sh +SHELL.UNIX.getDrctryOwner =prg/getDrctryOwner.sh +SHELL.UNIX.getDrctryAccess =prg/getDrctryAccess.sh +SHELL.UNIX.getMountLc =prg/getMountLc.sh +SHELL.UNIX.getDiskName =prg/getNetWorkInfo.sh +SHELL.UNIX.moveDrctry =prg/moveDrctry.sh +SHELL.UNIX.compileSchema =prg/compileSchema.sh +SHELL.UNIX.getDiskAttrb =prg/getDiskAttrb.sh +SHELL.UNIX.getDiskCpcty =prg/getDiskCpcty.sh +SHELL.UNIX.getDiskExst =prg/getDiskExst.sh +SHELL.UNIX.getProcInfo =prg/getProcInfo.sh + +# LINUX\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 + +# \uc5f0\uacc4 +# \uae30\uad00\ucf54\ub4dc\uc218\uc2e0\uc6a9(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568.) +CNTC.INSTTCODE.DIR.rcv =D:/tmp/test/rcv/ +CNTC.INSTTCODE.DIR.rcvold =D:/tmp/test/rcvold/ +CNTC.INSTTCODE.DIR.bin =D:/tmp/test/bin/ + +CNTC.INSTTCODE.CMD.edircv =gcc_edircv.bat +CNTC.INSTTCODE.CMD.edircvmsg =gcc_edircvmsg.bat + +CNTC.INSTTCODE.INFO.userid =USERID +CNTC.INSTTCODE.INFO.userpw =****** + +# \ud30c\uc77c \uc5c5\ub85c\ub4dc \uacbd\ub85c(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568, \uacbd\ub85c \ub4a4\uc5d0 /\ub97c \ubd99\uc5ec \uc8fc\uc5b4\uc57c\ud568.) +#Globals.fileStorePath =/webapps/upload/ +Globals.fileStorePath =/webapps/proj/help_desk/upload/ + + +# \ud30c\uc77c \ub3d9\uae30\ud654 \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud560 \ud30c\uc77c \uc5c5\ub85c\ub4dc \uacbd\ub85c(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568, \uacbd\ub85c \ub4a4\uc5d0 /\ub97c \ubd99\uc5ec \uc8fc\uc5b4\uc57c\ud568.) +Globals.SynchrnServerPath =C:/egovframework/upload/Synch/ + +# for JFile properties +system.uploadpath =C:/egovframework/upload/ +no.image.url =/resources/jfile/swfupload/images/no_img.gif +ftp.server.ip =127.0.0.1 +ftp.user.id =test +ftp.user.password =test + +# Social(Facebook, Oauth \ucef4\ud3ec\ub10c\ud2b8 \uc0ac\uc6a9\uc2dc \ud65c\uc6a9) +facebook.appId = +facebook.appSecret = +twitter.consumerKey = +twitter.consumerSecret = + +#LDAP\uc870\uc9c1\ub3c4\uad00\ub9ac \ucef4\ud3ec\ub10c\ud2b8 \uc0ac\uc6a9\uc2dc LDAP\uc11c\ubc84\uc124\uc815\uc815\ubcf4 \ud544\uc694 +ldap.url =ldap://localhost:10389 +ldap.rootDn =c=kr +ldap.username =uid=admin,ou=system +ldap.password =secret diff --git a/src/main/resources/egovframework/egovProps/globals.properties_test b/src/main/resources/egovframework/egovProps/globals.properties_test new file mode 100644 index 0000000..413da7b --- /dev/null +++ b/src/main/resources/egovframework/egovProps/globals.properties_test @@ -0,0 +1,153 @@ +#----------------------------------------------------------------------- +# +# globals.properties : \uc2dc\uc2a4\ud15c +# +#----------------------------------------------------------------------- +# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. +# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 +# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 +# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) +# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) +# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' +# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 +# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 +#----------------------------------------------------------------------- + +# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX) +Globals.OsType =UNIX + +# DB\uc11c\ubc84 \ud0c0\uc785(ORACLE, MYSQL) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428 +#Globals.DbType =oracle +Globals.DbType =mysql + +# \uc704\uc800\ub4dc \uc0ac\uc6a9\uc2dc \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub828 \uc124\uc815\uc744 \ubd88\ub7ec\uc634 +#Globals.DriverClassName=oracle.jdbc.OracleDriver +#Globals.Url=jdbc:oracle:thin:@122.199.152.76:1521:oradev +#Globals.UserName =say_cms +#Globals.Password =sksrhdqnffkr + +## \uc138\uc774\ud5ec\ud504\ub370\uc2a4\ud06c +Globals.DriverClassName=com.mysql.jdbc.Driver +#Globals.Url=jdbc:mysql://122.199.152.80:3306/helpdesk_db?characterEncoding=utf8 +#Globals.Url=jdbc:mysql://112.217.205.186:3306/helpdesk_db?characterEncoding=utf8 +#Globals.Url=jdbc:mysql://112.216.99.66:3306/helpdesk_db?characterEncoding=utf8 +Globals.Url=jdbc:mysql://192.168.0.217:3306/helpdesk_db?characterEncoding=utf8 +#Globals.Url=jdbc:mysql://localhost:3306/helpdesk_db?characterEncoding=utf8 +Globals.UserName =helpdesk +Globals.Password =helpdesk + + + +# MainPage Setting +Globals.MainPage =/EgovContent.do +#\ud1b5\ud569\uba54\uc778\uba54\ub274 +#Globals.MainPage = /sym/mnu/mpm/EgovMainMenuHome.do + +#SMS.DriverClassName=com.mysql.jdbc.Driver +#SMS.Url=jdbc:mysql://122.199.152.77:3306/edosi?characterEncoding=utf8 +#SMS.UserName=edosi +#SMS.Password=!dlehtl# + +#SMS.callback=07041152667 +SMS.ddd= +SMS.guk= + +Globals.Version=1.0 +Globals.OrgKey= +Globals.OrgNm=\uc138\uc774\uc815\ubcf4\uae30\uc220 +Globals.OrgCode=8188 + +#Globals.AccessIp=10 +Globals.SiteTitle=\uc138\uc774@\ub098\ub798 Help-desk +#Globals.MobileStartPage=/mobile/intro.do +Globals.MobileStartPage=/login.do +PushUrl=http://www.sejong.go.kr/sotong +#PushUrl=http://122.199.152.176:8080/sotong + +fileLogUseYn=N +fileLogPath=/webapps/ + +MENU.PRJ = \ud504\ub85c\uc81d\ud2b8\uad00\ub9ac +MENU.USER = \ud68c\uc6d0\uad00\ub9ac +MENU.HDB = \uc694\uccad\uc791\uc5c5\uad00\ub9ac +MENU.DTB = \uc790\ub8cc\uc2e4 +MENU.MYPAGE = \ub9c8\uc774\ud398\uc774\uc9c0 +MENU.BOARD.STT = \uac8c\uc2dc\ud310\uc774\uc6a9\ud604\ud669 + + + +# \ud658\uacbd\ud30c\uc77c \uc704\uce58 +Globals.ShellFilePath =globals.properties +Globals.ServerConfPath =conf/server.properties +Globals.ClientConfPath =conf/client.properties +Globals.FileFormatPath =conf/format.properties +Globals.GPKIConfPath =conf/gpki.properties +Globals.ConfPath =conf +Globals.MailRequestPath =mail/request/ +Globals.MailRResponsePath =mail/response/ +Globals.SMEConfigPath =conf/SMEConfig.properties + +# WINDOWS\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 +SHELL.WINDOWS.getHostName =prg/sh_001.bat +SHELL.WINDOWS.getDrctryByOwner =prg/getDrctryByOwner.bat +SHELL.WINDOWS.getDrctryOwner =prg/getDrctryOwner.bat +SHELL.WINDOWS.moveDrctry =prg/moveDrctry.bat +SHELL.WINDOWS.compileSchema =prg/compileSchema.bat +SHELL.WINDOWS.getDiskAttrb =prg/getDiskAttrb.bat +SHELL.WINDOWS.getDiskCpcty =prg/getDiskCpcty.bat +SHELL.WINDOWS.getDiskExst =prg/getDiskExst.bat + +# UNIX\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 - \uac1c\ubc1cwas jeus\uc5d0\uc11c \uc0ac\uc6a9\ud560\ub54c \uae30\uc900 +SHELL.UNIX.getHostName =prg/sh_001.sh +SHELL.UNIX.getDrctryByOwner =prg/getDrctryByOwner.sh +SHELL.UNIX.getDrctryOwner =prg/getDrctryOwner.sh +SHELL.UNIX.getDrctryAccess =prg/getDrctryAccess.sh +SHELL.UNIX.getMountLc =prg/getMountLc.sh +SHELL.UNIX.getDiskName =prg/getNetWorkInfo.sh +SHELL.UNIX.moveDrctry =prg/moveDrctry.sh +SHELL.UNIX.compileSchema =prg/compileSchema.sh +SHELL.UNIX.getDiskAttrb =prg/getDiskAttrb.sh +SHELL.UNIX.getDiskCpcty =prg/getDiskCpcty.sh +SHELL.UNIX.getDiskExst =prg/getDiskExst.sh +SHELL.UNIX.getProcInfo =prg/getProcInfo.sh + +# LINUX\uc6a9 \uc258\ud30c\uc77c \uc815\ubcf4 + +# \uc5f0\uacc4 +# \uae30\uad00\ucf54\ub4dc\uc218\uc2e0\uc6a9(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568.) +CNTC.INSTTCODE.DIR.rcv =D:/tmp/test/rcv/ +CNTC.INSTTCODE.DIR.rcvold =D:/tmp/test/rcvold/ +CNTC.INSTTCODE.DIR.bin =D:/tmp/test/bin/ + +CNTC.INSTTCODE.CMD.edircv =gcc_edircv.bat +CNTC.INSTTCODE.CMD.edircvmsg =gcc_edircvmsg.bat + +CNTC.INSTTCODE.INFO.userid =USERID +CNTC.INSTTCODE.INFO.userpw =****** + +# \ud30c\uc77c \uc5c5\ub85c\ub4dc \uacbd\ub85c(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568, \uacbd\ub85c \ub4a4\uc5d0 /\ub97c \ubd99\uc5ec \uc8fc\uc5b4\uc57c\ud568.) +#Globals.fileStorePath =/webapps/upload/ +Globals.fileStorePath =/webapps/proj/help_desk/upload/ + + +# \ud30c\uc77c \ub3d9\uae30\ud654 \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c \uc0ac\uc6a9\ud560 \ud30c\uc77c \uc5c5\ub85c\ub4dc \uacbd\ub85c(\uacbd\ub85c \uc124\uc815\uc740 \ubc18\ub4dc\uc2dc \uc808\ub300\uacbd\ub85c\ub97c \uc0ac\uc6a9\ud574\uc57c\ud568, \uacbd\ub85c \ub4a4\uc5d0 /\ub97c \ubd99\uc5ec \uc8fc\uc5b4\uc57c\ud568.) +Globals.SynchrnServerPath =C:/egovframework/upload/Synch/ + +# for JFile properties +system.uploadpath =C:/egovframework/upload/ +no.image.url =/resources/jfile/swfupload/images/no_img.gif +ftp.server.ip =127.0.0.1 +ftp.user.id =test +ftp.user.password =test + +# Social(Facebook, Oauth \ucef4\ud3ec\ub10c\ud2b8 \uc0ac\uc6a9\uc2dc \ud65c\uc6a9) +facebook.appId = +facebook.appSecret = +twitter.consumerKey = +twitter.consumerSecret = + +#LDAP\uc870\uc9c1\ub3c4\uad00\ub9ac \ucef4\ud3ec\ub10c\ud2b8 \uc0ac\uc6a9\uc2dc LDAP\uc11c\ubc84\uc124\uc815\uc815\ubcf4 \ud544\uc694 +ldap.url =ldap://localhost:10389 +ldap.rootDn =c=kr +ldap.username =uid=admin,ou=system +ldap.password =secret diff --git a/src/main/resources/egovframework/egovProps/prg/compileSchema.bat b/src/main/resources/egovframework/egovProps/prg/compileSchema.bat new file mode 100644 index 0000000..f5959ae --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/compileSchema.bat @@ -0,0 +1,16 @@ +@rem Shell Name : compileSchema.bat +@rem Description : XML 스키마를 자바클래스로 변환하는 Shell +@rem Modification Information +@rem +@rem 수정일 수정자 수정내용 +@rem ------- -------- --------------------------- +@rem 2009.02.13 박지욱 최초 생성 +@rem +@rem author 공통 서비스 개발팀 박지욱 +@rem since 2009. 02. 13 +@rem version 1.0 +@rem see +@rem +@rem Copyright (C) 2009 by MOPAS All right reserved. + +scomp -out %1 %2 \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/compileSchema.sh b/src/main/resources/egovframework/egovProps/prg/compileSchema.sh new file mode 100644 index 0000000..e9e98d9 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/compileSchema.sh @@ -0,0 +1,16 @@ +# Shell Name : compileSchema.sh +# Description : XML 스키마를 자바클래스로 변환하는 Shell +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.13 박지욱 최초 생성 +# +# @author 공통 서비스 개발팀 박지욱 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. + +scomp -out $1 $2 \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDiskAttrb.bat b/src/main/resources/egovframework/egovProps/prg/getDiskAttrb.bat new file mode 100644 index 0000000..67f1862 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDiskAttrb.bat @@ -0,0 +1 @@ +@echo "Not supported in WINDOWS" \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDiskAttrb.sh b/src/main/resources/egovframework/egovProps/prg/getDiskAttrb.sh new file mode 100644 index 0000000..c7afd57 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDiskAttrb.sh @@ -0,0 +1,128 @@ +# Shell Name : getDiskAttr.bat +# Description : 디스크 속성정보 확인 +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 조재영 최초 생성 +# +# @author 공통 서비스 개발팀 조재영 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. +#### DISK CHECK #### +#for A in `lspv | awk '{print $1}' ` +for A in `lsdev -Cc disk | awk '{print $1}'` +do + # NAME + echo $A + # ATTRIBUTE + echo `lscfg -l $A | awk -F $A '{print $2}'` + # TYPE + echo "disk" + # AUTHORITY + + # SIZE + isEq="FALSE" + for B in `lspv | awk '{print $1}' ` + do + if [ $A = $B ] + then + isEq="TRUE" + fi + done + + if [ $isEq = "TRUE" ] + then + # TOTAL SIZE + lspv $A | grep "TOTAL PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + # USED SIZE + lspv $A | grep "USED PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + # FREE SIZE + lspv $A | grep "FREE PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + else + echo "" + echo "" + echo "" + fi + +done + +#### USB CHECK #### +for A in `lsdev -Cc usb | awk '{print $1}'` +do +# NAME +echo $A +# ATTRIBUTE +echo `lscfg -l $A | awk -F $A '{print $2}'` +# TYPE +echo "usb" +# AUTHORITY + +# SIZE + isEq="FALSE" + for B in `lspv | awk '{print $1}' ` + do + if [ $A = $B ] + then + isEq="TRUE" + fi + done + + if [ $isEq = "TRUE" ] + then + # TOTAL SIZE + lspv $A | grep "TOTAL PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + # USED SIZE + lspv $A | grep "USED PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + # FREE SIZE + lspv $A | grep "FREE PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + else + echo "" + echo "" + echo "" + fi + +done + +#### CDROM CHECK #### +for A in `lsdev -Cc cdrom | awk '{print $1}'` +do +# NAME +echo $A +# ATTRIBUTE +echo `lscfg -l $A | awk -F $A '{print $2}'` +# TYPE +echo "cdrom" +# AUTHORITY + +# SIZE + isEq="FALSE" + for B in `lspv | awk '{print $1}' ` + do + if [ $A = $B ] + then + isEq="TRUE" + fi + + isEq="TRUE" + fi + done + + if [ $isEq = "TRUE" ] + then + # TOTAL SIZE + lspv $A | grep "TOTAL PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + # USED SIZE + lspv $A | grep "USED PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + # FREE SIZE + lspv $A | grep "FREE PPs" | awk -F"(" '{print $2}' | awk '{print $1}' + else + echo "" + echo "" + echo "" + fi + +done \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDiskCpcty.bat b/src/main/resources/egovframework/egovProps/prg/getDiskCpcty.bat new file mode 100644 index 0000000..67f1862 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDiskCpcty.bat @@ -0,0 +1 @@ +@echo "Not supported in WINDOWS" \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDiskCpcty.sh b/src/main/resources/egovframework/egovProps/prg/getDiskCpcty.sh new file mode 100644 index 0000000..8de6cbe --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDiskCpcty.sh @@ -0,0 +1,18 @@ +# Shell Name : getDiskCpcty.bat +# Description : 디스크 용량 확인 +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 조재영 최초 생성 +# +# @author 공통 서비스 개발팀 조재영 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. +for B in `df -k | grep / | awk '{print $2} {print $3} {print $4} {print $7}'` + do + echo $B +done \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDiskExst.bat b/src/main/resources/egovframework/egovProps/prg/getDiskExst.bat new file mode 100644 index 0000000..67f1862 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDiskExst.bat @@ -0,0 +1 @@ +@echo "Not supported in WINDOWS" \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDiskExst.sh b/src/main/resources/egovframework/egovProps/prg/getDiskExst.sh new file mode 100644 index 0000000..d578f9e --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDiskExst.sh @@ -0,0 +1,15 @@ +# Shell Name : getDiskExst.bat +# Description : 디스크 존재여부 확인(윈도우에서는 지원 안함) +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 조재영 최초 생성 +# +# @author 공통 서비스 개발팀 조재영 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. +lsdev -Cc disk | wc -l \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDiskInfo.bat b/src/main/resources/egovframework/egovProps/prg/getDiskInfo.bat new file mode 100644 index 0000000..35efc5f --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDiskInfo.bat @@ -0,0 +1,16 @@ +@rem Shell Name : getDiskInfo.bat +@rem Description : 시스템 Disk의 이름을 조회하는 Shell +@rem Modification Information +@rem +@rem 수정일 수정자 수정내용 +@rem ------- -------- --------------------------- +@rem 2009.02.13 박지욱 최초 생성 +@rem +@rem author 공통 서비스 개발팀 박지욱 +@rem since 2009. 02. 13 +@rem version 1.0 +@rem see +@rem +@rem Copyright (C) 2009 by MOPAS All right reserved. + +echo Can Not Support \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDiskInfo.sh b/src/main/resources/egovframework/egovProps/prg/getDiskInfo.sh new file mode 100644 index 0000000..0ded896 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDiskInfo.sh @@ -0,0 +1,40 @@ +# Shell Name : getDiskInfo.sh +# Description : 시스템에 존재하는 디스크 정보를 조회하는 Shell +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 박지욱 최초 생성 +# +# @author 공통 서비스 개발팀 박지욱 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. + +#echo $1 -SEARCH NAME (NAME, FULL, USING, VALID) + +#NAME +if [ $1 == "NAME" ] +then + lspv | awk '{print $1}' +fi + +#FULL +if [ $1 == "FULL" ] +then + lspv $2 | grep "TOTAL PPs" | awk -F"(" '{print $2}' | awk '{print $1}' +fi + +#USING +if [ $1 == "USED" ] +then + lspv $2 | grep "USED PPs" | awk -F"(" '{print $2}' | awk '{print $1}' +fi + +#VALID +if [ $1 == "FREE" ] +then + lspv $2 | grep "FREE PPs" | awk -F"(" '{print $2}' | awk '{print $1}' +fi \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDrctryAccess.sh b/src/main/resources/egovframework/egovProps/prg/getDrctryAccess.sh new file mode 100644 index 0000000..5e864cb --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDrctryAccess.sh @@ -0,0 +1,15 @@ +# Shell Name : getDrctryAccess.sh +# Description : 해당되는 디렉토리의 접근권한을 찾는다. +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 조재영 최초 생성 +# +# @author 공통 서비스 개발팀 조재영 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. +ls -alF $1 | grep $2 | awk -F" " '{print $1}' \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDrctryByOwner.bat b/src/main/resources/egovframework/egovProps/prg/getDrctryByOwner.bat new file mode 100644 index 0000000..67f1862 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDrctryByOwner.bat @@ -0,0 +1 @@ +@echo "Not supported in WINDOWS" \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDrctryByOwner.sh b/src/main/resources/egovframework/egovProps/prg/getDrctryByOwner.sh new file mode 100644 index 0000000..7b24dca --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDrctryByOwner.sh @@ -0,0 +1,15 @@ +# Shell Name : getDrctryByOwner.sh +# Description : 해당되는 사용자 계정이 소유주인 디렉토리를 찾는다. +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 조재영 최초 생성 +# +# @author 공통 서비스 개발팀 조재영 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. +find $1 -name $2 -user $3 \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDrctryOwner.bat b/src/main/resources/egovframework/egovProps/prg/getDrctryOwner.bat new file mode 100644 index 0000000..67f1862 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDrctryOwner.bat @@ -0,0 +1 @@ +@echo "Not supported in WINDOWS" \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getDrctryOwner.sh b/src/main/resources/egovframework/egovProps/prg/getDrctryOwner.sh new file mode 100644 index 0000000..b22b57b --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getDrctryOwner.sh @@ -0,0 +1,15 @@ +# Shell Name : getDrctryByOwner.sh +# Description : 해당되는 디렉토리 안 파일의 소유주를 찾는다. +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 조재영 최초 생성 +# +# @author 공통 서비스 개발팀 조재영 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. +ls -alF $1 | grep $2 | awk -F" " '{print $3}' \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getMoryInfo.bat b/src/main/resources/egovframework/egovProps/prg/getMoryInfo.bat new file mode 100644 index 0000000..b3594e3 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getMoryInfo.bat @@ -0,0 +1,16 @@ +@rem Shell Name : getMoryInfo.bat +@rem Description : ý ޸ ü, , ȿ 뷮 ȸϴ Shell +@rem Modification Information +@rem +@rem +@rem ------- -------- --------------------------- +@rem 2009.02.24 +@rem +@rem author +@rem since 2009. 02. 24 +@rem version 1.0 +@rem see +@rem +@rem Copyright (C) 2009 by MOPAS All right reserved. + +systeminfo \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getMoryInfo.sh b/src/main/resources/egovframework/egovProps/prg/getMoryInfo.sh new file mode 100644 index 0000000..46c72e9 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getMoryInfo.sh @@ -0,0 +1,34 @@ +# Shell Name : getMoryInfo.sh +# Description : 시스템에 존재하는 메모리 정보를 조회하는 Shell +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 박지욱 최초 생성 +# +# @author 공통 서비스 개발팀 박지욱 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. + +#echo $1 -SEARCH NAME (FULL, USING, FREE) + +#FULL +if [ $1 == "FULL" ] +then + vmstat | grep "mem=" | awk '{print $4}' +fi + +#USING +if [ $1 == "USED" ] +then + vmstat | tail -1 | awk '{print $3*4096/1024/1024}' +fi + +#VALID +if [ $1 == "FREE" ] +then + vmstat | tail -1 | awk '{print $4*4096/1024/1024}' +fi \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getMountLc.sh b/src/main/resources/egovframework/egovProps/prg/getMountLc.sh new file mode 100644 index 0000000..3ecbde0 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getMountLc.sh @@ -0,0 +1,19 @@ +# Shell Name : getMountLc.sh +# Description : 파일(디렉토리)가 존재하는 파일시스템(마운트된 위치)을 조회하는 Shell +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 박지욱 최초 생성 +# +# @author 공통 서비스 개발팀 박지욱 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. + +#echo $1 -FILE LOCATION +#echo $1 -/ + +df -k $1 | grep $2 | awk -F" " '{print $7}' \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getNetWorkInfo.sh b/src/main/resources/egovframework/egovProps/prg/getNetWorkInfo.sh new file mode 100644 index 0000000..9e3ba8d --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getNetWorkInfo.sh @@ -0,0 +1,63 @@ +# Shell Name : getNetWorkInfo.sh +# Description : 네트워크 정보를 찾는다. +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.23 이용 최초 생성 +# +# @author 공통 서비스 개발팀 이용 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. + +#getNetWorkInfo.sh +#네트워크 정보를 찾는다. +#netstat -v ent0 | grep "하드웨어 주소" -MAC +#prtconf | grep "IP 주소" -IP +#prtconf | grep "서브넷 마스크" -SM +#prtconf | grep "게이트웨이" -GW +#echo $1 +#echo $2 +#MAC +if [ $1 == "MAC" ] +then + netstat -v $2 | grep "하드웨어 주소" | awk '{print $3}' +fi + +#IP +if [ $1 == "IP" ] +then + prtconf | grep "IP 주소" | awk '{print $3}' +fi + +#SM +if [ $1 == "SM" ] +then + prtconf | grep "서브넷 마스크" | awk '{print $3}' +fi + +#GW +if [ $1 == "GW" ] +then + prtconf | grep "게이트웨이" | awk '{print $2}' +fi + +#도메인명 +if [ $1 == "DN" ] +then + hostname +fi + +#DNS +if [ $1 == "DNS" ] +then + host $2 | awk '{print $2}' +fi + +if [ $1 == "SCAN" ] +then + netstat -na | egrep 'tcp|udp' +fi \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getOSInfo.bat b/src/main/resources/egovframework/egovProps/prg/getOSInfo.bat new file mode 100644 index 0000000..7fdd1f7 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getOSInfo.bat @@ -0,0 +1,16 @@ +@rem Shell Name : getOSInfo.bat +@rem Description : 시스템 OS의 이름, 버전, 제조사를 조회하는 Shell +@rem Modification Information +@rem +@rem 수정일 수정자 수정내용 +@rem ------- -------- --------------------------- +@rem 2009.02.13 박지욱 최초 생성 +@rem +@rem author 공통 서비스 개발팀 박지욱 +@rem since 2009. 02. 13 +@rem version 1.0 +@rem see +@rem +@rem Copyright (C) 2009 by MOPAS All right reserved. + +systeminfo \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getOSInfo.sh b/src/main/resources/egovframework/egovProps/prg/getOSInfo.sh new file mode 100644 index 0000000..adee8e9 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getOSInfo.sh @@ -0,0 +1,40 @@ +# Shell Name : getOSInfo.sh +# Description : 시스템 OS의 이름, 버전, 제조사를 조회하는 Shell +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.13 박지욱 최초 생성 +# +# @author 공통 서비스 개발팀 박지욱 +# @since 2009. 02. 13 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. + +#echo $1 -SEARCH NAME (NAME, VERSION, PRDUCTOR) + +#NAME +if [ $1 == "NAME" ] +then + uname -s +fi + +#VERSION +if [ $1 == "VERSION" ] +then + oslevel +fi + +#PRDUCTOR +if [ $1 == "PRDUCTOR" ] +then + prtconf | grep "시스템 모델:" | awk '{print $3}' +fi + +#PROCESSOR +if [ $1 == "PROCESSOR" ] +then + uname -a | awk '{print substr($5,3,6)}' +fi \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getPrductStatus.bat b/src/main/resources/egovframework/egovProps/prg/getPrductStatus.bat new file mode 100644 index 0000000..cdacab1 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getPrductStatus.bat @@ -0,0 +1,16 @@ +@rem Shell Name : getPrductStatus.bat +@rem Description : 시스템에 설치된 서버(WAS,WEB,MAIL서버)의 실행상태를 조회하는 Shell +@rem Modification Information +@rem +@rem 수정일 수정자 수정내용 +@rem ------- -------- --------------------------- +@rem 2009.02.11 박지욱 최초 생성 +@rem +@rem author 공통 서비스 개발팀 박지욱 +@rem since 2009. 02. 11 +@rem version 1.0 +@rem see +@rem +@rem Copyright (C) 2009 by MOPAS All right reserved. + +netstat -na \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getPrductStatus.sh b/src/main/resources/egovframework/egovProps/prg/getPrductStatus.sh new file mode 100644 index 0000000..a1dfd75 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getPrductStatus.sh @@ -0,0 +1,18 @@ +# Shell Name : getPrductStatus.sh +# Description : 시스템에 설치된 서버(WAS,WEB,MAIL서버)의 실행상태를 조회하는 Shell +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.11 박지욱 최초 생성 +# +# @author 공통 서비스 개발팀 박지욱 +# @since 2009. 02. 11 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. + +#echo $1 -PORT + +netstat -na | grep -w "LISTEN" | grep -c $1 \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getPrductVersion.bat b/src/main/resources/egovframework/egovProps/prg/getPrductVersion.bat new file mode 100644 index 0000000..d948371 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getPrductVersion.bat @@ -0,0 +1,43 @@ +@rem Shell Name : getPrductVersion.bat +@rem Description : 시스템에 설치된 서버(WAS,WEB,MAIL서버)의 버전을 조회하는 Shell +@rem Modification Information +@rem +@rem 수정일 수정자 수정내용 +@rem ------- -------- --------------------------- +@rem 2009.02.11 박지욱 최초 생성 +@rem +@rem author 공통 서비스 개발팀 박지욱 +@rem since 2009. 02. 11 +@rem version 1.0 +@rem see +@rem +@rem Copyright (C) 2009 by MOPAS All right reserved. + +IF "%1"=="WEBLOGIC" goto step1 +IF "%1"=="JEUS" goto step2 +IF "%1"=="JBOSS" goto step3 +goto error + +:step1 +set CMMD1=java weblogic.Admin -username weblogic -password weblogic VERSION +set CMMD2= +goto done + + +:step2 +set CMMD1=jeusadmin -version +set CMMD2= +goto done + + +:step3 +set CMMD1=twiddle.bat -s localhost:1099 -u admin -p admin get "jboss.system:type=Server" +set CMMD2=find "Version=" +goto done + +:error +@echo Usage: getPrductVersion 서버이름 +@echo example) getPrductVersion WEBLOGIC + +:done +%CMMD1%|%CMMD2% \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/getPrductVersion.sh b/src/main/resources/egovframework/egovProps/prg/getPrductVersion.sh new file mode 100644 index 0000000..c0ffddb --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/getPrductVersion.sh @@ -0,0 +1,34 @@ +# Shell Name : getPrductVersion.sh +# Description : 시스템에 설치된 서버(WAS,WEB,MAIL서버)의 버전을 조회하는 Shell +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.11 박지욱 최초 생성 +# +# @author 공통 서비스 개발팀 박지욱 +# @since 2009. 02. 11 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. + +#echo $1 -SERVER NAME + +#WEBLOGIC +if [ $1 == "WEBLOGIC" ] +then + java weblogic.Admin -username weblogic -password weblogic VERSION +fi + +#JEUS +if [ $1 == "JEUS" ] +then + jeusadmin -version +fi + +#JBOSS +if [ $1 == "JBOSS" ] +then + /user/com/jboss/bin/twiddle.sh -s localhost:1099 -u admin -p admin get "jboss.system:type=Server" | grep "Version=" +fi \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/moveDrctry.bat b/src/main/resources/egovframework/egovProps/prg/moveDrctry.bat new file mode 100644 index 0000000..a7044dc --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/moveDrctry.bat @@ -0,0 +1 @@ +move %1 %2 \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/moveDrctry.sh b/src/main/resources/egovframework/egovProps/prg/moveDrctry.sh new file mode 100644 index 0000000..31b2394 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/moveDrctry.sh @@ -0,0 +1,15 @@ +# Shell Name : moveDrctry.sh +# Description : 파일을 이동한다. +# Modification Information +# +# 수정일 수정자 수정내용 +# ------- -------- --------------------------- +# 2009.02.11 박지욱 최초 생성 +# +# @author 공통 서비스 개발팀 박지욱 +# @since 2009. 02. 11 +# @version 1.0 +# @see +# +# Copyright (C) 2009 by MOPAS All right reserved. +mv $1 $2 \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/prg/sh_001.bat b/src/main/resources/egovframework/egovProps/prg/sh_001.bat new file mode 100644 index 0000000..7006cb9 --- /dev/null +++ b/src/main/resources/egovframework/egovProps/prg/sh_001.bat @@ -0,0 +1 @@ +@hostname \ No newline at end of file diff --git a/src/main/resources/egovframework/message/com/message-common.properties b/src/main/resources/egovframework/message/com/message-common.properties new file mode 100644 index 0000000..3d5d098 --- /dev/null +++ b/src/main/resources/egovframework/message/com/message-common.properties @@ -0,0 +1,328 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible=\uac00\ub2a5 +button.impossible=\ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 +button.back = \ub4a4\ub85c +button.yes = \uc608 +button.no = \uc544\ub2c8\uc624 +button.home = \ud648 +button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0 +button.cop = \ud611\uc5c5 +button.wrkstart = \ucd9c\uadfc +button.wrkend = \ud1f4\uadfc + +#UI Common Message# +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.login.password = \ud328\uc2a4\uc6cc\ub4dc \uc790\ub9ac \uc218\uac00 \uc77c\uce58 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.(8\uc790\ub9ac \uc774\uc0c1 20\uc790\ub9ac \uc774\ud558) +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI Cop Message# +cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790 +cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790 +cop.private = \ube44\uacf5\uac1c +cop.public = \uacf5\uac1c + +cop.adbkNm = \uc8fc\uc18c\ub85d\uba85 +cop.othbcScope = \uacf5\uac1c\ubc94\uc704 +cop.company = \ud68c\uc0ac +cop.part = \ubd80\uc11c +cop.man = \uac1c\uc778 +cop.adbkUser = \uad6c\uc131\uc6d0 +cop.bbsNm = \uac8c\uc2dc\ud310\uba85 +cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c +cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615 +cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131 +cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80 +cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\uac00\ub2a5\uc5ec\ubd80 +cop.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790 +cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4 +cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4. +cop.nttSj = \uc81c\ubaa9 +cop.nttCn = \uae00\ub0b4\uc6a9 +cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c +cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c +cop.ntcrNm = \uc791\uc131\uc790 +cop.password = \ud328\uc2a4\uc6cc\ub4dc +cop.atchFile = \ud30c\uc77c\ucca8\ubd80 +cop.guestList = \ubc29\uba85\ub85d +cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9 +cop.noticeTerm = \uac8c\uc2dc\uae30\uac04 +cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85 +cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c +cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790 +cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790 +cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c +cop.clbNm = \ub3d9\ud638\ud68c \uba85 +cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85 +cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84 +cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c +cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80 +cop.ncrdNm = \uc774\ub984 +cop.cmpnyNm = \ud68c\uc0ac\uba85 +cop.deptNm = \ubd80\uc11c\uba85 +cop.ofcpsNm = \uc9c1\uc704 +cop.clsfNm = \uc9c1\uae09 +cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c +cop.telNo = \uc804\ud654\ubc88\ud638 +cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638 +cop.adres = \uc8fc\uc18c +cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80 +cop.publicAt = \uacf5\uac1c\uc5ec\ubd80 +cop.remark = \ube44\uace0 +cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4 +cop.preview = \ubbf8\ub9ac\ubcf4\uae30 + +cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.reregist.msg=\uc7ac\uac00\uc785 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.registmanager.msg=\uc6b4\uc601\uc9c4\uc73c\ub85c \ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.use.msg=\uc0ac\uc6a9 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.unuse.msg=\uc0ac\uc6a9\uc911\uc9c0 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.delete.confirm.msg=\uc0ac\uc6a9\uc911\uc9c0\ub97c \uc120\ud0dd\ud558\uc2e4 \uacbd\uc6b0 \ub2e4\uc2dc \uc0ac\uc6a9\uc73c\ub85c \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. +cop.ing.msg=\uc2b9\uc778\uc694\uccad \uc911\uc785\ub2c8\ub2e4. +cop.request.msg=\uac00\uc785\uc2e0\uccad\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc694\uccad\ub418\uc5c8\uc2b5\ub2c8\ub2e4 +cop.password.msg=\ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624. +cop.password.not.same.msg=\ud328\uc2a4\uc6cc\ub4dc\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +cop.comment.wrterNm = \uc791\uc131\uc790 +cop.comment.commentCn = \ub0b4\uc6a9 +cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.satisfaction.wrterNm = \uc791\uc131\uc790 +cop.satisfaction.stsfdgCn = \ub0b4\uc6a9 +cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4 +cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85 + +#UI USS Message# +uss.ion.noi.ntfcSj=\uc81c\ubaa9 +uss.ion.noi.ntfcCn=\ub0b4\uc6a9 +uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790 +uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84 +uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 +uss.ion.noi.bhNtfcIntrvl.msg=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI COP Message# +cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9 +cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.send=\uc804\uc1a1 +cop.sms.addRecptn=\ucd94\uac00 +cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. + +#UI sym.log Message# +sym.log.histSeCode = \uc774\ub825\uad6c\ubd84 +sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85 +sym.log.histCn = \uc774\ub825\ub0b4\uc6a9 +sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c +sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c +sym.ems.title = \uc81c\ubaa9 +sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9 + +#Vlidator Errors# +errors.prefix=

+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) integer \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.english={0}\uc740(\ub294) \uc601\ubb38\ub9cc \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc788\uc2b5\ub2c8\ub2e4. +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +error.security.runtime.error = error + +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85 +wordDicaryVO.engNm=\uc601\ubb38\uba85 +wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85 +wordDicaryVO.synonm=\ub3d9\uc758\uc5b4 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9 +cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9 +cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85 +cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9 +cnsltManageVO.firstMoblphonNo=\ud734\ub300\ud3f0\uc804\ud654\ubc88\ud638(\uc55e\ubc88) +cnsltManageVO.middleMbtlnum=\ud734\ub300\ud3f0\uc804\ud654\ubc88\ud638(\uad6d\ubc88) +cnsltManageVO.endMbtlnum=\ud734\ub300\ud3f0\uc804\ud654\ubc88\ud638(\uc9c0\ubc88) + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85 +siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL +siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85 +siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958 +siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80 +siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80 + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85 +recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL +recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85 +recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720 +recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790 + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84 +hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758 +hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85 + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9 +newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9 +newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790 + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- roughMapVO# +roughMapVO.roughMapSj=\uc57d\ub3c4\uc81c\ubaa9 +roughMapVO.infoWindow=\uc57d\ub3c4\ud45c\uc2dc + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85 +stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9 +stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9 + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9 + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85 +qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = \ubcf4\uace0\uc11cID +sts.title = \ubcf4\uace0\uc11c\uba85 +sts.category = \ubcf4\uace0\uc11c\uc720\ud615 +sts.status = \uc9c4\ud589\uc0c1\ud0dc +sts.regDate = \ub4f1\ub85d\uc77c\uc2dc + +#Rest day messages# +sym.cal.restDay = \ud734\uc77c\uc77c\uc790 +sym.cal.restName = \ud734\uc77c\uba85 +sym.cal.restDetail = \ud734\uc77c\uc124\uba85 +sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.firstMoblphonNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleMbtlnum=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endMbtlnum=\ub05d\uc804\ud654\ubc88\ud638 + +#mobile \uba54\ub274\uad00\ub9ac# +mgr.menuMngt = \uba54\ub274\uad00\ub9ac +mgr.menuList = \uba54\ub274\ubaa9\ub85d\uc870\ud68c +mgr.menuNm = \uba54\ub274\uba85 +mgr.menuDetail = \uba54\ub274\uc0c1\uc138\uc870\ud68c +mgr.menuRegist = \uba54\ub274\ub4f1\ub85d +mgr.menuUpdt = \uba54\ub274\uc218\uc815 +mgr.code = \ucf54\ub4dc +mgr.menuCode = \uba54\ub274\ucf54\ub4dc +mgr.UpperMenu = \uc0c1\uc704\uba54\ub274 +mgr.cnncUrl = \uc5f0\uacb0URL +mgr.actvtyAt = \uc0ac\uc6a9\uc5ec\ubd80 +mgr.menuDc = \uc124\uba85 +mgr.mobileEgov = \ubaa8\ubc14\uc77c \uc804\uc790\uc815\ubd80 \ No newline at end of file diff --git a/src/main/resources/egovframework/message/com/message-common_en.properties b/src/main/resources/egovframework/message/com/message-common_en.properties new file mode 100644 index 0000000..b140877 --- /dev/null +++ b/src/main/resources/egovframework/message/com/message-common_en.properties @@ -0,0 +1,328 @@ +fail.common.msg=error ocurred! +fail.common.sql=sql error ocurred! error code: {0}, error msg: {1} +info.nodata.msg=no data found. + +#UI Common resource# +button.search=Search +button.use=use +button.notUsed=Not used +button.inquire=inquire +button.update=updateCounsel +button.create=create +button.delete=delete +button.deleteDatabase=Wiping +button.close=close +button.save=save +button.list=list +button.reset=reset +button.passwordUpdate=password update +button.subscribe=subscribe +button.realname=realname confirm +button.moveToGpin=move to gpin confirm +button.moveToIhidnum=move to ihidnum confirm +button.agree=agree +button.disagree=disagree +button.possible=possible +button.impossible=impossible +button.qnaregist=Q&A create +button.cnsltregist=Counsel create +button.preview=preview +button.next=nexut +button.add=add it now +button.confirm=confirm +button.back =back +button.yes =yes +button.no =no +button.home =home +button.user =user support +button.cop =cooperation +button.wrkstart = work start +button.wrkend = work end + +#UI Common Message# +common.save.msg=confirm save? +common.regist.msg=confirm regist? +common.delete.msg=confirm delete? +common.update.msg=confirm update? +common.nodata.msg=There is no data. please choose another seach keyword +common.required.msg=is required field +common.acknowledgement.msg=confirm acknowledgement? +common.acknowledgementcancel.msg=confirm acknowledgement cancel? + +success.request.msg=you're request successfully done +success.common.select=successfully selected +success.common.insert=successfully inserted +success.common.update=successfully updated +success.common.delete=successfully deleted + +common.imposbl.fileupload = cannot upload files +common.isConfmDe.msg=Please check the approval date box +common.isExist.msg = already exist + +fail.common.insert = fail to insert. +fail.common.update = fail to update +fail.common.delete = fail to delete +fail.common.delete.upperMenuExist = fail to delete[upperMenuId foreign key error] +fail.common.select = fail to select +fail.common.login = login information is not correct +fail.common.login.password = password information is not correct(password digit should be 8 to 20) +fail.common.idsearch = can not find id +fail.common.pwsearch = can not find password +fail.request.msg = Failed to handle the request + +#UI User Message# +fail.user.passwordUpdate1=current password is not correct +fail.user.passwordUpdate2=password confirm is not correct +info.user.rlnmCnfirm=realname confirm ready +success.user.rlnmCnfirm=it is realname +fail.user.rlnmCnfirm=it is not realname +fail.user.connectFail=connection fail +info.user.rlnmPinCnfirm=Using the i-PIN ID, please check your real name +success.user.rlnmPinCnfirm=Consistent with the registration data of the i-PIN +fail.user.rlnmPinCnfirm=i-PIN does not match the registered data + +#UI Cop Message# +cop.extrlUser = External User +cop.intrlUser = Internal User +cop.private = private +cop.public = public + +cop.adbkNm = Address Name +cop.othbcScope = Disclose Range +cop.company = compnay +cop.part = part +cop.man = man +cop.adbkUser = member +cop.bbsNm = BBS Name +cop.bbsIntrcn = BBS Introduction +cop.bbsTyCode = BBS Type +cop.bbsAttrbCode = BBS Attribute +cop.replyPosblAt = Reply Possible Alternative +cop.fileAtchPosblAt = File Attach Possible Alternative +cop.posblAtchFileNumber = Possible Attach File Number +cop.tmplatId = Template Information +cop.guestList.subject = This article registered by Guest List +cop.nttSj = Notice Subject +cop.nttCn = Notice Contents +cop.ntceBgnde = Notice Start Date +cop.ntceEndde = Notice End Date +cop.ntcrNm = Noticer Name +cop.password = PassWord +cop.atchFile = Attach Files +cop.guestList = Guest List +cop.guestListCn = Guest List Contents +cop.noticeTerm = Notice term +cop.atchFileList = Attached File List +cop.cmmntyNm = Community Name +cop.cmmntyIntrcn = Community Introduction +cop.cmmntyMngr = Community Manager +cop.clbOprtr = Club Operator +cop.clbIntrcn = Club Introduction +cop.clbNm = Club Name +cop.tmplatNm = Template Name +cop.tmplatSeCode = Template Se Code +cop.tmplatCours = Template Cours +cop.useAt = Use Alternative +cop.ncrdNm = NameCard user name +cop.cmpnyNm = Company name +cop.deptNm = Department name +cop.ofcpsNm = OFCPS name +cop.clsfNm = Class Name +cop.emailAdres = E-mail +cop.telNo = Tel No. +cop.mbtlNum = Mobile +cop.adres = Address +cop.extrlUserAt = External User alternative +cop.publicAt = Public open alternative +cop.remark = Remark +cop.trgetNm = Company/Club Information +cop.preview = preview + +cop.withdraw.msg=confirm withdrawal memebership? +cop.reregist.msg=confirm re-registration? +cop.registmanager.msg=confirm registration of manager? +cop.use.msg=confirm use? +cop.unuse.msg=confirm stop using? +cop.delete.confirm.msg=If you choose to disable the re-use change is impossible. +cop.ing.msg=Approval is being requested. +cop.request.msg=Signup is normally requested. +cop.password.msg=Please enter your password. +cop.password.not.same.msg=Password do not match. + +cop.comment.wrterNm = Writer Name +cop.comment.commentCn = Comment +cop.comment.commentPassword = Password + +cop.satisfaction.wrterNm = Writer Name +cop.satisfaction.stsfdgCn = Satisfaction +cop.satisfaction.stsfdg = Satisfaction Degree +cop.satisfaction.stsfdgPassword = Password + +cop.scrap.scrapNm = Scrap Name + +#UI USS Message# +uss.ion.noi.ntfcSj=Subject +uss.ion.noi.ntfcCn=Contents +uss.ion.noi.ntfcDate=Notification Date +uss.ion.noi.ntfcTime=Notification Time +uss.ion.noi.ntfcHH=Notification Hour +uss.ion.noi.ntfcMM=Notification Minute +uss.ion.noi.bhNtfcIntrvl=Beforehand Interval +uss.ion.noi.bhNtfcIntrvl.msg=Beforehand Interval is required. +uss.ion.noi.alertNtfcTime=Date and time of notification is not valid. + +#UI COP Message# +cop.sms.trnsmitTelno=Sender +cop.sms.trnsmitCn=Contents +cop.sms.recptnTelno=Receiver(s) +cop.sms.send=Send +cop.sms.addRecptn=Add +cop.sms.recptnTelno.msg=The phone number of receiver is required. + +#UI sym.log Message# +sym.log.histSeCode = History Code +sym.log.sysNm = System Name +sym.log.histCn = History Contents +sym.log.atchFile = Attached File +sym.log.atchFileList = Attached File List +sym.ems.receiver = Receiver +sym.ems.title = Title +sym.ems.content = Content + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0} is required. +errors.minlength={0} can not be less than {1} characters. +errors.maxlength={0} can not be greater than {1} characters. +errors.invalid={0} is invalid. + +errors.byte={0} must be a byte. +errors.short={0} must be a short. +errors.integer={0} must be an integer. +errors.long={0} must be a long. +errors.float={0} must be a float. +errors.double={0} must be a double. + +errors.date={0} is not a date. +errors.range={0} is not in the range {1} through {2}. +errors.creditcard={0} is an invalid credit card number. +errors.email={0} is an invalid e-mail address. + +errors.ihidnum=Is not a valid Social Security number +errors.korean={0} should be entered with their Korean +errors.ip=Invalid IP address. +errors.english={0}is an invalid English character. +errors.notKorean={0} should not be entered with their Korean + +errors.password1={0} must be entered within 8 to 20 characters. +errors.password2={0} is Korean, special characters, spaces are not allowed. +errors.password3={0} can not be used continuously for more than four sequential digits. +errors.password4={0} can not be used continuously for more than 4 letters or numbers that are repeated. + +error.security.runtime.error = error + +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=word name +wordDicaryVO.engNm=english name +wordDicaryVO.wordDc=word Described +wordDicaryVO.synonm=Synonym + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=Counseling subject +cnsltManageVO.cnsltCn=Counseling contents +cnsltManageVO.writngPassword=writngPassword +cnsltManageVO.areaNo=cell phone number(first) +cnsltManageVO.middleTelno=cell phone number(second) +cnsltManageVO.endTelno=cell phone number(last) +cnsltManageVO.wrterNm=Writer name +cnsltManageVO.managtCn=Answers contents +cnsltManageVO.firstMoblphonNo=cell phone number(first) +cnsltManageVO.middleMbtlnum=cell phone number(second) +cnsltManageVO.endMbtlnum=cell phone number(last) + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=site name +siteManageVO.siteUrl=site URL +siteManageVO.siteDc=site described +siteManageVO.siteThemaClCode=Site Subject Classification +siteManageVO.actvtyAt=Activity Status +siteManageVO.useAt=Whether or not to use + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=Recommendation site Name +recomendSiteManageVO.recomendSiteUrl=Recommendation site URL +recomendSiteManageVO.recomendSiteDc=Recommendation site description +recomendSiteManageVO.recomendResnCn=Recommendation site Reason +recomendSiteManageVO.confmDe=confirm date + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=help division +hpcmManageVO.hpcmDf=help definition +hpcmManageVO.hpcmDc=help description + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=news subject +newsManageVO.newsCn=news contents +newsManageVO.ntceDe=Post date + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=question subject +faqManageVO.qestnCn=question contents +faqManageVO.answerCn=answer contents + +#Vlidator Errors- roughMapVO# +roughMapVO.roughMapSj=rougmap subject +roughMapVO.infoWindow=infowindow + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=Terms of name +stplatManageVO.useStplatCn=Terms of contents +stplatManageVO.infoProvdAgreCn=Informational contents agreement + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=contents Copyright Policy + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=question subject +qnaManageVO.qestnCn=question contents +qnaManageVO.writngPassword=writing pasword +qnaManageVO.areaNo=cell phone number(first) +qnaManageVO.middleTelno=cell phone number(second) +qnaManageVO.endTelno=cell phone number(last) +qnaManageVO.wrterNm=writing name +qnaManageVO.answerCn=answer content + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = Report ID +sts.title = Report Title +sts.category = Report Category +sts.status = Report Status +sts.regDate = Registration Date + +#Rest day messages# +sym.cal.restDay = Holiday Date +sym.cal.restName = Holiday Name +sym.cal.restDetail = Holiday Detail +sym.cal.restCategory = Holiday Category + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.firstMoblphonNo=cell phone number(first) +cnsltManageVO.middleMbtlnum=cell phone number(second) +cnsltManageVO.endMbtlnum=cell phone number(last) + +#mobile menu management# +mgr.menuMngt =menu management +mgr.menuList =menu list +mgr.menuNm =menu name +mgr.menuDetail =menu detail +mgr.menuRegist =menu registration +mgr.menuUpdt =menu update +mgr.code =code +mgr.menuCode =menu code +mgr.UpperMenu =upper menu +mgr.cnncUrl =connection URL +mgr.actvtyAt =use alternative +mgr.menuDc =description +mgr.mobileEgov = mobile eGovFrame \ No newline at end of file diff --git a/src/main/resources/egovframework/message/com/message-common_ko.properties b/src/main/resources/egovframework/message/com/message-common_ko.properties new file mode 100644 index 0000000..3d5d098 --- /dev/null +++ b/src/main/resources/egovframework/message/com/message-common_ko.properties @@ -0,0 +1,328 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible=\uac00\ub2a5 +button.impossible=\ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 +button.back = \ub4a4\ub85c +button.yes = \uc608 +button.no = \uc544\ub2c8\uc624 +button.home = \ud648 +button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0 +button.cop = \ud611\uc5c5 +button.wrkstart = \ucd9c\uadfc +button.wrkend = \ud1f4\uadfc + +#UI Common Message# +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.login.password = \ud328\uc2a4\uc6cc\ub4dc \uc790\ub9ac \uc218\uac00 \uc77c\uce58 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.(8\uc790\ub9ac \uc774\uc0c1 20\uc790\ub9ac \uc774\ud558) +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI Cop Message# +cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790 +cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790 +cop.private = \ube44\uacf5\uac1c +cop.public = \uacf5\uac1c + +cop.adbkNm = \uc8fc\uc18c\ub85d\uba85 +cop.othbcScope = \uacf5\uac1c\ubc94\uc704 +cop.company = \ud68c\uc0ac +cop.part = \ubd80\uc11c +cop.man = \uac1c\uc778 +cop.adbkUser = \uad6c\uc131\uc6d0 +cop.bbsNm = \uac8c\uc2dc\ud310\uba85 +cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c +cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615 +cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131 +cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80 +cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\uac00\ub2a5\uc5ec\ubd80 +cop.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790 +cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4 +cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4. +cop.nttSj = \uc81c\ubaa9 +cop.nttCn = \uae00\ub0b4\uc6a9 +cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c +cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c +cop.ntcrNm = \uc791\uc131\uc790 +cop.password = \ud328\uc2a4\uc6cc\ub4dc +cop.atchFile = \ud30c\uc77c\ucca8\ubd80 +cop.guestList = \ubc29\uba85\ub85d +cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9 +cop.noticeTerm = \uac8c\uc2dc\uae30\uac04 +cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85 +cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c +cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790 +cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790 +cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c +cop.clbNm = \ub3d9\ud638\ud68c \uba85 +cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85 +cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84 +cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c +cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80 +cop.ncrdNm = \uc774\ub984 +cop.cmpnyNm = \ud68c\uc0ac\uba85 +cop.deptNm = \ubd80\uc11c\uba85 +cop.ofcpsNm = \uc9c1\uc704 +cop.clsfNm = \uc9c1\uae09 +cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c +cop.telNo = \uc804\ud654\ubc88\ud638 +cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638 +cop.adres = \uc8fc\uc18c +cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80 +cop.publicAt = \uacf5\uac1c\uc5ec\ubd80 +cop.remark = \ube44\uace0 +cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4 +cop.preview = \ubbf8\ub9ac\ubcf4\uae30 + +cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.reregist.msg=\uc7ac\uac00\uc785 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.registmanager.msg=\uc6b4\uc601\uc9c4\uc73c\ub85c \ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.use.msg=\uc0ac\uc6a9 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.unuse.msg=\uc0ac\uc6a9\uc911\uc9c0 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.delete.confirm.msg=\uc0ac\uc6a9\uc911\uc9c0\ub97c \uc120\ud0dd\ud558\uc2e4 \uacbd\uc6b0 \ub2e4\uc2dc \uc0ac\uc6a9\uc73c\ub85c \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. +cop.ing.msg=\uc2b9\uc778\uc694\uccad \uc911\uc785\ub2c8\ub2e4. +cop.request.msg=\uac00\uc785\uc2e0\uccad\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc694\uccad\ub418\uc5c8\uc2b5\ub2c8\ub2e4 +cop.password.msg=\ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624. +cop.password.not.same.msg=\ud328\uc2a4\uc6cc\ub4dc\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +cop.comment.wrterNm = \uc791\uc131\uc790 +cop.comment.commentCn = \ub0b4\uc6a9 +cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.satisfaction.wrterNm = \uc791\uc131\uc790 +cop.satisfaction.stsfdgCn = \ub0b4\uc6a9 +cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4 +cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85 + +#UI USS Message# +uss.ion.noi.ntfcSj=\uc81c\ubaa9 +uss.ion.noi.ntfcCn=\ub0b4\uc6a9 +uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790 +uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84 +uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 +uss.ion.noi.bhNtfcIntrvl.msg=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI COP Message# +cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9 +cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.send=\uc804\uc1a1 +cop.sms.addRecptn=\ucd94\uac00 +cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. + +#UI sym.log Message# +sym.log.histSeCode = \uc774\ub825\uad6c\ubd84 +sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85 +sym.log.histCn = \uc774\ub825\ub0b4\uc6a9 +sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c +sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c +sym.ems.title = \uc81c\ubaa9 +sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9 + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) integer \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.english={0}\uc740(\ub294) \uc601\ubb38\ub9cc \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc788\uc2b5\ub2c8\ub2e4. +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +error.security.runtime.error = error + +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85 +wordDicaryVO.engNm=\uc601\ubb38\uba85 +wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85 +wordDicaryVO.synonm=\ub3d9\uc758\uc5b4 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9 +cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9 +cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85 +cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9 +cnsltManageVO.firstMoblphonNo=\ud734\ub300\ud3f0\uc804\ud654\ubc88\ud638(\uc55e\ubc88) +cnsltManageVO.middleMbtlnum=\ud734\ub300\ud3f0\uc804\ud654\ubc88\ud638(\uad6d\ubc88) +cnsltManageVO.endMbtlnum=\ud734\ub300\ud3f0\uc804\ud654\ubc88\ud638(\uc9c0\ubc88) + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85 +siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL +siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85 +siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958 +siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80 +siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80 + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85 +recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL +recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85 +recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720 +recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790 + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84 +hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758 +hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85 + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9 +newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9 +newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790 + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- roughMapVO# +roughMapVO.roughMapSj=\uc57d\ub3c4\uc81c\ubaa9 +roughMapVO.infoWindow=\uc57d\ub3c4\ud45c\uc2dc + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85 +stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9 +stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9 + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9 + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85 +qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = \ubcf4\uace0\uc11cID +sts.title = \ubcf4\uace0\uc11c\uba85 +sts.category = \ubcf4\uace0\uc11c\uc720\ud615 +sts.status = \uc9c4\ud589\uc0c1\ud0dc +sts.regDate = \ub4f1\ub85d\uc77c\uc2dc + +#Rest day messages# +sym.cal.restDay = \ud734\uc77c\uc77c\uc790 +sym.cal.restName = \ud734\uc77c\uba85 +sym.cal.restDetail = \ud734\uc77c\uc124\uba85 +sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.firstMoblphonNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleMbtlnum=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endMbtlnum=\ub05d\uc804\ud654\ubc88\ud638 + +#mobile \uba54\ub274\uad00\ub9ac# +mgr.menuMngt = \uba54\ub274\uad00\ub9ac +mgr.menuList = \uba54\ub274\ubaa9\ub85d\uc870\ud68c +mgr.menuNm = \uba54\ub274\uba85 +mgr.menuDetail = \uba54\ub274\uc0c1\uc138\uc870\ud68c +mgr.menuRegist = \uba54\ub274\ub4f1\ub85d +mgr.menuUpdt = \uba54\ub274\uc218\uc815 +mgr.code = \ucf54\ub4dc +mgr.menuCode = \uba54\ub274\ucf54\ub4dc +mgr.UpperMenu = \uc0c1\uc704\uba54\ub274 +mgr.cnncUrl = \uc5f0\uacb0URL +mgr.actvtyAt = \uc0ac\uc6a9\uc5ec\ubd80 +mgr.menuDc = \uc124\uba85 +mgr.mobileEgov = \ubaa8\ubc14\uc77c \uc804\uc790\uc815\ubd80 \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/context-aop.xml b/src/main/resources/egovframework/spring/com/context-aop.xml new file mode 100644 index 0000000..37449ec --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-aop.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-aspect.xml b/src/main/resources/egovframework/spring/com/context-aspect.xml new file mode 100644 index 0000000..6a8ff87 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-aspect.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + **service.impl.* + + + + + + + + + + + + + + + + **service.impl.* + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/context-common-edosi.xml b/src/main/resources/egovframework/spring/com/context-common-edosi.xml new file mode 100644 index 0000000..0176447 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-common-edosi.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/context-common.xml b/src/main/resources/egovframework/spring/com/context-common.xml new file mode 100644 index 0000000..552ccb5 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-common.xml @@ -0,0 +1,81 @@ + + + + + + + classpath:/egovframework/message/com/message-common + classpath:/egovframework/rte/fdl/idgnr/messages/idgnr + classpath:/egovframework/rte/fdl/property/messages/properties + classpath:/egovframework/egovProps/globals + + + + 60 + + + + + + + + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-datasource.xml b/src/main/resources/egovframework/spring/com/context-datasource.xml new file mode 100644 index 0000000..385995f --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-datasource.xml @@ -0,0 +1,68 @@ + + + + + + + classpath:/egovframework/egovProps/globals.properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-datasource.xml_20241011 b/src/main/resources/egovframework/spring/com/context-datasource.xml_20241011 new file mode 100644 index 0000000..55f3c3e --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-datasource.xml_20241011 @@ -0,0 +1,78 @@ + + + + + + + classpath:/egovframework/egovProps/globals.properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-egovuserdetailshelper.xml b/src/main/resources/egovframework/spring/com/context-egovuserdetailshelper.xml new file mode 100644 index 0000000..047d690 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-egovuserdetailshelper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-excel.xml b/src/main/resources/egovframework/spring/com/context-excel.xml new file mode 100644 index 0000000..30a260a --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-excel.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-properties.xml b/src/main/resources/egovframework/spring/com/context-properties.xml new file mode 100644 index 0000000..1f88375 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-properties.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-security.xml b/src/main/resources/egovframework/spring/com/context-security.xml new file mode 100644 index 0000000..ab49b6c --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-security.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-sqlMap.xml b/src/main/resources/egovframework/spring/com/context-sqlMap.xml new file mode 100644 index 0000000..ac4fc4e --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-sqlMap.xml @@ -0,0 +1,32 @@ + + + + + + + classpath:/egovframework/egovProps/globals.properties + + + + + + + + + + + + classpath:/egovframework/sqlmap/config/${Globals.DbType}/*.xml + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-transaction.xml b/src/main/resources/egovframework/spring/com/context-transaction.xml new file mode 100644 index 0000000..2857a4a --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-transaction.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/context-validator.xml b/src/main/resources/egovframework/spring/com/context-validator.xml new file mode 100644 index 0000000..080ef9b --- /dev/null +++ b/src/main/resources/egovframework/spring/com/context-validator.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + classpath:/egovframework/validator/com-rules.xml + classpath:/egovframework/validator/validator-rules.xml + classpath:/egovframework/validator/**/*.xml + + + + + diff --git a/src/main/resources/egovframework/spring/com/idgn/context-idgn-AdministCodeRecptn.xml b/src/main/resources/egovframework/spring/com/idgn/context-idgn-AdministCodeRecptn.xml new file mode 100644 index 0000000..cd0998b --- /dev/null +++ b/src/main/resources/egovframework/spring/com/idgn/context-idgn-AdministCodeRecptn.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/idgn/context-idgn-File.xml b/src/main/resources/egovframework/spring/com/idgn/context-idgn-File.xml new file mode 100644 index 0000000..ffa3abf --- /dev/null +++ b/src/main/resources/egovframework/spring/com/idgn/context-idgn-File.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/idgn/context-idgn-Group.xml b/src/main/resources/egovframework/spring/com/idgn/context-idgn-Group.xml new file mode 100644 index 0000000..a26f425 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/idgn/context-idgn-Group.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/idgn/context-idgn-InsttCodeRecptn.xml b/src/main/resources/egovframework/spring/com/idgn/context-idgn-InsttCodeRecptn.xml new file mode 100644 index 0000000..0a5e01c --- /dev/null +++ b/src/main/resources/egovframework/spring/com/idgn/context-idgn-InsttCodeRecptn.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/idgn/context-idgn-MailMsg.xml b/src/main/resources/egovframework/spring/com/idgn/context-idgn-MailMsg.xml new file mode 100644 index 0000000..40b10e7 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/idgn/context-idgn-MailMsg.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/idgn/context-idgn-RestDe.xml b/src/main/resources/egovframework/spring/com/idgn/context-idgn-RestDe.xml new file mode 100644 index 0000000..80b2d41 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/idgn/context-idgn-RestDe.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/idgn/context-idgn-Role.xml b/src/main/resources/egovframework/spring/com/idgn/context-idgn-Role.xml new file mode 100644 index 0000000..e521b00 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/idgn/context-idgn-Role.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/com/idgn/context-idgn-edosi.xml b/src/main/resources/egovframework/spring/com/idgn/context-idgn-edosi.xml new file mode 100644 index 0000000..9123b7e --- /dev/null +++ b/src/main/resources/egovframework/spring/com/idgn/context-idgn-edosi.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/scheduling/context-scheduling-sym-ccm-acr.xml b/src/main/resources/egovframework/spring/com/scheduling/context-scheduling-sym-ccm-acr.xml new file mode 100644 index 0000000..b1cefc6 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/scheduling/context-scheduling-sym-ccm-acr.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/com/scheduling/context-scheduling-sym-ccm-icr.xml b/src/main/resources/egovframework/spring/com/scheduling/context-scheduling-sym-ccm-icr.xml new file mode 100644 index 0000000..b7ccfb3 --- /dev/null +++ b/src/main/resources/egovframework/spring/com/scheduling/context-scheduling-sym-ccm-icr.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/comtccmmndetailcode/Comtccmmndetailcode_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/comtccmmndetailcode/Comtccmmndetailcode_SQL_Mysql.xml new file mode 100644 index 0000000..da4a52c --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/comtccmmndetailcode/Comtccmmndetailcode_SQL_Mysql.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO COMTCCMMNDETAILCODE + ( CODE_ID + , CODE + , CODE_NM + , CODE_DC + , USE_AT + , FRST_REGIST_PNTTM + , FRST_REGISTER_ID + , LAST_UPDT_PNTTM + , LAST_UPDUSR_ID + , SORT ) + VALUES ( #codeId# + , #code# + , #codeNm# + , #codeDc# + , #useAt# + , NOW() + , #frstRegisterId# + , NOW() + , #lastUpdusrId# + , #sort# ) + + + + UPDATE COMTCCMMNDETAILCODE + SET + CODE_NM=#codeNm# + , CODE_DC=#codeDc# + , USE_AT=#useAt# + , LAST_UPDT_PNTTM=NOW() + , LAST_UPDUSR_ID=#lastUpdusrId# + , SORT=#sort# + WHERE + CODE_ID=#codeId# + AND CODE=#code# + + + + DELETE + FROM + COMTCCMMNDETAILCODE + WHERE + CODE=#code# + AND CODE_ID=#codeId# + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/comtccmmndetailcode/Comtccmmndetailcode_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/comtccmmndetailcode/Comtccmmndetailcode_SQL_Oracle.xml new file mode 100644 index 0000000..0369a63 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/comtccmmndetailcode/Comtccmmndetailcode_SQL_Oracle.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO COMTCCMMNDETAILCODE + ( CODE_ID + , CODE + , CODE_NM + , CODE_DC + , USE_AT + , FRST_REGIST_PNTTM + , FRST_REGISTER_ID + , LAST_UPDT_PNTTM + , LAST_UPDUSR_ID + , SORT ) + VALUES ( #codeId# + , #code# + , #codeNm# + , #codeDc# + , #useAt# + , SYSDATE + , #frstRegisterId# + , SYSDATE + , #lastUpdusrId# + , #sort# ) + + + + UPDATE COMTCCMMNDETAILCODE + SET + CODE_NM=#codeNm# + , CODE_DC=#codeDc# + , USE_AT=#useAt# + , LAST_UPDT_PNTTM=SYSDATE + , LAST_UPDUSR_ID=#lastUpdusrId# + , SORT=#sort# + WHERE + CODE_ID=#codeId# + AND CODE=#code# + + + + DELETE + FROM + COMTCCMMNDETAILCODE + WHERE + CODE=#code# + AND CODE_ID=#codeId# + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsAuthGroup/HmsAuthGroup_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsAuthGroup/HmsAuthGroup_SQL_Mysql.xml new file mode 100644 index 0000000..141f9c1 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsAuthGroup/HmsAuthGroup_SQL_Mysql.xml @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + INSERT INTO HMS_AUTH_GROUP + ( AUTH_GROUP_SEQ + , AUTH_GROUP_NM + , AUTH_GROUP_DETAIL + ) + VALUES (#authGroupSeq# + , #authGroupNm# + , #authGroupDetail# + ) + + + + UPDATE + HMS_AUTH_GROUP + SET + AUTH_GROUP_SEQ=#authGroupSeq# + , AUTH_GROUP_NM=#authGroupNm# + , AUTH_GROUP_DETAIL=#authGroupDetail# + WHERE 1=1 + AND AUTH_GROUP_SEQ=#authGroupSeq# + + + + DELETE FROM + HMS_AUTH_GROUP + WHERE 1=1 + AND AUTH_GROUP_SEQ=#authGroupSeq# + + + + + + + + + + + + INSERT INTO HMS_AUTH_GROUP_REL_AUTH + ( AUTH_GROUP_SEQ + , AUTHOR_CODE + ) + VALUES (#authGroupSeq# + , #authorCode# + ) + + + + + + DELETE FROM + HMS_AUTH_GROUP_REL_AUTH + WHERE + AUTH_GROUP_SEQ=#value# + + + + + + + + + + DELETE FROM + HMS_AUTH_GROUP_REL_USER + WHERE 1=1 + + AUTH_GROUP_SEQ=#authGroupSeq# + + + USER_ID=#userId# + + + + + INSERT INTO HMS_AUTH_GROUP_REL_USER + ( AUTH_GROUP_SEQ + , USER_ID + , GUBUN + ) + VALUES (#authGroupSeq# + , #userId# + , #gubun# + ) + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsAuthGroup/HmsAuthGroup_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsAuthGroup/HmsAuthGroup_SQL_Oracle.xml new file mode 100644 index 0000000..2032cfb --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsAuthGroup/HmsAuthGroup_SQL_Oracle.xml @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + INSERT INTO HMS_AUTH_GROUP + ( AUTH_GROUP_SEQ + , AUTH_GROUP_NM + , AUTH_GROUP_DETAIL + ) + VALUES (#authGroupSeq# + , #authGroupNm# + , #authGroupDetail# + ) + + + + UPDATE + HMS_AUTH_GROUP + SET + AUTH_GROUP_SEQ=#authGroupSeq# + , AUTH_GROUP_NM=#authGroupNm# + , AUTH_GROUP_DETAIL=#authGroupDetail# + WHERE 1=1 + AND AUTH_GROUP_SEQ=#authGroupSeq# + + + + DELETE FROM + HMS_AUTH_GROUP + WHERE 1=1 + AND AUTH_GROUP_SEQ=#authGroupSeq# + + + + + + + + + + + + INSERT INTO HMS_AUTH_GROUP_REL_AUTH + ( AUTH_GROUP_SEQ + , AUTHOR_CODE + ) + VALUES (#authGroupSeq# + , #authorCode# + ) + + + + + + DELETE FROM + HMS_AUTH_GROUP_REL_AUTH + WHERE + AUTH_GROUP_SEQ=#value# + + + + + + + + + + DELETE FROM + HMS_AUTH_GROUP_REL_USER + WHERE + AUTH_GROUP_SEQ=#authGroupSeq# + + USER_ID=#userId# + + + + + INSERT INTO HMS_AUTH_GROUP_REL_USER + ( AUTH_GROUP_SEQ + , USER_ID + , GUBUN + ) + VALUES (#authGroupSeq# + , #userId# + , #gubun# + ) + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdCate/HmsBrdCate_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdCate/HmsBrdCate_SQL_Mysql.xml new file mode 100644 index 0000000..5efb097 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdCate/HmsBrdCate_SQL_Mysql.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_CATE + ( CATE_SEQ + , CATE_MAST_SEQ + , CATE_NM + , CATE_SORT + , REC_STS + ) + VALUES (#cateSeq# + , #cateMastSeq# + , #cateNm# + , #cateSort# + , 'A' + ) + + + + UPDATE + HMS_BRD_CATE + SET + CATE_SEQ=#cateSeq# + , CATE_MAST_SEQ=#cateMastSeq# + , CATE_NM=#cateNm# + , CATE_SORT=#cateSort# + , REC_STS=#recSts# + + WHERE 1=1 + AND REC_STS='A' + AND CATE_SEQ=#cateSeq# + + + + UPDATE + HMS_BRD_CATE + SET + REC_STS='D' + WHERE 1=1 + AND CATE_SEQ=#cateSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdCate/HmsBrdCate_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdCate/HmsBrdCate_SQL_Oracle.xml new file mode 100644 index 0000000..5efb097 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdCate/HmsBrdCate_SQL_Oracle.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_CATE + ( CATE_SEQ + , CATE_MAST_SEQ + , CATE_NM + , CATE_SORT + , REC_STS + ) + VALUES (#cateSeq# + , #cateMastSeq# + , #cateNm# + , #cateSort# + , 'A' + ) + + + + UPDATE + HMS_BRD_CATE + SET + CATE_SEQ=#cateSeq# + , CATE_MAST_SEQ=#cateMastSeq# + , CATE_NM=#cateNm# + , CATE_SORT=#cateSort# + , REC_STS=#recSts# + + WHERE 1=1 + AND REC_STS='A' + AND CATE_SEQ=#cateSeq# + + + + UPDATE + HMS_BRD_CATE + SET + REC_STS='D' + WHERE 1=1 + AND CATE_SEQ=#cateSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdCateMast/HmsBrdCateMast_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdCateMast/HmsBrdCateMast_SQL_Mysql.xml new file mode 100644 index 0000000..0905dc3 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdCateMast/HmsBrdCateMast_SQL_Mysql.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_CATE_MAST + ( CATE_MAST_SEQ + , CATE_MAST_NM + , REC_STS + ) + VALUES (#cateMastSeq# + , #cateMastNm# + , 'A' + ) + + + + UPDATE + HMS_BRD_CATE_MAST + SET + CATE_MAST_SEQ=#cateMastSeq# + , CATE_MAST_NM=#cateMastNm# + , REC_STS=#recSts# + + WHERE 1=1 + AND REC_STS='A' + AND CATE_MAST_SEQ=#cateMastSeq# + + + + UPDATE + HMS_BRD_CATE_MAST + SET + REC_STS='D' + WHERE 1=1 + AND CATE_MAST_SEQ=#cateMastSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdCateMast/HmsBrdCateMast_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdCateMast/HmsBrdCateMast_SQL_Oracle.xml new file mode 100644 index 0000000..0905dc3 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdCateMast/HmsBrdCateMast_SQL_Oracle.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_CATE_MAST + ( CATE_MAST_SEQ + , CATE_MAST_NM + , REC_STS + ) + VALUES (#cateMastSeq# + , #cateMastNm# + , 'A' + ) + + + + UPDATE + HMS_BRD_CATE_MAST + SET + CATE_MAST_SEQ=#cateMastSeq# + , CATE_MAST_NM=#cateMastNm# + , REC_STS=#recSts# + + WHERE 1=1 + AND REC_STS='A' + AND CATE_MAST_SEQ=#cateMastSeq# + + + + UPDATE + HMS_BRD_CATE_MAST + SET + REC_STS='D' + WHERE 1=1 + AND CATE_MAST_SEQ=#cateMastSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdComment/HmsBrdComment_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdComment/HmsBrdComment_SQL_Mysql.xml new file mode 100644 index 0000000..8760fcc --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdComment/HmsBrdComment_SQL_Mysql.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_COMMENT + ( BRD_REPLY_SEQ + , USER_ID + , USER_NM + , PASSWD + , CONTENTS + , CREATE_DATE + , REC_STS + , IP + , BRD_POST_SEQ ) + VALUES ( #brdReplySeq# + , #userId# + , #userNm# + , #passwd# + , #contents# + , NOW() + , 'A' + , #ip# + , #brdPostSeq# ) + + + + UPDATE + HMS_BRD_COMMENT + SET + , PASSWD=#passwd# + , CONTENTS=#contents# + WHERE + REC_STS='A' + AND BRD_REPLY_SEQ=#brdReplySeq# + + + + UPDATE + HMS_BRD_COMMENT + SET + REC_STS='D' + ,CREATE_DATE=NOW() + WHERE + REC_STS='A' + AND BRD_REPLY_SEQ=#brdReplySeq# + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdComment/HmsBrdComment_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdComment/HmsBrdComment_SQL_Oracle.xml new file mode 100644 index 0000000..36b3559 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdComment/HmsBrdComment_SQL_Oracle.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_COMMENT + ( BRD_REPLY_SEQ + , USER_ID + , USER_NM + , PASSWD + , CONTENTS + , CREATE_DATE + , REC_STS + , IP + , BRD_POST_SEQ ) + VALUES ( #brdReplySeq# + , #userId# + , #userNm# + , #passwd# + , #contents# + , SYSDATE + , 'A' + , #ip# + , #brdPostSeq# ) + + + + UPDATE + HMS_BRD_COMMENT + SET + , PASSWD=#passwd# + , CONTENTS=#contents# + WHERE + REC_STS='A' + AND BRD_REPLY_SEQ=#brdReplySeq# + + + + UPDATE + HMS_BRD_COMMENT + SET + REC_STS='D' + ,CREATE_DATE=SYSDATE + WHERE + REC_STS='A' + AND BRD_REPLY_SEQ=#brdReplySeq# + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdMng/HmsBrdMng_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdMng/HmsBrdMng_SQL_Mysql.xml new file mode 100644 index 0000000..b5b34a7 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdMng/HmsBrdMng_SQL_Mysql.xml @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_MANAGER + ( BRD_MNG_SEQ + , BRD_NM + , BRD_TYPE + , BRD_SKIN + , WRITER_ID + , WRITER_NM + , CREATE_DATE + , OPEN_ISCHK + , NOTICE_ISCHK + , REPLY_ISCHK + , EDITOR_FLAG + , REC_STS + , SHOW_NEW_POST + , ADD_NEW_POST + , SHOW_WRITE_TIME + , MANAGER + , TITLE_LENGTH + , CATE_MAST_SEQ + , ATCH_WHITE + , ATCH_CNT + ) + VALUES ( #brdMngSeq# + , #brdNm# + , #brdType# + , #brdSkin# + , #writerId# + , #writerNm# + , NOW() + , #openIschk# + , #noticeIschk# + , #replyIschk# + , #editorFlag# + , 'A' + , #showNewPost# + , #addNewPost# + , #showWriteTime# + , #manager# + , #titleLength# + , #cateMastSeq# + , #atchWhite# + , #atchCnt# + ) + + + + UPDATE + HMS_BRD_MANAGER + SET + BRD_NM=#brdNm# + , BRD_TYPE=#brdType# + , BRD_SKIN=#brdSkin# + , OPEN_ISCHK=#openIschk# + , NOTICE_ISCHK=#noticeIschk# + , REPLY_ISCHK=#replyIschk# + , EDITOR_FLAG=#editorFlag# + , SHOW_NEW_POST=#showNewPost# + , ADD_NEW_POST=#addNewPost# + , SHOW_WRITE_TIME=#showWriteTime# + , MANAGER=#manager# + , TITLE_LENGTH=#titleLength# + , CATE_MAST_SEQ=#cateMastSeq# + , ATCH_WHITE=#atchWhite# + , ATCH_CNT=#atchCnt# + WHERE + REC_STS='A' + AND BRD_MNG_SEQ=#brdMngSeq# + + + + UPDATE + HMS_BRD_MANAGER + SET + REC_STS='D' + WHERE + REC_STS='A' + AND BRD_MNG_SEQ=#brdMngSeq# + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdMng/HmsBrdMng_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdMng/HmsBrdMng_SQL_Oracle.xml new file mode 100644 index 0000000..4935808 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdMng/HmsBrdMng_SQL_Oracle.xml @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_MANAGER + ( BRD_MNG_SEQ + , BRD_NM + , BRD_TYPE + , BRD_SKIN + , WRITER_ID + , WRITER_NM + , CREATE_DATE + , OPEN_ISCHK + , NOTICE_ISCHK + , REPLY_ISCHK + , EDITOR_FLAG + , REC_STS + , SHOW_NEW_POST + , ADD_NEW_POST + , SHOW_WRITE_TIME + , MANAGER + , TITLE_LENGTH + , CATE_MAST_SEQ + , ATCH_WHITE + , ATCH_CNT + ) + VALUES ( #brdMngSeq# + , #brdNm# + , #brdType# + , #brdSkin# + , #writerId# + , #writerNm# + , SYSDATE + , #openIschk# + , #noticeIschk# + , #replyIschk# + , #editorFlag# + , 'A' + , #showNewPost# + , #addNewPost# + , #showWriteTime# + , #manager# + , #titleLength# + , #cateMastSeq# + , #atchWhite# + , #atchCnt# + ) + + + + UPDATE + HMS_BRD_MANAGER + SET + BRD_NM=#brdNm# + , BRD_TYPE=#brdType# + , BRD_SKIN=#brdSkin# + , OPEN_ISCHK=#openIschk# + , NOTICE_ISCHK=#noticeIschk# + , REPLY_ISCHK=#replyIschk# + , EDITOR_FLAG=#editorFlag# + , SHOW_NEW_POST=#showNewPost# + , ADD_NEW_POST=#addNewPost# + , SHOW_WRITE_TIME=#showWriteTime# + , MANAGER=#manager# + , TITLE_LENGTH=#titleLength# + , CATE_MAST_SEQ=#cateMastSeq# + , ATCH_WHITE=#atchWhite# + , ATCH_CNT=#atchCnt# + WHERE + REC_STS='A' + AND BRD_MNG_SEQ=#brdMngSeq# + + + + UPDATE + HMS_BRD_MANAGER + SET + REC_STS='D' + WHERE + REC_STS='A' + AND BRD_MNG_SEQ=#brdMngSeq# + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdPost/HmsBrdPost_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdPost/HmsBrdPost_SQL_Mysql.xml new file mode 100644 index 0000000..51a0385 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdPost/HmsBrdPost_SQL_Mysql.xml @@ -0,0 +1,494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_POST + ( BRD_POST_SEQ + , USER_ID + , USER_NM + , ATCH_SEQ + , REC_STS + , TITLE + , PASSWD + , VIEW_CNT + , OPEN_ISCHK + , NOTICE_ISCHK + , CREATE_DATE + , CONTENTS + , IP + , BRD_GROUP + , BRD_DEPTH + , BRD_SORT + , EDITOR_FLAG + , BRD_MNG_SEQ + , OFFICE_NM + , EXT_FIELD01 + , EXT_FIELD02 + , EXT_FIELD03 + , EXT_FIELD04 + , EXT_FIELD05 + , EXT_TITLE01 + , EXT_TITLE02 + , EXT_TITLE03 + , EXT_TITLE04 + , EXT_TITLE05 + , CATE_SEQ + , EXT_CONTENTS01 + ) + VALUES ( #brdPostSeq# + , #userId# + , #userNm# + , #atchSeq# + , 'A' + , #title# + , #passwd# + , 0 + , #openIschk# + , #noticeIschk# + , NOW() + , #contents# + , #ip# + , #brdGroup# + , #brdDepth# + , #brdSort# + , #editorFlag# + , #brdMngSeq# + , #officeNm# + , #extField01# + , #extField02# + , #extField03# + , #extField04# + , #extField05# + , #extTitle01# + , #extTitle02# + , #extTitle03# + , #extTitle04# + , #extTitle05# + , #cateSeq# + , #extContents01# + ) + + + + UPDATE + HMS_BRD_POST + SET + ATCH_SEQ=#atchSeq# + , TITLE=#title# + , PASSWD=#passwd# + , OPEN_ISCHK=#openIschk# + , NOTICE_ISCHK=#noticeIschk# + , CONTENTS=#contents# + , BRD_GROUP=#brdGroup# + , BRD_DEPTH=#brdDepth# + , BRD_SORT=#brdSort# + , EDITOR_FLAG=#editorFlag# + , EXT_FIELD01=#extField01# + , EXT_FIELD02=#extField02# + , EXT_FIELD03=#extField03# + , EXT_FIELD04=#extField04# + , EXT_FIELD05=#extField05# + , EXT_TITLE01=#extTitle01# + , EXT_TITLE02=#extTitle02# + , EXT_TITLE03=#extTitle03# + , EXT_TITLE04=#extTitle04# + , EXT_TITLE05=#extTitle05# + , CATE_SEQ=#cateSeq# + , EXT_CONTENTS01=#extContents01# + WHERE + REC_STS='A' + AND BRD_POST_SEQ=#brdPostSeq# + AND BRD_MNG_SEQ=#brdMngSeq# + + + + UPDATE + HMS_BRD_POST + SET + VIEW_CNT=VIEW_CNT+1 + WHERE + REC_STS='A' + AND BRD_POST_SEQ=#brdPostSeq# + AND BRD_MNG_SEQ=#brdMngSeq# + + + + UPDATE + HMS_BRD_POST + SET + BRD_SORT=BRD_SORT-1 + WHERE + BRD_MNG_SEQ=#brdMngSeq# + AND BRD_GROUP=#brdGroup# + + + + + UPDATE + HMS_BRD_POST + SET + REC_STS='D' + WHERE + REC_STS='A' + AND BRD_POST_SEQ=#brdPostSeq# + AND BRD_MNG_SEQ=#brdMngSeq# + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsBrdPost/HmsBrdPost_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsBrdPost/HmsBrdPost_SQL_Oracle.xml new file mode 100644 index 0000000..f3d8ade --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsBrdPost/HmsBrdPost_SQL_Oracle.xml @@ -0,0 +1,494 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_BRD_POST + ( BRD_POST_SEQ + , USER_ID + , USER_NM + , ATCH_SEQ + , REC_STS + , TITLE + , PASSWD + , VIEW_CNT + , OPEN_ISCHK + , NOTICE_ISCHK + , CREATE_DATE + , CONTENTS + , IP + , BRD_GROUP + , BRD_DEPTH + , BRD_SORT + , EDITOR_FLAG + , BRD_MNG_SEQ + , OFFICE_NM + , EXT_FIELD01 + , EXT_FIELD02 + , EXT_FIELD03 + , EXT_FIELD04 + , EXT_FIELD05 + , EXT_TITLE01 + , EXT_TITLE02 + , EXT_TITLE03 + , EXT_TITLE04 + , EXT_TITLE05 + , CATE_SEQ + , EXT_CONTENTS01 + ) + VALUES ( #brdPostSeq# + , #userId# + , #userNm# + , #atchSeq# + , 'A' + , #title# + , #passwd# + , 0 + , #openIschk# + , #noticeIschk# + , SYSDATE + , #contents# + , #ip# + , #brdGroup# + , #brdDepth# + , #brdSort# + , #editorFlag# + , #brdMngSeq# + , #officeNm# + , #extField01# + , #extField02# + , #extField03# + , #extField04# + , #extField05# + , #extTitle01# + , #extTitle02# + , #extTitle03# + , #extTitle04# + , #extTitle05# + , #cateSeq# + , #extContents01# + ) + + + + UPDATE + HMS_BRD_POST + SET + ATCH_SEQ=#atchSeq# + , TITLE=#title# + , PASSWD=#passwd# + , OPEN_ISCHK=#openIschk# + , NOTICE_ISCHK=#noticeIschk# + , CONTENTS=#contents# + , BRD_GROUP=#brdGroup# + , BRD_DEPTH=#brdDepth# + , BRD_SORT=#brdSort# + , EDITOR_FLAG=#editorFlag# + , EXT_FIELD01=#extField01# + , EXT_FIELD02=#extField02# + , EXT_FIELD03=#extField03# + , EXT_FIELD04=#extField04# + , EXT_FIELD05=#extField05# + , EXT_TITLE01=#extTitle01# + , EXT_TITLE02=#extTitle02# + , EXT_TITLE03=#extTitle03# + , EXT_TITLE04=#extTitle04# + , EXT_TITLE05=#extTitle05# + , CATE_SEQ=#cateSeq# + , EXT_CONTENTS01=#extContents01# + WHERE + REC_STS='A' + AND BRD_POST_SEQ=#brdPostSeq# + AND BRD_MNG_SEQ=#brdMngSeq# + + + + UPDATE + HMS_BRD_POST + SET + VIEW_CNT=VIEW_CNT+1 + WHERE + REC_STS='A' + AND BRD_POST_SEQ=#brdPostSeq# + AND BRD_MNG_SEQ=#brdMngSeq# + + + + UPDATE + HMS_BRD_POST + SET + BRD_SORT=BRD_SORT-1 + WHERE + BRD_MNG_SEQ=#brdMngSeq# + AND BRD_GROUP=#brdGroup# + + + + + UPDATE + HMS_BRD_POST + SET + REC_STS='D' + WHERE + REC_STS='A' + AND BRD_POST_SEQ=#brdPostSeq# + AND BRD_MNG_SEQ=#brdMngSeq# + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsContent/HmsContent_SQL.xml b/src/main/resources/egovframework/sqlmap/cms/hmsContent/HmsContent_SQL.xml new file mode 100644 index 0000000..7f043a8 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsContent/HmsContent_SQL.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_CONTENT + ( CONTENT_SEQ + , TITLE + , CONTENTS + , REC_STS + , USER_ID + , USER_NM + , MANAGER_ID + , URL + , SHOW + , CREATE_DATE + , UPDATE_DATE + , VIEW_CNT + , MANAGER_NM + , TEMPLATE + ) + VALUES (#contentSeq# + , #title# + , #contents# + , 'A' + , #userId# + , #userNm# + , #managerId# + , #url# + , #show# + , SYSDATE + , SYSDATE + , 0 + , #managerNm# + , #template# + ) + + + + UPDATE + HMS_CONTENT + SET + CONTENT_SEQ=#contentSeq# + , TITLE=#title# + , CONTENTS=#contents# + , REC_STS=#recSts# + , USER_ID=#userId# + , USER_NM=#userNm# + , MANAGER_ID=#managerId# + , URL=#url# + , SHOW=#show# + , UPDATE_DATE=SYSDATE + , MANAGER_NM=#managerNm# + , TEMPLATE=#template# + WHERE 1=1 + AND REC_STS='A' + AND CONTENT_SEQ=#contentSeq# + + + + UPDATE + HMS_CONTENT + SET + VIEW_CNT = VIEW_CNT + 1 + WHERE 1=1 + AND REC_STS='A' + AND CONTENT_SEQ=#value# + + + + UPDATE + HMS_CONTENT + SET + REC_STS='D' + WHERE 1=1 + AND CONTENT_SEQ=#contentSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsDept/HmsDept_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsDept/HmsDept_SQL_Mysql.xml new file mode 100644 index 0000000..5644681 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsDept/HmsDept_SQL_Mysql.xml @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_DEPT + ( DEPT_SEQ + , PARENT_DEPT_CD + , DEPT_NM + , DEPT_CD + , DEPT_RANK + , DEPT_DEPTH + , DEPT_FULL_NM + , EXT_FIELD01 + , EXT_FIELD02 + , EXT_FIELD03 + , REC_STS + ) + VALUES (#deptSeq# + , #parentDeptCd# + , #deptNm# + , #deptCd# + , #deptRank# + , #deptDepth# + , #deptFullNm# + , #extField01# + , #extField02# + , #extField03# + , #recSts# + ) + + + + UPDATE + HMS_DEPT + SET + DEPT_SEQ=#deptSeq# + , PARENT_DEPT_CD=#parentDeptCd# + , DEPT_NM=#deptNm# + , DEPT_CD=#deptCd# + , DEPT_RANK=#deptRank# + , DEPT_DEPTH=#deptDepth# + , DEPT_FULL_NM=#deptFullNm# + , EXT_FIELD01=#extField01# + , EXT_FIELD02=#extField02# + , EXT_FIELD03=#extField03# + , REC_STS=#recSts# + + WHERE 1=1 + AND REC_STS='A' + AND DEPT_SEQ=#deptSeq# + + + + UPDATE + HMS_DEPT + SET + REC_STS='D' + WHERE 1=1 + AND DEPT_SEQ=#deptSeq# + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsDept/HmsDept_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsDept/HmsDept_SQL_Oracle.xml new file mode 100644 index 0000000..05d9eca --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsDept/HmsDept_SQL_Oracle.xml @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_DEPT + ( DEPT_SEQ + , PARENT_DEPT_CD + , DEPT_NM + , DEPT_CD + , DEPT_RANK + , DEPT_DEPTH + , DEPT_FULL_NM + , EXT_FIELD01 + , EXT_FIELD02 + , EXT_FIELD03 + , REC_STS + ) + VALUES (#deptSeq# + , #parentDeptCd# + , #deptNm# + , #deptCd# + , #deptRank# + , #deptDepth# + , #deptFullNm# + , #extField01# + , #extField02# + , #extField03# + , 'A' + ) + + + + UPDATE + HMS_DEPT + SET + PARENT_DEPT_CD=#parentDeptCd# + , DEPT_NM=#deptNm# + , DEPT_CD=#deptCd# + , DEPT_RANK=#deptRank# + , DEPT_DEPTH=#deptDepth# + , DEPT_FULL_NM=#deptFullNm# + , EXT_FIELD01=#extField01# + , EXT_FIELD02=#extField02# + , EXT_FIELD03=#extField03# + + WHERE 1=1 + AND REC_STS='A' + AND DEPT_SEQ=#deptSeq# + + + + UPDATE + HMS_DEPT + SET + REC_STS='D' + WHERE 1=1 + AND DEPT_SEQ=#deptSeq# + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsDuty/HmsDuty_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsDuty/HmsDuty_SQL_Mysql.xml new file mode 100644 index 0000000..2690ad3 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsDuty/HmsDuty_SQL_Mysql.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_DUTY + ( DUTY_SEQ + , DUTY_CD + , DUTY_NM + , REC_STS + , CREATE_DATE + ) + VALUES (#dutySeq# + , #dutyCd# + , #dutyNm# + , 'A' + , NOW() + ) + + + + UPDATE + HMS_DUTY + SET + DUTY_SEQ=#dutySeq# + , DUTY_CD=#dutyCd# + , DUTY_NM=#dutyNm# + , REC_STS=#recSts# + WHERE 1=1 + AND REC_STS='A' + AND DUTY_SEQ=#dutySeq# + + + + UPDATE + HMS_DUTY + SET + REC_STS='D' + WHERE 1=1 + AND DUTY_SEQ=#dutySeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsDuty/HmsDuty_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsDuty/HmsDuty_SQL_Oracle.xml new file mode 100644 index 0000000..d760732 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsDuty/HmsDuty_SQL_Oracle.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_DUTY + ( DUTY_SEQ + , DUTY_CD + , DUTY_NM + , REC_STS + , CREATE_DATE + ) + VALUES (#dutySeq# + , #dutyCd# + , #dutyNm# + , 'A' + , SYSDATE + ) + + + + UPDATE + HMS_DUTY + SET + DUTY_SEQ=#dutySeq# + , DUTY_CD=#dutyCd# + , DUTY_NM=#dutyNm# + , REC_STS=#recSts# + WHERE 1=1 + AND REC_STS='A' + AND DUTY_SEQ=#dutySeq# + + + + UPDATE + HMS_DUTY + SET + REC_STS='D' + WHERE 1=1 + AND DUTY_SEQ=#dutySeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsLog/HmsLog_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsLog/HmsLog_SQL_Mysql.xml new file mode 100644 index 0000000..4568efd --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsLog/HmsLog_SQL_Mysql.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_LOG + ( LOG_SEQ + , USER_ID + , USER_NM + , CREATE_DATE + , IP + , SEQ + , LOG_OBJECT + , LOG_MESSAGE + , LOG_STATUS_TYPE + ) + VALUES (#logSeq# + , #userId# + , #userNm# + , NOW() + , #ip# + , #seq# + , #logObject# + , #logMessage# + , #logStatusType# + ) + + + + UPDATE + HMS_LOG + SET + LOG_SEQ=#logSeq# + , USER_ID=#userId# + , USER_NM=#userNm# + , CREATE_DATE=NOW() + , IP=#ip# + , SEQ=#seq# + , LOG_OBJECT=#logObject# + , LOG_MESSAGE=#logMessage# + , LOG_STATUS_TYPE=#logStatusType# + + WHERE 1=1 + AND LOG_SEQ=#logSeq# + + + + UPDATE + HMS_LOG + SET + REC_STS='D' + WHERE 1=1 + AND LOG_SEQ=#logSeq# + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsLog/HmsLog_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsLog/HmsLog_SQL_Oracle.xml new file mode 100644 index 0000000..2ea23b4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsLog/HmsLog_SQL_Oracle.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_LOG + ( LOG_SEQ + , USER_ID + , USER_NM + , CREATE_DATE + , IP + , SEQ + , LOG_OBJECT + , LOG_MESSAGE + , LOG_STATUS_TYPE + ) + VALUES (#logSeq# + , #userId# + , #userNm# + , SYSDATE + , #ip# + , #seq# + , #logObject# + , #logMessage# + , #logStatusType# + ) + + + + UPDATE + HMS_LOG + SET + LOG_SEQ=#logSeq# + , USER_ID=#userId# + , USER_NM=#userNm# + , CREATE_DATE=SYSDATE + , IP=#ip# + , SEQ=#seq# + , LOG_OBJECT=#logObject# + , LOG_MESSAGE=#logMessage# + , LOG_STATUS_TYPE=#logStatusType# + + WHERE 1=1 + AND LOG_SEQ=#logSeq# + + + + UPDATE + HMS_LOG + SET + REC_STS='D' + WHERE 1=1 + AND LOG_SEQ=#logSeq# + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsPosition/HmsPosition_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsPosition/HmsPosition_SQL_Mysql.xml new file mode 100644 index 0000000..2177568 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsPosition/HmsPosition_SQL_Mysql.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_POSITION + ( POSITION_CD + , POSITION_NM + , POSITION_SEQ + , REC_STS + , CREATE_DATE + , RNK + ) + VALUES (#positionCd# + , #positionNm# + , #positionSeq# + , 'A' + , NOW() + , #rnk# + ) + + + + UPDATE + HMS_POSITION + SET + POSITION_CD=#positionCd# + , POSITION_NM=#positionNm# + , POSITION_SEQ=#positionSeq# + , REC_STS=#recSts# + , CREATE_DATE=#createDate# + , RNK=#rnk# + WHERE 1=1 + AND REC_STS='A' + AND POSITION_SEQ=#positionSeq# + + + + UPDATE + HMS_POSITION + SET + REC_STS='D' + WHERE 1=1 + AND POSITION_SEQ=#positionSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsPosition/HmsPosition_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsPosition/HmsPosition_SQL_Oracle.xml new file mode 100644 index 0000000..1bf2f09 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsPosition/HmsPosition_SQL_Oracle.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_POSITION + ( POSITION_CD + , POSITION_NM + , POSITION_SEQ + , REC_STS + , CREATE_DATE + , RNK + ) + VALUES (#positionCd# + , #positionNm# + , #positionSeq# + , 'A' + , SYSDATE + , #rnk# + ) + + + + UPDATE + HMS_POSITION + SET + POSITION_CD=#positionCd# + , POSITION_NM=#positionNm# + , POSITION_SEQ=#positionSeq# + , REC_STS=#recSts# + , CREATE_DATE=#createDate# + , RNK=#rnk# + WHERE 1=1 + AND REC_STS='A' + AND POSITION_SEQ=#positionSeq# + + + + UPDATE + HMS_POSITION + SET + REC_STS='D' + WHERE 1=1 + AND POSITION_SEQ=#positionSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsUser/HmsUser_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/cms/hmsUser/HmsUser_SQL_Mysql.xml new file mode 100644 index 0000000..6d9f3f7 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsUser/HmsUser_SQL_Mysql.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_USER + ( USER_ID + , USER_NM + , TEL + , PASSWD + , EMAIL + , MOBILE + , REC_STS + , CREATE_DATE + , USER_SEQ + , DEPT_NM + , POSITION_NM + , DUTY_NM + , USER_RANK + , EXT_FIELD01 + , EXT_FIELD02 + , EXT_FIELD03 + , EXT_FIELD04 + , EXT_FIELD05 + , OFFICE_NM + , POSITION_CD + , DUTY_CD + , DEPT_CD + , OFFICE_CD + , GENDER + , BIRTHDAY + , BIRTHDAY_TYPE + , JOB_TITLE + ) + VALUES (#userId# + , #userNm# + , #tel# + , #passwd# + , #email# + , #mobile# + , 'A' + , NOW() + , #userSeq# + , #deptNm# + , #positionNm# + , #dutyNm# + , #userRank# + , #extField01# + , #extField02# + , #extField03# + , #extField04# + , #extField05# + , #officeNm# + , #positionCd# + , #dutyCd# + , #deptCd# + , #officeCd# + , #gender# + , #birthday# + , #birthdayType# + , #jobTitle# + ) + + + + UPDATE + HMS_USER + SET + USER_ID=#userId# + , USER_NM=#userNm# + , TEL=#tel# + , EMAIL=#email# + , MOBILE=#mobile# + , USER_SEQ=#userSeq# + , DEPT_NM=#deptNm# + , POSITION_NM=#positionNm# + , DUTY_NM=#dutyNm# + , USER_RANK=#userRank# + , EXT_FIELD01=#extField01# + , EXT_FIELD02=#extField02# + , EXT_FIELD03=#extField03# + , EXT_FIELD04=#extField04# + , EXT_FIELD05=#extField05# + , OFFICE_NM=#officeNm# + , POSITION_CD=#positionCd# + , DUTY_CD=#dutyCd# + , DEPT_CD=#deptCd# + , OFFICE_CD=#officeCd# + , GENDER=#gender# + , BIRTHDAY=#birthday# + , BIRTHDAY_TYPE=#birthdayType# + , JOB_TITLE=#jobTitle# + WHERE 1=1 + AND REC_STS='A' + + USER_SEQ=#userSeq# + + + USER_ID=#userId# + + + + + UPDATE + HMS_USER + SET + PASSWD=#passwd# + WHERE 1=1 + AND REC_STS='A' + AND USER_ID=#userId# + + + + UPDATE + HMS_USER + SET + REC_STS='D' + WHERE 1=1 + + USER_SEQ=#userSeq# + + + USER_ID=#userId# + + + + + + + + + + + INSERT INTO HMS_USER_TYPE(USER_ID, USER_TYPE) VALUES(#userId#, #userType#) + + + + DELETE FROM HMS_USER_TYPE WHERE USER_ID = #userId# + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/cms/hmsUser/HmsUser_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/cms/hmsUser/HmsUser_SQL_Oracle.xml new file mode 100644 index 0000000..a9a6a73 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/cms/hmsUser/HmsUser_SQL_Oracle.xml @@ -0,0 +1,285 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO HMS_USER + ( USER_ID + , USER_NM + , TEL + , PASSWD + , EMAIL + , MOBILE + , REC_STS + , CREATE_DATE + , USER_SEQ + , DEPT_NM + , POSITION_NM + , DUTY_NM + , USER_RANK + , EXT_FIELD01 + , EXT_FIELD02 + , EXT_FIELD03 + , EXT_FIELD04 + , EXT_FIELD05 + , OFFICE_NM + , POSITION_CD + , DUTY_CD + , DEPT_CD + , OFFICE_CD + , GENDER + , BIRTHDAY + , BIRTHDAY_TYPE + , JOB_TITLE + ) + VALUES (#userId# + , #userNm# + , #tel# + , #passwd# + , #email# + , #mobile# + , 'A' + , SYSDATE + , #userSeq# + , #deptNm# + , #positionNm# + , #dutyNm# + , #userRank# + , #extField01# + , #extField02# + , #extField03# + , #extField04# + , #extField05# + , #officeNm# + , #positionCd# + , #dutyCd# + , #deptCd# + , #officeCd# + , #gender# + , #birthday# + , #birthdayType# + , #jobTitle# + ) + + + + UPDATE + HMS_USER + SET + USER_ID=#userId# + , USER_NM=#userNm# + , TEL=#tel# + , EMAIL=#email# + , MOBILE=#mobile# + , USER_SEQ=#userSeq# + , DEPT_NM=#deptNm# + , POSITION_NM=#positionNm# + , DUTY_NM=#dutyNm# + , USER_RANK=#userRank# + , EXT_FIELD01=#extField01# + , EXT_FIELD02=#extField02# + , EXT_FIELD03=#extField03# + , EXT_FIELD04=#extField04# + , EXT_FIELD05=#extField05# + , OFFICE_NM=#officeNm# + , POSITION_CD=#positionCd# + , DUTY_CD=#dutyCd# + , DEPT_CD=#deptCd# + , OFFICE_CD=#officeCd# + , GENDER=#gender# + , BIRTHDAY=#birthday# + , BIRTHDAY_TYPE=#birthdayType# + , JOB_TITLE=#jobTitle# + WHERE 1=1 + AND REC_STS='A' + + USER_SEQ=#userSeq# + + + USER_ID=#userId# + + + + + UPDATE + HMS_USER + SET + PASSWD=#passwd# + WHERE 1=1 + AND REC_STS='A' + AND USER_SEQ=#userSeq# + + + + UPDATE + HMS_USER + SET + REC_STS='D' + WHERE 1=1 + + USER_SEQ=#userSeq# + + + USER_ID=#userId# + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Altibase.xml new file mode 100644 index 0000000..fa10fbb --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Altibase.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Cubrid.xml new file mode 100644 index 0000000..79fb70a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Cubrid.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Mysql.xml new file mode 100644 index 0000000..20974b0 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Mysql.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Oracle.xml new file mode 100644 index 0000000..ab5ebc8 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Oracle.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Tibero.xml new file mode 100644 index 0000000..339afe9 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/fms/EgovFile_SQL_Tibero.xml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Altibase.xml new file mode 100644 index 0000000..b0f67a4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Altibase.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Cubrid.xml new file mode 100644 index 0000000..7d2b669 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Cubrid.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Mysql.xml new file mode 100644 index 0000000..74e9c61 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Mysql.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Oracle.xml new file mode 100644 index 0000000..b1959eb --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Oracle.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Tibero.xml new file mode 100644 index 0000000..b1959eb --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cmm/use/EgovCmmUse_SQL_Tibero.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Altibase.xml new file mode 100644 index 0000000..b62aeab --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Altibase.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Cubrid.xml new file mode 100644 index 0000000..c18dfa7 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Cubrid.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Mysql.xml new file mode 100644 index 0000000..8c68b58 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Mysql.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Oracle.xml new file mode 100644 index 0000000..c84ae18 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Oracle.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Tibero.xml new file mode 100644 index 0000000..c84ae18 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/com/EgovUserInf_SQL_Tibero.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Altibase.xml new file mode 100644 index 0000000..109316b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Altibase.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Cubrid.xml new file mode 100644 index 0000000..148273a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Cubrid.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Mysql.xml new file mode 100644 index 0000000..148273a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Mysql.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Oracle.xml new file mode 100644 index 0000000..148273a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Oracle.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Tibero.xml new file mode 100644 index 0000000..148273a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDetail_SQL_Tibero.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Altibase.xml new file mode 100644 index 0000000..f8d3314 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Altibase.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Cubrid.xml new file mode 100644 index 0000000..f8d3314 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Cubrid.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Mysql.xml new file mode 100644 index 0000000..ec782b7 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Mysql.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Oracle.xml new file mode 100644 index 0000000..f8d3314 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Oracle.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Tibero.xml new file mode 100644 index 0000000..f8d3314 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailDtls_SQL_Tibero.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Altibase.xml new file mode 100644 index 0000000..0c5ed05 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Altibase.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Cubrid.xml new file mode 100644 index 0000000..0f91665 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Cubrid.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Mysql.xml new file mode 100644 index 0000000..50c7eae --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Mysql.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Oracle.xml new file mode 100644 index 0000000..82638e3 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Oracle.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Tibero.xml new file mode 100644 index 0000000..82638e3 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/cop/ems/EgovSndngMailRegist_SQL_Tibero.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Altibase.xml new file mode 100644 index 0000000..66b1c1b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Altibase.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Cubrid.xml new file mode 100644 index 0000000..dfbd3a3 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Cubrid.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Mysql.xml new file mode 100644 index 0000000..8c3d48a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Mysql.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Oracle.xml new file mode 100644 index 0000000..66b1c1b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Oracle.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Tibero.xml new file mode 100644 index 0000000..66b1c1b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/drm/EgovDeptAuthor_SQL_Tibero.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Altibase.xml new file mode 100644 index 0000000..140cefe --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Altibase.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Cubrid.xml new file mode 100644 index 0000000..5147025 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Cubrid.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Mysql.xml new file mode 100644 index 0000000..752b96b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Mysql.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Oracle.xml new file mode 100644 index 0000000..d574471 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Oracle.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Tibero.xml new file mode 100644 index 0000000..d574471 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/gmt/EgovGroupManage_SQL_Tibero.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Altibase.xml new file mode 100644 index 0000000..7bc5bef --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Altibase.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Cubrid.xml new file mode 100644 index 0000000..6097ea0 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Cubrid.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Mysql.xml new file mode 100644 index 0000000..8dc7dc6 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Mysql.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Oracle.xml new file mode 100644 index 0000000..7bc5bef --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Oracle.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Tibero.xml new file mode 100644 index 0000000..7bc5bef --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorManage_SQL_Tibero.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Altibase.xml new file mode 100644 index 0000000..9b31d1b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Altibase.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Cubrid.xml new file mode 100644 index 0000000..b5f1aa2 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Cubrid.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Mysql.xml new file mode 100644 index 0000000..e692970 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Mysql.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Oracle.xml new file mode 100644 index 0000000..f6e80b8 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Oracle.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Tibero.xml new file mode 100644 index 0000000..f6e80b8 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/ram/EgovAuthorRoleManage_SQL_Tibero.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Altibase.xml new file mode 100644 index 0000000..529e4d0 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Altibase.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Cubrid.xml new file mode 100644 index 0000000..483333d --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Cubrid.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Mysql.xml new file mode 100644 index 0000000..0d60a8b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Mysql.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Oracle.xml new file mode 100644 index 0000000..e59dbee --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Oracle.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Tibero.xml new file mode 100644 index 0000000..e59dbee --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rgm/EgovAuthorGroup_SQL_Tibero.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Altibase.xml new file mode 100644 index 0000000..84596a2 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Altibase.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Cubrid.xml new file mode 100644 index 0000000..cddf2f0 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Cubrid.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Mysql.xml new file mode 100644 index 0000000..1be35c5 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Mysql.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Oracle.xml new file mode 100644 index 0000000..5b63508 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Oracle.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Tibero.xml new file mode 100644 index 0000000..5b63508 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sec/rmt/EgovRoleManage_SQL_Tibero.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Altibase.xml new file mode 100644 index 0000000..b7db0da --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Altibase.xml @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Cubrid.xml new file mode 100644 index 0000000..c4f6b9f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Cubrid.xml @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Mysql.xml new file mode 100644 index 0000000..dcb5315 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Mysql.xml @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Oracle.xml new file mode 100644 index 0000000..27fac6e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Oracle.xml @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Tibero.xml new file mode 100644 index 0000000..27fac6e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/cal/EgovRestdeManage_SQL_Tibero.xml @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Altibase.xml new file mode 100644 index 0000000..4a86267 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Altibase.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTCADMINISTCODE + ( ADMINIST_ZONE_SE + , ADMINIST_ZONE_CODE + , ADMINIST_ZONE_NM + , UPPER_ADMINIST_ZONE_CODE + , CREAT_DE + , ABL_DE + , USE_AT + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #administZoneSe# + , #administZoneCode# + , #administZoneNm# + , #upperAdministZoneCode# + , #creatDe# + , #ablDe# + , #useAt# + , #frstRegisterId# + , sysdate + , #frstRegisterId# + , sysdate + ) + + + + UPDATE COMTCADMINISTCODE + SET ADMINIST_ZONE_SE = #AdministZoneSe# + , ADMINIST_ZONE_CODE = #AdministZoneCode# + , ADMINIST_ZONE_NM = #AdministZoneNm# + , UPPER_ADMINIST_ZONE_CODE = #UpperAdministZoneCode# + , CREAT_DE = #CreatDe# + , ABL_DE = #AblDe# + , USE_AT = #useAt# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = sysdate + WHERE ADMINIST_ZONE_SE = #AdministZoneSe# + AND ADMINIST_ZONE_CODE = #AdministZoneCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Cubrid.xml new file mode 100644 index 0000000..5425929 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Cubrid.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTCADMINISTCODE + ( ADMINIST_ZONE_SE + , ADMINIST_ZONE_CODE + , ADMINIST_ZONE_NM + , UPPER_ADMINIST_ZONE_CODE + , CREAT_DE + , ABL_DE + , USE_AT + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #administZoneSe# + , #administZoneCode# + , #administZoneNm# + , #upperAdministZoneCode# + , #creatDe# + , #ablDe# + , #useAt# + , #frstRegisterId# + , SYSDATETIME + , #frstRegisterId# + , SYSDATETIME + ) + + + + UPDATE COMTCADMINISTCODE + SET ADMINIST_ZONE_SE = #AdministZoneSe# + , ADMINIST_ZONE_CODE = #AdministZoneCode# + , ADMINIST_ZONE_NM = #AdministZoneNm# + , UPPER_ADMINIST_ZONE_CODE = #UpperAdministZoneCode# + , CREAT_DE = #CreatDe# + , ABL_DE = #AblDe# + , USE_AT = #useAt# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = SYSDATETIME + WHERE ADMINIST_ZONE_SE = #AdministZoneSe# + AND ADMINIST_ZONE_CODE = #AdministZoneCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Mysql.xml new file mode 100644 index 0000000..c145677 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Mysql.xml @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTCADMINISTCODE + ( ADMINIST_ZONE_SE + , ADMINIST_ZONE_CODE + , ADMINIST_ZONE_NM + , UPPER_ADMINIST_ZONE_CODE + , CREAT_DE + , ABL_DE + , USE_AT + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #administZoneSe# + , #administZoneCode# + , #administZoneNm# + , #upperAdministZoneCode# + , #creatDe# + , #ablDe# + , #useAt# + , #frstRegisterId# + , sysdate() + , #frstRegisterId# + , sysdate() + ) + + + + UPDATE COMTCADMINISTCODE + SET ADMINIST_ZONE_SE = #AdministZoneSe# + , ADMINIST_ZONE_CODE = #AdministZoneCode# + , ADMINIST_ZONE_NM = #AdministZoneNm# + , UPPER_ADMINIST_ZONE_CODE = #UpperAdministZoneCode# + , CREAT_DE = #CreatDe# + , ABL_DE = #AblDe# + , USE_AT = #useAt# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = sysdate() + WHERE ADMINIST_ZONE_SE = #AdministZoneSe# + AND ADMINIST_ZONE_CODE = #AdministZoneCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Oracle.xml new file mode 100644 index 0000000..4a86267 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Oracle.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTCADMINISTCODE + ( ADMINIST_ZONE_SE + , ADMINIST_ZONE_CODE + , ADMINIST_ZONE_NM + , UPPER_ADMINIST_ZONE_CODE + , CREAT_DE + , ABL_DE + , USE_AT + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #administZoneSe# + , #administZoneCode# + , #administZoneNm# + , #upperAdministZoneCode# + , #creatDe# + , #ablDe# + , #useAt# + , #frstRegisterId# + , sysdate + , #frstRegisterId# + , sysdate + ) + + + + UPDATE COMTCADMINISTCODE + SET ADMINIST_ZONE_SE = #AdministZoneSe# + , ADMINIST_ZONE_CODE = #AdministZoneCode# + , ADMINIST_ZONE_NM = #AdministZoneNm# + , UPPER_ADMINIST_ZONE_CODE = #UpperAdministZoneCode# + , CREAT_DE = #CreatDe# + , ABL_DE = #AblDe# + , USE_AT = #useAt# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = sysdate + WHERE ADMINIST_ZONE_SE = #AdministZoneSe# + AND ADMINIST_ZONE_CODE = #AdministZoneCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Tibero.xml new file mode 100644 index 0000000..4a86267 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/acr/EgovAdministCodeRecptn_SQL_Tibero.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTCADMINISTCODE + ( ADMINIST_ZONE_SE + , ADMINIST_ZONE_CODE + , ADMINIST_ZONE_NM + , UPPER_ADMINIST_ZONE_CODE + , CREAT_DE + , ABL_DE + , USE_AT + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #administZoneSe# + , #administZoneCode# + , #administZoneNm# + , #upperAdministZoneCode# + , #creatDe# + , #ablDe# + , #useAt# + , #frstRegisterId# + , sysdate + , #frstRegisterId# + , sysdate + ) + + + + UPDATE COMTCADMINISTCODE + SET ADMINIST_ZONE_SE = #AdministZoneSe# + , ADMINIST_ZONE_CODE = #AdministZoneCode# + , ADMINIST_ZONE_NM = #AdministZoneNm# + , UPPER_ADMINIST_ZONE_CODE = #UpperAdministZoneCode# + , CREAT_DE = #CreatDe# + , ABL_DE = #AblDe# + , USE_AT = #useAt# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = sysdate + WHERE ADMINIST_ZONE_SE = #AdministZoneSe# + AND ADMINIST_ZONE_CODE = #AdministZoneCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Altibase.xml new file mode 100644 index 0000000..15b747a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Altibase.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Cubrid.xml new file mode 100644 index 0000000..d350211 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Cubrid.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Mysql.xml new file mode 100644 index 0000000..93210a4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Mysql.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Oracle.xml new file mode 100644 index 0000000..15b747a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Oracle.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Tibero.xml new file mode 100644 index 0000000..15b747a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/adc/EgovAdministCodeManage_SQL_Tibero.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Altibase.xml new file mode 100644 index 0000000..d8cf4a4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Altibase.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Cubrid.xml new file mode 100644 index 0000000..eb44572 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Cubrid.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Mysql.xml new file mode 100644 index 0000000..13db76e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Mysql.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Oracle.xml new file mode 100644 index 0000000..d8cf4a4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Oracle.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Tibero.xml new file mode 100644 index 0000000..d8cf4a4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cca/EgovCmmnCodeManage_SQL_Tibero.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Altibase.xml new file mode 100644 index 0000000..0cce600 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Altibase.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Cubrid.xml new file mode 100644 index 0000000..d59b1fe --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Cubrid.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Mysql.xml new file mode 100644 index 0000000..e318863 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Mysql.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Oracle.xml new file mode 100644 index 0000000..0cce600 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Oracle.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Tibero.xml new file mode 100644 index 0000000..0cce600 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/ccc/EgovCmmnClCodeManage_SQL_Tibero.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Altibase.xml new file mode 100644 index 0000000..9a06932 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Altibase.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Cubrid.xml new file mode 100644 index 0000000..fed9aaf --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Cubrid.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Mysql.xml new file mode 100644 index 0000000..a907e5a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Mysql.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Oracle.xml new file mode 100644 index 0000000..9a06932 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Oracle.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Tibero.xml new file mode 100644 index 0000000..9a06932 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/cde/EgovCmmnDetailCodeManage_SQL_Tibero.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Altibase.xml new file mode 100644 index 0000000..822a817 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Altibase.xml @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTNINSTTCODE + ( INSTT_CODE + , ALL_INSTT_NM + , LOWEST_INSTT_NM + , INSTT_ABRV_NM + , ODR + , ORD + , INSTT_ODR + , BEST_INSTT_CODE + , UPPER_INSTT_CODE + , REPRSNT_INSTT_CODE + , INSTT_TY_LCLAS + , INSTT_TY_MLSFC + , INSTT_TY_SCLAS + , TELNO + , FXNUM + , CREAT_DE + , ABL_DE + , ABL_ENNC + , CHANGE_DE + , CHANGE_TIME + , BSIS_DE + , SORT_ORDR + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #insttCode# + , #allInsttNm# + , #lowestInsttNm# + , #insttAbrvNm# + , #odr# + , #ord# + , #insttOdr# + , #bestInsttCode# + , #upperInsttCode# + , #reprsntInsttCode# + , #insttTyLclas# + , #insttTyMclas# + , #insttTySclas# + , #telno# + , #fxnum# + , #creatDe# + , #ablDe# + , #ablEnnc# + , #changede# + , #changeTime# + , #bsisDe# + , #sortOrdr# + , #frstRegisterId# + , sysdate + , #frstRegisterId# + , sysdate + ) + + + + UPDATE COMTNINSTTCODE + SET ALL_INSTT_NM = #allInsttNm# + , LOWEST_INSTT_NM = #lowestInsttNm# + , INSTT_ABRV_NM = #insttAbrvNm# + , ODR = #odr# + , ORD = #ord# + , INSTT_ODR = #insttOdr# + , BEST_INSTT_CODE = #bestInsttCode# + , UPPER_INSTT_CODE = #upperInsttCode# + , REPRSNT_INSTT_CODE = #reprsntInsttCode# + , INSTT_TY_LCLAS = #insttTyLclas# + , INSTT_TY_MLSFC = #insttTyMclas# + , INSTT_TY_SCLAS = #insttTySclas# + , TELNO = #telno# + , FXNUM = #fxnum# + , CREAT_DE = #creatDe# + , ABL_DE = #ablDe# + , ABL_ENNC = #ablEnnc# + , CHANGE_DE = #changede# + , CHANGE_TIME = #changeTime# + , BSIS_DE = #bsisDe# + , SORT_ORDR = #sortOrdr# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = sysdate + WHERE INSTT_CODE = #insttCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Cubrid.xml new file mode 100644 index 0000000..2caa3ff --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Cubrid.xml @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTNINSTTCODE + ( INSTT_CODE + , ALL_INSTT_NM + , LOWEST_INSTT_NM + , INSTT_ABRV_NM + , ODR + , ORD + , INSTT_ODR + , BEST_INSTT_CODE + , UPPER_INSTT_CODE + , REPRSNT_INSTT_CODE + , INSTT_TY_LCLAS + , INSTT_TY_MLSFC + , INSTT_TY_SCLAS + , TELNO + , FXNUM + , CREAT_DE + , ABL_DE + , ABL_ENNC + , CHANGE_DE + , CHANGE_TIME + , BSIS_DE + , SORT_ORDR + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #insttCode# + , #allInsttNm# + , #lowestInsttNm# + , #insttAbrvNm# + , #odr# + , #ord# + , #insttOdr# + , #bestInsttCode# + , #upperInsttCode# + , #reprsntInsttCode# + , #insttTyLclas# + , #insttTyMclas# + , #insttTySclas# + , #telno# + , #fxnum# + , #creatDe# + , #ablDe# + , #ablEnnc# + , #changede# + , #changeTime# + , #bsisDe# + , #sortOrdr# + , #frstRegisterId# + , SYSDATETIME + , #frstRegisterId# + , SYSDATETIME + ) + + + + UPDATE COMTNINSTTCODE + SET ALL_INSTT_NM = #allInsttNm# + , LOWEST_INSTT_NM = #lowestInsttNm# + , INSTT_ABRV_NM = #insttAbrvNm# + , ODR = #odr# + , ORD = #ord# + , INSTT_ODR = #insttOdr# + , BEST_INSTT_CODE = #bestInsttCode# + , UPPER_INSTT_CODE = #upperInsttCode# + , REPRSNT_INSTT_CODE = #reprsntInsttCode# + , INSTT_TY_LCLAS = #insttTyLclas# + , INSTT_TY_MLSFC = #insttTyMclas# + , INSTT_TY_SCLAS = #insttTySclas# + , TELNO = #telno# + , FXNUM = #fxnum# + , CREAT_DE = #creatDe# + , ABL_DE = #ablDe# + , ABL_ENNC = #ablEnnc# + , CHANGE_DE = #changede# + , CHANGE_TIME = #changeTime# + , BSIS_DE = #bsisDe# + , SORT_ORDR = #sortOrdr# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = SYSDATETIME + WHERE INSTT_CODE = #insttCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Mysql.xml new file mode 100644 index 0000000..548f1bb --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Mysql.xml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTNINSTTCODE + ( INSTT_CODE + , ALL_INSTT_NM + , LOWEST_INSTT_NM + , INSTT_ABRV_NM + , ODR + , ORD + , INSTT_ODR + , BEST_INSTT_CODE + , UPPER_INSTT_CODE + , REPRSNT_INSTT_CODE + , INSTT_TY_LCLAS + , INSTT_TY_MLSFC + , INSTT_TY_SCLAS + , TELNO + , FXNUM + , CREAT_DE + , ABL_DE + , ABL_ENNC + , CHANGE_DE + , CHANGE_TIME + , BSIS_DE + , SORT_ORDR + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #insttCode# + , #allInsttNm# + , #lowestInsttNm# + , #insttAbrvNm# + , #odr# + , #ord# + , #insttOdr# + , #bestInsttCode# + , #upperInsttCode# + , #reprsntInsttCode# + , #insttTyLclas# + , #insttTyMclas# + , #insttTySclas# + , #telno# + , #fxnum# + , #creatDe# + , #ablDe# + , #ablEnnc# + , #changede# + , #changeTime# + , #bsisDe# + , #sortOrdr# + , #frstRegisterId# + , sysdate() + , #frstRegisterId# + , sysdate() + ) + + + + UPDATE COMTNINSTTCODE + SET ALL_INSTT_NM = #allInsttNm# + , LOWEST_INSTT_NM = #lowestInsttNm# + , INSTT_ABRV_NM = #insttAbrvNm# + , ODR = #odr# + , ORD = #ord# + , INSTT_ODR = #insttOdr# + , BEST_INSTT_CODE = #bestInsttCode# + , UPPER_INSTT_CODE = #upperInsttCode# + , REPRSNT_INSTT_CODE = #reprsntInsttCode# + , INSTT_TY_LCLAS = #insttTyLclas# + , INSTT_TY_MLSFC = #insttTyMclas# + , INSTT_TY_SCLAS = #insttTySclas# + , TELNO = #telno# + , FXNUM = #fxnum# + , CREAT_DE = #creatDe# + , ABL_DE = #ablDe# + , ABL_ENNC = #ablEnnc# + , CHANGE_DE = #changede# + , CHANGE_TIME = #changeTime# + , BSIS_DE = #bsisDe# + , SORT_ORDR = #sortOrdr# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = sysdate() + WHERE INSTT_CODE = #insttCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Oracle.xml new file mode 100644 index 0000000..822a817 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Oracle.xml @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTNINSTTCODE + ( INSTT_CODE + , ALL_INSTT_NM + , LOWEST_INSTT_NM + , INSTT_ABRV_NM + , ODR + , ORD + , INSTT_ODR + , BEST_INSTT_CODE + , UPPER_INSTT_CODE + , REPRSNT_INSTT_CODE + , INSTT_TY_LCLAS + , INSTT_TY_MLSFC + , INSTT_TY_SCLAS + , TELNO + , FXNUM + , CREAT_DE + , ABL_DE + , ABL_ENNC + , CHANGE_DE + , CHANGE_TIME + , BSIS_DE + , SORT_ORDR + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #insttCode# + , #allInsttNm# + , #lowestInsttNm# + , #insttAbrvNm# + , #odr# + , #ord# + , #insttOdr# + , #bestInsttCode# + , #upperInsttCode# + , #reprsntInsttCode# + , #insttTyLclas# + , #insttTyMclas# + , #insttTySclas# + , #telno# + , #fxnum# + , #creatDe# + , #ablDe# + , #ablEnnc# + , #changede# + , #changeTime# + , #bsisDe# + , #sortOrdr# + , #frstRegisterId# + , sysdate + , #frstRegisterId# + , sysdate + ) + + + + UPDATE COMTNINSTTCODE + SET ALL_INSTT_NM = #allInsttNm# + , LOWEST_INSTT_NM = #lowestInsttNm# + , INSTT_ABRV_NM = #insttAbrvNm# + , ODR = #odr# + , ORD = #ord# + , INSTT_ODR = #insttOdr# + , BEST_INSTT_CODE = #bestInsttCode# + , UPPER_INSTT_CODE = #upperInsttCode# + , REPRSNT_INSTT_CODE = #reprsntInsttCode# + , INSTT_TY_LCLAS = #insttTyLclas# + , INSTT_TY_MLSFC = #insttTyMclas# + , INSTT_TY_SCLAS = #insttTySclas# + , TELNO = #telno# + , FXNUM = #fxnum# + , CREAT_DE = #creatDe# + , ABL_DE = #ablDe# + , ABL_ENNC = #ablEnnc# + , CHANGE_DE = #changede# + , CHANGE_TIME = #changeTime# + , BSIS_DE = #bsisDe# + , SORT_ORDR = #sortOrdr# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = sysdate + WHERE INSTT_CODE = #insttCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Tibero.xml new file mode 100644 index 0000000..822a817 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/icr/EgovInsttCodeRecptn_SQL_Tibero.xml @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT + INTO COMTNINSTTCODE + ( INSTT_CODE + , ALL_INSTT_NM + , LOWEST_INSTT_NM + , INSTT_ABRV_NM + , ODR + , ORD + , INSTT_ODR + , BEST_INSTT_CODE + , UPPER_INSTT_CODE + , REPRSNT_INSTT_CODE + , INSTT_TY_LCLAS + , INSTT_TY_MLSFC + , INSTT_TY_SCLAS + , TELNO + , FXNUM + , CREAT_DE + , ABL_DE + , ABL_ENNC + , CHANGE_DE + , CHANGE_TIME + , BSIS_DE + , SORT_ORDR + , FRST_REGISTER_ID + , FRST_REGIST_PNTTM + , LAST_UPDUSR_ID + , LAST_UPDT_PNTTM + ) + VALUES + ( #insttCode# + , #allInsttNm# + , #lowestInsttNm# + , #insttAbrvNm# + , #odr# + , #ord# + , #insttOdr# + , #bestInsttCode# + , #upperInsttCode# + , #reprsntInsttCode# + , #insttTyLclas# + , #insttTyMclas# + , #insttTySclas# + , #telno# + , #fxnum# + , #creatDe# + , #ablDe# + , #ablEnnc# + , #changede# + , #changeTime# + , #bsisDe# + , #sortOrdr# + , #frstRegisterId# + , sysdate + , #frstRegisterId# + , sysdate + ) + + + + UPDATE COMTNINSTTCODE + SET ALL_INSTT_NM = #allInsttNm# + , LOWEST_INSTT_NM = #lowestInsttNm# + , INSTT_ABRV_NM = #insttAbrvNm# + , ODR = #odr# + , ORD = #ord# + , INSTT_ODR = #insttOdr# + , BEST_INSTT_CODE = #bestInsttCode# + , UPPER_INSTT_CODE = #upperInsttCode# + , REPRSNT_INSTT_CODE = #reprsntInsttCode# + , INSTT_TY_LCLAS = #insttTyLclas# + , INSTT_TY_MLSFC = #insttTyMclas# + , INSTT_TY_SCLAS = #insttTySclas# + , TELNO = #telno# + , FXNUM = #fxnum# + , CREAT_DE = #creatDe# + , ABL_DE = #ablDe# + , ABL_ENNC = #ablEnnc# + , CHANGE_DE = #changede# + , CHANGE_TIME = #changeTime# + , BSIS_DE = #bsisDe# + , SORT_ORDR = #sortOrdr# + , LAST_UPDUSR_ID = #lastUpdusrId# + , LAST_UPDT_PNTTM = sysdate + WHERE INSTT_CODE = #insttCode# + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Altibase.xml new file mode 100644 index 0000000..3a09570 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Altibase.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTRDNMADRZIP + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Cubrid.xml new file mode 100644 index 0000000..4bcd662 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Cubrid.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTRDNMADRZIP + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Mysql.xml new file mode 100644 index 0000000..3451b82 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Mysql.xml @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTRDNMADRZIP + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Oracle.xml new file mode 100644 index 0000000..ed1d88e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Oracle.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTRDNMADRZIP + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Tibero.xml new file mode 100644 index 0000000..ed1d88e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Tibero.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTRDNMADRZIP + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Altibase.xml new file mode 100644 index 0000000..b82538f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Altibase.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTCZIP + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Cubrid.xml new file mode 100644 index 0000000..f512681 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Cubrid.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTCZIP + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Mysql.xml new file mode 100644 index 0000000..1d18b4a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Mysql.xml @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTCZIP + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Oracle.xml new file mode 100644 index 0000000..b82538f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Oracle.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTCZIP + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Tibero.xml new file mode 100644 index 0000000..b82538f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Tibero.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + SELECT CASE WHEN MAX(SN)+1 IS NULL THEN 1 + ELSE MAX(SN)+1 END AS sn + FROM COMTCZIP + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Altibase.xml new file mode 100644 index 0000000..2cfe0b4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Altibase.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Cubrid.xml new file mode 100644 index 0000000..0711412 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Cubrid.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Mysql.xml new file mode 100644 index 0000000..c59c171 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Mysql.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Oracle.xml new file mode 100644 index 0000000..2cfe0b4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Oracle.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Tibero.xml new file mode 100644 index 0000000..2cfe0b4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uap/EgovLoginPolicy_SQL_Tibero.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Altibase.xml b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Altibase.xml new file mode 100644 index 0000000..4991397 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Altibase.xml @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Cubrid.xml b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Cubrid.xml new file mode 100644 index 0000000..3bb3267 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Cubrid.xml @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Mysql.xml new file mode 100644 index 0000000..fcbff45 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Mysql.xml @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Oracle.xml b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Oracle.xml new file mode 100644 index 0000000..3bb3267 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Oracle.xml @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Tibero.xml new file mode 100644 index 0000000..5c7c24e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/com/uat/uia/EgovLoginUsr_SQL_Tibero.xml @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cmm.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cmm.xml new file mode 100644 index 0000000..23de610 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cmm.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cop-com.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cop-com.xml new file mode 100644 index 0000000..278e805 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cop-com.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cop-ems.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cop-ems.xml new file mode 100644 index 0000000..728792f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-cop-ems.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-drm.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-drm.xml new file mode 100644 index 0000000..7dc47cc --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-drm.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-gmt.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-gmt.xml new file mode 100644 index 0000000..7c99d18 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-gmt.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-ram.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-ram.xml new file mode 100644 index 0000000..5ed2494 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-ram.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-rgm.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-rgm.xml new file mode 100644 index 0000000..fcdf87a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-rgm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-rmt.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-rmt.xml new file mode 100644 index 0000000..cb1eb5d --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sec-rmt.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-cal.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-cal.xml new file mode 100644 index 0000000..1e2051d --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-cal.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-acr.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-acr.xml new file mode 100644 index 0000000..4043b3e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-acr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-adc.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-adc.xml new file mode 100644 index 0000000..5fddd1d --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-adc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-cca.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-cca.xml new file mode 100644 index 0000000..131a186 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-cca.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-ccc.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-ccc.xml new file mode 100644 index 0000000..f5a3aef --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-ccc.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-cde.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-cde.xml new file mode 100644 index 0000000..eff5047 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-cde.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-icr.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-icr.xml new file mode 100644 index 0000000..e42774c --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-icr.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-zip.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-zip.xml new file mode 100644 index 0000000..e34e025 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-sym-ccm-zip.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-uat-uap.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-uat-uap.xml new file mode 100644 index 0000000..f110a5a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-uat-uap.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-uat-uia.xml b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-uat-uia.xml new file mode 100644 index 0000000..2261d13 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/altibase/sql-map-config-altibase-uat-uia.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cmm.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cmm.xml new file mode 100644 index 0000000..b484774 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cmm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cop-com.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cop-com.xml new file mode 100644 index 0000000..747201f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cop-com.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cop-ems.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cop-ems.xml new file mode 100644 index 0000000..630a227 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-cop-ems.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-drm.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-drm.xml new file mode 100644 index 0000000..8a3c793 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-drm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-gmt.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-gmt.xml new file mode 100644 index 0000000..a12d352 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-gmt.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-ram.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-ram.xml new file mode 100644 index 0000000..c761873 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-ram.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-rgm.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-rgm.xml new file mode 100644 index 0000000..5f3c82a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-rgm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-rmt.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-rmt.xml new file mode 100644 index 0000000..6b65dce --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sec-rmt.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-cal.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-cal.xml new file mode 100644 index 0000000..485f9fa --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-cal.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-acr.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-acr.xml new file mode 100644 index 0000000..55fbf05 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-acr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-adc.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-adc.xml new file mode 100644 index 0000000..01bce33 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-adc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-cca.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-cca.xml new file mode 100644 index 0000000..9d28a9e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-cca.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-ccc.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-ccc.xml new file mode 100644 index 0000000..5f0bdea --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-ccc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-cde.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-cde.xml new file mode 100644 index 0000000..e6df28f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-cde.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-icr.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-icr.xml new file mode 100644 index 0000000..3815afa --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-icr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-zip.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-zip.xml new file mode 100644 index 0000000..fac7f1c --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-sym-ccm-zip.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-uat-uap.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-uat-uap.xml new file mode 100644 index 0000000..8c76353 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-uat-uap.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-uat-uia.xml b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-uat-uia.xml new file mode 100644 index 0000000..1a91623 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/cubrid/sql-map-config-cubrid-uat-uia.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cmm.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cmm.xml new file mode 100644 index 0000000..2f6c78a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cmm.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cms.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cms.xml new file mode 100644 index 0000000..b0902f7 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cms.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cop-com.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cop-com.xml new file mode 100644 index 0000000..9bea448 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cop-com.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-dms.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-dms.xml new file mode 100644 index 0000000..887d2c8 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-dms.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-drm.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-drm.xml new file mode 100644 index 0000000..a5532c5 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-drm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-gmt.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-gmt.xml new file mode 100644 index 0000000..b64b356 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-gmt.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-ram.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-ram.xml new file mode 100644 index 0000000..ff488dd --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-ram.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-rgm.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-rgm.xml new file mode 100644 index 0000000..1160559 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-rgm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-rmt.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-rmt.xml new file mode 100644 index 0000000..10641ba --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sec-rmt.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-cal.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-cal.xml new file mode 100644 index 0000000..6635dbe --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-cal.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-acr.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-acr.xml new file mode 100644 index 0000000..3243e14 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-acr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-adc.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-adc.xml new file mode 100644 index 0000000..2891df3 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-adc.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-cca.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-cca.xml new file mode 100644 index 0000000..ab37a01 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-cca.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-ccc.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-ccc.xml new file mode 100644 index 0000000..61d3ea6 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-ccc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-cde.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-cde.xml new file mode 100644 index 0000000..6db56b2 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-cde.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-icr.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-icr.xml new file mode 100644 index 0000000..fa11357 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-icr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-zip.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-zip.xml new file mode 100644 index 0000000..d3def40 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-sym-ccm-zip.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-uat-uap.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-uat-uap.xml new file mode 100644 index 0000000..9673109 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-uat-uap.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-uat-uia.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-uat-uia.xml new file mode 100644 index 0000000..6210bf4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-uat-uia.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cmm.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cmm.xml new file mode 100644 index 0000000..a0670fd --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cmm.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cms.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cms.xml new file mode 100644 index 0000000..dfb01ce --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cms.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cop-com.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cop-com.xml new file mode 100644 index 0000000..9806818 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-cop-com.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-dms.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-dms.xml new file mode 100644 index 0000000..aeb5f7e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-dms.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-drm.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-drm.xml new file mode 100644 index 0000000..3e92a43 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-drm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-gmt.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-gmt.xml new file mode 100644 index 0000000..8101353 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-gmt.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-ram.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-ram.xml new file mode 100644 index 0000000..7eb559e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-ram.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-rgm.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-rgm.xml new file mode 100644 index 0000000..3aff4a3 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-rgm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-rmt.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-rmt.xml new file mode 100644 index 0000000..854d7b2 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sec-rmt.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-cal.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-cal.xml new file mode 100644 index 0000000..431cceb --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-cal.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-acr.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-acr.xml new file mode 100644 index 0000000..342684d --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-acr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-adc.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-adc.xml new file mode 100644 index 0000000..b01daa1 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-adc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-cca.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-cca.xml new file mode 100644 index 0000000..935a7fa --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-cca.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-ccc.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-ccc.xml new file mode 100644 index 0000000..75ee39d --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-ccc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-cde.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-cde.xml new file mode 100644 index 0000000..351e12a --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-cde.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-icr.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-icr.xml new file mode 100644 index 0000000..93b06db --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-icr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-zip.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-zip.xml new file mode 100644 index 0000000..d78f887 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-sym-ccm-zip.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uat-uap.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uat-uap.xml new file mode 100644 index 0000000..fcff16e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uat-uap.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uat-uia.xml b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uat-uia.xml new file mode 100644 index 0000000..3070375 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/oracle/sql-map-config-oracle-uat-uia.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/sms/sms.xml b/src/main/resources/egovframework/sqlmap/config/sms/sms.xml new file mode 100644 index 0000000..7310310 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/sms/sms.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-cmm.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-cmm.xml new file mode 100644 index 0000000..6619eb5 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-cmm.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-cop-com.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-cop-com.xml new file mode 100644 index 0000000..45835b9 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-cop-com.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-drm.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-drm.xml new file mode 100644 index 0000000..2e09529 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-drm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-gmt.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-gmt.xml new file mode 100644 index 0000000..be6e653 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-gmt.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-ram.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-ram.xml new file mode 100644 index 0000000..cbe7f8d --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-ram.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-rgm.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-rgm.xml new file mode 100644 index 0000000..fa98abd --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-rgm.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-rmt.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-rmt.xml new file mode 100644 index 0000000..8fc887f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sec-rmt.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-acr.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-acr.xml new file mode 100644 index 0000000..eb8e80f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-acr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-adc.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-adc.xml new file mode 100644 index 0000000..112da57 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-adc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-cca.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-cca.xml new file mode 100644 index 0000000..5510129 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-cca.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-ccc.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-ccc.xml new file mode 100644 index 0000000..d27c3db --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-ccc.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-cde.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-cde.xml new file mode 100644 index 0000000..f8cb50b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-cde.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-icr.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-icr.xml new file mode 100644 index 0000000..663957f --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-icr.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-zip.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-zip.xml new file mode 100644 index 0000000..c195ebb --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-sym-ccm-zip.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-uat-uap.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-uat-uap.xml new file mode 100644 index 0000000..bdafc07 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-uat-uap.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-uat-uia.xml b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-uat-uia.xml new file mode 100644 index 0000000..00fc511 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/tibero/sql-map-config-tibero-uat-uia.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/dms/common/Common_TIBERO.xml b/src/main/resources/egovframework/sqlmap/dms/common/Common_TIBERO.xml new file mode 100644 index 0000000..bdbd0a6 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/dms/common/Common_TIBERO.xml @@ -0,0 +1,52 @@ + + + + + + + + + + INSERT INTO DMS_PUSH_USER + ( + USER_ID + ,USER_NM + , DEVICE_ID + , DEVICE_ALIAS) + VALUES ( + #userId# + , #userNm# + , #deviceId# + , #deviceAlias#) + + + + UPDATE DMS_PUSH_USER + SET + DEVICE_ID=#deviceId# + WHERE 1=1 + AND USER_ID = #userId# + + + + + + DELETE FROM DMS_PUSH_USER WHERE USER_ID = (SELECT USER_ID FROM DMS_PUSH_USER WHERE DEVICE_ID=#value#) + + diff --git a/src/main/resources/egovframework/sqlmap/dms/common/Login.xml b/src/main/resources/egovframework/sqlmap/dms/common/Login.xml new file mode 100644 index 0000000..f6c3226 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/dms/common/Login.xml @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/dms/common/Sms.xml b/src/main/resources/egovframework/sqlmap/dms/common/Sms.xml new file mode 100644 index 0000000..a23f58e --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/dms/common/Sms.xml @@ -0,0 +1,42 @@ + + + + + + + + + + INSERT INTO SC_TRAN( + TR_ID + ,TR_SENDDATE + ,TR_SENDSTAT + ,TR_PHONE + ,TR_CALLBACK + ,TR_MSG + ,TR_ETC1 + ,TR_ETC2 + ,TR_ETC3 + ,TR_ETC4 + ,TR_ETC5 + ) + VALUES( + #trId# + ,NOW() + ,'0' + ,#trPhone# + ,#trCallback# + ,#trMsg# + ,DATE_FORMAT(NOW(),'%Y%m') + ,#trEtc2# + ,#trEtc3# + ,#trEtc4# + ,#trEtc5# + ) + + + diff --git a/src/main/resources/egovframework/sqlmap/dms/dmsDtb/DmsDtb_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/dms/dmsDtb/DmsDtb_SQL_Mysql.xml new file mode 100644 index 0000000..b12d0df --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/dms/dmsDtb/DmsDtb_SQL_Mysql.xml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO DMS_DTB + ( DTB_SEQ + , PRJ_SEQ + , TITLE + , CONTENTS + , CREATE_DATE + , REC_STS + , ATCH_FILE_ID + , USER_ID + , USER_NM + , USER_TYPE + , ETC + ) + VALUES (#dtbSeq# + , #prjSeq# + , #title# + , #contents# + , NOW() + , 'A' + , #atchFileId# + , #userId# + , #userNm# + , #userType# + , #etc# + ) + + + + UPDATE + DMS_DTB + SET + TITLE=#title# + , CONTENTS=#contents# + , ATCH_FILE_ID=#atchFileId# + WHERE 1=1 + AND REC_STS='A' + AND DTB_SEQ=#dtbSeq# + + + + UPDATE + DMS_DTB + SET + REC_STS='D' + WHERE 1=1 + AND DTB_SEQ=#dtbSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/dms/dmsHdb/DmsHdb_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/dms/dmsHdb/DmsHdb_SQL_Mysql.xml new file mode 100644 index 0000000..0b671f4 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/dms/dmsHdb/DmsHdb_SQL_Mysql.xml @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO DMS_HDB + ( HDB_SEQ + , PRJ_SEQ + , TITLE + , CONTENTS + , CREATE_DATE + , HDB_STS + , REC_STS + , ATCH_FILE_ID + , USER_ID + , USER_NM + , USER_TYPE + , ETC + , SMS_YN + , RD_CNT + ) + VALUES (#hdbSeq# + , #prjSeq# + , #title# + , #contents# + , NOW() + , 'A' + , 'A' + , #atchFileId# + , #userId# + , #userNm# + , #userType# + , #etc# + , #smsYn# + , 0 + ) + + + + UPDATE + DMS_HDB + SET + HDB_SEQ=#hdbSeq# + , PRJ_SEQ=#prjSeq# + , TITLE=#title# + , CONTENTS=#contents# + , CREATE_DATE=#createDate# + , COMP_SCD_DATE=#compScdDate# + , COMP_DATE=#compDate# + , HDB_STS=#hdbSts# + , REC_STS=#recSts# + , ATCH_FILE_ID=#atchFileId# + , USER_ID=#userId# + , USER_NM=#userNm# + , USER_TYPE=#userType# + , SMS_YN=#smsYn# + , ETC=#etc# + + WHERE 1=1 + AND REC_STS='A' + AND HDB_SEQ=#hdbSeq# + + + + UPDATE + DMS_HDB + SET + REC_STS='D' + WHERE 1=1 + AND HDB_SEQ=#hdbSeq# + + + + + + + + + + + + + INSERT INTO DMS_HDB_REPLY + ( + HDB_REPLY_SEQ + ,HDB_SEQ + ,TITLE + ,CONTENTS + ,REPLY_DATE + ,REC_STS + ,ATCH_FILE_ID + ,USER_ID + ,USER_NM + ,USER_TYPE + ) + VALUES( + #hdbReplySeq# + ,#hdbSeq# + ,#title# + ,#contents# + ,NOW() + ,'A' + ,#atchFileId# + ,#userId# + ,#userNm# + ,#userType# + ) + + + + UPDATE + DMS_HDB + SET + HDB_STS = #hdbSts# + + COMP_SCD_DATE = #compScdDate# + + + COMP_DATE = NOW() + + WHERE 1=1 + AND HDB_SEQ = #hdbSeq# + + + + UPDATE + DMS_HDB_REPLY + SET + REC_STS = 'D' + WHERE 1=1 + AND HDB_REPLY_SEQ = #hdbReplySeq# + + + + + UPDATE + DMS_HDB + SET + RD_CNT = RD_CNT+1 + WHERE + HDB_SEQ = #hdbSeq# + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/dms/dmsPrj/DmsPrj_SQL_Mysql.xml b/src/main/resources/egovframework/sqlmap/dms/dmsPrj/DmsPrj_SQL_Mysql.xml new file mode 100644 index 0000000..dc82b0b --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/dms/dmsPrj/DmsPrj_SQL_Mysql.xml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO DMS_PRJ + ( PRJ_SEQ + , PRJ_NM + , ATCH_FILE_ID + , CREATE_DATE + , REC_STS + ) + VALUES (#prjSeq# + , #prjNm# + , #atchFileId# + , NOW() + , 'A' + ) + + + + UPDATE + DMS_PRJ + SET + PRJ_NM=#prjNm# + , ATCH_FILE_ID=#atchFileId# + + WHERE 1=1 + AND REC_STS='A' + AND PRJ_SEQ=#prjSeq# + + + + UPDATE + DMS_PRJ + SET + REC_STS='D' + WHERE 1=1 + AND PRJ_SEQ=#prjSeq# + + + + + + + + + + INSERT INTO DMS_PRJ_AUTH_USER(PRJ_SEQ, USER_ID, USER_TYPE, SORT) VALUES(#prjSeq#, #userId#, #userType#, #sort#) + + + + + + DELETE FROM DMS_PRJ_AUTH_USER + WHERE 1=1 + + PRJ_SEQ = #prjSeq# + + + USER_ID = #userId# + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com-rules.xml b/src/main/resources/egovframework/validator/com-rules.xml new file mode 100644 index 0000000..f8b44c6 --- /dev/null +++ b/src/main/resources/egovframework/validator/com-rules.xml @@ -0,0 +1,403 @@ + + + + + + + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkPassword1(pwd) { + p_pass = pwd.value; + + if (pwd.value.length < 8 || pwd.value.length > 20 ){ + + pwd.value =""; + pwd.focus(); + return false; + } + return pwd; + } + ]]> + + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkPassword2(pwd) { + var str = pwd.value; + for (var i=0; i < str .length; i++) { + ch_char = str .charAt(i); + ch = ch_char.charCodeAt(); + if( (ch >= 33 && ch <= 47) || (ch >= 58 && ch <= 64) || (ch >= 91 && ch <= 96) || (ch >= 123 && ch <= 126) ) { + return false; + } + } + return pwd; + } + ]]> + + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkPassword3(pwd) { + p_pass = pwd.value; + var cnt=0,cnt2=1,cnt3=1; + var temp=""; + + for(i=0;i < p_pass.length;i++){ + temp_pass1 = p_pass.charAt(i); + next_pass = (parseInt(temp_pass1.charCodeAt(0)))+1; + temp_p = p_pass.charAt(i+1); + temp_pass2 = (parseInt(temp_p.charCodeAt(0))); + if (temp_pass2 == next_pass) + cnt2 = cnt2 + 1; + else + cnt2 = 1; + if (temp_pass1 == temp_p) + cnt3 = cnt3 + 1; + else + cnt3 = 1; + if (cnt2 > 3) break; + if (cnt3 > 3) break; + } + if (cnt2 > 3){ + pwd.value =""; + pwd.focus(); + return false; + } + return pwd; + } + ]]> + + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkPassword4(pwd) { + p_pass = pwd.value; + var cnt=0,cnt2=1,cnt3=1; + var temp=""; + + for(i=0;i < p_pass.length;i++){ + temp_pass1 = p_pass.charAt(i); + next_pass = (parseInt(temp_pass1.charCodeAt(0)))+1; + temp_p = p_pass.charAt(i+1); + temp_pass2 = (parseInt(temp_p.charCodeAt(0))); + if (temp_pass2 == next_pass) + cnt2 = cnt2 + 1; + else + cnt2 = 1; + if (temp_pass1 == temp_p) + cnt3 = cnt3 + 1; + else + cnt3 = 1; + if (cnt2 > 3) break; + if (cnt3 > 3) break; + } + if (cnt3 > 3){ + pwd.value =""; + pwd.focus(); + return false; + } + return pwd; + } + ]]> + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + + if (!isOK(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + + } else { + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isOK(vv){ + if (vv >0) return true; + else return false; + } + ]]> + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkEnglish(EnglishStr){ + for(var i=0;i + + + + + + diff --git a/src/main/resources/egovframework/validator/com/cop/com/EgovCopComManage.xml b/src/main/resources/egovframework/validator/com/cop/com/EgovCopComManage.xml new file mode 100644 index 0000000..49e2369 --- /dev/null +++ b/src/main/resources/egovframework/validator/com/cop/com/EgovCopComManage.xml @@ -0,0 +1,39 @@ + + + + + +
+ + + + + maxlength + 120 + + + + + + + maxlength + 2000 + + + + + +
+
+ + + + + + +
+
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/cop/ems/EgovMailRegist.xml b/src/main/resources/egovframework/validator/com/cop/ems/EgovMailRegist.xml new file mode 100644 index 0000000..e7c1bda --- /dev/null +++ b/src/main/resources/egovframework/validator/com/cop/ems/EgovMailRegist.xml @@ -0,0 +1,30 @@ + + + + + + +
+ + + + + maxlength + 50 + + + + + + + + maxlength + 60 + + +
+
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/sec/ram/EgovSecurityManage.xml b/src/main/resources/egovframework/validator/com/sec/ram/EgovSecurityManage.xml new file mode 100644 index 0000000..c116182 --- /dev/null +++ b/src/main/resources/egovframework/validator/com/sec/ram/EgovSecurityManage.xml @@ -0,0 +1,95 @@ + + + + + + +
+ + + + + maxlength + 30 + + + + + + + maxlength + 60 + + + + + + + maxlength + 200 + + +
+
+ + +
+ + + + + maxlength + 60 + + + + + + + maxlength + 100 + + +
+
+ + +
+ + + + + maxlength + 60 + + + + + + + maxlength + 300 + + + + + + + maxlength + 200 + + + + + + + maxlength + 10 + + +
+
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/sym/cal/EgovRestdeManage.xml b/src/main/resources/egovframework/validator/com/sym/cal/EgovRestdeManage.xml new file mode 100644 index 0000000..5243c4c --- /dev/null +++ b/src/main/resources/egovframework/validator/com/sym/cal/EgovRestdeManage.xml @@ -0,0 +1,42 @@ + + + + + + +
+ + + + + maxlength + 8 + + + + + + + maxlength + 50 + + + + + + + maxlength + 200 + + + + + +
+ + +
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/sym/ccm/adc/EgovAdministCodeManage.xml b/src/main/resources/egovframework/validator/com/sym/ccm/adc/EgovAdministCodeManage.xml new file mode 100644 index 0000000..abe8c8f --- /dev/null +++ b/src/main/resources/egovframework/validator/com/sym/ccm/adc/EgovAdministCodeManage.xml @@ -0,0 +1,41 @@ + + + + + + + +
+ + + + + + + + maxlength + 10 + + + + + + + maxlength + 60 + + + + + + + + +
+ + +
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/sym/ccm/cca/EgovCmmnCodeManage.xml b/src/main/resources/egovframework/validator/com/sym/ccm/cca/EgovCmmnCodeManage.xml new file mode 100644 index 0000000..f8c56e0 --- /dev/null +++ b/src/main/resources/egovframework/validator/com/sym/ccm/cca/EgovCmmnCodeManage.xml @@ -0,0 +1,50 @@ + + + + + + +
+ + + + + maxlength + 6 + + + + + + + maxlength + 60 + + + + + + + maxlength + 200 + + + + + + + maxlength + 3 + + + + + +
+ + +
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/sym/ccm/ccc/EgovCmmnClCodeManage.xml b/src/main/resources/egovframework/validator/com/sym/ccm/ccc/EgovCmmnClCodeManage.xml new file mode 100644 index 0000000..3614c9d --- /dev/null +++ b/src/main/resources/egovframework/validator/com/sym/ccm/ccc/EgovCmmnClCodeManage.xml @@ -0,0 +1,42 @@ + + + + + + +
+ + + + + maxlength + 3 + + + + + + + maxlength + 60 + + + + + + + maxlength + 200 + + + + + +
+ + +
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/sym/ccm/cde/EgovCmmnDetailCodeManage.xml b/src/main/resources/egovframework/validator/com/sym/ccm/cde/EgovCmmnDetailCodeManage.xml new file mode 100644 index 0000000..a4643e7 --- /dev/null +++ b/src/main/resources/egovframework/validator/com/sym/ccm/cde/EgovCmmnDetailCodeManage.xml @@ -0,0 +1,51 @@ + + + + + + + +
+ + + + + maxlength + 6 + + + + + + + maxlength + 15 + + + + + + + maxlength + 60 + + + + + + + maxlength + 200 + + + + + +
+ + +
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/sym/ccm/zip/EgovZipManage.xml b/src/main/resources/egovframework/validator/com/sym/ccm/zip/EgovZipManage.xml new file mode 100644 index 0000000..00a7313 --- /dev/null +++ b/src/main/resources/egovframework/validator/com/sym/ccm/zip/EgovZipManage.xml @@ -0,0 +1,115 @@ + + + + + + + +
+ + + + + maxlength + 6 + + + + + + + maxlength + 20 + + + + + + + maxlength + 20 + + + + + + + maxlength + 30 + + + + + + + maxlength + 60 + + + + + + + maxlength + 20 + + + + + + + + maxlength + 12 + + + + + + + maxlength + 60 + + + + + + + maxlength + 5 + + + + + + + maxlength + 5 + + + + + + + maxlength + 60 + + + + + + + maxlength + 60 + + + + +
+ + +
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/uat/uap/EgovLoginPolicy.xml b/src/main/resources/egovframework/validator/com/uat/uap/EgovLoginPolicy.xml new file mode 100644 index 0000000..b101e28 --- /dev/null +++ b/src/main/resources/egovframework/validator/com/uat/uap/EgovLoginPolicy.xml @@ -0,0 +1,24 @@ + + + + + + +
+ + + + + maxlength + 23 + + + + + +
+
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/uat/uia/EgovIdPasswordSearch.xml b/src/main/resources/egovframework/validator/com/uat/uia/EgovIdPasswordSearch.xml new file mode 100644 index 0000000..5238849 --- /dev/null +++ b/src/main/resources/egovframework/validator/com/uat/uia/EgovIdPasswordSearch.xml @@ -0,0 +1,28 @@ + + + + + + +
+ + + + + + + + + + + + + + + +
+
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/com/utl/sim/EgovSysInfo.xml b/src/main/resources/egovframework/validator/com/utl/sim/EgovSysInfo.xml new file mode 100644 index 0000000..aad2d55 --- /dev/null +++ b/src/main/resources/egovframework/validator/com/utl/sim/EgovSysInfo.xml @@ -0,0 +1,16 @@ + + + + + + +
+ + + +
+
+ +
\ No newline at end of file diff --git a/src/main/resources/egovframework/validator/validator-rules.xml b/src/main/resources/egovframework/validator/validator-rules.xml new file mode 100644 index 0000000..16dca0e --- /dev/null +++ b/src/main/resources/egovframework/validator/validator-rules.xml @@ -0,0 +1,1218 @@ + + + + + + + + + + = 0) { + value = field.options[si].value; + } + } else if (field.type == 'radio' || field.type == 'checkbox') { + if (field.checked) { + value = field.value; + } + } else { + value = field.value; + } + if (trim(value).length == 0) { + if ((i == 0) && (field.type != 'hidden')) { + focusField = field; + } + fields[i++] = oRequired[x][1]; + isValid = false; + } + } else if (field.type == "select-multiple") { + var numOptions = field.options.length; + lastSelected=-1; + for(loop=numOptions-1;loop>=0;loop--) { + if(field.options[loop].selected) { + lastSelected = loop; + value = field.options[loop].value; + break; + } + } + if(lastSelected < 0 || trim(value).length == 0) { + if(i == 0) { + focusField = field; + } + fields[i++] = oRequired[x][1]; + isValid=false; + } + } else if ((field.length > 0) && (field[0].type == 'radio' || field[0].type == 'checkbox')) { + isChecked=-1; + for (loop=0;loop < field.length;loop++) { + if (field[loop].checked) { + isChecked=loop; + break; // only one needs to be checked + } + } + if (isChecked < 0) { + if (i == 0) { + focusField = field[0]; + } + fields[i++] = oRequired[x][1]; + isValid=false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + // Trim whitespace from left and right sides of s. + function trim(s) { + return s.replace( /^\s*/, "" ).replace( /\s*$/, "" ); + } + + ]]> + + + + + + + + + + + + 0) && (field.value.length < iMin)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMinLength[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + + iMax) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMaxLength[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + + 0)) { + + if (!matchPattern(field.value, oMasked[x][2]("mask"))) { + if (i == 0) { + focusField = field; + } + fields[i++] = oMasked[x][1]; + isValid = false; + } + } + } + + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + } + + function matchPattern(value, mask) { + return mask.exec(value); + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oByte[x][1]; + + } else { + + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oByte[x][1]; + bValid = false; + } + } + } + + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oShort[x][1]; + + } else { + + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oShort[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + + if (!isAllDigits(value)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + + } else { + var iValue = parseInt(value); + if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oInteger[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isAllDigits(argvalue) { + argvalue = argvalue.toString(); + var validChars = "0123456789"; + var startFrom = 0; + if (argvalue.substring(0, 2) == "0x") { + validChars = "0123456789abcdefABCDEF"; + startFrom = 2; + } else if (argvalue.charAt(0) == "0") { + validChars = "01234567"; + startFrom = 1; + } else if (argvalue.charAt(0) == "-") { + startFrom = 1; + } + + for (var n = startFrom; n < argvalue.length; n++) { + if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false; + } + return true; + }]]> + + + + + + + + + + + = 0) { + value = field.options[si].value; + } + } else { + value = field.value; + } + + if (value.length > 0) { + // remove '.' before checking digits + var tempArray = value.split('.'); + var joinedString= tempArray.join(''); + + if (!isAllDigits(joinedString)) { + bValid = false; + if (i == 0) { + focusField = field; + } + fields[i++] = oFloat[x][1]; + + } else { + var iValue = parseFloat(value); + if (isNaN(iValue)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oFloat[x][1]; + bValid = false; + } + } + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + }]]> + + + + + + + + + + + 0) && + (datePattern.length > 0)) { + var MONTH = "MM"; + var DAY = "dd"; + var YEAR = "yyyy"; + var orderMonth = datePattern.indexOf(MONTH); + var orderDay = datePattern.indexOf(DAY); + var orderYear = datePattern.indexOf(YEAR); + if ((orderDay < orderYear && orderDay > orderMonth)) { + var iDelim1 = orderMonth + MONTH.length; + var iDelim2 = orderDay + DAY.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderDay && iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); + } else if (iDelim1 == orderDay) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); + } else if (iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); + } else { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[2], matched[1], matched[3])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else if ((orderMonth < orderYear && orderMonth > orderDay)) { + var iDelim1 = orderDay + DAY.length; + var iDelim2 = orderMonth + MONTH.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderMonth && iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$"); + } else if (iDelim1 == orderMonth) { + dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$"); + } else if (iDelim2 == orderYear) { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$"); + } else { + dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[1], matched[2], matched[3])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else if ((orderMonth > orderYear && orderMonth < orderDay)) { + var iDelim1 = orderYear + YEAR.length; + var iDelim2 = orderMonth + MONTH.length; + var delim1 = datePattern.substring(iDelim1, iDelim1 + 1); + var delim2 = datePattern.substring(iDelim2, iDelim2 + 1); + if (iDelim1 == orderMonth && iDelim2 == orderDay) { + dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$"); + } else if (iDelim1 == orderMonth) { + dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$"); + } else if (iDelim2 == orderDay) { + dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$"); + } else { + dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$"); + } + var matched = dateRegexp.exec(value); + if(matched != null) { + if (!isValidDate(matched[3], matched[2], matched[1])) { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } else { + if (i == 0) { + focusField = form[oDate[x][0]]; + } + fields[i++] = oDate[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function isValidDate(day, month, year) { + if (month < 1 || month > 12) { + return false; + } + if (day < 1 || day > 31) { + return false; + } + if ((month == 4 || month == 6 || month == 9 || month == 11) && + (day == 31)) { + return false; + } + if (month == 2) { + var leap = (year % 4 == 0 && + (year % 100 != 0 || year % 400 == 0)); + if (day>29 || (day == 29 && !leap)) { + return false; + } + } + return true; + }]]> + + + + + + + + + + + + + + + 0)) { + + var iMin = parseInt(oRange[x][2]("min")); + var iMax = parseInt(oRange[x][2]("max")); + var iValue = parseInt(field.value); + if (!(iValue >= iMin && iValue <= iMax)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oRange[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + 0)) { + + var fMin = parseFloat(oRange[x][2]("min")); + var fMax = parseFloat(oRange[x][2]("max")); + var fValue = parseFloat(field.value); + if (!(fValue >= fMin && fValue <= fMax)) { + if (i == 0) { + focusField = field; + } + fields[i++] = oRange[x][1]; + isValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return isValid; + }]]> + + + + + + + 0)) { + if (!luhnCheck(form[oCreditCard[x][0]].value)) { + if (i == 0) { + focusField = form[oCreditCard[x][0]]; + } + fields[i++] = oCreditCard[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl + */ + function luhnCheck(cardNumber) { + if (isLuhnNum(cardNumber)) { + var no_digit = cardNumber.length; + var oddoeven = no_digit & 1; + var sum = 0; + for (var count = 0; count < no_digit; count++) { + var digit = parseInt(cardNumber.charAt(count)); + if (!((count & 1) ^ oddoeven)) { + digit *= 2; + if (digit > 9) digit -= 9; + }; + sum += digit; + }; + if (sum == 0) return false; + if (sum % 10 == 0) return true; + }; + return false; + } + + function isLuhnNum(argvalue) { + argvalue = argvalue.toString(); + if (argvalue.length == 0) { + return false; + } + for (var n = 0; n < argvalue.length; n++) { + if ((argvalue.substring(n, n+1) < "0") || + (argvalue.substring(n,n+1) > "9")) { + return false; + } + } + return true; + }]]> + + + + + + + + 0)) { + if (!checkEmail(form[oEmail[x][0]].value)) { + if (i == 0) { + focusField = form[oEmail[x][0]]; + } + fields[i++] = oEmail[x][1]; + bValid = false; + } + } + } + if (fields.length > 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com), + * http://javascript.internet.com + */ + function checkEmail(emailStr) { + if (emailStr.length == 0) { + return true; + } + var emailPat=/^(.+)@(.+)$/; + var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"; + var validChars="\[^\\s" + specialChars + "\]"; + var quotedUser="(\"[^\"]*\")"; + var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/; + var atom=validChars + '+'; + var word="(" + atom + "|" + quotedUser + ")"; + var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); + var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$"); + var matchArray=emailStr.match(emailPat); + if (matchArray == null) { + return false; + } + var user=matchArray[1]; + var domain=matchArray[2]; + if (user.match(userPat) == null) { + return false; + } + var IPArray = domain.match(ipDomainPat); + if (IPArray != null) { + for (var i = 1; i <= 4; i++) { + if (IPArray[i] > 255) { + return false; + } + } + return true; + } + var domainArray=domain.match(domainPat); + if (domainArray == null) { + return false; + } + var atomPat=new RegExp(atom,"g"); + var domArr=domain.match(atomPat); + var len=domArr.length; + if ((domArr[domArr.length-1].length < 2) || + (domArr[domArr.length-1].length > 3)) { + return false; + } + if (len < 2) { + return false; + } + return true; + }]]> + + + + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + /** + * Reference: JS Guide + * http://jsguide.net/ver2/articles/frame.php?artnum=002 + */ + function checkIhIdNum(ihidnum){ + + fmt = /^\d{6}[1234]\d{6}$/; + if(!fmt.test(ihidnum)){ + return false; + } + + birthYear = (ihidnum.charAt(7) <= "2") ? "19" : "20"; + birthYear += ihidnum.substr(0, 2); + birthMonth = ihidnum.substr(2, 2) - 1; + birthDate = ihidnum.substr(4, 2); + birth = new Date(birthYear, birthMonth, birthDate); + + if( birth.getYear() % 100 != ihidnum.substr(0, 2) || + birth.getMonth() != birthMonth || + birth.getDate() != birthDate) { + return false; + } + + var arrDivide = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]; + var checkdigit = 0; + for(var i=0;i + + + + 0) { + focusField.focus(); + alert(fields.join('\n')); + } + return bValid; + } + + function checkKorean(koreanStr){ + for(var i=0;i + + + + + + + + diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..4efb952 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/resource.properties b/src/main/resources/resource.properties new file mode 100644 index 0000000..d59d929 --- /dev/null +++ b/src/main/resources/resource.properties @@ -0,0 +1,7 @@ +# \uc554\ud638\ud654 \ube44\ubc00\ubc88\ud638 +encrypt.passwd=upNP5q53G45detG905727F7UBA0QHEMgBiuuki3B5CU= +#contents.doc=/Users/sayit/Documents/workspace_eclipse/new_cms/cms2/src/main/webapp +contents.doc=/webapps/proj/cms2_extends/ +contents.url=/contents/cms/content/02/ +attach.whitelist=hwp,jpg,jpeg,xls,xlsx,zip,ppt,pptx,pdf,gif,png,js,java,war,mp4,avi,css,doc,docx,txt,bmp,jar,tar,tgz,properties,xml +attach.logolist =jpg,jpeg,gif,png \ No newline at end of file diff --git a/src/main/resources/views.properties b/src/main/resources/views.properties new file mode 100644 index 0000000..ce7a04c --- /dev/null +++ b/src/main/resources/views.properties @@ -0,0 +1,13 @@ +## validator.do +egovframework/com/cmm/validator.(class)=org.springframework.web.servlet.view.JstlView +egovframework/com/cmm/validator.url=/common/validator.jsp + +cmm/validateError.(class)=org.springframework.web.servlet.view.JstlView +cmm/validateError.url=/common/validateError.jsp + +cmm/privilegeError.(class)=org.springframework.web.servlet.view.JstlView +cmm/privilegeError.url=/common/privilegeError.jsp + +cmm/sessionError.(class)=org.springframework.web.servlet.view.JstlView +cmm/sessionError.url=/common/sessionError.jsp + diff --git a/src/main/webapp/META-INF/MANIFEST.MF b/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml b/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml new file mode 100644 index 0000000..063761b --- /dev/null +++ b/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + egovframework/com/cmm/error/dataAccessFailure + egovframework/com/cmm/error/dataAccessFailure + egovframework/com/cmm/error/egovBizException + egovframework/com/uat/uia/EgovLoginUsr + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-tiles.xml b/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-tiles.xml new file mode 100644 index 0000000..c446be3 --- /dev/null +++ b/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-tiles.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + /WEB-INF/tiles-defs/templates.xml + + + + + + diff --git a/src/main/webapp/WEB-INF/dwr.xml b/src/main/webapp/WEB-INF/dwr.xml new file mode 100644 index 0000000..3ee2979 --- /dev/null +++ b/src/main/webapp/WEB-INF/dwr.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeDetail.jsp new file mode 100644 index 0000000..75dc009 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeDetail.jsp @@ -0,0 +1,69 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : ComtccmmndetailcodeDetail.jsp + * @Description : Comtccmmndetailcode Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2012.08.16 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
상세
상위코드${comtccmmncode.codeIdNm}
코드번호${comtccmmndetailcodeVO.code}
코드명${comtccmmndetailcodeVO.codeNm}
사용여부${comtccmmndetailcodeVO.useAt eq 'Y'?'사용':'미사용' }
비고
순서${comtccmmndetailcodeVO.sort}
+ +
+ + 수정 + + 목록 +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeList.jsp b/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeList.jsp new file mode 100644 index 0000000..d266824 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeList.jsp @@ -0,0 +1,82 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : ComtccmmndetailcodeList.jsp + * @Description : Comtccmmndetailcode List 화면 + * @Modification Information + * + * @author 최석희 + * @since 2013.03.26 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + +
+ + + + + + +
+ + + 코드분류 + 코드명 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호코드명코드코드분류사용여부순서
등록된 데이터가 없습니다.
${number - status.index}${list.codeNm}${list.code}${list.codeIdNm}${list.useAt eq 'Y'?'사용':'미사용'}${list.sort}
+ + +
+ + 등록 + + + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeRegister.jsp new file mode 100644 index 0000000..7465c48 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/comtccmmndetailcode/ComtccmmndetailcodeRegister.jsp @@ -0,0 +1,93 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : ComtccmmndetailcodeRegister.jsp + * @Description : Comtccmmndetailcode Register 화면 + * @Modification Information + * + * @author 최석희 + * @since 2013.03.27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
글작성
* + + + + ${list.codeIdNm} + + + + + ${comtccmmncode.codeIdNm} + +
코드번호${comtccmmndetailcodeVO.code}
*
* + + +
* +
+ (※ 숫자형으로 입력해주세요.) +
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupDetail.jsp new file mode 100644 index 0000000..b6616c9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupDetail.jsp @@ -0,0 +1,66 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsAuthGroupDetail.jsp + * @Description : HmsAuthGroup Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-03-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
권한목록 상세
권한그룹명${hmsAuthGroupVO.authGroupNm}
권한그룹 상세설명
권한설정 + +
+ ${list.authorNm} +
+
${list.authorDc}
+
+
+
+ +
+ + 수정 + 삭제 + + 목록 +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupList.jsp new file mode 100644 index 0000000..f9d42dc --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupList.jsp @@ -0,0 +1,76 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsAuthGroupList.jsp + * @Description : HmsAuthGroup List 화면 + * @Modification Information 권한그룹관리 + * + * @author 최석희 + * @since 2015-03-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + +
+ + + + + +
+ + + 권한그룹명 + 권한그룹설명 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
알림마당 목록
번호권한그룹명권한그룹설명
등록된 자료가 없습니다.
${status.count}${list.authGroupNm}${list.authGroupDetail}
+ + +
+ + 등록 + + + 목록 + +
+
diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupListB.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupListB.jsp new file mode 100644 index 0000000..b02f0eb --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupListB.jsp @@ -0,0 +1,203 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsAuthGroupListB.jsp + * @Description : HmsAuthGroup List 화면 + * @Modification Information 권한그룹별 사용자관리 + * + * @author 최석희 + * @since 2015-03-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + +
+
+
+

이름검색

+
+ +
+
+ + 찾기 +
+
+ + + + + + + + + + + + + + +
선택이름
검색된 사용자가 없습니다.
+
+
+
+
+ +
+

권한그룹선택

+
+
+ +
+ +
+
+
+
+
+
+ + 적용 + +
+
+ diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupRegister.jsp new file mode 100644 index 0000000..95003d7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsAuthGroup/HmsAuthGroupRegister.jsp @@ -0,0 +1,67 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsAuthGroupRegist.jsp + * @Description : HmsAuthGroup Regist 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-03-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
알림마당 글작성
*
+ +
+ ${list.authorNm} +
+
${list.authorDc}
+
+
+
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateDetail.jsp new file mode 100644 index 0000000..dfc2163 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateDetail.jsp @@ -0,0 +1,58 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdCateDetail.jsp + * @Description : HmsBrdCate Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-23 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
상세
카테고리명${hmsBrdCateMastVO.cateMastNm}
항목명${hmsBrdCateVO.cateNm}
순서${hmsBrdCateVO.cateSort}
+ +
+ + 수정 + 삭제 + + 목록 +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateList.jsp new file mode 100644 index 0000000..209bdad --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateList.jsp @@ -0,0 +1,76 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdCateList.jsp + * @Description : HmsBrdCate List 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-23 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + +
+ + + + + + + +
+ + + 카테고리명 + + + 검색 +
+   +
+
+
+ + [${hmsBrdCateMastVO.cateMastNm}] + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호항목명순서
등록된 데이터가 없습니다.
${status.count}${list.cateNm}${list.cateSort}
+ + + + +
diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateRegister.jsp new file mode 100644 index 0000000..f6910ff --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCate/HmsBrdCateRegister.jsp @@ -0,0 +1,57 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdCateRegist.jsp + * @Description : HmsBrdCate Regist 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-23 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +[카테고리명 : ${hmsBrdCateMastVO.cateMastNm}] +
+ + + + + + + + + + + + + + + + + + +
글작성
*
*
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastDetail.jsp new file mode 100644 index 0000000..7bea1a5 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastDetail.jsp @@ -0,0 +1,50 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdCateMastDetail.jsp + * @Description : HmsBrdCateMast Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-23 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+ + + + + + + + + + + + + + +
상세
카테고리명${hmsBrdCateMastVO.cateMastNm}
+ + +
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastList.jsp new file mode 100644 index 0000000..eeb34fc --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastList.jsp @@ -0,0 +1,72 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdCateMastList.jsp + * @Description : HmsBrdCateMast List 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-23 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + +
+ + + + + +
+ + + 카테고리명 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호카테고리명
등록된 데이터가 없습니다.
${number - status.index}${list.cateMastNm}
+ + +
+ + 등록 + + + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastRegister.jsp new file mode 100644 index 0000000..58809dd --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdCateMast/HmsBrdCateMastRegister.jsp @@ -0,0 +1,50 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdCateMastRegist.jsp + * @Description : HmsBrdCateMast Regist 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-23 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + +
+ + + + + + + + + + + + + + +
글작성
*
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngDetail.jsp new file mode 100644 index 0000000..dccd117 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngDetail.jsp @@ -0,0 +1,105 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdMngDetail.jsp + * @Description : HmsBrdMng Detail 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-11-01 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
상세
게시판번호${hmsBrdMngVO.brdMngSeq}
게시판이름${hmsBrdMngVO.brdNm}
게시판타입${hmsBrdMngVO.brdType}
생성자이름${hmsBrdMngVO.writerNm}
생성일${hmsBrdMngVO.createDate}
게시판스킨${hmsBrdMngVO.brdSkin}
에디터사용여부${hmsBrdMngVO.editorFlag == 'Y' ? '사용' : '사용안함'}
새글표시기간${hmsBrdMngVO.showNewPost}일
최근게시물 표시여부표시함표시안함
작성시간표시표시함표시안함
게시판관리자(아이디)${hmsBrdMngVO.manager}
제목길이${hmsBrdMngVO.titleLength}
카테고리${hmsBrdCateMastVO.cateMastNm}
첨부파일갯수${hmsBrdMngVO.atchCnt}
첨부파일 확장자${hmsBrdMngVO.atchWhite}
+ +
+ + 수정 + 삭제 + + 목록 +
+
diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngList.jsp new file mode 100644 index 0000000..34bcf90 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngList.jsp @@ -0,0 +1,80 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdMngList.jsp + * @Description : HmsBrdMng List 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-11-01 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> +
+ + + + + +
+ + + 게시판이름 + 게시판타입 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호게시판이름게시판번호게시판타입생성자생성일자
등록된 데이터가 없습니다.
${number - status.index}${list.brdNm}${list.brdMngSeq}${list.brdType}${list.writerNm}${list.createDate}
+ + +
+ + 등록 + + + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngRegister.jsp new file mode 100644 index 0000000..5915c55 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdMng/HmsBrdMngRegister.jsp @@ -0,0 +1,121 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdMngRegister.jsp + * @Description : HmsBrdMng Register 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-11-01 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
글작성
*
+ + 일반형 + 답글형 + 답변형 + 방명록형 + +
*
사용
+ + 0 + 1 + 2 + 3 + 4 + 5 + 일 +
표시
표시 (금일 작성된 게시물의 날짜가 시간으로 표시됩니다.)
(아이디를 입력해주세요.)
(숫자로 입력해주세요. '0' 이상인 경우 제목길이 후 '...'로 표시됩니다.)
+ + 없음 + + ${list.cateMastNm} + + +
+ + +
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/HmsBrdNewPostList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/HmsBrdNewPostList.jsp new file mode 100644 index 0000000..2f4d27c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/HmsBrdNewPostList.jsp @@ -0,0 +1,119 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdNewPostList.jsp + * @Description : HmsBrdNewPost List 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-4-7 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> +
+
+
+ Total:${paginationInfo.totalRecordCount} | Page:${paginationInfo.currentPageNo}/${paginationInfo.totalPageCount} +
+
+
+ + + + + +
+ + 제목 + 이름 + +
+ +
+ + 검색 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호제목게시판명작성자첨부파일등록일조회수
등록된 자료가 없습니다.
'${searchVO.searchKeyword }'으로 검색된 자료가 없습니다.
${number - status.index} +    + + + + re: + ${list.title} + (${list.commentCnt}) + + + + 비공개글입니다. + + + (new) + ${list.brdNm}${list.userNm}첨부${list.createDate}${list.viewCnt}
+
+ +
+ +
+ +
+
+ + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostDetail.jsp new file mode 100644 index 0000000..89049f3 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostDetail.jsp @@ -0,0 +1,143 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdPostDetail.jsp + * @Description : HmsBrdPost Detail 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-10-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
상세
제목${hmsBrdPostVO.title}
작성자${hmsBrdPostVO.userNm}
카테고리${hmsBrdCateVO.cateNm}
작성일${hmsBrdPostVO.createDate}
아이피${hmsBrdPostVO.ip}
첨부파일 + +
내용 + + ${hmsBrdPostVO.contents} +
+ +
+ + 수정 + 삭제 + + + 답글달기 + + 목록 +
+
+ +

댓글작성

+ + + + + + + + + + + + + + + + + + + + + + + + +
상세
작성자 ${loginVO.name}
작성자
+ +
+ 등록 +
+
+ +

댓글목록

+ + + + + + + + + + + + + + + + + + +
상세
+ 등록자 : ${list.userNm } | 등록일시 : +  [삭제] +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostList.jsp new file mode 100644 index 0000000..a8d47f0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostList.jsp @@ -0,0 +1,118 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdManagerList.jsp + * @Description : HmsBrdManager List 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-10-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + +
+ + + + + +
+ + + 10개씩 + 20개씩 + 50개씩 + 100개씩 + + + + + 없음 + + ${list.cateNm} + + + + + + 제목 + 작성자 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호카테고리제목작성자첨부파일등록일조회수
조회된 내용이 없습니다.
'${searchVO.searchKeyword}'으로 조회된 내용이 없습니다.
${number - status.index}${list.cateNm} +    + + + + re: + ${list.title} + (${list.commentCnt}) + + + + 비공개글입니다. + + + (new) + ${list.userNm}첨부파일${list.createDate}${list.viewCnt}
+ + + +
+ 등록 + + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostRegister.jsp new file mode 100644 index 0000000..d257845 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsBrdPost/default/HmsBrdPostRegister.jsp @@ -0,0 +1,112 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdPostRegister.jsp + * @Description : HmsBrdPost Register 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-10-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
글작성
* + + 공지글 + 비밀글 +
* + + + ${list.cateNm} + + +
+ +
+
+
+ +
+ + + 저장 + + + 저장 + + + + 저장 + + 목록 +
+
+
+ + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentDetail.jsp new file mode 100644 index 0000000..c0121f0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentDetail.jsp @@ -0,0 +1,60 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsContentDetail.jsp + * @Description : HmsContent Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
상세
제목${hmsContentVO.title}
사용유무
URL${hmsContentVO.url}
${hmsContentVO.contents}
+ +
+ + 수정 + 삭제 + + 목록 +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentList.jsp new file mode 100644 index 0000000..b797d40 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentList.jsp @@ -0,0 +1,78 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsContentList.jsp + * @Description : HmsContent List 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> +
+ + + + + +
+ + + 제목 + 내용 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호제목담당자수정일사용유무조회수
등록된 데이터가 없습니다.
${number - status.index}${list.title}${list.managerNm}${list.updateDate}${list.viewCnt}
+ + +
+ 등록 + + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentRegister.jsp new file mode 100644 index 0000000..c80d953 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsContent/HmsContentRegister.jsp @@ -0,0 +1,75 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsContentRegist.jsp + * @Description : HmsContent Regist 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-04-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
글작성
*
사용유무 + + + + 템플릿 + + ${list} + + +
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsDept/HmsDeptAdminDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsDept/HmsDeptAdminDetail.jsp new file mode 100644 index 0000000..7c46288 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsDept/HmsDeptAdminDetail.jsp @@ -0,0 +1,62 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsDeptAdminDetail.jsp + * @Description : HmsDeptAdmin Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2016-09-09 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+

<%=MainGlobals.MENU_USER%>

+ 홈 > <%=MainGlobals.MENU_USER%> +
+ +
+ + +

${hmsDeptVO.deptNm}

+ + + + + + + + + + + + + + + + + + + +
성명, 전화번호, 직책, 담당업무를 나타낸표
성명전화번호담당업무
${list.userNm}${list.tel}${list.jobTitle}
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsDept/HmsDeptAdminList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsDept/HmsDeptAdminList.jsp new file mode 100644 index 0000000..a4d1f8e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsDept/HmsDeptAdminList.jsp @@ -0,0 +1,158 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsDeptAdminList.jsp + * @Description : HmsDeptAdmin List 화면 + * @Modification Information + * + * @author 최석희 + * @since 2016-09-09 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + +
+
+
+ +
+
+
+
+
신규부서 등록
+
+ + + + + + + + + + + + + + +
부서명
+
+ +
+ +
수정 및 삭제
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
부모키
부서명
부서코드
정렬순서
+
+ + +
+
+
+
+
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyDetail.jsp new file mode 100644 index 0000000..70bf93e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyDetail.jsp @@ -0,0 +1,49 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsDutyDetail.jsp + * @Description : HmsDuty Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-11-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+ + + + + + + + + + + + + + +
상세
직책명${hmsDutyVO.dutyNm}
+ +
+ + 수정 + 삭제 + + 목록 +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyList.jsp new file mode 100644 index 0000000..4b36d0b --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyList.jsp @@ -0,0 +1,74 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsDutyList.jsp + * @Description : HmsDuty List 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-11-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + +
+ + + + + +
+ + + 직책명 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호직책명등록일
등록된 데이터가 없습니다.
${number - status.index}${list.dutyNm}${list.createDate}
+ + +
+ + 등록 + + + 목록 + +
+
diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyRegister.jsp new file mode 100644 index 0000000..fcffa0c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsDuty/HmsDutyRegister.jsp @@ -0,0 +1,50 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsDutyRegist.jsp + * @Description : HmsDuty Regist 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-11-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + +
+ + + + + + + + + + + + + + +
글작성
*
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsEnv/HmsEnvDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsEnv/HmsEnvDetail.jsp new file mode 100644 index 0000000..94c1541 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsEnv/HmsEnvDetail.jsp @@ -0,0 +1,56 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsEnvDetail.jsp + * @Description : HmsEnv Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2016-02-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
환경설정 목록
관리자 로고 이미지
사용자 로고 이미지
하단 텍스트
+ +
+ + 수정 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsEnv/HmsEnvRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsEnv/HmsEnvRegister.jsp new file mode 100644 index 0000000..aef1372 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsEnv/HmsEnvRegister.jsp @@ -0,0 +1,58 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsEnvRegist.jsp + * @Description : HmsEnv Regist 화면 + * @Modification Information + * + * @author 최석희 + * @since 2016-02-17 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + --%> + +
환경설정
관리자 로고 이미지(130px X 30px)
사용자 로고 이미지(130px X 30px)
하단 텍스트
비사용자 아이디
+ +
+ 저장 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogDetail.jsp new file mode 100644 index 0000000..dccd117 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogDetail.jsp @@ -0,0 +1,105 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdMngDetail.jsp + * @Description : HmsBrdMng Detail 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-11-01 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
상세
게시판번호${hmsBrdMngVO.brdMngSeq}
게시판이름${hmsBrdMngVO.brdNm}
게시판타입${hmsBrdMngVO.brdType}
생성자이름${hmsBrdMngVO.writerNm}
생성일${hmsBrdMngVO.createDate}
게시판스킨${hmsBrdMngVO.brdSkin}
에디터사용여부${hmsBrdMngVO.editorFlag == 'Y' ? '사용' : '사용안함'}
새글표시기간${hmsBrdMngVO.showNewPost}일
최근게시물 표시여부표시함표시안함
작성시간표시표시함표시안함
게시판관리자(아이디)${hmsBrdMngVO.manager}
제목길이${hmsBrdMngVO.titleLength}
카테고리${hmsBrdCateMastVO.cateMastNm}
첨부파일갯수${hmsBrdMngVO.atchCnt}
첨부파일 확장자${hmsBrdMngVO.atchWhite}
+ +
+ + 수정 + 삭제 + + 목록 +
+
diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogList.jsp new file mode 100644 index 0000000..040064d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogList.jsp @@ -0,0 +1,79 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdMngList.jsp + * @Description : HmsBrdMng List 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-11-01 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> +
+ + + + + +
+ + + Status + Object + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호ObjectStatusMessageIpdate
등록된 데이터가 없습니다.
${number - status.index}${list.logObject}${list.logStatusType}${list.logMessage}${list.ip}${list.createDate}
+ + +
+ + + + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogRegister.jsp new file mode 100644 index 0000000..5915c55 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsLog/HmsLogRegister.jsp @@ -0,0 +1,121 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsBrdMngRegister.jsp + * @Description : HmsBrdMng Register 화면 + * @Modification Information + * + * @author 유병욱 + * @since 2013-11-01 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
글작성
*
+ + 일반형 + 답글형 + 답변형 + 방명록형 + +
*
사용
+ + 0 + 1 + 2 + 3 + 4 + 5 + 일 +
표시
표시 (금일 작성된 게시물의 날짜가 시간으로 표시됩니다.)
(아이디를 입력해주세요.)
(숫자로 입력해주세요. '0' 이상인 경우 제목길이 후 '...'로 표시됩니다.)
+ + 없음 + + ${list.cateMastNm} + + +
+ + +
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionDetail.jsp new file mode 100644 index 0000000..cfb21b1 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionDetail.jsp @@ -0,0 +1,53 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsPositionDetail.jsp + * @Description : HmsPosition Detail 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-11-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
상세
직급명${hmsPositionVO.positionNm}
순위${hmsPositionVO.rnk}
+ +
+ + 수정 + 삭제 + + 목록 +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionList.jsp new file mode 100644 index 0000000..601035f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionList.jsp @@ -0,0 +1,76 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsPositionList.jsp + * @Description : HmsPosition List 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-11-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + +
+ + + + + +
+ + + 직급명 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호직급명순서등록일
등록된 데이터가 없습니다.
${number - status.index}${list.positionNm}${list.rnk}${list.createDate}
+ + +
+ + 등록 + + + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionRegister.jsp new file mode 100644 index 0000000..76d6407 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsPosition/HmsPositionRegister.jsp @@ -0,0 +1,54 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : HmsPositionRegist.jsp + * @Description : HmsPosition Regist 화면 + * @Modification Information + * + * @author 최석희 + * @since 2015-11-27 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + +
+ + + + + + + + + + + + + + + + + + +
글작성
*
*
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminDetail.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminDetail.jsp new file mode 100644 index 0000000..7cec623 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminDetail.jsp @@ -0,0 +1,88 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsUserAdminDetail.jsp + * @Description : HmsUserAdmin Detail 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-15 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+

<%=MainGlobals.MENU_USER%>

+ 홈 > <%=MainGlobals.MENU_USER%> +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
상세
아이디${hmsUserVO.userId}이름${hmsUserVO.userNm}
소속${hmsUserVO.deptNm}직급${hmsUserVO.positionNm}
이메일${hmsUserVO.email}전화번호${hmsUserVO.tel}
권한 + + 작업자 + + + 공무원 + +
담당프로젝트 + +
${list.prjNm }
+
+
+ +
+ + 수정 + 삭제 + + 목록 +
+
diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminList.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminList.jsp new file mode 100644 index 0000000..fafa137 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminList.jsp @@ -0,0 +1,91 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsUserAdminList.jsp + * @Description : HmsUserAdmin List 화면 + * @Modification Information + * + * @author aaa + * @since 2016-08-30 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> +
+

<%=MainGlobals.MENU_USER%>

+ 홈 > <%=MainGlobals.MENU_USER%> +
+
+ + + + + +
+ + + 이름 + 아이디 + + + 검색 +
+ Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
목록
번호이름(아이디)전화번호소속등록일비고
등록된 데이터가 없습니다.
${number - status.index}${list.userNm} (${list.userId})${list.tel}${list.deptNm}${list.userType}
+ + +
+ + 등록 + + + 목록 + +
+
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminRegister.jsp b/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminRegister.jsp new file mode 100644 index 0000000..ae74ada --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cms/hmsUser/HmsUserAdminRegister.jsp @@ -0,0 +1,155 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsUserAdminRegist.jsp + * @Description : HmsUserAdmin Regist 화면 + * @Modification Information + * + * @author aaa + * @since 2016-08-30 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
+

<%=MainGlobals.MENU_USER%>

+ 홈 > <%=MainGlobals.MENU_USER%> +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
글작성
* + + + + + ${hmsUserVO.userId } + + *
* * * *
* + + + + + + + >${deptList.deptNm } + + + +
* +
+ * 업무시 문자 연락가니 정확히 입력해주세요. +
* + + + + + +
+ +
+

담당 프로젝트

+ 전체선택 + +
+ ${prjList.prjNm } +
+
+
+ +
+ + 저장 + + + 저장 + + 목록 +
+
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/common/EgovFileList.jsp b/src/main/webapp/WEB-INF/jsp/common/EgovFileList.jsp new file mode 100644 index 0000000..6092d20 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/EgovFileList.jsp @@ -0,0 +1,107 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% +/** + * @Class Name : EgovFileList.jsp + * @Description : 파일 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- ------ --------------------------- + * @ 2009.03.26 이삼섭 최초 생성 + * @ 2011.07.20 옥찬우 Tag id속성 추가( Line : 68 ) + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.03.26 + * @version 1.0 + * @see + * + */ +%> + + + + + + + +
+ + ','');"> + ${fileVO.orignlFileNm} + + + +  [byte] + + +  [KB] + + +  [MB] + + +  [GB] + + + + + (삭제 ) +
+
+ + ','')"> + + + + +  [byte] + + +  [KB] + + +  [MB] + + +  [GB] + + + + +
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/common/EgovFileListForMobile.jsp b/src/main/webapp/WEB-INF/jsp/common/EgovFileListForMobile.jsp new file mode 100644 index 0000000..3f3a35f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/EgovFileListForMobile.jsp @@ -0,0 +1,142 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% +/** + * @Class Name : EgovFileList.jsp + * @Description : 파일 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- ------ --------------------------- + * @ 2009.03.26 이삼섭 최초 생성 + * @ 2011.07.20 옥찬우 Tag id속성 추가( Line : 68 ) + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.03.26 + * @version 1.0 + * @see + * + */ +%> +<% + String browser = request.getHeader("User-Agent").toLowerCase(); + System.out.println(browser); + out.println("
"); + if ( browser != null && browser.indexOf("MSIE") != -1) { + out.println("MSIE 입니다."); + } + if( browser != null && browser.indexOf("Firefox/") != -1 ){ + out.println("Firefox 입니다."); + } +%> + + + + + + + +
  • + + ${fileVO.orignlFileNm} + + + +  [byte] + + +  [KB] + + +  [MB] + + +  [GB] + + + +
  • + (삭제 ) +
    + + +
  • + +<%-- --%> + + + + + + +  [byte] + + +  [KB] + + +  [MB] + + +  [GB] + + + + + " /> + + 내려받기 + +
  • +
    +
    +
    diff --git a/src/main/webapp/WEB-INF/jsp/common/EgovImgFileList.jsp b/src/main/webapp/WEB-INF/jsp/common/EgovImgFileList.jsp new file mode 100644 index 0000000..6165448 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/EgovImgFileList.jsp @@ -0,0 +1,29 @@ +<%@ 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"%> +<% + /** + * @Class Name : EgovImgFileList.jsp + * @Description : 이미지 파일 조회화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.31 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.03.31 + * @version 1.0 + * @see + * + */ +%> + + +
    image
    +
    +
    image
    +
    +
    \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/common/EgovImgFileListForMobile.jsp b/src/main/webapp/WEB-INF/jsp/common/EgovImgFileListForMobile.jsp new file mode 100644 index 0000000..f36f031 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/EgovImgFileListForMobile.jsp @@ -0,0 +1,25 @@ +<%@ 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"%> +<% + /** + * @Class Name : EgovImgFileList.jsp + * @Description : 이미지 파일 조회화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.31 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.03.31 + * @version 1.0 + * @see + * + */ +%> + +
    image
    +
    \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/common/HmsDeptAndUserFindPopup.jsp b/src/main/webapp/WEB-INF/jsp/common/HmsDeptAndUserFindPopup.jsp new file mode 100644 index 0000000..8386a56 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/HmsDeptAndUserFindPopup.jsp @@ -0,0 +1,169 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%> + + + + + +

    부서 및 담당자 선택

    +
    + +
    +
    +
    +

    부서

    +
    + +
    +
    + +
    +
    +
    +
    +
    +

    담당자

    +
    + + + + + + + + + + + +
    번호부서이름연락처
    +
    +
    +
    +
    * 담당자를 선택할 경우 SMS가 함께 발송됩니다.
    +
    +
    + + + diff --git a/src/main/webapp/WEB-INF/jsp/common/HmsDeptFindPopup.jsp b/src/main/webapp/WEB-INF/jsp/common/HmsDeptFindPopup.jsp new file mode 100644 index 0000000..2156411 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/HmsDeptFindPopup.jsp @@ -0,0 +1,158 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%> + + + + + +

    부서선택

    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + diff --git a/src/main/webapp/WEB-INF/jsp/common/HmsDeptUserFindPopup.jsp b/src/main/webapp/WEB-INF/jsp/common/HmsDeptUserFindPopup.jsp new file mode 100644 index 0000000..3124b89 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/HmsDeptUserFindPopup.jsp @@ -0,0 +1,170 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%> +
    +

    직원검색

    +
    +
    + +
    왼쪽 트리에서 탐색하거나, 부서명,직원명 을 입력하여 지역를 찾아 선택하고 [확인]을 클릭 합니다.
    +
    +
    +

    조직도

    +
    + +
    +
    + +
    +
    +
    +
    +
    오른쪽이동
    +
    +

    직원정보

    +
    +
      +
      + +
      +
      +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/common/HmsOfficeUserFindPopup.jsp b/src/main/webapp/WEB-INF/jsp/common/HmsOfficeUserFindPopup.jsp new file mode 100644 index 0000000..46ea9fd --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/HmsOfficeUserFindPopup.jsp @@ -0,0 +1,231 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%> + + + + + +

      직원검색

      +
      + +
      +
      +
      +
      +

      사용자 검색

      +
      +
      +
      + +
      +
      +
      +
      + +
      +
      + + 검색 +
      +

      선택한 사용자

      +
      + + + + + + + + + + + +
      번호기관명이름연락처
      +
      +
      +
      + + +
      +
      +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/common/HmsUserFindPopup.jsp b/src/main/webapp/WEB-INF/jsp/common/HmsUserFindPopup.jsp new file mode 100644 index 0000000..f192550 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/HmsUserFindPopup.jsp @@ -0,0 +1,131 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%> + + + + + +

      직원검색

      +
      + + + +
      +
      +
      +
      +

      선택한 사용자

      +
      + + + + + + + + + + + + + + + + + + + + + +
      번호부서이름연락처
      ${resultList.size() - status.index}${list.deptNm }${list.userNm }${list.tel }
      +
      +
      +
      + +
      +
      +
      +
      + * 중복 등록자는 자동으로 제외됩니다.
      + 선택 + 창닫기 +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbDetail.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbDetail.jsp new file mode 100644 index 0000000..5655d65 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbDetail.jsp @@ -0,0 +1,79 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : DmsDtbDetail.jsp + * @Description : DmsDtb Detail 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-19 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
      +

      <%=MainGlobals.MENU_DTB%>

      + 홈 > <%=MainGlobals.MENU_DTB%> +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      상세
      제목${dmsDtbVO.title}
      작성자${dmsDtbVO.userNm}등록일${dmsDtbVO.createDate}
      연락처${dmsDtbVO.tel}이메일${dmsDtbVO.email}
      첨부파일 + + + +
      내용
      + +
      + + 수정 + 삭제 + + 목록 +
      +
      \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbList.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbList.jsp new file mode 100644 index 0000000..e354b39 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbList.jsp @@ -0,0 +1,94 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : DmsDtbList.jsp + * @Description : DmsDtb List 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-19 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> +
      +

      <%=MainGlobals.MENU_DTB%>

      + 홈 > <%=MainGlobals.MENU_DTB%> +
      +
      +
      + + + + + + + + + 제목 + + + 검색 +
      + Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호제목작성자첨부등록일
      조회된 내용이 없습니다.
      '${searchVO.searchKeyword }'으로 조회된 내용이 없습니다.
      ${number - status.index} + ${list.title} + ${list.userNm } + + + + + + + ${list.createDate}
      + + + +
      + 등록 + + 목록 + +
      +
      \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbRegister.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbRegister.jsp new file mode 100644 index 0000000..ecf25bc --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsDtb/DmsDtbRegister.jsp @@ -0,0 +1,99 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : DmsDtbRegist.jsp + * @Description : DmsDtb Regist 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-19 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + +
      +

      <%=MainGlobals.MENU_DTB%>

      + 홈 > <%=MainGlobals.MENU_DTB%> +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      글작성
      *
      * + + +
      * + + * + +
      * +
      + + + +
      +
      + +
      + + +
      + + 저장 + + + 저장 + + 목록 +
      +
      +
      + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbDetail.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbDetail.jsp new file mode 100644 index 0000000..22525cd --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbDetail.jsp @@ -0,0 +1,265 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : DmsHdbDetail.jsp + * @Description : DmsHdb Detail 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-16 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + + + + +
      +

      ${prjNm} <%=MainGlobals.MENU_HDB%>

      + 홈 > <%=MainGlobals.MENU_HDB%> +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      상세
      제목${dmsHdbVO.title}등록일${dmsHdbVO.createDate}
      작성자${dmsHdbVO.userNm}진행상태 + + 접수 + + + 처리중(완료예정일 : ${dmsHdbVO.compScdDate }) + + + 완료(완료일 : ${dmsHdbVO.compDate }) + +
      연락처${dmsHdbVO.tel}이메일${dmsHdbVO.email}
      첨부파일 + + + +
      내용
      + +
      +<%-- --%> + 답변 +<%-- --%> + + 수정 + 삭제 + + 목록 +
      + +

      답변

      + + + + + + + +
      + 진행상태 : + + + + + + + 상태변경 +
      +
      +
      + + +
      + 답변 없음. +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      상세
      제목${list.title}
      작성자${list.userNm}연락처${list.tel}
      내용
      첨부파일 + + + +
      + +
      + + 삭제 + +
      +
      +
      + +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbList.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbList.jsp new file mode 100644 index 0000000..7e05154 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbList.jsp @@ -0,0 +1,310 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : DmsHdbList.jsp + * @Description : DmsHdb List 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-16 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + +<%@ page import="java.util.List" %> +<%@ page import="egovframework.dms.hdb.vo.DmsHdbGraphVO" %> + + + + + + +
      +

      ${prjNm} <%=MainGlobals.MENU_HDB%> + ( 년 - 접수: ${hdbStsA}, + 처리중: ${hdbStsB}, + 완료: ${hdbStsC} ) +

      + 홈 > <%=MainGlobals.MENU_HDB%> +
      +
      +
      + + + + + + + + + 제목 + + + 검색 +
      + Total ${paginationInfo.totalRecordCount} |${paginationInfo.currentPageNo} / ${paginationInfo.totalPageCount} +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<%-- --%> + + + +
      번호제목작성자첨부작성일조회수
      조회된 내용이 없습니다.
      '${searchVO.searchKeyword }'으로 조회된 내용이 없습니다.
      ${number - status.index} + + (접수) + + + (처리중) + + + (완료) + + + + + + 제목없음 + + + ${list.title} + + + + ${list.userNm } + + + + + + + ${list.createDate}${list.rdCnt }${list.compScdDate}
      + + + +
      + + 등록 + + + 목록 + +
      +
      + +<% + // 연간 월별 집계 + List annualList = + (List) request.getAttribute("annualList"); + + StringBuilder sbLabels = new StringBuilder("["); + StringBuilder sbData = new StringBuilder("["); + + for (int i = 0; i < annualList.size(); i++) { + DmsHdbGraphVO row = annualList.get(i); + + sbLabels.append("\"").append(row.getMonth()).append("\""); + sbData.append(row.getCnt()); + + if (i < annualList.size() - 1) { + sbLabels.append(","); + sbData.append(","); + } + } + sbLabels.append("]"); + sbData.append("]"); + + // 한달 현황 (도넛) + DmsHdbGraphVO monthlyList = (DmsHdbGraphVO) request.getAttribute("monthlyList"); + + int cntA = monthlyList.getHdbStsA(); // 접수 + int cntB = monthlyList.getHdbStsB(); // 처리중 + int cntC = monthlyList.getHdbStsC(); // 완료 +%> + +
      + +
      + +
      + + +
      + + + + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbRegister.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbRegister.jsp new file mode 100644 index 0000000..93087b3 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsHdb/DmsHdbRegister.jsp @@ -0,0 +1,163 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : DmsHdbRegist.jsp + * @Description : DmsHdb Regist 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-16 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + + + +
      +

      ${prjNm} <%=MainGlobals.MENU_HDB%>

      + 홈 > <%=MainGlobals.MENU_HDB%> +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      글작성
      *
      * + + + * + + Y + N + +
      * + + * + +
      + +
      * +
      + + + +
      +
      + + +
      + + + 저장 + + + + + 저장 + + + 목록 +
      +
      +
      + + +<%-- +// 첨부파일 + + + + +
      +
      + + + +// 팝업달력 + + + + + +--%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjDetail.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjDetail.jsp new file mode 100644 index 0000000..0d503c5 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjDetail.jsp @@ -0,0 +1,44 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : DmsPrjDetail.jsp + * @Description : DmsPrj Detail 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-15 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +<%-- +
      +
      +
      +
      +--%> +dmsPrjVO +
      + + 수정 + 삭제 + + 목록 +
      +<%-- +// 첨부파일보기 + +--%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjList.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjList.jsp new file mode 100644 index 0000000..b7eae44 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjList.jsp @@ -0,0 +1,91 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : DmsPrjList.jsp + * @Description : DmsPrj List 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-15 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> +

      +
      +
      + Total:${paginationInfo.totalRecordCount} | Page:${paginationInfo.currentPageNo}/${paginationInfo.totalPageCount} +
      +
      + + + + +
      + + + 제목 + +
      +
      + + +
      +
      + + +
      +
      +
      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호프로젝트명담당관리자담당작업자등록일
      조회된 내용이 없습니다.
      '${searchVO.searchKeyword }'으로 조회된 내용이 없습니다.
      ${number - status.index}${list.prjNm}한돈희한돈희${list.createDate}
      +
      + +
      + +
      + +
      + 등록 + + 목록 + +
      \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjRegister.jsp b/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjRegister.jsp new file mode 100644 index 0000000..2d9ee6e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/dmsPrj/DmsPrjRegister.jsp @@ -0,0 +1,78 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><% + /** + * @Class Name : DmsPrjRegist.jsp + * @Description : DmsPrj Regist 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-15 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + +

      +<%-- +
      + +
      + +
      +
      +--%> +
      +
      + + 저장 + + + 저장 + + 목록 +
      +
      +
      + +<%-- +// 첨부파일 + + + + +
      +
      + + + +// 팝업달력 + + + + + +--%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/dms/hmsUser/HmsUserDetail.jsp b/src/main/webapp/WEB-INF/jsp/dms/hmsUser/HmsUserDetail.jsp new file mode 100644 index 0000000..32cc6b5 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/hmsUser/HmsUserDetail.jsp @@ -0,0 +1,90 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsUserAdminDetail.jsp + * @Description : HmsUserAdmin Detail 화면 + * @Modification Information + * + * @author 한돈희 + * @since 2017-06-15 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + + +
      +

      <%=MainGlobals.MENU_MYPAGE%>

      + 홈 > <%=MainGlobals.MENU_MYPAGE%> +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      상세
      아이디${hmsUserVO.userId}
      이름${hmsUserVO.userNm}
      소속${hmsUserVO.deptNm}
      직급${hmsUserVO.positionNm}
      이메일${hmsUserVO.email}
      전화번호${hmsUserVO.tel}
      권한 + + 작업자 + + + 공무원 + +
      담당프로젝트 + +
      ${list.prjNm }
      +
      +
      + +
      + 수정 +
      +
      diff --git a/src/main/webapp/WEB-INF/jsp/dms/hmsUser/HmsUserRegister.jsp b/src/main/webapp/WEB-INF/jsp/dms/hmsUser/HmsUserRegister.jsp new file mode 100644 index 0000000..fc751ec --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/dms/hmsUser/HmsUserRegister.jsp @@ -0,0 +1,106 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" +%><%@ include file="/common/taglib.jsp" +%><%@ page import="egovframework.main.MainGlobals" +%><% + /** + * @Class Name : HmsUserAdminRegist.jsp + * @Description : HmsUserAdmin Regist 화면 + * @Modification Information + * + * @author aaa + * @since 2016-08-30 + * @version 1.0 + * @see + * + * Copyright (C) All right reserved. + */ +%> + + + + + + + +
      +

      <%=MainGlobals.MENU_MYPAGE%>

      + 홈 > <%=MainGlobals.MENU_MYPAGE%> +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      글작성
      * + + + + + + + + + *
      * * * *
      * + + + + + + + >${deptList.deptNm } + + + +
      * +
      + * 업무시 문자 연락가니 정확히 입력해주세요. +
      + +
      + + 저장 + + 상세 +
      +
      + +
      \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainView.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainView.jsp new file mode 100644 index 0000000..9f47e99 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainView.jsp @@ -0,0 +1,248 @@ +<%@ 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"%> + + + + + +안전행전부 공통서비스 테스트 사이트(업무사용자) + + + + + + + +
      + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + +
      + + + + + + + +
      + + + + + +
      공지사항
      +
      + + + + + + + + +
      + + 대한민국 정책포털
      +
      +
       
      + + + + + + + +
      + + + + + +
      생성된 게시판 목록
      +
      + + + + +
       
      +
      +
       
      + + + + + + + +
      + + + + + +
      생성된 커뮤니티 목록
      +
      + + + + +
        + +
      +
      +
      +
      + + + + + + + + +
      + + + + + + + + + +
      + + + + + + +
      +
      + + + +
      + +
      + + +
      +
       
      + + + + + + + +
      + + + + + +
      환율정보
      +
      + + + + +
      +
      +
      +
      +
      +
      + + + + + +
      + + + + +
      + + + +
      +
      + + + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainView2.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainView2.jsp new file mode 100644 index 0000000..185bb39 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainView2.jsp @@ -0,0 +1,83 @@ +<%@ 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"%> + + + + + +안전행전부 공통서비스 테스트 사이트(기업사용자) + + + + + + + +
      + + + + + +
      + + + + +
      + +
      +
      + + + + + +
      + + + + +
      + + + +
      +
      + + + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainViewG.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainViewG.jsp new file mode 100644 index 0000000..37bf2a7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/EgovMainViewG.jsp @@ -0,0 +1,197 @@ +<%@ 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"%> + + + + + +안전행전부 공통서비스 테스트 사이트(일반사용자) + + + + + + +
      + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      + + + + + + + +
      + + + + + +
      진행중인 설문
      +
      + + + + +
       
      +
      +
       
      + + + + + + + +
      + + + + + +
      가입한 커뮤니티 목록
      +
      + + + + +
       
      +
      +
       
      + + + + + + + +
      + + + + + +
      등록한 Q&A
      +
      + + + + +
       
      +
      +
      +
      + + + + + + + + + + +
      + + + + + + + +
      + + + + + +
      등록한 상담 목록
      +
      + + + + +
       
      +
      +
       
      + + + + + + + +
      + + + + + +
      사이트 들겨찾기 목록
      +
      + + + + +
       
      +
      +
      +
      +
      + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitBottom.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitBottom.jsp new file mode 100644 index 0000000..94d9631 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitBottom.jsp @@ -0,0 +1,17 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + +eGovFrame 공통 컴포넌트 + + +
      + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitContent.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitContent.jsp new file mode 100644 index 0000000..fe13f04 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitContent.jsp @@ -0,0 +1,34 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + +Insert title here + + + + ${loginVO.name }님 환영합니다. 로그아웃 + + + + +

      + 실행시 오류사항이 있으시면 표준프레임워크센터로 연락하시기 바랍니다.

      + * 화면 설명 *

      + 왼쪽 메뉴는 메뉴과 관련된 컴포넌트(메뉴관리, 사이트맵 등)들의 영향을 받지 않습니다.

      + 각 컴포넌트들을 쉽게 찾아볼 수 있는 바로가기 링크페이지 입니다.

      + +
      * egovframework.com.cmm.web.EgovComIndexController.java 설명 *

      + + 컴포넌트 설치 후 설치된 컴포넌트들을 IncludedInfo annotation을 통해 찾아낸 후

      + 화면에 표시할 정보를 처리하는 Controller 클래스


      + 개발시 메뉴 구조가 잡히기 전에 배포파일들에 포함된 공통 컴포넌트들의 목록성 화면에

      + URL을 제공하여 개발자가 편하게 활용하도록 하기 위해 작성된 것임

      + 실 운영 시에는 삭제해서 배포하는 것을 권장함

      + + 운영시에 본 컨트롤을 사용하여 메뉴를 구성하는 경우 성능 문제를 일으키거나

      + 사용자별 메뉴 구성에 오류를 발생할 수 있음

      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitLeft.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitLeft.jsp new file mode 100644 index 0000000..7942d92 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitLeft.jsp @@ -0,0 +1,121 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + +eGovFrame 공통 컴포넌트 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +

      포털(예제) 메인화면

      +
      +

      사용자디렉토리/통합인증

      +
      +

      보안

      +
      +

      통계/리포팅

      +
      +

      협업

      +
      +

      사용자지원

      +
      +

      시스템관리

      +
      +

      시스템/서비스연계

      +
      +

      디지털 자산 관리

      +
      +

      요소기술

      +
      +

      외부 추가 컴포넌트

      +
      + " target="_content" class="link"> . +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitMain.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitMain.jsp new file mode 100644 index 0000000..f00dc21 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitMain.jsp @@ -0,0 +1,17 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + +eGovFrame 공통 컴포넌트 + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitTop.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitTop.jsp new file mode 100644 index 0000000..887ef4e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/EgovUnitTop.jsp @@ -0,0 +1,17 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + + + +eGovFrame 공통 컴포넌트 + + +

      + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/dataAccessFailure.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/dataAccessFailure.jsp new file mode 100644 index 0000000..0a29ffc --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/dataAccessFailure.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> + + + + +eGovFrame Potal 온라인 지원 포탈 + + + + + + + + + + + +

      +
      +
      + + + + +
      + + + +
      + + + + + + + + + + + + + + + +
      에러로고이미지

      +
      + + + + +
      경고이미지데이터 처리 중 오류가 발생하였습니다.
      + +

      +
      바로가기 버튼이미지
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovBizException.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovBizException.jsp new file mode 100644 index 0000000..57bbf0f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovBizException.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> + + + + +eGovFrame Potal 온라인 지원 포탈 + + + + + + + + + + + +

      +
      +
      + + + + +
      + + + +
      + + + + + + + + + + + + + + + +
      에러로고이미지

      +
      + + + + +
      경고이미지수행중 오류가 발생하였습니다.
      + +

      +
      바로가기 버튼이미지
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovError.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovError.jsp new file mode 100644 index 0000000..c1674c3 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovError.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> + + + + +eGovFrame Potal 온라인 지원 포탈 + + + + + + + + + + + +

      +
      +
      + + + + +
      + + + +
      + + + + + + + + + + + + + + + +
      에러로고이미지

      +
      + + + + +
      경고이미지알 수 없는 오류가 발생했습니다.
      + +

      +
      바로가기 버튼이미지
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovHttpSessionException.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovHttpSessionException.jsp new file mode 100644 index 0000000..d489dd1 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/error/egovHttpSessionException.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> + + + + +eGovFrame Potal 온라인 지원 포탈 + + + + + + + + + + + +

      +
      +
      + + + + +
      + + + +
      + + + + + + + + + + + + + + + +
      에러로고이미지

      +
      + + + + +
      경고이미지세션이 만료되었습니다.
      + +

      +
      바로가기버튼이미지
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/fms/EgovFileList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/fms/EgovFileList.jsp new file mode 100644 index 0000000..7acf77f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/fms/EgovFileList.jsp @@ -0,0 +1,96 @@ +<%@ 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"%> +<% + +/** + * @Class Name : EgovFileList.jsp + * @Description : 파일 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- ------ --------------------------- + * @ 2009.03.26 이삼섭 최초 생성 + * @ 2011.07.20 옥찬우 Tag id속성 추가( Line : 68 ) + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.03.26 + * @version 1.0 + * @see + * + */ +%> + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +  [ byte] + ','');" alt="파일삭제"> + + + ','')"> +  [ byte] + + + +
      diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/fms/EgovImgFileList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/fms/EgovImgFileList.jsp new file mode 100644 index 0000000..331c0d3 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/fms/EgovImgFileList.jsp @@ -0,0 +1,39 @@ +<%@ 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"%> +<% + /** + * @Class Name : EgovImgFileList.jsp + * @Description : 이미지 파일 조회화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.31 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.03.31 + * @version 1.0 + * @see + * + */ +%> +이미지파일목록 + + + + + + + + + + + + + +
      + ?atchFileId=&fileSn=' width="640" alt="해당파일이미지"/> +
      diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/validator.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/validator.jsp new file mode 100644 index 0000000..f0f116d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cmm/validator.jsp @@ -0,0 +1,4 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page language="java" contentType="javascript/x-javascript" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBdUseInfListByTrget.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBdUseInfListByTrget.jsp new file mode 100644 index 0000000..35e637e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBdUseInfListByTrget.jsp @@ -0,0 +1,188 @@ + + +<%@ 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"%> +<% + /** + * @Class Name : EgovBdUseInfListByTrget.jsp + * @Description : 게시판 사용정보 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.02 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.02 + * @version 1.0 + * @see + * + */ +%> + + + + + + + + +게시판 사용정보 조회 + + + + + +
      + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호게시판명사용자명사용여부상태변경
      + + + ','');" /> + + + + ','');" /> + + 미사용 + + ','');" /> +
      + + + + +
      +
      + +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfInqire.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfInqire.jsp new file mode 100644 index 0000000..1b020b8 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfInqire.jsp @@ -0,0 +1,143 @@ + + +<%@ 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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<% + /** + * @Class Name : EgovBoardUseInfInqire.jsp + * @Description : 게시판 사용정보 조회화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.02 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.02 + * @version 1.0 + * @see + * + */ +%> + + + + + + + + +게시판 사용정보 수정 + + + + + +
      +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      게시판명 + +
      커뮤니티/ 동호회명 + + + + + + + + (시스템 활용) + +
      + + 필수입력표시 + + : checked="checked">  + : checked="checked"> +
      +
      제공 URL + " target="_new"> + + +
      + + + + +
      +
      + + + + + + +
      + 수정 + + 목록 +
      +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfList.jsp new file mode 100644 index 0000000..1e1d1c9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfList.jsp @@ -0,0 +1,204 @@ + + +<%@ 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"%> +<% + /** + * @Class Name : EgovBoardUseInfList.jsp + * @Description : 게시판 사용정보 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.02 이삼섭 최초 생성 + * 2011.09.15 서준식 동호회, 커뮤니티 사용 체크 로직 추가 + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.02 + * @version 1.0 + * @see + * + */ +%> + + + + + + +게시판 사용정보 조회 + + + + + + +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호게시판명사용 커뮤니티 명사용 동호회 명게시판명등록일시사용여부
      + + + + "> + "> + + + + + + + + "> + "> + + + + + + + + +
      + + + + +
      +
      + +
      + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfRegist.jsp new file mode 100644 index 0000000..3fbaabf --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovBoardUseInfRegist.jsp @@ -0,0 +1,217 @@ + + +<%@ 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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<% + /** + * @Class Name : EgovBoardUseInfRegist.jsp + * @Description : 게시판 사용정보 등록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.02 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.02 + * @version 1.0 + * + */ +%> + + + + + + + + + +게시판 사용등록 + + + + + + + +
      + + + +
      + + + + + + + + + + + + + + +
      + 필수입력표시 + + +  새창 +
      +
      + + 필수입력표시 + + + + " readOnly > +
      +
      + + + + +
      +
      + + + + + + + + + +
      " value="" onclick="fn_egov_regist_bbsUseInf(); return false;"> + +
      +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovClbOprtrListPop.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovClbOprtrListPop.jsp new file mode 100644 index 0000000..a7a269a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovClbOprtrListPop.jsp @@ -0,0 +1,152 @@ + + +<%@ 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"%> +<% + /** + * @Class Name : EgovClbOprtrList.jsp + * @Description : 사용자 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.06 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.06 + * @version 1.0 + * @see + * + */ +%> + + + + + +승인자 선택 + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호사용자아이디사용자명선택
      + + ');" /> + +
      + + + + +
      +
      + +
      + + + + + +
      +
      + + + + + + +
      버튼이미지 + 닫기 + 버튼이미지
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovCmmntyMngrListPop.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovCmmntyMngrListPop.jsp new file mode 100644 index 0000000..834b196 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovCmmntyMngrListPop.jsp @@ -0,0 +1,150 @@ + + +<%@ 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"%> +<% + /** + * @Class Name : EgovCmmntyMngrList.jsp + * @Description : 커뮤니티 관리자 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.13 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.13 + * @version 1.0 + * @see + * + */ +%> + + + + + +승인자 선택 + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호사용자아이디사용자명선택
      + + ');" /> + +
      + + + + +
      +
      + +
      + + + + + +
      +
      + + + + + + +
      버튼이미지 + 닫기 + 버튼이미지
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovCmmntynClubView.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovCmmntynClubView.jsp new file mode 100644 index 0000000..260b2c7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovCmmntynClubView.jsp @@ -0,0 +1,81 @@ + +<%@ 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"%> +<% + /** + * @Class Name : EgovCmmntyView.jsp + * @Description : 커뮤니티 목록 초기화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.08 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.08 + * @version 1.0 + * @see + * + */ +%> + + + + + + +커뮤니티 및 동호회 목록 + + + + + + + +
      + + + + + + + + +
      + + + + + + + + +
      + + + + + + + + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovConfirmList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovConfirmList.jsp new file mode 100644 index 0000000..fe24474 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovConfirmList.jsp @@ -0,0 +1,183 @@ + +<%@ 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"%> + +<% + /** + * @Class Name : EgovConfirmList.jsp + * @Description : 승인 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.13 이삼섭 최초 생성 + * 2011.9.7 정진오 승인요청자 목록이 해당 커뮤니티 또는 해당 동호회에 한하여 조회되도록 수정함 + * trgetId가 파라미터로 서버측으로 전송되어야 하나 누락되었음. 전송되도록 수정함 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.13 + * @version 1.0 + * @see + * + */ +%> + + + + + + + +승인 목록 + + + + + + +
      +
      + + + + " /> + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호승인유형승인상태승인요청자대상업무유형승인일자
      + + + + + + + + + + + + + + + + + + + +
      + + + + +
      +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovConfmInfUpdt.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovConfmInfUpdt.jsp new file mode 100644 index 0000000..ba3706f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovConfmInfUpdt.jsp @@ -0,0 +1,141 @@ + +<%@ 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"%> +<% + /** + * @Class Name : EgovConfirmInfUpdt.jsp + * @Description : 승인 정보 수정화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.13 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.13 + * @version 1.0 + * @see + * + */ +%> + + + + + + + +승인정보 수정 + + + + + + +
      + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + +
      승인유형 + +
      승인요청자 + +
      승인상태 + 필수입력표시 + +
      + + + + +
      +
      + + + + + + + +
      +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovModalPopupFrame.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovModalPopupFrame.jsp new file mode 100644 index 0000000..9f36bc9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovModalPopupFrame.jsp @@ -0,0 +1,52 @@ + +<%@ 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"%> +<% + /** + * @Class Name : EgovModalPopupFrame.jsp + * @Description : 모달 팝업을 위한 외부 프레임 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.06 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.06 + * @version 1.0 + * + */ +%> + + + + + + +선택 목록 + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovUserList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovUserList.jsp new file mode 100644 index 0000000..373591a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovUserList.jsp @@ -0,0 +1,223 @@ + +<%@ 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"%> +<% + /** + * @Class Name : EgovUserList.jsp + * @Description : 사용자 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.06 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.06 + * @version 1.0 + * @see + * + */ +%> + + + + + + + +사용자 목록 + + + + + + +
      + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호사용자아이디사용자명주소이메일비고
      + + + ')" /> + |');" /> + + + |');" /> + + +
      + + + + +
      +
      + +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovUserListPop.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovUserListPop.jsp new file mode 100644 index 0000000..5fef378 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/com/EgovUserListPop.jsp @@ -0,0 +1,199 @@ + +<%@ 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"%> + + +<% + /** + * @Class Name : EgovUserListPop.jsp + * @Description : 사용자 목록화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.06 이삼섭 최초 생성 + * + * @author 공통서비스 개발팀 이삼섭 + * @since 2009.04.06 + * @version 1.0 + * @see + * + */ +%> + + + + + + + +사용자 목록 + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      번호사용자아이디사용자명주소이메일사용여부선택
      + + + + + + + + + + + ','','');" /> + +
      + + + + +
      +
      + +
      + + + + + +
      +
      + + + + + +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailDetail.jsp new file mode 100644 index 0000000..20b3f20 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailDetail.jsp @@ -0,0 +1,144 @@ +<%@ page contentType="text/html; charset=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"%> +<%pageContext.setAttribute("crlf", "\r\n"); %> +<% + /** + * @Class Name : EgovMailDetail.jsp + * @Description : 발송메일 상세 조회 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.11 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ +%> + + + + + + +MOPAS 발송메일 상세 조회 + + + + + + + + +
      + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      발송메일 상세조회
      보내는사람  ${resultInfo.dsptchPerson}
      받는사람  ${resultInfo.recptnPerson}
      제목  ${resultInfo.sj}
      발신 내용   + +
      발송 결과  ${resultInfo.sndngResultCode}
      XML메일보기  ${resultInfo.mssageId}.xml
      첨부파일   + + + +
      + + + + +
      +
      + + + + + + + + +
      버튼이미지뒤로 +   
      +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailDtls.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailDtls.jsp new file mode 100644 index 0000000..7ca3b3e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailDtls.jsp @@ -0,0 +1,250 @@ +<%@ page contentType="text/html; charset=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"%> +<% + /** + * @Class Name : EgovMailDtls.jsp + * @Description : 발송메일 내역 조회 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- --------- --------------------------- + * @ 2009.03.11 박지욱 최초 생성 + * @ 2011.09.30 이기하 데이터 없을시 메시지 추가 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ +%> + + + + + + +MOPAS 발송메일 내역 조회 + + + + + + + +
      +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + <%-- 데이터를 없을때 화면에 메세지를 출력해준다 --%> + + + + + + + + + + + + + + + + + +
      발송메일 내역 조회
      상태발신자수신자제목날짜
      + +
      + + + + ${resultInfo.sndngResultCode}${resultInfo.dsptchPerson}${resultInfo.recptnPerson}${resultInfo.sj}${resultInfo.sndngDe}
      + + + + +
      + + + + + +
      +
      +
      + +
      +
      +
      + +
      + +
      + + +
      + +
      + + + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailRegist.jsp new file mode 100644 index 0000000..1f36437 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailRegist.jsp @@ -0,0 +1,167 @@ + +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%-- + /** + * @Class Name : EgovMailRegist.jsp + * @Description : 발송메일 등록 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정 내용 + * @ ---------- -------- --------------------------- + * @ 2009.03.11 박지욱 최초 생성 + * @ 2011.12.06 이기하 첨부파일 기능 추가(fileStreCours) + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ +--%> + + + + + + +MOPAS 발송메일 등록 + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +
      발송메일 등록
      필수입력표시 + "> +
      필수입력표시 + "> +
      + + + + + + + +
      " onchange="this.select(); document.getElementById('egovComFileUploader').value=document.selection.createRange().text.toString();" />
      +
      +
      +
      + +
      +
      + + + + + + + + + +
      버튼이미지뒤로 +   
      +
      +
      + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailXml.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailXml.jsp new file mode 100644 index 0000000..40fa6d7 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/ems/EgovMailXml.jsp @@ -0,0 +1,84 @@ + +<%@ page contentType="text/html; charset=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"%> +<% + /** + * @Class Name : EgovMailXml.jsp + * @Description : 발송요청메일 XML 파일내용 보기 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.09 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.04.09 + * @version 1.0 + * @see + * + */ +%> +<%pageContext.setAttribute("crlf", "\r\n"); %> + + + + + +MOPAS 발송요청 XML파일 내용 조회 + + + + + + + + + + + + + + + +
      + + + + + + + + + + +
      내용   + ${xmldata} +
      +
      + + + + + + +
      버튼이미지닫기 + 버튼이미지
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/head.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/head.jsp new file mode 100644 index 0000000..b76af6c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/head.jsp @@ -0,0 +1,50 @@ +<%@ 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"%> +<%@ page import="egovframework.com.cmm.util.EgovUserDetailsHelper" %> + + + + +
      + + + +
      + +
      +
        +
      • 공통서비스 테스트 사이트(업무사용자용)
      • +
      • 로그아웃
      • +
      +
      +
      +
      + +
      + +
      diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/headG.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/headG.jsp new file mode 100644 index 0000000..e1570cd --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/headG.jsp @@ -0,0 +1,49 @@ +<%@ 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"%> +<%@ page import="egovframework.com.cmm.util.EgovUserDetailsHelper" %> + + + + +
      + + + +
      + +
      +
        +
      • 공통서비스 테스트 사이트(일반사용자용)
      • +
      • 로그아웃
      • +
      +
      +
      +
      + +
      +
      diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/main_bottom.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/main_bottom.jsp new file mode 100644 index 0000000..38cf6e9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/main_bottom.jsp @@ -0,0 +1,23 @@ +<%@ 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"%> + + + + + + +Bottom Main + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/main_head.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/main_head.jsp new file mode 100644 index 0000000..c0f9f28 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/main_head.jsp @@ -0,0 +1,66 @@ +<%@ 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"%> + + + + + +HeadMenu + + + + + + + +
      + + +
      + +
      + +
      +
        +
      • 공통서비스 테스트 사이트(업무사용자용)
      • +
      • 로그아웃
      • +
      +
      +
      +
      + +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/main_headG.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/main_headG.jsp new file mode 100644 index 0000000..c01ad16 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/main_headG.jsp @@ -0,0 +1,66 @@ +<%@ 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"%> + + + + + +HeadMenu + + + + + + +
      + + + +
      + +
      +
        +
      • 공통서비스 테스트 사이트(일반사용자용)
      • +
      • 로그아웃
      • +
      +
      +
      +
      + +
      + +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/main_left.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/main_left.jsp new file mode 100644 index 0000000..bf1fb76 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/main_left.jsp @@ -0,0 +1,67 @@ +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> + +<% + /** + * @Class Name : left.jsp + * @Description : 좌측메뉴화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.10 이용 최초 생성 + * + * @author 공통서비스 개발팀 이용 + * @since 2009.03.10 + * @version 1.0 + * @see + * + */ + + /* Image Path 설정 */ + String imagePath_icon = "/images/egovframework/com/sym/mnu/mpm/icon/"; + String imagePath_button = "/images/egovframework/com/sym/mnu/mpm/button/"; +%> + + + + + +메뉴정보등록 + + + + +
      +
      + + + + + + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/menu_index.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/menu_index.jsp new file mode 100644 index 0000000..b2869bf --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/menu_index.jsp @@ -0,0 +1,38 @@ + +<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<% + /** + * @Class Name : EgovMainMenuIndex.jsp + * @Description : MainMenuIndex Page + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.10 이용 최초 생성 + * + * @author 공통서비스 개발팀 이용 + * @since 2009.03.10 + * @version 1.0 + * @see + * ?vStartP= + */ + +%> + + + + +Menu Index frame + + + + + + " scrolling="no" name="main_left" marginwidth="0" marginheight="0"> + " name="main_right" marginwidth="0" marginheight="0"> + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/drm/EgovDeptAuthorManage.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/drm/EgovDeptAuthorManage.jsp new file mode 100644 index 0000000..3eaa0bb --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/drm/EgovDeptAuthorManage.jsp @@ -0,0 +1,325 @@ +<%@ page 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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<% + /** + * @Class Name : EgovDeptAuthorManage.java + * @Description : EgovDeptAuthorManage List 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- --------- --------------------------- + * @ 2009.03.23 Lee.m.j 최초 생성 + * @ 2011.11.11 이기하 부서권한관리 등록시 오류 수정 + * + * @author Lee.m.j + * @since 2009.03.23 + * @version 1.0 + * @see + */ +%> + + + + + +부서 권한 관리 + + + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + <%-- 데이터를 없을때 화면에 메세지를 출력해준다 --%> + + + + + + + + + + + + + + + + + +
      사용자 ID사용자 명권한등록 여부
      + +
      " />">
      + + + + + +
      + + +
      +
      + +
      +
      + +
      +
      +
      + + + + + + +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/drm/EgovDeptSearch.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/drm/EgovDeptSearch.jsp new file mode 100644 index 0000000..4039f5d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/drm/EgovDeptSearch.jsp @@ -0,0 +1,202 @@ +<%@ page 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" %> +<% + /** + * @Class Name : EgovDeptSearch.java + * @Description : EgovDeptSearch Search 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- -------- --------------------------- + * @ 2009.03.26 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.26 + * @version 1.0 + * @see + * + */ +%> + + + + + +SYSTEM HISTORY + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      부서 ID부서 명
      " />" />', '')">
      + + + + +
      + + +
      +
      + +
      +
      +
      + + +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupInsert.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupInsert.jsp new file mode 100644 index 0000000..e27d9e2 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupInsert.jsp @@ -0,0 +1,164 @@ + +<%-- +/** + * @Class Name : EgovAuthorInsert.java + * @Description : EgovAuthorInsert jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ +--%> + +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + + + + +그룹관리 + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + +
      그룹 명필수입력표시 
      설명
      등록일자
      + + + + + + + +
      +
      + +
      + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupManage.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupManage.jsp new file mode 100644 index 0000000..7c7ac40 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupManage.jsp @@ -0,0 +1,248 @@ + +<%@ page 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"%> +<%@ page import="egovframework.com.cmm.LoginVO" %> +<%@ page import="egovframework.com.cmm.util.EgovUserDetailsHelper" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + +<% + /** + * @Class Name : EgovGroupManage.java + * @Description : EgovGroupManage List 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ +%> + + + + +그룹관리 + + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      그룹 ID그룹 명설명등록일자
      " />')">')">상세조회
      + + + + +
      + + +
      +
      + +
      +
      + +
      +
      +
      + + + + +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupSearch.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupSearch.jsp new file mode 100644 index 0000000..c6e8361 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupSearch.jsp @@ -0,0 +1,194 @@ + +<%@ page 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" %> +<% + /** + * @Class Name : EgovGroupSearch.java + * @Description : EgovGroupSearch Search 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- -------- --------------------------- + * @ 2009.03.23 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.23 + * @version 1.0 + * @see + * + */ +%> + + + + +그룹관리 + + + + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      그룹 ID그룹 명
      " />')">
      + + + + +
      + + +
      +
      + +
      +
      +
      + + + + +
      + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupUpdate.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupUpdate.jsp new file mode 100644 index 0000000..41267e4 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/gmt/EgovGroupUpdate.jsp @@ -0,0 +1,164 @@ + +<%-- +/** + * @Class Name : EgovAuthorUpdate.java + * @Description : EgovAuthorUpdate jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ +--%> + +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + + + + +그룹관리 + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + +
      그룹 ID필수입력표시
      그룹 명필수입력표시 
      설명
      등록일자
      + + + + + + + +
      +
      + +
      + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorInsert.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorInsert.jsp new file mode 100644 index 0000000..fc223bf --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorInsert.jsp @@ -0,0 +1,171 @@ + +<%-- +/** + * @Class Name : EgovAuthorInsert.java + * @Description : EgovAuthorInsert jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ +--%> + +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + + + + +권한관리 + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      권한 코드필수입력표시 
      권한 명필수입력표시 
      설명
      등록일자
      + + + + + + + + +
      +
      + +
      + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorManage.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorManage.jsp new file mode 100644 index 0000000..cbecba6 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorManage.jsp @@ -0,0 +1,261 @@ + +<%@ page 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" %> +<% + /** + * @Class Name : EgovAuthorManage.java + * @Description : EgovAuthorManage List 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.01 Lee.m.j 최초 생성 + * + * @author 실행환경 개발팀 홍길동 + * @since 2009.02.01 + * @version 1.0 + * @see + * + */ +%> + + + + + +권한관리 + + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      권한 ID권한 명설명등록일자롤 정보
      " />')">')">롤 정보
      + + + + +
      + + +
      +
      + +
      +
      + +
      +
      +
      + + + + +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorRoleManage.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorRoleManage.jsp new file mode 100644 index 0000000..c8a5fbb --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorRoleManage.jsp @@ -0,0 +1,278 @@ + +<%@ page 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" %> +<% + +/** + * @Class Name : EgovAuthorRoleManage.java + * @Description : EgovAuthorRoleManage.jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ --------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.21 + * @version 1.0 + * @see + * + */ + +%> + + + + +권한관리 + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + <%-- 데이터를 없을때 화면에 메세지를 출력해준다 --%> + + + + + + + + + + + + + + + + + + + + +
      롤 ID롤 명롤 타입롤 Sort롤 설명등록일자등록여부
      + +
      " /> + +
      + + + + +
      + + +
      +
      + +
      +
      + +
      +
      +
      + + + +"/> + +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorUpdate.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorUpdate.jsp new file mode 100644 index 0000000..8b03385 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/ram/EgovAuthorUpdate.jsp @@ -0,0 +1,171 @@ + +<%-- +/** + * @Class Name : egovAuthorUpdate.java + * @Description : egovAuthorUpdate jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ +--%> + +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + + + + +권한관리 + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      권한 코드필수입력표시 
      권한 명필수입력표시 
      설명
      등록일자
      + + + + + + + + +
      +
      + +
      + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rgm/EgovAuthorGroupManage.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rgm/EgovAuthorGroupManage.jsp new file mode 100644 index 0000000..c8279aa --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rgm/EgovAuthorGroupManage.jsp @@ -0,0 +1,324 @@ + +<%@ page 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" %> +<% + /** + * @Class Name : EgovAuthorGroupManage.java + * @Description : EgovAuthorGroupManage List 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.23 Lee.m.j 최초 생성 + * + * @author Lee.m.j + * @since 2009.03.23 + * @version 1.0 + * @see + * + */ +%> + + + + +권한그룹관리 + + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      사용자 ID사용자 명사용자 유형권한등록 여부
      "/>">
      + + + + + +
      + + +
      +
      + +
      +
      + +
      +
      +
      + + + + + + + +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleInsert.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleInsert.jsp new file mode 100644 index 0000000..0ee1435 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleInsert.jsp @@ -0,0 +1,183 @@ + +<%-- +/** + * @Class Name : EgovRoleInsert.java + * @Description : EgovRoleInsert jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ + --%> + +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + + + + +롤관리 + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      롤 코드필수입력표시
      롤 명필수입력표시 
      롤 패턴필수입력표시 
      설명선택입력표시
      롤 타입필수입력표시 + +
      롤 Sort필수입력표시
      등록일자선택입력표시
      + + + + + + + +
      +
      + +
      + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleManage.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleManage.jsp new file mode 100644 index 0000000..89646af --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleManage.jsp @@ -0,0 +1,261 @@ + +<%@ page 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" %> +<% + +/** + * @Class Name : EgovRoleManage.java + * @Description : EgovRoleManage jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ --------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.21 + * @version 1.0 + * @see + * + */ + +%> + + + + +롤관리 + + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + <%-- 데이터를 없을때 화면에 메세지를 출력해준다 --%> + + + + + + + + + + + + + + + + + + + + +
      롤 ID롤 명롤 타입롤 Sort롤 설명등록일자
      + +
      " />')">')">상세조회
      + + + + +
      + + +
      +
      + +
      +
      + +
      +
      +
      + + + + +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleUpdate.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleUpdate.jsp new file mode 100644 index 0000000..407ba36 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleUpdate.jsp @@ -0,0 +1,182 @@ + +<%-- +/** + * @Class Name : EgovRoleUpdate.java + * @Description : EgovRoleUpdate jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + */ + --%> + +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + + + + +롤관리 + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      롤 코드필수입력표시
      롤 명필수입력표시 
      롤 패턴필수입력표시 
      설명부가항목
      롤 타입필수입력표시 + +
      롤 Sort필수입력표시
      등록일자부가항목
      + + + + + + + +
      +
      + +
      +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/adr/EgovAdressCntc.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/adr/EgovAdressCntc.jsp new file mode 100644 index 0000000..982d6f4 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/adr/EgovAdressCntc.jsp @@ -0,0 +1,212 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<% + /** + * @Class Name : EgovAdressCntc.jsp + * @Description : 도로명주소연계 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ---------- ------------ --------------------------- + * @ 2014.10.21 표준프레임워크 최초 생성 + * + * @author 표준프레임워크 + * @since 2014.10.21 + * @version 3.5 + * @see + * + */ +%> + + + + + + + + + +주소 정보 연계 + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministCalPopup.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministCalPopup.jsp new file mode 100644 index 0000000..d172087 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministCalPopup.jsp @@ -0,0 +1,42 @@ + +<% + /** + * @Class Name : EgovAdministCalPopup.jsp + * @Description : EgovAdministCalPopup 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +행정달력 + + + + +
      + +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministCalendar.jsp new file mode 100644 index 0000000..e998cd3 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministCalendar.jsp @@ -0,0 +1,168 @@ + +<% + /** + * @Class Name : EgovAdministCalendar.jsp + * @Description : EgovAdministCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +행정달력 + + + +Insert title here + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + 이전년도 + + 이전달 + ${resultList[0].year}년${resultList[0].month}월 + 다음달 + + 다음년도 +
      + ${result.day} + + ${result.day} +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministDayCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministDayCalendar.jsp new file mode 100644 index 0000000..8600342 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministDayCalendar.jsp @@ -0,0 +1,171 @@ + +<% + /** + * @Class Name : EgovAdministDayCalendar.jsp + * @Description : EgovAdministDayCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + + + + + + + + + + +행정달력 + + + +행정달력 일간 + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      요일날짜휴일
      color:red;} > + + + + + + + + color:red;} > + ${resultList[0].year}년 ${resultList[0].month}월 ${resultList[0].day}일 + + + +
      ${restde.restdeNm}
      +
      +
      +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministMonthCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministMonthCalendar.jsp new file mode 100644 index 0000000..ca25be9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministMonthCalendar.jsp @@ -0,0 +1,165 @@ + +<% + /** + * @Class Name : EgovAdministMonthCalendar.jsp + * @Description : EgovAdministMonthCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + + + + + + + +행정달력 + + + +행정달력 월간 + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result.day} + +
      ${restde.restdeNm}
      +
      +
      ${result.day} + +
      ${restde.restdeNm}
      +
      +
      ${result.day}
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministWeekCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministWeekCalendar.jsp new file mode 100644 index 0000000..e68a5d8 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministWeekCalendar.jsp @@ -0,0 +1,222 @@ + +<% + /** + * @Class Name : EgovAdministWeekCalendar.jsp + * @Description : EgovAdministWeekCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + + + + + + + + + +행정달력 + + + +행정달력 주간 + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      요일날짜휴일
      color:red;} > + ${resultList_1[0].year}년 ${resultList_1[0].month}월 ${resultList_1[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_2[0].year}년 ${resultList_2[0].month}월 ${resultList_2[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_3[0].year}년 ${resultList_3[0].month}월 ${resultList_3[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_4[0].year}년 ${resultList_4[0].month}월 ${resultList_4[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_5[0].year}년 ${resultList_5[0].month}월 ${resultList_5[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_6[0].year}년 ${resultList_6[0].month}월 ${resultList_6[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_7[0].year}년 ${resultList_7[0].month}월 ${resultList_7[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministYearCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministYearCalendar.jsp new file mode 100644 index 0000000..817caf6 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovAdministYearCalendar.jsp @@ -0,0 +1,832 @@ + +<% + /** + * @Class Name : EgovAdministYearCalendar.jsp + * @Description : EgovAdministYearCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + + + + + + + +행정달력 + + + +행정달력 연간 + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_1.day} + +
      ${restde_1.restdeNm}
      +
      +
      ${result_1.day} + +
      ${restde_1.restdeNm}
      +
      +
      ${result_1.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_2.day} + +
      ${restde_2.restdeNm}
      +
      +
      ${result_2.day} + +
      ${restde_2.restdeNm}
      +
      +
      ${result_2.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_3.day} + +
      ${restde_3.restdeNm}
      +
      +
      ${result_3.day} + +
      ${restde_3.restdeNm}
      +
      +
      ${result_3.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_4.day} + +
      ${restde_4.restdeNm}
      +
      +
      ${result_4.day} + +
      ${restde_4.restdeNm}
      +
      +
      ${result_4.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_5.day} + +
      ${restde_5.restdeNm}
      +
      +
      ${result_5.day} + +
      ${restde_5.restdeNm}
      +
      +
      ${result_5.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_6.day} + +
      ${restde_6.restdeNm}
      +
      +
      ${result_6.day} + +
      ${restde_6.restdeNm}
      +
      +
      ${result_6.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_7.day} + +
      ${restde_7.restdeNm}
      +
      +
      ${result_7.day} + +
      ${restde_7.restdeNm}
      +
      +
      ${result_7.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_8.day} + +
      ${restde_8.restdeNm}
      +
      +
      ${result_8.day} + +
      ${restde_8.restdeNm}
      +
      +
      ${result_8.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_9.day} + +
      ${restde_9.restdeNm}
      +
      +
      ${result_9.day} + +
      ${restde_9.restdeNm}
      +
      +
      ${result_9.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_10.day} + +
      ${restde_10.restdeNm}
      +
      +
      ${result_10.day} + +
      ${restde_10.restdeNm}
      +
      +
      ${result_10.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_11.day} + +
      ${restde_11.restdeNm}
      +
      +
      ${result_11.day} + +
      ${restde_11.restdeNm}
      +
      +
      ${result_11.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_12.day} + +
      ${restde_12.restdeNm}
      +
      +
      ${result_12.day} + +
      ${restde_12.restdeNm}
      +
      +
      ${result_12.day}
      + + + + + + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovCalPopup.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovCalPopup.jsp new file mode 100644 index 0000000..a3b47a1 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovCalPopup.jsp @@ -0,0 +1,43 @@ + +<% + /** + * @Class Name : EgovNormalCalPopup.jsp + * @Description : EgovNormalCalPopup 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.10.13 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.10.13 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + +달력 + + + + +
      + +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovCalendar.jsp new file mode 100644 index 0000000..0c57dc5 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovCalendar.jsp @@ -0,0 +1,160 @@ + +<% + /** + * @Class Name : EgovCalendar.jsp + * @Description : EgovCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.10.13 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.10.13 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +달력 + + + +달력 + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + 이전년도 + + 이전달 + ${resultList[0].year}년${resultList[0].month}월 + 다음달 + + 다음년도 +
      + ${result.day} + + ${result.day} +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalCalPopup.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalCalPopup.jsp new file mode 100644 index 0000000..ab023ec --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalCalPopup.jsp @@ -0,0 +1,44 @@ + +<% + /** + * @Class Name : EgovNormalCalPopup.jsp + * @Description : EgovNormalCalPopup 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> +<%@ page contentType="text/html; charset=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"%> + + +일반달력 + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalCalendar.jsp new file mode 100644 index 0000000..49d53a4 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalCalendar.jsp @@ -0,0 +1,163 @@ + +<% + /** + * @Class Name : EgovNormalCalendar.jsp + * @Description : EgovNormalCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +일반달력 + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + 이전년도 + + 이전달 + ${resultList[0].year}년${resultList[0].month}월 + 다음달 + + 다음년도 +
      + ${result.day} + + ${result.day} +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalDayCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalDayCalendar.jsp new file mode 100644 index 0000000..ef3c7a2 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalDayCalendar.jsp @@ -0,0 +1,171 @@ + +<% + /** + * @Class Name : EgovNormalDayCalendar.jsp + * @Description : EgovNormalDayCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + + + + + + + + + + +일반달력 + + + +일반달력 일간 + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      요일날짜휴일
      color:red;} > + + + + + + + + color:red;} > + ${resultList[0].year}년 ${resultList[0].month}월 ${resultList[0].day}일 + + + +
      ${restde.restdeNm}
      +
      +
      +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalMonthCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalMonthCalendar.jsp new file mode 100644 index 0000000..ae3cbb3 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalMonthCalendar.jsp @@ -0,0 +1,165 @@ + +<% + /** + * @Class Name : EgovNormalMonthCalendar.jsp + * @Description : EgovNormalMonthCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + + + + + + + +일반달력 + + + +일반달력 월간 + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result.day} + +
      ${restde.restdeNm}
      +
      +
      ${result.day} + +
      ${restde.restdeNm}
      +
      +
      ${result.day}
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalWeekCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalWeekCalendar.jsp new file mode 100644 index 0000000..dbd2f00 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalWeekCalendar.jsp @@ -0,0 +1,222 @@ + +<% + /** + * @Class Name : EgovNormalWeekCalendar.jsp + * @Description : EgovNormalWeekCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + + + + + + + + + +일반달력 + + + +일반달력 주간 + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      요일날짜휴일
      color:red;} > + ${resultList_1[0].year}년 ${resultList_1[0].month}월 ${resultList_1[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_2[0].year}년 ${resultList_2[0].month}월 ${resultList_2[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_3[0].year}년 ${resultList_3[0].month}월 ${resultList_3[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_4[0].year}년 ${resultList_4[0].month}월 ${resultList_4[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_5[0].year}년 ${resultList_5[0].month}월 ${resultList_5[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_6[0].year}년 ${resultList_6[0].month}월 ${resultList_6[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      color:red;} > + ${resultList_7[0].year}년 ${resultList_7[0].month}월 ${resultList_7[0].day}일 + color:red;} > + + +
      ${restde.restdeNm}
      +
      +
      +
      +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalYearCalendar.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalYearCalendar.jsp new file mode 100644 index 0000000..878b13e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovNormalYearCalendar.jsp @@ -0,0 +1,831 @@ + +<% + /** + * @Class Name : EgovNormalYearCalendar.jsp + * @Description : EgovNormalYearCalendar 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + + + + + + + +일반달력 + + + +일반달력 연간 + + + +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_1.day} + +
      ${restde_1.restdeNm}
      +
      +
      ${result_1.day} + +
      ${restde_1.restdeNm}
      +
      +
      ${result_1.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_2.day} + +
      ${restde_2.restdeNm}
      +
      +
      ${result_2.day} + +
      ${restde_2.restdeNm}
      +
      +
      ${result_2.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_3.day} + +
      ${restde_3.restdeNm}
      +
      +
      ${result_3.day} + +
      ${restde_3.restdeNm}
      +
      +
      ${result_3.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_4.day} + +
      ${restde_4.restdeNm}
      +
      +
      ${result_4.day} + +
      ${restde_4.restdeNm}
      +
      +
      ${result_4.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_5.day} + +
      ${restde_5.restdeNm}
      +
      +
      ${result_5.day} + +
      ${restde_5.restdeNm}
      +
      +
      ${result_5.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_6.day} + +
      ${restde_6.restdeNm}
      +
      +
      ${result_6.day} + +
      ${restde_6.restdeNm}
      +
      +
      ${result_6.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_7.day} + +
      ${restde_7.restdeNm}
      +
      +
      ${result_7.day} + +
      ${restde_7.restdeNm}
      +
      +
      ${result_7.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_8.day} + +
      ${restde_8.restdeNm}
      +
      +
      ${result_8.day} + +
      ${restde_8.restdeNm}
      +
      +
      ${result_8.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_9.day} + +
      ${restde_9.restdeNm}
      +
      +
      ${result_9.day} + +
      ${restde_9.restdeNm}
      +
      +
      ${result_9.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_10.day} + +
      ${restde_10.restdeNm}
      +
      +
      ${result_10.day} + +
      ${restde_10.restdeNm}
      +
      +
      ${result_10.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_11.day} + +
      ${restde_11.restdeNm}
      +
      +
      ${result_11.day} + +
      ${restde_11.restdeNm}
      +
      +
      ${result_11.day}
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ${result_12.day} + +
      ${restde_12.restdeNm}
      +
      +
      ${result_12.day} + +
      ${restde_12.restdeNm}
      +
      +
      ${result_12.day}
      + + + + + + + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeDetail.jsp new file mode 100644 index 0000000..1372458 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeDetail.jsp @@ -0,0 +1,117 @@ + +<% + /** + * @Class Name : EgovRestdeDetail.jsp + * @Description : EgovRestdeDetail 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * 2011.08.12 서준식 CSS 경로 수정 + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +휴일 상세조회 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      휴일 상세조회
      휴일일자필수입력표시--
      휴일명필수입력표시${result.restdeNm}
      휴일설명필수입력표시
      휴일구분필수입력표시${result.restdeSe}
      + + + + +
      + + + + + + + + + + + + + + +
      삭제삭제삭제목록목록목록
      +
      + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeList.jsp new file mode 100644 index 0000000..c109b33 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeList.jsp @@ -0,0 +1,171 @@ + +<% + /** + * @Class Name : EgovRestdeList.jsp + * @Description : EgovRestdeList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * 2011.08.12 서준식 페이징 번호 정렬이 리스트와 일치하도록 수정 + CSS 경로 수정 + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +휴일 목록 + + + + + + + + +
      + +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      휴일 목록
      순번휴일일자휴일명휴일구분
      --${resultInfo.restdeNm}${resultInfo.restdeSe}
      + +
      + + + + + + + +
      + + + +
      +
      + +
      +
      +
      + + + + + +
      +
      + + +
      +
      + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeModify.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeModify.jsp new file mode 100644 index 0000000..7ac375a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeModify.jsp @@ -0,0 +1,139 @@ + +<% + /** + * @Class Name : EgovRestdeModify.jsp + * @Description : EgovRestdeModify 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * 2011.08.12 서준식 CSS 경로 수정 + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +휴일 수정 + + + + + + + + + + + +
      + + +"> + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
      휴일 수정
      휴일일자필수입력표시--
      휴일명필수입력표시 + + +
      휴일설명필수입력표시 + + +
      휴일구분필수입력표시 + + + +
      + + + + +
      + + + + + + +
      + + + + + + + + + + +
      목록목록목록
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeRegist.jsp new file mode 100644 index 0000000..93dbfde --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/cal/EgovRestdeRegist.jsp @@ -0,0 +1,143 @@ + +<% + /** + * @Class Name : EgovRestdeRegist.jsp + * @Description : EgovRestdeRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * 2011.08.12 서준식 CSS 경로 수정 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +휴일 등록 + + + + + + + + + + + + +
      + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
      휴일 등록
      휴일일자필수입력표시 + + + (새창)"/> + 달력창팝업버튼이미지 +
      휴일명필수입력표시 + + +
      휴일설명필수입력표시 + + +
      휴일구분필수입력표시 + + + +
      + + + + +
      + + + + + + +
      + + + + + + + + + + +
      저장저장저장
      + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeDetail.jsp new file mode 100644 index 0000000..654e190 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeDetail.jsp @@ -0,0 +1,186 @@ + +<% + /** + * @Class Name : EgovAdministCodeDetail.jsp + * @Description : EgovAdministCodeDetail 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.08.11 이중호 최초 생성 + * + * @author 공통컴포넌트팀 + * @since 2009.08.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +법정동코드수신 상세조회 + + + + + + +
      + + +
      +<%-- noscript 테그 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      법정동코드필수입력표시
      행정구역명필수입력표시
      생성일자필수입력표시--
      폐지유무필수입력표시 + +
      + + + + + +
      + + + + +
      +
      + " onclick="fn_egov_list_AdministCodeRecptn(); return false;"> +
      +
      +
      + +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      순번발생일자최하위행정구역명변경구분처리구분생성일자폐지유무폐지일자
      -- + + + + -- + + --
      + +
      + +
      + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeRecptnList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeRecptnList.jsp new file mode 100644 index 0000000..69aa40e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeRecptnList.jsp @@ -0,0 +1,167 @@ + +<% + /** + * @Class Name : EgovAdministCodeRecptnList.jsp + * @Description : EgovAdministCodeRecptnList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.08.11 이중호 최초 생성 + * + * @author 공통컴포넌트팀 + * @since 2009.08.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +법정동코드수신 목록 + + + + + + + + +
      +<%-- noscript 테그 --%> + + +
      + + + + + + + + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +','');"> + + + + + + + +
      순번법정동코드주소지명
      + +
      +
      + "> + "> + + " onclick="fn_egov_detail_AdministCodeRecptn3('',''); return false;"> +
      + +
      + + + + + + + + +
      +
      +
      + +
      +
      +
      + +
      + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeRegist_TEST.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeRegist_TEST.jsp new file mode 100644 index 0000000..919656b --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/acr/EgovAdministCodeRegist_TEST.jsp @@ -0,0 +1,130 @@ + +<% + /** + * @Class Name : EgovAdministCodeRegist.jsp + * @Description : EgovAdministCodeRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.08.11 이중호 최초 생성 + * + * @author 공통컴포넌트팀 + * @since 2009.08.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +법정동코드수신 등록 + + + + + + + + +
      + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + +
      파일내용취합...필수입력표시
      ${systemCmdFull_LIST}필수입력표시
      ${systemCmdFull_MSG}필수입력표시
      + + + + +
      + + + + + + +
      + + + + + + + + + + + + +
      목록목록목록저장저장저장
      + +
      +
      + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCode.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCode.jsp new file mode 100644 index 0000000..5de1e7b --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCode.jsp @@ -0,0 +1,181 @@ + +<% + /** + * @Class Name : EgovCcmAdministCode.jsp + * @Description : EgovCcmAdministCode 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +상위행정구역코드 목록 + + + + + + + + + +
      + +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      상위행정구역코드 목록
      순번구분행정구역코드행정구역명
      + + 법정동 + 행정동 + + ${resultInfo.administZoneCode}${resultInfo.administZoneNm}
      + +
      + + + + + +
      + +
      +
      + +
      +
      + + + +
      +
      + + + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeDetail.jsp new file mode 100644 index 0000000..09a884a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeDetail.jsp @@ -0,0 +1,155 @@ + +<% + /** + * @Class Name : EgovCcmAdministCodeDetail.jsp + * @Description : EgovCcmAdministCodeDetail 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +행정코드 상세조회 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      행정코드 상세조회
      필수입력표시 + +
      행정구역코드필수입력표시${result.administZoneCode}
      행정구역명필수입력표시${result.administZoneNm}
      생성일자필수입력표시--
      폐기일자필수입력표시--
      상위행정구역코드필수입력표시${result.upperAdministZoneNm}
      필수입력표시 + +
      + + + + + +
      + + + + + + + + + + + + + +
      +
      +
      + + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeList.jsp new file mode 100644 index 0000000..83c0b08 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeList.jsp @@ -0,0 +1,188 @@ + +<% + /** + * @Class Name : EgovCcmAdministCodeList.jsp + * @Description : EgovCcmAdministCodeList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +행정코드 목록 + + + + + + + + +
      +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      행정코드 목록
      순번구분행정구역코드행정구역명사용여부
      + + 법정동 + 행정동 + + ${resultInfo.administZoneCode}${resultInfo.administZoneNm}사용미사용
      + +
      + + + + + + +
      +
      +
      + +
      +
      +
      + + + +
      +
      + + + +
      + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeModify.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeModify.jsp new file mode 100644 index 0000000..3e4d495 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeModify.jsp @@ -0,0 +1,225 @@ + +<% + /** + * @Class Name : EgovCcmAdministCodeModify.jsp + * @Description : EgovCcmAdministCodeModify 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +행정코드 수정 + + + + + + + + + + +
      + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      행정코드 수정
      행정구역구분필수입력표시 + +
      행정구역코드필수입력표시${administCode.administZoneCode}
      행정구역명필수입력표시 + + +
      생성일자필수입력표시 + + + 달력창팝업버튼이미지 + + +
      폐기일자필수입력표시 + + 달력창팝업버튼이미지 + + +
      상위행정구역코드필수입력표시 + + 행정코드찾기 + + +
      사용여부필수입력표시 + + + + +
      + + + + +
      + + + + + + + +
      + + + + + + + +
      +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodePopup.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodePopup.jsp new file mode 100644 index 0000000..1ed846a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodePopup.jsp @@ -0,0 +1,38 @@ + +<% + /** + * @Class Name : EgovCcmAdministCodePopup.jsp + * @Description : EgovCcmAdministCodePopup 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> +<%@ page contentType="text/html; charset=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"%> + + +상위행정구역코드 + + + +
      + +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeRegist.jsp new file mode 100644 index 0000000..0a3189c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/adc/EgovCcmAdministCodeRegist.jsp @@ -0,0 +1,235 @@ + +<% + /** + * @Class Name : EgovCcmAdministCodeRegist.jsp + * @Description : EgovCcmAdministCodeRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +행정코드 등록 + + + + + + + + + + +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      행정코드 등록
      행정구역구분필수입력표시 + +
      행정구역코드필수입력표시 + + +
      행정구역명필수입력표시 + + +
      생성일자필수입력표시 + + + 달력창팝업버튼이미지 + + +
      폐기일자선택입력표시 + + 달력창팝업버튼이미지 + + +
      상위행정구역코드선택입력표시 + + 행정코드찾기 + + +
      사용여부필수입력표시 + + + + +
      + + + + +
      + + + + + + +
      + + + + + + + + + +
      목록목록목록
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeDetail.jsp new file mode 100644 index 0000000..47d4539 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeDetail.jsp @@ -0,0 +1,127 @@ + +<% + /** + * @Class Name : EgovCcmCmmnCodeDetail.jsp + * @Description : EgovCcmCmmnCodeDetail 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +공통코드 상세조회 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      공통코드 상세조회
      분류코드명필수입력표시${result.clCodeNm}
      코드ID필수입력표시${result.codeId}
      코드ID명필수입력표시${result.codeIdNm}
      필수입력표시
      필수입력표시 + +
      + + + + +
      + + + + + + + + + +
      +
      + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeList.jsp new file mode 100644 index 0000000..55eac7e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeList.jsp @@ -0,0 +1,187 @@ + +<% + /** + * @Class Name : EgovCcmCmmnCodeList.jsp + * @Description : EgovCcmCmmnCodeList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +공통코드 목록 + + + + + + + +
      +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      공통코드 목록
      순번분류명코드ID코드ID명사용여부
      ${resultInfo.clCodeNm}${resultInfo.codeId} + + + ${resultInfo.codeIdNm} + + + 사용미사용
      + +
      + + + + + + +
      +
      +
      + +
      +
      +
      + + + +
      +
      + + +
      + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeModify.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeModify.jsp new file mode 100644 index 0000000..d8be122 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeModify.jsp @@ -0,0 +1,148 @@ + +<% + /** + * @Class Name : EgovCcmCmmnCodeModify.jsp + * @Description : EgovCcmCmmnCodeModify 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +공통코드 수정 + + + + + + + + + +
      + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      공통코드 수정
      분류코드명필수입력표시${cmmnCode.clCodeNm}
      코드ID필수입력표시 + ${cmmnCode.codeId} +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + + + +
      + + + + +
      + + + + + + + +
      + + + + + + + +
      +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeRegist.jsp new file mode 100644 index 0000000..8dfb091 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cca/EgovCcmCmmnCodeRegist.jsp @@ -0,0 +1,151 @@ +<% + /** + * @Class Name : EgovCcmCmmnCodeRegist.jsp + * @Description : EgovCcmCmmnCodeRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + +공통코드 등록 + + + + + + + + + +
      + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      공통코드 등록
      필수입력표시 + +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + + + +
      + + + + +
      + + + + + + +
      + + + + + + + +
      + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeDetail.jsp new file mode 100644 index 0000000..c41db49 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeDetail.jsp @@ -0,0 +1,134 @@ + +<% + /** + * @Class Name : EgovCcmCmmnClCodeDetail.jsp + * @Description : EgovCcmCmmnClCodeDetail 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + +공통분류코드 상세조회 + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + +
      공통분류코드 상세조회
      분류코드필수입력표시${result.clCode}
      분류코드명필수입력표시${result.clCodeNm}
      분류코드설명필수입력표시
      필수입력표시 + +
      + + + + + +
      +
      + + + + + + + + + + + + + + + + + + +
      수정수정수정삭제삭제삭제목록목록목록
      +
      +
      + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeList.jsp new file mode 100644 index 0000000..045bd3b --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeList.jsp @@ -0,0 +1,188 @@ + +<% + /** + * @Class Name : EgovCcmCmmnClCodeList.jsp + * @Description : EgovCcmCmmnClCodeList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + + + + +공통분류코드 목록 + + + + +
      +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      공통분류코드 목록
      순번분류코드분류코드명사용여부
      ${resultInfo.clCode} + + + ${resultInfo.clCodeNm} + + + 사용미사용
      + +
      + + + + + + +
      +
      +
      + +
      +
      +
      + + + +
      + +
      + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeModify.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeModify.jsp new file mode 100644 index 0000000..94d00ca --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeModify.jsp @@ -0,0 +1,144 @@ + +<% + /** + * @Class Name : EgovCcmCmmnClCodeModify.jsp + * @Description : EgovCcmCmmnClCodeModify 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +공통분류코드 수정 + + + + + + + + + +
      + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
      공통분류코드 수정
      분류코드필수입력표시 + ${cmmnClCode.clCode} +
      필수입력표시 + + + +
      필수입력표시 + + +
      필수입력표시 + + + + +
      + + + + +
      + + + + + + +
      + + + + + + + + + +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeRegist.jsp new file mode 100644 index 0000000..74b543f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/ccc/EgovCcmCmmnClCodeRegist.jsp @@ -0,0 +1,150 @@ + +<% + /** + * @Class Name : EgovCcmCmmnClCodeRegist.jsp + * @Description : EgovCcmCmmnClCodeRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +공통분류코드 등록 + + + + + + + + + + +
      + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
      공통분류코드 등록
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + + + +
      + + + + +
      + + + + + + +
      + + + + + + + + + +
      + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeDetail.jsp new file mode 100644 index 0000000..ace232e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeDetail.jsp @@ -0,0 +1,139 @@ + +<% + /** + * @Class Name : EgovCcmCmmnDetailCodeDetail.jsp + * @Description : EgovCcmCmmnDetailCodeDetail 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +공통상세코드 상세조회 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      공통상세코드 상세조회
      코드ID명필수입력표시${result.codeIdNm}
      코드필수입력표시${result.code}
      코드명필수입력표시${result.codeNm}
      필수입력표시
      필수입력표시 + +
      + + + + + + +
      + + + + + + + + + + + + + + + +
      +
      +
      + + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeList.jsp new file mode 100644 index 0000000..b7b7aed --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeList.jsp @@ -0,0 +1,186 @@ + +<% + /** + * @Class Name : EgovCcmCmmnDetailCodeList.jsp + * @Description : EgovCcmCmmnDetailCodeList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +공통상세코드 목록 + + + + + + + +
      +
      + + + +
      +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      공통상세코드 목록
      순번코드ID코드코드명사용여부
      ${resultInfo.codeId}${resultInfo.code} + + + ${resultInfo.codeNm} + + + 사용미사용
      + +
      + + + + + + +
      +
      +
      + +
      +
      +
      + + + + +
      + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeModify.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeModify.jsp new file mode 100644 index 0000000..e69b5bf --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeModify.jsp @@ -0,0 +1,151 @@ + +<% + /** + * @Class Name : EgovCcmCmmnDetailCodeModify.jsp + * @Description : EgovCcmCmmnDetailCodeModify 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +공통상세코드 수정 + + + + + + + + + +
      + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      공통상세코드 수정
      코드ID필수입력표시 + ${cmmnDetailCode.codeIdNm} +
      코드필수입력표시
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + + + +
      + + + + +
      + + + + + + + +
      + + + + + + + + + +
      +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeRegist.jsp new file mode 100644 index 0000000..d032e56 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/cde/EgovCcmCmmnDetailCodeRegist.jsp @@ -0,0 +1,172 @@ + +<% + /** + * @Class Name : EgovCcmCmmnDetailCodeRegist.jsp + * @Description : EgovCcmCmmnDetailCodeRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +공통상세코드 등록 + + + + + + + + + +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      공통상세코드 등록
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + + + +
      + + + + +
      + + + + + + +
      + + + + + + + + +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeDetail.jsp new file mode 100644 index 0000000..1e10b3d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeDetail.jsp @@ -0,0 +1,195 @@ + +<% + /** + * @Class Name : EgovInsttCodeDetail.jsp + * @Description : EgovInsttCodeDetail 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.08.11 이중호 최초 생성 + * + * @author 공통컴포넌트팀 + * @since 2009.08.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +기관코드수신 상세조회 + + + + + + + +<%-- noscript 테그 --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      기관코드필수입력표시
      전체기관명필수입력표시
      변경일자필수입력표시--
      변경시간필수입력표시::
      폐지유무필수입력표시 + +
      + + + + + +
      + + + + +
      +
      + " onclick="fn_egov_list_InsttCodeRecptn(); return false;"> +
      +
      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      순번발생일자최하위기관명변경구분처리구분생성일자변경일자폐지유무폐지일자
      -- + + + + ---- + + --
      + +
      + +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnList.jsp new file mode 100644 index 0000000..01376ce --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnList.jsp @@ -0,0 +1,169 @@ + +<% + /** + * @Class Name : EgovInsttCodeRecptnList.jsp + * @Description : EgovInsttCodeRecptnList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.08.11 이중호 최초 생성 + * + * @author 공통컴포넌트팀 + * @since 2009.08.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +기관코드수신 목록 + + + + + + + + +
      +<%-- noscript 테그 --%> + + +
      + + + + + + + + + + + +
      + + + + + +
      + + + + + + + + + + + + + + + + + + +');"> + + + + + + + +
      순번기관코드기관명
      + +
      + +
      + "> + + " onclick="fn_egov_detail_InsttCodeRecptn(''); return false;"> +
      + +
      + + + + + + + + +
      +
      +
      + +
      +
      +
      + +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnMainList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnMainList.jsp new file mode 100644 index 0000000..c4d9a40 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRecptnMainList.jsp @@ -0,0 +1,71 @@ + +<% + /** + * @Class Name : EgovInsttCodeRecptnMainList.jsp + * @Description : EgovInsttCodeRecptnMainList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.08.11 이중호 최초 생성 + * + * @author 공통컴포넌트팀 + * @since 2009.08.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> +<%@ page 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"%> + + + +기관코드수신 목록조회 + + + +
      + + +<%-- 데이터를 없을때 화면에 메세지를 출력해준다 --%> + + + + + +<%-- 데이터를 화면에 출력해준다 --%> + + + + + + + +
      + +
      +
      + " onclick="fn_egov_detail_InsttCode('');"> +
      +
      + +" /> +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRegist_TEST.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRegist_TEST.jsp new file mode 100644 index 0000000..78db5cc --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/icr/EgovInsttCodeRegist_TEST.jsp @@ -0,0 +1,130 @@ + +<% + /** + * @Class Name : EgovInsttCodeRegist.jsp + * @Description : EgovInsttCodeRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.08.11 이중호 최초 생성 + * + * @author 공통컴포넌트팀 + * @since 2009.08.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +기관코드수신 등록 + + + + + + + + +
      + + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + +
      파일내용취합...필수입력표시
      ${systemCmdFull_LIST}필수입력표시
      ${systemCmdFull_MSG}필수입력표시
      + + + + +
      + + + + + + +
      + + + + + + + + + + + + +
      목록") class="text_left" nowrap>목록목록저장") class="text_left" nowrap>저장저장
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmExcelZipRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmExcelZipRegist.jsp new file mode 100644 index 0000000..c32b694 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmExcelZipRegist.jsp @@ -0,0 +1,130 @@ + +<% + /** + * @Class Name : EgovCcmExcelZipRegist.jsp + * @Description : EgovCcmExcelZipRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +우편번호 엑셀파일 등록 + + + + + + + + +${sResult} +
      + +
      + + + + + + + 제목아이콘이미지 우편번호 도로명주소 엑셀파일 등록 + + + + + + + + +
      + + + + + + + + +
      우편번호 엑셀파일 등록
      필수입력표시
      + + + + +
      + + + + + + +
      + + + + + + + +
      + + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipDetail.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipDetail.jsp new file mode 100644 index 0000000..232011a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipDetail.jsp @@ -0,0 +1,169 @@ + +<% + /** + * @Class Name : EgovCcmZipDetail.jsp + * @Description : EgovCcmZipDetail 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +우편번호 상세조회 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      우편번호 상세조회
      우편번호필수입력표시-
      시도명필수입력표시${result.ctprvnNm}
      시군구명필수입력표시${result.signguNm}
      읍면동명필수입력표시${result.emdNm}
      리건물명${result.liBuldNm}
      번지동호${result.lnbrDongHo}
      우편번호필수입력표시-
      도로명코드필수입력표시${result.rdmnCode}
      시도명필수입력표시${result.ctprvnNm}
      시군구명필수입력표시${result.signguNm}
      도로명필수입력표시${result.rdmn}
      건물번호본번${result.bdnbrMnnm}
      건물번호부번${result.bdnbrSlno}
      건물명${result.buldNm}
      상세건물명${result.detailBuldNm}
      + + + + +
      + + + + + + +
      +
      + + + + + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipList.jsp new file mode 100644 index 0000000..9512f2f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipList.jsp @@ -0,0 +1,238 @@ + +<% + /** + * @Class Name : EgovCcmZipList.jsp + * @Description : EgovCcmZipList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +우편번호 목록 + + + + + + + +
      +
      + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      우편번호 목록
      순번우편번호주소
      -${resultInfo.ctprvnNm} ${resultInfo.signguNm} ${resultInfo.emdNm} ${resultInfo.liBuldNm} ${resultInfo.lnbrDongHo}
      -${resultInfo.ctprvnNm} ${resultInfo.signguNm} ${resultInfo.rdmn} ${resultInfo.bdnbrMnnm} - ${resultInfo.bdnbrSlno} ${resultInfo.buldNm} ${resultInfo.detailBuldNm}
      + +
      + + + + + + +
      +
      +
      + +
      +
      +
      + + + +
      +
      + + + + + +
      +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipModify.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipModify.jsp new file mode 100644 index 0000000..c873d76 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipModify.jsp @@ -0,0 +1,215 @@ +<% + /** + * @Class Name : EgovCcmZipModify.jsp + * @Description : EgovCcmZipModify 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + +우편번호 수정 + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + 제목아이콘이미지 우편번호 도로명주소 수정 + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      우편번호 수정
      우편번호필수입력표시 + - +
      시도명필수입력표시 + +
      시군구명필수입력표시 + +
      읍면동명필수입력표시 + +
      + +
      + +
      우편번호필수입력표시-
      도로명코드필수입력표시
      시도명필수입력표시}
      시군구명필수입력표시
      도로명필수입력표시
      건물번호본번 + +
      건물번호부번 + +
      건물명 + +
      상세건물명 + +
      + + + + +
      + + + + + + +
      + + + + + + + +
      + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipRegist.jsp new file mode 100644 index 0000000..b9eb2aa --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipRegist.jsp @@ -0,0 +1,230 @@ + +<% + /** + * @Class Name : EgovCcmZipRegist.jsp + * @Description : EgovCcmZipRegist 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + +우편번호 등록 + + + + + + + + + +
      + + + + + + + + + + 제목아이콘이미지 우편번호 도로명주소 등록 + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      우편번호 등록
      필수입력표시 + +  * 우편번호의 '-'를 제외하고 입력하시오. +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + +
      + + +
      + + +
      필수입력표시 + +  * 우편번호의 '-'를 제외하고 입력하시오. +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + +
      필수입력표시 + + +
      + + +
      + + +
      + + +
      + + +
      + + + + +
      + + + + + + +
      + + + + + + + +
      + + + +
      +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipSearchList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipSearchList.jsp new file mode 100644 index 0000000..a4cc070 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipSearchList.jsp @@ -0,0 +1,196 @@ + +<%-- + /** + * @Class Name : EgovCcmZipSearchList.jsp + * @Description : EgovCcmZipSearchList 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ --------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * @ 2011.11.22 이기하 도로명주소 추가 + * @ 2013.05.23 이기하 RegExp 수정(addr.replace("/^\s+|\s+$/g",""); => addr.replace(/^\s+|\s+$/g,"")) + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +--%> + +<%@ page contentType="text/html; charset=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"%> + + + + + + +우편번호 찾기 + + + + + + +
      + + + + + + + + + + + + + + +
      + + + + + + + + + +<%-- 데이터를 없을때 화면에 메세지를 출력해준다 --%> + + + + + + + + + + + + + + + + - ${resultInfo.bdnbrSlno} ${resultInfo.buldNm} ${resultInfo.detailBuldNm}');"> + + + + + + +
      우편번호주소
      + +
      -${resultInfo.ctprvnNm} ${resultInfo.signguNm} ${resultInfo.emdNm} ${resultInfo.liBuldNm} ${resultInfo.lnbrDongHo}
      -${resultInfo.ctprvnNm} ${resultInfo.signguNm} ${resultInfo.rdmn} ${resultInfo.bdnbrMnnm} - ${resultInfo.bdnbrSlno} ${resultInfo.buldNm} ${resultInfo.detailBuldNm}
      + + + + + + +
      +
      +
      + +
      +
      +
      + + + +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipSearchPopup.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipSearchPopup.jsp new file mode 100644 index 0000000..b53f2fc --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/sym/ccm/zip/EgovCcmZipSearchPopup.jsp @@ -0,0 +1,39 @@ + +<% + /** + * @Class Name : EgovCcmZipSearchPopup.jsp + * @Description : EgovCcmZipSearchPopup 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.04.01 이중호 최초 생성 + * + * @author 공통서비스팀 + * @since 2009.04.01 + * @version 1.0 + * @see + * + */ +%> + +<%@ page contentType="text/html; charset=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"%> + + +우편번호 찾기 + + + +
      + +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyList.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyList.jsp new file mode 100644 index 0000000..7e63d4c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyList.jsp @@ -0,0 +1,290 @@ + +<%@ page 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"%> +<%@ page import="egovframework.com.cmm.LoginVO" %> +<%@ page import="egovframework.com.cmm.util.EgovUserDetailsHelper" %> +<% +/** + * @Class Name : EgovLoginPolicyList.java + * @Description : EgovLoginPolicyList jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ --------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * @ 2011.09.30 이기하 데이터 없을시 메시지 추가 + * + * @author lee.m.j + * @since 2009.03.21 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + + + + + +로그인정책 목록조회 + + + + + + + + + +
      + + + + + +
      + +
      + + + + + + + + +1"> + +
      + + + + + + + + + + + + + + <%-- 데이터를 없을때 화면에 메세지를 출력해준다 --%> + + + + + + + + + + + + + + + + +
      로그인정책 관리
      사용자 ID사용자 명IP 정보제한여부
      + +
      +
      + "> + + + "> + " onclick="fncSelectLoginPolicy(''); return false;"> +
      +
      YN
      + + + + +
      + + +
      +
      + +
      + +
      +
      + + +
      + +
      + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyRegist.jsp new file mode 100644 index 0000000..cc26be1 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyRegist.jsp @@ -0,0 +1,174 @@ + +<%-- +/** + * @Class Name : EgovLoginPolicyRegist.java + * @Description : EgovLoginPolicyRegist jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ + --%> +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + +로그인정책 등록 + + + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      로그인정책 등록
      사용자ID
      사용자명
      IP정보 
      IP제한여부 +   +
      + + + + + +
      + + + + + + +
      " onclick="fncLoginPolicyInsert(); return false;">  &searchCondition=1" onclick="fncSelectLoginPolicyList(); return false;">
      +
      + + + + +
      + +
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyUpdt.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyUpdt.jsp new file mode 100644 index 0000000..524209c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uap/EgovLoginPolicyUpdt.jsp @@ -0,0 +1,192 @@ + +<%-- +/** + * @Class Name : EgovLoginPolicyUpdt.java + * @Description : EgovLoginPolicyUpdt jsp + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.02.01 lee.m.j 최초 생성 + * + * @author lee.m.j + * @since 2009.03.11 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ + --%> +<%@ page contentType="text/html; charset=utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> + + + + + +로그인정책 수정 + + + + + + + + +
      + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      로그인정책 수정
      사용자ID필수입력표시readonly value="" size="30" class="readOnlyClass" readOnly >
      사용자명필수입력표시
      IP정보필수입력표시 
      IP제한여부필수입력표시 + +
      등록일시필수입력표시
      + + + + + +
      + + + + + + + + +
      " onclick="fncLoginPolicyUpdate(); return false;">    &searchCondition=1" onclick="fncSelectLoginPolicyList(); return false;">
      +
      + + + + + + +
      + +
      + +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiInstall.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiInstall.jsp new file mode 100644 index 0000000..67e1204 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiInstall.jsp @@ -0,0 +1,127 @@ + +<%@ page contentType="text/html; charset=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"%> +<% + /** + * @Class Name : EgovGpkiInstall.jsp + * @Description : GPKI 인증을 위한 모듈 인스톨 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.31 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.31 + * @version 1.0 + * @see + * + */ +%> + + + + + + + +MOPAS GPKI 인스톨 + + + + + + + +
      + +
      + + + + + + + + + + + + + + + + +


      GPKI 인증관리센터입니다..

      + [ 프로그램 설치시 주의사항 ]

      +
      +   1. 처음 접속하시는 분은 [보안경고]창이 표시되면 반드시 [예(Y)]
      +      누르셔서 프로그램을 설치하셔야 합니다.
      +      *보안에 필요한 프로그램 설치이므로 [아니오(N)]를 선택하시면
      +      서비스를 이용하실 수 없습니다.

      +   2. 보안프로그램 설치중 오류가 발생하거나 장시간 화면이 정지해
      +      있을 경우, 아래의 [보안프로그램 내려받기]를 눌러 다운받으신
      +      프로그램 실행 하여 보안프로그램을 수동설치십시오.

      +   3. 설치예상시간
      +      - 초고속 인터넷 사용자 : 약 30초
      +      - 전화모뎀 사용자 : 약 2~3분
      +
      +
      + +
      +
      +
      + + + + + + + + + + + + +
      + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiIssu.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiIssu.jsp new file mode 100644 index 0000000..eb6b67e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiIssu.jsp @@ -0,0 +1,306 @@ + +<%@ page contentType="text/html; charset=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"%> +<% + /** + * @Class Name : EgovGpkiIssu.jsp + * @Description : 인증서 안내화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.25 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.25 + * @version 1.0 + * @see + * + */ +%> + + + + +MOPAS GPKI 인증서 안내 + + + + + + + + + + +
       
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      +
      “행정전자서명 인증서”라 함은 행정전자서명이 진정한 것임을 확인ㆍ증명할 수 있도록 하기 위하여 행정기관, 보조기관, 보좌기관, 전자문서유통 및 행정정보 공공이용, 공공기반, 은행 또는 사용자에게 발급하는 전자적 정보를 말한다.
      +
      + 전자거래시 인증서를 사용하면 신원확인, 문서의 위·변조, 거래사실의 부인 방지 등의 효과를 얻을 수 있습니다. 인증서에는 인증서 버전, 인증서 일련번호, 인증서의 유효기간, 발급기관명 및 전자서명 알고리즘 정보, 가입자 이름 및 신원확인정보 등이 포함되어 있다.
      + + + + +
      +
      +
      행정전자서명 인증서 발급대상은 다음의 2가지로 분류된다.
      + 첫째는 인증관리체계상 인증업무수행 인증기관, 등록기관, 원격등록기관에 해당하는 행정기관이 대상이며
      + 둘째는 정보화시스템에 적용하기 위한 행정기관, 보조기관, 보좌기관, 공무원 그리고 해당 공무원과 행정기관, 보조기관, 보좌기관에서 관리하는 정보통신 장비가 일반 인증서 발급 대상이다.
      + 셋째는 전자문서 유통 및 행정정보 공동이용 공공기관, 은행법으로 지정된 기관과 사용자가 발급대상이다.
      +
      + + + + + + + +
      + + + + + + + + +
       
      개요모양아이콘이미지인증/등록기관 인증서
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      최상위 인증기관
      인증관리센터는 행정전자서명 인증업무 수행 등에 활용하도록 최상위인증기관에 인증서를 발급합니다.
      인증기관용
      인증관리센터는 안전행전부 장관이 지정ㆍ고시하는 정부인증기관을 대상으로 인증업무 수행등에 활용하도록 인증서를 발급합니다.
      등록기관용
      인증관리센터는 등록기관 등록업무 수행 등에 활용하도록 등록기관 지정 행정기관에 인증서를 발급합니다.
      + + + + + + + + + + +
      + + + + + +
      개요모양아이콘이미지기관/개인 인증서
      + + + + + + + + + + + + + + + + + + +
      기관 기관용
      인증관리센터는 사무관리규정에 따라 관인을 가질수 있는 행정기관, 보조기관, 보좌기관등의 과단위까지의 1개의 기관용 인증서를 발급합니다.
      특수목적용
      인증관리센터는 사무관리규정에 따라 행정기관의 업무를 관인과 같이 처리할 수 없도록 규정한 특수관인을 관리하는 경우에 특수목적용 인증서를 발급합니다.
      서버용
      인증관리센터는 행정기관에서 관리해야할 책임이 있는 정보통신 장비가 일정 규칙에 의해 정보통신 장비가 지속적으로 행정업무를 처리하고자 하는 경우에 서버 단위로 인증서를 발급합니다.
      개인
      인증관리센터는 행정기관 소속 공무원이 사용자인증 및 전자결재, 보안메일 등의 행정업무 또는 전자상거래 등에서 활용하도록 하기 위해 부처별 개인단위로 인증서를 발급합니다.
      ※ 기타 : 행정업무 처리에서 필요하다고 판단되는 경우 인증협의회 또는 관련 기관과 협의하여 업무에 맞는 인증서를 발급할 수 있습니다.
      + + + + + + + +

      + + + + + +
      개요모양아이콘이미지인증/등록기관
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      구분ou명cn명DN명(예)
      최상위 인증기관
      ou=GPKI
      cn=Root CA
      cn=Root CA, ou=GPKI, o=Government of Korea,c=KR
      인증기관
      ou=GPKI
      cn=CA + 기관코드(7) + 일련번호(2)
      cn=CA131000001, ou=GPKI, o=Government of Korea,c=KR
      등록기관
      cn=해당인증기관,
      + ou=GPKI
      cn=RA + 기관코드(7) + 일련번호(2)
      cn=RA131000001,cn=CA131000001, ou=GPKI, o=Government of Korea,c=KR
      + + + + + + + +
      + + + + + +
      개요모양아이콘이미지기관/개인
      + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      구분ou명cn명 + + + + +
      DN명
      +
      기관 기관용
      ou=최하위기관명, ou=상위기관명, ou=최상위기관명
      -
      ou=보안관리팀, ou=전자정부본부, ou=안전행전부, o=Government of Korea, c=KR
      서버용
      ou=Group of Server
      cn=SVR + 기관코드(7) + 일련번호(3)
      cn=SVR131000001, ou=Group of Server, o=Government of Korea, c=KR
      개인  
      ou=people, ou=최상위기관명
      cn=기관구분자(3) + 이름 + 일련번호(3)
      + *일련번호:동명이인
      cn=001홍길동001, ou=people, ou=안전행전부, o=Government of Korea, c=KR
      + + +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiRegist.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiRegist.jsp new file mode 100644 index 0000000..a151a31 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovGpkiRegist.jsp @@ -0,0 +1,111 @@ + +<%@ page contentType="text/html; charset=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"%> +<% + /** + * @Class Name : EgovLoginUsr.jsp + * @Description : Login 인증 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.03 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.03 + * @version 1.0 + * @see + * + */ +%> + + + + + + + + + +GPKI 인증서 등록 + + + + +
      + + + + + + + + +
      제목아이콘이미지 인증서 DN 추출
      + + + + +
      +
      + + + +
      + + + + + + + + +
      +
      + + +
      + + + + + + + + + + + +
      인증서비밀번호   +    + 버튼이미지
      DN값 추출
      버튼이미지
      DN값   +    + 버튼이미지
      DN값 전달
      버튼이미지
      + + + + + + +
      + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovIdPasswordResult.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovIdPasswordResult.jsp new file mode 100644 index 0000000..4ab976a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovIdPasswordResult.jsp @@ -0,0 +1,63 @@ + +<%@ page contentType="text/html; charset=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"%> +<% + /** + * @Class Name : EgovIdPasswordResult.jsp + * @Description : 아이디/비밀번호 찾기 결과화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.17 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.17 + * @version 1.0 + * @see + * + */ +%> + + + + +MOPAS 아이디/비밀번호 찾기 결과 + + + +
      + + + + + + + +
      제목아이콘이미지 아이디/비밀번호 찾기
      + + + + + + + + + + +
       
      ${resultInfo}
       
      +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovIdPasswordSearch.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovIdPasswordSearch.jsp new file mode 100644 index 0000000..5f44f7c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovIdPasswordSearch.jsp @@ -0,0 +1,275 @@ + +<%@ page contentType="text/html; charset=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"%> +<% + /** + * @Class Name : EgovIdPasswordSearch.jsp + * @Description : 아이디/비밀번호 찾기 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.09 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.09 + * @version 1.0 + * @see + * + */ +%> + + + + +MOPAS 아이디/비밀번호 찾기 + + + + + + + + +
      + + + + + + + + + + +
      제목아이콘이미지 아이디 찾기
      + + + + + + + + + + +
       
      + + + + + + + + + +
      일반기업업무
       
      + + + + + + + + + + +
      + + + + + + + + + +
      이름   +
      이메일   +
      +
       
      + + + + + + +
      버튼이미지
      아이디찾기
      버튼이미지
      +
      +
       
      +
      + + + +
      + +
      + + + + + + + +
      제목아이콘이미지 비밀번호 찾기
      + + + + + + + + + + +
       
      + + + + + + + + + +
      일반기업업무
       
      + + + + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + +
      아이디   +
      이름   +
      이메일   +
      비밀번호 힌트   + + +
      비밀번호 정답   +
      +
       
      + + + + + + +
      버튼이미지
      비밀번호찾기
      버튼이미지
      +
      +
       
      +
      + +
      + +
      + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovLoginUsr.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovLoginUsr.jsp new file mode 100644 index 0000000..ea3d1a0 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/uat/uia/EgovLoginUsr.jsp @@ -0,0 +1,387 @@ +<%@ page contentType="text/html; charset=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"%> +<% + /** + * @Class Name : EgovLoginUsr.jsp + * @Description : Login 인증 화면 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.03 박지욱 최초 생성 + * 2011.09.25 서준식 사용자 관리 패키지가 미포함 되었을때에 회원가입 오류 메시지 표시 + * 2011.10.27 서준식 사용자 입력 탭 순서 변경 + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.03 + * @version 1.0 + * @see + * + * Copyright (C) 2009 by MOPAS All right reserved. + */ +%> + + + + + + + + + + + + +MOPAS 로그인 + + + + + +egovframe + + + + +
      + +
      + + + + + + +
      + +
      +
      + +
      + + + + + + + + +
      login 일반로그인
      + + + + + + + + + + +
       
      + + + + + + + + + + +
      일반기업업무
       
      + + + + + + + + + + + + + + + + +
      + + + + + + + + + + +
      +
      +
       
      + + + + + + + + +
      로그인 회원가입 아이디/비밀번호찾기
      +
      + + + + + + +
      인증서로그인 인증서안내
      +
      +
       
      +
      + + +
      + +
      + + +
      +
      + +
      + + + + + + + + + + +
      gpki_login 인증서 로그인
      + + + + + + + +
      + + + + +
      + + + + + + + + +
      +
      +
      + + + + +
      + + + + + +
      + 인증서로그인 +
      +
      +
      + +
      + + +
      +
      + +
      +
      +
      + + + + + + + +
      gpki_icon 인증서 로그인을 위한 설치
       - GPKI 인증센터
      + + + <%-- + + + +
       OAuth 로그인
      --%> + + <%--
      " method="POST" target="_blank"> +
      + + --%> + + <%--
      " method="POST" target="_blank"> + +
      + + --%> + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/egovframework/com/utl/wed/EgovInsertImage.jsp b/src/main/webapp/WEB-INF/jsp/egovframework/com/utl/wed/EgovInsertImage.jsp new file mode 100644 index 0000000..9590d60 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/egovframework/com/utl/wed/EgovInsertImage.jsp @@ -0,0 +1,441 @@ +<%@ 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"%> +<% + /** + * @Class Name : EgovInsertImage.jsp + * @Description : 웹에디터 이미지 upload 기능을 위한 팝업 화면 (기존 insert_image.html 대체) + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ----------- -------- --------------------------- + * @ 2009.08.26 한성곤 최초 생성 + * @ 2012.12.18 이기하 image alt 생성기능 추가 + * + * @author 공통컴포넌트개발팀 한성곤 + * @since 2009.08.26 + * @version 1.0 + * @see + */ + + //htmlArea v3.0 - Copyright (c) 2002, 2003 interactivetools.com, inc. + //This copyright notice MUST stay intact for use (see license.txt). + // + //Portions (c) dynarch.com, 2003 + // + //A free WYSIWYG editor replacement for ");return""+encodeURIComponent(a)+""})}function p(a){return a.replace(w,function(a,b){return decodeURIComponent(b)})}function s(a){return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g, +function(a){return"<\!--"+A+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\>"})}function x(a){return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)})}function q(a,b){var d=b._.dataStore;return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return d&&d[b]||""})}function o(a,b){for(var d=[],c=b.config.protectedSource,e=b._.dataStore||(b._.dataStore= +{id:1}),f=/<\!--\{cke_temp(comment)?\}(\d*?)--\>/g,c=[//gi,//gi,//gi].concat(c),a=a.replace(/<\!--[\s\S]*?--\>/g,function(a){return"<\!--{cke_tempcomment}"+(d.push(a)-1)+"--\>"}),j=0;j"});a=a.replace(f,function(a,b,c){return"<\!--"+A+(b?"{C}":"")+encodeURIComponent(d[c]).replace(/--/g, +"%2D%2D")+"--\>"});a=a.replace(/<\w+(?:\s+(?:(?:[^\s=>]+\s*=\s*(?:[^'"\s>]+|'[^']*'|"[^"]*"))|[^\s=>]+))+\s*>/g,function(a){return a.replace(/<\!--\{cke_protected\}([^>]*)--\>/g,function(a,b){e[e.id]=decodeURIComponent(b);return"{cke_protected_"+e.id++ +"}"})});return a=a.replace(/<(title|iframe|textarea)([^>]*)>([\s\S]*?)<\/\1>/g,function(a,d,c,e){return"<"+d+c+">"+q(x(e),b)+""})}CKEDITOR.htmlDataProcessor=function(b){var d,e,f=this;this.editor=b;this.dataFilter=d=new CKEDITOR.htmlParser.filter; +this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;d.addRules(v);d.addRules(I,{applyToAll:true});d.addRules(a(b,"data"),{applyToAll:true});e.addRules(r);e.addRules(O,{applyToAll:true});e.addRules(a(b,"html"),{applyToAll:true});b.on("toHtml",function(a){var a=a.data,d=a.dataValue,d=o(d,b),d=m(d,J),d=i(d),d=m(d,L),d=d.replace(z,"$1cke:$2"),d=d.replace(E,""),d=d.replace(/(]*>)(\r\n|\n)/g,"$1$2$2"),d=d.replace(/([^a-z0-9<\-])(on\w{3,})(?!>)/gi, +"$1data-cke-"+CKEDITOR.rnd+"-$2"),e=a.context||b.editable().getName(),f;if(CKEDITOR.env.ie&&CKEDITOR.env.version<9&&e=="pre"){e="div";d="
      "+d+"
      ";f=1}e=b.document.createElement(e);e.setHtml("a"+d);d=e.getHtml().substr(1);d=d.replace(RegExp("data-cke-"+CKEDITOR.rnd+"-","ig"),"");f&&(d=d.replace(/^
      |<\/pre>$/gi,""));d=d.replace(t,"$1$2");d=p(d);d=x(d);a.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,a.context,a.fixForBody===false?false:c(a.enterMode,b.config.autoParagraph))},null,null,
      +5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,true,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(f.dataFilter,true)},null,null,10);b.on("toHtml",function(a){var a=a.data,b=a.dataValue,d=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(d);b=d.getHtml(true);a.dataValue=s(b)},null,null,15);b.on("toDataFormat",function(a){var d=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(d=d.replace(/^
      /i, +""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,a.data.context,c(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(f.htmlFilter,true)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,false,true)},null,null,11);b.on("toDataFormat",function(a){var d=a.data.dataValue,c=f.writer;c.reset();d.writeChildrenHtml(c);d=c.getHtml(true);d=x(d);d=q(d,b);a.data.dataValue=d},null,null,15)};CKEDITOR.htmlDataProcessor.prototype= +{toHtml:function(a,b,d,c){var e=this.editor,f,j,k;if(b&&typeof b=="object"){f=b.context;d=b.fixForBody;c=b.dontFilter;j=b.filter;k=b.enterMode}else f=b;!f&&f!==null&&(f=e.editable().getName());return e.fire("toHtml",{dataValue:a,context:f,fixForBody:d,dontFilter:c,filter:j||e.filter,enterMode:k||e.enterMode}).dataValue},toDataFormat:function(a,b){var d,c,e;if(b){d=b.context;c=b.filter;e=b.enterMode}!d&&d!==null&&(d=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a, +filter:c||this.editor.filter,context:d,enterMode:e||this.editor.enterMode}).dataValue}};var u=/(?: |\xa0)$/,A="{cke_protected}",k=CKEDITOR.dtd,l=["caption","colgroup","col","thead","tfoot","tbody"],j=CKEDITOR.tools.extend({},k.$blockLimit,k.$block),v={elements:{input:n,textarea:n}},I={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},r={elements:{embed:function(a){var b=a.parent;if(b&&b.name=="object"){var d=b.attributes.width,b=b.attributes.height;if(d)a.attributes.width= +d;if(b)a.attributes.height=b}},a:function(a){if(!a.children.length&&!a.attributes.name&&!a.attributes["data-cke-saved-name"])return false}}},O={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return false;for(var d=["name","href","src"],c,e=0;e-1&&c>-1&&d!=c)){d=a.parent?a.getIndex():-1;c=b.parent?b.getIndex():-1}return d>c?1:-1})},param:function(a){a.children=[];a.isEmpty=true;return a},span:function(a){a.attributes["class"]=="Apple-style-span"&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;delete a.attributes.contenteditable}, +style:function(a){var b=a.children[0];if(b&&b.value)b.value=CKEDITOR.tools.trim(b.value);if(!a.attributes.type)a.attributes.type="text/css"},title:function(a){var b=a.children[0];!b&&g(a,b=new CKEDITOR.htmlParser.text);b.value=a.attributes["data-cke-title"]||""},input:h,textarea:h},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||false}}};if(CKEDITOR.env.ie)O.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})}; +var S=/<(a|area|img|input|source)\b([^>]*)>/gi,F=/([\w-]+)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,D=/^(href|src|name)$/i,L=/(?:])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,J=/(])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,w=/([^<]*)<\/cke:encoded>/gi,z=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,t=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,E=/]*?)\/?>(?!\s*<\/cke:\1)/gi})();"use strict"; +CKEDITOR.htmlParser.element=function(a,c){this.name=a;this.attributes=c||{};this.children=[];var b=a||"",f=b.match(/^cke:(.*)/);f&&(b=f[1]);b=!(!CKEDITOR.dtd.$nonBodyContent[b]&&!CKEDITOR.dtd.$block[b]&&!CKEDITOR.dtd.$listItem[b]&&!CKEDITOR.dtd.$tableContent[b]&&!(CKEDITOR.dtd.$nonEditable[b]||b=="br"));this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}}; +CKEDITOR.htmlParser.cssStyle=function(a){var c={};((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,f,d){f=="font-family"&&(d=d.replace(/["']/g,""));c[f.toLowerCase()]=d});return{rules:c,populate:function(a){var c=this.toString();if(c)a instanceof CKEDITOR.dom.element?a.setAttribute("style",c):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=c:a.style=c},toString:function(){var a=[],f; +for(f in c)c[f]&&a.push(f,":",c[f],";");return a.join("")}}}; +(function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&(typeof a=="string"?b.name==a:b.name in a)}}var c=function(a,b){a=a[0];b=b[0];return ab?1:0},b=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:b.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var c=this,g,n,b=c.getFilterContext(b);if(b.off)return true; +if(!c.parent)a.onRoot(b,c);for(;;){g=c.name;if(!(n=a.onElementName(b,g))){this.remove();return false}c.name=n;if(!(c=a.onElement(b,c))){this.remove();return false}if(c!==this){this.replaceWith(c);return false}if(c.name==g)break;if(c.type!=CKEDITOR.NODE_ELEMENT){this.replaceWith(c);return false}if(!c.name){this.replaceWithChildren();return false}}g=c.attributes;var h,i;for(h in g){i=h;for(n=g[h];;)if(i=a.onAttributeName(b,h))if(i!=h){delete g[h];h=i}else break;else{delete g[h];break}i&&((n=a.onAttribute(b, +c,i,n))===false?delete g[i]:g[i]=n)}c.isEmpty||this.filterChildren(a,false,b);return true},filterChildren:b.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var e=this.name,g=[],n=this.attributes,h,i;a.openTag(e,n);for(h in n)g.push([h,n[h]]);a.sortAttributes&&g.sort(c);h=0;for(i=g.length;h0)this.children[a-1].next=null;this.parent.add(c,this.getIndex()+1);return c},addClass:function(a){if(!this.hasClass(a)){var b=this.attributes["class"]||"";this.attributes["class"]=b+(b?" ":"")+ +a}},removeClass:function(a){var b=this.attributes["class"];if(b)(b=CKEDITOR.tools.trim(b.replace(RegExp("(?:\\s+|^)"+a+"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"]},hasClass:function(a){var b=this.attributes["class"];return!b?false:RegExp("(?:^|\\s)"+a+"(?=\\s|$)").test(b)},getFilterContext:function(a){var b=[];a||(a={off:false,nonEditable:false,nestedEditable:false});!a.off&&this.attributes["data-cke-processor"]=="off"&&b.push("off",true);!a.nonEditable&&this.attributes.contenteditable== +"false"?b.push("nonEditable",true):a.nonEditable&&(!a.nestedEditable&&this.attributes.contenteditable=="true")&&b.push("nestedEditable",true);if(b.length)for(var a=CKEDITOR.tools.copy(a),c=0;c'+f.getValue()+"",CKEDITOR.document); +a.insertAfter(f);f.hide();f.$.form&&b._attachToForm()}else b.setData(a.getHtml(),null,true);b.on("loaded",function(){b.fire("uiReady");b.editable(a);b.container=a;b.setData(b.getData(1));b.resetDirty();b.fire("contentDom");b.mode="wysiwyg";b.fire("mode");b.status="ready";b.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,b)},null,null,1E4);b.on("destroy",function(){if(f){b.container.clearCustomData();b.container.remove();f.show()}b.element.clearCustomData();delete b.element});return b}; +CKEDITOR.inlineAll=function(){var a,c,b;for(b in CKEDITOR.dtd.$editable)for(var f=CKEDITOR.document.getElementsByTag(b),d=0,e=f.count();d{voiceLabel}<{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation">{bottomHtml}')); +b=CKEDITOR.dom.element.createFromHtml(f.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:[a.lang.editor,a.name].join(", "),topHtml:h?''+h+"":"",contentId:a.ui.spaceId("contents"),bottomHtml:i?''+i+"":"",outerEl:CKEDITOR.env.ie?"span":"div"}));if(n==CKEDITOR.ELEMENT_MODE_REPLACE){c.hide(); +b.insertAfter(c)}else c.append(b);a.container=b;h&&a.ui.space("top").unselectable();i&&a.ui.space("bottom").unselectable();c=a.config.width;n=a.config.height;c&&b.setStyle("width",CKEDITOR.tools.cssLength(c));n&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(n));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(b,c){return a(b,c,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(b,c,f){return a(b, +c,f,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b",v="",a=f+a.replace(e,function(){return v+f})+v}a=a.replace(/\n/g,"
      ");b||(a=a.replace(RegExp("
      (?=)"),function(a){return d.repeat(a,2)}));a=a.replace(/^ | $/g," ");a=a.replace(/(>|\s) /g,function(a,b){return b+" "}).replace(/ (?=<)/g," ");x(this,"text",a)},insertElement:function(a, +b){b?this.insertElementIntoRange(a,b):this.insertElementIntoSelection(a)},insertElementIntoRange:function(a,b){var c=this.editor,d=c.config.enterMode,e=a.getName(),f=CKEDITOR.dtd.$block[e];if(b.checkReadOnly())return false;b.deleteContents(1);b.startContainer.type==CKEDITOR.NODE_ELEMENT&&b.startContainer.is({tr:1,table:1,tbody:1,thead:1,tfoot:1})&&q(b);var g,h;if(f)for(;(g=b.getCommonAncestor(0,1))&&(h=CKEDITOR.dtd[g.getName()])&&(!h||!h[e]);)if(g.getName()in CKEDITOR.dtd.span)b.splitElement(g);else if(b.checkStartOfBlock()&& +b.checkEndOfBlock()){b.setStartBefore(g);b.collapse(true);g.remove()}else b.splitBlock(d==CKEDITOR.ENTER_DIV?"div":"p",c.editable());b.insertNode(a);return true},insertElementIntoSelection:function(a){g(this);var b=this.editor,c=b.activeEnterMode,b=b.getSelection(),d=b.getRanges()[0],e=a.getName(),e=CKEDITOR.dtd.$block[e];if(this.insertElementIntoRange(a,d)){d.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);if(e)if((e=a.getNext(function(a){return f(a)&&!i(a)}))&&e.type==CKEDITOR.NODE_ELEMENT&&e.is(CKEDITOR.dtd.$block))e.getDtd()["#"]? +d.moveToElementEditStart(e):d.moveToElementEditEnd(a);else if(!e&&c!=CKEDITOR.ENTER_BR){e=d.fixBlock(true,c==CKEDITOR.ENTER_DIV?"div":"p");d.moveToElementEditStart(e)}}b.selectRanges([d]);n(this)},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);if(this.status=="unloaded")this.status="ready";this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable", +!a)},detach:function(){this.removeClass("cke_editable");this.status="detached";var a=this.editor;this._.detach();delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||a.config.ignoreEmptyParagraph!==false&&(b=b.replace(m,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data= +this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&b.type=="Control"||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a, +"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");this.attachClass(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"cke_editable_inline":a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE||a.elementMode==CKEDITOR.ELEMENT_MODE_APPENDTO?"cke_editable_themed":"");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(){this.hasFocus= +false},null,null,-1);this.on("focus",function(){this.hasFocus=true},null,null,-1);a.focusManager.add(this);if(this.equals(CKEDITOR.document.getActive())){this.hasFocus=true;a.once("contentDom",function(){a.focusManager.focus()})}this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var c=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var d=a.config.contentsLangDirection;this.getDirection(1)!= +d&&this.changeAttr("dir",d);var k=CKEDITOR.getCss();if(k){d=c.getHead();if(!d.getCustomData("stylesheet")){k=c.appendStyleText(k);k=new CKEDITOR.dom.element(k.ownerNode||k.owningElement);d.setCustomData("stylesheet",k);k.data("cke-temp",1)}}d=c.getCustomData("stylesheet_ref")||0;c.setCustomData("stylesheet_ref",d+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){var a=a.data,b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a"); +b&&(a.$.button!=2&&b.isReadOnly())&&a.preventDefault()});var l={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return true;var c=b.data.domEvent.getKey(),d;if(c in l){var b=a.getSelection(),f,k=b.getRanges()[0],g=k.startPath(),h,i,m,c=c==8;if(CKEDITOR.env.ie&&CKEDITOR.env.version<11&&(f=b.getSelectedElement())||(f=e(b))){a.fire("saveSnapshot");k.moveToPosition(f,CKEDITOR.POSITION_BEFORE_START);f.remove();k.select();a.fire("saveSnapshot");d=1}else if(k.collapsed)if((h=g.block)&&(m= +h[c?"getPrevious":"getNext"](p))&&m.type==CKEDITOR.NODE_ELEMENT&&m.is("table")&&k[c?"checkStartOfBlock":"checkEndOfBlock"]()){a.fire("saveSnapshot");k[c?"checkEndOfBlock":"checkStartOfBlock"]()&&h.remove();k["moveToElementEdit"+(c?"End":"Start")](m);k.select();a.fire("saveSnapshot");d=1}else if(g.blockLimit&&g.blockLimit.is("td")&&(i=g.blockLimit.getAscendant("table"))&&k.checkBoundaryOfElement(i,c?CKEDITOR.START:CKEDITOR.END)&&(m=i[c?"getPrevious":"getNext"](p))){a.fire("saveSnapshot");k["moveToElementEdit"+ +(c?"End":"Start")](m);k.checkStartOfBlock()&&k.checkEndOfBlock()?m.remove():k.select();a.fire("saveSnapshot");d=1}else if((i=g.contains(["td","th","caption"]))&&k.checkBoundaryOfElement(i,c?CKEDITOR.START:CKEDITOR.END))d=1}return!d});a.blockless&&(CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)&&this.attachListener(this,"keyup",function(b){if(b.data.getKeystroke()in l&&!this.getFirst(f)){this.appendBogus();b=a.createRange();b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START);b.select()}});this.attachListener(this, +"dblclick",function(b){if(a.readOnly)return false;b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,"click",b);CKEDITOR.env.ie||this.attachListener(this,"mousedown",function(b){var c=b.data.getTarget();if(c.is("img","hr","input","textarea","select")&&!c.isReadOnly()){a.getSelection().selectElement(c);c.is("input","textarea","select")&&b.data.preventDefault()}});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(b.data.$.button==2){b= +b.data.getTarget();if(!b.getOuterHtml().replace(m,"")){var c=a.createRange();c.moveToElementEditStart(b);c.select(true)}}});if(CKEDITOR.env.webkit){this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()});this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()})}CKEDITOR.env.webkit&&this.attachListener(a,"key",function(b){b=b.data.domEvent.getKey();if(b in l){var c=b==8,d=a.getSelection().getRanges()[0], +b=d.startPath();if(d.collapsed){var e;a:{var f=b.block;if(f)if(d[c?"checkStartOfBlock":"checkEndOfBlock"]())if(!d.moveToClosestEditablePosition(f,!c)||!d.collapsed)e=false;else{if(d.startContainer.type==CKEDITOR.NODE_ELEMENT){var k=d.startContainer.getChild(d.startOffset-(c?1:0));if(k&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("hr")){a.fire("saveSnapshot");k.remove();e=true;break a}}if((d=d.startPath().block)&&(!d||!d.contains(f))){a.fire("saveSnapshot");var g;(g=(c?d:f).getBogus())&&g.remove();e=a.getSelection(); +g=e.createBookmarks();(c?f:d).moveChildren(c?d:f,false);b.lastElement.mergeSiblings();h(f,d,!c);e.selectBookmarks(g);e=true}}else e=false;else e=false}if(!e)return}else{c=d;e=b.block;g=c.endPath().block;if(!e||!g||e.equals(g))b=false;else{a.fire("saveSnapshot");(f=e.getBogus())&&f.remove();c.deleteContents();if(g.getParent()){g.moveChildren(e,false);b.lastElement.mergeSiblings();h(e,g,true)}c=a.getSelection().getRanges()[0];c.collapse(1);c.select();b=true}if(!b)return}a.getSelection().scrollIntoView(); +a.fire("saveSnapshot");return false}},this,null,100)}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());if(!this.is("textarea")){a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");if(--c)a.setCustomData("stylesheet_ref",c);else{a.removeCustomData("stylesheet_ref");b.removeCustomData("stylesheet").remove()}}}this.editor.fire("contentDomUnload"); +delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;if(arguments.length)b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null);return b};var i=CKEDITOR.dom.walker.bogus(),m=/(^|]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,p=CKEDITOR.dom.walker.whitespaces(true),s=CKEDITOR.dom.walker.bookmark(false,true);CKEDITOR.on("instanceLoaded", +function(b){var c=b.editor;c.on("insertElement",function(a){a=a.data;if(a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))){a.getAttribute("contentEditable")!="false"&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1");a.setAttribute("contentEditable",false)}});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();if(d&&!d.isLocked){d=c.checkDirty();c.fire("lockSnapshot");a(b);c.fire("unlockSnapshot");!d&&c.resetDirty()}}})});CKEDITOR.on("instanceCreated", +function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);c&&a.changeAttr("title",c);var d=b.fire("ariaEditorHelpLabel",{}).label;if(d)if(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents")){var e=CKEDITOR.tools.getNextId(),d=CKEDITOR.dom.element.createFromHtml(''+d+"");c.append(d);a.changeAttr("aria-describedby",e)}}})}); +CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");var x=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,f,j,k,l=[],r=d.range.startContainer;e=d.range.startPath();for(var r=g[r.getName()],h=0,i=c.getChildren(),m=i.count(),n=-1,q=-1,p=0,s=e.contains(g.$list);h-1)l[n].firstNotAllowed=1;if(q>-1)l[q].lastNotAllowed=1;return l}function c(b,d){var e=[],f=b.getChildren(),j=f.count(),k,l=0,r=g[d],h=!b.is(g.$inline)||b.is("br");for(h&&e.push(" ");l ",p.document);p.insertNode(t);p.setStartAfter(t)}E=new CKEDITOR.dom.elementPath(p.startContainer); +m.endPath=y=new CKEDITOR.dom.elementPath(p.endContainer);if(!p.collapsed){var z=y.block||y.blockLimit,I=p.getCommonAncestor();z&&(!z.equals(I)&&!z.contains(I)&&p.checkEndOfBlock())&&m.zombies.push(z);p.deleteContents()}for(;(C=a(p.startContainer)&&p.startContainer.getChild(p.startOffset-1))&&a(C)&&C.isBlockBoundary()&&E.contains(C);)p.moveToPosition(C,CKEDITOR.POSITION_BEFORE_END);e(p,m.blockLimit,E,y);if(t){p.setEndBefore(t);p.collapse();t.remove()}t=p.startPath();if(z=t.contains(d,false,1)){p.splitElement(z); +m.inlineStylesRoot=z;m.inlineStylesPeak=t.lastElement}t=p.createBookmark();(z=t.startNode.getPrevious(f))&&a(z)&&d(z)&&w.push(z);(z=t.startNode.getNext(f))&&a(z)&&d(z)&&w.push(z);for(z=t.startNode;(z=z.getParent())&&d(z);)w.push(z);p.moveToBookmark(t);if(t=q){t=m.range;if(m.type=="text"&&m.inlineStylesRoot){C=m.inlineStylesPeak;p=C.getDocument().createText("{cke-peak}");for(w=m.inlineStylesRoot.getParent();!C.equals(w);){p=p.appendTo(C.clone());C=C.getParent()}q=p.getOuterHtml().split("{cke-peak}").join(q)}C= +m.blockLimit.getName();if(/^\s+|\s+$/.test(q)&&"span"in CKEDITOR.dtd[C])var x=' ',q=x+q+x;q=m.editor.dataProcessor.toHtml(q,{context:null,fixForBody:false,dontFilter:m.dontFilter,filter:m.editor.activeFilter,enterMode:m.editor.activeEnterMode});C=t.document.createElement("body");C.setHtml(q);if(x){C.getFirst().remove();C.getLast().remove()}if((x=t.startPath().block)&&!(x.getChildCount()==1&&x.getBogus()))a:{var G;if(C.getChildCount()==1&&a(G=C.getFirst())&&G.is(r)){x= +G.getElementsByTag("*");t=0;for(w=x.count();t0;else{B=G.startPath();if(!y.isBlock&&m.editor.config.autoParagraph!==false&&(m.editor.activeEnterMode!=CKEDITOR.ENTER_BR&&m.editor.editable().equals(B.blockLimit)&&!B.block)&&(Q=m.editor.activeEnterMode!= +CKEDITOR.ENTER_BR&&m.editor.config.autoParagraph!==false?m.editor.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":false)){Q=x.createElement(Q);Q.appendBogus();G.insertNode(Q);CKEDITOR.env.needsBrFiller&&(K=Q.getBogus())&&K.remove();G.moveToPosition(Q,CKEDITOR.POSITION_BEFORE_END)}if((B=G.startPath().block)&&!B.equals(H)){if(K=B.getBogus()){K.remove();C.push(B)}H=B}y.firstNotAllowed&&(p=1);if(p&&y.isElement){B=G.startContainer;for(M=null;B&&!g[B.getName()][y.name];){if(B.equals(q)){B=null;break}M=B; +B=B.getParent()}if(B){if(M){T=G.splitElement(M);m.zombies.push(T);m.zombies.push(M)}}else{M=q.getName();U=!t;B=t==E.length-1;M=c(y.node,M);for(var N=[],W=M.length,X=0,Z=void 0,$=0,aa=-1;X0;){d=a.getItem(b);if(!CKEDITOR.tools.trim(d.getHtml())){d.appendBogus();CKEDITOR.env.ie&&(CKEDITOR.env.version<9&&d.getChildCount())&&d.getFirst().remove()}}}return function(d){var e=d.startContainer,f=e.getAscendant("table",1),g=false;c(f.getElementsByTag("td"));c(f.getElementsByTag("th"));f=d.clone();f.setStart(e,0);f=a(f).lastBackward();if(!f){f=d.clone();f.setEndAt(e,CKEDITOR.POSITION_BEFORE_END);f=a(f).lastForward();g=true}f|| +(f=e);if(f.is("table")){d.setStartAt(f,CKEDITOR.POSITION_BEFORE_START);d.collapse(true);f.remove()}else{f.is({tbody:1,thead:1,tfoot:1})&&(f=b(f,"tr",g));f.is("tr")&&(f=b(f,f.getParent().is("thead")?"th":"td",g));(e=f.getBogus())&&e.remove();d.moveToPosition(f,g?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END)}}}()})(); +(function(){function a(){var a=this._.fakeSelection,b;if(a){b=this.getSelection(1);if(!b||!b.isHidden()){a.reset();a=0}}if(!a){a=b||this.getSelection(1);if(!a||a.getType()==CKEDITOR.SELECTION_NONE)return}this.fire("selectionCheck",a);b=this.elementPath();if(!b.compare(this._.selectionPreviousPath)){if(CKEDITOR.env.webkit)this._.previousActive=this.document.getActive();this._.selectionPreviousPath=b;this.fire("selectionChange",{selection:a,path:b})}}function c(){s=true;if(!p){b.call(this);p=CKEDITOR.tools.setTimeout(b, +200,this)}}function b(){p=null;if(s){CKEDITOR.tools.setTimeout(a,0,this);s=false}}function f(a){function b(c,d){return!c||c.type==CKEDITOR.NODE_TEXT?false:a.clone()["moveToElementEdit"+(d?"End":"Start")](c)}if(!(a.root instanceof CKEDITOR.editable))return false;var c=a.startContainer,d=a.getPreviousNode(x,null,c),e=a.getNextNode(x,null,c);return b(d)||b(e,1)||!d&&!e&&!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus())?true:false}function d(a){return a.getCustomData("cke-fillingChar")} +function e(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(b!==false){var d,e=a.getDocument().getSelection().getNative(),f=e&&e.type!="None"&&e.getRangeAt(0);if(c.getLength()>1&&f&&f.intersectsNode(c.$)){d=[e.anchorOffset,e.focusOffset];f=e.focusNode==c.$&&e.focusOffset>0;e.anchorNode==c.$&&e.anchorOffset>0&&d[0]--;f&&d[1]--;var h;f=e;if(!f.isCollapsed){h=f.getRangeAt(0);h.setStart(f.anchorNode,f.anchorOffset);h.setEnd(f.focusNode,f.focusOffset);h=h.collapsed}h&&d.unshift(d.pop())}}c.setText(g(c.getText())); +if(d){c=e.getRangeAt(0);c.setStart(c.startContainer,d[0]);c.setEnd(c.startContainer,d[1]);e.removeAllRanges();e.addRange(c)}}}function g(a){return a.replace(/\u200B( )?/g,function(a){return a[1]?" ":""})}function n(a,b,c){var d=a.on("focus",function(a){a.cancel()},null,null,-100);if(CKEDITOR.env.ie)var e=a.getDocument().on("selectionchange",function(a){a.cancel()},null,null,-100);else{var f=new CKEDITOR.dom.range(a);f.moveToElementEditStart(a);var g=a.getDocument().$.createRange();g.setStart(f.startContainer.$, +f.startOffset);g.collapse(1);b.removeAllRanges();b.addRange(g)}c&&a.focus();d.removeListener();e&&e.removeListener()}function h(a){var b=CKEDITOR.dom.element.createFromHtml('
       
      ',a.document);a.fire("lockSnapshot");a.editable().append(b);var c=a.getSelection(1),d=a.createRange(),e=c.root.on("selectionchange",function(a){a.cancel()},null,null,0);d.setStartAt(b,CKEDITOR.POSITION_AFTER_START); +d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);c.selectRanges([d]);e.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=b}function i(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),f=e[0];if(e.length==1&&f.collapsed)if((d=f[d<38?"getPreviousEditableNode":"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&d.getAttribute("contenteditable")=="false"){a.getSelection().fake(d);c.data.preventDefault();c.cancel()}}}} +function m(a){for(var b=0;b=d.getLength()?h.setStartAfter(d):h.setStartBefore(d)); +e&&e.type==CKEDITOR.NODE_TEXT&&(g?h.setEndAfter(e):h.setEndBefore(e));d=new CKEDITOR.dom.walker(h);d.evaluator=function(d){if(d.type==CKEDITOR.NODE_ELEMENT&&d.isReadOnly()){var e=c.clone();c.setEndBefore(d);c.collapsed&&a.splice(b--,1);if(!(d.getPosition(h.endContainer)&CKEDITOR.POSITION_CONTAINS)){e.setStartAfter(d);e.collapsed||a.splice(b+1,0,e)}return true}return false};d.next()}}return a}var p,s,x=CKEDITOR.dom.walker.invisible(1),q=function(){function a(b){return function(a){var c=a.editor.createRange(); +c.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([c]);return false}}function b(a){return function(b){var c=b.editor,d=c.createRange(),e;if(!(e=d.moveToClosestEditablePosition(b.selected,a)))e=d.moveToClosestEditablePosition(b.selected,!a);e&&c.getSelection().selectRanges([d]);c.fire("saveSnapshot");b.selected.remove();if(!e){d.moveToElementEditablePosition(c.editable());c.getSelection().selectRanges([d])}c.fire("saveSnapshot");return false}}var c=a(),d=a(1);return{37:c, +38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(b){function d(){var a=f.getSelection();a&&a.removeAllRanges()}var f=b.editor;f.on("contentDom",function(){var b=f.document,d=CKEDITOR.document,g=f.editable(),k=b.getBody(),l=b.getDocumentElement(),h=g.isInline(),m,n;CKEDITOR.env.gecko&&g.attachListener(g,"focus",function(a){a.removeListener();if(m!==0)if((a=f.getSelection().getNative())&&a.isCollapsed&&a.anchorNode==g.$){a=f.createRange();a.moveToElementEditStart(g);a.select()}}, +null,null,-2);g.attachListener(g,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){m&&CKEDITOR.env.webkit&&(m=f._.previousActive&&f._.previousActive.equals(b.getActive()));f.unlockSelection(m);m=0},null,null,-1);g.attachListener(g,"mousedown",function(){m=0});if(CKEDITOR.env.ie||h){var q=function(){n=new CKEDITOR.dom.selection(f.getSelection());n.lock()};o?g.attachListener(g,"beforedeactivate",q,null,null,-1):g.attachListener(f,"selectionCheck",q,null,null,-1);g.attachListener(g,CKEDITOR.env.webkit? +"DOMFocusOut":"blur",function(){f.lockSelection(n);m=1},null,null,-1);g.attachListener(g,"mousedown",function(){m=0})}if(CKEDITOR.env.ie&&!h){var w;g.attachListener(g,"mousedown",function(a){if(a.data.$.button==2){a=f.document.getSelection();if(!a||a.getType()==CKEDITOR.SELECTION_NONE)w=f.window.getScrollPosition()}});g.attachListener(g,"mouseup",function(a){if(a.data.$.button==2&&w){f.document.$.documentElement.scrollLeft=w.x;f.document.$.documentElement.scrollTop=w.y}w=null});if(b.$.compatMode!= +"BackCompat"){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)l.on("mousedown",function(a){function b(a){a=a.data.$;if(e){var c=k.$.createTextRange();try{c.moveToPoint(a.x,a.y)}catch(d){}e.setEndPoint(g.compareEndPoints("StartToStart",c)<0?"EndToEnd":"StartToStart",c);e.select()}}function c(){l.removeListener("mousemove",b);d.removeListener("mouseup",c);l.removeListener("mouseup",c);e.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y7&&CKEDITOR.env.version<11){l.on("mousedown",function(a){if(a.data.getTarget().is("html")){d.on("mouseup",z);l.on("mouseup",z)}});var z=function(){d.removeListener("mouseup",z);l.removeListener("mouseup",z);var a=CKEDITOR.document.$.selection,c=a.createRange();a.type!="None"&&c.parentElement().ownerDocument==b.$&&c.select()}}}}g.attachListener(g,"selectionchange", +a,f);g.attachListener(g,"keyup",c,f);g.attachListener(g,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){f.forceNextSelectionCheck();f.selectionChange(1)});if(h&&(CKEDITOR.env.webkit||CKEDITOR.env.gecko)){var t;g.attachListener(g,"mousedown",function(){t=1});g.attachListener(b.getDocumentElement(),"mouseup",function(){t&&c.call(f);t=0})}else g.attachListener(CKEDITOR.env.ie?g:b.getDocumentElement(),"mouseup",c,f);CKEDITOR.env.webkit&&g.attachListener(b,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:e(g)}}, +null,null,-1);g.attachListener(g,"keydown",i(f),null,null,-1)});f.on("setData",function(){f.unlockSelection();CKEDITOR.env.webkit&&d()});f.on("contentDomUnload",function(){f.unlockSelection()});if(CKEDITOR.env.ie9Compat)f.on("beforeDestroy",d,null,null,9);f.on("dataReady",function(){delete f._.fakeSelection;delete f._.hiddenSelectionContainer;f.selectionChange(1)});f.on("loadSnapshot",function(){var a=f.editable().getLast(function(a){return a.type==CKEDITOR.NODE_ELEMENT});a&&a.hasAttribute("data-cke-hidden-sel")&& +a.remove()},null,null,100);f.on("key",function(a){if(f.mode=="wysiwyg"){var b=f.getSelection();if(b.isFake){var c=q[a.data.keyCode];if(c)return c({editor:f,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});CKEDITOR.on("instanceReady",function(a){var b=a.editor;if(CKEDITOR.env.webkit){b.on("selectionChange",function(){var a=b.editable(),c=d(a);c&&(c.getCustomData("ready")?e(a):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){e(b.editable())},null,null,-1);var c, +f,a=function(){var a=b.editable();if(a)if(a=d(a)){var e=b.document.$.defaultView.getSelection();e.type=="Caret"&&e.anchorNode==a.$&&(f=1);c=a.getText();a.setText(g(c))}},h=function(){var a=b.editable();if(a)if(a=d(a)){a.setText(c);if(f){b.document.$.defaultView.getSelection().setPosition(a.$,a.getLength());f=0}}};b.on("beforeUndoImage",a);b.on("afterUndoImage",h);b.on("beforeGetData",a,null,null,0);b.on("getData",h)}});CKEDITOR.editor.prototype.selectionChange=function(b){(b?a:c).call(this)};CKEDITOR.editor.prototype.getSelection= +function(a){if((this._.savedSelection||this._.fakeSelection)&&!a)return this._.savedSelection||this._.fakeSelection;return(a=this.editable())&&this.mode=="wysiwyg"?new CKEDITOR.dom.selection(a):null};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){!a.isLocked&&a.lock();this._.savedSelection=a;return true}return false};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;if(b){b.unlock(a);delete this._.savedSelection; +return true}return false};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var o= +typeof window.getSelection!="function",u=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection)var b=a,a=a.root;var c=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:u++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=a=c?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(b){CKEDITOR.tools.extend(this._.cache,b._.cache);this.isFake=b.isFake;this.isLocked=b.isLocked;return this}b=o?this.document.$.selection:this.document.getWindow().$.getSelection(); +if(CKEDITOR.env.webkit)(b.type=="None"&&this.document.getActive().equals(a)||b.type=="Caret"&&b.anchorNode.nodeType==CKEDITOR.NODE_DOCUMENT)&&n(a,b);else if(CKEDITOR.env.gecko)b&&(this.document.getActive().equals(a)&&b.anchorNode&&b.anchorNode.nodeType==CKEDITOR.NODE_DOCUMENT)&&n(a,b,true);else if(CKEDITOR.env.ie){var d;try{d=this.document.getActive()}catch(e){}if(o)b.type=="None"&&(d&&d.equals(this.document.getDocumentElement()))&&n(a,null,true);else{(b=b&&b.anchorNode)&&(b=new CKEDITOR.dom.node(b)); +d&&(d.equals(this.document.getDocumentElement())&&b&&(a.equals(b)||a.contains(b)))&&n(a,null,true)}}d=this.getNative();var f,g;if(d)if(d.getRangeAt)f=(g=d.rangeCount&&d.getRangeAt(0))&&new CKEDITOR.dom.node(g.commonAncestorContainer);else{try{g=d.createRange()}catch(h){}f=g&&CKEDITOR.dom.element.get(g.item&&g.item(0)||g.parentElement())}if(!f||!(f.type==CKEDITOR.NODE_ELEMENT||f.type==CKEDITOR.NODE_TEXT)||!this.root.equals(f)&&!this.root.contains(f)){this._.cache.type=CKEDITOR.SELECTION_NONE;this._.cache.startElement= +null;this._.cache.selectedElement=null;this._.cache.selectedText="";this._.cache.ranges=new CKEDITOR.dom.rangeList}return this};var A={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.dom.selection.prototype={getNative:function(){return this._.cache.nativeSel!==void 0?this._.cache.nativeSel:this._.cache.nativeSel=o?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:o?function(){var a= +this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;if(d=="Text")b=CKEDITOR.SELECTION_TEXT;if(d=="Control")b=CKEDITOR.SELECTION_ELEMENT;if(c.createRange().parentElement())b=CKEDITOR.SELECTION_TEXT}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(c.rangeCount==1){var c=c.getRangeAt(0),d=c.startContainer;if(d==c.endContainer&& +d.nodeType==1&&c.endOffset-c.startOffset==1&&A[d.childNodes[c.startOffset].nodeName.toLowerCase()])b=CKEDITOR.SELECTION_ELEMENT}return a.type=b},getRanges:function(){var a=o?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e=d.children,f,g,k=b.duplicate(),j=0,h=e.length-1,w=-1,i,t;j<=h;){w=Math.floor((j+h)/2);f=e[w];k.moveToElementText(f);i=k.compareEndPoints("StartToStart", +b);if(i>0)h=w-1;else if(i<0)j=w+1;else return{container:d,offset:a(f)}}if(w==-1||w==e.length-1&&i<0){k.moveToElementText(d);k.setEndPoint("StartToStart",b);k=k.text.replace(/(\r\n|\r)/g,"\n").length;e=d.childNodes;if(!k){f=e[e.length-1];return f.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:e.length}:{container:f,offset:f.nodeValue.length}}for(d=e.length;k>0&&d>0;){g=e[--d];if(g.nodeType==CKEDITOR.NODE_TEXT){t=g;k=k-g.nodeValue.length}}return{container:t,offset:-k}}k.collapse(i>0?true:false);k.setEndPoint(i> +0?"StartToStart":"EndToStart",b);k=k.text.replace(/(\r\n|\r)/g,"\n").length;if(!k)return{container:d,offset:a(f)+(i>0?0:1)};for(;k>0;)try{g=f[i>0?"previousSibling":"nextSibling"];if(g.nodeType==CKEDITOR.NODE_TEXT){k=k-g.nodeValue.length;t=g}f=g}catch(m){return{container:d,offset:a(f)}}return{container:t,offset:i>0?-k:t.nodeValue.length+k}};return function(){var a=this.getNative(),c=a&&a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT){a=new CKEDITOR.dom.range(this.root); +d=b(c,true);a.setStart(new CKEDITOR.dom.node(d.container),d.offset);d=b(c);a.setEnd(new CKEDITOR.dom.node(d.container),d.offset);a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse();return[a]}if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e1){h=a[a.length-1];a[0].setEnd(h.endContainer,h.endOffset)}h=a[0];var a=h.collapsed,n,q,p;if((c=h.getEnclosedNode())&&c.type==CKEDITOR.NODE_ELEMENT&&c.getName()in A&&(!c.is("a")||!c.getText()))try{p=c.$.createControlRange();p.addElement(c.$);p.select();return}catch(s){}if(h.startContainer.type==CKEDITOR.NODE_ELEMENT&&h.startContainer.getName()in b||h.endContainer.type==CKEDITOR.NODE_ELEMENT&&h.endContainer.getName()in b){h.shrink(CKEDITOR.NODE_ELEMENT,true);a=h.collapsed}p=h.createBookmark(); +b=p.startNode;if(!a)g=p.endNode;p=h.document.$.body.createTextRange();p.moveToElementText(b.$);p.moveStart("character",1);if(g){i=h.document.$.body.createTextRange();i.moveToElementText(g.$);p.setEndPoint("EndToEnd",i);p.moveEnd("character",-1)}else{n=b.getNext(m);q=b.hasAscendant("pre");n=!(n&&n.getText&&n.getText().match(i))&&(q||!b.hasPrevious()||b.getPrevious().is&&b.getPrevious().is("br"));q=h.document.createElement("span");q.setHtml("");q.insertBefore(b);n&&h.document.createText("").insertBefore(b)}h.setStartBefore(b); +b.remove();if(a){if(n){p.moveStart("character",-1);p.select();h.document.$.selection.clear()}else p.select();h.moveToPosition(q,CKEDITOR.POSITION_BEFORE_START);q.remove()}else{h.setEndBefore(g);g.remove();p.select()}}else{g=this.getNative();if(!g)return;this.removeAllRanges();for(p=0;p=0){h.collapse(1);q.setEnd(h.endContainer.$,h.endOffset)}else throw w;}g.addRange(q)}}this.reset();this.root.fire("selectionchange")}}},fake:function(a){var b=this.root.editor;this.reset();h(b);var c=this._.cache,d=new CKEDITOR.dom.range(this.root);d.setStartBefore(a);d.setEndAfter(a);c.ranges=new CKEDITOR.dom.rangeList(d);c.selectedElement=c.startElement=a;c.type=CKEDITOR.SELECTION_ELEMENT; +c.selectedText=c.nativeSel=null;this.isFake=1;this.rev=u++;b._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a},createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(a){for(var b= +[],c=0;c]*>)[ \t\r\n]*/gi,"$1");f=f.replace(/([ \t\n\r]+| )/g, +" ");f=f.replace(/]*>/gi,"\n");if(CKEDITOR.env.ie){var g=a.getDocument().createElement("div");g.append(e);e.$.outerHTML="
      "+f+"
      ";e.copyAttributes(g.getFirst());e=g.getFirst().remove()}else e.setHtml(f);b=e}else f?b=p(c?[a.getHtml()]:i(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,h;if((h=c.getPrevious(D))&&h.type==CKEDITOR.NODE_ELEMENT&&h.is("pre")){d=m(h.getHtml(),/\n$/,"")+"\n\n"+m(c.getHtml(),/^\n/,"");CKEDITOR.env.ie?c.$.outerHTML="
      "+d+"
      ":c.setHtml(d);h.remove()}}else c&& +o(b)}function i(a){a.getName();var b=[];m(a.getOuterHtml(),/(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"
      "+c+"
      "}).replace(/([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function m(a,b,c){var d="",e="",a=a.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function p(a,b){var c;a.length>1&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));
      +for(var d=0;d"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat(" ",a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e);c.append(f)}else b.setHtml(e)}return c||b}function s(a,b){var c=this._.definition,
      +d=c.attributes,c=c.styles,e=l(this)[a.getName()],f=CKEDITOR.tools.isEmpty(d)&&CKEDITOR.tools.isEmpty(c),g;for(g in d)if(!((g=="class"||this._.definition.fullMatch)&&a.getAttribute(g)!=j(g,d[g]))&&!(b&&g.slice(0,5)=="data-")){f=a.hasAttribute(g);a.removeAttribute(g)}for(var h in c)if(!(this._.definition.fullMatch&&a.getStyle(h)!=j(h,c[h],true))){f=f||!!a.getStyle(h);a.removeStyle(h)}q(a,e,I[a.getName()]);f&&(this._.definition.alwaysRemoveElement?o(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==
      +CKEDITOR.ENTER_BR&&!a.hasAttributes()?o(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function x(a){for(var b=l(this),c=a.getElementsByTag(this.element),d,e=c.count();--e>=0;){d=c.getItem(e);d.isReadOnly()||s.call(this,d,true)}for(var f in b)if(f!=this.element){c=a.getElementsByTag(f);for(e=c.count()-1;e>=0;e--){d=c.getItem(e);d.isReadOnly()||q(d,b[f])}}}function q(a,b,c){if(b=b&&b.attributes)for(var d=0;d",a||b.name,"");return c.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||"",
      +d="";c.length&&(c=c.replace(O,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(O,";");f=="inherit"?d=d+g:c=c+g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,true));return a._ST=c+d};CKEDITOR.style.customHandlers={};CKEDITOR.style.addCustomHandler=function(a){var b=function(a){this._={definition:a};this.setup&&this.setup(a)};b.prototype=CKEDITOR.tools.extend(CKEDITOR.tools.prototypedCopy(CKEDITOR.style.prototype),{assignedTo:CKEDITOR.STYLE_OBJECT},a,true);return this.customHandlers[a.type]=b};
      +var L=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,J=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();CKEDITOR.styleCommand=function(a,c){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,c,true)};CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)};
      +CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);CKEDITOR.loadStylesSet=function(a,c,b){CKEDITOR.stylesSet.addExternal(a,c,"");CKEDITOR.stylesSet.load(a,b)};
      +CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{attachStyleStateChange:function(a,c){var b=this._.styleStateChangeCallbacks;if(!b){b=this._.styleStateChangeCallbacks=[];this.on("selectionChange",function(a){for(var c=0;c"}});"use strict";
      +(function(){var a={},c={},b;for(b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list||(a[b]=1);for(b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit||b in CKEDITOR.dtd.$empty||(c[b]=1);CKEDITOR.dom.elementPath=function(b,d){var e=null,g=null,n=[],h=b,i,d=d||b.getDocument().getBody();do if(h.type==CKEDITOR.NODE_ELEMENT){n.push(h);if(!this.lastElement){this.lastElement=h;if(h.is(CKEDITOR.dtd.$object)||h.getAttribute("contenteditable")=="false")continue}if(h.equals(d))break;if(!g){i=h.getName();
      +h.getAttribute("contenteditable")=="true"?g=h:!e&&c[i]&&(e=h);if(a[i]){var m;if(m=!e){if(i=i=="div"){a:{i=h.getChildren();m=0;for(var p=i.count();m-1}:typeof a=="function"?f=a:typeof a=="object"&&(f=
      +function(b){return b.getName()in a});var d=this.elements,e=d.length;c&&e--;if(b){d=Array.prototype.slice.call(d,0);d.reverse()}for(c=0;c=f){e=d.createText("");e.insertAfter(this)}else{a=d.createText("");a.insertAfter(e);a.remove()}return e},substring:function(a,
      +c){return typeof c!="number"?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,c)}});
      +(function(){function a(a,c,d){var e=a.serializable,g=c[d?"endContainer":"startContainer"],n=d?"endOffset":"startOffset",h=e?c.document.getById(a.startNode):a.startNode,a=e?c.document.getById(a.endNode):a.endNode;if(g.equals(h.getPrevious())){c.startOffset=c.startOffset-g.getLength()-a.getPrevious().getLength();g=a.getNext()}else if(g.equals(a.getPrevious())){c.startOffset=c.startOffset-g.getLength();g=a.getNext()}g.equals(h.getParent())&&c[n]++;g.equals(a.getParent())&&c[n]++;c[d?"endContainer":"startContainer"]=
      +g;return c}CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,c)};var c={createIterator:function(){var a=this,c=CKEDITOR.dom.walker.bookmark(),d=[],e;return{getNextRange:function(g){e=e==void 0?0:e+1;var n=a[e];if(n&&a.length>1){if(!e)for(var h=a.length-1;h>=0;h--)d.unshift(a[h].createBookmark(true));if(g)for(var i=0;a[e+i+1];){for(var m=n.document,g=0,h=m.getById(d[i].endNode),m=m.getById(d[i+
      +1].startNode);;){h=h.getNextSourceNode(false);if(m.equals(h))g=1;else if(c(h)||h.type==CKEDITOR.NODE_ELEMENT&&h.isBlockBoundary())continue;break}if(!g)break;i++}for(n.moveToBookmark(d.shift());i--;){h=a[++e];h.moveToBookmark(d.shift());n.setEnd(h.endContainer,h.endOffset)}}return n}}},createBookmarks:function(b){for(var c=[],d,e=0;eb?-1:1}),e=0,f;e',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{var c=a.getComputedStyle("border-top-color"),b=a.getComputedStyle("border-right-color");CKEDITOR.env.hc=!!(c&&c==b)}catch(f){CKEDITOR.env.hc=false}a.remove()}if(CKEDITOR.env.hc)CKEDITOR.env.cssClass=CKEDITOR.env.cssClass+" cke_hc";
      +CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending){delete CKEDITOR._.pending;for(c=0;cc;c++){var f=a,h=c,d;d=parseInt(a[c],16);d=("0"+(0>e?0|d*(1+e):0|d+(255-d)*e).toString(16)).slice(-2);f[h]=d}return"#"+a.join("")}}(),c=function(){var b=new CKEDITOR.template("background:#{to};background-image:-webkit-gradient(linear,lefttop,leftbottom,from({from}),to({to}));background-image:-moz-linear-gradient(top,{from},{to});background-image:-webkit-linear-gradient(top,{from},{to});background-image:-o-linear-gradient(top,{from},{to});background-image:-ms-linear-gradient(top,{from},{to});background-image:linear-gradient(top,{from},{to});filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='{from}',endColorstr='{to}');");return function(c,
      +a){return b.output({from:c,to:a})}}(),f={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ {defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_bottom [{defaultGradient}border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [{defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [{defaultGradient}outline-color:{defaultBorder};border-top-color:{defaultBorder};] {id} .cke_dialog_tab [{lightGradient}border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [{mediumGradient}] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} .cke_toolgroup [{lightGradient}border-color:{defaultBorder};] {id} a.cke_button_off:hover, {id} a.cke_button_off:focus, {id} a.cke_button_off:active [{mediumGradient}] {id} .cke_button_on [{ckeButtonOn}] {id} .cke_toolbar_separator [background-color: {ckeToolbarSeparator};] {id} .cke_combo_button [border-color:{defaultBorder};{lightGradient}] {id} a.cke_combo_button:hover, {id} a.cke_combo_button:focus, {id} .cke_combo_on a.cke_combo_button [border-color:{defaultBorder};{mediumGradient}] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover, {id} a.cke_path_item:focus, {id} a.cke_path_item:active [background-color:{elementsPathBg};] {id}.cke_panel [border-color:{defaultBorder};] "),
      +panel:new CKEDITOR.template(".cke_panel_grouptitle [{lightGradient}border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")};
      +return function(g,e){var a=g.uiColor,a={id:"."+g.id,defaultBorder:b(a,-0.1),defaultGradient:c(b(a,0.9),a),lightGradient:c(b(a,1),b(a,0.7)),mediumGradient:c(b(a,0.8),b(a,0.5)),ckeButtonOn:c(b(a,0.6),b(a,0.7)),ckeResizer:b(a,-0.4),ckeToolbarSeparator:b(a,0.5),ckeColorauto:b(a,0.8),dialogBody:b(a,0.7),dialogTabSelected:c("#FFFFFF","#FFFFFF"),dialogTabSelectedBorder:"#FFF",elementsPathColor:b(a,-0.6),elementsPathBg:a,menubuttonIcon:b(a,0.5),menubuttonIconHover:b(a,0.3)};return f[e].output(a).replace(/\[/g,
      +"{").replace(/\]/g,"}")}}();CKEDITOR.plugins.add("dialogui",{onLoad:function(){var h=function(b){this._||(this._={});this._["default"]=this._.initValue=b["default"]||"";this._.required=b.required||!1;for(var a=[this._],d=1;darguments.length)){var c=h.call(this,a);c.labelId=CKEDITOR.tools.getNextId()+"_label";this._.children=[];var e={role:a.role||"presentation"};a.includeLabel&&(e["aria-labelledby"]=c.labelId);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"div",null,
      +e,function(){var e=[],g=a.required?" cke_required":"";if(a.labelLayout!="horizontal")e.push('",'");else{g={type:"hbox",widths:a.widths,padding:0,children:[{type:"html",html:'