Fix chache selecting for LP

This commit is contained in:
Mikhail Trofimov 2026-07-05 11:56:40 +03:00
parent bbc7c64acf
commit bcfe0328f0
5 changed files with 15 additions and 14 deletions

View file

@ -31,7 +31,7 @@ public interface LegalsMapMapper {
@Param("batchSize") int batchSize,
@Param("lastId") Long lastId);
List<LegalsMap> findCachedByInnAndRegNUm(@Param("json") String json);
List<LegalsMap> findCachedByInnAndRegNum(@Param("json") String json);
void updateSearchedAt(@Param("json") String json);

View file

@ -56,12 +56,13 @@ public class PackageRecordsService {
public Map<Pair<Long, Long>, LegalsMap> findCachedLegalsByInnAndRegNums(List<SubjectProfile> subjects) {
try {
List<InnRegnumPair> innAndRegNums = subjects.stream()
.map(s -> new InnRegnumPair(s.getInn(), s.getRegNum()))
.toList();
String json = entityToJsonMapper.writeValueAsString(innAndRegNums);
return legalsMapMapper.findCachedByInnAndRegNUm(json)
String json = entityToJsonMapper.writeValueAsString(subjects.stream()
.filter(Objects::nonNull)
.map(s -> new HashMap<String, Object>() {{
put("inn", s.getInn());
put("reg_num", s.getRegNum());
}}).toList());
return legalsMapMapper.findCachedByInnAndRegNum(json)
.stream()
.collect(Collectors.toMap(
lm -> Pair.of(lm.getInn(), lm.getRegNum()),

View file

@ -129,7 +129,7 @@ public class LpFidEnricher implements Handler<SubjectPayload, SubjectPayload> {
packageRecordsService.saveLegalsToCache(subjectForSave);
return subjectForSave.stream().anyMatch(s -> s.getFid() != null);
return subjectForSave.stream().anyMatch(s -> s.getFid() != null) || (noFidsData.isEmpty() && !cachedRecords.isEmpty());
}
private void fillByCache(SubjectProfile subjectProfile, LegalsMap cachedRecord) {

View file

@ -99,7 +99,7 @@ public class NpFidEnricher implements Handler<SubjectPayload, SubjectPayload> {
packageRecordsService.saveToCache(subjectForSave);
return subjectForSave.stream().anyMatch(s -> s.getFid() != null);
return subjectForSave.stream().anyMatch(s -> s.getFid() != null) || (noFidsData.isEmpty() && !cachedRecords.isEmpty());
}
private void fillByCache(SubjectProfile subjectProfile, PhonesMap cachedRecord) {

View file

@ -8,7 +8,7 @@
<resultMap id="LegalsMap" type="ru.nbch.credit_tracker.entities.app.LegalsMap">
<result property="id" column="id"/>
<result property="inn" column="inn"/>
<result property="regNUm" column="reg_num"/>
<result property="regNum" column="reg_num"/>
<result property="fid" column="fid"/>
<result property="searchedAt" column="searched_at"/>
<result property="flag90days" column="flag_90_12"/>
@ -58,11 +58,11 @@
</foreach>
</select>
<select id="findCachedByInnAndRegNUm" resultMap="LegalsMap">
WITH src AS (SELECT inn, regNum
<select id="findCachedByInnAndRegNum" resultMap="LegalsMap">
WITH src AS (SELECT inn, reg_num
FROM json_to_recordset(#{json}::json) AS t(
inn bigint,
regNum bigint
reg_num bigint
))
SELECT slm.id AS id,
slm.fid as fid,
@ -73,7 +73,7 @@
slm.calculated_at AS calculated_at,
slm.last_rejected_date AS last_rejected_date
FROM signals_legals_map slm
WHERE (slm.inn, slm.reg_num) IN (SELECT inn, regNum FROM src)
WHERE (slm.inn, slm.reg_num) IN (SELECT inn, reg_num FROM src)
</select>
<select id="findEligibleForFlagsUpdate" resultMap="LegalsMap">