Merge pull request 'release: 2026-04-08.2 (13건 커밋)' (#13) from develop into main
All checks were successful
Build and Deploy SNP Global / build-and-deploy (push) Successful in 28s
All checks were successful
Build and Deploy SNP Global / build-and-deploy (push) Successful in 28s
This commit is contained in:
커밋
2fab1b56a3
@ -4,6 +4,11 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [2026-04-08.2]
|
||||||
|
|
||||||
|
### 추가
|
||||||
|
- UpdatedRiskList 엔드포인트 변경 및 Ship 데이터 조회 모듈 추가
|
||||||
|
|
||||||
## [2026-04-08]
|
## [2026-04-08]
|
||||||
|
|
||||||
### 변경
|
### 변경
|
||||||
|
|||||||
@ -39,9 +39,9 @@ public class RiskController extends BaseBypassController {
|
|||||||
|
|
||||||
@Operation(
|
@Operation(
|
||||||
summary = "기간 내 변경된 위험지표 조회",
|
summary = "기간 내 변경된 위험지표 조회",
|
||||||
description = "Gets details of the IMOs of all ships with compliance updates"
|
description = "Gets details of the IMOs of all ships with risk updates"
|
||||||
)
|
)
|
||||||
@GetMapping("/UpdatedComplianceList")
|
@GetMapping("/UpdatedRiskList")
|
||||||
public ResponseEntity<JsonNode> getUpdatedComplianceListData(@Parameter(description = "Time/seconds are optional", example = "2026-03-30T07:01:27.000Z")
|
public ResponseEntity<JsonNode> getUpdatedComplianceListData(@Parameter(description = "Time/seconds are optional", example = "2026-03-30T07:01:27.000Z")
|
||||||
@RequestParam(required = true) String fromDate,
|
@RequestParam(required = true) String fromDate,
|
||||||
@Parameter(description = "Time/seconds are optional. If unspecified, the current UTC date and time is used", example = "2026-03-31T07:01:27.000Z")
|
@Parameter(description = "Time/seconds are optional. If unspecified, the current UTC date and time is used", example = "2026-03-31T07:01:27.000Z")
|
||||||
|
|||||||
@ -16,7 +16,7 @@ public class UpdatedComplianceListService extends BaseBypassService<JsonNode> {
|
|||||||
|
|
||||||
public UpdatedComplianceListService(
|
public UpdatedComplianceListService(
|
||||||
@Qualifier("maritimeServiceApiWebClient") WebClient webClient) {
|
@Qualifier("maritimeServiceApiWebClient") WebClient webClient) {
|
||||||
super(webClient, "/RiskAndCompliance/UpdatedComplianceList", "기간 내 변경된 위험지표 조회",
|
super(webClient, "/RiskAndCompliance/UpdatedRiskList", "기간 내 변경된 위험지표 조회",
|
||||||
new ParameterizedTypeReference<>() {},
|
new ParameterizedTypeReference<>() {},
|
||||||
new ParameterizedTypeReference<>() {});
|
new ParameterizedTypeReference<>() {});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
package com.snp.batch.jobs.web.ship.controller;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.snp.batch.common.web.controller.BaseBypassController;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import com.snp.batch.jobs.web.ship.service.GetShipDataByIHSLRorIMOService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ship bypass API
|
||||||
|
* S&P Maritime API에서 데이터를 실시간 조회하여 JSON을 그대로 반환
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/ship")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Tag(name = "Ship", description = "[Ship API] Ship bypass API")
|
||||||
|
public class ShipController extends BaseBypassController {
|
||||||
|
|
||||||
|
private final GetShipDataByIHSLRorIMOService getShipDataByIHSLRorIMOService;
|
||||||
|
|
||||||
|
@Operation(
|
||||||
|
summary = "IMO 기반 선박제원정보 조회",
|
||||||
|
description = "IMO 기반 선박제원정보 조회"
|
||||||
|
)
|
||||||
|
@GetMapping("/GetShipDataByIHSLRorIMO")
|
||||||
|
public ResponseEntity<JsonNode> getGetShipDataByIHSLRorIMOData(@Parameter(description = "", example = "9876543")
|
||||||
|
@RequestParam(required = true) String ihslrOrImo) {
|
||||||
|
return executeRaw(() -> getShipDataByIHSLRorIMOService.getGetShipDataByIHSLRorIMOData(ihslrOrImo));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
package com.snp.batch.jobs.web.ship.service;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.snp.batch.common.web.service.BaseBypassService;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.core.ParameterizedTypeReference;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.reactive.function.client.WebClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IMO 기반 선박제원정보 조회 bypass 서비스
|
||||||
|
* 외부 Maritime API에서 데이터를 실시간 조회하여 JSON을 그대로 반환
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class GetShipDataByIHSLRorIMOService extends BaseBypassService<JsonNode> {
|
||||||
|
|
||||||
|
public GetShipDataByIHSLRorIMOService(
|
||||||
|
@Qualifier("maritimeApiWebClient") WebClient webClient) {
|
||||||
|
super(webClient, "/MaritimeWCF/APSShipService.svc/RESTFul/GetShipDataByIHSLRorIMO", "IMO 기반 선박제원정보 조회",
|
||||||
|
new ParameterizedTypeReference<>() {},
|
||||||
|
new ParameterizedTypeReference<>() {});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IMO 기반 선박제원정보 조회 데이터를 조회합니다.
|
||||||
|
*/
|
||||||
|
public JsonNode getGetShipDataByIHSLRorIMOData(String ihslrOrImo) {
|
||||||
|
return fetchRawGet(uri -> uri.path(getApiPath())
|
||||||
|
.queryParam("ihslrOrImo", ihslrOrImo)
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
}
|
||||||
불러오는 중...
Reference in New Issue
Block a user