From 4611271b5d822ce8fc5ac25794b637bd84a55a51 Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Fri, 4 Apr 2025 13:23:26 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B5=9C=EC=B4=88=20=EC=BB=A4=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asset/image/sntris-layout.png | Bin 0 -> 7344 bytes pom.xml | 113 ++++++++++++++++++ release.xml | 19 +++ .../sntris/SntrisInterfaceApplication.java | 24 ++++ src/main/resources/application.yml | 53 ++++++++ src/main/resources/intf-conf/xit-sntris.conf | 21 ++++ src/main/resources/log4jdbc.log4j2.properties | 4 + src/main/resources/logback-spring.xml | 82 +++++++++++++ .../resources/sql/mapper/base/test-mapper.xml | 13 ++ .../resources/sql/mapper/base/utility.xml | 37 ++++++ src/main/resources/sql/mybatis-config.xml | 21 ++++ 11 files changed, 387 insertions(+) create mode 100644 asset/image/sntris-layout.png create mode 100644 pom.xml create mode 100644 release.xml create mode 100644 src/main/java/cokr/xit/interfaces/sntris/SntrisInterfaceApplication.java create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/intf-conf/xit-sntris.conf create mode 100644 src/main/resources/log4jdbc.log4j2.properties create mode 100644 src/main/resources/logback-spring.xml create mode 100644 src/main/resources/sql/mapper/base/test-mapper.xml create mode 100644 src/main/resources/sql/mapper/base/utility.xml create mode 100644 src/main/resources/sql/mybatis-config.xml diff --git a/asset/image/sntris-layout.png b/asset/image/sntris-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..d02e6f21b41be271d13f7bcecf1cbe0f542334ff GIT binary patch literal 7344 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�HLQ1cTM%OsuXN6~wV!5TOj^ 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

Q`Cv@GpT9@=>&a)EO`Is@mnK+UPj+#e z-$_vVF5-)yx7_S^sYnImHJ4GG?!F_KzluIWgx_$rpmX`hG#8=`UyrdB+Y{DR$ZK_X zC>xV2JlYy?KQYzW6C#s#6*0q)>Xl-KrrLgV5uLDzgQae&wAyf>-e?Bc+pDfvQj-2S zX598amqLv2nS^?7Uo*Wc6P~2L&&me$s_s{Wy!{T-{j>`WCat!RH(O49g1ddnmg^fxzZPH7Xi=<7>Siki4H*q@kFs4FYeqAL`Iq;d8c@E0 ze*E_G3hsgb8XybeMd-{N{mVeLDhPF-5s?9GllYipKfs7^VU4g58}yqN)nb1{-!(D@ zY+;Zc_P8*1&r5$MiMktf#Ph8=rl61A&U=AP4w_#S|31>m6Qo}>q6-2O&C9Nw3Yil+ z^E5UecA7mLkoD2z4+r^7BC8prq~V8?xx8$(B{FY0FXhaPQ(DBP(}(dkIz>uOzI5wq z)vy+5RGTR7dxpIpWnH^C$X_S*h-hN;Z+k2EQX^#j>Q|=JK}{u5-APn3>V1<;7N-YE z9*9Z4)h9O($d&1je?LkS3x)-Ko^|1~gdszYuqki#B?&BS#~2aE1qS-zwpCyld;JlS z?L_{4H>aS6!kI>ss25S4QrU|%dQr@1&ViePnm(%JB9*~CbC=Y4anxcOcsNF#mkiT#-Xj5F$4sKR{s0$arhqyo< z<~e^GD&h_qCeqFF&2oh5{$DjDpuDuyBWqVA7bNSOwg_wwGOpn4kxC_d< z*_j9Zx@X + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 2.7.18 + + + + cokr.xit.interfaces + xit-sntris-interface + 0.0.1-SNAPSHOT + jar + + xit-sntris-interface + http://maven.apache.org + + + UTF-8 + + 17 + ${java.version} + ${java.version} + + + + + mvn2s + https://repo1.maven.org/maven2/ + + true + + + true + + + + egovframe + https://maven.egovframe.go.kr/maven/ + + true + + + false + + + + maven-public + https://nas.xit.co.kr:8888/repository/maven-public/ + + + + + + cokr.xit.boot + xit-foundation-starter + 23.04.01-SNAPSHOT + + + + cokr.xit.interfaces + xit-sntris + 23.04.01-SNAPSHOT + + + + + + xit-sntris-interface + + + + ${basedir}/src/main/resources + + intf-conf/*.* + spring/*.* + application.yml + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + com.github.therapi + therapi-runtime-javadoc-scribe + 0.15.0 + + + + + + org.springframework.boot + spring-boot-maven-plugin + + deploy + + + org.projectlombok + lombok + + + + + + + \ No newline at end of file diff --git a/release.xml b/release.xml new file mode 100644 index 0000000..2eb99e3 --- /dev/null +++ b/release.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/sntris/SntrisInterfaceApplication.java b/src/main/java/cokr/xit/interfaces/sntris/SntrisInterfaceApplication.java new file mode 100644 index 0000000..fbbb326 --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/sntris/SntrisInterfaceApplication.java @@ -0,0 +1,24 @@ +package cokr.xit.interfaces.sntris; + +import org.springframework.boot.SpringApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ImportResource; + +import cokr.xit.foundation.boot.FoundationApplication; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; + +@ImportResource("classpath:spring/context-*.xml") +public class SntrisInterfaceApplication extends FoundationApplication { + public static void main(String[] args) { + SpringApplication.run(SntrisInterfaceApplication.class, args); + } + + @Bean + public OpenAPI openAPI() { + return new OpenAPI() + .info(new Info() + .title("서울 세외수입 연계 시스템") + ); + } +} \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..1ed195b --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,53 @@ +server: + port: 18080 + servlet: + context-path: / + + ssl: + enabled: false + key-store: ssl/.keystore + key-store-type: PKCS12 + key-store-password: 5811807 + +spring: + application: + name: xit-sntris-interface + + main: + allow-bean-definition-overriding: true + sql: + init: + platform: mariadb 또는 oracle(해당 내용만 지정) + + datasource: + hikari: + driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy +# MariaDB + jdbc-url: jdbc:log4jdbc:mariadb://호스트:포트/DB이름?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&useSSL=false&autocommit=false +# Oracle +# jdbc-url: jdbc:log4jdbc:oracle:thin:@호스트:포트:SID + username: 사용자 아이디 + password: 사용자 비밀번호 + auto-commit: false + + mvc: + static-path-pattern: /resources/**,/files/** + web: + resources: + static-locations: /resources/,file:files/ + +messageSource: + basenames: + - classpath:message/message-common + - classpath:org/egovframe/rte/fdl/property/messages/properties + +springdoc: + swagger-ui: + path: /swagger.html + +propertyService: + properties: + - tempDir: C:\temp + - pageUnit: 10 + - pageSize: 10 + - permitAccess: /intf/**/* diff --git a/src/main/resources/intf-conf/xit-sntris.conf b/src/main/resources/intf-conf/xit-sntris.conf new file mode 100644 index 0000000..c936db3 --- /dev/null +++ b/src/main/resources/intf-conf/xit-sntris.conf @@ -0,0 +1,21 @@ +{ + "host": "http://98.33.4.167:8082", +/* 운영: http://98.33.4.164 + 개발: http://98.33.4.167:8082 + */ + + "apis": [ + { /* 부과 */ + "name": "imposition", + "uri": "/BugaWebService/BugaWebService" + }, + { /* 사전통보 - 과태료 대장 등록 */ + "name": "prenotice", + "uri": "/SntrPreNoticeWebService/SntrPreNoticeWebService" + }, + { /* 사전통보 - 과태료 대장 조회 */ + "name": "fileoffer", + "uri": "/SntrFileOfferWebService/SntrFileOfferWebService" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/log4jdbc.log4j2.properties b/src/main/resources/log4jdbc.log4j2.properties new file mode 100644 index 0000000..3b8ff2b --- /dev/null +++ b/src/main/resources/log4jdbc.log4j2.properties @@ -0,0 +1,4 @@ +log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + +log4jdbc.dump.sql.maxlinelength=0 +log4jdbc.drivers=org.mariadb.jdbc.Driver diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..29f62ca --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + ${LOG_PATTERN} + + + + + ${LOG_PATH}/${LOG_FILE_NAME}.log + + ${LOG_PATTERN} + + + + + ${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log + + 10MB + + + 30 + + + + + + + error + ACCEPT + DENY + + + ${LOG_PATH}/${ERR_LOG_FILE_NAME}.log + + ${LOG_PATTERN} + + + + + ${LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log + + + 10MB + + + 60 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/sql/mapper/base/test-mapper.xml b/src/main/resources/sql/mapper/base/test-mapper.xml new file mode 100644 index 0000000..d674130 --- /dev/null +++ b/src/main/resources/sql/mapper/base/test-mapper.xml @@ -0,0 +1,13 @@ + + + + +${sql} + +${sql} + +${sql} + +COMMIT + + \ No newline at end of file diff --git a/src/main/resources/sql/mapper/base/utility.xml b/src/main/resources/sql/mapper/base/utility.xml new file mode 100644 index 0000000..7f335db --- /dev/null +++ b/src/main/resources/sql/mapper/base/utility.xml @@ -0,0 +1,37 @@ + + + + + + +SELECT QROWS.* FROM ( + SELECT ROW_NUMBER() OVER() ROW_NUM + , COUNT(*) OVER() TOT_CNT, QBODY.* + FROM ( + + ) QBODY + ) QROWS +WHERE ROW_NUM BETWEEN ((#{pageNum} - 1) * #{fetchSize}) + 1 AND (#{pageNum} * #{fetchSize}) + + + +ORDER BY ${orderBy} + + + +DATE_FORMAT(CURRENT_TIMESTAMP, '%Y%m%d%H%i%s') +TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS') + +SELECTNOW FROM DUAL + +DATE_FORMAT(CURRENT_DATE, '%Y%m%d') +TO_CHAR(CURRENT_DATE, 'YYYYMMDD') + +SELECTTODAY FROM DUAL + +NVL(#{thisDay},) + +SELECTTHIS_DAY FROM DUAL + + \ No newline at end of file diff --git a/src/main/resources/sql/mybatis-config.xml b/src/main/resources/sql/mybatis-config.xml new file mode 100644 index 0000000..faa9415 --- /dev/null +++ b/src/main/resources/sql/mybatis-config.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file