예제 #1
0
        // /Demo/TestWorkFlow
        public ActionResult TestWorkFlow()
        {
            const string DEMO_WORKFLOWID = "test-dayoff";
            const string DEMO_OPERATOR   = "panda";
            //----------创建实例
            var instance = _workFlowService.CreateInstance(DEMO_WORKFLOWID); var instanceId = instance.Instance.WorkFlowInstanceID;
            //检测完成状态
            var isFinished = _workFlowService.IsFinished(instance);
            //查看下一步的任务
            var nextStepInfo = instance.NextStepInfo();
            //移动到下一状态(B)
            var resultB = _workFlowService.MoveNext(instance, new { WriteFormOK = 1 }, DEMO_OPERATOR);

            //---------查找实例
            instance   = _workFlowService.FindInstance(instanceId);
            isFinished = _workFlowService.IsFinished(instance);
            var nextStepInfoB = instance.NextStepInfo();
            //移动到下一状态(C)
            var resultC = _workFlowService.MoveNext(instance, new { Day = 4, TeacherChecked = 1 }, DEMO_OPERATOR);

            //---------查找实例
            instance   = _workFlowService.FindInstance(instanceId);
            isFinished = _workFlowService.IsFinished(instance);
            var nextStepInfoC = instance.NextStepInfo();
            //--强制移动,忽略条件
            var forceNodeId = nextStepInfoC.FirstOrDefault().ToNodeId;
            //移动到下一状态(D)
            var resultD = _workFlowService.MoveNext(instance, forceNodeId, DEMO_OPERATOR);

            //var resultD = _workFlowService.MoveNext(instance, new { DepartmentChecked = 1 }, DEMO_OPERATOR);
            //---------查找实例
            instance   = _workFlowService.FindInstance(instanceId);
            isFinished = _workFlowService.IsFinished(instance);
            var nextStepInfoD = instance.NextStepInfo();

            return(Alert("测试成功!"));
        }
예제 #2
0
        public ActionResult TeacherCheck(demo_dayoff model, string uid, string TeacherChecked)
        {
            //查找实例
            var old = _workFlowService.FindInstance(model.demo_dayoff_id);

            //移动节点(推荐使用try)
            try
            {
                var msg = _workFlowService.MoveNext(old, new { TeacherChecked = TeacherChecked, Day = model.day }, uid, model.teacher_comment);
                //移动结果
                if (msg.Successful)
                {
                    model.demo_dayoff_id = old.Instance.WorkFlowInstanceID;
                    if (_dayoff.Update(model))
                    {
                        return(Json(State.Success, "审批成功"));
                    }
                }
            }
            catch (MismatchConditionException e)
            {
            }
            return(Json(State.Fail, "审批失败,请重试"));
        }
        // 移动节点  GET: /WorkFlow/MoveNext?uid=1325112033&wfid=TEST-DAYOFF&reason=同意
        public ActionResult MoveNext(string uid, string wfid, string reason)
        {
            var old = _workFlowService.FindInstance(wfid);

            return(Json(State.Success, _workFlowService.MoveNext(old, new {}, uid, reason)));
        }
예제 #4
0
 // 获取下一步的路径信息 GET: /WorkFlow/GetNextInfo?id=
 public ActionResult GetNextInfo(string id)
 {
     return(Json(State.Success, _workFlowService.FindInstance(id).NextStepInfo(), false));
 }