get rid of InnRegnumPair record

This commit is contained in:
Mikhail Trofimov 2026-07-05 12:22:55 +03:00
parent bcfe0328f0
commit 20ec6871d5
2 changed files with 17 additions and 16 deletions

View file

@ -125,12 +125,13 @@ public class PackageRecordsService {
public List<Long> selectLpUniquePackageIds(List<LegalsMap> legalsMaps) { public List<Long> selectLpUniquePackageIds(List<LegalsMap> legalsMaps) {
try { try {
List<InnRegnumPair> pairs = legalsMaps.stream() String json = entityToJsonMapper.writeValueAsString(legalsMaps.stream()
.filter(Objects::nonNull) .filter(Objects::nonNull)
.map(legalMap -> new InnRegnumPair(legalMap.getInn(), legalMap.getRegNum())) .map(s -> new HashMap<String, Object>() {{
.toList(); put("inn", s.getInn());
put("reg_num", s.getRegNum());
}}).toList());
String json = entityToJsonMapper.writeValueAsString(pairs);
return packagesRecordsMapper.uniquePackageIdByInnAndRegNum(json); return packagesRecordsMapper.uniquePackageIdByInnAndRegNum(json);
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@ -225,11 +226,13 @@ public class PackageRecordsService {
public List<UserPackageLegalData> selectUserPackageLegalData(Set<Pair<Long, Long>> uniqueInnRegnumPairs) { public List<UserPackageLegalData> selectUserPackageLegalData(Set<Pair<Long, Long>> uniqueInnRegnumPairs) {
try { try {
List<InnRegnumPair> pairs = uniqueInnRegnumPairs.stream() String json = entityToJsonMapper.writeValueAsString(uniqueInnRegnumPairs.stream()
.map(pair -> new InnRegnumPair(pair.getKey(), pair.getValue())) .filter(Objects::nonNull)
.toList(); .map(s -> new HashMap<String, Object>() {{
put("inn", s.getKey());
put("reg_num", s.getValue());
}}).toList());
String json = entityToJsonMapper.writeValueAsString(pairs);
return packagesRecordsMapper.selectUserPackageLegalData(json); return packagesRecordsMapper.selectUserPackageLegalData(json);
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@ -250,6 +253,4 @@ public class PackageRecordsService {
} }
} }
public record InnRegnumPair(Long inn, Long regNum) {
}
} }

View file

@ -54,15 +54,15 @@
</select> </select>
<select id="uniquePackageIdByInnAndRegNum" resultType="java.lang.Long"> <select id="uniquePackageIdByInnAndRegNum" resultType="java.lang.Long">
WITH src AS (SELECT inn, regNum WITH src AS (SELECT inn, reg_num
FROM json_to_recordset(#{json}::json) AS t( FROM json_to_recordset(#{json}::json) AS t(
inn bigint, inn bigint,
regNum bigint reg_num bigint
)) ))
select distinct (package_id) select distinct (package_id)
FROM signals_legal_fid_map slfm FROM signals_legal_fid_map slfm
JOIN signals_user_packages sup ON sup.id = slfm.package_id JOIN signals_user_packages sup ON sup.id = slfm.package_id
WHERE (slfm.inn, slfm.reg_num) IN (SELECT inn, regNum FROM src) WHERE (slfm.inn, slfm.reg_num) IN (SELECT inn, reg_num FROM src)
AND sup.status = 'ON_MONITORING' AND sup.status = 'ON_MONITORING'
</select> </select>
@ -78,17 +78,17 @@
</select> </select>
<select id="selectUserPackageLegalData" resultType="ru.nbch.credit_tracker.model.UserPackageLegalData"> <select id="selectUserPackageLegalData" resultType="ru.nbch.credit_tracker.model.UserPackageLegalData">
WITH src AS (SELECT inn, regNum WITH src AS (SELECT inn, reg_num
FROM json_to_recordset(#{json}::json) AS t( FROM json_to_recordset(#{json}::json) AS t(
inn bigint, inn bigint,
regNum bigint reg_num bigint
)) ))
SELECT sup.id AS packageId, sup.signal_types AS signalTypes, sup.membercode AS userId, SELECT sup.id AS packageId, sup.signal_types AS signalTypes, sup.membercode AS userId,
sup.package_name AS packageName, slfm.inn AS inn, slfm.reg_num AS regNum, sup.package_name AS packageName, slfm.inn AS inn, slfm.reg_num AS regNum,
slfm.subject_id AS subjectId slfm.subject_id AS subjectId
FROM signals_legal_fid_map slfm FROM signals_legal_fid_map slfm
JOIN signals_user_packages sup ON sup.id = slfm.package_id JOIN signals_user_packages sup ON sup.id = slfm.package_id
WHERE (slfm.inn, slfm.reg_num) IN (SELECT inn, regNum FROM src) WHERE (slfm.inn, slfm.reg_num) IN (SELECT inn, reg_num FROM src)
AND sup.status = 'ON_MONITORING' AND sup.status = 'ON_MONITORING'
</select> </select>