ZHJA_HJGL/HJGL_ZH/BLL/Common/BaseInfo/AudiFlowService.cs

196 lines
6.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
public static class AudiFlowService
{
/// <summary>
/// 根据工作流模块查询审核步骤集合
/// </summary>
/// <param name="flowModule">工作流模块</param>
/// <returns></returns>
public static List<Model.AudiFlow> GetAudiFlowsByFlowModule(string flowModule)
{
return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule orderby x.AudiFlowStep select x).ToList();
}
/// <summary>
/// 根据工作流模块与审核步骤编号查询审核步骤
/// </summary>
/// <param name="flowModule">工作流模块</param>
/// <param name="audiFlowCode">审核步骤编号</param>
/// <returns></returns>
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();
}
/// <summary>
/// 获取流程的第一个步骤
/// </summary>
/// <param name="flowModule"></param>
/// <param name="audiFlowStep"></param>
/// <returns></returns>
public static Model.AudiFlow GetFristAuditFlowStep(string flowModule)
{
return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule orderby x.AudiFlowStep select x).FirstOrDefault();
}
/// <summary>
/// 获取流程下一步骤
/// </summary>
/// <param name="flowModule">菜单ID</param>
/// <param name="audiFlowStep">步骤</param>
/// <returns></returns>
public static List<Model.AudiFlow> 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;
}
}
/// <summary>
/// 根据步骤获取菜单的流程信息
/// </summary>
/// <param name="flowModule"></param>
/// <param name="audiFlowStep"></param>
/// <returns></returns>
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();
}
/// <summary>
/// 获取结束的步骤
/// </summary>
/// <param name="flowModule"></param>
/// <returns></returns>
public static Model.AudiFlow GetEndAuditFlowStep(string flowModule)
{
return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.IsFlowEnd == true select x).FirstOrDefault();
}
/// <summary>
/// 获取结束的步骤集合
/// </summary>
/// <param name="flowModule"></param>
/// <returns></returns>
public static List<Model.AudiFlow> GetEndAuditFlowStepList(string flowModule)
{
return (from x in Funs.DB.AudiFlow where x.FlowModule == flowModule && x.IsFlowEnd == true select x).ToList();
}
/// <summary>
/// 获取结束步骤的前一步骤
/// </summary>
/// <param name="flowModule"></param>
/// <returns></returns>
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;
}
}
/// <summary>
/// 流程结束是否设置
/// </summary>
/// <param name="flowModule"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 添加工作流信息
/// </summary>
/// <param name="flow"></param>
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();
}
/// <summary>
/// 修改工作流信息
/// </summary>
/// <param name="flow"></param>
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();
}
}
/// <summary>
/// 删除工作流信息
/// </summary>
/// <param name="audiFlowId"></param>
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();
}
}
}