/// <summary> /// 如果能够流转,自动流转到下一个活动 /// </summary> /// <param name="activity"></param> private static void AutoMoveToNextActivity(SysTaskActivity activity) { if (activity.CanMoveTo()) { SysTaskActivity nextActivity = activity.Process.MoveToNextActivity(); SysTaskProcessRuntime.Persist(); if (activity.Process.Status == SysTaskProcessStatus.Running) { ExecuteSysTaskActivityTask.SendTask(nextActivity); } } else { //对于第一个活动就带子流程的场景,其状态是NotRunning且有可能被阻塞不能流转,需要通过此操作启动子流程的Task if (activity.Status == SysTaskActivityStatus.NotRunning) { SysTaskProcess.EnterActivity(activity, SNTPClient.AdjustedTime); } } }