1
duan
2024-08-21 f71a02229c1ba00fbecaead19256593ffb052753
提交 | 用户 | age
90c6eb 1 using DIXWeb.Entity.GlobalM;
J 2 using DIXWeb.Util;
3 using DIXWeb.DataRepository;
4 using System;
5 using System.Collections.Generic;
6 using System.Linq;
7 using System.Linq.Dynamic;
8e1d1f 8 using DIXWeb.DAL;
A 9 using System.Data.Entity.Infrastructure;
10 using System.Data;
11 using DIXWeb.Entity.Workflow;
90c6eb 12
J 13 namespace DIXWeb.Business.GlobalM
14 {
15     public class WorkflowNodeBusiness : BaseBusiness<WorkflowNode>
16     {
17         #region 外部接口
18
19         /// <summary>
20         /// 获取数据列表
21         /// </summary>
22         /// <param name="condition">查询类型</param>
23         /// <param name="keyword">关键字</param>
24         /// <returns></returns>
25         public List<WorkflowNode> GetDataList(string condition, string keyword, Pagination pagination)
26         {
27             var q = GetIQueryable();
28
29             //模糊查询
30             if (!condition.IsNullOrEmpty() && !keyword.IsNullOrEmpty())
31                 q = q.Where($@"{condition}.Contains(@0)", keyword);
32
33             return q.GetPagination(pagination).ToList();
34         }
35  
36
37         /// <summary>
38         /// 获取指定的单条数据
39         /// </summary>
40         /// <param name="id">主键</param>
41         /// <returns></returns>
42         public WorkFlowNodeModel GetTheData(int pid,int id)
43         {
44             List<WorkFlowNodeModel> r = GetNodeModelList(pid, id, "", "");
45             if (r.Count > 0) return r[0];
46             else return new WorkFlowNodeModel(); 
47         }
48         void ReArrangeNodeModel(WorkFlowNodeModel data) {
49             //直接流向下一节点
50             if (data.NextType == 1)
51             {
52                 data.RoleIds = "";
53                 data.RoleNames = "";
54                 data.RoleTypeNames = "";
55                 data.RoleTypeIds = "";
56                 data.MinRoleId = 0;
57                 data.MinRoleLevel = 0;
58                 data.MinRoleName = "";
59             }
60             //单据提交部门上级角色类别,单据提交部门指定角色类别
61             else if (data.NextType == 2 || data.NextType == 3)
62             {
63                 data.RoleIds = "";
64                 data.RoleNames = "";
65                
66                 
67             }
68             //指定部门角色
69             else if (data.NextType == 4) {
70
71                 data.RoleTypeNames = "";
72                 data.RoleTypeIds = "";
73             }
74         }
75
76         public object GetWorkflowNodeList(int pid, string name, string code)
77         {
78             var plist = new List<System.Data.Common.DbParameter>();
79             plist.Add(GlobalDataHelper.NewSqlParameter("@pid", pid)); 
80             plist.Add(GlobalDataHelper.NewSqlParameter("@name", name));
81             plist.Add(GlobalDataHelper.NewSqlParameter("@code", code));
82             List<WorkFlowNodeModel> r = Service.GetListByProcNew<WorkFlowNodeModel>("wp_WorkflowNode_getsimpledata", plist);
83             return r;
84         }
85
86         /// <summary>
87         /// 添加数据
88         /// </summary>
89         /// <param name="newData">数据</param>
90         public ResultMessage AddData(WorkFlowNodeModel newData)
91         {
92             ReArrangeNodeModel(newData);
93             var plist = new List<System.Data.Common.DbParameter>();
94              
95             plist.Add(GlobalDataHelper.NewSqlParameter("@WorkflowId", newData.WorkflowId));
96             plist.Add(GlobalDataHelper.NewSqlParameter("@Name", newData.Name));
97             plist.Add(GlobalDataHelper.NewSqlParameter("@Code", newData.Code));
98             plist.Add(GlobalDataHelper.NewSqlParameter("@NodeType", newData.NodeType));
99             plist.Add(GlobalDataHelper.NewSqlParameter("@NextType", newData.NextType));
100             plist.Add(GlobalDataHelper.NewSqlParameter("@RoleTypeIds", newData.RoleTypeIds));
101             plist.Add(GlobalDataHelper.NewSqlParameter("@RoleIds", string.IsNullOrEmpty(newData.RoleIds)?"": newData.RoleIds));
102             plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleId", newData.MinRoleId));
103             plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleName", string.IsNullOrEmpty(newData.MinRoleName)?"": newData.MinRoleName));
104             plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleLevel", newData.MinRoleLevel));
105             plist.Add(GlobalDataHelper.NewSqlParameter("@OrderNo", newData.OrderNo));
106             plist.Add(GlobalDataHelper.NewSqlParameter("@rolenames", string.IsNullOrEmpty(newData.RoleNames)?"": newData.RoleNames)); 
107             plist.Add(GlobalDataHelper.NewSqlParameter("@UserId", GlobalDataHelper.GetLoginUserNo())); 
108             ResultMessage r = Service.SubmitDataByProc("wp_WorkflowNode_newdata", plist);
109             return r;
110         }
111
112         public List<WorkFlowNodeModel> GetNodeList(int pid, string name, string code, Pagination pagination)
113         { 
114             List<WorkFlowNodeModel> r = GetNodeModelList(pid,-1,name,code);
115             r= r.GetPagination(pagination).ToList();
116             return r;
117         }
118         public List<WorkFlowNodeModel> GetNodeModelList(int pid,int id, string name, string code)
119         {
120             var plist = new List<System.Data.Common.DbParameter>();
121             plist.Add(GlobalDataHelper.NewSqlParameter("@pid", pid));
122             plist.Add(GlobalDataHelper.NewSqlParameter("@id", id));
123             plist.Add(GlobalDataHelper.NewSqlParameter("@name", name));
124             plist.Add(GlobalDataHelper.NewSqlParameter("@code", code));
125             List<WorkFlowNodeModel> r = Service.GetListByProcNew<WorkFlowNodeModel>("wp_WorkflowNode_getdata", plist);
126             return r;
127         }
128         /// <summary>
129         /// 更新数据
130         /// </summary>
131         public ResultMessage UpdateData(WorkFlowNodeModel theData)
132         {
133             ReArrangeNodeModel(theData);
134             var plist = new List<System.Data.Common.DbParameter>();
135             plist.Add(GlobalDataHelper.NewSqlParameter("@id", theData.Id));
136             plist.Add(GlobalDataHelper.NewSqlParameter("@WorkflowId", theData.WorkflowId));
137             plist.Add(GlobalDataHelper.NewSqlParameter("@Name", theData.Name));
138             plist.Add(GlobalDataHelper.NewSqlParameter("@Code", theData.Code));
139             plist.Add(GlobalDataHelper.NewSqlParameter("@NodeType", theData.NodeType));
140             plist.Add(GlobalDataHelper.NewSqlParameter("@NextType", theData.NextType));
141             plist.Add(GlobalDataHelper.NewSqlParameter("@RoleTypeIds", theData.RoleTypeIds));
142             plist.Add(GlobalDataHelper.NewSqlParameter("@RoleIds", string.IsNullOrEmpty(theData.RoleIds) ? "" : theData.RoleIds));
143             plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleId", theData.MinRoleId));
144             plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleName", string.IsNullOrEmpty(theData.MinRoleName) ? "" : theData.MinRoleName));
145             plist.Add(GlobalDataHelper.NewSqlParameter("@MinRoleLevel", theData.MinRoleLevel));
146             plist.Add(GlobalDataHelper.NewSqlParameter("@OrderNo", theData.OrderNo));
147             plist.Add(GlobalDataHelper.NewSqlParameter("@rolenames", string.IsNullOrEmpty(theData.RoleNames) ? "" : theData.RoleNames));
148             plist.Add(GlobalDataHelper.NewSqlParameter("@UserId", GlobalDataHelper.GetLoginUserNo()));
149             ResultMessage r = Service.SubmitDataByProc("wp_WorkflowNode_editdata", plist);
150             return r;
151         }
8e1d1f 152         
90c6eb 153         /// <summary>
J 154         /// 删除数据
155         /// </summary>
156         /// <param name="theData">删除的数据</param>
157         public ResultMessage DeleteData(string ids)
158         {
159             ids = string.IsNullOrEmpty(ids) ? "" : ids;
160             ids = ids.Replace("[", "").Replace("]", "");
161             var plist = new List<System.Data.Common.DbParameter>();
162             plist.Add(GlobalDataHelper.NewSqlParameter("@Ids", ids)); 
163             plist.Add(GlobalDataHelper.NewSqlParameter("@UserId", GlobalDataHelper.GetLoginUserNo()));
164             ResultMessage r = Service.SubmitDataByProc("wp_WorkflowNode_deletedata", plist);
165             return r;
166         }
167
168         #endregion
169
170         #region 私有成员
171
172         #endregion
173
174         #region 数据模型
175
176         #endregion
8e1d1f 177
A 178
7b83a6 179         public Receive GetWorkflowNode(string Code,string Name, int pageIndex, int pageSize) {
A 180             Receive receive = new Receive();
181             try
8e1d1f 182             {
7b83a6 183                 using (DBContext db = new DBContext())
A 184                 {
185                     System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
186                         new System.Data.SqlClient.SqlParameter("@Code", Code),
187                         new System.Data.SqlClient.SqlParameter("@Name", Name),
188                         new System.Data.SqlClient.SqlParameter("@pageIndex", pageIndex),
189                         new System.Data.SqlClient.SqlParameter("@pageSize", pageSize),
190                         new System.Data.SqlClient.SqlParameter("@Total", 0),
191                     };
192                     int index = paramList.Length - 1;
193                     paramList[index].Direction = ParameterDirection.Output;
194                     receive.rows = db.Database.SqlQuery<ReceiveNode>("exec meta.p_getWorkflowNode @Code,@Name,@pageIndex,@pageSize,@Total output ", paramList).ToList();
195                     receive.total = int.Parse(paramList[index].Value.ToString());
196                     receive.Code = 200;
197                     receive.Message = "SUCCESS";
198                 }
8e1d1f 199             }
7b83a6 200             catch (Exception ex)
A 201             {
202                 receive.Code = 500;
203                 receive.Message = ex.Message;
204             }
205             return receive;
8e1d1f 206         }
A 207
208         public List<WorkflowNodeType> GetWorkflowNodeType()
209         {
210             List<WorkflowNodeType> list = null;
211             using (DBContext db =new DBContext())
212             {
213                 list = db.WorkflowNodeType.ToList();
214             }
215             return list;
216         }
217
218         public void Insert(WorkflowNode record)
219         {
220             using (DBContext db = new DBContext())
221             {
222                 db.WorkflowNode.Add(record);
223                 db.SaveChanges();
224             }
225         }
226         public void Update(WorkflowNode record)
227         {
228             using (DBContext db = new DBContext())
229             {
230                 WorkflowNode tempRecord = db.WorkflowNode.Find(record.Id);
231                 tempRecord.Code = record.Code;
232                 tempRecord.Name = record.Name;
1bf8ef 233                 tempRecord.WorkflowId = record.WorkflowId;
8e1d1f 234                 tempRecord.NodeTypeId = record.NodeTypeId;
1bf8ef 235                 tempRecord.NextNodeTypeId = record.NextNodeTypeId;
8e1d1f 236                 tempRecord.MinRoleId = record.MinRoleId;
A 237                 tempRecord.MaxRoleId = record.MaxRoleId;
238                 tempRecord.OrderNo = record.OrderNo;
239                 tempRecord.ChUserId = record.ChUserId;
240                 tempRecord.ChTime = record.ChTime;
241                 db.SaveChanges();
242             }
243         }
244         public ReceiveNode SelectById(int Id)
245         {
246             ReceiveNode record = null;
247             using (DBContext db = new DBContext())
248             {
249                 System.Data.SqlClient.SqlParameter[] paramList = new System.Data.SqlClient.SqlParameter[] {
250                     new System.Data.SqlClient.SqlParameter("@Id", Id),
251                 };
252                 record = db.Database.SqlQuery<ReceiveNode>("EXEC meta.p_getWorkflowNodeById @Id ", paramList).FirstOrDefault();
253             }
254             return record;
255         }
90c6eb 256     }
J 257     public class WorkFlowNodeModel
258     {
259         public int Id { get; set; }
260         public int WorkflowId { get; set; }
261         public string Name { get; set; }
262         public string Code { get; set; }
263         public int NodeType { get; set; }
264         public string RoleNames { get; set; }
265         public string RoleIds { get; set; }
266
267         public string RoleTypeNames { get; set; }
268         public string RoleTypeIds { get; set; }
269
270
271         public int MinRoleLevel { get; set; }
272         public string MinRoleName { get; set; }
273         public int MinRoleId { get; set; }
274         public int OrderNo { get; set; }
275         public DateTime CreateTime { get; set; }
276         public string CreateUserId { get; set; }
277         public DateTime ChTime { get; set; }
278         public string ChUserId { get; set; }
279         public string RouteCode { get; set; }
280         public string RouteName { get; set; }
281         public int? ActionType { get; set; }
282         public int? RouteOrderNo { get; set; }
283         public int? NextType { get; set; }
284         
285         public string ToNodeName { get; set; }
286         public int? ToNodeId { get; set; }
287         public int? RouteId { get; set; }
288         
289         public DateTime RouteChTime { get; set; }
290         public string RouteChUserId { get; set; }
291
292     }
293 }