커밋 그래프

51 커밋

작성자 SHA1 메시지 날짜
1d764188eb fix(ais): AIS WebClient 버퍼 제한 초과(DataBufferLimitException) 수정 2026-03-18 13:35:10 +09:00
3f0548e5e4 refactor(config): API 인증정보 공통화 및 미사용 설정 제거 (#59)
- ship-api.username/password → api-auth.username/password 공통 설정으로 이동
- 환경별 파일(dev/prod)에서 중복 인증정보 제거
- 미사용 app.batch.api.url/timeout 설정 제거
- MDA 전용 설정파일(application-qa.yml) 삭제
2026-03-17 16:19:28 +09:00
db0461e416 fix(스케줄러): Quartz PostgreSQLDelegate 필터링 제외 — BYTEA 컬럼 읽기 오류 수정 (#12)
- driverDelegateClass를 properties 필터에서 제외하여 PostgreSQLDelegate 유지
- StdJDBCDelegate가 PostgreSQL BYTEA 컬럼을 long으로 읽으려는 오류 해결

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 18:14:04 +09:00
c2ea331b20 fix(스케줄러): Quartz JDBC Store 미적용 수정 — RAMJobStore에서 JDBC Store로 전환 (#12)
- QuartzConfig에 DataSource/QuartzProperties 명시적 주입 (커스텀 빈이 auto-config을 비활성화하는 문제)
- initialize-schema를 never로 변경 (수동 DDL 관리)
- std_snp_data 스키마용 Quartz DDL 스크립트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 17:49:50 +09:00
ce67dcd7e3 feat(global): Job 한글 표시명 DB 관리 및 전체 화면 통합 (#45)
- job_display_name 테이블 신규 생성 (jobName, displayName, apiKey)
- 정적 Map 제거 → DB 캐시 기반 표시명 조회로 전환
- 초기 데이터 시드 20건 (테이블 비어있을 때 자동 삽입)
- 표시명 조회/수정 REST API 추가 (GET/PUT /api/batch/display-names)
- 재수집 이력 생성 시 displayName 우선 적용
- 전체 화면 displayName 통합 (Dashboard, Executions, Recollects, RecollectDetail, Schedules, Timeline)
2026-03-13 14:38:34 +09:00
89e09bcca7 refactor: 미사용 배치 작업 13개 제거 (#40) 2026-03-13 12:53:27 +09:00
01738fa581 feat(ui): 배치 작업 목록 한글 표시명 추가 (#40) 2026-03-13 11:23:03 +09:00
fddcbf5377 feat(risk): IMO 기반 Risk 상세 조회 bypass API 추가 (#39) 2026-03-13 10:55:32 +09:00
e9ef8b9df5 fix(batch): 자동 재수집 파라미터 오버플로우 수정 및 실패 레코드 관리 개선
- retryRecordKeys JobParameter 제거 → DB 직접 조회 (VARCHAR 2500 제한 해결)
- retryCount 세마틱 수정 (0부터 시작, 재수집 실패 시 +1)
- 실패 레코드 Upsert로 중복 방지 (동일 키 1건만 유지)
- 동기 저장으로 RECOLLECT 타이밍 경합 해결
- 재시도 초과 레코드 초기화 API/UI 추가
- 실행 확인 모달 시작/종료일시 항목 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 16:02:49 +09:00
9f8af845a4 fix(ui): 타임라인 상세 화면 이동 오류 수정 및 실행 중 작업 상세 버튼 추가 (#34)
- Timeline 상세 링크 <a href> → <Link to> 변경 (SPA 라우팅 수정)
- WebViewController에 와일드카드 패턴 추가 (새로고침 시 SPA fallback 보장)
- 실행 이력에서 실행 중 작업에도 상세 버튼 표시 (중지/강제종료/상세)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 09:47:37 +09:00
2bc2f1fc32 feat(recollection): 자동 재수집 및 재수집 프로세스 전면 개선 (#30)
- 자동 재수집 리스너(AutoRetryJobExecutionListener) 및 비동기 트리거 서비스 추가
- 실패 레코드 최대 재시도 횟수(3회) 제한으로 무한 루프 방지
- 전용 스레드 풀(autoRetryExecutor) 분리
- last_success_date 복원 시 경합 조건 보호
- 재수집 이력 N+1 쿼리 해결 (벌크 조회)
- 실패 레코드 일괄 RESOLVED 처리 API 추가
- 재수집 이력 CSV 내보내기 API 추가 (UTF-8 BOM)
- 프론트엔드 공유 컴포넌트 추출 (StatCard, CopyButton, ApiLogSection, InfoItem)
- 대시보드 재수집 통계 위젯 추가
- 실행 이력 미해결 건수 COMPLETED 상태만 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:28:23 +09:00
4bed98dbc8 feat: 스키마명 변경 (t_std_snp_data → std_snp_data, t_std_snp_svc → std_snp_svc)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 11:09:56 +09:00
7b2537e85d feat(monitoring): 마지막 수집 완료일시 모니터링 기능 추가
- GET /api/batch/last-collections API 엔드포인트 추가
- BatchLastExecution 엔티티에 apiDesc 컬럼 추가
- 재수집 이력 페이지에 마지막 수집 완료일시 토글 패널 추가
  - 상태 요약 바 (정상/주의/경고 건수)
  - API별 테이블 (성공일시, 경과시간, 상태 뱃지)
- /monitoring SPA 라우트 추가

Closes #17

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 10:47:01 +09:00
481b14a98c Merge pull request 'fix(batch): orphan trigger remove' (#12) from bugfix/ISSUE-002-quartz-orphan-trigger into develop
Reviewed-on: #12
2026-02-27 13:14:28 +09:00
eb8ed22139 feat: 재수집 실패 건 수 표시 2026-02-27 10:57:33 +09:00
0da81a7471 fix(batch): orphan trigger remove 2026-02-27 10:17:57 +09:00
a4d3fab926 feat: 재수집 실패건 재시도 프로세스 추가 및 선박제원정보 수집 최적화 2026-02-26 16:59:57 +09:00
e289aa1611 feat: API 호출 로그 페이징 및 필터 추가 2026-02-24 14:58:30 +09:00
c880b749c4 feat: Ship Last Postion Update Job Modify 2026-02-23 17:24:13 +09:00
92152d0c50 fix: 재수집 관리 및 이력 추가 (#4)
Reviewed-on: #4
Co-authored-by: hyojin kim <hjkim4@gcsc.co.kr>
Co-committed-by: hyojin kim <hjkim4@gcsc.co.kr>
2026-02-20 11:03:36 +09:00
90ffe68be3 feat: 배치 모니터링 React SPA 전환 및 10대 기능 강화
Thymeleaf → React 19 + Vite + Tailwind CSS 4 SPA 전환
- frontend-maven-plugin으로 단일 JAR 배포 유지
- 6개 페이지 lazy 로딩, 5초/30초 폴링 자동 갱신

10대 신규 기능:
- F1: 강제 종료(Abandon) - stale 실행 단건/전체 강제 종료
- F2: Job 실행 날짜 파라미터 (startDate/stopDate)
- F3: Step API 호출 정보 표시 (apiUrl, method, calls)
- F4: 실행 이력 검색 (멀티 Job 필터, 날짜 범위, 페이지네이션)
- F5: Cron 표현식 도우미 (프리셋 + 다음 5회 미리보기)
- F6: 대시보드 실패 통계 (24h/7d, 최근 실패 목록, stale 경고)
- F7: Job 상세 카드 (마지막 실행 상태/시간 + 스케줄 cron)
- F8: 실행 통계 차트 (CSS-only 30일 일별 막대그래프)
- F9: 실패 로그 뷰어 (exitCode/exitMessage 모달)
- F10: 다크모드 (data-theme + CSS 변수 + Tailwind @theme)

추가 개선:
- 실행 이력 멀티 Job 선택 (체크박스 드롭다운 + 칩)
- 스케줄 카드 편집 버튼 (폼 자동 채움 + 수정 모드)
- 검색 모드 폴링 비활성화 (1회 조회 후 수동 갱신)
- pre-commit hook: 프론트엔드 빌드 스킵 플래그 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 12:53:54 +09:00
ce9244ca0a feat: Swagger 문서 보강, Kafka 조건부 설정, AIS 응답 DTO 개선
- Swagger @Operation/@Schema 상세 설명 추가 (검색, 필터, 폴리곤 API)
- Kafka 조건부 활성화 (KafkaAutoConfiguration exclude + @ConditionalOnProperty)
- kafka.enabled=false일 때 Kafka 빈 미생성 (@Nullable 처리)
- AisTargetResponseDto에 classType, core20Mmsi 필드 및 @Schema 추가
- ApiResponse에 @Schema 어노테이션 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 10:40:24 +09:00
a93942d4d6
🔀 용어 표준화 반영 (AIS 제외) (#6)
* 🔧 Schema/Table 하드코딩 제거

* 🔥 BatchSchemaProperties.java 제거 및 @Value Schema 설정 방식 통일

* 🗃️ 용어 표준화

- Facility Port 
- Common Code
- Risk&Compliance
- Movement 
- Event 
- PSC 
- 선박제원정보
2026-02-12 10:27:22 +09:00
f53648290c
🔀 데이터 값 검증 컬럼 추가 (#4)
* 🗃️ PSC : 값 검증 컬럼 추가

* 🗃️ Facility : 값 검증 컬럼 추가

* 🔊 Facility : API Request 로그 추가

* 🗃️ Event : 값 검증 컬럼 추가

* 🗃️ Movement : 값 검증 컬럼 추가

* 🗃️ 공통코드 : 값 검증 컬럼 추가, API 로그 서비스 추가

* 🗃️ IMO 메타 수집 : 값 검증 컬럼 추가, API 로그 서비스 추가

* 🗃️ Risk&Compliance : 값 검증 컬럼 추가

* 🗃️ 선박제원정보 : 값 검증 컬럼 추가, 해시값 비교 프로세스 제거

* 🗃️ schema change : snp_data -> t_snp_data
2026-02-05 18:49:27 +09:00
64a3a55e78 batch_api_log 관리 프로세스 추가 2026-01-15 15:58:20 +09:00
5305f61a41 🔇 Ships API Log Control 2026-01-12 14:41:08 +09:00
e1fa48768e 💥 API 조회 기간 세팅 방식 변경 및 통일 2026-01-08 15:12:06 +09:00
Kim JiMyeung
0a5e2e56af Batch 파라미터 request 적용 2025-12-29 15:35:18 +09:00
Kim JiMyeung
63e9253d7f Movement Method Range형식으로 변경 2025-12-19 13:37:35 +09:00
Kim JiMyeung
e7f4a9d912 AnchorageCalls, Berthcalls, DarkActivity, StsOperations, TerminalCalls Job 개발 2025-12-15 10:09:18 +09:00
Kim JiMyeung
3118df3533 Merge remote-tracking branch 'origin/develop' into dev_ship_movement 2025-12-12 14:48:49 +09:00
090f009529 ShipDetailUpdateJob 개발
- CrewList
- StowageCommodity
- GroupBeneficialOwnerHistory
- ShipManagerHistory
- OperatorHistory
- TechnicalManagerHistory
- BareBoatCharterHistory
- NameHistory
- FlagHistory
- AdditionalInformation
- PandIHistory
- CallSignAndMmsiHistory
- IceClass
- SafetyManagementCertificateHistory
- ClassHistory
- SurveyDatesHistory
- SurveyDatesHistoryUnique
- SisterShipLinks
- StatusHistory
- SpecialFeature
- Thrusters
2025-12-12 13:12:40 +09:00
Kim JiMyeung
ac78a1340a Merge branch 'dev_ship_movement' of https://github.com/GC-IncheonService-KDN/SNP-Batch into dev_ship_movement 2025-12-11 16:31:18 +09:00
Kim JiMyeung
3ee6ae1bf7 pscJob 2025-12-11 16:29:28 +09:00
2a0a80098d Merge branch 'develop' into dev_ship_movement 2025-12-10 12:33:57 +09:00
3dde3d0167 [추가]
- 실시간 선박 위치 조회 API Classtype 구분 파라미터 추가 (core20 테이블 imo 유무로 ClassA, ClassB 분류)
 - html PUT,DELETE, PATCH 메소드 제거 및 POST 메소드 사용 변경 (보안이슈)
2025-12-10 08:14:28 +09:00
Kim JiMyeung
7941396d62 ais/ship_position into dev_ship_movement 2025-12-05 11:00:28 +09:00
Kim JiMyeung
248e9c2c46 /snp-asi url추가 2025-12-05 10:17:08 +09:00
Kim JiMyeung
2671d613f3 merge devlop into dev_ship_movement 2025-12-05 09:44:20 +09:00
55d4dd5886 [수정]
- 파티션 관리 job 추가 (+3일 미리 생성, 14일 이전 파티션 자동drop 설정)
- (임시) GPU 운영 포트 9000번 변경
- ais_target 테이블 일일 파티션구조로 변경 (1일 데이터 약 20GB)
2025-12-04 13:05:00 +09:00
c842e982c8 Merge branch 'dev_ship_movement' into dev_ship_detail
# Conflicts:
#	src/main/java/com/snp/batch/global/config/MaritimeApiWebClientConfig.java
2025-12-02 19:11:29 +09:00
6af2fccbf0 [신규 기능]
- aisTargetImportJob: S&P Global AIS API 연동 (매 분 15초)
- AIS Target 조회 API (MMSI/시간/공간/폴리곤/WKT 검색)
- 항해 조건 필터 검색 API (SOG/COG/Heading/Destination/Status)
- Caffeine 캐시 적용 (TTL 120분, 최대 30만건)
- partitionManagerJob: 매일 1회 일별,월별 파티션 자동 생성

[개선]
- API context-path: /snp-api로 변경 (다른 API 서비스의 Proxy 설정 충돌 방지)
- BaseApiReader 상태 초기화 로직 추가 (재실행 시 0건 버그 수정)
- logback-spring.xml: 로그 파일 분리 및 롤링 정책 적용
2025-12-02 16:24:57 +09:00
Kim JiMyeung
c99b6993a7 빈 배열 처리 로직추가 2025-12-02 12:53:17 +09:00
4ed1070a37 Merge branch 'dev_ship_movement' into dev_ship_detail
# Conflicts:
#	src/main/java/com/snp/batch/global/config/MaritimeApiWebClientConfig.java
2025-11-27 22:20:21 +09:00
f9b20bdc59 🗃️ 운영접속주소 수정 2025-11-27 22:03:09 +09:00
7a405bb969 swagger 운영 주소 추가 2025-11-27 22:00:26 +09:00
906611c9b8 Risk&Compliance Data Import Job 개발 2025-11-27 21:55:46 +09:00
Kim JiMyeung
e44637e1f3 movement 배치 2025-11-27 16:20:05 +09:00
094bd13e36 Core20 : AIS 신호 데이터 업데이트 Job 2025-11-21 16:25:17 +09:00
f84361dc52 🔀 S&P 선박제원정보 증분데이터 수집JOB (Squash)
- Core20, OwnerHistory
2025-11-20 16:56:49 +09:00