Merge remote-tracking branch 'origin/dev' into psemenkov
# Conflicts: # clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/BankAccountServiceTest.java
This commit is contained in:
commit
f5df0d409e
101 changed files with 3872 additions and 1949 deletions
|
|
@ -55,7 +55,6 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
|||
bankAccount.setDestination(req.getDestination());
|
||||
bankAccount.setTaxpayerIdentificationNumber(req.getTaxpayerIdentificationNumber());
|
||||
bankAccount.setTaxRegistrationReasonCode(req.getTaxRegistrationReasonCode());
|
||||
bankAccount.setAccount(req.getAccount());
|
||||
|
||||
bankAccountMap.insert(bankAccount);
|
||||
log.debug("successfully processed, new id {}", bankAccount.getId());
|
||||
|
|
@ -73,7 +72,6 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
|||
bankAccount.setDestination(req.getDestination());
|
||||
bankAccount.setTaxpayerIdentificationNumber(req.getTaxpayerIdentificationNumber());
|
||||
bankAccount.setTaxRegistrationReasonCode(req.getTaxRegistrationReasonCode());
|
||||
bankAccount.setAccount(req.getAccount());
|
||||
|
||||
bankAccountMap.update(bankAccount);
|
||||
log.debug("successfully update, existing bankAccount with id {}", bankAccount.getId());
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ public class WebConfig implements WebMvcConfigurer {
|
|||
} else if (sameSite.equalsIgnoreCase(Cookie.SameSite.NONE.attributeValue())) {
|
||||
return CookieSameSiteSupplier.ofNone();
|
||||
} else if (sameSite.equalsIgnoreCase(Cookie.SameSite.LAX.attributeValue())) {
|
||||
return CookieSameSiteSupplier.ofNone();
|
||||
return CookieSameSiteSupplier.ofLax();
|
||||
} else if (sameSite.equalsIgnoreCase(Cookie.SameSite.STRICT.attributeValue())) {
|
||||
return CookieSameSiteSupplier.ofStrict();
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -8,25 +8,38 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.company.CompanyInfoUpdateAction;
|
||||
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
||||
import ru.spcex.clearing.backendapi.meta.GetResponseFactory;
|
||||
import ru.spcex.clearing.backendapi.service.IOperator;
|
||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/company-infos")
|
||||
public class EditCompanyInfoController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
private final Imdg<Company> companyImdg;
|
||||
private final GetResponseFactory responseFactory;
|
||||
|
||||
@Autowired
|
||||
public EditCompanyInfoController(IOperator operator, IStateLoader stateLoader) {
|
||||
public EditCompanyInfoController(IOperator operator, IStateLoader stateLoader, ImdgProvider imdgProvider, GetResponseFactory responseFactory) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
this.responseFactory = responseFactory;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "update company info.")
|
||||
|
|
@ -42,15 +55,20 @@ public class EditCompanyInfoController extends AbstractQueueController {
|
|||
return processRequest(Consts.DESTINATION_COMPANY_INFO_UPDATE, companyInfoUpdateAction);
|
||||
}
|
||||
|
||||
//todo
|
||||
// @ApiOperation(value = "get all CompanyInfo's.")
|
||||
// @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CompanyBackendInfoGetAll.class)})
|
||||
// @RequestMapping(method = RequestMethod.GET)
|
||||
// @ResponseBody
|
||||
// public CompanyBackendInfoGetAll getAll() {
|
||||
// Collection<CompanyInfo> all = stateLoader.getAll(IMDGDistributedNames.Map_Company, CompanyInfo.class);
|
||||
// CompanyBackendGetAll response = new CompanyBackendGetAll();
|
||||
// response.fromEntity(all);
|
||||
// return response;
|
||||
// }
|
||||
@ApiOperation(value = "get all CompanyInfo's.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
|
||||
@RequestMapping(method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public CommonGetAllResponse getAll() {
|
||||
Collection<Map<String, Object>> all = new ArrayList<>();
|
||||
Collection<Company> companies = companyImdg.getAllValues();
|
||||
for (Company company : companies) {
|
||||
if (company.getProfile() != null) { // пока возвращает "пустой" CompanyInfo если его нет для Company
|
||||
all.add(responseFactory.responseFromObject(company.getProfile()));
|
||||
}
|
||||
}
|
||||
CommonGetAllResponse response = new CommonGetAllResponse();
|
||||
response.fromEntity(all);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,38 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.scheduler;
|
||||
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import ru.clearing.classes.statics.data.scheduler.ClearingCalendar;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.schedule.ClearingCalendarNewAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.schedule.ClearingCalendarUpdateAction;
|
||||
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
||||
import ru.spcex.clearing.backendapi.service.IOperator;
|
||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/schedule/clearing-calendars")
|
||||
public class ClearingCalendarController {
|
||||
public class ClearingCalendarController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
|
||||
@Autowired
|
||||
public ClearingCalendarController(IStateLoader stateLoader) {
|
||||
public ClearingCalendarController(IStateLoader stateLoader, IOperator operator) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
}
|
||||
|
||||
|
|
@ -36,4 +46,38 @@ public class ClearingCalendarController {
|
|||
response.fromEntity(all);
|
||||
return response;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "new planner clearing calendar.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public CudResponse add(
|
||||
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
|
||||
@RequestBody ClearingCalendarNewAction clearingCalendarNewAction) throws ExecutionException, InterruptedException {
|
||||
return processRequest(Consts.DESTINATION_CLEARING_CALENDAR_NEW, clearingCalendarNewAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "update clearing calendar.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public CudResponse update(
|
||||
@ApiParam(value = "Идентификатор изменяего объекта.", required = true, example = "1234")
|
||||
@PathVariable("id") Long id,
|
||||
@ApiParam(value = "Новые значения полей объекта.", required = true)
|
||||
@RequestBody ClearingCalendarUpdateAction clearingCalendarUpdateAction) throws ExecutionException, InterruptedException {
|
||||
clearingCalendarUpdateAction.setId(id);
|
||||
return processRequest(Consts.DESTINATION_CLEARING_CALENDAR_UPDATE, clearingCalendarUpdateAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "delete clearing calendar.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class)})
|
||||
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
|
||||
@ResponseBody
|
||||
public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234")
|
||||
@PathVariable("id") Long id) throws ExecutionException, InterruptedException {
|
||||
CommonDeleteAction deleteAction = new CommonDeleteAction();
|
||||
deleteAction.setId(id);
|
||||
return processRequest(Consts.DESTINATION_CLEARING_CALENDAR_DELETE, deleteAction);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import ru.clearing.classes.statics.data.scheduler.PlannerAllToday;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
||||
import ru.spcex.clearing.backendapi.service.IOperator;
|
||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
||||
|
|
@ -18,11 +20,12 @@ import java.util.Map;
|
|||
|
||||
@Controller
|
||||
@RequestMapping("/schedule/planners-all-today")
|
||||
public class PlanerAllTodayController {
|
||||
public class PlannerAllTodayController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
|
||||
@Autowired
|
||||
public PlanerAllTodayController(IStateLoader stateLoader) {
|
||||
public PlannerAllTodayController(IStateLoader stateLoader, IOperator operator) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
}
|
||||
|
||||
|
|
@ -1,28 +1,38 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.scheduler;
|
||||
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import ru.clearing.classes.statics.data.scheduler.Planner;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.schedule.PlannerNewAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.schedule.PlannerUpdateAction;
|
||||
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
||||
import ru.spcex.clearing.backendapi.service.IOperator;
|
||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/schedule/planners")
|
||||
public class PlannerController {
|
||||
public class PlannerController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
|
||||
@Autowired
|
||||
public PlannerController(IStateLoader stateLoader) {
|
||||
public PlannerController(IOperator operator, IStateLoader stateLoader) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
}
|
||||
|
||||
|
|
@ -36,4 +46,38 @@ public class PlannerController {
|
|||
response.fromEntity(all);
|
||||
return response;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "new planner.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public CudResponse add(
|
||||
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
|
||||
@RequestBody PlannerNewAction plannerNewAction) throws ExecutionException, InterruptedException {
|
||||
return processRequest(Consts.DESTINATION_PLANNER_NEW, plannerNewAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "update planner.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public CudResponse update(
|
||||
@ApiParam(value = "Идентификатор изменяего объекта.", required = true, example = "1234")
|
||||
@PathVariable("id") Long id,
|
||||
@ApiParam(value = "Новые значения полей объекта.", required = true)
|
||||
@RequestBody PlannerUpdateAction plannerUpdateAction) throws ExecutionException, InterruptedException {
|
||||
plannerUpdateAction.setId(id);
|
||||
return processRequest(Consts.DESTINATION_PLANNER_UPDATE, plannerUpdateAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "delete planner.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class)})
|
||||
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
|
||||
@ResponseBody
|
||||
public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234")
|
||||
@PathVariable("id") Long id) throws ExecutionException, InterruptedException {
|
||||
CommonDeleteAction deleteAction = new CommonDeleteAction();
|
||||
deleteAction.setId(id);
|
||||
return processRequest(Consts.DESTINATION_PLANNER_DELETE, deleteAction);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,38 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.scheduler;
|
||||
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import ru.clearing.classes.statics.data.scheduler.PlannerTemplate;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.schedule.PlannerTemplateNewAction;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.schedule.PlannerTemplateUpdateAction;
|
||||
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
||||
import ru.spcex.clearing.backendapi.service.IOperator;
|
||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/schedule/planner-templates")
|
||||
public class PlannerTemplateController {
|
||||
public class PlannerTemplateController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
|
||||
@Autowired
|
||||
public PlannerTemplateController(IStateLoader stateLoader) {
|
||||
public PlannerTemplateController(IStateLoader stateLoader, IOperator operator) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
}
|
||||
|
||||
|
|
@ -36,4 +46,38 @@ public class PlannerTemplateController {
|
|||
response.fromEntity(all);
|
||||
return response;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "new planner template.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public CudResponse add(
|
||||
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
|
||||
@RequestBody PlannerTemplateNewAction plannerTemplateNewAction) throws ExecutionException, InterruptedException {
|
||||
return processRequest(Consts.DESTINATION_PLANNER_TEMPLATE_NEW, plannerTemplateNewAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "update planner template.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||
@RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public CudResponse update(
|
||||
@ApiParam(value = "Идентификатор изменяего объекта.", required = true, example = "1234")
|
||||
@PathVariable("id") Long id,
|
||||
@ApiParam(value = "Новые значения полей объекта.", required = true)
|
||||
@RequestBody PlannerTemplateUpdateAction plannerTemplateUpdateAction) throws ExecutionException, InterruptedException {
|
||||
plannerTemplateUpdateAction.setId(id);
|
||||
return processRequest(Consts.DESTINATION_PLANNER_TEMPLATE_UPDATE, plannerTemplateUpdateAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "delete planner template.")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class)})
|
||||
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
|
||||
@ResponseBody
|
||||
public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234")
|
||||
@PathVariable("id") Long id) throws ExecutionException, InterruptedException {
|
||||
CommonDeleteAction deleteAction = new CommonDeleteAction();
|
||||
deleteAction.setId(id);
|
||||
return processRequest(Consts.DESTINATION_PLANNER_TEMPLATE_DELETE, deleteAction);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,26 +4,43 @@ import io.swagger.annotations.ApiOperation;
|
|||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import ru.clearing.classes.statics.data.user.User;
|
||||
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.utilities.UserAuthAction;
|
||||
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse;
|
||||
import ru.spcex.clearing.backendapi.security.KeycloakUtils;
|
||||
import ru.spcex.clearing.backendapi.service.IOperator;
|
||||
import ru.spcex.clearing.backendapi.service.IStateLoader;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/users")
|
||||
public class UserController {
|
||||
public class UserController extends AbstractQueueController {
|
||||
private final IStateLoader stateLoader;
|
||||
private final Imdg<User> userImdg;
|
||||
|
||||
@Autowired
|
||||
public UserController(IStateLoader stateLoader) {
|
||||
public UserController(IOperator operator, IStateLoader stateLoader, ImdgProvider imdgProvider) {
|
||||
super(operator);
|
||||
this.stateLoader = stateLoader;
|
||||
this.userImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_User, User.class);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "get all users.")
|
||||
|
|
@ -36,4 +53,22 @@ public class UserController {
|
|||
response.fromEntity(all);
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "update user")
|
||||
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)})
|
||||
@RequestMapping(method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public CudResponse update(
|
||||
@RequestBody UserAuthAction userAuthAction) throws ExecutionException, InterruptedException {
|
||||
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
||||
String username = KeycloakUtils.getUserNameFromAuthentication(authentication);
|
||||
User user = userImdg.getSingleObjectByFieldValues(Map.of("identifier", username));
|
||||
if (user == null) {
|
||||
return processRequest(Consts.USER_AUTH_SUCCESS, userAuthAction);
|
||||
}
|
||||
throw new IllegalStateException("cannot create user cause it is exists: " + username);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,9 +39,6 @@ public class BankAccountNewAction implements IAction<BankAccountNewRequest> {
|
|||
@ApiModelProperty(value = "Код причины постановки (КПП)", example = "01")
|
||||
@JsonProperty
|
||||
private String taxRegistrationReasonCode;
|
||||
@ApiModelProperty(value = "Номер счета", example = "11111222223333344444")
|
||||
@JsonProperty
|
||||
private String account;
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
|
|
@ -67,9 +64,6 @@ public class BankAccountNewAction implements IAction<BankAccountNewRequest> {
|
|||
if ("RUB".equalsIgnoreCase(this.currency) && !StringUtils.hasLength(taxRegistrationReasonCode)) {
|
||||
return List.of(new EnumMessage(BackEndError.ValidationError, "taxRegistrationReasonCode"));
|
||||
}
|
||||
if (!StringUtils.hasLength(account)) {
|
||||
return List.of(new EnumMessage(BackEndError.ValidationError, "account"));
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
|
@ -85,7 +79,6 @@ public class BankAccountNewAction implements IAction<BankAccountNewRequest> {
|
|||
req.setDestination(this.destination);
|
||||
req.setTaxpayerIdentificationNumber(this.taxpayerIdentificationNumber);
|
||||
req.setTaxRegistrationReasonCode(this.taxRegistrationReasonCode);
|
||||
req.setAccount(this.account);
|
||||
return req;
|
||||
}
|
||||
|
||||
|
|
@ -158,12 +151,4 @@ public class BankAccountNewAction implements IAction<BankAccountNewRequest> {
|
|||
public void setTaxRegistrationReasonCode(String taxRegistrationReasonCode) {
|
||||
this.taxRegistrationReasonCode = taxRegistrationReasonCode;
|
||||
}
|
||||
|
||||
public String getAccount() {
|
||||
return account;
|
||||
}
|
||||
|
||||
public void setAccount(String account) {
|
||||
this.account = account;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,9 +38,8 @@ public class BankAccountUpdateAction implements IAction<BankAccountUpdateRequest
|
|||
@ApiModelProperty(value = "Код причины постановки (КПП)", example = "01")
|
||||
@JsonProperty
|
||||
private String taxRegistrationReasonCode;
|
||||
|
||||
@ApiModelProperty(value = "Номер счета", example = "11111222223333344444")
|
||||
@JsonProperty
|
||||
private String account;
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
|
|
@ -59,7 +58,6 @@ public class BankAccountUpdateAction implements IAction<BankAccountUpdateRequest
|
|||
req.setDestination(this.destination);
|
||||
req.setTaxpayerIdentificationNumber(this.taxpayerIdentificationNumber);
|
||||
req.setTaxRegistrationReasonCode(this.taxRegistrationReasonCode);
|
||||
req.setAccount(this.account);
|
||||
return req;
|
||||
}
|
||||
|
||||
|
|
@ -140,12 +138,4 @@ public class BankAccountUpdateAction implements IAction<BankAccountUpdateRequest
|
|||
public void setTaxRegistrationReasonCode(String taxRegistrationReasonCode) {
|
||||
this.taxRegistrationReasonCode = taxRegistrationReasonCode;
|
||||
}
|
||||
|
||||
public String getAccount() {
|
||||
return account;
|
||||
}
|
||||
|
||||
public void setAccount(String account) {
|
||||
this.account = account;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,83 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.schedule;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.backendapi.errors.BackEndError;
|
||||
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.ClearingCalendarNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class ClearingCalendarNewAction implements IAction<ClearingCalendarNewRequest> {
|
||||
@ApiModelProperty(value = "Дата", example = "2022-12-25")
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalDate clearingDate;
|
||||
@ApiModelProperty(value = "Компания", example = "1000")
|
||||
@JsonProperty
|
||||
public Long companyId;
|
||||
@ApiModelProperty(value = "Статус", example = "ABCD")
|
||||
@JsonProperty
|
||||
public String dayStatus;
|
||||
|
||||
@Override
|
||||
public ClearingCalendarNewRequest toRequest() {
|
||||
ClearingCalendarNewRequest clearingCalendarNewRequest = new ClearingCalendarNewRequest();
|
||||
clearingCalendarNewRequest.setClearingDate(clearingDate);
|
||||
clearingCalendarNewRequest.setCompanyId(companyId);
|
||||
clearingCalendarNewRequest.setDayStatus(dayStatus);
|
||||
return clearingCalendarNewRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionType getActionType() {
|
||||
return ActionType.NEW;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (clearingDate == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"clearingDate"));
|
||||
}
|
||||
if (TextUtil.isEmpty(dayStatus)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskStatus"));
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
public LocalDate getClearingDate() {
|
||||
return clearingDate;
|
||||
}
|
||||
|
||||
public void setClearingDate(LocalDate clearingDate) {
|
||||
this.clearingDate = clearingDate;
|
||||
}
|
||||
|
||||
public Long getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
||||
public void setCompanyId(Long companyId) {
|
||||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public String getDayStatus() {
|
||||
return dayStatus;
|
||||
}
|
||||
|
||||
public void setDayStatus(String dayStatus) {
|
||||
this.dayStatus = dayStatus;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.schedule;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.backendapi.errors.BackEndError;
|
||||
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.ClearingCalendarUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithId;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class ClearingCalendarUpdateAction implements IAction<ClearingCalendarUpdateRequest>, WithId {
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonProperty
|
||||
public Long id;
|
||||
|
||||
@ApiModelProperty(value = "Дата", example = "2022-12-25")
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalDate clearingDate;
|
||||
@ApiModelProperty(value = "Компания", example = "1000")
|
||||
@JsonProperty
|
||||
public Long companyId;
|
||||
@ApiModelProperty(value = "Статус", example = "ABCD")
|
||||
@JsonProperty
|
||||
public String dayStatus;
|
||||
|
||||
@Override
|
||||
public ClearingCalendarUpdateRequest toRequest() {
|
||||
ClearingCalendarUpdateRequest clearingCalendarUpdateRequest = new ClearingCalendarUpdateRequest();
|
||||
clearingCalendarUpdateRequest.setId(id);
|
||||
clearingCalendarUpdateRequest.setClearingDate(clearingDate);
|
||||
clearingCalendarUpdateRequest.setCompanyId(companyId);
|
||||
clearingCalendarUpdateRequest.setDayStatus(dayStatus);
|
||||
return clearingCalendarUpdateRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionType getActionType() {
|
||||
return ActionType.UPDATE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (id == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"id"));
|
||||
}
|
||||
if (clearingDate == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"clearingDate"));
|
||||
}
|
||||
if (TextUtil.isEmpty(dayStatus)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskStatus"));
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public LocalDate getClearingDate() {
|
||||
return clearingDate;
|
||||
}
|
||||
|
||||
public void setClearingDate(LocalDate clearingDate) {
|
||||
this.clearingDate = clearingDate;
|
||||
}
|
||||
|
||||
public Long getCompanyId() {
|
||||
return companyId;
|
||||
}
|
||||
|
||||
public void setCompanyId(Long companyId) {
|
||||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public String getDayStatus() {
|
||||
return dayStatus;
|
||||
}
|
||||
|
||||
public void setDayStatus(String dayStatus) {
|
||||
this.dayStatus = dayStatus;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.schedule;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.backendapi.errors.BackEndError;
|
||||
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalTimeSerializer;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class PlannerNewAction implements IAction<PlannerNewRequest> {
|
||||
@ApiModelProperty(value = "Идентификатор задачи", example = "ABCD")
|
||||
@JsonProperty
|
||||
private String task;
|
||||
|
||||
@ApiModelProperty(value = "Время", example = "16:30:00")
|
||||
@JsonSerialize(using = LocalTimeSerializer.class)
|
||||
@JsonDeserialize(using = LocalTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalTime taskTime;
|
||||
|
||||
@ApiModelProperty(value = "Дата", example = "2022-12-25")
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalDate clearingDate;
|
||||
|
||||
@ApiModelProperty(value = "Секция", example = "ABCD")
|
||||
@JsonProperty
|
||||
public String market;
|
||||
|
||||
@ApiModelProperty(value = "Статус", example = "ABCD")
|
||||
@JsonProperty
|
||||
public String taskStatus;
|
||||
|
||||
@ApiModelProperty(value = "Инструмент", example = "1000")
|
||||
@JsonProperty
|
||||
public Long securityId;
|
||||
|
||||
@Override
|
||||
public PlannerNewRequest toRequest() {
|
||||
PlannerNewRequest plannerNewRequest = new PlannerNewRequest();
|
||||
plannerNewRequest.setTask(task);
|
||||
plannerNewRequest.setTaskTime(taskTime);
|
||||
plannerNewRequest.setClearingDate(clearingDate);
|
||||
plannerNewRequest.setMarket(market);
|
||||
plannerNewRequest.setTaskStatus(taskStatus);
|
||||
plannerNewRequest.setSecurityId(securityId);
|
||||
return plannerNewRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionType getActionType() {
|
||||
return ActionType.NEW;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (TextUtil.isEmpty(task)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"task"));
|
||||
}
|
||||
if (taskTime == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskTime"));
|
||||
}
|
||||
if (clearingDate == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"clearingDate"));
|
||||
}
|
||||
if (TextUtil.isEmpty(taskStatus)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskStatus"));
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
public String getTask() {
|
||||
return task;
|
||||
}
|
||||
|
||||
public void setTask(String task) {
|
||||
this.task = task;
|
||||
}
|
||||
|
||||
public LocalTime getTaskTime() {
|
||||
return taskTime;
|
||||
}
|
||||
|
||||
public void setTaskTime(LocalTime taskTime) {
|
||||
this.taskTime = taskTime;
|
||||
}
|
||||
|
||||
public LocalDate getClearingDate() {
|
||||
return clearingDate;
|
||||
}
|
||||
|
||||
public void setClearingDate(LocalDate clearingDate) {
|
||||
this.clearingDate = clearingDate;
|
||||
}
|
||||
|
||||
public String getMarket() {
|
||||
return market;
|
||||
}
|
||||
|
||||
public void setMarket(String market) {
|
||||
this.market = market;
|
||||
}
|
||||
|
||||
public String getTaskStatus() {
|
||||
return taskStatus;
|
||||
}
|
||||
|
||||
public void setTaskStatus(String taskStatus) {
|
||||
this.taskStatus = taskStatus;
|
||||
}
|
||||
|
||||
public Long getSecurityId() {
|
||||
return securityId;
|
||||
}
|
||||
|
||||
public void setSecurityId(Long securityId) {
|
||||
this.securityId = securityId;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.schedule;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.backendapi.errors.BackEndError;
|
||||
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerTemplateNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalTimeSerializer;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class PlannerTemplateNewAction implements IAction<PlannerTemplateNewRequest> {
|
||||
@JsonProperty
|
||||
public String task;
|
||||
@JsonSerialize(using = LocalTimeSerializer.class)
|
||||
@JsonDeserialize(using = LocalTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalTime taskTime;
|
||||
@JsonProperty
|
||||
public String taskStatus;
|
||||
|
||||
@Override
|
||||
public PlannerTemplateNewRequest toRequest() {
|
||||
PlannerTemplateNewRequest plannerTemplateNewRequest = new PlannerTemplateNewRequest();
|
||||
plannerTemplateNewRequest.setTask(task);
|
||||
plannerTemplateNewRequest.setTaskTime(taskTime);
|
||||
plannerTemplateNewRequest.setTaskStatus(taskStatus);
|
||||
return plannerTemplateNewRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionType getActionType() {
|
||||
return ActionType.NEW;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (TextUtil.isEmpty(task)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"task"));
|
||||
}
|
||||
if (taskTime == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskTime"));
|
||||
}
|
||||
if (TextUtil.isEmpty(taskStatus)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskStatus"));
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
public String getTask() {
|
||||
return task;
|
||||
}
|
||||
|
||||
public void setTask(String task) {
|
||||
this.task = task;
|
||||
}
|
||||
|
||||
public LocalTime getTaskTime() {
|
||||
return taskTime;
|
||||
}
|
||||
|
||||
public void setTaskTime(LocalTime taskTime) {
|
||||
this.taskTime = taskTime;
|
||||
}
|
||||
|
||||
public String getTaskStatus() {
|
||||
return taskStatus;
|
||||
}
|
||||
|
||||
public void setTaskStatus(String taskStatus) {
|
||||
this.taskStatus = taskStatus;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.schedule;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.backendapi.errors.BackEndError;
|
||||
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerTemplateUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalTimeSerializer;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithId;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class PlannerTemplateUpdateAction implements IAction<PlannerTemplateUpdateRequest>, WithId {
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonProperty
|
||||
public Long id;
|
||||
@JsonProperty
|
||||
public String task;
|
||||
@JsonSerialize(using = LocalTimeSerializer.class)
|
||||
@JsonDeserialize(using = LocalTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalTime taskTime;
|
||||
@JsonProperty
|
||||
public String taskStatus;
|
||||
|
||||
@Override
|
||||
public PlannerTemplateUpdateRequest toRequest() {
|
||||
PlannerTemplateUpdateRequest plannerTemplateUpdateRequest = new PlannerTemplateUpdateRequest();
|
||||
plannerTemplateUpdateRequest.setId(id);
|
||||
plannerTemplateUpdateRequest.setTask(task);
|
||||
plannerTemplateUpdateRequest.setTaskTime(taskTime);
|
||||
plannerTemplateUpdateRequest.setTaskStatus(taskStatus);
|
||||
return plannerTemplateUpdateRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionType getActionType() {
|
||||
return ActionType.UPDATE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (id == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"id"));
|
||||
}
|
||||
if (TextUtil.isEmpty(task)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"task"));
|
||||
}
|
||||
if (taskTime == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskTime"));
|
||||
}
|
||||
if (TextUtil.isEmpty(taskStatus)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskStatus"));
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getTask() {
|
||||
return task;
|
||||
}
|
||||
|
||||
public void setTask(String task) {
|
||||
this.task = task;
|
||||
}
|
||||
|
||||
public LocalTime getTaskTime() {
|
||||
return taskTime;
|
||||
}
|
||||
|
||||
public void setTaskTime(LocalTime taskTime) {
|
||||
this.taskTime = taskTime;
|
||||
}
|
||||
|
||||
public String getTaskStatus() {
|
||||
return taskStatus;
|
||||
}
|
||||
|
||||
public void setTaskStatus(String taskStatus) {
|
||||
this.taskStatus = taskStatus;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,153 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.schedule;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.backendapi.errors.BackEndError;
|
||||
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalTimeDeserializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer;
|
||||
import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalTimeSerializer;
|
||||
import ru.spcex.platform.classes.base.interfaces.WithId;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class PlannerUpdateAction implements IAction<PlannerUpdateRequest>, WithId {
|
||||
@ApiModelProperty(hidden = true)
|
||||
@JsonProperty
|
||||
public Long id;
|
||||
|
||||
@ApiModelProperty(value = "Идентификатор задачи", example = "ABCD")
|
||||
@JsonProperty
|
||||
private String task;
|
||||
|
||||
@ApiModelProperty(value = "Время", example = "16:30:00")
|
||||
@JsonSerialize(using = LocalTimeSerializer.class)
|
||||
@JsonDeserialize(using = LocalTimeDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalTime taskTime;
|
||||
|
||||
@ApiModelProperty(value = "Дата", example = "2022-12-25")
|
||||
@JsonSerialize(using = LocalDateSerializer.class)
|
||||
@JsonDeserialize(using = LocalDateDeserializer.class)
|
||||
@JsonProperty
|
||||
public LocalDate clearingDate;
|
||||
|
||||
@ApiModelProperty(value = "Секция", example = "ABCD")
|
||||
@JsonProperty
|
||||
public String market;
|
||||
|
||||
@ApiModelProperty(value = "Статус", example = "ABCD")
|
||||
@JsonProperty
|
||||
public String taskStatus;
|
||||
|
||||
@ApiModelProperty(value = "Инструмент", example = "1000")
|
||||
@JsonProperty
|
||||
public Long securityId;
|
||||
|
||||
@Override
|
||||
public PlannerUpdateRequest toRequest() {
|
||||
PlannerUpdateRequest plannerUpdateRequest = new PlannerUpdateRequest();
|
||||
plannerUpdateRequest.setId(id);
|
||||
plannerUpdateRequest.setTask(task);
|
||||
plannerUpdateRequest.setTaskTime(taskTime);
|
||||
plannerUpdateRequest.setClearingDate(clearingDate);
|
||||
plannerUpdateRequest.setMarket(market);
|
||||
plannerUpdateRequest.setTaskStatus(taskStatus);
|
||||
plannerUpdateRequest.setSecurityId(securityId);
|
||||
return plannerUpdateRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionType getActionType() {
|
||||
return ActionType.UPDATE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<EnumMessage> validate() {
|
||||
List<EnumMessage> errors = new ArrayList<>();
|
||||
if (id == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"id"));
|
||||
}
|
||||
if (TextUtil.isEmpty(task)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"task"));
|
||||
}
|
||||
if (taskTime == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskTime"));
|
||||
}
|
||||
if (clearingDate == null) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"clearingDate"));
|
||||
}
|
||||
if (TextUtil.isEmpty(taskStatus)) {
|
||||
errors.add(new EnumMessage(BackEndError.ValidationError,"taskStatus"));
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getTask() {
|
||||
return task;
|
||||
}
|
||||
|
||||
public void setTask(String task) {
|
||||
this.task = task;
|
||||
}
|
||||
|
||||
public LocalTime getTaskTime() {
|
||||
return taskTime;
|
||||
}
|
||||
|
||||
public void setTaskTime(LocalTime taskTime) {
|
||||
this.taskTime = taskTime;
|
||||
}
|
||||
|
||||
public LocalDate getClearingDate() {
|
||||
return clearingDate;
|
||||
}
|
||||
|
||||
public void setClearingDate(LocalDate clearingDate) {
|
||||
this.clearingDate = clearingDate;
|
||||
}
|
||||
|
||||
public String getMarket() {
|
||||
return market;
|
||||
}
|
||||
|
||||
public void setMarket(String market) {
|
||||
this.market = market;
|
||||
}
|
||||
|
||||
public String getTaskStatus() {
|
||||
return taskStatus;
|
||||
}
|
||||
|
||||
public void setTaskStatus(String taskStatus) {
|
||||
this.taskStatus = taskStatus;
|
||||
}
|
||||
|
||||
public Long getSecurityId() {
|
||||
return securityId;
|
||||
}
|
||||
|
||||
public void setSecurityId(Long securityId) {
|
||||
this.securityId = securityId;
|
||||
}
|
||||
}
|
||||
|
|
@ -32,7 +32,7 @@ public class MoneyMarketSecurityNewAction implements IAction<MoneyMarketSecurity
|
|||
public Double nominalValue;
|
||||
@ApiModelProperty(value = "Идентификатор валюты номинала", example = "1000")
|
||||
@JsonProperty
|
||||
public Long nominalCurrencyId;
|
||||
public String nominalCurrency;
|
||||
@ApiModelProperty(value = "Идентификатор типа инструмента", example = "ABCD")
|
||||
@JsonProperty
|
||||
public String instrumentType;
|
||||
|
|
@ -59,7 +59,7 @@ public class MoneyMarketSecurityNewAction implements IAction<MoneyMarketSecurity
|
|||
req.setStartDate(this.getStartDate());
|
||||
req.setEndDate(this.getEndDate());
|
||||
req.setNominalValue(this.getNominalValue());
|
||||
req.setNominalCurrencyId(this.getNominalCurrencyId());
|
||||
req.setNominalCurrency(this.getNominalCurrency());
|
||||
req.setInstrumentType(this.getInstrumentType());
|
||||
req.setFullName(this.getFullName());
|
||||
req.setSecuritySymbol(this.getSecuritySymbol());
|
||||
|
|
@ -97,12 +97,12 @@ public class MoneyMarketSecurityNewAction implements IAction<MoneyMarketSecurity
|
|||
this.nominalValue = nominalValue;
|
||||
}
|
||||
|
||||
public Long getNominalCurrencyId() {
|
||||
return nominalCurrencyId;
|
||||
public String getNominalCurrency() {
|
||||
return nominalCurrency;
|
||||
}
|
||||
|
||||
public void setNominalCurrencyId(Long nominalCurrencyId) {
|
||||
this.nominalCurrencyId = nominalCurrencyId;
|
||||
public void setNominalCurrency(String nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
}
|
||||
|
||||
public String getInstrumentType() {
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@ public class MoneyMarketSecurityUpdateAction implements IAction<MoneyMarketSecur
|
|||
@ApiModelProperty(value = "Номинал", example = "20.5")
|
||||
@JsonProperty
|
||||
public Double nominalValue;
|
||||
@ApiModelProperty(value = "Идентификатор валюты номинала", example = "1000")
|
||||
@ApiModelProperty(value = "Валюта номинала", example = "RUB")
|
||||
@JsonProperty
|
||||
public Long nominalCurrencyId;
|
||||
public String nominalCurrency;
|
||||
@ApiModelProperty(value = "Идентификатор типа инструмента", example = "ABCD")
|
||||
@JsonProperty
|
||||
public String instrumentType;
|
||||
|
|
@ -43,7 +43,7 @@ public class MoneyMarketSecurityUpdateAction implements IAction<MoneyMarketSecur
|
|||
req.setId(this.getId());
|
||||
req.setEndDate(this.getEndDate());
|
||||
req.setNominalValue(this.getNominalValue());
|
||||
req.setNominalCurrencyId(this.getNominalCurrencyId());
|
||||
req.setNominalCurrency(this.getNominalCurrency());
|
||||
req.setInstrumentType(this.getInstrumentType());
|
||||
req.setFullName(this.getFullName());
|
||||
req.setLotSize(this.getLotSize());
|
||||
|
|
@ -73,12 +73,12 @@ public class MoneyMarketSecurityUpdateAction implements IAction<MoneyMarketSecur
|
|||
this.nominalValue = nominalValue;
|
||||
}
|
||||
|
||||
public Long getNominalCurrencyId() {
|
||||
return nominalCurrencyId;
|
||||
public String getNominalCurrency() {
|
||||
return nominalCurrency;
|
||||
}
|
||||
|
||||
public void setNominalCurrencyId(Long nominalCurrencyId) {
|
||||
this.nominalCurrencyId = nominalCurrencyId;
|
||||
public void setNominalCurrency(String nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
}
|
||||
|
||||
public String getInstrumentType() {
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public class CommonGetAllResponse extends BasicSpcexResponse {
|
|||
|
||||
public void fromEntity(Collection<Map<String, Object>> anyObjectFields) {
|
||||
var payload = this.getPayload();
|
||||
for (Map<String, Object> moneyMarketSecurity : anyObjectFields) {
|
||||
payload.getItems().add(moneyMarketSecurity);
|
||||
for (Map<String, Object> allObjFields : anyObjectFields) {
|
||||
payload.getItems().add(allObjFields);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -20,18 +20,6 @@ public class BankAccountBackendGetAll extends BasicSpcexResponse {
|
|||
@ApiModelProperty(value = "Полезная нагрузка")
|
||||
private BankAccountBackendPayload payload = new BankAccountBackendPayload();
|
||||
|
||||
private static class BankAccountBackendPayload {
|
||||
private List<BankAccountBackendGetFields> items = new ArrayList<>();
|
||||
|
||||
public List<BankAccountBackendGetFields> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<BankAccountBackendGetFields> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
||||
public BankAccountBackendPayload getPayload() {
|
||||
return payload;
|
||||
}
|
||||
|
|
@ -57,9 +45,20 @@ public class BankAccountBackendGetAll extends BasicSpcexResponse {
|
|||
singleItem.setSwiftCode(bankAccount.getSwiftCode());
|
||||
singleItem.setTaxpayerIdentificationNumber(bankAccount.getTaxpayerIdentificationNumber());
|
||||
singleItem.setTaxRegistrationReasonCode(bankAccount.getTaxRegistrationReasonCode());
|
||||
singleItem.setAccount(bankAccount.getAccount());
|
||||
payload.getItems().add(singleItem);
|
||||
}
|
||||
}
|
||||
|
||||
private static class BankAccountBackendPayload {
|
||||
private List<BankAccountBackendGetFields> items = new ArrayList<>();
|
||||
|
||||
public List<BankAccountBackendGetFields> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<BankAccountBackendGetFields> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -8,6 +8,7 @@ import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
|||
|
||||
/**
|
||||
* Банковские реквизиты для перечисления денежных средств
|
||||
*
|
||||
* @ApiModel(description = "Ответ в результате отправки операции в топик Kafka.")
|
||||
* @ApiModelProperty(value = "Информация о принятом запросе")
|
||||
**/
|
||||
|
|
@ -42,7 +43,6 @@ public class BankAccountBackendGetById extends BasicSpcexResponse {
|
|||
payload.setSwiftCode(bankAccount.getSwiftCode());
|
||||
payload.setTaxpayerIdentificationNumber(bankAccount.getTaxpayerIdentificationNumber());
|
||||
payload.setTaxRegistrationReasonCode(bankAccount.getTaxRegistrationReasonCode());
|
||||
payload.setAccount(bankAccount.getAccount());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -43,9 +43,6 @@ public class BankAccountBackendGetFields {
|
|||
@JsonProperty
|
||||
@ApiModelProperty(value = "", example = "")
|
||||
private String taxRegistrationReasonCode;
|
||||
@JsonProperty
|
||||
@ApiModelProperty(value = "", example = "")
|
||||
private String account;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
|
|
@ -150,12 +147,4 @@ public class BankAccountBackendGetFields {
|
|||
public void setTaxRegistrationReasonCode(String value) {
|
||||
this.taxRegistrationReasonCode = value;
|
||||
}
|
||||
|
||||
public String getAccount() {
|
||||
return account;
|
||||
}
|
||||
|
||||
public void setAccount(String value) {
|
||||
this.account = value;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,18 +17,6 @@ public class ClearingCalendarBackendGetAll extends BasicSpcexResponse {
|
|||
@ApiModelProperty(value = "Полезная нагрузка")
|
||||
private ClearingCalendarBackendPayload payload = new ClearingCalendarBackendPayload();
|
||||
|
||||
private static class ClearingCalendarBackendPayload {
|
||||
private List<TradingCalendarBackendGetFields> items = new ArrayList<>();
|
||||
|
||||
public List<TradingCalendarBackendGetFields> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<TradingCalendarBackendGetFields> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
||||
public ClearingCalendarBackendPayload getPayload() {
|
||||
return payload;
|
||||
}
|
||||
|
|
@ -44,11 +32,22 @@ public class ClearingCalendarBackendGetAll extends BasicSpcexResponse {
|
|||
singleItem.setId(tradingCalendar.getId());
|
||||
singleItem.setClearingDate(tradingCalendar.getClearingDate());
|
||||
singleItem.setCompanyId(tradingCalendar.getCompanyId());
|
||||
singleItem.setTradingStatus(tradingCalendar.getTradingStatus());
|
||||
singleItem.setDayStatus(tradingCalendar.getDayStatus());
|
||||
singleItem.setCreated(tradingCalendar.getCreated());
|
||||
singleItem.setUpdated(tradingCalendar.getUpdated());
|
||||
payload.getItems().add(singleItem);
|
||||
}
|
||||
}
|
||||
|
||||
private static class ClearingCalendarBackendPayload {
|
||||
private List<TradingCalendarBackendGetFields> items = new ArrayList<>();
|
||||
|
||||
public List<TradingCalendarBackendGetFields> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<TradingCalendarBackendGetFields> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -17,18 +17,6 @@ public class SchedulerAllTodayBackendGetAll extends BasicSpcexResponse {
|
|||
@ApiModelProperty(value = "Полезная нагрузка")
|
||||
private SchedulerAllTodayBackendPayload payload = new SchedulerAllTodayBackendPayload();
|
||||
|
||||
private static class SchedulerAllTodayBackendPayload {
|
||||
private List<SchedulerAllTodayBackendGetFields> items = new ArrayList<>();
|
||||
|
||||
public List<SchedulerAllTodayBackendGetFields> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<SchedulerAllTodayBackendGetFields> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
||||
public SchedulerAllTodayBackendPayload getPayload() {
|
||||
return payload;
|
||||
}
|
||||
|
|
@ -48,10 +36,22 @@ public class SchedulerAllTodayBackendGetAll extends BasicSpcexResponse {
|
|||
singleItem.setMarket(schedulerAllToday.getMarket());
|
||||
singleItem.setTaskStatus(schedulerAllToday.getTaskStatus());
|
||||
singleItem.setSecurityId(schedulerAllToday.getSecurityId());
|
||||
singleItem.setSource(schedulerAllToday.getSource());
|
||||
singleItem.setOrigId(schedulerAllToday.getOrigId());
|
||||
singleItem.setSource(schedulerAllToday.getParent());
|
||||
singleItem.setOrigId(schedulerAllToday.getParentId());
|
||||
payload.getItems().add(singleItem);
|
||||
}
|
||||
}
|
||||
|
||||
private static class SchedulerAllTodayBackendPayload {
|
||||
private List<SchedulerAllTodayBackendGetFields> items = new ArrayList<>();
|
||||
|
||||
public List<SchedulerAllTodayBackendGetFields> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<SchedulerAllTodayBackendGetFields> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@ public class TradingCalendarBackendGetFields {
|
|||
@JsonProperty
|
||||
private Long companyId;
|
||||
@JsonProperty
|
||||
private String tradingStatus;
|
||||
private String dayStatus;
|
||||
@JsonProperty
|
||||
@JsonSerialize(using = InstantSerializer.class)
|
||||
private Instant created;
|
||||
|
|
@ -49,12 +49,12 @@ public class TradingCalendarBackendGetFields {
|
|||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public String getTradingStatus() {
|
||||
return tradingStatus;
|
||||
public String getDayStatus() {
|
||||
return dayStatus;
|
||||
}
|
||||
|
||||
public void setTradingStatus(String tradingStatus) {
|
||||
this.tradingStatus = tradingStatus;
|
||||
public void setDayStatus(String dayStatus) {
|
||||
this.dayStatus = dayStatus;
|
||||
}
|
||||
|
||||
public Instant getCreated() {
|
||||
|
|
|
|||
|
|
@ -18,18 +18,6 @@ public class MoneyMarketSecurityBackendGetAllOld extends BasicSpcexResponse {
|
|||
@ApiModelProperty(value = "Полезная нагрузка")
|
||||
private MoneyMarketSecurityBackendPayload payload = new MoneyMarketSecurityBackendPayload();
|
||||
|
||||
private static class MoneyMarketSecurityBackendPayload {
|
||||
private List<MoneyMarketSecurityBackendGetFields> items = new ArrayList<>();
|
||||
|
||||
public List<MoneyMarketSecurityBackendGetFields> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<MoneyMarketSecurityBackendGetFields> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
||||
public MoneyMarketSecurityBackendPayload getPayload() {
|
||||
return payload;
|
||||
}
|
||||
|
|
@ -52,8 +40,21 @@ public class MoneyMarketSecurityBackendGetAllOld extends BasicSpcexResponse {
|
|||
singleItem.setInstrumentType(moneyMarketSecurity.getInstrumentType());
|
||||
singleItem.setFullName(moneyMarketSecurity.getFullName());
|
||||
singleItem.setSecuritySymbol(moneyMarketSecurity.getSecuritySymbol());
|
||||
singleItem.setTermType(moneyMarketSecurity.getTermType());
|
||||
payload.getItems().add(singleItem);
|
||||
}
|
||||
}
|
||||
|
||||
private static class MoneyMarketSecurityBackendPayload {
|
||||
private List<MoneyMarketSecurityBackendGetFields> items = new ArrayList<>();
|
||||
|
||||
public List<MoneyMarketSecurityBackendGetFields> getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public void setItems(List<MoneyMarketSecurityBackendGetFields> items) {
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -23,13 +23,15 @@ public class MoneyMarketSecurityBackendGetFields {
|
|||
@JsonProperty
|
||||
private BigDecimal nominalValue;
|
||||
@JsonProperty
|
||||
private Long nominalCurrency; // (linked to currencyCode)
|
||||
private String nominalCurrency; // (linked to currencyCode)
|
||||
@JsonProperty
|
||||
private String instrumentType; // (linked to instrumentType)
|
||||
@JsonProperty
|
||||
private String fullName;
|
||||
@JsonProperty
|
||||
private String securitySymbol;
|
||||
@JsonProperty
|
||||
private String termType;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
|
|
@ -79,11 +81,11 @@ public class MoneyMarketSecurityBackendGetFields {
|
|||
this.nominalValue = nominalValue;
|
||||
}
|
||||
|
||||
public Long getNominalCurrency() {
|
||||
public String getNominalCurrency() {
|
||||
return nominalCurrency;
|
||||
}
|
||||
|
||||
public void setNominalCurrency(Long nominalCurrency) {
|
||||
public void setNominalCurrency(String nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
}
|
||||
|
||||
|
|
@ -110,4 +112,12 @@ public class MoneyMarketSecurityBackendGetFields {
|
|||
public void setSecuritySymbol(String securitySymbol) {
|
||||
this.securitySymbol = securitySymbol;
|
||||
}
|
||||
|
||||
public String getTermType() {
|
||||
return termType;
|
||||
}
|
||||
|
||||
public void setTermType(String termType) {
|
||||
this.termType = termType;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public class AuthAuditSuccessLoginHandler implements AuthenticationSuccessHandle
|
|||
.getPreferredUsername();
|
||||
Set<String> roles = details.getRoles();
|
||||
|
||||
if (roles.contains(Admin) || roles.contains(Security) || roles.contains(Superviser)) {
|
||||
if (roles.contains(Admin.getKey()) || roles.contains(Security.getKey()) || roles.contains(Superviser.getKey())) {
|
||||
String clientIp = request != null ? request.getRemoteAddr() : null;
|
||||
String serverIp = request != null ? request.getLocalAddr() : null;
|
||||
userAutoCreation.sendAuthSuccessEvent(username, roles, clientIp, serverIp);
|
||||
|
|
|
|||
|
|
@ -5,20 +5,16 @@ server.ssl.key-store=classpath:keystore/client.p12
|
|||
server.ssl.key-store-password=Aa123456
|
||||
server.ssl.enabled=true
|
||||
spring.main.web-application-type=servlet
|
||||
|
||||
backend-api.example-setting=test
|
||||
|
||||
backend-api.hazelcast.cluster-members=127.0.0.1:5701
|
||||
backend-api.hazelcast.login=dev
|
||||
backend-api.hazelcast.password=dev-pass
|
||||
|
||||
backend-api.kafka-producer.bootstrap-servers=localhost:9092
|
||||
backend-api.kafka-producer.acks=all
|
||||
backend-api.kafka-producer.retries=0
|
||||
backend-api.kafka-producer.batch-size=16384
|
||||
backend-api.kafka-producer.linger-ms=1
|
||||
backend-api.kafka-producer.buffer-memory=33554432
|
||||
|
||||
backend-api.kafka-consumer.bootstrap-servers=localhost:9092
|
||||
backend-api.kafka-consumer.group-id=dev-group-backend-api
|
||||
backend-api.kafka-consumer.enable-auto-commit=true
|
||||
|
|
@ -26,10 +22,7 @@ backend-api.kafka-consumer.session-timeout-ms=30000
|
|||
backend-api.kafka-consumer.auto-offset-reset=latest
|
||||
backend-api.kafka-consumer.linger-ms=1
|
||||
backend-api.kafka-consumer.buffer-memory=33554432
|
||||
|
||||
backend-api.security.authorization-disabled=false
|
||||
|
||||
|
||||
##keycloak
|
||||
##keycloak.auth-server-url=http://10.200.200.147:8080/
|
||||
##keycloak.realm=master
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ public class Sdf09Executor extends AbstractExecutor<SDf09> {
|
|||
statement.setSenderId(Sender.Prc.getId());
|
||||
statement.setCreated(Instant.now());
|
||||
statement.setClearingDate(LocalDate.now());
|
||||
statement.setStatementType(StatementType.full.getKey());
|
||||
statement.setStatementType(StatementType.incr.getKey());
|
||||
statement.setAccountId(account.getId());
|
||||
statement.setAccount(sdf09.getAccount());
|
||||
statement.setInOutDirection(InOutDirection.in.getKey());
|
||||
|
|
|
|||
|
|
@ -3,9 +3,6 @@ package ru.clearing.classes.statics.data.account;
|
|||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
import ru.clearing.classes.ConstSerializable;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
||||
/**
|
||||
* Банковские реквизиты для перечисления денежных средств
|
||||
* <p>
|
||||
|
|
@ -26,7 +23,6 @@ public class BankAccount extends SpcexObjectBase {
|
|||
private String swiftCode;
|
||||
private String taxpayerIdentificationNumber;
|
||||
private String taxRegistrationReasonCode;
|
||||
private String account;
|
||||
|
||||
public Long getAccountId() {
|
||||
return accountId;
|
||||
|
|
@ -123,13 +119,4 @@ public class BankAccount extends SpcexObjectBase {
|
|||
public void setTaxRegistrationReasonCode(String value) {
|
||||
this.taxRegistrationReasonCode = value;
|
||||
}
|
||||
|
||||
public String getAccount() {
|
||||
return account;
|
||||
}
|
||||
|
||||
public void setAccount(String value) {
|
||||
this.account = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -8,9 +8,9 @@ import java.time.Instant;
|
|||
import java.time.LocalTime;
|
||||
|
||||
/**
|
||||
* Счета
|
||||
* Реестр сделок допущенных к клирингу
|
||||
* <p>
|
||||
* DB table: ADMITTED_DEAL
|
||||
* DB table: ADMITTED_DEAL_REGISTER
|
||||
**/
|
||||
public class AdmittedDealRegister extends BusinessObject {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ public class MoneyMarketSecurity extends Security {
|
|||
private LocalDate startDate;
|
||||
private LocalDate endDate;
|
||||
private BigDecimal nominalValue;
|
||||
private Long nominalCurrency; // (linked to currencyCode)
|
||||
private String nominalCurrency; // (linked to currencyCode)
|
||||
private String termType;
|
||||
|
||||
public Long getSecurityId() {
|
||||
return securityId;
|
||||
|
|
@ -58,11 +59,19 @@ public class MoneyMarketSecurity extends Security {
|
|||
this.nominalValue = nominalValue;
|
||||
}
|
||||
|
||||
public Long getNominalCurrency() {
|
||||
public String getNominalCurrency() {
|
||||
return nominalCurrency;
|
||||
}
|
||||
|
||||
public void setNominalCurrency(Long nominalCurrency) {
|
||||
public void setNominalCurrency(String nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
}
|
||||
|
||||
public String getTermType() {
|
||||
return termType;
|
||||
}
|
||||
|
||||
public void setTermType(String termType) {
|
||||
this.termType = termType;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@ import java.time.LocalDate;
|
|||
/**
|
||||
* Торговые и неторговые дни
|
||||
* <p>
|
||||
* DB table: TRADING_CALENDAR
|
||||
* DB table: CLEARING_CALENDAR
|
||||
**/
|
||||
public class ClearingCalendar extends BusinessObject {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
||||
private LocalDate clearingDate;
|
||||
private Long companyId;
|
||||
private String tradingStatus;
|
||||
private String dayStatus;
|
||||
|
||||
public LocalDate getClearingDate() {
|
||||
return clearingDate;
|
||||
|
|
@ -33,12 +33,12 @@ public class ClearingCalendar extends BusinessObject {
|
|||
this.companyId = value;
|
||||
}
|
||||
|
||||
public String getTradingStatus() {
|
||||
return tradingStatus;
|
||||
public String getDayStatus() {
|
||||
return dayStatus;
|
||||
}
|
||||
|
||||
public void setTradingStatus(String value) {
|
||||
this.tradingStatus = value;
|
||||
public void setDayStatus(String value) {
|
||||
this.dayStatus = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@ import ru.clearing.classes.objects.BusinessObject;
|
|||
/**
|
||||
* Запуск задачи
|
||||
* <p>
|
||||
* DB table: TASK_RUNNER
|
||||
* DB table: LAUNCHER
|
||||
**/
|
||||
public class Launcher extends BusinessObject {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ import java.time.LocalDate;
|
|||
import java.time.LocalTime;
|
||||
|
||||
/**
|
||||
* Расписание планировщика
|
||||
* Расписание
|
||||
* <p>
|
||||
* DB table: SCHEDULER
|
||||
* DB table: PLANNER
|
||||
**/
|
||||
public class Planner extends BusinessObject {
|
||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ public class PlannerAllToday extends SpcexObjectBase {
|
|||
private String market;
|
||||
private String taskStatus;
|
||||
private Long securityId;
|
||||
private String source;
|
||||
private Long origId;
|
||||
private String parent;
|
||||
private Long parentId;
|
||||
|
||||
public String getTask() {
|
||||
return task;
|
||||
|
|
@ -71,20 +71,20 @@ public class PlannerAllToday extends SpcexObjectBase {
|
|||
this.securityId = value;
|
||||
}
|
||||
|
||||
public String getSource() {
|
||||
return source;
|
||||
public String getParent() {
|
||||
return parent;
|
||||
}
|
||||
|
||||
public void setSource(String value) {
|
||||
this.source = value;
|
||||
public void setParent(String value) {
|
||||
this.parent = value;
|
||||
}
|
||||
|
||||
public Long getOrigId() {
|
||||
return origId;
|
||||
public Long getParentId() {
|
||||
return parentId;
|
||||
}
|
||||
|
||||
public void setOrigId(Long value) {
|
||||
this.origId = value;
|
||||
public void setParentId(Long value) {
|
||||
this.parentId = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -6,118 +6,33 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf03;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf11;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.SdfClearingRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.platform.enumeration.TransactionStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.util.AbstractMap;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@EnableScheduling
|
||||
public class ClearingService {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<PaymentInstruction> paymentImdgs;
|
||||
private final ExecutorService executor;
|
||||
private final ImdgId idGenerator;
|
||||
private final PaymentInstructionSorter senderGroupSorter;
|
||||
private final Imdg<SDf03> sdf03Imdg;
|
||||
private final Imdg<SDf11> sdf11Imdg;
|
||||
private final KafkaSender kafkaSender;
|
||||
private final SdfCreatorBySTLDPayment sdfCreator;
|
||||
private final PaymentUpdateBySdf04 paymentUpdater;
|
||||
|
||||
@Autowired
|
||||
public ClearingService(ImdgProvider imdgProvider, PaymentInstructionSorter senderGroupSorter, KafkaSender kafkaSender) {
|
||||
this.paymentImdgs = imdgProvider.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class);
|
||||
this.sdf03Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf03, SDf03.class);
|
||||
this.sdf11Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf11, SDf11.class);
|
||||
this.idGenerator = imdgProvider.getImdgIdGenerator();
|
||||
this.senderGroupSorter = senderGroupSorter;
|
||||
this.kafkaSender = kafkaSender;
|
||||
public ClearingService(SdfCreatorBySTLDPayment sdfCreator, PaymentUpdateBySdf04 paymentUpdater) {
|
||||
this.sdfCreator = sdfCreator;
|
||||
this.paymentUpdater = paymentUpdater;
|
||||
this.executor = Executors.newSingleThreadExecutor();
|
||||
}
|
||||
|
||||
@Scheduled(cron = "${clearing-service.scheduler.check-payment-instruction}")
|
||||
public void run() {
|
||||
executor.execute(this::createSdfFromPaymentInstructionSTLD);
|
||||
public void sdfCreate() {
|
||||
log.info("creating sdf03/11 from STLD payments task added to queue");
|
||||
executor.execute(sdfCreator::createSdfFromPaymentInstructionSTLD);
|
||||
}
|
||||
|
||||
private void createSdfFromPaymentInstructionSTLD() {
|
||||
final boolean[] anyError = {false};
|
||||
//generationId для созадаваемых Sdf03/Sdf11
|
||||
Long generationId = idGenerator.nextId();
|
||||
//выгружаем PaymentInstructions с нужным статусом
|
||||
Map<Long, PaymentBatchInfo> paymentBySender = paymentImdgs.getCollectionObjectsByFieldValues(
|
||||
Map.of("transactionStatus", TransactionStatus.stld.getKey()))
|
||||
.stream()
|
||||
//группируем по компаниям (fixme sorted убрать?)
|
||||
.sorted(Comparator.comparing(PaymentInstruction::getSenderId))
|
||||
.collect(Collectors.groupingBy(PaymentInstruction::getSenderId))
|
||||
.entrySet()
|
||||
.stream()
|
||||
//результатом работы senderGroupSorter будет Map<senderId -> PaymentBatchInfo>
|
||||
//PaymentBatchInfo содержит возможную ошибку, при необходимости отсортированные Payment
|
||||
//тип ClearingMemberCategory
|
||||
.map(entry -> {
|
||||
Long senderId = entry.getKey();
|
||||
List<PaymentInstruction> pmtInstrcs = entry.getValue();
|
||||
PaymentBatchInfo senderInfo = senderGroupSorter.sortCompanyPayments(generationId, senderId, pmtInstrcs);
|
||||
if (senderInfo.getError() != null) {
|
||||
anyError[0] = true;
|
||||
}
|
||||
return new AbstractMap.SimpleEntry<>(senderId, senderInfo);
|
||||
})
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
|
||||
//save SDF03/SDF11
|
||||
for (var entry : paymentBySender.entrySet()) {
|
||||
PaymentBatchInfo senderPayments = entry.getValue();
|
||||
saveSdfAnSendToKafka(senderPayments, generationId);
|
||||
}
|
||||
//update PaymentInstruction.transactionStatus
|
||||
for (var entry : paymentBySender.entrySet()) {
|
||||
PaymentBatchInfo batch = entry.getValue();
|
||||
//все PaymentInstruction.transactionStatus в batch с error != null
|
||||
//уже проапдейтились в методе sortCompanyPayments
|
||||
if (batch.getError() == null) {
|
||||
TransactionStatus stat = anyError[0] ? TransactionStatus.notSent : TransactionStatus.sent;
|
||||
batch.getOrderedPaymentInstructions()
|
||||
.forEach(paymentInstruction -> {
|
||||
paymentInstruction.setTransactionStatus(stat.getKey());
|
||||
paymentImdgs.update(paymentInstruction);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void saveSdfAnSendToKafka(PaymentBatchInfo batch, Long generationId) {
|
||||
SdfClearingRequest kafkaMessage = new SdfClearingRequest();
|
||||
kafkaMessage.setGroupId(generationId);
|
||||
switch (batch.getCategoryD()) {
|
||||
case I -> {
|
||||
batch.getOrderedPaymentInstructions()
|
||||
.map(paymentInstruction -> Sdf03Builder.buildSdf03(paymentInstruction, generationId))
|
||||
.forEach(sdf03Imdg::insert);
|
||||
kafkaSender.sendRequestToQueue(Consts.SDF03_PROCESS, kafkaMessage);
|
||||
}
|
||||
case B -> {
|
||||
batch.getOrderedPaymentInstructions()
|
||||
.map(paymentInstruction -> Sdf11Builder.buildSdf11(paymentInstruction, generationId))
|
||||
.forEach(sdf11Imdg::insert);
|
||||
kafkaSender.sendRequestToQueue(Consts.SDF11_PROCESS, kafkaMessage);
|
||||
}
|
||||
}
|
||||
public void paymentUpdateBySdf04(Long sdf04GroupId) {
|
||||
log.info("adding sdf03/11 from STLD payments task to queue");
|
||||
executor.execute(() -> paymentUpdater.updatePayments(sdf04GroupId));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
package ru.spcex.clearing.service;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf04;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.platform.enumeration.TransactionStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class PaymentUpdateBySdf04 {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<PaymentInstruction> paymentImdgs;
|
||||
private final Imdg<SDf04> sdf04Imdg;
|
||||
|
||||
public PaymentUpdateBySdf04(ImdgProvider imdgProvider) {
|
||||
this.paymentImdgs = imdgProvider.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class);
|
||||
this.sdf04Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf04, SDf04.class);
|
||||
}
|
||||
|
||||
public void updatePayments(Long sdf04GroupId) {
|
||||
Collection<SDf04> sDf04s = sdf04Imdg.getCollectionObjectsByFieldValues(Map.of("generationId", sdf04GroupId));
|
||||
for (SDf04 sDf04 : sDf04s) {
|
||||
String docnm_ref = sDf04.getDocnm_ref();
|
||||
long paymentId;
|
||||
try {
|
||||
paymentId = Long.parseLong(docnm_ref);
|
||||
} catch (NumberFormatException e) {
|
||||
log.warn("sdf04.id={} cannot parse docnm_ref={} as payment id", sDf04.getId(), sDf04.getDocnm_ref());
|
||||
continue;
|
||||
}
|
||||
PaymentInstruction payment = paymentImdgs.getSingleObjectByFieldValues(Map.of("id", paymentId));
|
||||
if ("OK!".equals(sDf04.getImp_result())) {
|
||||
payment.setTransactionStatus(TransactionStatus.ok.getKey());
|
||||
} else {
|
||||
payment.setTransactionStatus(TransactionStatus.fail.getKey());
|
||||
}
|
||||
paymentImdgs.update(payment);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
package ru.spcex.clearing.service;
|
||||
|
||||
import org.apache.kafka.clients.consumer.Consumer;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.Sdf04Request;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||
|
||||
@Service
|
||||
public class Sdf04Receiver extends QueueConsumer implements InitializingBean {
|
||||
private final ClearingService clearingService;
|
||||
public Sdf04Receiver(Consumer<String, Object> kafkaQueue, ClearingService clearingService) {
|
||||
super(kafkaQueue);
|
||||
this.clearingService = clearingService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
callback(Sdf04Request.class)
|
||||
.setConsumer(event -> {
|
||||
Sdf04Request requestPayload = event.getRequestPayload();
|
||||
clearingService.paymentUpdateBySdf04(requestPayload.getGroupId());
|
||||
})
|
||||
.forDestination(Consts.SDF04_PROCESS, callbacks::put);
|
||||
init();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
package ru.spcex.clearing.service;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf03;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf11;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.SdfClearingRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.clearing.service.order.PaymentBatchInfo;
|
||||
import ru.spcex.clearing.service.order.PaymentInstructionSorter;
|
||||
import ru.spcex.clearing.service.order.Sdf03Builder;
|
||||
import ru.spcex.clearing.service.order.Sdf11Builder;
|
||||
import ru.spcex.platform.enumeration.TransactionStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgId;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.util.AbstractMap;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class SdfCreatorBySTLDPayment {
|
||||
private final Imdg<PaymentInstruction> paymentImdgs;
|
||||
private final ImdgId idGenerator;
|
||||
private final PaymentInstructionSorter senderGroupSorter;
|
||||
private final Imdg<SDf03> sdf03Imdg;
|
||||
private final Imdg<SDf11> sdf11Imdg;
|
||||
private final KafkaSender kafkaSender;
|
||||
|
||||
@Autowired
|
||||
public SdfCreatorBySTLDPayment(ImdgProvider imdgProvider, PaymentInstructionSorter senderGroupSorter, KafkaSender kafkaSender) {
|
||||
this.paymentImdgs = imdgProvider.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class);
|
||||
this.sdf03Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf03, SDf03.class);
|
||||
this.sdf11Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf11, SDf11.class);
|
||||
this.idGenerator = imdgProvider.getImdgIdGenerator();
|
||||
this.senderGroupSorter = senderGroupSorter;
|
||||
this.kafkaSender = kafkaSender;
|
||||
}
|
||||
|
||||
public void createSdfFromPaymentInstructionSTLD() {
|
||||
final boolean[] anyError = {false};
|
||||
//generationId для созадаваемых Sdf03/Sdf11
|
||||
Long generationId = idGenerator.nextId();
|
||||
//выгружаем PaymentInstructions с нужным статусом
|
||||
Map<Long, PaymentBatchInfo> paymentBySender = paymentImdgs.getCollectionObjectsByFieldValues(
|
||||
Map.of("transactionStatus", TransactionStatus.stld.getKey()))
|
||||
.stream()
|
||||
//группируем по компаниям (fixme sorted убрать?)
|
||||
.sorted(Comparator.comparing(PaymentInstruction::getSenderId))
|
||||
.collect(Collectors.groupingBy(PaymentInstruction::getSenderId))
|
||||
.entrySet()
|
||||
.stream()
|
||||
//результатом работы senderGroupSorter будет Map<senderId -> PaymentBatchInfo>
|
||||
//PaymentBatchInfo содержит возможную ошибку, при необходимости отсортированные Payment
|
||||
//тип ClearingMemberCategory
|
||||
.map(entry -> {
|
||||
Long senderId = entry.getKey();
|
||||
List<PaymentInstruction> pmtInstrcs = entry.getValue();
|
||||
PaymentBatchInfo senderInfo = senderGroupSorter.sortCompanyPayments(generationId, senderId, pmtInstrcs);
|
||||
if (senderInfo.getError() != null) {
|
||||
anyError[0] = true;
|
||||
}
|
||||
return new AbstractMap.SimpleEntry<>(senderId, senderInfo);
|
||||
})
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
|
||||
//save SDF03/SDF11
|
||||
for (var entry : paymentBySender.entrySet()) {
|
||||
PaymentBatchInfo senderPayments = entry.getValue();
|
||||
saveSdfAnSendToKafka(senderPayments, generationId);
|
||||
}
|
||||
//update PaymentInstruction.transactionStatus
|
||||
for (var entry : paymentBySender.entrySet()) {
|
||||
PaymentBatchInfo batch = entry.getValue();
|
||||
//все PaymentInstruction.transactionStatus в batch с error != null
|
||||
//уже проапдейтились в методе sortCompanyPayments
|
||||
if (batch.getError() == null) {
|
||||
TransactionStatus stat = anyError[0] ? TransactionStatus.notSent : TransactionStatus.sent;
|
||||
batch.getOrderedPaymentInstructions()
|
||||
.forEach(paymentInstruction -> {
|
||||
paymentInstruction.setTransactionStatus(stat.getKey());
|
||||
paymentImdgs.update(paymentInstruction);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void saveSdfAnSendToKafka(PaymentBatchInfo batch, Long generationId) {
|
||||
SdfClearingRequest kafkaMessage = new SdfClearingRequest();
|
||||
kafkaMessage.setGroupId(generationId);
|
||||
switch (batch.getCategoryD()) {
|
||||
case I -> {
|
||||
batch.getOrderedPaymentInstructions()
|
||||
.map(paymentInstruction -> Sdf03Builder.buildSdf03(paymentInstruction, generationId))
|
||||
.forEach(sdf03Imdg::insert);
|
||||
kafkaSender.sendRequestToQueue(Consts.SDF03_PROCESS, kafkaMessage);
|
||||
}
|
||||
case B -> {
|
||||
batch.getOrderedPaymentInstructions()
|
||||
.map(paymentInstruction -> Sdf11Builder.buildSdf11(paymentInstruction, generationId))
|
||||
.forEach(sdf11Imdg::insert);
|
||||
kafkaSender.sendRequestToQueue(Consts.SDF11_PROCESS, kafkaMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.service;
|
||||
package ru.spcex.clearing.service.order;
|
||||
|
||||
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
||||
import ru.spcex.platform.enumeration.ClearingMemberCategoryD;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.service;
|
||||
package ru.spcex.clearing.service.order;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -40,7 +40,7 @@ public class PaymentInstructionSorter {
|
|||
this.messageResolver = messageResolver;
|
||||
}
|
||||
|
||||
PaymentBatchInfo sortCompanyPayments(Long generationId, Long senderId, List<PaymentInstruction> payments) {
|
||||
public PaymentBatchInfo sortCompanyPayments(Long generationId, Long senderId, List<PaymentInstruction> payments) {
|
||||
PaymentBatchInfo batchInfo = new PaymentBatchInfo();
|
||||
log.info("processing PaymentInstruction's generationId={} senderId={} size={}", generationId, senderId, payments.size());
|
||||
ClearingMemberCategory category = clrngMmbrImdg.getSingleObjectByFieldValues(Map.of("companyId", senderId));
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
package ru.spcex.clearing.service;
|
||||
package ru.spcex.clearing.service.order;
|
||||
|
||||
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf03;
|
||||
import ru.spcex.clearing.service.SpecifUtil;
|
||||
import ru.spcex.platform.enumeration.Sender;
|
||||
import ru.spcex.platform.utils.time.TimeUtil;
|
||||
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
package ru.spcex.clearing.service;
|
||||
package ru.spcex.clearing.service.order;
|
||||
|
||||
import ru.clearing.classes.statics.data.payment.PaymentInstruction;
|
||||
import ru.clearing.classes.statics.data.sdf.SDf11;
|
||||
import ru.spcex.clearing.service.SpecifUtil;
|
||||
import ru.spcex.platform.enumeration.Sender;
|
||||
import ru.spcex.platform.utils.time.TimeUtil;
|
||||
|
||||
|
|
@ -3,7 +3,7 @@ package ru.clearing.platform.dictionary;
|
|||
/**
|
||||
* Справочник торговых статусов
|
||||
*
|
||||
* Dictionary DB table: TRADING_STATUS_DICTIONARY
|
||||
* Dictionary DB table: DAY_STATUS_DICTIONARY
|
||||
**/
|
||||
public class DayStatusDictionary extends AbstractDictionary {
|
||||
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package ru.clearing.platform.dictionary;
|
|||
/**
|
||||
* Справочник источников
|
||||
*
|
||||
* Dictionary DB table: SOURCE_DICTIONARY
|
||||
* Dictionary DB table: PARENT_DICTIONARY
|
||||
**/
|
||||
public class ParentDictionary extends AbstractDictionary {
|
||||
private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public class BankAccountHistoryMapStore extends TemplateEventMapStore<BankAccoun
|
|||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID",
|
||||
"BANK_ACCOUNT_ID", "ACCOUNT_ID", "BANK_IDENTIFICATION_CODE", "BANK_NAME", "CORRESPONDENT_ACCOUNT", "CORRESPONDENT_ACCOUNT_NAME", "CURRENCY", "DESTINATION", "IBAN", "INTERNATIONAL_TRANSFER_SIGN", "SWIFT_CODE", "TAXPAYER_IDENTIFICATION_NUMBER", "TAX_REGISTRATION_REASON_CODE", "ACCOUNT"
|
||||
"BANK_ACCOUNT_ID", "ACCOUNT_ID", "BANK_IDENTIFICATION_CODE", "BANK_NAME", "CORRESPONDENT_ACCOUNT", "CORRESPONDENT_ACCOUNT_NAME", "CURRENCY", "DESTINATION", "IBAN", "INTERNATIONAL_TRANSFER_SIGN", "SWIFT_CODE", "TAXPAYER_IDENTIFICATION_NUMBER", "TAX_REGISTRATION_REASON_CODE"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -53,7 +53,6 @@ public class BankAccountHistoryMapStore extends TemplateEventMapStore<BankAccoun
|
|||
object.getSwiftCode(),
|
||||
object.getTaxpayerIdentificationNumber(),
|
||||
object.getTaxRegistrationReasonCode(),
|
||||
object.getAccount()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class ClearingCalendarMapStore extends TemplateMapStore<ClearingCalendar>
|
|||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "COMPANY_ID", "TRADING_STATUS"
|
||||
"ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "COMPANY_ID", "DAY_STATUS"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ public class ClearingCalendarMapStore extends TemplateMapStore<ClearingCalendar>
|
|||
object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT"));
|
||||
object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE"));
|
||||
object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class));
|
||||
object.setTradingStatus(resultSet.getObject("TRADING_STATUS", String.class));
|
||||
object.setDayStatus(resultSet.getObject("DAY_STATUS", String.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ public class ClearingCalendarMapStore extends TemplateMapStore<ClearingCalendar>
|
|||
TimeUtil.toDateFromInstant(object.getUpdated()),
|
||||
TimeUtil.toDateFromLocalDate(object.getClearingDate()),
|
||||
object.getCompanyId(),
|
||||
object.getTradingStatus()
|
||||
object.getDayStatus()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,8 @@ public class CompanyMapStore extends BusinessObjectMapStore<Company> {
|
|||
return new String[]{
|
||||
"id", "company_id", "corporation_sole_type", "country_code", "description",
|
||||
"professional_sign", "legal_kind", "organization_type", "residence",
|
||||
"short_name_eng", "full_name_eng",
|
||||
"short_name_eng", "full_name_eng", "short_name", "full_name", "trading_code",
|
||||
"clearing_code", "registration_code"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -113,6 +114,11 @@ public class CompanyMapStore extends BusinessObjectMapStore<Company> {
|
|||
companyInfo.setResidence(rs.getString("RESIDENCE"));
|
||||
companyInfo.setShortNameEng(rs.getString("SHORT_NAME_ENG"));
|
||||
companyInfo.setFullNameEng(rs.getString("FULL_NAME_ENG"));
|
||||
companyInfo.setShortName(rs.getString("SHORT_NAME"));
|
||||
companyInfo.setFullName(rs.getString("FULL_NAME"));
|
||||
companyInfo.setTradingCode(rs.getString("TRADING_CODE"));
|
||||
companyInfo.setClearingCode(rs.getString("CLEARING_CODE"));
|
||||
companyInfo.setRegistrationCode(rs.getString("REGISTRATION_CODE"));
|
||||
return companyInfo;
|
||||
}
|
||||
);
|
||||
|
|
@ -144,7 +150,12 @@ public class CompanyMapStore extends BusinessObjectMapStore<Company> {
|
|||
companyInfo.getOrganizationType(),
|
||||
companyInfo.getResidence(),
|
||||
companyInfo.getShortNameEng(),
|
||||
companyInfo.getFullNameEng()
|
||||
companyInfo.getFullNameEng(),
|
||||
companyInfo.getShortName(),
|
||||
companyInfo.getFullName(),
|
||||
companyInfo.getTradingCode(),
|
||||
companyInfo.getClearingCode(),
|
||||
companyInfo.getRegistrationCode()
|
||||
));
|
||||
return companyInfoArgs;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public class BankAccountMapStore extends TemplateMapStore<BankAccount> {
|
|||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "ACCOUNT_ID", "BANK_IDENTIFICATION_CODE", "BANK_NAME", "CORRESPONDENT_ACCOUNT", "CORRESPONDENT_ACCOUNT_NAME", "CURRENCY", "DESTINATION", "IBAN", "INTERNATIONAL_TRANSFER_SIGN", "SWIFT_CODE", "TAXPAYER_IDENTIFICATION_NUMBER", "TAX_REGISTRATION_REASON_CODE", "ACCOUNT"
|
||||
"ID", "ACCOUNT_ID", "BANK_IDENTIFICATION_CODE", "BANK_NAME", "CORRESPONDENT_ACCOUNT", "CORRESPONDENT_ACCOUNT_NAME", "CURRENCY", "DESTINATION", "IBAN", "INTERNATIONAL_TRANSFER_SIGN", "SWIFT_CODE", "TAXPAYER_IDENTIFICATION_NUMBER", "TAX_REGISTRATION_REASON_CODE"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -49,7 +49,6 @@ public class BankAccountMapStore extends TemplateMapStore<BankAccount> {
|
|||
object.setSwiftCode(resultSet.getObject("SWIFT_CODE", String.class));
|
||||
object.setTaxpayerIdentificationNumber(resultSet.getObject("TAXPAYER_IDENTIFICATION_NUMBER", String.class));
|
||||
object.setTaxRegistrationReasonCode(resultSet.getObject("TAX_REGISTRATION_REASON_CODE", String.class));
|
||||
object.setAccount(resultSet.getObject("ACCOUNT", String.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
|
|
@ -69,7 +68,6 @@ public class BankAccountMapStore extends TemplateMapStore<BankAccount> {
|
|||
object.getSwiftCode(),
|
||||
object.getTaxpayerIdentificationNumber(),
|
||||
object.getTaxRegistrationReasonCode(),
|
||||
object.getAccount()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@ import java.util.Map;
|
|||
@Component
|
||||
public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSecurity> {
|
||||
|
||||
private final String insertToSecurityStatement = makeInsertSql("SECURITY",
|
||||
getFieldsSecurity(), "id");
|
||||
|
||||
public MoneyMarketSecurityMapStore(JdbcTemplate jdbcTemplate) {
|
||||
super(jdbcTemplate);
|
||||
}
|
||||
|
||||
private final String insertToSecurityStatement = makeInsertSql("SECURITY",
|
||||
getFieldsSecurity(), "id");
|
||||
|
||||
@Override
|
||||
public String getTableName() {
|
||||
return "MONEY_MARKET_SECURITY";
|
||||
|
|
@ -41,7 +41,7 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
|
|||
|
||||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{"ID", "SECURITY_ID", "DESCRIPTION", "START_DATE", "END_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY"};
|
||||
return new String[]{"ID", "SECURITY_ID", "DESCRIPTION", "START_DATE", "END_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY", "TERM_TYPE"};
|
||||
}
|
||||
|
||||
public String[] getFieldsSecurity() {
|
||||
|
|
@ -70,7 +70,8 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
|
|||
object.setStartDate(getLocalDateFromSqlDate(resultSet, "START_DATE"));
|
||||
object.setEndDate(getLocalDateFromSqlDate(resultSet, "END_DATE"));
|
||||
object.setNominalValue(resultSet.getObject("NOMINAL_VALUE", BigDecimal.class));
|
||||
object.setNominalCurrency(resultSet.getObject("NOMINAL_CURRENCY", Long.class));
|
||||
object.setNominalCurrency(resultSet.getObject("NOMINAL_CURRENCY", String.class));
|
||||
object.setTermType(resultSet.getObject("TERM_TYPE", String.class));
|
||||
fillBySecurity(object, object.getSecurityId());
|
||||
return object;
|
||||
}
|
||||
|
|
@ -79,9 +80,16 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
|
|||
List<MoneyMarketSecurity> resouts = jdbcTemplate.query(
|
||||
"SELECT * FROM SECURITY WHERE id = ?", new Object[]{securityId},
|
||||
(rs, rowNum) -> {
|
||||
object.setCreated(getInstantFromTimestamp(rs, "CREATED_AT"));
|
||||
object.setUpdated(getInstantFromTimestamp(rs, "UPDATED_AT"));
|
||||
object.setInstrumentType(rs.getObject("INSTRUMENT_TYPE", String.class));
|
||||
object.setIssuerId(rs.getObject("issuer_id", Long.class));
|
||||
object.setShortName(rs.getObject("short_name", String.class));
|
||||
object.setFullName(rs.getObject("FULL_NAME", String.class));
|
||||
object.setShortNameEng(rs.getObject("short_name_eng", String.class));
|
||||
object.setFullNameEng(rs.getObject("full_name_eng", String.class));
|
||||
object.setSecuritySymbol(rs.getObject("SECURITY_SYMBOL", String.class));
|
||||
object.setWorkflowStatus(rs.getObject("workflow_status", String.class));
|
||||
return object;
|
||||
}
|
||||
);
|
||||
|
|
@ -100,6 +108,7 @@ public class MoneyMarketSecurityMapStore extends TemplateMapStore<MoneyMarketSec
|
|||
TimeUtil.toDateFromLocalDate(moneyMarketSecurity.getEndDate()),
|
||||
moneyMarketSecurity.getNominalValue(),
|
||||
moneyMarketSecurity.getNominalCurrency(),
|
||||
moneyMarketSecurity.getTermType()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class PlannerAllTodayMapStore extends TemplateMapStore<PlannerAllToday> {
|
|||
@Override
|
||||
public String[] getFields() {
|
||||
return new String[]{
|
||||
"ID", "TASK", "TASK_TIME", "CLEARING_DATE", "MARKET", "TASK_STATUS", "SECURITY_ID", "SOURCE", "ORIG_ID"
|
||||
"ID", "TASK", "TASK_TIME", "CLEARING_DATE", "MARKET", "TASK_STATUS", "SECURITY_ID", "PARENT", "PARENT_ID"
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -44,8 +44,8 @@ public class PlannerAllTodayMapStore extends TemplateMapStore<PlannerAllToday> {
|
|||
object.setMarket(resultSet.getObject("MARKET", String.class));
|
||||
object.setTaskStatus(resultSet.getObject("TASK_STATUS", String.class));
|
||||
object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class));
|
||||
object.setSource(resultSet.getObject("SOURCE", String.class));
|
||||
object.setOrigId(resultSet.getObject("ORIG_ID", Long.class));
|
||||
object.setParent(resultSet.getObject("PARENT", String.class));
|
||||
object.setParentId(resultSet.getObject("PARENT_ID", Long.class));
|
||||
return object;
|
||||
}
|
||||
|
||||
|
|
@ -59,8 +59,8 @@ public class PlannerAllTodayMapStore extends TemplateMapStore<PlannerAllToday> {
|
|||
object.getMarket(),
|
||||
object.getTaskStatus(),
|
||||
object.getSecurityId(),
|
||||
object.getSource(),
|
||||
object.getOrigId()
|
||||
object.getParent(),
|
||||
object.getParentId()
|
||||
};
|
||||
return args;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,10 +36,11 @@ public class UserRoleSessionMapStore extends TemplateMapStore<UserRoleSession> {
|
|||
@Override
|
||||
public UserRoleSession objectReader(ResultSet resultSet) throws SQLException {
|
||||
UserRoleSession object = new UserRoleSession();
|
||||
Long companyId = resultSet.getObject("COMPANY_ID", Long.class);
|
||||
object.setId(resultSet.getObject("ID", Long.class));
|
||||
object.setUserId(resultSet.getObject("USER_ID", Long.class));
|
||||
object.setUserRole(resultSet.getObject("USER_ROLE", String.class));
|
||||
object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class));
|
||||
object.setCompanyId(companyId.equals(0L) ? 1 : companyId);
|
||||
object.setStatus(resultSet.getObject("STATUS", String.class));
|
||||
return object;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@ imdg.hazelcast.password=dev-pass
|
|||
imdg.hazelcast.cluster-members[0]=127.0.0.1
|
||||
imdg.database.login=clearing
|
||||
imdg.database.password=Aa111111
|
||||
imdg.database.url=jdbc:postgresql://10.200.200.133:5432/postgres
|
||||
imdg.database.url=jdbc:postgresql://10.200.200.133:5432/postgres?currentSchema=clearing_prod
|
||||
|
|
@ -7,6 +7,7 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
|
|||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Assumptions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -16,12 +17,16 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
|||
import org.springframework.jdbc.core.SqlTypeValue;
|
||||
import org.springframework.jdbc.core.StatementCreatorUtils;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.TestPropertySource;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanyHistory;
|
||||
import ru.clearing.classes.statics.data.profile.CompanyInfo;
|
||||
import ru.clearing.platform.dictionary.AbstractDictionary;
|
||||
import ru.clearing.platform.dictionary.CompanySymbolDictionary;
|
||||
import ru.spcex.clearing.imdg.base.*;
|
||||
import ru.spcex.clearing.imdg.config.DbTestConnectionConfig;
|
||||
import ru.spcex.clearing.imdg.config.TestConfiguration;
|
||||
import ru.spcex.clearing.imdg.structure.BusinessObjectAndBusinessEventForCheckMapStore;
|
||||
import ru.spcex.clearing.imdg.structure.DictionaryObjectForCheckMapStore;
|
||||
|
|
@ -42,11 +47,11 @@ import static ru.spcex.clearing.imdg.structure.RunnableMapNamesForTesting.busine
|
|||
import static ru.spcex.clearing.imdg.structure.RunnableMapNamesForTesting.dictionaryObjectForCheckMapStores;
|
||||
import static ru.spcex.clearing.imdg.utils.DbDataUtils.generatingRandomString;
|
||||
|
||||
//@ContextConfiguration(classes = {
|
||||
// TestConfiguration.class,
|
||||
// DbTestConnectionConfig.class})
|
||||
//@ExtendWith(SpringExtension.class)
|
||||
//@TestPropertySource(properties = "spring.config.location=D:/repo/mfd/clearing/clearing-parent/imdg/src/main/resources")
|
||||
@ContextConfiguration(classes = {
|
||||
TestConfiguration.class,
|
||||
DbTestConnectionConfig.class})
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@TestPropertySource(properties = "spring.config.location=D:/repo/mfd/clearing/clearing-parent/imdg/src/main/resources")
|
||||
public class AllMapStoreTest {
|
||||
private static final Long ID = 1000000L;
|
||||
private final Logger log = LoggerFactory.getLogger(this.getClass());
|
||||
|
|
@ -106,7 +111,7 @@ public class AllMapStoreTest {
|
|||
}
|
||||
}
|
||||
|
||||
// @Test
|
||||
// @Test
|
||||
public void checkAllMapStoreCreatedTest() throws SQLException {
|
||||
Assumptions.assumeTrue(false, "todo удалить если будет не нужна, пока не работает из-за не все mapStore готовы");
|
||||
//Поиск таблиц которым нужно добавить mapStore и вывод результата в консоль
|
||||
|
|
@ -116,8 +121,8 @@ public class AllMapStoreTest {
|
|||
ResultSet rs = md.getTables(null, "clearing_tester", "%", new String[]{"TABLE"});
|
||||
while (rs.next()) {
|
||||
String tableName = rs.getString("TABLE_NAME");
|
||||
//сущности для company_info и company_info_history включены соответсвенно в company и company_history
|
||||
if (tableName.equals("company_info") || tableName.equals("company_info_history")) {
|
||||
//сущности для company_info и company_info_history включены соответственно в company и company_history, security используется с money_market_security для хранения MoneyMarketSecurity
|
||||
if (tableName.equalsIgnoreCase("company_info") || tableName.equalsIgnoreCase("company_info_history") || tableName.equalsIgnoreCase("security")) {
|
||||
continue;
|
||||
}
|
||||
nameTables.add(tableName);
|
||||
|
|
@ -152,7 +157,7 @@ public class AllMapStoreTest {
|
|||
Assertions.assertEquals(0, nameTables.size());
|
||||
}
|
||||
|
||||
// @Test
|
||||
@Test
|
||||
public void checkSavingForAllMapStoreTest() {
|
||||
saveBusinessObjectAndBusinessEventToMaps();
|
||||
saveDictionaryObjectToMaps();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
|
@ -1,9 +1,9 @@
|
|||
package ru.spcex.clearing.reports_service;
|
||||
package ru.spcex.clearing.reports;
|
||||
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import ru.spcex.clearing.reports_service.services.ReportsService;
|
||||
import ru.spcex.clearing.reports.services.ReportsService;
|
||||
|
||||
@SpringBootApplication
|
||||
public class ReportsServiceApplication {
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.reports_service.config;
|
||||
package ru.spcex.clearing.reports.config;
|
||||
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
|
|
@ -6,7 +6,7 @@ import org.springframework.context.annotation.Configuration;
|
|||
|
||||
@Configuration
|
||||
@EnableConfigurationProperties
|
||||
@ComponentScan(basePackages = {"ru.spcex.clearing.reports_service"})
|
||||
@ComponentScan(basePackages = {"ru.spcex.clearing.reports"})
|
||||
public class ReportsServiceConfig {
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.reports_service.controller;
|
||||
package ru.spcex.clearing.reports.controller;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.reports_service.exceptions;
|
||||
package ru.spcex.clearing.reports.exceptions;
|
||||
|
||||
public class ConfigException extends RuntimeException {
|
||||
public ConfigException(String msg) { super(msg); }
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.reports_service.properties;
|
||||
package ru.spcex.clearing.reports.properties;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package ru.spcex.clearing.reports.reports;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||
import ru.spcex.clearing.reports.xml_test.FormattedLocalDateConverter;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Общая шапка (атрибуты) для всех отчетов
|
||||
*/
|
||||
public abstract class AbstractReport {
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("version")
|
||||
protected String version;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("code")
|
||||
protected String code;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("name")
|
||||
protected String name;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("startDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
protected LocalDate startDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("endDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
protected LocalDate endDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("destination")
|
||||
protected String destination;
|
||||
|
||||
|
||||
public AbstractReport(String version,
|
||||
String code,
|
||||
String name,
|
||||
LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String destination) {
|
||||
this.version = version;
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
this.startDate = startDate;
|
||||
this.endDate = endDate;
|
||||
this.destination = destination;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package ru.spcex.clearing.reports.reports;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public abstract class ReportWithClearingStatus extends AbstractReport {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("clearingStatus")
|
||||
protected String clearingStatus;
|
||||
|
||||
public ReportWithClearingStatus(String version,
|
||||
String code,
|
||||
String name,
|
||||
LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String destination,
|
||||
String clearingStatus) {
|
||||
super(version, code, name, startDate, endDate, destination);
|
||||
this.clearingStatus = clearingStatus;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package ru.spcex.clearing.reports.reports;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
|
||||
public abstract class WithCompanyClearingCode {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("company_clearingCode")
|
||||
protected String companyClearingCode;
|
||||
|
||||
public WithCompanyClearingCode(String companyClearingCode) {
|
||||
this.companyClearingCode = companyClearingCode;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,33 +1,41 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_1;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_1;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.ReportWithClearingStatus;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("report")
|
||||
public class ReportBR_0420315_P1 extends AbstractReport {
|
||||
@XStreamAlias("clearedLiabilities")
|
||||
public class ReportBR_0420315_P1 extends ReportWithClearingStatus {
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("clearingMemberCategory")
|
||||
private String clearingMemberCategory;
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private final List<Info_0420315_P1> rows = new ArrayList<>();
|
||||
|
||||
public ReportBR_0420315_P1(LocalDate startDate,
|
||||
LocalDate endDate) {
|
||||
LocalDate endDate,
|
||||
String clearingMemberCategory,
|
||||
String clearingStatus) {
|
||||
super("0.0.1",
|
||||
"0420315",
|
||||
"Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период",
|
||||
"Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период, часть 1",
|
||||
startDate,
|
||||
endDate);
|
||||
endDate,
|
||||
"BR",
|
||||
clearingStatus);
|
||||
this.clearingMemberCategory = clearingMemberCategory;
|
||||
}
|
||||
|
||||
public List<Info_0420315_P1> getRows() {
|
||||
return rows;
|
||||
}
|
||||
|
||||
|
||||
@XStreamAlias("row")
|
||||
public static class Info_0420315_P1 {
|
||||
@XStreamAlias("company_id")
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_1;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_1;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("clearedLiabilitiesTotal")
|
||||
public class ReportBR_0420315_P2 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("total")
|
||||
|
|
@ -15,9 +15,10 @@ public class ReportBR_0420315_P2 extends AbstractReport {
|
|||
public ReportBR_0420315_P2(LocalDate startDate, LocalDate endDate, String contractQty, String liabilitiesAmount) {
|
||||
super("0.0.1",
|
||||
"0420315",
|
||||
"Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период",
|
||||
"Сведения об исполненных обязательствах, допущенных к клирингу, за отчетный период, часть 2",
|
||||
startDate,
|
||||
endDate);
|
||||
endDate,
|
||||
"BR");
|
||||
total = new Info_0420315_P2(contractQty, liabilitiesAmount);
|
||||
}
|
||||
|
||||
|
|
@ -1,35 +1,35 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_2;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_2;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.WithCompanyClearingCode;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("clearingServiceStatus")
|
||||
public class ReportBR_0420317 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private final List<Info_0420317> rows = new ArrayList<>();
|
||||
|
||||
public ReportBR_0420317(LocalDate startDate, LocalDate endDate) {
|
||||
public ReportBR_0420317(LocalDate startDate,
|
||||
LocalDate endDate) {
|
||||
super("0.0.1",
|
||||
"0420317",
|
||||
"Сведения о предоставлении, прекращении, приостановке," +
|
||||
" возобновлении допуска к клиринговому обслуживанию",
|
||||
startDate,
|
||||
endDate);
|
||||
endDate, "BR");
|
||||
}
|
||||
|
||||
public List<Info_0420317> getRows() {
|
||||
return rows;
|
||||
}
|
||||
|
||||
|
||||
@XStreamAlias("row")
|
||||
public static class Info_0420317 {
|
||||
public static class Info_0420317 extends WithCompanyClearingCode {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("relation_supplierId")
|
||||
private String relationSupplierId;
|
||||
|
|
@ -62,7 +62,8 @@ public class ReportBR_0420317 extends AbstractReport {
|
|||
@XStreamAlias("relation_comment")
|
||||
private String relationComment;
|
||||
|
||||
public Info_0420317(String relationSupplierId,
|
||||
public Info_0420317(String companyClearingCode,
|
||||
String relationSupplierId,
|
||||
String relationServiceId,
|
||||
String relationServiceStatus,
|
||||
String relationUpdatedAt,
|
||||
|
|
@ -70,6 +71,7 @@ public class ReportBR_0420317 extends AbstractReport {
|
|||
String companySymbolCode,
|
||||
String companyInfoCountryCode,
|
||||
String relationComment) {
|
||||
super(companyClearingCode);
|
||||
this.relationSupplierId = relationSupplierId;
|
||||
this.relationServiceId = relationServiceId;
|
||||
this.relationServiceStatus = relationServiceStatus;
|
||||
|
|
@ -1,25 +1,27 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_3;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_3;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.ReportWithClearingStatus;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("report")
|
||||
public class ReportBR_0420318 extends AbstractReport {
|
||||
@XStreamAlias("unfundedLiabilities")
|
||||
public class ReportBR_0420318 extends ReportWithClearingStatus {
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private final List<Info_0420318> rows = new ArrayList<>();
|
||||
|
||||
public ReportBR_0420318(LocalDate startDate, LocalDate endDate) {
|
||||
super("0.0.3",
|
||||
public ReportBR_0420318(LocalDate startDate, LocalDate endDate, String clearingStatus) {
|
||||
super("0.0.1",
|
||||
"0420318",
|
||||
"Сведения о неисполненных обязательствах",
|
||||
startDate,
|
||||
endDate);
|
||||
endDate,
|
||||
"BR",
|
||||
clearingStatus);
|
||||
}
|
||||
|
||||
public List<Info_0420318> getRows() {
|
||||
|
|
@ -1,25 +1,28 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_4;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_4;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.ReportWithClearingStatus;
|
||||
import ru.spcex.clearing.reports.reports.WithCompanyClearingCode;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("report")
|
||||
public class ReportBR_0420314_P1 extends AbstractReport {
|
||||
@XStreamAlias("accountTransactionLiabilities")
|
||||
public class ReportBR_0420314_P1 extends ReportWithClearingStatus {
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private final List<Info_0420314_P1> rows = new ArrayList<>();
|
||||
|
||||
public ReportBR_0420314_P1(LocalDate startDate, LocalDate endDate) {
|
||||
public ReportBR_0420314_P1(LocalDate startDate, LocalDate endDate, String clearingStatus) {
|
||||
super("0.0.1",
|
||||
"0420314",
|
||||
"Сведения об УК и операциях, проведенных по торговым счетам",
|
||||
"Сведения об УК и операциях, проведенных по торговым счетам, часть 1",
|
||||
startDate,
|
||||
endDate);
|
||||
endDate,
|
||||
"BR",
|
||||
clearingStatus);
|
||||
}
|
||||
|
||||
public List<Info_0420314_P1> getRows() {
|
||||
|
|
@ -28,7 +31,7 @@ public class ReportBR_0420314_P1 extends AbstractReport {
|
|||
|
||||
|
||||
@XStreamAlias("partOne")
|
||||
public static class Info_0420314_P1 {
|
||||
public static class Info_0420314_P1 extends WithCompanyClearingCode {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("paymentInstruction_senderId")
|
||||
private String paymentInstructionSenderId;
|
||||
|
|
@ -61,7 +64,8 @@ public class ReportBR_0420314_P1 extends AbstractReport {
|
|||
@XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity")
|
||||
private String liabilitiesClaimsAssetsLiabilitiesQuantity;
|
||||
|
||||
public Info_0420314_P1(String paymentInstructionSenderId,
|
||||
public Info_0420314_P1(String companyClearingCode,
|
||||
String paymentInstructionSenderId,
|
||||
String profileDocumentId,
|
||||
String companyFullName,
|
||||
String companySymbolCode,
|
||||
|
|
@ -69,6 +73,7 @@ public class ReportBR_0420314_P1 extends AbstractReport {
|
|||
String clearingMemberCategoryClearingMemberCategory,
|
||||
String profileDocumentDocumentTypeAndValidFromDate,
|
||||
String liabilitiesClaimsAssetsLiabilitiesQuantity) {
|
||||
super(companyClearingCode);
|
||||
this.paymentInstructionSenderId = paymentInstructionSenderId;
|
||||
this.profileDocumentId = profileDocumentId;
|
||||
this.companyFullName = companyFullName;
|
||||
|
|
@ -1,25 +1,31 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_4;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_4;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.WithCompanyClearingCode;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("accountTransactionTurnover")
|
||||
public class ReportBR_0420314_P2 extends AbstractReport {
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("transactionStatus")
|
||||
protected String transactionStatus;
|
||||
|
||||
@XStreamAlias("rows")
|
||||
private final List<Info_0420314_P2> rows = new ArrayList<>();
|
||||
|
||||
public ReportBR_0420314_P2(LocalDate startDate, LocalDate endDate) {
|
||||
public ReportBR_0420314_P2(LocalDate startDate, LocalDate endDate, String transactionStatus) {
|
||||
super("0.0.1",
|
||||
"0420314",
|
||||
"Сведения об УК и операциях, проведенных по торговым счетам",
|
||||
"Сведения об УК и операциях, проведенных по торговым счетам, часть 2",
|
||||
startDate,
|
||||
endDate);
|
||||
endDate, "BR");
|
||||
this.transactionStatus = transactionStatus;
|
||||
}
|
||||
|
||||
public List<Info_0420314_P2> getRows() {
|
||||
|
|
@ -28,7 +34,7 @@ public class ReportBR_0420314_P2 extends AbstractReport {
|
|||
|
||||
|
||||
@XStreamAlias("partTwo")
|
||||
public static class Info_0420314_P2 {
|
||||
public static class Info_0420314_P2 extends WithCompanyClearingCode {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("paymentInstruction_senderId")
|
||||
private String paymentInstructionSenderId;
|
||||
|
|
@ -53,12 +59,14 @@ public class ReportBR_0420314_P2 extends AbstractReport {
|
|||
@XStreamAlias("accountBalance_closeBalanceAmount")
|
||||
private String accountBalanceCloseBalanceAmount;
|
||||
|
||||
public Info_0420314_P2(String paymentInstructionSenderId,
|
||||
public Info_0420314_P2(String companyClearingCode,
|
||||
String paymentInstructionSenderId,
|
||||
String profileDocumentId,
|
||||
String accountBalanceOpenBalanceAmount,
|
||||
String paymentInstructionCreditLegAmount,
|
||||
String paymentInstructionDebitLegAmount,
|
||||
String accountBalanceCloseBalanceAmount) {
|
||||
super(companyClearingCode);
|
||||
this.paymentInstructionSenderId = paymentInstructionSenderId;
|
||||
this.profileDocumentId = profileDocumentId;
|
||||
this.accountBalanceOpenBalanceAmount = accountBalanceOpenBalanceAmount;
|
||||
|
|
@ -1,31 +1,34 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.WithCompanyClearingCode;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("clearingCoverage1")
|
||||
public class ReportBR_0420312_P1 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partOne")
|
||||
private final Info_0420312_P1 partOne;
|
||||
@XStreamAlias("part_1")
|
||||
private final Info_0420312_P1 part_1;
|
||||
|
||||
public ReportBR_0420312_P1(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String companyClearingCode,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
String liabilitiesClaimsAssetsFullName,
|
||||
String companySymbolCode,
|
||||
String companySymbolValue,
|
||||
String companyInfoCountryCode,
|
||||
String clearingMemberCategoryClearingMemberCategory) {
|
||||
super("0.0.5",
|
||||
super("0.0.1",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 1",
|
||||
startDate,
|
||||
endDate);
|
||||
partOne = new Info_0420312_P1(liabilitiesClaimsAssetsCompanyId,
|
||||
endDate, "BR");
|
||||
part_1 = new Info_0420312_P1(companyClearingCode,
|
||||
liabilitiesClaimsAssetsCompanyId,
|
||||
liabilitiesClaimsAssetsFullName,
|
||||
companySymbolCode,
|
||||
companySymbolValue,
|
||||
|
|
@ -33,7 +36,7 @@ public class ReportBR_0420312_P1 extends AbstractReport {
|
|||
clearingMemberCategoryClearingMemberCategory);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P1 {
|
||||
public static class Info_0420312_P1 extends WithCompanyClearingCode {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilitiesClaimsAssets_companyId")
|
||||
private String liabilitiesClaimsAssetsCompanyId;
|
||||
|
|
@ -59,12 +62,14 @@ public class ReportBR_0420312_P1 extends AbstractReport {
|
|||
private String clearingMemberCategoryClearingMemberCategory;
|
||||
|
||||
|
||||
public Info_0420312_P1(String liabilitiesClaimsAssetsCompanyId,
|
||||
public Info_0420312_P1(String companyClearingCode,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
String liabilitiesClaimsAssetsFullName,
|
||||
String companySymbolCode,
|
||||
String companySymbolValue,
|
||||
String companyInfoCountryCode,
|
||||
String clearingMemberCategoryClearingMemberCategory) {
|
||||
super(companyClearingCode);
|
||||
this.liabilitiesClaimsAssetsCompanyId = liabilitiesClaimsAssetsCompanyId;
|
||||
this.liabilitiesClaimsAssetsFullName = liabilitiesClaimsAssetsFullName;
|
||||
this.companySymbolCode = companySymbolCode;
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
public class ReportBR_0420312_P10 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("part_10")
|
||||
private final Info_0420312_P10 part_10;
|
||||
|
||||
public ReportBR_0420312_P10(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String liabilitiesAmount) {
|
||||
super("0.0.5",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении, часть 10",
|
||||
startDate,
|
||||
endDate, "BR");
|
||||
part_10 = new Info_0420312_P10(liabilitiesAmount);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P10 {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilities_amount")
|
||||
private String liabilitiesAmount;
|
||||
|
||||
public Info_0420312_P10(String liabilitiesAmount) {
|
||||
this.liabilitiesAmount = liabilitiesAmount;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
public class ReportBR_0420312_P11 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partEleven")
|
||||
private final Info_0420312_P11 partEleven;
|
||||
@XStreamAlias("part_11")
|
||||
private final Info_0420312_P11 part_11;
|
||||
|
||||
public ReportBR_0420312_P11(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
|
|
@ -19,8 +19,8 @@ public class ReportBR_0420312_P11 extends AbstractReport {
|
|||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
startDate,
|
||||
endDate);
|
||||
partEleven = new Info_0420312_P11(liabilitiesAmount);
|
||||
endDate, "BR");
|
||||
part_11 = new Info_0420312_P11(liabilitiesAmount);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P11 {
|
||||
|
|
@ -1,27 +1,27 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("clearingCoverage2")
|
||||
public class ReportBR_0420312_P2 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partTwo")
|
||||
private final Info_0420312_P2 partTwo;
|
||||
@XStreamAlias("part_2")
|
||||
private final Info_0420312_P2 part_2;
|
||||
|
||||
public ReportBR_0420312_P2(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
String liabilitiesClaimsAssetsLiabilities) {
|
||||
super("0.0.5",
|
||||
super("0.0.1",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 2",
|
||||
startDate,
|
||||
endDate);
|
||||
partTwo = new Info_0420312_P2(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities);
|
||||
endDate, "BR");
|
||||
part_2 = new Info_0420312_P2(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P2 {
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("clearingCoverage3")
|
||||
public class ReportBR_0420312_P3 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partThree")
|
||||
private final Info_0420312_P3 partThree;
|
||||
@XStreamAlias("part_3")
|
||||
private final Info_0420312_P3 part_3;
|
||||
|
||||
public ReportBR_0420312_P3(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
|
|
@ -18,10 +18,10 @@ public class ReportBR_0420312_P3 extends AbstractReport {
|
|||
String liabilitiesClaimsAssetsLiabilities) {
|
||||
super("0.0.5",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 3",
|
||||
startDate,
|
||||
endDate);
|
||||
partThree = new Info_0420312_P3(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities);
|
||||
endDate, "BR");
|
||||
part_3 = new Info_0420312_P3(liabilitiesClaimsAssetsCompanyId, liabilitiesClaimsAssetsLiabilities);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P3 {
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("clearingCoverage4")
|
||||
public class ReportBR_0420312_P4 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partFour")
|
||||
private final Info_0420312_P4 partFour;
|
||||
@XStreamAlias("part_4")
|
||||
private final Info_0420312_P4 part_4;
|
||||
|
||||
public ReportBR_0420312_P4(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String liabilitiesAmount) {
|
||||
super("0.0.5",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 4",
|
||||
startDate,
|
||||
endDate);
|
||||
partFour = new Info_0420312_P4(liabilitiesAmount);
|
||||
endDate, "BR");
|
||||
part_4 = new Info_0420312_P4(liabilitiesAmount);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P4 {
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("clearingCoverage5")
|
||||
public class ReportBR_0420312_P5 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partFive")
|
||||
private final Info_0420312_P5 partFive;
|
||||
@XStreamAlias("part_5")
|
||||
private final Info_0420312_P5 part_5;
|
||||
|
||||
public ReportBR_0420312_P5(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String liabilitiesAmount) {
|
||||
super("0.0.5",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 5",
|
||||
startDate,
|
||||
endDate);
|
||||
partFive = new Info_0420312_P5(liabilitiesAmount);
|
||||
endDate, "BR");
|
||||
part_5 = new Info_0420312_P5(liabilitiesAmount);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P5 {
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
@XStreamAlias("clearingCoverage6")
|
||||
public class ReportBR_0420312_P6 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partSix")
|
||||
private final Info_0420312_P6 partSix;
|
||||
@XStreamAlias("part_6")
|
||||
private final Info_0420312_P6 part_6;
|
||||
|
||||
public ReportBR_0420312_P6(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String liabilitiesAmount) {
|
||||
super("0.0.5",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 6",
|
||||
startDate,
|
||||
endDate);
|
||||
partSix = new Info_0420312_P6(liabilitiesAmount);
|
||||
endDate, "BR");
|
||||
part_6 = new Info_0420312_P6(liabilitiesAmount);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P6 {
|
||||
|
|
@ -1,34 +1,34 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
public class ReportBR_0420312_P8 extends AbstractReport {
|
||||
@XStreamAlias("clearingCoverage7")
|
||||
public class ReportBR_0420312_P7 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partEight")
|
||||
private final Info_0420312_P8 partEight;
|
||||
@XStreamAlias("part_7")
|
||||
private final Info_0420312_P7 part_7;
|
||||
|
||||
public ReportBR_0420312_P8(LocalDate startDate,
|
||||
public ReportBR_0420312_P7(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String liabilitiesAmount) {
|
||||
super("0.0.5",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 7",
|
||||
startDate,
|
||||
endDate);
|
||||
partEight = new Info_0420312_P8(liabilitiesAmount);
|
||||
endDate, "BR");
|
||||
part_7 = new Info_0420312_P7(liabilitiesAmount);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P8 {
|
||||
public static class Info_0420312_P7 {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("liabilities_amount")
|
||||
private String liabilitiesAmount;
|
||||
|
||||
public Info_0420312_P8(String liabilitiesAmount) {
|
||||
public Info_0420312_P7(String liabilitiesAmount) {
|
||||
this.liabilitiesAmount = liabilitiesAmount;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +1,18 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
public class ReportBR_0420312_P9 extends AbstractReport {
|
||||
@XStreamAlias("clearingCoverage8")
|
||||
public class ReportBR_0420312_P8 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partNine")
|
||||
private final Info_0420312_P9 partNine;
|
||||
@XStreamAlias("part_8")
|
||||
private final Info_0420312_P8 part_8;
|
||||
|
||||
public ReportBR_0420312_P9(LocalDate startDate,
|
||||
public ReportBR_0420312_P8(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String currencyId,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
|
|
@ -23,10 +23,10 @@ public class ReportBR_0420312_P9 extends AbstractReport {
|
|||
String clearingMemberCategoryClearingMemberCategory) {
|
||||
super("0.0.5",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 8",
|
||||
startDate,
|
||||
endDate);
|
||||
partNine = new Info_0420312_P9(currencyId,
|
||||
endDate, "BR");
|
||||
part_8 = new Info_0420312_P8(currencyId,
|
||||
liabilitiesClaimsAssetsCompanyId,
|
||||
liabilitiesClaimsAssetsFullName,
|
||||
companySymbolCode,
|
||||
|
|
@ -35,7 +35,7 @@ public class ReportBR_0420312_P9 extends AbstractReport {
|
|||
clearingMemberCategoryClearingMemberCategory);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P9 {
|
||||
public static class Info_0420312_P8 {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("currency_id")
|
||||
private String currencyId;
|
||||
|
|
@ -64,8 +64,7 @@ public class ReportBR_0420312_P9 extends AbstractReport {
|
|||
@XStreamAlias("clearingMemberCategory_clearingMemberCategory")
|
||||
private String clearingMemberCategoryClearingMemberCategory;
|
||||
|
||||
|
||||
public Info_0420312_P9(String currencyId,
|
||||
public Info_0420312_P8(String currencyId,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
String liabilitiesClaimsAssetsFullName,
|
||||
String companySymbolCode,
|
||||
|
|
@ -1,35 +1,36 @@
|
|||
package ru.spcex.clearing.reports_service.reports.bt_17_5;
|
||||
package ru.spcex.clearing.reports.reports.bt_17_5;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import ru.spcex.clearing.reports_service.reports.AbstractReport;
|
||||
import ru.spcex.clearing.reports.reports.AbstractReport;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@XStreamAlias("report")
|
||||
public class ReportBR_0420312_P10 extends AbstractReport {
|
||||
public class ReportBR_0420312_P9 extends AbstractReport {
|
||||
|
||||
@XStreamAlias("partTen")
|
||||
private final Info_0420312_P10 partTen;
|
||||
@XStreamAlias("part_9")
|
||||
private final Info_0420312_P9 part_9;
|
||||
|
||||
public ReportBR_0420312_P10(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String currencyId,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
String liabilitiesClaimsMoneyCurrencyCode,
|
||||
String liabilitiesClaimsAssetsLiabilities) {
|
||||
public ReportBR_0420312_P9(LocalDate startDate,
|
||||
LocalDate endDate,
|
||||
String currencyId,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
String liabilitiesClaimsMoneyCurrencyCode,
|
||||
String liabilitiesClaimsAssetsLiabilities) {
|
||||
super("0.0.5",
|
||||
"0420312",
|
||||
"Сведения о клиринговом обеспечении",
|
||||
"Сведения о клиринговом обеспечении, часть 9",
|
||||
startDate,
|
||||
endDate);
|
||||
partTen = new Info_0420312_P10(currencyId,
|
||||
endDate,
|
||||
"BR");
|
||||
part_9 = new Info_0420312_P9(currencyId,
|
||||
liabilitiesClaimsAssetsCompanyId,
|
||||
liabilitiesClaimsMoneyCurrencyCode,
|
||||
liabilitiesClaimsAssetsLiabilities);
|
||||
}
|
||||
|
||||
public static class Info_0420312_P10 {
|
||||
public static class Info_0420312_P9 {
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("currency_id")
|
||||
private String currencyId;
|
||||
|
|
@ -46,10 +47,10 @@ public class ReportBR_0420312_P10 extends AbstractReport {
|
|||
@XStreamAlias("liabilitiesClaimsAssets_liabilities")
|
||||
private String liabilitiesClaimsAssetsLiabilities;
|
||||
|
||||
public Info_0420312_P10(String currencyId,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
String liabilitiesClaimsMoneyCurrencyCode,
|
||||
String liabilitiesClaimsAssetsLiabilities) {
|
||||
public Info_0420312_P9(String currencyId,
|
||||
String liabilitiesClaimsAssetsCompanyId,
|
||||
String liabilitiesClaimsMoneyCurrencyCode,
|
||||
String liabilitiesClaimsAssetsLiabilities) {
|
||||
this.currencyId = currencyId;
|
||||
this.liabilitiesClaimsAssetsCompanyId = liabilitiesClaimsAssetsCompanyId;
|
||||
this.liabilitiesClaimsMoneyCurrencyCode = liabilitiesClaimsMoneyCurrencyCode;
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
package ru.spcex.clearing.reports_service.services;
|
||||
package ru.spcex.clearing.reports.services;
|
||||
|
||||
import com.thoughtworks.xstream.XStream;
|
||||
import com.thoughtworks.xstream.io.naming.NoNameCoder;
|
||||
import com.thoughtworks.xstream.io.xml.XppDriver;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.spcex.clearing.reports_service.reports.bt_17_1.ReportBR_0420315_P1;
|
||||
import ru.spcex.clearing.reports_service.reports.bt_17_1.ReportBR_0420315_P2;
|
||||
import ru.spcex.clearing.reports_service.reports.bt_17_2.ReportBR_0420317;
|
||||
import ru.spcex.clearing.reports_service.reports.bt_17_3.ReportBR_0420318;
|
||||
import ru.spcex.clearing.reports_service.reports.bt_17_4.ReportBR_0420314_P1;
|
||||
import ru.spcex.clearing.reports.reports.bt_17_1.ReportBR_0420315_P1;
|
||||
import ru.spcex.clearing.reports.reports.bt_17_1.ReportBR_0420315_P2;
|
||||
import ru.spcex.clearing.reports.reports.bt_17_2.ReportBR_0420317;
|
||||
import ru.spcex.clearing.reports.reports.bt_17_3.ReportBR_0420318;
|
||||
import ru.spcex.clearing.reports.reports.bt_17_4.ReportBR_0420314_P1;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
|
|
@ -25,7 +25,10 @@ public class ReportsService {
|
|||
xStream.processAnnotations(ReportBR_0420318.class);
|
||||
xStream.processAnnotations(ReportBR_0420314_P1.class);
|
||||
|
||||
ReportBR_0420315_P1 reportBR_0420315_p1 = new ReportBR_0420315_P1(LocalDate.now(), LocalDate.now());
|
||||
ReportBR_0420315_P1 reportBR_0420315_p1 = new ReportBR_0420315_P1(LocalDate.now(),
|
||||
LocalDate.now(),
|
||||
"clearingMemberCategory",
|
||||
"clearingStatus");
|
||||
ReportBR_0420315_P1.Info_0420315_P1 info_0420315_p1 = new ReportBR_0420315_P1.Info_0420315_P1("companyId",
|
||||
"companyFullName",
|
||||
"listingMarket",
|
||||
|
|
@ -41,7 +44,8 @@ public class ReportsService {
|
|||
log.info("ReportBR_0420315_P2:\n{}\n", xStream.toXML(reportBR_0420315_p2));
|
||||
|
||||
ReportBR_0420317 reportBR_0420317 = new ReportBR_0420317(LocalDate.now(), LocalDate.now());
|
||||
ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317("relationSupplierId",
|
||||
ReportBR_0420317.Info_0420317 info_0420317 = new ReportBR_0420317.Info_0420317("companyClearingCode",
|
||||
"relationSupplierId",
|
||||
"relationServiceId",
|
||||
"relationServiceStatus",
|
||||
"relationUpdatedAt",
|
||||
|
|
@ -52,7 +56,7 @@ public class ReportsService {
|
|||
reportBR_0420317.getRows().add(info_0420317);
|
||||
log.info("ReportBR_0420317:\n{}\n", xStream.toXML(reportBR_0420317));
|
||||
|
||||
ReportBR_0420318 reportBR_0420318 = new ReportBR_0420318(LocalDate.now(), LocalDate.now());
|
||||
ReportBR_0420318 reportBR_0420318 = new ReportBR_0420318(LocalDate.now(), LocalDate.now(), "clearingStatus");
|
||||
ReportBR_0420318.Info_0420318 info_0420318 = new ReportBR_0420318.Info_0420318(
|
||||
"liabilitiesClaimsAssetsFullName",
|
||||
"companySymbolsCode",
|
||||
|
|
@ -70,8 +74,8 @@ public class ReportsService {
|
|||
reportBR_0420318.getRows().add(info_0420318);
|
||||
log.info("ReportBR_0420318:\n{}\n", xStream.toXML(reportBR_0420318));
|
||||
|
||||
ReportBR_0420314_P1 reportBR_0420314P1 = new ReportBR_0420314_P1(LocalDate.now(), LocalDate.now());
|
||||
ReportBR_0420314_P1.Info_0420314_P1 info_0420314P1 = new ReportBR_0420314_P1.Info_0420314_P1(
|
||||
ReportBR_0420314_P1 reportBR_0420314P1 = new ReportBR_0420314_P1(LocalDate.now(), LocalDate.now(), "clearingStatus");
|
||||
ReportBR_0420314_P1.Info_0420314_P1 info_0420314P1 = new ReportBR_0420314_P1.Info_0420314_P1("companyClearingCode",
|
||||
"paymentInstructionSenderId",
|
||||
"profileDocumentId",
|
||||
"companyFullName",
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.reports_service.xml_test;
|
||||
package ru.spcex.clearing.reports.xml_test;
|
||||
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.reports_service.xml_test;
|
||||
package ru.spcex.clearing.reports.xml_test;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.reports_service.xml_test;
|
||||
package ru.spcex.clearing.reports.xml_test;
|
||||
|
||||
import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package ru.spcex.clearing.reports_service.xml_test;
|
||||
package ru.spcex.clearing.reports.xml_test;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
package ru.spcex.clearing.reports_service.reports;
|
||||
|
||||
import com.thoughtworks.xstream.annotations.XStreamAlias;
|
||||
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
|
||||
import com.thoughtworks.xstream.annotations.XStreamConverter;
|
||||
import ru.spcex.clearing.reports_service.xml_test.FormattedLocalDateConverter;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* Общая шапка (атрибуты) для всех отчетов
|
||||
*/
|
||||
public class AbstractReport {
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("version")
|
||||
private String version;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("code")
|
||||
private String code;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("name")
|
||||
private String name;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("startDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
private LocalDate startDate;
|
||||
|
||||
@XStreamAsAttribute
|
||||
@XStreamAlias("endDate")
|
||||
@XStreamConverter(value = FormattedLocalDateConverter.class, strings = {"dd.MM.yyyy"})
|
||||
private LocalDate endDate;
|
||||
|
||||
|
||||
public AbstractReport(String version, String code, String name, LocalDate startDate, LocalDate endDate) {
|
||||
this.version = version;
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
this.startDate = startDate;
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public LocalDate getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
public void setStartDate(LocalDate startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
public LocalDate getEndDate() {
|
||||
return endDate;
|
||||
}
|
||||
|
||||
public void setEndDate(LocalDate endDate) {
|
||||
this.endDate = endDate;
|
||||
}
|
||||
}
|
||||
|
|
@ -50,7 +50,7 @@ public class ClearingCalendarService extends QueueConsumer implements Initializi
|
|||
ClearingCalendar clearingCalendar = new ClearingCalendar();
|
||||
clearingCalendar.setClearingDate(req.getClearingDate());
|
||||
clearingCalendar.setCompanyId(req.getCompanyId());
|
||||
clearingCalendar.setTradingStatus(req.getTradingStatus());
|
||||
clearingCalendar.setDayStatus(req.getDayStatus());
|
||||
clearingCalendarMap.insert(clearingCalendar);
|
||||
log.debug("successfully processed, new id {}", clearingCalendar.getId());
|
||||
}
|
||||
|
|
@ -61,7 +61,7 @@ public class ClearingCalendarService extends QueueConsumer implements Initializi
|
|||
ClearingCalendar clearingCalendar = clearingCalendarMap.getSingleObjectByID(req.getId());
|
||||
clearingCalendar.setClearingDate(req.getClearingDate());
|
||||
clearingCalendar.setCompanyId(req.getCompanyId());
|
||||
clearingCalendar.setTradingStatus(req.getTradingStatus());
|
||||
clearingCalendar.setDayStatus(req.getDayStatus());
|
||||
clearingCalendarMap.update(clearingCalendar);
|
||||
log.debug("successfully processed, new id {}", clearingCalendar.getId());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
mms.setStartDate(req.getStartDate());
|
||||
mms.setEndDate(req.getEndDate());
|
||||
mms.setNominalValue(req.getNominalValue() != null ? BigDecimal.valueOf(req.getNominalValue()) : null);
|
||||
mms.setNominalCurrency(req.getNominalCurrencyId());
|
||||
mms.setNominalCurrency(req.getNominalCurrency());
|
||||
mms.setInstrumentType(req.getInstrumentType());
|
||||
mms.setFullName(req.getFullName());
|
||||
mms.setSecuritySymbol(req.getSecuritySymbol());
|
||||
|
|
@ -114,7 +114,7 @@ public class MoneyMarketSecurityService extends QueueConsumer implements Initial
|
|||
mms.setUpdated(Instant.now());
|
||||
mms.setEndDate(req.getEndDate());
|
||||
mms.setNominalValue(req.getNominalValue() != null ? BigDecimal.valueOf(req.getNominalValue()) : null);
|
||||
mms.setNominalCurrency(req.getNominalCurrencyId());
|
||||
mms.setNominalCurrency(req.getNominalCurrency());
|
||||
mms.setInstrumentType(req.getInstrumentType());
|
||||
mms.setFullName(req.getFullName());
|
||||
moneyMarketSecurityMap.update(mms);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import java.time.LocalDate;
|
|||
|
||||
|
||||
class MoneyMarketSecurityFactory {
|
||||
private String nominalCurrency = "RUB"; // (linked to currencyCode)
|
||||
private Long id = 0L;
|
||||
private Long securityId = 0L;// (linked to security)
|
||||
private String description = "tsetse";
|
||||
|
|
@ -17,12 +18,8 @@ class MoneyMarketSecurityFactory {
|
|||
private LocalDate startDate = LocalDate.ofEpochDay(0);
|
||||
private LocalDate endDate = LocalDate.ofEpochDay(0);
|
||||
private BigDecimal nominalValue = BigDecimal.valueOf(1.0);
|
||||
|
||||
private Long nominalCurrency = 1L; // (linked to currencyCode)
|
||||
private String instrumentType = "sdgaga"; // (linked to instrumentType)
|
||||
private String fullName = "estat";
|
||||
|
||||
private Long nominalCurrencyId = 1L;
|
||||
private String securitySymbol = "sdfafd";
|
||||
|
||||
public MoneyMarketSecurityFactory setLotSize(Double lotSize) {
|
||||
|
|
@ -30,8 +27,7 @@ class MoneyMarketSecurityFactory {
|
|||
return this;
|
||||
}
|
||||
|
||||
public MoneyMarketSecurityFactory setNominalCurrencyId(Long nominalCurrencyId) {
|
||||
this.nominalCurrencyId = nominalCurrencyId;
|
||||
public MoneyMarketSecurityFactory setNominalCurrency(String nominalCurrencyId) {
|
||||
this.nominalCurrency = nominalCurrencyId;
|
||||
return this;
|
||||
}
|
||||
|
|
@ -66,12 +62,6 @@ class MoneyMarketSecurityFactory {
|
|||
return this;
|
||||
}
|
||||
|
||||
public MoneyMarketSecurityFactory setNominalCurrency(Long nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
this.nominalCurrencyId = nominalCurrency;
|
||||
return this;
|
||||
}
|
||||
|
||||
public MoneyMarketSecurityFactory setInstrumentType(String instrumentType) {
|
||||
this.instrumentType = instrumentType;
|
||||
return this;
|
||||
|
|
@ -111,7 +101,7 @@ class MoneyMarketSecurityFactory {
|
|||
moneyMarketSecurityUpdateRequest.setId(id);
|
||||
moneyMarketSecurityUpdateRequest.setEndDate(endDate);
|
||||
moneyMarketSecurityUpdateRequest.setNominalValue(nominalValue.doubleValue());
|
||||
moneyMarketSecurityUpdateRequest.setNominalCurrencyId(nominalCurrencyId);
|
||||
moneyMarketSecurityUpdateRequest.setNominalCurrency(nominalCurrency);
|
||||
moneyMarketSecurityUpdateRequest.setInstrumentType(instrumentType);
|
||||
moneyMarketSecurityUpdateRequest.setFullName(fullName);
|
||||
|
||||
|
|
@ -131,7 +121,7 @@ class MoneyMarketSecurityFactory {
|
|||
keyRequest.setStartDate(startDate);
|
||||
keyRequest.setEndDate(endDate);
|
||||
keyRequest.setNominalValue(nominalValue.doubleValue());
|
||||
keyRequest.setNominalCurrencyId(nominalCurrencyId);
|
||||
keyRequest.setNominalCurrency(nominalCurrency);
|
||||
keyRequest.setInstrumentType(instrumentType);
|
||||
keyRequest.setFullName(fullName);
|
||||
keyRequest.setSecuritySymbol(securitySymbol);
|
||||
|
|
|
|||
|
|
@ -45,11 +45,11 @@ public class MoneyMarketSecurityServiceDisabled {
|
|||
private final int TIMEOUT = 1000;
|
||||
boolean isUsed;
|
||||
private MockConsumer<String, Object> kafkaMockQueue;
|
||||
private MockProducer<String, Object> mockProducer = new MockProducer<>();
|
||||
// @Autowired
|
||||
private final MockProducer<String, Object> mockProducer = new MockProducer<>();
|
||||
// @Autowired
|
||||
// @Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastService;
|
||||
// @Autowired
|
||||
// @Autowired
|
||||
// @Qualifier("hazelcastInstance")
|
||||
private HazelcastInstance hz;
|
||||
|
||||
|
|
@ -96,7 +96,7 @@ public class MoneyMarketSecurityServiceDisabled {
|
|||
* {@link MoneyMarketSecurityNewRequest#startDate} - текущее колличество секунд с 1970-01-01T00:00:00Z.<br>
|
||||
* {@link MoneyMarketSecurityNewRequest#endDate} - текущее колличество секунд с 1970-01-01T00:00:00Z.<br>
|
||||
* {@link MoneyMarketSecurityNewRequest#nominalValue} - 1.0<br>
|
||||
* {@link MoneyMarketSecurityNewRequest#nominalCurrencyId} - 1L<br>
|
||||
* {@link MoneyMarketSecurityNewRequest#nominalCurrency} - 1L<br>
|
||||
* {@link MoneyMarketSecurityNewRequest#instrumentType} - "sdgaga"<br>
|
||||
* {@link MoneyMarketSecurityNewRequest#fullName} - "estat"<br>
|
||||
*/
|
||||
|
|
@ -236,7 +236,7 @@ public class MoneyMarketSecurityServiceDisabled {
|
|||
* Входной запрос {@link MoneyMarketSecurityUpdateRequest}:<br>
|
||||
* {@link MoneyMarketSecurityUpdateRequest#fullName} - sfgsdfg<br>
|
||||
* {@link MoneyMarketSecurityUpdateRequest#instrumentType} - qwerqwe<br>
|
||||
* {@link MoneyMarketSecurityUpdateRequest#nominalCurrencyId} - 2L<br>
|
||||
* {@link MoneyMarketSecurityUpdateRequest#nominalCurrency} - RUB<br>
|
||||
* {@link MoneyMarketSecurityUpdateRequest#nominalValue} - 2.0<br>
|
||||
* {@link MoneyMarketSecurityUpdateRequest#endDate} - текущее колличество секунд с 1970-01-01T00:00:00Z + (24 * 3600)<br>
|
||||
*/
|
||||
|
|
@ -260,7 +260,7 @@ public class MoneyMarketSecurityServiceDisabled {
|
|||
moneyMarketSecurityFactory
|
||||
.setFullName("sfgsdfg")
|
||||
.setInstrumentType("qwerqwe")
|
||||
.setNominalCurrencyId(2L)
|
||||
.setNominalCurrency("RUB")
|
||||
.setNominalValue(BigDecimal.valueOf(2.0))
|
||||
.setEndDate(LocalDate.ofEpochDay(24 * 3600));
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public class KeyRateService extends QueueConsumer implements InitializingBean {
|
|||
|
||||
private void newKeyRate(BaseRequest<KeyRateNewRequest> userRequest) {
|
||||
KeyRateNewRequest req = userRequest.getRequestPayload();
|
||||
log.debug("MoneyMarketSecurityNewRequest received");
|
||||
log.debug("KeyRateNewRequest received");
|
||||
KeyRate keyRate = new KeyRate();
|
||||
keyRate.setEndDate(req.getEndDate());
|
||||
keyRate.setDocument(req.getDocument());
|
||||
|
|
@ -60,7 +60,7 @@ public class KeyRateService extends QueueConsumer implements InitializingBean {
|
|||
|
||||
private void updateKeyRate(BaseRequest<KeyRateUpdateRequest> userRequest) {
|
||||
KeyRateUpdateRequest req = userRequest.getRequestPayload();
|
||||
log.debug("MoneyMarketSecurityUpdateRequest received id = {}", req.getId());
|
||||
log.debug("KeyRateUpdateRequest received id = {}", req.getId());
|
||||
KeyRate keyRate = keyRateMap.getSingleObjectByID(req.getId());
|
||||
keyRate.setEndDate(req.getEndDate());
|
||||
keyRate.setDocument(req.getDocument());
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package ru.spcex.platform.enumeration;
|
|||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
|
||||
public enum TransactionStatus implements IEnumKey {
|
||||
stld("STLD"), notSent("NSNT"), cher("CHER"), sent("SENT");
|
||||
stld("STLD"), notSent("NSNT"), cher("CHER"), sent("SENT"), ok("OK"), fail("FAIL");
|
||||
|
||||
private final String key;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ public class ClearingCalendarNewRequest {
|
|||
@JsonProperty
|
||||
public Long companyId;
|
||||
@JsonProperty
|
||||
public String tradingStatus;
|
||||
public String dayStatus;
|
||||
|
||||
public LocalDate getClearingDate() {
|
||||
return clearingDate;
|
||||
|
|
@ -34,11 +34,11 @@ public class ClearingCalendarNewRequest {
|
|||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public String getTradingStatus() {
|
||||
return tradingStatus;
|
||||
public String getDayStatus() {
|
||||
return dayStatus;
|
||||
}
|
||||
|
||||
public void setTradingStatus(String tradingStatus) {
|
||||
this.tradingStatus = tradingStatus;
|
||||
public void setDayStatus(String dayStatus) {
|
||||
this.dayStatus = dayStatus;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public class ClearingCalendarUpdateRequest {
|
|||
@JsonProperty
|
||||
public Long companyId;
|
||||
@JsonProperty
|
||||
public String tradingStatus;
|
||||
public String dayStatus;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
|
|
@ -45,11 +45,11 @@ public class ClearingCalendarUpdateRequest {
|
|||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public String getTradingStatus() {
|
||||
return tradingStatus;
|
||||
public String getDayStatus() {
|
||||
return dayStatus;
|
||||
}
|
||||
|
||||
public void setTradingStatus(String tradingStatus) {
|
||||
this.tradingStatus = tradingStatus;
|
||||
public void setDayStatus(String dayStatus) {
|
||||
this.dayStatus = dayStatus;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public class MoneyMarketSecurityNewRequest {
|
|||
@JsonProperty
|
||||
public Double nominalValue;
|
||||
@JsonProperty
|
||||
public Long nominalCurrencyId;
|
||||
public String nominalCurrency;
|
||||
@JsonProperty
|
||||
public String instrumentType;
|
||||
@JsonProperty
|
||||
|
|
@ -54,12 +54,12 @@ public class MoneyMarketSecurityNewRequest {
|
|||
this.nominalValue = nominalValue;
|
||||
}
|
||||
|
||||
public Long getNominalCurrencyId() {
|
||||
return nominalCurrencyId;
|
||||
public String getNominalCurrency() {
|
||||
return nominalCurrency;
|
||||
}
|
||||
|
||||
public void setNominalCurrencyId(Long nominalCurrencyId) {
|
||||
this.nominalCurrencyId = nominalCurrencyId;
|
||||
public void setNominalCurrency(String nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
}
|
||||
|
||||
public String getInstrumentType() {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public class MoneyMarketSecurityUpdateRequest {
|
|||
@JsonProperty
|
||||
public Double nominalValue;
|
||||
@JsonProperty
|
||||
public Long nominalCurrencyId;
|
||||
public String nominalCurrency;
|
||||
@JsonProperty
|
||||
public String instrumentType;
|
||||
@JsonProperty
|
||||
|
|
@ -52,12 +52,12 @@ public class MoneyMarketSecurityUpdateRequest {
|
|||
this.nominalValue = nominalValue;
|
||||
}
|
||||
|
||||
public Long getNominalCurrencyId() {
|
||||
return nominalCurrencyId;
|
||||
public String getNominalCurrency() {
|
||||
return nominalCurrency;
|
||||
}
|
||||
|
||||
public void setNominalCurrencyId(Long nominalCurrencyId) {
|
||||
this.nominalCurrencyId = nominalCurrencyId;
|
||||
public void setNominalCurrency(String nominalCurrency) {
|
||||
this.nominalCurrency = nominalCurrency;
|
||||
}
|
||||
|
||||
public String getInstrumentType() {
|
||||
|
|
|
|||
|
|
@ -50,6 +50,12 @@ public class QueueConsumer implements AutoCloseable {
|
|||
this.supportStartOffsetTimeWindow = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* используем этот конструктор, если хотим класть
|
||||
* в кафку "ответ" - информацию о статусе обработки команд
|
||||
* @param kafkaQueue
|
||||
* @param kafkaResponseQueue
|
||||
*/
|
||||
public QueueConsumer(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaResponseQueue) {
|
||||
this(kafkaQueue);
|
||||
this.producer = kafkaResponseQueue;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue