FlowListVo.cs 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. using System;
  2. using System.Collections;
  3. using System.Data;
  4. using System.Data.SqlClient;
  5. using Business.FileFlow.Entity;
  6. using Common;
  7. namespace Business.FileFlow.Vo
  8. {
  9. public class FlowListVo
  10. {
  11. /// <summary>
  12. /// 参数赋值
  13. /// </summary>
  14. /// <param name="flowList">实体类FlowListEty</param>
  15. /// <returns>参数数组</returns>
  16. private SqlParameter[] SetPara(FlowListEty flowList)
  17. {
  18. return new[]
  19. {
  20. new SqlParameter("@id", flowList.Id),
  21. new SqlParameter("@name", flowList.Name),
  22. new SqlParameter("@remark", flowList.Remark),
  23. new SqlParameter("@flowid", flowList.FlowId),
  24. new SqlParameter("@actionid", flowList.ActionId),
  25. new SqlParameter("@delflag", flowList.DelFlag),
  26. new SqlParameter("@addUserID", flowList.AddUserId),
  27. new SqlParameter("@addtime", flowList.AddTime),
  28. new SqlParameter("@updateUserID", flowList.UpdateUserId),
  29. new SqlParameter("@lastTime", flowList.LastTime),
  30. new SqlParameter("@fcontent", flowList.Fcontent),
  31. new SqlParameter("@sAddr", flowList.SAddr),
  32. new SqlParameter("@isEnd", flowList.IsEnd),
  33. new SqlParameter("@isPass", flowList.IsPass)
  34. };
  35. }
  36. /// <summary>
  37. /// 新增flowList记录
  38. /// </summary>
  39. /// <param name="flowList">实体类FlowListEty</param>
  40. /// <returns>成功返回空字符串,失败返回错误信息</returns>
  41. public string InsertFlowList(FlowListEty flowList)
  42. {
  43. var sql =
  44. "insert into flowList(id,name,remark,flowid,actionid,delflag,addUserID,addtime,updateUserID,lastTime,fcontent,sAddr,isEnd,isPass) values(@id,@name,@remark,@flowid,@actionid,@delflag,@addUserID,@addtime,@updateUserID,@lastTime,@fcontent,@sAddr,@isEnd,@isPass)";
  45. return SqlHelper.ExecSql(sql, SetPara(flowList));
  46. }
  47. /// <summary>
  48. /// 根据用户ID 获取我的公文列表信息
  49. /// </summary>
  50. /// <param name="searchText">查询字段</param>
  51. /// <param name="userid">用户ID</param>
  52. /// <returns>数据表</returns>
  53. public DataTable AllFlowList(string searchText,string userid)
  54. {
  55. var sql =
  56. "select p.id,p.name,f.name as flowname,f.actionIDs,p.actionid, p.lastTime,s.username as addusername,p.isPass,p.isEnd,p.sAddr from flowList p left join SysUser s on s.userid=p.addUserID left join flow f on f.id=p.flowid where p.addUserID=@addUserID and p.delflag ='false' ";
  57. if (!string.IsNullOrEmpty(searchText))
  58. {
  59. //根据查询字段 进行查询
  60. sql +=
  61. string.Format(
  62. "and( p.name like '%{0}%' or s.username like '%{0}%' or a.name like '%{0}%' or f.name like '%{0}%')",
  63. searchText);
  64. }
  65. sql += " order by p.isEnd, p.lastTime DESC";
  66. return SqlHelper.ExecSqlDateTable(sql, new SqlParameter("@addUserID",userid));
  67. }
  68. /// <summary>
  69. /// 更新公文列表信息
  70. /// </summary>
  71. /// <param name="flowList">实体类FlowListEty</param>
  72. /// <returns>成功返回空字符串,失败返回错误信息</returns>
  73. public string UpdateFlowList(FlowListEty flowList)
  74. {
  75. var sq1 =
  76. "update flowList set actionid=@actionid,lastTime=@lastTime,remark=@remark,updateUserID=@updateUserID,isEnd=@isEnd,isPass=@isPass where id=@id";
  77. return SqlHelper.ExecSql(sq1, SetPara(flowList));
  78. }
  79. /// <summary>
  80. /// 根据id删除公文列表信息
  81. /// </summary>
  82. /// <param name="id">公文列表id</param>
  83. /// <returns>成功返回空字符串,失败返回错误信息</returns>
  84. public string DelFlowList(string id)
  85. {
  86. var sql = "update flowList set delflag='true' where id in (" + id + ")";
  87. return SqlHelper.ExecSql(sql);
  88. }
  89. /// <summary>
  90. /// 根据id返回FlowListEty实体类
  91. /// </summary>
  92. /// <param name="id">flowid</param>
  93. public FlowListEty GetFlowContById(string id)
  94. {
  95. var con = new SqlConnection(SqlHelper.ConStr);
  96. var cmd = new SqlCommand { Connection = con, CommandType = CommandType.Text, CommandText = "select * from flowList where id=@id and delflag='false'" };
  97. cmd.Parameters.AddWithValue("@id", id);
  98. var flow = new FlowListEty();
  99. try
  100. {
  101. con.Open();
  102. }
  103. catch
  104. {
  105. return flow;
  106. }
  107. using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
  108. {
  109. if (!reader.HasRows)
  110. return flow;
  111. while (reader.Read())
  112. {
  113. flow.Id = SqlHelper.ReaderString("id", reader);
  114. flow.Num = SqlHelper.ReaderInt("num", reader);
  115. flow.Name = SqlHelper.ReaderString("name", reader);
  116. flow.Remark = SqlHelper.ReaderString("remark", reader);
  117. flow.FlowId = SqlHelper.ReaderString("flowid", reader);
  118. flow.ActionId = SqlHelper.ReaderInt("actionid", reader);
  119. flow.DelFlag = SqlHelper.ReaderBool("delflag", reader);
  120. flow.AddUserId = SqlHelper.ReaderString("addUserID", reader);
  121. flow.AddTime = SqlHelper.ReaderDateTime("addtime", reader);
  122. flow.UpdateUserId = SqlHelper.ReaderString("updateUserID", reader);
  123. flow.LastTime = SqlHelper.ReaderDateTime("lastTime", reader);
  124. flow.IsEnd = SqlHelper.ReaderBool("isEnd", reader);
  125. flow.IsPass = SqlHelper.ReaderBool("isPass", reader);
  126. flow.Fcontent = SqlHelper.ReaderString("fcontent", reader);
  127. flow.SAddr = SqlHelper.ReaderString("sAddr", reader);
  128. }
  129. }
  130. return flow;
  131. }
  132. /// <summary>
  133. /// 根据用户id返回FlowListEty实体类链表(我的审批列表)
  134. /// </summary>
  135. /// <param name="userid">userid</param>
  136. /// <param name="sT">查询字段</param>
  137. public Hashtable GetFlowListByUserid(string userid,string sT)
  138. {
  139. var con = new SqlConnection(SqlHelper.ConStr);
  140. var cmd = new SqlCommand { Connection = con, CommandType = CommandType.StoredProcedure, CommandText = "myflowList" };
  141. SqlParameter para = cmd.Parameters.Add("@user", SqlDbType.VarChar,32);
  142. para.Direction = ParameterDirection.Input;
  143. para.Value = userid;
  144. SqlParameter para2 = cmd.Parameters.Add("@sT", SqlDbType.VarChar, 100);
  145. para2.Direction = ParameterDirection.Input;
  146. para2.Value = sT;
  147. var list = new Hashtable();
  148. var adp=new SqlDataAdapter(cmd);
  149. var ds = new DataSet();
  150. adp.Fill(ds);
  151. foreach (DataTable table in ds.Tables)
  152. {
  153. foreach (DataRow row in table.Rows)
  154. {
  155. if(list.ContainsKey(row["id"].ToString()))continue;
  156. var flow = new FlowListEty
  157. {
  158. Id =row["id"].ToString(),
  159. Num = Convert.ToInt32(row["num"]),
  160. Name =row["name"].ToString() ,
  161. Remark =row["remark"].ToString() ,
  162. FlowId =row["flowid"].ToString() ,
  163. ActionId = Convert.ToInt32(row["actionid"]),
  164. DelFlag =(bool)row["delflag"] ,
  165. AddUserId = row["addUserID"].ToString(),
  166. AddTime = Convert.ToDateTime(row["addtime"]),
  167. UpdateUserId =row["updateUserID"].ToString() ,
  168. LastTime = Convert.ToDateTime(row["lastTime"]),
  169. IsEnd =(bool)row["isEnd"] ,
  170. IsPass =(bool) row["isPass"],
  171. Fcontent = row["fcontent"].ToString(),
  172. SAddr =row["sAddr"].ToString(),
  173. };
  174. list[flow.Id] = flow;
  175. }
  176. }
  177. return list;
  178. }
  179. /// <summary>
  180. /// 获取我的审批 集合
  181. /// </summary>
  182. /// <param name="userid">用户ID</param>
  183. /// <param name="sT">查询字段</param>
  184. /// <returns>我的审批 集合</returns>
  185. public Hashtable MyList(string userid,string sT)
  186. {
  187. var flowVo = new FlowVo();
  188. string myActions = new ActionVo().MyActions(userid); //获取由我审批的操作集合
  189. if (myActions.Equals(string.Empty))
  190. {
  191. return new Hashtable();
  192. }
  193. DataTable actions = new ActionVo().AllAction(""); //读取所有流程操作
  194. Hashtable list = GetFlowListByUserid(userid,sT); //获取所有有关我的公文列表
  195. string ids = string.Empty;
  196. //过滤 到我审批的公文
  197. foreach (FlowListEty flowList in list.Values)
  198. {
  199. string actionIDs = flowVo.GetAction(flowList.FlowId);
  200. ActionEty actionEty = flowVo.NowActionId(actionIDs, actions, flowList.ActionId.ToString());
  201. if (!myActions.Contains(actionEty.Id))
  202. {
  203. ids += flowList.Id + ",";
  204. }
  205. }
  206. foreach (string key in ids.TrimEnd(',').Split(','))
  207. {
  208. list.Remove(key);
  209. }
  210. return list; //我的审批公文
  211. }
  212. }
  213. }