Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 发布事件
 /// </summary>
 /// <param name="input"></param>
 public async Task PublicEvent(PublishEventInput input)
 {
     await _abpWorkflowManager.PublishEventAsync(input.EventName, input.EventKey, input.EventData);
 }