From b5430970ba0d18f5aa91f5100fc1061451fef91c Mon Sep 17 00:00:00 2001 From: Nico Koprowski Date: Fri, 5 Jan 2024 11:43:52 +0800 Subject: [PATCH] fix(Cleaning-Service-Dummy): add confidence criteria to cleaned generic business partner --- .../cleaning/service/CleaningServiceDummy.kt | 24 ++++++++++++++++++- ...0_0_5__create_site_confidence_criteria.sql | 14 +++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 bpdm-gate/src/main/resources/db/migration/V5_0_0_5__create_site_confidence_criteria.sql diff --git a/bpdm-cleaning-service-dummy/src/main/kotlin/org/eclipse/tractusx/bpdm/cleaning/service/CleaningServiceDummy.kt b/bpdm-cleaning-service-dummy/src/main/kotlin/org/eclipse/tractusx/bpdm/cleaning/service/CleaningServiceDummy.kt index 83bdf9129..97ccbe8fd 100644 --- a/bpdm-cleaning-service-dummy/src/main/kotlin/org/eclipse/tractusx/bpdm/cleaning/service/CleaningServiceDummy.kt +++ b/bpdm-cleaning-service-dummy/src/main/kotlin/org/eclipse/tractusx/bpdm/cleaning/service/CleaningServiceDummy.kt @@ -81,7 +81,9 @@ class CleaningServiceDummy( val addressDto = shouldCreateAddress(addressType, addressPartner) - return TaskStepResultEntryDto(reservedTask.taskId, BusinessPartnerFullDto(genericBusinessPartner, legalEntityDto, siteDto, addressDto)) + val updatedGenericBusinessPartner = genericBusinessPartner.update(addressType, legalEntityDto, siteDto, addressDto) + + return TaskStepResultEntryDto(reservedTask.taskId, BusinessPartnerFullDto(updatedGenericBusinessPartner, legalEntityDto, siteDto, addressDto)) } private fun shouldCreateAddress( @@ -154,5 +156,25 @@ class CleaningServiceDummy( genericPartner.site.siteBpn != null } + private fun BusinessPartnerGenericDto.update( + addressType: AddressType, + legalEntityDto: LegalEntityDto, + siteDto: SiteDto?, + logisticAddress: LogisticAddressDto? + ): BusinessPartnerGenericDto { + val relevantAddress = when (addressType) { + AddressType.LegalAndSiteMainAddress -> legalEntityDto.legalAddress!! + AddressType.LegalAddress -> legalEntityDto.legalAddress!! + AddressType.SiteMainAddress -> siteDto!!.mainAddress!! + AddressType.AdditionalAddress -> logisticAddress!! + } + + return copy( + legalEntity = legalEntity.copy(confidenceCriteria = legalEntityDto.confidenceCriteria), + site = site.copy(confidenceCriteria = siteDto?.confidenceCriteria), + address = address.copy(addressType = addressType, confidenceCriteria = relevantAddress.confidenceCriteria) + ) + } + } diff --git a/bpdm-gate/src/main/resources/db/migration/V5_0_0_5__create_site_confidence_criteria.sql b/bpdm-gate/src/main/resources/db/migration/V5_0_0_5__create_site_confidence_criteria.sql new file mode 100644 index 000000000..5140eb36e --- /dev/null +++ b/bpdm-gate/src/main/resources/db/migration/V5_0_0_5__create_site_confidence_criteria.sql @@ -0,0 +1,14 @@ +WITH mapping AS ( + SELECT bp.id as business_partner_id, nextVal('bpdm_sequence') as confidence_id + FROM business_partners bp INNER JOIN postal_addresses pa ON bp.postal_address_id = pa.id + WHERE bp.stage = 'Output' AND bp.site_confidence_id IS NULL AND (pa.address_type = 'SiteMainAddress' OR pa.address_type = 'LegalAndSiteMainAddress') +), +confidence AS ( + INSERT INTO confidence_criteria (id, created_at, updated_at, uuid, shared_by_owner, checked_by_external_data_source, number_of_business_partners, last_confidence_check_at, next_confidence_check_at, confidence_level) + SELECT mapping.confidence_id, NOW(), NOW(), gen_random_uuid(), FALSE, FALSE, 1, NOW()::timestamp, NOW()::timestamp, 0 + FROM mapping +) +UPDATE business_partners bp +SET site_confidence_id = mapping.confidence_id +FROM mapping +WHERE bp.id = mapping.business_partner_id; \ No newline at end of file