Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
        /// <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();
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        /// <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);
        }