Fix Source selecting

This commit is contained in:
Mikhail Trofimov 2026-06-29 15:21:47 +03:00
parent a1f4b86f99
commit c5ace5e151
4 changed files with 14 additions and 2 deletions

View file

@ -56,6 +56,7 @@ public class NbchDataSourceConfig extends DatabaseConfig {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource); sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setMapperLocations(resources); sqlSessionFactoryBean.setMapperLocations(resources);
sqlSessionFactoryBean.setTypeHandlersPackage("ru.nbch.credit_tracker.config.datasource.handlers");
return sqlSessionFactoryBean.getObject(); return sqlSessionFactoryBean.getObject();
} }
} }

View file

@ -2,6 +2,8 @@ package ru.nbch.credit_tracker.entities.nbch;
import lombok.*; import lombok.*;
import java.time.LocalDate;
@Getter @Getter
@Setter @Setter
@Builder @Builder
@ -10,4 +12,5 @@ import lombok.*;
public class Source { public class Source {
private String memberCode; private String memberCode;
private String category; private String category;
private LocalDate agrDate;
} }

View file

@ -5,6 +5,7 @@ import ru.nbch.credit_tracker.entities.nbch.Source;
import ru.nbch.credit_tracker.mapper.nbch.SourceMapper; import ru.nbch.credit_tracker.mapper.nbch.SourceMapper;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -23,9 +24,14 @@ public class SourceService {
return Collections.emptyMap(); return Collections.emptyMap();
} }
return sourceMapper.findBusCategories(memberCodes).stream() return sourceMapper.findBusCategories(memberCodes).stream()
.sorted(Comparator.comparing(
Source::getAgrDate,
Comparator.nullsLast(Comparator.reverseOrder())
))
.collect(Collectors.toMap( .collect(Collectors.toMap(
Source::getMemberCode, Source::getMemberCode,
Source::getCategory Source::getCategory,
(existing, replacement) -> existing
)); ));
} }

View file

@ -8,12 +8,14 @@
<select id="findBusCategories" resultType="ru.nbch.credit_tracker.entities.nbch.Source"> <select id="findBusCategories" resultType="ru.nbch.credit_tracker.entities.nbch.Source">
SELECT DISTINCT SELECT DISTINCT
MEMBER_CODE as memberCode, MEMBER_CODE as memberCode,
CATEGORY as category CATEGORY as category,
AGR_DATE as agrDate
FROM SOURCE FROM SOURCE
WHERE MEMBER_CODE IN WHERE MEMBER_CODE IN
<foreach item='memberCode' collection='memberCodes' open='(' separator=',' close=')'> <foreach item='memberCode' collection='memberCodes' open='(' separator=',' close=')'>
#{memberCode} #{memberCode}
</foreach> </foreach>
ORDER BY AGR_DATE DESC
</select> </select>
<select id="findBusCategory" resultType="java.lang.String"> <select id="findBusCategory" resultType="java.lang.String">