/// <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); } } } }
/// <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("用户任务分类枚举类型(未知)"); } }
/// <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); } }