protected ActionResult MoveNext(string successTip, string failTip, object moveParam, Func <string, bool> doIfSuccessful, string reason = "未填写", RelationMoveParam relation = null) { var workFlowInstanceId = Request["id"]; //var uid = Request["uid"]; var param = new WorkFlowParams(workFlowInstanceId, DataContext.UserId, moveParam, doIfSuccessful, DataContext.UserId, reason, relation); return(WorkFlowService.MoveNext(param) ? Json(State.SuccessAutoClose, successTip) : Json(State.Fail, failTip));; }
//自动移动 private MoveResult _MoveNext(WorkFlowBag workFlowBag, object moveParam, string operatorId, string reason, RelationMoveParam relation) { var currentId = workFlowBag.Instance.CurrentNodeID; var allPath = Db.NodeRelation.NoTrackingWhere(a => a.NodeID == currentId); var result = ChoosePath(allPath, moveParam); //移动主流程 var moveResult = __MoveNext(workFlowBag, result, operatorId, reason); //移动相关节点(子流程) if (moveResult.Successful && relation != null) { for (var i = 0; i < relation.WorkFlowParam.Count; i++) { var item = relation.WorkFlowParam[i]; //循环递归移动 moveResult.AddRelationMoveResult(_MoveNext(FindInstance(item.WorkFlowInstanceId), relation.GetMoveParam(i), relation.GetOperatorId(i), relation.GetReason(i), relation.GetRelaton(i))); } } return(moveResult); }