using DIXWeb.Entity.GlobalM;
|
using DIXWeb.Util;
|
using DIXWeb.DataRepository;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Linq.Dynamic;
|
using DIXWeb.DAL;
|
using System.Data.Entity.Infrastructure;
|
using System.Data;
|
using DIXWeb.Entity.Workflow;
|
|
namespace DIXWeb.Business.GlobalM
|
{
|
public class WorkflowNodeBusiness : BaseBusiness<WorkflowNode>
|
{
|
#region Íⲿ½Ó¿Ú
|
|
/// <summary>
|
/// »ñÈ¡Êý¾ÝÁбí
|
/// </summary>
|
/// <param name="condition">²éѯÀàÐÍ</param>
|
/// <param name="keyword">¹Ø¼ü×Ö</param>
|
/// <returns></returns>
|
public List<WorkflowNode> GetDataList(string condition, string keyword, Pagination pagination)
|
{
|
var q = GetIQueryable();
|
|
//Ä£ºý²éѯ
|
if (!condition.IsNullOrEmpty() && !keyword.IsNullOrEmpty())
|
q = q.Where($@"{condition}.Contains(@0)", keyword);
|
|
return q.GetPagination(pagination).ToList();
|
}
|
|
|
/// <summary>
|
/// »ñÈ¡Ö¸¶¨µÄµ¥ÌõÊý¾Ý
|
/// </summary>
|
/// <param name="id">Ö÷¼ü</param>
|
/// <returns></returns>
|
public WorkFlowNodeModel GetTheData(int pid,int id)
|
{
|
List<WorkFlowNodeModel> r = GetNodeModelList(pid, id, "", "");
|
if (r.Count > 0) return r[0];
|
else return new WorkFlowNodeModel();
|
}
|
void ReArrangeNodeModel(WorkFlowNodeModel data) {
|
//Ö±½ÓÁ÷ÏòÏÂÒ»½Úµã
|
if (data.NextType == 1)
|
{
|
data.RoleIds = "";
|
data.RoleNames = "";
|
data.RoleTypeNames = "";
|
data.RoleTypeIds = "";
|
data.MinRoleId = 0;
|
data.MinRoleLevel = 0;
|
data.MinRoleName = "";
|
}
|
//µ¥¾ÝÌá½»²¿ÃÅÉϼ¶½ÇÉ«Àà±ð,µ¥¾ÝÌá½»²¿ÃÅÖ¸¶¨½ÇÉ«Àà±ð
|
else if (data.NextType == 2 || data.NextType == 3)
|
{
|
data.RoleIds = "";
|
data.RoleNames = "";
|
|
|
}
|
//Ö¸¶¨²¿ÃŽÇÉ«
|
else if (data.NextType == 4) {
|
|
data.RoleTypeNames = "";
|
data.RoleTypeIds = "";
|
}
|
}
|
|
public object GetWorkflowNodeList(int pid, string name, string code)
|
{
|
var plist = new List<System.Data.Common.DbParameter>();
|
plist.Add(GlobalDataHelper.NewSqlParameter("@pid", pid));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@name", name));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@code", code));
|
List<WorkFlowNodeModel> r = Service.GetListByProcNew<WorkFlowNodeModel>("wp_WorkflowNode_getsimpledata", plist);
|
return r;
|
}
|
|
/// <summary>
|
/// Ìí¼ÓÊý¾Ý
|
/// </summary>
|
/// <param name="newData">Êý¾Ý</param>
|
public ResultMessage AddData(WorkFlowNodeModel newData)
|
{
|
ReArrangeNodeModel(newData);
|
var plist = new List<System.Data.Common.DbParameter>();
|
|
plist.Add(GlobalDataHelper.NewSqlParameter("@WorkflowId", newData.WorkflowId));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@Name", newData.Name));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@Code", newData.Code));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@NodeType", newData.NodeType));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@NextType", newData.NextType));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@RoleTypeIds", newData.RoleTypeIds));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@RoleIds", string.IsNullOrEmpty(newData.RoleIds)?"": newData.RoleIds));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleId", newData.MinRoleId));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleName", string.IsNullOrEmpty(newData.MinRoleName)?"": newData.MinRoleName));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleLevel", newData.MinRoleLevel));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@OrderNo", newData.OrderNo));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@rolenames", string.IsNullOrEmpty(newData.RoleNames)?"": newData.RoleNames));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@UserId", GlobalDataHelper.GetLoginUserNo()));
|
ResultMessage r = Service.SubmitDataByProc("wp_WorkflowNode_newdata", plist);
|
return r;
|
}
|
|
public List<WorkFlowNodeModel> GetNodeList(int pid, string name, string code, Pagination pagination)
|
{
|
List<WorkFlowNodeModel> r = GetNodeModelList(pid,-1,name,code);
|
r= r.GetPagination(pagination).ToList();
|
return r;
|
}
|
public List<WorkFlowNodeModel> GetNodeModelList(int pid,int id, string name, string code)
|
{
|
var plist = new List<System.Data.Common.DbParameter>();
|
plist.Add(GlobalDataHelper.NewSqlParameter("@pid", pid));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@id", id));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@name", name));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@code", code));
|
List<WorkFlowNodeModel> r = Service.GetListByProcNew<WorkFlowNodeModel>("wp_WorkflowNode_getdata", plist);
|
return r;
|
}
|
/// <summary>
|
/// ¸üÐÂÊý¾Ý
|
/// </summary>
|
public ResultMessage UpdateData(WorkFlowNodeModel theData)
|
{
|
ReArrangeNodeModel(theData);
|
var plist = new List<System.Data.Common.DbParameter>();
|
plist.Add(GlobalDataHelper.NewSqlParameter("@id", theData.Id));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@WorkflowId", theData.WorkflowId));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@Name", theData.Name));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@Code", theData.Code));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@NodeType", theData.NodeType));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@NextType", theData.NextType));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@RoleTypeIds", theData.RoleTypeIds));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@RoleIds", string.IsNullOrEmpty(theData.RoleIds) ? "" : theData.RoleIds));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleId", theData.MinRoleId));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleName", string.IsNullOrEmpty(theData.MinRoleName) ? "" : theData.MinRoleName));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleLevel", theData.MinRoleLevel));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@OrderNo", theData.OrderNo));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@rolenames", string.IsNullOrEmpty(theData.RoleNames) ? "" : theData.RoleNames));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@UserId", GlobalDataHelper.GetLoginUserNo()));
|
ResultMessage r = Service.SubmitDataByProc("wp_WorkflowNode_editdata", plist);
|
return r;
|
}
|
|
/// <summary>
|
/// ɾ³ýÊý¾Ý
|
/// </summary>
|
/// <param name="theData">ɾ³ýµÄÊý¾Ý</param>
|
public ResultMessage DeleteData(string ids)
|
{
|
ids = string.IsNullOrEmpty(ids) ? "" : ids;
|
ids = ids.Replace("[", "").Replace("]", "");
|
var plist = new List<System.Data.Common.DbParameter>();
|
plist.Add(GlobalDataHelper.NewSqlParameter("@Ids", ids));
|
plist.Add(GlobalDataHelper.NewSqlParameter("@UserId", GlobalDataHelper.GetLoginUserNo()));
|
ResultMessage r = Service.SubmitDataByProc("wp_WorkflowNode_deletedata", plist);
|
return r;
|
}
|
|
#endregion
|
|
#region ˽ÓгÉÔ±
|
|
#endregion
|
|
#region Êý¾ÝÄ£ÐÍ
|
|
#endregion
|
|
|
public Receive GetWorkflowNode(string Code,string Name, int pageIndex, int pageSize) {
|
Receive receive = new Receive();
|
try
|
{
|
using (DBContext db = new DBContext())
|
{
|
System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
|
new System.Data.SqlClient.SqlParameter("@Code", Code),
|
new System.Data.SqlClient.SqlParameter("@Name", Name),
|
new System.Data.SqlClient.SqlParameter("@pageIndex", pageIndex),
|
new System.Data.SqlClient.SqlParameter("@pageSize", pageSize),
|
new System.Data.SqlClient.SqlParameter("@Total", 0),
|
};
|
int index = paramList.Length - 1;
|
paramList[index].Direction = ParameterDirection.Output;
|
receive.rows = db.Database.SqlQuery<ReceiveNode>("exec meta.p_getWorkflowNode @Code,@Name,@pageIndex,@pageSize,@Total output ", paramList).ToList();
|
receive.total = int.Parse(paramList[index].Value.ToString());
|
receive.Code = 200;
|
receive.Message = "SUCCESS";
|
}
|
}
|
catch (Exception ex)
|
{
|
receive.Code = 500;
|
receive.Message = ex.Message;
|
}
|
return receive;
|
}
|
|
public List<WorkflowNodeType> GetWorkflowNodeType()
|
{
|
List<WorkflowNodeType> list = null;
|
using (DBContext db =new DBContext())
|
{
|
list = db.WorkflowNodeType.ToList();
|
}
|
return list;
|
}
|
|
public void Insert(WorkflowNode record)
|
{
|
using (DBContext db = new DBContext())
|
{
|
db.WorkflowNode.Add(record);
|
db.SaveChanges();
|
}
|
}
|
public void Update(WorkflowNode record)
|
{
|
using (DBContext db = new DBContext())
|
{
|
WorkflowNode tempRecord = db.WorkflowNode.Find(record.Id);
|
tempRecord.Code = record.Code;
|
tempRecord.Name = record.Name;
|
tempRecord.WorkflowId = record.WorkflowId;
|
tempRecord.NodeTypeId = record.NodeTypeId;
|
tempRecord.NextNodeTypeId = record.NextNodeTypeId;
|
tempRecord.MinRoleId = record.MinRoleId;
|
tempRecord.MaxRoleId = record.MaxRoleId;
|
tempRecord.OrderNo = record.OrderNo;
|
tempRecord.ChUserId = record.ChUserId;
|
tempRecord.ChTime = record.ChTime;
|
db.SaveChanges();
|
}
|
}
|
public ReceiveNode SelectById(int Id)
|
{
|
ReceiveNode record = null;
|
using (DBContext db = new DBContext())
|
{
|
System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
|
new System.Data.SqlClient.SqlParameter("@Id", Id),
|
};
|
record = db.Database.SqlQuery<ReceiveNode>("EXEC meta.p_getWorkflowNodeById @Id ", paramList).FirstOrDefault();
|
}
|
return record;
|
}
|
}
|
public class WorkFlowNodeModel
|
{
|
public int Id { get; set; }
|
public int WorkflowId { get; set; }
|
public string Name { get; set; }
|
public string Code { get; set; }
|
public int NodeType { get; set; }
|
public string RoleNames { get; set; }
|
public string RoleIds { get; set; }
|
|
public string RoleTypeNames { get; set; }
|
public string RoleTypeIds { get; set; }
|
|
|
public int MinRoleLevel { get; set; }
|
public string MinRoleName { get; set; }
|
public int MinRoleId { get; set; }
|
public int OrderNo { get; set; }
|
public DateTime CreateTime { get; set; }
|
public string CreateUserId { get; set; }
|
public DateTime ChTime { get; set; }
|
public string ChUserId { get; set; }
|
public string RouteCode { get; set; }
|
public string RouteName { get; set; }
|
public int? ActionType { get; set; }
|
public int? RouteOrderNo { get; set; }
|
public int? NextType { get; set; }
|
|
public string ToNodeName { get; set; }
|
public int? ToNodeId { get; set; }
|
public int? RouteId { get; set; }
|
|
public DateTime RouteChTime { get; set; }
|
public string RouteChUserId { get; set; }
|
|
}
|
}
|