This commit is contained in:
parent
4e50f77576
commit
5f24eba895
7 changed files with 144 additions and 4 deletions
|
|
@ -0,0 +1,51 @@
|
|||
package ru.spcex.clearing.backendapi.controller.queue.session;
|
||||
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.MediaType;
|
||||
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.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
|
||||
import ru.spcex.clearing.backendapi.controller.request.cud.session.ContinueSessionAction;
|
||||
import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse;
|
||||
import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse;
|
||||
import ru.spcex.clearing.backendapi.service.IOperator;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/session")
|
||||
public class SessionController extends AbstractQueueController {
|
||||
protected final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
public SessionController(IOperator operator) {
|
||||
super(operator);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Continue session")
|
||||
@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 repeatSession(
|
||||
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
|
||||
@RequestBody ContinueSessionAction continueSessionAction) throws ExecutionException, InterruptedException {
|
||||
return processRequest(Consts.REPEAT_SESSION, continueSessionAction);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Continue session")
|
||||
@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 continueSession(
|
||||
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
|
||||
@RequestBody ContinueSessionAction continueSessionAction) throws ExecutionException, InterruptedException {
|
||||
return processRequest(Consts.CONTINUE_SESSION, continueSessionAction);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package ru.spcex.clearing.backendapi.controller.request.cud.session;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import ru.spcex.clearing.backendapi.domain.actions.IAction;
|
||||
import ru.spcex.clearing.platform.messaging.domain.ActionType;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.session.SessionActionRequest;
|
||||
|
||||
public class ContinueSessionAction implements IAction<SessionActionRequest> {
|
||||
@ApiModelProperty(value = "Идентификатор задачи", example = "ADBC")
|
||||
@JsonProperty
|
||||
public Long id;
|
||||
|
||||
@Override
|
||||
public SessionActionRequest toRequest() {
|
||||
SessionActionRequest request = new SessionActionRequest();
|
||||
request.setSessionId(this.id);
|
||||
return request;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionType getActionType() {
|
||||
return ActionType.SYSTEM;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
{
|
||||
"version": "3.19.244.135",
|
||||
"version": "3.19.250.136",
|
||||
|
||||
"enums": {
|
||||
|
||||
|
|
@ -6229,7 +6229,33 @@
|
|||
"type": 12,"dbname": "Код статуса","name": "Наименование статуса","shortname": "Статус","searchable": true,"sortable": true,"visible": true,"link": "workflowStatus"
|
||||
}
|
||||
]
|
||||
,"actions":[
|
||||
{"method":"post",
|
||||
|
||||
"destination": "REPT",
|
||||
|
||||
"name": "Продолжение сессии c текущего шага",
|
||||
|
||||
"fields": [
|
||||
{"code": "id",
|
||||
"type": 1,"name": "Идентификатор записи","shortname": "ID","link": "session","required": true,"linkCode": "id"
|
||||
}
|
||||
]
|
||||
}
|
||||
,
|
||||
{"method":"post",
|
||||
|
||||
"destination": "NEXT",
|
||||
|
||||
"name": "Продолжение сессии cо следующего шага",
|
||||
|
||||
"fields": [
|
||||
{"code": "id",
|
||||
"type": 1,"name": "Идентификатор записи","shortname": "ID","link": "session","required": true,"linkCode": "id"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
,
|
||||
"sTrades": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--?xml-stylesheet type="text/xsl" href="\..\corp-reports\src\data\meta\meta.server.xslt"?-->
|
||||
<meta version="3.19.244.135">
|
||||
<meta version="3.19.250.136">
|
||||
<!-- _xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _xsi:noNamespaceSchemaLocation="file:///E:/d/projects/meta/from/meta.xsd" -->
|
||||
<!--Здесь словари-->
|
||||
<enums>
|
||||
|
|
@ -1442,6 +1442,14 @@
|
|||
<section type="12" dbname="Код наименования секции" name="Наименование секции" shortname="Секция" searchable="true" sortable="true" visible="true" link="section"/>
|
||||
<sessionType type="12" dbname="Код типа клиринговой сессии" name="Тип клиринговой сессии" shortname="Тип" searchable="true" sortable="true" visible="true" link="sessionType"/>
|
||||
<workflowStatus type="12" dbname="Код статуса" name="Наименование статуса" shortname="Статус" searchable="true" sortable="true" visible="true" link="workflowStatus"/>
|
||||
<actions>
|
||||
<post destination="REPT" name="Продолжение сессии c текущего шага">
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" link="session" required="true" linkCode="id"/>
|
||||
</post>
|
||||
<post destination="NEXT" name="Продолжение сессии cо следующего шага">
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" link="session" required="true" linkCode="id"/>
|
||||
</post>
|
||||
</actions>
|
||||
</session>
|
||||
<sTrades name="Сделки из Торговой системы" class="ru.clearing.classes.statics.data.misc.STrades" table="s_trades">
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryChangeSt
|
|||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryReturnDepositRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistrySplitDepositActionRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.session.SessionActionRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.STradesImportedRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumerV2;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
|
|
@ -129,9 +130,12 @@ public class EventsReceiver extends QueueConsumerV2 implements InitializingBean
|
|||
return null;
|
||||
})
|
||||
.forDestination(Task.startOfClearing.topic(), callbacks::put);
|
||||
callback(Object.class)
|
||||
callback(SessionActionRequest.class)
|
||||
.setConsumer(o -> stateMachineWrapper.sendEvent(SsnEvent.CONTINUE))
|
||||
.forDestination("continue-state-session", callbacks::put);
|
||||
.forDestination(Consts.CONTINUE_SESSION, callbacks::put);
|
||||
callback(SessionActionRequest.class)
|
||||
.setConsumer(o -> stateMachineWrapper.sendEvent(SsnEvent.REPEAT))
|
||||
.forDestination(Consts.REPEAT_SESSION, callbacks::put);
|
||||
|
||||
callback(PIClearingOutbondActionNewRequest.class)
|
||||
.setFunction(pmtOutboundService::sendOutBoundPayment)
|
||||
|
|
|
|||
|
|
@ -162,6 +162,8 @@ public interface Consts {
|
|||
String SDF56_PROCESS = "sdf56-process";
|
||||
String CONTINUE_SESSION_BN_FIRST_PART = "sdf57-process";
|
||||
String CONTINUE_SESSION_BN_SECOND_PART = "sdf13-process";
|
||||
String CONTINUE_SESSION = "continue-session";
|
||||
String REPEAT_SESSION = "repeat-session";
|
||||
String KILL_SESSION = "kill-session";
|
||||
String FORCE_STOP_SESSION = "force-stop-session";
|
||||
String SWT_EXPORTER = "swt-exporter";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package ru.spcex.clearing.platform.messaging.domain.cud.session;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class SessionActionRequest {
|
||||
@JsonProperty
|
||||
private Long sessionId;
|
||||
|
||||
public Long getSessionId() {
|
||||
return sessionId;
|
||||
}
|
||||
|
||||
public void setSessionId(Long sessionId) {
|
||||
this.sessionId = sessionId;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue