Minor fix calc flag5000

This commit is contained in:
Mikhail Trofimov 2025-09-25 16:51:19 +03:00
parent b42e4f70df
commit d1064b6b9f
2 changed files with 14 additions and 10 deletions

View file

@ -30,10 +30,12 @@ public class CreditTrackerApplication {
for (Integer fid : fids) { for (Integer fid : fids) {
FlagsService.FlagsData oldValue = oldMap.get(fid); FlagsService.FlagsData oldValue = oldMap.get(fid);
FlagsService.FlagsData newValue = newMap.get(fid); FlagsService.FlagsData newValue = newMap.get(fid);
System.out.println("FID: " + fid);
System.out.println("OLD: " + oldValue.getFlagDebt5000() +"|" +oldValue.getFlag90days()); System.out.println("OLD: " + oldValue.getFlagDebt5000() +"|" +oldValue.getFlag90days());
System.out.println("NEW: " + newValue.getFlagDebt5000() +"|" +newValue.getFlag90days()); System.out.println("NEW: " + newValue.getFlagDebt5000() +"|" +newValue.getFlag90days());
System.out.println("_________________________________"); System.out.println("_________________________________");
} }
System.exit(0);
// UpdateProcessingPackagesService updateProcessingPackagesService = ctx.getBean(UpdateProcessingPackagesService.class); // UpdateProcessingPackagesService updateProcessingPackagesService = ctx.getBean(UpdateProcessingPackagesService.class);
// MonitoringService monitoringService = ctx.getBean(MonitoringService.class); // MonitoringService monitoringService = ctx.getBean(MonitoringService.class);
// UpdatingFlagsService updatingFlagsService = ctx.getBean(UpdatingFlagsService.class); // UpdatingFlagsService updatingFlagsService = ctx.getBean(UpdatingFlagsService.class);

View file

@ -89,6 +89,12 @@ public class FlagsService {
return result; return result;
} }
/**
* Выбирает дату из RU_PASTDUEARREAR и ищет по ним флаги просрочек
* @param fids - отсортирован по возрастанию фидов
* @param flag5000Map - рещультирующая мапа флагов просрочек debt5000
* @param flag90Days - рещультирующая мапа флагов просрочек 90_days
*/
private void findFlagsRuPastDueArrear(List<Integer> fids, Map<Integer, Integer> flag5000Map, Map<Integer, Integer> flag90Days) { private void findFlagsRuPastDueArrear(List<Integer> fids, Map<Integer, Integer> flag5000Map, Map<Integer, Integer> flag90Days) {
log.debug("Start calculating flag 5000 and 90 days by RU_PASTDUEARREAR"); log.debug("Start calculating flag 5000 and 90 days by RU_PASTDUEARREAR");
List<RuPastDuarearData> ruPastDuarearDataList = mapper.findRuPastDuarearData(fids); List<RuPastDuarearData> ruPastDuarearDataList = mapper.findRuPastDuarearData(fids);
@ -108,19 +114,18 @@ public class FlagsService {
if (prevAccSerialNum == null || !prevAccSerialNum.equals(data.getAccSerialNum())) { if (prevAccSerialNum == null || !prevAccSerialNum.equals(data.getAccSerialNum())) {
if (data.getAmtPastDue() != null && data.getAmtPastDue().compareTo(BigDecimal.valueOf(5000)) >= 0) { if (data.getAmtPastDue() != null && data.getAmtPastDue().compareTo(BigDecimal.valueOf(5000)) >= 0) {
flag5000Map.put(fid, 1); flag5000Map.put(fid, 1);
} else {
flag5000Map.put(fid, 0);
} }
prevAccSerialNum = data.getAccSerialNum(); prevAccSerialNum = data.getAccSerialNum();
} }
} }
if (flag90Days.get(fid) != null && flag90Days.get(fid) == 1) { Integer flag90 = flag90Days.get(fid);
if (flag90 != null && flag90 == 1) {
iterator.remove(); iterator.remove();
break; break;
} }
if (flag90Days.get(fid) == null || flag90Days.get(fid) == 0) { if (flag90 == null || flag90 == 0) {
if (data.getDaysPastDue() != null) { if (data.getDaysPastDue() != null) {
boolean has90daysFlag = data.getDaysPastDue().compareTo(BigInteger.valueOf(90)) >= 0 && !data.getReportedDate().isBefore(yearAgo); boolean has90daysFlag = data.getDaysPastDue().compareTo(BigInteger.valueOf(90)) >= 0 && !data.getReportedDate().isBefore(yearAgo);
if (has90daysFlag) { if (has90daysFlag) {
@ -137,12 +142,9 @@ public class FlagsService {
} }
} }
} }
if (flag5000Map.get(fid) == null) { // если мы так и не нашли флаги для этих фидов - выставляем их в 0
flag5000Map.put(fid, 0); flag5000Map.putIfAbsent(fid, 0);
} flag90Days.putIfAbsent(fid, 0);
if (flag90Days.get(fid) == null) {
flag90Days.put(fid, 0);
}
} }
log.debug("Complete calculating flag 5000 and 90 days by RU_PASTDUEARREAR"); log.debug("Complete calculating flag 5000 and 90 days by RU_PASTDUEARREAR");
} }