/// <summary> /// 验证数据库参数 /// </summary> /// <param name="returnInfo">返回信息</param> /// <param name="flowIn">流程输入</param> /// <param name="workflow">工作流</param> /// <param name="connectionId">连接ID</param> /// <param name="currUser">当前用户</param> private void ValiDbParam(ReturnInfo <bool> returnInfo, FlowInInfo <FlowInitInfo <PersonTimeInfo <int> > > flowIn, out WorkflowInfo workflow, string connectionId = null, BasicUserInfo <int> currUser = null) { workflow = null; ReturnInfo <WorkflowDefineInfo> reWorkFlowConfig = WorkflowConfigReader.ReaderAllConfig(flowIn.Flow.WorkflowCode, connectionId, currUser); if (reWorkFlowConfig.Failure()) { returnInfo.FromBasic(reWorkFlowConfig); return; } var user = UserTool <int> .GetCurrUser(currUser); if (flowIn.Flow.Id > 0) { var reInfo = WorkflowService.Find(flowIn.Flow.Id, connectionId, currUser); if (reInfo.Failure()) { returnInfo.FromBasic(reInfo); return; } if (reInfo.Data == null) { returnInfo.SetFailureMsg($"找不到工作流ID[{flowIn.Flow.Id}]的数据"); return; } if (reInfo.Data.CreaterId != user.Id) { returnInfo.SetFailureMsg($"Sorry,此流程不是您创建的,无权限操作"); return; } workflow = reInfo.Data; flowIn.Flow.Id = workflow.Id; flowIn.Flow.ApplyNo = workflow.ApplyNo; } else { ReturnInfo <bool> reInfo = WorkflowService.ExistsByApplyNo(flowIn.Flow.ApplyNo, connectionId, currUser); if (reInfo.Failure()) { returnInfo.FromBasic(reInfo); return; } if (reInfo.Data) { returnInfo.SetFailureMsg($"申请单号[{flowIn.Flow.ApplyNo}]已存在"); return; } } }
/// <summary> /// 验证流程输入 /// </summary> /// <param name="returnInfo">返回信息</param> /// <param name="flowIn">流程输入</param> /// <param name="workflow">工作流</param> /// <param name="connectionId">连接ID</param> /// <returns>工作流定义</returns> protected override WorkflowDefineInfo ValiFlowIn(ReturnInfo <bool> returnInfo, FlowInInfo <FlowAuditInfo> flowIn, out WorkflowInfo workflow, string connectionId = null) { workflow = null; if (flowIn == null) { returnInfo.SetFailureMsg("流程输入不能为null"); return(null); } if (flowIn.Flow == null) { returnInfo.SetFailureMsg("流程不能为null"); return(null); } ReturnInfo <WorkflowHandleInfo> reHandle = WorkflowHandle.Find(flowIn.Flow.HandleId, connectionId); if (reHandle.Failure()) { returnInfo.FromBasic(reHandle); return(null); } if (reHandle.Data == null) { returnInfo.SetFailureMsg("找不到工作流处理信息"); return(null); } if (reHandle.Data.HandlerId != UserTool.CurrUser.Id) { returnInfo.SetFailureMsg("此处理流程不属于您审核"); return(null); } if (reHandle.Data.HandleType == HandleTypeEnum.NOTIFY) { returnInfo.SetFailureMsg("您的处理流程是通知类型,不能审核"); return(null); } if (reHandle.Data.HandleStatus == HandleStatusEnum.SENDED || reHandle.Data.HandleStatus == HandleStatusEnum.RETURNED) { returnInfo.SetFailureMsg("您的处理流程是已审核过,不能重复审核"); return(null); } if (reHandle.Data.HandleStatus == HandleStatusEnum.EFFICACYED) { returnInfo.SetFailureMsg("您的处理流程已失效,不能审核"); return(null); } ReturnInfo <WorkflowInfo> reWorkflow = WorkflowService.Find(reHandle.Data.WorkflowId); if (reWorkflow.Failure()) { returnInfo.FromBasic(reWorkflow); return(null); } if (reWorkflow.Data == null) { returnInfo.SetFailureMsg("找不到工作流信息"); return(null); } if (reWorkflow.Data.FlowStatus == FlowStatusEnum.DRAFT) { returnInfo.SetFailureMsg("此工作流是草稿状态不能审核"); return(null); } if (reWorkflow.Data.FlowStatus == FlowStatusEnum.AUDIT_NOPASS || reWorkflow.Data.FlowStatus == FlowStatusEnum.AUDIT_PASS) { returnInfo.SetFailureMsg("此工作流已审核结束"); return(null); } reHandle.Data.Workflow = reWorkflow.Data; flowIn.Flow.WorkflowHandle = reHandle.Data; ReturnInfo <WorkflowDefineInfo> reWorkFlowConfig = WorkflowConfigReader.ReaderAllConfig(reWorkflow.Data.WorkflowDefineId, connectionId); if (reWorkFlowConfig.Failure()) { returnInfo.FromBasic(reWorkFlowConfig); return(null); } return(reWorkFlowConfig.Data); }