/// <summary> /// 流程处理页面:显示 /// isNew:true 新建,false 待办 /// </summary> /// <returns></returns> public ActionResult Handle(bool isNew, string id) { RuntimeService runtime = AntApi.Runtime; TaskService tasker = AntApi.Tasker; FormService former = AntApi.Former; RtTask task = null; string step = string.Empty; Guid instanceGuid = new Guid(); if (isNew) { instanceGuid = runtime.NewInstanceByID(new Guid(id), Guid.Empty, null); step = "0008"; task = tasker.GetFirstTaskByInstance(instanceGuid); } else { RtInstance instance = tasker.GetInstanceByTask(new Guid(id)); instanceGuid = instance.InstanceGuid; task = tasker.GetTaskByTaskGuid(new Guid(id)); } ViewBag.FormHtml = former.GetFormByTaskGuid(task.TaskGuid); ViewBag.Step = step; ViewBag.InstanceGuid = instanceGuid; ViewBag.TaskGuid = task.TaskGuid; return(View()); }
/// <summary> /// /// </summary> /// <param name="xml"></param> /// <param name="token"></param> /// <param name="element"></param> public override void Enter(BpmContext context) { Context = context; DateTime dt = DateTime.Now; ZUserTask userTask = context.Element as ZUserTask; RtActivity activity = new RtActivity(); activity.ActivityGuid = Guid.NewGuid(); activity.ActivityID = context.Element.ID; activity.TaskPage = new Guid(userTask.TaskPage); activity.InstanceGuid = context.InstanceID; activity.StartTime = dt; AntApi.DB.RtActivitys.Add(activity); RtTask task = new RtTask(); task.TaskGuid = Guid.NewGuid(); task.InstanceGuid = context.InstanceID; task.ActivityGuid = activity.ActivityGuid; task.TaskTitle = userTask.TaskTitle; task.Owner = userTask.Candidates; task.CreateTime = dt; AntApi.DB.RtTasks.Add(task); AntApi.DB.SaveChanges(); }
/// <summary> /// 获取活动实例 /// </summary> /// <returns></returns> public RtActivity GetActivityByTaskGuid(Guid taskGuid) { RtTask task = AntApi.DB.RtTasks.First(o => o.TaskGuid == taskGuid); RtActivity activity = AntApi.DB.RtActivitys.First(o => o.ActivityGuid == task.ActivityGuid); return(activity); }
public RtTask GetFirstTaskByInstance(Guid InstanceGuid) { RtInstance instance = AntApi.DB.RtInstances.First <RtInstance>(o => o.InstanceGuid == InstanceGuid); RtTask task = AntApi.DB.RtTasks.First <RtTask>(o => o.InstanceGuid == instance.InstanceGuid); return(task); }
public RtInstance GetInstanceByTask(Guid TaskGuid) { RtTask task = AntApi.DB.RtTasks.First <RtTask>(o => o.TaskGuid == TaskGuid); RtInstance instance = AntApi.DB.RtInstances.First <RtInstance>(o => o.InstanceGuid == task.InstanceGuid); return(instance); }
public string GetFormByTaskGuid(Guid taskGuid) { RtTask task = db.RtTasks.First(o => o.TaskGuid == taskGuid); RtActivity activity = db.RtActivitys.First(o => o.ActivityGuid == task.ActivityGuid); RtForm form = db.RtForms.First(o => o.TaskPage == activity.TaskPage && o.MasterGuid == task.InstanceGuid); return(form.Html); }
public void Next(Guid InstanceGuid, Guid TaskGuid) { RtInstance instance = AntApi.DB.RtInstances.First(o => o.InstanceGuid == InstanceGuid); RtTask task = AntApi.DB.RtTasks.First(o => o.TaskGuid == TaskGuid); string ActivityID = AntApi.DB.RtActivitys.First(o => o.ActivityGuid == task.ActivityGuid).ActivityID; Stream xml = StreamUtil.StreamFromString(instance.ProcessXml); FlowObjParser fParser = new FlowObjParser(); ZUserTask zUserTask = fParser.FindNode <ZUserTask>(xml, "UserTask", ActivityID); BpmContext context = new BpmContext(); context.InstanceID = InstanceGuid; context.ProcessXml = xml; context.Element = zUserTask; Exchange userTask = zUserTask.Exchange; userTask.Leave(context); }
/// <summary> /// 获取Task /// </summary> /// <param name="taskGuid"></param> /// <returns></returns> public RtTask GetTaskByTaskGuid(Guid taskGuid) { RtTask task = AntApi.DB.RtTasks.First(o => o.TaskGuid == taskGuid); return(task); }