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 { #region Íⲿ½Ó¿Ú /// /// »ñÈ¡Êý¾ÝÁбí /// /// ²éѯÀàÐÍ /// ¹Ø¼ü×Ö /// public List 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(); } /// /// »ñÈ¡Ö¸¶¨µÄµ¥ÌõÊý¾Ý /// /// Ö÷¼ü /// public WorkFlowNodeModel GetTheData(int pid,int id) { List 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(); plist.Add(GlobalDataHelper.NewSqlParameter("@pid", pid)); plist.Add(GlobalDataHelper.NewSqlParameter("@name", name)); plist.Add(GlobalDataHelper.NewSqlParameter("@code", code)); List r = Service.GetListByProcNew("wp_WorkflowNode_getsimpledata", plist); return r; } /// /// Ìí¼ÓÊý¾Ý /// /// Êý¾Ý public ResultMessage AddData(WorkFlowNodeModel newData) { ReArrangeNodeModel(newData); var plist = new List(); 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 GetNodeList(int pid, string name, string code, Pagination pagination) { List r = GetNodeModelList(pid,-1,name,code); r= r.GetPagination(pagination).ToList(); return r; } public List GetNodeModelList(int pid,int id, string name, string code) { var plist = new List(); 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 r = Service.GetListByProcNew("wp_WorkflowNode_getdata", plist); return r; } /// /// ¸üÐÂÊý¾Ý /// public ResultMessage UpdateData(WorkFlowNodeModel theData) { ReArrangeNodeModel(theData); var plist = new List(); 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; } /// /// ɾ³ýÊý¾Ý /// /// ɾ³ýµÄÊý¾Ý public ResultMessage DeleteData(string ids) { ids = string.IsNullOrEmpty(ids) ? "" : ids; ids = ids.Replace("[", "").Replace("]", ""); var plist = new List(); 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("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 GetWorkflowNodeType() { List 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("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; } } }