using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BLL { public static class AudiFlowService { /// /// 根据工作流模块查询审核步骤集合 /// /// 工作流模块 /// public static List GetAudiFlowsByFlowModule(string flowModule) { return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule orderby x.AudiFlowStep select x).ToList(); } /// /// 根据工作流模块与审核步骤编号查询审核步骤 /// /// 工作流模块 /// 审核步骤编号 /// public static Model.AudiFlow GetAudiFlowsByFlowModuleAndAudiFlowId(string flowModule, string audiFlowId) { return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.AudiFlowId == audiFlowId select x).FirstOrDefault(); } /// /// 获取流程的第一个步骤 /// /// /// /// public static Model.AudiFlow GetFristAuditFlowStep(string flowModule) { return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule orderby x.AudiFlowStep select x).FirstOrDefault(); } /// /// 获取流程下一步骤 /// /// 菜单ID /// 步骤 /// public static List GetNextAuditFlowStep(string flowModule, int audiFlowStep) { var q = from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.AudiFlowStep > audiFlowStep orderby x.AudiFlowStep select x; if (q.Count() > 0) { return q.ToList(); } else { return null; } } /// /// 根据步骤获取菜单的流程信息 /// /// /// /// public static Model.AudiFlow GetAuditFlow(string flowModule, int audiFlowStep) { return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.AudiFlowStep == audiFlowStep select x).FirstOrDefault(); } /// /// 获取结束的步骤 /// /// /// public static Model.AudiFlow GetEndAuditFlowStep(string flowModule) { return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.IsFlowEnd == true select x).FirstOrDefault(); } /// /// 获取结束的步骤集合 /// /// /// public static List GetEndAuditFlowStepList(string flowModule) { return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.IsFlowEnd == true select x).ToList(); } /// /// 获取结束步骤的前一步骤 /// /// /// public static int? GetPreStepOfEndStep(string flowModule) { var q = from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.IsFlowEnd == true select x; if (q.Count() > 0) { int endStep = q.First().AudiFlowStep; return endStep - 1; } else { return null; } } /// /// 流程结束是否设置 /// /// /// public static bool IsAuditFlowEnd(string flowModule, string audiFlowId) { bool isEnd = false; if (audiFlowId == null) { var q = from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.IsFlowEnd == true select x; if (q.Count() > 0) { isEnd = true; } } else { var q = from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.AudiFlowId != audiFlowId && x.IsFlowEnd == true select x; if (q.Count() > 0) { isEnd = true; } } return isEnd; } /// /// 添加工作流信息 /// /// public static void AddAuditFlow(Model.AudiFlow flow) { Model.SGGLDB db = Funs.DB; string newKeyID = SQLHelper.GetNewID(typeof(Model.AudiFlow)); Model.AudiFlow newFlow = new Model.AudiFlow(); newFlow.AudiFlowId = newKeyID; newFlow.AudiFlowStep = flow.AudiFlowStep; newFlow.AuditFlowName = flow.AuditFlowName; newFlow.FlowModule = flow.FlowModule; newFlow.NextAuditFlow = flow.NextAuditFlow; newFlow.RoleId = flow.RoleId; newFlow.IsFlowEnd = flow.IsFlowEnd; db.AudiFlow.InsertOnSubmit(newFlow); db.SubmitChanges(); } /// /// 修改工作流信息 /// /// public static void UpdateAuditFlow(Model.AudiFlow flow) { Model.SGGLDB db = Funs.DB; Model.AudiFlow newFlow = db.AudiFlow.FirstOrDefault(e => e.AudiFlowId == flow.AudiFlowId); if (newFlow != null) { newFlow.AudiFlowStep = flow.AudiFlowStep; newFlow.AuditFlowName = flow.AuditFlowName; newFlow.FlowModule = flow.FlowModule; newFlow.NextAuditFlow = flow.NextAuditFlow; newFlow.RoleId = flow.RoleId; newFlow.IsFlowEnd = flow.IsFlowEnd; db.SubmitChanges(); } } /// /// 删除工作流信息 /// /// public static void DeleteAuditFlow(string audiFlowId) { Model.SGGLDB db = Funs.DB; Model.AudiFlow flow = db.AudiFlow.First(e => e.AudiFlowId == audiFlowId); db.AudiFlow.DeleteOnSubmit(flow); db.SubmitChanges(); } } }