196 lines
6.6 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|