fix overnightType creating OrderCurrency
This commit is contained in:
parent
b702758d6d
commit
37c0112525
6 changed files with 43 additions and 31 deletions
|
|
@ -15,9 +15,6 @@ public class OvernightTypeChanged implements IValidationRule<ImdgValidationConte
|
|||
public Optional<EnumMessage> validate(ImdgValidationContext<OrderCurrencyUpdateRequest> ctx) {
|
||||
OrderCurrencyUpdateRequest validatedObject = ctx.getValidatedObject();
|
||||
OrderCurrency oc = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency);
|
||||
if (oc.getOvernightType() == null) {
|
||||
return of(DefaultManagementErrors.GeneralError); //не понятно че с ним делать...
|
||||
}
|
||||
if (oc.getOvernightType().equalsIgnoreCase(validatedObject.getOvernightType())) {
|
||||
return of(DefaultManagementErrors.GeneralError); //todo нормальную ошибку
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@ package ru.spcex.clearing.dflt.management.model;
|
|||
import ru.clearing.classes.statics.data.misc.Market;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.security.RiskParameter;
|
||||
import ru.spcex.platform.enumeration.OvernightType;
|
||||
|
||||
public class SwapContext {
|
||||
public class OrderCurrencyContext {
|
||||
private final Registry registry;
|
||||
private final String orderCategory;
|
||||
private final Market market;
|
||||
|
|
@ -12,8 +13,9 @@ public class SwapContext {
|
|||
private final CounterpartyInfo categoryP;
|
||||
private final CounterpartyInfo clcc;
|
||||
private final CounterpartyInfo rgcm;
|
||||
private final OvernightType overnightType;
|
||||
|
||||
private SwapContext(Builder builder) {
|
||||
private OrderCurrencyContext(Builder builder) {
|
||||
this.registry = builder.registry;
|
||||
this.orderCategory = builder.orderCategory;
|
||||
this.market = builder.market;
|
||||
|
|
@ -21,6 +23,7 @@ public class SwapContext {
|
|||
this.categoryP = builder.categoryP;
|
||||
this.clcc = builder.clcc;
|
||||
this.rgcm = builder.rgcm;
|
||||
this.overnightType = builder.overnightType;
|
||||
}
|
||||
|
||||
public Registry getRegistry() {
|
||||
|
|
@ -51,6 +54,10 @@ public class SwapContext {
|
|||
return rgcm;
|
||||
}
|
||||
|
||||
public OvernightType getOvernightType() {
|
||||
return overnightType;
|
||||
}
|
||||
|
||||
public static Builder builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
|
@ -63,6 +70,7 @@ public class SwapContext {
|
|||
private CounterpartyInfo categoryP;
|
||||
private CounterpartyInfo clcc;
|
||||
private CounterpartyInfo rgcm;
|
||||
private OvernightType overnightType;
|
||||
|
||||
public Builder registry(Registry registry) {
|
||||
this.registry = registry;
|
||||
|
|
@ -99,8 +107,13 @@ public class SwapContext {
|
|||
return this;
|
||||
}
|
||||
|
||||
public SwapContext build() {
|
||||
return new SwapContext(this);
|
||||
public Builder overnightType(OvernightType overnightType) {
|
||||
this.overnightType = overnightType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public OrderCurrencyContext build() {
|
||||
return new OrderCurrencyContext(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@ import ru.clearing.classes.statics.data.registry.Registry;
|
|||
import ru.clearing.classes.statics.data.security.Rates;
|
||||
import ru.clearing.platform.dictionary.CurrencyPairDictionary;
|
||||
import ru.spcex.clearing.dflt.management.model.CalculationResult;
|
||||
import ru.spcex.clearing.dflt.management.model.SwapContext;
|
||||
import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext;
|
||||
import ru.spcex.platform.enumeration.SettleCode;
|
||||
|
||||
@Service
|
||||
|
|
@ -29,7 +29,7 @@ public class OrderCalculationService {
|
|||
}
|
||||
|
||||
public void calcAndEnrichSwap(OrderCurrency order,
|
||||
SwapContext context) {
|
||||
OrderCurrencyContext context) {
|
||||
Registry registry = context.getRegistry();
|
||||
Listing listing = imdgQueryService.findListing(registry, context.getMarket().getCode(), order.getSettleCode());
|
||||
|
||||
|
|
@ -49,7 +49,7 @@ public class OrderCalculationService {
|
|||
}
|
||||
|
||||
public void calcAndEnrichSpot(OrderCurrency order,
|
||||
SwapContext context) {
|
||||
OrderCurrencyContext context) {
|
||||
Registry registry = context.getRegistry();
|
||||
Listing listing = imdgQueryService.findListing(registry, context.getMarket().getCode(), order.getSettleCode());
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,8 @@ import ru.clearing.classes.statics.data.misc.Listing;
|
|||
import ru.clearing.classes.statics.data.misc.Market;
|
||||
import ru.clearing.classes.statics.data.misc.OrderCurrency;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.security.RiskParameter;
|
||||
import ru.spcex.clearing.dflt.management.model.CounterpartyInfo;
|
||||
import ru.spcex.clearing.dflt.management.model.SwapContext;
|
||||
import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext;
|
||||
import ru.spcex.platform.enumeration.SettleCode;
|
||||
import static ru.spcex.platform.enumeration.SettleCode.T0;
|
||||
import ru.spcex.platform.enumeration.Side;
|
||||
|
|
@ -21,7 +20,7 @@ public class OrderTemplateBuilder {
|
|||
this.imdgQueryService = imdgQueryService;
|
||||
}
|
||||
|
||||
public OrderCurrency buildPrimaryTransfer(SwapContext context, SettleCode settleCode) {
|
||||
public OrderCurrency buildPrimaryTransfer(OrderCurrencyContext context, SettleCode settleCode) {
|
||||
OrderCurrency orderCurrency;
|
||||
switch (context.getOrderCategory()) {
|
||||
case "PL" -> orderCurrency = buildPrimaryTransferPl(context);
|
||||
|
|
@ -33,7 +32,7 @@ public class OrderTemplateBuilder {
|
|||
return orderCurrency;
|
||||
}
|
||||
|
||||
public OrderCurrency buildCounterTransfer(SwapContext context, SettleCode settleCode) {
|
||||
public OrderCurrency buildCounterTransfer(OrderCurrencyContext context, SettleCode settleCode) {
|
||||
OrderCurrency orderCurrency;
|
||||
switch (context.getOrderCategory()) {
|
||||
case "PL" -> orderCurrency = buildCounterTransferPl(context);
|
||||
|
|
@ -46,7 +45,7 @@ public class OrderTemplateBuilder {
|
|||
return orderCurrency;
|
||||
}
|
||||
|
||||
public OrderCurrency buildPrimaryBalancing(SwapContext context, SettleCode settleCode) {
|
||||
public OrderCurrency buildPrimaryBalancing(OrderCurrencyContext context, SettleCode settleCode) {
|
||||
OrderCurrency orderCurrency;
|
||||
switch (context.getOrderCategory()) {
|
||||
case "PL" -> orderCurrency = buildPrimaryBalancingPl(context);
|
||||
|
|
@ -59,7 +58,7 @@ public class OrderTemplateBuilder {
|
|||
return orderCurrency;
|
||||
}
|
||||
|
||||
public OrderCurrency buildCounterBalancing(SwapContext context, SettleCode settleCode) {
|
||||
public OrderCurrency buildCounterBalancing(OrderCurrencyContext context, SettleCode settleCode) {
|
||||
OrderCurrency orderCurrency;
|
||||
switch (context.getOrderCategory()) {
|
||||
case "PL" -> orderCurrency = buildCounterBalancingPl(context);
|
||||
|
|
@ -72,7 +71,7 @@ public class OrderTemplateBuilder {
|
|||
return orderCurrency;
|
||||
}
|
||||
|
||||
private OrderCurrency buildPrimaryTransferUk(SwapContext context) {
|
||||
private OrderCurrency buildPrimaryTransferUk(OrderCurrencyContext context) {
|
||||
CounterpartyInfo clcc = context.getClcc();
|
||||
Registry registry = context.getRegistry();
|
||||
|
||||
|
|
@ -87,7 +86,7 @@ public class OrderTemplateBuilder {
|
|||
return order;
|
||||
}
|
||||
|
||||
private OrderCurrency buildCounterTransferUk(SwapContext context) {
|
||||
private OrderCurrency buildCounterTransferUk(OrderCurrencyContext context) {
|
||||
CounterpartyInfo clcc = context.getClcc();
|
||||
Registry registry = context.getRegistry();
|
||||
|
||||
|
|
@ -102,7 +101,7 @@ public class OrderTemplateBuilder {
|
|||
return order;
|
||||
}
|
||||
|
||||
private OrderCurrency buildPrimaryBalancingUk(SwapContext context) {
|
||||
private OrderCurrency buildPrimaryBalancingUk(OrderCurrencyContext context) {
|
||||
CounterpartyInfo categoryP = context.getCategoryP();
|
||||
CounterpartyInfo clcc = context.getClcc();
|
||||
|
||||
|
|
@ -117,7 +116,7 @@ public class OrderTemplateBuilder {
|
|||
return order;
|
||||
}
|
||||
|
||||
private OrderCurrency buildCounterBalancingUk(SwapContext context) {
|
||||
private OrderCurrency buildCounterBalancingUk(OrderCurrencyContext context) {
|
||||
CounterpartyInfo categoryP = context.getCategoryP();
|
||||
CounterpartyInfo clcc = context.getClcc();
|
||||
|
||||
|
|
@ -132,7 +131,7 @@ public class OrderTemplateBuilder {
|
|||
return order;
|
||||
}
|
||||
|
||||
private OrderCurrency buildPrimaryTransferPl(SwapContext context) {
|
||||
private OrderCurrency buildPrimaryTransferPl(OrderCurrencyContext context) {
|
||||
CounterpartyInfo clcc = context.getClcc();
|
||||
Registry registry = context.getRegistry();
|
||||
|
||||
|
|
@ -147,7 +146,7 @@ public class OrderTemplateBuilder {
|
|||
return order;
|
||||
}
|
||||
|
||||
private OrderCurrency buildCounterTransferPl(SwapContext context) {
|
||||
private OrderCurrency buildCounterTransferPl(OrderCurrencyContext context) {
|
||||
CounterpartyInfo clcc = context.getClcc();
|
||||
Registry registry = context.getRegistry();
|
||||
|
||||
|
|
@ -162,7 +161,7 @@ public class OrderTemplateBuilder {
|
|||
return order;
|
||||
}
|
||||
|
||||
private OrderCurrency buildPrimaryBalancingPl(SwapContext context) {
|
||||
private OrderCurrency buildPrimaryBalancingPl(OrderCurrencyContext context) {
|
||||
CounterpartyInfo rgcm = context.getRgcm();
|
||||
CounterpartyInfo clcc = context.getClcc();
|
||||
|
||||
|
|
@ -177,7 +176,7 @@ public class OrderTemplateBuilder {
|
|||
return order;
|
||||
}
|
||||
|
||||
private OrderCurrency buildCounterBalancingPl(SwapContext context) {
|
||||
private OrderCurrency buildCounterBalancingPl(OrderCurrencyContext context) {
|
||||
CounterpartyInfo clcc = context.getClcc();
|
||||
CounterpartyInfo rgcm = context.getRgcm();
|
||||
|
||||
|
|
@ -193,16 +192,15 @@ public class OrderTemplateBuilder {
|
|||
}
|
||||
|
||||
public void enrichOrder(OrderCurrency order,
|
||||
SwapContext context,
|
||||
OrderCurrencyContext context,
|
||||
Side side,
|
||||
String comment,
|
||||
SettleCode settleCode) {
|
||||
Registry registry = context.getRegistry();
|
||||
Market market = context.getMarket();
|
||||
RiskParameter riskParameter = context.getRiskParameter();
|
||||
Listing listing = imdgQueryService.findListing(registry, market.getCode(), settleCode.getKey());
|
||||
|
||||
order.setOvernightType("SWAP");
|
||||
order.setOvernightType(context.getOvernightType().getKey());
|
||||
order.setMarket(market.getCode());
|
||||
order.setListingId(listing.getId());
|
||||
order.setSecuritySymbol(listing.getSymbolCode());
|
||||
|
|
|
|||
|
|
@ -8,9 +8,10 @@ import ru.clearing.classes.statics.data.misc.OrderCurrency;
|
|||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.security.RiskParameter;
|
||||
import ru.spcex.clearing.dflt.management.model.CounterpartyInfo;
|
||||
import ru.spcex.clearing.dflt.management.model.SwapContext;
|
||||
import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.platform.enumeration.CompanyRole;
|
||||
import ru.spcex.platform.enumeration.OvernightType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.SettleCode;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
|
@ -46,7 +47,7 @@ public class SpotOvernightOrderService {
|
|||
CounterpartyInfo clcc = imdgQueryService.getCompanyByRole(CompanyRole.CLCC);
|
||||
CounterpartyInfo rgcm = imdgQueryService.getCompanyByRole(CompanyRole.RGCM);
|
||||
|
||||
SwapContext context = SwapContext.builder()
|
||||
OrderCurrencyContext context = OrderCurrencyContext.builder()
|
||||
.registry(registry)
|
||||
.orderCategory(orderCategory)
|
||||
.market(market)
|
||||
|
|
@ -54,6 +55,7 @@ public class SpotOvernightOrderService {
|
|||
.categoryP(categoryP)
|
||||
.clcc(clcc)
|
||||
.rgcm(rgcm)
|
||||
.overnightType(OvernightType.SPOT)
|
||||
.build();
|
||||
|
||||
OrderCurrency primaryTransferT0 = templateBuilder.buildPrimaryTransfer(context, SettleCode.T0);
|
||||
|
|
|
|||
|
|
@ -8,9 +8,10 @@ import ru.clearing.classes.statics.data.misc.OrderCurrency;
|
|||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.security.RiskParameter;
|
||||
import ru.spcex.clearing.dflt.management.model.CounterpartyInfo;
|
||||
import ru.spcex.clearing.dflt.management.model.SwapContext;
|
||||
import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.platform.enumeration.CompanyRole;
|
||||
import ru.spcex.platform.enumeration.OvernightType;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.SettleCode;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
|
|
@ -46,7 +47,7 @@ public class SwapOvernightOrderService {
|
|||
CounterpartyInfo clcc = imdgQueryService.getCompanyByRole(CompanyRole.CLCC);
|
||||
CounterpartyInfo rgcm = imdgQueryService.getCompanyByRole(CompanyRole.RGCM);
|
||||
|
||||
SwapContext context = SwapContext.builder()
|
||||
OrderCurrencyContext context = OrderCurrencyContext.builder()
|
||||
.registry(registry)
|
||||
.orderCategory(orderCategory)
|
||||
.market(market)
|
||||
|
|
@ -54,6 +55,7 @@ public class SwapOvernightOrderService {
|
|||
.categoryP(categoryP)
|
||||
.clcc(clcc)
|
||||
.rgcm(rgcm)
|
||||
.overnightType(OvernightType.SWAP)
|
||||
.build();
|
||||
|
||||
OrderCurrency primaryTransfer = templateBuilder.buildPrimaryTransfer(context, SettleCode.T1);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue