// /Demo/SubmitDayOff public ActionResult SubmitDayOff(demo_dayoff model, string uid) { //验证表单是否完整 if (!model.day.HasValue() || !model.userid.HasValue()) { return(Json(State.Fail, "请假信息不完整")); } //创建实例 var result = _workFlowService.CreateInstance("TEST-DAYOFF", uid); //移动节点 var msg = _workFlowService.MoveNext(result, new { }, "system", "表单填写完整"); //移动结果 if (msg.Successful) { model.demo_dayoff_id = result.Instance.WorkFlowInstanceID; //业务表主键和实例id相同便于查找 model.submit_time = DateTime.Now; //取当前时间 if (_dayoff.Add(model).HasValue()) { return(Json(State.Success, "请假申请已提交,请耐心等待审核结果")); } } return(Json(State.Fail, "请假提交失败,请重试")); }
// /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("测试成功!")); }
// 激活实例 GET: /WorkFlow/Create?uid=1325112033&wfid=TEST-DAYOFF public ActionResult Create(string uid, string wfid) { return(Json(State.Success, _workFlowService.CreateInstance(wfid, uid).Instance)); }