|
@@ -225,20 +225,14 @@ public class ExecutorService extends BaseService{
|
|
|
if (processInstance.getState() == ExecutionStatus.READY_STOP) {
|
|
|
putMsg(result, Status.PROCESS_INSTANCE_ALREADY_CHANGED, processInstance.getName(), processInstance.getState());
|
|
|
} else {
|
|
|
- processInstance.setCommandType(CommandType.STOP);
|
|
|
- processInstance.addHistoryCmd(CommandType.STOP);
|
|
|
- processService.updateProcessInstance(processInstance);
|
|
|
- result = updateProcessInstanceState(processInstanceId, ExecutionStatus.READY_STOP);
|
|
|
+ result = updateProcessInstancePrepare(processInstance, CommandType.STOP, ExecutionStatus.READY_STOP);
|
|
|
}
|
|
|
break;
|
|
|
case PAUSE:
|
|
|
if (processInstance.getState() == ExecutionStatus.READY_PAUSE) {
|
|
|
putMsg(result, Status.PROCESS_INSTANCE_ALREADY_CHANGED, processInstance.getName(), processInstance.getState());
|
|
|
} else {
|
|
|
- processInstance.setCommandType(CommandType.PAUSE);
|
|
|
- processInstance.addHistoryCmd(CommandType.PAUSE);
|
|
|
- processService.updateProcessInstance(processInstance);
|
|
|
- result = updateProcessInstanceState(processInstanceId, ExecutionStatus.READY_PAUSE);
|
|
|
+ result = updateProcessInstancePrepare(processInstance, CommandType.PAUSE, ExecutionStatus.READY_PAUSE);
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
@@ -308,22 +302,27 @@ public class ExecutorService extends BaseService{
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * update process instance state
|
|
|
+ * prepare to update process instance command type and status
|
|
|
*
|
|
|
- * @param processInstanceId process instance id
|
|
|
+ * @param processInstance process instance
|
|
|
+ * @param commandType command type
|
|
|
* @param executionStatus execute status
|
|
|
* @return update result
|
|
|
*/
|
|
|
- private Map<String, Object> updateProcessInstanceState(Integer processInstanceId, ExecutionStatus executionStatus) {
|
|
|
+ private Map<String, Object> updateProcessInstancePrepare(ProcessInstance processInstance, CommandType commandType, ExecutionStatus executionStatus) {
|
|
|
Map<String, Object> result = new HashMap<>(5);
|
|
|
|
|
|
- int update = processService.updateProcessInstanceState(processInstanceId, executionStatus);
|
|
|
+ processInstance.setCommandType(commandType);
|
|
|
+ processInstance.addHistoryCmd(commandType);
|
|
|
+ processInstance.setState(executionStatus);
|
|
|
+ int update = processService.updateProcessInstance(processInstance);
|
|
|
+
|
|
|
+ // determine whether the process is normal
|
|
|
if (update > 0) {
|
|
|
putMsg(result, Status.SUCCESS);
|
|
|
} else {
|
|
|
putMsg(result, Status.EXECUTE_PROCESS_INSTANCE_ERROR);
|
|
|
}
|
|
|
-
|
|
|
return result;
|
|
|
}
|
|
|
|