From d1064b6b9fc5897adc3421e5908493c0aa2326b7 Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Thu, 25 Sep 2025 16:51:19 +0300 Subject: [PATCH] Minor fix calc flag5000 --- .../CreditTrackerApplication.java | 2 ++ .../service/indic/FlagsService.java | 22 ++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java b/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java index fa2c9f9..3dc981c 100644 --- a/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java +++ b/src/main/java/ru/nbch/credit_tracker/CreditTrackerApplication.java @@ -30,10 +30,12 @@ public class CreditTrackerApplication { for (Integer fid : fids) { FlagsService.FlagsData oldValue = oldMap.get(fid); FlagsService.FlagsData newValue = newMap.get(fid); + System.out.println("FID: " + fid); System.out.println("OLD: " + oldValue.getFlagDebt5000() +"|" +oldValue.getFlag90days()); System.out.println("NEW: " + newValue.getFlagDebt5000() +"|" +newValue.getFlag90days()); System.out.println("_________________________________"); } + System.exit(0); // UpdateProcessingPackagesService updateProcessingPackagesService = ctx.getBean(UpdateProcessingPackagesService.class); // MonitoringService monitoringService = ctx.getBean(MonitoringService.class); // UpdatingFlagsService updatingFlagsService = ctx.getBean(UpdatingFlagsService.class); diff --git a/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService.java b/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService.java index 209cce3..4157c93 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/indic/FlagsService.java @@ -89,6 +89,12 @@ public class FlagsService { return result; } + /** + * Выбирает дату из RU_PASTDUEARREAR и ищет по ним флаги просрочек + * @param fids - отсортирован по возрастанию фидов + * @param flag5000Map - рещультирующая мапа флагов просрочек debt5000 + * @param flag90Days - рещультирующая мапа флагов просрочек 90_days + */ private void findFlagsRuPastDueArrear(List fids, Map flag5000Map, Map flag90Days) { log.debug("Start calculating flag 5000 and 90 days by RU_PASTDUEARREAR"); List ruPastDuarearDataList = mapper.findRuPastDuarearData(fids); @@ -108,19 +114,18 @@ public class FlagsService { if (prevAccSerialNum == null || !prevAccSerialNum.equals(data.getAccSerialNum())) { if (data.getAmtPastDue() != null && data.getAmtPastDue().compareTo(BigDecimal.valueOf(5000)) >= 0) { flag5000Map.put(fid, 1); - } else { - flag5000Map.put(fid, 0); } prevAccSerialNum = data.getAccSerialNum(); } } - if (flag90Days.get(fid) != null && flag90Days.get(fid) == 1) { + Integer flag90 = flag90Days.get(fid); + if (flag90 != null && flag90 == 1) { iterator.remove(); break; } - if (flag90Days.get(fid) == null || flag90Days.get(fid) == 0) { + if (flag90 == null || flag90 == 0) { if (data.getDaysPastDue() != null) { boolean has90daysFlag = data.getDaysPastDue().compareTo(BigInteger.valueOf(90)) >= 0 && !data.getReportedDate().isBefore(yearAgo); if (has90daysFlag) { @@ -137,12 +142,9 @@ public class FlagsService { } } } - if (flag5000Map.get(fid) == null) { - flag5000Map.put(fid, 0); - } - if (flag90Days.get(fid) == null) { - flag90Days.put(fid, 0); - } + // если мы так и не нашли флаги для этих фидов - выставляем их в 0 + flag5000Map.putIfAbsent(fid, 0); + flag90Days.putIfAbsent(fid, 0); } log.debug("Complete calculating flag 5000 and 90 days by RU_PASTDUEARREAR"); }