🔥 선박제원정보의 Company Compliance 수집 제거
This commit is contained in:
부모
613980c496
커밋
7ab53d1bbf
@ -1,38 +0,0 @@
|
|||||||
package com.snp.batch.jobs.shipdetail.batch.dto;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.Setter;
|
|
||||||
import lombok.ToString;
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
@ToString
|
|
||||||
@NoArgsConstructor
|
|
||||||
public class CompanyComplianceDto {
|
|
||||||
@Getter @Setter @ToString @NoArgsConstructor
|
|
||||||
public static class DataSetVersionDto {
|
|
||||||
@JsonProperty("DataSetVersion")
|
|
||||||
private String dataSetVersion;
|
|
||||||
}
|
|
||||||
@JsonProperty("DataSetVersion")
|
|
||||||
private DataSetVersionDto dataSetVersion;
|
|
||||||
|
|
||||||
@JsonProperty("OwCode") private String owCode;
|
|
||||||
@JsonProperty("ShortCompanyName") private String shortCompanyName;
|
|
||||||
@JsonProperty("CompanyOnOFACSanctionList") private String companyOnOFACSanctionList;
|
|
||||||
@JsonProperty("CompanyOnUNSanctionList") private String companyOnUNSanctionList;
|
|
||||||
@JsonProperty("CompanyOnEUSanctionList") private String companyOnEUSanctionList;
|
|
||||||
@JsonProperty("CompanyOnBESSanctionList") private String companyOnBESSanctionList;
|
|
||||||
@JsonProperty("CompanyInOFACSanctionedCountry") private String companyInOFACSanctionedCountry;
|
|
||||||
@JsonProperty("CompanyInFATFJurisdiction") private String companyInFATFJurisdiction;
|
|
||||||
@JsonProperty("ParentCompanyComplianceRisk") private String parentCompanyComplianceRisk;
|
|
||||||
@JsonProperty("CompanyOverallComplianceStatus") private String companyOverallComplianceStatus;
|
|
||||||
@JsonProperty("CompanyOnAustralianSanctionList") private String companyOnAustralianSanctionList;
|
|
||||||
@JsonProperty("CompanyOnCanadianSanctionList") private String companyOnCanadianSanctionList;
|
|
||||||
@JsonProperty("CompanyOnSwissSanctionList") private String companyOnSwissSanctionList;
|
|
||||||
@JsonProperty("CompanyOnOFACSSIList") private String companyOnOFACSSIList;
|
|
||||||
@JsonProperty("CompanyOnOFACNonSDNSanctionList") private String companyOnOFACNonSDNSanctionList;
|
|
||||||
@JsonProperty("CompanyOnUAESanctionList") private String companyOnUAESanctionList;
|
|
||||||
}
|
|
||||||
@ -2,7 +2,6 @@ package com.snp.batch.jobs.shipdetail.batch.dto;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.snp.batch.jobs.shipdetail.batch.entity.CompanyComplianceEntity;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -472,13 +471,6 @@ public class ShipDetailDto {
|
|||||||
@JsonProperty("CompanyVesselRelationships")
|
@JsonProperty("CompanyVesselRelationships")
|
||||||
private List<CompanyVesselRelationshipDto> CompanyVesselRelationships;
|
private List<CompanyVesselRelationshipDto> CompanyVesselRelationships;
|
||||||
|
|
||||||
/**
|
|
||||||
* 회사 컴플라이언스 정보 List
|
|
||||||
* API: CompanyComplianceDetails
|
|
||||||
*/
|
|
||||||
@JsonProperty("CompanyComplianceDetails")
|
|
||||||
private List<CompanyComplianceDto> CompanyComplianceDetails;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 다크활동이력 정보 List
|
* 다크활동이력 정보 List
|
||||||
* API: DarkActivityConfirmed
|
* API: DarkActivityConfirmed
|
||||||
|
|||||||
@ -44,7 +44,6 @@ public class ShipDetailUpdate {
|
|||||||
private final List<SpecialFeatureEntity> specialFeatureEntityList;
|
private final List<SpecialFeatureEntity> specialFeatureEntityList;
|
||||||
private final List<ThrustersEntity> thrustersEntityList;
|
private final List<ThrustersEntity> thrustersEntityList;
|
||||||
private final List<DarkActivityConfirmedEntity> darkActivityConfirmedEntityList;
|
private final List<DarkActivityConfirmedEntity> darkActivityConfirmedEntityList;
|
||||||
private final List<CompanyComplianceEntity> companyComplianceEntityList;
|
|
||||||
private final List<CompanyVesselRelationshipEntity> companyVesselRelationshipEntityList;
|
private final List<CompanyVesselRelationshipEntity> companyVesselRelationshipEntityList;
|
||||||
private final List<CompanyDetailEntity> companyDetailEntityList;
|
private final List<CompanyDetailEntity> companyDetailEntityList;
|
||||||
}
|
}
|
||||||
@ -1,33 +0,0 @@
|
|||||||
package com.snp.batch.jobs.shipdetail.batch.entity;
|
|
||||||
|
|
||||||
import com.snp.batch.common.batch.entity.BaseEntity;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
import lombok.experimental.SuperBuilder;
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@SuperBuilder
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
public class CompanyComplianceEntity extends BaseEntity {
|
|
||||||
private String datasetversion;
|
|
||||||
private String owcode;
|
|
||||||
private String shortcompanyname;
|
|
||||||
private String companyonofacsanctionlist;
|
|
||||||
private String companyonunsanctionlist;
|
|
||||||
private String companyoneusanctionlist;
|
|
||||||
private String companyonbessanctionlist;
|
|
||||||
private String companyinofacsanctionedcountry;
|
|
||||||
private String companyinfatfjurisdiction;
|
|
||||||
private String companyoverallcompliancestatus;
|
|
||||||
private String companyonaustraliansanctionlist;
|
|
||||||
private String companyoncanadiansanctionlist;
|
|
||||||
private String companyonswisssanctionlist;
|
|
||||||
private String companyonofacssilist;
|
|
||||||
private String companyonofacnonsdnsanctionlist;
|
|
||||||
private String companyonuaesanctionlist;
|
|
||||||
private String parentcompanycompliancerisk;
|
|
||||||
}
|
|
||||||
@ -814,36 +814,36 @@ public class ShipDetailDataProcessor extends BaseProcessor<ShipDetailComparisonD
|
|||||||
return entityList;
|
return entityList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<CompanyComplianceEntity> makeCompanyComplianceEntityList(List<CompanyComplianceDto> dtoList){
|
// private List<CompanyComplianceEntity> makeCompanyComplianceEntityList(List<CompanyComplianceDto> dtoList){
|
||||||
List<CompanyComplianceEntity> entityList = new ArrayList<>();
|
// List<CompanyComplianceEntity> entityList = new ArrayList<>();
|
||||||
if (dtoList == null || dtoList.isEmpty()) {
|
// if (dtoList == null || dtoList.isEmpty()) {
|
||||||
return entityList;
|
// return entityList;
|
||||||
}
|
// }
|
||||||
for (CompanyComplianceDto dto : dtoList) {
|
// for (CompanyComplianceDto dto : dtoList) {
|
||||||
String datasetVersion = (dto.getDataSetVersion() != null) ? dto.getDataSetVersion().getDataSetVersion() : null;
|
// String datasetVersion = (dto.getDataSetVersion() != null) ? dto.getDataSetVersion().getDataSetVersion() : null;
|
||||||
CompanyComplianceEntity entity = CompanyComplianceEntity.builder()
|
// CompanyComplianceEntity entity = CompanyComplianceEntity.builder()
|
||||||
.datasetversion(datasetVersion)
|
// .datasetversion(datasetVersion)
|
||||||
.owcode(dto.getOwCode())
|
// .owcode(dto.getOwCode())
|
||||||
.shortcompanyname(dto.getShortCompanyName())
|
// .shortcompanyname(dto.getShortCompanyName())
|
||||||
.companyonofacsanctionlist(dto.getCompanyOnOFACSanctionList())
|
// .companyonofacsanctionlist(dto.getCompanyOnOFACSanctionList())
|
||||||
.companyonunsanctionlist(dto.getCompanyOnUNSanctionList())
|
// .companyonunsanctionlist(dto.getCompanyOnUNSanctionList())
|
||||||
.companyoneusanctionlist(dto.getCompanyOnEUSanctionList())
|
// .companyoneusanctionlist(dto.getCompanyOnEUSanctionList())
|
||||||
.companyonbessanctionlist(dto.getCompanyOnBESSanctionList())
|
// .companyonbessanctionlist(dto.getCompanyOnBESSanctionList())
|
||||||
.companyinofacsanctionedcountry(dto.getCompanyInOFACSanctionedCountry())
|
// .companyinofacsanctionedcountry(dto.getCompanyInOFACSanctionedCountry())
|
||||||
.companyinfatfjurisdiction(dto.getCompanyInFATFJurisdiction())
|
// .companyinfatfjurisdiction(dto.getCompanyInFATFJurisdiction())
|
||||||
.companyoverallcompliancestatus(dto.getCompanyOverallComplianceStatus())
|
// .companyoverallcompliancestatus(dto.getCompanyOverallComplianceStatus())
|
||||||
.companyonaustraliansanctionlist(dto.getCompanyOnAustralianSanctionList())
|
// .companyonaustraliansanctionlist(dto.getCompanyOnAustralianSanctionList())
|
||||||
.companyoncanadiansanctionlist(dto.getCompanyOnCanadianSanctionList())
|
// .companyoncanadiansanctionlist(dto.getCompanyOnCanadianSanctionList())
|
||||||
.companyonswisssanctionlist(dto.getCompanyOnSwissSanctionList())
|
// .companyonswisssanctionlist(dto.getCompanyOnSwissSanctionList())
|
||||||
.companyonofacssilist(dto.getCompanyOnOFACSSIList())
|
// .companyonofacssilist(dto.getCompanyOnOFACSSIList())
|
||||||
.companyonofacnonsdnsanctionlist(dto.getCompanyOnOFACNonSDNSanctionList())
|
// .companyonofacnonsdnsanctionlist(dto.getCompanyOnOFACNonSDNSanctionList())
|
||||||
.companyonuaesanctionlist(dto.getCompanyOnUAESanctionList())
|
// .companyonuaesanctionlist(dto.getCompanyOnUAESanctionList())
|
||||||
.parentcompanycompliancerisk(dto.getParentCompanyComplianceRisk())
|
// .parentcompanycompliancerisk(dto.getParentCompanyComplianceRisk())
|
||||||
.build();
|
// .build();
|
||||||
entityList.add(entity);
|
// entityList.add(entity);
|
||||||
}
|
// }
|
||||||
return entityList;
|
// return entityList;
|
||||||
}
|
// } : 2026-01-16 Company Compliance 수집 API 분리로 인한 제거
|
||||||
|
|
||||||
private List<CompanyDetailEntity> makeCompanyDetailEntity(List<CompanyDetailDto> dtoList) {
|
private List<CompanyDetailEntity> makeCompanyDetailEntity(List<CompanyDetailDto> dtoList) {
|
||||||
List<CompanyDetailEntity> companyDetailEntityList = new ArrayList<>();
|
List<CompanyDetailEntity> companyDetailEntityList = new ArrayList<>();
|
||||||
|
|||||||
@ -59,8 +59,6 @@ public interface ShipDetailRepository {
|
|||||||
|
|
||||||
void saveAllDarkActivityConfirmedData(List<DarkActivityConfirmedEntity> entities);
|
void saveAllDarkActivityConfirmedData(List<DarkActivityConfirmedEntity> entities);
|
||||||
|
|
||||||
void saveAllCompanyComplianceData(List<CompanyComplianceEntity> entities);
|
|
||||||
|
|
||||||
void saveAllCompanyVesselRelationshipData(List<CompanyVesselRelationshipEntity> entities);
|
void saveAllCompanyVesselRelationshipData(List<CompanyVesselRelationshipEntity> entities);
|
||||||
|
|
||||||
void saveAllCompanyDetailData(List<CompanyDetailEntity> entities);
|
void saveAllCompanyDetailData(List<CompanyDetailEntity> entities);
|
||||||
|
|||||||
@ -1128,30 +1128,6 @@ public class ShipDetailRepositoryImpl extends BaseJdbcRepository<ShipDetailEntit
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void saveAllCompanyComplianceData(List<CompanyComplianceEntity> entities) {
|
|
||||||
String entityName = "CompanyComplianceEntity";
|
|
||||||
String sql = ShipDetailSql.getCompanyComplianceSql();
|
|
||||||
|
|
||||||
if (entities == null || entities.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
log.debug("{} 배치 삽입 시작: {} 건", entityName, entities.size());
|
|
||||||
|
|
||||||
jdbcTemplate.batchUpdate(sql, entities, entities.size(),
|
|
||||||
(ps, entity) -> {
|
|
||||||
try {
|
|
||||||
setCompanyComplianceInsertParameters(ps, (CompanyComplianceEntity) entity);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("배치 삽입 파라미터 설정 실패 - " + entityName, e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
log.info("{} 배치 삽입 완료: {} 건", entityName, entities.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveAllCompanyVesselRelationshipData(List<CompanyVesselRelationshipEntity> entities) {
|
public void saveAllCompanyVesselRelationshipData(List<CompanyVesselRelationshipEntity> entities) {
|
||||||
String entityName = "CompanyVesselRelationshipEntity";
|
String entityName = "CompanyVesselRelationshipEntity";
|
||||||
@ -1583,29 +1559,6 @@ public class ShipDetailRepositoryImpl extends BaseJdbcRepository<ShipDetailEntit
|
|||||||
ps.setString(idx++, entity.getVesselid());
|
ps.setString(idx++, entity.getVesselid());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setCompanyComplianceInsertParameters(PreparedStatement ps, CompanyComplianceEntity entity) throws Exception {
|
|
||||||
int idx = 1;
|
|
||||||
ps.setString(idx++, entity.getDatasetversion());
|
|
||||||
ps.setString(idx++, entity.getOwcode());
|
|
||||||
ps.setString(idx++, entity.getShortcompanyname());
|
|
||||||
|
|
||||||
// 숫자형 컬럼에 대해 SqlUtils 사용 (DDL이 int8임)
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyonofacsanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyonunsanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyoneusanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyonbessanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyinofacsanctionedcountry());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyinfatfjurisdiction());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyoverallcompliancestatus());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyonaustraliansanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyoncanadiansanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyonswisssanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyonofacssilist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyonofacnonsdnsanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getCompanyonuaesanctionlist());
|
|
||||||
setIntegerOrNull(ps, idx++, entity.getParentcompanycompliancerisk());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setDarkActivityConfirmedInsertParameters(PreparedStatement ps, DarkActivityConfirmedEntity entity) throws Exception {
|
private void setDarkActivityConfirmedInsertParameters(PreparedStatement ps, DarkActivityConfirmedEntity entity) throws Exception {
|
||||||
int idx = 1;
|
int idx = 1;
|
||||||
ps.setString(idx++, entity.getDatasetversion());
|
ps.setString(idx++, entity.getDatasetversion());
|
||||||
|
|||||||
@ -539,40 +539,6 @@ public class ShipDetailSql {
|
|||||||
""";
|
""";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getCompanyComplianceSql(){
|
|
||||||
return """
|
|
||||||
INSERT INTO snp_data.companycompliancedetails (
|
|
||||||
datasetversion, owcode, shortcompanyname, companyonofacsanctionlist,
|
|
||||||
companyonunsanctionlist, companyoneusanctionlist, companyonbessanctionlist,
|
|
||||||
companyinofacsanctionedcountry, companyinfatfjurisdiction, companyoverallcompliancestatus,
|
|
||||||
companyonaustraliansanctionlist, companyoncanadiansanctionlist, companyonswisssanctionlist,
|
|
||||||
companyonofacssilist, companyonofacnonsdnsanctionlist, companyonuaesanctionlist,
|
|
||||||
parentcompanycompliancerisk
|
|
||||||
) VALUES (
|
|
||||||
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?
|
|
||||||
)
|
|
||||||
ON CONFLICT (owcode)
|
|
||||||
DO UPDATE SET
|
|
||||||
datasetversion = EXCLUDED.datasetversion,
|
|
||||||
shortcompanyname = EXCLUDED.shortcompanyname,
|
|
||||||
companyonofacsanctionlist = EXCLUDED.companyonofacsanctionlist,
|
|
||||||
companyonunsanctionlist = EXCLUDED.companyonunsanctionlist,
|
|
||||||
companyoneusanctionlist = EXCLUDED.companyoneusanctionlist,
|
|
||||||
companyonbessanctionlist = EXCLUDED.companyonbessanctionlist,
|
|
||||||
companyinofacsanctionedcountry = EXCLUDED.companyinofacsanctionedcountry,
|
|
||||||
companyinfatfjurisdiction = EXCLUDED.companyinfatfjurisdiction,
|
|
||||||
companyoverallcompliancestatus = EXCLUDED.companyoverallcompliancestatus,
|
|
||||||
companyonaustraliansanctionlist = EXCLUDED.companyonaustraliansanctionlist,
|
|
||||||
companyoncanadiansanctionlist = EXCLUDED.companyoncanadiansanctionlist,
|
|
||||||
companyonswisssanctionlist = EXCLUDED.companyonswisssanctionlist,
|
|
||||||
companyonofacssilist = EXCLUDED.companyonofacssilist,
|
|
||||||
companyonofacnonsdnsanctionlist = EXCLUDED.companyonofacnonsdnsanctionlist,
|
|
||||||
companyonuaesanctionlist = EXCLUDED.companyonuaesanctionlist,
|
|
||||||
parentcompanycompliancerisk = EXCLUDED.parentcompanycompliancerisk,
|
|
||||||
batch_flag = 'N'
|
|
||||||
""";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getDarkActivityConfirmedSql(){
|
public static String getDarkActivityConfirmedSql(){
|
||||||
return """
|
return """
|
||||||
INSERT INTO snp_data.darkactivityconfirmed (
|
INSERT INTO snp_data.darkactivityconfirmed (
|
||||||
|
|||||||
@ -66,7 +66,6 @@ public class ShipDetailDataWriter extends BaseWriter<ShipDetailUpdate> {
|
|||||||
List<SpecialFeatureEntity> specialFeatureListEntities = flattenEntities(items, ShipDetailUpdate::getSpecialFeatureEntityList);
|
List<SpecialFeatureEntity> specialFeatureListEntities = flattenEntities(items, ShipDetailUpdate::getSpecialFeatureEntityList);
|
||||||
List<ThrustersEntity> thrustersListEntities = flattenEntities(items, ShipDetailUpdate::getThrustersEntityList);
|
List<ThrustersEntity> thrustersListEntities = flattenEntities(items, ShipDetailUpdate::getThrustersEntityList);
|
||||||
List<DarkActivityConfirmedEntity> darkActivityConfirmedEntities = flattenEntities(items, ShipDetailUpdate::getDarkActivityConfirmedEntityList);
|
List<DarkActivityConfirmedEntity> darkActivityConfirmedEntities = flattenEntities(items, ShipDetailUpdate::getDarkActivityConfirmedEntityList);
|
||||||
// List<CompanyComplianceEntity> companyComplianceEntities = flattenEntities(items, ShipDetailUpdate::getCompanyComplianceEntityList); : 2026-01-16 Company Compliance 수집 API 분리로 인한 제거
|
|
||||||
List<CompanyVesselRelationshipEntity> companyVesselRelationshipEntities = flattenEntities(items, ShipDetailUpdate::getCompanyVesselRelationshipEntityList);
|
List<CompanyVesselRelationshipEntity> companyVesselRelationshipEntities = flattenEntities(items, ShipDetailUpdate::getCompanyVesselRelationshipEntityList);
|
||||||
List<CompanyDetailEntity> companyDetailEntities = flattenEntities(items, ShipDetailUpdate::getCompanyDetailEntityList);
|
List<CompanyDetailEntity> companyDetailEntities = flattenEntities(items, ShipDetailUpdate::getCompanyDetailEntityList);
|
||||||
|
|
||||||
@ -173,10 +172,6 @@ public class ShipDetailDataWriter extends BaseWriter<ShipDetailUpdate> {
|
|||||||
log.debug("DarkActivityConfirmed 저장 시작: {} 건", darkActivityConfirmedEntities.size());
|
log.debug("DarkActivityConfirmed 저장 시작: {} 건", darkActivityConfirmedEntities.size());
|
||||||
shipDetailRepository.saveAllDarkActivityConfirmedData(darkActivityConfirmedEntities);
|
shipDetailRepository.saveAllDarkActivityConfirmedData(darkActivityConfirmedEntities);
|
||||||
|
|
||||||
// CompanyCompliance 저장
|
|
||||||
// log.debug("CompanyCompliance 저장 시작: {} 건", companyComplianceEntities.size()); : 2026-01-16 Company Compliance 수집 API 분리로 인한 제거
|
|
||||||
// shipDetailRepository.saveAllCompanyComplianceData(companyComplianceEntities); : 2026-01-16 Company Compliance 수집 API 분리로 인한 제거
|
|
||||||
|
|
||||||
// CompanyVesselRelationship 저장
|
// CompanyVesselRelationship 저장
|
||||||
log.debug("CompanyVesselRelationship 저장 시작: {} 건", companyVesselRelationshipEntities.size());
|
log.debug("CompanyVesselRelationship 저장 시작: {} 건", companyVesselRelationshipEntities.size());
|
||||||
shipDetailRepository.saveAllCompanyVesselRelationshipData(companyVesselRelationshipEntities);
|
shipDetailRepository.saveAllCompanyVesselRelationshipData(companyVesselRelationshipEntities);
|
||||||
|
|||||||
불러오는 중...
Reference in New Issue
Block a user