锐腾搅拌上料功能
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

271 lines
9.7 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using ICSSoft.Frame.Data.Entity;
  6. using System.Data;
  7. using ICSSoft.Base.Config.AppConfig;
  8. using ICSSoft.Base.Config.DBHelper;
  9. namespace ICSSoft.Frame.Data.DAL
  10. {
  11. public class ICSUserInfoDAL
  12. {
  13. public static void DeleteThenInsert(List<ICSUserInfo> list)
  14. {
  15. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  16. db.Connection.Open();
  17. db.Transaction = db.Connection.BeginTransaction();
  18. try
  19. {
  20. var lines = db.ICSUserInfo.Where(a => a.UserCode == list[0].UserCode && a.WorkPoint == list[0].WorkPoint);
  21. db.ICSUserInfo.DeleteAllOnSubmit(lines);
  22. db.SubmitChanges();
  23. db.ICSUserInfo.InsertAllOnSubmit(list);
  24. db.SubmitChanges();
  25. db.Transaction.Commit();
  26. }
  27. catch (Exception ex)
  28. {
  29. db.Transaction.Rollback();
  30. throw ex;
  31. }
  32. finally
  33. {
  34. db.Connection.Close();
  35. }
  36. }
  37. public static int[] AddAndEdit(List<ICSUserInfo> users)
  38. {
  39. int insert = 0;
  40. int update = 0;
  41. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  42. db.Connection.Open();
  43. db.Transaction = db.Connection.BeginTransaction();
  44. try
  45. {
  46. foreach (ICSUserInfo user in users)
  47. {
  48. bool isNew = false;
  49. var line = db.ICSUserInfo.FirstOrDefault(a => a.UserCode == user.UserCode && a.WorkPoint == AppConfig.WorkPointCode);
  50. //var line = db.ICSUserInfo.FirstOrDefault(a => a.UserCode == user.UserCode && a.SEGCode == user.SEGCode && a.SGroup == user.SGroup && a.WorkPoint == AppConfig.WorkPointCode);
  51. if (line == null)
  52. {
  53. isNew = true;
  54. line = new ICSUserInfo();
  55. line.ID = AppConfig.GetGuid();
  56. }
  57. line.UserCode = user.UserCode;
  58. line.SEGCode = user.SEGCode;
  59. line.SGroup = user.SGroup;
  60. line.FrontLine = user.FrontLine;
  61. line.Phone = user.Phone;
  62. line.Mail = user.Mail;
  63. line.ModifyDate = DateTime.Now;
  64. line.ModifyUserCode = AppConfig.UserCode;
  65. line.WorkPoint = AppConfig.WorkPointCode;
  66. if (isNew)
  67. {
  68. insert++;
  69. line.CreateDate = line.ModifyDate;
  70. line.CreateUserCode = line.ModifyUserCode;
  71. db.ICSUserInfo.InsertOnSubmit(line);
  72. }
  73. else
  74. {
  75. update++;
  76. }
  77. db.SubmitChanges();
  78. }
  79. db.SubmitChanges();
  80. db.Transaction.Commit();
  81. return new int[2] { insert, update };
  82. }
  83. catch (Exception ex)
  84. {
  85. db.Transaction.Rollback();
  86. throw ex;
  87. }
  88. finally
  89. {
  90. db.Connection.Close();
  91. }
  92. }
  93. /// <summary>
  94. /// 删除用户所有关联的车间
  95. /// </summary>
  96. /// <param name="listUserCode"></param>
  97. public static void DeleteAllLine(List<string> listUserCode)
  98. {
  99. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  100. db.Connection.Open();
  101. db.Transaction = db.Connection.BeginTransaction();
  102. try
  103. {
  104. var lines = db.ICSUserInfo.Where(a => listUserCode.Contains(a.UserCode) && a.WorkPoint == AppConfig.WorkPointCode);
  105. db.ICSUserInfo.DeleteAllOnSubmit(lines);
  106. db.SubmitChanges();
  107. db.Transaction.Commit();
  108. }
  109. catch (Exception ex)
  110. {
  111. db.Transaction.Rollback();
  112. throw ex;
  113. }
  114. }
  115. /// <summary>
  116. /// 删除用户一条关联的车间
  117. /// </summary>
  118. /// <param name="listUserCode"></param>
  119. public static void DeleteOneLine(List<string> listID)
  120. {
  121. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  122. db.Connection.Open();
  123. db.Transaction = db.Connection.BeginTransaction();
  124. try
  125. {
  126. var lines = db.ICSUserInfo.Where(a => listID.Contains(a.ID) && a.WorkPoint == AppConfig.WorkPointCode);
  127. db.ICSUserInfo.DeleteAllOnSubmit(lines);
  128. db.SubmitChanges();
  129. db.Transaction.Commit();
  130. }
  131. catch (Exception ex)
  132. {
  133. db.Transaction.Rollback();
  134. throw ex;
  135. }
  136. }
  137. public static DataTable Select(string UserCode)
  138. {
  139. string sql = @"
  140. SELECT
  141. convert(bit,1) as isSelect,
  142. A.ID,
  143. A.UserCode,B.UserName,
  144. A.FrontLine,
  145. A.SEGCODE,C.SEGDESC,
  146. A.SGroup,
  147. A.Phone,
  148. A.Mail,
  149. A.CreateUserCode,A.CreateDate,
  150. A.ModifyUserCode,A.ModifyDate ,
  151. CONVERT(BIT,0) AS [ADD]
  152. FROM dbo.ICSUserInfo A
  153. LEFT JOIN dbo.Sys_User B ON A.UserCode=B.UserCode AND A.WorkPoint=B.WorkPointCode
  154. LEFT JOIN dbo.ICSSEG C ON A.SEGCODE=C.SEGCODE AND A.WorkPoint=C.WorkPoint
  155. WHERE A.UserCode='{0}' AND A.WorkPoint ='" + AppConfig.WorkPointCode + "'";
  156. sql = string.Format(sql, UserCode == null ? "" : UserCode);
  157. DataSet ds = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
  158. if (ds.Tables.Count == 0)
  159. {
  160. return null;
  161. }
  162. return ds.Tables[0];
  163. }
  164. public static bool AllowAdd(string UserCode)
  165. {
  166. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  167. db.Connection.Open();
  168. db.Transaction = db.Connection.BeginTransaction();
  169. try
  170. {
  171. var line = db.ICSUserInfo.SingleOrDefault(a => a.UserCode == UserCode && a.WorkPoint == AppConfig.WorkPointCode);
  172. return line == null;
  173. }
  174. catch (Exception ex)
  175. {
  176. db.Transaction.Rollback();
  177. throw ex;
  178. }
  179. }
  180. public static bool ExistSGroup(string Sgroup)
  181. {
  182. string sql = @"SELECT 1 FROM dbo.Sys_EnumValues WHERE EnumKey='00022' AND StartFlag=1 AND WorkPointCode='" + AppConfig.WorkPointCode + "' AND EnumValue='{0}'";
  183. sql = string.Format(sql, Sgroup);
  184. DataSet ds = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
  185. if (ds.Tables.Count == 0)
  186. {
  187. return false;
  188. }
  189. if (ds.Tables[0].Rows.Count == 0)
  190. {
  191. return false;
  192. }
  193. return true;
  194. }
  195. public static bool ExistUserCode(string userCode)
  196. {
  197. string sql = @"SELECT 1 FROM dbo.Sys_User WHERE UserCode ='{0}' AND WorkPointCode='" + AppConfig.WorkPointCode + "'";
  198. sql = string.Format(sql, userCode);
  199. DataSet ds = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql);
  200. if (ds.Tables.Count == 0)
  201. {
  202. return false;
  203. }
  204. if (ds.Tables[0].Rows.Count == 0)
  205. {
  206. return false;
  207. }
  208. return true;
  209. }
  210. public static string QueryTeamUsed(List<string> teamList)
  211. {
  212. string sql = @"SELECT STUFF((SELECT ',' + T.SGroup FROM (SELECT DISTINCT SGroup FROM dbo.ICSUserInfo WHERE SGroup IN('{0}') AND WorkPoint='{1}')T FOR XML PATH('')), 1, 1, '') AS sgs ";
  213. sql = string.Format(sql, string.Join("','", teamList), AppConfig.WorkPointCode);
  214. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  215. return dt.Rows[0][0].ToString();
  216. }
  217. public static DataTable QueryUsersInTeams(List<string> teamList)
  218. {
  219. string sql = @"
  220. SELECT DISTINCT
  221. A.SGroup,
  222. STUFF((SELECT ',' + UserCode FROM dbo.ICSUserInfo WHERE SGroup=A.SGroup AND WorkPoint='{1}' FOR XML PATH('')), 1, 1, '') AS USERS
  223. FROM ICSUserInfo A
  224. WHERE A.SGroup in ('{0}') AND A.WorkPoint='{1}'
  225. ";
  226. sql = string.Format(sql, string.Join("','", teamList), AppConfig.WorkPointCode);
  227. return DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  228. }
  229. public static void Test(string testCode)
  230. {
  231. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  232. db.Connection.Open();
  233. db.Transaction = db.Connection.BeginTransaction();
  234. try
  235. {
  236. IDbCommand cmd = db.GetCommand(db.ICSITEMLot);
  237. cmd.CommandText = "SELECT * FROM dbo.ICSITEMLot WHERE LotNO='55A22022011000000004100001'";
  238. cmd.CommandType = CommandType.Text;
  239. cmd.Connection = db.Connection;
  240. IDataReader r = cmd.ExecuteReader();
  241. db.Transaction.Commit();
  242. }
  243. catch (Exception ex)
  244. {
  245. db.Transaction.Rollback();
  246. throw ex;
  247. }
  248. finally
  249. {
  250. db.Connection.Close();
  251. }
  252. }
  253. }
  254. }