/// <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);
        }
        /// <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);
        }