/// <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); }
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); }
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); }
/// <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()); }
/// <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();
public virtual ReturnInfo <WorkflowBasicInfo> Apply <FormT>(FlowInitInfo <FormT> flowInit, BasicUserInfo currUser = null) where FormT : PersonTimeInfo => Execute(flowInit, WorkflowApply, currUser);
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();