flag calc

This commit is contained in:
etreschenkov 2025-11-11 12:52:01 +03:00
parent 7176a49814
commit 4e6ab1a862

View file

@ -1,6 +1,7 @@
package ru.nbch.credit_tracker.service.task.impl; package ru.nbch.credit_tracker.service.task.impl;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
@ -20,7 +21,6 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.lang3.exception.ExceptionUtils;
import ru.nbch.credit_tracker.entities.app.PhoneFidMap;
import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper; import ru.nbch.credit_tracker.mapper.signal.PhoneFidMapMapper;
import ru.nbch.credit_tracker.model.SubjectProfile; import ru.nbch.credit_tracker.model.SubjectProfile;
import ru.nbch.credit_tracker.model.impl.SubjectPayload; import ru.nbch.credit_tracker.model.impl.SubjectPayload;
@ -95,7 +95,9 @@ public class FlagsEnricher implements Runnable {
Map<Integer, Integer> flag90ByPastDueArrear = flagsService.findFlag90ByPastDueArrear(fids, yearAgo); Map<Integer, Integer> flag90ByPastDueArrear = flagsService.findFlag90ByPastDueArrear(fids, yearAgo);
Map<Integer, Integer> flag90ByRuPaymt = flagsService.findFlag90ByRuPaymt(fids, yearAgo); Map<Integer, Integer> flag90ByRuPaymt = flagsService.findFlag90ByRuPaymt(fids, yearAgo);
List<PhoneFidMap> phoneFidMaps = subjects.stream().map(subject -> { String json;
try {
json = mapper.writeValueAsString(subjects.stream().map(subject -> {
Integer debt5000 = null; Integer debt5000 = null;
Integer flagDays90 = null; Integer flagDays90 = null;
LocalDateTime calculatedAt = null; LocalDateTime calculatedAt = null;
@ -108,39 +110,20 @@ public class FlagsEnricher implements Runnable {
calculatedAt = LocalDateTime.now(); calculatedAt = LocalDateTime.now();
} }
return PhoneFidMap.builder() Integer finalDebt500 = debt5000;
.phone(subject.getPhone()) Integer finalFlagDays9 = flagDays90;
.subjectId(subject.getIdentifier()) LocalDateTime finalCalculatedAt = calculatedAt;
.packageId(subjectPayload.getPackageId()) return new HashMap<String, Object>() {{
.fid(subject.getFid()) put("subject_id", subject.getIdentifier());
.flagDebt5000(debt5000) put("fid", subject.getFid());
.flag90days(flagDays90) put("phone", subject.getPhone());
.calculatedAt(calculatedAt) put("package_id", subjectPayload.getPackageId());
.build(); put("flag_debt5000", finalDebt500);
}).toList(); put("flag_90_12", finalFlagDays9);
put("calculated_at", finalCalculatedAt);
List<PhoneFidMap> nullObjs = phoneFidMaps.stream().filter(Objects::isNull).toList(); }};
log.debug("null objs: {}", nullObjs.size()); }).toList());
if (!nullObjs.isEmpty()) { } catch (JsonProcessingException e) {
int i = 0;
i++;
}
String json = null;
try {
json = mapper.writeValueAsString(
phoneFidMaps.stream()
.filter(Objects::nonNull)
.map(p -> new HashMap() {{
put("subject_id", p.getSubjectId());
put("fid", p.getFid());
put("phone", p.getPhone());
put("package_id", p.getPackageId());
put("flag_debt5000", p.getFlagDebt5000());
put("flag_90_12", p.getFlag90days());
put("calculated_at", p.getCalculatedAt());
}}
).toList());
} catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
phoneFidMapMapper.registerJson(json); phoneFidMapMapper.registerJson(json);