SUPPORT-8842: test(1)
This commit is contained in:
parent
55f87746ad
commit
317f681ada
6 changed files with 34 additions and 18 deletions
|
|
@ -10,7 +10,7 @@ import ervu.model.okopf.OkopfModel;
|
|||
* @author Artyom Hackimullin
|
||||
*/
|
||||
public interface OkopfDao {
|
||||
void save(List<OkopfModel> recordModels);
|
||||
void saveOrUpdate(List<OkopfModel> recordModels);
|
||||
|
||||
String fetchTitleByLeg(String leg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
package ervu.dao.okopf;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import ervu.model.okopf.OkopfModel;
|
||||
import ervu_lkrp_ul.ervu_lkrp_ul.db_beans.public_.tables.records.OkopfRecordsRecord;
|
||||
import org.jooq.DSLContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
|
@ -20,18 +23,12 @@ public class OkopfDaoImpl implements OkopfDao {
|
|||
private DSLContext dsl;
|
||||
|
||||
@Override
|
||||
public void save(List<OkopfModel> recordModels) {
|
||||
var queries = recordModels.stream().map(record ->
|
||||
dsl.insertInto(OKOPF_RECORDS, OKOPF_RECORDS.OKOPF_RECORDS_ID, OKOPF_RECORDS.NAME, OKOPF_RECORDS.VERSION)
|
||||
.values(record.getCode(), record.getName(), record.getVersion())
|
||||
.onConflict(OKOPF_RECORDS.OKOPF_RECORDS_ID)
|
||||
.doUpdate()
|
||||
.set(OKOPF_RECORDS.NAME, record.getName())
|
||||
.set(OKOPF_RECORDS.VERSION, record.getVersion())
|
||||
.where(OKOPF_RECORDS.OKOPF_RECORDS_ID.eq(record.getCode()))
|
||||
).toList();
|
||||
|
||||
dsl.batch(queries).execute();
|
||||
public void saveOrUpdate(List<OkopfModel> okopfModels) {
|
||||
deleteNotActualOkopfRecords(okopfModels);
|
||||
dsl.batchUpdate(okopfModels.stream()
|
||||
.map(this::mapOkopfModelToRecord)
|
||||
.toList())
|
||||
.execute();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -41,4 +38,23 @@ public class OkopfDaoImpl implements OkopfDao {
|
|||
.where(OKOPF_RECORDS.OKOPF_RECORDS_ID.eq(leg))
|
||||
.fetchOne(OKOPF_RECORDS.NAME);
|
||||
}
|
||||
|
||||
private void deleteNotActualOkopfRecords(List<OkopfModel> recordModels) {
|
||||
Set<String> ids = recordModels
|
||||
.stream()
|
||||
.map(OkopfModel::getCode)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
dsl.deleteFrom(OKOPF_RECORDS)
|
||||
.where(OKOPF_RECORDS.OKOPF_RECORDS_ID.notIn(ids))
|
||||
.execute();
|
||||
}
|
||||
|
||||
private OkopfRecordsRecord mapOkopfModelToRecord(OkopfModel model) {
|
||||
OkopfRecordsRecord record = dsl.newRecord(OKOPF_RECORDS);
|
||||
record.setValue(OKOPF_RECORDS.OKOPF_RECORDS_ID, model.getCode());
|
||||
record.setValue(OKOPF_RECORDS.NAME, model.getName());
|
||||
record.setValue(OKOPF_RECORDS.VERSION, model.getVersion());
|
||||
return record;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import ervu.model.okopf.OkopfAttributeValueModel;
|
|||
import ervu.model.okopf.OkopfDataModel;
|
||||
import ervu.model.okopf.OkopfModel;
|
||||
import ervu.model.okopf.OkopfOrgModel;
|
||||
import ru.micord.ervu.exception.JsonParsingException;
|
||||
import net.javacrumbs.shedlock.core.SchedulerLock;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -23,6 +22,7 @@ import org.springframework.context.annotation.DependsOn;
|
|||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import ru.micord.ervu.exception.JsonParsingException;
|
||||
|
||||
import static org.springframework.scheduling.config.ScheduledTaskRegistrar.CRON_DISABLED;
|
||||
import static org.springframework.util.StringUtils.hasText;
|
||||
|
|
@ -69,7 +69,7 @@ public class EsnsiOkopfSchedulerServiceImpl implements EsnsiOkopfSchedulerServic
|
|||
OkopfOrgModel orgModel = mapper.readValue(data, OkopfOrgModel.class);
|
||||
int currentVersion = mapper.readTree(data).findValue("version").asInt();
|
||||
List<OkopfModel> okopfRecords = mapToOkopfRecords(orgModel.getData(), currentVersion);
|
||||
okopfDao.save(okopfRecords);
|
||||
okopfDao.saveOrUpdate(okopfRecords);
|
||||
}
|
||||
}
|
||||
catch (JsonProcessingException e) {
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ ERVU_KAFKA_PASSWORD=Blfi9d2OFG
|
|||
ERVU_KAFKA_EXCERPT_REPLY_TOPIC=ervu.lkrp.excerpt.response
|
||||
ERVU_KAFKA_EXCERPT_REQUEST_TOPIC=ervu.lkrp.excerpt.request
|
||||
|
||||
ESNSI_OKOPF_URL=https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/11465/file?extension=JSON&encoding=UTF_8
|
||||
ESNSI_OKOPF_URL=https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/16271/file?extension=JSON&encoding=UTF_8
|
||||
ESNSI_OKOPF_CRON_LOAD=0 0 */1 * * *
|
||||
ESNSI_OKOPF_RETRY_MAX_ATTEMPTS_LOAD=3
|
||||
ESNSI_OKOPF_RETRY_DELAY_LOAD=1000
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ ERVU_KAFKA_USERNAME=user1
|
|||
ERVU_KAFKA_PASSWORD=Blfi9d2OFG
|
||||
ERVU_KAFKA_EXCERPT_REPLY_TOPIC=ervu.lkrp.excerpt.response
|
||||
ERVU_KAFKA_EXCERPT_REQUEST_TOPIC=ervu.lkrp.excerpt.request
|
||||
ESNSI_OKOPF_URL=https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/11465/file?extension=JSON&encoding=UTF_8
|
||||
ESNSI_OKOPF_URL=https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/16271/file?extension=JSON&encoding=UTF_8
|
||||
ESNSI_OKOPF_CRON_LOAD=0 0 */1 * * *
|
||||
ESNSI_OKOPF_RETRY_MAX_ATTEMPTS_LOAD=3
|
||||
ESNSI_OKOPF_RETRY_DELAY_LOAD=1000
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@
|
|||
<property name="ervu.kafka.username" value="user1"/>
|
||||
<property name="ervu.kafka.password" value="Blfi9d2OFG"/>
|
||||
<property name="esnsi.okopf.cron.load" value="0 0 */1 * * *"/>
|
||||
<property name="esnsi.okopf.url" value="https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/11465/file?extension=JSON&encoding=UTF_8"/>
|
||||
<property name="esnsi.okopf.url" value="https://esnsi.gosuslugi.ru/rest/ext/v1/classifiers/16271/file?extension=JSON&encoding=UTF_8"/>
|
||||
<property name="esnsi.okop.retry.delay.load" value="1000"/>
|
||||
<property name="esnsi.okopf.retry.max.attempts.load" value="3"/>
|
||||
<property name="ervu.kafka.journal.request.topic" value="ervu.organization.journal.request"/>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue