コード例 #1
0
        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));;
        }
コード例 #2
0
        //自动移动
        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);
        }