diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java index 3c1ad9ed6..a853bd6c3 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java @@ -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()); diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/WebConfig.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/WebConfig.java index a3a296a94..5a4e2c0d8 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/WebConfig.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/config/WebConfig.java @@ -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 { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/EditCompanyInfoController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/EditCompanyInfoController.java index 6148f1bb9..e2fce230c 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/EditCompanyInfoController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/company/EditCompanyInfoController.java @@ -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 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 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> all = new ArrayList<>(); + Collection 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; + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/ClearingCalendarController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/ClearingCalendarController.java index 8183abf01..1f7100e1a 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/ClearingCalendarController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/ClearingCalendarController.java @@ -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); + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlanerAllTodayController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerAllTodayController.java similarity index 82% rename from clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlanerAllTodayController.java rename to clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerAllTodayController.java index 32919686c..a95c22c73 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlanerAllTodayController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerAllTodayController.java @@ -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; } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerController.java index 68b926df3..20f8badbd 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerController.java @@ -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); + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerTemplateController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerTemplateController.java index 43b0578ea..ad33f6d34 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerTemplateController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/scheduler/PlannerTemplateController.java @@ -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); + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/user/UserController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/user/UserController.java index faa52dc3a..4263f3661 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/user/UserController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/user/UserController.java @@ -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 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); + } + + } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/account/BankAccountNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/account/BankAccountNewAction.java index bd975a1e3..cd1e9d170 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/account/BankAccountNewAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/account/BankAccountNewAction.java @@ -39,9 +39,6 @@ public class BankAccountNewAction implements IAction { @ApiModelProperty(value = "Код причины постановки (КПП)", example = "01") @JsonProperty private String taxRegistrationReasonCode; - @ApiModelProperty(value = "Номер счета", example = "11111222223333344444") - @JsonProperty - private String account; @Override public Collection validate() { @@ -67,9 +64,6 @@ public class BankAccountNewAction implements IAction { 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 { 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 { public void setTaxRegistrationReasonCode(String taxRegistrationReasonCode) { this.taxRegistrationReasonCode = taxRegistrationReasonCode; } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/account/BankAccountUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/account/BankAccountUpdateAction.java index 6461ecb30..8fddae1b0 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/account/BankAccountUpdateAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/account/BankAccountUpdateAction.java @@ -38,9 +38,8 @@ public class BankAccountUpdateAction implements IAction validate() { @@ -59,7 +58,6 @@ public class BankAccountUpdateAction implements IAction { + @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 validate() { + List 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; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/ClearingCalendarUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/ClearingCalendarUpdateAction.java new file mode 100644 index 000000000..7398e4c52 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/ClearingCalendarUpdateAction.java @@ -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, 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 validate() { + List 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; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerNewAction.java new file mode 100644 index 000000000..cac2b85c2 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerNewAction.java @@ -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 { + @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 validate() { + List 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; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateNewAction.java new file mode 100644 index 000000000..244d4b522 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateNewAction.java @@ -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 { + @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 validate() { + List 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; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateUpdateAction.java new file mode 100644 index 000000000..93c044fbe --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerTemplateUpdateAction.java @@ -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, 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 validate() { + List 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; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerUpdateAction.java new file mode 100644 index 000000000..8ab2c9b11 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/schedule/PlannerUpdateAction.java @@ -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, 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 validate() { + List 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; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/MoneyMarketSecurityNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/MoneyMarketSecurityNewAction.java index 829b85d86..69059d4d1 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/MoneyMarketSecurityNewAction.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/securities/MoneyMarketSecurityNewAction.java @@ -32,7 +32,7 @@ public class MoneyMarketSecurityNewAction implements IAction> anyObjectFields) { var payload = this.getPayload(); - for (Map moneyMarketSecurity : anyObjectFields) { - payload.getItems().add(moneyMarketSecurity); + for (Map allObjFields : anyObjectFields) { + payload.getItems().add(allObjFields); } } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetAll.java index 0c57a4546..1c1068680 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetAll.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetAll.java @@ -20,18 +20,6 @@ public class BankAccountBackendGetAll extends BasicSpcexResponse { @ApiModelProperty(value = "Полезная нагрузка") private BankAccountBackendPayload payload = new BankAccountBackendPayload(); - private static class BankAccountBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List 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 items = new ArrayList<>(); + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + } + } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetById.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetById.java index 3877324bd..21c23f35d 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetById.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetById.java @@ -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()); } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetFields.java index 359c68f41..1c90f44de 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetFields.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/account/BankAccountBackendGetFields.java @@ -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; - } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/ClearingCalendarBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/ClearingCalendarBackendGetAll.java index 0ae52878f..19e391a98 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/ClearingCalendarBackendGetAll.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/ClearingCalendarBackendGetAll.java @@ -17,18 +17,6 @@ public class ClearingCalendarBackendGetAll extends BasicSpcexResponse { @ApiModelProperty(value = "Полезная нагрузка") private ClearingCalendarBackendPayload payload = new ClearingCalendarBackendPayload(); - private static class ClearingCalendarBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List 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 items = new ArrayList<>(); + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + } } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetAll.java index 63561c6e4..f2e8ce7c6 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetAll.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/SchedulerAllTodayBackendGetAll.java @@ -17,18 +17,6 @@ public class SchedulerAllTodayBackendGetAll extends BasicSpcexResponse { @ApiModelProperty(value = "Полезная нагрузка") private SchedulerAllTodayBackendPayload payload = new SchedulerAllTodayBackendPayload(); - private static class SchedulerAllTodayBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List 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 items = new ArrayList<>(); + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + } + } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TradingCalendarBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TradingCalendarBackendGetFields.java index 121ee7b59..c864105f2 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TradingCalendarBackendGetFields.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/schedule/TradingCalendarBackendGetFields.java @@ -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() { diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAllOld.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAllOld.java index 0f656b8a2..875305748 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAllOld.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetAllOld.java @@ -18,18 +18,6 @@ public class MoneyMarketSecurityBackendGetAllOld extends BasicSpcexResponse { @ApiModelProperty(value = "Полезная нагрузка") private MoneyMarketSecurityBackendPayload payload = new MoneyMarketSecurityBackendPayload(); - private static class MoneyMarketSecurityBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List 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 items = new ArrayList<>(); + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + } + } \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetFields.java index 5699d9e0c..f32ba9f5b 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetFields.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/securities/MoneyMarketSecurityBackendGetFields.java @@ -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; + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/handlers/AuthAuditSuccessLoginHandler.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/handlers/AuthAuditSuccessLoginHandler.java index a1b0313d2..6d39e9cbb 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/handlers/AuthAuditSuccessLoginHandler.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/security/handlers/AuthAuditSuccessLoginHandler.java @@ -40,7 +40,7 @@ public class AuthAuditSuccessLoginHandler implements AuthenticationSuccessHandle .getPreferredUsername(); Set 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); diff --git a/clearing-parent/backend-api/src/main/resources/application.properties b/clearing-parent/backend-api/src/main/resources/application.properties index c375b65ed..bbbcc6022 100644 --- a/clearing-parent/backend-api/src/main/resources/application.properties +++ b/clearing-parent/backend-api/src/main/resources/application.properties @@ -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 diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java index 4c532ee05..242604d4c 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java @@ -112,7 +112,7 @@ public class Sdf09Executor extends AbstractExecutor { 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()); diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccount.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccount.java index fc29e5d2b..6a1bc2cef 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccount.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/account/BankAccount.java @@ -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; - /** * Банковские реквизиты для перечисления денежных средств *

@@ -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; - } - } \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/AdmittedDealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/AdmittedDealRegister.java index e2bb3eb72..859eef78f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/AdmittedDealRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/AdmittedDealRegister.java @@ -8,9 +8,9 @@ import java.time.Instant; import java.time.LocalTime; /** - * Счета + * Реестр сделок допущенных к клирингу *

- * DB table: ADMITTED_DEAL + * DB table: ADMITTED_DEAL_REGISTER **/ public class AdmittedDealRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MoneyMarketSecurity.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MoneyMarketSecurity.java index 4327af478..61eb9ee25 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MoneyMarketSecurity.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MoneyMarketSecurity.java @@ -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; + } } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/ClearingCalendar.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/ClearingCalendar.java index 6ce41e7f3..0e74c8314 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/ClearingCalendar.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/ClearingCalendar.java @@ -8,14 +8,14 @@ import java.time.LocalDate; /** * Торговые и неторговые дни *

- * 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; } } \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Launcher.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Launcher.java index 9fa2e37e4..987ee2f5b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Launcher.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Launcher.java @@ -6,7 +6,7 @@ import ru.clearing.classes.objects.BusinessObject; /** * Запуск задачи *

- * DB table: TASK_RUNNER + * DB table: LAUNCHER **/ public class Launcher extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Planner.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Planner.java index c29e8ba80..a4125225c 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Planner.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/Planner.java @@ -7,9 +7,9 @@ import java.time.LocalDate; import java.time.LocalTime; /** - * Расписание планировщика + * Расписание *

- * DB table: SCHEDULER + * DB table: PLANNER **/ public class Planner extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerAllToday.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerAllToday.java index 9850ef734..5c75befcc 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerAllToday.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/scheduler/PlannerAllToday.java @@ -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; } } \ No newline at end of file diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java index 1103e95a6..887fda87d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ClearingService.java @@ -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 paymentImdgs; private final ExecutorService executor; - private final ImdgId idGenerator; - private final PaymentInstructionSorter senderGroupSorter; - private final Imdg sdf03Imdg; - private final Imdg 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 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 PaymentBatchInfo> - //PaymentBatchInfo содержит возможную ошибку, при необходимости отсортированные Payment - //тип ClearingMemberCategory - .map(entry -> { - Long senderId = entry.getKey(); - List 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)); } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentUpdateBySdf04.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentUpdateBySdf04.java new file mode 100644 index 000000000..458528d20 --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentUpdateBySdf04.java @@ -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 paymentImdgs; + private final Imdg 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 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); + } + } +} diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf04Receiver.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf04Receiver.java new file mode 100644 index 000000000..08db5dde1 --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf04Receiver.java @@ -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 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(); + } +} diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java new file mode 100644 index 000000000..5ff6e7f24 --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java @@ -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 paymentImdgs; + private final ImdgId idGenerator; + private final PaymentInstructionSorter senderGroupSorter; + private final Imdg sdf03Imdg; + private final Imdg 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 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 PaymentBatchInfo> + //PaymentBatchInfo содержит возможную ошибку, при необходимости отсортированные Payment + //тип ClearingMemberCategory + .map(entry -> { + Long senderId = entry.getKey(); + List 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); + } + } + } +} diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentBatchInfo.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentBatchInfo.java similarity index 98% rename from clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentBatchInfo.java rename to clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentBatchInfo.java index fff82f55c..4f96a3856 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentBatchInfo.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentBatchInfo.java @@ -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; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentInstructionSorter.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java similarity index 97% rename from clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentInstructionSorter.java rename to clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java index f5f59d15e..1d8c701ab 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/PaymentInstructionSorter.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java @@ -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 payments) { + public PaymentBatchInfo sortCompanyPayments(Long generationId, Long senderId, List 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)); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf03Builder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/Sdf03Builder.java similarity index 96% rename from clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf03Builder.java rename to clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/Sdf03Builder.java index fc32df0e2..a16f02452 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf03Builder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/Sdf03Builder.java @@ -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; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf11Builder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/Sdf11Builder.java similarity index 96% rename from clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf11Builder.java rename to clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/Sdf11Builder.java index 2d37e878b..310a77b1d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Sdf11Builder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/Sdf11Builder.java @@ -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; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DayStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DayStatusDictionary.java index 23cfb004e..724217d17 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DayStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/DayStatusDictionary.java @@ -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; diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ParentDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ParentDictionary.java index 19639960b..c7301fcd5 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ParentDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ParentDictionary.java @@ -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; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/BankAccountHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/BankAccountHistoryMapStore.java index 10d12e2b9..6b1ef32c7 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/BankAccountHistoryMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/BankAccountHistoryMapStore.java @@ -28,7 +28,7 @@ public class BankAccountHistoryMapStore extends TemplateEventMapStore @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 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 TimeUtil.toDateFromInstant(object.getUpdated()), TimeUtil.toDateFromLocalDate(object.getClearingDate()), object.getCompanyId(), - object.getTradingStatus() + object.getDayStatus() }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java index daf6c84b3..4942573f9 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CompanyMapStore.java @@ -37,7 +37,8 @@ public class CompanyMapStore extends BusinessObjectMapStore { 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 { 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 { companyInfo.getOrganizationType(), companyInfo.getResidence(), companyInfo.getShortNameEng(), - companyInfo.getFullNameEng() + companyInfo.getFullNameEng(), + companyInfo.getShortName(), + companyInfo.getFullName(), + companyInfo.getTradingCode(), + companyInfo.getClearingCode(), + companyInfo.getRegistrationCode() )); return companyInfoArgs; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BankAccountMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BankAccountMapStore.java index 0b16b0e15..4b28cc7d2 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BankAccountMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BankAccountMapStore.java @@ -29,7 +29,7 @@ public class BankAccountMapStore extends TemplateMapStore { @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 { 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 { object.getSwiftCode(), object.getTaxpayerIdentificationNumber(), object.getTaxRegistrationReasonCode(), - object.getAccount() }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java index 48c86d863..6da29c61a 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java @@ -17,13 +17,13 @@ import java.util.Map; @Component public class MoneyMarketSecurityMapStore extends TemplateMapStore { + 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 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 { @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 { 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 { object.getMarket(), object.getTaskStatus(), object.getSecurityId(), - object.getSource(), - object.getOrigId() + object.getParent(), + object.getParentId() }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UserRoleSessionMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UserRoleSessionMapStore.java index a3c64141d..f1f9cd4cf 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UserRoleSessionMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UserRoleSessionMapStore.java @@ -36,10 +36,11 @@ public class UserRoleSessionMapStore extends TemplateMapStore { @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; } diff --git a/clearing-parent/imdg/src/main/resources/application.properties b/clearing-parent/imdg/src/main/resources/application.properties index 25d107bdb..da3db7cf0 100644 --- a/clearing-parent/imdg/src/main/resources/application.properties +++ b/clearing-parent/imdg/src/main/resources/application.properties @@ -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 \ No newline at end of file +imdg.database.url=jdbc:postgresql://10.200.200.133:5432/postgres?currentSchema=clearing_prod \ No newline at end of file diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java index 93ecbde03..d67cd2448 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/AllMapStoreTest.java @@ -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(); diff --git a/clearing-parent/imdg/src/test/resources/ddl.sql b/clearing-parent/imdg/src/test/resources/ddl.sql index cde8af249..a4031fc19 100644 --- a/clearing-parent/imdg/src/test/resources/ddl.sql +++ b/clearing-parent/imdg/src/test/resources/ddl.sql @@ -1,8 +1,14 @@ --- DB version: 0.0.0.6 +-- DB version: 2.4.0.0 /* Dictionaries */ -- chargeDirection - Направление начисления комиссии -CREATE TABLE IF NOT EXISTS CHARGE_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS CHARGE_DIRECTION_DICTIONARY; +CREATE TABLE CHARGE_DIRECTION_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE CHARGE_DIRECTION_DICTIONARY IS 'Направление начисления комиссии'; COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.ID IS 'Идентификатор'; @@ -12,7 +18,13 @@ COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.NAME IS 'Направление комиссии'; -- chargeType - Справочник типов комиссий -CREATE TABLE IF NOT EXISTS CHARGE_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS CHARGE_TYPE_DICTIONARY; +CREATE TABLE CHARGE_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE CHARGE_TYPE_DICTIONARY IS 'Справочник типов комиссий'; COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -22,7 +34,13 @@ COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.NAME IS 'Тип комиссии'; -- courierType - Способ доставки документа -CREATE TABLE IF NOT EXISTS COURIER_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS COURIER_TYPE_DICTIONARY; +CREATE TABLE COURIER_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE COURIER_TYPE_DICTIONARY IS 'Способ доставки документа'; COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -32,7 +50,13 @@ COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.NAME IS 'Способ доставки'; -- interestStatus - Справочник статусов возвращения процентов -CREATE TABLE IF NOT EXISTS INTEREST_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS INTEREST_STATUS_DICTIONARY; +CREATE TABLE INTEREST_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE INTEREST_STATUS_DICTIONARY IS 'Справочник статусов возвращения процентов'; COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; @@ -42,7 +66,13 @@ COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN INTEREST_STATUS_DICTIONARY.NAME IS 'Наименование'; -- termType - Справочник видов инструментов денежного рынка -CREATE TABLE IF NOT EXISTS TERM_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS TERM_TYPE_DICTIONARY; +CREATE TABLE TERM_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE TERM_TYPE_DICTIONARY IS 'Справочник видов инструментов денежного рынка'; COMMENT ON COLUMN TERM_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -52,7 +82,13 @@ COMMENT ON COLUMN TERM_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN TERM_TYPE_DICTIONARY.NAME IS 'Наименование'; -- task - Справочник задач -CREATE TABLE IF NOT EXISTS TASK_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(150)); +DROP TABLE IF EXISTS TASK_DICTIONARY; +CREATE TABLE TASK_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(150) +); COMMENT ON TABLE TASK_DICTIONARY IS 'Справочник задач'; COMMENT ON COLUMN TASK_DICTIONARY.ID IS 'Идентификатор записи'; @@ -62,7 +98,13 @@ COMMENT ON COLUMN TASK_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN TASK_DICTIONARY.NAME IS 'Задача'; -- taskStatus - Справочник статусов задач -CREATE TABLE IF NOT EXISTS TASK_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS TASK_STATUS_DICTIONARY; +CREATE TABLE TASK_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE TASK_STATUS_DICTIONARY IS 'Справочник статусов задач'; COMMENT ON COLUMN TASK_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; @@ -71,18 +113,30 @@ COMMENT ON COLUMN TASK_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN TASK_STATUS_DICTIONARY.NAME IS 'Статус'; --- tradingStatus - Справочник торговых статусов -CREATE TABLE IF NOT EXISTS TRADING_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); -COMMENT ON TABLE TRADING_STATUS_DICTIONARY IS 'Справочник торговых статусов'; +-- dayStatus - Справочник статусов дней +DROP TABLE IF EXISTS DAY_STATUS_DICTIONARY; +CREATE TABLE DAY_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); +COMMENT ON TABLE DAY_STATUS_DICTIONARY IS 'Справочник статусов дней'; -COMMENT ON COLUMN TRADING_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN DAY_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN TRADING_STATUS_DICTIONARY.CODE IS 'Код'; +COMMENT ON COLUMN DAY_STATUS_DICTIONARY.CODE IS 'Код'; -COMMENT ON COLUMN TRADING_STATUS_DICTIONARY.NAME IS 'Торговый статус'; +COMMENT ON COLUMN DAY_STATUS_DICTIONARY.NAME IS 'Статус дня'; -- transactionStatus - Справочник статусов транзакций -CREATE TABLE IF NOT EXISTS TRANSACTION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS TRANSACTION_STATUS_DICTIONARY; +CREATE TABLE TRANSACTION_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE TRANSACTION_STATUS_DICTIONARY IS 'Справочник статусов транзакций'; COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; @@ -91,18 +145,30 @@ COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.NAME IS 'Статус транзакции'; --- source - Справочник источников -CREATE TABLE IF NOT EXISTS SOURCE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); -COMMENT ON TABLE SOURCE_DICTIONARY IS 'Справочник источников'; +-- parent - Справочник источников +DROP TABLE IF EXISTS PARENT_DICTIONARY; +CREATE TABLE PARENT_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); +COMMENT ON TABLE PARENT_DICTIONARY IS 'Справочник источников'; -COMMENT ON COLUMN SOURCE_DICTIONARY.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN PARENT_DICTIONARY.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN SOURCE_DICTIONARY.CODE IS 'Код'; +COMMENT ON COLUMN PARENT_DICTIONARY.CODE IS 'Код'; -COMMENT ON COLUMN SOURCE_DICTIONARY.NAME IS 'Наименование'; +COMMENT ON COLUMN PARENT_DICTIONARY.NAME IS 'Наименование'; -- clearingStatus - Справочник результатов клиринга -CREATE TABLE IF NOT EXISTS CLEARING_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS CLEARING_STATUS_DICTIONARY; +CREATE TABLE CLEARING_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE CLEARING_STATUS_DICTIONARY IS 'Справочник результатов клиринга'; COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; @@ -112,7 +178,13 @@ COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.NAME IS 'Наименование'; -- workflowStatus - Справочник статусов бизнес-процессов -CREATE TABLE IF NOT EXISTS WORKFLOW_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS WORKFLOW_STATUS_DICTIONARY; +CREATE TABLE WORKFLOW_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE WORKFLOW_STATUS_DICTIONARY IS 'Справочник статусов бизнес-процессов'; COMMENT ON COLUMN WORKFLOW_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; @@ -122,7 +194,13 @@ COMMENT ON COLUMN WORKFLOW_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN WORKFLOW_STATUS_DICTIONARY.NAME IS 'Наименование'; -- accountStatus - Справочник статусов счетов -CREATE TABLE IF NOT EXISTS ACCOUNT_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS ACCOUNT_STATUS_DICTIONARY; +CREATE TABLE ACCOUNT_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE ACCOUNT_STATUS_DICTIONARY IS 'Справочник статусов счетов'; COMMENT ON COLUMN ACCOUNT_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; @@ -132,7 +210,13 @@ COMMENT ON COLUMN ACCOUNT_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN ACCOUNT_STATUS_DICTIONARY.NAME IS 'Наименование'; -- allowed - Справочник признаков допустимости использования объектов -CREATE TABLE IF NOT EXISTS ALLOWED_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS ALLOWED_DICTIONARY; +CREATE TABLE ALLOWED_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE ALLOWED_DICTIONARY IS 'Справочник признаков допустимости использования объектов'; COMMENT ON COLUMN ALLOWED_DICTIONARY.ID IS 'Идентификатор'; @@ -142,7 +226,13 @@ COMMENT ON COLUMN ALLOWED_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN ALLOWED_DICTIONARY.NAME IS 'Признак допустимости'; -- moneyFlowSide - Направление заявки -CREATE TABLE IF NOT EXISTS MONEY_FLOW_SIDE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS MONEY_FLOW_SIDE_DICTIONARY; +CREATE TABLE MONEY_FLOW_SIDE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE MONEY_FLOW_SIDE_DICTIONARY IS 'Направление заявки'; COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.ID IS 'Идентификатор'; @@ -152,7 +242,13 @@ COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN MONEY_FLOW_SIDE_DICTIONARY.NAME IS 'Значение'; -- inOutDirection - Справочник значений направления денежного потока -CREATE TABLE IF NOT EXISTS IN_OUT_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS IN_OUT_DIRECTION_DICTIONARY; +CREATE TABLE IN_OUT_DIRECTION_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE IN_OUT_DIRECTION_DICTIONARY IS 'Справочник значений направления денежного потока'; COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.ID IS 'Идентификатор'; @@ -162,7 +258,13 @@ COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.NAME IS 'Значение'; -- statementType - Справочник типов поступлений/списаний от ПРЦ -CREATE TABLE IF NOT EXISTS STATEMENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS STATEMENT_TYPE_DICTIONARY; +CREATE TABLE STATEMENT_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE STATEMENT_TYPE_DICTIONARY IS 'Справочник типов поступлений/списаний от ПРЦ'; COMMENT ON COLUMN STATEMENT_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -172,7 +274,13 @@ COMMENT ON COLUMN STATEMENT_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN STATEMENT_TYPE_DICTIONARY.NAME IS 'Значение'; -- operationType - Справочник типов операций -CREATE TABLE IF NOT EXISTS OPERATION_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS OPERATION_TYPE_DICTIONARY; +CREATE TABLE OPERATION_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE OPERATION_TYPE_DICTIONARY IS 'Справочник типов операций'; COMMENT ON COLUMN OPERATION_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -182,7 +290,13 @@ COMMENT ON COLUMN OPERATION_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN OPERATION_TYPE_DICTIONARY.NAME IS 'Значение'; -- operationStatus - Справочник статусов операций -CREATE TABLE IF NOT EXISTS OPERATION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS OPERATION_STATUS_DICTIONARY; +CREATE TABLE OPERATION_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE OPERATION_STATUS_DICTIONARY IS 'Справочник статусов операций'; COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.ID IS 'Идентификатор'; @@ -192,7 +306,13 @@ COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.NAME IS 'Значение'; -- balanceAccountType - Справочник типов лимитов -CREATE TABLE IF NOT EXISTS BALANCE_ACCOUNT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS BALANCE_ACCOUNT_TYPE_DICTIONARY; +CREATE TABLE BALANCE_ACCOUNT_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE BALANCE_ACCOUNT_TYPE_DICTIONARY IS 'Справочник типов лимитов'; COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -202,7 +322,13 @@ COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.NAME IS 'Тип лимитов'; -- countryCode - Справочник кодов стран -CREATE TABLE IF NOT EXISTS COUNTRY_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS COUNTRY_CODE_DICTIONARY; +CREATE TABLE COUNTRY_CODE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE COUNTRY_CODE_DICTIONARY IS 'Справочник кодов стран'; COMMENT ON COLUMN COUNTRY_CODE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -212,7 +338,13 @@ COMMENT ON COLUMN COUNTRY_CODE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN COUNTRY_CODE_DICTIONARY.NAME IS 'Наименование'; -- clearingCategory - Справочник категорий участника клиринга -CREATE TABLE IF NOT EXISTS CLEARING_CATEGORY_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS CLEARING_CATEGORY_DICTIONARY; +CREATE TABLE CLEARING_CATEGORY_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE CLEARING_CATEGORY_DICTIONARY IS 'Справочник категорий участника клиринга'; COMMENT ON COLUMN CLEARING_CATEGORY_DICTIONARY.ID IS 'Идентификатор записи'; @@ -222,7 +354,13 @@ COMMENT ON COLUMN CLEARING_CATEGORY_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CLEARING_CATEGORY_DICTIONARY.NAME IS 'Наименование'; -- contactType - Справочник типов контактов Компании -CREATE TABLE IF NOT EXISTS CONTACT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS CONTACT_TYPE_DICTIONARY; +CREATE TABLE CONTACT_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE CONTACT_TYPE_DICTIONARY IS 'Справочник типов контактов Компании'; COMMENT ON COLUMN CONTACT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -232,7 +370,13 @@ COMMENT ON COLUMN CONTACT_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CONTACT_TYPE_DICTIONARY.NAME IS 'Наименование'; -- corporationSoleType - Единоличный исполнительный орган -CREATE TABLE IF NOT EXISTS CORPORATION_SOLE_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS CORPORATION_SOLE_TYPE_DICTIONARY; +CREATE TABLE CORPORATION_SOLE_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE CORPORATION_SOLE_TYPE_DICTIONARY IS 'Единоличный исполнительный орган'; COMMENT ON COLUMN CORPORATION_SOLE_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -242,7 +386,13 @@ COMMENT ON COLUMN CORPORATION_SOLE_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CORPORATION_SOLE_TYPE_DICTIONARY.NAME IS 'Наименование'; -- connectionState - Справочник состояний соединений -CREATE TABLE IF NOT EXISTS CONNECTION_STATE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS CONNECTION_STATE_DICTIONARY; +CREATE TABLE CONNECTION_STATE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE CONNECTION_STATE_DICTIONARY IS 'Справочник состояний соединений'; COMMENT ON COLUMN CONNECTION_STATE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -252,7 +402,13 @@ COMMENT ON COLUMN CONNECTION_STATE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CONNECTION_STATE_DICTIONARY.NAME IS 'Наименование'; -- documentType - Справочник типов документов -CREATE TABLE IF NOT EXISTS DOCUMENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS DOCUMENT_TYPE_DICTIONARY; +CREATE TABLE DOCUMENT_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE DOCUMENT_TYPE_DICTIONARY IS 'Справочник типов документов'; COMMENT ON COLUMN DOCUMENT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -262,7 +418,13 @@ COMMENT ON COLUMN DOCUMENT_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN DOCUMENT_TYPE_DICTIONARY.NAME IS 'Наименование'; -- legalKind - Справочник видов субъекта -CREATE TABLE IF NOT EXISTS LEGAL_KIND_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS LEGAL_KIND_DICTIONARY; +CREATE TABLE LEGAL_KIND_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE LEGAL_KIND_DICTIONARY IS 'Справочник видов субъекта'; COMMENT ON COLUMN LEGAL_KIND_DICTIONARY.ID IS 'Идентификатор записи'; @@ -272,7 +434,13 @@ COMMENT ON COLUMN LEGAL_KIND_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN LEGAL_KIND_DICTIONARY.NAME IS 'Наименование'; -- organizationType - Справочник типов организаций -CREATE TABLE IF NOT EXISTS ORGANIZATION_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS ORGANIZATION_TYPE_DICTIONARY; +CREATE TABLE ORGANIZATION_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE ORGANIZATION_TYPE_DICTIONARY IS 'Справочник типов организаций'; COMMENT ON COLUMN ORGANIZATION_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -282,7 +450,14 @@ COMMENT ON COLUMN ORGANIZATION_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN ORGANIZATION_TYPE_DICTIONARY.NAME IS 'Наименование'; -- companySymbol - Справочник имен Компании -CREATE TABLE IF NOT EXISTS COMPANY_SYMBOL_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255), SHORTNAME varchar(255)); +DROP TABLE IF EXISTS COMPANY_SYMBOL_DICTIONARY; +CREATE TABLE COMPANY_SYMBOL_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255), + SHORTNAME varchar(255) +); COMMENT ON TABLE COMPANY_SYMBOL_DICTIONARY IS 'Справочник имен Компании'; COMMENT ON COLUMN COMPANY_SYMBOL_DICTIONARY.ID IS 'Идентификатор записи'; @@ -294,7 +469,13 @@ COMMENT ON COLUMN COMPANY_SYMBOL_DICTIONARY.NAME IS 'Наименование'; COMMENT ON COLUMN COMPANY_SYMBOL_DICTIONARY.SHORTNAME IS 'Краткое наименование'; -- companyRole - Справочник ролей Компаний -CREATE TABLE IF NOT EXISTS COMPANY_ROLE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS COMPANY_ROLE_DICTIONARY; +CREATE TABLE COMPANY_ROLE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE COMPANY_ROLE_DICTIONARY IS 'Справочник ролей Компаний'; COMMENT ON COLUMN COMPANY_ROLE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -304,7 +485,13 @@ COMMENT ON COLUMN COMPANY_ROLE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN COMPANY_ROLE_DICTIONARY.NAME IS 'Роль Участника'; -- userRole - Роли пользователей -CREATE TABLE IF NOT EXISTS USER_ROLE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS USER_ROLE_DICTIONARY; +CREATE TABLE USER_ROLE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE USER_ROLE_DICTIONARY IS 'Роли пользователей'; COMMENT ON COLUMN USER_ROLE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -314,7 +501,13 @@ COMMENT ON COLUMN USER_ROLE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN USER_ROLE_DICTIONARY.NAME IS 'Роль пользователя'; -- accountType - Справочник типов счетов -CREATE TABLE IF NOT EXISTS ACCOUNT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS ACCOUNT_TYPE_DICTIONARY; +CREATE TABLE ACCOUNT_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE ACCOUNT_TYPE_DICTIONARY IS 'Справочник типов счетов'; COMMENT ON COLUMN ACCOUNT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -324,7 +517,13 @@ COMMENT ON COLUMN ACCOUNT_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN ACCOUNT_TYPE_DICTIONARY.NAME IS 'Наименование'; -- instrumentType - Справочник типов инструмента -CREATE TABLE IF NOT EXISTS INSTRUMENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS INSTRUMENT_TYPE_DICTIONARY; +CREATE TABLE INSTRUMENT_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE INSTRUMENT_TYPE_DICTIONARY IS 'Справочник типов инструмента'; COMMENT ON COLUMN INSTRUMENT_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -334,7 +533,13 @@ COMMENT ON COLUMN INSTRUMENT_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN INSTRUMENT_TYPE_DICTIONARY.NAME IS 'Наименование'; -- currencyCode - Справочник кодов валют -CREATE TABLE IF NOT EXISTS CURRENCY_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS CURRENCY_CODE_DICTIONARY; +CREATE TABLE CURRENCY_CODE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE CURRENCY_CODE_DICTIONARY IS 'Справочник кодов валют'; COMMENT ON COLUMN CURRENCY_CODE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -344,7 +549,13 @@ COMMENT ON COLUMN CURRENCY_CODE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN CURRENCY_CODE_DICTIONARY.NAME IS 'Наименование'; -- serviceStatus - Справочник услуги -CREATE TABLE IF NOT EXISTS SERVICE_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS SERVICE_STATUS_DICTIONARY; +CREATE TABLE SERVICE_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE SERVICE_STATUS_DICTIONARY IS 'Справочник услуги'; COMMENT ON COLUMN SERVICE_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; @@ -354,7 +565,13 @@ COMMENT ON COLUMN SERVICE_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN SERVICE_STATUS_DICTIONARY.NAME IS 'Наименование'; -- service - Справочник услуги -CREATE TABLE IF NOT EXISTS SERVICE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS SERVICE_DICTIONARY; +CREATE TABLE SERVICE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE SERVICE_DICTIONARY IS 'Справочник услуги'; COMMENT ON COLUMN SERVICE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -364,7 +581,13 @@ COMMENT ON COLUMN SERVICE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN SERVICE_DICTIONARY.NAME IS 'Наименование'; -- serviceProduct - Справочник продукта для услуги -CREATE TABLE IF NOT EXISTS SERVICE_PRODUCT_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS SERVICE_PRODUCT_DICTIONARY; +CREATE TABLE SERVICE_PRODUCT_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE SERVICE_PRODUCT_DICTIONARY IS 'Справочник продукта для услуги'; COMMENT ON COLUMN SERVICE_PRODUCT_DICTIONARY.ID IS 'Идентификатор записи'; @@ -374,7 +597,13 @@ COMMENT ON COLUMN SERVICE_PRODUCT_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN SERVICE_PRODUCT_DICTIONARY.NAME IS 'Наименование'; -- sector - Справочник секций -CREATE TABLE IF NOT EXISTS SECTOR_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS SECTOR_DICTIONARY; +CREATE TABLE SECTOR_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE SECTOR_DICTIONARY IS 'Справочник секций'; COMMENT ON COLUMN SECTOR_DICTIONARY.ID IS 'Идентификатор записи'; @@ -384,7 +613,13 @@ COMMENT ON COLUMN SECTOR_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN SECTOR_DICTIONARY.NAME IS 'Наименование'; -- resultStatus - Статус обработки -CREATE TABLE IF NOT EXISTS RESULT_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS RESULT_STATUS_DICTIONARY; +CREATE TABLE RESULT_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE RESULT_STATUS_DICTIONARY IS 'Статус обработки'; COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; @@ -394,7 +629,13 @@ COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.NAME IS 'Статус обработки'; -- errorCode - Коды ошибок -CREATE TABLE IF NOT EXISTS ERROR_CODE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(255)); +DROP TABLE IF EXISTS ERROR_CODE_DICTIONARY; +CREATE TABLE ERROR_CODE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(255) +); COMMENT ON TABLE ERROR_CODE_DICTIONARY IS 'Коды ошибок'; COMMENT ON COLUMN ERROR_CODE_DICTIONARY.ID IS 'Идентификатор записи'; @@ -404,7 +645,13 @@ COMMENT ON COLUMN ERROR_CODE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN ERROR_CODE_DICTIONARY.NAME IS 'Текст ошибки'; -- managementJournalStatus - Справочник статусов журнала мониторинга и контроля -CREATE TABLE IF NOT EXISTS MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_STATUS_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY IS 'Справочник статусов журнала мониторинга и контроля'; COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.ID IS 'Идентификатор'; @@ -414,7 +661,13 @@ COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.NAME IS 'Статус сообщения'; -- managementJournalType - Справочник типов записей в журнале мониторинга и контроля -CREATE TABLE IF NOT EXISTS MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_TYPE_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY IS 'Справочник типов записей в журнале мониторинга и контроля'; COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -424,7 +677,13 @@ COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.NAME IS 'Тип записи'; -- managementJournalPurpose - Справочник целей записей в журнале мониторинга и контроля -CREATE TABLE IF NOT EXISTS MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY IS 'Справочник целей записей в журнале мониторинга и контроля'; COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.ID IS 'Идентификатор'; @@ -434,7 +693,13 @@ COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.NAME IS 'Тип записи'; -- inOutSDfType - Справочник типов входящих и исходящих записей -CREATE TABLE IF NOT EXISTS IN_OUT_S_DF_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS IN_OUT_S_DF_TYPE_DICTIONARY; +CREATE TABLE IN_OUT_S_DF_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE IN_OUT_S_DF_TYPE_DICTIONARY IS 'Справочник типов входящих и исходящих записей'; COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -444,7 +709,13 @@ COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.NAME IS 'Тип записи'; -- sessionStatus - Справочник статусов клиринговой сессии -CREATE TABLE IF NOT EXISTS SESSION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS SESSION_STATUS_DICTIONARY; +CREATE TABLE SESSION_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE SESSION_STATUS_DICTIONARY IS 'Справочник статусов клиринговой сессии'; COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.ID IS 'Идентификатор'; @@ -454,7 +725,13 @@ COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN SESSION_STATUS_DICTIONARY.NAME IS 'Наименование'; -- objectType - Справочник типов объектов -CREATE TABLE IF NOT EXISTS OBJECT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS OBJECT_TYPE_DICTIONARY; +CREATE TABLE OBJECT_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE OBJECT_TYPE_DICTIONARY IS 'Справочник типов объектов'; COMMENT ON COLUMN OBJECT_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -464,7 +741,13 @@ COMMENT ON COLUMN OBJECT_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN OBJECT_TYPE_DICTIONARY.NAME IS 'Наименование'; -- notificationStatus - Справочник статусов сообщений -CREATE TABLE IF NOT EXISTS NOTIFICATION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE char(4), NAME varchar(50)); +DROP TABLE IF EXISTS NOTIFICATION_STATUS_DICTIONARY; +CREATE TABLE NOTIFICATION_STATUS_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); COMMENT ON TABLE NOTIFICATION_STATUS_DICTIONARY IS 'Справочник статусов сообщений'; COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.ID IS 'Идентификатор'; @@ -473,27 +756,56 @@ COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.NAME IS 'Наименование'; +-- eventType - Типы изменений записей +DROP TABLE IF EXISTS EVENT_TYPE_DICTIONARY; +CREATE TABLE EVENT_TYPE_DICTIONARY +( + ID bigint PRIMARY KEY, + CODE varchar(4), + NAME varchar(50) +); +COMMENT ON TABLE EVENT_TYPE_DICTIONARY IS 'Типы изменений записей'; + +COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.NAME IS 'Тип события'; + /* Business objects */ -- userCls - Пользователь -CREATE TABLE IF NOT EXISTS USER_CLS(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, IDENTIFIER varchar(250)); +DROP TABLE IF EXISTS USER_CLS; +CREATE TABLE USER_CLS +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + IDENTIFIER varchar(250) +); COMMENT ON TABLE USER_CLS IS 'Пользователь'; - COMMENT ON COLUMN USER_CLS.ID IS 'Идентификатор'; - COMMENT ON COLUMN USER_CLS.CREATED_AT IS 'Создано'; - COMMENT ON COLUMN USER_CLS.UPDATED_AT IS 'Изменено'; - COMMENT ON COLUMN USER_CLS.IDENTIFIER IS 'Внешний идентификатор'; -- History log of userCls - Пользователь -CREATE TABLE IF NOT EXISTS USER_CLS_HISTORY(USER_CLS_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, IDENTIFIER varchar(250)); +DROP TABLE IF EXISTS USER_CLS_HISTORY; +CREATE TABLE USER_CLS_HISTORY +( + USER_CLS_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + IDENTIFIER varchar(250) +); COMMENT ON TABLE USER_CLS_HISTORY IS 'История изменений таблицы userCls'; COMMENT ON COLUMN USER_CLS_HISTORY.USER_CLS_ID IS 'Идентификатор записи в таблице USER_CLS'; COMMENT ON COLUMN USER_CLS_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -508,83 +820,110 @@ COMMENT ON COLUMN USER_CLS_HISTORY.UPDATED_AT IS 'Изменено'; COMMENT ON COLUMN USER_CLS_HISTORY.IDENTIFIER IS 'Внешний идентификатор'; -- userRoleSession - Набор ролей -CREATE TABLE IF NOT EXISTS USER_ROLE_SESSION(ID bigint PRIMARY KEY, USER_ID bigint, USER_ROLE char(4), COMPANY_ID bigint, STATUS char(4)); +DROP TABLE IF EXISTS USER_ROLE_SESSION; +CREATE TABLE USER_ROLE_SESSION +( + ID bigint PRIMARY KEY, + USER_ID bigint, + USER_ROLE varchar(4), + COMPANY_ID bigint, + STATUS varchar(4) +); COMMENT ON TABLE USER_ROLE_SESSION IS 'Набор ролей'; - COMMENT ON COLUMN USER_ROLE_SESSION.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN USER_ROLE_SESSION.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; - COMMENT ON COLUMN USER_ROLE_SESSION.USER_ROLE IS 'Идентификатор роли (linked to userRole)'; - COMMENT ON COLUMN USER_ROLE_SESSION.COMPANY_ID IS 'Идентификатор компании (linked to company)'; - COMMENT ON COLUMN USER_ROLE_SESSION.STATUS IS 'Статус (linked to workflowStatus)'; -- userSettings - Настройки пользователя -CREATE TABLE IF NOT EXISTS USER_SETTINGS(ID bigint PRIMARY KEY, USER_ID bigint, VERSION varchar(50), JSON varchar(200000)); +DROP TABLE IF EXISTS USER_SETTINGS; +CREATE TABLE USER_SETTINGS +( + ID bigint PRIMARY KEY, + USER_ID bigint, + VERSION varchar(50), + JSON varchar(200000) +); COMMENT ON TABLE USER_SETTINGS IS 'Настройки пользователя'; - COMMENT ON COLUMN USER_SETTINGS.ID IS 'Идентификатор'; - COMMENT ON COLUMN USER_SETTINGS.USER_ID IS 'Пользователь (linked to userCls)'; - COMMENT ON COLUMN USER_SETTINGS.VERSION IS 'Версия настроек пользователя'; - COMMENT ON COLUMN USER_SETTINGS.JSON IS 'Данные конфигурации'; -- userConnect - Активность пользователей в системе -CREATE TABLE IF NOT EXISTS USER_CONNECT(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, USER_ID bigint, CONNECTION_TIME timestamp, DISCONNECTION_TIME timestamp, SERVER_I_P varchar(250), CLIENT_I_P varchar(250), CONNECTION_STATE char(4), CLEARING_DATE date, ERROR_CODE bigint, ERROR_TEXT char(4)); +DROP TABLE IF EXISTS USER_CONNECT; +CREATE TABLE USER_CONNECT +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + USER_ID bigint, + CONNECTION_TIME timestamp, + DISCONNECTION_TIME timestamp, + SERVER_I_P varchar(250), + CLIENT_I_P varchar(250), + CONNECTION_STATE varchar(4), + CLEARING_DATE date, + ERROR_CODE bigint, + ERROR_TEXT varchar(4) +); COMMENT ON TABLE USER_CONNECT IS 'Активность пользователей в системе'; - COMMENT ON COLUMN USER_CONNECT.ID IS 'Идентификатор'; - COMMENT ON COLUMN USER_CONNECT.CREATED_AT IS 'Создано'; - COMMENT ON COLUMN USER_CONNECT.UPDATED_AT IS 'Изменено'; - COMMENT ON COLUMN USER_CONNECT.USER_ID IS 'Пользователь (linked to userCls)'; - COMMENT ON COLUMN USER_CONNECT.CONNECTION_TIME IS 'Последнее соединение'; - COMMENT ON COLUMN USER_CONNECT.DISCONNECTION_TIME IS 'Разрыв соединения'; - COMMENT ON COLUMN USER_CONNECT.SERVER_I_P IS 'IP адрес сервера'; - COMMENT ON COLUMN USER_CONNECT.CLIENT_I_P IS 'IP адрес клиента'; - COMMENT ON COLUMN USER_CONNECT.CONNECTION_STATE IS 'Статус соединения (linked to connectionState)'; - COMMENT ON COLUMN USER_CONNECT.CLEARING_DATE IS 'Дата'; - COMMENT ON COLUMN USER_CONNECT.ERROR_CODE IS 'Код ошибки (linked to errorCode)'; - COMMENT ON COLUMN USER_CONNECT.ERROR_TEXT IS 'Полный текст ошибки (linked to errorText)'; -- History log of userConnect - Активность пользователей в системе -CREATE TABLE IF NOT EXISTS USER_CONNECT_HISTORY(USER_CONNECT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, USER_ID bigint, CONNECTION_TIME timestamp, DISCONNECTION_TIME timestamp, SERVER_I_P varchar(250), CLIENT_I_P varchar(250), CONNECTION_STATE char(4), CLEARING_DATE date, ERROR_CODE bigint, ERROR_TEXT char(4)); +DROP TABLE IF EXISTS USER_CONNECT_HISTORY; +CREATE TABLE USER_CONNECT_HISTORY +( + USER_CONNECT_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + USER_ID bigint, + CONNECTION_TIME timestamp, + DISCONNECTION_TIME timestamp, + SERVER_I_P varchar(250), + CLIENT_I_P varchar(250), + CONNECTION_STATE varchar(4), + CLEARING_DATE date, + ERROR_CODE bigint, + ERROR_TEXT varchar(4) +); COMMENT ON TABLE USER_CONNECT_HISTORY IS 'История изменений таблицы userConnect'; COMMENT ON COLUMN USER_CONNECT_HISTORY.USER_CONNECT_ID IS 'Идентификатор записи в таблице USER_CONNECT'; COMMENT ON COLUMN USER_CONNECT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -614,165 +953,198 @@ COMMENT ON COLUMN USER_CONNECT_HISTORY.ERROR_CODE IS 'Код ошибки (linke COMMENT ON COLUMN USER_CONNECT_HISTORY.ERROR_TEXT IS 'Полный текст ошибки (linked to errorText)'; --- timetable - Постоянное расписание операционного дня -CREATE TABLE IF NOT EXISTS TIMETABLE(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, TASK char(4), TASK_TIME time, TASK_STATUS char(4)); -COMMENT ON TABLE TIMETABLE IS 'Постоянное расписание операционного дня'; +-- plannerTemplate - Шаблон расписания операционного дня +DROP TABLE IF EXISTS PLANNER_TEMPLATE; +CREATE TABLE PLANNER_TEMPLATE +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + TASK varchar(4), + TASK_TIME time, + TASK_STATUS varchar(4) +); +COMMENT ON TABLE PLANNER_TEMPLATE IS 'Шаблон расписания операционного дня'; +COMMENT ON COLUMN PLANNER_TEMPLATE.ID IS 'Идентификатор'; -COMMENT ON COLUMN TIMETABLE.ID IS 'Идентификатор'; +COMMENT ON COLUMN PLANNER_TEMPLATE.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN PLANNER_TEMPLATE.UPDATED_AT IS 'Изменено'; -COMMENT ON COLUMN TIMETABLE.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN PLANNER_TEMPLATE.TASK IS 'Идентификатор задачи (linked to task)'; +COMMENT ON COLUMN PLANNER_TEMPLATE.TASK_TIME IS 'Время задачи'; -COMMENT ON COLUMN TIMETABLE.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN PLANNER_TEMPLATE.TASK_STATUS IS 'Статус (linked to taskStatus)'; +-- clearingCalendar - Рабочие и нерабочие дни +DROP TABLE IF EXISTS CLEARING_CALENDAR; +CREATE TABLE CLEARING_CALENDAR +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + COMPANY_ID bigint, + DAY_STATUS varchar(4) +); +COMMENT ON TABLE CLEARING_CALENDAR IS 'Рабочие и нерабочие дни'; -COMMENT ON COLUMN TIMETABLE.TASK IS 'Идентификатор задачи (linked to task)'; +COMMENT ON COLUMN CLEARING_CALENDAR.ID IS 'Идентификатор'; +COMMENT ON COLUMN CLEARING_CALENDAR.CREATED_AT IS 'Создано'; -COMMENT ON COLUMN TIMETABLE.TASK_TIME IS 'Время задачи'; +COMMENT ON COLUMN CLEARING_CALENDAR.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN CLEARING_CALENDAR.CLEARING_DATE IS 'Дата'; -COMMENT ON COLUMN TIMETABLE.TASK_STATUS IS 'Статус (linked to taskStatus)'; +COMMENT ON COLUMN CLEARING_CALENDAR.COMPANY_ID IS 'Компания (linked to company)'; --- tradingCalendar - Торговые и неторговые дни -CREATE TABLE IF NOT EXISTS TRADING_CALENDAR(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, COMPANY_ID bigint, TRADING_STATUS char(4)); -COMMENT ON TABLE TRADING_CALENDAR IS 'Торговые и неторговые дни'; +COMMENT ON COLUMN CLEARING_CALENDAR.DAY_STATUS IS 'Статус (linked to dayStatus)'; +-- planner - Расписание +DROP TABLE IF EXISTS PLANNER; +CREATE TABLE PLANNER +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + TASK varchar(4), + TASK_TIME time, + CLEARING_DATE date, + MARKET varchar(4), + TASK_STATUS varchar(4), + SECURITY_ID bigint +); +COMMENT ON TABLE PLANNER IS 'Расписание'; -COMMENT ON COLUMN TRADING_CALENDAR.ID IS 'Идентификатор'; +COMMENT ON COLUMN PLANNER.ID IS 'Идентификатор'; +COMMENT ON COLUMN PLANNER.CREATED_AT IS 'Создано'; -COMMENT ON COLUMN TRADING_CALENDAR.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN PLANNER.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN PLANNER.TASK IS 'Идентификатор задачи (linked to task)'; -COMMENT ON COLUMN TRADING_CALENDAR.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN PLANNER.TASK_TIME IS 'Время'; +COMMENT ON COLUMN PLANNER.CLEARING_DATE IS 'Дата'; -COMMENT ON COLUMN TRADING_CALENDAR.CLEARING_DATE IS 'Дата'; +COMMENT ON COLUMN PLANNER.MARKET IS 'Секция (linked to market)'; +COMMENT ON COLUMN PLANNER.TASK_STATUS IS 'Статус (linked to taskStatus)'; -COMMENT ON COLUMN TRADING_CALENDAR.COMPANY_ID IS 'Компания (linked to company)'; +COMMENT ON COLUMN PLANNER.SECURITY_ID IS 'Инструмент (linked to security)'; +-- plannerAllToday - Расписание на текущий день +DROP TABLE IF EXISTS PLANNER_ALL_TODAY; +CREATE TABLE PLANNER_ALL_TODAY +( + ID bigint PRIMARY KEY, + TASK varchar(4), + TASK_TIME time, + CLEARING_DATE date, + MARKET varchar(4), + TASK_STATUS varchar(4), + SECURITY_ID bigint, + PARENT varchar(4), + PARENT_ID bigint +); +COMMENT ON TABLE PLANNER_ALL_TODAY IS 'Расписание на текущий день'; -COMMENT ON COLUMN TRADING_CALENDAR.TRADING_STATUS IS 'Статус (linked to tradingStatus)'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.ID IS 'Идентификатор'; --- scheduler - Расписание планировщика -CREATE TABLE IF NOT EXISTS SCHEDULER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, TASK char(4), TASK_TIME time, CLEARING_DATE date, MARKET char(4), TASK_STATUS char(4), SECURITY_ID bigint); -COMMENT ON TABLE SCHEDULER IS 'Расписание планировщика'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.TASK IS 'Идентификатор задачи (linked to task)'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.TASK_TIME IS 'Время'; -COMMENT ON COLUMN SCHEDULER.ID IS 'Идентификатор'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.CLEARING_DATE IS 'Дата'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.MARKET IS 'Секция (linked to market)'; -COMMENT ON COLUMN SCHEDULER.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.TASK_STATUS IS 'Статус (linked to taskStatus)'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.SECURITY_ID IS 'Инструмент (linked to security)'; -COMMENT ON COLUMN SCHEDULER.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.PARENT IS 'Источник записи расписания (linked to parent)'; +COMMENT ON COLUMN PLANNER_ALL_TODAY.PARENT_ID IS 'Идентификатор источника'; -COMMENT ON COLUMN SCHEDULER.TASK IS 'Идентификатор задачи (linked to task)'; +-- launcher - Запуск задачи +DROP TABLE IF EXISTS LAUNCHER; +CREATE TABLE LAUNCHER +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + SENDER_ID bigint, + TASK varchar(4) +); +COMMENT ON TABLE LAUNCHER IS 'Запуск задачи'; +COMMENT ON COLUMN LAUNCHER.ID IS 'Идентификатор'; -COMMENT ON COLUMN SCHEDULER.TASK_TIME IS 'Время'; +COMMENT ON COLUMN LAUNCHER.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN LAUNCHER.UPDATED_AT IS 'Изменено'; -COMMENT ON COLUMN SCHEDULER.CLEARING_DATE IS 'Дата'; +COMMENT ON COLUMN LAUNCHER.SENDER_ID IS 'Отправитель (linked to userCls)'; +COMMENT ON COLUMN LAUNCHER.TASK IS 'Задача (linked to task)'; -COMMENT ON COLUMN SCHEDULER.MARKET IS 'Секция (linked to market)'; - - -COMMENT ON COLUMN SCHEDULER.TASK_STATUS IS 'Статус (linked to taskStatus)'; - - -COMMENT ON COLUMN SCHEDULER.SECURITY_ID IS 'Инструмент (linked to security)'; - --- schedulerAllToday - Расписание на текущий день -CREATE TABLE IF NOT EXISTS SCHEDULER_ALL_TODAY(ID bigint PRIMARY KEY, TASK char(4), TASK_TIME time, CLEARING_DATE date, MARKET char(4), TASK_STATUS char(4), SECURITY_ID bigint, SOURCE char(4), ORIG_ID bigint); -COMMENT ON TABLE SCHEDULER_ALL_TODAY IS 'Расписание на текущий день'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.ID IS 'Идентификатор'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.TASK IS 'Идентификатор задачи (linked to task)'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.TASK_TIME IS 'Время'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.CLEARING_DATE IS 'Дата'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.MARKET IS 'Секция (linked to market)'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.TASK_STATUS IS 'Статус (linked to taskStatus)'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.SECURITY_ID IS 'Инструмент (linked to security)'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.SOURCE IS 'Источник записи расписания (linked to source)'; - - -COMMENT ON COLUMN SCHEDULER_ALL_TODAY.ORIG_ID IS 'Идентификатор источника'; - --- taskRunner - Запуск задачи -CREATE TABLE IF NOT EXISTS TASK_RUNNER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SENDER_ID bigint, TASK char(4)); -COMMENT ON TABLE TASK_RUNNER IS 'Запуск задачи'; - - -COMMENT ON COLUMN TASK_RUNNER.ID IS 'Идентификатор'; - - -COMMENT ON COLUMN TASK_RUNNER.CREATED_AT IS 'Создано'; - - -COMMENT ON COLUMN TASK_RUNNER.UPDATED_AT IS 'Изменено'; - - -COMMENT ON COLUMN TASK_RUNNER.SENDER_ID IS 'Отправитель (linked to userCls)'; - - -COMMENT ON COLUMN TASK_RUNNER.TASK IS 'Задача (linked to task)'; - --- company - Участник -CREATE TABLE IF NOT EXISTS COMPANY(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), REGISTRATION_CODE varchar(255), WORKFLOW_STATUS char(4), SHORT_NAME varchar(255), FULL_NAME varchar(255)); -COMMENT ON TABLE COMPANY IS 'Участник'; - +-- company - Компании +DROP TABLE IF EXISTS COMPANY; +CREATE TABLE COMPANY +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + TRADING_CODE varchar(255), + CLEARING_CODE varchar(255), + REGISTRATION_CODE varchar(255), + WORKFLOW_STATUS varchar(4), + SHORT_NAME varchar(255), + FULL_NAME varchar(255) +); +COMMENT ON TABLE COMPANY IS 'Компании'; COMMENT ON COLUMN COMPANY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN COMPANY.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN COMPANY.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN COMPANY.TRADING_CODE IS 'Код участника торгов'; - COMMENT ON COLUMN COMPANY.CLEARING_CODE IS 'Код участника клиринга'; - COMMENT ON COLUMN COMPANY.REGISTRATION_CODE IS 'Регистрационный код участника'; - COMMENT ON COLUMN COMPANY.WORKFLOW_STATUS IS 'Статус (linked to workflowStatus)'; - COMMENT ON COLUMN COMPANY.SHORT_NAME IS 'Краткое наименование Компании'; - COMMENT ON COLUMN COMPANY.FULL_NAME IS 'Полное наименование Компании'; --- History log of company - Участник -CREATE TABLE IF NOT EXISTS COMPANY_HISTORY(COMPANY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), REGISTRATION_CODE varchar(255), WORKFLOW_STATUS char(4), SHORT_NAME varchar(255), FULL_NAME varchar(255)); +-- History log of company - Компании +DROP TABLE IF EXISTS COMPANY_HISTORY; +CREATE TABLE COMPANY_HISTORY +( + COMPANY_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + TRADING_CODE varchar(255), + CLEARING_CODE varchar(255), + REGISTRATION_CODE varchar(255), + WORKFLOW_STATUS varchar(4), + SHORT_NAME varchar(255), + FULL_NAME varchar(255) +); COMMENT ON TABLE COMPANY_HISTORY IS 'История изменений таблицы company'; COMMENT ON COLUMN COMPANY_HISTORY.COMPANY_ID IS 'Идентификатор записи в таблице COMPANY'; COMMENT ON COLUMN COMPANY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -796,46 +1168,86 @@ COMMENT ON COLUMN COMPANY_HISTORY.SHORT_NAME IS 'Краткое наименов COMMENT ON COLUMN COMPANY_HISTORY.FULL_NAME IS 'Полное наименование Компании'; --- companyInfo - Профиль Компании -CREATE TABLE IF NOT EXISTS COMPANY_INFO(ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar(255), PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255)); -COMMENT ON TABLE COMPANY_INFO IS 'Профиль Компании'; - +-- companyInfo - Профили Компаний +DROP TABLE IF EXISTS COMPANY_INFO; +CREATE TABLE COMPANY_INFO +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + CORPORATION_SOLE_TYPE varchar(4), + COUNTRY_CODE varchar(4), + DESCRIPTION varchar(255), + PROFESSIONAL_SIGN varchar(4), + LEGAL_KIND varchar(4), + ORGANIZATION_TYPE varchar(4), + RESIDENCE varchar(4), + SHORT_NAME_ENG varchar(255), + FULL_NAME_ENG varchar(255), + SHORT_NAME varchar(255), + FULL_NAME varchar(255), + TRADING_CODE varchar(255), + CLEARING_CODE varchar(255), + REGISTRATION_CODE varchar(255) +); +COMMENT ON TABLE COMPANY_INFO IS 'Профили Компаний'; COMMENT ON COLUMN COMPANY_INFO.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN COMPANY_INFO.COMPANY_ID IS 'Идентификатор Компании (linked to company)'; - COMMENT ON COLUMN COMPANY_INFO.CORPORATION_SOLE_TYPE IS 'Идентификатор единоличного исполнительного органа (linked to corporationSoleType)'; - COMMENT ON COLUMN COMPANY_INFO.COUNTRY_CODE IS 'Идентификатор кода страны (linked to countryCode)'; - COMMENT ON COLUMN COMPANY_INFO.DESCRIPTION IS 'Описание'; - COMMENT ON COLUMN COMPANY_INFO.PROFESSIONAL_SIGN IS 'Признак проф. Участника (linked to allowed)'; - COMMENT ON COLUMN COMPANY_INFO.LEGAL_KIND IS 'Идентификатор вида субъекта (linked to legalKind)'; - COMMENT ON COLUMN COMPANY_INFO.ORGANIZATION_TYPE IS 'Идентификатор типа организации (linked to organizationType)'; - COMMENT ON COLUMN COMPANY_INFO.RESIDENCE IS 'Идентификатор кода страны (linked to countryCode)'; - COMMENT ON COLUMN COMPANY_INFO.SHORT_NAME_ENG IS 'Краткое наименование Компании на английском'; - COMMENT ON COLUMN COMPANY_INFO.FULL_NAME_ENG IS 'Полное наименование Компании на английском'; +COMMENT ON COLUMN COMPANY_INFO.SHORT_NAME IS 'Краткое наименование Компании'; --- History log of companyInfo - Профиль Компании -CREATE TABLE IF NOT EXISTS COMPANY_INFO_HISTORY(COMPANY_INFO_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, CORPORATION_SOLE_TYPE char(4), COUNTRY_CODE char(4), DESCRIPTION varchar(255), PROFESSIONAL_SIGN char(4), LEGAL_KIND char(4), ORGANIZATION_TYPE char(4), RESIDENCE char(4), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255)); +COMMENT ON COLUMN COMPANY_INFO.FULL_NAME IS 'Полное наименование Компании'; + +COMMENT ON COLUMN COMPANY_INFO.TRADING_CODE IS 'Код участника торгов'; + +COMMENT ON COLUMN COMPANY_INFO.CLEARING_CODE IS 'Код участника клиринга'; + +COMMENT ON COLUMN COMPANY_INFO.REGISTRATION_CODE IS 'Регистрационный код участника'; + + +-- History log of companyInfo - Профили Компаний +DROP TABLE IF EXISTS COMPANY_INFO_HISTORY; +CREATE TABLE COMPANY_INFO_HISTORY +( + COMPANY_INFO_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + CORPORATION_SOLE_TYPE varchar(4), + COUNTRY_CODE varchar(4), + DESCRIPTION varchar(255), + PROFESSIONAL_SIGN varchar(4), + LEGAL_KIND varchar(4), + ORGANIZATION_TYPE varchar(4), + RESIDENCE varchar(4), + SHORT_NAME_ENG varchar(255), + FULL_NAME_ENG varchar(255), + SHORT_NAME varchar(255), + FULL_NAME varchar(255), + TRADING_CODE varchar(255), + CLEARING_CODE varchar(255), + REGISTRATION_CODE varchar(255) +); COMMENT ON TABLE COMPANY_INFO_HISTORY IS 'История изменений таблицы companyInfo'; COMMENT ON COLUMN COMPANY_INFO_HISTORY.COMPANY_INFO_ID IS 'Идентификатор записи в таблице COMPANY_INFO'; COMMENT ON COLUMN COMPANY_INFO_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -863,261 +1275,312 @@ COMMENT ON COLUMN COMPANY_INFO_HISTORY.SHORT_NAME_ENG IS 'Краткое наи COMMENT ON COLUMN COMPANY_INFO_HISTORY.FULL_NAME_ENG IS 'Полное наименование Компании на английском'; --- clearingMemberCategory - Категории Участника клиринга -CREATE TABLE IF NOT EXISTS CLEARING_MEMBER_CATEGORY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CLEARING_MEMBER_CATEGORY char(4)); -COMMENT ON TABLE CLEARING_MEMBER_CATEGORY IS 'Категории Участника клиринга'; +COMMENT ON COLUMN COMPANY_INFO_HISTORY.SHORT_NAME IS 'Краткое наименование Компании'; +COMMENT ON COLUMN COMPANY_INFO_HISTORY.FULL_NAME IS 'Полное наименование Компании'; + +COMMENT ON COLUMN COMPANY_INFO_HISTORY.TRADING_CODE IS 'Код участника торгов'; + +COMMENT ON COLUMN COMPANY_INFO_HISTORY.CLEARING_CODE IS 'Код участника клиринга'; + +COMMENT ON COLUMN COMPANY_INFO_HISTORY.REGISTRATION_CODE IS 'Регистрационный код участника'; + +-- clearingMemberCategory - Категории Участника клиринга +DROP TABLE IF EXISTS CLEARING_MEMBER_CATEGORY; +CREATE TABLE CLEARING_MEMBER_CATEGORY +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + CLEARING_MEMBER_CATEGORY varchar(4) +); +COMMENT ON TABLE CLEARING_MEMBER_CATEGORY IS 'Категории Участника клиринга'; COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY.COMPANY_ID IS 'Идентификатор Компании (linked to company)'; - COMMENT ON COLUMN CLEARING_MEMBER_CATEGORY.CLEARING_MEMBER_CATEGORY IS 'Идентификатор категории участника клиринга (linked to clearingCategory)'; -- contact - Контакты Компании -CREATE TABLE IF NOT EXISTS CONTACT(ID bigint PRIMARY KEY, COMPANY_ID bigint, CONTACT_TYPE char(4), CONTACT_VALUE varchar(255)); +DROP TABLE IF EXISTS CONTACT; +CREATE TABLE CONTACT +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + CONTACT_TYPE varchar(4), + CONTACT_VALUE varchar(255) +); COMMENT ON TABLE CONTACT IS 'Контакты Компании'; - COMMENT ON COLUMN CONTACT.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN CONTACT.COMPANY_ID IS 'Идентификатор Компании (linked to company)'; - COMMENT ON COLUMN CONTACT.CONTACT_TYPE IS 'Идентификатор справочника (linked to contactType)'; - COMMENT ON COLUMN CONTACT.CONTACT_VALUE IS 'Значение справочника'; -- profileDocument - Досье Компании -CREATE TABLE IF NOT EXISTS PROFILE_DOCUMENT(ID bigint PRIMARY KEY, COMPANY_ID bigint, DOCUMENT_TYPE char(4), ISSUE_DATE date, ISSUE_PLACE varchar(255), ISSUER varchar(255), ISSUER_CODE varchar(255), NAME varchar(255), NUMBER varchar(255), PLACE varchar(255), VALID_FROM_DATE date, VALID_TO_DATE date, LINK varchar(255)); +DROP TABLE IF EXISTS PROFILE_DOCUMENT; +CREATE TABLE PROFILE_DOCUMENT +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + DOCUMENT_TYPE varchar(4), + ISSUE_DATE date, + ISSUE_PLACE varchar(255), + ISSUER varchar(255), + ISSUER_CODE varchar(255), + NAME varchar(255), + NUMBER varchar(255), + PLACE varchar(255), + VALID_FROM_DATE date, + VALID_TO_DATE date, + LINK varchar(255) +); COMMENT ON TABLE PROFILE_DOCUMENT IS 'Досье Компании'; - COMMENT ON COLUMN PROFILE_DOCUMENT.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN PROFILE_DOCUMENT.COMPANY_ID IS 'Идентификатор Компании (linked to company)'; - COMMENT ON COLUMN PROFILE_DOCUMENT.DOCUMENT_TYPE IS 'Идентификатор типа документа (linked to documentType)'; - COMMENT ON COLUMN PROFILE_DOCUMENT.ISSUE_DATE IS 'Дата выдачи'; - COMMENT ON COLUMN PROFILE_DOCUMENT.ISSUE_PLACE IS 'Место выдачи'; - COMMENT ON COLUMN PROFILE_DOCUMENT.ISSUER IS 'Кем выдан'; - COMMENT ON COLUMN PROFILE_DOCUMENT.ISSUER_CODE IS 'Код выдавшего органа'; - COMMENT ON COLUMN PROFILE_DOCUMENT.NAME IS 'Наименование'; - COMMENT ON COLUMN PROFILE_DOCUMENT.NUMBER IS 'Номер'; - COMMENT ON COLUMN PROFILE_DOCUMENT.PLACE IS 'Место'; - COMMENT ON COLUMN PROFILE_DOCUMENT.VALID_FROM_DATE IS 'Дата начала срока действия'; - COMMENT ON COLUMN PROFILE_DOCUMENT.VALID_TO_DATE IS 'Дата окончания срока действия'; - COMMENT ON COLUMN PROFILE_DOCUMENT.LINK IS 'Ссылка на документ'; -- companySymbols - Реквизиты Компании -CREATE TABLE IF NOT EXISTS COMPANY_SYMBOLS(ID bigint PRIMARY KEY, COMPANY_ID bigint, COMPANY_SYMBOL char(4), COMPANY_SYMBOL_VALUE varchar(255)); +DROP TABLE IF EXISTS COMPANY_SYMBOLS; +CREATE TABLE COMPANY_SYMBOLS +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + COMPANY_SYMBOL varchar(4), + COMPANY_SYMBOL_VALUE varchar(255) +); COMMENT ON TABLE COMPANY_SYMBOLS IS 'Реквизиты Компании'; - COMMENT ON COLUMN COMPANY_SYMBOLS.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN COMPANY_SYMBOLS.COMPANY_ID IS 'Идентификатор Компании (linked to company)'; - COMMENT ON COLUMN COMPANY_SYMBOLS.COMPANY_SYMBOL IS 'Идентификатор справочника (linked to companySymbol)'; - COMMENT ON COLUMN COMPANY_SYMBOLS.COMPANY_SYMBOL_VALUE IS 'Значение справочника'; -- clearmemberRegistry - Реестр участников клиринга -CREATE TABLE IF NOT EXISTS CLEARMEMBER_REGISTRY(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), FULL_NAME varchar(255), SHORT_NAME varchar(255), CATEGORY_LIST char(4), CORPORATION_SOLE char(4), ACCOUNT varchar(50), BANK bigint, BANK_NAME varchar(255), INN varchar(255), BIC varchar(255), OGRN varchar(255), CPP varchar(255), OCPO varchar(255), CONTRACT_NUMBER varchar(255), CONTRACT_DATE date, REGISTRATION_DATE date, SYSTEM_DATE date, ACCESS_DATE timestamp, SUSPENTION_DATE timestamp, REOPENING_DATE timestamp, CLOSE_DATE timestamp, EXCLUSION_DATE timestamp, ADDRESS varchar(255), EMAIL varchar(255)); +DROP TABLE IF EXISTS CLEARMEMBER_REGISTRY; +CREATE TABLE CLEARMEMBER_REGISTRY +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + TRADING_CODE varchar(255), + CLEARING_CODE varchar(255), + FULL_NAME varchar(255), + SHORT_NAME varchar(255), + CATEGORY_LIST varchar(4), + CORPORATION_SOLE varchar(4), + ACCOUNT varchar(50), + BANK bigint, + BANK_NAME varchar(255), + INN varchar(255), + BIC varchar(255), + OGRN varchar(255), + CPP varchar(255), + OCPO varchar(255), + CONTRACT_NUMBER varchar(255), + CONTRACT_DATE date, + REGISTRATION_DATE date, + SYSTEM_DATE date, + ACCESS_DATE timestamp, + SUSPENTION_DATE timestamp, + REOPENING_DATE timestamp, + CLOSE_DATE timestamp, + EXCLUSION_DATE timestamp, + ADDRESS varchar(255), + EMAIL varchar(255) +); COMMENT ON TABLE CLEARMEMBER_REGISTRY IS 'Реестр участников клиринга'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.TRADING_CODE IS 'Код участника торгов'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.CLEARING_CODE IS 'Код участника клиринга'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.FULL_NAME IS 'Полное наименование участника клиринга'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.SHORT_NAME IS 'Краткое наименование участника клиринга'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.CATEGORY_LIST IS 'Идентификатор категории участника клиринга (linked to clearingCategory)'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.CORPORATION_SOLE IS 'Идентификатор единоличного исполнительного органа (linked to corporationSoleType)'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.ACCOUNT IS 'Cчета'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.BANK IS 'Банк (linked to bankAccount)'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.BANK_NAME IS 'Наименование банка'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.BIC IS 'Банковский идентификационный код (БИК)'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.OGRN IS 'Основной государственный регистрационный номер'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.CPP IS 'Код причины постановки (КПП)'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.OCPO IS 'Код в Общероссийском классификаторе предприятий'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.CONTRACT_NUMBER IS 'Номер договора'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.CONTRACT_DATE IS 'Дата выдачи'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.REGISTRATION_DATE IS 'Дата регистрации'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.SYSTEM_DATE IS 'Системная дата'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.ACCESS_DATE IS 'Дата допуска к КО'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.SUSPENTION_DATE IS 'Дата приостановления'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.REOPENING_DATE IS 'Дата возобновления'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.CLOSE_DATE IS 'Дата прекращения'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.EXCLUSION_DATE IS 'Дата исключения из реестра'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.ADDRESS IS 'Адрес местонахождения'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY.EMAIL IS 'Электронная почта'; -- clearmemberRegistryChange - Журнал изменений информации участников клиринга -CREATE TABLE IF NOT EXISTS CLEARMEMBER_REGISTRY_CHANGE(DATE timestamp, CLEARING_CODE varchar(255), COMMENT varchar(255)); +DROP TABLE IF EXISTS CLEARMEMBER_REGISTRY_CHANGE; +CREATE TABLE CLEARMEMBER_REGISTRY_CHANGE +( + DATE timestamp, + CLEARING_CODE varchar(255), + COMMENT varchar(255) +); COMMENT ON TABLE CLEARMEMBER_REGISTRY_CHANGE IS 'Журнал изменений информации участников клиринга'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY_CHANGE.DATE IS 'Дата и время изменения записи'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY_CHANGE.CLEARING_CODE IS 'Код участника клиринга'; - COMMENT ON COLUMN CLEARMEMBER_REGISTRY_CHANGE.COMMENT IS 'Комментарий'; -- keyRate - Ключевая ставка ЦБ -CREATE TABLE IF NOT EXISTS KEY_RATE(ID bigint PRIMARY KEY, RATE numeric(72,18), START_DATE date, END_DATE date, DOCUMENT varchar(255), WORKFLOW_STATUS char(4)); +DROP TABLE IF EXISTS KEY_RATE; +CREATE TABLE KEY_RATE +( + ID bigint PRIMARY KEY, + RATE numeric(72, 18), + START_DATE date, + END_DATE date, + DOCUMENT varchar(255), + WORKFLOW_STATUS varchar(4) +); COMMENT ON TABLE KEY_RATE IS 'Ключевая ставка ЦБ'; - COMMENT ON COLUMN KEY_RATE.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN KEY_RATE.RATE IS 'Ключевая ставка ЦБ РФ'; - COMMENT ON COLUMN KEY_RATE.START_DATE IS 'Дата начала действия ключевой ставки'; - COMMENT ON COLUMN KEY_RATE.END_DATE IS 'Дата окончания действия ключевой ставки'; - COMMENT ON COLUMN KEY_RATE.DOCUMENT IS 'Документ ЦБ РФ, регламентирующий установку величины ключевой ставки'; - COMMENT ON COLUMN KEY_RATE.WORKFLOW_STATUS IS 'Статус (linked to workflowStatus)'; -- companyRoleSet - Таблица ролей Компании -CREATE TABLE IF NOT EXISTS COMPANY_ROLE_SET(ID bigint PRIMARY KEY, COMPANY_ID bigint, ROLE_ID bigint); +DROP TABLE IF EXISTS COMPANY_ROLE_SET; +CREATE TABLE COMPANY_ROLE_SET +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + ROLE_ID bigint +); COMMENT ON TABLE COMPANY_ROLE_SET IS 'Таблица ролей Компании'; - COMMENT ON COLUMN COMPANY_ROLE_SET.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN COMPANY_ROLE_SET.COMPANY_ID IS 'Идентификатор списка ролей Компании (linked to company)'; - COMMENT ON COLUMN COMPANY_ROLE_SET.ROLE_ID IS 'Значение справочника (linked to companyRole)'; -- account - Счета -CREATE TABLE IF NOT EXISTS ACCOUNT(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT varchar(50), ACCOUNT_TYPE char(4), RELATION_ID bigint, ACCOUNT_STATUS char(4), PROCESSING_SIGN char(4)); +DROP TABLE IF EXISTS ACCOUNT; +CREATE TABLE ACCOUNT +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + ACCOUNT varchar(50), + ACCOUNT_TYPE varchar(4), + RELATION_ID bigint, + ACCOUNT_STATUS varchar(4), + PROCESSING_SIGN varchar(4) +); COMMENT ON TABLE ACCOUNT IS 'Счета'; - COMMENT ON COLUMN ACCOUNT.ID IS 'Идентификатор'; - COMMENT ON COLUMN ACCOUNT.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN ACCOUNT.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN ACCOUNT.ACCOUNT IS 'Номер счета'; - COMMENT ON COLUMN ACCOUNT.ACCOUNT_TYPE IS 'Идентификатор типа счета (linked to accountType)'; - COMMENT ON COLUMN ACCOUNT.RELATION_ID IS 'Идентификатор договорных отношений (linked to relation)'; - COMMENT ON COLUMN ACCOUNT.ACCOUNT_STATUS IS 'Идентификатор статуса (linked to accountStatus)'; - COMMENT ON COLUMN ACCOUNT.PROCESSING_SIGN IS 'Признак обработки счета (linked to allowed)'; -- History log of account - Счета -CREATE TABLE IF NOT EXISTS ACCOUNT_HISTORY(ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT varchar(50), ACCOUNT_TYPE char(4), RELATION_ID bigint, ACCOUNT_STATUS char(4), PROCESSING_SIGN char(4)); +DROP TABLE IF EXISTS ACCOUNT_HISTORY; +CREATE TABLE ACCOUNT_HISTORY +( + ACCOUNT_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + ACCOUNT varchar(50), + ACCOUNT_TYPE varchar(4), + RELATION_ID bigint, + ACCOUNT_STATUS varchar(4), + PROCESSING_SIGN varchar(4) +); COMMENT ON TABLE ACCOUNT_HISTORY IS 'История изменений таблицы account'; COMMENT ON COLUMN ACCOUNT_HISTORY.ACCOUNT_ID IS 'Идентификатор записи в таблице ACCOUNT'; COMMENT ON COLUMN ACCOUNT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1140,39 +1603,57 @@ COMMENT ON COLUMN ACCOUNT_HISTORY.ACCOUNT_STATUS IS 'Идентификатор COMMENT ON COLUMN ACCOUNT_HISTORY.PROCESSING_SIGN IS 'Признак обработки счета (linked to allowed)'; -- relation - Договорные отношения -CREATE TABLE IF NOT EXISTS RELATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CONSUMER_ID bigint, SUPPLIER_ID bigint, SERVICE_STATUS char(4), SERVICE char(4), SERVICE_PRODUCT char(4), COMMENT varchar(255)); +DROP TABLE IF EXISTS RELATION; +CREATE TABLE RELATION +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CONSUMER_ID bigint, + SUPPLIER_ID bigint, + SERVICE_STATUS varchar(4), + SERVICE varchar(4), + SERVICE_PRODUCT varchar(4), + COMMENT varchar(255) +); COMMENT ON TABLE RELATION IS 'Договорные отношения'; - COMMENT ON COLUMN RELATION.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN RELATION.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN RELATION.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN RELATION.CONSUMER_ID IS 'Идентификатор Компании пользователя услуги (linked to company)'; - COMMENT ON COLUMN RELATION.SUPPLIER_ID IS 'Идентификатор Компании поставщика услуги (linked to company)'; - COMMENT ON COLUMN RELATION.SERVICE_STATUS IS 'Идентификатор статуса (linked to workflowStatus)'; - COMMENT ON COLUMN RELATION.SERVICE IS 'Идентификатор сервиса (linked to service)'; - COMMENT ON COLUMN RELATION.SERVICE_PRODUCT IS 'Идентификатор продукта (linked to serviceProduct)'; - COMMENT ON COLUMN RELATION.COMMENT IS 'Текст причины'; -- History log of relation - Договорные отношения -CREATE TABLE IF NOT EXISTS RELATION_HISTORY(RELATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CONSUMER_ID bigint, SUPPLIER_ID bigint, SERVICE_STATUS char(4), SERVICE char(4), SERVICE_PRODUCT char(4), COMMENT varchar(255)); +DROP TABLE IF EXISTS RELATION_HISTORY; +CREATE TABLE RELATION_HISTORY +( + RELATION_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CONSUMER_ID bigint, + SUPPLIER_ID bigint, + SERVICE_STATUS varchar(4), + SERVICE varchar(4), + SERVICE_PRODUCT varchar(4), + COMMENT varchar(255) +); COMMENT ON TABLE RELATION_HISTORY IS 'История изменений таблицы relation'; COMMENT ON COLUMN RELATION_HISTORY.RELATION_ID IS 'Идентификатор записи в таблице RELATION'; COMMENT ON COLUMN RELATION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1197,51 +1678,73 @@ COMMENT ON COLUMN RELATION_HISTORY.SERVICE_PRODUCT IS 'Идентификато COMMENT ON COLUMN RELATION_HISTORY.COMMENT IS 'Текст причины'; -- bankAccount - Банковские реквизиты для перечисления денежных средств -CREATE TABLE IF NOT EXISTS BANK_ACCOUNT(ID bigint PRIMARY KEY, ACCOUNT_ID bigint, BANK_IDENTIFICATION_CODE varchar(255), BANK_NAME varchar(255), CORRESPONDENT_ACCOUNT varchar(255), CORRESPONDENT_ACCOUNT_NAME varchar(255), CURRENCY char(4), DESTINATION varchar(255), IBAN varchar(255), INTERNATIONAL_TRANSFER_SIGN char(4), SWIFT_CODE varchar(255), TAXPAYER_IDENTIFICATION_NUMBER varchar(255), TAX_REGISTRATION_REASON_CODE varchar(255)); +DROP TABLE IF EXISTS BANK_ACCOUNT; +CREATE TABLE BANK_ACCOUNT +( + ID bigint PRIMARY KEY, + ACCOUNT_ID bigint, + BANK_IDENTIFICATION_CODE varchar(255), + BANK_NAME varchar(255), + CORRESPONDENT_ACCOUNT varchar(255), + CORRESPONDENT_ACCOUNT_NAME varchar(255), + CURRENCY varchar(4), + DESTINATION varchar(255), + IBAN varchar(255), + INTERNATIONAL_TRANSFER_SIGN varchar(4), + SWIFT_CODE varchar(255), + TAXPAYER_IDENTIFICATION_NUMBER varchar(255), + TAX_REGISTRATION_REASON_CODE varchar(255) +); COMMENT ON TABLE BANK_ACCOUNT IS 'Банковские реквизиты для перечисления денежных средств'; - COMMENT ON COLUMN BANK_ACCOUNT.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN BANK_ACCOUNT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - COMMENT ON COLUMN BANK_ACCOUNT.BANK_IDENTIFICATION_CODE IS 'Банковский идентификационный код (БИК)'; - COMMENT ON COLUMN BANK_ACCOUNT.BANK_NAME IS 'Наименование банка'; - COMMENT ON COLUMN BANK_ACCOUNT.CORRESPONDENT_ACCOUNT IS 'Корреспондентский счет'; - COMMENT ON COLUMN BANK_ACCOUNT.CORRESPONDENT_ACCOUNT_NAME IS 'Наименование корреспондентского счета'; - COMMENT ON COLUMN BANK_ACCOUNT.CURRENCY IS 'Идентификатор валюты (linked to currencyCode)'; - COMMENT ON COLUMN BANK_ACCOUNT.DESTINATION IS 'Назначение'; - COMMENT ON COLUMN BANK_ACCOUNT.IBAN IS 'Международный номер банковского счета'; - COMMENT ON COLUMN BANK_ACCOUNT.INTERNATIONAL_TRANSFER_SIGN IS 'Доступность международных переводов (linked to allowed)'; - COMMENT ON COLUMN BANK_ACCOUNT.SWIFT_CODE IS 'Код SWIFT'; - COMMENT ON COLUMN BANK_ACCOUNT.TAXPAYER_IDENTIFICATION_NUMBER IS 'Идентификационный номер налогоплательщика (ИНН)'; - COMMENT ON COLUMN BANK_ACCOUNT.TAX_REGISTRATION_REASON_CODE IS 'Код причины постановки (КПП)'; -- History log of bankAccount - Банковские реквизиты для перечисления денежных средств -CREATE TABLE IF NOT EXISTS BANK_ACCOUNT_HISTORY(BANK_ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, ACCOUNT_ID bigint, BANK_IDENTIFICATION_CODE varchar(255), BANK_NAME varchar(255), CORRESPONDENT_ACCOUNT varchar(255), CORRESPONDENT_ACCOUNT_NAME varchar(255), CURRENCY char(4), DESTINATION varchar(255), IBAN varchar(255), INTERNATIONAL_TRANSFER_SIGN char(4), SWIFT_CODE varchar(255), TAXPAYER_IDENTIFICATION_NUMBER varchar(255), TAX_REGISTRATION_REASON_CODE varchar(255)); +DROP TABLE IF EXISTS BANK_ACCOUNT_HISTORY; +CREATE TABLE BANK_ACCOUNT_HISTORY +( + BANK_ACCOUNT_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + ACCOUNT_ID bigint, + BANK_IDENTIFICATION_CODE varchar(255), + BANK_NAME varchar(255), + CORRESPONDENT_ACCOUNT varchar(255), + CORRESPONDENT_ACCOUNT_NAME varchar(255), + CURRENCY varchar(4), + DESTINATION varchar(255), + IBAN varchar(255), + INTERNATIONAL_TRANSFER_SIGN varchar(4), + SWIFT_CODE varchar(255), + TAXPAYER_IDENTIFICATION_NUMBER varchar(255), + TAX_REGISTRATION_REASON_CODE varchar(255) +); COMMENT ON TABLE BANK_ACCOUNT_HISTORY IS 'История изменений таблицы bankAccount'; COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.BANK_ACCOUNT_ID IS 'Идентификатор записи в таблице BANK_ACCOUNT'; COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1274,21 +1777,33 @@ COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.TAXPAYER_IDENTIFICATION_NUMBER IS 'Иде COMMENT ON COLUMN BANK_ACCOUNT_HISTORY.TAX_REGISTRATION_REASON_CODE IS 'Код причины постановки (КПП)'; -- informationAccount - Информационные счета -CREATE TABLE IF NOT EXISTS INFORMATION_ACCOUNT(ID bigint PRIMARY KEY, ACCOUNT_ID bigint, CLEARING_ACCOUNT_ID bigint); +DROP TABLE IF EXISTS INFORMATION_ACCOUNT; +CREATE TABLE INFORMATION_ACCOUNT +( + ID bigint PRIMARY KEY, + ACCOUNT_ID bigint, + CLEARING_ACCOUNT_ID bigint +); COMMENT ON TABLE INFORMATION_ACCOUNT IS 'Информационные счета'; - COMMENT ON COLUMN INFORMATION_ACCOUNT.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN INFORMATION_ACCOUNT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - COMMENT ON COLUMN INFORMATION_ACCOUNT.CLEARING_ACCOUNT_ID IS 'Идентификатор клирингового счета (linked to account)'; -- History log of informationAccount - Информационные счета -CREATE TABLE IF NOT EXISTS INFORMATION_ACCOUNT_HISTORY(INFORMATION_ACCOUNT_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, ACCOUNT_ID bigint, CLEARING_ACCOUNT_ID bigint); +DROP TABLE IF EXISTS INFORMATION_ACCOUNT_HISTORY; +CREATE TABLE INFORMATION_ACCOUNT_HISTORY +( + INFORMATION_ACCOUNT_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + ACCOUNT_ID bigint, + CLEARING_ACCOUNT_ID bigint +); COMMENT ON TABLE INFORMATION_ACCOUNT_HISTORY IS 'История изменений таблицы informationAccount'; COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.INFORMATION_ACCOUNT_ID IS 'Идентификатор записи в таблице INFORMATION_ACCOUNT'; COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1301,24 +1816,37 @@ COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.ACCOUNT_ID IS 'Идентифик COMMENT ON COLUMN INFORMATION_ACCOUNT_HISTORY.CLEARING_ACCOUNT_ID IS 'Идентификатор клирингового счета (linked to account)'; -- accountRouting - Маршрутизация счета -CREATE TABLE IF NOT EXISTS ACCOUNT_ROUTING(ID bigint PRIMARY KEY, DESTINATION_ID bigint, RELATION_ID bigint, SOURCE_ID bigint); +DROP TABLE IF EXISTS ACCOUNT_ROUTING; +CREATE TABLE ACCOUNT_ROUTING +( + ID bigint PRIMARY KEY, + DESTINATION_ID bigint, + RELATION_ID bigint, + SOURCE_ID bigint +); COMMENT ON TABLE ACCOUNT_ROUTING IS 'Маршрутизация счета'; - COMMENT ON COLUMN ACCOUNT_ROUTING.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN ACCOUNT_ROUTING.DESTINATION_ID IS 'Счет-назначение (зачисления) (linked to account)'; - COMMENT ON COLUMN ACCOUNT_ROUTING.RELATION_ID IS 'Идентификатор договорных отношений (linked to relation)'; - COMMENT ON COLUMN ACCOUNT_ROUTING.SOURCE_ID IS 'Счет-источник (списания) (linked to account)'; -- History log of accountRouting - Маршрутизация счета -CREATE TABLE IF NOT EXISTS ACCOUNT_ROUTING_HISTORY(ACCOUNT_ROUTING_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, DESTINATION_ID bigint, RELATION_ID bigint, SOURCE_ID bigint); +DROP TABLE IF EXISTS ACCOUNT_ROUTING_HISTORY; +CREATE TABLE ACCOUNT_ROUTING_HISTORY +( + ACCOUNT_ROUTING_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + DESTINATION_ID bigint, + RELATION_ID bigint, + SOURCE_ID bigint +); COMMENT ON TABLE ACCOUNT_ROUTING_HISTORY IS 'История изменений таблицы accountRouting'; COMMENT ON COLUMN ACCOUNT_ROUTING_HISTORY.ACCOUNT_ROUTING_ID IS 'Идентификатор записи в таблице ACCOUNT_ROUTING'; COMMENT ON COLUMN ACCOUNT_ROUTING_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1333,45 +1861,65 @@ COMMENT ON COLUMN ACCOUNT_ROUTING_HISTORY.RELATION_ID IS 'Идентификат COMMENT ON COLUMN ACCOUNT_ROUTING_HISTORY.SOURCE_ID IS 'Счет-источник (списания) (linked to account)'; -- security - Инструменты -CREATE TABLE IF NOT EXISTS SECURITY(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, INSTRUMENT_TYPE char(4), ISSUER_ID bigint, SHORT_NAME varchar(255), FULL_NAME varchar(255), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), SECURITY_SYMBOL varchar(255), WORKFLOW_STATUS char(4)); +DROP TABLE IF EXISTS SECURITY; +CREATE TABLE SECURITY +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + INSTRUMENT_TYPE varchar(4), + ISSUER_ID bigint, + SHORT_NAME varchar(255), + FULL_NAME varchar(255), + SHORT_NAME_ENG varchar(255), + FULL_NAME_ENG varchar(255), + SECURITY_SYMBOL varchar(255), + WORKFLOW_STATUS varchar(4) +); COMMENT ON TABLE SECURITY IS 'Инструменты'; - COMMENT ON COLUMN SECURITY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN SECURITY.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN SECURITY.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN SECURITY.INSTRUMENT_TYPE IS 'Идентификатор типа инструмента (linked to instrumentType)'; - COMMENT ON COLUMN SECURITY.ISSUER_ID IS 'Идентификатор эмитента (linked to company)'; - COMMENT ON COLUMN SECURITY.SHORT_NAME IS 'Краткое наименование инструмента'; - COMMENT ON COLUMN SECURITY.FULL_NAME IS 'Полное наименование инструмента'; - COMMENT ON COLUMN SECURITY.SHORT_NAME_ENG IS 'Краткое наименование инструмента на английском'; - COMMENT ON COLUMN SECURITY.FULL_NAME_ENG IS 'Полное наименование инструмента на английском'; - COMMENT ON COLUMN SECURITY.SECURITY_SYMBOL IS 'Код инструмента'; - COMMENT ON COLUMN SECURITY.WORKFLOW_STATUS IS 'Идентификатор статуса (linked to workflowStatus)'; -- History log of security - Инструменты -CREATE TABLE IF NOT EXISTS SECURITY_HISTORY(SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, INSTRUMENT_TYPE char(4), ISSUER_ID bigint, SHORT_NAME varchar(255), FULL_NAME varchar(255), SHORT_NAME_ENG varchar(255), FULL_NAME_ENG varchar(255), SECURITY_SYMBOL varchar(255), WORKFLOW_STATUS char(4)); +DROP TABLE IF EXISTS SECURITY_HISTORY; +CREATE TABLE SECURITY_HISTORY +( + SECURITY_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + INSTRUMENT_TYPE varchar(4), + ISSUER_ID bigint, + SHORT_NAME varchar(255), + FULL_NAME varchar(255), + SHORT_NAME_ENG varchar(255), + FULL_NAME_ENG varchar(255), + SECURITY_SYMBOL varchar(255), + WORKFLOW_STATUS varchar(4) +); COMMENT ON TABLE SECURITY_HISTORY IS 'История изменений таблицы security'; COMMENT ON COLUMN SECURITY_HISTORY.SECURITY_ID IS 'Идентификатор записи в таблице SECURITY'; COMMENT ON COLUMN SECURITY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1400,21 +1948,33 @@ COMMENT ON COLUMN SECURITY_HISTORY.SECURITY_SYMBOL IS 'Код инструмен COMMENT ON COLUMN SECURITY_HISTORY.WORKFLOW_STATUS IS 'Идентификатор статуса (linked to workflowStatus)'; -- currency - Инструменты Валюты -CREATE TABLE IF NOT EXISTS CURRENCY(ID bigint PRIMARY KEY, COUNTRY_CODE char(4), CURRENCY_CODE char(4)); +DROP TABLE IF EXISTS CURRENCY; +CREATE TABLE CURRENCY +( + ID bigint PRIMARY KEY, + COUNTRY_CODE varchar(4), + CURRENCY_CODE varchar(4) +); COMMENT ON TABLE CURRENCY IS 'Инструменты Валюты'; - COMMENT ON COLUMN CURRENCY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN CURRENCY.COUNTRY_CODE IS 'Идентификатор кода страны (linked to countryCode)'; - COMMENT ON COLUMN CURRENCY.CURRENCY_CODE IS 'Идентификатор кода валюты (linked to currencyCode)'; -- History log of currency - Инструменты Валюты -CREATE TABLE IF NOT EXISTS CURRENCY_HISTORY(CURRENCY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COUNTRY_CODE char(4), CURRENCY_CODE char(4)); +DROP TABLE IF EXISTS CURRENCY_HISTORY; +CREATE TABLE CURRENCY_HISTORY +( + CURRENCY_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + COUNTRY_CODE varchar(4), + CURRENCY_CODE varchar(4) +); COMMENT ON TABLE CURRENCY_HISTORY IS 'История изменений таблицы currency'; COMMENT ON COLUMN CURRENCY_HISTORY.CURRENCY_ID IS 'Идентификатор записи в таблице CURRENCY'; COMMENT ON COLUMN CURRENCY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1427,36 +1987,66 @@ COMMENT ON COLUMN CURRENCY_HISTORY.COUNTRY_CODE IS 'Идентификатор COMMENT ON COLUMN CURRENCY_HISTORY.CURRENCY_CODE IS 'Идентификатор кода валюты (linked to currencyCode)'; -- moneyMarketSecurity - Инструменты Денежного рынка -CREATE TABLE IF NOT EXISTS MONEY_MARKET_SECURITY(ID bigint PRIMARY KEY, SECURITY_ID bigint, DESCRIPTION varchar(255), START_DATE date, END_DATE date, NOMINAL_VALUE numeric(72,2), NOMINAL_CURRENCY bigint, TERM_TYPE char(4)); +DROP TABLE IF EXISTS MONEY_MARKET_SECURITY; +CREATE TABLE MONEY_MARKET_SECURITY +( + ID bigint PRIMARY KEY, + SECURITY_ID bigint, + DESCRIPTION varchar(255), + START_DATE date, + END_DATE date, + NOMINAL_VALUE numeric(72, 2), + NOMINAL_CURRENCY varchar(4), + INSTRUMENT_TYPE varchar(4), + FULL_NAME varchar(255), + SECURITY_SYMBOL varchar(255), + TERM_TYPE varchar(4) +); COMMENT ON TABLE MONEY_MARKET_SECURITY IS 'Инструменты Денежного рынка'; - COMMENT ON COLUMN MONEY_MARKET_SECURITY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN MONEY_MARKET_SECURITY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - COMMENT ON COLUMN MONEY_MARKET_SECURITY.DESCRIPTION IS 'Описание'; - COMMENT ON COLUMN MONEY_MARKET_SECURITY.START_DATE IS 'Дата начала действия'; - COMMENT ON COLUMN MONEY_MARKET_SECURITY.END_DATE IS 'Дата окончания действия'; - COMMENT ON COLUMN MONEY_MARKET_SECURITY.NOMINAL_VALUE IS 'Номинал'; - COMMENT ON COLUMN MONEY_MARKET_SECURITY.NOMINAL_CURRENCY IS 'Валюта номинала (linked to currencyCode)'; +COMMENT ON COLUMN MONEY_MARKET_SECURITY.INSTRUMENT_TYPE IS 'Идентификатор типа инструмента (linked to instrumentType)'; + +COMMENT ON COLUMN MONEY_MARKET_SECURITY.FULL_NAME IS 'Полное наименование инструмента'; + +COMMENT ON COLUMN MONEY_MARKET_SECURITY.SECURITY_SYMBOL IS 'Код инструмента'; COMMENT ON COLUMN MONEY_MARKET_SECURITY.TERM_TYPE IS 'Идентификатор вида инструмента (linked to termType)'; -- History log of moneyMarketSecurity - Инструменты Денежного рынка -CREATE TABLE IF NOT EXISTS MONEY_MARKET_SECURITY_HISTORY(MONEY_MARKET_SECURITY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, SECURITY_ID bigint, DESCRIPTION varchar(255), START_DATE date, END_DATE date, NOMINAL_VALUE numeric(72,2), NOMINAL_CURRENCY bigint, TERM_TYPE char(4)); +DROP TABLE IF EXISTS MONEY_MARKET_SECURITY_HISTORY; +CREATE TABLE MONEY_MARKET_SECURITY_HISTORY +( + MONEY_MARKET_SECURITY_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + SECURITY_ID bigint, + DESCRIPTION varchar(255), + START_DATE date, + END_DATE date, + NOMINAL_VALUE numeric(72, 2), + NOMINAL_CURRENCY varchar(4), + INSTRUMENT_TYPE varchar(4), + FULL_NAME varchar(255), + SECURITY_SYMBOL varchar(255), + TERM_TYPE varchar(4), + ID numeric(72, 2) PRIMARY KEY +); COMMENT ON TABLE MONEY_MARKET_SECURITY_HISTORY IS 'История изменений таблицы moneyMarketSecurity'; COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.MONEY_MARKET_SECURITY_ID IS 'Идентификатор записи в таблице MONEY_MARKET_SECURITY'; COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1476,45 +2066,72 @@ COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.NOMINAL_VALUE IS 'Номинал COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.NOMINAL_CURRENCY IS 'Валюта номинала (linked to currencyCode)'; +COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.INSTRUMENT_TYPE IS 'Идентификатор типа инструмента (linked to instrumentType)'; + +COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.FULL_NAME IS 'Полное наименование инструмента'; + +COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.SECURITY_SYMBOL IS 'Код инструмента'; + COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.TERM_TYPE IS 'Идентификатор вида инструмента (linked to termType)'; --- listing - Листинг инструментов -CREATE TABLE IF NOT EXISTS LISTING(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SECURITY_ID bigint, LOT_SIZE numeric(72,2), MARKET char(4), SYMBOL_CODE varchar(255), SYMBOL_NAME varchar(255), TRADING_CURRENCY char(4), WORKFLOW_STATUS char(4)); -COMMENT ON TABLE LISTING IS 'Листинг инструментов'; +COMMENT ON COLUMN MONEY_MARKET_SECURITY_HISTORY.ID IS 'Размер лота (linked to listing)'; +-- listing - Листинг инструментов +DROP TABLE IF EXISTS LISTING; +CREATE TABLE LISTING +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + SECURITY_ID bigint, + LOT_SIZE numeric(72, 2), + MARKET varchar(4), + SYMBOL_CODE varchar(255), + SYMBOL_NAME varchar(255), + TRADING_CURRENCY varchar(4), + WORKFLOW_STATUS varchar(4) +); +COMMENT ON TABLE LISTING IS 'Листинг инструментов'; COMMENT ON COLUMN LISTING.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN LISTING.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN LISTING.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN LISTING.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; - COMMENT ON COLUMN LISTING.LOT_SIZE IS 'Размер лота'; - COMMENT ON COLUMN LISTING.MARKET IS 'Секция (linked to market)'; - COMMENT ON COLUMN LISTING.SYMBOL_CODE IS 'Код инструмента на торговой площадке'; - COMMENT ON COLUMN LISTING.SYMBOL_NAME IS 'Название инструмента на торговой площадке'; - COMMENT ON COLUMN LISTING.TRADING_CURRENCY IS 'Идентификатор кода валюты расчета (linked to currency)'; - COMMENT ON COLUMN LISTING.WORKFLOW_STATUS IS 'Идентификатор статуса листинга в системе (linked to workflowStatus)'; -- History log of listing - Листинг инструментов -CREATE TABLE IF NOT EXISTS LISTING_HISTORY(LISTING_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SECURITY_ID bigint, LOT_SIZE numeric(72,2), MARKET char(4), SYMBOL_CODE varchar(255), SYMBOL_NAME varchar(255), TRADING_CURRENCY char(4), WORKFLOW_STATUS char(4)); +DROP TABLE IF EXISTS LISTING_HISTORY; +CREATE TABLE LISTING_HISTORY +( + LISTING_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + SECURITY_ID bigint, + LOT_SIZE numeric(72, 2), + MARKET varchar(4), + SYMBOL_CODE varchar(255), + SYMBOL_NAME varchar(255), + TRADING_CURRENCY varchar(4), + WORKFLOW_STATUS varchar(4) +); COMMENT ON TABLE LISTING_HISTORY IS 'История изменений таблицы listing'; COMMENT ON COLUMN LISTING_HISTORY.LISTING_ID IS 'Идентификатор записи в таблице LISTING'; COMMENT ON COLUMN LISTING_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1541,39 +2158,57 @@ COMMENT ON COLUMN LISTING_HISTORY.TRADING_CURRENCY IS 'Идентификато COMMENT ON COLUMN LISTING_HISTORY.WORKFLOW_STATUS IS 'Идентификатор статуса листинга в системе (linked to workflowStatus)'; -- market - Торговые секции -CREATE TABLE IF NOT EXISTS MARKET(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE char(4), SETTLEMENT_CURRENCY char(4), SECTOR char(4)); +DROP TABLE IF EXISTS MARKET; +CREATE TABLE MARKET +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + DESCRIPTION varchar(255), + EXCHANGE_ID bigint, + NAME varchar(255), + CODE varchar(4), + SETTLEMENT_CURRENCY varchar(4), + SECTOR varchar(4) +); COMMENT ON TABLE MARKET IS 'Торговые секции'; - COMMENT ON COLUMN MARKET.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN MARKET.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN MARKET.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN MARKET.DESCRIPTION IS 'Описание'; - COMMENT ON COLUMN MARKET.EXCHANGE_ID IS 'Идентификатор площадки (linked to company)'; - COMMENT ON COLUMN MARKET.NAME IS 'Наименование'; - COMMENT ON COLUMN MARKET.CODE IS 'Секция'; - COMMENT ON COLUMN MARKET.SETTLEMENT_CURRENCY IS 'Валютный код расчетов (linked to currency)'; - COMMENT ON COLUMN MARKET.SECTOR IS 'Идентификатор секции (linked to sector)'; -- History log of market - Торговые секции -CREATE TABLE IF NOT EXISTS MARKET_HISTORY(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE char(4), SETTLEMENT_CURRENCY char(4), SECTOR char(4)); +DROP TABLE IF EXISTS MARKET_HISTORY; +CREATE TABLE MARKET_HISTORY +( + MARKET_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + DESCRIPTION varchar(255), + EXCHANGE_ID bigint, + NAME varchar(255), + CODE varchar(4), + SETTLEMENT_CURRENCY varchar(4), + SECTOR varchar(4) +); COMMENT ON TABLE MARKET_HISTORY IS 'История изменений таблицы market'; COMMENT ON COLUMN MARKET_HISTORY.MARKET_ID IS 'Идентификатор записи в таблице MARKET'; COMMENT ON COLUMN MARKET_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1598,78 +2233,109 @@ COMMENT ON COLUMN MARKET_HISTORY.SETTLEMENT_CURRENCY IS 'Валютный код COMMENT ON COLUMN MARKET_HISTORY.SECTOR IS 'Идентификатор секции (linked to sector)'; -- accountBalance - Информация об остатках ден. средств -CREATE TABLE IF NOT EXISTS ACCOUNT_BALANCE(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE char(4), ACCOUNT varchar(50), OPEN_BALANCE_AMOUNT numeric(72,18), START_BALANCE_AMOUNT numeric(72,18), CLOSE_BALANCE_AMOUNT numeric(72,18), TRADE_BALANCE_AMOUNT numeric(72,18), FREE_BALANCE_AMOUNT numeric(72,18), CHANGE_BALANCE_AMOUNT numeric(72,18), CREDIT_AMOUNT numeric(72,18), DEBIT_AMOUNT numeric(72,18), BALANCE_AMOUNT numeric(72,18), BALANCE_ACCOUNT_TYPE char(4), CLEARING_DATE date, CURRENCY_CODE char(4), TRADING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255)); +DROP TABLE IF EXISTS ACCOUNT_BALANCE; +CREATE TABLE ACCOUNT_BALANCE +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + CREATED_AT timestamp, + UPDATED_AT timestamp, + ACCOUNT_ID bigint, + ACCOUNT_TYPE varchar(4), + ACCOUNT varchar(50), + OPEN_BALANCE_AMOUNT numeric(72, 18), + START_BALANCE_AMOUNT numeric(72, 18), + CLOSE_BALANCE_AMOUNT numeric(72, 18), + TRADE_BALANCE_AMOUNT numeric(72, 18), + FREE_BALANCE_AMOUNT numeric(72, 18), + CHANGE_BALANCE_AMOUNT numeric(72, 18), + CREDIT_AMOUNT numeric(72, 18), + DEBIT_AMOUNT numeric(72, 18), + BALANCE_AMOUNT numeric(72, 18), + BALANCE_ACCOUNT_TYPE varchar(4), + CLEARING_DATE date, + CURRENCY_CODE varchar(4), + TRADING_CODE varchar(255), + SHORT_NAME varchar(255), + FULL_NAME varchar(255) +); COMMENT ON TABLE ACCOUNT_BALANCE IS 'Информация об остатках ден. средств'; - COMMENT ON COLUMN ACCOUNT_BALANCE.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN ACCOUNT_BALANCE.COMPANY_ID IS 'Идентификатор участника (linked to company)'; - COMMENT ON COLUMN ACCOUNT_BALANCE.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN ACCOUNT_BALANCE.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN ACCOUNT_BALANCE.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - COMMENT ON COLUMN ACCOUNT_BALANCE.ACCOUNT_TYPE IS 'Тип счета (linked to account)'; - COMMENT ON COLUMN ACCOUNT_BALANCE.ACCOUNT IS 'Счет'; - COMMENT ON COLUMN ACCOUNT_BALANCE.OPEN_BALANCE_AMOUNT IS 'Начальная сумма после расчетной организации'; - COMMENT ON COLUMN ACCOUNT_BALANCE.START_BALANCE_AMOUNT IS 'Начальная сумма остатков ден. средств на начало работы'; - COMMENT ON COLUMN ACCOUNT_BALANCE.CLOSE_BALANCE_AMOUNT IS 'Конечная сумма остатков ден. средств на счете'; - COMMENT ON COLUMN ACCOUNT_BALANCE.TRADE_BALANCE_AMOUNT IS 'Регистр «Денежные средства Участника клиринга – блокированные»'; - COMMENT ON COLUMN ACCOUNT_BALANCE.FREE_BALANCE_AMOUNT IS 'Регистр «Денежные средства Участника клиринга – свободные»'; - COMMENT ON COLUMN ACCOUNT_BALANCE.CHANGE_BALANCE_AMOUNT IS 'Сумма изменения остатков ден. средств на счете'; - COMMENT ON COLUMN ACCOUNT_BALANCE.CREDIT_AMOUNT IS 'Зачисления'; - COMMENT ON COLUMN ACCOUNT_BALANCE.DEBIT_AMOUNT IS 'Списания'; - COMMENT ON COLUMN ACCOUNT_BALANCE.BALANCE_AMOUNT IS 'Денежные средства Участника клиринга, зарезервированные на торги'; - COMMENT ON COLUMN ACCOUNT_BALANCE.BALANCE_ACCOUNT_TYPE IS 'Тип баланса (linked to balanceAccountType)'; - COMMENT ON COLUMN ACCOUNT_BALANCE.CLEARING_DATE IS 'Дата расчета'; - COMMENT ON COLUMN ACCOUNT_BALANCE.CURRENCY_CODE IS 'Код валюты (linked to currency)'; - COMMENT ON COLUMN ACCOUNT_BALANCE.TRADING_CODE IS 'Торговый код Участника (linked to company)'; - COMMENT ON COLUMN ACCOUNT_BALANCE.SHORT_NAME IS 'Короткое наименование Участника (linked to company)'; - COMMENT ON COLUMN ACCOUNT_BALANCE.FULL_NAME IS 'Полное наименование Участника (linked to company)'; -- History log of accountBalance - Информация об остатках ден. средств -CREATE TABLE IF NOT EXISTS ACCOUNT_BALANCE_HISTORY(ACCOUNT_BALANCE_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE char(4), ACCOUNT varchar(50), OPEN_BALANCE_AMOUNT numeric(72,18), START_BALANCE_AMOUNT numeric(72,18), CLOSE_BALANCE_AMOUNT numeric(72,18), TRADE_BALANCE_AMOUNT numeric(72,18), FREE_BALANCE_AMOUNT numeric(72,18), CHANGE_BALANCE_AMOUNT numeric(72,18), CREDIT_AMOUNT numeric(72,18), DEBIT_AMOUNT numeric(72,18), BALANCE_AMOUNT numeric(72,18), BALANCE_ACCOUNT_TYPE char(4), CLEARING_DATE date, CURRENCY_CODE char(4), TRADING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255)); +DROP TABLE IF EXISTS ACCOUNT_BALANCE_HISTORY; +CREATE TABLE ACCOUNT_BALANCE_HISTORY +( + ACCOUNT_BALANCE_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + CREATED_AT timestamp, + UPDATED_AT timestamp, + ACCOUNT_ID bigint, + ACCOUNT_TYPE varchar(4), + ACCOUNT varchar(50), + OPEN_BALANCE_AMOUNT numeric(72, 18), + START_BALANCE_AMOUNT numeric(72, 18), + CLOSE_BALANCE_AMOUNT numeric(72, 18), + TRADE_BALANCE_AMOUNT numeric(72, 18), + FREE_BALANCE_AMOUNT numeric(72, 18), + CHANGE_BALANCE_AMOUNT numeric(72, 18), + CREDIT_AMOUNT numeric(72, 18), + DEBIT_AMOUNT numeric(72, 18), + BALANCE_AMOUNT numeric(72, 18), + BALANCE_ACCOUNT_TYPE varchar(4), + CLEARING_DATE date, + CURRENCY_CODE varchar(4), + TRADING_CODE varchar(255), + SHORT_NAME varchar(255), + FULL_NAME varchar(255) +); COMMENT ON TABLE ACCOUNT_BALANCE_HISTORY IS 'История изменений таблицы accountBalance'; COMMENT ON COLUMN ACCOUNT_BALANCE_HISTORY.ACCOUNT_BALANCE_ID IS 'Идентификатор записи в таблице ACCOUNT_BALANCE'; COMMENT ON COLUMN ACCOUNT_BALANCE_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1720,1048 +2386,1190 @@ COMMENT ON COLUMN ACCOUNT_BALANCE_HISTORY.SHORT_NAME IS 'Короткое наи COMMENT ON COLUMN ACCOUNT_BALANCE_HISTORY.FULL_NAME IS 'Полное наименование Участника (linked to company)'; -- balanceRegistry - Реестр остатков денежных средств -CREATE TABLE IF NOT EXISTS BALANCE_REGISTRY(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, S_DF01_DATE timestamp, CURRENCY_CODE char(4), SET_HOUSE_NAME varchar(255), ACCOUNT varchar(50), INFO_ACCOUNT varchar(50), REMAINDER_SUM numeric(72,18), BLOCKED_SUM numeric(72,18), UNBLOCKED_SUM numeric(72,18), INN varchar(255), MARKET bigint, MARKET_NAME varchar(255), FULL_NAME varchar(255), TYPE_REMAINS char(4), DOC_NUMBER varchar(255)); +DROP TABLE IF EXISTS BALANCE_REGISTRY; +CREATE TABLE BALANCE_REGISTRY +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + S_DF01_DATE timestamp, + CURRENCY_CODE varchar(4), + SET_HOUSE_NAME varchar(255), + ACCOUNT varchar(50), + INFO_ACCOUNT varchar(50), + REMAINDER_SUM numeric(72, 18), + BLOCKED_SUM numeric(72, 18), + UNBLOCKED_SUM numeric(72, 18), + INN varchar(255), + MARKET bigint, + FULL_NAME varchar(255), + TYPE_REMAINS varchar(4), + DOC_NUMBER varchar(255) +); COMMENT ON TABLE BALANCE_REGISTRY IS 'Реестр остатков денежных средств'; - COMMENT ON COLUMN BALANCE_REGISTRY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN BALANCE_REGISTRY.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN BALANCE_REGISTRY.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN BALANCE_REGISTRY.S_DF01_DATE IS 'Дата создания записи в S_DF01'; - COMMENT ON COLUMN BALANCE_REGISTRY.CURRENCY_CODE IS 'Код валюты (linked to currencyCode)'; - COMMENT ON COLUMN BALANCE_REGISTRY.SET_HOUSE_NAME IS 'Наименование РО'; - COMMENT ON COLUMN BALANCE_REGISTRY.ACCOUNT IS 'Номер торгового/клирингового счета'; - COMMENT ON COLUMN BALANCE_REGISTRY.INFO_ACCOUNT IS 'Номер счета внутреннего учета СПВБ'; - COMMENT ON COLUMN BALANCE_REGISTRY.REMAINDER_SUM IS 'Остаток денежных средст'; - COMMENT ON COLUMN BALANCE_REGISTRY.BLOCKED_SUM IS 'Сумма блокированных денежных средств'; - COMMENT ON COLUMN BALANCE_REGISTRY.UNBLOCKED_SUM IS 'Сумма свободных денежных средств'; - COMMENT ON COLUMN BALANCE_REGISTRY.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; - COMMENT ON COLUMN BALANCE_REGISTRY.MARKET IS 'Сегмент рынка (linked to market)'; - -COMMENT ON COLUMN BALANCE_REGISTRY.MARKET_NAME IS 'Наименование сегмента рынка'; - - COMMENT ON COLUMN BALANCE_REGISTRY.FULL_NAME IS 'Наименование Участника Клиринга'; - COMMENT ON COLUMN BALANCE_REGISTRY.TYPE_REMAINS IS 'Тип остатка'; - COMMENT ON COLUMN BALANCE_REGISTRY.DOC_NUMBER IS 'Номер документа'; -- managementJournal - Журнал монитора и контроля -CREATE TABLE IF NOT EXISTS MANAGEMENT_JOURNAL(ID bigint PRIMARY KEY, COMPANY_ID bigint, USER_ID bigint, MANAGEMENT_JOURNAL_TYPE char(4), MANAGEMENT_JOURNAL_PURPOSE char(4), MANAGEMENT_JOURNAL_STATUS char(4), TEXT varchar(4096), CHANGE_ACCESS_SIGN char(4), CHANGE_DATA_SIGN char(4), EVENT_DATE timestamp, UPDATED_AT timestamp, CREATED_AT timestamp); +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL; +CREATE TABLE MANAGEMENT_JOURNAL +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + USER_ID bigint, + MANAGEMENT_JOURNAL_TYPE varchar(4), + MANAGEMENT_JOURNAL_PURPOSE varchar(4), + MANAGEMENT_JOURNAL_STATUS varchar(4), + TEXT varchar(4096), + CHANGE_ACCESS_SIGN varchar(4), + CHANGE_DATA_SIGN varchar(4), + EVENT_DATE timestamp, + UPDATED_AT timestamp, + CREATED_AT timestamp +); COMMENT ON TABLE MANAGEMENT_JOURNAL IS 'Журнал монитора и контроля'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.ID IS 'Идентификатор'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.COMPANY_ID IS 'Участник (linked to company)'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.USER_ID IS 'Автор сообщения (linked to userCls)'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_TYPE IS 'Тип мониторинга (linked to managementJournalType)'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_PURPOSE IS 'Цель мониторинга (linked to managementJournalPurpose)'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_STATUS IS 'Статус (linked to managementJournalStatus)'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.TEXT IS 'Сообщение'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_ACCESS_SIGN IS 'Признак изменения доступа (linked to allowed)'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_DATA_SIGN IS 'Признак изменения данных (linked to allowed)'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.EVENT_DATE IS 'Дата события ЕГРЮЛ'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.UPDATED_AT IS 'Изменено'; - COMMENT ON COLUMN MANAGEMENT_JOURNAL.CREATED_AT IS 'Создано'; -- inDocumentJournal - Журнал входящих документов -CREATE TABLE IF NOT EXISTS IN_DOCUMENT_JOURNAL(ID bigint PRIMARY KEY, REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), SENDER varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE char(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), COMMENT varchar(255), RECEIPT_DATE date, RESULT_STATUS char(4)); +DROP TABLE IF EXISTS IN_DOCUMENT_JOURNAL; +CREATE TABLE IN_DOCUMENT_JOURNAL +( + ID bigint PRIMARY KEY, + REGISTRATION_DATE date, + REGISTRATION_TIME time, + REGISTRATION_NUMBER bigint, + DOCUMENT_NAME varchar(255), + SENDER varchar(255), + QUANTITY bigint, + CLEARING_CODE varchar(255), + COURIER_TYPE varchar(4), + EMAIL_DATE date, + AMOUNT numeric(72, 2), + DOSSIER_NUMBER varchar(50), + COMMENT varchar(255), + RECEIPT_DATE date, + RESULT_STATUS varchar(4) +); COMMENT ON TABLE IN_DOCUMENT_JOURNAL IS 'Журнал входящих документов'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.ID IS 'Идентификатор'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.SENDER IS 'Полное наименование отправителя'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код Участника Клиринга'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Способ отправки (linked to courierType)'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COMMENT IS 'Комментарий'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RECEIPT_DATE IS 'Дата получения оригинала'; - COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Статус загрузки документа (linked to resultStatus)'; -- outDocumentJournal - Журнал исходящих документов -CREATE TABLE IF NOT EXISTS OUT_DOCUMENT_JOURNAL(ID bigint PRIMARY KEY, REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), ADDRESSEE varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE char(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), POST_DATE date, RESULT_STATUS char(4)); +DROP TABLE IF EXISTS OUT_DOCUMENT_JOURNAL; +CREATE TABLE OUT_DOCUMENT_JOURNAL +( + ID bigint PRIMARY KEY, + REGISTRATION_DATE date, + REGISTRATION_TIME time, + REGISTRATION_NUMBER bigint, + DOCUMENT_NAME varchar(255), + ADDRESSEE varchar(255), + QUANTITY bigint, + CLEARING_CODE varchar(255), + COURIER_TYPE varchar(4), + EMAIL_DATE date, + AMOUNT numeric(72, 2), + DOSSIER_NUMBER varchar(50), + POST_DATE date, + RESULT_STATUS varchar(4) +); COMMENT ON TABLE OUT_DOCUMENT_JOURNAL IS 'Журнал исходящих документов'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ID IS 'Идентификатор'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ADDRESSEE IS 'Полное наименование получателя'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код Участника Клиринга'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Способ отправки (linked to courierType)'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.POST_DATE IS 'Дата почтового отправления'; - COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Статус выгрузки документа (linked to resultStatus)'; -- executionDeposit - Сделки -CREATE TABLE IF NOT EXISTS EXECUTION_DEPOSIT(ID bigint PRIMARY KEY, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME date, CREATED_AT time, UPDATED_AT time, TRADING_DATE date, ACCOUNT_ID bigint, MARKET char(4), PRICE numeric(72,18), AMOUNT bigint, SIDE_ID bigint, SETTLEMENT_CURRENCY_ID bigint, COMPANY_ID bigint, DURATION bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, SECOND_LEG_AMOUNT date, INTEREST_AMOUNT date, SYMBOL_NAME varchar(50), SYMBOL_CODE varchar(20), SECURITIES_DEPOSIT_ID bigint, COUNTER_PARTY_ID bigint, SESSION_ID bigint, COVERAGE_STATUS_ID bigint); +DROP TABLE IF EXISTS EXECUTION_DEPOSIT; +CREATE TABLE EXECUTION_DEPOSIT +( + ID bigint PRIMARY KEY, + EXCHANGE_EXECUTION_ID bigint, + EXCHANGE_EXECUTION_TIME timestamp, + CREATED_AT time, + UPDATED_AT time, + TRADING_DATE date, + CLEARING_DATE date, + ACCOUNT_ID bigint, + MARKET varchar(4), + PRICE numeric(72, 18), + LOTS numeric(72, 2), + QUANTITY numeric(72, 2), + FIRST_LEG_AMOUNT numeric(72, 2), + SECOND_LEG_AMOUNT numeric(72, 2), + INTEREST_AMOUNT numeric(72, 2), + SIDE varchar(4), + SETTLEMENT_CURRENCY varchar(4), + COMPANY_ID bigint, + DURATION bigint, + FIRST_LEG_SETTLEMENT_DATE date, + SECOND_LEG_SETTLEMENT_DATE date, + FIRST_LEG_SETTLEMENT_CODE date, + SECOND_LEG_SETTLEMENT_CODE date, + SECURITY_FULL_NAME varchar(255), + SECURITY_SYMBOL varchar(255), + SECURITY_ID bigint, + COUNTER_PARTY_ID bigint, + COVERAGE_STATUS varchar(4), + SESSION_ID bigint +); COMMENT ON TABLE EXECUTION_DEPOSIT IS 'Сделки'; - COMMENT ON COLUMN EXECUTION_DEPOSIT.ID IS 'ID записи'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделкт в Торговой Системе'; - - -COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_TIME IS 'Время в Торговой Системе'; - +COMMENT ON COLUMN EXECUTION_DEPOSIT.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; COMMENT ON COLUMN EXECUTION_DEPOSIT.CREATED_AT IS 'Время регистрации сделки'; - COMMENT ON COLUMN EXECUTION_DEPOSIT.UPDATED_AT IS 'Время изменения сделки'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.TRADING_DATE IS 'Дата заключения сделки'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.TRADING_DATE IS 'Дата торгов'; - +COMMENT ON COLUMN EXECUTION_DEPOSIT.CLEARING_DATE IS 'Дата клиринга'; COMMENT ON COLUMN EXECUTION_DEPOSIT.ACCOUNT_ID IS 'Торговый счет (linked to account)'; - COMMENT ON COLUMN EXECUTION_DEPOSIT.MARKET IS 'Секция финансового инструмента (linked to market)'; - COMMENT ON COLUMN EXECUTION_DEPOSIT.PRICE IS 'Ставка по депозиту'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.LOTS IS 'Количество лотов'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.AMOUNT IS 'Объем сделки'; - - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SIDE_ID IS 'Направление сделки (linked to moneyFlowSide)'; - - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SETTLEMENT_CURRENCY_ID IS 'Валюта расчетов по инструменту (linked to currencyCode)'; - - -COMMENT ON COLUMN EXECUTION_DEPOSIT.COMPANY_ID IS 'Название компании (linked to company)'; - - -COMMENT ON COLUMN EXECUTION_DEPOSIT.DURATION IS 'Срок, дней'; - - -COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; - - -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.QUANTITY IS 'Количество штук'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_AMOUNT IS 'Объем сделки'; COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_AMOUNT IS 'Объем возврата'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.INTEREST_AMOUNT IS 'Объем процентов'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.INTEREST_AMOUNT IS 'Проценты'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SIDE IS 'Направление сделки (linked to moneyFlowSide)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SETTLEMENT_CURRENCY IS 'Валюта расчетов по инструменту (linked to currencyCode)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.SYMBOL_NAME IS 'Наименование инструмента в Торговой Системе'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.COMPANY_ID IS 'Название компании (linked to company)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.DURATION IS 'Срок, дней'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.SYMBOL_CODE IS 'Код инструмента в Торговой Системе'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITIES_DEPOSIT_ID IS 'Наименование финансового инструмента (linked to security)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.FIRST_LEG_SETTLEMENT_CODE IS 'Код расчетов при размещении'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECOND_LEG_SETTLEMENT_CODE IS 'Код расчетов при возврате'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_ID IS 'Имя фирмы-партнера, с которым заключена сделка (linked to company)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_FULL_NAME IS 'Наименование инструмента'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.SESSION_ID IS 'Сессия (linked to moneyMarketSession)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SECURITY_ID IS 'Финансовый инструмент (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_ID IS 'Имя компании-партнера, с которым заключена сделка (linked to company)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.COVERAGE_STATUS_ID IS 'Cтатус достаточности обеспечения (linked to allowed)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.COVERAGE_STATUS IS 'Cтатус достаточности обеспечения (linked to allowed)'; --- executionDepositRegister - Реестр сделок -CREATE TABLE IF NOT EXISTS EXECUTION_DEPOSIT_REGISTER(ID bigint PRIMARY KEY, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME date, CREATED_AT time, UPDATED_AT time, TRADING_DATE date, CLEARING_DATE date, ACCOUNT_ID bigint, MARKET char(4), PRICE numeric(72,18), AMOUNT bigint, SIDE_ID bigint, SETTLEMENT_CURRENCY_ID bigint, COMPANY_ID bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, SYMBOL_NAME varchar(50), SYMBOL_CODE varchar(20), SECURITIES_DEPOSIT_ID bigint, COUNTER_PARTY_ID bigint, COVERAGE_STATUS_ID bigint, SESSION_ID bigint); -COMMENT ON TABLE EXECUTION_DEPOSIT_REGISTER IS 'Реестр сделок'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SESSION_ID IS 'Идентификатор сессии (linked to moneyMarketSession)'; +-- dealRegister - Реестр сделок +DROP TABLE IF EXISTS DEAL_REGISTER; +CREATE TABLE DEAL_REGISTER +( + ID bigint PRIMARY KEY, + CREATED_AT time, + UPDATED_AT time, + CLEARING_DATE date, + EXECUTION_ID bigint, + EXCHANGE_EXECUTION_ID bigint, + EXCHANGE_EXECUTION_TIME timestamp, + TRADING_DATE date, + ACCOUNT varchar(50), + MARKET varchar(4), + PRICE numeric(72, 18), + AMOUNT numeric(72, 2), + SIDE varchar(4), + SETTLEMENT_CURRENCY varchar(4), + COMPANY_ID bigint, + FIRST_LEG_SETTLEMENT_DATE date, + SECOND_LEG_SETTLEMENT_DATE date, + SECURITY_FULL_NAME varchar(255), + SECURITY_SYMBOL varchar(255), + SECURITY_ID bigint, + COUNTER_PARTY_ID bigint, + COVERAGE_STATUS varchar(4), + SESSION_ID bigint +); +COMMENT ON TABLE DEAL_REGISTER IS 'Реестр сделок'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.ID IS 'ID записи'; +COMMENT ON COLUMN DEAL_REGISTER.ID IS 'ID записи'; +COMMENT ON COLUMN DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделкт в Торговой Системе'; +COMMENT ON COLUMN DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; +COMMENT ON COLUMN DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время в Торговой Системе'; +COMMENT ON COLUMN DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; +COMMENT ON COLUMN DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.CREATED_AT IS 'Время регистрации сделки'; +COMMENT ON COLUMN DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; +COMMENT ON COLUMN DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.UPDATED_AT IS 'Время изменения сделки'; +COMMENT ON COLUMN DEAL_REGISTER.ACCOUNT IS 'Торговый счет'; +COMMENT ON COLUMN DEAL_REGISTER.MARKET IS 'Секция финансового инструмента (linked to market)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.TRADING_DATE IS 'Дата торгов'; +COMMENT ON COLUMN DEAL_REGISTER.PRICE IS 'Ставка по депозиту'; +COMMENT ON COLUMN DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.CLEARING_DATE IS 'Дата клиринга'; +COMMENT ON COLUMN DEAL_REGISTER.SIDE IS 'Направление сделки (linked to moneyFlowSide)'; +COMMENT ON COLUMN DEAL_REGISTER.SETTLEMENT_CURRENCY IS 'Валюта расчетов по инструменту (linked to currencyCode)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.ACCOUNT_ID IS 'Торговый счет (linked to account)'; +COMMENT ON COLUMN DEAL_REGISTER.COMPANY_ID IS 'Название компании (linked to company)'; +COMMENT ON COLUMN DEAL_REGISTER.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.MARKET IS 'Секция финансового инструмента (linked to market)'; +COMMENT ON COLUMN DEAL_REGISTER.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; +COMMENT ON COLUMN DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.PRICE IS 'Ставка по депозиту'; +COMMENT ON COLUMN DEAL_REGISTER.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; +COMMENT ON COLUMN DEAL_REGISTER.SECURITY_ID IS 'Финансовый инструмент (linked to security)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.AMOUNT IS 'Объем сделки'; +COMMENT ON COLUMN DEAL_REGISTER.COUNTER_PARTY_ID IS 'Имя компании-партнера, с которым заключена сделка (linked to company)'; +COMMENT ON COLUMN DEAL_REGISTER.COVERAGE_STATUS IS 'Cтатус достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.SIDE_ID IS 'Направление заявки (linked to moneyFlowSide)'; +COMMENT ON COLUMN DEAL_REGISTER.SESSION_ID IS 'Идентификатор сессии (linked to moneyMarketSession)'; +-- admittedDealRegister - Реестр сделок, допущенных к клирингу +DROP TABLE IF EXISTS ADMITTED_DEAL_REGISTER; +CREATE TABLE ADMITTED_DEAL_REGISTER +( + ID bigint PRIMARY KEY, + CREATED_AT time, + UPDATED_AT time, + CLEARING_DATE date, + EXECUTION_ID bigint, + COMPANY_FULL_NAME varchar(255), + TRADING_DATE date, + EXCHANGE_EXECUTION_ID bigint, + EXCHANGE_EXECUTION_TIME timestamp, + SECURITY_SYMBOL varchar(255), + SECURITY_FULL_NAME varchar(255), + SELLER_FULL_NAME varchar(255), + SELLER_CLEARING_CODE varchar(255), + SELLER_ACCOUNT varchar(50), + BUYER_FULL_NAME varchar(255), + BUYER_CLEARING_CODE varchar(255), + BUYER_ACCOUNT varchar(50), + AMOUNT numeric(72, 2) +); +COMMENT ON TABLE ADMITTED_DEAL_REGISTER IS 'Реестр сделок, допущенных к клирингу'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.SETTLEMENT_CURRENCY_ID IS 'Валюта расчетов по инструменту (linked to currencyCode)'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.ID IS 'ID записи'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.COMPANY_ID IS 'Название компании (linked to company)'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.SYMBOL_NAME IS 'Наименование инструмента в Торговой Системе'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.SYMBOL_CODE IS 'Код инструмента в Торговой Системе'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.SECURITIES_DEPOSIT_ID IS 'Наименование финансового инструмента (linked to security)'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.COUNTER_PARTY_ID IS 'Имя фирмы-партнера, с которым заключена сделка (linked to company)'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.COVERAGE_STATUS_ID IS 'Cтатус достаточности обеспечения (linked to allowed)'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; +COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_REGISTER.SESSION_ID IS 'Сессия (linked to moneyMarketSession)'; +-- coveredDealRegister - Реестр сделок, прошедших процедуру контроля обеспечения +DROP TABLE IF EXISTS COVERED_DEAL_REGISTER; +CREATE TABLE COVERED_DEAL_REGISTER +( + ID bigint PRIMARY KEY, + CREATED_AT time, + UPDATED_AT time, + CLEARING_DATE date, + EXECUTION_ID bigint, + COMPANY_FULL_NAME varchar(255), + TRADING_DATE date, + EXCHANGE_EXECUTION_ID bigint, + EXCHANGE_EXECUTION_TIME timestamp, + SECURITY_SYMBOL varchar(255), + SECURITY_FULL_NAME varchar(255), + SELLER_FULL_NAME varchar(255), + SELLER_CLEARING_CODE varchar(255), + SELLER_ACCOUNT varchar(50), + BUYER_FULL_NAME varchar(255), + BUYER_CLEARING_CODE varchar(255), + BUYER_ACCOUNT varchar(50), + AMOUNT numeric(72, 2) +); +COMMENT ON TABLE COVERED_DEAL_REGISTER IS 'Реестр сделок, прошедших процедуру контроля обеспечения'; --- admittedDeal - Реестр сделок, допущенных к клирингу -CREATE TABLE IF NOT EXISTS ADMITTED_DEAL(COMPANY_FULL_NAME varchar(255), EXECUTION_DEPOSIT_REGISTER_TRADING_DATE timestamp, EXCHANGE_EXECUTION_ID varchar(255), EXCHANGE_EXECUTION_TIME time, SECURITY_ID bigint, SECURITY_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar, BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar, EXECUTION_DEPOSIT_REGISTER_AMOUNT numeric(72,18)); -COMMENT ON TABLE ADMITTED_DEAL IS 'Реестр сделок, допущенных к клирингу'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.ID IS 'ID записи'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; -COMMENT ON COLUMN ADMITTED_DEAL.COMPANY_FULL_NAME IS 'Наименование биржи'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -COMMENT ON COLUMN ADMITTED_DEAL.EXECUTION_DEPOSIT_REGISTER_TRADING_DATE IS 'Дата заключения сделки'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; -COMMENT ON COLUMN ADMITTED_DEAL.EXCHANGE_EXECUTION_ID IS 'Номер сделки'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; -COMMENT ON COLUMN ADMITTED_DEAL.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; -COMMENT ON COLUMN ADMITTED_DEAL.SECURITY_ID IS 'Биржевой код инструмента (linked to security)'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; -COMMENT ON COLUMN ADMITTED_DEAL.SECURITY_NAME IS 'Наименование инструмента'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; -COMMENT ON COLUMN ADMITTED_DEAL.SELLER_FULL_NAME IS 'Наименование продавца'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; -COMMENT ON COLUMN ADMITTED_DEAL.SELLER_CLEARING_CODE IS 'Код продавца'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; +COMMENT ON COLUMN COVERED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; -COMMENT ON COLUMN ADMITTED_DEAL.SELLER_ACCOUNT IS 'Счет продавца'; +-- uncoveredDealRegister - Реестр сделок, не прошедших процедуру контроля обеспечения +DROP TABLE IF EXISTS UNCOVERED_DEAL_REGISTER; +CREATE TABLE UNCOVERED_DEAL_REGISTER +( + ID bigint PRIMARY KEY, + CREATED_AT time, + UPDATED_AT time, + CLEARING_DATE date, + EXECUTION_ID bigint, + COMPANY_FULL_NAME varchar(255), + TRADING_DATE date, + EXCHANGE_EXECUTION_ID bigint, + EXCHANGE_EXECUTION_TIME timestamp, + SECURITY_SYMBOL varchar(255), + SECURITY_FULL_NAME varchar(255), + SELLER_FULL_NAME varchar(255), + SELLER_CLEARING_CODE varchar(255), + SELLER_ACCOUNT varchar(50), + BUYER_FULL_NAME varchar(255), + BUYER_CLEARING_CODE varchar(255), + BUYER_ACCOUNT varchar(50), + AMOUNT numeric(72, 2), + RESULT varchar(4) +); +COMMENT ON TABLE UNCOVERED_DEAL_REGISTER IS 'Реестр сделок, не прошедших процедуру контроля обеспечения'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.ID IS 'ID записи'; -COMMENT ON COLUMN ADMITTED_DEAL.BUYER_FULL_NAME IS 'Наименование продавца'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; -COMMENT ON COLUMN ADMITTED_DEAL.BUYER_CLEARING_CODE IS 'Код продавца'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; -COMMENT ON COLUMN ADMITTED_DEAL.BUYER_ACCOUNT IS 'Счет продавца'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; -COMMENT ON COLUMN ADMITTED_DEAL.EXECUTION_DEPOSIT_REGISTER_AMOUNT IS 'Сумма сделки'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; --- dealPassedControl - Реестр сделок, прошедших процедуру контроля обеспечения -CREATE TABLE IF NOT EXISTS DEAL_PASSED_CONTROL(COMPANY_FULL_NAME varchar(255), EXECUTION_DEPOSIT_REGISTER_TRADING_DATE timestamp, EXCHANGE_EXECUTION_ID varchar(255), EXCHANGE_EXECUTION_TIME time, SECURITY_ID bigint, SECURITY_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar, BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar, EXECUTION_DEPOSIT_REGISTER_AMOUNT numeric(72,18)); -COMMENT ON TABLE DEAL_PASSED_CONTROL IS 'Реестр сделок, прошедших процедуру контроля обеспечения'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; -COMMENT ON COLUMN DEAL_PASSED_CONTROL.COMPANY_FULL_NAME IS 'Наименование биржи'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; -COMMENT ON COLUMN DEAL_PASSED_CONTROL.EXECUTION_DEPOSIT_REGISTER_TRADING_DATE IS 'Дата заключения сделки'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; -COMMENT ON COLUMN DEAL_PASSED_CONTROL.EXCHANGE_EXECUTION_ID IS 'Номер сделки'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; -COMMENT ON COLUMN DEAL_PASSED_CONTROL.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; -COMMENT ON COLUMN DEAL_PASSED_CONTROL.SECURITY_ID IS 'Биржевой код инструмента (linked to security)'; - - -COMMENT ON COLUMN DEAL_PASSED_CONTROL.SECURITY_NAME IS 'Наименование инструмента'; - - -COMMENT ON COLUMN DEAL_PASSED_CONTROL.SELLER_FULL_NAME IS 'Наименование продавца'; - - -COMMENT ON COLUMN DEAL_PASSED_CONTROL.SELLER_CLEARING_CODE IS 'Код продавца'; - - -COMMENT ON COLUMN DEAL_PASSED_CONTROL.SELLER_ACCOUNT IS 'Счет продавца'; - - -COMMENT ON COLUMN DEAL_PASSED_CONTROL.BUYER_FULL_NAME IS 'Наименование продавца'; - - -COMMENT ON COLUMN DEAL_PASSED_CONTROL.BUYER_CLEARING_CODE IS 'Код продавца'; - - -COMMENT ON COLUMN DEAL_PASSED_CONTROL.BUYER_ACCOUNT IS 'Счет продавца'; - - -COMMENT ON COLUMN DEAL_PASSED_CONTROL.EXECUTION_DEPOSIT_REGISTER_AMOUNT IS 'Сумма сделки'; - --- dealUnPassedControl - Реестр сделок, не прошедших процедуру контроля обеспечения -CREATE TABLE IF NOT EXISTS DEAL_UN_PASSED_CONTROL(COMPANY_FULL_NAME varchar(255), EXECUTION_DEPOSIT_REGISTER_TRADING_DATE timestamp, EXCHANGE_EXECUTION_ID varchar(255), EXCHANGE_EXECUTION_TIME time, SECURITY_ID bigint, SECURITY_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar, BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar, EXECUTION_DEPOSIT_REGISTER_AMOUNT numeric(72,18), RESULT varchar(3)); -COMMENT ON TABLE DEAL_UN_PASSED_CONTROL IS 'Реестр сделок, не прошедших процедуру контроля обеспечения'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.COMPANY_FULL_NAME IS 'Наименование биржи'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.EXECUTION_DEPOSIT_REGISTER_TRADING_DATE IS 'Дата заключения сделки'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.EXCHANGE_EXECUTION_ID IS 'Номер сделки'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.SECURITY_ID IS 'Биржевой код инструмента (linked to security)'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.SECURITY_NAME IS 'Наименование инструмента'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.SELLER_FULL_NAME IS 'Наименование продавца'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.SELLER_CLEARING_CODE IS 'Код продавца'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.SELLER_ACCOUNT IS 'Счет продавца'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.BUYER_FULL_NAME IS 'Наименование продавца'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.BUYER_CLEARING_CODE IS 'Код продавца'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.BUYER_ACCOUNT IS 'Счет продавца'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.EXECUTION_DEPOSIT_REGISTER_AMOUNT IS 'Сумма сделки'; - - -COMMENT ON COLUMN DEAL_UN_PASSED_CONTROL.RESULT IS 'Результат клиринга'; +COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.RESULT IS 'Результат клиринга (linked to resultStatus)'; -- reportRegister - Реестр отчетов -CREATE TABLE IF NOT EXISTS REPORT_REGISTER(ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date, COMPANY_FULL_NAME varchar(255), CLEARING_CODE varchar(255), SESSION_ID bigint, COMMENT varchar(255), NAME varchar(255), QUANTITY bigint); +DROP TABLE IF EXISTS REPORT_REGISTER; +CREATE TABLE REPORT_REGISTER +( + ID bigint PRIMARY KEY, + CREATED_AT time, + UPDATED_AT time, + CLEARING_DATE date, + COMPANY_FULL_NAME varchar(255), + CLEARING_CODE varchar(255), + SESSION_ID bigint, + COMMENT varchar(255), + NAME varchar(255), + QUANTITY bigint +); COMMENT ON TABLE REPORT_REGISTER IS 'Реестр отчетов'; - COMMENT ON COLUMN REPORT_REGISTER.ID IS 'ID записи'; - COMMENT ON COLUMN REPORT_REGISTER.CREATED_AT IS 'Время регистрации'; - COMMENT ON COLUMN REPORT_REGISTER.UPDATED_AT IS 'Время изменения'; - COMMENT ON COLUMN REPORT_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - COMMENT ON COLUMN REPORT_REGISTER.COMPANY_FULL_NAME IS 'Наименование участника'; - COMMENT ON COLUMN REPORT_REGISTER.CLEARING_CODE IS 'Код клиринга'; - COMMENT ON COLUMN REPORT_REGISTER.SESSION_ID IS 'Сессия (linked to moneyMarketSession)'; - COMMENT ON COLUMN REPORT_REGISTER.COMMENT IS 'Комментарий'; - COMMENT ON COLUMN REPORT_REGISTER.NAME IS 'Наименование'; - COMMENT ON COLUMN REPORT_REGISTER.QUANTITY IS 'Количество записей'; -- contractRegister - Журнал регистрации договоров -CREATE TABLE IF NOT EXISTS CONTRACT_REGISTER(ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, NAME varchar(255), NUMBER varchar(255), ISSUE_DATE date, COMPANY_FULL_NAME bigint, COMPANY_ID bigint, DOCUMENT_TYPE char(4), ISSUE_PLACE varchar(255), ISSUER varchar(255), ISSUER_CODE varchar(255), PLACE varchar(255), VALID_FROM_DATE date, VALID_TO_DATE date, CLOSE_DATE date, COMMENT varchar(255)); +DROP TABLE IF EXISTS CONTRACT_REGISTER; +CREATE TABLE CONTRACT_REGISTER +( + ID bigint PRIMARY KEY, + CREATED_AT time, + UPDATED_AT time, + NAME varchar(255), + NUMBER varchar(255), + ISSUE_DATE date, + COMPANY_FULL_NAME bigint, + COMPANY_ID bigint, + DOCUMENT_TYPE varchar(4), + ISSUE_PLACE varchar(255), + ISSUER varchar(255), + ISSUER_CODE varchar(255), + PLACE varchar(255), + VALID_FROM_DATE date, + VALID_TO_DATE date, + CLOSE_DATE date, + COMMENT varchar(255) +); COMMENT ON TABLE CONTRACT_REGISTER IS 'Журнал регистрации договоров'; - COMMENT ON COLUMN CONTRACT_REGISTER.ID IS 'Номер записи'; - COMMENT ON COLUMN CONTRACT_REGISTER.CREATED_AT IS 'Дата и время регистрации документа'; - COMMENT ON COLUMN CONTRACT_REGISTER.UPDATED_AT IS 'Время изменения сделки'; - COMMENT ON COLUMN CONTRACT_REGISTER.NAME IS 'Наименование документа'; - COMMENT ON COLUMN CONTRACT_REGISTER.NUMBER IS 'Номер документа'; - COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_DATE IS 'Дата составления'; - COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_FULL_NAME IS 'Наименование лица'; - COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_ID IS 'Идентификатор Компании (linked to company)'; - COMMENT ON COLUMN CONTRACT_REGISTER.DOCUMENT_TYPE IS 'Идентификатор типа документа (linked to documentType)'; - COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_PLACE IS 'Место выдачи'; - COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER IS 'Кем выдан'; - COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER_CODE IS 'Код выдавшего органа'; - COMMENT ON COLUMN CONTRACT_REGISTER.PLACE IS 'Место'; - COMMENT ON COLUMN CONTRACT_REGISTER.VALID_FROM_DATE IS 'Дата начала срока действия'; - COMMENT ON COLUMN CONTRACT_REGISTER.VALID_TO_DATE IS 'Дата окончания срока действия'; - COMMENT ON COLUMN CONTRACT_REGISTER.CLOSE_DATE IS 'Дата расторжения'; - COMMENT ON COLUMN CONTRACT_REGISTER.COMMENT IS 'Место'; -- orderRegistry - Реестра распоряжений -CREATE TABLE IF NOT EXISTS ORDER_REGISTRY(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, CREDIT_LEG_ACCOUNT varchar, CREDIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_CURRENCY_CODE char(4), CREDIT_LEG_DIRECTION bigint, DEBIT_LEG_ACCOUNT varchar, SENDER varchar(255), ADDRESSEE varchar(255), DOCUMENT_NUMBER varchar(255)); +DROP TABLE IF EXISTS ORDER_REGISTRY; +CREATE TABLE ORDER_REGISTRY +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + CREDIT_LEG_ACCOUNT varchar, + CREDIT_LEG_AMOUNT numeric(72, 18), + CREDIT_LEG_CURRENCY_CODE varchar(4), + CREDIT_LEG_DIRECTION bigint, + DEBIT_LEG_ACCOUNT varchar, + SENDER varchar(255), + ADDRESSEE varchar(255), + DOCUMENT_NUMBER varchar(255) +); COMMENT ON TABLE ORDER_REGISTRY IS 'Реестра распоряжений'; - COMMENT ON COLUMN ORDER_REGISTRY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN ORDER_REGISTRY.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN ORDER_REGISTRY.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN ORDER_REGISTRY.CLEARING_DATE IS 'Дата расчета'; - COMMENT ON COLUMN ORDER_REGISTRY.CREDIT_LEG_ACCOUNT IS 'Счет отправителя'; - COMMENT ON COLUMN ORDER_REGISTRY.CREDIT_LEG_AMOUNT IS 'Сумма отправителя'; - COMMENT ON COLUMN ORDER_REGISTRY.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; - COMMENT ON COLUMN ORDER_REGISTRY.CREDIT_LEG_DIRECTION IS 'Направление отправителя (linked to inOutDirection)'; - COMMENT ON COLUMN ORDER_REGISTRY.DEBIT_LEG_ACCOUNT IS 'Счет получателя'; - COMMENT ON COLUMN ORDER_REGISTRY.SENDER IS 'Отправитель'; - COMMENT ON COLUMN ORDER_REGISTRY.ADDRESSEE IS 'Получатель'; - COMMENT ON COLUMN ORDER_REGISTRY.DOCUMENT_NUMBER IS 'Номер документа в сторонней системе'; -- liabilitiesClaimsMoney - Требования и обязательства денежных средств -CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_MONEY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT varchar(50), LIABILITIES_AMOUNT numeric(72,2), REFUND_INTEREST numeric(72,2), ACCRUED_INTEREST numeric(72,2), CLAIMS_AMOUNT numeric(72,2), SETTLEMENT_DATE date, TRADING_DATE date, CURRENCY char(4), TRADING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255)); +DROP TABLE IF EXISTS LIABILITIES_CLAIMS_MONEY; +CREATE TABLE LIABILITIES_CLAIMS_MONEY +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + ACCOUNT_ID bigint, + ACCOUNT_TYPE varchar(4), + ACCOUNT varchar(50), + LIABILITIES_AMOUNT numeric(72, 2), + REFUND_INTEREST numeric(72, 2), + ACCRUED_INTEREST numeric(72, 2), + CLAIMS_AMOUNT numeric(72, 2), + SETTLEMENT_DATE date, + TRADING_DATE date, + CURRENCY varchar(4), + TRADING_CODE varchar(255), + SHORT_NAME varchar(255), + FULL_NAME varchar(255) +); COMMENT ON TABLE LIABILITIES_CLAIMS_MONEY IS 'Требования и обязательства денежных средств'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.COMPANY_ID IS 'Идентификатор участника (linked to company)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLEARING_DATE IS 'Дата клиринга'; COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_TYPE IS 'Тип счета (linked to account)'; - +COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_TYPE IS 'Тип счета (linked to accountType)'; COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT IS 'Счет'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.LIABILITIES_AMOUNT IS 'Регистр «Обязательства по денежным средствам, сформированные по результатам собственных сделок Участника клиринга», исключая проценты'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.REFUND_INTEREST IS 'Проценты к возврату'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCRUED_INTEREST IS 'Начисленные проценты'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLAIMS_AMOUNT IS 'Сумма требований, исключая проценты'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SETTLEMENT_DATE IS 'Дата расчета'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_DATE IS 'Дата торгов'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CURRENCY IS 'Код валюты (linked to currencyCode)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_CODE IS 'Торговый код Участника (linked to company)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SHORT_NAME IS 'Короткое наименование Участника (linked to company)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.FULL_NAME IS 'Полное наименование Участника (linked to company)'; -- liabilitiesClaimsAssets - Требования и обязательства финансовых активов -CREATE TABLE IF NOT EXISTS LIABILITIES_CLAIMS_ASSETS(ID bigint PRIMARY KEY, COMPANY_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, ACCOUNT_ID bigint, ACCOUNT_TYPE bigint, ACCOUNT varchar(50), LIABILITIES_QUANTITY numeric(72,18), CLAIMS_QUANTITY numeric(72,18), CURRENCY char(4), SETTLEMENT_DATE date, TRADING_DATE date, REFUND_DATE date, PRICE numeric(72,18), SECURITY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), CONTRACT varchar(255), COMMENT varchar(255), FULL_NAME varchar(255), PARENT_ID bigint, LIABILITIES_CLAIMS_MONEY_ID bigint, INTEREST_STATUS bigint, CLEARING_STATUS bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint); +DROP TABLE IF EXISTS LIABILITIES_CLAIMS_ASSETS; +CREATE TABLE LIABILITIES_CLAIMS_ASSETS +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + ACCOUNT_ID bigint, + ACCOUNT_TYPE varchar(4), + ACCOUNT varchar(50), + LIABILITIES_QUANTITY numeric(72, 18), + CLAIMS_QUANTITY numeric(72, 18), + CURRENCY varchar(4), + SETTLEMENT_DATE date, + TRADING_DATE date, + REFUND_DATE date, + PRICE numeric(72, 18), + SECURITY_ID bigint, + TRADING_CODE varchar(255), + CLEARING_CODE varchar(255), + SHORT_NAME varchar(255), + CONTRACT varchar(255), + COMMENT varchar(255), + FULL_NAME varchar(255), + PARENT_ID bigint, + LIABILITIES_CLAIMS_MONEY_ID bigint, + INTEREST_STATUS bigint, + CLEARING_STATUS bigint, + PAYMENT_ID bigint, + REFUND_PAYMENT_ID bigint +); COMMENT ON TABLE LIABILITIES_CLAIMS_ASSETS IS 'Требования и обязательства финансовых активов'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.COMPANY_ID IS 'Идентификатор участника (linked to company)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_DATE IS 'Дата клиринга'; COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT_TYPE IS 'Тип счета (linked to account)'; - +COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT_TYPE IS 'Тип счета (linked to accountType)'; COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT IS 'Счет'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_QUANTITY IS 'Сумма обязательств'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLAIMS_QUANTITY IS 'Сумма требований'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CURRENCY IS 'Код валюты (linked to currencyCode)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SETTLEMENT_DATE IS 'Дата расчета'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_DATE IS 'Дата торгов'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_DATE IS 'Дата возврата'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PRICE IS 'Ставка по депозиту'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SECURITY_ID IS 'Инструмент (linked to security)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_CODE IS 'Торговый код Участника (linked to company)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_CODE IS 'Клиринговый код Участника (linked to company)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SHORT_NAME IS 'Короткое наименование Участника (linked to company)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CONTRACT IS 'Номер договора'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.COMMENT IS 'Комментарий'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.FULL_NAME IS 'Полное наименование Участника (linked to company)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PARENT_ID IS 'Идентификатор записи основного договора без разделения'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_CLAIMS_MONEY_ID IS 'Регистры денежных средств (linked to liabilitiesClaimsMoney)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.INTEREST_STATUS IS 'Статус возврата процентов (linked to interestStatus)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_STATUS IS 'Статус клиринга (linked to clearingStatus)'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PAYMENT_ID IS 'Платеж'; - COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_PAYMENT_ID IS 'Обратный платежа'; -- statement - Денежные средства от расчетной организации -CREATE TABLE IF NOT EXISTS STATEMENT(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, STATEMENT_TYPE char(4), COMMENT varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), IN_OUT_DIRECTION char(4), SETTLEMENT_DATE date, AMOUNT numeric(72,2), CASH_MOVEMENT_CURRENCY_CODE char(4), OPERATION_STATUS char(4), ERROR_CODE char(4), ERROR_TEXT char(4), IN_S_DF_ID bigint, OUT_S_DF_ID bigint, IN_OUT_S_DF_TYPE char(4)); +DROP TABLE IF EXISTS STATEMENT; +CREATE TABLE STATEMENT +( + ID bigint PRIMARY KEY, + ADDRESSEE_ID bigint, + SENDER_ID bigint, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + STATEMENT_TYPE varchar(4), + COMMENT varchar(255), + ACCOUNT_ID bigint, + ACCOUNT varchar(50), + IN_OUT_DIRECTION varchar(4), + SETTLEMENT_DATE date, + AMOUNT numeric(72, 2), + CASH_MOVEMENT_CURRENCY_CODE varchar(4), + OPERATION_STATUS varchar(4), + ERROR_CODE varchar(4), + ERROR_TEXT varchar(4), + IN_S_DF_ID bigint, + OUT_S_DF_ID bigint, + IN_OUT_S_DF_TYPE varchar(4) +); COMMENT ON TABLE STATEMENT IS 'Денежные средства от расчетной организации'; - COMMENT ON COLUMN STATEMENT.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN STATEMENT.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - COMMENT ON COLUMN STATEMENT.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - COMMENT ON COLUMN STATEMENT.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN STATEMENT.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN STATEMENT.CLEARING_DATE IS 'Дата расчета'; - COMMENT ON COLUMN STATEMENT.STATEMENT_TYPE IS 'Тип поступления средств (linked to statementType)'; - COMMENT ON COLUMN STATEMENT.COMMENT IS 'Комментарий'; - COMMENT ON COLUMN STATEMENT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - COMMENT ON COLUMN STATEMENT.ACCOUNT IS 'Счет'; - COMMENT ON COLUMN STATEMENT.IN_OUT_DIRECTION IS 'Направление (linked to inOutDirection)'; - COMMENT ON COLUMN STATEMENT.SETTLEMENT_DATE IS 'Дата расчетов'; - COMMENT ON COLUMN STATEMENT.AMOUNT IS 'Объем'; - COMMENT ON COLUMN STATEMENT.CASH_MOVEMENT_CURRENCY_CODE IS 'Код валюты (linked to currency)'; - COMMENT ON COLUMN STATEMENT.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; - COMMENT ON COLUMN STATEMENT.ERROR_CODE IS 'Код ошибки (linked to errorCode)'; - COMMENT ON COLUMN STATEMENT.ERROR_TEXT IS 'Полный текст ошибки (linked to errorText)'; - COMMENT ON COLUMN STATEMENT.IN_S_DF_ID IS 'Идентификатор записи, инициирующей изменения этой таблицы'; - COMMENT ON COLUMN STATEMENT.OUT_S_DF_ID IS 'Идентификатор записи, формируемой в результате изменения этой таблицы'; - COMMENT ON COLUMN STATEMENT.IN_OUT_S_DF_TYPE IS 'Типы входящей и исходящей записей (linked to inOutSDfType)'; -- tradeSettlement - Проводки на базе сделок торговой системы -CREATE TABLE IF NOT EXISTS TRADE_SETTLEMENT(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, AMOUNT numeric(72,2), CURRENCY_CODE char(4), IN_OUT_DIRECTION bigint, ACCOUNT_ID bigint, ACCOUNT varchar(50), OPERATION_STATUS char(4)); +DROP TABLE IF EXISTS TRADE_SETTLEMENT; +CREATE TABLE TRADE_SETTLEMENT +( + ID bigint PRIMARY KEY, + ADDRESSEE_ID bigint, + SENDER_ID bigint, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + AMOUNT numeric(72, 2), + CURRENCY_CODE varchar(4), + IN_OUT_DIRECTION bigint, + ACCOUNT_ID bigint, + ACCOUNT varchar(50), + OPERATION_STATUS varchar(4) +); COMMENT ON TABLE TRADE_SETTLEMENT IS 'Проводки на базе сделок торговой системы'; - COMMENT ON COLUMN TRADE_SETTLEMENT.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN TRADE_SETTLEMENT.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - COMMENT ON COLUMN TRADE_SETTLEMENT.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - COMMENT ON COLUMN TRADE_SETTLEMENT.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN TRADE_SETTLEMENT.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN TRADE_SETTLEMENT.CLEARING_DATE IS 'Дата расчета'; - COMMENT ON COLUMN TRADE_SETTLEMENT.AMOUNT IS 'Объем'; - COMMENT ON COLUMN TRADE_SETTLEMENT.CURRENCY_CODE IS 'Код валюты (linked to currency)'; - COMMENT ON COLUMN TRADE_SETTLEMENT.IN_OUT_DIRECTION IS 'Направление (linked to inOutDirection)'; - COMMENT ON COLUMN TRADE_SETTLEMENT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - COMMENT ON COLUMN TRADE_SETTLEMENT.ACCOUNT IS 'Счет'; - COMMENT ON COLUMN TRADE_SETTLEMENT.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; -- operation - Проводки -CREATE TABLE IF NOT EXISTS OPERATION(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, OPERATION_TYPE_ID bigint, OPERATION_STATUS char(4)); +DROP TABLE IF EXISTS OPERATION; +CREATE TABLE OPERATION +( + ID bigint PRIMARY KEY, + ADDRESSEE_ID bigint, + SENDER_ID bigint, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + OPERATION_TYPE_ID bigint, + OPERATION_STATUS varchar(4) +); COMMENT ON TABLE OPERATION IS 'Проводки'; - COMMENT ON COLUMN OPERATION.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN OPERATION.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - COMMENT ON COLUMN OPERATION.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - COMMENT ON COLUMN OPERATION.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN OPERATION.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN OPERATION.CLEARING_DATE IS 'Дата расчета'; - COMMENT ON COLUMN OPERATION.OPERATION_TYPE_ID IS 'Тип проводки (linked to operationType)'; - COMMENT ON COLUMN OPERATION.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; -- paymentInstruction - Информация о денежных средствах -CREATE TABLE IF NOT EXISTS PAYMENT_INSTRUCTION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SENDER_ID bigint, ADDRESSEE_ID bigint, ADRESSEE_B_I_C varchar(255), PAYEE_BANK_NAME varchar(255), PAYEE_B_I_C varchar(255), ADDRESSEE_BANK_NAME varchar(255), PAYMENT_DATE timestamp, _PAYMENT_PURPOSE varchar(255), SETTLEMENT_DATE date, CREDIT_LEG_AMOUNT bigint, DEBIT_LEG_AMOUNT bigint, CREDIT_LEG_ACCOUNT_ID bigint, CREDIT_CS_ACCOUNT varchar(255), CREDIT_LEG_ACCOUNT varchar(50), DEBIT_LEG_ACCOUNT_ID bigint, DEBIT_CS_ACCOUNT varchar(255), DEBIT_LEG_ACCOUNT varchar(50), CREDIT_LEG_DIRECTION bigint, DEBIT_LEG_DIRECTION bigint, CREDIT_LEG_CURRENCY_CODE char(4), DEBIT_LEG_CURRENCY_CODE char(4), CLEARING_DATE date, TRANSACTION_STATUS char(4), DOCUMENT_NUMBER varchar(255)); +DROP TABLE IF EXISTS PAYMENT_INSTRUCTION; +CREATE TABLE PAYMENT_INSTRUCTION +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + SENDER_ID bigint, + ADDRESSEE_ID bigint, + ADRESSEE_B_I_C varchar(255), + PAYEE_BANK_NAME varchar(255), + PAYEE_B_I_C varchar(255), + ADDRESSEE_BANK_NAME varchar(255), + PAYMENT_DATE timestamp, + PAYMENT_PURPOSE varchar(255), + SETTLEMENT_DATE date, + CREDIT_LEG_AMOUNT bigint, + DEBIT_LEG_AMOUNT bigint, + CREDIT_LEG_ACCOUNT_ID bigint, + CREDIT_CS_ACCOUNT varchar(255), + CREDIT_LEG_ACCOUNT varchar(50), + DEBIT_LEG_ACCOUNT_ID bigint, + DEBIT_CS_ACCOUNT varchar(255), + DEBIT_LEG_ACCOUNT varchar(50), + CREDIT_LEG_DIRECTION bigint, + DEBIT_LEG_DIRECTION bigint, + CREDIT_LEG_CURRENCY_CODE varchar(4), + DEBIT_LEG_CURRENCY_CODE varchar(4), + CLEARING_DATE date, + TRANSACTION_STATUS varchar(4), + DOCUMENT_NUMBER varchar(255) +); COMMENT ON TABLE PAYMENT_INSTRUCTION IS 'Информация о денежных средствах'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADRESSEE_B_I_C IS 'Банковский идентификационный код (БИК) получателя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYEE_BANK_NAME IS 'Банк отправителя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYEE_B_I_C IS 'Банковский идентификационный код (БИК) отправителя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADDRESSEE_BANK_NAME IS 'Банк получателя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYMENT_DATE IS 'Дата и время платежа'; - -COMMENT ON COLUMN PAYMENT_INSTRUCTION._PAYMENT_PURPOSE IS 'Назначение платежа'; - +COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYMENT_PURPOSE IS 'Назначение платежа'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.SETTLEMENT_DATE IS 'Дата расчетов'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_AMOUNT IS 'Сумма отправителя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_AMOUNT IS 'Сумма получателя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_ACCOUNT_ID IS 'Идентификатор счета отправителя (linked to account)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_CS_ACCOUNT IS 'Корреспондентский счет отправителя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_ACCOUNT IS 'Счет отправителя (linked to Account)'; - -COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT_ID IS 'Идентификатор счета отправителя (linked to account)'; - +COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT_ID IS 'Идентификатор счета получателя (linked to account)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_CS_ACCOUNT IS 'Корреспондентский счет получателя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT IS 'Счет получателя (linked to Account)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_DIRECTION IS 'Направление отправителя (linked to inOutDirection)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_DIRECTION IS 'Направление получателя (linked to inOutDirection)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_CURRENCY_CODE IS 'Код валюты получателя (linked to currency)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.CLEARING_DATE IS 'Дата расчета'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.TRANSACTION_STATUS IS 'Cтатус транзакции (linked to transactionStatus)'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.DOCUMENT_NUMBER IS 'Номер документа в сторонней системе'; -- marketData - Итоги торгов -CREATE TABLE IF NOT EXISTS MARKET_DATA(ID bigint PRIMARY KEY, SECURITIES_DEPOSIT_ID bigint, COMPANY_NAME varchar(255), MARKET char(4), COUNTER_PARTY_NUM bigint, TRADES_NUM bigint, AMOUNT numeric(72,2), OPEN_PRICE numeric(72,18), MAX_PRICE numeric(72,18), MIN_PRICE numeric(72,18), CLOSE_PRICE numeric(72,18), AVG_PRICE numeric(72,18), DURATION bigint, CREATED_AT time, UPDATED_AT time, TRADING_DATE date); +DROP TABLE IF EXISTS MARKET_DATA; +CREATE TABLE MARKET_DATA +( + ID bigint PRIMARY KEY, + SECURITIES_DEPOSIT_ID bigint, + COMPANY_NAME varchar(255), + MARKET varchar(4), + COUNTER_PARTY_NUM bigint, + TRADES_NUM bigint, + AMOUNT numeric(72, 2), + OPEN_PRICE numeric(72, 18), + MAX_PRICE numeric(72, 18), + MIN_PRICE numeric(72, 18), + CLOSE_PRICE numeric(72, 18), + AVG_PRICE numeric(72, 18), + DURATION bigint, + CREATED_AT time, + UPDATED_AT time, + TRADING_DATE date +); COMMENT ON TABLE MARKET_DATA IS 'Итоги торгов'; - COMMENT ON COLUMN MARKET_DATA.ID IS 'ID записи'; - COMMENT ON COLUMN MARKET_DATA.SECURITIES_DEPOSIT_ID IS 'Биржевой код инструмента (linked to security)'; - COMMENT ON COLUMN MARKET_DATA.COMPANY_NAME IS 'Инициатор торгов'; - COMMENT ON COLUMN MARKET_DATA.MARKET IS 'Секция (linked to market)'; - COMMENT ON COLUMN MARKET_DATA.COUNTER_PARTY_NUM IS 'Количество участников, заключивших сделки'; - COMMENT ON COLUMN MARKET_DATA.TRADES_NUM IS 'Количество сделок'; - COMMENT ON COLUMN MARKET_DATA.AMOUNT IS 'Объем сделок, руб'; - COMMENT ON COLUMN MARKET_DATA.OPEN_PRICE IS 'Откр.'; - COMMENT ON COLUMN MARKET_DATA.MAX_PRICE IS 'Макс.'; - COMMENT ON COLUMN MARKET_DATA.MIN_PRICE IS 'Мин.'; - COMMENT ON COLUMN MARKET_DATA.CLOSE_PRICE IS 'Закр.'; - COMMENT ON COLUMN MARKET_DATA.AVG_PRICE IS 'Ср.взв.'; - COMMENT ON COLUMN MARKET_DATA.DURATION IS 'Срок, дней'; - COMMENT ON COLUMN MARKET_DATA.CREATED_AT IS 'Время регистрации сделки'; - COMMENT ON COLUMN MARKET_DATA.UPDATED_AT IS 'Время изменения сделки'; - COMMENT ON COLUMN MARKET_DATA.TRADING_DATE IS 'Дата торгов'; -- chargeTariff - Тарифы комиссий -CREATE TABLE IF NOT EXISTS CHARGE_TARIFF(ID bigint PRIMARY KEY, MARKET char(4), CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); +DROP TABLE IF EXISTS CHARGE_TARIFF; +CREATE TABLE CHARGE_TARIFF +( + ID bigint PRIMARY KEY, + MARKET varchar(4), + CLEARING_MEMBER_CATEGORY varchar(4), + CHARGE_TYPE_ID bigint, + CHARGE_RATE numeric(72, 18), + CURRENCY bigint, + VALID_FROM_DATE date, + VALID_TO_DATE date, + CREATED_AT timestamp, + UPDATED_AT timestamp +); COMMENT ON TABLE CHARGE_TARIFF IS 'Тарифы комиссий'; - COMMENT ON COLUMN CHARGE_TARIFF.ID IS 'Идентификатор'; - COMMENT ON COLUMN CHARGE_TARIFF.MARKET IS 'Секция (linked to market)'; - COMMENT ON COLUMN CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; - COMMENT ON COLUMN CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - COMMENT ON COLUMN CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; - COMMENT ON COLUMN CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; - COMMENT ON COLUMN CHARGE_TARIFF.CREATED_AT IS 'Создано'; - COMMENT ON COLUMN CHARGE_TARIFF.UPDATED_AT IS 'Изменено'; -- History log of chargeTariff - Тарифы комиссий -CREATE TABLE IF NOT EXISTS CHARGE_TARIFF_HISTORY(CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, MARKET char(4), CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); +DROP TABLE IF EXISTS CHARGE_TARIFF_HISTORY; +CREATE TABLE CHARGE_TARIFF_HISTORY +( + CHARGE_TARIFF_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + MARKET varchar(4), + CLEARING_MEMBER_CATEGORY varchar(4), + CHARGE_TYPE_ID bigint, + CHARGE_RATE numeric(72, 18), + CURRENCY bigint, + VALID_FROM_DATE date, + VALID_TO_DATE date, + CREATED_AT timestamp, + UPDATED_AT timestamp +); COMMENT ON TABLE CHARGE_TARIFF_HISTORY IS 'История изменений таблицы chargeTariff'; COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице CHARGE_TARIFF'; COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -2788,45 +3596,65 @@ COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CREATED_AT IS 'Создано'; COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.UPDATED_AT IS 'Изменено'; -- individualChargeTariff - Индивидуальные тарифы комиссий для Участника -CREATE TABLE IF NOT EXISTS INDIVIDUAL_CHARGE_TARIFF(ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET char(4), CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); +DROP TABLE IF EXISTS INDIVIDUAL_CHARGE_TARIFF; +CREATE TABLE INDIVIDUAL_CHARGE_TARIFF +( + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + MARKET varchar(4), + CLEARING_MEMBER_CATEGORY varchar(4), + CHARGE_TYPE_ID bigint, + CHARGE_RATE numeric(72, 18), + CURRENCY bigint, + VALID_FROM_DATE date, + VALID_TO_DATE date, + CREATED_AT timestamp, + UPDATED_AT timestamp +); COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF IS 'Индивидуальные тарифы комиссий для Участника'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.ID IS 'Идентификатор'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.COMPANY_ID IS 'Участник (linked to company)'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.MARKET IS 'Секция (linked to market)'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CREATED_AT IS 'Создано'; - COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.UPDATED_AT IS 'Изменено'; -- History log of individualChargeTariff - Индивидуальные тарифы комиссий для Участника -CREATE TABLE IF NOT EXISTS INDIVIDUAL_CHARGE_TARIFF_HISTORY(INDIVIDUAL_CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET char(4), CLEARING_MEMBER_CATEGORY char(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); +DROP TABLE IF EXISTS INDIVIDUAL_CHARGE_TARIFF_HISTORY; +CREATE TABLE INDIVIDUAL_CHARGE_TARIFF_HISTORY +( + INDIVIDUAL_CHARGE_TARIFF_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + COMPANY_ID bigint, + MARKET varchar(4), + CLEARING_MEMBER_CATEGORY varchar(4), + CHARGE_TYPE_ID bigint, + CHARGE_RATE numeric(72, 18), + CURRENCY bigint, + VALID_FROM_DATE date, + VALID_TO_DATE date, + CREATED_AT timestamp, + UPDATED_AT timestamp +); COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF_HISTORY IS 'История изменений таблицы individualChargeTariff'; COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.INDIVIDUAL_CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице INDIVIDUAL_CHARGE_TARIFF'; COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -2855,1127 +3683,1205 @@ COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CREATED_AT IS 'Создано COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.UPDATED_AT IS 'Изменено'; -- companyTariff - Тарифы комиссий в разрезе Участника -CREATE TABLE IF NOT EXISTS COMPANY_TARIFF(ID bigint PRIMARY KEY, MARKET char(4), CLEARING_MEMBER_CATEGORY char(4), FULL_NAME varchar(255), CONTRACT varchar(255), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint); +DROP TABLE IF EXISTS COMPANY_TARIFF; +CREATE TABLE COMPANY_TARIFF +( + ID bigint PRIMARY KEY, + MARKET varchar(4), + CLEARING_MEMBER_CATEGORY varchar(4), + FULL_NAME varchar(255), + CONTRACT varchar(255), + CHARGE_TYPE_ID bigint, + CHARGE_RATE numeric(72, 18), + CURRENCY bigint, + VALID_FROM_DATE date, + VALID_TO_DATE date, + CREATED_AT timestamp, + UPDATED_AT timestamp, + COMPANY_ID bigint +); COMMENT ON TABLE COMPANY_TARIFF IS 'Тарифы комиссий в разрезе Участника'; - COMMENT ON COLUMN COMPANY_TARIFF.ID IS 'Идентификатор'; - COMMENT ON COLUMN COMPANY_TARIFF.MARKET IS 'Секция (linked to market)'; - COMMENT ON COLUMN COMPANY_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - COMMENT ON COLUMN COMPANY_TARIFF.FULL_NAME IS 'Полное наименование Участника (linked to company)'; - COMMENT ON COLUMN COMPANY_TARIFF.CONTRACT IS 'Номер договора'; - COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; - COMMENT ON COLUMN COMPANY_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - COMMENT ON COLUMN COMPANY_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; - COMMENT ON COLUMN COMPANY_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; - COMMENT ON COLUMN COMPANY_TARIFF.CREATED_AT IS 'Создано'; - COMMENT ON COLUMN COMPANY_TARIFF.UPDATED_AT IS 'Изменено'; - COMMENT ON COLUMN COMPANY_TARIFF.COMPANY_ID IS 'Участник (linked to company)'; -- errorText - Полные тексты ошибок -CREATE TABLE IF NOT EXISTS ERROR_TEXT(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, ERROR_CODE char(4), TEXT varchar(255), USER_ID bigint, CLEARING_DATE date); +DROP TABLE IF EXISTS ERROR_TEXT; +CREATE TABLE ERROR_TEXT +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + ERROR_CODE varchar(4), + TEXT varchar(255), + USER_ID bigint, + CLEARING_DATE date +); COMMENT ON TABLE ERROR_TEXT IS 'Полные тексты ошибок'; - COMMENT ON COLUMN ERROR_TEXT.ID IS 'Идентификатор'; - COMMENT ON COLUMN ERROR_TEXT.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN ERROR_TEXT.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN ERROR_TEXT.ERROR_CODE IS 'Код ошибки (linked to errorCode)'; - COMMENT ON COLUMN ERROR_TEXT.TEXT IS 'Полный текст ошибки'; - COMMENT ON COLUMN ERROR_TEXT.USER_ID IS 'Автор сообщения (linked to userCls)'; - COMMENT ON COLUMN ERROR_TEXT.CLEARING_DATE IS 'Текущая дата'; -- sDf01 - ДФ-01 Информация о денежных средствах, находящихся на торговых банковских счетах Участников клиринга -CREATE TABLE IF NOT EXISTS S_DF01(ID bigint PRIMARY KEY, CURR_CODE varchar(12), ACCOUNT varchar(35), REMAINDER varchar(22), DEAL varchar(10), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(30), ACC_TYPE varchar(2), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +DROP TABLE IF EXISTS S_DF01; +CREATE TABLE S_DF01 +( + ID bigint PRIMARY KEY, + CURR_CODE varchar(12), + ACCOUNT varchar(35), + REMAINDER varchar(22), + DEAL varchar(10), + ACC_CODE varchar(5), + DAT varchar(8), + MARKET varchar(1), + ACC_NAME varchar(30), + ACC_TYPE varchar(2), + SUMENGAGE varchar(22), + SUMUNBLOCK varchar(22), + FILE_TYPE varchar(1), + FILE_NAME varchar(255), + GENERATION_TIME timestamp, + GENERATION_ID bigint +); COMMENT ON TABLE S_DF01 IS 'ДФ-01 Информация о денежных средствах, находящихся на торговых банковских счетах Участников клиринга'; - COMMENT ON COLUMN S_DF01.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF01.CURR_CODE IS 'Код валюты'; - COMMENT ON COLUMN S_DF01.ACCOUNT IS 'Код счета участника клиринга'; - COMMENT ON COLUMN S_DF01.REMAINDER IS 'Остаток денежных средств'; - COMMENT ON COLUMN S_DF01.DEAL IS 'Биржевой код участника клиринга'; - COMMENT ON COLUMN S_DF01.ACC_CODE IS 'Не используется в Системе'; - COMMENT ON COLUMN S_DF01.DAT IS 'Дата расчетов'; - COMMENT ON COLUMN S_DF01.MARKET IS 'Биржевая секция'; - COMMENT ON COLUMN S_DF01.ACC_NAME IS 'Наименование участника клиринга'; - COMMENT ON COLUMN S_DF01.ACC_TYPE IS 'Признак счета'; - COMMENT ON COLUMN S_DF01.SUMENGAGE IS 'Не используется в Системе'; - COMMENT ON COLUMN S_DF01.SUMUNBLOCK IS 'Не используется в Системе'; - COMMENT ON COLUMN S_DF01.FILE_TYPE IS 'Не используется в Системе'; - COMMENT ON COLUMN S_DF01.FILE_NAME IS 'Наименование входящего файла'; - COMMENT ON COLUMN S_DF01.GENERATION_TIME IS 'Дата и время обработки файла'; - COMMENT ON COLUMN S_DF01.GENERATION_ID IS 'Идентификатор взаимодействия'; -- sDf02 - ДФ-02 Уведомление об исполнении операции загрузки денежных средств или уведомление об ошибке -CREATE TABLE IF NOT EXISTS S_DF02(ID bigint PRIMARY KEY, CURR_CODE varchar(12), ACCOUNT varchar(35), REMAINDER varchar(22), DEAL varchar(10), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(30), ACC_TYPE varchar(2), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF01_ID bigint); +DROP TABLE IF EXISTS S_DF02; +CREATE TABLE S_DF02 +( + ID bigint PRIMARY KEY, + CURR_CODE varchar(12), + ACCOUNT varchar(35), + REMAINDER varchar(22), + DEAL varchar(10), + ACC_CODE varchar(5), + DAT varchar(8), + MARKET varchar(1), + ACC_NAME varchar(30), + ACC_TYPE varchar(2), + SUMENGAGE varchar(22), + SUMUNBLOCK varchar(22), + FILE_TYPE varchar(1), + RESULT varchar(3), + GENERATION_TIME timestamp, + GENERATION_ID bigint, + IN_S_DF01_ID bigint +); COMMENT ON TABLE S_DF02 IS 'ДФ-02 Уведомление об исполнении операции загрузки денежных средств или уведомление об ошибке'; - COMMENT ON COLUMN S_DF02.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF02.CURR_CODE IS 'Код валюты'; - COMMENT ON COLUMN S_DF02.ACCOUNT IS 'Код счета участника клиринга'; - COMMENT ON COLUMN S_DF02.REMAINDER IS 'Остаток денежных средств'; - COMMENT ON COLUMN S_DF02.DEAL IS 'Биржевой код участника клиринга'; - COMMENT ON COLUMN S_DF02.ACC_CODE IS 'Не используется в Системе'; - COMMENT ON COLUMN S_DF02.DAT IS 'Дата расчетов'; - COMMENT ON COLUMN S_DF02.MARKET IS 'Биржевая секция'; - COMMENT ON COLUMN S_DF02.ACC_NAME IS 'Наименование участника клиринга'; - COMMENT ON COLUMN S_DF02.ACC_TYPE IS 'Признак счета'; - COMMENT ON COLUMN S_DF02.SUMENGAGE IS 'Не используется в Системе'; - COMMENT ON COLUMN S_DF02.SUMUNBLOCK IS 'Не используется в Системе'; - COMMENT ON COLUMN S_DF02.FILE_TYPE IS 'Не используется в Системе'; - COMMENT ON COLUMN S_DF02.RESULT IS 'Результат обработки каждой записи исходного файла ДФ-01'; - COMMENT ON COLUMN S_DF02.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF02.GENERATION_ID IS 'Идентификатор взаимодействия'; - COMMENT ON COLUMN S_DF02.IN_S_DF01_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; -- sDf03 - ДФ-03 Сводное платежное поручение -CREATE TABLE IF NOT EXISTS S_DF03(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), IMP_RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint); +DROP TABLE IF EXISTS S_DF03; +CREATE TABLE S_DF03 +( + ID bigint PRIMARY KEY, + SEG_TYPE varchar(1), + DOC_TYPE varchar, + DOCNM_REF varchar(16), + DOCNMPREV varchar(16), + PRIORITY varchar(1), + SBANKCODE varchar(12), + C_ACC_DEB varchar(35), + SBANKNAM1 varchar(35), + SBANKNAM2 varchar(35), + SBANKNAM3 varchar(35), + SBANKNAM4 varchar(35), + SBANKNAM5 varchar(35), + RBANKCODE varchar(12), + C_ACC_CRED varchar(35), + RBANKNAM1 varchar(35), + RBANKNAM2 varchar(35), + RBANKNAM3 varchar(35), + RBANKNAM4 varchar(35), + RBANKNAM5 varchar(35), + PAY_DATE varchar, + EXT_DATE varchar, + PAY_VAL varchar(12), + SUM_DEB varchar, + SCLIENTN1 varchar(35), + SCLIENTN2 varchar(35), + SCLIENTN3 varchar(35), + SCLIENTN4 varchar(35), + SC_CODE varchar(12), + ACC_DEB varchar(35), + RCLIENTN1 varchar(35), + RCLIENTN2 varchar(35), + RCLIENTN3 varchar(35), + RCLIENTN4 varchar(35), + ACC_KR_1 varchar(35), + ACC_KR_2 varchar(35), + SP_CODE varchar(2), + SPECIF_1 varchar(35), + SPECIF_2 varchar(35), + SPECIF_3 varchar(35), + SPECIF_4 varchar(35), + SPECIF_5 varchar(35), + SPECIF_6 varchar(35), + SEND_TYPE varchar(10), + SERVDATE varchar(8), + DOC_RESULT varchar(2), + IMP_RESULT varchar(3), + GENERATION_TIME timestamp, + GENERATION_ID bigint, + PAYMENT_INSTRUCTION_ID bigint +); COMMENT ON TABLE S_DF03 IS 'ДФ-03 Сводное платежное поручение'; - COMMENT ON COLUMN S_DF03.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF03.SEG_TYPE IS 'Код инициатора в КС'; - COMMENT ON COLUMN S_DF03.DOC_TYPE IS 'Тип документа'; - COMMENT ON COLUMN S_DF03.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; - COMMENT ON COLUMN S_DF03.DOCNMPREV IS 'Ссылка на предшестввующий документ'; - COMMENT ON COLUMN S_DF03.PRIORITY IS 'Приоритет скорости отправления сообщения'; - COMMENT ON COLUMN S_DF03.SBANKCODE IS 'Код банка-плательщика'; - COMMENT ON COLUMN S_DF03.C_ACC_DEB IS 'Счет по дебету'; - COMMENT ON COLUMN S_DF03.SBANKNAM1 IS 'Наименование банка-плательщика'; - COMMENT ON COLUMN S_DF03.SBANKNAM2 IS ''; - COMMENT ON COLUMN S_DF03.SBANKNAM3 IS ''; - COMMENT ON COLUMN S_DF03.SBANKNAM4 IS ''; - COMMENT ON COLUMN S_DF03.SBANKNAM5 IS ''; - COMMENT ON COLUMN S_DF03.RBANKCODE IS 'Код банка-получателя'; - COMMENT ON COLUMN S_DF03.C_ACC_CRED IS 'Счет по кредиту'; - COMMENT ON COLUMN S_DF03.RBANKNAM1 IS 'Наименование банка-получателя'; - COMMENT ON COLUMN S_DF03.RBANKNAM2 IS ''; - COMMENT ON COLUMN S_DF03.RBANKNAM3 IS ''; - COMMENT ON COLUMN S_DF03.RBANKNAM4 IS ''; - COMMENT ON COLUMN S_DF03.RBANKNAM5 IS ''; - COMMENT ON COLUMN S_DF03.PAY_DATE IS 'Платеж-дата'; - COMMENT ON COLUMN S_DF03.EXT_DATE IS 'Дата по выписке'; - COMMENT ON COLUMN S_DF03.PAY_VAL IS 'Валюта платежа'; - COMMENT ON COLUMN S_DF03.SUM_DEB IS 'Сумма дебет '; - COMMENT ON COLUMN S_DF03.SCLIENTN1 IS 'Наименование клиента-плательщика'; - COMMENT ON COLUMN S_DF03.SCLIENTN2 IS ''; - COMMENT ON COLUMN S_DF03.SCLIENTN3 IS ''; - COMMENT ON COLUMN S_DF03.SCLIENTN4 IS ''; - COMMENT ON COLUMN S_DF03.SC_CODE IS 'Код клиента-плательщика'; - COMMENT ON COLUMN S_DF03.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - COMMENT ON COLUMN S_DF03.RCLIENTN1 IS 'Наименование клиента-получателя'; - COMMENT ON COLUMN S_DF03.RCLIENTN2 IS ''; - COMMENT ON COLUMN S_DF03.RCLIENTN3 IS ''; - COMMENT ON COLUMN S_DF03.RCLIENTN4 IS ''; - COMMENT ON COLUMN S_DF03.ACC_KR_1 IS 'Счет кредит'; - COMMENT ON COLUMN S_DF03.ACC_KR_2 IS ''; - COMMENT ON COLUMN S_DF03.SP_CODE IS 'Код назначения платежа'; - COMMENT ON COLUMN S_DF03.SPECIF_1 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF03.SPECIF_2 IS ''; - COMMENT ON COLUMN S_DF03.SPECIF_3 IS ''; - COMMENT ON COLUMN S_DF03.SPECIF_4 IS ''; - COMMENT ON COLUMN S_DF03.SPECIF_5 IS ''; - COMMENT ON COLUMN S_DF03.SPECIF_6 IS ''; - COMMENT ON COLUMN S_DF03.SEND_TYPE IS 'Тип отправления плат. поручения'; - COMMENT ON COLUMN S_DF03.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - COMMENT ON COLUMN S_DF03.DOC_RESULT IS ''; - COMMENT ON COLUMN S_DF03.IMP_RESULT IS 'Результат приема'; - COMMENT ON COLUMN S_DF03.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF03.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf04 - ДФ-04 Подтверждение переводов из Расчетной организации для СПВБ -CREATE TABLE IF NOT EXISTS S_DF04(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), IMP_RESULT varchar(3), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF04 IS 'ДФ-04 Подтверждение переводов из Расчетной организации для СПВБ'; +COMMENT ON COLUMN S_DF03.PAYMENT_INSTRUCTION_ID IS 'Идентификатор соответствующей записи из таблицы-источника (linked to paymentInstruction)'; +-- sDf04 - ДФ-04 Подтверждение переводов из Расчетной организации для СПВБ +DROP TABLE IF EXISTS S_DF04; +CREATE TABLE S_DF04 +( + ID bigint PRIMARY KEY, + SEG_TYPE varchar(1), + DOC_TYPE varchar, + DOCNM_REF varchar(16), + DOCNMPREV varchar(16), + PRIORITY varchar(1), + SBANKCODE varchar(12), + C_ACC_DEB varchar(35), + SBANKNAM1 varchar(35), + SBANKNAM2 varchar(35), + SBANKNAM3 varchar(35), + SBANKNAM4 varchar(35), + SBANKNAM5 varchar(35), + RBANKCODE varchar(12), + C_ACC_CRED varchar(35), + RBANKNAM1 varchar(35), + RBANKNAM2 varchar(35), + RBANKNAM3 varchar(35), + RBANKNAM4 varchar(35), + RBANKNAM5 varchar(35), + PAY_DATE varchar, + EXT_DATE varchar, + PAY_VAL varchar(12), + SUM_DEB varchar, + SCLIENTN1 varchar(35), + SCLIENTN2 varchar(35), + SCLIENTN3 varchar(35), + SCLIENTN4 varchar(35), + SC_CODE varchar(12), + ACC_DEB varchar(35), + RCLIENTN1 varchar(35), + RCLIENTN2 varchar(35), + RCLIENTN3 varchar(35), + RCLIENTN4 varchar(35), + ACC_KR_1 varchar(35), + ACC_KR_2 varchar(35), + SP_CODE varchar(2), + SPECIF_1 varchar(35), + SPECIF_2 varchar(35), + SPECIF_3 varchar(35), + SPECIF_4 varchar(35), + SPECIF_5 varchar(35), + SPECIF_6 varchar(35), + SEND_TYPE varchar(10), + SERVDATE varchar(8), + DOC_RESULT varchar(2), + IMP_RESULT varchar(3), + FILE_NAME varchar(255), + GENERATION_TIME timestamp, + GENERATION_ID bigint +); +COMMENT ON TABLE S_DF04 IS 'ДФ-04 Подтверждение переводов из Расчетной организации для СПВБ'; COMMENT ON COLUMN S_DF04.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF04.SEG_TYPE IS 'Код инициатора в КС'; - COMMENT ON COLUMN S_DF04.DOC_TYPE IS 'Тип документа'; - COMMENT ON COLUMN S_DF04.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; - COMMENT ON COLUMN S_DF04.DOCNMPREV IS 'Ссылка на предшестввующий документ'; - COMMENT ON COLUMN S_DF04.PRIORITY IS 'Приоритет скорости отправления сообщения'; - COMMENT ON COLUMN S_DF04.SBANKCODE IS 'Код банка-плательщика'; - COMMENT ON COLUMN S_DF04.C_ACC_DEB IS 'Счет по дебету'; - COMMENT ON COLUMN S_DF04.SBANKNAM1 IS 'Наименование банка-плательщика'; - COMMENT ON COLUMN S_DF04.SBANKNAM2 IS ''; - COMMENT ON COLUMN S_DF04.SBANKNAM3 IS ''; - COMMENT ON COLUMN S_DF04.SBANKNAM4 IS ''; - COMMENT ON COLUMN S_DF04.SBANKNAM5 IS ''; - COMMENT ON COLUMN S_DF04.RBANKCODE IS 'Код банка-получателя'; - COMMENT ON COLUMN S_DF04.C_ACC_CRED IS 'Счет по кредиту'; - COMMENT ON COLUMN S_DF04.RBANKNAM1 IS 'Наименование банка-получателя'; - COMMENT ON COLUMN S_DF04.RBANKNAM2 IS ''; - COMMENT ON COLUMN S_DF04.RBANKNAM3 IS ''; - COMMENT ON COLUMN S_DF04.RBANKNAM4 IS ''; - COMMENT ON COLUMN S_DF04.RBANKNAM5 IS ''; - COMMENT ON COLUMN S_DF04.PAY_DATE IS 'Платеж-дата'; - COMMENT ON COLUMN S_DF04.EXT_DATE IS 'Дата по выписке'; - COMMENT ON COLUMN S_DF04.PAY_VAL IS 'Валюта платежа'; - COMMENT ON COLUMN S_DF04.SUM_DEB IS 'Сумма дебет '; - COMMENT ON COLUMN S_DF04.SCLIENTN1 IS 'Наименование клиента-плательщика'; - COMMENT ON COLUMN S_DF04.SCLIENTN2 IS ''; - COMMENT ON COLUMN S_DF04.SCLIENTN3 IS ''; - COMMENT ON COLUMN S_DF04.SCLIENTN4 IS ''; - COMMENT ON COLUMN S_DF04.SC_CODE IS 'Код клиента-плательщика'; - COMMENT ON COLUMN S_DF04.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - COMMENT ON COLUMN S_DF04.RCLIENTN1 IS 'Наименование клиента-получателя'; - COMMENT ON COLUMN S_DF04.RCLIENTN2 IS ''; - COMMENT ON COLUMN S_DF04.RCLIENTN3 IS ''; - COMMENT ON COLUMN S_DF04.RCLIENTN4 IS ''; - COMMENT ON COLUMN S_DF04.ACC_KR_1 IS 'Счет кредит'; - COMMENT ON COLUMN S_DF04.ACC_KR_2 IS ''; - COMMENT ON COLUMN S_DF04.SP_CODE IS 'Код назначения платежа'; - COMMENT ON COLUMN S_DF04.SPECIF_1 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF04.SPECIF_2 IS ''; - COMMENT ON COLUMN S_DF04.SPECIF_3 IS ''; - COMMENT ON COLUMN S_DF04.SPECIF_4 IS ''; - COMMENT ON COLUMN S_DF04.SPECIF_5 IS ''; - COMMENT ON COLUMN S_DF04.SPECIF_6 IS ''; - COMMENT ON COLUMN S_DF04.SEND_TYPE IS 'Тип отправления плат. поручения'; - COMMENT ON COLUMN S_DF04.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - COMMENT ON COLUMN S_DF04.DOC_RESULT IS ''; - COMMENT ON COLUMN S_DF04.IMP_RESULT IS 'Результат приема'; - COMMENT ON COLUMN S_DF04.FILE_NAME IS 'Наименование входящего файла'; - COMMENT ON COLUMN S_DF04.GENERATION_TIME IS 'Дата и время обработки файла'; - COMMENT ON COLUMN S_DF04.GENERATION_ID IS 'Идентификатор взаимодействия'; -- sDf05 - ДФ-05 Уведомление о завершении расчетов в ПРЦ -CREATE TABLE IF NOT EXISTS S_DF05(ID bigint PRIMARY KEY, TP numeric(72,18), DT date, TM time, PR varchar(1), GENERATION_TIME timestamp, GENERATION_ID bigint); +DROP TABLE IF EXISTS S_DF05; +CREATE TABLE S_DF05 +( + ID bigint PRIMARY KEY, + TP numeric(72, 18), + DT date, + TM time, + PR varchar(1), + GENERATION_TIME timestamp, + GENERATION_ID bigint +); COMMENT ON TABLE S_DF05 IS 'ДФ-05 Уведомление о завершении расчетов в ПРЦ'; - COMMENT ON COLUMN S_DF05.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF05.TP IS 'Тип документа'; - COMMENT ON COLUMN S_DF05.DT IS 'Дата завершения расчетов'; - COMMENT ON COLUMN S_DF05.TM IS 'Время завершения расчетов'; - COMMENT ON COLUMN S_DF05.PR IS 'Результат обработки запроса'; - COMMENT ON COLUMN S_DF05.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF05.GENERATION_ID IS 'Идентификатор взаимодействия'; -- sDf08 - ДФ-08 Запрос остатков по всем счетам -CREATE TABLE IF NOT EXISTS S_DF08(ID bigint PRIMARY KEY, NUMBER numeric(72,18), DATETIME timestamp, GENERATION_TIME timestamp, GENERATION_ID bigint); +DROP TABLE IF EXISTS S_DF08; +CREATE TABLE S_DF08 +( + ID bigint PRIMARY KEY, + NUMBER numeric(72, 18), + DATETIME timestamp, + GENERATION_TIME timestamp, + GENERATION_ID bigint +); COMMENT ON TABLE S_DF08 IS 'ДФ-08 Запрос остатков по всем счетам'; - COMMENT ON COLUMN S_DF08.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF08.NUMBER IS 'Номер запроса остатков по счетам (linked to currency)'; - COMMENT ON COLUMN S_DF08.DATETIME IS 'Дата и время сообщения'; - COMMENT ON COLUMN S_DF08.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF08.GENERATION_ID IS 'Идентификатор взаимодействия'; -- sDf09 - ДФ-09 Уведомление о поступлении средств на клиринговый счет -CREATE TABLE IF NOT EXISTS S_DF09(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), NUMBER numeric(72,18), _I_N_N numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +DROP TABLE IF EXISTS S_DF09; +CREATE TABLE S_DF09 +( + ID bigint PRIMARY KEY, + ACCOUNT varchar(20), + SUM numeric(72, 18), + MARKET varchar(1), + TYPE varchar(1), + NUMBER numeric(72, 18), + _I_N_N numeric(72, 18), + FILE_NAME varchar(255), + GENERATION_TIME timestamp, + GENERATION_ID bigint +); COMMENT ON TABLE S_DF09 IS 'ДФ-09 Уведомление о поступлении средств на клиринговый счет'; - COMMENT ON COLUMN S_DF09.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF09.ACCOUNT IS 'Номер счета участника торгов'; - COMMENT ON COLUMN S_DF09.SUM IS 'Сумма платежного документа (операции)'; - COMMENT ON COLUMN S_DF09.MARKET IS 'Код сегмента рынка'; - COMMENT ON COLUMN S_DF09.TYPE IS 'Код типа платежного документа (операции)'; - COMMENT ON COLUMN S_DF09.NUMBER IS 'Номер платежного документа (операции)'; - COMMENT ON COLUMN S_DF09._I_N_N IS 'ИНН'; - COMMENT ON COLUMN S_DF09.FILE_NAME IS 'Наименование входящего файла'; - COMMENT ON COLUMN S_DF09.GENERATION_TIME IS 'Дата и время обработки файла'; - COMMENT ON COLUMN S_DF09.GENERATION_ID IS 'Идентификатор взаимодействия'; -- sDf10 - ДФ-10 Подтверждение о загрузке по поступлению на клиринговый счет -CREATE TABLE IF NOT EXISTS S_DF10(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), NUMBER numeric(72,18), _I_N_N numeric(72,18), RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF09_ID bigint); +DROP TABLE IF EXISTS S_DF10; +CREATE TABLE S_DF10 +( + ID bigint PRIMARY KEY, + ACCOUNT varchar(20), + SUM numeric(72, 18), + MARKET varchar(1), + TYPE varchar(1), + NUMBER numeric(72, 18), + _I_N_N numeric(72, 18), + RESULT varchar(3), + GENERATION_TIME timestamp, + GENERATION_ID bigint, + IN_S_DF09_ID bigint +); COMMENT ON TABLE S_DF10 IS 'ДФ-10 Подтверждение о загрузке по поступлению на клиринговый счет'; - COMMENT ON COLUMN S_DF10.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF10.ACCOUNT IS 'Номер счета участника торгов'; - COMMENT ON COLUMN S_DF10.SUM IS 'Сумма платежного документа (операции)'; - COMMENT ON COLUMN S_DF10.MARKET IS 'Код сегмента рынка'; - COMMENT ON COLUMN S_DF10.TYPE IS 'Код типа платежного документа (операции)'; - COMMENT ON COLUMN S_DF10.NUMBER IS 'Номер платежного документа (операции)'; - COMMENT ON COLUMN S_DF10._I_N_N IS 'ИНН'; - COMMENT ON COLUMN S_DF10.RESULT IS 'Результат приема'; - COMMENT ON COLUMN S_DF10.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF10.GENERATION_ID IS 'Идентификатор взаимодействия'; - COMMENT ON COLUMN S_DF10.IN_S_DF09_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; -- sDf11 - ДФ-11 Из КС в ПРЦ Платежное распоряжение на перевод средств с ТБС Участника на КС Инициатора -CREATE TABLE IF NOT EXISTS S_DF11(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), GENERATION_TIME timestamp, GENERATION_ID bigint); +DROP TABLE IF EXISTS S_DF11; +CREATE TABLE S_DF11 +( + ID bigint PRIMARY KEY, + SEG_TYPE varchar(1), + DOC_TYPE varchar, + DOCNM_REF varchar(16), + DOCNMPREV varchar(16), + PRIORITY varchar(1), + SBANKCODE varchar(12), + C_ACC_DEB varchar(35), + SBANKNAM1 varchar(35), + SBANKNAM2 varchar(35), + SBANKNAM3 varchar(35), + SBANKNAM4 varchar(35), + SBANKNAM5 varchar(35), + RBANKCODE varchar(12), + C_ACC_CRED varchar(35), + RBANKNAM1 varchar(35), + RBANKNAM2 varchar(35), + RBANKNAM3 varchar(35), + RBANKNAM4 varchar(35), + RBANKNAM5 varchar(35), + PAY_DATE varchar, + EXT_DATE varchar, + PAY_VAL varchar(12), + SUM_DEB varchar, + SCLIENTN1 varchar(35), + SCLIENTN2 varchar(35), + SCLIENTN3 varchar(35), + SCLIENTN4 varchar(35), + SC_CODE varchar(12), + ACC_DEB varchar(35), + RCLIENTN1 varchar(35), + RCLIENTN2 varchar(35), + RCLIENTN3 varchar(35), + RCLIENTN4 varchar(35), + ACC_KR_1 varchar(35), + ACC_KR_2 varchar(35), + SP_CODE varchar(2), + SPECIF_1 varchar(35), + SPECIF_2 varchar(35), + SPECIF_3 varchar(35), + SPECIF_4 varchar(35), + SPECIF_5 varchar(35), + SPECIF_6 varchar(35), + SEND_TYPE varchar(10), + SERVDATE varchar(8), + DOC_RESULT varchar(2), + GENERATION_TIME timestamp, + GENERATION_ID bigint, + PAYMENT_INSTRUCTION_ID bigint +); COMMENT ON TABLE S_DF11 IS 'ДФ-11 Из КС в ПРЦ Платежное распоряжение на перевод средств с ТБС Участника на КС Инициатора'; - COMMENT ON COLUMN S_DF11.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF11.SEG_TYPE IS 'Код инициатора в КС'; - COMMENT ON COLUMN S_DF11.DOC_TYPE IS 'Тип документа'; - COMMENT ON COLUMN S_DF11.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; - COMMENT ON COLUMN S_DF11.DOCNMPREV IS 'Ссылка на предшестввующий документ'; - COMMENT ON COLUMN S_DF11.PRIORITY IS 'Приоритет скорости отправления сообщения'; - COMMENT ON COLUMN S_DF11.SBANKCODE IS 'Код банка-плательщика'; - COMMENT ON COLUMN S_DF11.C_ACC_DEB IS 'Счет по дебету'; - COMMENT ON COLUMN S_DF11.SBANKNAM1 IS 'Наименование банка-плательщика'; - COMMENT ON COLUMN S_DF11.SBANKNAM2 IS ''; - COMMENT ON COLUMN S_DF11.SBANKNAM3 IS ''; - COMMENT ON COLUMN S_DF11.SBANKNAM4 IS ''; - COMMENT ON COLUMN S_DF11.SBANKNAM5 IS ''; - COMMENT ON COLUMN S_DF11.RBANKCODE IS 'Код банка-получателя'; - COMMENT ON COLUMN S_DF11.C_ACC_CRED IS 'Счет по кредиту'; - COMMENT ON COLUMN S_DF11.RBANKNAM1 IS 'Наименование банка-получателя'; - COMMENT ON COLUMN S_DF11.RBANKNAM2 IS ''; - COMMENT ON COLUMN S_DF11.RBANKNAM3 IS ''; - COMMENT ON COLUMN S_DF11.RBANKNAM4 IS ''; - COMMENT ON COLUMN S_DF11.RBANKNAM5 IS ''; - COMMENT ON COLUMN S_DF11.PAY_DATE IS 'Платеж-дата'; - COMMENT ON COLUMN S_DF11.EXT_DATE IS 'Дата по выписке'; - COMMENT ON COLUMN S_DF11.PAY_VAL IS 'Валюта платежа'; - COMMENT ON COLUMN S_DF11.SUM_DEB IS 'Сумма дебет '; - COMMENT ON COLUMN S_DF11.SCLIENTN1 IS 'Наименование клиента-плательщика'; - COMMENT ON COLUMN S_DF11.SCLIENTN2 IS ''; - COMMENT ON COLUMN S_DF11.SCLIENTN3 IS ''; - COMMENT ON COLUMN S_DF11.SCLIENTN4 IS ''; - COMMENT ON COLUMN S_DF11.SC_CODE IS 'Код клиента-плательщика'; - COMMENT ON COLUMN S_DF11.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - COMMENT ON COLUMN S_DF11.RCLIENTN1 IS 'Наименование клиента-получателя'; - COMMENT ON COLUMN S_DF11.RCLIENTN2 IS ''; - COMMENT ON COLUMN S_DF11.RCLIENTN3 IS ''; - COMMENT ON COLUMN S_DF11.RCLIENTN4 IS ''; - COMMENT ON COLUMN S_DF11.ACC_KR_1 IS 'Счет кредит'; - COMMENT ON COLUMN S_DF11.ACC_KR_2 IS ''; - COMMENT ON COLUMN S_DF11.SP_CODE IS 'Код назначения платежа'; - COMMENT ON COLUMN S_DF11.SPECIF_1 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF11.SPECIF_2 IS ''; - COMMENT ON COLUMN S_DF11.SPECIF_3 IS ''; - COMMENT ON COLUMN S_DF11.SPECIF_4 IS ''; - COMMENT ON COLUMN S_DF11.SPECIF_5 IS ''; - COMMENT ON COLUMN S_DF11.SPECIF_6 IS ''; - COMMENT ON COLUMN S_DF11.SEND_TYPE IS 'Тип отправления плат. поручения'; - COMMENT ON COLUMN S_DF11.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - COMMENT ON COLUMN S_DF11.DOC_RESULT IS ''; - COMMENT ON COLUMN S_DF11.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF11.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf12 - ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК -CREATE TABLE IF NOT EXISTS S_DF12(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF12 IS 'ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК'; +COMMENT ON COLUMN S_DF11.PAYMENT_INSTRUCTION_ID IS 'Идентификатор соответствующей записи из таблицы-источника (linked to paymentInstruction)'; +-- sDf12 - ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК +DROP TABLE IF EXISTS S_DF12; +CREATE TABLE S_DF12 +( + ID bigint PRIMARY KEY, + ACCOUNT varchar(25), + DEAL varchar(4), + STATUS bigint, + FILE_NAME varchar(255), + GENERATION_TIME timestamp, + GENERATION_ID bigint +); +COMMENT ON TABLE S_DF12 IS 'ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК'; COMMENT ON COLUMN S_DF12.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF12.ACCOUNT IS 'Код счета участника клиринга'; - COMMENT ON COLUMN S_DF12.DEAL IS 'Биржевой код участника клиринга'; - COMMENT ON COLUMN S_DF12.STATUS IS 'Статус счета'; - COMMENT ON COLUMN S_DF12.FILE_NAME IS 'Наименование входящего файла'; - COMMENT ON COLUMN S_DF12.GENERATION_TIME IS 'Дата и время обработки файла'; - COMMENT ON COLUMN S_DF12.GENERATION_ID IS 'Идентификатор взаимодействия'; -- sDf13 - ДФ-13 Вывод свободных средств для инициаторов категории В с клирингового счета 30414/7 - платежное поручение АО СПВБ на вывод средств из РО -CREATE TABLE IF NOT EXISTS S_DF13(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), OP_TYPE varchar(2), OP_ORDER varchar(1), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), GENERATION_TIME timestamp, GENERATION_ID bigint); +DROP TABLE IF EXISTS S_DF13; +CREATE TABLE S_DF13 +( + ID bigint PRIMARY KEY, + SEG_TYPE varchar(1), + DOC_TYPE varchar, + DOCNM_REF varchar(16), + DOCNMPREV varchar(16), + PRIORITY varchar(1), + SBANKCODE varchar(12), + C_ACC_DEB varchar(35), + SBANKNAM1 varchar(35), + SBANKNAM2 varchar(35), + SBANKNAM3 varchar(35), + SBANKNAM4 varchar(35), + SBANKNAM5 varchar(35), + RBANKCODE varchar(12), + C_ACC_CRED varchar(35), + RBANKNAM1 varchar(35), + OP_TYPE varchar(2), + OP_ORDER varchar(1), + RBANKNAM4 varchar(35), + RBANKNAM5 varchar(35), + PAY_DATE varchar, + EXT_DATE varchar, + PAY_VAL varchar(12), + SUM_DEB varchar, + SCLIENTN1 varchar(35), + INN_DEB varchar(12), + KPP_DEB varchar(9), + SCLIENTN4 varchar(35), + SC_CODE varchar(12), + ACC_DEB varchar(35), + RCLIENTN1 varchar(35), + INN_CRED varchar(12), + KPP_CRED varchar(9), + RCLIENTN4 varchar(35), + ACC_KR_1 varchar(35), + ACC_KR_2 varchar(35), + SP_CODE varchar(2), + SPECIF_1 varchar(35), + SPECIF_2 varchar(35), + SPECIF_3 varchar(35), + SPECIF_4 varchar(35), + SPECIF_5 varchar(35), + SPECIF_6 varchar(35), + SEND_TYPE varchar(10), + SERVDATE varchar(8), + DOC_RESULT varchar(2), + GENERATION_TIME timestamp, + GENERATION_ID bigint +); COMMENT ON TABLE S_DF13 IS 'ДФ-13 Вывод свободных средств для инициаторов категории В с клирингового счета 30414/7 - платежное поручение АО СПВБ на вывод средств из РО'; - COMMENT ON COLUMN S_DF13.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF13.SEG_TYPE IS 'Код инициатора в КС'; - COMMENT ON COLUMN S_DF13.DOC_TYPE IS 'Тип документа'; - COMMENT ON COLUMN S_DF13.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; - COMMENT ON COLUMN S_DF13.DOCNMPREV IS 'Ссылка на предшестввующий документ'; - COMMENT ON COLUMN S_DF13.PRIORITY IS 'Приоритет скорости отправления сообщения'; - COMMENT ON COLUMN S_DF13.SBANKCODE IS 'Код банка-плательщика'; - COMMENT ON COLUMN S_DF13.C_ACC_DEB IS 'Кор счет банка - плательщика в системе - акт.'; - COMMENT ON COLUMN S_DF13.SBANKNAM1 IS 'Наименование банка-плательщика'; - COMMENT ON COLUMN S_DF13.SBANKNAM2 IS ''; - COMMENT ON COLUMN S_DF13.SBANKNAM3 IS ''; - COMMENT ON COLUMN S_DF13.SBANKNAM4 IS ''; - COMMENT ON COLUMN S_DF13.SBANKNAM5 IS ''; - COMMENT ON COLUMN S_DF13.RBANKCODE IS 'Код банка-получателя'; - COMMENT ON COLUMN S_DF13.C_ACC_CRED IS 'Кор счет банка - получателя в системе - акт. '; - COMMENT ON COLUMN S_DF13.RBANKNAM1 IS 'Наименование банка-получателя'; - COMMENT ON COLUMN S_DF13.OP_TYPE IS 'Вид операции'; - COMMENT ON COLUMN S_DF13.OP_ORDER IS 'Очередность платежа'; - COMMENT ON COLUMN S_DF13.RBANKNAM4 IS ''; - COMMENT ON COLUMN S_DF13.RBANKNAM5 IS ''; - COMMENT ON COLUMN S_DF13.PAY_DATE IS 'Платеж-дата'; - COMMENT ON COLUMN S_DF13.EXT_DATE IS 'Дата по выписке'; - COMMENT ON COLUMN S_DF13.PAY_VAL IS 'Валюта платежа'; - COMMENT ON COLUMN S_DF13.SUM_DEB IS 'Сумма дебет '; - COMMENT ON COLUMN S_DF13.SCLIENTN1 IS 'Наименование клиента-плательщика'; - COMMENT ON COLUMN S_DF13.INN_DEB IS 'ИНН клиента-плательщика'; - COMMENT ON COLUMN S_DF13.KPP_DEB IS 'КПП клиента-плательщика'; - COMMENT ON COLUMN S_DF13.SCLIENTN4 IS ''; - COMMENT ON COLUMN S_DF13.SC_CODE IS 'Код клиента-плательщика'; - COMMENT ON COLUMN S_DF13.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - COMMENT ON COLUMN S_DF13.RCLIENTN1 IS 'Наименование клиента-получателя'; - COMMENT ON COLUMN S_DF13.INN_CRED IS 'ИНН клиента-получателя'; - COMMENT ON COLUMN S_DF13.KPP_CRED IS 'КПП клиента-получателя'; - COMMENT ON COLUMN S_DF13.RCLIENTN4 IS ''; - COMMENT ON COLUMN S_DF13.ACC_KR_1 IS 'Счет получателя'; - COMMENT ON COLUMN S_DF13.ACC_KR_2 IS ''; - COMMENT ON COLUMN S_DF13.SP_CODE IS 'Код назначения платежа'; - COMMENT ON COLUMN S_DF13.SPECIF_1 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF13.SPECIF_2 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF13.SPECIF_3 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF13.SPECIF_4 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF13.SPECIF_5 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF13.SPECIF_6 IS 'Назначение платежа'; - COMMENT ON COLUMN S_DF13.SEND_TYPE IS 'Вид платежа'; - COMMENT ON COLUMN S_DF13.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - COMMENT ON COLUMN S_DF13.DOC_RESULT IS ''; - COMMENT ON COLUMN S_DF13.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF13.GENERATION_ID IS 'Идентификатор взаимодействия'; -- sDf16 - ДФ-16 Формат запроса по возврату депозита или дозачисление/списание денежных средств -CREATE TABLE IF NOT EXISTS S_DF16(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), _I_N_N numeric(72,18), _B_I_C numeric(72,18), _S_P_E_C varchar(255), NUMBER numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +DROP TABLE IF EXISTS S_DF16; +CREATE TABLE S_DF16 +( + ID bigint PRIMARY KEY, + ACCOUNT varchar(20), + SUM numeric(72, 18), + MARKET varchar(1), + TYPE varchar(1), + _I_N_N numeric(72, 18), + _B_I_C numeric(72, 18), + _S_P_E_C varchar(255), + NUMBER numeric(72, 18), + FILE_NAME varchar(255), + GENERATION_TIME timestamp, + GENERATION_ID bigint +); COMMENT ON TABLE S_DF16 IS 'ДФ-16 Формат запроса по возврату депозита или дозачисление/списание денежных средств'; - COMMENT ON COLUMN S_DF16.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF16.ACCOUNT IS 'Номер счета участника торгов'; - COMMENT ON COLUMN S_DF16.SUM IS 'Сумма платежного документа (операции)'; - COMMENT ON COLUMN S_DF16.MARKET IS 'Код сегмента рынка'; - COMMENT ON COLUMN S_DF16.TYPE IS 'Код типа платежного документа (операции)'; - COMMENT ON COLUMN S_DF16._I_N_N IS 'ИНН'; - COMMENT ON COLUMN S_DF16._B_I_C IS 'БИК'; - COMMENT ON COLUMN S_DF16._S_P_E_C IS 'Назначение'; - COMMENT ON COLUMN S_DF16.NUMBER IS 'Номер платежного документа (операции)'; - COMMENT ON COLUMN S_DF16.FILE_NAME IS 'Наименование входящего файла'; - COMMENT ON COLUMN S_DF16.GENERATION_TIME IS 'Дата и время обработки файла'; - COMMENT ON COLUMN S_DF16.GENERATION_ID IS 'Идентификатор взаимодействия'; -- sDf17 - ДФ-17 Формат ответа на запрос по возврату депозита или дозачисление/списание денежных средств -CREATE TABLE IF NOT EXISTS S_DF17(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), _I_N_N numeric(72,18), _B_I_C numeric(72,18), _S_P_E_C varchar(255), NUMBER numeric(72,18), RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF16_ID bigint); +DROP TABLE IF EXISTS S_DF17; +CREATE TABLE S_DF17 +( + ID bigint PRIMARY KEY, + ACCOUNT varchar(20), + SUM numeric(72, 18), + MARKET varchar(1), + TYPE varchar(1), + _I_N_N numeric(72, 18), + _B_I_C numeric(72, 18), + _S_P_E_C varchar(255), + NUMBER numeric(72, 18), + RESULT numeric(72, 18), + GENERATION_TIME timestamp, + GENERATION_ID bigint, + IN_S_DF16_ID bigint +); COMMENT ON TABLE S_DF17 IS 'ДФ-17 Формат ответа на запрос по возврату депозита или дозачисление/списание денежных средств'; - COMMENT ON COLUMN S_DF17.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF17.ACCOUNT IS 'Номер счета участника торгов'; - COMMENT ON COLUMN S_DF17.SUM IS 'Сумма платежного документа (операции)'; - COMMENT ON COLUMN S_DF17.MARKET IS 'Код сегмента рынка'; - COMMENT ON COLUMN S_DF17.TYPE IS 'Код типа платежного документа (операции)'; - COMMENT ON COLUMN S_DF17._I_N_N IS 'ИНН'; - COMMENT ON COLUMN S_DF17._B_I_C IS 'БИК'; - COMMENT ON COLUMN S_DF17._S_P_E_C IS 'Назначение'; - COMMENT ON COLUMN S_DF17.NUMBER IS 'Номер платежного документа (операции)'; - COMMENT ON COLUMN S_DF17.RESULT IS 'Код завершения операции'; - COMMENT ON COLUMN S_DF17.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF17.GENERATION_ID IS 'Идентификатор взаимодействия'; - COMMENT ON COLUMN S_DF17.IN_S_DF16_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; -- sDf18 - ДФ-18 Из КС в ПРЦ Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие) -CREATE TABLE IF NOT EXISTS S_DF18(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF12_ID bigint); +DROP TABLE IF EXISTS S_DF18; +CREATE TABLE S_DF18 +( + ID bigint PRIMARY KEY, + ACCOUNT varchar(25), + DEAL varchar(4), + STATUS bigint, + RESULT numeric(72, 18), + GENERATION_TIME timestamp, + GENERATION_ID bigint, + IN_S_DF12_ID bigint +); COMMENT ON TABLE S_DF18 IS 'ДФ-18 Из КС в ПРЦ Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие)'; - COMMENT ON COLUMN S_DF18.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN S_DF18.ACCOUNT IS 'Код счета участника клиринга'; - COMMENT ON COLUMN S_DF18.DEAL IS 'Биржевой код участника клиринга'; - COMMENT ON COLUMN S_DF18.STATUS IS 'Статус счета'; - COMMENT ON COLUMN S_DF18.RESULT IS 'Код завершения операции'; - COMMENT ON COLUMN S_DF18.GENERATION_TIME IS 'Дата и время создания записи'; - COMMENT ON COLUMN S_DF18.GENERATION_ID IS 'Идентификатор взаимодействия'; - COMMENT ON COLUMN S_DF18.IN_S_DF12_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; --- trade_arqa - Выгрузка сделок из торговой системы -CREATE TABLE IF NOT EXISTS TRADE_ARQA(TRADE_NUM numeric(72,18), SEC_CODE varchar(255), TRADE_DATE_TIME timestamp, SETTLE_DATE date, PRICE numeric(72,18), VALUE numeric(72,18), QTY numeric(72,18), ACCRUEDINT numeric(72,18), FIRM_ID varchar(255), CLIENT_CODE varchar(255), EXCHANGE_COMMISSION numeric(72,18), CLASS_CODE varchar(255), OPERATION varchar(255), ISSUE_ACCOUNT varchar(255), MONEY_ACCOUNT varchar(255), TRADE_TYPE char(4), DAYS_TO_MAT_DATE numeric(72,18), COLLATERAL char(4), SETTLE_CODE varchar(255)); -COMMENT ON TABLE TRADE_ARQA IS 'Выгрузка сделок из торговой системы'; +-- s_trade - Сделки из Торговой системы +DROP TABLE IF EXISTS S_TRADE; +CREATE TABLE S_TRADE +( + ID bigint PRIMARY KEY, + TRADE_NUM bigint, + SEC_CODE varchar(255), + TRADE_DATE_TIME timestamp, + SETTLE_DATE date, + PRICE numeric(72, 18), + VALUE numeric(72, 2), + QTY numeric(72, 2), + ACCRUEDINT numeric(72, 18), + FIRM_ID varchar(255), + CLIENT_CODE varchar(255), + EXCHANGE_COMMISSION numeric(72, 2), + CLASS_CODE varchar(255), + OPERATION varchar(255), + ISSUE_ACCOUNT varchar(50), + MONEY_ACCOUNT varchar(50), + TRADE_TYPE varchar(50), + DAYS_TO_MAT_DATE bigint, + COLLATERAL varchar(50), + SETTLE_CODE varchar(50) +); +COMMENT ON TABLE S_TRADE IS 'Сделки из Торговой системы'; +COMMENT ON COLUMN S_TRADE.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN TRADE_ARQA.TRADE_NUM IS 'Номер сделки'; +COMMENT ON COLUMN S_TRADE.TRADE_NUM IS 'Номер сделки'; +COMMENT ON COLUMN S_TRADE.SEC_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN TRADE_ARQA.SEC_CODE IS 'Код ценной бумаги'; +COMMENT ON COLUMN S_TRADE.TRADE_DATE_TIME IS 'Дата-время сделки'; +COMMENT ON COLUMN S_TRADE.SETTLE_DATE IS 'Плановая дата исполнения сделки'; -COMMENT ON COLUMN TRADE_ARQA.TRADE_DATE_TIME IS 'Дата-время сделки'; +COMMENT ON COLUMN S_TRADE.PRICE IS 'Цена сделки'; +COMMENT ON COLUMN S_TRADE.VALUE IS 'Сумма сделки'; -COMMENT ON COLUMN TRADE_ARQA.SETTLE_DATE IS 'Плановая дата исполнения сделки'; +COMMENT ON COLUMN S_TRADE.QTY IS 'Количество лотов по сделке'; +COMMENT ON COLUMN S_TRADE.ACCRUEDINT IS 'НКД за 1 ценную бумагу'; -COMMENT ON COLUMN TRADE_ARQA.PRICE IS 'Цена сделки'; +COMMENT ON COLUMN S_TRADE.FIRM_ID IS 'ID клиента в КС'; +COMMENT ON COLUMN S_TRADE.CLIENT_CODE IS 'Код участника торгов = Код участника клиринга = Код участника расчетов'; -COMMENT ON COLUMN TRADE_ARQA.VALUE IS 'Сумма сделки'; +COMMENT ON COLUMN S_TRADE.EXCHANGE_COMMISSION IS 'Комиссия по сделке'; +COMMENT ON COLUMN S_TRADE.CLASS_CODE IS 'Код класса сделки из новой ТС'; -COMMENT ON COLUMN TRADE_ARQA.QTY IS 'Количество лотов по сделке'; +COMMENT ON COLUMN S_TRADE.OPERATION IS 'Тип плеча (Купля/Продажа)'; +COMMENT ON COLUMN S_TRADE.ISSUE_ACCOUNT IS 'Счет для учета ценной бумаги'; -COMMENT ON COLUMN TRADE_ARQA.ACCRUEDINT IS 'НКД за 1 ценную бумагу'; +COMMENT ON COLUMN S_TRADE.MONEY_ACCOUNT IS 'Счет для учета денежных средств'; +COMMENT ON COLUMN S_TRADE.TRADE_TYPE IS 'Первичное размещение/торги'; -COMMENT ON COLUMN TRADE_ARQA.FIRM_ID IS 'ID клиента в КС'; +COMMENT ON COLUMN S_TRADE.DAYS_TO_MAT_DATE IS 'Количество дней до погашения'; +COMMENT ON COLUMN S_TRADE.COLLATERAL IS 'Признак залога (не используется)'; -COMMENT ON COLUMN TRADE_ARQA.CLIENT_CODE IS 'Код участника торгов = Код участника клиринга = Код участника расчетов'; - - -COMMENT ON COLUMN TRADE_ARQA.EXCHANGE_COMMISSION IS 'Комиссия по сделке'; - - -COMMENT ON COLUMN TRADE_ARQA.CLASS_CODE IS 'Код класса сделки из новой ТС'; - - -COMMENT ON COLUMN TRADE_ARQA.OPERATION IS 'Тип плеча (Купля/Продажа)'; - - -COMMENT ON COLUMN TRADE_ARQA.ISSUE_ACCOUNT IS 'Счет для учета ценной бумаги'; - - -COMMENT ON COLUMN TRADE_ARQA.MONEY_ACCOUNT IS 'Счет для учета денежных средств'; - - -COMMENT ON COLUMN TRADE_ARQA.TRADE_TYPE IS 'Первичное размещение/торги'; - - -COMMENT ON COLUMN TRADE_ARQA.DAYS_TO_MAT_DATE IS 'Количество дней до погашения'; - - -COMMENT ON COLUMN TRADE_ARQA.COLLATERAL IS 'Признак залога (не используется)'; - - -COMMENT ON COLUMN TRADE_ARQA.SETTLE_CODE IS 'Код периода сделки из новой ТС'; +COMMENT ON COLUMN S_TRADE.SETTLE_CODE IS 'Код периода сделки из новой ТС'; -- notification - Сообщения -CREATE TABLE IF NOT EXISTS NOTIFICATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE char(4), OBJECT_ID timestamp, NOTIFICATION_STATUS char(4)); +DROP TABLE IF EXISTS NOTIFICATION; +CREATE TABLE NOTIFICATION +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + SENDER_ID bigint, + ADDRESSEE_ID bigint, + OBJECT_TYPE varchar(4), + OBJECT_ID timestamp, + NOTIFICATION_STATUS varchar(4) +); COMMENT ON TABLE NOTIFICATION IS 'Сообщения'; - COMMENT ON COLUMN NOTIFICATION.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN NOTIFICATION.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN NOTIFICATION.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN NOTIFICATION.CLEARING_DATE IS 'Дата'; - COMMENT ON COLUMN NOTIFICATION.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - COMMENT ON COLUMN NOTIFICATION.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - COMMENT ON COLUMN NOTIFICATION.OBJECT_TYPE IS 'Тип объекта (linked to objectType)'; - COMMENT ON COLUMN NOTIFICATION.OBJECT_ID IS 'Идентификатор объекта'; - COMMENT ON COLUMN NOTIFICATION.NOTIFICATION_STATUS IS 'Статус сообщения (linked to notificationStatus)'; -- History log of notification - Сообщения -CREATE TABLE IF NOT EXISTS NOTIFICATION_HISTORY(NOTIFICATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE char(4), OBJECT_ID timestamp, NOTIFICATION_STATUS char(4)); +DROP TABLE IF EXISTS NOTIFICATION_HISTORY; +CREATE TABLE NOTIFICATION_HISTORY +( + NOTIFICATION_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + SENDER_ID bigint, + ADDRESSEE_ID bigint, + OBJECT_TYPE varchar(4), + OBJECT_ID timestamp, + NOTIFICATION_STATUS varchar(4) +); COMMENT ON TABLE NOTIFICATION_HISTORY IS 'История изменений таблицы notification'; COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_ID IS 'Идентификатор записи в таблице NOTIFICATION'; COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -3999,28 +4905,76 @@ COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_ID IS 'Идентификатор COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_STATUS IS 'Статус сообщения (linked to notificationStatus)'; --- session - Клиринговая сессия -CREATE TABLE IF NOT EXISTS SESSION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_STATUS char(4)); -COMMENT ON TABLE SESSION IS 'Клиринговая сессия'; +-- verification_result - Результаты сверки +DROP TABLE IF EXISTS VERIFICATION_RESULT; +CREATE TABLE VERIFICATION_RESULT +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_CODE varchar(255), + ACCOUNT_ID bigint, + IN_SUM numeric(72, 2), + OUT_INT_SUM numeric(72, 2), + OUT_EXT_SUM numeric(72, 2), + DIFF_SUM numeric(72, 2) +); +COMMENT ON TABLE VERIFICATION_RESULT IS 'Результаты сверки'; +COMMENT ON COLUMN VERIFICATION_RESULT.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN VERIFICATION_RESULT.CREATED_AT IS 'Дата и время создания записи'; + +COMMENT ON COLUMN VERIFICATION_RESULT.UPDATED_AT IS 'Дата и время изменения записи'; + +COMMENT ON COLUMN VERIFICATION_RESULT.CLEARING_CODE IS 'Код участника клиринга'; + +COMMENT ON COLUMN VERIFICATION_RESULT.ACCOUNT_ID IS 'Счет УК, по которому проводится сверка'; + +COMMENT ON COLUMN VERIFICATION_RESULT.IN_SUM IS 'Входящая сумма остатков'; + +COMMENT ON COLUMN VERIFICATION_RESULT.OUT_INT_SUM IS 'Исходящая сумма остатков, полученная в КС'; + +COMMENT ON COLUMN VERIFICATION_RESULT.OUT_EXT_SUM IS 'Исходящая сумма остатков из отчета ПРЦ'; + +COMMENT ON COLUMN VERIFICATION_RESULT.DIFF_SUM IS 'Сумма расхождений '; + +-- session - Клиринговая сессия +DROP TABLE IF EXISTS SESSION; +CREATE TABLE SESSION +( + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + SESSION_STATUS varchar(4) +); +COMMENT ON TABLE SESSION IS 'Клиринговая сессия'; COMMENT ON COLUMN SESSION.ID IS 'Идентификатор записи'; - COMMENT ON COLUMN SESSION.CREATED_AT IS 'Дата и время создания записи'; - COMMENT ON COLUMN SESSION.UPDATED_AT IS 'Дата и время изменения записи'; - COMMENT ON COLUMN SESSION.CLEARING_DATE IS 'Дата'; - COMMENT ON COLUMN SESSION.SESSION_STATUS IS 'Статус клиринговой сессии (linked to sessionStatus)'; -- History log of session - Клиринговая сессия -CREATE TABLE IF NOT EXISTS SESSION_HISTORY(SESSION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_STATUS char(4)); +DROP TABLE IF EXISTS SESSION_HISTORY; +CREATE TABLE SESSION_HISTORY +( + SESSION_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CREATED_AT timestamp, + UPDATED_AT timestamp, + CLEARING_DATE date, + SESSION_STATUS varchar(4) +); COMMENT ON TABLE SESSION_HISTORY IS 'История изменений таблицы session'; COMMENT ON COLUMN SESSION_HISTORY.SESSION_ID IS 'Идентификатор записи в таблице SESSION'; COMMENT ON COLUMN SESSION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -4036,104 +4990,65 @@ COMMENT ON COLUMN SESSION_HISTORY.CLEARING_DATE IS 'Дата'; COMMENT ON COLUMN SESSION_HISTORY.SESSION_STATUS IS 'Статус клиринговой сессии (linked to sessionStatus)'; - /* views */ +-- moneyMarketSession - Сессия денежного рынка +DROP TABLE IF EXISTS MONEY_MARKET_SESSION; +CREATE TABLE MONEY_MARKET_SESSION +( + ID bigint PRIMARY KEY, + CLEARING_DATE date, + SESSION_STATUS varchar(4), + COMPANY_ID bigint, + SECURITY_ID bigint, + USER_ID bigint +); +COMMENT ON TABLE MONEY_MARKET_SESSION IS 'Сессия денежного рынка'; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- Data types +COMMENT ON COLUMN MONEY_MARKET_SESSION.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION.CLEARING_DATE IS 'Дата'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION.SESSION_STATUS IS 'Статус клиринговой сессии (linked to sessionStatus)'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION.COMPANY_ID IS 'Идентификатор инициатора торгов (linked to company)'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; + + +-- History log of moneyMarketSession - Сессия денежного рынка +DROP TABLE IF EXISTS MONEY_MARKET_SESSION_HISTORY; +CREATE TABLE MONEY_MARKET_SESSION_HISTORY +( + MONEY_MARKET_SESSION_ID BIGINT NOT NULL, + EVENT_TIME timestamp, + EVENT_USER_ID BIGINT, + ID bigint PRIMARY KEY, + CLEARING_DATE date, + SESSION_STATUS varchar(4), + COMPANY_ID bigint, + SECURITY_ID bigint, + USER_ID bigint +); +COMMENT ON TABLE MONEY_MARKET_SESSION_HISTORY IS 'История изменений таблицы moneyMarketSession'; +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.MONEY_MARKET_SESSION_ID IS 'Идентификатор записи в таблице MONEY_MARKET_SESSION'; +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.CLEARING_DATE IS 'Дата'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.SESSION_STATUS IS 'Статус клиринговой сессии (linked to sessionStatus)'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.COMPANY_ID IS 'Идентификатор инициатора торгов (linked to company)'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; + +COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; + +/* views */ + + +-- Data types \ No newline at end of file diff --git a/clearing-parent/reports-service/docs/report.BR для разработчиков.docx b/clearing-parent/reports-service/docs/report.BR для разработчиков.docx index d6d6bd7fc..3e4c567ac 100644 Binary files a/clearing-parent/reports-service/docs/report.BR для разработчиков.docx and b/clearing-parent/reports-service/docs/report.BR для разработчиков.docx differ diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/ReportsServiceApplication.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java similarity index 87% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/ReportsServiceApplication.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java index 3fd498a1b..f95d0af68 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/ReportsServiceApplication.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/ReportsServiceApplication.java @@ -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 { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/config/ReportsServiceConfig.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportsServiceConfig.java similarity index 70% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/config/ReportsServiceConfig.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportsServiceConfig.java index 44345db8c..9ced09d07 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/config/ReportsServiceConfig.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/config/ReportsServiceConfig.java @@ -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 { } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/controller/DefaultController.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/controller/DefaultController.java similarity index 94% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/controller/DefaultController.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/controller/DefaultController.java index 5206e9db4..c3f978781 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/controller/DefaultController.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/controller/DefaultController.java @@ -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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/exceptions/ConfigException.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/exceptions/ConfigException.java similarity index 78% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/exceptions/ConfigException.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/exceptions/ConfigException.java index b51da9820..7df1753ab 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/exceptions/ConfigException.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/exceptions/ConfigException.java @@ -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); } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/properties/AProperties.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/properties/AProperties.java similarity index 68% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/properties/AProperties.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/properties/AProperties.java index 6dac8567b..a10597ff0 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/properties/AProperties.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/properties/AProperties.java @@ -1,4 +1,4 @@ -package ru.spcex.clearing.reports_service.properties; +package ru.spcex.clearing.reports.properties; import org.springframework.stereotype.Component; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java new file mode 100644 index 000000000..d9b3992ac --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/AbstractReport.java @@ -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; + } + +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java new file mode 100644 index 000000000..313ce168a --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/ReportWithClearingStatus.java @@ -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; + } + +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/WithCompanyClearingCode.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/WithCompanyClearingCode.java new file mode 100644 index 000000000..79a63ccbe --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/WithCompanyClearingCode.java @@ -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; + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_1/ReportBR_0420315_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P1.java similarity index 71% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_1/ReportBR_0420315_P1.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P1.java index 46f64c450..2a11b2c55 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_1/ReportBR_0420315_P1.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P1.java @@ -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 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 getRows() { return rows; } - @XStreamAlias("row") public static class Info_0420315_P1 { @XStreamAlias("company_id") diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_1/ReportBR_0420315_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P2.java similarity index 86% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_1/ReportBR_0420315_P2.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P2.java index e7cd1e9c8..642f71bdf 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_1/ReportBR_0420315_P2.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_1/ReportBR_0420315_P2.java @@ -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); } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_2/ReportBR_0420317.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_2/ReportBR_0420317.java similarity index 81% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_2/ReportBR_0420317.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_2/ReportBR_0420317.java index 6dddc1217..c8714fac8 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_2/ReportBR_0420317.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_2/ReportBR_0420317.java @@ -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 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 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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_3/ReportBR_0420318.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_3/ReportBR_0420318.java similarity index 92% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_3/ReportBR_0420318.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_3/ReportBR_0420318.java index fc66f6abb..b5ff5909b 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_3/ReportBR_0420318.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_3/ReportBR_0420318.java @@ -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 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 getRows() { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_4/ReportBR_0420314_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P1.java similarity index 79% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_4/ReportBR_0420314_P1.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P1.java index 29be65e6f..cb9e22242 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_4/ReportBR_0420314_P1.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P1.java @@ -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 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 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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_4/ReportBR_0420314_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P2.java similarity index 75% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_4/ReportBR_0420314_P2.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P2.java index 2c27b00c7..cdb737894 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_4/ReportBR_0420314_P2.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_4/ReportBR_0420314_P2.java @@ -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 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 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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P1.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P1.java similarity index 77% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P1.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P1.java index a7cab0270..cea7a4639 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P1.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P1.java @@ -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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P10.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P10.java new file mode 100644 index 000000000..b1d7be876 --- /dev/null +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P10.java @@ -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; + } + } +} diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P11.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P11.java similarity index 74% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P11.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P11.java index 3f08e4f46..5f74936eb 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P11.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P11.java @@ -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 { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P2.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P2.java similarity index 75% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P2.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P2.java index 1345d1a63..9fc68a866 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P2.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P2.java @@ -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 { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P3.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P3.java similarity index 76% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P3.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P3.java index c77e200c2..69cbeed34 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P3.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P3.java @@ -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 { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P4.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P4.java similarity index 70% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P4.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P4.java index 28df729dc..88f7ed98d 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P4.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P4.java @@ -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 { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P5.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P5.java similarity index 70% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P5.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P5.java index 5702d7a28..e65c6b8ea 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P5.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P5.java @@ -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 { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P6.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P6.java similarity index 70% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P6.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P6.java index 12abe818d..68c6c6de4 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P6.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P6.java @@ -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 { diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P8.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P7.java similarity index 52% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P8.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P7.java index 6a92fb8bc..d47311392 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P8.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P7.java @@ -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; } } diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P9.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P8.java similarity index 84% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P9.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P8.java index c118a1cf0..eadc04583 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P9.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P8.java @@ -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, diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P10.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P9.java similarity index 56% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P10.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P9.java index ab24a7a0c..627ba50de 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P10.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/reports/bt_17_5/ReportBR_0420312_P9.java @@ -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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/services/ReportsService.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsService.java similarity index 82% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/services/ReportsService.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsService.java index e125b6abc..de17f8e74 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/services/ReportsService.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/ReportsService.java @@ -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", diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/ChildElementForWrite.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/ChildElementForWrite.java similarity index 98% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/ChildElementForWrite.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/ChildElementForWrite.java index ba1db7e10..4a6b5c215 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/ChildElementForWrite.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/ChildElementForWrite.java @@ -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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/ElementWithAttributeOnly.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/ElementWithAttributeOnly.java similarity index 92% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/ElementWithAttributeOnly.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/ElementWithAttributeOnly.java index 9ee1da75d..aa5d185ed 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/ElementWithAttributeOnly.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/ElementWithAttributeOnly.java @@ -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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/FormattedLocalDateConverter.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/FormattedLocalDateConverter.java similarity index 95% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/FormattedLocalDateConverter.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/FormattedLocalDateConverter.java index 52ed1fe0b..ff4762875 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/FormattedLocalDateConverter.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/FormattedLocalDateConverter.java @@ -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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/RootElementForWrite.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/RootElementForWrite.java similarity index 98% rename from clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/RootElementForWrite.java rename to clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/RootElementForWrite.java index 73f4aa13e..e10dd6ddf 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/xml_test/RootElementForWrite.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/xml_test/RootElementForWrite.java @@ -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; diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/AbstractReport.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/AbstractReport.java deleted file mode 100644 index 7f81d2558..000000000 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/AbstractReport.java +++ /dev/null @@ -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; - } -} diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/ClearingCalendarService.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/ClearingCalendarService.java index 619368bcf..70bd24147 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/ClearingCalendarService.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/service/ClearingCalendarService.java @@ -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()); } diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java index 9ef6f3188..c5d40b200 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/MoneyMarketSecurityService.java @@ -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); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java index 62b6e2a16..86675c716 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityFactory.java @@ -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); diff --git a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceDisabled.java b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceDisabled.java index ae732b4e2..e35e6b816 100644 --- a/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceDisabled.java +++ b/clearing-parent/securities-service/src/test/java/ru/spcex/clearing/securities/service/MoneyMarketSecurityServiceDisabled.java @@ -45,11 +45,11 @@ public class MoneyMarketSecurityServiceDisabled { private final int TIMEOUT = 1000; boolean isUsed; private MockConsumer kafkaMockQueue; - private MockProducer mockProducer = new MockProducer<>(); -// @Autowired + private final MockProducer 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.
* {@link MoneyMarketSecurityNewRequest#endDate} - текущее колличество секунд с 1970-01-01T00:00:00Z.
* {@link MoneyMarketSecurityNewRequest#nominalValue} - 1.0
- * {@link MoneyMarketSecurityNewRequest#nominalCurrencyId} - 1L
+ * {@link MoneyMarketSecurityNewRequest#nominalCurrency} - 1L
* {@link MoneyMarketSecurityNewRequest#instrumentType} - "sdgaga"
* {@link MoneyMarketSecurityNewRequest#fullName} - "estat"
*/ @@ -236,7 +236,7 @@ public class MoneyMarketSecurityServiceDisabled { * Входной запрос {@link MoneyMarketSecurityUpdateRequest}:
* {@link MoneyMarketSecurityUpdateRequest#fullName} - sfgsdfg
* {@link MoneyMarketSecurityUpdateRequest#instrumentType} - qwerqwe
- * {@link MoneyMarketSecurityUpdateRequest#nominalCurrencyId} - 2L
+ * {@link MoneyMarketSecurityUpdateRequest#nominalCurrency} - RUB
* {@link MoneyMarketSecurityUpdateRequest#nominalValue} - 2.0
* {@link MoneyMarketSecurityUpdateRequest#endDate} - текущее колличество секунд с 1970-01-01T00:00:00Z + (24 * 3600)
*/ @@ -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)); diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java index 2f05e248c..b1fcc4ec7 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java @@ -47,7 +47,7 @@ public class KeyRateService extends QueueConsumer implements InitializingBean { private void newKeyRate(BaseRequest 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 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()); diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TransactionStatus.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TransactionStatus.java index 2d97429b9..554033e55 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TransactionStatus.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TransactionStatus.java @@ -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; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/schedule/ClearingCalendarNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/schedule/ClearingCalendarNewRequest.java index 06c61ac44..1e2669de7 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/schedule/ClearingCalendarNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/schedule/ClearingCalendarNewRequest.java @@ -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; } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/schedule/ClearingCalendarUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/schedule/ClearingCalendarUpdateRequest.java index aca653bea..2f70c4757 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/schedule/ClearingCalendarUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/schedule/ClearingCalendarUpdateRequest.java @@ -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; } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/MoneyMarketSecurityNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/MoneyMarketSecurityNewRequest.java index 58b5db789..979f8b28e 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/MoneyMarketSecurityNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/MoneyMarketSecurityNewRequest.java @@ -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() { diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/MoneyMarketSecurityUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/MoneyMarketSecurityUpdateRequest.java index 35542a640..2ec1444e2 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/MoneyMarketSecurityUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/securitites/MoneyMarketSecurityUpdateRequest.java @@ -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() { diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java index 0e11d3bb8..1ecdd1625 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java @@ -50,6 +50,12 @@ public class QueueConsumer implements AutoCloseable { this.supportStartOffsetTimeWindow = false; } + /** + * используем этот конструктор, если хотим класть + * в кафку "ответ" - информацию о статусе обработки команд + * @param kafkaQueue + * @param kafkaResponseQueue + */ public QueueConsumer(Consumer kafkaQueue, Producer kafkaResponseQueue) { this(kafkaQueue); this.producer = kafkaResponseQueue; diff --git a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/text/TextUtil.java b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/text/TextUtil.java index e1041a0c9..3d43ea1b5 100644 --- a/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/text/TextUtil.java +++ b/platform-parent/platform-utils/src/main/java/ru/spcex/platform/utils/text/TextUtil.java @@ -7,6 +7,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class TextUtil { + public static boolean isEmpty(String cs) { + return cs == null || cs.trim().length() == 0; + } + public static String format(String template, Map parameters) { StringBuilder newTemplate = new StringBuilder(template); List valueList = new ArrayList<>();