Exemple #1
0
        /// <summary>
        /// 关闭工作
        /// </summary>
        /// <typeparam name="TData"></typeparam>
        /// <param name="data"></param>
        /// <param name="entityType"></param>
        /// <param name="userJob"></param>
        /// <param name="status"></param>
        private void OnClose(TData data, int entityType, UserJobType userJob, JobStatusType status = JobStatusType.Succeed)

        {
            var jobs = business.Access.All(p => p.EntityType == entityType && p.LinkId == data.Id &&
                                           p.JobType == userJob && p.JobStatus < JobStatusType.Succeed);

            if (userJob == UserJobType.Edit)
            {
                foreach (var job in jobs)
                {
                    if (job.ToUserId == TriggerUserId)
                    {
                        business.Close(job.Id);
                    }
                    business.Access.SetValue(p => p.JobStatus, status, job.Id);
                }
            }
            else
            {
                foreach (var job in jobs)
                {
                    if (job.ToUserId == TriggerUserId)
                    {
                        business.Access.SetValue(p => p.JobStatus, status, job.Id);
                        business.Close(job.Id);
                    }
                    else if (data.AuditState == AuditStateType.Deny)
                    {
                        business.Access.SetValue(p => p.JobStatus, JobStatusType.NoHit, job.Id);
                        business.Close(job.Id);
                    }
                }
            }
        }
Exemple #2
0
        /// <summary>
        ///     用户任务分类枚举类型名称转换
        /// </summary>
        public static string ToCaption(this UserJobType value)
        {
            switch (value)
            {
            case UserJobType.None:
                return("未指定");

            case UserJobType.Edit:
                return("编辑任务");

            case UserJobType.Audit:
                return("审核任务");

            case UserJobType.Message:
                return("消息通知");

            case UserJobType.Data:
                return("数据维护");

            case UserJobType.Command:
                return("其它命令");

            default:
                return("用户任务分类枚举类型(未知)");
            }
        }
Exemple #3
0
        /// <summary>
        /// 流程处理
        /// </summary>
        /// <typeparam name="TData"></typeparam>
        /// <param name="data"></param>
        /// <param name="entityType"></param>
        /// <param name="userJob"></param>
        private void OnStart(TData data, int entityType, UserJobType userJob)
        {
            var job = business.Access.First(p => p.EntityType == entityType && p.LinkId == data.Id &&
                                            p.JobType == userJob && p.JobStatus < JobStatusType.Succeed);

            if (job == null)
            {
                AddNew(new UserJobData
                {
                    EntityType = entityType,
                    LinkId     = data.Id,
                    Title      = data.Title,
                    JobType    = userJob,
                    JobStatus  = JobStatusType.None,
                    FromUserId = TriggerUserId,
                    ToUserId   = TriggerUserId
                });
            }
            else
            {
                business.Access.SetValue(p => p.JobStatus, JobStatusType.None, job.Id);
                job.Title      = data.Title;
                job.JobStatus  = JobStatusType.None;
                job.ToUserId   = TriggerUserId;
                job.ToUserName = GetUserName(TriggerUserId);
                business.Access.Update(job);
            }
        }