/// <summary>
        /// 执行
        /// </summary>
        /// <typeparam name="FormT">表单类型</typeparam>
        /// <param name="flowInit">流程初始</param>
        /// <param name="workflowInit">工作流初始</param>
        /// <returns>返回信息</returns>
        private ReturnInfo <WorkflowBasicInfo> Execute <FormT>(FlowInitInfo <FormT> flowInit, IWorkflowForm workflowInit)
            where FormT : PersonTimeInfo
        {
            var returnInfo = new ReturnInfo <WorkflowBasicInfo>();

            if (string.IsNullOrWhiteSpace(flowInit.ApplyNo))
            {
                flowInit.ApplyNo = BuilderApplyNo(flowInit, returnInfo);
                if (returnInfo.Failure())
                {
                    return(returnInfo);
                }
            }

            var flowInfo = flowInit.ToFlowIn();
            ReturnInfo <bool> reWorkflow = workflowInit.Execute(flowInfo);

            returnInfo.FromBasic(reWorkflow);
            if (reWorkflow.Failure())
            {
                return(returnInfo);
            }

            returnInfo.Data = new WorkflowBasicInfo()
            {
                Id      = flowInit.Id,
                ApplyNo = flowInit.ApplyNo
            };

            return(returnInfo);
        }
Exemplo n.º 2
0
 public virtual ReturnInfo <WorkflowBasicInfo> Apply(FlowInitInfo <FormT> flowInit)
 {
     return(Execute(flowInit, () =>
     {
         return WorkflowInitService.Apply(flowInit);
     }));
 }
        /// <summary>
        /// 执行
        /// </summary>
        /// <typeparam name="FormT">表单类型</typeparam>
        /// <param name="flowInit">流程初始</param>
        /// <param name="workflowInit">工作流初始</param>
        /// <param name="comData">通用数据</param>
        /// <returns>返回信息</returns>
        private ReturnInfo <WorkflowBasicInfo> Execute <FormT>(FlowInitInfo <FormT> flowInit, IWorkflowForm workflowInit, CommonUseData comData = null)
            where FormT : PersonTimeInfo <int>
        {
            var returnInfo = new ReturnInfo <WorkflowBasicInfo>();
            var currUser   = UserTool <int> .GetCurrUser(comData);

            if (string.IsNullOrWhiteSpace(flowInit.ApplyNo))
            {
                flowInit.ApplyNo = BuilderApplyNo(flowInit, returnInfo, comData);
                if (returnInfo.Failure())
                {
                    return(returnInfo);
                }
            }

            var flowInfo = flowInit.ToFlowIn();
            ReturnInfo <bool> reWorkflow = workflowInit.Execute(flowInfo, comData);

            returnInfo.FromBasic(reWorkflow);
            if (reWorkflow.Failure())
            {
                return(returnInfo);
            }

            returnInfo.Data = new WorkflowBasicInfo()
            {
                Id      = flowInit.Id,
                ApplyNo = flowInit.ApplyNo
            };

            return(returnInfo);
        }
Exemplo n.º 4
0
        public virtual ReturnInfo <WorkflowBasicInfo> Apply(FlowInitInfo <FormT> flowInit)
        {
            var comData = HttpContext.CreateCommonUseData(ComDataFactory, functionCodes: FunCodeDefine.APPLY);

            return(Execute(flowInit, () =>
            {
                return WorkflowInitService.Apply(flowInit, comData);
            }));
        }
        /// <summary>
        /// 生成申请单号
        /// </summary>
        /// <typeparam name="FormT">表单类型</typeparam>
        /// <param name="flowInit">流程初始化</param>
        /// <param name="returnInfo">返回信息</param>
        /// <returns>申请单号</returns>
        protected override string BuilderApplyNo <FormT>(FlowInitInfo <FormT> flowInit, ReturnInfo <WorkflowBasicInfo> returnInfo)
        {
            var buildNoReturnInfo = SequenceService.BuildNo(flowInit.WorkflowCode);

            if (buildNoReturnInfo.Failure())
            {
                returnInfo.FromBasic(buildNoReturnInfo);

                return(null);
            }

            return(buildNoReturnInfo.Data);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="flowInit">流程初始</param>
        /// <param name="func">回调执行</param>
        /// <returns>返回信息</returns>
        private ReturnInfo <WorkflowBasicInfo> Execute(FlowInitInfo <FormT> flowInit, Func <ReturnInfo <WorkflowBasicInfo> > func)
        {
            if (flowInit == null)
            {
                var returnInfo = new ReturnInfo <string>();

                returnInfo.SetFailureMsg("流程表单数据不能为null");
            }

            flowInit.WorkflowCode = GetWorkflowCode();

            SetFlowInitPropertys(flowInit);

            return(func());
        }
Exemplo n.º 7
0
 /// <summary>
 /// 设置流程初始化属性
 /// </summary>
 /// <param name="flowInit">流程初始</param>
 protected virtual void SetFlowInitPropertys(FlowInitInfo <FormT> flowInit)
 {
 }
 /// <summary>
 /// 申请
 /// </summary>
 /// <typeparam name="FormT">表单类型</typeparam>
 /// <param name="flowInit">流程初始</param>
 /// <returns>返回信息</returns>
 public virtual ReturnInfo <WorkflowBasicInfo> Apply <FormT>(FlowInitInfo <FormT> flowInit)
     where FormT : PersonTimeInfo => Execute(flowInit, WorkflowApply);
 /// <summary>
 /// 生成申请单号
 /// </summary>
 /// <typeparam name="FormT">表单类型</typeparam>
 /// <param name="flowInit">流程初始化</param>
 /// <param name="returnInfo">返回信息</param>
 /// <returns>申请单号</returns>
 protected virtual string BuilderApplyNo <FormT>(FlowInitInfo <FormT> flowInit, ReturnInfo <WorkflowBasicInfo> returnInfo)
     where FormT : PersonTimeInfo => DateTime.Now.ToLongDateTimeNumString();
Exemplo n.º 10
0
 public virtual ReturnInfo <WorkflowBasicInfo> Apply <FormT>(FlowInitInfo <FormT> flowInit, BasicUserInfo currUser = null)
     where FormT : PersonTimeInfo => Execute(flowInit, WorkflowApply, currUser);
Exemplo n.º 11
0
 public virtual ReturnInfo <WorkflowBasicInfo> Save <FormT>(FlowInitInfo <FormT> flowInit, BasicUserInfo <int> currUser = null)
     where FormT : PersonTimeInfo <int> => Execute(flowInit, WorkflowSave, currUser);
 /// <summary>
 /// 申请
 /// </summary>
 /// <typeparam name="FormT">表单类型</typeparam>
 /// <param name="flowInit">流程初始</param>
 /// <param name="comData">通用数据</param>
 /// <returns>返回信息</returns>
 public virtual ReturnInfo <WorkflowBasicInfo> Apply <FormT>(FlowInitInfo <FormT> flowInit, CommonUseData comData = null)
     where FormT : PersonTimeInfo <int> => Execute(flowInit, WorkflowApply, comData);
 /// <summary>
 /// 生成申请单号
 /// </summary>
 /// <typeparam name="FormT">表单类型</typeparam>
 /// <param name="flowInit">流程初始化</param>
 /// <param name="returnInfo">返回信息</param>
 /// <param name="comData">通用数据</param>
 /// <returns>申请单号</returns>
 protected virtual string BuilderApplyNo <FormT>(FlowInitInfo <FormT> flowInit, ReturnInfo <WorkflowBasicInfo> returnInfo, CommonUseData comData = null)
     where FormT : PersonTimeInfo <int> => DateTime.Now.ToLongDateTimeNumString();