state-check 스케줄 추가, pnu-update 수정
This commit is contained in:
0
gukyuin/state-check/.gitkeep
Normal file
0
gukyuin/state-check/.gitkeep
Normal file
BIN
gukyuin/state-check/.gradle/8.14/checksums/checksums.lock
Normal file
BIN
gukyuin/state-check/.gradle/8.14/checksums/checksums.lock
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
gukyuin/state-check/.gradle/8.14/fileChanges/last-build.bin
Normal file
BIN
gukyuin/state-check/.gradle/8.14/fileChanges/last-build.bin
Normal file
Binary file not shown.
BIN
gukyuin/state-check/.gradle/8.14/fileHashes/fileHashes.bin
Normal file
BIN
gukyuin/state-check/.gradle/8.14/fileHashes/fileHashes.bin
Normal file
Binary file not shown.
BIN
gukyuin/state-check/.gradle/8.14/fileHashes/fileHashes.lock
Normal file
BIN
gukyuin/state-check/.gradle/8.14/fileHashes/fileHashes.lock
Normal file
Binary file not shown.
Binary file not shown.
0
gukyuin/state-check/.gradle/8.14/gc.properties
Normal file
0
gukyuin/state-check/.gradle/8.14/gc.properties
Normal file
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
#Mon Feb 02 19:50:45 KST 2026
|
||||
gradle.version=8.14
|
||||
BIN
gukyuin/state-check/.gradle/buildOutputCleanup/outputFiles.bin
Normal file
BIN
gukyuin/state-check/.gradle/buildOutputCleanup/outputFiles.bin
Normal file
Binary file not shown.
BIN
gukyuin/state-check/.gradle/file-system.probe
Normal file
BIN
gukyuin/state-check/.gradle/file-system.probe
Normal file
Binary file not shown.
0
gukyuin/state-check/.gradle/vcs-1/gc.properties
Normal file
0
gukyuin/state-check/.gradle/vcs-1/gc.properties
Normal file
112
gukyuin/state-check/CODE_STYLE_SETUP.md
Normal file
112
gukyuin/state-check/CODE_STYLE_SETUP.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Code Style 설정 가이드
|
||||
|
||||
이 문서는 프로젝트에서 Google Java Style을 자동으로 적용하기 위한 설정 가이드입니다.
|
||||
|
||||
## 자동 포맷팅 구성
|
||||
|
||||
### 1. 커밋 시점 자동 포맷팅 (Git Pre-commit Hook)
|
||||
|
||||
커밋 전에 자동으로 코드를 포맷팅하고 스테이징합니다.
|
||||
|
||||
**설정 완료:** `.git/hooks/pre-commit` 파일이 자동으로 실행됩니다.
|
||||
|
||||
**동작 방식:**
|
||||
- 커밋 시도 시 `./gradlew spotlessApply` 자동 실행
|
||||
- 스테이징된 Java 파일을 자동으로 포맷팅
|
||||
- 포맷팅된 파일을 자동으로 다시 스테이징
|
||||
- 포맷팅이 완료되면 커밋 진행
|
||||
|
||||
**장점:**
|
||||
- 수동으로 `spotlessApply`를 실행할 필요 없음
|
||||
- 항상 일관된 코드 스타일 유지
|
||||
- 포맷팅 누락 방지
|
||||
|
||||
### 2. IntelliJ IDEA 저장 시점 자동 포맷팅
|
||||
|
||||
#### 방법 1: Code Style 설정 임포트 (권장)
|
||||
|
||||
1. **IntelliJ IDEA 열기**
|
||||
2. **Settings/Preferences** (Mac: `⌘,` / Windows: `Ctrl+Alt+S`)
|
||||
3. **Editor > Code Style > Java**
|
||||
4. **⚙️ (톱니바퀴)** 클릭 > **Import Scheme > IntelliJ IDEA code style XML**
|
||||
5. 프로젝트 루트의 `intellij-java-google-style.xml` 파일 선택
|
||||
6. **OK** 클릭
|
||||
|
||||
#### 방법 2: 저장 시 자동 포맷팅 활성화
|
||||
|
||||
|
||||
**Option A: Actions on Save 설정**
|
||||
|
||||
1. **Settings/Preferences** > **Tools > Actions on Save**
|
||||
2. 다음 옵션들을 활성화:
|
||||
- ✅ **Reformat code**
|
||||
- ✅ **Optimize imports**
|
||||
- ✅ **Rearrange code** (선택사항)
|
||||
3. **Changed lines** 또는 **Whole file** 선택
|
||||
4. **OK** 클릭
|
||||
|
||||
**Option B: Save Actions Plugin 사용 (더 많은 옵션)**
|
||||
|
||||
1. **Settings/Preferences** > **Plugins**
|
||||
2. **Marketplace**에서 "Save Actions" 검색 및 설치
|
||||
3. **Settings/Preferences** > **Other Settings > Save Actions**
|
||||
4. 다음 옵션 활성화:
|
||||
- ✅ **Activate save actions on save**
|
||||
- ✅ **Reformat file**
|
||||
- ✅ **Optimize imports**
|
||||
- ✅ **Rearrange fields and methods** (선택사항)
|
||||
|
||||
### 3. Gradle Spotless Plugin 수동 실행
|
||||
|
||||
#### 코드 포맷팅 체크
|
||||
```bash
|
||||
# 포맷팅 문제 확인만 (수정하지 않음)
|
||||
./gradlew spotlessCheck
|
||||
```
|
||||
|
||||
#### 코드 자동 포맷팅
|
||||
```bash
|
||||
# 모든 Java 파일 자동 포맷팅 적용
|
||||
./gradlew spotlessApply
|
||||
```
|
||||
|
||||
#### 빌드 시 자동 체크
|
||||
```bash
|
||||
# 빌드 전에 자동으로 spotlessCheck 실행됨
|
||||
./gradlew build
|
||||
```
|
||||
|
||||
## 코드 스타일 규칙
|
||||
|
||||
프로젝트는 **Google Java Style Guide** 기반으로 다음 규칙을 따릅니다:
|
||||
|
||||
- **Indentation**: 2 spaces (탭 아님)
|
||||
- **Line Length**: 180 characters
|
||||
- **Line Endings**: LF (Unix-style)
|
||||
- **Charset**: UTF-8
|
||||
- **Import Order**: Static imports → 빈 줄 → Regular imports
|
||||
- **Braces**: 모든 if, for, while, do 문에 중괄호 필수
|
||||
|
||||
## 문제 해결
|
||||
|
||||
### Pre-commit hook이 실행되지 않는 경우
|
||||
```bash
|
||||
# 실행 권한 확인 및 부여
|
||||
chmod +x .git/hooks/pre-commit
|
||||
```
|
||||
|
||||
### Spotless 플러그인이 동작하지 않는 경우
|
||||
```bash
|
||||
# Gradle 의존성 다시 다운로드
|
||||
./gradlew clean build --refresh-dependencies
|
||||
```
|
||||
|
||||
### IntelliJ 포맷팅이 다르게 적용되는 경우
|
||||
1. `intellij-java-google-style.xml` 다시 임포트
|
||||
2. **File > Invalidate Caches** > **Invalidate and Restart**
|
||||
|
||||
## 추가 정보
|
||||
|
||||
- **Google Java Style Guide**: https://google.github.io/styleguide/javaguide.html
|
||||
- **Spotless Plugin**: https://github.com/diffplug/spotless
|
||||
- **IntelliJ Code Style**: https://www.jetbrains.com/help/idea/code-style.html
|
||||
282
gukyuin/state-check/COMMON_CODE_CACHE_REDIS.md
Normal file
282
gukyuin/state-check/COMMON_CODE_CACHE_REDIS.md
Normal file
@@ -0,0 +1,282 @@
|
||||
# 공통코드 Redis 캐시 시스템 - DanielLee
|
||||
|
||||
## 요구사항 검토
|
||||
|
||||
### 1. **API를 통해 공통코드 제공**
|
||||
- **구현 완료**: `CommonCodeApiController`에서 전체 공통코드 조회 API 제공
|
||||
```
|
||||
GET /api/code
|
||||
→ 모든 공통코드 조회
|
||||
```
|
||||
- **추가 구현**: 캐시 갱신 및 상태 확인 API
|
||||
```
|
||||
POST /api/code/cache/refresh → 캐시 갱신
|
||||
GET /api/code/cache/status → 캐시 상태 확인
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. **애플리케이션 로딩시 Redis 캐시에 올리기**
|
||||
- **구현 완료**: `CommonCodeCacheManager` 클래스 생성
|
||||
|
||||
#### 초기화 메커니즘
|
||||
```java
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class CommonCodeCacheManager {
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
public void initializeCommonCodeCache() {
|
||||
// 애플리케이션 완전히 시작된 후 공통코드를 Redis에 미리 로드
|
||||
List<Basic> allCommonCodes = commonCodeService.getFindAll();
|
||||
// @Cacheable이 자동으로 Redis에 캐시함
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 동작 흐름
|
||||
1. 애플리케이션 시작
|
||||
2. Spring이 모든 Bean 생성 완료 (`ApplicationReadyEvent` 발생)
|
||||
3. `CommonCodeCacheManager.initializeCommonCodeCache()` 실행
|
||||
4. `commonCodeService.getFindAll()` 호출 (DB에서 조회)
|
||||
5. `@Cacheable(value = "commonCodes")` 에노테이션이 결과를 Redis에 저장
|
||||
|
||||
---
|
||||
|
||||
### 3. **공통코드 변경시 데이터 갱신**
|
||||
|
||||
#### 자동 갱신
|
||||
- **등록 (CREATE)**: `@CacheEvict` → 캐시 전체 삭제
|
||||
- **수정 (UPDATE)**: `@CacheEvict` → 캐시 전체 삭제
|
||||
- **삭제 (DELETE)**: `@CacheEvict` → 캐시 전체 삭제
|
||||
- **순서 변경**: `@CacheEvict` → 캐시 전체 삭제
|
||||
|
||||
```java
|
||||
@CacheEvict(value = "commonCodes", allEntries = true)
|
||||
public ResponseObj save(CommonCodeDto.AddReq req) {
|
||||
// 공통코드 저장
|
||||
// ↓
|
||||
// 캐시 전체 삭제 (다음 조회 시 DB에서 새로 로드)
|
||||
}
|
||||
```
|
||||
|
||||
#### 수동 갱신 (관리자)
|
||||
```java
|
||||
POST /api/code/cache/refresh
|
||||
```
|
||||
- 공통코드 설정이 변경된 후 API를 호출하여 캐시를 강제 갱신
|
||||
|
||||
#### 캐시 상태 모니터링
|
||||
```java
|
||||
GET /api/code/cache/status
|
||||
→ 응답: { "data": 150 } // 캐시된 공통코드 150개
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 전체 아키텍처
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 클라이언트 요청 │
|
||||
└──────────────────┬──────────────────────────────────────┘
|
||||
│
|
||||
┌──────────▼──────────┐
|
||||
│ CommonCodeApiController
|
||||
└──────────┬──────────┘
|
||||
│
|
||||
┌─────────┴──────────┐
|
||||
│ │
|
||||
┌────▼─────┐ ┌──────▼────────────┐
|
||||
│ 조회 API │ │ 캐시 관리 API │
|
||||
│ (GET) │ │(POST, GET) │
|
||||
└────┬─────┘ └──────┬────────────┘
|
||||
│ │
|
||||
│ ┌────────▼──────────┐
|
||||
│ │CommonCodeCacheManager
|
||||
│ │(캐시 초기화/갱신) │
|
||||
│ └────────┬──────────┘
|
||||
│ │
|
||||
┌────▼─────────────────┬─▼────┐
|
||||
│ CommonCodeService │ │
|
||||
│ (@Cacheable) │ │
|
||||
│ (@CacheEvict) │ │
|
||||
└────┬──────────────────┴──────┘
|
||||
│
|
||||
┌────▼──────────┐
|
||||
│ Redis 캐시 │
|
||||
│ (공통코드) │
|
||||
└────┬──────────┘
|
||||
│
|
||||
┌────▼──────────┐
|
||||
│ PostgreSQL DB │
|
||||
│ (공통코드) │
|
||||
└───────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## API 명세
|
||||
|
||||
### 1. 공통코드 조회 (캐시됨)
|
||||
```
|
||||
GET /api/code
|
||||
|
||||
응답:
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"id": 1,
|
||||
"code": "STATUS",
|
||||
"name": "상태",
|
||||
"description": "상태 공통코드",
|
||||
"used": true,
|
||||
...
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 공통코드 캐시 갱신
|
||||
```
|
||||
POST /api/code/cache/refresh
|
||||
|
||||
응답:
|
||||
{
|
||||
"data": "공통코드 캐시가 갱신되었습니다."
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 캐시 상태 확인
|
||||
```
|
||||
GET /api/code/cache/status
|
||||
|
||||
응답:
|
||||
{
|
||||
"data": 150 // Redis에 캐시된 공통코드 개수
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 캐시 갱신 흐름
|
||||
|
||||
### 자동 갱신 (CRUD 작업)
|
||||
```
|
||||
관리자가 공통코드 등록/수정/삭제
|
||||
↓
|
||||
CommonCodeService.save() / update() / removeCode()
|
||||
(@CacheEvict 실행)
|
||||
↓
|
||||
Redis 캐시 전체 삭제
|
||||
↓
|
||||
다음 조회 시 DB에서 새로 로드
|
||||
```
|
||||
|
||||
### 수동 갱신 (API 호출)
|
||||
```
|
||||
관리자: POST /api/code/cache/refresh
|
||||
↓
|
||||
CommonCodeCacheManager.refreshCommonCodeCache()
|
||||
↓
|
||||
캐시 정리 + 새로운 데이터 로드
|
||||
↓
|
||||
Redis 캐시 업데이트 완료
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 성능 최적화 효과
|
||||
|
||||
| 항목 | 개선 전 | 개선 후 |
|
||||
|------|--------|--------|
|
||||
| **조회 속도** | DB 직접 조회 (10-100ms) | Redis 캐시 (1-5ms) |
|
||||
| **DB 부하** | 매번 조회 | 캐시 미스시만 조회 |
|
||||
| **네트워크 대역폭** | 높음 (DB 왕복) | 낮음 (로컬 캐시) |
|
||||
| **응답 시간** | 변동적 | 일정 (캐시) |
|
||||
|
||||
---
|
||||
|
||||
## 추가 기능
|
||||
|
||||
### CommonCodeUtil - 전역 공통코드 조회
|
||||
```java
|
||||
@Component
|
||||
public class CommonCodeUtil {
|
||||
// 모든 공통코드 조회 (캐시 활용)
|
||||
public List<Basic> getAllCommonCodes()
|
||||
|
||||
// 특정 코드로 조회
|
||||
public List<Basic> getCommonCodesByCode(String code)
|
||||
|
||||
// ID로 단건 조회
|
||||
public Optional<Basic> getCommonCodeById(Long id)
|
||||
|
||||
// 코드명 조회
|
||||
public Optional<String> getCodeName(String parentCode, String childCode)
|
||||
|
||||
// 하위 코드 조회
|
||||
public List<Basic> getChildCodesByParentCode(String parentCode)
|
||||
|
||||
// 코드 사용 가능 여부 확인
|
||||
public boolean isCodeAvailable(Long parentId, String code)
|
||||
}
|
||||
```
|
||||
|
||||
### 사용 예시
|
||||
```java
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
public class SomeController {
|
||||
|
||||
private final CommonCodeUtil commonCodeUtil;
|
||||
|
||||
@GetMapping("/example")
|
||||
public void example() {
|
||||
// 1. 모든 공통코드 조회 (캐시됨)
|
||||
List<Basic> allCodes = commonCodeUtil.getAllCommonCodes();
|
||||
|
||||
// 2. 특정 코드 조회
|
||||
Optional<String> name = commonCodeUtil.getCodeName("PARENT", "CHILD");
|
||||
|
||||
// 3. 코드 사용 가능 여부 확인
|
||||
boolean available = commonCodeUtil.isCodeAvailable(1L, "NEW_CODE");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 완료 체크리스트
|
||||
|
||||
- Redis 캐싱 어노테이션 적용 (@Cacheable, @CacheEvict)
|
||||
- 애플리케이션 로딩시 캐시 초기화
|
||||
- CRUD 작업시 자동 캐시 갱신
|
||||
- 수동 캐시 갱신 API 제공
|
||||
- 캐시 상태 모니터링 API
|
||||
- 전역 공통코드 조회 유틸리티
|
||||
- 포괄적인 유닛 테스트 (12개)
|
||||
|
||||
---
|
||||
|
||||
## 모니터링
|
||||
|
||||
캐시 상태를 주기적으로 모니터링:
|
||||
```bash
|
||||
# 캐시 상태 확인
|
||||
curl http://localhost:8080/api/code/cache/status
|
||||
|
||||
# 캐시 갱신
|
||||
curl -X POST http://localhost:8080/api/code/cache/refresh
|
||||
```
|
||||
|
||||
로그 확인:
|
||||
```
|
||||
=== 공통코드 캐시 초기화 시작 ===
|
||||
✓ 공통코드 150개가 Redis 캐시에 로드되었습니다.
|
||||
- [STATUS] 상태 (ID: 1)
|
||||
- [TYPE] 타입 (ID: 2)
|
||||
...
|
||||
=== 공통코드 캐시 초기화 완료 ===
|
||||
```
|
||||
29
gukyuin/state-check/Dockerfile-dev
Normal file
29
gukyuin/state-check/Dockerfile-dev
Normal file
@@ -0,0 +1,29 @@
|
||||
# Stage 1: Build stage (gradle build는 Jenkins에서 이미 수행)
|
||||
FROM eclipse-temurin:21-jre-jammy
|
||||
|
||||
# GDAL 설치
|
||||
RUN apt-get update && apt-get install -y \
|
||||
gdal-bin \
|
||||
libgdal-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ARG UID=1000
|
||||
ARG GID=1000
|
||||
|
||||
RUN groupadd -g ${GID} manager01 \
|
||||
&& useradd -u ${UID} -g ${GID} -m manager01
|
||||
|
||||
USER manager01
|
||||
|
||||
# 작업 디렉토리 설정
|
||||
WORKDIR /app
|
||||
|
||||
# JAR 파일 복사 (Jenkins에서 빌드된 ROOT.jar)
|
||||
COPY build/libs/ROOT.jar app.jar
|
||||
|
||||
# 포트 노출
|
||||
EXPOSE 8080
|
||||
|
||||
# 애플리케이션 실행
|
||||
# dev 프로파일로 실행
|
||||
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=dev", "app.jar"]
|
||||
94
gukyuin/state-check/Jenkinsfile-dev
Normal file
94
gukyuin/state-check/Jenkinsfile-dev
Normal file
@@ -0,0 +1,94 @@
|
||||
pipeline {
|
||||
agent any
|
||||
tools {
|
||||
jdk 'jdk21'
|
||||
}
|
||||
environment {
|
||||
BRANCH = 'develop'
|
||||
GIT_REPO = 'https://10.100.0.10:3210/dabeeo/kamco-dabeeo-backoffice.git'
|
||||
}
|
||||
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
checkout([
|
||||
$class: 'GitSCM',
|
||||
branches: [[name: "${env.BRANCH}"]],
|
||||
userRemoteConfigs: [[
|
||||
url: "${env.GIT_REPO}",
|
||||
credentialsId: 'jenkins-dev-token'
|
||||
]]
|
||||
])
|
||||
}
|
||||
}
|
||||
stage('Get Commit Hash') {
|
||||
steps {
|
||||
script {
|
||||
env.COMMIT_HASH = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
|
||||
echo "Current commit hash: ${env.COMMIT_HASH}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh "./gradlew clean build -x test"
|
||||
}
|
||||
}
|
||||
|
||||
stage('Docker Build & Deploy') {
|
||||
steps {
|
||||
script {
|
||||
echo "Building Docker image with tag: ${env.COMMIT_HASH}"
|
||||
|
||||
// IMAGE_TAG 환경변수 설정 후 docker-compose로 빌드 및 배포
|
||||
sh """
|
||||
export IMAGE_TAG=${env.COMMIT_HASH}
|
||||
|
||||
# 기존 컨테이너 중지 및 제거
|
||||
docker-compose -f docker-compose-dev.yml down || true
|
||||
|
||||
# 새 이미지 빌드
|
||||
docker-compose -f docker-compose-dev.yml build
|
||||
|
||||
# latest 태그도 추가
|
||||
docker tag kamco-changedetection-api:${env.COMMIT_HASH} kamco-changedetection-api:latest
|
||||
|
||||
# 컨테이너 시작
|
||||
docker-compose -f docker-compose-dev.yml up -d
|
||||
"""
|
||||
|
||||
// 헬스체크 대기
|
||||
echo "Waiting for application to be ready..."
|
||||
sh """
|
||||
for i in {1..30}; do
|
||||
if docker exec kamco-changedetection-api curl -f http://localhost:8080/monitor/health > /dev/null 2>&1; then
|
||||
echo "✅ Application is healthy!"
|
||||
docker-compose -f docker-compose-dev.yml ps
|
||||
exit 0
|
||||
fi
|
||||
echo "⏳ Waiting for application... (\$i/30)"
|
||||
sleep 2
|
||||
done
|
||||
echo "⚠️ Warning: Health check timeout, checking container status..."
|
||||
docker-compose -f docker-compose-dev.yml ps
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Cleanup Old Images') {
|
||||
steps {
|
||||
script {
|
||||
echo "Cleaning up old Docker images..."
|
||||
sh """
|
||||
# Keep latest 5 images, remove older ones
|
||||
docker images kamco-changedetection-api --format "{{.ID}} {{.Tag}}" | \
|
||||
grep -v latest | tail -n +6 | awk '{print \$1}' | xargs -r docker rmi || true
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
26
gukyuin/state-check/README.md
Normal file
26
gukyuin/state-check/README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# GUKYUIN STATE CHECK
|
||||
|
||||
> 국유인에 연동된 마스터 정보에서 이노팸에 다운로드 100%가 되었는지 상태를 체크 schedule
|
||||
|
||||
## 📋 프로젝트 소개
|
||||
|
||||
**state-check**는 국유인에 연동된 마스터 정보에서 이노팸에 다운로드 100%가 되었는지 상태를 체크하는 schedule 입니다.
|
||||
|
||||
## 🚀 시작하기
|
||||
GukYuinApiStatusJobService 의 findGukYuinMastCompleteYn 메소드가 매 10분마다 schedule 실행됨
|
||||
|
||||
```bash
|
||||
./gradlew spotlessApply
|
||||
```
|
||||
```bash
|
||||
./gradlew clean build
|
||||
```
|
||||
```bash
|
||||
Java -jar state-check.jar \
|
||||
```
|
||||
### 필수 요구사항
|
||||
|
||||
- Java 21 (JDK 21)
|
||||
- PostgreSQL 12+ (PostGIS 확장 필요)
|
||||
- Gradle 8.x (또는 Gradle Wrapper 사용)
|
||||
- Docker & Docker Compose (선택사항)
|
||||
110
gukyuin/state-check/build.gradle
Normal file
110
gukyuin/state-check/build.gradle
Normal file
@@ -0,0 +1,110 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '3.5.7'
|
||||
id 'io.spring.dependency-management' version '1.1.7'
|
||||
id 'com.diffplug.spotless' version '6.25.0'
|
||||
}
|
||||
|
||||
group = 'com.kamco.cd'
|
||||
version = '0.0.1-SNAPSHOT'
|
||||
description = 'state-check'
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(21)
|
||||
}
|
||||
}
|
||||
|
||||
bootJar {
|
||||
archiveFileName = "state-check.jar"
|
||||
}
|
||||
|
||||
jar {
|
||||
enabled = false // plain.jar 안 만들기(혼동 방지)
|
||||
}
|
||||
|
||||
configurations {
|
||||
compileOnly {
|
||||
extendsFrom annotationProcessor
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url "https://repo.osgeo.org/repository/release/" }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-web'
|
||||
compileOnly 'org.projectlombok:lombok'
|
||||
runtimeOnly 'org.postgresql:postgresql'
|
||||
annotationProcessor 'org.projectlombok:lombok'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-validation'
|
||||
|
||||
//geometry
|
||||
implementation 'com.fasterxml.jackson.core:jackson-databind'
|
||||
implementation "org.geotools:gt-shapefile:30.0"
|
||||
implementation "org.geotools:gt-referencing:30.0"
|
||||
implementation "org.geotools:gt-geojson:30.0"
|
||||
implementation 'org.locationtech.jts.io:jts-io-common:1.20.0'
|
||||
implementation 'org.locationtech.jts:jts-core:1.19.0'
|
||||
implementation 'org.hibernate:hibernate-spatial:6.2.7.Final'
|
||||
implementation 'org.geotools:gt-main:30.0'
|
||||
implementation("org.geotools:gt-geotiff:30.0") {
|
||||
exclude group: "javax.media", module: "jai_core"
|
||||
}
|
||||
implementation 'org.geotools:gt-epsg-hsql:30.0'
|
||||
|
||||
// QueryDSL JPA
|
||||
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
|
||||
|
||||
// Q클래스 생성용 annotationProcessor
|
||||
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
|
||||
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
|
||||
annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
|
||||
|
||||
// actuator
|
||||
implementation 'org.springframework.boot:spring-boot-starter-actuator'
|
||||
|
||||
// Redis
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
|
||||
|
||||
// SpringDoc OpenAPI (Swagger)
|
||||
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
|
||||
|
||||
// Apache Commons Compress for archive handling
|
||||
implementation 'org.apache.commons:commons-compress:1.26.0'
|
||||
|
||||
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
|
||||
implementation 'org.reflections:reflections:0.10.2'
|
||||
|
||||
|
||||
implementation 'org.locationtech.jts:jts-core:1.19.0'
|
||||
implementation 'org.locationtech.jts.io:jts-io-common:1.19.0'
|
||||
}
|
||||
|
||||
configurations.configureEach {
|
||||
exclude group: 'javax.media', module: 'jai_core'
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
// Spotless configuration for code formatting (2-space indent)
|
||||
spotless {
|
||||
java {
|
||||
target 'src/**/*.java'
|
||||
googleJavaFormat('1.19.2') // Default Google Style = 2 spaces (NO .aosp()!)
|
||||
trimTrailingWhitespace()
|
||||
endWithNewline()
|
||||
}
|
||||
}
|
||||
|
||||
// Run spotlessCheck before build
|
||||
tasks.named('build') {
|
||||
dependsOn 'spotlessCheck'
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,39 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
|
||||
|
||||
/**
|
||||
* QCommonDateEntity is a Querydsl query type for CommonDateEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultSupertypeSerializer")
|
||||
public class QCommonDateEntity extends EntityPathBase<CommonDateEntity> {
|
||||
|
||||
private static final long serialVersionUID = 1355779051L;
|
||||
|
||||
public static final QCommonDateEntity commonDateEntity = new QCommonDateEntity("commonDateEntity");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDate = createDateTime("createdDate", java.time.ZonedDateTime.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> modifiedDate = createDateTime("modifiedDate", java.time.ZonedDateTime.class);
|
||||
|
||||
public QCommonDateEntity(String variable) {
|
||||
super(CommonDateEntity.class, forVariable(variable));
|
||||
}
|
||||
|
||||
public QCommonDateEntity(Path<? extends CommonDateEntity> path) {
|
||||
super(path.getType(), path.getMetadata());
|
||||
}
|
||||
|
||||
public QCommonDateEntity(PathMetadata metadata) {
|
||||
super(CommonDateEntity.class, metadata);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
|
||||
|
||||
/**
|
||||
* QLabelingAssignmentEntity is a Querydsl query type for LabelingAssignmentEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
|
||||
public class QLabelingAssignmentEntity extends EntityPathBase<LabelingAssignmentEntity> {
|
||||
|
||||
private static final long serialVersionUID = -1647165171L;
|
||||
|
||||
public static final QLabelingAssignmentEntity labelingAssignmentEntity = new QLabelingAssignmentEntity("labelingAssignmentEntity");
|
||||
|
||||
public final QCommonDateEntity _super = new QCommonDateEntity(this);
|
||||
|
||||
public final NumberPath<Long> analUid = createNumber("analUid", Long.class);
|
||||
|
||||
public final StringPath assignGroupId = createString("assignGroupId");
|
||||
|
||||
public final ComparablePath<java.util.UUID> assignmentUid = createComparable("assignmentUid", java.util.UUID.class);
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDate = _super.createdDate;
|
||||
|
||||
public final NumberPath<Long> inferenceGeomUid = createNumber("inferenceGeomUid", Long.class);
|
||||
|
||||
public final StringPath inspectorUid = createString("inspectorUid");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> inspectStatDttm = createDateTime("inspectStatDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final StringPath inspectState = createString("inspectState");
|
||||
|
||||
public final NumberPath<Long> learnGeomUid = createNumber("learnGeomUid", Long.class);
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> modifiedDate = _super.modifiedDate;
|
||||
|
||||
public final ComparablePath<Character> stagnationYn = createComparable("stagnationYn", Character.class);
|
||||
|
||||
public final StringPath workerUid = createString("workerUid");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> workStatDttm = createDateTime("workStatDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final StringPath workState = createString("workState");
|
||||
|
||||
public QLabelingAssignmentEntity(String variable) {
|
||||
super(LabelingAssignmentEntity.class, forVariable(variable));
|
||||
}
|
||||
|
||||
public QLabelingAssignmentEntity(Path<? extends LabelingAssignmentEntity> path) {
|
||||
super(path.getType(), path.getMetadata());
|
||||
}
|
||||
|
||||
public QLabelingAssignmentEntity(PathMetadata metadata) {
|
||||
super(LabelingAssignmentEntity.class, metadata);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
|
||||
|
||||
/**
|
||||
* QLabelingInspectorEntity is a Querydsl query type for LabelingInspectorEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
|
||||
public class QLabelingInspectorEntity extends EntityPathBase<LabelingInspectorEntity> {
|
||||
|
||||
private static final long serialVersionUID = -1575073251L;
|
||||
|
||||
public static final QLabelingInspectorEntity labelingInspectorEntity = new QLabelingInspectorEntity("labelingInspectorEntity");
|
||||
|
||||
public final QCommonDateEntity _super = new QCommonDateEntity(this);
|
||||
|
||||
public final NumberPath<Long> analUid = createNumber("analUid", Long.class);
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDate = _super.createdDate;
|
||||
|
||||
public final StringPath inspectorUid = createString("inspectorUid");
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> modifiedDate = _super.modifiedDate;
|
||||
|
||||
public final ComparablePath<java.util.UUID> operatorUid = createComparable("operatorUid", java.util.UUID.class);
|
||||
|
||||
public QLabelingInspectorEntity(String variable) {
|
||||
super(LabelingInspectorEntity.class, forVariable(variable));
|
||||
}
|
||||
|
||||
public QLabelingInspectorEntity(Path<? extends LabelingInspectorEntity> path) {
|
||||
super(path.getType(), path.getMetadata());
|
||||
}
|
||||
|
||||
public QLabelingInspectorEntity(PathMetadata metadata) {
|
||||
super(LabelingInspectorEntity.class, metadata);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
|
||||
|
||||
/**
|
||||
* QMapInkx50kEntity is a Querydsl query type for MapInkx50kEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
|
||||
public class QMapInkx50kEntity extends EntityPathBase<MapInkx50kEntity> {
|
||||
|
||||
private static final long serialVersionUID = 1410103956L;
|
||||
|
||||
public static final QMapInkx50kEntity mapInkx50kEntity = new QMapInkx50kEntity("mapInkx50kEntity");
|
||||
|
||||
public final QCommonDateEntity _super = new QCommonDateEntity(this);
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDate = _super.createdDate;
|
||||
|
||||
public final NumberPath<Integer> fid = createNumber("fid", Integer.class);
|
||||
|
||||
public final ComparablePath<org.locationtech.jts.geom.Geometry> geom = createComparable("geom", org.locationtech.jts.geom.Geometry.class);
|
||||
|
||||
public final StringPath mapidcdNo = createString("mapidcdNo");
|
||||
|
||||
public final StringPath mapidNm = createString("mapidNm");
|
||||
|
||||
public final StringPath mapidNo = createString("mapidNo");
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> modifiedDate = _super.modifiedDate;
|
||||
|
||||
public QMapInkx50kEntity(String variable) {
|
||||
super(MapInkx50kEntity.class, forVariable(variable));
|
||||
}
|
||||
|
||||
public QMapInkx50kEntity(Path<? extends MapInkx50kEntity> path) {
|
||||
super(path.getType(), path.getMetadata());
|
||||
}
|
||||
|
||||
public QMapInkx50kEntity(PathMetadata metadata) {
|
||||
super(MapInkx50kEntity.class, metadata);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
import com.querydsl.core.types.dsl.PathInits;
|
||||
|
||||
|
||||
/**
|
||||
* QMapInkx5kEntity is a Querydsl query type for MapInkx5kEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
|
||||
public class QMapInkx5kEntity extends EntityPathBase<MapInkx5kEntity> {
|
||||
|
||||
private static final long serialVersionUID = 372911320L;
|
||||
|
||||
private static final PathInits INITS = PathInits.DIRECT2;
|
||||
|
||||
public static final QMapInkx5kEntity mapInkx5kEntity = new QMapInkx5kEntity("mapInkx5kEntity");
|
||||
|
||||
public final QCommonDateEntity _super = new QCommonDateEntity(this);
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDate = _super.createdDate;
|
||||
|
||||
public final NumberPath<Integer> fid = createNumber("fid", Integer.class);
|
||||
|
||||
public final ComparablePath<org.locationtech.jts.geom.Geometry> geom = createComparable("geom", org.locationtech.jts.geom.Geometry.class);
|
||||
|
||||
public final StringPath mapidcdNo = createString("mapidcdNo");
|
||||
|
||||
public final StringPath mapidNm = createString("mapidNm");
|
||||
|
||||
public final QMapInkx50kEntity mapInkx50k;
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> modifiedDate = _super.modifiedDate;
|
||||
|
||||
public final EnumPath<com.kamco.cd.kamcoback.enums.CommonUseStatus> useInference = createEnum("useInference", com.kamco.cd.kamcoback.enums.CommonUseStatus.class);
|
||||
|
||||
public QMapInkx5kEntity(String variable) {
|
||||
this(MapInkx5kEntity.class, forVariable(variable), INITS);
|
||||
}
|
||||
|
||||
public QMapInkx5kEntity(Path<? extends MapInkx5kEntity> path) {
|
||||
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
|
||||
}
|
||||
|
||||
public QMapInkx5kEntity(PathMetadata metadata) {
|
||||
this(metadata, PathInits.getFor(metadata, INITS));
|
||||
}
|
||||
|
||||
public QMapInkx5kEntity(PathMetadata metadata, PathInits inits) {
|
||||
this(MapInkx5kEntity.class, metadata, inits);
|
||||
}
|
||||
|
||||
public QMapInkx5kEntity(Class<? extends MapInkx5kEntity> type, PathMetadata metadata, PathInits inits) {
|
||||
super(type, metadata, inits);
|
||||
this.mapInkx50k = inits.isInitialized("mapInkx50k") ? new QMapInkx50kEntity(forProperty("mapInkx50k")) : null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
import com.querydsl.core.types.dsl.PathInits;
|
||||
|
||||
|
||||
/**
|
||||
* QMapSheetAnalDataInferenceGeomEntity is a Querydsl query type for MapSheetAnalDataInferenceGeomEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
|
||||
public class QMapSheetAnalDataInferenceGeomEntity extends EntityPathBase<MapSheetAnalDataInferenceGeomEntity> {
|
||||
|
||||
private static final long serialVersionUID = -1600559932L;
|
||||
|
||||
private static final PathInits INITS = PathInits.DIRECT2;
|
||||
|
||||
public static final QMapSheetAnalDataInferenceGeomEntity mapSheetAnalDataInferenceGeomEntity = new QMapSheetAnalDataInferenceGeomEntity("mapSheetAnalDataInferenceGeomEntity");
|
||||
|
||||
public final NumberPath<Double> area = createNumber("area", Double.class);
|
||||
|
||||
public final ComparablePath<org.locationtech.jts.geom.Geometry> beforeGeom = createComparable("beforeGeom", org.locationtech.jts.geom.Geometry.class);
|
||||
|
||||
public final NumberPath<Double> cdProb = createNumber("cdProb", Double.class);
|
||||
|
||||
public final StringPath classAfterCd = createString("classAfterCd");
|
||||
|
||||
public final NumberPath<Double> classAfterProb = createNumber("classAfterProb", Double.class);
|
||||
|
||||
public final StringPath classBeforeCd = createString("classBeforeCd");
|
||||
|
||||
public final NumberPath<Double> classBeforeProb = createNumber("classBeforeProb", Double.class);
|
||||
|
||||
public final NumberPath<Integer> compareYyyy = createNumber("compareYyyy", Integer.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDttm = createDateTime("createdDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Long> createdUid = createNumber("createdUid", Long.class);
|
||||
|
||||
public final NumberPath<Long> dataUid = createNumber("dataUid", Long.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> fileCreatedDttm = createDateTime("fileCreatedDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final BooleanPath fileCreatedYn = createBoolean("fileCreatedYn");
|
||||
|
||||
public final StringPath fitState = createString("fitState");
|
||||
|
||||
public final StringPath fitStateCmmnt = createString("fitStateCmmnt");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> fitStateDttm = createDateTime("fitStateDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final ComparablePath<org.locationtech.jts.geom.Geometry> geom = createComparable("geom", org.locationtech.jts.geom.Geometry.class);
|
||||
|
||||
public final ComparablePath<org.locationtech.jts.geom.Geometry> geomCenter = createComparable("geomCenter", org.locationtech.jts.geom.Geometry.class);
|
||||
|
||||
public final NumberPath<Long> geomCnt = createNumber("geomCnt", Long.class);
|
||||
|
||||
public final StringPath geoType = createString("geoType");
|
||||
|
||||
public final NumberPath<Long> geoUid = createNumber("geoUid", Long.class);
|
||||
|
||||
public final NumberPath<Long> labelerUid = createNumber("labelerUid", Long.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> labelSendDttm = createDateTime("labelSendDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final StringPath labelState = createString("labelState");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> labelStateDttm = createDateTime("labelStateDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final StringPath lockYn = createString("lockYn");
|
||||
|
||||
public final QMapInkx5kEntity map5k;
|
||||
|
||||
public final NumberPath<Long> mapSheetNum = createNumber("mapSheetNum", Long.class);
|
||||
|
||||
public final NumberPath<Long> pnu = createNumber("pnu", Long.class);
|
||||
|
||||
public final NumberPath<Long> refMapSheetNum = createNumber("refMapSheetNum", Long.class);
|
||||
|
||||
public final StringPath resultUid = createString("resultUid");
|
||||
|
||||
public final NumberPath<Integer> stage = createNumber("stage", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> targetYyyy = createNumber("targetYyyy", Integer.class);
|
||||
|
||||
public final NumberPath<Long> testerUid = createNumber("testerUid", Long.class);
|
||||
|
||||
public final StringPath testState = createString("testState");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> testStateDttm = createDateTime("testStateDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> updatedDttm = createDateTime("updatedDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Long> updatedUid = createNumber("updatedUid", Long.class);
|
||||
|
||||
public final ComparablePath<java.util.UUID> uuid = createComparable("uuid", java.util.UUID.class);
|
||||
|
||||
public QMapSheetAnalDataInferenceGeomEntity(String variable) {
|
||||
this(MapSheetAnalDataInferenceGeomEntity.class, forVariable(variable), INITS);
|
||||
}
|
||||
|
||||
public QMapSheetAnalDataInferenceGeomEntity(Path<? extends MapSheetAnalDataInferenceGeomEntity> path) {
|
||||
this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
|
||||
}
|
||||
|
||||
public QMapSheetAnalDataInferenceGeomEntity(PathMetadata metadata) {
|
||||
this(metadata, PathInits.getFor(metadata, INITS));
|
||||
}
|
||||
|
||||
public QMapSheetAnalDataInferenceGeomEntity(PathMetadata metadata, PathInits inits) {
|
||||
this(MapSheetAnalDataInferenceGeomEntity.class, metadata, inits);
|
||||
}
|
||||
|
||||
public QMapSheetAnalDataInferenceGeomEntity(Class<? extends MapSheetAnalDataInferenceGeomEntity> type, PathMetadata metadata, PathInits inits) {
|
||||
super(type, metadata, inits);
|
||||
this.map5k = inits.isInitialized("map5k") ? new QMapInkx5kEntity(forProperty("map5k"), inits.get("map5k")) : null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
import com.querydsl.core.types.dsl.PathInits;
|
||||
|
||||
|
||||
/**
|
||||
* QMapSheetAnalInferenceEntity is a Querydsl query type for MapSheetAnalInferenceEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
|
||||
public class QMapSheetAnalInferenceEntity extends EntityPathBase<MapSheetAnalInferenceEntity> {
|
||||
|
||||
private static final long serialVersionUID = -1438711566L;
|
||||
|
||||
public static final QMapSheetAnalInferenceEntity mapSheetAnalInferenceEntity = new QMapSheetAnalInferenceEntity("mapSheetAnalInferenceEntity");
|
||||
|
||||
public final NumberPath<Double> accuracy = createNumber("accuracy", Double.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> analEndDttm = createDateTime("analEndDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Long> analPredSec = createNumber("analPredSec", Long.class);
|
||||
|
||||
public final NumberPath<Long> analSec = createNumber("analSec", Long.class);
|
||||
|
||||
public final StringPath analState = createString("analState");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> analStrtDttm = createDateTime("analStrtDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final StringPath analTargetType = createString("analTargetType");
|
||||
|
||||
public final StringPath analTitle = createString("analTitle");
|
||||
|
||||
public final StringPath baseMapSheetNum = createString("baseMapSheetNum");
|
||||
|
||||
public final NumberPath<Integer> compareYyyy = createNumber("compareYyyy", Integer.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDttm = createDateTime("createdDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Long> createdUid = createNumber("createdUid", Long.class);
|
||||
|
||||
public final NumberPath<Long> detectingCnt = createNumber("detectingCnt", Long.class);
|
||||
|
||||
public final StringPath detectingDescription = createString("detectingDescription");
|
||||
|
||||
public final StringPath detectionDataOption = createString("detectionDataOption");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> gukyuinApplyDttm = createDateTime("gukyuinApplyDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final StringPath gukyuinUsed = createString("gukyuinUsed");
|
||||
|
||||
public final MapPath<String, Object, SimplePath<Object>> hyperParams = this.<String, Object, SimplePath<Object>>createMap("hyperParams", String.class, Object.class, SimplePath.class);
|
||||
|
||||
public final NumberPath<Long> id = createNumber("id", Long.class);
|
||||
|
||||
public final StringPath inspectionClosedYn = createString("inspectionClosedYn");
|
||||
|
||||
public final StringPath labelingClosedYn = createString("labelingClosedYn");
|
||||
|
||||
public final NumberPath<Long> learnId = createNumber("learnId", Long.class);
|
||||
|
||||
public final StringPath modelM1Ver = createString("modelM1Ver");
|
||||
|
||||
public final StringPath modelM2Ver = createString("modelM2Ver");
|
||||
|
||||
public final StringPath modelM3Ver = createString("modelM3Ver");
|
||||
|
||||
public final NumberPath<Long> modelUid = createNumber("modelUid", Long.class);
|
||||
|
||||
public final NumberPath<Long> modelVerUid = createNumber("modelVerUid", Long.class);
|
||||
|
||||
public final StringPath resultUrl = createString("resultUrl");
|
||||
|
||||
public final StringPath serverIds = createString("serverIds");
|
||||
|
||||
public final NumberPath<Integer> stage = createNumber("stage", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> targetYyyy = createNumber("targetYyyy", Integer.class);
|
||||
|
||||
public final StringPath testRate = createString("testRate");
|
||||
|
||||
public final ListPath<Double, NumberPath<Double>> tranningRate = this.<Double, NumberPath<Double>>createList("tranningRate", Double.class, NumberPath.class, PathInits.DIRECT2);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> updatedDttm = createDateTime("updatedDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Long> updatedUid = createNumber("updatedUid", Long.class);
|
||||
|
||||
public final ComparablePath<java.util.UUID> uuid = createComparable("uuid", java.util.UUID.class);
|
||||
|
||||
public final ListPath<Double, NumberPath<Double>> validationRate = this.<Double, NumberPath<Double>>createList("validationRate", Double.class, NumberPath.class, PathInits.DIRECT2);
|
||||
|
||||
public QMapSheetAnalInferenceEntity(String variable) {
|
||||
super(MapSheetAnalInferenceEntity.class, forVariable(variable));
|
||||
}
|
||||
|
||||
public QMapSheetAnalInferenceEntity(Path<? extends MapSheetAnalInferenceEntity> path) {
|
||||
super(path.getType(), path.getMetadata());
|
||||
}
|
||||
|
||||
public QMapSheetAnalInferenceEntity(PathMetadata metadata) {
|
||||
super(MapSheetAnalInferenceEntity.class, metadata);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
|
||||
|
||||
/**
|
||||
* QMapSheetLearnDataGeomEntity is a Querydsl query type for MapSheetLearnDataGeomEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
|
||||
public class QMapSheetLearnDataGeomEntity extends EntityPathBase<MapSheetLearnDataGeomEntity> {
|
||||
|
||||
private static final long serialVersionUID = 1704278203L;
|
||||
|
||||
public static final QMapSheetLearnDataGeomEntity mapSheetLearnDataGeomEntity = new QMapSheetLearnDataGeomEntity("mapSheetLearnDataGeomEntity");
|
||||
|
||||
public final QCommonDateEntity _super = new QCommonDateEntity(this);
|
||||
|
||||
public final NumberPath<Integer> afterYyyy = createNumber("afterYyyy", Integer.class);
|
||||
|
||||
public final NumberPath<Double> area = createNumber("area", Double.class);
|
||||
|
||||
public final NumberPath<Integer> beforeYyyy = createNumber("beforeYyyy", Integer.class);
|
||||
|
||||
public final StringPath classAfterCd = createString("classAfterCd");
|
||||
|
||||
public final StringPath classBeforeCd = createString("classBeforeCd");
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDate = _super.createdDate;
|
||||
|
||||
public final BooleanPath fileCreateYn = createBoolean("fileCreateYn");
|
||||
|
||||
public final ComparablePath<org.locationtech.jts.geom.Geometry> geom = createComparable("geom", org.locationtech.jts.geom.Geometry.class);
|
||||
|
||||
public final NumberPath<Long> geoUid = createNumber("geoUid", Long.class);
|
||||
|
||||
//inherited
|
||||
public final DateTimePath<java.time.ZonedDateTime> modifiedDate = _super.modifiedDate;
|
||||
|
||||
public QMapSheetLearnDataGeomEntity(String variable) {
|
||||
super(MapSheetLearnDataGeomEntity.class, forVariable(variable));
|
||||
}
|
||||
|
||||
public QMapSheetLearnDataGeomEntity(Path<? extends MapSheetLearnDataGeomEntity> path) {
|
||||
super(path.getType(), path.getMetadata());
|
||||
}
|
||||
|
||||
public QMapSheetLearnDataGeomEntity(PathMetadata metadata) {
|
||||
super(MapSheetLearnDataGeomEntity.class, metadata);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.kamco.cd.kamcoback.postgres.entity;
|
||||
|
||||
import static com.querydsl.core.types.PathMetadataFactory.*;
|
||||
|
||||
import com.querydsl.core.types.dsl.*;
|
||||
|
||||
import com.querydsl.core.types.PathMetadata;
|
||||
import javax.annotation.processing.Generated;
|
||||
import com.querydsl.core.types.Path;
|
||||
|
||||
|
||||
/**
|
||||
* QMapSheetLearnEntity is a Querydsl query type for MapSheetLearnEntity
|
||||
*/
|
||||
@Generated("com.querydsl.codegen.DefaultEntitySerializer")
|
||||
public class QMapSheetLearnEntity extends EntityPathBase<MapSheetLearnEntity> {
|
||||
|
||||
private static final long serialVersionUID = 1571348757L;
|
||||
|
||||
public static final QMapSheetLearnEntity mapSheetLearnEntity = new QMapSheetLearnEntity("mapSheetLearnEntity");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> applyDttm = createDateTime("applyDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final StringPath applyStatus = createString("applyStatus");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> applyStatusDttm = createDateTime("applyStatusDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final BooleanPath applyYn = createBoolean("applyYn");
|
||||
|
||||
public final StringPath chnDtctMstId = createString("chnDtctMstId");
|
||||
|
||||
public final NumberPath<Integer> compareYyyy = createNumber("compareYyyy", Integer.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> createdDttm = createDateTime("createdDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Long> createdUid = createNumber("createdUid", Long.class);
|
||||
|
||||
public final NumberPath<Long> detectEndCnt = createNumber("detectEndCnt", Long.class);
|
||||
|
||||
public final NumberPath<Long> detectingCnt = createNumber("detectingCnt", Long.class);
|
||||
|
||||
public final StringPath detectOption = createString("detectOption");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> elapsedTime = createDateTime("elapsedTime", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Long> id = createNumber("id", Long.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> inferEndDttm = createDateTime("inferEndDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> inferStartDttm = createDateTime("inferStartDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Integer> m1CompletedJobs = createNumber("m1CompletedJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> m1FailedJobs = createNumber("m1FailedJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Long> m1ModelBatchId = createNumber("m1ModelBatchId", Long.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> m1ModelEndDttm = createDateTime("m1ModelEndDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> m1ModelStartDttm = createDateTime("m1ModelStartDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final ComparablePath<java.util.UUID> m1ModelUuid = createComparable("m1ModelUuid", java.util.UUID.class);
|
||||
|
||||
public final NumberPath<Integer> m1PendingJobs = createNumber("m1PendingJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> m1RunningJobs = createNumber("m1RunningJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> m2CompletedJobs = createNumber("m2CompletedJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> m2FailedJobs = createNumber("m2FailedJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Long> m2ModelBatchId = createNumber("m2ModelBatchId", Long.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> m2ModelEndDttm = createDateTime("m2ModelEndDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> m2ModelStartDttm = createDateTime("m2ModelStartDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final ComparablePath<java.util.UUID> m2ModelUuid = createComparable("m2ModelUuid", java.util.UUID.class);
|
||||
|
||||
public final NumberPath<Integer> m2PendingJobs = createNumber("m2PendingJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> m2RunningJobs = createNumber("m2RunningJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> m3CompletedJobs = createNumber("m3CompletedJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> m3FailedJobs = createNumber("m3FailedJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Long> m3ModelBatchId = createNumber("m3ModelBatchId", Long.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> m3ModelEndDttm = createDateTime("m3ModelEndDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> m3ModelStartDttm = createDateTime("m3ModelStartDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final ComparablePath<java.util.UUID> m3ModelUuid = createComparable("m3ModelUuid", java.util.UUID.class);
|
||||
|
||||
public final NumberPath<Integer> m3PendingJobs = createNumber("m3PendingJobs", Integer.class);
|
||||
|
||||
public final NumberPath<Integer> m3RunningJobs = createNumber("m3RunningJobs", Integer.class);
|
||||
|
||||
public final StringPath mapSheetCnt = createString("mapSheetCnt");
|
||||
|
||||
public final StringPath mapSheetScope = createString("mapSheetScope");
|
||||
|
||||
public final StringPath modelComparePath = createString("modelComparePath");
|
||||
|
||||
public final StringPath modelTargetPath = createString("modelTargetPath");
|
||||
|
||||
public final StringPath runningModelType = createString("runningModelType");
|
||||
|
||||
public final NumberPath<Integer> stage = createNumber("stage", Integer.class);
|
||||
|
||||
public final StringPath status = createString("status");
|
||||
|
||||
public final NumberPath<Integer> targetYyyy = createNumber("targetYyyy", Integer.class);
|
||||
|
||||
public final StringPath title = createString("title");
|
||||
|
||||
public final NumberPath<Long> totalJobs = createNumber("totalJobs", Long.class);
|
||||
|
||||
public final StringPath uid = createString("uid");
|
||||
|
||||
public final DateTimePath<java.time.ZonedDateTime> updatedDttm = createDateTime("updatedDttm", java.time.ZonedDateTime.class);
|
||||
|
||||
public final NumberPath<Long> updatedUid = createNumber("updatedUid", Long.class);
|
||||
|
||||
public final ComparablePath<java.util.UUID> uuid = createComparable("uuid", java.util.UUID.class);
|
||||
|
||||
public QMapSheetLearnEntity(String variable) {
|
||||
super(MapSheetLearnEntity.class, forVariable(variable));
|
||||
}
|
||||
|
||||
public QMapSheetLearnEntity(Path<? extends MapSheetLearnEntity> path) {
|
||||
super(path.getType(), path.getMetadata());
|
||||
}
|
||||
|
||||
public QMapSheetLearnEntity(PathMetadata metadata) {
|
||||
super(MapSheetLearnEntity.class, metadata);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
663
gukyuin/state-check/build/reports/problems/problems-report.html
Normal file
663
gukyuin/state-check/build/reports/problems/problems-report.html
Normal file
File diff suppressed because one or more lines are too long
1
gukyuin/state-check/build/resolvedMainClassName
Normal file
1
gukyuin/state-check/build/resolvedMainClassName
Normal file
@@ -0,0 +1 @@
|
||||
com.kamco.cd.kamcoback.KamcoBackApplication
|
||||
4
gukyuin/state-check/build/resources/main/application.yml
Normal file
4
gukyuin/state-check/build/resources/main/application.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
server:
|
||||
port: 9080
|
||||
|
||||
|
||||
71
gukyuin/state-check/build/resources/main/application_dev.yml
Normal file
71
gukyuin/state-check/build/resources/main/application_dev.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
server:
|
||||
port: 9080
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: label-to-review
|
||||
profiles:
|
||||
active: dev # 사용할 프로파일 지정 (ex. dev, prod, test)
|
||||
|
||||
datasource:
|
||||
url: jdbc:postgresql://192.168.2.127:15432/kamco_cds
|
||||
#url: jdbc:postgresql://localhost:5432/kamco_cds
|
||||
username: kamco_cds
|
||||
password: kamco_cds_Q!W@E#R$
|
||||
hikari:
|
||||
minimum-idle: 1
|
||||
maximum-pool-size: 5
|
||||
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: update # 테이블이 없으면 생성, 있으면 업데이트
|
||||
properties:
|
||||
hibernate:
|
||||
jdbc:
|
||||
batch_size: 50
|
||||
default_batch_fetch_size: 100
|
||||
logging:
|
||||
level:
|
||||
root: INFO
|
||||
org.springframework.web: DEBUG
|
||||
org.springframework.security: DEBUG
|
||||
|
||||
# 헬스체크 노이즈 핵심만 다운
|
||||
org.springframework.security.web.FilterChainProxy: INFO
|
||||
org.springframework.security.web.authentication.AnonymousAuthenticationFilter: INFO
|
||||
org.springframework.security.web.authentication.Http403ForbiddenEntryPoint: INFO
|
||||
org.springframework.web.servlet.DispatcherServlet: INFO
|
||||
# actuator
|
||||
management:
|
||||
health:
|
||||
readinessstate:
|
||||
enabled: true
|
||||
livenessstate:
|
||||
enabled: true
|
||||
endpoint:
|
||||
health:
|
||||
probes:
|
||||
enabled: true
|
||||
show-details: always
|
||||
endpoints:
|
||||
jmx:
|
||||
exposure:
|
||||
exclude: "*"
|
||||
web:
|
||||
base-path: /monitor
|
||||
exposure:
|
||||
include:
|
||||
- "health"
|
||||
|
||||
file:
|
||||
#sync-root-dir: D:/kamco-nfs/images/
|
||||
sync-root-dir: /kamco-nfs/images/
|
||||
sync-tmp-dir: ${file.sync-root-dir}/tmp
|
||||
sync-file-extention: tfw,tif
|
||||
sync-auto-exception-start-year: 2025
|
||||
sync-auto-exception-before-year-cnt: 3
|
||||
|
||||
gukyuin:
|
||||
#url: http://localhost:8080
|
||||
url: http://192.168.2.129:5301
|
||||
cdi: ${gukyuin.url}/api/kcd/cdi
|
||||
@@ -0,0 +1,71 @@
|
||||
server:
|
||||
port: 9080
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: imagery-make-dataset
|
||||
profiles:
|
||||
active: local # 사용할 프로파일 지정 (ex. dev, prod, test)
|
||||
|
||||
datasource:
|
||||
url: jdbc:postgresql://192.168.2.127:15432/kamco_cds
|
||||
#url: jdbc:postgresql://localhost:5432/kamco_cds
|
||||
username: kamco_cds
|
||||
password: kamco_cds_Q!W@E#R$
|
||||
hikari:
|
||||
minimum-idle: 1
|
||||
maximum-pool-size: 5
|
||||
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: update # 테이블이 없으면 생성, 있으면 업데이트
|
||||
properties:
|
||||
hibernate:
|
||||
jdbc:
|
||||
batch_size: 50
|
||||
default_batch_fetch_size: 100
|
||||
logging:
|
||||
level:
|
||||
root: INFO
|
||||
org.springframework.web: DEBUG
|
||||
org.springframework.security: DEBUG
|
||||
|
||||
# 헬스체크 노이즈 핵심만 다운
|
||||
org.springframework.security.web.FilterChainProxy: INFO
|
||||
org.springframework.security.web.authentication.AnonymousAuthenticationFilter: INFO
|
||||
org.springframework.security.web.authentication.Http403ForbiddenEntryPoint: INFO
|
||||
org.springframework.web.servlet.DispatcherServlet: INFO
|
||||
# actuator
|
||||
management:
|
||||
health:
|
||||
readinessstate:
|
||||
enabled: true
|
||||
livenessstate:
|
||||
enabled: true
|
||||
endpoint:
|
||||
health:
|
||||
probes:
|
||||
enabled: true
|
||||
show-details: always
|
||||
endpoints:
|
||||
jmx:
|
||||
exposure:
|
||||
exclude: "*"
|
||||
web:
|
||||
base-path: /monitor
|
||||
exposure:
|
||||
include:
|
||||
- "health"
|
||||
|
||||
file:
|
||||
#sync-root-dir: D:/kamco-nfs/images/
|
||||
sync-root-dir: /kamco-nfs/images/
|
||||
sync-tmp-dir: ${file.sync-root-dir}/tmp
|
||||
sync-file-extention: tfw,tif
|
||||
sync-auto-exception-start-year: 2025
|
||||
sync-auto-exception-before-year-cnt: 3
|
||||
|
||||
gukyuin:
|
||||
#url: http://localhost:8080
|
||||
url: http://192.168.2.129:5301
|
||||
cdi: ${gukyuin.url}/api/kcd/cdi
|
||||
@@ -0,0 +1,71 @@
|
||||
server:
|
||||
port: 9080
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: imagery-make-dataset
|
||||
profiles:
|
||||
active: prod # 사용할 프로파일 지정 (ex. dev, prod, test)
|
||||
|
||||
datasource:
|
||||
url: jdbc:postgresql://192.168.2.127:15432/kamco_cds
|
||||
#url: jdbc:postgresql://localhost:5432/kamco_cds
|
||||
username: kamco_cds
|
||||
password: kamco_cds_Q!W@E#R$
|
||||
hikari:
|
||||
minimum-idle: 1
|
||||
maximum-pool-size: 5
|
||||
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: update # 테이블이 없으면 생성, 있으면 업데이트
|
||||
properties:
|
||||
hibernate:
|
||||
jdbc:
|
||||
batch_size: 50
|
||||
default_batch_fetch_size: 100
|
||||
logging:
|
||||
level:
|
||||
root: INFO
|
||||
org.springframework.web: DEBUG
|
||||
org.springframework.security: DEBUG
|
||||
|
||||
# 헬스체크 노이즈 핵심만 다운
|
||||
org.springframework.security.web.FilterChainProxy: INFO
|
||||
org.springframework.security.web.authentication.AnonymousAuthenticationFilter: INFO
|
||||
org.springframework.security.web.authentication.Http403ForbiddenEntryPoint: INFO
|
||||
org.springframework.web.servlet.DispatcherServlet: INFO
|
||||
# actuator
|
||||
management:
|
||||
health:
|
||||
readinessstate:
|
||||
enabled: true
|
||||
livenessstate:
|
||||
enabled: true
|
||||
endpoint:
|
||||
health:
|
||||
probes:
|
||||
enabled: true
|
||||
show-details: always
|
||||
endpoints:
|
||||
jmx:
|
||||
exposure:
|
||||
exclude: "*"
|
||||
web:
|
||||
base-path: /monitor
|
||||
exposure:
|
||||
include:
|
||||
- "health"
|
||||
|
||||
file:
|
||||
#sync-root-dir: D:/kamco-nfs/images/
|
||||
sync-root-dir: /kamco-nfs/images/
|
||||
sync-tmp-dir: ${file.sync-root-dir}/tmp
|
||||
sync-file-extention: tfw,tif
|
||||
sync-auto-exception-start-year: 2025
|
||||
sync-auto-exception-before-year-cnt: 3
|
||||
|
||||
gukyuin:
|
||||
#url: http://localhost:8080
|
||||
url: http://192.168.2.129:5301
|
||||
cdi: ${gukyuin.url}/api/kcd/cdi
|
||||
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Chunk Upload Test</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>대용량 파일 청크 업로드 테스트</h2>
|
||||
|
||||
* Chunk 테스트 사이즈 10M (10 * 1024 * 1024) - 성능에 따라 변경가능<br><br>
|
||||
|
||||
* 업로드 API선택</br></br>
|
||||
<select name="apiUrl" id="apiUrl" style="width:600px;height:40px;">
|
||||
<option value="/api/model/file-chunk-upload">모델파일Chunk업로드 ( /api/model/file-chunk-upload )</option>
|
||||
<option value="/api/upload/file-chunk-upload">파일Chunk업로드(공통) ( /api/upload/file-chunk-upload )</option>
|
||||
</select>
|
||||
<br><br>
|
||||
* 파일첨부<br><br>
|
||||
<input type="file" id="chunkFile" style="height:40px;"><br><br>
|
||||
<button onclick="startUpload()" style="height:40px;">업로드 시작</button>
|
||||
<br><br><br><br>
|
||||
* 업로드시 업로드 이력을 추적하기 위해 UUID생성해서 전달(파일병합시 사용)(script 예제참고)</br></br>
|
||||
UUID : <input id="uuid" name="uuid" value="" style="width:300px;height:30px;" readonly><br><br>
|
||||
|
||||
* API 호출시 파일정보 추출해서 자동 할당해야 함.(script 예제참고)</br></br>
|
||||
chunkIndex : <input style="height:30px;" id="chunkIndex" placeholder="chunkIndex" readonly><br><br>
|
||||
chunkTotalIndex : <input style="height:30px;" id="chunkTotalIndex" placeholder="chunkTotalIndex" readonly ><br><br>
|
||||
|
||||
* API 호출시 파일정보 추출해서 자동 할당해야 함.(script 예제참고)</br></br>
|
||||
fileSize : <input style="height:30px;" id="fileSize" placeholder="fileSize" readonly><br><br>
|
||||
<!--
|
||||
fileHash : <input id="fileHash" placeholder="fileHash"><br><br> -->
|
||||
|
||||
|
||||
<br><br>
|
||||
* 진행율(%)</br></br>
|
||||
<div style="width:500px;height:30px;border:1px solid #cccccc;"><div id="prgssbar" style="width:100%;height:30px;background:#eeeeee;"></div></div>
|
||||
<br><br>
|
||||
* 결과메세지</br></br>
|
||||
<div id="status" style="padding:20px;width:1200px;height:600px;border:1px solid #000000;"></div>
|
||||
|
||||
<script>
|
||||
async function startUpload() {
|
||||
|
||||
const apiUrl = document.getElementById('apiUrl').value;
|
||||
const file = document.getElementById('chunkFile').files[0];
|
||||
const fileName = file.name;
|
||||
//const datasetUid = Number(document.getElementById('datasetUid').value);
|
||||
//const chunkIndex = document.getElementById('chunkIndex').value;
|
||||
if (!file) return alert("파일을 선택하세요.");
|
||||
|
||||
const CHUNK_SIZE = 10 * 1024 * 1024; // 5MB
|
||||
const fileSize = file.size;
|
||||
var totalChunks = Math.ceil(fileSize / CHUNK_SIZE);
|
||||
const chunkTotalIndex = totalChunks - 1;
|
||||
const uuid = crypto.randomUUID(); // 고유 ID 생성
|
||||
|
||||
//var uuid = "";
|
||||
|
||||
|
||||
document.getElementById('uuid').value = uuid;
|
||||
document.getElementById('fileSize').value = file.size;
|
||||
document.getElementById('chunkTotalIndex').value = chunkTotalIndex;
|
||||
|
||||
|
||||
for (let i = 0; i < totalChunks; i++) {
|
||||
//for (let i = 0; i < 1; i++) {
|
||||
const start = i * CHUNK_SIZE;
|
||||
const end = Math.min(start + CHUNK_SIZE, file.size);
|
||||
const chunk = file.slice(start, end);
|
||||
|
||||
document.getElementById('chunkIndex').value = i;
|
||||
|
||||
const formData = new FormData();
|
||||
formData.append("uuid", uuid);
|
||||
formData.append("fileSize", fileSize);
|
||||
formData.append("fileName", fileName);
|
||||
formData.append("chunkIndex", i);
|
||||
formData.append("chunkTotalIndex", chunkTotalIndex);
|
||||
formData.append("chunkFile", chunk);
|
||||
|
||||
try {
|
||||
const response = await fetch(apiUrl, { method: 'POST', body: formData });
|
||||
|
||||
// 2. 응답 상태 확인 (200 OK 등)
|
||||
if (!response.ok) {
|
||||
throw new Error(`서버 에러: ${response.status}`);
|
||||
}
|
||||
|
||||
// 3. 서버가 보낸 데이터 읽기 (JSON 형태라고 가정)
|
||||
const result = await response.json();
|
||||
document.getElementById('status').innerText = JSON.stringify(result, null, 2);
|
||||
if( result.data.res != "success")
|
||||
{
|
||||
//오류 경고창 띄우는 것으로 처리하시면 됩니다.
|
||||
break;
|
||||
}
|
||||
|
||||
document.getElementById('prgssbar').style.width = result.data.uploadRate+"%";
|
||||
|
||||
} catch (error) {
|
||||
console.error(`${i}번째 청크 업로드 실패:`, error);
|
||||
break; // 오류 발생 시 중단
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 모든 청크 전송 후 최종 완료 요청
|
||||
//var mergeResult = await completeUpload(uuid);
|
||||
//document.getElementById('status').innerText = JSON.stringify(mergeResult, null, 2);
|
||||
|
||||
}
|
||||
|
||||
|
||||
async function completeUpload(uuid) {
|
||||
try {
|
||||
const response = await fetch(`/api/upload/chunk-upload-complete/${uuid}`, {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`서ver 응답 에러: ${response.status}`);
|
||||
}
|
||||
|
||||
const result = await response.json();
|
||||
return result;
|
||||
|
||||
} catch (error) {
|
||||
console.error("완료 요청 중 오류 발생:", error);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
12
gukyuin/state-check/build/tmp/bootJar/MANIFEST.MF
Normal file
12
gukyuin/state-check/build/tmp/bootJar/MANIFEST.MF
Normal file
@@ -0,0 +1,12 @@
|
||||
Manifest-Version: 1.0
|
||||
Main-Class: org.springframework.boot.loader.launch.JarLauncher
|
||||
Start-Class: com.kamco.cd.kamcoback.KamcoBackApplication
|
||||
Spring-Boot-Version: 3.5.7
|
||||
Spring-Boot-Classes: BOOT-INF/classes/
|
||||
Spring-Boot-Lib: BOOT-INF/lib/
|
||||
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
|
||||
Spring-Boot-Layers-Index: BOOT-INF/layers.idx
|
||||
Build-Jdk-Spec: 21
|
||||
Implementation-Title: kamco-state-check-job
|
||||
Implementation-Version: 0.0.1-SNAPSHOT
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
1
|
||||
35
gukyuin/state-check/docker-compose-dev.yml
Normal file
35
gukyuin/state-check/docker-compose-dev.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
services:
|
||||
kamco-changedetection-api:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile-dev
|
||||
args:
|
||||
UID: 1000 # manager01 UID
|
||||
GID: 1000 # manager01 GID
|
||||
image: kamco-changedetection-api:${IMAGE_TAG:-latest}
|
||||
container_name: kamco-changedetection-api
|
||||
user: "1000:1000"
|
||||
ports:
|
||||
- "7100:8080"
|
||||
environment:
|
||||
- SPRING_PROFILES_ACTIVE=dev
|
||||
- TZ=Asia/Seoul
|
||||
volumes:
|
||||
- /mnt/nfs_share/images:/app/original-images
|
||||
- /mnt/nfs_share/model_output:/app/model-outputs
|
||||
- /mnt/nfs_share/train_dataset:/app/train-dataset
|
||||
- /mnt/nfs_share/tmp:/app/tmp
|
||||
- /kamco-nfs:/kamco-nfs
|
||||
networks:
|
||||
- kamco-cds
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: [ "CMD", "curl", "-f", "http://localhost:8080/monitor/health" ]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 40s
|
||||
|
||||
networks:
|
||||
kamco-cds:
|
||||
external: true
|
||||
BIN
gukyuin/state-check/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
gukyuin/state-check/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
7
gukyuin/state-check/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
7
gukyuin/state-check/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
251
gukyuin/state-check/gradlew
vendored
Normal file
251
gukyuin/state-check/gradlew
vendored
Normal file
@@ -0,0 +1,251 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://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.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh Gradle
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH="\\\"\\\""
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
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
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
94
gukyuin/state-check/gradlew.bat
vendored
Normal file
94
gukyuin/state-check/gradlew.bat
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
4
gukyuin/state-check/http/CommonCode.http
Normal file
4
gukyuin/state-check/http/CommonCode.http
Normal file
@@ -0,0 +1,4 @@
|
||||
### GET getByCodeId
|
||||
GET http://localhost:8080/api/code/1
|
||||
Content-Type: application/json
|
||||
###
|
||||
598
gukyuin/state-check/intellij-java-google-style.xml
Normal file
598
gukyuin/state-check/intellij-java-google-style.xml
Normal file
@@ -0,0 +1,598 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<code_scheme name="GoogleStyle">
|
||||
<option name="OTHER_INDENT_OPTIONS">
|
||||
<value>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
<option name="USE_TAB_CHARACTER" value="false" />
|
||||
<option name="SMART_TABS" value="false" />
|
||||
<option name="LABEL_INDENT_SIZE" value="0" />
|
||||
<option name="LABEL_INDENT_ABSOLUTE" value="false" />
|
||||
<option name="USE_RELATIVE_INDENTS" value="false" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
|
||||
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
|
||||
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
|
||||
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
||||
<value />
|
||||
</option>
|
||||
<option name="IMPORT_LAYOUT_TABLE">
|
||||
<value>
|
||||
<package name="" withSubpackages="true" static="true" />
|
||||
<emptyLine />
|
||||
<package name="" withSubpackages="true" static="false" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="RIGHT_MARGIN" value="180" />
|
||||
<option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
|
||||
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
|
||||
<option name="JD_P_AT_EMPTY_LINES" value="false" />
|
||||
<option name="JD_KEEP_EMPTY_PARAMETER" value="false" />
|
||||
<option name="JD_KEEP_EMPTY_EXCEPTION" value="false" />
|
||||
<option name="JD_KEEP_EMPTY_RETURN" value="false" />
|
||||
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
||||
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="0" />
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="0" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||
<option name="ALIGN_MULTILINE_FOR" value="false" />
|
||||
<option name="CALL_PARAMETERS_WRAP" value="1" />
|
||||
<option name="METHOD_PARAMETERS_WRAP" value="1" />
|
||||
<option name="EXTENDS_LIST_WRAP" value="1" />
|
||||
<option name="THROWS_KEYWORD_WRAP" value="1" />
|
||||
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
|
||||
<option name="TERNARY_OPERATION_WRAP" value="1" />
|
||||
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
||||
<option name="FOR_STATEMENT_WRAP" value="1" />
|
||||
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
|
||||
<option name="WRAP_COMMENTS" value="true" />
|
||||
<option name="IF_BRACE_FORCE" value="3" />
|
||||
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
||||
<option name="WHILE_BRACE_FORCE" value="3" />
|
||||
<option name="FOR_BRACE_FORCE" value="3" />
|
||||
<option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
|
||||
<AndroidXmlCodeStyleSettings>
|
||||
<option name="USE_CUSTOM_SETTINGS" value="true" />
|
||||
<option name="LAYOUT_SETTINGS">
|
||||
<value>
|
||||
<option name="INSERT_BLANK_LINE_BEFORE_TAG" value="false" />
|
||||
</value>
|
||||
</option>
|
||||
</AndroidXmlCodeStyleSettings>
|
||||
<JSCodeStyleSettings>
|
||||
<option name="INDENT_CHAINED_CALLS" value="false" />
|
||||
</JSCodeStyleSettings>
|
||||
<Python>
|
||||
<option name="USE_CONTINUATION_INDENT_FOR_ARGUMENTS" value="true" />
|
||||
</Python>
|
||||
<TypeScriptCodeStyleSettings>
|
||||
<option name="INDENT_CHAINED_CALLS" value="false" />
|
||||
</TypeScriptCodeStyleSettings>
|
||||
<XML>
|
||||
<option name="XML_ALIGN_ATTRIBUTES" value="false" />
|
||||
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
|
||||
</XML>
|
||||
<codeStyleSettings language="CSS">
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="ECMA Script Level 4">
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||
<option name="ALIGN_MULTILINE_FOR" value="false" />
|
||||
<option name="CALL_PARAMETERS_WRAP" value="1" />
|
||||
<option name="METHOD_PARAMETERS_WRAP" value="1" />
|
||||
<option name="EXTENDS_LIST_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
|
||||
<option name="TERNARY_OPERATION_WRAP" value="1" />
|
||||
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
||||
<option name="FOR_STATEMENT_WRAP" value="1" />
|
||||
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
|
||||
<option name="IF_BRACE_FORCE" value="3" />
|
||||
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
||||
<option name="WHILE_BRACE_FORCE" value="3" />
|
||||
<option name="FOR_BRACE_FORCE" value="3" />
|
||||
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="HTML">
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="JAVA">
|
||||
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||
<option name="ALIGN_MULTILINE_RESOURCES" value="false" />
|
||||
<option name="ALIGN_MULTILINE_FOR" value="false" />
|
||||
<option name="CALL_PARAMETERS_WRAP" value="1" />
|
||||
<option name="METHOD_PARAMETERS_WRAP" value="1" />
|
||||
<option name="EXTENDS_LIST_WRAP" value="1" />
|
||||
<option name="THROWS_KEYWORD_WRAP" value="1" />
|
||||
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
|
||||
<option name="TERNARY_OPERATION_WRAP" value="1" />
|
||||
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
||||
<option name="FOR_STATEMENT_WRAP" value="1" />
|
||||
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
|
||||
<option name="WRAP_COMMENTS" value="true" />
|
||||
<option name="IF_BRACE_FORCE" value="3" />
|
||||
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
||||
<option name="WHILE_BRACE_FORCE" value="3" />
|
||||
<option name="FOR_BRACE_FORCE" value="3" />
|
||||
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="JSON">
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="JavaScript">
|
||||
<option name="RIGHT_MARGIN" value="80" />
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||
<option name="ALIGN_MULTILINE_FOR" value="false" />
|
||||
<option name="CALL_PARAMETERS_WRAP" value="1" />
|
||||
<option name="METHOD_PARAMETERS_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
|
||||
<option name="TERNARY_OPERATION_WRAP" value="1" />
|
||||
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
||||
<option name="FOR_STATEMENT_WRAP" value="1" />
|
||||
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
|
||||
<option name="IF_BRACE_FORCE" value="3" />
|
||||
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
||||
<option name="WHILE_BRACE_FORCE" value="3" />
|
||||
<option name="FOR_BRACE_FORCE" value="3" />
|
||||
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="PROTO">
|
||||
<option name="RIGHT_MARGIN" value="80" />
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="protobuf">
|
||||
<option name="RIGHT_MARGIN" value="80" />
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="Python">
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||
<option name="RIGHT_MARGIN" value="80" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="SASS">
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="SCSS">
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="TypeScript">
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="XML">
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
<arrangement>
|
||||
<rules>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:android</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:id</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>style</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:.*Style</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_width</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_height</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_weight</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_margin</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_marginTop</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_marginBottom</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_marginStart</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_marginEnd</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_marginLeft</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_marginRight</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:padding</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:paddingTop</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:paddingBottom</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:paddingStart</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:paddingEnd</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:paddingLeft</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:paddingRight</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res-auto</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/tools</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>.*</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
</rules>
|
||||
</arrangement>
|
||||
</codeStyleSettings>
|
||||
<Objective-C>
|
||||
<option name="INDENT_NAMESPACE_MEMBERS" value="0" />
|
||||
<option name="INDENT_C_STRUCT_MEMBERS" value="2" />
|
||||
<option name="INDENT_CLASS_MEMBERS" value="2" />
|
||||
<option name="INDENT_VISIBILITY_KEYWORDS" value="1" />
|
||||
<option name="INDENT_INSIDE_CODE_BLOCK" value="2" />
|
||||
<option name="KEEP_STRUCTURES_IN_ONE_LINE" value="true" />
|
||||
<option name="FUNCTION_PARAMETERS_WRAP" value="5" />
|
||||
<option name="FUNCTION_CALL_ARGUMENTS_WRAP" value="5" />
|
||||
<option name="TEMPLATE_CALL_ARGUMENTS_WRAP" value="5" />
|
||||
<option name="TEMPLATE_CALL_ARGUMENTS_ALIGN_MULTILINE" value="true" />
|
||||
<option name="ALIGN_INIT_LIST_IN_COLUMNS" value="false" />
|
||||
<option name="SPACE_BEFORE_SUPERCLASS_COLON" value="false" />
|
||||
</Objective-C>
|
||||
<Objective-C-extensions>
|
||||
<option name="GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES" value="ASK" />
|
||||
<option name="RELEASE_STYLE" value="IVAR" />
|
||||
<option name="TYPE_QUALIFIERS_PLACEMENT" value="BEFORE" />
|
||||
<file>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||
</file>
|
||||
<class>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||
</class>
|
||||
<extensions>
|
||||
<pair source="cc" header="h" />
|
||||
<pair source="c" header="h" />
|
||||
</extensions>
|
||||
</Objective-C-extensions>
|
||||
<codeStyleSettings language="ObjectiveC">
|
||||
<option name="RIGHT_MARGIN" value="80" />
|
||||
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1" />
|
||||
<option name="BLANK_LINES_BEFORE_IMPORTS" value="0" />
|
||||
<option name="BLANK_LINES_AFTER_IMPORTS" value="0" />
|
||||
<option name="BLANK_LINES_AROUND_CLASS" value="0" />
|
||||
<option name="BLANK_LINES_AROUND_METHOD" value="0" />
|
||||
<option name="BLANK_LINES_AROUND_METHOD_IN_INTERFACE" value="0" />
|
||||
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="false" />
|
||||
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
|
||||
<option name="FOR_STATEMENT_WRAP" value="1" />
|
||||
<option name="ASSIGNMENT_WRAP" value="1" />
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
</code_scheme>
|
||||
6
gukyuin/state-check/settings.gradle
Normal file
6
gukyuin/state-check/settings.gradle
Normal file
@@ -0,0 +1,6 @@
|
||||
pluginManagement {
|
||||
plugins {
|
||||
id 'org.jetbrains.kotlin.jvm' version '2.2.20'
|
||||
}
|
||||
}
|
||||
rootProject.name = 'kamco-state-check-job'
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.kamco.cd.kamcoback;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableScheduling
|
||||
public class KamcoBackApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(KamcoBackApplication.class, args);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
package com.kamco.cd.kamcoback.code.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.kamco.cd.kamcoback.common.utils.html.HtmlEscapeDeserializer;
|
||||
import com.kamco.cd.kamcoback.common.utils.html.HtmlUnescapeSerializer;
|
||||
import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
public class CommonCodeDto {
|
||||
|
||||
@Schema(name = "CodeAddReq", description = "공통코드 저장 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class AddReq {
|
||||
|
||||
@NotEmpty private String code;
|
||||
@NotEmpty private String name;
|
||||
private String description;
|
||||
private int order;
|
||||
private boolean used;
|
||||
private Long parentId;
|
||||
|
||||
@JsonDeserialize(using = HtmlEscapeDeserializer.class)
|
||||
private String props1;
|
||||
|
||||
@JsonDeserialize(using = HtmlEscapeDeserializer.class)
|
||||
private String props2;
|
||||
|
||||
@JsonDeserialize(using = HtmlEscapeDeserializer.class)
|
||||
private String props3;
|
||||
}
|
||||
|
||||
@Schema(name = "CodeModifyReq", description = "공통코드 수정 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class ModifyReq {
|
||||
|
||||
@NotEmpty private String name;
|
||||
private String description;
|
||||
private boolean used;
|
||||
|
||||
@JsonDeserialize(using = HtmlEscapeDeserializer.class)
|
||||
private String props1;
|
||||
|
||||
@JsonDeserialize(using = HtmlEscapeDeserializer.class)
|
||||
private String props2;
|
||||
|
||||
@JsonDeserialize(using = HtmlEscapeDeserializer.class)
|
||||
private String props3;
|
||||
}
|
||||
|
||||
@Schema(name = "CodeOrderReq", description = "공통코드 순서 변경 정보")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class OrderReq {
|
||||
|
||||
@NotNull private Long id;
|
||||
@NotNull private Integer order;
|
||||
}
|
||||
|
||||
@Schema(name = "CommonCode Basic", description = "공통코드 기본 정보")
|
||||
@Getter
|
||||
public static class Basic {
|
||||
|
||||
private Long id;
|
||||
private String code;
|
||||
private String description;
|
||||
private String name;
|
||||
private Integer order;
|
||||
private Boolean used;
|
||||
private Boolean deleted;
|
||||
private List<CommonCodeDto.Basic> children;
|
||||
|
||||
@JsonFormatDttm private ZonedDateTime createdDttm;
|
||||
|
||||
@JsonFormatDttm private ZonedDateTime updatedDttm;
|
||||
|
||||
@JsonSerialize(using = HtmlUnescapeSerializer.class)
|
||||
private String props1;
|
||||
|
||||
@JsonSerialize(using = HtmlUnescapeSerializer.class)
|
||||
private String props2;
|
||||
|
||||
@JsonSerialize(using = HtmlUnescapeSerializer.class)
|
||||
private String props3;
|
||||
|
||||
@JsonFormatDttm private ZonedDateTime deletedDttm;
|
||||
|
||||
public Basic(
|
||||
Long id,
|
||||
String code,
|
||||
String description,
|
||||
String name,
|
||||
Integer order,
|
||||
Boolean used,
|
||||
Boolean deleted,
|
||||
List<CommonCodeDto.Basic> children,
|
||||
ZonedDateTime createdDttm,
|
||||
ZonedDateTime updatedDttm,
|
||||
String props1,
|
||||
String props2,
|
||||
String props3,
|
||||
ZonedDateTime deletedDttm) {
|
||||
this.id = id;
|
||||
this.code = code;
|
||||
this.description = description;
|
||||
this.name = name;
|
||||
this.order = order;
|
||||
this.used = used;
|
||||
this.deleted = deleted;
|
||||
this.children = children;
|
||||
this.createdDttm = createdDttm;
|
||||
this.updatedDttm = updatedDttm;
|
||||
this.props1 = props1;
|
||||
this.props2 = props2;
|
||||
this.props3 = props3;
|
||||
this.deletedDttm = deletedDttm;
|
||||
}
|
||||
}
|
||||
|
||||
@Schema(name = "SearchReq", description = "검색 요청")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class SearchReq {
|
||||
|
||||
// 검색 조건
|
||||
private String name;
|
||||
|
||||
// 페이징 파라미터
|
||||
private int page = 0;
|
||||
private int size = 20;
|
||||
private String sort;
|
||||
|
||||
public Pageable toPageable() {
|
||||
if (sort != null && !sort.isEmpty()) {
|
||||
String[] sortParams = sort.split(",");
|
||||
String property = sortParams[0];
|
||||
Sort.Direction direction =
|
||||
sortParams.length > 1 ? Sort.Direction.fromString(sortParams[1]) : Sort.Direction.ASC;
|
||||
return PageRequest.of(page, size, Sort.by(direction, property));
|
||||
}
|
||||
return PageRequest.of(page, size);
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
public static class Clazzes {
|
||||
|
||||
private String code;
|
||||
private String name;
|
||||
private Integer order;
|
||||
private String color;
|
||||
|
||||
public Clazzes(String code, String name, Integer order, String color) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
this.order = order;
|
||||
this.color = color;
|
||||
}
|
||||
}
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public static class CodeDto {
|
||||
|
||||
private String code;
|
||||
private String name;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user