Compare commits
No commits in common. "main" and "master" have entirely different histories.
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v8.5 (2)">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="owner.project.facets" value="jst.web"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
|
</classpath>
|
||||||
|
|
@ -1,6 +1,59 @@
|
||||||
|
/target
|
||||||
|
.DS_Store
|
||||||
|
._.DS_Store
|
||||||
|
**/.DS_Store
|
||||||
|
**/._.DS_Store
|
||||||
|
|
||||||
|
|
||||||
|
HELP.md
|
||||||
|
.gradle
|
||||||
|
build/
|
||||||
|
!gradle/wrapper/gradle-wrapper.jar
|
||||||
|
!**/src/main/**/build/
|
||||||
|
!**/src/test/**/build/
|
||||||
|
|
||||||
|
### STS ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
bin/
|
||||||
|
!**/src/main/**/bin/
|
||||||
|
!**/src/test/**/bin/
|
||||||
|
|
||||||
|
### IntelliJ IDEA ###
|
||||||
|
.idea
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
out/
|
||||||
|
!**/src/main/**/out/
|
||||||
|
!**/src/test/**/out/
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
|
||||||
|
|
||||||
|
# Scala IDE specific (Scala & Java development for Eclipse)
|
||||||
|
.cache-main
|
||||||
|
.scala_dependencies
|
||||||
|
.worksheet
|
||||||
|
|
||||||
|
# Uncomment this line if you wish to ignore the project description file.
|
||||||
|
# Typically, this file would be tracked if it contains build/dependency configurations:
|
||||||
|
#.project
|
||||||
|
|
||||||
|
.svn
|
||||||
|
|
||||||
# ---> Java
|
# ---> Java
|
||||||
# Compiled class file
|
# Compiled class file
|
||||||
*.class
|
#*.class
|
||||||
|
|
||||||
# Log file
|
# Log file
|
||||||
*.log
|
*.log
|
||||||
|
|
@ -12,7 +65,6 @@
|
||||||
.mtj.tmp/
|
.mtj.tmp/
|
||||||
|
|
||||||
# Package Files #
|
# Package Files #
|
||||||
*.jar
|
|
||||||
*.war
|
*.war
|
||||||
*.nar
|
*.nar
|
||||||
*.ear
|
*.ear
|
||||||
|
|
@ -24,3 +76,10 @@
|
||||||
hs_err_pid*
|
hs_err_pid*
|
||||||
replay_pid*
|
replay_pid*
|
||||||
|
|
||||||
|
|
||||||
|
### VS Code ###
|
||||||
|
.vscode/
|
||||||
|
.vs/
|
||||||
|
|
||||||
|
|
||||||
|
# Added by thkim
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>sgis</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.wst.common.project.facet.core.builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.springframework.ide.eclipse.core.springbuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
|
||||||
|
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
|
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.springframework.ide.eclipse.core.springnature</nature>
|
||||||
|
<nature>egovframework.dev.imp.ide.natures.egovnature</nature>
|
||||||
|
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" path="src/main/webapp"/>
|
||||||
|
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="target/m2e-wtp/web-resources"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="hide" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
|
||||||
|
<classpathentry kind="output" path=""/>
|
||||||
|
</classpath>
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
encoding//src/main/java=UTF-8
|
||||||
|
encoding//src/test/java=UTF-8
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.8
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||||
|
<wb-module deploy-name="sht_webapp">
|
||||||
|
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||||
|
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||||
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||||
|
<property name="java-output-path" value="/sgis/build/classes"/>
|
||||||
|
<property name="context-root" value="sht_webapp"/>
|
||||||
|
</wb-module>
|
||||||
|
</project-modules>
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
<root>
|
||||||
|
<facet id="jst.jsf">
|
||||||
|
<node name="libprov">
|
||||||
|
<attribute name="provider-id" value="jsf-no-op-library-provider"/>
|
||||||
|
</node>
|
||||||
|
</facet>
|
||||||
|
<facet id="jst.jaxrs">
|
||||||
|
<node name="libprov">
|
||||||
|
<attribute name="provider-id" value="jaxrs-no-op-library-provider"/>
|
||||||
|
</node>
|
||||||
|
</facet>
|
||||||
|
</root>
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<faceted-project>
|
||||||
|
<runtime name="Apache Tomcat v8.5 (2)"/>
|
||||||
|
<fixed facet="wst.jsdt.web"/>
|
||||||
|
<installed facet="java" version="1.8"/>
|
||||||
|
<installed facet="wst.jsdt.web" version="1.0"/>
|
||||||
|
<installed facet="jst.jsf" version="2.2"/>
|
||||||
|
<installed facet="jst.jaxrs" version="2.0"/>
|
||||||
|
<installed facet="jst.web" version="3.1"/>
|
||||||
|
</faceted-project>
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.wst.jsdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Window
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
disabled=06target
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<beansProjectDescription>
|
||||||
|
<version>1</version>
|
||||||
|
<pluginVersion><![CDATA[3.9.5.201807030714-RELEASE]]></pluginVersion>
|
||||||
|
<configSuffixes>
|
||||||
|
<configSuffix><![CDATA[xml]]></configSuffix>
|
||||||
|
</configSuffixes>
|
||||||
|
<enableImports><![CDATA[false]]></enableImports>
|
||||||
|
<configs>
|
||||||
|
<config>src/main/resources/egovframework/spring/com/context-mapper.xml</config>
|
||||||
|
</configs>
|
||||||
|
<autoconfigs>
|
||||||
|
<config>src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml</config>
|
||||||
|
<config>src/main/resources/egovframework/spring/com/context-properties.xml</config>
|
||||||
|
<config>src/main/webapp/WEB-INF/config/egovframework/springmvc/tiles-servlet.xml</config>
|
||||||
|
<config>src/main/resources/egovframework/spring/com/context-aspect.xml</config>
|
||||||
|
<config>src/main/resources/egovframework/spring/com/context-datasource.xml</config>
|
||||||
|
<config>src/main/resources/egovframework/spring/com/context-idgen.xml</config>
|
||||||
|
<config>src/main/resources/egovframework/spring/com/context-common.xml</config>
|
||||||
|
<config>src/main/resources/egovframework/spring/com/context-transaction.xml</config>
|
||||||
|
</autoconfigs>
|
||||||
|
<configSets>
|
||||||
|
</configSets>
|
||||||
|
</beansProjectDescription>
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
-- 아래순서로 테이블생성 및 기초데이터 입력
|
||||||
|
|
||||||
|
-- ID Generation
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('BBS_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('FILE_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('SAMPLE',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('SCHDUL_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('TMPLAT_ID',1);
|
||||||
|
|
||||||
|
|
||||||
|
-- 분류코드
|
||||||
|
insert into LETTCCMMNCLCODE(CL_CODE,CL_CODE_NM,CL_CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('LET','전자정부 프레임워크 경량환경 템플릿','전자정부 프레임워크 경량환경 템플릿','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
-- 공통코드
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','등록구분','게시판, 커뮤니티, 동호회 등록구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','업무구분','업무구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','게시판유형','게시판유형구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','템플릿유형','템플릿유형구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','게시판속성','게시판 속성','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','일정중요도','일정중요도 낮음/보통/높음 상태구분','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','일정구분','일정구분 코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','반복구분','일정 반복구분 코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
-- 공통상세코드
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC01','단일 게시판 이용등록','단일 게시판 이용등록','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC07','게시판사용자등록','게시판사용자등록','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','BBS','게시판','게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST01','일반게시판','일반게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST02','익명게시판','익명게시판','N',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST03','공지게시판','공지게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','TMPT01','게시판템플릿','게시판템플릿','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA01','유효게시판','유효게시판','N',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA02','갤러리','갤러리','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA03','일반게시판','일반게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','A','높음','높음','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','B','보통','보통','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','C','낮음','낮음','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','1','회의','회의','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','2','세미나','세미나','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','3','강의','강의','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','4','교육','교육','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','5','기타','기타','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','1','당일','당일','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','2','반복','반복','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','3','연속','연속','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','4','요일반복','요일반복','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
-- 조직정보
|
||||||
|
insert into LETTNORGNZTINFO(ORGNZT_ID,ORGNZT_NM,ORGNZT_DC) values ('ORGNZT_0000000000000','기본조직','기본조직');
|
||||||
|
|
||||||
|
|
||||||
|
-- 그룹정보
|
||||||
|
insert into LETTNAUTHORGROUPINFO(GROUP_ID,GROUP_NM,GROUP_CREAT_DE,GROUP_DC) values ('GROUP_00000000000000','기본 그룹입니다',SYSDATE,'기본 그룹');
|
||||||
|
|
||||||
|
-- 사용자정보
|
||||||
|
insert into LETTNEMPLYRINFO(EMPLYR_ID,ORGNZT_ID,USER_NM,PASSWORD,EMPL_NO,IHIDNUM,SEXDSTN_CODE,BRTHDY,FXNUM,HOUSE_ADRES,PASSWORD_HINT,PASSWORD_CNSR,HOUSE_END_TELNO,AREA_NO,DETAIL_ADRES,ZIP,OFFM_TELNO,MBTLNUM,EMAIL_ADRES,OFCPS_NM,HOUSE_MIDDLE_TELNO,GROUP_ID,PSTINST_CODE,EMPLYR_STTUS_CODE,ESNTL_ID,CRTFC_DN_VALUE,SBSCRB_DE) values ('admin','ORGNZT_0000000000000','관리자','JfQ7FIatlaE5jj7rPYO8QBABX8yb7bNbQy4AKY1QIfc=','','','F','','','관리자 주소','P01','123','','','','','','','','','','GROUP_00000000000000','00000000','P','USRCNFRM_00000000000','',SYSDATE);
|
||||||
|
|
||||||
|
-- 게시판템플릿
|
||||||
|
insert into LETTNTMPLATINFO(TMPLAT_ID,TMPLAT_NM,TMPLAT_COURS,USE_AT,TMPLAT_SE_CODE,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('TMPLAT_BOARD_DEFAULT','게시판 기본템플릿','/css/egovframework/cop/bbs/egovbbsTemplate.css','Y','TMPT01','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
|
||||||
|
|
||||||
|
-- 게시판마스터
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_AAAAAAAAAAAA','공지사항','공지사항게시판','BBST03','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_BBBBBBBBBBBB','갤러리','갤러리게시판','BBST01','BBSA02','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_CCCCCCCCCCCC','자료실','자료실게시판','BBST01','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
|
||||||
|
|
||||||
|
-- 게시판사용
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_AAAAAAAAAAAA','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_BBBBBBBBBBBB','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_CCCCCCCCCCCC','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
|
||||||
|
-- 게시물
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (1,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지1','홈페이지 샘플공지1','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (2,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지2','홈페이지 샘플공지2','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (3,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지3','홈페이지 샘플공지3','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (4,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지4','홈페이지 샘플공지4','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (5,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지5','홈페이지 샘플공지5','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (6,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시1','홈페이지 샘플게시1','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (7,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시2','홈페이지 샘플게시2','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (8,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시3','홈페이지 샘플게시3','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (9,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시4','홈페이지 샘플게시4','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (10,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시5','홈페이지 샘플게시5','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
-- 아래순서로 테이블생성 및 기초데이터 입력
|
||||||
|
|
||||||
|
-- ID Generation
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('BBS_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('FILE_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('SCHDUL_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('TMPLAT_ID',1);
|
||||||
|
|
||||||
|
|
||||||
|
-- 분류코드
|
||||||
|
insert into LETTCCMMNCLCODE(CL_CODE,CL_CODE_NM,CL_CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('LET','전자정부 프레임워크 경량환경 템플릿','전자정부 프레임워크 경량환경 템플릿','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
|
||||||
|
-- 공통코드
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','등록구분','게시판, 커뮤니티, 동호회 등록구분코드','Y','LET',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','업무구분','업무구분코드','Y','LET',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','게시판유형','게시판유형구분코드','Y','LET',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','템플릿유형','템플릿유형구분코드','Y','LET',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','게시판속성','게시판 속성','Y','LET',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','일정중요도','일정중요도 낮음/보통/높음 상태구분','Y','LET',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','일정구분','일정구분 코드','Y','LET',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','반복구분','일정 반복구분 코드','Y','LET',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
-- 공통상세코드
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC01','단일 게시판 이용등록','단일 게시판 이용등록','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC07','게시판사용자등록','게시판사용자등록','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','BBS','게시판','게시판','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST01','일반게시판','일반게시판','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST02','익명게시판','익명게시판','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST03','공지게시판','공지게시판','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','TMPT01','게시판템플릿','게시판템플릿','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA01','유효게시판','유효게시판','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA02','갤러리','갤러리','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA03','일반게시판','일반게시판','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','A','높음','높음','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','B','보통','보통','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','C','낮음','낮음','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','1','회의','회의','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','2','세미나','세미나','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','3','강의','강의','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','4','교육','교육','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','5','기타','기타','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','1','당일','당일','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','2','반복','반복','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','3','연속','연속','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','4','요일반복','요일반복','Y',SYSDATETIME,'SYSTEM',SYSDATETIME,'SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
-- 조직정보
|
||||||
|
insert into LETTNORGNZTINFO(ORGNZT_ID,ORGNZT_NM,ORGNZT_DC) values ('ORGNZT_0000000000000','기본조직','기본조직');
|
||||||
|
|
||||||
|
|
||||||
|
-- 그룹정보
|
||||||
|
insert into LETTNAUTHORGROUPINFO(GROUP_ID,GROUP_NM,GROUP_CREAT_DE,GROUP_DC) values ('GROUP_00000000000000','기본 그룹입니다',SYSDATETIME,'기본 그룹');
|
||||||
|
|
||||||
|
-- 사용자정보
|
||||||
|
insert into LETTNEMPLYRINFO(EMPLYR_ID,ORGNZT_ID,USER_NM,PASSWORD,EMPL_NO,IHIDNUM,SEXDSTN_CODE,BRTHDY,FXNUM,HOUSE_ADRES,PASSWORD_HINT,PASSWORD_CNSR,HOUSE_END_TELNO,AREA_NO,DETAIL_ADRES,ZIP,OFFM_TELNO,MBTLNUM,EMAIL_ADRES,OFCPS_NM,HOUSE_MIDDLE_TELNO,GROUP_ID,PSTINST_CODE,EMPLYR_STTUS_CODE,ESNTL_ID,CRTFC_DN_VALUE,SBSCRB_DE) values ('admin','ORGNZT_0000000000000','관리자','JfQ7FIatlaE5jj7rPYO8QBABX8yb7bNbQy4AKY1QIfc=','','','F','','','관리자 주소','P01','123','','','','','','','','','','GROUP_00000000000000','00000000','P','USRCNFRM_00000000000','',SYSDATETIME);
|
||||||
|
|
||||||
|
-- 게시판템플릿
|
||||||
|
insert into LETTNTMPLATINFO(TMPLAT_ID,TMPLAT_NM,TMPLAT_COURS,USE_AT,TMPLAT_SE_CODE,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('TMPLAT_BOARD_DEFAULT','게시판 기본템플릿','/css/egovframework/cop/bbs/egovbbsTemplate.css','Y','TMPT01','USRCNFRM_00000000000',SYSDATETIME,'USRCNFRM_00000000000',SYSDATETIME);
|
||||||
|
|
||||||
|
|
||||||
|
-- 게시판마스터
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_AAAAAAAAAAAA','공지사항','공지사항게시판','BBST03','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATETIME,'USRCNFRM_00000000000',SYSDATETIME);
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_BBBBBBBBBBBB','갤러리','갤러리게시판','BBST01','BBSA02','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATETIME,'USRCNFRM_00000000000',SYSDATETIME);
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_CCCCCCCCCCCC','자료실','자료실게시판','BBST01','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATETIME,'USRCNFRM_00000000000',SYSDATETIME);
|
||||||
|
|
||||||
|
|
||||||
|
-- 게시판사용
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_AAAAAAAAAAAA','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATETIME,'USRCNFRM_00000000000',SYSDATETIME,'USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_BBBBBBBBBBBB','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATETIME,'USRCNFRM_00000000000',SYSDATETIME,'USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_CCCCCCCCCCCC','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATETIME,'USRCNFRM_00000000000',SYSDATETIME,'USRCNFRM_00000000000');
|
||||||
|
|
||||||
|
-- 게시물
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (1,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지1','홈페이지 샘플공지1','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (2,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지2','홈페이지 샘플공지2','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (3,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지3','홈페이지 샘플공지3','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (4,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지4','홈페이지 샘플공지4','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (5,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지5','홈페이지 샘플공지5','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (6,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시1','홈페이지 샘플게시1','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (7,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시2','홈페이지 샘플게시2','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (8,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시3','홈페이지 샘플게시3','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (9,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시4','홈페이지 샘플게시4','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (10,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시5','홈페이지 샘플게시5','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATETIME,'USRCNFRM_00000000000',null,null);
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
#아래순서로 테이블생성 및 기초데이터 입력
|
||||||
|
|
||||||
|
# ID Generation
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('BBS_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('FILE_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('SAMPLE',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('SCHDUL_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('TMPLAT_ID',1);
|
||||||
|
|
||||||
|
|
||||||
|
#분류코드
|
||||||
|
insert into LETTCCMMNCLCODE(CL_CODE,CL_CODE_NM,CL_CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('LET','전자정부 프레임워크 경량환경 템플릿','전자정부 프레임워크 경량환경 템플릿','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
|
||||||
|
# 공통코드
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','등록구분','게시판, 커뮤니티, 동호회 등록구분코드','Y','LET','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','업무구분','업무구분코드','Y','LET','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','게시판유형','게시판유형구분코드','Y','LET','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','템플릿유형','템플릿유형구분코드','Y','LET','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','게시판속성','게시판 속성','Y','LET','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','일정중요도','일정중요도 낮음/보통/높음 상태구분','Y','LET','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','일정구분','일정구분 코드','Y','LET','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','반복구분','일정 반복구분 코드','Y','LET','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
# 공통상세코드
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC01','단일 게시판 이용등록','단일 게시판 이용등록','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC07','게시판사용자등록','게시판사용자등록','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','BBS','게시판','게시판','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST01','일반게시판','일반게시판','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST02','익명게시판','익명게시판','N','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST03','공지게시판','공지게시판','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','TMPT01','게시판템플릿','게시판템플릿','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA01','유효게시판','유효게시판','N','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA02','갤러리','갤러리','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA03','일반게시판','일반게시판','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','A','높음','높음','Y','2011-08-02 21:02:00','SYSTEM','2011-08-02 21:02:00','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','B','보통','보통','Y','2011-08-02 21:02:00','SYSTEM','2011-08-02 21:02:00','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','C','낮음','낮음','Y','2011-08-02 21:02:00','SYSTEM','2011-08-02 21:02:00','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','1','회의','회의','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','2','세미나','세미나','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','3','강의','강의','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','4','교육','교육','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','5','기타','기타','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','1','당일','당일','Y','2011-08-02 21:01:59','SYSTEM','2011-08-02 21:01:59','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','2','반복','반복','Y','2011-08-02 21:02:00','SYSTEM','2011-08-02 21:02:00','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','3','연속','연속','Y','2011-08-02 21:02:00','SYSTEM','2011-08-02 21:02:00','SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','4','요일반복','요일반복','Y','2011-08-02 21:02:00','SYSTEM','2011-08-02 21:02:00','SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
# 조직정보
|
||||||
|
insert into LETTNORGNZTINFO(ORGNZT_ID,ORGNZT_NM,ORGNZT_DC) values ('ORGNZT_0000000000000','기본조직','기본조직');
|
||||||
|
|
||||||
|
|
||||||
|
# 그룹정보
|
||||||
|
insert into LETTNAUTHORGROUPINFO(GROUP_ID,GROUP_NM,GROUP_CREAT_DE,GROUP_DC) values ('GROUP_00000000000000','기본 그룹입니다','2011-08-02 21:01:59','기본 그룹');
|
||||||
|
|
||||||
|
# 사용자정보
|
||||||
|
insert into LETTNEMPLYRINFO(EMPLYR_ID,ORGNZT_ID,USER_NM,PASSWORD,EMPL_NO,IHIDNUM,SEXDSTN_CODE,BRTHDY,FXNUM,HOUSE_ADRES,PASSWORD_HINT,PASSWORD_CNSR,HOUSE_END_TELNO,AREA_NO,DETAIL_ADRES,ZIP,OFFM_TELNO,MBTLNUM,EMAIL_ADRES,OFCPS_NM,HOUSE_MIDDLE_TELNO,GROUP_ID,PSTINST_CODE,EMPLYR_STTUS_CODE,ESNTL_ID,CRTFC_DN_VALUE,SBSCRB_DE) values ('admin','ORGNZT_0000000000000','관리자','JfQ7FIatlaE5jj7rPYO8QBABX8yb7bNbQy4AKY1QIfc=','','','F','','','관리자 주소','','','','','','','','','','','','GROUP_00000000000000','00000000','P','USRCNFRM_00000000000','','2011-08-02 21:01:59');
|
||||||
|
|
||||||
|
# 게시판템플릿
|
||||||
|
insert into LETTNTMPLATINFO(TMPLAT_ID,TMPLAT_NM,TMPLAT_COURS,USE_AT,TMPLAT_SE_CODE,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('TMPLAT_BOARD_DEFAULT','게시판 기본템플릿','/css/egovframework/cop/bbs/egovbbsTemplate.css','Y','TMPT01','USRCNFRM_00000000000','2011-08-02 21:01:59','USRCNFRM_00000000000','2011-08-08 16:12:57');
|
||||||
|
|
||||||
|
|
||||||
|
# 게시판마스터
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_AAAAAAAAAAAA','공지사항','공지사항게시판','BBST03','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000','2011-08-31 12:00:00','USRCNFRM_00000000000','2011-08-31 12:00:00');
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_BBBBBBBBBBBB','갤러리','갤러리게시판','BBST01','BBSA02','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000','2011-08-31 12:00:00','USRCNFRM_00000000000','2011-08-31 12:00:00');
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_CCCCCCCCCCCC','자료실','자료실게시판','BBST01','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000','2011-08-31 12:00:00','USRCNFRM_00000000000','2011-08-31 12:00:00');
|
||||||
|
|
||||||
|
|
||||||
|
# 게시판사용
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_AAAAAAAAAAAA','SYSTEM_DEFAULT_BOARD','Y','REGC01','2011-08-31 12:00:00','USRCNFRM_00000000000','2011-09-05 18:15:31','');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_BBBBBBBBBBBB','SYSTEM_DEFAULT_BOARD','Y','REGC01','2011-08-31 12:00:00','USRCNFRM_00000000000','2011-08-31 12:00:00','USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_CCCCCCCCCCCC','SYSTEM_DEFAULT_BOARD','Y','REGC01','2011-08-31 12:00:00','USRCNFRM_00000000000','2011-08-31 12:00:00','USRCNFRM_00000000000');
|
||||||
|
|
||||||
|
# 게시물
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (1,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지1','홈페이지 샘플공지1','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (2,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지2','홈페이지 샘플공지2','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (3,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지3','홈페이지 샘플공지3','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (4,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지4','홈페이지 샘플공지4','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (5,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지5','홈페이지 샘플공지5','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (6,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시1','홈페이지 샘플게시1','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (7,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시2','홈페이지 샘플게시2','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (8,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시3','홈페이지 샘플게시3','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (9,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시4','홈페이지 샘플게시4','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (10,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시5','홈페이지 샘플게시5','N',0,0,2,0,'Y','10000101','99991231','','','',null,NOW(),'USRCNFRM_00000000000',null,null);
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
-- 아래순서로 테이블생성 및 기초데이터 입력
|
||||||
|
|
||||||
|
-- ID Generation
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('BBS_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('FILE_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('SCHDUL_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('TMPLAT_ID',1);
|
||||||
|
|
||||||
|
|
||||||
|
-- 분류코드
|
||||||
|
insert into LETTCCMMNCLCODE(CL_CODE,CL_CODE_NM,CL_CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('LET','전자정부 프레임워크 경량환경 템플릿','전자정부 프레임워크 경량환경 템플릿','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
-- 공통코드
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','등록구분','게시판, 커뮤니티, 동호회 등록구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','업무구분','업무구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','게시판유형','게시판유형구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','템플릿유형','템플릿유형구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','게시판속성','게시판 속성','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','일정중요도','일정중요도 낮음/보통/높음 상태구분','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','일정구분','일정구분 코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','반복구분','일정 반복구분 코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
-- 공통상세코드
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC01','단일 게시판 이용등록','단일 게시판 이용등록','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC07','게시판사용자등록','게시판사용자등록','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','BBS','게시판','게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST01','일반게시판','일반게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST02','익명게시판','익명게시판','N',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST03','공지게시판','공지게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','TMPT01','게시판템플릿','게시판템플릿','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA01','유효게시판','유효게시판','N',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA02','갤러리','갤러리','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA03','일반게시판','일반게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','A','높음','높음','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','B','보통','보통','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','C','낮음','낮음','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','1','회의','회의','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','2','세미나','세미나','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','3','강의','강의','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','4','교육','교육','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','5','기타','기타','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','1','당일','당일','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','2','반복','반복','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','3','연속','연속','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','4','요일반복','요일반복','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
-- 조직정보
|
||||||
|
insert into LETTNORGNZTINFO(ORGNZT_ID,ORGNZT_NM,ORGNZT_DC) values ('ORGNZT_0000000000000','기본조직','기본조직');
|
||||||
|
|
||||||
|
|
||||||
|
-- 그룹정보
|
||||||
|
insert into LETTNAUTHORGROUPINFO(GROUP_ID,GROUP_NM,GROUP_CREAT_DE,GROUP_DC) values ('GROUP_00000000000000','기본 그룹입니다',SYSDATE,'기본 그룹');
|
||||||
|
|
||||||
|
-- 사용자정보
|
||||||
|
insert into LETTNEMPLYRINFO(EMPLYR_ID,ORGNZT_ID,USER_NM,PASSWORD,EMPL_NO,IHIDNUM,SEXDSTN_CODE,BRTHDY,FXNUM,HOUSE_ADRES,PASSWORD_HINT,PASSWORD_CNSR,HOUSE_END_TELNO,AREA_NO,DETAIL_ADRES,ZIP,OFFM_TELNO,MBTLNUM,EMAIL_ADRES,OFCPS_NM,HOUSE_MIDDLE_TELNO,GROUP_ID,PSTINST_CODE,EMPLYR_STTUS_CODE,ESNTL_ID,CRTFC_DN_VALUE,SBSCRB_DE) values ('admin','ORGNZT_0000000000000','관리자','JfQ7FIatlaE5jj7rPYO8QBABX8yb7bNbQy4AKY1QIfc=','','','F','','','관리자 주소','P01','123','','','','','','','','','','GROUP_00000000000000','00000000','P','USRCNFRM_00000000000','',SYSDATE);
|
||||||
|
|
||||||
|
-- 게시판템플릿
|
||||||
|
insert into LETTNTMPLATINFO(TMPLAT_ID,TMPLAT_NM,TMPLAT_COURS,USE_AT,TMPLAT_SE_CODE,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('TMPLAT_BOARD_DEFAULT','게시판 기본템플릿','/css/egovframework/cop/bbs/egovbbsTemplate.css','Y','TMPT01','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
|
||||||
|
|
||||||
|
-- 게시판마스터
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_AAAAAAAAAAAA','공지사항','공지사항게시판','BBST03','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_BBBBBBBBBBBB','갤러리','갤러리게시판','BBST01','BBSA02','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_CCCCCCCCCCCC','자료실','자료실게시판','BBST01','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
|
||||||
|
|
||||||
|
-- 게시판사용
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_AAAAAAAAAAAA','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_BBBBBBBBBBBB','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_CCCCCCCCCCCC','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
|
||||||
|
-- 게시물
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (1,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지1','홈페이지 샘플공지1','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (2,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지2','홈페이지 샘플공지2','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (3,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지3','홈페이지 샘플공지3','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (4,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지4','홈페이지 샘플공지4','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (5,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지5','홈페이지 샘플공지5','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (6,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시1','홈페이지 샘플게시1','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (7,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시2','홈페이지 샘플게시2','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (8,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시3','홈페이지 샘플게시3','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (9,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시4','홈페이지 샘플게시4','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (10,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시5','홈페이지 샘플게시5','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
-- 아래순서로 테이블생성 및 기초데이터 입력
|
||||||
|
|
||||||
|
-- ID Generation
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('BBS_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('FILE_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('SAMPLE',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('SCHDUL_ID',1);
|
||||||
|
insert into IDS(TABLE_NAME,NEXT_ID) values ('TMPLAT_ID',1);
|
||||||
|
|
||||||
|
|
||||||
|
-- 분류코드
|
||||||
|
insert into LETTCCMMNCLCODE(CL_CODE,CL_CODE_NM,CL_CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('LET','전자정부 프레임워크 경량환경 템플릿','전자정부 프레임워크 경량환경 템플릿','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
-- 공통코드
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','등록구분','게시판, 커뮤니티, 동호회 등록구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','업무구분','업무구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','게시판유형','게시판유형구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','템플릿유형','템플릿유형구분코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','게시판속성','게시판 속성','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','일정중요도','일정중요도 낮음/보통/높음 상태구분','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','일정구분','일정구분 코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNCODE(CODE_ID,CODE_ID_NM,CODE_ID_DC,USE_AT,CL_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','반복구분','일정 반복구분 코드','Y','LET',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
-- 공통상세코드
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC01','단일 게시판 이용등록','단일 게시판 이용등록','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM001','REGC07','게시판사용자등록','게시판사용자등록','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM003','BBS','게시판','게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST01','일반게시판','일반게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST02','익명게시판','익명게시판','N',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM004','BBST03','공지게시판','공지게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM005','TMPT01','게시판템플릿','게시판템플릿','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA01','유효게시판','유효게시판','N',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA02','갤러리','갤러리','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM009','BBSA03','일반게시판','일반게시판','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','A','높음','높음','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','B','보통','보통','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM019','C','낮음','낮음','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','1','회의','회의','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','2','세미나','세미나','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','3','강의','강의','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','4','교육','교육','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM030','5','기타','기타','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','1','당일','당일','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','2','반복','반복','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','3','연속','연속','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
insert into LETTCCMMNDETAILCODE(CODE_ID,CODE,CODE_NM,CODE_DC,USE_AT,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('COM031','4','요일반복','요일반복','Y',SYSDATE,'SYSTEM',SYSDATE,'SYSTEM');
|
||||||
|
|
||||||
|
|
||||||
|
-- 조직정보
|
||||||
|
insert into LETTNORGNZTINFO(ORGNZT_ID,ORGNZT_NM,ORGNZT_DC) values ('ORGNZT_0000000000000','기본조직','기본조직');
|
||||||
|
|
||||||
|
|
||||||
|
-- 그룹정보
|
||||||
|
insert into LETTNAUTHORGROUPINFO(GROUP_ID,GROUP_NM,GROUP_CREAT_DE,GROUP_DC) values ('GROUP_00000000000000','기본 그룹입니다',SYSDATE,'기본 그룹');
|
||||||
|
|
||||||
|
-- 사용자정보
|
||||||
|
insert into LETTNEMPLYRINFO(EMPLYR_ID,ORGNZT_ID,USER_NM,PASSWORD,EMPL_NO,IHIDNUM,SEXDSTN_CODE,BRTHDY,FXNUM,HOUSE_ADRES,PASSWORD_HINT,PASSWORD_CNSR,HOUSE_END_TELNO,AREA_NO,DETAIL_ADRES,ZIP,OFFM_TELNO,MBTLNUM,EMAIL_ADRES,OFCPS_NM,HOUSE_MIDDLE_TELNO,GROUP_ID,PSTINST_CODE,EMPLYR_STTUS_CODE,ESNTL_ID,CRTFC_DN_VALUE,SBSCRB_DE) values ('admin','ORGNZT_0000000000000','관리자','JfQ7FIatlaE5jj7rPYO8QBABX8yb7bNbQy4AKY1QIfc=','','','F','','','관리자 주소','P01','123','','','','','','','','','','GROUP_00000000000000','00000000','P','USRCNFRM_00000000000','',SYSDATE);
|
||||||
|
|
||||||
|
-- 게시판템플릿
|
||||||
|
insert into LETTNTMPLATINFO(TMPLAT_ID,TMPLAT_NM,TMPLAT_COURS,USE_AT,TMPLAT_SE_CODE,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('TMPLAT_BOARD_DEFAULT','게시판 기본템플릿','/css/egovframework/cop/bbs/egovbbsTemplate.css','Y','TMPT01','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
|
||||||
|
|
||||||
|
-- 게시판마스터
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_AAAAAAAAAAAA','공지사항','공지사항게시판','BBST03','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_BBBBBBBBBBBB','갤러리','갤러리게시판','BBST01','BBSA02','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
insert into LETTNBBSMASTER(BBS_ID,BBS_NM,BBS_INTRCN,BBS_TY_CODE,BBS_ATTRB_CODE,REPLY_POSBL_AT,FILE_ATCH_POSBL_AT,ATCH_POSBL_FILE_NUMBER,ATCH_POSBL_FILE_SIZE,USE_AT,TMPLAT_ID,FRST_REGISTER_ID,FRST_REGIST_PNTTM,LAST_UPDUSR_ID,LAST_UPDT_PNTTM) values ('BBSMSTR_CCCCCCCCCCCC','자료실','자료실게시판','BBST01','BBSA03','Y','Y',2,5242880,'Y','TMPLAT_BOARD_DEFAULT','USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000',SYSDATE);
|
||||||
|
|
||||||
|
|
||||||
|
-- 게시판사용
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_AAAAAAAAAAAA','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_BBBBBBBBBBBB','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
insert into LETTNBBSUSE(BBS_ID,TRGET_ID,USE_AT,REGIST_SE_CODE,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values ('BBSMSTR_CCCCCCCCCCCC','SYSTEM_DEFAULT_BOARD','Y','REGC01',SYSDATE,'USRCNFRM_00000000000',SYSDATE,'USRCNFRM_00000000000');
|
||||||
|
|
||||||
|
-- 게시물
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (1,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지1','홈페이지 샘플공지1','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (2,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지2','홈페이지 샘플공지2','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (3,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지3','홈페이지 샘플공지3','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (4,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지4','홈페이지 샘플공지4','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (5,'BBSMSTR_AAAAAAAAAAAA',1,'홈페이지 샘플공지5','홈페이지 샘플공지5','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (6,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시1','홈페이지 샘플게시1','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (7,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시2','홈페이지 샘플게시2','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (8,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시3','홈페이지 샘플게시3','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (9,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시4','홈페이지 샘플게시4','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
insert into LETTNBBS(NTT_ID,BBS_ID,NTT_NO,NTT_SJ,NTT_CN,ANSWER_AT,PARNTSCTT_NO,ANSWER_LC,SORT_ORDR,RDCNT,USE_AT,NTCE_BGNDE,NTCE_ENDDE,NTCR_ID,NTCR_NM,PASSWORD,ATCH_FILE_ID,FRST_REGIST_PNTTM,FRST_REGISTER_ID,LAST_UPDT_PNTTM,LAST_UPDUSR_ID) values (10,'BBSMSTR_BBBBBBBBBBBB',1,'홈페이지 샘플게시5','홈페이지 샘플게시5','N',0,0,2,0,'Y','10000101','99991231','','','',null,SYSDATE,'USRCNFRM_00000000000',null,null);
|
||||||
|
|
||||||
|
|
@ -0,0 +1,282 @@
|
||||||
|
DROP TABLE IDS CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE IDS (
|
||||||
|
TABLE_NAME varchar2(20) NOT NULL,
|
||||||
|
NEXT_ID number(30,0)DEFAULT 0 NOT NULL ,
|
||||||
|
CONSTRAINT IDS_PK PRIMARY KEY (TABLE_NAME)
|
||||||
|
);
|
||||||
|
DROP TABLE LETTCCMMNCLCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNCLCODE (
|
||||||
|
CL_CODE char(3) NOT NULL,
|
||||||
|
CL_CODE_NM varchar2(60) ,
|
||||||
|
CL_CODE_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNCLCODE_PK PRIMARY KEY (CL_CODE)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTCCMMNCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNCODE (
|
||||||
|
CODE_ID varchar2(6) NOT NULL,
|
||||||
|
CODE_ID_NM varchar2(60) ,
|
||||||
|
CODE_ID_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
CL_CODE char(3) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNCODE_PK PRIMARY KEY (CODE_ID),
|
||||||
|
CONSTRAINT LETTCCMMNCODE_ibfk_1 FOREIGN KEY (CL_CODE) REFERENCES LETTCCMMNCLCODE (CL_CODE)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTCCMMNDETAILCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNDETAILCODE (
|
||||||
|
CODE_ID varchar2(6) NOT NULL,
|
||||||
|
CODE varchar2(15) NOT NULL,
|
||||||
|
CODE_NM varchar2(60) ,
|
||||||
|
CODE_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_PK PRIMARY KEY (CODE_ID,CODE),
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_ibfk_1 FOREIGN KEY (CODE_ID) REFERENCES LETTCCMMNCODE (CODE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNORGNZTINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNORGNZTINFO (
|
||||||
|
ORGNZT_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
ORGNZT_NM varchar2(20) NOT NULL,
|
||||||
|
ORGNZT_DC varchar2(100) ,
|
||||||
|
CONSTRAINT LETTNORGNZTINFO_PK PRIMARY KEY (ORGNZT_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNAUTHORGROUPINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNAUTHORGROUPINFO (
|
||||||
|
GROUP_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
GROUP_NM varchar2(60) NOT NULL,
|
||||||
|
GROUP_CREAT_DE char(20) NOT NULL,
|
||||||
|
GROUP_DC varchar2(100) ,
|
||||||
|
CONSTRAINT LETTNAUTHORGROUPINFO_PK PRIMARY KEY (GROUP_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNEMPLYRINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNEMPLYRINFO (
|
||||||
|
EMPLYR_ID varchar2(20) NOT NULL,
|
||||||
|
ORGNZT_ID char(20) ,
|
||||||
|
USER_NM varchar2(60) NOT NULL,
|
||||||
|
PASSWORD varchar2(200) NOT NULL,
|
||||||
|
EMPL_NO varchar2(20) ,
|
||||||
|
IHIDNUM varchar2(200) ,
|
||||||
|
SEXDSTN_CODE char(1) ,
|
||||||
|
BRTHDY char(20) ,
|
||||||
|
FXNUM varchar2(20) ,
|
||||||
|
HOUSE_ADRES varchar2(100) ,
|
||||||
|
PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
HOUSE_END_TELNO varchar2(4) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
OFFM_TELNO varchar2(20) ,
|
||||||
|
MBTLNUM varchar2(20) ,
|
||||||
|
EMAIL_ADRES varchar2(50) ,
|
||||||
|
OFCPS_NM varchar2(60) ,
|
||||||
|
HOUSE_MIDDLE_TELNO varchar2(4) ,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
PSTINST_CODE char(8) ,
|
||||||
|
EMPLYR_STTUS_CODE varchar2(15) NOT NULL,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CRTFC_DN_VALUE varchar2(20) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_PK PRIMARY KEY (EMPLYR_ID),
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_2 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_1 FOREIGN KEY (ORGNZT_ID) REFERENCES LETTNORGNZTINFO (ORGNZT_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNTMPLATINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNTMPLATINFO (
|
||||||
|
TMPLAT_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
TMPLAT_NM varchar2(255) ,
|
||||||
|
TMPLAT_COURS varchar2(2000) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
TMPLAT_SE_CODE char(6) ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
CONSTRAINT LETTNTMPLATINFO_PK PRIMARY KEY (TMPLAT_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSMASTER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSMASTER (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
BBS_NM varchar2(255) NOT NULL,
|
||||||
|
BBS_INTRCN varchar2(2400) ,
|
||||||
|
BBS_TY_CODE char(6) NOT NULL,
|
||||||
|
BBS_ATTRB_CODE char(6) NOT NULL,
|
||||||
|
REPLY_POSBL_AT char(1) ,
|
||||||
|
FILE_ATCH_POSBL_AT char(1) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_NUMBER number(2,0) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_SIZE number(8,0) ,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
TMPLAT_ID char(20) ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM DATE NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
CONSTRAINT LETTNBBSMASTER_PK PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSUSE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSUSE (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
TRGET_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
REGIST_SE_CODE char(6) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBSUSE_PK PRIMARY KEY (BBS_ID,TRGET_ID),
|
||||||
|
CONSTRAINT LETTNBBSUSE_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBS CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBS (
|
||||||
|
NTT_ID number(20,0) NOT NULL,
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
NTT_NO number(20,0) ,
|
||||||
|
NTT_SJ varchar2(2000) ,
|
||||||
|
NTT_CN CLOB,
|
||||||
|
ANSWER_AT char(1) ,
|
||||||
|
PARNTSCTT_NO number(10,0) ,
|
||||||
|
ANSWER_LC number(11) ,
|
||||||
|
SORT_ORDR number(8,0) ,
|
||||||
|
RDCNT number(10,0) ,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
NTCE_BGNDE char(20) ,
|
||||||
|
NTCE_ENDDE char(20) ,
|
||||||
|
NTCR_ID varchar2(20) ,
|
||||||
|
NTCR_NM varchar2(20) ,
|
||||||
|
PASSWORD varchar2(200) ,
|
||||||
|
ATCH_FILE_ID char(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE NOT NULL,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBS_PK PRIMARY KEY (NTT_ID,BBS_ID),
|
||||||
|
CONSTRAINT LETTNBBS_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSMASTEROPTN CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSMASTEROPTN (
|
||||||
|
BBS_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
ANSWER_AT char(1) DEFAULT '' NOT NULL,
|
||||||
|
STSFDG_AT char(1) DEFAULT '' NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM DATE DEFAULT SYSDATE NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBSMASTEROPTN_PK PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNENTRPRSMBER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNENTRPRSMBER (
|
||||||
|
ENTRPRS_MBER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
ENTRPRS_SE_CODE char(15) ,
|
||||||
|
BIZRNO varchar2(10) ,
|
||||||
|
JURIRNO varchar2(13) ,
|
||||||
|
CMPNY_NM varchar2(60) NOT NULL,
|
||||||
|
CXFC varchar2(50) ,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
ADRES varchar2(100) ,
|
||||||
|
ENTRPRS_MIDDLE_TELNO varchar2(4) ,
|
||||||
|
FXNUM varchar2(20) ,
|
||||||
|
INDUTY_CODE char(15) ,
|
||||||
|
APPLCNT_NM varchar2(50) NOT NULL,
|
||||||
|
APPLCNT_IHIDNUM varchar2(200) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
ENTRPRS_MBER_STTUS varchar2(15) ,
|
||||||
|
ENTRPRS_MBER_PASSWORD varchar2(200) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
ENTRPRS_END_TELNO varchar2(4) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
APPLCNT_EMAIL_ADRES varchar2(50) ,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_PK PRIMARY KEY (ENTRPRS_MBER_ID),
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNFILE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNFILE (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
CREAT_DT DATE NOT NULL,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
CONSTRAINT LETTNFILE_PK PRIMARY KEY (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNFILEDETAIL CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNFILEDETAIL (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
FILE_SN number(10,0) NOT NULL,
|
||||||
|
FILE_STRE_COURS varchar2(2000) NOT NULL,
|
||||||
|
STRE_FILE_NM varchar2(255) NOT NULL,
|
||||||
|
ORIGNL_FILE_NM varchar2(255) ,
|
||||||
|
FILE_EXTSN varchar2(20) NOT NULL,
|
||||||
|
FILE_CN CLOB,
|
||||||
|
FILE_SIZE number(8,0) ,
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_PK PRIMARY KEY (ATCH_FILE_ID,FILE_SN),
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_ibfk_1 FOREIGN KEY (ATCH_FILE_ID) REFERENCES LETTNFILE (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNGNRLMBER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNGNRLMBER (
|
||||||
|
MBER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
PASSWORD varchar2(200) NOT NULL,
|
||||||
|
PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
IHIDNUM varchar2(200) ,
|
||||||
|
MBER_NM varchar2(50) NOT NULL,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
ADRES varchar2(100) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
MBER_STTUS varchar2(15) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
END_TELNO varchar2(4) ,
|
||||||
|
MBTLNUM varchar2(20) ,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
MBER_FXNUM varchar2(20) ,
|
||||||
|
MBER_EMAIL_ADRES varchar2(50) ,
|
||||||
|
MIDDLE_TELNO varchar2(4) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
SEXDSTN_CODE char(1) ,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CONSTRAINT LETTNGNRLMBER_PK PRIMARY KEY (MBER_ID),
|
||||||
|
CONSTRAINT LETTNGNRLMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNSCHDULINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNSCHDULINFO (
|
||||||
|
SCHDUL_ID char(20) NOT NULL,
|
||||||
|
SCHDUL_SE char(1) ,
|
||||||
|
SCHDUL_DEPT_ID varchar2(20) ,
|
||||||
|
SCHDUL_KND_CODE varchar2(20) ,
|
||||||
|
SCHDUL_BEGINDE char(20) ,
|
||||||
|
SCHDUL_ENDDE char(20) ,
|
||||||
|
SCHDUL_NM varchar2(255) ,
|
||||||
|
SCHDUL_CN varchar2(2500) ,
|
||||||
|
SCHDUL_PLACE varchar2(255) ,
|
||||||
|
SCHDUL_IPCR_CODE char(1) ,
|
||||||
|
SCHDUL_CHARGER_ID varchar2(20) ,
|
||||||
|
ATCH_FILE_ID char(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
REPTIT_SE_CODE char(3) ,
|
||||||
|
CONSTRAINT LETTNSCHDULINFO_PK PRIMARY KEY (SCHDUL_ID)
|
||||||
|
) ;
|
||||||
|
CREATE OR REPLACE VIEW COMVNUSERMASTER ( ESNTL_ID,USER_ID,PASSWORD,USER_NM,USER_ZIP,USER_ADRES,USER_EMAIL,GROUP_ID, USER_SE, ORGNZT_ID )
|
||||||
|
AS
|
||||||
|
SELECT ESNTL_ID, MBER_ID,PASSWORD,MBER_NM,ZIP,ADRES,MBER_EMAIL_ADRES,' ','GNR' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNGNRLMBER
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,EMPLYR_ID,PASSWORD,USER_NM,ZIP,HOUSE_ADRES,EMAIL_ADRES,GROUP_ID ,'USR' AS USER_SE, ORGNZT_ID
|
||||||
|
FROM LETTNEMPLYRINFO
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,ENTRPRS_MBER_ID,ENTRPRS_MBER_PASSWORD,CMPNY_NM,ZIP,ADRES,APPLCNT_EMAIL_ADRES,' ' ,'ENT' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNENTRPRSMBER
|
||||||
|
;
|
||||||
|
|
@ -0,0 +1,281 @@
|
||||||
|
CREATE TABLE IDS (
|
||||||
|
TABLE_NAME varchar(60) NOT NULL,
|
||||||
|
NEXT_ID numeric(30,0)DEFAULT 0 NOT NULL ,
|
||||||
|
CONSTRAINT IDS_PK PRIMARY KEY (TABLE_NAME)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE LETTCCMMNCLCODE (
|
||||||
|
CL_CODE char(3) NOT NULL,
|
||||||
|
CL_CODE_NM varchar(180) ,
|
||||||
|
CL_CODE_DC varchar(600) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
FRST_REGIST_PNTTM DATETIME ,
|
||||||
|
FRST_REGISTER_ID varchar(60) ,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
CONSTRAINT LETTCCMMNCLCODE_PK PRIMARY KEY (CL_CODE)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTCCMMNCODE (
|
||||||
|
CODE_ID varchar(18) NOT NULL,
|
||||||
|
CODE_ID_NM varchar(180) ,
|
||||||
|
CODE_ID_DC varchar(600) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
CL_CODE char(3) ,
|
||||||
|
FRST_REGIST_PNTTM DATETIME ,
|
||||||
|
FRST_REGISTER_ID varchar(60) ,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
CONSTRAINT LETTCCMMNCODE_PK PRIMARY KEY (CODE_ID),
|
||||||
|
CONSTRAINT LETTCCMMNCODE_ibfk_1 FOREIGN KEY (CL_CODE) REFERENCES LETTCCMMNCLCODE (CL_CODE)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTCCMMNDETAILCODE (
|
||||||
|
CODE_ID varchar(18) NOT NULL,
|
||||||
|
CODE varchar(45) NOT NULL,
|
||||||
|
CODE_NM varchar(180) ,
|
||||||
|
CODE_DC varchar(600) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
FRST_REGIST_PNTTM DATETIME ,
|
||||||
|
FRST_REGISTER_ID varchar(60) ,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_PK PRIMARY KEY (CODE_ID,CODE),
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_ibfk_1 FOREIGN KEY (CODE_ID) REFERENCES LETTCCMMNCODE (CODE_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNORGNZTINFO (
|
||||||
|
ORGNZT_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
ORGNZT_NM varchar(60) NOT NULL,
|
||||||
|
ORGNZT_DC varchar(300) ,
|
||||||
|
CONSTRAINT LETTNORGNZTINFO_PK PRIMARY KEY (ORGNZT_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNAUTHORGROUPINFO (
|
||||||
|
GROUP_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
GROUP_NM varchar(180) NOT NULL,
|
||||||
|
GROUP_CREAT_DE char(60) NOT NULL,
|
||||||
|
GROUP_DC varchar(300) ,
|
||||||
|
CONSTRAINT LETTNAUTHORGROUPINFO_PK PRIMARY KEY (GROUP_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNEMPLYRINFO (
|
||||||
|
EMPLYR_ID varchar(60) NOT NULL,
|
||||||
|
ORGNZT_ID char(20) ,
|
||||||
|
USER_NM varchar(180) NOT NULL,
|
||||||
|
PASSWORD varchar(600) NOT NULL,
|
||||||
|
EMPL_NO varchar(60) ,
|
||||||
|
IHIDNUM varchar(39) ,
|
||||||
|
SEXDSTN_CODE char(1) ,
|
||||||
|
BRTHDY char(20) ,
|
||||||
|
FXNUM varchar(60) ,
|
||||||
|
HOUSE_ADRES varchar(300) ,
|
||||||
|
PASSWORD_HINT varchar(300) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar(300) NOT NULL,
|
||||||
|
HOUSE_END_TELNO varchar(12) ,
|
||||||
|
AREA_NO varchar(12) ,
|
||||||
|
DETAIL_ADRES varchar(300) ,
|
||||||
|
ZIP varchar(18) ,
|
||||||
|
OFFM_TELNO varchar(60) ,
|
||||||
|
MBTLNUM varchar(60) ,
|
||||||
|
EMAIL_ADRES varchar(150) ,
|
||||||
|
OFCPS_NM varchar(180) ,
|
||||||
|
HOUSE_MIDDLE_TELNO varchar(12) ,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
PSTINST_CODE char(8) ,
|
||||||
|
EMPLYR_STTUS_CODE varchar(45) NOT NULL,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CRTFC_DN_VALUE varchar(60) ,
|
||||||
|
SBSCRB_DE DATETIME ,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_PK PRIMARY KEY (EMPLYR_ID),
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_2 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_1 FOREIGN KEY (ORGNZT_ID) REFERENCES LETTNORGNZTINFO (ORGNZT_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNTMPLATINFO (
|
||||||
|
TMPLAT_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
TMPLAT_NM varchar(765) ,
|
||||||
|
TMPLAT_COURS varchar(6000) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
TMPLAT_SE_CODE char(6) ,
|
||||||
|
FRST_REGISTER_ID varchar(60) ,
|
||||||
|
FRST_REGIST_PNTTM DATETIME ,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
CONSTRAINT LETTNTMPLATINFO_PK PRIMARY KEY (TMPLAT_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNBBSMASTER (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
BBS_NM varchar(765) NOT NULL,
|
||||||
|
BBS_INTRCN varchar(7200) ,
|
||||||
|
BBS_TY_CODE char(6) NOT NULL,
|
||||||
|
BBS_ATTRB_CODE char(6) NOT NULL,
|
||||||
|
REPLY_POSBL_AT char(1) ,
|
||||||
|
FILE_ATCH_POSBL_AT char(1) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_NUMBER numeric(2,0) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_SIZE numeric(8,0) ,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
TMPLAT_ID char(20) ,
|
||||||
|
FRST_REGISTER_ID varchar(60) NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM DATETIME NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
CONSTRAINT LETTNBBSMASTER_PK PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNBBSUSE (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
TRGET_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
REGIST_SE_CODE char(6) ,
|
||||||
|
FRST_REGIST_PNTTM DATETIME ,
|
||||||
|
FRST_REGISTER_ID varchar(60) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
CONSTRAINT LETTNBBSUSE_PK PRIMARY KEY (BBS_ID,TRGET_ID),
|
||||||
|
CONSTRAINT LETTNBBSUSE_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNBBS (
|
||||||
|
NTT_ID numeric(20,0) NOT NULL,
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
NTT_NO numeric(20,0) ,
|
||||||
|
NTT_SJ varchar(6000) ,
|
||||||
|
NTT_CN STRING,
|
||||||
|
ANSWER_AT char(1) ,
|
||||||
|
PARNTSCTT_NO numeric(10,0) ,
|
||||||
|
ANSWER_LC numeric(11) ,
|
||||||
|
SORT_ORDR numeric(8,0) ,
|
||||||
|
RDCNT numeric(10,0) ,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
NTCE_BGNDE char(20) ,
|
||||||
|
NTCE_ENDDE char(20) ,
|
||||||
|
NTCR_ID varchar(60) ,
|
||||||
|
NTCR_NM varchar(60) ,
|
||||||
|
PASSWORD varchar(600) ,
|
||||||
|
ATCH_FILE_ID char(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATETIME NOT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(60) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
CONSTRAINT LETTNBBS_PK PRIMARY KEY (NTT_ID,BBS_ID),
|
||||||
|
CONSTRAINT LETTNBBS_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNBBSMASTEROPTN (
|
||||||
|
BBS_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
ANSWER_AT char(1) DEFAULT '' NOT NULL,
|
||||||
|
STSFDG_AT char(1) DEFAULT '' NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM DATETIME DEFAULT SYSDATE NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
FRST_REGISTER_ID varchar(60) DEFAULT '' NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
CONSTRAINT LETTNBBSMASTEROPTN_PK PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNENTRPRSMBER (
|
||||||
|
ENTRPRS_MBER_ID varchar(60) DEFAULT '' NOT NULL,
|
||||||
|
ENTRPRS_SE_CODE char(15) ,
|
||||||
|
BIZRNO varchar(30) ,
|
||||||
|
JURIRNO varchar(39) ,
|
||||||
|
CMPNY_NM varchar(180) NOT NULL,
|
||||||
|
CXFC varchar(150) ,
|
||||||
|
ZIP varchar(18) ,
|
||||||
|
ADRES varchar(300) ,
|
||||||
|
ENTRPRS_MIDDLE_TELNO varchar(12) ,
|
||||||
|
FXNUM varchar(60) ,
|
||||||
|
INDUTY_CODE char(15) ,
|
||||||
|
APPLCNT_NM varchar(150) NOT NULL,
|
||||||
|
APPLCNT_IHIDNUM varchar(39) ,
|
||||||
|
SBSCRB_DE DATETIME ,
|
||||||
|
ENTRPRS_MBER_STTUS varchar(45) ,
|
||||||
|
ENTRPRS_MBER_PASSWORD varchar(600) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_HINT varchar(300) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_CNSR varchar(300) NOT NULL,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
DETAIL_ADRES varchar(300) ,
|
||||||
|
ENTRPRS_END_TELNO varchar(12) ,
|
||||||
|
AREA_NO varchar(12) ,
|
||||||
|
APPLCNT_EMAIL_ADRES varchar(150) ,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_PK PRIMARY KEY (ENTRPRS_MBER_ID),
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNFILE (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
CREAT_DT DATETIME NOT NULL,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
CONSTRAINT LETTNFILE_PK PRIMARY KEY (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNFILEDETAIL (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
FILE_SN numeric(10,0) NOT NULL,
|
||||||
|
FILE_STRE_COURS varchar(6000) NOT NULL,
|
||||||
|
STRE_FILE_NM varchar(765) NOT NULL,
|
||||||
|
ORIGNL_FILE_NM varchar(765) ,
|
||||||
|
FILE_EXTSN varchar(60) NOT NULL,
|
||||||
|
FILE_CN STRING,
|
||||||
|
FILE_SIZE numeric(8,0) ,
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_PK PRIMARY KEY (ATCH_FILE_ID,FILE_SN),
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_ibfk_1 FOREIGN KEY (ATCH_FILE_ID) REFERENCES LETTNFILE (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNGNRLMBER (
|
||||||
|
MBER_ID varchar(60) DEFAULT '' NOT NULL,
|
||||||
|
PASSWORD varchar(600) NOT NULL,
|
||||||
|
PASSWORD_HINT varchar(300) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar(300) NOT NULL,
|
||||||
|
IHIDNUM varchar(39) ,
|
||||||
|
MBER_NM varchar(150) NOT NULL,
|
||||||
|
ZIP varchar(18) ,
|
||||||
|
ADRES varchar(300) ,
|
||||||
|
AREA_NO varchar(12) ,
|
||||||
|
MBER_STTUS varchar(45) ,
|
||||||
|
DETAIL_ADRES varchar(300) ,
|
||||||
|
END_TELNO varchar(12) ,
|
||||||
|
MBTLNUM varchar(60) ,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
MBER_FXNUM varchar(60) ,
|
||||||
|
MBER_EMAIL_ADRES varchar(150) ,
|
||||||
|
MIDDLE_TELNO varchar(12) ,
|
||||||
|
SBSCRB_DE DATETIME ,
|
||||||
|
SEXDSTN_CODE char(1) ,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CONSTRAINT LETTNGNRLMBER_PK PRIMARY KEY (MBER_ID),
|
||||||
|
CONSTRAINT LETTNGNRLMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE TABLE LETTNSCHDULINFO (
|
||||||
|
SCHDUL_ID char(20) NOT NULL,
|
||||||
|
SCHDUL_SE char(1) ,
|
||||||
|
SCHDUL_DEPT_ID varchar(60) ,
|
||||||
|
SCHDUL_KND_CODE varchar(60) ,
|
||||||
|
SCHDUL_BEGINDE char(40) ,
|
||||||
|
SCHDUL_ENDDE char(40) ,
|
||||||
|
SCHDUL_NM varchar(765) ,
|
||||||
|
SCHDUL_CN varchar(7500) ,
|
||||||
|
SCHDUL_PLACE varchar(765) ,
|
||||||
|
SCHDUL_IPCR_CODE char(1) ,
|
||||||
|
SCHDUL_CHARGER_ID varchar(60) ,
|
||||||
|
ATCH_FILE_ID char(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATETIME ,
|
||||||
|
FRST_REGISTER_ID varchar(60) ,
|
||||||
|
LAST_UPDT_PNTTM DATETIME ,
|
||||||
|
LAST_UPDUSR_ID varchar(60) ,
|
||||||
|
REPTIT_SE_CODE char(3) ,
|
||||||
|
CONSTRAINT LETTNSCHDULINFO_PK PRIMARY KEY (SCHDUL_ID)
|
||||||
|
) ;
|
||||||
|
CREATE OR REPLACE VIEW COMVNUSERMASTER ( ESNTL_ID,USER_ID,PASSWORD,USER_NM,USER_ZIP,USER_ADRES,USER_EMAIL,GROUP_ID, USER_SE, ORGNZT_ID )
|
||||||
|
AS
|
||||||
|
SELECT ESNTL_ID, MBER_ID,PASSWORD,MBER_NM,ZIP,ADRES,MBER_EMAIL_ADRES,' ','GNR' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNGNRLMBER
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,EMPLYR_ID,PASSWORD,USER_NM,ZIP,HOUSE_ADRES,EMAIL_ADRES,GROUP_ID ,'USR' AS USER_SE, ORGNZT_ID
|
||||||
|
FROM LETTNEMPLYRINFO
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,ENTRPRS_MBER_ID,ENTRPRS_MBER_PASSWORD,CMPNY_NM,ZIP,ADRES,APPLCNT_EMAIL_ADRES,' ' ,'ENT' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNENTRPRSMBER
|
||||||
|
;
|
||||||
|
|
@ -0,0 +1,322 @@
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE IDS (
|
||||||
|
TABLE_NAME varchar(20) NOT NULL,
|
||||||
|
NEXT_ID decimal(30,0) NOT NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (TABLE_NAME)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTCCMMNCLCODE (
|
||||||
|
CL_CODE char(3) NOT NULL,
|
||||||
|
CL_CODE_NM varchar(60) DEFAULT NULL,
|
||||||
|
CL_CODE_DC varchar(200) DEFAULT NULL,
|
||||||
|
USE_AT char(1) DEFAULT NULL,
|
||||||
|
FRST_REGIST_PNTTM datetime DEFAULT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) DEFAULT NULL,
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (CL_CODE)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTCCMMNCODE (
|
||||||
|
CODE_ID varchar(6) NOT NULL,
|
||||||
|
CODE_ID_NM varchar(60) DEFAULT NULL,
|
||||||
|
CODE_ID_DC varchar(200) DEFAULT NULL,
|
||||||
|
USE_AT char(1) DEFAULT NULL,
|
||||||
|
CL_CODE char(3) DEFAULT NULL,
|
||||||
|
FRST_REGIST_PNTTM datetime DEFAULT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) DEFAULT NULL,
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (CODE_ID),
|
||||||
|
KEY R_179 (CL_CODE),
|
||||||
|
CONSTRAINT LETTCCMMNCODE_ibfk_1 FOREIGN KEY (CL_CODE) REFERENCES LETTCCMMNCLCODE (CL_CODE)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTCCMMNDETAILCODE (
|
||||||
|
CODE_ID varchar(6) NOT NULL,
|
||||||
|
CODE varchar(15) NOT NULL,
|
||||||
|
CODE_NM varchar(60) DEFAULT NULL,
|
||||||
|
CODE_DC varchar(200) DEFAULT NULL,
|
||||||
|
USE_AT char(1) DEFAULT NULL,
|
||||||
|
FRST_REGIST_PNTTM datetime DEFAULT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) DEFAULT NULL,
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (CODE_ID,CODE),
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_ibfk_1 FOREIGN KEY (CODE_ID) REFERENCES LETTCCMMNCODE (CODE_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNORGNZTINFO (
|
||||||
|
ORGNZT_ID char(20) NOT NULL DEFAULT '',
|
||||||
|
ORGNZT_NM varchar(20) NOT NULL,
|
||||||
|
ORGNZT_DC varchar(100) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (ORGNZT_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNAUTHORGROUPINFO (
|
||||||
|
GROUP_ID char(20) NOT NULL DEFAULT '',
|
||||||
|
GROUP_NM varchar(60) NOT NULL,
|
||||||
|
GROUP_CREAT_DE char(20) NOT NULL,
|
||||||
|
GROUP_DC varchar(100) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (GROUP_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNEMPLYRINFO (
|
||||||
|
EMPLYR_ID varchar(20) NOT NULL,
|
||||||
|
ORGNZT_ID char(20) DEFAULT NULL,
|
||||||
|
USER_NM varchar(60) NOT NULL,
|
||||||
|
PASSWORD varchar(200) NOT NULL,
|
||||||
|
EMPL_NO varchar(20) DEFAULT NULL,
|
||||||
|
IHIDNUM varchar(200) DEFAULT NULL,
|
||||||
|
SEXDSTN_CODE char(1) DEFAULT NULL,
|
||||||
|
BRTHDY char(20) DEFAULT NULL,
|
||||||
|
FXNUM varchar(20) DEFAULT NULL,
|
||||||
|
HOUSE_ADRES varchar(100) DEFAULT NULL,
|
||||||
|
PASSWORD_HINT varchar(100) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar(100) NOT NULL,
|
||||||
|
HOUSE_END_TELNO varchar(4) DEFAULT NULL,
|
||||||
|
AREA_NO varchar(4) DEFAULT NULL,
|
||||||
|
DETAIL_ADRES varchar(100) DEFAULT NULL,
|
||||||
|
ZIP varchar(6) DEFAULT NULL,
|
||||||
|
OFFM_TELNO varchar(20) DEFAULT NULL,
|
||||||
|
MBTLNUM varchar(20) DEFAULT NULL,
|
||||||
|
EMAIL_ADRES varchar(50) DEFAULT NULL,
|
||||||
|
OFCPS_NM varchar(60) DEFAULT NULL,
|
||||||
|
HOUSE_MIDDLE_TELNO varchar(4) DEFAULT NULL,
|
||||||
|
GROUP_ID char(20) DEFAULT NULL,
|
||||||
|
PSTINST_CODE char(8) DEFAULT NULL,
|
||||||
|
EMPLYR_STTUS_CODE varchar(15) NOT NULL,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CRTFC_DN_VALUE varchar(20) DEFAULT NULL,
|
||||||
|
SBSCRB_DE datetime DEFAULT NULL,
|
||||||
|
PRIMARY KEY (EMPLYR_ID),
|
||||||
|
KEY LETTNEMPLYRINFO_ibfk_2 (GROUP_ID),
|
||||||
|
KEY LETTNEMPLYRINFO_ibfk_1 (ORGNZT_ID),
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_2 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_1 FOREIGN KEY (ORGNZT_ID) REFERENCES LETTNORGNZTINFO (ORGNZT_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNTMPLATINFO (
|
||||||
|
TMPLAT_ID char(20) NOT NULL DEFAULT '',
|
||||||
|
TMPLAT_NM varchar(255) DEFAULT NULL,
|
||||||
|
TMPLAT_COURS varchar(2000) DEFAULT NULL,
|
||||||
|
USE_AT char(1) DEFAULT NULL,
|
||||||
|
TMPLAT_SE_CODE char(6) DEFAULT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) DEFAULT NULL,
|
||||||
|
FRST_REGIST_PNTTM datetime DEFAULT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
PRIMARY KEY (TMPLAT_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNBBSMASTER (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
BBS_NM varchar(255) NOT NULL,
|
||||||
|
BBS_INTRCN varchar(2400) DEFAULT NULL,
|
||||||
|
BBS_TY_CODE char(6) NOT NULL,
|
||||||
|
BBS_ATTRB_CODE char(6) NOT NULL,
|
||||||
|
REPLY_POSBL_AT char(1) DEFAULT NULL,
|
||||||
|
FILE_ATCH_POSBL_AT char(1) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_NUMBER decimal(2,0) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_SIZE decimal(8,0) DEFAULT NULL,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
TMPLAT_ID char(20) DEFAULT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM datetime NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNBBSUSE (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
TRGET_ID char(20) NOT NULL DEFAULT '',
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
REGIST_SE_CODE char(6) DEFAULT NULL,
|
||||||
|
FRST_REGIST_PNTTM datetime DEFAULT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (BBS_ID,TRGET_ID),
|
||||||
|
CONSTRAINT LETTNBBSUSE_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNBBS (
|
||||||
|
NTT_ID decimal(20,0) NOT NULL,
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
NTT_NO decimal(20,0) DEFAULT NULL,
|
||||||
|
NTT_SJ varchar(2000) DEFAULT NULL,
|
||||||
|
NTT_CN mediumtext,
|
||||||
|
ANSWER_AT char(1) DEFAULT NULL,
|
||||||
|
PARNTSCTT_NO decimal(10,0) DEFAULT NULL,
|
||||||
|
ANSWER_LC int(11) DEFAULT NULL,
|
||||||
|
SORT_ORDR decimal(8,0) DEFAULT NULL,
|
||||||
|
RDCNT decimal(10,0) DEFAULT NULL,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
NTCE_BGNDE char(20) DEFAULT NULL,
|
||||||
|
NTCE_ENDDE char(20) DEFAULT NULL,
|
||||||
|
NTCR_ID varchar(20) DEFAULT NULL,
|
||||||
|
NTCR_NM varchar(20) DEFAULT NULL,
|
||||||
|
PASSWORD varchar(200) DEFAULT NULL,
|
||||||
|
ATCH_FILE_ID char(20) DEFAULT NULL,
|
||||||
|
FRST_REGIST_PNTTM datetime NOT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (NTT_ID,BBS_ID),
|
||||||
|
KEY LETTNBBS_ibfk_1 (BBS_ID),
|
||||||
|
CONSTRAINT LETTNBBS_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNBBSMASTEROPTN (
|
||||||
|
BBS_ID char(20) NOT NULL DEFAULT '',
|
||||||
|
ANSWER_AT char(1) NOT NULL DEFAULT '',
|
||||||
|
STSFDG_AT char(1) NOT NULL DEFAULT '',
|
||||||
|
FRST_REGIST_PNTTM datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) NOT NULL DEFAULT '',
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNENTRPRSMBER (
|
||||||
|
ENTRPRS_MBER_ID varchar(20) NOT NULL DEFAULT '',
|
||||||
|
ENTRPRS_SE_CODE char(15) DEFAULT NULL,
|
||||||
|
BIZRNO varchar(10) DEFAULT NULL,
|
||||||
|
JURIRNO varchar(13) DEFAULT NULL,
|
||||||
|
CMPNY_NM varchar(60) NOT NULL,
|
||||||
|
CXFC varchar(50) DEFAULT NULL,
|
||||||
|
ZIP varchar(6) DEFAULT NULL,
|
||||||
|
ADRES varchar(100) DEFAULT NULL,
|
||||||
|
ENTRPRS_MIDDLE_TELNO varchar(4) DEFAULT NULL,
|
||||||
|
FXNUM varchar(20) DEFAULT NULL,
|
||||||
|
INDUTY_CODE char(15) DEFAULT NULL,
|
||||||
|
APPLCNT_NM varchar(50) NOT NULL,
|
||||||
|
APPLCNT_IHIDNUM varchar(200) DEFAULT NULL,
|
||||||
|
SBSCRB_DE datetime DEFAULT NULL,
|
||||||
|
ENTRPRS_MBER_STTUS varchar(15) DEFAULT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD varchar(200) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_HINT varchar(100) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_CNSR varchar(100) NOT NULL,
|
||||||
|
GROUP_ID char(20) DEFAULT NULL,
|
||||||
|
DETAIL_ADRES varchar(100) DEFAULT NULL,
|
||||||
|
ENTRPRS_END_TELNO varchar(4) DEFAULT NULL,
|
||||||
|
AREA_NO varchar(4) DEFAULT NULL,
|
||||||
|
APPLCNT_EMAIL_ADRES varchar(50) DEFAULT NULL,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
PRIMARY KEY (ENTRPRS_MBER_ID),
|
||||||
|
KEY LETTNENTRPRSMBER_ibfk_1 (GROUP_ID),
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNFILE (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
CREAT_DT datetime NOT NULL,
|
||||||
|
USE_AT char(1) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNFILEDETAIL (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
FILE_SN decimal(10,0) NOT NULL,
|
||||||
|
FILE_STRE_COURS varchar(2000) NOT NULL,
|
||||||
|
STRE_FILE_NM varchar(255) NOT NULL,
|
||||||
|
ORIGNL_FILE_NM varchar(255) DEFAULT NULL,
|
||||||
|
FILE_EXTSN varchar(20) NOT NULL,
|
||||||
|
FILE_CN mediumtext,
|
||||||
|
FILE_SIZE decimal(8,0) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (ATCH_FILE_ID,FILE_SN),
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_ibfk_1 FOREIGN KEY (ATCH_FILE_ID) REFERENCES LETTNFILE (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNGNRLMBER (
|
||||||
|
MBER_ID varchar(20) NOT NULL DEFAULT '',
|
||||||
|
PASSWORD varchar(200) NOT NULL,
|
||||||
|
PASSWORD_HINT varchar(100) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar(100) NOT NULL,
|
||||||
|
IHIDNUM varchar(200) DEFAULT NULL,
|
||||||
|
MBER_NM varchar(50) NOT NULL,
|
||||||
|
ZIP varchar(6) DEFAULT NULL,
|
||||||
|
ADRES varchar(100) DEFAULT NULL,
|
||||||
|
AREA_NO varchar(4) DEFAULT NULL,
|
||||||
|
MBER_STTUS varchar(15) DEFAULT NULL,
|
||||||
|
DETAIL_ADRES varchar(100) DEFAULT NULL,
|
||||||
|
END_TELNO varchar(4) DEFAULT NULL,
|
||||||
|
MBTLNUM varchar(20) DEFAULT NULL,
|
||||||
|
GROUP_ID char(20) DEFAULT NULL,
|
||||||
|
MBER_FXNUM varchar(20) DEFAULT NULL,
|
||||||
|
MBER_EMAIL_ADRES varchar(50) DEFAULT NULL,
|
||||||
|
MIDDLE_TELNO varchar(4) DEFAULT NULL,
|
||||||
|
SBSCRB_DE datetime DEFAULT NULL,
|
||||||
|
SEXDSTN_CODE char(1) DEFAULT NULL,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
PRIMARY KEY (MBER_ID),
|
||||||
|
KEY LETTNGNRLMBER_ibfk_1 (GROUP_ID),
|
||||||
|
CONSTRAINT LETTNGNRLMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE LETTNSCHDULINFO (
|
||||||
|
SCHDUL_ID char(20) NOT NULL,
|
||||||
|
SCHDUL_SE char(1) DEFAULT NULL,
|
||||||
|
SCHDUL_DEPT_ID varchar(20) DEFAULT NULL,
|
||||||
|
SCHDUL_KND_CODE varchar(20) DEFAULT NULL,
|
||||||
|
SCHDUL_BEGINDE datetime DEFAULT NULL,
|
||||||
|
SCHDUL_ENDDE datetime DEFAULT NULL,
|
||||||
|
SCHDUL_NM varchar(255) DEFAULT NULL,
|
||||||
|
SCHDUL_CN varchar(2500) DEFAULT NULL,
|
||||||
|
SCHDUL_PLACE varchar(255) DEFAULT NULL,
|
||||||
|
SCHDUL_IPCR_CODE char(1) DEFAULT NULL,
|
||||||
|
SCHDUL_CHARGER_ID varchar(20) DEFAULT NULL,
|
||||||
|
ATCH_FILE_ID char(20) DEFAULT NULL,
|
||||||
|
FRST_REGIST_PNTTM datetime DEFAULT NULL,
|
||||||
|
FRST_REGISTER_ID varchar(20) DEFAULT NULL,
|
||||||
|
LAST_UPDT_PNTTM datetime DEFAULT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar(20) DEFAULT NULL,
|
||||||
|
REPTIT_SE_CODE char(3) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (SCHDUL_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
CREATE OR REPLACE VIEW COMVNUSERMASTER ( ESNTL_ID,USER_ID,PASSWORD,USER_NM,USER_ZIP,USER_ADRES,USER_EMAIL,GROUP_ID, USER_SE, ORGNZT_ID )
|
||||||
|
AS
|
||||||
|
SELECT ESNTL_ID, MBER_ID,PASSWORD,MBER_NM,ZIP,ADRES,MBER_EMAIL_ADRES,' ','GNR' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNGNRLMBER
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,EMPLYR_ID,PASSWORD,USER_NM,ZIP,HOUSE_ADRES,EMAIL_ADRES,GROUP_ID ,'USR' AS USER_SE, ORGNZT_ID
|
||||||
|
FROM LETTNEMPLYRINFO
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,ENTRPRS_MBER_ID,ENTRPRS_MBER_PASSWORD,CMPNY_NM,ZIP,ADRES,APPLCNT_EMAIL_ADRES,' ' ,'ENT' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNENTRPRSMBER
|
||||||
|
;
|
||||||
|
|
@ -0,0 +1,283 @@
|
||||||
|
DROP TABLE IDS CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE IDS (
|
||||||
|
TABLE_NAME varchar2(20) NOT NULL,
|
||||||
|
NEXT_ID number(30,0)DEFAULT 0 NOT NULL ,
|
||||||
|
CONSTRAINT IDS_PK PRIMARY KEY (TABLE_NAME)
|
||||||
|
);
|
||||||
|
DROP TABLE LETTCCMMNCLCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNCLCODE (
|
||||||
|
CL_CODE char(3) NOT NULL,
|
||||||
|
CL_CODE_NM varchar2(60) ,
|
||||||
|
CL_CODE_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNCLCODE_PK PRIMARY KEY (CL_CODE)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTCCMMNCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNCODE (
|
||||||
|
CODE_ID varchar2(6) NOT NULL,
|
||||||
|
CODE_ID_NM varchar2(60) ,
|
||||||
|
CODE_ID_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
CL_CODE char(3) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNCODE_PK PRIMARY KEY (CODE_ID),
|
||||||
|
CONSTRAINT LETTCCMMNCODE_ibfk_1 FOREIGN KEY (CL_CODE) REFERENCES LETTCCMMNCLCODE (CL_CODE)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTCCMMNDETAILCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNDETAILCODE (
|
||||||
|
CODE_ID varchar2(6) NOT NULL,
|
||||||
|
CODE varchar2(15) NOT NULL,
|
||||||
|
CODE_NM varchar2(60) ,
|
||||||
|
CODE_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_PK PRIMARY KEY (CODE_ID,CODE),
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_ibfk_1 FOREIGN KEY (CODE_ID) REFERENCES LETTCCMMNCODE (CODE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNORGNZTINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNORGNZTINFO (
|
||||||
|
ORGNZT_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
ORGNZT_NM varchar2(20) NOT NULL,
|
||||||
|
ORGNZT_DC varchar2(100) ,
|
||||||
|
CONSTRAINT LETTNORGNZTINFO_PK PRIMARY KEY (ORGNZT_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNAUTHORGROUPINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNAUTHORGROUPINFO (
|
||||||
|
GROUP_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
GROUP_NM varchar2(60) NOT NULL,
|
||||||
|
GROUP_CREAT_DE char(20) NOT NULL,
|
||||||
|
GROUP_DC varchar2(100) ,
|
||||||
|
CONSTRAINT LETTNAUTHORGROUPINFO_PK PRIMARY KEY (GROUP_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNEMPLYRINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNEMPLYRINFO (
|
||||||
|
EMPLYR_ID varchar2(20) NOT NULL,
|
||||||
|
ORGNZT_ID char(20) ,
|
||||||
|
USER_NM varchar2(60) NOT NULL,
|
||||||
|
PASSWORD varchar2(200) NOT NULL,
|
||||||
|
EMPL_NO varchar2(20) ,
|
||||||
|
IHIDNUM varchar2(200) ,
|
||||||
|
SEXDSTN_CODE char(1) ,
|
||||||
|
BRTHDY char(20) ,
|
||||||
|
FXNUM varchar2(20) ,
|
||||||
|
HOUSE_ADRES varchar2(100) ,
|
||||||
|
PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
HOUSE_END_TELNO varchar2(4) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
OFFM_TELNO varchar2(20) ,
|
||||||
|
MBTLNUM varchar2(20) ,
|
||||||
|
EMAIL_ADRES varchar2(50) ,
|
||||||
|
OFCPS_NM varchar2(60) ,
|
||||||
|
HOUSE_MIDDLE_TELNO varchar2(4) ,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
PSTINST_CODE char(8) ,
|
||||||
|
EMPLYR_STTUS_CODE varchar2(15) NOT NULL,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CRTFC_DN_VALUE varchar2(20) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_PK PRIMARY KEY (EMPLYR_ID),
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_2 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_1 FOREIGN KEY (ORGNZT_ID) REFERENCES LETTNORGNZTINFO (ORGNZT_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNTMPLATINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNTMPLATINFO (
|
||||||
|
TMPLAT_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
TMPLAT_NM varchar2(255) ,
|
||||||
|
TMPLAT_COURS varchar2(2000) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
TMPLAT_SE_CODE char(6) ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
CONSTRAINT LETTNTMPLATINFO_PK PRIMARY KEY (TMPLAT_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSMASTER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSMASTER (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
BBS_NM varchar2(255) NOT NULL,
|
||||||
|
BBS_INTRCN varchar2(2400) ,
|
||||||
|
BBS_TY_CODE char(6) NOT NULL,
|
||||||
|
BBS_ATTRB_CODE char(6) NOT NULL,
|
||||||
|
REPLY_POSBL_AT char(1) ,
|
||||||
|
FILE_ATCH_POSBL_AT char(1) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_NUMBER number(2,0) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_SIZE number(8,0) ,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
TMPLAT_ID char(20) ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM DATE NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
CONSTRAINT LETTNBBSMASTER_PK PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSUSE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSUSE (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
TRGET_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
REGIST_SE_CODE char(6) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBSUSE_PK PRIMARY KEY (BBS_ID,TRGET_ID),
|
||||||
|
CONSTRAINT LETTNBBSUSE_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
DROP TABLE LETTNBBS CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBS (
|
||||||
|
NTT_ID number(20,0) NOT NULL,
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
NTT_NO number(20,0) ,
|
||||||
|
NTT_SJ varchar2(2000) ,
|
||||||
|
NTT_CN CLOB,
|
||||||
|
ANSWER_AT char(1) ,
|
||||||
|
PARNTSCTT_NO number(10,0) ,
|
||||||
|
ANSWER_LC number(11) ,
|
||||||
|
SORT_ORDR number(8,0) ,
|
||||||
|
RDCNT number(10,0) ,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
NTCE_BGNDE char(20) ,
|
||||||
|
NTCE_ENDDE char(20) ,
|
||||||
|
NTCR_ID varchar2(20) ,
|
||||||
|
NTCR_NM varchar2(20) ,
|
||||||
|
PASSWORD varchar2(200) ,
|
||||||
|
ATCH_FILE_ID char(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE NOT NULL,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBS_PK PRIMARY KEY (NTT_ID,BBS_ID),
|
||||||
|
CONSTRAINT LETTNBBS_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSMASTEROPTN CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSMASTEROPTN (
|
||||||
|
BBS_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
ANSWER_AT char(1) DEFAULT '' NOT NULL,
|
||||||
|
STSFDG_AT char(1) DEFAULT '' NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM DATE DEFAULT SYSDATE NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBSMASTEROPTN_PK PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNENTRPRSMBER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNENTRPRSMBER (
|
||||||
|
ENTRPRS_MBER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
ENTRPRS_SE_CODE char(15) ,
|
||||||
|
BIZRNO varchar2(10) ,
|
||||||
|
JURIRNO varchar2(13) ,
|
||||||
|
CMPNY_NM varchar2(60) NOT NULL,
|
||||||
|
CXFC varchar2(50) ,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
ADRES varchar2(100) ,
|
||||||
|
ENTRPRS_MIDDLE_TELNO varchar2(4) ,
|
||||||
|
FXNUM varchar2(20) ,
|
||||||
|
INDUTY_CODE char(15) ,
|
||||||
|
APPLCNT_NM varchar2(50) NOT NULL,
|
||||||
|
APPLCNT_IHIDNUM varchar2(200) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
ENTRPRS_MBER_STTUS varchar2(15) ,
|
||||||
|
ENTRPRS_MBER_PASSWORD varchar2(200) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
ENTRPRS_END_TELNO varchar2(4) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
APPLCNT_EMAIL_ADRES varchar2(50) ,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_PK PRIMARY KEY (ENTRPRS_MBER_ID),
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNFILE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNFILE (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
CREAT_DT DATE NOT NULL,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
CONSTRAINT LETTNFILE_PK PRIMARY KEY (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNFILEDETAIL CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNFILEDETAIL (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
FILE_SN number(10,0) NOT NULL,
|
||||||
|
FILE_STRE_COURS varchar2(2000) NOT NULL,
|
||||||
|
STRE_FILE_NM varchar2(255) NOT NULL,
|
||||||
|
ORIGNL_FILE_NM varchar2(255) ,
|
||||||
|
FILE_EXTSN varchar2(20) NOT NULL,
|
||||||
|
FILE_CN CLOB,
|
||||||
|
FILE_SIZE number(8,0) ,
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_PK PRIMARY KEY (ATCH_FILE_ID,FILE_SN),
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_ibfk_1 FOREIGN KEY (ATCH_FILE_ID) REFERENCES LETTNFILE (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNGNRLMBER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNGNRLMBER (
|
||||||
|
MBER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
PASSWORD varchar2(200) NOT NULL,
|
||||||
|
PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
IHIDNUM varchar2(200) ,
|
||||||
|
MBER_NM varchar2(50) NOT NULL,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
ADRES varchar2(100) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
MBER_STTUS varchar2(15) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
END_TELNO varchar2(4) ,
|
||||||
|
MBTLNUM varchar2(20) ,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
MBER_FXNUM varchar2(20) ,
|
||||||
|
MBER_EMAIL_ADRES varchar2(50) ,
|
||||||
|
MIDDLE_TELNO varchar2(4) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
SEXDSTN_CODE char(1) ,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CONSTRAINT LETTNGNRLMBER_PK PRIMARY KEY (MBER_ID),
|
||||||
|
CONSTRAINT LETTNGNRLMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNSCHDULINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNSCHDULINFO (
|
||||||
|
SCHDUL_ID char(20) NOT NULL,
|
||||||
|
SCHDUL_SE char(1) ,
|
||||||
|
SCHDUL_DEPT_ID varchar2(20) ,
|
||||||
|
SCHDUL_KND_CODE varchar2(20) ,
|
||||||
|
SCHDUL_BEGINDE char(20) ,
|
||||||
|
SCHDUL_ENDDE char(20) ,
|
||||||
|
SCHDUL_NM varchar2(255) ,
|
||||||
|
SCHDUL_CN varchar2(2500) ,
|
||||||
|
SCHDUL_PLACE varchar2(255) ,
|
||||||
|
SCHDUL_IPCR_CODE char(1) ,
|
||||||
|
SCHDUL_CHARGER_ID varchar2(20) ,
|
||||||
|
ATCH_FILE_ID char(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
REPTIT_SE_CODE char(3) ,
|
||||||
|
CONSTRAINT LETTNSCHDULINFO_PK PRIMARY KEY (SCHDUL_ID)
|
||||||
|
) ;
|
||||||
|
CREATE OR REPLACE VIEW COMVNUSERMASTER ( ESNTL_ID,USER_ID,PASSWORD,USER_NM,USER_ZIP,USER_ADRES,USER_EMAIL,GROUP_ID, USER_SE, ORGNZT_ID )
|
||||||
|
AS
|
||||||
|
SELECT ESNTL_ID, MBER_ID,PASSWORD,MBER_NM,ZIP,ADRES,MBER_EMAIL_ADRES,' ','GNR' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNGNRLMBER
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,EMPLYR_ID,PASSWORD,USER_NM,ZIP,HOUSE_ADRES,EMAIL_ADRES,GROUP_ID ,'USR' AS USER_SE, ORGNZT_ID
|
||||||
|
FROM LETTNEMPLYRINFO
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,ENTRPRS_MBER_ID,ENTRPRS_MBER_PASSWORD,CMPNY_NM,ZIP,ADRES,APPLCNT_EMAIL_ADRES,' ' ,'ENT' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNENTRPRSMBER
|
||||||
|
;
|
||||||
|
|
@ -0,0 +1,282 @@
|
||||||
|
DROP TABLE IDS CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE IDS (
|
||||||
|
TABLE_NAME varchar2(20) NOT NULL,
|
||||||
|
NEXT_ID number(30,0)DEFAULT 0 NOT NULL ,
|
||||||
|
CONSTRAINT IDS_PK PRIMARY KEY (TABLE_NAME)
|
||||||
|
);
|
||||||
|
DROP TABLE LETTCCMMNCLCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNCLCODE (
|
||||||
|
CL_CODE char(3) NOT NULL,
|
||||||
|
CL_CODE_NM varchar2(60) ,
|
||||||
|
CL_CODE_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNCLCODE_PK PRIMARY KEY (CL_CODE)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTCCMMNCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNCODE (
|
||||||
|
CODE_ID varchar2(6) NOT NULL,
|
||||||
|
CODE_ID_NM varchar2(60) ,
|
||||||
|
CODE_ID_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
CL_CODE char(3) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNCODE_PK PRIMARY KEY (CODE_ID),
|
||||||
|
CONSTRAINT LETTCCMMNCODE_ibfk_1 FOREIGN KEY (CL_CODE) REFERENCES LETTCCMMNCLCODE (CL_CODE)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTCCMMNDETAILCODE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTCCMMNDETAILCODE (
|
||||||
|
CODE_ID varchar2(6) NOT NULL,
|
||||||
|
CODE varchar2(15) NOT NULL,
|
||||||
|
CODE_NM varchar2(60) ,
|
||||||
|
CODE_DC varchar2(200) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_PK PRIMARY KEY (CODE_ID,CODE),
|
||||||
|
CONSTRAINT LETTCCMMNDETAILCODE_ibfk_1 FOREIGN KEY (CODE_ID) REFERENCES LETTCCMMNCODE (CODE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNORGNZTINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNORGNZTINFO (
|
||||||
|
ORGNZT_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
ORGNZT_NM varchar2(20) NOT NULL,
|
||||||
|
ORGNZT_DC varchar2(100) ,
|
||||||
|
CONSTRAINT LETTNORGNZTINFO_PK PRIMARY KEY (ORGNZT_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNAUTHORGROUPINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNAUTHORGROUPINFO (
|
||||||
|
GROUP_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
GROUP_NM varchar2(60) NOT NULL,
|
||||||
|
GROUP_CREAT_DE char(20) NOT NULL,
|
||||||
|
GROUP_DC varchar2(100) ,
|
||||||
|
CONSTRAINT LETTNAUTHORGROUPINFO_PK PRIMARY KEY (GROUP_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNEMPLYRINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNEMPLYRINFO (
|
||||||
|
EMPLYR_ID varchar2(20) NOT NULL,
|
||||||
|
ORGNZT_ID char(20) ,
|
||||||
|
USER_NM varchar2(60) NOT NULL,
|
||||||
|
PASSWORD varchar2(200) NOT NULL,
|
||||||
|
EMPL_NO varchar2(20) ,
|
||||||
|
IHIDNUM varchar2(200) ,
|
||||||
|
SEXDSTN_CODE char(1) ,
|
||||||
|
BRTHDY char(20) ,
|
||||||
|
FXNUM varchar2(20) ,
|
||||||
|
HOUSE_ADRES varchar2(100) ,
|
||||||
|
PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
HOUSE_END_TELNO varchar2(4) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
OFFM_TELNO varchar2(20) ,
|
||||||
|
MBTLNUM varchar2(20) ,
|
||||||
|
EMAIL_ADRES varchar2(50) ,
|
||||||
|
OFCPS_NM varchar2(60) ,
|
||||||
|
HOUSE_MIDDLE_TELNO varchar2(4) ,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
PSTINST_CODE char(8) ,
|
||||||
|
EMPLYR_STTUS_CODE varchar2(15) NOT NULL,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CRTFC_DN_VALUE varchar2(20) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_PK PRIMARY KEY (EMPLYR_ID),
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_2 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT LETTNEMPLYRINFO_ibfk_1 FOREIGN KEY (ORGNZT_ID) REFERENCES LETTNORGNZTINFO (ORGNZT_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNTMPLATINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNTMPLATINFO (
|
||||||
|
TMPLAT_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
TMPLAT_NM varchar2(255) ,
|
||||||
|
TMPLAT_COURS varchar2(2000) ,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
TMPLAT_SE_CODE char(6) ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
CONSTRAINT LETTNTMPLATINFO_PK PRIMARY KEY (TMPLAT_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSMASTER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSMASTER (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
BBS_NM varchar2(255) NOT NULL,
|
||||||
|
BBS_INTRCN varchar2(2400) ,
|
||||||
|
BBS_TY_CODE char(6) NOT NULL,
|
||||||
|
BBS_ATTRB_CODE char(6) NOT NULL,
|
||||||
|
REPLY_POSBL_AT char(1) ,
|
||||||
|
FILE_ATCH_POSBL_AT char(1) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_NUMBER number(2,0) NOT NULL,
|
||||||
|
ATCH_POSBL_FILE_SIZE number(8,0) ,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
TMPLAT_ID char(20) ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM DATE NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
CONSTRAINT LETTNBBSMASTER_PK PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSUSE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSUSE (
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
TRGET_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
REGIST_SE_CODE char(6) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBSUSE_PK PRIMARY KEY (BBS_ID,TRGET_ID),
|
||||||
|
CONSTRAINT LETTNBBSUSE_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBS CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBS (
|
||||||
|
NTT_ID number(20,0) NOT NULL,
|
||||||
|
BBS_ID char(20) NOT NULL,
|
||||||
|
NTT_NO number(20,0) ,
|
||||||
|
NTT_SJ varchar2(2000) ,
|
||||||
|
NTT_CN CLOB,
|
||||||
|
ANSWER_AT char(1) ,
|
||||||
|
PARNTSCTT_NO number(10,0) ,
|
||||||
|
ANSWER_LC number(11) ,
|
||||||
|
SORT_ORDR number(8,0) ,
|
||||||
|
RDCNT number(10,0) ,
|
||||||
|
USE_AT char(1) NOT NULL,
|
||||||
|
NTCE_BGNDE char(20) ,
|
||||||
|
NTCE_ENDDE char(20) ,
|
||||||
|
NTCR_ID varchar2(20) ,
|
||||||
|
NTCR_NM varchar2(20) ,
|
||||||
|
PASSWORD varchar2(200) ,
|
||||||
|
ATCH_FILE_ID char(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE NOT NULL,
|
||||||
|
FRST_REGISTER_ID varchar2(20) NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBS_PK PRIMARY KEY (NTT_ID,BBS_ID),
|
||||||
|
CONSTRAINT LETTNBBS_ibfk_1 FOREIGN KEY (BBS_ID) REFERENCES LETTNBBSMASTER (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNBBSMASTEROPTN CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNBBSMASTEROPTN (
|
||||||
|
BBS_ID char(20) DEFAULT '' NOT NULL,
|
||||||
|
ANSWER_AT char(1) DEFAULT '' NOT NULL,
|
||||||
|
STSFDG_AT char(1) DEFAULT '' NOT NULL,
|
||||||
|
FRST_REGIST_PNTTM DATE DEFAULT SYSDATE NOT NULL,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
CONSTRAINT LETTNBBSMASTEROPTN_PK PRIMARY KEY (BBS_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNENTRPRSMBER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNENTRPRSMBER (
|
||||||
|
ENTRPRS_MBER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
ENTRPRS_SE_CODE char(15) ,
|
||||||
|
BIZRNO varchar2(10) ,
|
||||||
|
JURIRNO varchar2(13) ,
|
||||||
|
CMPNY_NM varchar2(60) NOT NULL,
|
||||||
|
CXFC varchar2(50) ,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
ADRES varchar2(100) ,
|
||||||
|
ENTRPRS_MIDDLE_TELNO varchar2(4) ,
|
||||||
|
FXNUM varchar2(20) ,
|
||||||
|
INDUTY_CODE char(15) ,
|
||||||
|
APPLCNT_NM varchar2(50) NOT NULL,
|
||||||
|
APPLCNT_IHIDNUM varchar2(200) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
ENTRPRS_MBER_STTUS varchar2(15) ,
|
||||||
|
ENTRPRS_MBER_PASSWORD varchar2(200) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
ENTRPRS_MBER_PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
ENTRPRS_END_TELNO varchar2(4) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
APPLCNT_EMAIL_ADRES varchar2(50) ,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_PK PRIMARY KEY (ENTRPRS_MBER_ID),
|
||||||
|
CONSTRAINT LETTNENTRPRSMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNFILE CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNFILE (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
CREAT_DT DATE NOT NULL,
|
||||||
|
USE_AT char(1) ,
|
||||||
|
CONSTRAINT LETTNFILE_PK PRIMARY KEY (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNFILEDETAIL CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNFILEDETAIL (
|
||||||
|
ATCH_FILE_ID char(20) NOT NULL,
|
||||||
|
FILE_SN number(10,0) NOT NULL,
|
||||||
|
FILE_STRE_COURS varchar2(2000) NOT NULL,
|
||||||
|
STRE_FILE_NM varchar2(255) NOT NULL,
|
||||||
|
ORIGNL_FILE_NM varchar2(255) ,
|
||||||
|
FILE_EXTSN varchar2(20) NOT NULL,
|
||||||
|
FILE_CN CLOB,
|
||||||
|
FILE_SIZE number(8,0) ,
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_PK PRIMARY KEY (ATCH_FILE_ID,FILE_SN),
|
||||||
|
CONSTRAINT LETTNFILEDETAIL_ibfk_1 FOREIGN KEY (ATCH_FILE_ID) REFERENCES LETTNFILE (ATCH_FILE_ID)
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNGNRLMBER CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNGNRLMBER (
|
||||||
|
MBER_ID varchar2(20) DEFAULT '' NOT NULL,
|
||||||
|
PASSWORD varchar2(200) NOT NULL,
|
||||||
|
PASSWORD_HINT varchar2(100) NOT NULL,
|
||||||
|
PASSWORD_CNSR varchar2(100) NOT NULL,
|
||||||
|
IHIDNUM varchar2(200) ,
|
||||||
|
MBER_NM varchar2(50) NOT NULL,
|
||||||
|
ZIP varchar2(6) ,
|
||||||
|
ADRES varchar2(100) ,
|
||||||
|
AREA_NO varchar2(4) ,
|
||||||
|
MBER_STTUS varchar2(15) ,
|
||||||
|
DETAIL_ADRES varchar2(100) ,
|
||||||
|
END_TELNO varchar2(4) ,
|
||||||
|
MBTLNUM varchar2(20) ,
|
||||||
|
GROUP_ID char(20) ,
|
||||||
|
MBER_FXNUM varchar2(20) ,
|
||||||
|
MBER_EMAIL_ADRES varchar2(50) ,
|
||||||
|
MIDDLE_TELNO varchar2(4) ,
|
||||||
|
SBSCRB_DE DATE ,
|
||||||
|
SEXDSTN_CODE char(1) ,
|
||||||
|
ESNTL_ID char(20) NOT NULL,
|
||||||
|
CONSTRAINT LETTNGNRLMBER_PK PRIMARY KEY (MBER_ID),
|
||||||
|
CONSTRAINT LETTNGNRLMBER_ibfk_1 FOREIGN KEY (GROUP_ID) REFERENCES LETTNAUTHORGROUPINFO (GROUP_ID) ON DELETE CASCADE
|
||||||
|
) ;
|
||||||
|
DROP TABLE LETTNSCHDULINFO CASCADE CONSTRAINTS;
|
||||||
|
CREATE TABLE LETTNSCHDULINFO (
|
||||||
|
SCHDUL_ID char(20) NOT NULL,
|
||||||
|
SCHDUL_SE char(1) ,
|
||||||
|
SCHDUL_DEPT_ID varchar2(20) ,
|
||||||
|
SCHDUL_KND_CODE varchar2(20) ,
|
||||||
|
SCHDUL_BEGINDE char(20) ,
|
||||||
|
SCHDUL_ENDDE char(20) ,
|
||||||
|
SCHDUL_NM varchar2(255) ,
|
||||||
|
SCHDUL_CN varchar2(2500) ,
|
||||||
|
SCHDUL_PLACE varchar2(255) ,
|
||||||
|
SCHDUL_IPCR_CODE char(1) ,
|
||||||
|
SCHDUL_CHARGER_ID varchar2(20) ,
|
||||||
|
ATCH_FILE_ID char(20) ,
|
||||||
|
FRST_REGIST_PNTTM DATE ,
|
||||||
|
FRST_REGISTER_ID varchar2(20) ,
|
||||||
|
LAST_UPDT_PNTTM DATE ,
|
||||||
|
LAST_UPDUSR_ID varchar2(20) ,
|
||||||
|
REPTIT_SE_CODE char(3) ,
|
||||||
|
CONSTRAINT LETTNSCHDULINFO_PK PRIMARY KEY (SCHDUL_ID)
|
||||||
|
) ;
|
||||||
|
CREATE OR REPLACE VIEW COMVNUSERMASTER ( ESNTL_ID,USER_ID,PASSWORD,USER_NM,USER_ZIP,USER_ADRES,USER_EMAIL,GROUP_ID, USER_SE, ORGNZT_ID )
|
||||||
|
AS
|
||||||
|
SELECT ESNTL_ID, MBER_ID,PASSWORD,MBER_NM,ZIP,ADRES,MBER_EMAIL_ADRES,' ','GNR' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNGNRLMBER
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,EMPLYR_ID,PASSWORD,USER_NM,ZIP,HOUSE_ADRES,EMAIL_ADRES,GROUP_ID ,'USR' AS USER_SE, ORGNZT_ID
|
||||||
|
FROM LETTNEMPLYRINFO
|
||||||
|
UNION ALL
|
||||||
|
SELECT ESNTL_ID,ENTRPRS_MBER_ID,ENTRPRS_MBER_PASSWORD,CMPNY_NM,ZIP,ADRES,APPLCNT_EMAIL_ADRES,' ' ,'ENT' AS USER_SE, ' ' ORGNZT_ID
|
||||||
|
FROM LETTNENTRPRSMBER
|
||||||
|
;
|
||||||
10
README.md
10
README.md
|
|
@ -1,10 +0,0 @@
|
||||||
# smartGeoinfo
|
|
||||||
|
|
||||||
해양수산부
|
|
||||||
스마트 지반정보 관리체계 수립 및
|
|
||||||
항만 지반조사 관리 방안 마련 연구용역
|
|
||||||
(해양수산부 항만개발과)
|
|
||||||
-
|
|
||||||
스마트 항만 지반정보 관리시스템
|
|
||||||
-
|
|
||||||
ICTWay에서 받은 소스기반으로 개발된 것들을 여기에 백업함.
|
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
@echo off
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
set source_prefix=src\main\webapp\
|
||||||
|
set target_prefix=D:\app_sgis\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\sgis\
|
||||||
|
set target_directory=D:\app_sgis\workspace\sgis\
|
||||||
|
|
||||||
|
set source_file=
|
||||||
|
set target_file=
|
||||||
|
|
||||||
|
for /f "delims=" %%i in (list.txt) do (
|
||||||
|
|
||||||
|
echo %%i | findstr /v "^#" > nul
|
||||||
|
if !errorlevel! == 0 (
|
||||||
|
set "line=%%i"
|
||||||
|
rem #으로 시작하지 않는 라인 처리
|
||||||
|
echo !line!
|
||||||
|
|
||||||
|
|
||||||
|
set line=%%i
|
||||||
|
|
||||||
|
if "!line:~-5!" == ".java" (
|
||||||
|
echo Skip
|
||||||
|
) else if "!line:~-4!" == ".xml" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
:: "src\main\resources\" 제거
|
||||||
|
set relative_path=!relative_path:*src\main\resources\=!
|
||||||
|
set target_file=%target_prefix%WEB-INF\classes\!relative_path!
|
||||||
|
) else if "!line:~-4!" == ".jsp" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-4!" == ".css" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-4!" == ".png" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-4!" == ".svg" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-3!" == ".js" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-4!" == ".reb" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-6!" == ".woff2" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-5!" == ".woff" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-4!" == ".otf" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
) else if "!line:~-11!" == ".properties" (
|
||||||
|
set source_file=%target_directory%!line!
|
||||||
|
set relative_path=!line:%source_prefix%=!
|
||||||
|
set target_file=%target_prefix%!relative_path!
|
||||||
|
)
|
||||||
|
|
||||||
|
rem Copy the source file to the target location, overwriting if necessary
|
||||||
|
echo Copying "!source_file!" to "!target_file!"
|
||||||
|
xcopy /i /Y "!source_file!" "!target_file!"
|
||||||
|
) else (
|
||||||
|
echo #은 무시됩니다
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
src\main\resources\egovframework\mapper\sgis\app\AppMainMapper.xml
|
||||||
|
src\main\webapp\WEB-INF\jsp\sgis\popup\cordinateSaupMap.jsp
|
||||||
|
|
@ -0,0 +1,687 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>smart_ground</groupId>
|
||||||
|
<artifactId>sgis</artifactId>
|
||||||
|
<packaging>war</packaging>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<name>sgis</name>
|
||||||
|
<url>http://www.egovframe.go.kr</url>
|
||||||
|
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>The Apache Software License, Version 2.0</name>
|
||||||
|
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<spring.maven.artifact.version>4.3.16.RELEASE</spring.maven.artifact.version>
|
||||||
|
<egovframework.rte.version>3.8.0</egovframework.rte.version>
|
||||||
|
<org.apache.tiles.version>3.0.8</org.apache.tiles.version>
|
||||||
|
<project.libdir>${project.basedir}/src/main/webapp/WEB-INF/lib</project.libdir>
|
||||||
|
<geotools.version>28-SNAPSHOT</geotools.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>mvn2s</id>
|
||||||
|
<url>https://repo1.maven.org/maven2/</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>egovframe</id>
|
||||||
|
<url>https://maven.egovframe.go.kr/maven/</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>osgeo</id>
|
||||||
|
<name>OSGeo Release Repository</name>
|
||||||
|
<url>https://repo.osgeo.org/repository/release/</url>
|
||||||
|
<snapshots><enabled>false</enabled></snapshots>
|
||||||
|
<releases><enabled>true</enabled></releases>
|
||||||
|
</repository>
|
||||||
|
<!-- Adding GeoSolutions repository to find missing dependencies -->
|
||||||
|
<repository>
|
||||||
|
<id>geosolutions</id>
|
||||||
|
<name>geosolutions repository</name>
|
||||||
|
<url>https://maven.geosolutions.it/</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>osgeo-snapshot</id>
|
||||||
|
<name>OSGeo Snapshot Repository</name>
|
||||||
|
<url>https://repo.osgeo.org/repository/snapshot/</url>
|
||||||
|
<snapshots><enabled>true</enabled></snapshots>
|
||||||
|
<releases><enabled>false</enabled></releases>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>egovframework.rte</groupId>
|
||||||
|
<artifactId>egovframework.rte.ptl.mvc</artifactId>
|
||||||
|
<version>${egovframework.rte.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>egovframework.rte</groupId>
|
||||||
|
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
|
||||||
|
<version>${egovframework.rte.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>egovframework.rte</groupId>
|
||||||
|
<artifactId>egovframework.rte.fdl.idgnr</artifactId>
|
||||||
|
<version>${egovframework.rte.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>egovframework.rte</groupId>
|
||||||
|
<artifactId>egovframework.rte.fdl.property</artifactId>
|
||||||
|
<version>${egovframework.rte.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>egovframework.rte</groupId>
|
||||||
|
<artifactId>egovframework.rte.fdl.string</artifactId>
|
||||||
|
<version>${egovframework.rte.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
<artifactId>servlet-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
<version>2.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
<artifactId>jstl</artifactId>
|
||||||
|
<version>1.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-dbcp</groupId>
|
||||||
|
<artifactId>commons-dbcp</artifactId>
|
||||||
|
<version>1.4</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-codec</groupId>
|
||||||
|
<artifactId>commons-codec</artifactId>
|
||||||
|
<version>1.9</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>taglibs</groupId>
|
||||||
|
<artifactId>standard</artifactId>
|
||||||
|
<version>1.1.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cglib</groupId>
|
||||||
|
<artifactId>cglib</artifactId>
|
||||||
|
<version>3.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.antlr</groupId>
|
||||||
|
<artifactId>antlr</artifactId>
|
||||||
|
<version>3.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-compress</artifactId>
|
||||||
|
<version>1.18</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hsqldb</groupId>
|
||||||
|
<artifactId>hsqldb</artifactId>
|
||||||
|
<version>2.3.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- xml to json -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.json</groupId>
|
||||||
|
<artifactId>json</artifactId>
|
||||||
|
<version>20180130</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- maria driver -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mariadb.jdbc</groupId>
|
||||||
|
<artifactId>mariadb-java-client</artifactId>
|
||||||
|
<version>2.2.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- postgresql driver -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.postgresql</groupId>
|
||||||
|
<artifactId>postgresql</artifactId>
|
||||||
|
<version>42.2.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Sql Param Mapping -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.lazyluke</groupId>
|
||||||
|
<artifactId>log4jdbc-remix</artifactId>
|
||||||
|
<version>0.2.7</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- mysql driver -->
|
||||||
|
<!--
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<version>5.1.31</version>
|
||||||
|
</dependency>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- oracle 10g driver -->
|
||||||
|
<!--
|
||||||
|
<dependency>
|
||||||
|
<groupId>ojdbc</groupId>
|
||||||
|
<artifactId>ojdbc</artifactId>
|
||||||
|
<version>14</version>
|
||||||
|
</dependency>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- altibase driver -->
|
||||||
|
<!--
|
||||||
|
<dependency>
|
||||||
|
<groupId>altibase</groupId>
|
||||||
|
<artifactId>altibase-jdbc-driver</artifactId>
|
||||||
|
<version>5.1.3.18</version>
|
||||||
|
</dependency>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- tibero driver -->
|
||||||
|
<!--
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.tmax.tibero</groupId>
|
||||||
|
<artifactId>tibero-jdbc</artifactId>
|
||||||
|
<version>3.0</version>
|
||||||
|
</dependency>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- cubrid driver -->
|
||||||
|
<!--
|
||||||
|
<dependency>
|
||||||
|
<groupId>cubrid</groupId>
|
||||||
|
<artifactId>cubrid-jdbc</artifactId>
|
||||||
|
<version>8.4</version>
|
||||||
|
</dependency>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- log4jdbc driver -->
|
||||||
|
<!--
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.googlecode.log4jdbc</groupId>
|
||||||
|
<artifactId>log4jdbc</artifactId>
|
||||||
|
<version>1.2</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-fileupload</groupId>
|
||||||
|
<artifactId>commons-fileupload</artifactId>
|
||||||
|
<version>1.3.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet.jsp</groupId>
|
||||||
|
<artifactId>jsp-api</artifactId>
|
||||||
|
<version>2.2</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ibm.icu</groupId>
|
||||||
|
<artifactId>icu4j</artifactId>
|
||||||
|
<version>53.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate</groupId>
|
||||||
|
<artifactId>hibernate-validator</artifactId>
|
||||||
|
<version>5.2.4.Final</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- tiles -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.tiles</groupId>
|
||||||
|
<artifactId>tiles-jsp</artifactId>
|
||||||
|
<version>${org.apache.tiles.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.tiles</groupId>
|
||||||
|
<artifactId>tiles-servlet</artifactId>
|
||||||
|
<version>${org.apache.tiles.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.tiles</groupId>
|
||||||
|
<artifactId>tiles-core</artifactId>
|
||||||
|
<version>${org.apache.tiles.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.tiles</groupId>
|
||||||
|
<artifactId>tiles-extras</artifactId>
|
||||||
|
<version>${org.apache.tiles.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- //tiles -->
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.minidev</groupId>
|
||||||
|
<artifactId>json-smart</artifactId>
|
||||||
|
<version>2.4.7</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-core</artifactId>
|
||||||
|
<version>2.12.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
<version>2.12.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-annotations</artifactId>
|
||||||
|
<version>2.12.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||||
|
<version>2.12.4</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.googlecode.json-simple</groupId>
|
||||||
|
<artifactId>json-simple</artifactId>
|
||||||
|
<version>1.1.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- apach poi -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi</artifactId>
|
||||||
|
<version>4.0.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml</artifactId>
|
||||||
|
<version>4.0.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-io</groupId>
|
||||||
|
<artifactId>commons-io</artifactId>
|
||||||
|
<version>2.4</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-core</artifactId>
|
||||||
|
<version>2.17.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.logging.log4j</groupId>
|
||||||
|
<artifactId>log4j-slf4j-impl</artifactId>
|
||||||
|
<version>2.17.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.13.2</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.geotools</groupId>
|
||||||
|
<artifactId>gt-epsg-hsql</artifactId>
|
||||||
|
<version>${geotools.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.geotools.jdbc</groupId>
|
||||||
|
<artifactId>gt-jdbc-postgis</artifactId>
|
||||||
|
<version>${geotools.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.geotools</groupId>
|
||||||
|
<artifactId>gt-swing</artifactId>
|
||||||
|
<version>${geotools.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Adding missing it.geosolutions.jaiext.* dependencies -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>it.geosolutions.jaiext.lookup</groupId>
|
||||||
|
<artifactId>jt-lookup</artifactId>
|
||||||
|
<version>1.1.24</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>it.geosolutions.jaiext.bandcombine</groupId>
|
||||||
|
<artifactId>jt-bandcombine</artifactId>
|
||||||
|
<version>1.1.24</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>it.geosolutions.jaiext.format</groupId>
|
||||||
|
<artifactId>jt-format</artifactId>
|
||||||
|
<version>1.1.24</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>it.geosolutions.jaiext.utilities</groupId>
|
||||||
|
<artifactId>jt-utilities</artifactId>
|
||||||
|
<version>1.1.24</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>it.geosolutions.jaiext.shadedrelief</groupId>
|
||||||
|
<artifactId>jt-shadedrelief</artifactId>
|
||||||
|
<version>1.1.24</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>it.geosolutions.jaiext.imagefunction</groupId>
|
||||||
|
<artifactId>jt-imagefunction</artifactId>
|
||||||
|
<version>1.1.24</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.24</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.code.gson</groupId>
|
||||||
|
<artifactId>gson</artifactId>
|
||||||
|
<version>2.9.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Mapping XmlView -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jdom</groupId>
|
||||||
|
<artifactId>jdom</artifactId>
|
||||||
|
<version>2.0.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>batik-all</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\batik-all.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>js</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\js.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>kabeja</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\kabeja-0.4.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>kabeja-svg</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\kabeja-svg-0.4.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>kabeja-xslt</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\kabeja-xslt.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>miethxml-toolkit</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\miethxml-toolkit.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>miethxml-ui</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\miethxml-ui.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>pdf-transcoder</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\pdf-transcoder.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>xml-apis-ext</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\xml-apis-ext.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kabeja</groupId>
|
||||||
|
<artifactId>xml-apis</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}\src\main\webapp\WEB-INF\lib\xml-apis.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.python</groupId>
|
||||||
|
<artifactId>jython-standalone</artifactId>
|
||||||
|
<version>2.7.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.python</groupId>
|
||||||
|
<artifactId>jython-standalone</artifactId>
|
||||||
|
<version>2.7.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.geotools</groupId>
|
||||||
|
<artifactId>gt-shapefile</artifactId>
|
||||||
|
<version>${geotools.version}</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/gt-shapefile-28-SNAPSHOT.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.geotools</groupId>
|
||||||
|
<artifactId>gt-main</artifactId>
|
||||||
|
<version>${geotools.version}</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/gt-main-28-SNAPSHOT.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<defaultGoal>install</defaultGoal>
|
||||||
|
<directory>${basedir}/target</directory>
|
||||||
|
<finalName>smart_ground</finalName>
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.tomcat.maven</groupId>
|
||||||
|
<artifactId>tomcat7-maven-plugin</artifactId>
|
||||||
|
<version>2.2</version>
|
||||||
|
<configuration>
|
||||||
|
<port>80</port>
|
||||||
|
<path>/</path>
|
||||||
|
<systemProperties>
|
||||||
|
<JAVA_OPTS>-Xms256m -Xmx768m -XX:MaxPermSize=256m</JAVA_OPTS>
|
||||||
|
</systemProperties>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>1.8</source>
|
||||||
|
<target>1.8</target>
|
||||||
|
<encoding>UTF-8</encoding>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>hibernate3-maven-plugin</artifactId>
|
||||||
|
<version>2.1</version>
|
||||||
|
<configuration>
|
||||||
|
<components>
|
||||||
|
<component>
|
||||||
|
<name>hbm2ddl</name>
|
||||||
|
<implementation>annotationconfiguration</implementation>
|
||||||
|
</component>
|
||||||
|
</components>
|
||||||
|
</configuration>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hsqldb</groupId>
|
||||||
|
<artifactId>hsqldb</artifactId>
|
||||||
|
<version>2.3.2</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</plugin>
|
||||||
|
<!-- EMMA -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>emma-maven-plugin</artifactId>
|
||||||
|
<version>1.0-alpha-3</version>
|
||||||
|
</plugin>
|
||||||
|
<!-- PMD manven plugin -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-pmd-plugin</artifactId>
|
||||||
|
<version>3.1</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<!-- EMMA -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skipTests>true</skipTests>
|
||||||
|
<forkMode>once</forkMode>
|
||||||
|
<reportFormat>xml</reportFormat>
|
||||||
|
<excludes>
|
||||||
|
<exclude>**/Abstract*.java</exclude>
|
||||||
|
<exclude>**/*Suite.java</exclude>
|
||||||
|
</excludes>
|
||||||
|
<includes>
|
||||||
|
<include>**/*Test.java</include>
|
||||||
|
</includes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>emma-maven-plugin</artifactId>
|
||||||
|
<inherited>true</inherited>
|
||||||
|
</plugin>
|
||||||
|
<!-- JavaDoc -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
|
<version>2.9.1</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<reporting>
|
||||||
|
<outputDirectory>${basedir}/target/site</outputDirectory>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||||
|
<version>2.7</version>
|
||||||
|
<reportSets>
|
||||||
|
<reportSet>
|
||||||
|
<id>sunlink</id>
|
||||||
|
<reports>
|
||||||
|
<report>javadoc</report>
|
||||||
|
</reports>
|
||||||
|
<inherited>true</inherited>
|
||||||
|
<configuration>
|
||||||
|
<links>
|
||||||
|
<link>http://docs.oracle.com/javase/6/docs/api/</link>
|
||||||
|
</links>
|
||||||
|
</configuration>
|
||||||
|
</reportSet>
|
||||||
|
</reportSets>
|
||||||
|
</plugin>
|
||||||
|
<!-- JUnit Test Results & EMMA Coverage Reporting -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>emma-maven-plugin</artifactId>
|
||||||
|
<inherited>true</inherited>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>surefire-report-maven-plugin</artifactId>
|
||||||
|
<inherited>true</inherited>
|
||||||
|
<reportSets>
|
||||||
|
<reportSet>
|
||||||
|
<reports>
|
||||||
|
<report>report-only</report>
|
||||||
|
</reports>
|
||||||
|
</reportSet>
|
||||||
|
</reportSets>
|
||||||
|
</plugin>
|
||||||
|
<!-- Generating JavaDoc Report -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<minmemory>128m</minmemory>
|
||||||
|
<maxmemory>512m</maxmemory>
|
||||||
|
<encoding>${encoding}</encoding>
|
||||||
|
<docencoding>${encoding}</docencoding>
|
||||||
|
<charset>${encoding}</charset>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<!-- Generating Java Source in HTML -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-jxr-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<inputEncoding>${encoding}</inputEncoding>
|
||||||
|
<outputEncoding>${encoding}</outputEncoding>
|
||||||
|
<linkJavadoc>true</linkJavadoc>
|
||||||
|
<javadocDir>apidocs</javadocDir>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</reporting>
|
||||||
|
</project>
|
||||||
|
|
@ -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.
|
||||||
|
*
|
||||||
|
* <p>Particularly useful for storing Strings with more than 4000 characters in an
|
||||||
|
* Oracle database (only possible via CLOBs), in combination with OracleLobHandler.
|
||||||
|
*
|
||||||
|
* <p>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) {
|
||||||
|
LOGGER.debug("ie: {}", 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,408 @@
|
||||||
|
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 <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2010.11.09 장동한 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
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
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -6750233818675360686L;
|
||||||
|
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 String m_sDiffChar ="()[]{}\"',:;= \t\r\n%!+-";
|
||||||
|
//private String m_sDiffChar ="()[]{}\"',:;=%!+-";
|
||||||
|
private 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)
|
||||||
|
@Override
|
||||||
|
public void release() {
|
||||||
|
super.release();
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
// *********************************************************************
|
||||||
|
// Tag logic
|
||||||
|
|
||||||
|
// evaluates 'value' and determines if the body should be evaluted
|
||||||
|
@Override
|
||||||
|
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
|
||||||
|
@Override
|
||||||
|
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 <tt>text</tt> to <tt>pageContext</tt>'s current JspWriter. If
|
||||||
|
* <tt>escapeXml</tt> 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;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
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");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
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);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 발생된 Exception을 처리한다.
|
||||||
|
*/
|
||||||
|
public void occur(Exception ex, String packageName) {
|
||||||
|
LOGGER.debug("[HANDLER][PACKAGE]::: {}", packageName);
|
||||||
|
LOGGER.debug("[HANDLER][Exception]:::", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
package egovframework.com.cmm;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.cmmn.trace.handler.TraceHandler;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Class Name : EgovComTraceHandler.java
|
||||||
|
* @Description : 공통서비스의 trace 처리 클래스
|
||||||
|
* @Modification Information
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- ------- -------------------
|
||||||
|
* 2011. 09. 30. JJY
|
||||||
|
*
|
||||||
|
* @author JJY
|
||||||
|
* @since 2011. 9. 30.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class EgovComTraceHandler implements TraceHandler {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(EgovComTraceHandler.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 발생된 메시지를 출력한다.
|
||||||
|
*/
|
||||||
|
public void todo(Class<?> clazz, String message) {
|
||||||
|
//System.out.println("log ==> DefaultTraceHandler run...............");
|
||||||
|
LOGGER.debug("[TRACE]CLASS::: {}", clazz.getName());
|
||||||
|
LOGGER.debug("[TRACE]MESSAGE::: {}", message);
|
||||||
|
//이곳에서 후속처리로 필요한 액션을 취할 수 있다.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- ------------- ----------------------
|
||||||
|
* 2011.09.15 서준식 최초 생성
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Service("egovUtil")
|
||||||
|
public class EgovComponentChecker extends EgovAbstractServiceImpl implements ApplicationContextAware{
|
||||||
|
|
||||||
|
|
||||||
|
public static ApplicationContext context;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.03.11 이문준 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- ------------- ----------------------
|
||||||
|
* 2011. 9. 16. 서준식 이미지 경로에 ContextPath추가
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class ImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware{
|
||||||
|
|
||||||
|
private ServletContext servletContext;
|
||||||
|
|
||||||
|
public ImagePaginationRenderer() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initVariables(){
|
||||||
|
firstPageLabel = "<li> </li><li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/egovframework/com/cmm/mod/icon/icon_prevend.gif\" alt=\"처음\" border=\"0\"/></a></li>";
|
||||||
|
previousPageLabel = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/egovframework/com/cmm/mod/icon/icon_prev.gif\" alt=\"이전\" border=\"0\"/></a></li>";
|
||||||
|
currentPageLabel = "<li><strong>{0}</strong></li>";
|
||||||
|
otherPageLabel = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a></li>";
|
||||||
|
nextPageLabel = "<li> <a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/egovframework/com/cmm/mod/icon/icon_next.gif\" alt=\"다음\" border=\"0\"/></a></li>";
|
||||||
|
lastPageLabel = "<li><a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/egovframework/com/cmm/mod/icon/icon_nextend.gif\" alt=\"마지막\" border=\"0\"/></a></li>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void setServletContext(ServletContext servletContext) {
|
||||||
|
this.servletContext = servletContext;
|
||||||
|
initVariables();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2011.08.26 정진오 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
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(대분류 구분)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package egovframework.com.cmm.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : Mapper1.java
|
||||||
|
* @Date : 2021. 9. 7.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Discription : mybatis db1 mapper
|
||||||
|
*/
|
||||||
|
@Target({ElementType.TYPE})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
@Component
|
||||||
|
public @interface Mapper1 {
|
||||||
|
String value() default "";
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package egovframework.com.cmm.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : Mapper2.java
|
||||||
|
* @Date : 2021. 9. 7.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Discription : mybatis db2 mapper
|
||||||
|
*/
|
||||||
|
@Target({ElementType.TYPE})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
@Component
|
||||||
|
public @interface Mapper2 {
|
||||||
|
String value() default "";
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security).
|
||||||
|
*
|
||||||
|
* 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() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,109 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security).
|
||||||
|
*
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
package egovframework.com.cmm.interceptor;
|
||||||
|
|
||||||
|
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.web.servlet.ModelAndView;
|
||||||
|
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||||
|
|
||||||
|
import egovframework.com.cmm.util.EgovUserDetailsHelper;
|
||||||
|
import sgis.com.vo.SessionVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인증여부 체크 인터셉터
|
||||||
|
* @author 공통서비스 개발팀 서준식
|
||||||
|
* @since 2011.07.01
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2011.07.01 서준식 최초 생성
|
||||||
|
* 2011.09.07 서준식 인증이 필요없는 URL을 패스하는 로직 추가
|
||||||
|
* 2017.08.31 장동한 인증된 사용자 체크로직 변경 및 관리자 권한 체크 로직 추가
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
public class AuthenticInterceptor extends HandlerInterceptorAdapter {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(AuthenticInterceptor.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인증된 사용자 여부로 인증 여부를 체크한다.
|
||||||
|
* 관리자 권한에 따라 접근 페이지 권한을 체크한다.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
String sessId = httpSession.getId();
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
logger.info("######################## request : "+request);
|
||||||
|
logger.info("######################## AuthenticInterceptor : preHandle => session id : [" + sessId + "], uri : [" + uri +"]");
|
||||||
|
String ajax = request.getHeader("x-requested-with");//XMLHttpRequest
|
||||||
|
if("XMLHttpRequest".equals(ajax)) {
|
||||||
|
logger.info("ajax request ["+uri+"]");
|
||||||
|
}else {
|
||||||
|
//인증된사용자 여부
|
||||||
|
boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
|
||||||
|
|
||||||
|
//사용자 인증 체크
|
||||||
|
if(isAuthenticated) {
|
||||||
|
SessionVO loginVO = (SessionVO) EgovUserDetailsHelper.getAuthenticatedUser();
|
||||||
|
String userIP = request.getRemoteAddr();
|
||||||
|
logger.info("Authenticated User - ID : " + loginVO.getsUserId() + ", IP : " + userIP + ", authList : " + loginVO.getAuthList());
|
||||||
|
|
||||||
|
}else{
|
||||||
|
if(uri.contains("/sgis/portal/portalMain.do") || uri.contains("/com/loginForm.do")) { //예외처리
|
||||||
|
return true;
|
||||||
|
}else {
|
||||||
|
String retUrl = "redirect:/sgis/portal/portalMain.do";
|
||||||
|
|
||||||
|
ModelAndView modelAndView = new ModelAndView(retUrl); //세션이 없는 경우 로그인 화면으로 이동
|
||||||
|
throw new SessionExpiredException(modelAndView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
String sessId = httpSession.getId();
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
|
||||||
|
logger.info("######################## AuthenticInterceptor : postHandle => session id : [" + sessId + "], uri : [" + uri +"]");
|
||||||
|
logger.info("selected uri : " + uri);
|
||||||
|
|
||||||
|
/*String businessCode = request.getParameter("businessCode"); //사업코드
|
||||||
|
String holeCode = request.getParameter("holeCode"); //시추공코드
|
||||||
|
|
||||||
|
HashMap<String,Object> params = new HashMap<String,Object>();
|
||||||
|
|
||||||
|
params.put("businessCode", businessCode);
|
||||||
|
params.put("holeCode", holeCode);
|
||||||
|
|
||||||
|
|
||||||
|
setLeftMenu(params, modelAndView);*/
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,105 @@
|
||||||
|
package egovframework.com.cmm.interceptor;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
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.web.servlet.ModelAndView;
|
||||||
|
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||||
|
|
||||||
|
import egovframework.com.cmm.util.EgovSessionCookieUtil;
|
||||||
|
import egovframework.com.cmm.util.EgovUserDetailsHelper;
|
||||||
|
import sgis.com.service.ComLogService;
|
||||||
|
import sgis.com.vo.ComConnectLogVO;
|
||||||
|
import sgis.com.vo.SessionVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : LoginInterceptor.java
|
||||||
|
* @Date : 2021. 9. 30.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Discription : 로그인 인터셉터
|
||||||
|
*/
|
||||||
|
public class LoginInterceptor extends HandlerInterceptorAdapter {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);
|
||||||
|
|
||||||
|
@Resource(name="ComLogService")
|
||||||
|
private ComLogService comLogService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
String sessId = httpSession.getId();
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
|
||||||
|
logger.info("######################## LoginInterceptor : preHandle => session id : [" + sessId + "], uri : [" + uri +"]");
|
||||||
|
if("/com/logoutAction.do".equals(uri)) {
|
||||||
|
//로그아웃 이력 저장
|
||||||
|
//사용자유형(user_grp) - SA:최고관리자, S:관리자, G:해수부, C:기업, P:개인
|
||||||
|
//로그인방식(login_type) - IDPW:id/pw인증로그인, LOUT:로그아웃
|
||||||
|
SessionVO loginVO = (SessionVO) EgovUserDetailsHelper.getAuthenticatedUser();
|
||||||
|
String cntnIp = request.getRemoteAddr();
|
||||||
|
String certKind = "LOUT";
|
||||||
|
String userId = loginVO.getsUserId();
|
||||||
|
String userGrp = loginVO.getsUserGrp();
|
||||||
|
if(userId == null) {
|
||||||
|
logger.debug("Logout ID is null. connect ip is [" + cntnIp + "]");
|
||||||
|
}else {
|
||||||
|
ComConnectLogVO comConnectLogVO = new ComConnectLogVO();
|
||||||
|
comConnectLogVO.setUserId(userId);
|
||||||
|
comConnectLogVO.setUserGrp(userGrp);
|
||||||
|
comConnectLogVO.setCertKind(certKind);
|
||||||
|
comConnectLogVO.setCntnIp(cntnIp);
|
||||||
|
comLogService.insertConnectLogInfo(comConnectLogVO);
|
||||||
|
logger.info("Logout ID : " + loginVO.getsUserId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*@Override
|
||||||
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
String sessId = httpSession.getId();
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
logger.info("######################## LoginInterceptor : postHandle => session id : [" + sessId + "], uri : [" + uri +"]");
|
||||||
|
if("/com/specLoginAction.do".contains(uri) || "/com/loginAction.do".equals(uri) || "/com/exLoginAction.do".equals(uri) || "/com/login/certLoginPass.do".equals(uri) || "/com/loginMembAction.do".equals(uri)) {
|
||||||
|
//로그인 이력 저장
|
||||||
|
//사용자유형(user_grp) - SA:최고관리자, S:관리자, G:해수부, C:기업, P:개인
|
||||||
|
//로그인방식(login_type) - IDPW:id/pw인증로그인, LOUT:로그아웃
|
||||||
|
SessionVO loginVO = (SessionVO) EgovUserDetailsHelper.getAuthenticatedUser();
|
||||||
|
String cntnIp = request.getRemoteAddr();
|
||||||
|
String certKind = loginVO.getsLoginType();
|
||||||
|
String userId = loginVO.getsUserId();
|
||||||
|
String userGrp = loginVO.getsUserGrp();
|
||||||
|
|
||||||
|
if(userId == null) {
|
||||||
|
logger.debug("Login ID is null. connect ip is [" + cntnIp + "]");
|
||||||
|
}else {
|
||||||
|
//로그인 이력 저장하고 세션에 접속일련번호 저장
|
||||||
|
ComConnectLogVO comConnectLogVO = new ComConnectLogVO();
|
||||||
|
comConnectLogVO.setUserId(userId);
|
||||||
|
comConnectLogVO.setUserGrp(userGrp);
|
||||||
|
comConnectLogVO.setCertKind(certKind);
|
||||||
|
comConnectLogVO.setCntnIp(cntnIp);
|
||||||
|
comLogService.insertConnectLogInfo(comConnectLogVO);
|
||||||
|
String cntnSn = comConnectLogVO.getCntnSn();
|
||||||
|
loginVO.setsCntnSn(cntnSn);
|
||||||
|
EgovSessionCookieUtil.setSessionAttribute(request, "LoginVO", loginVO);
|
||||||
|
logger.info("Login ID : " + loginVO.getsUserId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
String sessId = httpSession.getId();
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
logger.info("######################## LoginInterceptor : afterCompletion => session id : [" + sessId + "], uri : [" + uri +"]");
|
||||||
|
super.afterCompletion(request, response, handler, ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package egovframework.com.cmm.interceptor;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import org.springframework.web.servlet.ModelAndViewDefiningException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : SessionExpiredException.java
|
||||||
|
* @Date : 2022. 5. 10.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Discription : 세션 만료 예외 처리
|
||||||
|
*/
|
||||||
|
public class SessionExpiredException extends ModelAndViewDefiningException {
|
||||||
|
//serialVersionUID
|
||||||
|
private static final long serialVersionUID = -8451123258683446825L;
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(SessionExpiredException.class);
|
||||||
|
/**
|
||||||
|
* @param modelAndView
|
||||||
|
*/
|
||||||
|
public SessionExpiredException(ModelAndView modelAndView) {
|
||||||
|
super(modelAndView);
|
||||||
|
logger.info("session expired : move to [" + modelAndView.getViewName() + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
package egovframework.com.cmm.interceptor;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : LoginInterceptor.java
|
||||||
|
* @Date : 2021. 9. 30.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Discription : 로그인 인터셉터
|
||||||
|
*/
|
||||||
|
public class noLoginInterceptor extends HandlerInterceptorAdapter {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(noLoginInterceptor.class);
|
||||||
|
|
||||||
|
/*@Resource(name="ComLogService")
|
||||||
|
private ComLogService comLogService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ComLoginService comLoginService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
String sessId = httpSession.getId();
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
logger.info("######################## noLoginInterceptor1 : preHandle => session id : [" + sessId + "], uri : [" + uri +"]");
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
String sessId = httpSession.getId();
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
logger.info("######################## noLoginInterceptor2 : postHandle => session id : [" + sessId + "], uri : [" + uri +"]");
|
||||||
|
|
||||||
|
SessionVO sessionVO = new SessionVO();
|
||||||
|
sessionVO = (SessionVO) httpSession.getAttribute("LoginVO");
|
||||||
|
String grpCd = "";
|
||||||
|
if(sessionVO != null) {
|
||||||
|
grpCd = sessionVO.getsUserGrp();
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info("grpCd ========"+ grpCd);
|
||||||
|
|
||||||
|
//시스템 메뉴정보
|
||||||
|
ComMenuVO comMenuVO = new ComMenuVO();
|
||||||
|
comMenuVO.setSysCd("PET");
|
||||||
|
comMenuVO.setUseYn("Y");
|
||||||
|
comMenuVO.setJobAuthList(grpCd);
|
||||||
|
|
||||||
|
System.out.println("sysCd ===== "+ comMenuVO.getSysCd());
|
||||||
|
|
||||||
|
List<?> menuList = comLoginService.selectComMenuList(comMenuVO);
|
||||||
|
|
||||||
|
JSONArray appMap = JsonUtil.getJsonArrayFromList((List<Map<String, Object>>) menuList );
|
||||||
|
EgovSessionCookieUtil.setSessionAttribute(request, "menuList", menuList);
|
||||||
|
EgovSessionCookieUtil.setSessionAttribute(request, "jsonMenuList", appMap);
|
||||||
|
EgovSessionCookieUtil.setSessionAttribute(request, "userGrp", grpCd);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||||
|
HttpSession httpSession = request.getSession();
|
||||||
|
String sessId = httpSession.getId();
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
logger.info("######################## noLoginInterceptor3 : afterCompletion => session id : [" + sessId + "], uri : [" + uri +"]");
|
||||||
|
super.afterCompletion(request, response, handler, ex);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package egovframework.com.cmm.properties;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.config.PropertiesFactoryBean;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : GlobalsProperties.java
|
||||||
|
* @Date : 2022. 3. 25.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Discription :
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class PropertiesConfig {
|
||||||
|
@Bean
|
||||||
|
public PropertiesFactoryBean globalsProperties() {
|
||||||
|
PropertiesFactoryBean bean = new PropertiesFactoryBean();
|
||||||
|
bean.setLocation(new ClassPathResource("egovframework/egovProps/globals.properties"));
|
||||||
|
return bean;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,194 @@
|
||||||
|
package egovframework.com.cmm.service;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공통상세코드 모델 클래스
|
||||||
|
* @author 공통서비스 개발팀 이중호
|
||||||
|
* @since 2009.04.01
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.04.01 이중호 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class CmmnDetailCode implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -6508801327314181679L;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 코드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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,189 @@
|
||||||
|
package egovframework.com.cmm.service;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 클래스
|
||||||
|
* @author 공통서비스개발팀 이삼섭
|
||||||
|
* @since 2009.06.01
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.3.11 이삼섭 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class ComDefaultCodeVO implements Serializable {
|
||||||
|
/**
|
||||||
|
* serialVersion UID
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -2020648489890016404L;
|
||||||
|
|
||||||
|
/** 코드 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,167 @@
|
||||||
|
package egovframework.com.cmm.service;
|
||||||
|
|
||||||
|
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
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ComDefaultVO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** 검색조건 */
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,222 @@
|
||||||
|
package egovframework.com.cmm.service;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
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.util.EgovResourceCloseHelper;
|
||||||
|
import egovframework.com.cmm.util.EgovWebUtil;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Name : EgovProperties.java
|
||||||
|
* Description : properties값들을 파일로부터 읽어와 Globals클래스의 정적변수로 로드시켜주는 클래스로
|
||||||
|
* 문자열 정보 기준으로 사용할 전역변수를 시스템 재시작으로 반영할 수 있도록 한다.
|
||||||
|
* Modification Information
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2009.01.19 박지욱 최초 생성
|
||||||
|
* 2011.07.20 서준식 Globals파일의 상대경로를 읽은 메서드 추가
|
||||||
|
* 2014.10.13 이기하 Globals.properties 값이 null일 경우 오류처리
|
||||||
|
* 2019.04.26 신용호 RELATIVE_PATH_PREFIX Path 적용 방식 개선
|
||||||
|
* @author 공통 서비스 개발팀 박지욱
|
||||||
|
* @since 2009. 01. 19
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
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 GLOBALS_PROPERTIES_FILE = System.getProperty("user.home") + FILE_SEPARATOR + "egovProps" +FILE_SEPARATOR + "globals.properties";
|
||||||
|
|
||||||
|
public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("com"));
|
||||||
|
//public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getProtectionDomain().getCodeSource().getLocation().getPath().substring(0,EgovProperties.class.getProtectionDomain().getCodeSource().getLocation().getPath().indexOf("WEB-INF/classes/")+"WEB-INF/classes/".length())+"egovframework/";
|
||||||
|
|
||||||
|
public static final String GLOBALS_PROPERTIES_FILE = RELATIVE_PATH_PREFIX + "egovProps" + FILE_SEPARATOR + "globals.properties";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인자로 주어진 문자열을 Key값으로 하는 상대경로 프로퍼티 값을 절대경로로 반환한다(Globals.java 전용)
|
||||||
|
* @param keyName String
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getPathProperty(String keyName) {
|
||||||
|
String value = "";
|
||||||
|
|
||||||
|
LOGGER.debug("getPathProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName);
|
||||||
|
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE));
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
|
||||||
|
value = props.getProperty(keyName);
|
||||||
|
value = (value == null) ? "" : value.trim();//KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value;
|
||||||
|
} catch (FileNotFoundException fne) {
|
||||||
|
LOGGER.debug("Property file not found.", fne);
|
||||||
|
throw new RuntimeException("Property file not found", fne);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOGGER.debug("Property file IO exception", ioe);
|
||||||
|
throw new RuntimeException("Property file IO exception", ioe);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다(Globals.java 전용)
|
||||||
|
* @param keyName String
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getProperty(String keyName) {
|
||||||
|
String value = "";
|
||||||
|
|
||||||
|
LOGGER.debug("===>>> getProperty"+EgovProperties.class.getProtectionDomain().getCodeSource().getLocation().getPath());
|
||||||
|
LOGGER.debug("getProperty : {} = {}", GLOBALS_PROPERTIES_FILE, keyName);
|
||||||
|
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE));
|
||||||
|
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
if (props.getProperty(keyName) == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
value = props.getProperty(keyName).trim();
|
||||||
|
} catch (FileNotFoundException fne) {
|
||||||
|
LOGGER.debug("Property file not found.", fne);
|
||||||
|
throw new RuntimeException("Property file not found", fne);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOGGER.debug("Property file IO exception", ioe);
|
||||||
|
throw new RuntimeException("Property file IO exception", ioe);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 상대 경로값을 절대 경로값으로 반환한다
|
||||||
|
* @param fileName String
|
||||||
|
* @param key String
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getPathProperty(String fileName, String key) {
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName));
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
fis.close();
|
||||||
|
|
||||||
|
String value = props.getProperty(key);
|
||||||
|
value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value;
|
||||||
|
|
||||||
|
return value;
|
||||||
|
} catch (FileNotFoundException fne) {
|
||||||
|
LOGGER.debug("Property file not found.", fne);
|
||||||
|
throw new RuntimeException("Property file not found", fne);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOGGER.debug("Property file IO exception", ioe);
|
||||||
|
throw new RuntimeException("Property file IO exception", ioe);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다
|
||||||
|
* @param fileName String
|
||||||
|
* @param key String
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String getProperty(String fileName, String key) {
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName));
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
fis.close();
|
||||||
|
|
||||||
|
String value = props.getProperty(key);
|
||||||
|
|
||||||
|
return value;
|
||||||
|
} catch (FileNotFoundException fne) {
|
||||||
|
LOGGER.debug("Property file not found.", fne);
|
||||||
|
throw new RuntimeException("Property file not found", fne);
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOGGER.debug("Property file IO exception", ioe);
|
||||||
|
throw new RuntimeException("Property file IO exception", ioe);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 주어진 프로파일의 내용을 파싱하여 (key-value) 형태의 구조체 배열을 반환한다.
|
||||||
|
* @param property String
|
||||||
|
* @return ArrayList
|
||||||
|
*/
|
||||||
|
public static ArrayList<Map<String, String>> loadPropertyFile(String property) {
|
||||||
|
|
||||||
|
// key - value 형태로 된 배열 결과
|
||||||
|
ArrayList<Map<String, String>> keyList = new ArrayList<Map<String, String>>();
|
||||||
|
|
||||||
|
String src = property.replace('\\', File.separatorChar).replace('/', File.separatorChar);
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
|
||||||
|
File srcFile = new File(EgovWebUtil.filePathBlackList(src));
|
||||||
|
if (srcFile.exists()) {
|
||||||
|
|
||||||
|
Properties props = new Properties();
|
||||||
|
fis = new FileInputStream(src);
|
||||||
|
props.load(new BufferedInputStream(fis));
|
||||||
|
fis.close();
|
||||||
|
|
||||||
|
Enumeration<?> plist = props.propertyNames();
|
||||||
|
if (plist != null) {
|
||||||
|
while (plist.hasMoreElements()) {
|
||||||
|
Map<String, String> map = new HashMap<String, String>();
|
||||||
|
String key = (String) plist.nextElement();
|
||||||
|
map.put(key, props.getProperty(key));
|
||||||
|
keyList.add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException ex) {
|
||||||
|
LOGGER.debug("IO Exception", ex);
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(fis);
|
||||||
|
}
|
||||||
|
|
||||||
|
return keyList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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<String> getAuthorities();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인증된 사용자 여부를 체크한다.
|
||||||
|
* @return Boolean - 인증된 사용자 여부(TRUE / FALSE)
|
||||||
|
*/
|
||||||
|
public Boolean isAuthenticated();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
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 {
|
||||||
|
//파일 업로드 원 파일명
|
||||||
|
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";
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
package egovframework.com.cmm.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IncludedInfo annotation을 바탕으로 화면에 표시할 정보를 구성하기 위한 VO 클래스
|
||||||
|
* @author 공통컴포넌트 정진오
|
||||||
|
* @since 2011.08.26
|
||||||
|
* @version 2.0.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2011.08.26 정진오 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package egovframework.com.cmm.service.impl;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import com.ibatis.sqlmap.client.SqlMapClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : DB1AbstractDAO.java
|
||||||
|
* @Date : 2021. 9. 7.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Discription : sqlSession2 연결 ibatis DAO
|
||||||
|
*/
|
||||||
|
public abstract class DB1AbstractDAO extends EgovAbstractDAO{
|
||||||
|
|
||||||
|
|
||||||
|
@Resource(name="sqlSession1")
|
||||||
|
public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
|
||||||
|
super.setSuperSqlMapClient(sqlMapClient);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package egovframework.com.cmm.service.impl;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import com.ibatis.sqlmap.client.SqlMapClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : DB2AbstractDAO.java
|
||||||
|
* @Date : 2021. 9. 7.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Discription : sqlSession2 연결 ibatis DAO
|
||||||
|
*/
|
||||||
|
public abstract class DB2AbstractDAO extends EgovAbstractDAO{
|
||||||
|
|
||||||
|
|
||||||
|
@Resource(name="sqlSession2")
|
||||||
|
public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
|
||||||
|
super.setSuperSqlMapClient(sqlMapClient);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- ------------- ----------------------
|
||||||
|
* 2011. 9. 23. 서준식 최초 생성
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public abstract class EgovComAbstractDAO extends EgovAbstractDAO{
|
||||||
|
|
||||||
|
//ibatis용 abstractDAO
|
||||||
|
@Resource(name="sqlMapClient")
|
||||||
|
public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
|
||||||
|
super.setSuperSqlMapClient(sqlMapClient);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,90 @@
|
||||||
|
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 sgis.com.vo.ComUserVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author 공통서비스 개발팀 서준식
|
||||||
|
* @since 2011. 8. 12.
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 개정이력(Modification Information)
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2011. 8. 12. 서준식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class EgovTestUserDetailsServiceImpl extends EgovAbstractServiceImpl implements
|
||||||
|
EgovUserDetailsService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object getAuthenticatedUser() {
|
||||||
|
|
||||||
|
ComUserVO loginVO = new ComUserVO();
|
||||||
|
/*loginVO.setUserId("TEST1");
|
||||||
|
loginVO.setUserNm("더미사용자");
|
||||||
|
loginVO.setPswd("1234=");
|
||||||
|
loginVO.setUserGroup("S");
|
||||||
|
loginVO.setDeptCd("1192000A");
|
||||||
|
loginVO.setDeptNm("법무행정팀");
|
||||||
|
loginVO.setTelNo("031-910-1234");
|
||||||
|
loginVO.setHpNo("010-1234-1234");
|
||||||
|
loginVO.setEmailId("egovframe@nia.or.kr");*/
|
||||||
|
return loginVO;
|
||||||
|
|
||||||
|
// return
|
||||||
|
// RequestContextHolder.getRequestAttributes().getAttribute("loginVO",
|
||||||
|
// RequestAttributes.SCOPE_SESSION);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getAuthorities() {
|
||||||
|
|
||||||
|
// 권한 설정을 리턴한다.
|
||||||
|
|
||||||
|
List<String> listAuth = new ArrayList<String>();
|
||||||
|
listAuth.add("APP"); //민원신청
|
||||||
|
listAuth.add("CAS"); //사건처리
|
||||||
|
listAuth.add("CON"); //위원회관리
|
||||||
|
listAuth.add("DOC"); //문서수발
|
||||||
|
listAuth.add("KMS"); //정보마당
|
||||||
|
listAuth.add("PET"); //민원사무처리
|
||||||
|
listAuth.add("QNA"); //민원상담
|
||||||
|
listAuth.add("RCV"); //민원접수
|
||||||
|
listAuth.add("STA"); //통계담당
|
||||||
|
listAuth.add("SYS"); //시스템관리
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 개정이력(Modification Information)
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2011. 8. 12. 서준식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class EgovUserDetailsSessionServiceImpl extends EgovAbstractServiceImpl implements
|
||||||
|
EgovUserDetailsService {
|
||||||
|
|
||||||
|
public Object getAuthenticatedUser() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return RequestContextHolder.getRequestAttributes().getAttribute("loginVO", RequestAttributes.SCOPE_SESSION);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getAuthorities() {
|
||||||
|
|
||||||
|
// 권한 설정을 리턴한다.
|
||||||
|
List<String> listAuth = new ArrayList<String>();
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2014.09.18 표준프레임워크센터 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,146 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,865 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.02.01 이중호 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class EgovDateUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 년, 월, 일을
|
||||||
|
* 증감한다. 년, 월, 일은 가감할 수를 의미하며, 음수를 입력할 경우 감한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
|
||||||
|
* @param year 가감할 년. 0이 입력될 경우 가감이 없다
|
||||||
|
* @param month 가감할 월. 0이 입력될 경우 가감이 없다
|
||||||
|
* @param day 가감할 일. 0이 입력될 경우 가감이 없다
|
||||||
|
* @return yyyyMMdd 형식의 날짜 문자열
|
||||||
|
* @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우.
|
||||||
|
* 입력 값이 <code>null</code>인 경우.
|
||||||
|
*/
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 년을
|
||||||
|
* 증감한다. <code>year</code>는 가감할 수를 의미하며, 음수를 입력할 경우 감한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
|
||||||
|
* @param year 가감할 년. 0이 입력될 경우 가감이 없다
|
||||||
|
* @return yyyyMMdd 형식의 날짜 문자열
|
||||||
|
* @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우.
|
||||||
|
* 입력 값이 <code>null</code>인 경우.
|
||||||
|
*/
|
||||||
|
public static String addYear(String dateStr, int year) {
|
||||||
|
return addYearMonthDay(dateStr, year, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 월을
|
||||||
|
* 증감한다. <code>month</code>는 가감할 수를 의미하며, 음수를 입력할 경우 감한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
|
||||||
|
* @param month 가감할 월. 0이 입력될 경우 가감이 없다
|
||||||
|
* @return yyyyMMdd 형식의 날짜 문자열
|
||||||
|
* @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우.
|
||||||
|
* 입력 값이 <code>null</code>인 경우.
|
||||||
|
*/
|
||||||
|
public static String addMonth(String dateStr, int month) {
|
||||||
|
return addYearMonthDay(dateStr, 0, month, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 일(day)를
|
||||||
|
* 증감한다. <code>day</code>는 가감할 수를 의미하며, 음수를 입력할 경우 감한다.
|
||||||
|
* <br/><br/>
|
||||||
|
* 위에 정의된 addDays 메서드는 사용자가 ParseException을 반드시 처리해야 하는 불편함이
|
||||||
|
* 있기 때문에 추가된 메서드이다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param dateStr 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
|
||||||
|
* @param day 가감할 일. 0이 입력될 경우 가감이 없다
|
||||||
|
* @return yyyyMMdd 형식의 날짜 문자열
|
||||||
|
* @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우.
|
||||||
|
* 입력 값이 <code>null</code>인 경우.
|
||||||
|
*/
|
||||||
|
public static String addDay(String dateStr, int day) {
|
||||||
|
return addYearMonthDay(dateStr, 0, 0, day);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열 <code>dateStr1</code>과 <code>
|
||||||
|
* dateStr2</code> 사이의 일 수를 구한다.<br>
|
||||||
|
* <code>dateStr2</code>가 <code>dateStr1</code> 보다 과거 날짜일 경우에는
|
||||||
|
* 음수를 반환한다. 동일한 경우에는 0을 반환한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param dateStr1 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
|
||||||
|
* @param dateStr2 날짜 문자열(yyyyMMdd, yyyy-MM-dd의 형식)
|
||||||
|
* @return 일 수 차이.
|
||||||
|
* @throws IllegalArgumentException 날짜 포맷이 정해진 바와 다를 경우.
|
||||||
|
* 입력 값이 <code>null</code>인 경우.
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>yyyyMMdd 혹은 yyyy-MM-dd 형식의 날짜 문자열을 입력 받아 유효한 날짜인지 검사.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>입력한 년, 월, 일이 유효한지 검사.</p>
|
||||||
|
*
|
||||||
|
* @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)로 쪼개 돌려준다<br/>
|
||||||
|
* <pre>
|
||||||
|
* ex) 20030405, ch(.) -> 2003.04.05
|
||||||
|
* ex) 200304, ch(.) -> 2003.04
|
||||||
|
* ex) 20040101,ch(/) --> 2004/01/01 로 리턴
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @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)로 쪼개 돌려준다 <br>
|
||||||
|
* <pre>
|
||||||
|
* ex) 151241, ch(/) -> 15/12/31
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @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";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>입력받은 연도가 윤년인지 아닌지 검사한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* DateUtil.isLeapYear(2004) = false
|
||||||
|
* DateUtil.isLeapYear(2005) = true
|
||||||
|
* DateUtil.isLeapYear(2006) = true
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param year 연도
|
||||||
|
* @return 윤년 여부
|
||||||
|
*/
|
||||||
|
public static boolean isLeapYear(int year) {
|
||||||
|
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재(한국기준) 날짜정보를 얻는다. <BR>
|
||||||
|
* 표기법은 yyyy-mm-dd <BR>
|
||||||
|
* @return String yyyymmdd형태의 현재 한국시간. <BR>
|
||||||
|
*/
|
||||||
|
public static String getToday() {
|
||||||
|
return getCurrentDate("");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 현재(한국기준) 날짜정보를 얻는다. <BR>
|
||||||
|
* 표기법은 yyyy-mm-dd <BR>
|
||||||
|
* @return String yyyymmdd형태의 현재 한국시간. <BR>
|
||||||
|
*/
|
||||||
|
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<String, String> toLunar(String sDate) {
|
||||||
|
String dateStr = validChkDate(sDate);
|
||||||
|
|
||||||
|
Map<String, String> hm = new HashMap<String, String>();
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2014.08.07 표준프레임워크센터 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
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<String, String> map = (Map<String, String>) 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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.cmm.util;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,313 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
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 org.apache.commons.codec.binary.Base64;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base64인코딩/디코딩 방식을 이용한 데이터를 암호화/복호화하는 Business Interface class
|
||||||
|
* @author 공통서비스개발팀 박지욱
|
||||||
|
* @since 2009.01.19
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.01.19 박지욱 최초 생성
|
||||||
|
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class EgovFileScrty {
|
||||||
|
// 파일구분자
|
||||||
|
static final char FILE_SEPARATOR = File.separatorChar;
|
||||||
|
// 버퍼사이즈
|
||||||
|
static final int BUFFER_SIZE = 1024;
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileScrty.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 파일을 암호화하는 기능
|
||||||
|
*
|
||||||
|
* @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 {
|
||||||
|
if (input != null) {
|
||||||
|
try {
|
||||||
|
input.close();
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
LOGGER.debug("IGNORE: {}" + ignore);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (output != null) {
|
||||||
|
try {
|
||||||
|
output.close();
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
LOGGER.debug("IGNORE: {}" + ignore);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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 {
|
||||||
|
if (input != null) {
|
||||||
|
try {
|
||||||
|
input.close();
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
LOGGER.debug("IGNORE: {}" + ignore);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (output != null) {
|
||||||
|
try {
|
||||||
|
output.close();
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
LOGGER.debug("IGNORE: {}" + ignore);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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
|
||||||
|
*/
|
||||||
|
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
|
||||||
|
*/
|
||||||
|
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()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,161 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
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 한성곤 최초 생성
|
||||||
|
* 2018.08.17 신용호 uploadFilesExt(확장자 기록) 추가
|
||||||
|
*
|
||||||
|
* @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<EgovFormBasedFileVo> uploadFiles(HttpServletRequest request, String where, long maxFileSize) throws Exception {
|
||||||
|
List<EgovFormBasedFileVo> list = new ArrayList<EgovFormBasedFileVo>();
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 파일을 Upload(확장명 저장 및 확장자 제한) 처리한다.
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param where
|
||||||
|
* @param maxFileSize
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static List<EgovFormBasedFileVo> uploadFilesExt(HttpServletRequest request, String where, long maxFileSize, String extensionWhiteList) throws Exception {
|
||||||
|
List<EgovFormBasedFileVo> list = new ArrayList<EgovFormBasedFileVo>();
|
||||||
|
|
||||||
|
MultipartHttpServletRequest mptRequest = (MultipartHttpServletRequest) request;
|
||||||
|
Iterator<?> fileIter = mptRequest.getFileNames();
|
||||||
|
|
||||||
|
while (fileIter.hasNext()) {
|
||||||
|
List<MultipartFile> mFiles = mptRequest.getFiles((String) fileIter.next());
|
||||||
|
for(MultipartFile mFile : mFiles) {
|
||||||
|
EgovFormBasedFileVo vo = new EgovFormBasedFileVo();
|
||||||
|
|
||||||
|
String uploadName = mFile.getName();
|
||||||
|
String tmp = mFile.getOriginalFilename();
|
||||||
|
if("".equals(tmp) || tmp == null) continue; //파일 이름이 없으면 패스
|
||||||
|
|
||||||
|
if (tmp.lastIndexOf("\\") >= 0) {
|
||||||
|
tmp = tmp.substring(tmp.lastIndexOf("\\") + 1);
|
||||||
|
}
|
||||||
|
String ext = "";
|
||||||
|
if ( tmp.lastIndexOf(".") > 0 )
|
||||||
|
ext = getFileExtension(tmp).toLowerCase();
|
||||||
|
else
|
||||||
|
throw new SecurityException("Unacceptable file extension."); // 허용되지 않는 확장자 처리
|
||||||
|
if ( extensionWhiteList.indexOf(ext) < 0 )
|
||||||
|
throw new SecurityException("Unacceptable file extension."); // 허용되지 않는 확장자 처리
|
||||||
|
|
||||||
|
vo.setFileUploadName(uploadName);
|
||||||
|
vo.setFileName(tmp);
|
||||||
|
vo.setContentType(mFile.getContentType());
|
||||||
|
vo.setServerSubPath(getTodayString());
|
||||||
|
vo.setPhysicalName(getPhysicalFileName()+"_"+tmp); //기존 파일명 저장 방식으로 인하여 원본 파일명 추가
|
||||||
|
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.getPhysicalName())));
|
||||||
|
} finally {
|
||||||
|
if (is != null) {
|
||||||
|
is.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
list.add(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 파일 확장자를 추출한다.
|
||||||
|
*
|
||||||
|
* @param fileNamePath
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getFileExtension(String fileNamePath) {
|
||||||
|
|
||||||
|
String ext = fileNamePath.substring(fileNamePath.lastIndexOf(".") + 1,fileNamePath.length());
|
||||||
|
|
||||||
|
return (ext == null) ? "" : ext;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,427 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
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.net.URL;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
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 한성곤 최초 생성
|
||||||
|
* 2017.03.03 조성원 시큐어코딩(ES)-부적절한 예외 처리[CWE-253, CWE-440, CWE-754]
|
||||||
|
*
|
||||||
|
* @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").replace("+", " ");
|
||||||
|
//return filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stream으로부터 파일을 저장함.
|
||||||
|
* @param is InputStream
|
||||||
|
* @param file File
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public static long saveFile(InputStream is, File file) throws IOException {
|
||||||
|
//KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
if (file.getParentFile() == null) {
|
||||||
|
LOGGER.debug("file.getParentFile() is null");
|
||||||
|
throw new RuntimeException("file.getParentFile() is null");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 디렉토리 생성
|
||||||
|
if (!file.getParentFile().exists()) {
|
||||||
|
//2017.03.03 조성원 시큐어코딩(ES)-부적절한 예외 처리[CWE-253, CWE-440, CWE-754]
|
||||||
|
if(file.getParentFile().mkdirs()){
|
||||||
|
LOGGER.debug("[file.mkdirs] file : Directory Creation Success");
|
||||||
|
}else{
|
||||||
|
LOGGER.error("[file.mkdirs] file : Directory Creation Fail");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
os.flush();
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(os);
|
||||||
|
}
|
||||||
|
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Method_Name : saveUrl
|
||||||
|
* @Date : 2021. 11. 22.
|
||||||
|
* @Creator : ICTWAY KIM Yoon-Su
|
||||||
|
* @Method_Discription : url 데이터 파일로 저장
|
||||||
|
* @param file
|
||||||
|
* @param urlString
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static long saveUrl(File file, String urlString){
|
||||||
|
//KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
if (file.getParentFile() == null) {
|
||||||
|
LOGGER.debug("file.getParentFile() is null");
|
||||||
|
throw new RuntimeException("file.getParentFile() is null");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 디렉토리 생성
|
||||||
|
if (!file.getParentFile().exists()) {
|
||||||
|
//2017.03.03 조성원 시큐어코딩(ES)-부적절한 예외 처리[CWE-253, CWE-440, CWE-754]
|
||||||
|
if(file.getParentFile().mkdirs()){
|
||||||
|
LOGGER.debug("[file.mkdirs] file : Directory Creation Success");
|
||||||
|
}else{
|
||||||
|
LOGGER.error("[file.mkdirs] file : Directory Creation Fail");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BufferedInputStream bis = null;
|
||||||
|
FileOutputStream fos = null;
|
||||||
|
long size = 0L;
|
||||||
|
try {
|
||||||
|
bis = new BufferedInputStream(new URL(urlString).openStream());
|
||||||
|
fos = new FileOutputStream(file);
|
||||||
|
final byte buffer[] = new byte[BUFFER_SIZE];
|
||||||
|
int bytesRead = 0;
|
||||||
|
while((bytesRead = bis.read(buffer, 0, BUFFER_SIZE)) != -1) {
|
||||||
|
size += bytesRead;
|
||||||
|
fos.write(buffer, 0, bytesRead);
|
||||||
|
}
|
||||||
|
fos.flush();
|
||||||
|
}catch(Exception e){
|
||||||
|
size = 0;
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(bis);
|
||||||
|
EgovResourceCloseHelper.close(fos);
|
||||||
|
}
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 파일을 Upload 처리한다.
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param where
|
||||||
|
* @param maxFileSize
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static List<EgovFormBasedFileVo> uploadFiles(HttpServletRequest request, String where, long maxFileSize) throws Exception {
|
||||||
|
List<EgovFormBasedFileVo> list = new ArrayList<EgovFormBasedFileVo>();
|
||||||
|
|
||||||
|
// 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 physicalName, String original) throws Exception {
|
||||||
|
String downFileName = where + 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);
|
||||||
|
}
|
||||||
|
outs.flush();
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(outs, fin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void downloadFile(HttpServletResponse response, String pathFile) throws Exception {
|
||||||
|
String downFileName = pathFile;
|
||||||
|
|
||||||
|
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];
|
||||||
|
|
||||||
|
response.setContentType("application/octet-stream");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;");
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
outs.flush();
|
||||||
|
} 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 physicalName) throws Exception {
|
||||||
|
//String mimeType = mimeTypeParam;
|
||||||
|
String downFileName = where+ 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("application/octet-stream;"));
|
||||||
|
//response.setHeader("Content-Disposition", "filename=image;");
|
||||||
|
response.setHeader("Cache-Control", "cache,must-revalidate");
|
||||||
|
response.setHeader("Content-Transfer-Encoding", "binary");
|
||||||
|
response.setHeader("Pragma", "no-cache");
|
||||||
|
response.setHeader("Expires", "-1");
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
outs.flush();
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(outs, fin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static void viewPdfFile(HttpServletResponse response, String where, String serverSubPath, String physicalName) 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];
|
||||||
|
|
||||||
|
|
||||||
|
response.setContentType("application/pdf");
|
||||||
|
//response.setHeader("Content-Disposition", "filename=image;");
|
||||||
|
response.setHeader("Cache-Control", "cache,must-revalidate");
|
||||||
|
response.setHeader("Content-Transfer-Encoding", "binary");
|
||||||
|
response.setHeader("Pragma", "no-cache");
|
||||||
|
response.setHeader("Expires", "-1");
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
outs.flush();
|
||||||
|
} finally {
|
||||||
|
EgovResourceCloseHelper.close(outs, fin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,119 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
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 fileUploadName = "";
|
||||||
|
/** 파일명 */
|
||||||
|
private String fileName = "";
|
||||||
|
/** ContextType */
|
||||||
|
private String contentType = "";
|
||||||
|
/** 하위 디렉토리 지정 */
|
||||||
|
private String serverSubPath = "";
|
||||||
|
/** 물리적 파일명 */
|
||||||
|
private String physicalName = "";
|
||||||
|
/** 파일 사이즈 */
|
||||||
|
private long size = 0L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the fileUploadName
|
||||||
|
*/
|
||||||
|
public String getFileUploadName() {
|
||||||
|
return fileUploadName;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param fileUploadName the fileUploadName to set
|
||||||
|
*/
|
||||||
|
public void setFileUploadName(String fileUploadName) {
|
||||||
|
this.fileUploadName = fileUploadName;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,521 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
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.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* 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).
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The layout of a variant 2 (Leach-Salz) UUID is as follows:
|
||||||
|
*
|
||||||
|
* The most significant long consists of the following unsigned fields:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 0xFFFFFFFF00000000 time_low
|
||||||
|
* 0x00000000FFFF0000 time_mid
|
||||||
|
* 0x000000000000F000 version
|
||||||
|
* 0x0000000000000FFF time_hi
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* The least significant long consists of the following unsigned fields:
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 0xC000000000000000 variant
|
||||||
|
* 0x3FFF000000000000 clock_seq
|
||||||
|
* 0x0000FFFFFFFFFFFF node
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The variant field contains a value which identifies the layout of the
|
||||||
|
* <tt>UUID</tt>. The bit layout described above is valid only for a
|
||||||
|
* <tt>UUID</tt> with a variant value of 2, which indicates the Leach-Salz
|
||||||
|
* variant.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The version field holds a value that describes the type of this <tt>UUID</tt>.
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* For more information including algorithms used to create <tt>UUID</tt>s,
|
||||||
|
* see the Internet-Draft <a
|
||||||
|
* href="http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-03.txt">UUIDs
|
||||||
|
* and GUIDs</a> or the standards body definition at <a
|
||||||
|
* href="http://www.iso.ch/cate/d2229.html">ISO/IEC 11578:1996</a>.
|
||||||
|
*
|
||||||
|
* @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 <tt>UUID</tt> using the specified data.
|
||||||
|
* <tt>mostSigBits</tt> is used for the most significant 64 bits of the
|
||||||
|
* <tt>UUID</tt> and <tt>leastSigBits</tt> becomes the least significant
|
||||||
|
* 64 bits of the <tt>UUID</tt>.
|
||||||
|
*
|
||||||
|
* @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 <code>UUID</code> is generated using a cryptographically strong
|
||||||
|
* pseudo random number generator.
|
||||||
|
*
|
||||||
|
* @return a randomly generated <tt>UUID</tt>.
|
||||||
|
*/
|
||||||
|
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) <tt>UUID</tt> based on
|
||||||
|
* the specified byte array.
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* a byte array to be used to construct a <tt>UUID</tt>.
|
||||||
|
* @return a <tt>UUID</tt> 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 <tt>UUID</tt> from the string standard representation as
|
||||||
|
* described in the {@link #toString} method.
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* a string that specifies a <tt>UUID</tt>.
|
||||||
|
* @return a <tt>UUID</tt> 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 <tt>UUID</tt>. The version
|
||||||
|
* number describes how this <tt>UUID</tt> was generated.
|
||||||
|
*
|
||||||
|
* The version number has the following meaning:
|
||||||
|
* <p>
|
||||||
|
* <ul>
|
||||||
|
* <li>1 Time-based UUID
|
||||||
|
* <li>2 DCE security UUID
|
||||||
|
* <li>3 Name-based UUID
|
||||||
|
* <li>4 Randomly generated UUID
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* @return the version number of this <tt>UUID</tt>.
|
||||||
|
*/
|
||||||
|
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 <tt>UUID</tt>. The variant
|
||||||
|
* number describes the layout of the <tt>UUID</tt>.
|
||||||
|
*
|
||||||
|
* The variant number has the following meaning:
|
||||||
|
* <p>
|
||||||
|
* <ul>
|
||||||
|
* <li>0 Reserved for NCS backward compatibility
|
||||||
|
* <li>2 The Leach-Salz variant (used by this class)
|
||||||
|
* <li>6 Reserved, Microsoft Corporation backward compatibility
|
||||||
|
* <li>7 Reserved for future definition
|
||||||
|
* </ul>
|
||||||
|
*
|
||||||
|
* @return the variant number of this <tt>UUID</tt>.
|
||||||
|
*/
|
||||||
|
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.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The 60 bit timestamp value is constructed from the time_low, time_mid,
|
||||||
|
* and time_hi fields of this <tt>UUID</tt>. The resulting timestamp is
|
||||||
|
* measured in 100-nanosecond units since midnight, October 15, 1582 UTC.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* The timestamp value is only meaningful in a time-based UUID, which has
|
||||||
|
* version type 1. If this <tt>UUID</tt> 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.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* 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.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* 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 <tt>UUID</tt>.
|
||||||
|
* @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.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* 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.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* 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 <tt>UUID</tt>.
|
||||||
|
* @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 <code>String</code> object representing this
|
||||||
|
* <code>UUID</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The UUID string representation is as described by this BNF :
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @return a string representation of this <tt>UUID</tt>.
|
||||||
|
*/
|
||||||
|
@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 <code>UUID</code>.
|
||||||
|
*
|
||||||
|
* @return a hash code value for this <tt>UUID</tt>.
|
||||||
|
*/
|
||||||
|
@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 <tt>true</tt>
|
||||||
|
* if and only if the argument is not <tt>null</tt>, is a <tt>UUID</tt>
|
||||||
|
* object, has the same variant, and contains the same value, bit for bit,
|
||||||
|
* as this <tt>UUID</tt>.
|
||||||
|
*
|
||||||
|
* @param obj
|
||||||
|
* the object to compare with.
|
||||||
|
* @return <code>true</code> if the objects are the same;
|
||||||
|
* <code>false</code> 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.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* 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
|
||||||
|
* <tt>UUID</tt> to which this <tt>UUID</tt> is to be
|
||||||
|
* compared.
|
||||||
|
* @return -1, 0 or 1 as this <tt>UUID</tt> is less than, equal to, or
|
||||||
|
* greater than <tt>val</tt>.
|
||||||
|
*/
|
||||||
|
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 <tt>UUID</tt> 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,207 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 포맷유효성체크 에 대한 Util 클래스
|
||||||
|
* @author 공통컴포넌트 개발팀 윤성록
|
||||||
|
* @since 2009.06.23
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.06.23 윤성록 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class EgovFormatCheckUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pxxx - xxx- xxxx 형식의 전화번호 앞, 중간, 뒤 문자열 3개 입력 받아 유요한 전화번호형식인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>xxx - xxx- xxxx 형식의 전화번호 하나를 입력 받아 유요한 전화번호형식인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>xxx - xxx- xxxx 형식의 휴대폰번호 앞, 중간, 뒤 문자열 3개 입력 받아 유요한 휴대폰번호형식인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>XXXXXXXXXX 형식의 휴대폰번호 문자열 3개 입력 받아 유요한 휴대폰번호형식인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> 이메일의 앞, 뒤 문자열 2개 입력 받아 유요한 이메일형식인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p> 이메일의 전체문자열 1개 입력 받아 유요한 이메일형식인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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 <pre>
|
||||||
|
* web.xml 상에 다음과 같은 Listener 등록 필요
|
||||||
|
* <listener>
|
||||||
|
* <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
|
||||||
|
* </listener>
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,136 @@
|
||||||
|
/**
|
||||||
|
* @Class Name : EgovMessageUtil.java
|
||||||
|
* @Description : 메시지 처리 관련 유틸리티
|
||||||
|
* @Modification Information
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.02.13 이삼섭 최초 생성
|
||||||
|
*
|
||||||
|
* @author 공통 서비스 개발팀 이삼섭
|
||||||
|
* @since 2009. 02. 13
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
import egovframework.com.cmm.service.EgovProperties;
|
||||||
|
|
||||||
|
public class EgovMessageUtil {
|
||||||
|
|
||||||
|
private static final String PATH_SEP = System.getProperty("file.separator");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당되는 속성키로부터 에러 메시지를 얻는다.
|
||||||
|
*
|
||||||
|
* @param strCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getErrorMsg(String strCode) {
|
||||||
|
|
||||||
|
return getMessage("error", strCode, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당되는 속성키로부터 에러 메시지(파라미터 변환 포함)를 얻는다.
|
||||||
|
*
|
||||||
|
* @param strCode
|
||||||
|
* @param arrParam
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getErrorMsg(String strCode, String[] arrParam) {
|
||||||
|
|
||||||
|
return getMessage("error", strCode, arrParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당되는 속성키로부터 정보 메시지를 얻는다.
|
||||||
|
*
|
||||||
|
* @param strCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getInfoMsg(String strCode) {
|
||||||
|
|
||||||
|
return getMessage("info", strCode, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*해당되는 속성키로부터 정보 메시지(파라미터 변환 포함)를 얻는다.
|
||||||
|
*
|
||||||
|
* @param strCode
|
||||||
|
* @param arrParam
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getInfoMsg(String strCode, String[] arrParam) {
|
||||||
|
|
||||||
|
return getMessage("info", strCode, arrParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당되는 속성키로부터 경고 메시지를 얻는다.
|
||||||
|
*
|
||||||
|
* @param strCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getWarnMsg(String strCode) {
|
||||||
|
|
||||||
|
return getMessage("warn", strCode, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당되는 속성키로부터 경고 메시지(파라미터 변환 포함)를 얻는다.
|
||||||
|
*
|
||||||
|
* @param strCode
|
||||||
|
* @param arrParam
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getWarnMsg(String strCode, String[] arrParam) {
|
||||||
|
|
||||||
|
return getMessage("warn", strCode, arrParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당되는 속성키로부터 확인 메시지를 얻는다.
|
||||||
|
*
|
||||||
|
* @param strCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getConfirmMsg(String strCode) {
|
||||||
|
|
||||||
|
return getMessage("confirm", strCode, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 해당되는 속성키로부터 확인 메시지(파라미터 변환 포함)를 얻는다.
|
||||||
|
*
|
||||||
|
* @param strCode
|
||||||
|
* @param arrParam
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getConfirmMsg(String strCode, String[] arrParam) {
|
||||||
|
|
||||||
|
return getMessage("confirm", strCode, arrParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getMessage(String wrkCode, String strCode, String[] arrParam) {
|
||||||
|
|
||||||
|
String message = null;
|
||||||
|
|
||||||
|
String strMsg = "";
|
||||||
|
if (!"".equals(EgovStringUtil.isNullToString(strCode.trim()))) {
|
||||||
|
|
||||||
|
strMsg = EgovProperties.getProperty(EgovProperties.RELATIVE_PATH_PREFIX + "egovProps" + PATH_SEP + "conf" + PATH_SEP + wrkCode + "message.properties", strCode);
|
||||||
|
|
||||||
|
for (int i = (arrParam != null && arrParam.length > 0 ? arrParam.length - 1 : -1); i >= 0; i--) {
|
||||||
|
strMsg = EgovStringUtil.replace(EgovStringUtil.isNullToString(strMsg), "{" + i + "}", arrParam[i]);//KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
}
|
||||||
|
message = strMsg;
|
||||||
|
} else {
|
||||||
|
message = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,135 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
import java.lang.reflect.Array;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EgovMybaitsUtil 클래스
|
||||||
|
*
|
||||||
|
* @author 장동한
|
||||||
|
* @since 2016.06.07
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- ------------- ----------------------
|
||||||
|
* 2016.06.07 장동한 최초 생성
|
||||||
|
* 2017.03.03 조성원 시큐어코딩(ES)-오류 메시지를 통한 정보노출[CWE-209]
|
||||||
|
* 2017.07.21 장동한 isEquals에서 String Character 비교 가능하도록
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
public class EgovMybaitsUtil {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(EgovMybaitsUtil.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Empty 여부를 확인한다.
|
||||||
|
* @param o Object
|
||||||
|
* @return boolean
|
||||||
|
* @exception IllegalArgumentException
|
||||||
|
*/
|
||||||
|
public static boolean isEmpty(Object o) throws IllegalArgumentException {
|
||||||
|
try {
|
||||||
|
if(o == null) return true;
|
||||||
|
|
||||||
|
if(o instanceof String) {
|
||||||
|
if(((String)o).length() == 0){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if(o instanceof Collection) {
|
||||||
|
if(((Collection)o).isEmpty()){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if(o.getClass().isArray()) {
|
||||||
|
if(Array.getLength(o) == 0){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if(o instanceof Map) {
|
||||||
|
if(((Map)o).isEmpty()){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
//2017.03.03 조성원 시큐어코딩(ES)-오류 메시지를 통한 정보노출[CWE-209]
|
||||||
|
} catch(IllegalArgumentException e) {
|
||||||
|
logger.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
|
||||||
|
} catch(Exception e) {
|
||||||
|
logger.error("["+e.getClass()+"] Try/Catch...Exception : " + e.getMessage());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Not Empty 여부를 확인한다.
|
||||||
|
* @param o Object
|
||||||
|
* @return boolean
|
||||||
|
* @exception IllegalArgumentException
|
||||||
|
*/
|
||||||
|
public static boolean isNotEmpty(Object o) {
|
||||||
|
return !isEmpty(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Equal 여부를 확인한다.
|
||||||
|
* @param obj Object, obj Object
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static boolean isEquals(Object obj, Object obj2){
|
||||||
|
if(isEmpty(obj)) return false;
|
||||||
|
|
||||||
|
if(obj instanceof String && obj2 instanceof String) {
|
||||||
|
if( (String.valueOf(obj)).equals( String.valueOf(obj2) )){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}else if(obj instanceof String && obj2 instanceof Character) {
|
||||||
|
if( (String.valueOf(obj) ).equals( String.valueOf(obj2) )){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}else if(obj instanceof String && obj2 instanceof Integer) {
|
||||||
|
if( (String.valueOf(obj)).equals( String.valueOf((Integer)obj2) )){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(obj instanceof Integer && obj2 instanceof String) {
|
||||||
|
if( (String.valueOf(obj2)).equals( String.valueOf((Integer)obj) )){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if(obj instanceof Integer && obj instanceof Integer) {
|
||||||
|
if((Integer)obj == (Integer)obj2){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* String의 Equal 여부를 확인한다.
|
||||||
|
* @param obj Object, obj Object
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public static boolean isEqualsStr(Object obj, String s){
|
||||||
|
if(isEmpty(obj)) return false;
|
||||||
|
|
||||||
|
if(s.equals(String.valueOf(obj))){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,246 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 번호유효성체크 에 대한 Util 클래스
|
||||||
|
* @author 공통컴포넌트 개발팀 윤성록
|
||||||
|
* @since 2009.06.10
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.06.10 윤성록 최초 생성
|
||||||
|
* 2012.02.27 이기하 법인번호 체크로직 수정
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class EgovNumberCheckUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>XXXXXX - XXXXXXX 형식의 주민번호 앞, 뒤 문자열 2개 입력 받아 유효한 주민번호인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>XXXXXXXXXXXXX 형식의 13자리 주민번호 1개를 입력 받아 유효한 주민번호인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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)); //주민번호
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>XXXXXX - XXXXXXX 형식의 법인번호 앞, 뒤 문자열 2개 입력 받아 유효한 법인번호인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>XXXXXXXXXXXXX 형식의 13자리 법인번호 1개를 입력 받아 유효한 법인번호인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>xxx - xx - xxxx 형식의 사업자번호 앞,중간, 뒤 문자열 3개 입력 받아 유효한 사업자번호인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>XXXXXXXXXX 형식의 10자리 사업자번호 3개를 입력 받아 유효한 사업자번호인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>XXXXXX - XXXXXXX 형식의 외국인등록번호 앞, 뒤 문자열 2개 입력 받아 유효한 외국인등록번호인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>XXXXXXXXXXXXX 형식의 13자리 외국인등록번호 1개를 입력 받아 유효한 외국인등록번호인지 검사.</p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,258 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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.cmm.util;
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,146 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
import java.io.Closeable;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.ServerSocket;
|
||||||
|
import java.net.Socket;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2014.09.18 표준프레임워크센터 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class EgovResourceCloseHelper {
|
||||||
|
/**
|
||||||
|
* Resource close 처리.
|
||||||
|
* @param resources
|
||||||
|
*/
|
||||||
|
public static void close(Closeable ... resources) {
|
||||||
|
for (Closeable resource : resources) {
|
||||||
|
if (resource != null) {
|
||||||
|
try {
|
||||||
|
resource.close();
|
||||||
|
} catch (IOException ignore) {//KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!");
|
||||||
|
} 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 (SQLException ignore) {//KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
EgovBasicLogger.ignore("Occurred SQLException to close resource is ingored!!");
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!");
|
||||||
|
}
|
||||||
|
} else if (object instanceof Statement) {
|
||||||
|
try {
|
||||||
|
((Statement)object).close();
|
||||||
|
} catch (SQLException ignore) {//KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
EgovBasicLogger.ignore("Occurred SQLException to close resource is ingored!!");
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred Exception to close resource is ingored!!");
|
||||||
|
}
|
||||||
|
} else if (object instanceof Connection) {
|
||||||
|
try {
|
||||||
|
((Connection)object).close();
|
||||||
|
} catch (SQLException ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred SQLException to close resource is ingored!!");
|
||||||
|
} 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 (IOException ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!");
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred Exception to shutdown ouput is ignored!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
socket.close();
|
||||||
|
} catch (IOException ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!");
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (server != null) {
|
||||||
|
try {
|
||||||
|
server.close();
|
||||||
|
} catch (IOException ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!");
|
||||||
|
} 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 (IOException ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!");
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred Exception to shutdown ouput is ignored!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
socket.close();
|
||||||
|
} catch (IOException ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred IOException to close resource is ingored!!");
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
EgovBasicLogger.ignore("Occurred Exception to close resource is ignored!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,230 @@
|
||||||
|
/**
|
||||||
|
* @Class Name : EgovSessionUtil.java
|
||||||
|
* @Description : 세션 처리 관련 유틸리티
|
||||||
|
* @Modification Information
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.02.13 이삼섭 최초 생성
|
||||||
|
*
|
||||||
|
* @author 공통 서비스 개발팀 이삼섭
|
||||||
|
* @since 2009. 02. 13
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URLDecoder;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
|
||||||
|
import javax.servlet.http.Cookie;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import egovframework.com.cmm.service.EgovProperties;
|
||||||
|
|
||||||
|
public class EgovSessionCookieUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HttpSession에 주어진 키 값으로 세션 정보를 생성하는 기능
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param keyStr - 세션 키
|
||||||
|
* @param valStr - 세션 값
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static void setSessionAttribute(HttpServletRequest request, String keyStr, String valStr) throws Exception {
|
||||||
|
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
session.setAttribute(keyStr, valStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HttpSession에 주어진 키 값으로 세션 객체를 생성하는 기능
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param keyStr - 세션 키
|
||||||
|
* @param valStr - 세션 값
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static void setSessionAttribute(HttpServletRequest request, String keyStr, Object obj) throws Exception {
|
||||||
|
|
||||||
|
HttpSession session = request.getSession(true);
|
||||||
|
session.setAttribute(keyStr, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HttpSession에 존재하는 주어진 키 값에 해당하는 세션 값을 얻어오는 기능
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param keyStr - 세션 키
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static Object getSessionAttribute(HttpServletRequest request, String keyStr) throws Exception {
|
||||||
|
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
return session.getAttribute(keyStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HttpSession 객체내의 모든 값을 호출하는 기능
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static String getSessionValuesString(HttpServletRequest request) throws Exception {
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
String returnVal = "";
|
||||||
|
|
||||||
|
Enumeration<?> e = session.getAttributeNames();
|
||||||
|
while (e.hasMoreElements()) {
|
||||||
|
String sessionKey = (String) e.nextElement();
|
||||||
|
returnVal = returnVal + "[" + sessionKey + " : " + session.getAttribute(sessionKey) + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
return returnVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HttpSession에 존재하는 세션을 주어진 키 값으로 삭제하는 기능
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param keyStr - 세션 키
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static void removeSessionAttribute(HttpServletRequest request, String keyStr) throws Exception {
|
||||||
|
|
||||||
|
HttpSession session = request.getSession();
|
||||||
|
session.removeAttribute(keyStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 쿠키생성 - 입력받은 분만큼 쿠키를 유지되도록 세팅한다.
|
||||||
|
* 쿠키의 유효시간을 5분으로 설정 =>(cookie.setMaxAge(60 * 5)
|
||||||
|
* 쿠키의 유효시간을 10일로 설정 =>(cookie.setMaxAge(60 * 60 * 24 * 10)
|
||||||
|
*
|
||||||
|
* @param response - Response
|
||||||
|
* @param cookieNm - 쿠키명
|
||||||
|
* @param cookieValue - 쿠키값
|
||||||
|
* @param minute - 지속시킬 시간(분)
|
||||||
|
* @return
|
||||||
|
* @exception
|
||||||
|
* @see
|
||||||
|
*/
|
||||||
|
public static void setCookie(HttpServletResponse response, String cookieNm, String cookieVal, int minute) throws UnsupportedEncodingException {
|
||||||
|
|
||||||
|
// 특정의 encode 방식을 사용해 캐릭터 라인을 application/x-www-form-urlencoded 형식으로 변환
|
||||||
|
// 일반 문자열을 웹에서 통용되는 'x-www-form-urlencoded' 형식으로 변환하는 역할
|
||||||
|
String cookieValue = URLEncoder.encode(cookieVal, "utf-8");
|
||||||
|
|
||||||
|
// 쿠키생성 - 쿠키의 이름, 쿠키의 값
|
||||||
|
Cookie cookie = new Cookie(cookieNm, cookieValue);
|
||||||
|
|
||||||
|
cookie.setSecure(true);
|
||||||
|
|
||||||
|
// 쿠키의 유효시간 설정
|
||||||
|
int maxAge = 60 * minute;
|
||||||
|
// KISA 보안약점 조치 (2018-10-29, 윤창원)
|
||||||
|
if(maxAge > 60 * 60 * 24) {
|
||||||
|
maxAge = 60 * 60 * 24;
|
||||||
|
}
|
||||||
|
cookie.setMaxAge(maxAge);
|
||||||
|
|
||||||
|
// response 내장 객체를 이용해 쿠키를 전송
|
||||||
|
response.addCookie(cookie);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 쿠키생성 - 쿠키의 유효시간을 설정하지 않을 경우 쿠키의 생명주기는 브라우저가 종료될 때까지
|
||||||
|
*
|
||||||
|
* @param response - Response
|
||||||
|
* @param cookieNm - 쿠키명
|
||||||
|
* @param cookieValue - 쿠키값
|
||||||
|
* @return
|
||||||
|
* @exception
|
||||||
|
* @see
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static void setCookie(HttpServletResponse response, String cookieNm, String cookieVal) throws UnsupportedEncodingException {
|
||||||
|
|
||||||
|
// 특정의 encode 방식을 사용해 캐릭터 라인을 application/x-www-form-urlencoded 형식으로 변환
|
||||||
|
// 일반 문자열을 웹에서 통용되는 'x-www-form-urlencoded' 형식으로 변환하는 역할
|
||||||
|
String cookieValue = URLEncoder.encode(cookieVal, "utf-8");
|
||||||
|
|
||||||
|
// 쿠키생성
|
||||||
|
Cookie cookie = new Cookie(EgovWebUtil.removeCRLF(cookieNm), EgovWebUtil.removeCRLF(cookieValue));
|
||||||
|
|
||||||
|
// 2011.10.10 보안점검 후속조치
|
||||||
|
cookie.setSecure(true);
|
||||||
|
|
||||||
|
// response 내장 객체를 이용해 쿠키를 전송
|
||||||
|
response.addCookie(cookie);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 쿠키값 사용 - 쿠키값을 읽어들인다.
|
||||||
|
*
|
||||||
|
* @param request - Request
|
||||||
|
* @param name - 쿠키명
|
||||||
|
* @return 쿠키값
|
||||||
|
* @exception
|
||||||
|
* @see
|
||||||
|
*/
|
||||||
|
public static String getCookie(HttpServletRequest request, String cookieNm) throws Exception {
|
||||||
|
|
||||||
|
// 한 도메인에서 여러 개의 쿠키를 사용할 수 있기 때문에 Cookie[] 배열이 반환
|
||||||
|
// Cookie를 읽어서 Cookie 배열로 반환
|
||||||
|
Cookie[] cookies = request.getCookies();
|
||||||
|
|
||||||
|
if (cookies == null)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
String cookieValue = null;
|
||||||
|
|
||||||
|
// 입력받은 쿠키명으로 비교해서 쿠키값을 얻어낸다.
|
||||||
|
for (int i = 0; i < cookies.length; i++) {
|
||||||
|
|
||||||
|
if (cookieNm.equals(cookies[i].getName())) {
|
||||||
|
|
||||||
|
// 특별한 encode 방식을 사용해 application/x-www-form-urlencoded 캐릭터 라인을 디코드
|
||||||
|
// URLEncoder로 인코딩된 결과를 디코딩하는 클래스
|
||||||
|
cookieValue = URLDecoder.decode(cookies[i].getValue(), "utf-8");
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cookieValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 쿠키값 삭제 - cookie.setMaxAge(0) - 쿠키의 유효시간을 0으로 설정해 줌으로써 쿠키를 삭제하는 것과 동일한 효과
|
||||||
|
*
|
||||||
|
* @param request - Request
|
||||||
|
* @param name - 쿠키명
|
||||||
|
* @return 쿠키값
|
||||||
|
* @exception
|
||||||
|
* @see
|
||||||
|
*/
|
||||||
|
public static void setCookie(HttpServletResponse response, String cookieNm) throws UnsupportedEncodingException {
|
||||||
|
|
||||||
|
// 쿠키생성 - 쿠키의 이름, 쿠키의 값
|
||||||
|
Cookie cookie = new Cookie(EgovWebUtil.removeCRLF(cookieNm), null);
|
||||||
|
|
||||||
|
cookie.setSecure(true);
|
||||||
|
|
||||||
|
// 쿠키를 삭제하는 메소드가 따로 존재하지 않음
|
||||||
|
// 쿠키의 유효시간을 0으로 설정해 줌으로써 쿠키를 삭제하는 것과 동일한 효과
|
||||||
|
cookie.setMaxAge(0);
|
||||||
|
|
||||||
|
// response 내장 객체를 이용해 쿠키를 전송
|
||||||
|
response.addCookie(cookie);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,950 @@
|
||||||
|
/**
|
||||||
|
* @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.cmm.util;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 {
|
||||||
|
/**
|
||||||
|
* 빈 문자열 <code>""</code>.
|
||||||
|
*/
|
||||||
|
public static final String EMPTY = "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Padding을 할 수 있는 최대 수치</p>
|
||||||
|
*/
|
||||||
|
// private static final int PAD_LIMIT = 8192;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>An array of <code>String</code>s used for padding.</p>
|
||||||
|
* <p>Used for efficient space padding. The length of each String expands as needed.</p>
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* String이 비었거나("") 혹은 null 인지 검증한다.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* StringUtil.isEmpty(null) = true
|
||||||
|
* StringUtil.isEmpty("") = true
|
||||||
|
* StringUtil.isEmpty(" ") = false
|
||||||
|
* StringUtil.isEmpty("bob") = false
|
||||||
|
* StringUtil.isEmpty(" bob ") = false
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str - 체크 대상 스트링오브젝트이며 null을 허용함
|
||||||
|
* @return <code>true</code> - 입력받은 String 이 빈 문자열 또는 null인 경우
|
||||||
|
*/
|
||||||
|
public static boolean isEmpty(String str) {
|
||||||
|
return str == null || str.length() == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>기준 문자열에 포함된 모든 대상 문자(char)를 제거한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* StringUtil.remove(null, *) = null
|
||||||
|
* StringUtil.remove("", *) = ""
|
||||||
|
* StringUtil.remove("queued", 'u') = "qeed"
|
||||||
|
* StringUtil.remove("queued", 'z') = "queued"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>문자열 내부의 콤마 character(,)를 모두 제거한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* StringUtil.removeCommaChar(null) = null
|
||||||
|
* StringUtil.removeCommaChar("") = ""
|
||||||
|
* StringUtil.removeCommaChar("asdfg,qweqe") = "asdfgqweqe"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str 입력받는 기준 문자열
|
||||||
|
* @return " , "가 제거된 입력문자열
|
||||||
|
* 입력문자열이 null인 경우 출력문자열은 null
|
||||||
|
*/
|
||||||
|
public static String removeCommaChar(String str) {
|
||||||
|
return remove(str, ',');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>문자열 내부의 마이너스 character(-)를 모두 제거한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* StringUtil.removeMinusChar(null) = null
|
||||||
|
* StringUtil.removeMinusChar("") = ""
|
||||||
|
* StringUtil.removeMinusChar("a-sdfg-qweqe") = "asdfgqweqe"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <code>subject</code>에 포함된 각각의 문자를 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>str</code> 중 <code>searchStr</code>의 시작(index) 위치를 반환.</p>
|
||||||
|
*
|
||||||
|
* <p>입력값 중 <code>null</code>이 있을 경우 <code>-1</code>을 반환.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>오라클의 decode 함수와 동일한 기능을 가진 메서드이다.
|
||||||
|
* <code>sourStr</code>과 <code>compareStr</code>의 값이 같으면
|
||||||
|
* <code>returStr</code>을 반환하며, 다르면 <code>defaultStr</code>을 반환한다.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param sourceStr 비교할 문자열
|
||||||
|
* @param compareStr 비교 대상 문자열
|
||||||
|
* @param returnStr sourceStr와 compareStr의 값이 같을 때 반환할 문자열
|
||||||
|
* @param defaultStr sourceStr와 compareStr의 값이 다를 때 반환할 문자열
|
||||||
|
* @return sourceStr과 compareStr의 값이 동일(equal)할 때 returnStr을 반환하며,
|
||||||
|
* <br/>다르면 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>오라클의 decode 함수와 동일한 기능을 가진 메서드이다.
|
||||||
|
* <code>sourStr</code>과 <code>compareStr</code>의 값이 같으면
|
||||||
|
* <code>returStr</code>을 반환하며, 다르면 <code>sourceStr</code>을 반환한다.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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") = "하이"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param sourceStr 비교할 문자열
|
||||||
|
* @param compareStr 비교 대상 문자열
|
||||||
|
* @param returnStr sourceStr와 compareStr의 값이 같을 때 반환할 문자열
|
||||||
|
* @return sourceStr과 compareStr의 값이 동일(equal)할 때 returnStr을 반환하며,
|
||||||
|
* <br/>다르면 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*<pre>
|
||||||
|
* 인자로 받은 String이 null일 경우 ""로 리턴한다.
|
||||||
|
* @param src null값일 가능성이 있는 String 값.
|
||||||
|
* @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
|
||||||
|
*</pre>
|
||||||
|
*/
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*<pre>
|
||||||
|
* 인자로 받은 String이 null일 경우 ""로 리턴한다.
|
||||||
|
* @param src null값일 가능성이 있는 String 값.
|
||||||
|
* @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
|
||||||
|
*</pre>
|
||||||
|
*/
|
||||||
|
public static String nullConvertInt(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 "0";
|
||||||
|
} else {
|
||||||
|
return ((String) src).trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*<pre>
|
||||||
|
* 인자로 받은 String이 null일 경우 ""로 리턴한다.
|
||||||
|
* @param src null값일 가능성이 있는 String 값.
|
||||||
|
* @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
|
||||||
|
*</pre>
|
||||||
|
*/
|
||||||
|
public static String nullConvert(String src) {
|
||||||
|
|
||||||
|
if (src == null || src.equals("null") || "".equals(src) || " ".equals(src)) {
|
||||||
|
return "";
|
||||||
|
} else {
|
||||||
|
return src.trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*<pre>
|
||||||
|
* 인자로 받은 String이 null일 경우 "0"로 리턴한다.
|
||||||
|
* @param src null값일 가능성이 있는 String 값.
|
||||||
|
* @return 만약 String이 null 값일 경우 "0"로 바꾼 String 값.
|
||||||
|
*</pre>
|
||||||
|
*/
|
||||||
|
public static int zeroConvert(Object src) {
|
||||||
|
|
||||||
|
if (src == null || src.equals("null")) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return Integer.parseInt(((String) src).trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*<pre>
|
||||||
|
* 인자로 받은 String이 null일 경우 ""로 리턴한다.
|
||||||
|
* @param src null값일 가능성이 있는 String 값.
|
||||||
|
* @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
|
||||||
|
*</pre>
|
||||||
|
*/
|
||||||
|
public static int zeroConvert(String src) {
|
||||||
|
|
||||||
|
if (src == null || src.equals("null") || "".equals(src) || " ".equals(src)) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return Integer.parseInt(src.trim());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>문자열에서 {@link Character#isWhitespace(char)}에 정의된
|
||||||
|
* 모든 공백문자를 제거한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* StringUtil.removeWhitespace(null) = null
|
||||||
|
* StringUtil.removeWhitespace("") = ""
|
||||||
|
* StringUtil.removeWhitespace("abc") = "abc"
|
||||||
|
* StringUtil.removeWhitespace(" ab c ") = "abc"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str 공백문자가 제거도어야 할 문자열
|
||||||
|
* @return the 공백문자가 제거된 문자열, null이 입력되면 <code>null</code>이 리턴
|
||||||
|
*/
|
||||||
|
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("<br>");
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>{@link String#toLowerCase()}를 이용하여 소문자로 변환한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* StringUtil.lowerCase(null) = null
|
||||||
|
* StringUtil.lowerCase("") = ""
|
||||||
|
* StringUtil.lowerCase("aBc") = "abc"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str 소문자로 변환되어야 할 문자열
|
||||||
|
* @return 소문자로 변환된 문자열, null이 입력되면 <code>null</code> 리턴
|
||||||
|
*/
|
||||||
|
public static String lowerCase(String str) {
|
||||||
|
if (str == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return str.toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>{@link String#toUpperCase()}를 이용하여 대문자로 변환한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* StringUtil.upperCase(null) = null
|
||||||
|
* StringUtil.upperCase("") = ""
|
||||||
|
* StringUtil.upperCase("aBc") = "ABC"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str 대문자로 변환되어야 할 문자열
|
||||||
|
* @return 대문자로 변환된 문자열, null이 입력되면 <code>null</code> 리턴
|
||||||
|
*/
|
||||||
|
public static String upperCase(String str) {
|
||||||
|
if (str == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return str.toUpperCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>입력된 String의 앞쪽에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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 "
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str 지정된 문자가 제거되어야 할 문자열
|
||||||
|
* @param stripChars 제거대상 문자열
|
||||||
|
* @return 지정된 문자가 제거된 문자열, null이 입력되면 <code>null</code> 리턴
|
||||||
|
*/
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>입력된 String의 뒤쪽에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str 지정된 문자가 제거되어야 할 문자열
|
||||||
|
* @param stripChars 제거대상 문자열
|
||||||
|
* @return 지정된 문자가 제거된 문자열, null이 입력되면 <code>null</code> 리턴
|
||||||
|
*/
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>입력된 String의 앞, 뒤에서 두번째 인자로 전달된 문자(stripChars)를 모두 제거한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* 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"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str 지정된 문자가 제거되어야 할 문자열
|
||||||
|
* @param stripChars 제거대상 문자열
|
||||||
|
* @return 지정된 문자가 제거된 문자열, null이 입력되면 <code>null</code> 리턴
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>날짜 형식의 문자열 내부에 마이너스 character(-)를 추가한다.</p>
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* StringUtil.addMinusChar("20100901") = "2010-09-01"
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @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 "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* str을 size길이에 맞도록 왼쪽에 f_char로 채운다.
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str
|
||||||
|
* 원래 문자열
|
||||||
|
* @param f_char
|
||||||
|
* 원래 문자열 뒤에 붙일 문자열
|
||||||
|
* @param size
|
||||||
|
* f_char를 붙여 만들 문자열의 길이
|
||||||
|
* @return String 원래 문자열에 f_char를 붙여 만든 문자열
|
||||||
|
*/
|
||||||
|
public static String lpad(String str, String f_char, int size) {
|
||||||
|
if (str.length() >= size)
|
||||||
|
return str;
|
||||||
|
else
|
||||||
|
return getFillChar("", f_char, size - str.length()) + str;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* str을 size길이에 맞도록 뒤에 f_char로 채운다.
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param str
|
||||||
|
* 원래 문자열
|
||||||
|
* @param f_char
|
||||||
|
* 원래 문자열 뒤에 붙일 문자열
|
||||||
|
* @param size
|
||||||
|
* f_char를 붙여 만들 문자열의 길이
|
||||||
|
* @return String 원래 문자열에 f_char를 붙여 만든 문자열
|
||||||
|
*/
|
||||||
|
public static String getFillChar(String str, String f_char, int size) {
|
||||||
|
String fillChar = "";
|
||||||
|
|
||||||
|
if (str.length() >= size)
|
||||||
|
return str;
|
||||||
|
|
||||||
|
for (int index = 0; index < (size - str.length()); ++index) {
|
||||||
|
fillChar += f_char;
|
||||||
|
}
|
||||||
|
|
||||||
|
return str + fillChar;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,151 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 길이, 부피, 넓이, 무게 환산 데이터를 생성하는 Service Class 구현
|
||||||
|
* @author 공통서비스 장동한
|
||||||
|
* @since 2010.06.16
|
||||||
|
* @version 1.0
|
||||||
|
* @see <pre>
|
||||||
|
* 개정이력(Modification Information)
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2010.06.16 장동한 최초 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class EgovUnitCalcUtil {
|
||||||
|
|
||||||
|
//길이
|
||||||
|
HashMap<String, Double> g_hmVt = new HashMap<String, Double>();
|
||||||
|
|
||||||
|
//부피
|
||||||
|
HashMap<String, Double> g_hmVl = new HashMap<String, Double>();
|
||||||
|
|
||||||
|
//넓이
|
||||||
|
HashMap<String, Double> g_hmAr = new HashMap<String, Double>();
|
||||||
|
|
||||||
|
//무게
|
||||||
|
HashMap<String, Double> g_hmWt = new HashMap<String, Double>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 생성자를 통하여 길이, 부피, 넓이, 무게 환산 데이터를 생성한다.
|
||||||
|
*/
|
||||||
|
public EgovUnitCalcUtil(){
|
||||||
|
//길이
|
||||||
|
g_hmVt.put("vt0", (double)0);
|
||||||
|
g_hmVt.put("vt1", (double)1);
|
||||||
|
g_hmVt.put("vt2", 0.01);
|
||||||
|
g_hmVt.put("vt3", (1/2.54));
|
||||||
|
g_hmVt.put("vt4", (1/30.48));
|
||||||
|
g_hmVt.put("vt5", (1/91.44));
|
||||||
|
g_hmVt.put("vt6", (1/160934.4));
|
||||||
|
g_hmVt.put("vt7", 0.033);
|
||||||
|
g_hmVt.put("vt8", (0.033/6));
|
||||||
|
g_hmVt.put("vt9", (0.033/360));
|
||||||
|
g_hmVt.put("vt10", (0.033/1296));
|
||||||
|
|
||||||
|
|
||||||
|
//부피
|
||||||
|
g_hmVl.put("vl0", (double)0);
|
||||||
|
g_hmVl.put("vl1", (1/0.18039));
|
||||||
|
g_hmVl.put("vl2", (1/1.8039));
|
||||||
|
g_hmVl.put("vl3", (1/18.039));
|
||||||
|
g_hmVl.put("vl4", 10000.0);
|
||||||
|
g_hmVl.put("vl5", 0.001);
|
||||||
|
g_hmVl.put("vl6", (double)1);
|
||||||
|
g_hmVl.put("vl7", (1000/16.387064));
|
||||||
|
g_hmVl.put("vl8", (1000/Math.pow(2.54*12,3)));
|
||||||
|
g_hmVl.put("vl9", (1000/Math.pow(2.54*36,3)));
|
||||||
|
g_hmVl.put("vl10", (1000/(Math.pow(2.54,3)*231)));
|
||||||
|
|
||||||
|
//넓이
|
||||||
|
g_hmAr.put("ar0", (double)0);
|
||||||
|
g_hmAr.put("ar1", (double)(1089/100));
|
||||||
|
g_hmAr.put("ar2", (double)(1089/3600));
|
||||||
|
g_hmAr.put("ar3", (double)(1089/1080000));
|
||||||
|
g_hmAr.put("ar4", (double)(1089/10800000));
|
||||||
|
g_hmAr.put("ar5", (double)1);
|
||||||
|
g_hmAr.put("ar6", 0.01);
|
||||||
|
g_hmAr.put("ar7", (1/Math.pow(2.54*12/100,2)));
|
||||||
|
g_hmAr.put("ar8", (1/Math.pow(2.54*36/100,2)));
|
||||||
|
g_hmAr.put("ar9", (1/(Math.pow(2.54*36/100,2)*4840)));
|
||||||
|
g_hmAr.put("ar10", 0.0001);
|
||||||
|
|
||||||
|
//무게
|
||||||
|
g_hmWt.put("wt0", (double)0);
|
||||||
|
g_hmWt.put("wt1", (double)1);
|
||||||
|
g_hmWt.put("wt2", (double)1000);
|
||||||
|
g_hmWt.put("wt3", 0.001);
|
||||||
|
g_hmWt.put("wt4", 0.000001);
|
||||||
|
g_hmWt.put("wt5", (1/0.06479891));
|
||||||
|
g_hmWt.put("wt6", (16/453.59237));
|
||||||
|
g_hmWt.put("wt7", (1/453.59237));
|
||||||
|
g_hmWt.put("wt8", (1/3.75));
|
||||||
|
g_hmWt.put("wt9", (1/37.5));
|
||||||
|
g_hmWt.put("wt10", (double)(1/600));
|
||||||
|
g_hmWt.put("wt11", (double)(1/3750));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 길이단위를 환산하여 리턴한다.
|
||||||
|
* @param nLength -길이
|
||||||
|
* @param sLengthUnit-길이 단위
|
||||||
|
* @param sLengthUnitAs-길이 환산 단위
|
||||||
|
* @return double -환산된 길이
|
||||||
|
*/
|
||||||
|
public double convertLengthCalcUnit(double nLength, String sLengthUnit, String sLengthUnitAs){
|
||||||
|
|
||||||
|
double nSelAr = g_hmVt.get(sLengthUnit);
|
||||||
|
double nSelArAs = g_hmVt.get(sLengthUnitAs);
|
||||||
|
|
||||||
|
return (nSelArAs / nSelAr) * nLength;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 부피단위를 환산하여 리턴한다.
|
||||||
|
* @param nVolume -부피
|
||||||
|
* @param sVolumeUnit-부피 단위
|
||||||
|
* @param sVolumeUnitAs-부피 환산 단위
|
||||||
|
* @return double -환산된 부피
|
||||||
|
*/
|
||||||
|
public double convertVolumeCalcUnit(double nVolume, String sVolumeUnit, String sVolumeUnitAs){
|
||||||
|
|
||||||
|
double nSelVl = g_hmVl.get(sVolumeUnit);
|
||||||
|
double nSelVlAs = g_hmVl.get(sVolumeUnitAs);
|
||||||
|
|
||||||
|
return (nSelVl / nSelVlAs) * nVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 무게단위를 환산하여 리턴한다.
|
||||||
|
* @param nWeight -무게
|
||||||
|
* @param sWeightUnit -무게 단위
|
||||||
|
* @param sWeightUnitAs -무게 환산 단위
|
||||||
|
* @return double -환산된 무게
|
||||||
|
*/
|
||||||
|
public double convertWeightCalcUnit(double nWeight, String sWeightUnit, String sWeightUnitAs){
|
||||||
|
|
||||||
|
double nSelWt = g_hmAr.get(sWeightUnit);
|
||||||
|
double nSelWtAs = g_hmAr.get(sWeightUnitAs);
|
||||||
|
|
||||||
|
return (nSelWt / nSelWtAs) * nWeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 넓이단위를 환산하여 리턴한다.
|
||||||
|
* @param nWidth -넓이
|
||||||
|
* @param sWidthUnit-넓이 단위
|
||||||
|
* @param sWidthUnitAs-넓이 환산 단위
|
||||||
|
* @return double -환산된 넓이
|
||||||
|
*/
|
||||||
|
public double convertWidthCalcUnit(double nWidth, String sWidthUnit, String sWidthUnitAs){
|
||||||
|
|
||||||
|
double nSelAr = g_hmWt.get(sWidthUnit);
|
||||||
|
double nSelArAs = g_hmWt.get(sWidthUnitAs);
|
||||||
|
|
||||||
|
return (nSelAr / nSelArAs) * nWidth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.springframework.web.context.request.RequestAttributes;
|
||||||
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.string.EgovObjectUtil;
|
||||||
|
import sgis.com.vo.ComUserVO;
|
||||||
|
import sgis.com.vo.SessionVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EgovUserDetails Helper 클래스
|
||||||
|
*
|
||||||
|
* @author sjyoon
|
||||||
|
* @since 2009.06.01
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- ------------- ----------------------
|
||||||
|
* 2009.03.10 sjyoon 최초 생성
|
||||||
|
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class EgovUserDetailsHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인증된 사용자객체를 VO형식으로 가져온다.
|
||||||
|
* @return Object - 사용자 ValueObject
|
||||||
|
*/
|
||||||
|
public static Object getAuthenticatedUser() {
|
||||||
|
return (SessionVO)RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION)==null ?
|
||||||
|
new SessionVO() : (SessionVO) RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인증된 사용자의 권한 정보를 가져온다.
|
||||||
|
* 예) [ROLE_ADMIN, ROLE_USER, ROLE_A, ROLE_B, ROLE_RESTRICTED, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, IS_AUTHENTICATED_ANONYMOUSLY]
|
||||||
|
* @return List - 사용자 권한정보 목록
|
||||||
|
*/
|
||||||
|
public static List<String> getAuthorities() {
|
||||||
|
List<String> listAuth = new ArrayList<String>();
|
||||||
|
|
||||||
|
if (EgovObjectUtil.isNull((ComUserVO) RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION))) {
|
||||||
|
// log.debug("## authentication object is null!!");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return listAuth;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<?> getAuthoritiesList() {
|
||||||
|
List<?> listAuth = new ArrayList<Map<String, String>>();
|
||||||
|
SessionVO sessionVO = (SessionVO) RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION);
|
||||||
|
|
||||||
|
if (EgovObjectUtil.isNull(sessionVO)) {
|
||||||
|
// log.debug("## authentication object is null!!");
|
||||||
|
return null;
|
||||||
|
}else {
|
||||||
|
listAuth = sessionVO.getAuthList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return listAuth;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 인증된 사용자 여부를 체크한다.
|
||||||
|
* @return Boolean - 인증된 사용자 여부(TRUE / FALSE)
|
||||||
|
*/
|
||||||
|
public static Boolean isAuthenticated() {
|
||||||
|
SessionVO sessionVO = (SessionVO) RequestContextHolder.getRequestAttributes().getAttribute("LoginVO", RequestAttributes.SCOPE_SESSION);
|
||||||
|
if (EgovObjectUtil.isNull(sessionVO) || "".equals(sessionVO.getsUserId())) {
|
||||||
|
// log.debug("## authentication object is null!!");
|
||||||
|
return Boolean.FALSE;
|
||||||
|
}
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,125 @@
|
||||||
|
package egovframework.com.cmm.util;
|
||||||
|
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 교차접속 스크립트 공격 취약성 방지(파라미터 문자열 교체)
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ----------- -------- ---------------------------
|
||||||
|
* 2011.10.10 한성곤 최초 생성
|
||||||
|
* 2017-02-07 이정은 시큐어코딩(ES) - 시큐어코딩 경로 조작 및 자원 삽입[CWE-22, CWE-23, CWE-95, CWE-99]
|
||||||
|
* 2018.08.17 신용호 filePathBlackList 수정
|
||||||
|
* 2018.10.10 신용호 . => \\.으로 수정
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
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("\\.\\.", "");
|
||||||
|
|
||||||
|
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 fileInjectPathReplaceAll(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(";", "");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
package egovframework.com.cmm.web;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.property.EgovPropertyService;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 공통유틸리티성 작업을 위한 Controller 클래스
|
||||||
|
* @author 공통 서비스 개발팀 JJY
|
||||||
|
* @since 2009.03.02
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.03.02 JJY 최초 생성
|
||||||
|
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
public class EgovComUtlController {
|
||||||
|
|
||||||
|
/** EgovPropertyService */
|
||||||
|
@Resource(name = "propertiesService")
|
||||||
|
protected EgovPropertyService propertiesService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSP 호출작업만 처리하는 공통 함수
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/EgovPageLink.do")
|
||||||
|
public String moveToPage(@RequestParam("link") String linkPage,
|
||||||
|
HttpSession session,
|
||||||
|
@RequestParam(value="menuNo", required=false) String menuNo){
|
||||||
|
String link = linkPage;
|
||||||
|
// service 사용하여 리턴할 결과값 처리하는 부분은 생략하고 단순 페이지 링크만 처리함
|
||||||
|
if (linkPage==null || linkPage.equals("")){
|
||||||
|
link="cmm/egovError";
|
||||||
|
}else{
|
||||||
|
if(link.indexOf(",")>-1){
|
||||||
|
link=link.substring(0,link.indexOf(","));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 선택된 메뉴정보를 세션으로 등록한다.
|
||||||
|
if (menuNo!=null && !menuNo.equals("")){
|
||||||
|
session.setAttribute("menuNo",menuNo);
|
||||||
|
}
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JSP 호출작업만 처리하는 공통 함수
|
||||||
|
*/
|
||||||
|
@RequestMapping(value="/EgovPageLink.action")
|
||||||
|
public String moveToPage_action(@RequestParam("link") String linkPage){
|
||||||
|
String link = linkPage;
|
||||||
|
// service 사용하여 리턴할 결과값 처리하는 부분은 생략하고 단순 페이지 링크만 처리함
|
||||||
|
if (linkPage==null || linkPage.equals("")){
|
||||||
|
link="cmm/egovError";
|
||||||
|
}
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* validation rule dynamic java script
|
||||||
|
*/
|
||||||
|
@RequestMapping("/validator.do")
|
||||||
|
public String validate(){
|
||||||
|
return "cmm/validator";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
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.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
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* << 개정이력(Modification Information) >>
|
||||||
|
*
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ------- -------- ---------------------------
|
||||||
|
* 2009.3.25 이삼섭 최초 생성
|
||||||
|
* 2011.06.11 서준식 스프링 3.0 업그레이드 API변경으로인한 수정
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
public class EgovMultipartResolver extends CommonsMultipartResolver {
|
||||||
|
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<String, MultipartFile> multipartFiles = new LinkedMultiValueMap<String, MultipartFile>();
|
||||||
|
Map<String, String[]> multipartParameters = new HashMap<String, String[]>();
|
||||||
|
|
||||||
|
// 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) {
|
||||||
|
if (logger.isWarnEnabled()) {
|
||||||
|
logger.warn("Could not decode multipart item '" + fileItem.getFieldName() + "' with encoding '" + encoding
|
||||||
|
+ "': using platform default");
|
||||||
|
}
|
||||||
|
value = fileItem.getString();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
value = fileItem.getString();
|
||||||
|
}
|
||||||
|
String[] curParam = 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<MultipartFile> fileList = new ArrayList<MultipartFile>();
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
if (logger.isDebugEnabled()) {
|
||||||
|
logger.debug("Found multipart file [" + file.getName() + "] of size " + file.getSize() + " bytes with original filename ["
|
||||||
|
+ file.getOriginalFilename() + "], stored " + file.getStorageDescription());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new MultipartParsingResult(multipartFiles, multipartParameters, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package sgis.adm.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
|
||||||
|
@Mapper("AdmMainMapper")
|
||||||
|
public interface AdmMainMapper {
|
||||||
|
|
||||||
|
List<?> selectUserList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package sgis.adm.service;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface AdmMainService {
|
||||||
|
|
||||||
|
List<?> selectUserList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package sgis.adm.service.impl;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import sgis.adm.mapper.AdmMainMapper;
|
||||||
|
import sgis.adm.service.AdmMainService;
|
||||||
|
|
||||||
|
@Service("AdmMainService")
|
||||||
|
public class AdmMainServiceImpl implements AdmMainService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AdmMainMapper admMainMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<?> selectUserList(HashMap<String,Object> params) throws Exception {
|
||||||
|
return admMainMapper.selectUserList(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,278 @@
|
||||||
|
package sgis.adm.web;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.json.simple.JSONArray;
|
||||||
|
import org.json.simple.JSONObject;
|
||||||
|
import org.json.simple.parser.JSONParser;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.ui.ModelMap;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
|
import egovframework.rte.fdl.property.EgovPropertyService;
|
||||||
|
import sgis.adm.service.AdmMainService;
|
||||||
|
import sgis.board.entity.Member;
|
||||||
|
import sgis.com.service.ComUserService;
|
||||||
|
import sgis.com.util.WebUtil;
|
||||||
|
import sgis.com.vo.SessionVO;
|
||||||
|
import sgis.com.web.BaseController;
|
||||||
|
import sgis.board.entity.Member;
|
||||||
|
import sgis.board.mapper.MemberMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : AdmMainController.java
|
||||||
|
* @Date : 2022. 5. 10.
|
||||||
|
* @Creator :
|
||||||
|
* @Discription : 관리자 메인 컨트롤러
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
public class AdmMainController extends BaseController {
|
||||||
|
//logger 설정
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(AdmMainController.class);
|
||||||
|
|
||||||
|
@Resource(name ="AdmMainService")
|
||||||
|
private AdmMainService AdmMainService;
|
||||||
|
|
||||||
|
@Resource(name="ComUserService")
|
||||||
|
private ComUserService comUserService;
|
||||||
|
|
||||||
|
/** EgovPropertyService */
|
||||||
|
@Resource(name = "propertiesService")
|
||||||
|
protected EgovPropertyService propertiesService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
MemberMapper memberMapper;
|
||||||
|
|
||||||
|
// 관리자페이지
|
||||||
|
@RequestMapping(value = "/sgis/adm/admMain.do")
|
||||||
|
public String adminMain(@RequestParam HashMap<String, Object> params, HttpServletRequest request, ModelMap model) throws Exception{
|
||||||
|
|
||||||
|
return "sgis/adm/main";
|
||||||
|
}
|
||||||
|
|
||||||
|
//사용자 리스트 호출
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@RequestMapping(value = "/app/adm/userList_jsondata.do", method = {RequestMethod.POST, RequestMethod.GET})
|
||||||
|
public void userList_jsondata(@RequestParam HashMap<String,Object> params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
|
||||||
|
request.setCharacterEncoding("UTF-8");
|
||||||
|
response.setContentType("text/html;charset=UTF-8");
|
||||||
|
|
||||||
|
//data정보
|
||||||
|
List<?> result = AdmMainService.selectUserList(params);
|
||||||
|
|
||||||
|
HashMap<String, List<?>> resultMap = new HashMap<String, List<?>>();
|
||||||
|
resultMap.put("dataList1", result);
|
||||||
|
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.putAll( resultMap );
|
||||||
|
response.getWriter().print(json);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Method_Name : selectApiList
|
||||||
|
* @Date : 2022. 10. 11.
|
||||||
|
* @Creator :
|
||||||
|
* @Method_Discription : REST API 목록 조회
|
||||||
|
* @param RequestParam
|
||||||
|
* @param Request
|
||||||
|
* @return Response
|
||||||
|
* @throws
|
||||||
|
**/
|
||||||
|
@RequestMapping(value="/sgis/adm/selectApiList.do")
|
||||||
|
public String selectApiList(@RequestParam HashMap<String,Object> params, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
|
||||||
|
|
||||||
|
setCode2Model("sido_code", model); // 시도코드
|
||||||
|
setCode2Model("sgg_code", model); // 시군구코드
|
||||||
|
setCode2Model("emd_code", model); // 읍면동코드
|
||||||
|
|
||||||
|
List<?> apiLogList = comUserService.selectSystbClog01List(params);
|
||||||
|
model.put("apiLogList", apiLogList);
|
||||||
|
|
||||||
|
return "sgis/adm/apiList";
|
||||||
|
};
|
||||||
|
|
||||||
|
//비밀번호초기화
|
||||||
|
@RequestMapping(value="/app/adm/pwInit.do")
|
||||||
|
@ResponseBody
|
||||||
|
public String pwInit(@RequestParam HashMap<String,Object> param, ModelMap model,HttpServletRequest request, HttpServletResponse response, Member m) throws Exception{
|
||||||
|
|
||||||
|
String initPw = "";
|
||||||
|
String retStr = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
//암호화
|
||||||
|
initPw = WebUtil.getEncrypt("gotnqn1234");
|
||||||
|
String userId = (String) param.get("userId");
|
||||||
|
m.setUser_id(userId);
|
||||||
|
m.setPswd(initPw);
|
||||||
|
|
||||||
|
int result = memberMapper.memPwUpdate(m);
|
||||||
|
if(result==1) { // 수정성공 메세지
|
||||||
|
retStr = "success";
|
||||||
|
}else {
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
retStr = "success";
|
||||||
|
|
||||||
|
} catch (Exception e) { System.out.println("ERROR:"+e);
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "{\"result\":\""+retStr+"\"}";
|
||||||
|
};
|
||||||
|
|
||||||
|
//관리자 회원가입
|
||||||
|
@RequestMapping(value="/app/adm/newAdmInsert.do")
|
||||||
|
@ResponseBody
|
||||||
|
public String newAdmInsert(@RequestParam HashMap<String,Object> param, ModelMap model,HttpServletRequest request, HttpServletResponse response, Member m) throws Exception{
|
||||||
|
|
||||||
|
String retStr = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
String enPw = "";
|
||||||
|
enPw = WebUtil.getEncrypt((String) param.get("memPassword1"));
|
||||||
|
m.setPswd(enPw);
|
||||||
|
m.setUser_group("A");
|
||||||
|
int result=memberMapper.register(m);
|
||||||
|
if(result==1) { // 수정성공 메세지
|
||||||
|
retStr = "success";
|
||||||
|
}else {
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
retStr = "success";
|
||||||
|
|
||||||
|
} catch (Exception e) { System.out.println("ERROR:"+e);
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "{\"result\":\""+retStr+"\"}";
|
||||||
|
};
|
||||||
|
|
||||||
|
//관리자 회원정보 수정
|
||||||
|
@RequestMapping(value="/app/adm/updateUser.do")
|
||||||
|
@ResponseBody
|
||||||
|
public String updateUser(@RequestParam HashMap<String,Object> param, ModelMap model,HttpServletRequest request, HttpServletResponse response, Member m) throws Exception{
|
||||||
|
|
||||||
|
String retStr = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
m.setUser_id((String) param.get("userId"));
|
||||||
|
int result = memberMapper.memUpdate(m);
|
||||||
|
|
||||||
|
if(result==1) { // 수정성공 메세지
|
||||||
|
retStr = "success";
|
||||||
|
}else {
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
retStr = "success";
|
||||||
|
|
||||||
|
} catch (Exception e) { System.out.println("ERROR:"+e);
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "{\"result\":\""+retStr+"\"}";
|
||||||
|
};
|
||||||
|
|
||||||
|
//관리자 회원정보 삭제
|
||||||
|
@RequestMapping(value="/app/adm/deleteUser.do")
|
||||||
|
@ResponseBody
|
||||||
|
public String deleteUser(@RequestParam HashMap<String,Object> param, ModelMap model,HttpServletRequest request, HttpServletResponse response, Member m) throws Exception{
|
||||||
|
|
||||||
|
String retStr = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
m.setUser_id((String) param.get("userId"));
|
||||||
|
int result = memberMapper.memDelete(m);
|
||||||
|
|
||||||
|
if(result==1) { // 삭제성공 메세지
|
||||||
|
retStr = "success";
|
||||||
|
}else {
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
retStr = "success";
|
||||||
|
|
||||||
|
} catch (Exception e) { System.out.println("ERROR:"+e);
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "{\"result\":\""+retStr+"\"}";
|
||||||
|
};
|
||||||
|
|
||||||
|
@RequestMapping(value="/app/adm/deleteListUser.do", method=RequestMethod.POST)
|
||||||
|
public @ResponseBody Object insertAssigneeList(@RequestParam String jsonData, ModelMap model,HttpServletRequest request, HttpServletResponse response) throws Exception{
|
||||||
|
|
||||||
|
Map<String, Object> result = new HashMap<String, Object>();
|
||||||
|
Map<String, Object> paramMap = new HashMap<String, Object>();
|
||||||
|
|
||||||
|
JSONArray array = new JSONArray();
|
||||||
|
JSONParser parser = new JSONParser();
|
||||||
|
|
||||||
|
array = (JSONArray)parser.parse(jsonData);
|
||||||
|
|
||||||
|
List<Map<String, Object>> list = new ArrayList <Map<String, Object>>();
|
||||||
|
|
||||||
|
for(int i=0; i<array.size(); i++) {
|
||||||
|
JSONObject obj = (JSONObject)array.get(i);
|
||||||
|
|
||||||
|
Map<String, Object> resendMap = new HashMap<String, Object>();
|
||||||
|
resendMap.put("userId", obj.get("userId"));
|
||||||
|
|
||||||
|
list.add(resendMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
paramMap.put("list", list);
|
||||||
|
memberMapper.deleteUserList(paramMap);
|
||||||
|
|
||||||
|
result.put("code", "ok");
|
||||||
|
result.put("message", "선택한 사용자를 삭제하였습니다.");
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
//관리자 회원정보 삭제
|
||||||
|
@RequestMapping(value="/app/adm/deleteListUser.do")
|
||||||
|
@ResponseBody
|
||||||
|
public String deleteListUser(@RequestParam HashMap<String,Object> param, ModelMap model,HttpServletRequest request, HttpServletResponse response, Member m) throws Exception{
|
||||||
|
|
||||||
|
String retStr = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
m.setUser_id((String) param.get("userId"));
|
||||||
|
int result = memberMapper.memDelete(m);
|
||||||
|
|
||||||
|
if(result==1) { // 삭제성공 메세지
|
||||||
|
retStr = "success";
|
||||||
|
}else {
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
retStr = "success";
|
||||||
|
|
||||||
|
} catch (Exception e) { System.out.println("ERROR:"+e);
|
||||||
|
retStr = "fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "{\"result\":\""+retStr+"\"}";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,106 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
|
||||||
|
@Mapper("AppBasicMapper")
|
||||||
|
public interface AppBasicMapper {
|
||||||
|
|
||||||
|
List<?> selectSptInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSptInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSptInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectTcrrqdInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertTcrrqdInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteTcrrqdInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectDsfInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertDsfInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteDsfInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectPressuremeterInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldPressuremeterInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldPressuremeterInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSlickensideInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSlickensideInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSlickensideInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectQInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteQInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertQInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRmrInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRmrInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRmrInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFieldWaterPressureInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldWaterPressureInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldWaterPressureInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateFieldWaterPressureSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFieldWpSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldWpSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldWpSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFieldPermeablityInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldPermeablityInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldPermeablityInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateFieldPermeablitySubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFieldPerSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldPerSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldPerSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFieldConePenetrationInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldConePenetrationInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldConePenetrationInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateFieldConePenetrationInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFieldCpSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldCpSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldCpSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFieldVaneInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldVaneInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldVaneInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFieldPoreWaterPressureInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteFieldPoreWaterPressureInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertFieldPoreWaterPressureInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
import sgis.app.vo.AppHoleVO;
|
||||||
|
import sgis.app.vo.AppProjVO;
|
||||||
|
import sgis.app.vo.AppSaupVO;
|
||||||
|
|
||||||
|
@Mapper("AppGpMapper")
|
||||||
|
public interface AppGpMapper {
|
||||||
|
|
||||||
|
List<?> selectBoreholeWaveInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteBoreholeWaveInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertBoreholeWaveInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectDownholeInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteDownholeInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertDownholeInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectDensityInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteDensityInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertDensityInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : AppServiceMapper.java
|
||||||
|
* @Date : 2022. 9. 22.
|
||||||
|
* @Creator : ICTWAY KIM YOON SU
|
||||||
|
* @Discription :
|
||||||
|
*/
|
||||||
|
@Mapper("AppInstrumentMapper")
|
||||||
|
public interface AppInstrumentMapper {
|
||||||
|
|
||||||
|
List<?> selectSurSetInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSurSetInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSurSetInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSurPinInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSurPinInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSurPinInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectVerIncInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteVerIncInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertVerIncInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSetExtInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSetExtInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSetExtInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectWatPreInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteWatPreInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertWatPreInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectWatLevInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteWatLevInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertWatLevInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSurSetSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSurSetSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSurSetSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSurPinSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSurPinSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSurPinSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectVerIncSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertVerIncSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteVerIncSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSetExtSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSetExtSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSetExtSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectWatPreSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertWatPreSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteWatPreSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectWatLevSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertWatLevSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteWatLevSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectVerIncMapInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSetExtMapInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectWatPreMapInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectWatLevMapInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSurSetSubMapInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
import sgis.app.vo.AppHoleVO;
|
||||||
|
import sgis.app.vo.AppProjVO;
|
||||||
|
import sgis.app.vo.AppSaupVO;
|
||||||
|
|
||||||
|
@Mapper("AppLineMapper")
|
||||||
|
public interface AppLineMapper {
|
||||||
|
|
||||||
|
EgovMap selectResistivityInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertResistivityInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateResistivityInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectResistivitySubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteResistivitySubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertResistivitySubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectRefractionInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRefractionInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateRefractionInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRefractionSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRefractionSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRefractionSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,107 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
import sgis.app.vo.AppHoleVO;
|
||||||
|
import sgis.app.vo.AppProjVO;
|
||||||
|
import sgis.app.vo.AppSaupVO;
|
||||||
|
|
||||||
|
@Mapper("AppMainMapper")
|
||||||
|
public interface AppMainMapper {
|
||||||
|
|
||||||
|
List<?> selectComCode(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectCoordiPrjstring() throws Exception;
|
||||||
|
|
||||||
|
List<?> selectAppProjList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
public void insertProjectInfo(AppProjVO vo) throws Exception;
|
||||||
|
|
||||||
|
public void updateProjectInfo(AppProjVO vo) throws Exception;
|
||||||
|
|
||||||
|
public void updateProjectFileNo(AppProjVO vo) throws Exception;
|
||||||
|
|
||||||
|
public void deleteProject(AppProjVO vo) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectAppProjDetail(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
public void updateArea(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectAreaIntersects(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
public void updateAreaYn(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
public void insertSaupInfo(AppSaupVO vo) throws Exception;
|
||||||
|
|
||||||
|
public void updateSaupInfo(AppSaupVO vo) throws Exception;
|
||||||
|
|
||||||
|
public void updateSaupArea(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectAppSaupList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectAppSaupDetail(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectAppHoleList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectAppHoleDetail(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
public void insertHoleInfo(AppHoleVO vo) throws Exception;
|
||||||
|
|
||||||
|
public void updateHoleInfo(AppHoleVO vo) throws Exception;
|
||||||
|
|
||||||
|
public void updateHoleFileNo(AppHoleVO vo) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectLeftMenuTree(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectLeftMenuTestTree(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectLeftMenuLineTree(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectTopoInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertTopo01(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateTopo01(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectTestItemsInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertItem01(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateItem01(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectUnitInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectReferenceCode(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertItem02(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateItem02(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectLayerInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectDivisionInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertLayerInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteLayerInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSampleInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSampleInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSampleInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectFileInfoList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectMainTest(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap selectConstItemsInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertItem03(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateItem03(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
import sgis.app.vo.AppHoleVO;
|
||||||
|
import sgis.app.vo.AppProjVO;
|
||||||
|
import sgis.app.vo.AppSaupVO;
|
||||||
|
|
||||||
|
@Mapper("AppRockMapper")
|
||||||
|
public interface AppRockMapper {
|
||||||
|
|
||||||
|
public int selectRockUniaxialCnt(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockUniaxialSampleCodeList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockUniaxialInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRockUniaxialInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRockUniaxialInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
public int selectRockTriaxialCnt(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockTriaxialSampleCodeList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockTriaxialInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRockTriaxialInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRockTriaxialInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
public int selectRockPointloadCnt(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockPointloadSampleCodeList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockPointloadInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRockPointloadInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRockPointloadInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
public int selectRockJointshearCnt(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockJointshearSampleCodeList(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockJointshearInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRockJointshearInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRockJointshearInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockResonantUsualInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRockResonantUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRockResonantUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateRockResonantUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockResonantUsualSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRockResonantUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRockResonantUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockRepeatedTriaxialUsualInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRockRepeatedTriaxialUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRockRepeatedTriaxialUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateRockRepeatedTriaxialUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockRepeatedTriaxialUsualSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRockRepeatedTriaxialUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRockRepeatedTriaxialUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockResonantUsualSubTotalInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRockRepeatedTriaxialUsualSubTotalInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,105 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
import sgis.app.vo.AppHoleVO;
|
||||||
|
import sgis.app.vo.AppProjVO;
|
||||||
|
import sgis.app.vo.AppSaupVO;
|
||||||
|
|
||||||
|
@Mapper("AppSandMapper")
|
||||||
|
public interface AppSandMapper {
|
||||||
|
|
||||||
|
List<?> selectClasInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertClasInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateClasInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteClasInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectCbrInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertCbrInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateCbrInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteCbrInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectConsolidationInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertConsolidationInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateConsolidationInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteConsolidationInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectConsolidationSubTotalInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectConsolidationSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertConsolidationSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteConsolidationSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectUnconfinedUsualInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertUnconfinedUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateUnconfinedUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteUnconfinedUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectTriaxialUsualInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertTriaxialUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateTriaxialUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteTriaxialUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectTriaxialUsualSubTotalInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectTriaxialUsualSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertTriaxialUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteTriaxialUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectResonantUsualInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertResonantUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateResonantUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteResonantUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectResonantUsualSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertResonantUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteResonantUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRepeatedTriaxialUsualInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectResonantUsualSubTotalInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRepeatedTriaxialUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void updateRepeatedTriaxialUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRepeatedTriaxialUsualInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectRepeatedTriaxialUsualSubInfo(HashMap<String,Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertRepeatedTriaxialUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteRepeatedTriaxialUsualSubInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : AppFillMapper.java
|
||||||
|
* @Date : 2022. 9. 1.
|
||||||
|
* @Creator : ICTWAY KIM YOON SU
|
||||||
|
* @Discription :
|
||||||
|
*/
|
||||||
|
@Mapper("AppSgImpPlanMapper")
|
||||||
|
public interface AppSgImpPlanMapper {
|
||||||
|
|
||||||
|
EgovMap includeFillInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectZoneInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
List<?> selectSuTrInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSuTrInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSuTrInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package sgis.app.mapper;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import egovframework.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName : AppSoftGroundMapper.java
|
||||||
|
* @Date : 2022. 9. 16.
|
||||||
|
* @Creator : ICTWAY KIM YOON SU
|
||||||
|
* @Discription :
|
||||||
|
*/
|
||||||
|
@Mapper("AppSoftGroundMapper")
|
||||||
|
public interface AppSoftGroundMapper {
|
||||||
|
|
||||||
|
List<?> selectSoftGroundInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void insertSoftGroundInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
void deleteSoftGroundInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
|
||||||
|
EgovMap includeSoftGroundInfo(HashMap<String, Object> params) throws Exception;
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue