🔥 선박제원정보의 Company Compliance 수집 제거

This commit is contained in:
hyojin kim 2026-01-19 10:49:54 +09:00
부모 613980c496
커밋 7ab53d1bbf
9개의 변경된 파일30개의 추가작업 그리고 198개의 파일을 삭제

파일 보기

@ -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.JsonProperty;
import com.snp.batch.jobs.shipdetail.batch.entity.CompanyComplianceEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -472,13 +471,6 @@ public class ShipDetailDto {
@JsonProperty("CompanyVesselRelationships")
private List<CompanyVesselRelationshipDto> CompanyVesselRelationships;
/**
* 회사 컴플라이언스 정보 List
* API: CompanyComplianceDetails
*/
@JsonProperty("CompanyComplianceDetails")
private List<CompanyComplianceDto> CompanyComplianceDetails;
/**
* 다크활동이력 정보 List
* API: DarkActivityConfirmed

파일 보기

@ -44,7 +44,6 @@ public class ShipDetailUpdate {
private final List<SpecialFeatureEntity> specialFeatureEntityList;
private final List<ThrustersEntity> thrustersEntityList;
private final List<DarkActivityConfirmedEntity> darkActivityConfirmedEntityList;
private final List<CompanyComplianceEntity> companyComplianceEntityList;
private final List<CompanyVesselRelationshipEntity> companyVesselRelationshipEntityList;
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;
}
private List<CompanyComplianceEntity> makeCompanyComplianceEntityList(List<CompanyComplianceDto> dtoList){
List<CompanyComplianceEntity> entityList = new ArrayList<>();
if (dtoList == null || dtoList.isEmpty()) {
return entityList;
}
for (CompanyComplianceDto dto : dtoList) {
String datasetVersion = (dto.getDataSetVersion() != null) ? dto.getDataSetVersion().getDataSetVersion() : null;
CompanyComplianceEntity entity = CompanyComplianceEntity.builder()
.datasetversion(datasetVersion)
.owcode(dto.getOwCode())
.shortcompanyname(dto.getShortCompanyName())
.companyonofacsanctionlist(dto.getCompanyOnOFACSanctionList())
.companyonunsanctionlist(dto.getCompanyOnUNSanctionList())
.companyoneusanctionlist(dto.getCompanyOnEUSanctionList())
.companyonbessanctionlist(dto.getCompanyOnBESSanctionList())
.companyinofacsanctionedcountry(dto.getCompanyInOFACSanctionedCountry())
.companyinfatfjurisdiction(dto.getCompanyInFATFJurisdiction())
.companyoverallcompliancestatus(dto.getCompanyOverallComplianceStatus())
.companyonaustraliansanctionlist(dto.getCompanyOnAustralianSanctionList())
.companyoncanadiansanctionlist(dto.getCompanyOnCanadianSanctionList())
.companyonswisssanctionlist(dto.getCompanyOnSwissSanctionList())
.companyonofacssilist(dto.getCompanyOnOFACSSIList())
.companyonofacnonsdnsanctionlist(dto.getCompanyOnOFACNonSDNSanctionList())
.companyonuaesanctionlist(dto.getCompanyOnUAESanctionList())
.parentcompanycompliancerisk(dto.getParentCompanyComplianceRisk())
.build();
entityList.add(entity);
}
return entityList;
}
// private List<CompanyComplianceEntity> makeCompanyComplianceEntityList(List<CompanyComplianceDto> dtoList){
// List<CompanyComplianceEntity> entityList = new ArrayList<>();
// if (dtoList == null || dtoList.isEmpty()) {
// return entityList;
// }
// for (CompanyComplianceDto dto : dtoList) {
// String datasetVersion = (dto.getDataSetVersion() != null) ? dto.getDataSetVersion().getDataSetVersion() : null;
// CompanyComplianceEntity entity = CompanyComplianceEntity.builder()
// .datasetversion(datasetVersion)
// .owcode(dto.getOwCode())
// .shortcompanyname(dto.getShortCompanyName())
// .companyonofacsanctionlist(dto.getCompanyOnOFACSanctionList())
// .companyonunsanctionlist(dto.getCompanyOnUNSanctionList())
// .companyoneusanctionlist(dto.getCompanyOnEUSanctionList())
// .companyonbessanctionlist(dto.getCompanyOnBESSanctionList())
// .companyinofacsanctionedcountry(dto.getCompanyInOFACSanctionedCountry())
// .companyinfatfjurisdiction(dto.getCompanyInFATFJurisdiction())
// .companyoverallcompliancestatus(dto.getCompanyOverallComplianceStatus())
// .companyonaustraliansanctionlist(dto.getCompanyOnAustralianSanctionList())
// .companyoncanadiansanctionlist(dto.getCompanyOnCanadianSanctionList())
// .companyonswisssanctionlist(dto.getCompanyOnSwissSanctionList())
// .companyonofacssilist(dto.getCompanyOnOFACSSIList())
// .companyonofacnonsdnsanctionlist(dto.getCompanyOnOFACNonSDNSanctionList())
// .companyonuaesanctionlist(dto.getCompanyOnUAESanctionList())
// .parentcompanycompliancerisk(dto.getParentCompanyComplianceRisk())
// .build();
// entityList.add(entity);
// }
// return entityList;
// } : 2026-01-16 Company Compliance 수집 API 분리로 인한 제거
private List<CompanyDetailEntity> makeCompanyDetailEntity(List<CompanyDetailDto> dtoList) {
List<CompanyDetailEntity> companyDetailEntityList = new ArrayList<>();

파일 보기

@ -59,8 +59,6 @@ public interface ShipDetailRepository {
void saveAllDarkActivityConfirmedData(List<DarkActivityConfirmedEntity> entities);
void saveAllCompanyComplianceData(List<CompanyComplianceEntity> entities);
void saveAllCompanyVesselRelationshipData(List<CompanyVesselRelationshipEntity> 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
public void saveAllCompanyVesselRelationshipData(List<CompanyVesselRelationshipEntity> entities) {
String entityName = "CompanyVesselRelationshipEntity";
@ -1583,29 +1559,6 @@ public class ShipDetailRepositoryImpl extends BaseJdbcRepository<ShipDetailEntit
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 {
int idx = 1;
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(){
return """
INSERT INTO snp_data.darkactivityconfirmed (

파일 보기

@ -66,7 +66,6 @@ public class ShipDetailDataWriter extends BaseWriter<ShipDetailUpdate> {
List<SpecialFeatureEntity> specialFeatureListEntities = flattenEntities(items, ShipDetailUpdate::getSpecialFeatureEntityList);
List<ThrustersEntity> thrustersListEntities = flattenEntities(items, ShipDetailUpdate::getThrustersEntityList);
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<CompanyDetailEntity> companyDetailEntities = flattenEntities(items, ShipDetailUpdate::getCompanyDetailEntityList);
@ -173,10 +172,6 @@ public class ShipDetailDataWriter extends BaseWriter<ShipDetailUpdate> {
log.debug("DarkActivityConfirmed 저장 시작: {} 건", darkActivityConfirmedEntities.size());
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 저장
log.debug("CompanyVesselRelationship 저장 시작: {} 건", companyVesselRelationshipEntities.size());
shipDetailRepository.saveAllCompanyVesselRelationshipData(companyVesselRelationshipEntities);