/// <summary> /// 审核 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task AuditAsync(WorkflowAuditInput input) { var entity = await _auditorRepos.FirstOrDefaultAsync(u => u.ExecutionPointerId == input.ExecutionPointerId && u.UserId == AbpSession.UserId); if (entity == null) { throw new UserFriendlyException("不需要您审核"); } var user = await _userManager.GetUserByIdAsync(AbpSession.UserId.Value); entity.Status = input.Pass ? EnumAuditStatus.Pass : EnumAuditStatus.Unapprove; entity.Remark = input.Remark; entity.AuditTime = DateTime.Now; entity.UserIdentityName = user.FullName; entity.TenantId = AbpSession.TenantId; await CurrentUnitOfWork.SaveChangesAsync(); //终止流程 if (!input.Pass) { await _abpWorkflowManager.TerminateWorkflow(entity.WorkflowId.ToString()); return; } if (!_auditorRepos.GetAll().Any(u => u.ExecutionPointerId == input.ExecutionPointerId && u.Status == EnumAuditStatus.UnAudited)) { var pointer = await _abpWorkflowManager.PersistenceProvider.GetPersistedExecutionPointer(input.ExecutionPointerId); await _abpWorkflowManager.PublishEventAsync(pointer.EventName, pointer.EventKey, null); } }
/// <summary> /// 发布事件 /// </summary> /// <param name="input"></param> public async Task PublicEvent(PublishEventInput input) { await _abpWorkflowManager.PublishEventAsync(input.EventName, input.EventKey, input.EventData); }