From 430ae8497a2673c7314f473054a6cb59b104f29c Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Thu, 10 Jul 2025 11:45:42 +0300 Subject: [PATCH] Fill dt attribute with GUTDF mapping --- .../builder/PersonFactoryBuilder.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/nbch/credit_tracker/builder/PersonFactoryBuilder.java b/src/main/java/ru/nbch/credit_tracker/builder/PersonFactoryBuilder.java index f886dd1..acdac56 100644 --- a/src/main/java/ru/nbch/credit_tracker/builder/PersonFactoryBuilder.java +++ b/src/main/java/ru/nbch/credit_tracker/builder/PersonFactoryBuilder.java @@ -1,5 +1,6 @@ package ru.nbch.credit_tracker.builder; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import ru.nbch.credit_tracker.entities.signal_package.Person; import ru.nbch.credit_tracker.service.indic.PersonService; @@ -9,6 +10,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.LocalDate; +@Slf4j public class PersonFactoryBuilder { private final static DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy"); @@ -59,8 +61,8 @@ public class PersonFactoryBuilder { person.setPn(getPn(passportData.getSerNum(), passportData.getIdNum())); person.setPd(passportData.getIssDate() != null ? DATE_FORMAT.format(CTUtil.localDatetoDate(passportData.getIssDate())) : DEFAULT_DATE); - person.setDt(StringUtils.isNotBlank(passportData.getIdType2()) ? passportData.getIdType2() : passportData.getIdType()); - if (person.getDt() != null && person.getDt().equals("999")){ + person.setDt(getDt(passportData.getIdType(), passportData.getIdType2())); + if (person.getDt() != null && person.getDt().equals("999")) { person.setOdt(ODT); person.setConsentOdt(ODT); } @@ -95,4 +97,29 @@ public class PersonFactoryBuilder { String normIdNum = CTUtil.normalize(idNum); return StringUtils.isNotBlank(normSerNum) ? normSerNum + normIdNum : normIdNum; } + + private String getDt(String idType, String idType2) { + if (StringUtils.isNotBlank(idType2)) { + return idType2; + } else { + return switch (idType) { + case "21" -> "21"; + case "22" -> "22.1"; + case "09" -> "22.2"; + case "26" -> "23"; + case "04" -> "24"; + case "07" -> "25"; + case "14", "03" -> "27"; + case "10" -> "31"; + case "15" -> "32"; + case "13" -> "37"; + case "06", "27" -> "28"; + case "01", "02" -> "999"; + default -> { + log.warn("ID_TYPE2 is blank and no matching found for ID_TYPE {}", idType); + yield ""; + } + }; + } + } }