Initial commit
This commit is contained in:
24
.gitattributes
vendored
Normal file
24
.gitattributes
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# 기본값: 모든 텍스트 파일 CRLF (Windows 개발 환경)
|
||||||
|
* text=auto eol=crlf
|
||||||
|
|
||||||
|
# Shell 스크립트는 LF 고정 (Linux CI/CD 실행 환경)
|
||||||
|
*.sh text eol=lf
|
||||||
|
mvnw text eol=lf
|
||||||
|
|
||||||
|
# 바이너리 파일 (줄바꿈 변환 제외)
|
||||||
|
*.jar binary
|
||||||
|
*.war binary
|
||||||
|
*.ear binary
|
||||||
|
*.class binary
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.jpeg binary
|
||||||
|
*.gif binary
|
||||||
|
*.ico binary
|
||||||
|
*.svg binary
|
||||||
|
*.ttf binary
|
||||||
|
*.woff binary
|
||||||
|
*.woff2binary
|
||||||
|
*.pdf binary
|
||||||
|
*.zip binary
|
||||||
|
*.tar.gz binary
|
||||||
64
.gitignore
vendored
Normal file
64
.gitignore
vendored
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# ===== 빌드 결과물 =====
|
||||||
|
target/
|
||||||
|
!**/src/main/**/target/
|
||||||
|
!**/src/test/**/target/
|
||||||
|
*.class
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.ear
|
||||||
|
*.nar
|
||||||
|
|
||||||
|
# ===== 로그 =====
|
||||||
|
*.log
|
||||||
|
logs/
|
||||||
|
spring-shell.log
|
||||||
|
|
||||||
|
# ===== Maven =====
|
||||||
|
.mvn/wrapper/maven-wrapper.jar
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
.mvn/timing.properties
|
||||||
|
|
||||||
|
# ===== IntelliJ IDEA =====
|
||||||
|
.idea/
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
out/
|
||||||
|
|
||||||
|
# ===== Eclipse / STS =====
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
bin/
|
||||||
|
|
||||||
|
# ===== NetBeans =====
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
build/
|
||||||
|
!**/src/main/**/build/
|
||||||
|
!**/src/test/**/build/
|
||||||
|
|
||||||
|
# ===== VS Code =====
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# ===== OS =====
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
|
||||||
|
# ===== 환경설정 (민감정보 분리 시) =====
|
||||||
|
# application-local.properties
|
||||||
|
# application-secret.properties
|
||||||
19
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
19
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you 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.
|
||||||
|
wrapperVersion=3.3.2
|
||||||
|
distributionType=only-script
|
||||||
|
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
|
||||||
32
HELP.md
Normal file
32
HELP.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Read Me First
|
||||||
|
The following was discovered as part of building this project:
|
||||||
|
|
||||||
|
* The original package name 'io.shinhanlife.chat-backend' is invalid and this project uses 'io.shinhanlife.chatbackend' instead.
|
||||||
|
|
||||||
|
# Getting Started
|
||||||
|
|
||||||
|
### Reference Documentation
|
||||||
|
For further reference, please consider the following sections:
|
||||||
|
|
||||||
|
* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
|
||||||
|
* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/3.5.3/maven-plugin)
|
||||||
|
* [Create an OCI image](https://docs.spring.io/spring-boot/3.5.3/maven-plugin/build-image.html)
|
||||||
|
* [Spring Web](https://docs.spring.io/spring-boot/3.5.3/reference/web/servlet.html)
|
||||||
|
* [Spring Session for Spring Data Redis](https://docs.spring.io/spring-session/reference/)
|
||||||
|
* [Spring Data JPA](https://docs.spring.io/spring-boot/3.5.3/reference/data/sql.html#data.sql.jpa-and-spring-data)
|
||||||
|
|
||||||
|
### Guides
|
||||||
|
The following guides illustrate how to use some features concretely:
|
||||||
|
|
||||||
|
* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
|
||||||
|
* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
|
||||||
|
* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)
|
||||||
|
* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)
|
||||||
|
|
||||||
|
### Maven Parent overrides
|
||||||
|
|
||||||
|
Due to Maven's design, elements are inherited from the parent POM to the project POM.
|
||||||
|
While most of the inheritance is fine, it also inherits unwanted elements like `<license>` and `<developers>` from the parent.
|
||||||
|
To prevent this, the project POM contains empty overrides for these elements.
|
||||||
|
If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides.
|
||||||
|
|
||||||
184
README.md
Normal file
184
README.md
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
# AXHUB Backend
|
||||||
|
|
||||||
|
Spring Boot 기반 AXHUB 관리자 백엔드 API 서버입니다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 환경
|
||||||
|
|
||||||
|
| 항목 | 버전 |
|
||||||
|
|------|------|
|
||||||
|
| Java | 17 |
|
||||||
|
| Spring Boot | 3.5.x |
|
||||||
|
| Build Tool | Maven |
|
||||||
|
| 주요 라이브러리 | MyBatis, Lombok, MapStruct, P6Spy |
|
||||||
|
| 데이터베이스 | H2 (in-memory, 로컬 개발용) |
|
||||||
|
| 세션 저장소 | Redis |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 실행 방법
|
||||||
|
|
||||||
|
`AxHubAdminApplication.java`를 실행합니다.
|
||||||
|
|
||||||
|
```
|
||||||
|
src/main/java/io/shinhanlife/AxHubAdminApplication.java
|
||||||
|
```
|
||||||
|
|
||||||
|
- IDE: 클래스 우클릭 → **Run 'AxHubAdminApplication'**
|
||||||
|
- CLI: `./mvnw spring-boot:run`
|
||||||
|
- 기본 포트: `8080`
|
||||||
|
- H2 콘솔: `http://localhost:8080/h2-console` (로컬 환경에서만 활성화)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 패키지 구조
|
||||||
|
|
||||||
|
```
|
||||||
|
io.shinhanlife
|
||||||
|
├── AxHubAdminApplication.java
|
||||||
|
│
|
||||||
|
├── axhub/
|
||||||
|
│ ├── biz/ # 업무 도메인
|
||||||
|
│ │ ├── sm/mmg/ # 메뉴 관리 (System Management - Menu Management)
|
||||||
|
│ │ └── so/atm/ # 접근 권한 관리 (System Operation - Access Management)
|
||||||
|
│ │
|
||||||
|
│ ├── common/ # 공통 모듈
|
||||||
|
│ │ ├── config/ # Spring 설정 (CORS 등)
|
||||||
|
│ │ ├── session/ # 세션/SSO 처리 (biz와 동일한 레이어 구조)
|
||||||
|
│ │ └── util/ # 유틸리티
|
||||||
|
│ │
|
||||||
|
│ └── sample/ # 개발 참고용 샘플
|
||||||
|
│
|
||||||
|
└── glow/ # Glow 프레임워크 호환 패키지 (하단 참고)
|
||||||
|
```
|
||||||
|
|
||||||
|
각 업무 패키지(`biz/**`, `common/session`, `sample`)는 아래 **5개 레이어**로 구성됩니다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 레이어 구조
|
||||||
|
|
||||||
|
```
|
||||||
|
{업무패키지}/
|
||||||
|
├── presentation/ ← HTTP 진입점
|
||||||
|
│ └── io/ ← Request / Response 객체
|
||||||
|
├── usecase/ ← 비즈니스 흐름 제어
|
||||||
|
│ └── impl/
|
||||||
|
├── dto/ ← 레이어 간 데이터 전달
|
||||||
|
├── domain/ ← 핵심 비즈니스 로직
|
||||||
|
│ ├── model/ ← 도메인 엔티티
|
||||||
|
│ ├── repository/ ← DB 접근 인터페이스 (MyBatis Mapper)
|
||||||
|
│ └── service/ ← 도메인 서비스
|
||||||
|
│ └── impl/
|
||||||
|
└── converter/ ← 객체 변환 (MapStruct)
|
||||||
|
```
|
||||||
|
|
||||||
|
### presentation
|
||||||
|
|
||||||
|
**역할**: HTTP 요청을 받아 UseCase를 호출하고 응답을 반환합니다. 비즈니스 로직을 포함하지 않습니다.
|
||||||
|
|
||||||
|
- `@RestController` 클래스
|
||||||
|
- `io/` 하위에 해당 API 전용 Request/Response 클래스를 위치시킵니다.
|
||||||
|
- Presentation이 직접 알아야 하는 타입은 `io/`의 Request/Response와 UseCase 인터페이스뿐입니다.
|
||||||
|
|
||||||
|
```
|
||||||
|
presentation/
|
||||||
|
├── SmNmg0100MController.java # @RestController
|
||||||
|
└── io/
|
||||||
|
├── SmNmg0100M01RRequest.java # 조회 요청
|
||||||
|
└── SmNmg0100M01RResponse.java # 조회 응답
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### usecase
|
||||||
|
|
||||||
|
**역할**: 하나의 업무 흐름(시나리오)을 조율합니다. 여러 Domain Service 또는 Repository를 순서에 맞게 호출하며, 트랜잭션 경계를 정의합니다.
|
||||||
|
|
||||||
|
- 인터페이스(`UseCase`)와 구현체(`impl/UseCaseImpl`)를 분리합니다.
|
||||||
|
- Presentation → **UseCase** → Domain 방향으로만 호출합니다.
|
||||||
|
- DTO를 입출력 타입으로 사용합니다.
|
||||||
|
|
||||||
|
```java
|
||||||
|
public interface SmNmg0100MUseCase {
|
||||||
|
List<MenuOutDto> getMenuList(MenuInDto inDto);
|
||||||
|
void saveMenu(MenuSaveInDto inDto);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### dto
|
||||||
|
|
||||||
|
**역할**: 레이어 간 데이터를 운반하는 순수 데이터 객체입니다.
|
||||||
|
|
||||||
|
- 비즈니스 로직을 포함하지 않습니다.
|
||||||
|
- Presentation의 `io/` Request/Response와 구분됩니다.
|
||||||
|
- `io/` → HTTP 스펙에 종속된 입출력
|
||||||
|
- `dto/` → 내부 레이어 간 전달용
|
||||||
|
- Converter가 `io/ ↔ dto ↔ domain model` 간 변환을 담당합니다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### domain
|
||||||
|
|
||||||
|
**역할**: 핵심 비즈니스 규칙과 DB 접근을 담당합니다.
|
||||||
|
|
||||||
|
- **`model/`**: 도메인 엔티티. DB 테이블에 대응하는 객체입니다.
|
||||||
|
- **`repository/`**: MyBatis Mapper 인터페이스. SQL은 `resources/mapper/` 하위 XML에 작성합니다.
|
||||||
|
- **`service/`**: 단일 도메인 내 재사용 가능한 비즈니스 로직. UseCase가 호출합니다.
|
||||||
|
|
||||||
|
> UseCase와 Service의 구분 기준: 여러 업무에서 재사용 가능한 단위 로직은 `domain/service`, 특정 업무 흐름의 조율은 `usecase`에 둡니다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### converter
|
||||||
|
|
||||||
|
**역할**: 레이어 간 객체 변환을 전담합니다. MapStruct를 사용합니다.
|
||||||
|
|
||||||
|
- `Request → DTO`, `DTO → Model`, `Model → DTO`, `DTO → Response` 변환을 처리합니다.
|
||||||
|
- Presentation과 UseCase가 직접 매핑 코드를 작성하지 않도록 분리합니다.
|
||||||
|
|
||||||
|
```java
|
||||||
|
@Mapper(componentModel = "spring")
|
||||||
|
public interface MenuConverter {
|
||||||
|
MenuInDto toDto(SmNmg0100M01RRequest request);
|
||||||
|
MenuOutDto toDto(ZtMenu model);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 호출 흐름
|
||||||
|
|
||||||
|
```
|
||||||
|
HTTP 요청
|
||||||
|
└─▶ presentation (Controller)
|
||||||
|
│ Request → DTO (Converter)
|
||||||
|
└─▶ usecase (UseCase)
|
||||||
|
│ 비즈니스 흐름 조율
|
||||||
|
└─▶ domain/service (Service)
|
||||||
|
│
|
||||||
|
└─▶ domain/repository (Mapper)
|
||||||
|
│
|
||||||
|
└─▶ DB (H2 / 운영 DB)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## io.shinhanlife.glow 패키지
|
||||||
|
|
||||||
|
Glow 프레임워크(사내 공통 프레임워크) 호환을 위해 **임시로** 만들어놓은 패키지입니다.
|
||||||
|
추후 Glow 라이브러리 의존성으로 대체될 예정이며, 현재는 로컬 소스 형태로 포함되어 있습니다.
|
||||||
|
|
||||||
|
| 클래스 | 역할 |
|
||||||
|
|--------|------|
|
||||||
|
| `BaseResponse` / `ResponseUtil` | 공통 API 응답 래퍼 |
|
||||||
|
| `BaseException` / `BizException` | 공통 예외 |
|
||||||
|
| `ResponseCode` | 응답 코드 정의 |
|
||||||
|
| `GlowIndexPaging` / `PageInfo` | 페이징 |
|
||||||
|
| `GlowLogger` | 로깅 |
|
||||||
|
| `GlowMybatisMapper` | MyBatis Mapper 기반 인터페이스 |
|
||||||
|
| `GlowAppServiceId` 등 | 서비스/컨트롤러 식별 애노테이션 |
|
||||||
|
| `db/dto/AuditInfo` | 등록자/수정자 공통 필드 |
|
||||||
259
mvnw
vendored
Normal file
259
mvnw
vendored
Normal file
@@ -0,0 +1,259 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you 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.
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# Apache Maven Wrapper startup batch script, version 3.3.2
|
||||||
|
#
|
||||||
|
# Optional ENV vars
|
||||||
|
# -----------------
|
||||||
|
# JAVA_HOME - location of a JDK home dir, required when download maven via java source
|
||||||
|
# MVNW_REPOURL - repo url base for downloading maven distribution
|
||||||
|
# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
|
||||||
|
# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
set -euf
|
||||||
|
[ "${MVNW_VERBOSE-}" != debug ] || set -x
|
||||||
|
|
||||||
|
# OS specific support.
|
||||||
|
native_path() { printf %s\\n "$1"; }
|
||||||
|
case "$(uname)" in
|
||||||
|
CYGWIN* | MINGW*)
|
||||||
|
[ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
|
||||||
|
native_path() { cygpath --path --windows "$1"; }
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# set JAVACMD and JAVACCMD
|
||||||
|
set_java_home() {
|
||||||
|
# For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
|
||||||
|
if [ -n "${JAVA_HOME-}" ]; then
|
||||||
|
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
|
||||||
|
# IBM's JDK on AIX uses strange locations for the executables
|
||||||
|
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||||
|
JAVACCMD="$JAVA_HOME/jre/sh/javac"
|
||||||
|
else
|
||||||
|
JAVACMD="$JAVA_HOME/bin/java"
|
||||||
|
JAVACCMD="$JAVA_HOME/bin/javac"
|
||||||
|
|
||||||
|
if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
|
||||||
|
echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
|
||||||
|
echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
JAVACMD="$(
|
||||||
|
'set' +e
|
||||||
|
'unset' -f command 2>/dev/null
|
||||||
|
'command' -v java
|
||||||
|
)" || :
|
||||||
|
JAVACCMD="$(
|
||||||
|
'set' +e
|
||||||
|
'unset' -f command 2>/dev/null
|
||||||
|
'command' -v javac
|
||||||
|
)" || :
|
||||||
|
|
||||||
|
if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
|
||||||
|
echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# hash string like Java String::hashCode
|
||||||
|
hash_string() {
|
||||||
|
str="${1:-}" h=0
|
||||||
|
while [ -n "$str" ]; do
|
||||||
|
char="${str%"${str#?}"}"
|
||||||
|
h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
|
||||||
|
str="${str#?}"
|
||||||
|
done
|
||||||
|
printf %x\\n $h
|
||||||
|
}
|
||||||
|
|
||||||
|
verbose() { :; }
|
||||||
|
[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
|
||||||
|
|
||||||
|
die() {
|
||||||
|
printf %s\\n "$1" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
trim() {
|
||||||
|
# MWRAPPER-139:
|
||||||
|
# Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
|
||||||
|
# Needed for removing poorly interpreted newline sequences when running in more
|
||||||
|
# exotic environments such as mingw bash on Windows.
|
||||||
|
printf "%s" "${1}" | tr -d '[:space:]'
|
||||||
|
}
|
||||||
|
|
||||||
|
# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
|
||||||
|
while IFS="=" read -r key value; do
|
||||||
|
case "${key-}" in
|
||||||
|
distributionUrl) distributionUrl=$(trim "${value-}") ;;
|
||||||
|
distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
|
||||||
|
esac
|
||||||
|
done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties"
|
||||||
|
[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties"
|
||||||
|
|
||||||
|
case "${distributionUrl##*/}" in
|
||||||
|
maven-mvnd-*bin.*)
|
||||||
|
MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
|
||||||
|
case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
|
||||||
|
*AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
|
||||||
|
:Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
|
||||||
|
:Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
|
||||||
|
:Linux*x86_64*) distributionPlatform=linux-amd64 ;;
|
||||||
|
*)
|
||||||
|
echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
|
||||||
|
distributionPlatform=linux-amd64
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
|
||||||
|
;;
|
||||||
|
maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
|
||||||
|
*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# apply MVNW_REPOURL and calculate MAVEN_HOME
|
||||||
|
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
|
||||||
|
[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
|
||||||
|
distributionUrlName="${distributionUrl##*/}"
|
||||||
|
distributionUrlNameMain="${distributionUrlName%.*}"
|
||||||
|
distributionUrlNameMain="${distributionUrlNameMain%-bin}"
|
||||||
|
MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
|
||||||
|
MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
|
||||||
|
|
||||||
|
exec_maven() {
|
||||||
|
unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
|
||||||
|
exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -d "$MAVEN_HOME" ]; then
|
||||||
|
verbose "found existing MAVEN_HOME at $MAVEN_HOME"
|
||||||
|
exec_maven "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "${distributionUrl-}" in
|
||||||
|
*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
|
||||||
|
*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# prepare tmp dir
|
||||||
|
if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
|
||||||
|
clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
|
||||||
|
trap clean HUP INT TERM EXIT
|
||||||
|
else
|
||||||
|
die "cannot create temp dir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p -- "${MAVEN_HOME%/*}"
|
||||||
|
|
||||||
|
# Download and Install Apache Maven
|
||||||
|
verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
|
||||||
|
verbose "Downloading from: $distributionUrl"
|
||||||
|
verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
|
||||||
|
|
||||||
|
# select .zip or .tar.gz
|
||||||
|
if ! command -v unzip >/dev/null; then
|
||||||
|
distributionUrl="${distributionUrl%.zip}.tar.gz"
|
||||||
|
distributionUrlName="${distributionUrl##*/}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# verbose opt
|
||||||
|
__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
|
||||||
|
[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
|
||||||
|
|
||||||
|
# normalize http auth
|
||||||
|
case "${MVNW_PASSWORD:+has-password}" in
|
||||||
|
'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
|
||||||
|
has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
|
||||||
|
verbose "Found wget ... using wget"
|
||||||
|
wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
|
||||||
|
elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
|
||||||
|
verbose "Found curl ... using curl"
|
||||||
|
curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
|
||||||
|
elif set_java_home; then
|
||||||
|
verbose "Falling back to use Java to download"
|
||||||
|
javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
|
||||||
|
targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
|
||||||
|
cat >"$javaSource" <<-END
|
||||||
|
public class Downloader extends java.net.Authenticator
|
||||||
|
{
|
||||||
|
protected java.net.PasswordAuthentication getPasswordAuthentication()
|
||||||
|
{
|
||||||
|
return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
|
||||||
|
}
|
||||||
|
public static void main( String[] args ) throws Exception
|
||||||
|
{
|
||||||
|
setDefault( new Downloader() );
|
||||||
|
java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
END
|
||||||
|
# For Cygwin/MinGW, switch paths to Windows format before running javac and java
|
||||||
|
verbose " - Compiling Downloader.java ..."
|
||||||
|
"$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
|
||||||
|
verbose " - Running Downloader.java ..."
|
||||||
|
"$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If specified, validate the SHA-256 sum of the Maven distribution zip file
|
||||||
|
if [ -n "${distributionSha256Sum-}" ]; then
|
||||||
|
distributionSha256Result=false
|
||||||
|
if [ "$MVN_CMD" = mvnd.sh ]; then
|
||||||
|
echo "Checksum validation is not supported for maven-mvnd." >&2
|
||||||
|
echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
|
||||||
|
exit 1
|
||||||
|
elif command -v sha256sum >/dev/null; then
|
||||||
|
if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then
|
||||||
|
distributionSha256Result=true
|
||||||
|
fi
|
||||||
|
elif command -v shasum >/dev/null; then
|
||||||
|
if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
|
||||||
|
distributionSha256Result=true
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
|
||||||
|
echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ $distributionSha256Result = false ]; then
|
||||||
|
echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
|
||||||
|
echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# unzip and move
|
||||||
|
if command -v unzip >/dev/null; then
|
||||||
|
unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
|
||||||
|
else
|
||||||
|
tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
|
||||||
|
fi
|
||||||
|
printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url"
|
||||||
|
mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
|
||||||
|
|
||||||
|
clean || :
|
||||||
|
exec_maven "$@"
|
||||||
149
mvnw.cmd
vendored
Normal file
149
mvnw.cmd
vendored
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
<# : batch portion
|
||||||
|
@REM ----------------------------------------------------------------------------
|
||||||
|
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
@REM or more contributor license agreements. See the NOTICE file
|
||||||
|
@REM distributed with this work for additional information
|
||||||
|
@REM regarding copyright ownership. The ASF licenses this file
|
||||||
|
@REM to you under the Apache License, Version 2.0 (the
|
||||||
|
@REM "License"); you may not use this file except in compliance
|
||||||
|
@REM with the License. You may obtain a copy of the License at
|
||||||
|
@REM
|
||||||
|
@REM http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
@REM
|
||||||
|
@REM Unless required by applicable law or agreed to in writing,
|
||||||
|
@REM software distributed under the License is distributed on an
|
||||||
|
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
@REM KIND, either express or implied. See the License for the
|
||||||
|
@REM specific language governing permissions and limitations
|
||||||
|
@REM under the License.
|
||||||
|
@REM ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@REM ----------------------------------------------------------------------------
|
||||||
|
@REM Apache Maven Wrapper startup batch script, version 3.3.2
|
||||||
|
@REM
|
||||||
|
@REM Optional ENV vars
|
||||||
|
@REM MVNW_REPOURL - repo url base for downloading maven distribution
|
||||||
|
@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
|
||||||
|
@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
|
||||||
|
@REM ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
|
||||||
|
@SET __MVNW_CMD__=
|
||||||
|
@SET __MVNW_ERROR__=
|
||||||
|
@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
|
||||||
|
@SET PSModulePath=
|
||||||
|
@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
|
||||||
|
IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
|
||||||
|
)
|
||||||
|
@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
|
||||||
|
@SET __MVNW_PSMODULEP_SAVE=
|
||||||
|
@SET __MVNW_ARG0_NAME__=
|
||||||
|
@SET MVNW_USERNAME=
|
||||||
|
@SET MVNW_PASSWORD=
|
||||||
|
@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)
|
||||||
|
@echo Cannot start maven from wrapper >&2 && exit /b 1
|
||||||
|
@GOTO :EOF
|
||||||
|
: end batch / begin powershell #>
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
if ($env:MVNW_VERBOSE -eq "true") {
|
||||||
|
$VerbosePreference = "Continue"
|
||||||
|
}
|
||||||
|
|
||||||
|
# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
|
||||||
|
$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
|
||||||
|
if (!$distributionUrl) {
|
||||||
|
Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
|
||||||
|
}
|
||||||
|
|
||||||
|
switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
|
||||||
|
"maven-mvnd-*" {
|
||||||
|
$USE_MVND = $true
|
||||||
|
$distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
|
||||||
|
$MVN_CMD = "mvnd.cmd"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
$USE_MVND = $false
|
||||||
|
$MVN_CMD = $script -replace '^mvnw','mvn'
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# apply MVNW_REPOURL and calculate MAVEN_HOME
|
||||||
|
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
|
||||||
|
if ($env:MVNW_REPOURL) {
|
||||||
|
$MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" }
|
||||||
|
$distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')"
|
||||||
|
}
|
||||||
|
$distributionUrlName = $distributionUrl -replace '^.*/',''
|
||||||
|
$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
|
||||||
|
$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain"
|
||||||
|
if ($env:MAVEN_USER_HOME) {
|
||||||
|
$MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain"
|
||||||
|
}
|
||||||
|
$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
|
||||||
|
$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
|
||||||
|
|
||||||
|
if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
|
||||||
|
Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
|
||||||
|
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
|
||||||
|
exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
|
||||||
|
Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
|
||||||
|
}
|
||||||
|
|
||||||
|
# prepare tmp dir
|
||||||
|
$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
|
||||||
|
$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
|
||||||
|
$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
|
||||||
|
trap {
|
||||||
|
if ($TMP_DOWNLOAD_DIR.Exists) {
|
||||||
|
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
|
||||||
|
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
|
||||||
|
|
||||||
|
# Download and Install Apache Maven
|
||||||
|
Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
|
||||||
|
Write-Verbose "Downloading from: $distributionUrl"
|
||||||
|
Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
|
||||||
|
|
||||||
|
$webclient = New-Object System.Net.WebClient
|
||||||
|
if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
|
||||||
|
$webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
|
||||||
|
}
|
||||||
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||||
|
$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
|
||||||
|
|
||||||
|
# If specified, validate the SHA-256 sum of the Maven distribution zip file
|
||||||
|
$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
|
||||||
|
if ($distributionSha256Sum) {
|
||||||
|
if ($USE_MVND) {
|
||||||
|
Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
|
||||||
|
}
|
||||||
|
Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
|
||||||
|
if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
|
||||||
|
Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# unzip and move
|
||||||
|
Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
|
||||||
|
Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null
|
||||||
|
try {
|
||||||
|
Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
|
||||||
|
} catch {
|
||||||
|
if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
|
||||||
|
Write-Error "fail to move MAVEN_HOME"
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
|
||||||
|
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
|
||||||
118
pom.xml
Normal file
118
pom.xml
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
|
<version>3.5.3</version>
|
||||||
|
<relativePath/> <!-- lookup parent from repository -->
|
||||||
|
</parent>
|
||||||
|
<groupId>io.shinhanlife</groupId>
|
||||||
|
<artifactId>axhub-admin</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<name>Axhub-admin</name>
|
||||||
|
<description>Demo project for Spring Boot</description>
|
||||||
|
<url/>
|
||||||
|
<licenses>
|
||||||
|
<license/>
|
||||||
|
</licenses>
|
||||||
|
<developers>
|
||||||
|
<developer/>
|
||||||
|
</developers>
|
||||||
|
<scm>
|
||||||
|
<connection/>
|
||||||
|
<developerConnection/>
|
||||||
|
<tag/>
|
||||||
|
<url/>
|
||||||
|
</scm>
|
||||||
|
<properties>
|
||||||
|
<java.version>17</java.version>
|
||||||
|
<mapstruct.version>1.5.5.Final</mapstruct.version> <!-- 추가 -->
|
||||||
|
</properties>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- H2 Database -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- MyBatis -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis.spring.boot</groupId>
|
||||||
|
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||||
|
<version>3.0.3</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Lettuce-core 명시적 추가 (NoClassDefFoundError 해결) -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.lettuce</groupId>
|
||||||
|
<artifactId>lettuce-core</artifactId>
|
||||||
|
<version>6.6.0.RELEASE</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- p6spy -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>p6spy</groupId>
|
||||||
|
<artifactId>p6spy</artifactId>
|
||||||
|
<version>3.9.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mapstruct</groupId>
|
||||||
|
<artifactId>mapstruct</artifactId>
|
||||||
|
<version>${mapstruct.version}</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.14.0</version>
|
||||||
|
<configuration>
|
||||||
|
<source>${java.version}</source>
|
||||||
|
<target>${java.version}</target>
|
||||||
|
<annotationProcessorPaths>
|
||||||
|
<!-- ⚠️ Lombok이 반드시 MapStruct보다 먼저 와야 함 -->
|
||||||
|
<path>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
</path>
|
||||||
|
<!-- MapStruct 프로세서 -->
|
||||||
|
<path>
|
||||||
|
<groupId>org.mapstruct</groupId>
|
||||||
|
<artifactId>mapstruct-processor</artifactId>
|
||||||
|
<version>${mapstruct.version}</version>
|
||||||
|
</path>
|
||||||
|
</annotationProcessorPaths>
|
||||||
|
</configuration>
|
||||||
|
</plugin> </plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
283
sql.txt
Normal file
283
sql.txt
Normal file
@@ -0,0 +1,283 @@
|
|||||||
|
--------------------------------------------------------------------------------
|
||||||
|
-- 적용시스템명 : 운영계(ORACLE)
|
||||||
|
-- 테이블 : ZT_통합코드
|
||||||
|
-- 테이블ID : ZT_UNFC_CD
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
CREATE TABLE S_NNZ.ZT_UNFC_CD
|
||||||
|
(
|
||||||
|
UNFC_CD_ID VARCHAR2(50) NOT NULL,
|
||||||
|
UNFC_CD_NM VARCHAR2(100) NULL,
|
||||||
|
UNFC_CD_HAN_NM VARCHAR2(100) NULL,
|
||||||
|
UNFC_CD_ENG_NM VARCHAR2(100) NULL,
|
||||||
|
UNFC_CD_DS VARCHAR2(4000) NULL,
|
||||||
|
META_SYST_CD VARCHAR2(3) NOT NULL,
|
||||||
|
META_DUTJ_TYPE_CD VARCHAR2(5) NOT NULL,
|
||||||
|
PUSE_YN VARCHAR2(1) NOT NULL,
|
||||||
|
SPPO_UNFC_CD_ID VARCHAR2(50) NULL,
|
||||||
|
DATA_LOAD_DT DATE NULL,
|
||||||
|
SYST_RGI_DT DATE NOT NULL,
|
||||||
|
SYST_RGI_PRAF_NO VARCHAR2(8) NOT NULL,
|
||||||
|
SYST_RGI_OGNZ_NO VARCHAR2(7) NOT NULL,
|
||||||
|
SYST_RGI_SYST_CD VARCHAR2(3) NOT NULL,
|
||||||
|
SYST_RGI_PRGR_ID VARCHAR2(100) NOT NULL,
|
||||||
|
SYST_CHG_DT DATE NOT NULL,
|
||||||
|
SYST_CHG_PRAF_NO VARCHAR2(8) NOT NULL,
|
||||||
|
SYST_CHG_OGNZ_NO VARCHAR2(7) NOT NULL,
|
||||||
|
SYST_CHG_SYST_CD VARCHAR2(3) NOT NULL,
|
||||||
|
SYST_CHG_PRGR_ID VARCHAR2(100) NOT NULL
|
||||||
|
)
|
||||||
|
TABLESPACE TS_ZT_D01;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
COMMENT ON TABLE S_NNZ.ZT_UNFC_CD IS 'ZT_통합코드';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_ID IS '통합코드ID';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_NM IS '통합코드명';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_HAN_NM IS '통합코드한글명';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_ENG_NM IS '통합코드영문명';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_DS IS '통합코드설명';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.META_SYST_CD IS '메타시스템코드';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.META_DUTJ_TYPE_CD IS '메타업무유형코드';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.PUSE_YN IS '사용여부';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SPPO_UNFC_CD_ID IS '상위통합코드ID';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.DATA_LOAD_DT IS '데이터적재일시';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_DT IS '시스템등록일시';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_PRAF_NO IS '시스템등록인사번호';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_OGNZ_NO IS '시스템등록조직번호';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_SYST_CD IS '시스템등록시스템코드';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_PRGR_ID IS '시스템등록프로그램ID';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_DT IS '시스템변경일시';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_PRAF_NO IS '시스템변경인사번호';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_OGNZ_NO IS '시스템변경조직번호';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_SYST_CD IS '시스템변경시스템코드';
|
||||||
|
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_PRGR_ID IS '시스템변경프로그램ID';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- 개별권한 Role
|
||||||
|
GRANT SELECT ON S_NNZ.ZT_UNFC_CD TO RL_A_EAI_NNZ_SEL;
|
||||||
|
|
||||||
|
GRANT INSERT,UPDATE,DELETE ON S_NNZ.ZT_UNFC_CD TO RL_A_EAI_NNZ_IUD;
|
||||||
|
|
||||||
|
-- Default Role
|
||||||
|
GRANT SELECT ON S_NNZ.ZT_UNFC_CD TO RL_NNZ_SEL;
|
||||||
|
|
||||||
|
GRANT INSERT,UPDATE,DELETE ON S_NNZ.ZT_UNFC_CD TO RL_NNZ_IUD;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE INDEX S_NNZ.IX_ZT_UNFC_CD_01 ON S_NNZ.ZT_UNFC_CD
|
||||||
|
(UNFC_CD_NM)
|
||||||
|
TABLESPACE TS_ZT_I01;
|
||||||
|
|
||||||
|
CREATE INDEX S_NNZ.IX_ZT_UNFC_CD_02 ON S_NNZ.ZT_UNFC_CD
|
||||||
|
(UNFC_CD_HAN_NM)
|
||||||
|
TABLESPACE TS_ZT_I01;
|
||||||
|
|
||||||
|
CREATE INDEX S_NNZ.IX_ZT_UNFC_CD_03 ON S_NNZ.ZT_UNFC_CD
|
||||||
|
(UNFC_CD_ENG_NM)
|
||||||
|
TABLESPACE TS_ZT_I01;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX S_NNZ.PK_ZT_UNFC_CD ON S_NNZ.ZT_UNFC_CD
|
||||||
|
(UNFC_CD_ID)
|
||||||
|
TABLESPACE TS_ZT_I01;
|
||||||
|
|
||||||
|
ALTER TABLE S_NNZ.ZT_UNFC_CD ADD (
|
||||||
|
CONSTRAINT PK_ZT_UNFC_CD
|
||||||
|
PRIMARY KEY (UNFC_CD_ID)
|
||||||
|
USING INDEX S_NNZ.PK_ZT_UNFC_CD);
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
-- 적용시스템명 : 개발계(ORACLE)
|
||||||
|
-- 테이블 : ZT_통합코드상세
|
||||||
|
-- 테이블ID : ZT_UNFC_CD_DTPT
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
CREATE TABLE S_TFG.ZT_UNFC_CD_DTPT
|
||||||
|
(
|
||||||
|
UNFC_CD_ID VARCHAR2(50) NOT NULL,
|
||||||
|
CD_VLDT_VALU VARCHAR2(50) NOT NULL,
|
||||||
|
CD_VLDT_VALU_INQR_SEQ NUMBER(5) NULL,
|
||||||
|
CD_VLDT_VALU_NM VARCHAR2(400) NULL,
|
||||||
|
CD_VLDT_VALU_HNGL_ABR_NM VARCHAR2(200) NULL,
|
||||||
|
CD_VLDT_VALU_ENGC_ABR_NM VARCHAR2(200) NULL,
|
||||||
|
CD_VLDT_VALU_HAN_NM VARCHAR2(400) NULL,
|
||||||
|
CD_VLDT_VALU_ENG_NM VARCHAR2(400) NULL,
|
||||||
|
CD_VLDT_VALU_DS VARCHAR2(4000) NULL,
|
||||||
|
CD_ASRT_TYPE_BIT_CD VARCHAR2(20) NOT NULL,
|
||||||
|
SPPO_CD_VLDT_VALU VARCHAR2(50) NULL,
|
||||||
|
SPPO_UNFC_CD_ID VARCHAR2(50) NULL,
|
||||||
|
VLDT_STRT_YMD DATE NOT NULL,
|
||||||
|
VLDT_END_YMD DATE NOT NULL,
|
||||||
|
USER_DEF_VALU_1 VARCHAR2(100) NULL,
|
||||||
|
USER_DEF_VALU_2 VARCHAR2(100) NULL,
|
||||||
|
SYST_RGI_DT DATE NOT NULL,
|
||||||
|
SYST_RGI_PRAF_NO VARCHAR2(8) NOT NULL,
|
||||||
|
SYST_RGI_OGNZ_NO VARCHAR2(7) NOT NULL,
|
||||||
|
SYST_RGI_SYST_CD VARCHAR2(3) NOT NULL,
|
||||||
|
SYST_RGI_PRGR_ID VARCHAR2(100) NOT NULL,
|
||||||
|
SYST_CHG_DT DATE NOT NULL,
|
||||||
|
SYST_CHG_PRAF_NO VARCHAR2(8) NOT NULL,
|
||||||
|
SYST_CHG_OGNZ_NO VARCHAR2(7) NOT NULL,
|
||||||
|
SYST_CHG_SYST_CD VARCHAR2(3) NOT NULL,
|
||||||
|
SYST_CHG_PRGR_ID VARCHAR2(100) NOT NULL,
|
||||||
|
DATA_LOAD_DT DATE NOT NULL
|
||||||
|
)
|
||||||
|
TABLESPACE TS_TFG_D01;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
COMMENT ON TABLE S_TFG.ZT_UNFC_CD_DTPT IS 'ZT_통합코드상세';
|
||||||
|
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.UNFC_CD_ID IS '통합코드ID';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU IS '코드유효값';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_INQR_SEQ IS '코드유효값조회순서';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_NM IS '코드유효값명';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_HNGL_ABR_NM IS '코드유효값한글약어명';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_ENGC_ABR_NM IS '코드유효값영문약어명';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_HAN_NM IS '코드유효값한글명';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_ENG_NM IS '코드유효값영문명';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_DS IS '코드유효값설명';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_ASRT_TYPE_BIT_CD IS '코드분류유형비트코드';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SPPO_CD_VLDT_VALU IS '상위코드유효값';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SPPO_UNFC_CD_ID IS '상위통합코드ID';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.VLDT_STRT_YMD IS '유효시작일자';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.VLDT_END_YMD IS '유효종료일자';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.USER_DEF_VALU_1 IS '사용자정의값1';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.USER_DEF_VALU_2 IS '사용자정의값2';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_DT IS '시스템등록일시';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_PRAF_NO IS '시스템등록인사번호';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_OGNZ_NO IS '시스템등록조직번호';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_SYST_CD IS '시스템등록시스템코드';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_PRGR_ID IS '시스템등록프로그램ID';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_DT IS '시스템변경일시';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_PRAF_NO IS '시스템변경인사번호';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_OGNZ_NO IS '시스템변경조직번호';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_SYST_CD IS '시스템변경시스템코드';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_PRGR_ID IS '시스템변경프로그램ID';
|
||||||
|
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.DATA_LOAD_DT IS '데이터적재일시';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Default Role
|
||||||
|
GRANT INSERT,UPDATE,DELETE ON S_TFG.ZT_UNFC_CD_DTPT TO RL_TFG_IUD;
|
||||||
|
|
||||||
|
GRANT SELECT ON S_TFG.ZT_UNFC_CD_DTPT TO RL_TFG_SEL;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX S_TFG.PK_ZT_UNFC_CD_DTPT ON S_TFG.ZT_UNFC_CD_DTPT
|
||||||
|
(UNFC_CD_ID,CD_VLDT_VALU)
|
||||||
|
TABLESPACE TS_TFG_I01;
|
||||||
|
|
||||||
|
ALTER TABLE S_TFG.ZT_UNFC_CD_DTPT ADD (
|
||||||
|
CONSTRAINT PK_ZT_UNFC_CD_DTPT
|
||||||
|
PRIMARY KEY (UNFC_CD_ID,CD_VLDT_VALU)
|
||||||
|
USING INDEX S_TFG.PK_ZT_UNFC_CD_DTPT);
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------
|
||||||
|
-- ZT_MENU 테이블 생성 (메뉴 기본 정보 저장)
|
||||||
|
CREATE TABLE ZT_MENU (
|
||||||
|
MENU_ID INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- 자동 증가 ID (PK)
|
||||||
|
PARENT_MENU_ID INTEGER, -- 부모 메뉴 ID (FK, NULL 가능 for 루트 메뉴)
|
||||||
|
NAME VARCHAR(100), -- 컴포넌트 이름 (옵셔널)
|
||||||
|
PATH VARCHAR(255) NOT NULL, -- 라우트 경로 (필수)
|
||||||
|
TITLE VARCHAR(100) NOT NULL, -- 메뉴 이름 (meta.title, 필수)
|
||||||
|
ICON VARCHAR(50), -- 메뉴 아이콘 (옵셔널)
|
||||||
|
SHOW_BADGE VARCHAR(1) DEFAULT 'N' CHECK (SHOW_BADGE IN ('Y', 'N')), -- 배지 표시 여부 (Y/N, 옵셔널)
|
||||||
|
SHOW_TEXT_BADGE VARCHAR(50), -- 텍스트 배지 표시 (옵셔널)
|
||||||
|
IS_HIDE VARCHAR(1) DEFAULT 'N' CHECK (IS_HIDE IN ('Y', 'N')), -- 메뉴 숨김 여부 (Y/N, 옵셔널)
|
||||||
|
IS_HIDE_TAB VARCHAR(1) DEFAULT 'N' CHECK (IS_HIDE_TAB IN ('Y', 'N')),-- 탭 숨김 여부 (Y/N, 옵셔널)
|
||||||
|
LINK VARCHAR(255), -- 링크 (옵셔널)
|
||||||
|
IS_IFRAME VARCHAR(1) DEFAULT 'N' CHECK (IS_IFRAME IN ('Y', 'N')), -- iframe 여부 (Y/N, 옵셔널)
|
||||||
|
KEEP_ALIVE VARCHAR(1) DEFAULT 'N' CHECK (KEEP_ALIVE IN ('Y', 'N')), -- 캐시 여부 (Y/N, 옵셔널)
|
||||||
|
ORDER_SEQ INTEGER DEFAULT 0 NOT NULL, -- 메뉴 표시 순서 (정렬용, 필수)
|
||||||
|
IS_ACTIVE VARCHAR(1) DEFAULT 'Y' CHECK (IS_ACTIVE IN ('Y', 'N')), -- 활성 여부 (Y/N, 기본 Y)
|
||||||
|
SYST_RGI_DT DATE, -- 시스템등록일시
|
||||||
|
SYST_RGI_PRAF_NO VARCHAR(50), -- 시스템등록인사번호
|
||||||
|
SYST_RGI_OGNZ_NO VARCHAR(50), -- 시스템등록조직번호
|
||||||
|
SYST_RGI_SYST_CD VARCHAR(50), -- 시스템등록시스템코드
|
||||||
|
SYST_RGI_PRGR_ID VARCHAR(50), -- 시스템등록프로그램ID
|
||||||
|
SYST_CHG_DT DATE, -- 시스템변경일시
|
||||||
|
SYST_CHG_PRAF_NO VARCHAR(50), -- 시스템변경인사번호
|
||||||
|
SYST_CHG_OGNZ_NO VARCHAR(50), -- 시스템변경조직번호
|
||||||
|
SYST_CHG_SYST_CD VARCHAR(50), -- 시스템변경시스템코드
|
||||||
|
SYST_CHG_PRGR_ID VARCHAR(50) -- 시스템변경프로그램ID
|
||||||
|
);
|
||||||
|
|
||||||
|
-- 제약 조건 추가
|
||||||
|
ALTER TABLE ZT_MENU ADD CONSTRAINT FK_ZT_MENU_PARENT FOREIGN KEY (PARENT_MENU_ID) REFERENCES ZT_MENU (MENU_ID) ON DELETE CASCADE; -- 부모 삭제 시 자식도 삭제 (계층 삭제 지원)
|
||||||
|
|
||||||
|
-- 인덱스 생성 (조회 최적화)
|
||||||
|
CREATE INDEX IDX_ZT_MENU_PARENT ON ZT_MENU (PARENT_MENU_ID);
|
||||||
|
CREATE INDEX IDX_ZT_MENU_PATH ON ZT_MENU (PATH);
|
||||||
|
|
||||||
|
-- 컬럼 코멘트 추가
|
||||||
|
COMMENT ON COLUMN ZT_MENU.MENU_ID IS '메뉴 ID (PK)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.PARENT_MENU_ID IS '부모 메뉴 ID (FK)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.NAME IS '컴포넌트 이름';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.PATH IS '라우트 경로';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.TITLE IS '메뉴 이름';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.ICON IS '메뉴 아이콘';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SHOW_BADGE IS '배지 표시 여부 (Y/N)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SHOW_TEXT_BADGE IS '텍스트 배지 표시';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.IS_HIDE IS '메뉴 숨김 여부 (Y/N)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.IS_HIDE_TAB IS '탭 숨김 여부 (Y/N)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.LINK IS '링크';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.IS_IFRAME IS 'iframe 여부 (Y/N)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.KEEP_ALIVE IS '캐시 여부 (Y/N)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.ORDER_SEQ IS '메뉴 표시 순서';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.IS_ACTIVE IS '활성 여부 (Y/N)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_RGI_DT IS '시스템등록일시';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_RGI_PRAF_NO IS '시스템등록인사번호';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_RGI_OGNZ_NO IS '시스템등록조직번호';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_RGI_SYST_CD IS '시스템등록시스템코드';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_RGI_PRGR_ID IS '시스템등록프로그램ID';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_CHG_DT IS '시스템변경일시';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_CHG_PRAF_NO IS '시스템변경인사번호';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_CHG_OGNZ_NO IS '시스템변경조직번호';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_CHG_SYST_CD IS '시스템변경시스템코드';
|
||||||
|
COMMENT ON COLUMN ZT_MENU.SYST_CHG_PRGR_ID IS '시스템변경프로그램ID';
|
||||||
|
|
||||||
|
-- ZT_MENU_AUTH 테이블 생성 (메뉴 권한 목록 저장)
|
||||||
|
CREATE TABLE ZT_MENU_AUTH (
|
||||||
|
AUTH_ID INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- 자동 증가 ID (PK)
|
||||||
|
MENU_ID INTEGER NOT NULL, -- 메뉴 ID (FK)
|
||||||
|
TITLE VARCHAR(100) NOT NULL, -- 권한 제목 (e.g., ''추가'', ''편집'')
|
||||||
|
AUTH_MARK VARCHAR(100) NOT NULL, -- 권한 마크 (e.g., ''add'', ''edit'')
|
||||||
|
ORDER_SEQ INTEGER DEFAULT 0 NOT NULL, -- 권한 표시 순서 (정렬용)
|
||||||
|
SYST_RGI_DT DATE, -- 시스템등록일시
|
||||||
|
SYST_RGI_PRAF_NO VARCHAR(50), -- 시스템등록인사번호
|
||||||
|
SYST_RGI_OGNZ_NO VARCHAR(50), -- 시스템등록조직번호
|
||||||
|
SYST_RGI_SYST_CD VARCHAR(50), -- 시스템등록시스템코드
|
||||||
|
SYST_RGI_PRGR_ID VARCHAR(50), -- 시스템등록프로그램ID
|
||||||
|
SYST_CHG_DT DATE, -- 시스템변경일시
|
||||||
|
SYST_CHG_PRAF_NO VARCHAR(50), -- 시스템변경인사번호
|
||||||
|
SYST_CHG_OGNZ_NO VARCHAR(50), -- 시스템변경조직번호
|
||||||
|
SYST_CHG_SYST_CD VARCHAR(50), -- 시스템변경시스템코드
|
||||||
|
SYST_CHG_PRGR_ID VARCHAR(50) -- 시스템변경프로그램ID
|
||||||
|
);
|
||||||
|
|
||||||
|
-- 제약 조건 추가
|
||||||
|
ALTER TABLE ZT_MENU_AUTH ADD CONSTRAINT FK_ZT_MENU_AUTH_MENU FOREIGN KEY (MENU_ID) REFERENCES ZT_MENU (MENU_ID) ON DELETE CASCADE; -- 메뉴 삭제 시 권한도 삭제
|
||||||
|
|
||||||
|
-- 인덱스 생성
|
||||||
|
CREATE INDEX IDX_ZT_MENU_AUTH_MENU ON ZT_MENU_AUTH (MENU_ID);
|
||||||
|
|
||||||
|
-- 컬럼 코멘트 추가
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.AUTH_ID IS '권한 ID (PK)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.MENU_ID IS '메뉴 ID (FK)';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.TITLE IS '권한 제목';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.AUTH_MARK IS '권한 마크';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.ORDER_SEQ IS '권한 표시 순서';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_DT IS '시스템등록일시';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_PRAF_NO IS '시스템등록인사번호';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_OGNZ_NO IS '시스템등록조직번호';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_SYST_CD IS '시스템등록시스템코드';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_PRGR_ID IS '시스템등록프로그램ID';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_DT IS '시스템변경일시';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_PRAF_NO IS '시스템변경인사번호';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_OGNZ_NO IS '시스템변경조직번호';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_SYST_CD IS '시스템변경시스템코드';
|
||||||
|
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_PRGR_ID IS '시스템변경프로그램ID';
|
||||||
14
src/main/java/io/shinhanlife/AxHubAdminApplication.java
Normal file
14
src/main/java/io/shinhanlife/AxHubAdminApplication.java
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
package io.shinhanlife;
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.GlowMybatisMapper;
|
||||||
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
@MapperScan(basePackages = "io.shinhanlife", annotationClass = GlowMybatisMapper.class) // @GlowMybatisMapper 어노테이션이 있는 인터페이스만 스캔
|
||||||
|
public class AxHubAdminApplication {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(AxHubAdminApplication.class, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.converter;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuListDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmMmg0000M01RRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmMmg0000M01RResponse;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Mapper(componentModel = "spring")
|
||||||
|
public abstract class MenuConverter {
|
||||||
|
|
||||||
|
public abstract MenuInDto smMmg0000M01RRequestToMenuInDto(SmMmg0000M01RRequest req);
|
||||||
|
|
||||||
|
public abstract MenuListDto smMmg0000M01RResponseToMenuListDto(SmMmg0000M01RResponse res);
|
||||||
|
|
||||||
|
public abstract SmMmg0000M01RResponse menuListDtoeToSmMmg0000M01RResponse(MenuListDto res);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.domain.model;
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.db.dto.AuditInfo;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ZtMenu은 ZT_MENU 테이블을 매핑하는 Entity 클래스입니다.
|
||||||
|
* 이 클래스는 테이블의 컬럼을 Java 필드로 매핑합니다.
|
||||||
|
*
|
||||||
|
* @Data: Lombok을 통해 getter, setter 등을 자동 생성.
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ZtMenu extends AuditInfo {
|
||||||
|
|
||||||
|
// 메뉴 ID (PK)
|
||||||
|
private Integer menuId;
|
||||||
|
|
||||||
|
// 부모 메뉴 ID (FK)
|
||||||
|
private Integer parentMenuId;
|
||||||
|
|
||||||
|
// 컴포넌트 이름
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
// 라우트 경로
|
||||||
|
private String path;
|
||||||
|
|
||||||
|
// 메뉴 이름
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
// 메뉴 아이콘
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
// 메뉴 숨김 여부 (Y/N)
|
||||||
|
private String isHide;
|
||||||
|
|
||||||
|
// 탭 숨김 여부 (Y/N)
|
||||||
|
private String isHideTab;
|
||||||
|
|
||||||
|
// 링크
|
||||||
|
private String link;
|
||||||
|
|
||||||
|
// iframe 여부 (Y/N)
|
||||||
|
private String isIframe;
|
||||||
|
|
||||||
|
// 캐시 여부 (Y/N)
|
||||||
|
private String keepAlive;
|
||||||
|
|
||||||
|
// 메뉴 표시 순서
|
||||||
|
private Integer orderSeq;
|
||||||
|
|
||||||
|
// 활성 여부 (Y/N)
|
||||||
|
private String isActive;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.domain.repository;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuSaveInDto;
|
||||||
|
import io.shinhanlife.glow.GlowMybatisMapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@GlowMybatisMapper
|
||||||
|
public interface MenuRepository {
|
||||||
|
|
||||||
|
List<MenuOutDto> selectMenu(MenuInDto dto);
|
||||||
|
|
||||||
|
MenuOutDto selectMenuById(@Param("menuId") Integer menuId);
|
||||||
|
|
||||||
|
void insertMenu(MenuSaveInDto dto);
|
||||||
|
|
||||||
|
void updateMenu(MenuSaveInDto dto);
|
||||||
|
|
||||||
|
void deleteMenu(@Param("menuId") Integer menuId);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.domain.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuListDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuSaveInDto;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface MenuService {
|
||||||
|
|
||||||
|
List<MenuListDto> selectMenu(MenuInDto dto);
|
||||||
|
|
||||||
|
MenuOutDto findById(Integer menuId);
|
||||||
|
|
||||||
|
Integer save(MenuSaveInDto dto);
|
||||||
|
|
||||||
|
void delete(Integer menuId);
|
||||||
|
}
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.domain.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.domain.repository.MenuRepository;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuListDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuSaveInDto;
|
||||||
|
import io.shinhanlife.axhub.common.util.SessionUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class MenuServiceImpl implements MenuService {
|
||||||
|
|
||||||
|
private final MenuRepository menuRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<MenuListDto> selectMenu(MenuInDto dto) {
|
||||||
|
List<MenuOutDto> allMenus = menuRepository.selectMenu(dto);
|
||||||
|
|
||||||
|
// 비루트 메뉴(부모 ID가 null이 아닌)만 그룹핑하여 맵 생성
|
||||||
|
Map<Integer, List<MenuOutDto>> menuMap = allMenus.stream()
|
||||||
|
.filter(menu -> menu.getParentMenuId() != null)
|
||||||
|
.collect(Collectors.groupingBy(MenuOutDto::getParentMenuId));
|
||||||
|
|
||||||
|
// 루트 메뉴 (parentMenuId == null)
|
||||||
|
List<MenuOutDto> roots = allMenus.stream()
|
||||||
|
.filter(menu -> menu.getParentMenuId() == null)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 트리 빌드
|
||||||
|
List<MenuListDto> menuList = buildTree(roots, menuMap);
|
||||||
|
|
||||||
|
return menuList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<MenuListDto> buildTree(List<MenuOutDto> menus, Map<Integer, List<MenuOutDto>> menuMap) {
|
||||||
|
List<MenuListDto> dtos = new ArrayList<>();
|
||||||
|
for (MenuOutDto menu : menus) {
|
||||||
|
MenuListDto dto = convertToDto(menu);
|
||||||
|
List<MenuOutDto> children = menuMap.getOrDefault(menu.getMenuId(), new ArrayList<>());
|
||||||
|
if (!children.isEmpty()) {
|
||||||
|
dto.setChildren(buildTree(children, menuMap));
|
||||||
|
}
|
||||||
|
dtos.add(dto);
|
||||||
|
}
|
||||||
|
return dtos;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MenuOutDto findById(Integer menuId) {
|
||||||
|
return menuRepository.selectMenuById(menuId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public Integer save(MenuSaveInDto dto) {
|
||||||
|
Date now = new Date();
|
||||||
|
String prafNo = SessionUtil.getPrafNo();
|
||||||
|
String ognzNo = SessionUtil.getOgnzNo();
|
||||||
|
|
||||||
|
if (dto.getIsActive() == null) dto.setIsActive("Y");
|
||||||
|
if (dto.getIsHide() == null) dto.setIsHide("N");
|
||||||
|
if (dto.getIsHideTab() == null) dto.setIsHideTab("N");
|
||||||
|
if (dto.getIsIframe() == null) dto.setIsIframe("N");
|
||||||
|
if (dto.getKeepAlive() == null) dto.setKeepAlive("N");
|
||||||
|
if (dto.getOrderSeq() == null) dto.setOrderSeq(0);
|
||||||
|
|
||||||
|
dto.setSystChgDt(now);
|
||||||
|
dto.setSystChgPrafNo(prafNo);
|
||||||
|
dto.setSystChgOgnzNo(ognzNo);
|
||||||
|
dto.setSystChgSystCd("AXH");
|
||||||
|
dto.setSystChgPrgrId("SMNMG0100M");
|
||||||
|
|
||||||
|
if (dto.getMenuId() == null) {
|
||||||
|
dto.setSystRgiDt(now);
|
||||||
|
dto.setSystRgiPrafNo(prafNo);
|
||||||
|
dto.setSystRgiOgnzNo(ognzNo);
|
||||||
|
dto.setSystRgiSystCd("AXH");
|
||||||
|
dto.setSystRgiPrgrId("SMNMG0100M");
|
||||||
|
menuRepository.insertMenu(dto);
|
||||||
|
} else {
|
||||||
|
menuRepository.updateMenu(dto);
|
||||||
|
}
|
||||||
|
return dto.getMenuId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void delete(Integer menuId) {
|
||||||
|
menuRepository.deleteMenu(menuId);
|
||||||
|
}
|
||||||
|
|
||||||
|
private MenuListDto convertToDto(MenuOutDto menu) {
|
||||||
|
MenuListDto.Meta meta = new MenuListDto.Meta();
|
||||||
|
meta.setTitle(menu.getTitle());
|
||||||
|
meta.setIcon(menu.getIcon());
|
||||||
|
meta.setHide("Y".equals(menu.getIsHide()));
|
||||||
|
meta.setHideTab("Y".equals(menu.getIsHideTab()));
|
||||||
|
meta.setLink(menu.getLink());
|
||||||
|
meta.setIframe("Y".equals(menu.getIsIframe()));
|
||||||
|
meta.setKeepAlive("Y".equals(menu.getKeepAlive()));
|
||||||
|
meta.setOrderSeq(menu.getOrderSeq());
|
||||||
|
meta.setActive("Y".equals(menu.getIsActive()));
|
||||||
|
return MenuListDto.builder().id(menu.getMenuId()).name(menu.getName()).path(menu.getPath()).meta(meta).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class MenuInDto {
|
||||||
|
|
||||||
|
public MenuInDto() {
|
||||||
|
setIsActive("Y");
|
||||||
|
}
|
||||||
|
|
||||||
|
private String isActive; // 기본 활성 메뉴만
|
||||||
|
private String path; // 라우트 경로
|
||||||
|
private String title; // 기본 활성 메뉴만
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MenuDto는 Vue의 MenuListType에 맞춘 DTO입니다.
|
||||||
|
* 트리 구조를 지원하며, meta 객체 포함.
|
||||||
|
* @Data: Lombok을 통해 getter, setter 등을 자동 생성.
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class MenuListDto {
|
||||||
|
private Integer id;
|
||||||
|
private Integer parentMenuId;
|
||||||
|
private String name;
|
||||||
|
private String path;
|
||||||
|
private Meta meta;
|
||||||
|
private List<MenuListDto> children;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class Meta {
|
||||||
|
private String title;
|
||||||
|
private String icon;
|
||||||
|
private boolean showBadge;
|
||||||
|
private String showTextBadge;
|
||||||
|
private boolean hide;
|
||||||
|
private boolean hideTab;
|
||||||
|
private String link;
|
||||||
|
private boolean iframe;
|
||||||
|
private boolean keepAlive;
|
||||||
|
|
||||||
|
// 메뉴 표시 순서
|
||||||
|
private Integer orderSeq;
|
||||||
|
// 활성 여부
|
||||||
|
private boolean isActive;
|
||||||
|
|
||||||
|
@JsonProperty("isHide")
|
||||||
|
public boolean isHide() {
|
||||||
|
return hide;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isHide")
|
||||||
|
public void setHide(boolean hide) {
|
||||||
|
this.hide = hide;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isHideTab")
|
||||||
|
public boolean isHideTab() {
|
||||||
|
return hideTab;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isHideTab")
|
||||||
|
public void setHideTab(boolean hideTab) {
|
||||||
|
this.hideTab = hideTab;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isIframe")
|
||||||
|
public boolean isIframe() {
|
||||||
|
return iframe;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isIframe")
|
||||||
|
public void setIframe(boolean iframe) {
|
||||||
|
this.iframe = iframe;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isActive")
|
||||||
|
public boolean isActive() {
|
||||||
|
return isActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isActive")
|
||||||
|
public void setActive(boolean isActive) {
|
||||||
|
this.isActive = isActive;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class MenuOutDto {
|
||||||
|
|
||||||
|
// 메뉴 ID (PK)
|
||||||
|
private Integer menuId;
|
||||||
|
|
||||||
|
// 부모 메뉴 ID (FK)
|
||||||
|
private Integer parentMenuId;
|
||||||
|
|
||||||
|
// 컴포넌트 이름
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
// 라우트 경로
|
||||||
|
private String path;
|
||||||
|
|
||||||
|
// 메뉴 이름
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
// 메뉴 아이콘
|
||||||
|
private String icon;
|
||||||
|
|
||||||
|
// 메뉴 숨김 여부 (Y/N)
|
||||||
|
private String isHide;
|
||||||
|
|
||||||
|
// 탭 숨김 여부 (Y/N)
|
||||||
|
private String isHideTab;
|
||||||
|
|
||||||
|
// 링크
|
||||||
|
private String link;
|
||||||
|
|
||||||
|
// iframe 여부 (Y/N)
|
||||||
|
private String isIframe;
|
||||||
|
|
||||||
|
// 캐시 여부 (Y/N)
|
||||||
|
private String keepAlive;
|
||||||
|
|
||||||
|
// 메뉴 표시 순서
|
||||||
|
private Integer orderSeq;
|
||||||
|
|
||||||
|
// 활성 여부 (Y/N)
|
||||||
|
private String isActive;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class MenuSaveInDto {
|
||||||
|
|
||||||
|
private Integer menuId;
|
||||||
|
private Integer parentMenuId;
|
||||||
|
private String name;
|
||||||
|
private String path;
|
||||||
|
private String title;
|
||||||
|
private String icon;
|
||||||
|
private String isHide;
|
||||||
|
private String isHideTab;
|
||||||
|
private String link;
|
||||||
|
private String isIframe;
|
||||||
|
private String keepAlive;
|
||||||
|
private Integer orderSeq;
|
||||||
|
private String isActive;
|
||||||
|
|
||||||
|
private Date systRgiDt;
|
||||||
|
private String systRgiPrafNo;
|
||||||
|
private String systRgiOgnzNo;
|
||||||
|
private String systRgiSystCd;
|
||||||
|
private String systRgiPrgrId;
|
||||||
|
|
||||||
|
private Date systChgDt;
|
||||||
|
private String systChgPrafNo;
|
||||||
|
private String systChgOgnzNo;
|
||||||
|
private String systChgSystCd;
|
||||||
|
private String systChgPrgrId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmMmg0000M01RRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmMmg0000M01RResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.usecase.SmMmg0000MUseCase;
|
||||||
|
import io.shinhanlife.glow.BaseResponse;
|
||||||
|
import io.shinhanlife.glow.GlowControllerId;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.ResponseUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class SmMmg0000MController {
|
||||||
|
|
||||||
|
private final SmMmg0000MUseCase smMmg0000MUseCase;
|
||||||
|
|
||||||
|
@PostMapping("SMMMG0000M01R")
|
||||||
|
@GlowControllerId("SMMMG0000M01R")
|
||||||
|
public ResponseEntity<BaseResponse<List<SmMmg0000M01RResponse>>> SMMMG0000M01R(@RequestBody SmMmg0000M01RRequest req) {
|
||||||
|
return ResponseUtil.ok(smMmg0000MUseCase.selectMenu(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01DRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01RRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01RResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01SRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01SResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.usecase.SmNmg0100MUseCase;
|
||||||
|
import io.shinhanlife.glow.BaseResponse;
|
||||||
|
import io.shinhanlife.glow.GlowControllerId;
|
||||||
|
import io.shinhanlife.glow.ResponseUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class SmNmg0100MController {
|
||||||
|
|
||||||
|
private final SmNmg0100MUseCase useCase;
|
||||||
|
|
||||||
|
@PostMapping("SMNMG0100M01R")
|
||||||
|
@GlowControllerId("SMNMG0100M01R")
|
||||||
|
public ResponseEntity<BaseResponse<List<SmNmg0100M01RResponse>>> SMNMG0100M01R(
|
||||||
|
@RequestBody SmNmg0100M01RRequest req) {
|
||||||
|
return ResponseUtil.ok(useCase.selectMenu(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("SMNMG0100M01S")
|
||||||
|
@GlowControllerId("SMNMG0100M01S")
|
||||||
|
public ResponseEntity<BaseResponse<SmNmg0100M01SResponse>> SMNMG0100M01S(
|
||||||
|
@RequestBody SmNmg0100M01SRequest req) {
|
||||||
|
return ResponseUtil.ok(useCase.saveMenu(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("SMNMG0100M01D")
|
||||||
|
@GlowControllerId("SMNMG0100M01D")
|
||||||
|
public ResponseEntity<BaseResponse<Void>> SMNMG0100M01D(
|
||||||
|
@RequestBody SmNmg0100M01DRequest req) {
|
||||||
|
useCase.deleteMenu(req);
|
||||||
|
return ResponseUtil.ok(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation.io;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SmMmg0000M01RRequest {
|
||||||
|
|
||||||
|
public SmMmg0000M01RRequest() {
|
||||||
|
this.isActive = "Y";
|
||||||
|
}
|
||||||
|
|
||||||
|
private String isActive; // 기본 활성 메뉴만
|
||||||
|
private String path; // 라우트 경로
|
||||||
|
private String title; // 기본 활성 메뉴만
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation.io;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuListDto;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SmMmg0000M01RResponse {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
private Integer parentMenuId;
|
||||||
|
private String name;
|
||||||
|
private String path;
|
||||||
|
private MenuListDto.Meta meta;
|
||||||
|
private List<MenuListDto> children;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class Meta {
|
||||||
|
private String title;
|
||||||
|
private String icon;
|
||||||
|
private boolean showBadge;
|
||||||
|
private String showTextBadge;
|
||||||
|
private boolean hide;
|
||||||
|
private boolean hideTab;
|
||||||
|
private String link;
|
||||||
|
private boolean iframe;
|
||||||
|
private boolean keepAlive;
|
||||||
|
|
||||||
|
// 메뉴 표시 순서
|
||||||
|
private Integer orderSeq;
|
||||||
|
// 활성 여부
|
||||||
|
private boolean isActive;
|
||||||
|
|
||||||
|
@JsonProperty("isHide")
|
||||||
|
public boolean isHide() {
|
||||||
|
return hide;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isHide")
|
||||||
|
public void setHide(boolean hide) {
|
||||||
|
this.hide = hide;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isHideTab")
|
||||||
|
public boolean isHideTab() {
|
||||||
|
return hideTab;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isHideTab")
|
||||||
|
public void setHideTab(boolean hideTab) {
|
||||||
|
this.hideTab = hideTab;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isIframe")
|
||||||
|
public boolean isIframe() {
|
||||||
|
return iframe;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isIframe")
|
||||||
|
public void setIframe(boolean iframe) {
|
||||||
|
this.iframe = iframe;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isActive")
|
||||||
|
public boolean isActive() {
|
||||||
|
return isActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonProperty("isActive")
|
||||||
|
public void setActive(boolean isActive) {
|
||||||
|
this.isActive = isActive;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation.io;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class SmNmg0100M01DRequest {
|
||||||
|
|
||||||
|
private Integer menuId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation.io;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class SmNmg0100M01RRequest {
|
||||||
|
|
||||||
|
private String isActive;
|
||||||
|
private String path;
|
||||||
|
private String title;
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation.io;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SmNmg0100M01RResponse {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
private Integer parentMenuId;
|
||||||
|
private String name;
|
||||||
|
private String path;
|
||||||
|
private Meta meta;
|
||||||
|
private List<SmNmg0100M01RResponse> children;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class Meta {
|
||||||
|
private String title;
|
||||||
|
private String icon;
|
||||||
|
private String link;
|
||||||
|
private Integer orderSeq;
|
||||||
|
|
||||||
|
private boolean hide;
|
||||||
|
private boolean hideTab;
|
||||||
|
private boolean iframe;
|
||||||
|
private boolean keepAlive;
|
||||||
|
private boolean active;
|
||||||
|
|
||||||
|
@JsonProperty("isHide")
|
||||||
|
public boolean isHide() { return hide; }
|
||||||
|
|
||||||
|
@JsonProperty("isHide")
|
||||||
|
public void setHide(boolean hide) { this.hide = hide; }
|
||||||
|
|
||||||
|
@JsonProperty("isHideTab")
|
||||||
|
public boolean isHideTab() { return hideTab; }
|
||||||
|
|
||||||
|
@JsonProperty("isHideTab")
|
||||||
|
public void setHideTab(boolean hideTab) { this.hideTab = hideTab; }
|
||||||
|
|
||||||
|
@JsonProperty("isIframe")
|
||||||
|
public boolean isIframe() { return iframe; }
|
||||||
|
|
||||||
|
@JsonProperty("isIframe")
|
||||||
|
public void setIframe(boolean iframe) { this.iframe = iframe; }
|
||||||
|
|
||||||
|
@JsonProperty("keepAlive")
|
||||||
|
public boolean isKeepAlive() { return keepAlive; }
|
||||||
|
|
||||||
|
@JsonProperty("isActive")
|
||||||
|
public boolean isActive() { return active; }
|
||||||
|
|
||||||
|
@JsonProperty("isActive")
|
||||||
|
public void setActive(boolean active) { this.active = active; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation.io;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class SmNmg0100M01SRequest {
|
||||||
|
|
||||||
|
private Integer menuId;
|
||||||
|
private Integer parentMenuId;
|
||||||
|
private String name;
|
||||||
|
private String path;
|
||||||
|
private String title;
|
||||||
|
private String icon;
|
||||||
|
private String isHide;
|
||||||
|
private String isHideTab;
|
||||||
|
private String link;
|
||||||
|
private String isIframe;
|
||||||
|
private String keepAlive;
|
||||||
|
private Integer orderSeq;
|
||||||
|
private String isActive;
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.presentation.io;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SmNmg0100M01SResponse {
|
||||||
|
|
||||||
|
private Integer menuId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.usecase;
|
||||||
|
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmMmg0000M01RRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmMmg0000M01RResponse;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface SmMmg0000MUseCase {
|
||||||
|
|
||||||
|
public List<SmMmg0000M01RResponse> selectMenu(SmMmg0000M01RRequest req);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.usecase;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01DRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01RRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01RResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01SRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01SResponse;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface SmNmg0100MUseCase {
|
||||||
|
|
||||||
|
List<SmNmg0100M01RResponse> selectMenu(SmNmg0100M01RRequest req);
|
||||||
|
|
||||||
|
SmNmg0100M01SResponse saveMenu(SmNmg0100M01SRequest req);
|
||||||
|
|
||||||
|
void deleteMenu(SmNmg0100M01DRequest req);
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.usecase.impl;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.converter.MenuConverter;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.domain.service.impl.MenuService;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuListDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmMmg0000M01RRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmMmg0000M01RResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.usecase.SmMmg0000MUseCase;
|
||||||
|
import io.shinhanlife.glow.GlowServiceGroupId;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@GlowServiceGroupId(value = "SmMmgc", description="SmMmg")
|
||||||
|
public class SmMmg0000MUseCaseImpl implements SmMmg0000MUseCase {
|
||||||
|
|
||||||
|
private final MenuService menuService;
|
||||||
|
private final MenuConverter converter;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SmMmg0000M01RResponse> selectMenu(SmMmg0000M01RRequest req) {
|
||||||
|
List<SmMmg0000M01RResponse> result = new ArrayList<>();
|
||||||
|
MenuInDto dto = converter.smMmg0000M01RRequestToMenuInDto(req);
|
||||||
|
List<MenuListDto> menuListDtos = menuService.selectMenu(dto);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (MenuListDto menuListDto : menuListDtos) {
|
||||||
|
result.add(converter.menuListDtoeToSmMmg0000M01RResponse(menuListDto));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.sm.mmg.usecase.impl;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.domain.service.impl.MenuService;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuListDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.dto.MenuSaveInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01DRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01RRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01RResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01SRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.presentation.io.SmNmg0100M01SResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.sm.mmg.usecase.SmNmg0100MUseCase;
|
||||||
|
import io.shinhanlife.glow.GlowServiceGroupId;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@GlowServiceGroupId(value = "SmNmgc", description = "SmNmg")
|
||||||
|
public class SmNmg0100MUseCaseImpl implements SmNmg0100MUseCase {
|
||||||
|
|
||||||
|
private final MenuService menuService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SmNmg0100M01RResponse> selectMenu(SmNmg0100M01RRequest req) {
|
||||||
|
MenuInDto inDto = new MenuInDto();
|
||||||
|
inDto.setIsActive(req.getIsActive());
|
||||||
|
inDto.setPath(req.getPath());
|
||||||
|
inDto.setTitle(req.getTitle());
|
||||||
|
|
||||||
|
List<MenuListDto> tree = menuService.selectMenu(inDto);
|
||||||
|
return tree.stream().map(this::toResponse).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SmNmg0100M01SResponse saveMenu(SmNmg0100M01SRequest req) {
|
||||||
|
MenuSaveInDto dto = new MenuSaveInDto();
|
||||||
|
dto.setMenuId(req.getMenuId());
|
||||||
|
dto.setParentMenuId(req.getParentMenuId());
|
||||||
|
dto.setName(req.getName());
|
||||||
|
dto.setPath(req.getPath());
|
||||||
|
dto.setTitle(req.getTitle());
|
||||||
|
dto.setIcon(req.getIcon());
|
||||||
|
dto.setIsHide(req.getIsHide());
|
||||||
|
dto.setIsHideTab(req.getIsHideTab());
|
||||||
|
dto.setLink(req.getLink());
|
||||||
|
dto.setIsIframe(req.getIsIframe());
|
||||||
|
dto.setKeepAlive(req.getKeepAlive());
|
||||||
|
dto.setOrderSeq(req.getOrderSeq());
|
||||||
|
dto.setIsActive(req.getIsActive());
|
||||||
|
|
||||||
|
Integer savedId = menuService.save(dto);
|
||||||
|
return SmNmg0100M01SResponse.builder().menuId(savedId).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteMenu(SmNmg0100M01DRequest req) {
|
||||||
|
menuService.delete(req.getMenuId());
|
||||||
|
}
|
||||||
|
|
||||||
|
private SmNmg0100M01RResponse toResponse(MenuListDto dto) {
|
||||||
|
MenuListDto.Meta m = dto.getMeta();
|
||||||
|
|
||||||
|
SmNmg0100M01RResponse.Meta meta = SmNmg0100M01RResponse.Meta.builder()
|
||||||
|
.title(m != null ? m.getTitle() : null)
|
||||||
|
.icon(m != null ? m.getIcon() : null)
|
||||||
|
.hide(m != null && m.isHide())
|
||||||
|
.hideTab(m != null && m.isHideTab())
|
||||||
|
.link(m != null ? m.getLink() : null)
|
||||||
|
.iframe(m != null && m.isIframe())
|
||||||
|
.keepAlive(m != null && m.isKeepAlive())
|
||||||
|
.orderSeq(m != null ? m.getOrderSeq() : 0)
|
||||||
|
.active(m != null && m.isActive())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
List<SmNmg0100M01RResponse> children = (dto.getChildren() == null || dto.getChildren().isEmpty())
|
||||||
|
? Collections.emptyList()
|
||||||
|
: dto.getChildren().stream().map(this::toResponse).collect(Collectors.toList());
|
||||||
|
|
||||||
|
return SmNmg0100M01RResponse.builder()
|
||||||
|
.id(dto.getId())
|
||||||
|
.parentMenuId(dto.getParentMenuId())
|
||||||
|
.name(dto.getName())
|
||||||
|
.path(dto.getPath())
|
||||||
|
.meta(meta)
|
||||||
|
.children(children)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.converter;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrSaveInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrSearchInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSaveRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.RoleListRequest;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
@Mapper(componentModel = "spring")
|
||||||
|
public abstract class AccessMgmtConverter {
|
||||||
|
|
||||||
|
public abstract RoleListInDto toInDto(RoleListRequest request);
|
||||||
|
|
||||||
|
public abstract AthrSearchInDto toInDto(AthrSearchRequest request);
|
||||||
|
|
||||||
|
public abstract AthrSaveInDto toInDto(AthrSaveRequest request);
|
||||||
|
|
||||||
|
public abstract AthrSearchResponse toResponse(AthrOutDto outDto);
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.domain.repository;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrItemOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrSearchInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleKnwlAthrInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleToolAthrInDto;
|
||||||
|
import io.shinhanlife.glow.GlowMybatisMapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@GlowMybatisMapper
|
||||||
|
public interface AccessMgmtMapper {
|
||||||
|
|
||||||
|
List<RoleListOutDto> selectRoles(RoleListInDto inDto);
|
||||||
|
|
||||||
|
List<AthrItemOutDto> selectAllTools();
|
||||||
|
|
||||||
|
List<AthrItemOutDto> selectAllKnwls();
|
||||||
|
|
||||||
|
List<String> selectGrantedToolIds(AthrSearchInDto inDto);
|
||||||
|
|
||||||
|
List<String> selectGrantedKnwlIds(AthrSearchInDto inDto);
|
||||||
|
|
||||||
|
void deleteToolAthr(@Param("systId") String systId, @Param("roleNo") String roleNo);
|
||||||
|
|
||||||
|
void insertToolAthr(RoleToolAthrInDto inDto);
|
||||||
|
|
||||||
|
void deleteKnwlAthr(@Param("systId") String systId, @Param("roleNo") String roleNo);
|
||||||
|
|
||||||
|
void insertKnwlAthr(RoleKnwlAthrInDto inDto);
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.domain.service;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrSaveInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrSearchInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface AccessMgmtService {
|
||||||
|
|
||||||
|
List<RoleListOutDto> getRoles(RoleListInDto inDto);
|
||||||
|
|
||||||
|
AthrOutDto getAthr(AthrSearchInDto inDto);
|
||||||
|
|
||||||
|
void saveAthr(AthrSaveInDto inDto);
|
||||||
|
}
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.domain.service.impl;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.domain.repository.AccessMgmtMapper;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.domain.service.AccessMgmtService;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrItemOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrSaveInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrSearchInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleKnwlAthrInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListInDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleToolAthrInDto;
|
||||||
|
import io.shinhanlife.axhub.common.util.SessionUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AccessMgmtServiceImpl implements AccessMgmtService {
|
||||||
|
|
||||||
|
private final AccessMgmtMapper accessMgmtMapper;
|
||||||
|
|
||||||
|
private static final String SYSTEM_CD = "AXH";
|
||||||
|
private static final String SYSTEM_PRG = "SOATM0100";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RoleListOutDto> getRoles(RoleListInDto inDto) {
|
||||||
|
return accessMgmtMapper.selectRoles(inDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AthrOutDto getAthr(AthrSearchInDto inDto) {
|
||||||
|
Set<String> grantedToolIds = accessMgmtMapper.selectGrantedToolIds(inDto)
|
||||||
|
.stream().collect(Collectors.toSet());
|
||||||
|
|
||||||
|
Set<String> grantedKnwlIds = accessMgmtMapper.selectGrantedKnwlIds(inDto)
|
||||||
|
.stream().collect(Collectors.toSet());
|
||||||
|
|
||||||
|
List<AthrItemOutDto> tools = accessMgmtMapper.selectAllTools()
|
||||||
|
.stream()
|
||||||
|
.peek(item -> item.setGranted(grantedToolIds.contains(item.getResourceId())))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<AthrItemOutDto> knwls = accessMgmtMapper.selectAllKnwls()
|
||||||
|
.stream()
|
||||||
|
.peek(item -> item.setGranted(grantedKnwlIds.contains(item.getResourceId())))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
return new AthrOutDto(tools, knwls);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void saveAthr(AthrSaveInDto inDto) {
|
||||||
|
Date now = new Date();
|
||||||
|
String systId = inDto.getSystId();
|
||||||
|
String roleNo = inDto.getRoleNo();
|
||||||
|
|
||||||
|
accessMgmtMapper.deleteToolAthr(systId, roleNo);
|
||||||
|
if (inDto.getGrantedToolIds() != null) {
|
||||||
|
for (String toolId : inDto.getGrantedToolIds()) {
|
||||||
|
accessMgmtMapper.insertToolAthr(buildToolAthrInDto(systId, roleNo, toolId, now));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
accessMgmtMapper.deleteKnwlAthr(systId, roleNo);
|
||||||
|
if (inDto.getGrantedKnwlIds() != null) {
|
||||||
|
for (String knwlId : inDto.getGrantedKnwlIds()) {
|
||||||
|
accessMgmtMapper.insertKnwlAthr(buildKnwlAthrInDto(systId, roleNo, knwlId, now));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private RoleToolAthrInDto buildToolAthrInDto(String systId, String roleNo, String toolId, Date now) {
|
||||||
|
RoleToolAthrInDto dto = new RoleToolAthrInDto();
|
||||||
|
dto.setRoleToolAthrId("RTA-" + shortUuid());
|
||||||
|
dto.setSystId(systId);
|
||||||
|
dto.setRoleNo(roleNo);
|
||||||
|
dto.setToolId(toolId);
|
||||||
|
dto.setPuseYn("Y");
|
||||||
|
fillAudit(dto, now);
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
|
||||||
|
private RoleKnwlAthrInDto buildKnwlAthrInDto(String systId, String roleNo, String knwlId, Date now) {
|
||||||
|
RoleKnwlAthrInDto dto = new RoleKnwlAthrInDto();
|
||||||
|
dto.setRoleKnwlAthrId("RKA-" + shortUuid());
|
||||||
|
dto.setSystId(systId);
|
||||||
|
dto.setRoleNo(roleNo);
|
||||||
|
dto.setKnwlId(knwlId);
|
||||||
|
dto.setPuseYn("Y");
|
||||||
|
fillAudit(dto, now);
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillAudit(RoleToolAthrInDto dto, Date now) {
|
||||||
|
String prafNo = SessionUtil.getPrafNo();
|
||||||
|
String ognzNo = SessionUtil.getOgnzNo();
|
||||||
|
dto.setSystRgiDt(now); dto.setSystRgiPrafNo(prafNo);
|
||||||
|
dto.setSystRgiOgnzNo(ognzNo); dto.setSystRgiSystCd(SYSTEM_CD);
|
||||||
|
dto.setSystRgiPrgrId(SYSTEM_PRG);
|
||||||
|
dto.setSystChgDt(now); dto.setSystChgPrafNo(prafNo);
|
||||||
|
dto.setSystChgOgnzNo(ognzNo); dto.setSystChgSystCd(SYSTEM_CD);
|
||||||
|
dto.setSystChgPrgrId(SYSTEM_PRG);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillAudit(RoleKnwlAthrInDto dto, Date now) {
|
||||||
|
String prafNo = SessionUtil.getPrafNo();
|
||||||
|
String ognzNo = SessionUtil.getOgnzNo();
|
||||||
|
dto.setSystRgiDt(now); dto.setSystRgiPrafNo(prafNo);
|
||||||
|
dto.setSystRgiOgnzNo(ognzNo); dto.setSystRgiSystCd(SYSTEM_CD);
|
||||||
|
dto.setSystRgiPrgrId(SYSTEM_PRG);
|
||||||
|
dto.setSystChgDt(now); dto.setSystChgPrafNo(prafNo);
|
||||||
|
dto.setSystChgOgnzNo(ognzNo); dto.setSystChgSystCd(SYSTEM_CD);
|
||||||
|
dto.setSystChgPrgrId(SYSTEM_PRG);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String shortUuid() {
|
||||||
|
return UUID.randomUUID().toString().replace("-", "").substring(0, 12).toUpperCase();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class AthrItemOutDto {
|
||||||
|
private String resourceId;
|
||||||
|
private String resourceNm;
|
||||||
|
private String resourceDs;
|
||||||
|
private String typeCode;
|
||||||
|
private boolean granted;
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AthrOutDto {
|
||||||
|
private List<AthrItemOutDto> tools;
|
||||||
|
private List<AthrItemOutDto> knwls;
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class AthrSaveInDto {
|
||||||
|
private String systId;
|
||||||
|
private String roleNo;
|
||||||
|
private List<String> grantedToolIds;
|
||||||
|
private List<String> grantedKnwlIds;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class AthrSearchInDto {
|
||||||
|
private String systId;
|
||||||
|
private String roleNo;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class RoleKnwlAthrInDto {
|
||||||
|
private String roleKnwlAthrId;
|
||||||
|
private String systId;
|
||||||
|
private String roleNo;
|
||||||
|
private String knwlId;
|
||||||
|
private String puseYn;
|
||||||
|
|
||||||
|
private Date systRgiDt;
|
||||||
|
private String systRgiPrafNo;
|
||||||
|
private String systRgiOgnzNo;
|
||||||
|
private String systRgiSystCd;
|
||||||
|
private String systRgiPrgrId;
|
||||||
|
private Date systChgDt;
|
||||||
|
private String systChgPrafNo;
|
||||||
|
private String systChgOgnzNo;
|
||||||
|
private String systChgSystCd;
|
||||||
|
private String systChgPrgrId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class RoleListInDto {
|
||||||
|
private String systId;
|
||||||
|
private String puseYn;
|
||||||
|
private String keyword;
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class RoleListOutDto {
|
||||||
|
private String systId;
|
||||||
|
private String roleNo;
|
||||||
|
private String roleNm;
|
||||||
|
private String roleDs;
|
||||||
|
private String puseYn;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.dto;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class RoleToolAthrInDto {
|
||||||
|
private String roleToolAthrId;
|
||||||
|
private String systId;
|
||||||
|
private String roleNo;
|
||||||
|
private String toolId;
|
||||||
|
private String puseYn;
|
||||||
|
|
||||||
|
private Date systRgiDt;
|
||||||
|
private String systRgiPrafNo;
|
||||||
|
private String systRgiOgnzNo;
|
||||||
|
private String systRgiSystCd;
|
||||||
|
private String systRgiPrgrId;
|
||||||
|
private Date systChgDt;
|
||||||
|
private String systChgPrafNo;
|
||||||
|
private String systChgOgnzNo;
|
||||||
|
private String systChgSystCd;
|
||||||
|
private String systChgPrgrId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.presentation;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSaveRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.RoleListRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.usecase.AccessMgmtUseCase;
|
||||||
|
import io.shinhanlife.glow.BaseResponse;
|
||||||
|
import io.shinhanlife.glow.ResponseUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/so/atm")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class SOATM0100Controller {
|
||||||
|
|
||||||
|
private final AccessMgmtUseCase accessMgmtUseCase;
|
||||||
|
|
||||||
|
@PostMapping("/SOATM0100R")
|
||||||
|
public ResponseEntity<BaseResponse<List<RoleListOutDto>>> getRoles(
|
||||||
|
@RequestBody RoleListRequest request) {
|
||||||
|
return ResponseUtil.ok(accessMgmtUseCase.getRoles(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/SOATM0101R")
|
||||||
|
public ResponseEntity<BaseResponse<AthrSearchResponse>> getAthr(
|
||||||
|
@RequestBody AthrSearchRequest request) {
|
||||||
|
return ResponseUtil.ok(accessMgmtUseCase.getAthr(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/SOATM0100U")
|
||||||
|
public ResponseEntity<BaseResponse<Void>> saveAthr(
|
||||||
|
@RequestBody AthrSaveRequest request) {
|
||||||
|
accessMgmtUseCase.saveAthr(request);
|
||||||
|
return ResponseUtil.ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.presentation.io;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class AthrSaveRequest {
|
||||||
|
private String systId;
|
||||||
|
private String roleNo;
|
||||||
|
private List<String> grantedToolIds;
|
||||||
|
private List<String> grantedKnwlIds;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.presentation.io;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class AthrSearchRequest {
|
||||||
|
private String systId;
|
||||||
|
private String roleNo;
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.presentation.io;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.AthrItemOutDto;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AthrSearchResponse {
|
||||||
|
private List<AthrItemOutDto> tools;
|
||||||
|
private List<AthrItemOutDto> knwls;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.presentation.io;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class RoleListRequest {
|
||||||
|
private String systId;
|
||||||
|
private String puseYn;
|
||||||
|
private String keyword;
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.usecase;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSaveRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.RoleListRequest;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface AccessMgmtUseCase {
|
||||||
|
|
||||||
|
List<RoleListOutDto> getRoles(RoleListRequest request);
|
||||||
|
|
||||||
|
AthrSearchResponse getAthr(AthrSearchRequest request);
|
||||||
|
|
||||||
|
void saveAthr(AthrSaveRequest request);
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package io.shinhanlife.axhub.biz.so.atm.usecase.impl;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.converter.AccessMgmtConverter;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.domain.service.AccessMgmtService;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSaveRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchResponse;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.RoleListRequest;
|
||||||
|
import io.shinhanlife.axhub.biz.so.atm.usecase.AccessMgmtUseCase;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AccessMgmtUseCaseImpl implements AccessMgmtUseCase {
|
||||||
|
|
||||||
|
private final AccessMgmtService accessMgmtService;
|
||||||
|
private final AccessMgmtConverter converter;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RoleListOutDto> getRoles(RoleListRequest request) {
|
||||||
|
return accessMgmtService.getRoles(converter.toInDto(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AthrSearchResponse getAthr(AthrSearchRequest request) {
|
||||||
|
return converter.toResponse(accessMgmtService.getAthr(converter.toInDto(request)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveAthr(AthrSaveRequest request) {
|
||||||
|
accessMgmtService.saveAthr(converter.toInDto(request));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package io.shinhanlife.axhub.common.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class CorsConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addCorsMappings(CorsRegistry registry) {
|
||||||
|
registry.addMapping("/**") // 모든 엔드포인트에 대해 CORS 허용
|
||||||
|
.allowedOrigins("http://localhost:3006") // Vue 앱의 오리진 허용 (필요 시 여러 오리진 추가: .allowedOrigins("http://localhost:3006", "https://example.com"))
|
||||||
|
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 허용할 HTTP 메서드
|
||||||
|
.allowedHeaders("*") // 모든 헤더 허용
|
||||||
|
.allowCredentials(true) // 쿠키/인증 정보 허용 (필요 시)
|
||||||
|
.maxAge(3600); // preflight 요청 캐시 시간 (초 단위)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package io.shinhanlife.axhub.common.config;
|
||||||
|
|
||||||
|
import com.p6spy.engine.logging.Category;
|
||||||
|
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
|
||||||
|
|
||||||
|
public class P6SpySqlFormatter implements MessageFormattingStrategy {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String formatMessage(int connectionId, String now, long elapsed,
|
||||||
|
String category, String prepared, String sql, String url) {
|
||||||
|
|
||||||
|
if (sql == null || sql.isBlank()) return "";
|
||||||
|
if (Category.STATEMENT.getName().equals(category)) {
|
||||||
|
|
||||||
|
String prettySQL = sql
|
||||||
|
.replaceAll("(?i)\\bSELECT\\b", "\nSELECT")
|
||||||
|
.replaceAll("(?i)\\bFROM\\b", "\n FROM")
|
||||||
|
.replaceAll("(?i)\\bWHERE\\b", "\n WHERE")
|
||||||
|
.replaceAll("(?i)\\bAND\\b", "\n AND")
|
||||||
|
.replaceAll("(?i)\\bOR\\b", "\n OR")
|
||||||
|
.replaceAll("(?i)\\bINNER JOIN\\b", "\n INNER JOIN")
|
||||||
|
.replaceAll("(?i)\\bLEFT JOIN\\b", "\n LEFT JOIN")
|
||||||
|
.replaceAll("(?i)\\bORDER BY\\b", "\n ORDER BY")
|
||||||
|
.replaceAll("(?i)\\bGROUP BY\\b", "\n GROUP BY")
|
||||||
|
.replaceAll("(?i)\\bINSERT INTO\\b", "\nINSERT INTO")
|
||||||
|
.replaceAll("(?i)\\bVALUES\\b", "\n VALUES")
|
||||||
|
.replaceAll("(?i)\\bUPDATE\\b", "\nUPDATE")
|
||||||
|
.replaceAll("(?i)\\bSET\\b", "\n SET")
|
||||||
|
.replaceAll("(?i)\\bDELETE FROM\\b", "\nDELETE FROM");
|
||||||
|
|
||||||
|
return String.format("""
|
||||||
|
\n┌─────────────────────────────────────────
|
||||||
|
│ SQL [%dms]
|
||||||
|
│%s
|
||||||
|
└─────────────────────────────────────────
|
||||||
|
""", elapsed, prettySQL.indent(2).stripTrailing());
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.converter;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.SessionDto;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.Mapping;
|
||||||
|
|
||||||
|
@Mapper(componentModel = "spring")
|
||||||
|
public abstract class ZtUsacConverter {
|
||||||
|
|
||||||
|
@Mapping(target = "loginDtm", ignore = true)
|
||||||
|
@Mapping(target = "isManager", ignore = true)
|
||||||
|
public abstract SessionDto toSessionDto(ZtUsacOutDto dto);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.domain.model;
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.db.dto.AuditInfo;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ZtUsacModel extends AuditInfo {
|
||||||
|
|
||||||
|
/* 인사번호 */
|
||||||
|
private String prafNo;
|
||||||
|
/* 인사명 */
|
||||||
|
private String prafNm;
|
||||||
|
/* 조직번호 */
|
||||||
|
private String ognzNo;
|
||||||
|
/* 이메일주소 */
|
||||||
|
private String addre;
|
||||||
|
/* 인사직무코드 */
|
||||||
|
private String prafOfduCd;
|
||||||
|
/* 인사직무명 */
|
||||||
|
private String prafOfduNm;
|
||||||
|
/* 인사직급코드 */
|
||||||
|
private String prafOfleCd;
|
||||||
|
/* 인사직급명 */
|
||||||
|
private String prafOfleNm;
|
||||||
|
/* 인사직책코드 */
|
||||||
|
private String prafDutyCd;
|
||||||
|
/* 인사직책명 */
|
||||||
|
private String prafDutyNm;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.domain.repository;
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.GlowMybatisMapper;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacInDto;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
||||||
|
|
||||||
|
|
||||||
|
@GlowMybatisMapper
|
||||||
|
public interface ZtUsacRepository {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 사용자 조회 (단건)
|
||||||
|
*
|
||||||
|
* @param dto 사번
|
||||||
|
* @return 인사정보
|
||||||
|
*/
|
||||||
|
ZtUsacOutDto selectZtUsac(ZtUsacInDto dto);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.domain.service;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacInDto;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
||||||
|
|
||||||
|
public interface ZtUsacService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 사용자 조회 (단건)
|
||||||
|
*
|
||||||
|
* @param dto 사번
|
||||||
|
* @return 인사정보
|
||||||
|
*/
|
||||||
|
ZtUsacOutDto selectZtUsac(ZtUsacInDto dto);
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.domain.service.impl;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.common.session.domain.repository.ZtUsacRepository;
|
||||||
|
import io.shinhanlife.axhub.common.session.domain.service.ZtUsacService;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacInDto;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ZtUsacServiceImpl implements ZtUsacService {
|
||||||
|
|
||||||
|
private final ZtUsacRepository ztUsacRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 사용자 조회 (단건)
|
||||||
|
*
|
||||||
|
* @param dto 사번
|
||||||
|
* @return 인사정보
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ZtUsacOutDto selectZtUsac(ZtUsacInDto dto) {
|
||||||
|
ZtUsacOutDto result = ztUsacRepository.selectZtUsac(dto);
|
||||||
|
result.initLists();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.dto;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SessionDto {
|
||||||
|
|
||||||
|
/* 인사번호 */
|
||||||
|
private String prafNo;
|
||||||
|
/* 인사명 */
|
||||||
|
private String prafNm;
|
||||||
|
/* 조직번호 */
|
||||||
|
private String ognzNo;
|
||||||
|
/* 조직번호 */
|
||||||
|
private String ognzNm;
|
||||||
|
/* 이메일주소 */
|
||||||
|
private String addre;
|
||||||
|
/* 인사직무코드 */
|
||||||
|
private String prafOfduCd;
|
||||||
|
/* 인사직무명 */
|
||||||
|
private String prafOfduNm;
|
||||||
|
/* 인사직급코드 */
|
||||||
|
private String prafOfleCd;
|
||||||
|
/* 인사직급명 */
|
||||||
|
private String prafOfleNm;
|
||||||
|
/* 인사직책코드 */
|
||||||
|
private String prafDutyCd;
|
||||||
|
/* 인사직책명 */
|
||||||
|
private String prafDutyNm;
|
||||||
|
|
||||||
|
private List<String> roleNoList;
|
||||||
|
private List<String> roleNmList;
|
||||||
|
private List<String> tgtrPrafNoList;
|
||||||
|
private List<String> tgtrOgnzNoList;
|
||||||
|
|
||||||
|
|
||||||
|
// 유틸성
|
||||||
|
private String loginDtm; // 로그인일시
|
||||||
|
private String isManager; // 관리자여부
|
||||||
|
|
||||||
|
public void setLoginDtm() {
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
|
||||||
|
this.loginDtm = LocalDateTime.now().format(formatter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsManager(String isManager) {
|
||||||
|
// TODO 역할 필터링 후 관리자 여부 체크
|
||||||
|
this.isManager = "Y";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ZtUsacInDto {
|
||||||
|
|
||||||
|
public ZtUsacInDto() {
|
||||||
|
setPuseYn("Y");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 인사번호 */
|
||||||
|
private String prafNo;
|
||||||
|
|
||||||
|
/* 사용여부 */
|
||||||
|
private String puseYn;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.dto;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ZtUsacOutDto {
|
||||||
|
|
||||||
|
/* 인사번호 */
|
||||||
|
private String prafNo;
|
||||||
|
/* 인사명 */
|
||||||
|
private String prafNm;
|
||||||
|
/* 조직번호 */
|
||||||
|
private String ognzNo;
|
||||||
|
/* 조직명 */
|
||||||
|
private String ognzNm;
|
||||||
|
/* 이메일주소 */
|
||||||
|
// @GlowSecureField(type = DataSecureType.DECRYPT_DB, direction = SafeDBType.COMM) TODO 방화벽 뚫리면 확인
|
||||||
|
private String addre;
|
||||||
|
/* 인사직무코드 */
|
||||||
|
private String prafOfduCd;
|
||||||
|
/* 인사직무명 */
|
||||||
|
private String prafOfduNm;
|
||||||
|
/* 인사직급코드 */
|
||||||
|
private String prafOfleCd;
|
||||||
|
/* 인사직급명 */
|
||||||
|
private String prafOfleNm;
|
||||||
|
/* 인사직책코드 */
|
||||||
|
private String prafDutyCd;
|
||||||
|
/* 인사직책명 */
|
||||||
|
private String prafDutyNm;
|
||||||
|
/* 사용여부 */
|
||||||
|
private String puseYn;
|
||||||
|
|
||||||
|
private String roleNoStrList;
|
||||||
|
private String roleNmStrList;
|
||||||
|
private String tgtrPrafNoStrList;
|
||||||
|
private String tgtrOgnzNoStrList;
|
||||||
|
|
||||||
|
private List<String> roleNoList;
|
||||||
|
private List<String> roleNmList;
|
||||||
|
private List<String> tgtrPrafNoList;
|
||||||
|
private List<String> tgtrOgnzNoList;
|
||||||
|
|
||||||
|
public void initLists() {
|
||||||
|
this.roleNoList = convertStrToList(roleNoStrList);
|
||||||
|
this.roleNmList = convertStrToList(roleNmStrList);
|
||||||
|
this.tgtrPrafNoList = convertStrToList(tgtrPrafNoStrList);
|
||||||
|
this.tgtrOgnzNoList = convertStrToList(tgtrOgnzNoStrList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> convertStrToList(String str) {
|
||||||
|
if (str == null || str.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
return Arrays.asList(str.split(","));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.presentation;
|
||||||
|
|
||||||
|
import io.micrometer.common.util.StringUtils;
|
||||||
|
import io.shinhanlife.glow.BaseResponse;
|
||||||
|
import io.shinhanlife.glow.BizException;
|
||||||
|
import io.shinhanlife.glow.GlowControllerId;
|
||||||
|
import io.shinhanlife.glow.ResponseUtil;
|
||||||
|
import io.shinhanlife.axhub.common.session.converter.ZtUsacConverter;
|
||||||
|
import io.shinhanlife.axhub.common.session.domain.service.ZtUsacService;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.SessionDto;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacInDto;
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
||||||
|
import io.shinhanlife.axhub.common.session.presentation.io.SsoResponse;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.servlet.http.HttpSession;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.ibatis.javassist.NotFoundException;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
@RequestMapping("/sso")
|
||||||
|
public class SsoRestController {
|
||||||
|
|
||||||
|
private static final String NLS_LOGIN_URL = "";
|
||||||
|
private final ZtUsacService ztUsacService;
|
||||||
|
private final ZtUsacConverter ztUsacConverter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sso 연동 전 임시 로그인
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @param session
|
||||||
|
* @param <T>
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GlowControllerId("tempLogin")
|
||||||
|
@PostMapping("/tempLogin")
|
||||||
|
public <T> ResponseEntity<BaseResponse<SsoResponse>> tempLogin(HttpServletRequest request, HttpServletResponse response,
|
||||||
|
HttpSession session, @RequestBody SessionDto requestDto) {
|
||||||
|
try {
|
||||||
|
if (StringUtils.isEmpty(requestDto.getPrafNo())) {
|
||||||
|
throw new NotFoundException("SSO >> not found sso id");
|
||||||
|
}
|
||||||
|
|
||||||
|
// DB 유저 가져오기
|
||||||
|
ZtUsacOutDto ztUsacOutDto = ztUsacService.selectZtUsac(ZtUsacInDto.builder().prafNo(requestDto.getPrafNo()).puseYn("Y")
|
||||||
|
.build());
|
||||||
|
if (Objects.isNull(ztUsacOutDto) || StringUtils.isEmpty(ztUsacOutDto.getPrafNo())) {
|
||||||
|
throw new BizException("SSO >> not found UserInfo >> retCode:");
|
||||||
|
}
|
||||||
|
|
||||||
|
SessionDto sessionDto = ztUsacConverter.toSessionDto(ztUsacOutDto);
|
||||||
|
sessionDto.setLoginDtm(); // 로그인 시점 세팅
|
||||||
|
session.setAttribute("userInfo", sessionDto);
|
||||||
|
return ResponseUtil.ok(SsoResponse.builder().retCode("0").userInfo(sessionDto).build());
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("로그인 실패", e);
|
||||||
|
session.invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseUtil.ok(SsoResponse.builder().redirectUrl(NLS_LOGIN_URL).build());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package io.shinhanlife.axhub.common.session.presentation.io;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.SessionDto;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SsoResponse {
|
||||||
|
|
||||||
|
private String retCode;
|
||||||
|
private SessionDto userInfo;
|
||||||
|
private String redirectUrl;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package io.shinhanlife.axhub.common.util;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.common.session.dto.SessionDto;
|
||||||
|
import jakarta.servlet.http.HttpSession;
|
||||||
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
|
public class SessionUtil {
|
||||||
|
|
||||||
|
private static final String SESSION_KEY = "userInfo";
|
||||||
|
|
||||||
|
private SessionUtil() {}
|
||||||
|
|
||||||
|
public static SessionDto getSession() {
|
||||||
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
|
if (attributes == null) return null;
|
||||||
|
HttpSession session = attributes.getRequest().getSession(false);
|
||||||
|
if (session == null) return null;
|
||||||
|
return (SessionDto) session.getAttribute(SESSION_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getPrafNo() {
|
||||||
|
SessionDto session = getSession();
|
||||||
|
return session != null ? session.getPrafNo() : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getOgnzNo() {
|
||||||
|
SessionDto session = getSession();
|
||||||
|
return session != null ? session.getOgnzNo() : null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.converter;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.sample.domain.model.AppliSystNtfyPatiModel;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.AppliSystNtfyRgiInDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListInDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListOutDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.AppliSystNtfyPatiRequest;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermRequest;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermResponse;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
@Mapper(componentModel = "spring")
|
||||||
|
public abstract class SampleConverter {
|
||||||
|
|
||||||
|
public abstract StrnTermListInDTO convertRequestToDto(StrnTermRequest req);
|
||||||
|
|
||||||
|
public abstract StrnTermResponse convertDtoToResponse(StrnTermListOutDTO outDto);
|
||||||
|
|
||||||
|
public abstract AppliSystNtfyPatiModel convertDtoToModel(AppliSystNtfyRgiInDTO inDto);
|
||||||
|
|
||||||
|
public abstract AppliSystNtfyRgiInDTO convertAppliRequestToDto(AppliSystNtfyPatiRequest request);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.domain.model;
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.db.dto.AuditInfo;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
public class AppliSystNtfyPatiModel extends AuditInfo {
|
||||||
|
private String appliSystNtfyPatiId;
|
||||||
|
private String appliSystNtfyKdCd;
|
||||||
|
private String appliDutjCd;
|
||||||
|
private String appliDutjPrjcCd;
|
||||||
|
private String ntfyMsgCt;
|
||||||
|
private String ntfyOccDt;
|
||||||
|
private String ntfyCfmDt;
|
||||||
|
private String ntfyTrgtPrafNo;
|
||||||
|
private String shmsPmlYn;
|
||||||
|
private String ntfyCfmYn;
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.domain.repository;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.sample.domain.model.AppliSystNtfyPatiModel;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListInDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListOutDTO;
|
||||||
|
import io.shinhanlife.glow.GlowIndexPaging;
|
||||||
|
import io.shinhanlife.glow.GlowMybatisMapper;
|
||||||
|
import io.shinhanlife.glow.PageInfo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@GlowMybatisMapper
|
||||||
|
public interface GlowSampleRepository {
|
||||||
|
|
||||||
|
@GlowIndexPaging
|
||||||
|
List<StrnTermListOutDTO.StrnTerm> selectStrnTerm(StrnTermListInDTO inDto, PageInfo pageInfo);
|
||||||
|
|
||||||
|
int insertAppliSystNtfyPati(AppliSystNtfyPatiModel appliSystNtfyPatiModel);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.domain.service;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.sample.dto.AppliSystNtfyRgiInDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListInDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListOutDTO;
|
||||||
|
import io.shinhanlife.glow.PageInfo;
|
||||||
|
|
||||||
|
public interface GlowSampleService {
|
||||||
|
StrnTermListOutDTO getStrnTerms(StrnTermListInDTO inDto, PageInfo pageInfo);
|
||||||
|
int insertAppliSystNtfyPati(AppliSystNtfyRgiInDTO inDto);
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.domain.service.impl;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.sample.converter.SampleConverter;
|
||||||
|
import io.shinhanlife.axhub.sample.domain.model.AppliSystNtfyPatiModel;
|
||||||
|
import io.shinhanlife.axhub.sample.domain.repository.GlowSampleRepository;
|
||||||
|
import io.shinhanlife.axhub.sample.domain.service.GlowSampleService;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.AppliSystNtfyRgiInDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListInDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListOutDTO;
|
||||||
|
import io.shinhanlife.glow.GlowLogger;
|
||||||
|
import io.shinhanlife.glow.GlowLogTarget;
|
||||||
|
import io.shinhanlife.glow.PageInfo;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class GlowSampleServiceImpl implements GlowSampleService {
|
||||||
|
|
||||||
|
@GlowLogTarget(GlowLogTarget.Target.FILE)
|
||||||
|
private final GlowLogger log;
|
||||||
|
private final GlowSampleRepository glowSampleRepository;
|
||||||
|
private final SampleConverter sampleConverter;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StrnTermListOutDTO getStrnTerms(StrnTermListInDTO inDto, PageInfo pageInfo) {
|
||||||
|
List<StrnTermListOutDTO.StrnTerm> out = glowSampleRepository.selectStrnTerm(inDto, pageInfo);
|
||||||
|
return StrnTermListOutDTO.builder()
|
||||||
|
.strnTerms(out)
|
||||||
|
.pageInfo(pageInfo)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int insertAppliSystNtfyPati(AppliSystNtfyRgiInDTO inDto) {
|
||||||
|
AppliSystNtfyPatiModel appliSystNtfyPatiModel = sampleConverter.convertDtoToModel(inDto);
|
||||||
|
return glowSampleRepository.insertAppliSystNtfyPati(appliSystNtfyPatiModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.dto;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AppliSystNtfyRgiInDTO {
|
||||||
|
private String appliSystNtfyPatiId;
|
||||||
|
private String appliSystNtfyKdCd;
|
||||||
|
private String appliDutjCd;
|
||||||
|
private String appliDutjPrjcCd;
|
||||||
|
private String ntfyMsgCt;
|
||||||
|
private String ntfyOccDt;
|
||||||
|
private String ntfyCfmDt;
|
||||||
|
private String ntfyTrgtPrafNo;
|
||||||
|
private String shmsPmlYn;
|
||||||
|
private String ntfyCfmYn;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.dto;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
public class StrnTermListInDTO {
|
||||||
|
private String strnTermHanNm;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.dto;
|
||||||
|
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.PageInfo;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class StrnTermListOutDTO {
|
||||||
|
private List<StrnTerm> strnTerms;
|
||||||
|
private PageInfo pageInfo;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public static class StrnTerm{
|
||||||
|
private String strnTermHanNm;
|
||||||
|
private String strnTermEngcAbrNm;
|
||||||
|
private String strnTermEngNm;
|
||||||
|
private String strnTermScrnTermNm;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.presentation;
|
||||||
|
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.BaseResponse;
|
||||||
|
import io.shinhanlife.glow.GlowControllerId;
|
||||||
|
import io.shinhanlife.glow.GlowLogTarget;
|
||||||
|
import io.shinhanlife.glow.GlowLogger;
|
||||||
|
import io.shinhanlife.glow.ResponseUtil;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.AppliSystNtfyPatiRequest;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.AppliSystNtfyPatiResponse;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermRequest;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermResponse;
|
||||||
|
import io.shinhanlife.axhub.sample.usecase.GlowSampleUseCase;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class GlowSampleController {
|
||||||
|
@GlowLogTarget({GlowLogTarget.Target.CONSOLE, GlowLogTarget.Target.FILE})
|
||||||
|
private final GlowLogger log;
|
||||||
|
private final GlowSampleUseCase glowSampleUseCase;
|
||||||
|
|
||||||
|
@GlowControllerId(value = "selectStrnTerm")
|
||||||
|
@PostMapping("/selectStrnTerm")
|
||||||
|
public ResponseEntity<BaseResponse<StrnTermResponse>> getStrnTerms(@RequestBody StrnTermRequest request) {
|
||||||
|
return ResponseUtil.ok(glowSampleUseCase.getStrnTerms(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GlowControllerId(value = "insertAp")
|
||||||
|
@PostMapping("/insertAppliSystNtfyPati")
|
||||||
|
public ResponseEntity<BaseResponse<AppliSystNtfyPatiResponse>> insertAppliSystNtfyPati(@RequestBody AppliSystNtfyPatiRequest request) {
|
||||||
|
return ResponseUtil.ok(glowSampleUseCase.insertAppliSystNtfyPati(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.presentation.io;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AppliSystNtfyPatiRequest {
|
||||||
|
private String appliSystNtfyPatiId;
|
||||||
|
private String appliSystNtfyKdCd;
|
||||||
|
private String appliDutjCd;
|
||||||
|
private String appliDutjPrjcCd;
|
||||||
|
private String ntfyMsgCt;
|
||||||
|
private String ntfyOccDt;
|
||||||
|
private String ntfyCfmDt;
|
||||||
|
private String ntfyTrgtPrafNo;
|
||||||
|
private String shmsPmlYn;
|
||||||
|
private String ntfyCfmYn;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.presentation.io;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AppliSystNtfyPatiResponse {
|
||||||
|
private String successYn;
|
||||||
|
private String msg;
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.presentation.io;
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.PageInfo;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class StrnTermRequest {
|
||||||
|
private PageInfo pageInfo;
|
||||||
|
|
||||||
|
private String strnTermHanNm;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.presentation.io;
|
||||||
|
|
||||||
|
import io.shinhanlife.glow.PageInfo;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class StrnTermResponse {
|
||||||
|
|
||||||
|
private List<StrnTerm> strnTerms;
|
||||||
|
private PageInfo pageInfo;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
@Getter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class StrnTerm{
|
||||||
|
private String strnTermHanNm;
|
||||||
|
private String strnTermEngcAbrNm;
|
||||||
|
private String strnTermEngNm;
|
||||||
|
private String strnTermScrnTermNm;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.usecase;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.AppliSystNtfyPatiRequest;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.AppliSystNtfyPatiResponse;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermRequest;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermResponse;
|
||||||
|
|
||||||
|
public interface GlowSampleUseCase {
|
||||||
|
StrnTermResponse getStrnTerms(StrnTermRequest req);
|
||||||
|
AppliSystNtfyPatiResponse insertAppliSystNtfyPati(AppliSystNtfyPatiRequest req);
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package io.shinhanlife.axhub.sample.usecase.impl;
|
||||||
|
|
||||||
|
import io.shinhanlife.axhub.sample.converter.SampleConverter;
|
||||||
|
import io.shinhanlife.axhub.sample.domain.service.GlowSampleService;
|
||||||
|
import io.shinhanlife.axhub.sample.dto.StrnTermListOutDTO;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.AppliSystNtfyPatiRequest;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.AppliSystNtfyPatiResponse;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermRequest;
|
||||||
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermResponse;
|
||||||
|
import io.shinhanlife.axhub.sample.usecase.GlowSampleUseCase;
|
||||||
|
import io.shinhanlife.glow.GlowAppServiceId;
|
||||||
|
import io.shinhanlife.glow.GlowLogTarget;
|
||||||
|
import io.shinhanlife.glow.GlowLogger;
|
||||||
|
import io.shinhanlife.glow.GlowServiceGroupId;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@GlowServiceGroupId(value = "GlowSample", description="GlowSampleUseCase")
|
||||||
|
public class GlowSampleUseCaseImpl implements GlowSampleUseCase {
|
||||||
|
@GlowLogTarget(GlowLogTarget.Target.FILE)
|
||||||
|
private final GlowLogger log;
|
||||||
|
private final GlowSampleService glowSampleService;
|
||||||
|
private final SampleConverter converter;
|
||||||
|
|
||||||
|
@GlowAppServiceId(value = "SAMPLE-DB-0001", description = "표준용어조회(DB)")
|
||||||
|
public StrnTermResponse getStrnTerms(StrnTermRequest req) {
|
||||||
|
StrnTermListOutDTO outDto = glowSampleService.getStrnTerms(converter.convertRequestToDto(req), req.getPageInfo());
|
||||||
|
|
||||||
|
return converter.convertDtoToResponse(outDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GlowAppServiceId(value = "SAMPLE-DB-0002", description = "어플리케이션시스템알림내역등록")
|
||||||
|
public AppliSystNtfyPatiResponse insertAppliSystNtfyPati(AppliSystNtfyPatiRequest req) {
|
||||||
|
int rtn = glowSampleService.insertAppliSystNtfyPati(converter.convertAppliRequestToDto(req));
|
||||||
|
|
||||||
|
return AppliSystNtfyPatiResponse.builder()
|
||||||
|
.successYn(rtn > 0 ? "Y" : "N")
|
||||||
|
.msg(rtn > 0 ? "성공적으로 처리 되었습니다." : "처리중 오류발생!!")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
||||||
29
src/main/java/io/shinhanlife/glow/BaseException.java
Normal file
29
src/main/java/io/shinhanlife/glow/BaseException.java
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
//@Schema(description = "응답 에러 객체. 성공 케이스일 경우 null. 실제 에러가 발생할 경우에만 예외명, 예외 메시지 필드 세팅 예정.")
|
||||||
|
public class BaseException {
|
||||||
|
|
||||||
|
// @Schema(description = "Error 코드 Meta 참조 운영. (예) 20001, 50001 등", shinhanlife = "20001")
|
||||||
|
String code;
|
||||||
|
|
||||||
|
// @Schema(description = "메시지")
|
||||||
|
String message;
|
||||||
|
|
||||||
|
// @Schema(description = "예외명.", shinhanlife = "NullPointerException")
|
||||||
|
@Builder.Default
|
||||||
|
String exceptionName = "";
|
||||||
|
|
||||||
|
// @Schema(description = "예외상세", shinhanlife = "StackTrace")
|
||||||
|
@Builder.Default
|
||||||
|
String exceptionDetail = "";
|
||||||
|
|
||||||
|
}
|
||||||
25
src/main/java/io/shinhanlife/glow/BaseResponse.java
Normal file
25
src/main/java/io/shinhanlife/glow/BaseResponse.java
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
@ToString
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class BaseResponse<T> {
|
||||||
|
|
||||||
|
// @Schema(description = "응답 코드 HTTP STATUS 오류 - 실제 Header 는 200 으로 내려감", shinhanlife = "200")
|
||||||
|
private int code;
|
||||||
|
|
||||||
|
// @Schema(description = "응답 메시지. 응답 코드와 매핑된 메시지.", shinhanlife = "데이터 생성 성공")
|
||||||
|
private String message;
|
||||||
|
|
||||||
|
// @Schema(description = "응답 본문 데이터. 실제 비즈니스 데이터.")
|
||||||
|
private T data;
|
||||||
|
|
||||||
|
private BaseException error;
|
||||||
|
|
||||||
|
}
|
||||||
6
src/main/java/io/shinhanlife/glow/BizException.java
Normal file
6
src/main/java/io/shinhanlife/glow/BizException.java
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
public class BizException extends RuntimeException {
|
||||||
|
public BizException(String s) {
|
||||||
|
}
|
||||||
|
}
|
||||||
13
src/main/java/io/shinhanlife/glow/GlowAppServiceId.java
Normal file
13
src/main/java/io/shinhanlife/glow/GlowAppServiceId.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Target(ElementType.METHOD)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface GlowAppServiceId {
|
||||||
|
|
||||||
|
String value();
|
||||||
|
|
||||||
|
String description() default "";
|
||||||
|
}
|
||||||
5
src/main/java/io/shinhanlife/glow/GlowControllerId.java
Normal file
5
src/main/java/io/shinhanlife/glow/GlowControllerId.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
public @interface GlowControllerId {
|
||||||
|
String value();
|
||||||
|
}
|
||||||
9
src/main/java/io/shinhanlife/glow/GlowIndexPaging.java
Normal file
9
src/main/java/io/shinhanlife/glow/GlowIndexPaging.java
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Target(ElementType.METHOD)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface GlowIndexPaging {
|
||||||
|
}
|
||||||
15
src/main/java/io/shinhanlife/glow/GlowLogTarget.java
Normal file
15
src/main/java/io/shinhanlife/glow/GlowLogTarget.java
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Target(ElementType.FIELD)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface GlowLogTarget {
|
||||||
|
|
||||||
|
Target[] value() default {};
|
||||||
|
|
||||||
|
enum Target {
|
||||||
|
FILE, CONSOLE
|
||||||
|
}
|
||||||
|
}
|
||||||
19
src/main/java/io/shinhanlife/glow/GlowLogger.java
Normal file
19
src/main/java/io/shinhanlife/glow/GlowLogger.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Scope("prototype")
|
||||||
|
public class GlowLogger {
|
||||||
|
|
||||||
|
private Logger log = LoggerFactory.getLogger(GlowLogger.class);
|
||||||
|
|
||||||
|
public void debug(String message, Object... args) { log.debug(message, args); }
|
||||||
|
public void info(String message, Object... args) { log.info(message, args); }
|
||||||
|
public void warn(String message, Object... args) { log.warn(message, args); }
|
||||||
|
public void error(String message, Object... args) { log.error(message, args); }
|
||||||
|
public void error(String message, Throwable t) { log.error(message, t); }
|
||||||
|
}
|
||||||
18
src/main/java/io/shinhanlife/glow/GlowMybatisMapper.java
Normal file
18
src/main/java/io/shinhanlife/glow/GlowMybatisMapper.java
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MyBatis Mapper 인터페이스를 나타내는 어노테이션
|
||||||
|
* MyBatis Mapper와 동일한 기능을 제공합니다.
|
||||||
|
*/
|
||||||
|
@Target(ElementType.TYPE)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
@Mapper
|
||||||
|
@Component
|
||||||
|
public @interface GlowMybatisMapper {
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
public @interface GlowServiceGroupId {
|
||||||
|
String value();
|
||||||
|
|
||||||
|
String description();
|
||||||
|
}
|
||||||
25
src/main/java/io/shinhanlife/glow/GlowTrgmField.java
Normal file
25
src/main/java/io/shinhanlife/glow/GlowTrgmField.java
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
@Target(ElementType.FIELD)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface GlowTrgmField {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 필드 순서
|
||||||
|
*/
|
||||||
|
int order();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 필드 길이
|
||||||
|
*/
|
||||||
|
int length();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 필드 설명
|
||||||
|
*/
|
||||||
|
String description() default "";
|
||||||
|
|
||||||
|
}
|
||||||
68
src/main/java/io/shinhanlife/glow/PageInfo.java
Normal file
68
src/main/java/io/shinhanlife/glow/PageInfo.java
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import org.apache.ibatis.session.RowBounds;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class PageInfo extends RowBounds implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 페이지번호 ( 입력값 )
|
||||||
|
*/
|
||||||
|
@GlowTrgmField(order = 1, length = 5, description = "페이지번호")
|
||||||
|
private int pageNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 페이지 데이터 건수 ( 열 건수, 입력값 )
|
||||||
|
*/
|
||||||
|
@GlowTrgmField(order = 2, length = 5, description = "페이지데이터건수")
|
||||||
|
private int pageDataCc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 총페이지 수 ( 리턴값 )
|
||||||
|
*/
|
||||||
|
@GlowTrgmField(order = 3, length = 10, description = "총페이지수")
|
||||||
|
private int totaPageCn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 총 페이지 데이터 건수 ( 리턴값 )
|
||||||
|
*/
|
||||||
|
@GlowTrgmField(order = 4, length = 10, description = "총페이지데이터건수")
|
||||||
|
private int totaPageDataCc;
|
||||||
|
|
||||||
|
public PageInfo(int pageNo, int pageDataCc) {
|
||||||
|
super(((pageNo <= 0 ? 1 : pageNo) - 1) * pageDataCc, pageDataCc);
|
||||||
|
this.pageNo = pageNo;
|
||||||
|
this.pageDataCc = pageDataCc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PageInfo() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@Override
|
||||||
|
public int getOffset() {
|
||||||
|
return super.getOffset();
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
@Override
|
||||||
|
public int getLimit() {
|
||||||
|
return super.getLimit();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
31
src/main/java/io/shinhanlife/glow/ResponseCode.java
Normal file
31
src/main/java/io/shinhanlife/glow/ResponseCode.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public enum ResponseCode {
|
||||||
|
|
||||||
|
/* ===================== 성공 ===================== */
|
||||||
|
SUCCESS(HttpStatus.OK, "정상 처리되었습니다."),
|
||||||
|
CREATED(HttpStatus.CREATED, "데이터 생성 성공"),
|
||||||
|
|
||||||
|
/* ===================== 클라이언트 오류 (4xx) ===================== */
|
||||||
|
BAD_REQUEST(HttpStatus.BAD_REQUEST, "잘못된 요청입니다."),
|
||||||
|
INVALID_PARAMETER(HttpStatus.BAD_REQUEST, "유효하지 않은 파라미터입니다."),
|
||||||
|
UNAUTHORIZED(HttpStatus.UNAUTHORIZED, "인증이 필요합니다."),
|
||||||
|
FORBIDDEN(HttpStatus.FORBIDDEN, "접근 권한이 없습니다."),
|
||||||
|
NOT_FOUND(HttpStatus.NOT_FOUND, "요청한 리소스를 찾을 수 없습니다."),
|
||||||
|
METHOD_NOT_ALLOWED(HttpStatus.METHOD_NOT_ALLOWED, "허용되지 않은 HTTP 메서드입니다."),
|
||||||
|
CONFLICT(HttpStatus.CONFLICT, "이미 존재하는 데이터입니다."),
|
||||||
|
|
||||||
|
/* ===================== 서버 오류 (5xx) ===================== */
|
||||||
|
INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "서버 내부 오류가 발생했습니다."),
|
||||||
|
SERVICE_UNAVAILABLE(HttpStatus.SERVICE_UNAVAILABLE, "서비스를 사용할 수 없습니다.");
|
||||||
|
|
||||||
|
private final HttpStatus status;
|
||||||
|
private final String message;
|
||||||
|
|
||||||
|
}
|
||||||
111
src/main/java/io/shinhanlife/glow/ResponseUtil.java
Normal file
111
src/main/java/io/shinhanlife/glow/ResponseUtil.java
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|
||||||
|
public final class ResponseUtil {
|
||||||
|
|
||||||
|
private ResponseUtil() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ResponseEntity<BaseResponse<T>> ok() {
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
BaseResponse.<T>builder()
|
||||||
|
.code(ResponseCode.SUCCESS.getStatus().value())
|
||||||
|
.message(ResponseCode.SUCCESS.getMessage())
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ResponseEntity<BaseResponse<T>> ok(T data) {
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
BaseResponse.<T>builder()
|
||||||
|
.code(ResponseCode.SUCCESS.getStatus().value())
|
||||||
|
.message(ResponseCode.SUCCESS.getMessage())
|
||||||
|
.data(data)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ResponseEntity<BaseResponse<T>> ok(T data, ResponseCode responseCode) {
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
BaseResponse.<T>builder()
|
||||||
|
.code(responseCode.getStatus().value())
|
||||||
|
.message(responseCode.getMessage())
|
||||||
|
.data(data)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ResponseEntity<BaseResponse<T>> error(
|
||||||
|
HttpStatus status, String code, String message
|
||||||
|
) {
|
||||||
|
return ResponseEntity.status(status)
|
||||||
|
.body(
|
||||||
|
BaseResponse.<T>builder()
|
||||||
|
.code(status.value())
|
||||||
|
.error(
|
||||||
|
BaseException.builder()
|
||||||
|
.code(code)
|
||||||
|
.message(message)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ResponseEntity<BaseResponse<T>> error(
|
||||||
|
HttpStatus status, String code, String message, String exceptionName, String stackTrace
|
||||||
|
) {
|
||||||
|
return ResponseEntity.status(status)
|
||||||
|
.body(
|
||||||
|
BaseResponse.<T>builder()
|
||||||
|
.code(status.value())
|
||||||
|
.error(
|
||||||
|
BaseException.builder()
|
||||||
|
.code(code)
|
||||||
|
.message(message)
|
||||||
|
.exceptionName(exceptionName)
|
||||||
|
.exceptionDetail(stackTrace)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ResponseEntity<BaseResponse<T>> okError(
|
||||||
|
HttpStatus status, String code, String message
|
||||||
|
) {
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
BaseResponse.<T>builder()
|
||||||
|
.code(status.value())
|
||||||
|
.error(
|
||||||
|
BaseException.builder()
|
||||||
|
.code(code)
|
||||||
|
.message(message)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ResponseEntity<BaseResponse<T>> okError(
|
||||||
|
HttpStatus status, String code, String message, String exceptionName, String stackTrace
|
||||||
|
) {
|
||||||
|
return ResponseEntity.ok(
|
||||||
|
BaseResponse.<T>builder()
|
||||||
|
.code(status.value())
|
||||||
|
.error(
|
||||||
|
BaseException.builder()
|
||||||
|
.code(code)
|
||||||
|
.message(message)
|
||||||
|
.exceptionName(exceptionName)
|
||||||
|
.exceptionDetail(stackTrace)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/io/shinhanlife/glow/db/dto/AuditInfo.java
Normal file
16
src/main/java/io/shinhanlife/glow/db/dto/AuditInfo.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package io.shinhanlife.glow.db.dto;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class AuditInfo {
|
||||||
|
private Date systRgiDt; // 시스템등록일시
|
||||||
|
private String systRgiPrafNo; // 시스템등록인사번호
|
||||||
|
private String systRgiOgnzNo; // 시스템등록조직번호
|
||||||
|
private String systRgiSystCd; // 시스템등록시스템코드
|
||||||
|
private String systRgiPrgrId; // 시스템등록프로그램ID
|
||||||
|
private Date systChgDt; // 시스템변경일시
|
||||||
|
private String systChgPrafNo; // 시스템변경인사번호
|
||||||
|
private String systChgOgnzNo; // 시스템변경조직번호
|
||||||
|
private String systChgSystCd; // 시스템변경시스템코드
|
||||||
|
private String systChgPrgrId; // 시스템변경프로그램ID
|
||||||
|
}
|
||||||
160
src/main/resources/SOATM0100_DDL.sql
Normal file
160
src/main/resources/SOATM0100_DDL.sql
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
-- ============================================================
|
||||||
|
-- AX HUB 역할-Tool/지식 권한 관리 DDL
|
||||||
|
-- 대상 스키마 : 프로젝트 AP 스키마 (S_EIAM_TIS 는 읽기전용 참조)
|
||||||
|
-- 작성일 : 2026-06-25
|
||||||
|
-- ============================================================
|
||||||
|
|
||||||
|
-- ① Tool 마스터
|
||||||
|
CREATE TABLE AX_TOOL_MST (
|
||||||
|
TOOL_ID VARCHAR(20) NOT NULL, -- Tool ID (PK)
|
||||||
|
TOOL_NM VARCHAR(100) NOT NULL, -- Tool명
|
||||||
|
TOOL_DS VARCHAR(500), -- Tool설명
|
||||||
|
TOOL_TYPE_CD VARCHAR(20), -- Tool유형코드 (MCP / FUNC / EXT)
|
||||||
|
PUSE_YN VARCHAR(1) DEFAULT 'Y',-- 사용여부
|
||||||
|
SYST_RGI_DT DATE,
|
||||||
|
SYST_RGI_PRAF_NO VARCHAR(8),
|
||||||
|
SYST_RGI_OGNZ_NO VARCHAR(7),
|
||||||
|
SYST_RGI_SYST_CD VARCHAR(3),
|
||||||
|
SYST_RGI_PRGR_ID VARCHAR(100),
|
||||||
|
SYST_CHG_DT DATE,
|
||||||
|
SYST_CHG_PRAF_NO VARCHAR(8),
|
||||||
|
SYST_CHG_OGNZ_NO VARCHAR(7),
|
||||||
|
SYST_CHG_SYST_CD VARCHAR(3),
|
||||||
|
SYST_CHG_PRGR_ID VARCHAR(100),
|
||||||
|
CONSTRAINT PK_AX_TOOL_MST PRIMARY KEY (TOOL_ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE AX_TOOL_MST IS 'AX HUB Tool 마스터';
|
||||||
|
COMMENT ON COLUMN AX_TOOL_MST.TOOL_ID IS 'Tool ID (PK)';
|
||||||
|
COMMENT ON COLUMN AX_TOOL_MST.TOOL_NM IS 'Tool명';
|
||||||
|
COMMENT ON COLUMN AX_TOOL_MST.TOOL_DS IS 'Tool설명';
|
||||||
|
COMMENT ON COLUMN AX_TOOL_MST.TOOL_TYPE_CD IS 'Tool유형코드 (MCP/FUNC/EXT)';
|
||||||
|
COMMENT ON COLUMN AX_TOOL_MST.PUSE_YN IS '사용여부 (Y/N)';
|
||||||
|
|
||||||
|
|
||||||
|
-- ② 지식(Knowledge) 마스터
|
||||||
|
CREATE TABLE AX_KNWL_MST (
|
||||||
|
KNWL_ID VARCHAR(20) NOT NULL, -- 지식 ID (PK)
|
||||||
|
KNWL_NM VARCHAR(100) NOT NULL, -- 지식명
|
||||||
|
KNWL_DS VARCHAR(500), -- 지식설명
|
||||||
|
KNWL_TYPE_CD VARCHAR(20), -- 지식유형코드 (PRODUCT/MANUAL/LEGAL 등)
|
||||||
|
PUSE_YN VARCHAR(1) DEFAULT 'Y',
|
||||||
|
SYST_RGI_DT DATE,
|
||||||
|
SYST_RGI_PRAF_NO VARCHAR(8),
|
||||||
|
SYST_RGI_OGNZ_NO VARCHAR(7),
|
||||||
|
SYST_RGI_SYST_CD VARCHAR(3),
|
||||||
|
SYST_RGI_PRGR_ID VARCHAR(100),
|
||||||
|
SYST_CHG_DT DATE,
|
||||||
|
SYST_CHG_PRAF_NO VARCHAR(8),
|
||||||
|
SYST_CHG_OGNZ_NO VARCHAR(7),
|
||||||
|
SYST_CHG_SYST_CD VARCHAR(3),
|
||||||
|
SYST_CHG_PRGR_ID VARCHAR(100),
|
||||||
|
CONSTRAINT PK_AX_KNWL_MST PRIMARY KEY (KNWL_ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
COMMENT ON TABLE AX_KNWL_MST IS 'AX HUB 지식 마스터';
|
||||||
|
COMMENT ON COLUMN AX_KNWL_MST.KNWL_ID IS '지식 ID (PK)';
|
||||||
|
COMMENT ON COLUMN AX_KNWL_MST.KNWL_NM IS '지식명';
|
||||||
|
COMMENT ON COLUMN AX_KNWL_MST.KNWL_DS IS '지식설명';
|
||||||
|
COMMENT ON COLUMN AX_KNWL_MST.KNWL_TYPE_CD IS '지식유형코드 (PRODUCT/MANUAL/LEGAL/REPORT)';
|
||||||
|
COMMENT ON COLUMN AX_KNWL_MST.PUSE_YN IS '사용여부 (Y/N)';
|
||||||
|
|
||||||
|
|
||||||
|
-- ③ 역할-Tool 권한 매핑
|
||||||
|
-- SYST_ID + ROLE_NO → S_EIAM_TIS.AA_ROLE 참조 (FK 미설정: 스키마 분리 환경)
|
||||||
|
CREATE TABLE AX_ROLE_TOOL_ATHR (
|
||||||
|
ROLE_TOOL_ATHR_ID VARCHAR(20) NOT NULL, -- 역할Tool권한ID (PK)
|
||||||
|
SYST_ID VARCHAR(10) NOT NULL, -- 시스템ID (EIAM 연동 키)
|
||||||
|
ROLE_NO VARCHAR(50) NOT NULL, -- 역할번호 (EIAM AA_ROLE.ROLE_NO)
|
||||||
|
TOOL_ID VARCHAR(20) NOT NULL, -- Tool ID
|
||||||
|
PUSE_YN VARCHAR(1) DEFAULT 'Y',
|
||||||
|
SYST_RGI_DT DATE,
|
||||||
|
SYST_RGI_PRAF_NO VARCHAR(8),
|
||||||
|
SYST_RGI_OGNZ_NO VARCHAR(7),
|
||||||
|
SYST_RGI_SYST_CD VARCHAR(3),
|
||||||
|
SYST_RGI_PRGR_ID VARCHAR(100),
|
||||||
|
SYST_CHG_DT DATE,
|
||||||
|
SYST_CHG_PRAF_NO VARCHAR(8),
|
||||||
|
SYST_CHG_OGNZ_NO VARCHAR(7),
|
||||||
|
SYST_CHG_SYST_CD VARCHAR(3),
|
||||||
|
SYST_CHG_PRGR_ID VARCHAR(100),
|
||||||
|
CONSTRAINT PK_AX_ROLE_TOOL_ATHR PRIMARY KEY (ROLE_TOOL_ATHR_ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- (SYST_ID, ROLE_NO, TOOL_ID) 중복 방지
|
||||||
|
CREATE UNIQUE INDEX UK_AX_ROLE_TOOL_ATHR
|
||||||
|
ON AX_ROLE_TOOL_ATHR (SYST_ID, ROLE_NO, TOOL_ID);
|
||||||
|
|
||||||
|
COMMENT ON TABLE AX_ROLE_TOOL_ATHR IS '역할-Tool 권한 매핑';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_TOOL_ATHR.ROLE_TOOL_ATHR_ID IS '역할Tool권한ID (PK)';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_TOOL_ATHR.SYST_ID IS '시스템ID';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_TOOL_ATHR.ROLE_NO IS '역할번호 (EIAM)';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_TOOL_ATHR.TOOL_ID IS 'Tool ID';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_TOOL_ATHR.PUSE_YN IS '사용여부';
|
||||||
|
|
||||||
|
|
||||||
|
-- ④ 역할-지식 권한 매핑
|
||||||
|
CREATE TABLE AX_ROLE_KNWL_ATHR (
|
||||||
|
ROLE_KNWL_ATHR_ID VARCHAR(20) NOT NULL, -- 역할지식권한ID (PK)
|
||||||
|
SYST_ID VARCHAR(10) NOT NULL,
|
||||||
|
ROLE_NO VARCHAR(50) NOT NULL,
|
||||||
|
KNWL_ID VARCHAR(20) NOT NULL,
|
||||||
|
PUSE_YN VARCHAR(1) DEFAULT 'Y',
|
||||||
|
SYST_RGI_DT DATE,
|
||||||
|
SYST_RGI_PRAF_NO VARCHAR(8),
|
||||||
|
SYST_RGI_OGNZ_NO VARCHAR(7),
|
||||||
|
SYST_RGI_SYST_CD VARCHAR(3),
|
||||||
|
SYST_RGI_PRGR_ID VARCHAR(100),
|
||||||
|
SYST_CHG_DT DATE,
|
||||||
|
SYST_CHG_PRAF_NO VARCHAR(8),
|
||||||
|
SYST_CHG_OGNZ_NO VARCHAR(7),
|
||||||
|
SYST_CHG_SYST_CD VARCHAR(3),
|
||||||
|
SYST_CHG_PRGR_ID VARCHAR(100),
|
||||||
|
CONSTRAINT PK_AX_ROLE_KNWL_ATHR PRIMARY KEY (ROLE_KNWL_ATHR_ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX UK_AX_ROLE_KNWL_ATHR
|
||||||
|
ON AX_ROLE_KNWL_ATHR (SYST_ID, ROLE_NO, KNWL_ID);
|
||||||
|
|
||||||
|
COMMENT ON TABLE AX_ROLE_KNWL_ATHR IS '역할-지식 권한 매핑';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_KNWL_ATHR.ROLE_KNWL_ATHR_ID IS '역할지식권한ID (PK)';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_KNWL_ATHR.SYST_ID IS '시스템ID';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_KNWL_ATHR.ROLE_NO IS '역할번호 (EIAM)';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_KNWL_ATHR.KNWL_ID IS '지식ID';
|
||||||
|
COMMENT ON COLUMN AX_ROLE_KNWL_ATHR.PUSE_YN IS '사용여부';
|
||||||
|
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- 샘플 데이터 (개발용)
|
||||||
|
-- ============================================================
|
||||||
|
INSERT INTO AX_TOOL_MST
|
||||||
|
(TOOL_ID, TOOL_NM, TOOL_DS, TOOL_TYPE_CD, PUSE_YN,
|
||||||
|
SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID,
|
||||||
|
SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID)
|
||||||
|
VALUES
|
||||||
|
('TOOL_A', '지식 검색', '지식베이스 내 문서 의미 기반 검색', 'MCP', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100'),
|
||||||
|
('TOOL_B', 'DB 조회', '사내 데이터베이스 직접 조회 (GLOW)', 'MCP', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100'),
|
||||||
|
('TOOL_C', '문서 생성', 'AI 기반 문서 초안 자동 생성', 'FUNC', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100');
|
||||||
|
|
||||||
|
INSERT INTO AX_KNWL_MST
|
||||||
|
(KNWL_ID, KNWL_NM, KNWL_DS, KNWL_TYPE_CD, PUSE_YN,
|
||||||
|
SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID,
|
||||||
|
SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID)
|
||||||
|
VALUES
|
||||||
|
('KNWL_Q', '상품기초서류', '보험 상품 기초서류 약 8만건', 'PRODUCT', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100'),
|
||||||
|
('KNWL_W', '업무매뉴얼', '내부 업무 매뉴얼 및 프로세스 가이드', 'MANUAL', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100'),
|
||||||
|
('KNWL_E', '법률/규정', '보험업법 및 금융당국 규정', 'LEGAL', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100');
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
18
src/main/resources/application.properties
Normal file
18
src/main/resources/application.properties
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
spring.application.name=axhub-admin
|
||||||
|
|
||||||
|
# application.properties (?? ??, Redis ? ??)
|
||||||
|
server.port=8080
|
||||||
|
|
||||||
|
spring.datasource.url=jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1;
|
||||||
|
spring.datasource.driverClassName=com.p6spy.engine.spy.P6SpyDriver
|
||||||
|
spring.datasource.username=sa
|
||||||
|
spring.datasource.password=password
|
||||||
|
spring.h2.console.enabled=true
|
||||||
|
|
||||||
|
mybatis.mapper-locations=classpath:mapper/**/*.xml
|
||||||
|
mybatis.type-aliases-package=
|
||||||
|
spring.sql.init.mode=always
|
||||||
|
|
||||||
|
mybatis.configuration.map-underscore-to-camel-case=true
|
||||||
|
|
||||||
|
logging.level.com.corundumstudio.socketio=DEBUG
|
||||||
258
src/main/resources/data.sql
Normal file
258
src/main/resources/data.sql
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
SET SCHEMA S_TIS;
|
||||||
|
|
||||||
|
-- INSERT 문 재정렬: 부모부터 삽입 (루트 -> 자식 순)
|
||||||
|
-- 루트 메뉴 먼저 (11: 샘플 화면, 10: AX HUB)
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (11, NULL, 'Sample', '/sample', '샘플 화면', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (10, NULL, 'AxHub', '/axhub', 'AX HUB', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
-- 샘플 화면(11번) 자식 메뉴
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (1, 11, 'Dashboard', '/dashboard', '대시보드', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (5, 11, 'Widgets', '/widgets', '컴포넌트 모음', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (126, 11, 'Template', '/template', '템플릿 센터', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (4, 11, 'Article', '/article', '기사 관리', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 3, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (2, 11, 'User', '/user', '사용자 관리', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 4, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (3, 11, 'Menu', '/menu', '메뉴 관리', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 5, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (18, 11, 'Result', '/result', '결과 페이지', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 6, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (8, 11, 'Exception', '/exception', '예외 페이지', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 7, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (9, 11, 'System', '/system', '시스템 설정', '', 'N', NULL, 'N', 'N', NULL, 'N', 'N', 8, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 1번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (101, 1, NULL, '/dashboard/console', '콘솔', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (102, 1, NULL, '/dashboard/analysis', '분석 페이지', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (103, 1, NULL, '/dashboard/kanban', '칸반보드', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 5번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (503, 5, NULL, '/widgets/icon-list', '아이콘 목록', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (504, 5, NULL, '/widgets/icon-selector', '아이콘 선택기', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (506, 5, NULL, '/widgets/excel', 'Excel 가져오기 내보내기', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (508, 5, NULL, '/widgets/count-to', '숫자 롤링', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'N', 3, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (509, 5, NULL, '/widgets/toastUI', 'ToastUI 에디터', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 4, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (511, 5, NULL, '/widgets/context-menu', '오른쪽 클릭 메뉴', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 5, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (513, 5, NULL, '/widgets/drag', '드래그', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 6, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 126번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (12601, 126, NULL, '/template/chat', '채팅', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (12602, 126, NULL, '/template/cards', '카드', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'N', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (12603, 126, NULL, '/template/banners', '배너', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'N', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (12604, 126, NULL, '/template/charts', '차트', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'N', 3, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (12605, 126, NULL, '/template/calendar', '캘린더', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 4, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 4번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (202, 4, NULL, '/article/article-list', '기사 목록', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (204, 4, NULL, '/article/detail', '기사 상세', NULL, 'N', NULL, 'Y', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (205, 4, NULL, '/article/comment', '댓글 관리', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (201, 4, NULL, '/article/article-publish', '기사 게시', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 3, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 2번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (301, 2, NULL, '/user/account', '계정 관리', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (302, 2, NULL, '/user/department', '부서 관리', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (303, 2, NULL, '/user/role', '역할 권한', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (304, 2, NULL, '/user/user', '마이페이지', NULL, 'N', NULL, 'Y', 'Y', NULL, 'N', 'Y', 3, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 3번 자식 (중첩 메뉴 부모 ID 402로 수정)
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (401, 3, NULL, '/menu/menu', '메뉴 권한', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (411, 3, NULL, '/menu/permission', '권한 제어', '', 'N', 'new', 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (402, 3, NULL, '/menu/nested', '중첩 메뉴', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 402번 자식 (중첩 메뉴)
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (40201, 402, NULL, '/menu/nested/menu1', '메뉴1', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (40202, 402, NULL, '/menu/nested/menu2', '메뉴2', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (40203, 402, NULL, '/menu/nested/menu3', '메뉴3', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 40202 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (4020201, 40202, NULL, '/menu/nested/menu2/menu2-1', '메뉴2-1', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 40203 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (4020301, 40203, NULL, '/menu/nested/menu3/menu3-1', '메뉴3-1', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (4020302, 40203, NULL, '/menu/nested/menu3/menu3-2', '메뉴3-2', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 4020302 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (402030201, 4020302, NULL, '/menu/nested/menu3/menu3-2/menu3-2-1', '메뉴3-2-1', '', 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 18번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (405, 18, NULL, '/result/success', '성공 페이지', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (404, 18, NULL, '/result/fail', '실패 페이지', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 8번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (801, 8, NULL, '/exception/403', '403', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (802, 8, NULL, '/exception/404', '404', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (803, 8, NULL, '/exception/500', '500', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 9번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (901, 9, NULL, '/system/setting', '시스템 설정', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (902, 9, NULL, '/system/api', 'API 관리', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (903, 9, NULL, '/system/log', '시스템 로그', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 2, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
-- 10번 자식
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (1001, 10, NULL, '/axhub/auth', '권한설정', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 0, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
INSERT INTO ZT_MENU (MENU_ID, PARENT_MENU_ID, NAME, PATH, TITLE, ICON, SHOW_BADGE, SHOW_TEXT_BADGE, IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE, ORDER_SEQ, IS_ACTIVE, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES (1002, 10, 'MenuMgmt', '/axhub/menu-mgmt', '메뉴 관리', NULL, 'N', NULL, 'N', 'N', NULL, 'N', 'Y', 1, 'Y', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
|
||||||
|
-- ============================================================
|
||||||
|
-- 샘플 데이터 (개발용)
|
||||||
|
-- ============================================================
|
||||||
|
INSERT INTO AX_TOOL_MST
|
||||||
|
(TOOL_ID, TOOL_NM, TOOL_DS, TOOL_TYPE_CD, PUSE_YN,
|
||||||
|
SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID,
|
||||||
|
SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID)
|
||||||
|
VALUES
|
||||||
|
('TOOL_A', '지식 검색', '지식베이스 내 문서 의미 기반 검색', 'MCP', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100'),
|
||||||
|
('TOOL_B', 'DB 조회', '사내 데이터베이스 직접 조회 (GLOW)', 'MCP', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100'),
|
||||||
|
('TOOL_C', '문서 생성', 'AI 기반 문서 초안 자동 생성', 'FUNC', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100');
|
||||||
|
|
||||||
|
INSERT INTO AX_KNWL_MST
|
||||||
|
(KNWL_ID, KNWL_NM, KNWL_DS, KNWL_TYPE_CD, PUSE_YN,
|
||||||
|
SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID,
|
||||||
|
SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID)
|
||||||
|
VALUES
|
||||||
|
('KNWL_Q', '상품기초서류', '보험 상품 기초서류 약 8만건', 'PRODUCT', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100'),
|
||||||
|
('KNWL_W', '업무매뉴얼', '내부 업무 매뉴얼 및 프로세스 가이드', 'MANUAL', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100'),
|
||||||
|
('KNWL_E', '법률/규정', '보험업법 및 금융당국 규정', 'LEGAL', 'Y',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100',
|
||||||
|
CURRENT_DATE, 'SYSTEM', 'SYSTEM', 'AXH', 'SOATM0100');
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- 역할 데이터
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','110','AI아키텍트','AI 시스템 아키텍처 설계 및 에이전트 구조 검토 담당자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','106','데이터분석사용자','AI 분석 대시보드 및 에이전트 통계 조회 가능 사용자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','29','일반사용자','AI Hub 기본 이용 권한이 부여된 전사 일반 직원','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','126','AI개발책임자','AI 서비스 개발을 총괄하는 책임자로 에이전트 빌드 파이프라인 최종 승인 권한 보유','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','133','AI운영책임자','AI 서비스 운영 및 에이전트 인프라를 총괄하는 책임자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','122','AI위험관리자','AI 모델 리스크 평가 및 컴플라이언스 모니터링 담당자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','125','AI감사인','AI 에이전트 활동 이력 및 데이터 사용 내역 감사 담당자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','69','AI배포검토관','AI 모델 및 에이전트 서비스 배포 전 변경 검토 회의 주관자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','4','AI개발자','AI 에이전트 및 서비스 개발에 참여하는 내부 및 협력사 직원','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','18','시스템관리자','AI Hub 전체 시스템 설정 및 에이전트 플랫폼 관리 담당자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','123','AI서비스요청자','AI 기능 개발 및 에이전트 도입을 요청하는 전사 직원','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','132','AI검증자','AI 모델 및 에이전트 기능 검증에 참여하는 전사 직원','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','127','현업AI위험관리자','현업 부서 내 AI 서비스 도입 리스크 관리를 수행하는 직원','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','128','현업AI책임자','현업 부서 내 AI 서비스 개발 및 도입을 책임지는 직원','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','142','AI개발부서장','AI 개발 조직의 부서장으로 에이전트 개발 방향성 결정 권한 보유','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','143','AI운영부서장','AI 운영 조직의 부서장으로 에이전트 서비스 안정성 총괄','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','225','지식감사인','AI 지식베이스 무결성 및 에이전트 활동 이력 독립 감사 담당자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-05-06 15:45:08','61003745','0997100','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_ROLE (SYST_ID,ROLE_NO,ROLE_NM,ROLE_DS,ASST_OWNR_ROLE_TYPE_CD,MASK_ECPT_MD_CD,INDV_INFO_ATHR_YN,MAIN_CST_IFIN_YN,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','144','AI품질관리자','AI 모델 성능 및 응답 품질 제3자 검증 담당자','ZZZ','N','N','N','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-05-03 13:30:07','61003745','0997100','SAA','EIAM' ) ;
|
||||||
|
|
||||||
|
-- 사용자 그룹
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011296', NULL ,'어플리케이션아키텍트','어플리케이션아키텍트','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011297', NULL ,'통계사용자','통계화면을 볼 수 있는 사용자','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011298', NULL ,'IT내부직원','ICT본부내 신한라이프 정직원 자동부여','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011299', NULL ,'IT개발책임자','(ICT본부만 해당)IT개발부서장 및 IT개발부서장 권한이양받은 파트장 (근거 있어야 함)','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011300', NULL ,'IT운영책임자','(ICT본부만 해당)IT운영부서장 및 IT운영부서장 권한이양받은 파트장 (근거 있어야 함)','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011301', NULL ,'RM','ICT본부내 IT RM그룹','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011302', NULL ,'IT감사인','ICT본부내 IT감사인','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011303', NULL ,'이행검토주관자','ICT본부내 변경관리회의 주관자','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011304', NULL ,'IT개발자','ICT본부내 신한라이프 정직원-도급직원 자동부여','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011305', NULL ,'관리자','IT개발관리시스템 설정 및 시스템 관리','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011306', NULL ,'IT개발의뢰자','신한라이프 전사 정직원 자동부여','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011307', NULL ,'UAT테스터','신한라이프 전사 정직원 자동부여','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011308', NULL ,'현업_RM','(ICT본부외 해당)IT개발업무를 수행하는 현업부서내 RM역할 수행직원','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011309', NULL ,'현업_개발책임자','(ICT본부외 해당)IT개발업무를 수행하는 현업부서내 IT개발부서장역할을 수행하는 직원','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011310', NULL ,'IT개발부서장','ICT본부내 개발 부서장 자동부여','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011311', NULL ,'IT운영부서장','ICT본부내 운영 부서장 자동부여','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011312', NULL ,'감사인','감사팀내 IT감사인','N',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-05-10 16:30:32','61003745','0997100','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU (SYST_ID,USER_GROU_ID,OGNZ_NO,USER_GROU_NM,USER_GROU_DS,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000000205','UG_0011313', NULL ,'품질관리자','제3자점검자','Y',TIMESTAMP '2022-04-19 12:19:18','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:17','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
|
||||||
|
-- 사용자 그룹-역할 관계
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000030452','0000000205','UG_0011312','225','N',TIMESTAMP '2022-05-06 09:35:00','61003745','0997100','SAA','EIAM',TIMESTAMP '2022-05-10 16:15:25','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000030428','0000000205','UG_0011296','110','Y',TIMESTAMP '2022-05-02 16:58:00','61003745','0997100','SAA','EIAM',TIMESTAMP '2022-05-02 17:00:23','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000030455','0000000205','UG_0011312','225','N',TIMESTAMP '2022-05-06 15:55:03','61003745','0997100','SAA','EIAM',TIMESTAMP '2022-05-10 16:15:25','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000030433','0000000205','UG_0011312','225','N',TIMESTAMP '2022-05-03 15:01:00','61003745','0997100','SAA','EIAM',TIMESTAMP '2022-05-10 16:15:25','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029430','0000000205','UG_0011298','29','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029431','0000000205','UG_0011299','126','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029432','0000000205','UG_0011300','133','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029433','0000000205','UG_0011301','122','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029434','0000000205','UG_0011302','125','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029435','0000000205','UG_0011303','69','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029436','0000000205','UG_0011304','4','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029437','0000000205','UG_0011305','18','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029438','0000000205','UG_0011306','123','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029439','0000000205','UG_0011307','132','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029440','0000000205','UG_0011308','127','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029441','0000000205','UG_0011309','128','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029442','0000000205','UG_0011310','142','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029443','0000000205','UG_0011311','143','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029444','0000000205','UG_0011312','225','N',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-05-10 16:15:25','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029445','0000000205','UG_0011313','144','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000030432','0000000205','UG_0011312','225','N',TIMESTAMP '2022-05-03 14:30:00','61003745','0997100','SAA','EIAM',TIMESTAMP '2022-05-10 16:15:25','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000030434','0000000205','UG_0011312','225','N',TIMESTAMP '2022-05-03 15:18:00','61003745','0997100','SAA','EIAM',TIMESTAMP '2022-05-10 16:15:25','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029428','0000000205','UG_0011296','110','N',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-05-02 16:15:25','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USER_GROU_role_rtns (USER_GROU_ROLE_RTNS_ID,SYST_ID,USER_GROU_ID,ROLE_NO,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000029429','0000000205','UG_0011297','106','Y',TIMESTAMP '2022-04-19 12:19:19','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:30:24','99999999','9999999','SAA','EIAM') ;
|
||||||
|
|
||||||
|
-- 사용자-그룹관계
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390266','0000000205','09861303','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389612','0000000205','61005896','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390990','0000000205','09861100','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390096','0000000205','09861195','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390103','0000000205','61005899','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390377','0000000205','09861194','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390201','0000000205','09861302','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390396','0000000205','61005872','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390209','0000000205','09861196','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390236','0000000205','61005905','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000391388','0000000205','09861195','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389987','0000000205','61005898','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389376','0000000205','61005886','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000391283','0000000205','09861303','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389378','0000000205','61005873','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389388','0000000205','09861194','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389410','0000000205','09861096','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000391162','0000000205','09861196','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390709','0000000205','61005895','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000391138','0000000205','09861197','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000391142','0000000205','09861102','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389116','0000000205','09861101','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389667','0000000205','09861100','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389185','0000000205','61005895','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000391098','0000000205','09861097','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388336','0000000205','09861097','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388550','0000000205','61005896','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388825','0000000205','61005872','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388839','0000000205','61005886','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388149','0000000205','61005873','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388081','0000000205','09861096','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388097','0000000205','09861102','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388116','0000000205','61005905','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000388229','0000000205','61005899','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389054','0000000205','09861197','UG_0011306',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389005','0000000205','09861302','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000390044','0000000205','09861101','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC_user_grou_rtns (USAC_USER_GROU_RTNS_ID,SYST_ID,PRAF_NO,USER_GROU_ID,VLDT_YMD,EXPR_YMD,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('0000389007','0000000205','61005898','UG_0011307',TIMESTAMP '2022-04-19 00:00:00',TIMESTAMP '9999-12-31 00:00:00','Y',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM',TIMESTAMP '2022-04-19 12:21:14','99999999','9999999','SAA','EIAM') ;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861101','김정우','0993129','ZnNnIt2Vpx0VuIFtTTC4X-fRMEUZVxibJyigyjw58Ms=','N08550701','영업지원시스템기획-운영','80SR','Sr','810135','챕터원','Y',TIMESTAMP '2021-04-21 05:04:04','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-07-01 12:34:37','99999999','9999999','SAA','EIAM') ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861102','한준영','0999200','hIX9bJ9IISfan3Gv8RU3huipr7otRghkLqlNgyw8ZVc=','N08580303','내부통제','80SR','Sr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:08','99999999','9999999','SAA','0000000002',TIMESTAMP '2023-04-01 12:31:16','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861197','최원진','0995400','QhUqiS4UN6Byc+Z9n7xs8AzRTe4FeArLtMyNHtGGi10=','N08540202','계약심사','80SR','Sr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:59','99999999','9999999','SAA','0000000002',TIMESTAMP '2023-04-01 12:30:18','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861096','이석진','0995146','WfydcrzCqws+QIilkz13iXWxHeXTgZ+knGEvxuzUFjE=','N08620101','고객서비스 업무지원','80SR','Sr','810114','CS지원','Y',TIMESTAMP '2021-04-21 05:04:59','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-05-01 12:34:43','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861097','김남중','0993203','wd12hSaDEPA5UbaPxrPaCZqHO-w23cd7WLhkzHz01+s=','N08550803','제휴마케팅기획관리','80SR','Sr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:10','99999999','9999999','SAA','0000000002',TIMESTAMP '2024-10-10 15:41:26','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861194','윤승로','0993134','XuVpEqWforwy4JgbLOOO7Qc3OTMM2uXFucCXgXAKPec=','N08550209','FC교육운영','80SR','Sr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:59','99999999','9999999','SAA','0000000002',TIMESTAMP '2024-11-01 12:41:52','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861303','박범진','0999200','MTa1Jvmkzhwk+-5cnsORvnXAwLCyWYs5tiPa9xgVrPQ=','N08550301','GA채널기획관리','80MST','Mst','810122','파트원','Y',TIMESTAMP '2021-04-21 05:04:01','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-01-01 12:31:03','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861302','문준호','0995400','XafkrGHaWLTxackt7T2NsjCAUXBF3uyjMNAXVyUSvC4=','N08560301','소비자보호기획','80SR','Sr','810122','파트원','Y',TIMESTAMP '2021-04-21 05:04:08','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-02-01 12:30:54','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861100','윤희준','0993203','X-4VwtIV1YCBR6+0UqZBVHqk9GpqHy3AMDJYKihWQhk=','N08560101','계약관리','80SR','Sr','810122','파트원','Y',TIMESTAMP '2021-04-21 05:04:04','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-02-01 12:30:55','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861195','박준영','0993203','tyg5izJmKkXYqIa6YfKp0Y42yIUjrhY+-6hgYZ8Vtmo=','N08510105','부서총괄','80MGR','Mgr','810015','팀장','Y',TIMESTAMP '2021-04-21 05:04:02','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-01-01 12:30:55','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('09861196','정재용','0993129','wPIIdQ3PwXlj5fxgtjWzkZs4yagmbAC9kDU5dNq6sKw=','N08520101','고객DB운영','80SR','Sr','810135','챕터원','Y',TIMESTAMP '2021-04-21 05:04:04','99999999','9999999','SAA','0000000002',TIMESTAMP '2024-10-10 15:41:11','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('61005872','동영예','0993129','bgHjYQyZochoxQXjI2stZf4dmHANf7r514SxeGnHJL0=','N08550203','FC채널지원','80SR','Sr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:04','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-08-01 12:39:02','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('61005873','동한름','0993129','Vip4QCNT4HYfB9Pa86g7XsEw+LBu02H5BlbDo-W7eQw=','N08580101','내부감사','80SR','Sr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:05','99999999','9999999','SAA','0000000002',TIMESTAMP '2024-10-10 15:41:14','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('61005886','빈길들','0993134','yPGgtuE14m+po6oyB9CfxEIilfrEzPxfi-xN0LXG4t8=','N08560302','고객민원관리','80SR','Sr','810122','파트원','Y',TIMESTAMP '2021-04-21 05:04:04','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-02-01 12:31:08','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('61005895','오해나','0993134','YNscG5QLZ1B8KIrBUIeGlK8otbz94A1RJdhh8mRNlGA=','N08900804','육아휴직','80SR','Sr','810095','기타','Y',TIMESTAMP '2021-04-21 05:04:03','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-09-01 12:34:52','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('61005896','동복수','0993134','BMRwD1vs0bmNdZBBs5VBMq1V0OUTH7AeQdKHwUQvQqw=','N08540302','보험금심사기획-지원','80MGR','Mgr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:05','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-06-01 12:31:09','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('61005898','동권문','0995400','jyBPF4WMlcE8On8jG9XiWYlV92t5f1MkGKRe2N+xZ+8=','N08540202','계약심사','80SR','Sr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:05','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-01-01 12:31:51','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('61005899','심복','0995400','pH9Da+rtRLXLu9oKplGsqvcrF5rL5N8ZVfInlRMa-Vs=','N08550302','GA채널지원','80SR','Sr','810030','팀원','Y',TIMESTAMP '2021-04-21 05:04:02','99999999','9999999','SAA','0000000002',TIMESTAMP '2025-01-01 12:31:11','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_USAC (PRAF_NO,PRAF_NM,OGNZ_NO,ADDRE,PRAF_OFDU_CD,PRAF_OFDU_NM,PRAF_OFLE_CD,PRAF_OFLE_NM,PRAF_DUTY_CD,PRAF_DUTY_NM,PUSE_YN,SYST_RGI_DT,SYST_RGI_PRAF_NO,SYST_RGI_OGNZ_NO,SYST_RGI_SYST_CD,SYST_RGI_PRGR_ID,SYST_CHG_DT,SYST_CHG_PRAF_NO,SYST_CHG_OGNZ_NO,SYST_CHG_SYST_CD,SYST_CHG_PRGR_ID) VALUES ('61005905','모중제','0995400','+GR4ai78TrPdOiSDkJ+SbjCiwWQfO9QbSdKD7Kydpis=','N08560507','고객서비스지원','80MGR','Mgr','810122','파트원','Y',TIMESTAMP '2021-04-21 05:04:09','99999999','9999999','SAA','0000000002',TIMESTAMP '2024-10-10 15:46:12','99999999','9999999','SAA','EIAM' ) ;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_OGNZ (OGNZ_NM, OGNZ_ABR_NM, OGNZ_NO, SPPO_GONZ_NO, VLDT_YMD, PUSE_YN, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES ('총무팀', '총무팀', '0993129', 'shinhanlife@shinhanlife.com', '20260101', 'Y', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001');
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_OGNZ (OGNZ_NM, OGNZ_ABR_NM, OGNZ_NO, SPPO_GONZ_NO, VLDT_YMD, PUSE_YN, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES ('재무팀', '재무팀', '0999200', 'shinhanlife@shinhanlife.com', '20260101', 'Y', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001');
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_OGNZ (OGNZ_NM, OGNZ_ABR_NM, OGNZ_NO, SPPO_GONZ_NO, VLDT_YMD, PUSE_YN, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES ('개발팀', '개발팀', '0995400', 'shinhanlife@shinhanlife.com', '20260101', 'Y', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001');
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_OGNZ (OGNZ_NM, OGNZ_ABR_NM, OGNZ_NO, SPPO_GONZ_NO, VLDT_YMD, PUSE_YN, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES ('구매팀', '구매팀', '0995146', 'shinhanlife@shinhanlife.com', '20260101', 'Y', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001');
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_OGNZ (OGNZ_NM, OGNZ_ABR_NM, OGNZ_NO, SPPO_GONZ_NO, VLDT_YMD, PUSE_YN, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES ('AI사업부', 'AI사업부', '0993203', 'shinhanlife@shinhanlife.com', '20260101', 'Y', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001');
|
||||||
|
INSERT INTO S_EIAM_TIS.AA_OGNZ (OGNZ_NM, OGNZ_ABR_NM, OGNZ_NO, SPPO_GONZ_NO, VLDT_YMD, PUSE_YN, SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID, SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID) VALUES ('보안팀', '보안팀', '0993134', 'shinhanlife@shinhanlife.com', '20260101', 'Y', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001', TIMESTAMP '2023-01-01 12:00:00', 'A1234567', '7654321', 'SYS', 'PROG001');
|
||||||
193
src/main/resources/mapper/AccessMgmtMapper.xml
Normal file
193
src/main/resources/mapper/AccessMgmtMapper.xml
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
|
||||||
|
<mapper namespace="io.shinhanlife.axhub.biz.so.atm.domain.repository.AccessMgmtMapper">
|
||||||
|
|
||||||
|
<resultMap id="roleResultMap" type="io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto">
|
||||||
|
<result column="SYST_ID" property="systId"/>
|
||||||
|
<result column="ROLE_NO" property="roleNo"/>
|
||||||
|
<result column="ROLE_NM" property="roleNm"/>
|
||||||
|
<result column="ROLE_DS" property="roleDs"/>
|
||||||
|
<result column="PUSE_YN" property="puseYn"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<resultMap id="athrItemResultMap" type="io.shinhanlife.axhub.biz.so.atm.dto.AthrItemOutDto">
|
||||||
|
<result column="RESOURCE_ID" property="resourceId"/>
|
||||||
|
<result column="RESOURCE_NM" property="resourceNm"/>
|
||||||
|
<result column="RESOURCE_DS" property="resourceDs"/>
|
||||||
|
<result column="TYPE_CODE" property="typeCode"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 역할 목록 조회 -->
|
||||||
|
<select id="selectRoles" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.RoleListInDto"
|
||||||
|
resultMap="roleResultMap">
|
||||||
|
SELECT
|
||||||
|
SYST_ID,
|
||||||
|
ROLE_NO,
|
||||||
|
ROLE_NM,
|
||||||
|
ROLE_DS,
|
||||||
|
PUSE_YN
|
||||||
|
FROM
|
||||||
|
S_EIAM_TIS.AA_ROLE
|
||||||
|
<where>
|
||||||
|
<if test="systId != null and systId != ''">
|
||||||
|
AND SYST_ID = #{systId}
|
||||||
|
</if>
|
||||||
|
<if test="puseYn != null and puseYn != ''">
|
||||||
|
AND PUSE_YN = #{puseYn}
|
||||||
|
</if>
|
||||||
|
<if test="keyword != null and keyword != ''">
|
||||||
|
AND ROLE_NM LIKE '%' || #{keyword} || '%'
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY ROLE_NM ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- Tool 마스터 전체 조회 -->
|
||||||
|
<select id="selectAllTools" resultMap="athrItemResultMap">
|
||||||
|
SELECT
|
||||||
|
TOOL_ID AS RESOURCE_ID,
|
||||||
|
TOOL_NM AS RESOURCE_NM,
|
||||||
|
TOOL_DS AS RESOURCE_DS,
|
||||||
|
TOOL_TYPE_CD AS TYPE_CODE
|
||||||
|
FROM
|
||||||
|
AX_TOOL_MST
|
||||||
|
WHERE
|
||||||
|
PUSE_YN = 'Y'
|
||||||
|
ORDER BY
|
||||||
|
TOOL_NM ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 지식 마스터 전체 조회 -->
|
||||||
|
<select id="selectAllKnwls" resultMap="athrItemResultMap">
|
||||||
|
SELECT
|
||||||
|
KNWL_ID AS RESOURCE_ID,
|
||||||
|
KNWL_NM AS RESOURCE_NM,
|
||||||
|
KNWL_DS AS RESOURCE_DS,
|
||||||
|
KNWL_TYPE_CD AS TYPE_CODE
|
||||||
|
FROM
|
||||||
|
AX_KNWL_MST
|
||||||
|
WHERE
|
||||||
|
PUSE_YN = 'Y'
|
||||||
|
ORDER BY
|
||||||
|
KNWL_NM ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 역할에 부여된 Tool ID 목록 -->
|
||||||
|
<select id="selectGrantedToolIds" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.AthrSearchInDto"
|
||||||
|
resultType="string">
|
||||||
|
SELECT
|
||||||
|
TOOL_ID
|
||||||
|
FROM
|
||||||
|
AX_ROLE_TOOL_ATHR
|
||||||
|
WHERE
|
||||||
|
SYST_ID = #{systId}
|
||||||
|
AND ROLE_NO = #{roleNo}
|
||||||
|
AND PUSE_YN = 'Y'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 역할에 부여된 지식 ID 목록 -->
|
||||||
|
<select id="selectGrantedKnwlIds" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.AthrSearchInDto"
|
||||||
|
resultType="string">
|
||||||
|
SELECT
|
||||||
|
KNWL_ID
|
||||||
|
FROM
|
||||||
|
AX_ROLE_KNWL_ATHR
|
||||||
|
WHERE
|
||||||
|
SYST_ID = #{systId}
|
||||||
|
AND ROLE_NO = #{roleNo}
|
||||||
|
AND PUSE_YN = 'Y'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- Tool 권한 전체 삭제 -->
|
||||||
|
<delete id="deleteToolAthr">
|
||||||
|
DELETE FROM AX_ROLE_TOOL_ATHR
|
||||||
|
WHERE
|
||||||
|
SYST_ID = #{systId}
|
||||||
|
AND ROLE_NO = #{roleNo}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<!-- Tool 권한 단건 삽입 -->
|
||||||
|
<insert id="insertToolAthr" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.RoleToolAthrInDto">
|
||||||
|
INSERT INTO AX_ROLE_TOOL_ATHR (
|
||||||
|
ROLE_TOOL_ATHR_ID,
|
||||||
|
SYST_ID,
|
||||||
|
ROLE_NO,
|
||||||
|
TOOL_ID,
|
||||||
|
PUSE_YN,
|
||||||
|
SYST_RGI_DT,
|
||||||
|
SYST_RGI_PRAF_NO,
|
||||||
|
SYST_RGI_OGNZ_NO,
|
||||||
|
SYST_RGI_SYST_CD,
|
||||||
|
SYST_RGI_PRGR_ID,
|
||||||
|
SYST_CHG_DT,
|
||||||
|
SYST_CHG_PRAF_NO,
|
||||||
|
SYST_CHG_OGNZ_NO,
|
||||||
|
SYST_CHG_SYST_CD,
|
||||||
|
SYST_CHG_PRGR_ID
|
||||||
|
) VALUES (
|
||||||
|
#{roleToolAthrId},
|
||||||
|
#{systId},
|
||||||
|
#{roleNo},
|
||||||
|
#{toolId},
|
||||||
|
#{puseYn},
|
||||||
|
#{systRgiDt},
|
||||||
|
#{systRgiPrafNo},
|
||||||
|
#{systRgiOgnzNo},
|
||||||
|
#{systRgiSystCd},
|
||||||
|
#{systRgiPrgrId},
|
||||||
|
#{systChgDt},
|
||||||
|
#{systChgPrafNo},
|
||||||
|
#{systChgOgnzNo},
|
||||||
|
#{systChgSystCd},
|
||||||
|
#{systChgPrgrId}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<!-- 지식 권한 전체 삭제 -->
|
||||||
|
<delete id="deleteKnwlAthr">
|
||||||
|
DELETE FROM AX_ROLE_KNWL_ATHR
|
||||||
|
WHERE
|
||||||
|
SYST_ID = #{systId}
|
||||||
|
AND ROLE_NO = #{roleNo}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<!-- 지식 권한 단건 삽입 -->
|
||||||
|
<insert id="insertKnwlAthr" parameterType="io.shinhanlife.axhub.biz.so.atm.dto.RoleKnwlAthrInDto">
|
||||||
|
INSERT INTO AX_ROLE_KNWL_ATHR (
|
||||||
|
ROLE_KNWL_ATHR_ID,
|
||||||
|
SYST_ID,
|
||||||
|
ROLE_NO,
|
||||||
|
KNWL_ID,
|
||||||
|
PUSE_YN,
|
||||||
|
SYST_RGI_DT,
|
||||||
|
SYST_RGI_PRAF_NO,
|
||||||
|
SYST_RGI_OGNZ_NO,
|
||||||
|
SYST_RGI_SYST_CD,
|
||||||
|
SYST_RGI_PRGR_ID,
|
||||||
|
SYST_CHG_DT,
|
||||||
|
SYST_CHG_PRAF_NO,
|
||||||
|
SYST_CHG_OGNZ_NO,
|
||||||
|
SYST_CHG_SYST_CD,
|
||||||
|
SYST_CHG_PRGR_ID
|
||||||
|
) VALUES (
|
||||||
|
#{roleKnwlAthrId},
|
||||||
|
#{systId},
|
||||||
|
#{roleNo},
|
||||||
|
#{knwlId},
|
||||||
|
#{puseYn},
|
||||||
|
#{systRgiDt},
|
||||||
|
#{systRgiPrafNo},
|
||||||
|
#{systRgiOgnzNo},
|
||||||
|
#{systRgiSystCd},
|
||||||
|
#{systRgiPrgrId},
|
||||||
|
#{systChgDt},
|
||||||
|
#{systChgPrafNo},
|
||||||
|
#{systChgOgnzNo},
|
||||||
|
#{systChgSystCd},
|
||||||
|
#{systChgPrgrId}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
46
src/main/resources/mapper/ZtUsacRepository.xml
Normal file
46
src/main/resources/mapper/ZtUsacRepository.xml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="io.shinhanlife.axhub.common.session.domain.repository.ZtUsacRepository">
|
||||||
|
|
||||||
|
<select id="selectZtUsac" resultType="io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto">
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
AU.PRAF_NO, -- 인사번호
|
||||||
|
AU.PRAF_NM, -- 인사명
|
||||||
|
AU.OGNZ_NO, -- 조직번호
|
||||||
|
OG.OGNZ_NM, -- 조직명
|
||||||
|
AU.ADDRE, -- 이메일주소
|
||||||
|
AU.PRAF_OFDU_CD, -- 인사직무코드
|
||||||
|
AU.PRAF_OFDU_NM, -- 인사직무명
|
||||||
|
AU.PRAF_OFLE_CD, -- 인사직급코드
|
||||||
|
AU.PRAF_OFLE_NM, -- 인사직급명
|
||||||
|
AU.PRAF_DUTY_CD, -- 인사직책코드
|
||||||
|
AU.PRAF_DUTY_NM, -- 인사직책명
|
||||||
|
AU.MNGR_PRAF_NO, -- 관리자인사번호
|
||||||
|
AU.PUSE_YN, -- 사용여부
|
||||||
|
LISTAGG(URR.ROLE_NO, ',') WITHIN GROUP (ORDER BY URR.ROLE_NO) AS ROLE_NO_STR_LIST,
|
||||||
|
LISTAGG(UR.ROLE_NM, ',') WITHIN GROUP (ORDER BY URR.ROLE_NO) AS ROLE_NM_STR_LIST,
|
||||||
|
LISTAGG(AM.TGTR_PRAF_NO, ',') WITHIN GROUP (ORDER BY AM.TGTR_PRAF_NO) AS TGTR_PRAF_NO_STR_LIST,
|
||||||
|
LISTAGG(AM.TGTR_OGNZ_NO, ',') WITHIN GROUP (ORDER BY AM.TGTR_PRAF_NO) AS TGTR_OGNZ_NO_STR_LIST
|
||||||
|
FROM
|
||||||
|
S_EIAM_TIS.AA_USAC AU
|
||||||
|
INNER JOIN
|
||||||
|
S_EIAM_TIS.AA_USAC_USER_GROU_RTNS UGR ON AU.PRAF_NO = UGR.PRAF_NO
|
||||||
|
INNER JOIN
|
||||||
|
S_EIAM_TIS.AA_USER_GROU UG ON UGR.USER_GROU_ID = UG.USER_GROU_ID
|
||||||
|
INNER JOIN
|
||||||
|
S_EIAM_TIS.AA_USER_GROU_ROLE_RTNS URR ON UG.USER_GROU_ID = URR.USER_GROU_ID
|
||||||
|
INNER JOIN
|
||||||
|
S_EIAM_TIS.AA_ROLE UR ON URR.ROLE_NO = UR.ROLE_NO
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
S_EIAM_TIS.AA_MNDT AM ON AM.PRAF_NO = AU.PRAF_NO
|
||||||
|
INNER JOIN
|
||||||
|
S_EIAM_TIS.AA_OGNZ OG ON OG.OGNZ_NO = AU.OGNZ_NO
|
||||||
|
WHERE
|
||||||
|
AU.PRAF_NO = #{prafNo}
|
||||||
|
GROUP BY
|
||||||
|
AU.PRAF_NO, AU.PRAF_NM, AU.OGNZ_NO, AU.ADDRE, AU.PRAF_OFDU_CD, AU.PRAF_OFDU_NM, AU.PRAF_OFLE_CD, AU.PRAF_OFLE_NM, AU.PRAF_DUTY_CD, AU.PRAF_DUTY_NM, AU.MNGR_PRAF_NO, AU.PUSE_YN;
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
99
src/main/resources/mapper/sm/mmg/ZtMenuRepository.xml
Normal file
99
src/main/resources/mapper/sm/mmg/ZtMenuRepository.xml
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="io.shinhanlife.axhub.biz.sm.mmg.domain.repository.MenuRepository">
|
||||||
|
|
||||||
|
<select id="selectMenu" resultType="io.shinhanlife.axhub.biz.sm.mmg.dto.MenuOutDto">
|
||||||
|
SELECT MENU_ID
|
||||||
|
, PARENT_MENU_ID
|
||||||
|
, NAME
|
||||||
|
, PATH
|
||||||
|
, TITLE
|
||||||
|
, ICON
|
||||||
|
, IS_HIDE
|
||||||
|
, IS_HIDE_TAB
|
||||||
|
, LINK
|
||||||
|
, IS_IFRAME
|
||||||
|
, KEEP_ALIVE
|
||||||
|
, ORDER_SEQ
|
||||||
|
, IS_ACTIVE
|
||||||
|
FROM S_TIS.ZT_MENU
|
||||||
|
WHERE 1=1
|
||||||
|
<if test="isActive != null and isActive != ''">
|
||||||
|
AND IS_ACTIVE = #{isActive}
|
||||||
|
</if>
|
||||||
|
<if test="path != null and path != ''">
|
||||||
|
AND PATH LIKE CONCAT('%', #{path}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="title != null and title != ''">
|
||||||
|
AND TITLE LIKE CONCAT('%', #{title}, '%')
|
||||||
|
</if>
|
||||||
|
ORDER BY ORDER_SEQ ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectMenuById" resultType="io.shinhanlife.axhub.biz.sm.mmg.dto.MenuOutDto">
|
||||||
|
SELECT MENU_ID
|
||||||
|
, PARENT_MENU_ID
|
||||||
|
, NAME
|
||||||
|
, PATH
|
||||||
|
, TITLE
|
||||||
|
, ICON
|
||||||
|
, IS_HIDE
|
||||||
|
, IS_HIDE_TAB
|
||||||
|
, LINK
|
||||||
|
, IS_IFRAME
|
||||||
|
, KEEP_ALIVE
|
||||||
|
, ORDER_SEQ
|
||||||
|
, IS_ACTIVE
|
||||||
|
FROM S_TIS.ZT_MENU
|
||||||
|
WHERE MENU_ID = #{menuId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertMenu"
|
||||||
|
parameterType="io.shinhanlife.axhub.biz.sm.mmg.dto.MenuSaveInDto"
|
||||||
|
useGeneratedKeys="true"
|
||||||
|
keyProperty="menuId">
|
||||||
|
INSERT INTO S_TIS.ZT_MENU (
|
||||||
|
PARENT_MENU_ID, NAME, PATH, TITLE, ICON,
|
||||||
|
IS_HIDE, IS_HIDE_TAB, LINK, IS_IFRAME, KEEP_ALIVE,
|
||||||
|
ORDER_SEQ, IS_ACTIVE,
|
||||||
|
SYST_RGI_DT, SYST_RGI_PRAF_NO, SYST_RGI_OGNZ_NO, SYST_RGI_SYST_CD, SYST_RGI_PRGR_ID,
|
||||||
|
SYST_CHG_DT, SYST_CHG_PRAF_NO, SYST_CHG_OGNZ_NO, SYST_CHG_SYST_CD, SYST_CHG_PRGR_ID
|
||||||
|
) VALUES (
|
||||||
|
#{parentMenuId}, #{name}, #{path}, #{title}, #{icon},
|
||||||
|
#{isHide}, #{isHideTab}, #{link}, #{isIframe}, #{keepAlive},
|
||||||
|
#{orderSeq}, #{isActive},
|
||||||
|
#{systRgiDt}, #{systRgiPrafNo}, #{systRgiOgnzNo}, #{systRgiSystCd}, #{systRgiPrgrId},
|
||||||
|
#{systChgDt}, #{systChgPrafNo}, #{systChgOgnzNo}, #{systChgSystCd}, #{systChgPrgrId}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateMenu" parameterType="io.shinhanlife.axhub.biz.sm.mmg.dto.MenuSaveInDto">
|
||||||
|
UPDATE S_TIS.ZT_MENU
|
||||||
|
SET
|
||||||
|
PARENT_MENU_ID = #{parentMenuId},
|
||||||
|
NAME = #{name},
|
||||||
|
PATH = #{path},
|
||||||
|
TITLE = #{title},
|
||||||
|
ICON = #{icon},
|
||||||
|
IS_HIDE = #{isHide},
|
||||||
|
IS_HIDE_TAB = #{isHideTab},
|
||||||
|
LINK = #{link},
|
||||||
|
IS_IFRAME = #{isIframe},
|
||||||
|
KEEP_ALIVE = #{keepAlive},
|
||||||
|
ORDER_SEQ = #{orderSeq},
|
||||||
|
IS_ACTIVE = #{isActive},
|
||||||
|
SYST_CHG_DT = #{systChgDt},
|
||||||
|
SYST_CHG_PRAF_NO = #{systChgPrafNo},
|
||||||
|
SYST_CHG_OGNZ_NO = #{systChgOgnzNo},
|
||||||
|
SYST_CHG_SYST_CD = #{systChgSystCd},
|
||||||
|
SYST_CHG_PRGR_ID = #{systChgPrgrId}
|
||||||
|
WHERE MENU_ID = #{menuId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteMenu">
|
||||||
|
DELETE FROM S_TIS.ZT_MENU
|
||||||
|
WHERE MENU_ID = #{menuId}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user