http://jira.mfd.msk:8088/browse/CLS-523 conditions fix
This commit is contained in:
parent
488f7f999b
commit
63d0a12f55
8 changed files with 85 additions and 5 deletions
|
|
@ -4,6 +4,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.history.condition.HistorySubscription;
|
import ru.spcex.clearing.backendapi.controller.queue.history.condition.HistorySubscription;
|
||||||
|
import ru.spcex.clearing.backendapi.controller.queue.history.condition.specific.ClearingDateFromCondition;
|
||||||
|
import ru.spcex.clearing.backendapi.controller.queue.history.condition.specific.ClearingDateToCondition;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.history.condition.specific.CreatedFromCondition;
|
import ru.spcex.clearing.backendapi.controller.queue.history.condition.specific.CreatedFromCondition;
|
||||||
import ru.spcex.clearing.backendapi.controller.queue.history.condition.specific.CreatedToCondition;
|
import ru.spcex.clearing.backendapi.controller.queue.history.condition.specific.CreatedToCondition;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
@ -31,6 +33,8 @@ public class HistoryConfig {
|
||||||
public List<HistorySubscription> histSubscriptions() {
|
public List<HistorySubscription> histSubscriptions() {
|
||||||
List<HistorySubscription> hst = new LinkedList<>();
|
List<HistorySubscription> hst = new LinkedList<>();
|
||||||
hst.add(moneyBalanceRegister());
|
hst.add(moneyBalanceRegister());
|
||||||
|
hst.add(admittedLiabilitiesRegister());
|
||||||
|
hst.add(moneyPaymentInstructionRegister());
|
||||||
return hst;
|
return hst;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,4 +49,28 @@ public class HistoryConfig {
|
||||||
));
|
));
|
||||||
return sbscr;
|
return sbscr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private HistorySubscription admittedLiabilitiesRegister() {
|
||||||
|
HistorySubscription sbscr = new HistorySubscription();
|
||||||
|
sbscr.setDestination("admitted-liabilities-registers");
|
||||||
|
sbscr.setSearchProxyMapName(IMDGDistributedNames.Map_SearchAdmittedLiabilitiesRegister);
|
||||||
|
sbscr.setFullHistoryMapName(IMDGDistributedNames.Map_AdmittedLiabilitiesRegister);
|
||||||
|
sbscr.setConditions(List.of(
|
||||||
|
new ClearingDateFromCondition(pb),
|
||||||
|
new ClearingDateToCondition(pb)
|
||||||
|
));
|
||||||
|
return sbscr;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HistorySubscription moneyPaymentInstructionRegister() {
|
||||||
|
HistorySubscription sbscr = new HistorySubscription();
|
||||||
|
sbscr.setDestination("money-payment-instruction-registers");
|
||||||
|
sbscr.setSearchProxyMapName(IMDGDistributedNames.Map_SearchMoneyPaymentInstructionRegister);
|
||||||
|
sbscr.setFullHistoryMapName(IMDGDistributedNames.Map_MoneyPaymentInstructionRegister);
|
||||||
|
sbscr.setConditions(List.of(
|
||||||
|
new ClearingDateFromCondition(pb),
|
||||||
|
new ClearingDateToCondition(pb)
|
||||||
|
));
|
||||||
|
return sbscr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,11 +52,11 @@ public class HistController {
|
||||||
@ApiParam(value = "destination сущности по которой запрашивается история", example = "money-balance-registers", required = true)
|
@ApiParam(value = "destination сущности по которой запрашивается история", example = "money-balance-registers", required = true)
|
||||||
@RequestParam("destination")
|
@RequestParam("destination")
|
||||||
String destination,
|
String destination,
|
||||||
@ApiParam(value = "Начальная точка поиска по дате", example = "2023-01-15", required = true)
|
@ApiParam(value = "Начальная точка поиска по дате", example = "2023-01-15")
|
||||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
|
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
|
||||||
@RequestParam(name = "from", required = false)
|
@RequestParam(name = "from", required = false)
|
||||||
LocalDate from,
|
LocalDate from,
|
||||||
@ApiParam(value = "Конечная точка поиска по дате", example = "2023-01-15", required = true)
|
@ApiParam(value = "Конечная точка поиска по дате", example = "2023-01-15")
|
||||||
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
|
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
|
||||||
@RequestParam(name = "to", required = false)
|
@RequestParam(name = "to", required = false)
|
||||||
LocalDate to
|
LocalDate to
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,8 @@ public class ConditionProvider {
|
||||||
//add boundary conditions?
|
//add boundary conditions?
|
||||||
log.warn("destination '{}' zero predicates found", destination);
|
log.warn("destination '{}' zero predicates found", destination);
|
||||||
result = pb.alwaysTrue();
|
result = pb.alwaysTrue();
|
||||||
|
} else if (predicates.size() == 1) {
|
||||||
|
result = predicates.iterator().next();
|
||||||
} else {
|
} else {
|
||||||
result = pb.and(predicates.toArray(new ImdgPredicate[0]));
|
result = pb.and(predicates.toArray(new ImdgPredicate[0]));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package ru.spcex.clearing.backendapi.controller.queue.history.condition.specific;
|
||||||
|
|
||||||
|
import ru.spcex.clearing.backendapi.controller.queue.history.condition.IHistoryCondition;
|
||||||
|
import ru.spcex.clearing.backendapi.controller.request.cud.history.HistoryRequest;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public class ClearingDateFromCondition implements IHistoryCondition {
|
||||||
|
|
||||||
|
private final ImdgPredicateBuilder pb;
|
||||||
|
|
||||||
|
public ClearingDateFromCondition(ImdgPredicateBuilder pb) {
|
||||||
|
this.pb = pb;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<ImdgPredicate> condition(HistoryRequest req) {
|
||||||
|
if (req.getFrom() != null) {
|
||||||
|
return Optional.ofNullable(pb.greatEqual("clearingDate", req.getFrom()));
|
||||||
|
}
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package ru.spcex.clearing.backendapi.controller.queue.history.condition.specific;
|
||||||
|
|
||||||
|
import ru.spcex.clearing.backendapi.controller.queue.history.condition.IHistoryCondition;
|
||||||
|
import ru.spcex.clearing.backendapi.controller.request.cud.history.HistoryRequest;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
public class ClearingDateToCondition implements IHistoryCondition {
|
||||||
|
|
||||||
|
private final ImdgPredicateBuilder pb;
|
||||||
|
|
||||||
|
public ClearingDateToCondition(ImdgPredicateBuilder pb) {
|
||||||
|
this.pb = pb;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<ImdgPredicate> condition(HistoryRequest req) {
|
||||||
|
if (req.getTo() != null) {
|
||||||
|
return Optional.ofNullable(pb.lessEqual("clearingDate", req.getTo()));
|
||||||
|
}
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -19,7 +19,7 @@ public class CreatedFromCondition implements IHistoryCondition {
|
||||||
@Override
|
@Override
|
||||||
public Optional<ImdgPredicate> condition(HistoryRequest req) {
|
public Optional<ImdgPredicate> condition(HistoryRequest req) {
|
||||||
if (req.getFrom() != null) {
|
if (req.getFrom() != null) {
|
||||||
pb.greatEqual("created", TimeUtil.localDateToInstant(req.getFrom()));
|
return Optional.of(pb.greatEqual("created", TimeUtil.localDateToInstant(req.getFrom())));
|
||||||
}
|
}
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ public class CreatedToCondition implements IHistoryCondition {
|
||||||
@Override
|
@Override
|
||||||
public Optional<ImdgPredicate> condition(HistoryRequest req) {
|
public Optional<ImdgPredicate> condition(HistoryRequest req) {
|
||||||
if (req.getTo() != null) {
|
if (req.getTo() != null) {
|
||||||
pb.lessEqual("created", TimeUtil.localDateToInstant(req.getTo()));
|
return Optional.of(pb.lessEqual("created", TimeUtil.localDateToInstant(req.getTo())));
|
||||||
}
|
}
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ public class StateLoaderImpl implements IStateLoader {
|
||||||
String mapName,
|
String mapName,
|
||||||
Class<T> clazz,
|
Class<T> clazz,
|
||||||
ImdgPredicate conditions) {
|
ImdgPredicate conditions) {
|
||||||
Imdg<T> imdgSearch = getHistImdg(searchMapName, clazz);
|
Imdg<SpcexObjectBase> imdgSearch = getHistImdg(searchMapName, SpcexObjectBase.class);
|
||||||
Imdg<T> imdgHistory = getHistImdg(mapName, clazz);
|
Imdg<T> imdgHistory = getHistImdg(mapName, clazz);
|
||||||
Collection<Long> ids = imdgSearch.getCollectionIdsByPredicate(conditions);
|
Collection<Long> ids = imdgSearch.getCollectionIdsByPredicate(conditions);
|
||||||
return ids.stream()
|
return ids.stream()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue