锐腾搅拌上料功能
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.

228 lines
8.5 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. namespace ICSSoft.Frame.Data.DAL
  7. {
  8. public class ICSEQPWeeklyMaintenanceDAL
  9. {
  10. /// <summary>
  11. /// 批量删除
  12. /// </summary>
  13. /// <param name="listID"></param>
  14. /// <param name="dsconn"></param>
  15. public static void DeleteById(List<string> listID, string dsconn)
  16. {
  17. FramDataContext db = new FramDataContext(dsconn);
  18. db.Connection.Open();
  19. db.Transaction = db.Connection.BeginTransaction();
  20. try
  21. {
  22. var lines = db.ICSEQPWeeklyMaintenance.Where(a => listID.Contains(a.ID));
  23. db.ICSEQPWeeklyMaintenance.DeleteAllOnSubmit(lines);
  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. /// <summary>
  38. /// 单行新增
  39. /// </summary>
  40. /// <param name="info"></param>
  41. /// <param name="dsconn"></param>
  42. public static void Add(ICSEQPWeeklyMaintenance info, string dsconn)
  43. {
  44. FramDataContext db = new FramDataContext(dsconn);
  45. db.Connection.Open();
  46. db.Transaction = db.Connection.BeginTransaction();
  47. try
  48. {
  49. var line = db.ICSEQPWeeklyMaintenance.SingleOrDefault(a => a.EQPID == info.EQPID && a.DATEDIFFID == info.DATEDIFFID);
  50. if (line != null)
  51. {
  52. throw new Exception("此设备的对应时间段已经维护!");
  53. }
  54. var list = db.ICSEQPWeeklyMaintenance.Where(a => a.EQPID == info.EQPID).ToList();
  55. var lineDateCurrent = db.ICSDateDiff.SingleOrDefault(a => a.ID == info.DATEDIFFID);
  56. foreach (ICSEQPWeeklyMaintenance item in list)
  57. {
  58. var lineDateEx = db.ICSDateDiff.SingleOrDefault(a => a.ID == item.DATEDIFFID);
  59. if (lineDateEx.TYPE != "RPS")
  60. {
  61. continue;
  62. }
  63. if (lineDateEx.BEGINTIME > lineDateCurrent.ENDTIME || lineDateEx.ENDTIME < lineDateCurrent.BEGINTIME)
  64. {
  65. continue;
  66. }
  67. else
  68. {
  69. throw new Exception("维护时间段(" + lineDateCurrent.BEGINTIME + "~" + lineDateCurrent.ENDTIME
  70. + ")与已有时间段(" + lineDateEx.BEGINTIME + "~" + lineDateEx.ENDTIME
  71. + ")有重叠");
  72. }
  73. }
  74. db.ICSEQPWeeklyMaintenance.InsertOnSubmit(info);
  75. db.SubmitChanges();
  76. db.Transaction.Commit();
  77. }
  78. catch (Exception ex)
  79. {
  80. db.Transaction.Rollback();
  81. throw ex;
  82. }
  83. finally
  84. {
  85. db.Connection.Close();
  86. }
  87. }
  88. /// <summary>
  89. /// 单行修改
  90. /// </summary>
  91. /// <param name="info"></param>
  92. /// <param name="dsconn"></param>
  93. public static void Modify(ICSEQPWeeklyMaintenance info, string dsconn)
  94. {
  95. FramDataContext db = new FramDataContext(dsconn);
  96. db.Connection.Open();
  97. db.Transaction = db.Connection.BeginTransaction();
  98. try
  99. {
  100. var line = db.ICSEQPWeeklyMaintenance.SingleOrDefault(a => a.ID == info.ID);
  101. if (line == null)
  102. {
  103. throw new Exception("记录已被删除!");
  104. }
  105. var list = db.ICSEQPWeeklyMaintenance.Where(a => a.EQPID == info.EQPID).ToList();
  106. var lineDateCurrent = db.ICSDateDiff.SingleOrDefault(a => a.ID == info.DATEDIFFID);
  107. foreach (ICSEQPWeeklyMaintenance item in list)
  108. {
  109. var lineDateEx = db.ICSDateDiff.SingleOrDefault(a => a.ID == item.DATEDIFFID);
  110. if (lineDateEx.TYPE != "RPS")
  111. {
  112. continue;
  113. }
  114. if (lineDateEx.BEGINTIME > lineDateCurrent.ENDTIME || lineDateEx.ENDTIME < lineDateCurrent.BEGINTIME)
  115. {
  116. continue;
  117. }
  118. else
  119. {
  120. throw new Exception("维护时间段(" + lineDateCurrent.BEGINTIME + "~" + lineDateCurrent.ENDTIME
  121. + ")与已有时间段(" + lineDateEx.BEGINTIME + "~" + lineDateEx.ENDTIME
  122. + ")有重叠");
  123. }
  124. }
  125. line.DATEDIFFID = info.DATEDIFFID;
  126. line.MTIME = info.MTIME;
  127. line.MUSERName = info.MUSERName;
  128. line.Available = info.Available;
  129. db.SubmitChanges();
  130. db.Transaction.Commit();
  131. }
  132. catch (Exception ex)
  133. {
  134. db.Transaction.Rollback();
  135. throw ex;
  136. }
  137. finally
  138. {
  139. db.Connection.Close();
  140. }
  141. }
  142. /// <summary>
  143. /// 单设备一次性维护多个时间段
  144. /// </summary>
  145. /// <param name="EQPID">设备id</param>
  146. /// <param name="Available">启用</param>
  147. /// <param name="listDATEDIFFID">时间段id</param>
  148. /// <param name="MUSERName">用户名</param>
  149. /// <param name="MTIME">维护时间</param>
  150. /// <param name="WorkPoint">站点</param>
  151. /// <param name="dsconn">conn</param>
  152. public static void Edit4OneEQ(string EQPID, bool Available, List<string> listDATEDIFFID, string MUSERName, DateTime MTIME, string WorkPoint, string dsconn)
  153. {
  154. FramDataContext db = new FramDataContext(dsconn);
  155. db.Connection.Open();
  156. db.Transaction = db.Connection.BeginTransaction();
  157. try
  158. {
  159. var linesDel = db.ICSEQPWeeklyMaintenance.Where(a => a.EQPID == EQPID);
  160. db.ICSEQPWeeklyMaintenance.DeleteAllOnSubmit(linesDel);
  161. List<ICSEQPWeeklyMaintenance> linesInsert = new List<ICSEQPWeeklyMaintenance>();
  162. foreach (var DATEDIFFID in listDATEDIFFID)
  163. {
  164. ICSEQPWeeklyMaintenance line = new ICSEQPWeeklyMaintenance();
  165. line.EQPID = EQPID;
  166. line.DATEDIFFID = DATEDIFFID;
  167. line.MTIME = MTIME;
  168. line.MUSERName = MUSERName;
  169. line.WorkPoint = WorkPoint;
  170. line.Available = Available;
  171. linesInsert.Add(line);
  172. }
  173. db.ICSEQPWeeklyMaintenance.InsertAllOnSubmit(linesInsert);
  174. db.SubmitChanges();
  175. db.Transaction.Commit();
  176. }
  177. catch (Exception ex)
  178. {
  179. db.Transaction.Rollback();
  180. throw ex;
  181. }
  182. finally
  183. {
  184. db.Connection.Close();
  185. }
  186. }
  187. /// <summary>
  188. /// 批量导入
  189. /// </summary>
  190. /// <param name="list"></param>
  191. /// <param name="WorkPoint"></param>
  192. /// <param name="dsconn"></param>
  193. public static void Import(List<ICSEQPWeeklyMaintenance> list, string WorkPoint, string dsconn)
  194. {
  195. throw new Exception("暂不支持");
  196. }
  197. public static void Edit4OneEQ(string EQPID, List<ICSEQPWeeklyMaintenance> list, string dsconn)
  198. {
  199. FramDataContext db = new FramDataContext(dsconn);
  200. db.Connection.Open();
  201. db.Transaction = db.Connection.BeginTransaction();
  202. try
  203. {
  204. var linesDel = db.ICSEQPWeeklyMaintenance.Where(a => a.EQPID == EQPID);
  205. db.ICSEQPWeeklyMaintenance.DeleteAllOnSubmit(linesDel);
  206. db.ICSEQPWeeklyMaintenance.InsertAllOnSubmit(list);
  207. db.SubmitChanges();
  208. db.Transaction.Commit();
  209. }
  210. catch (Exception ex)
  211. {
  212. db.Transaction.Rollback();
  213. throw ex;
  214. }
  215. finally
  216. {
  217. db.Connection.Close();
  218. }
  219. }
  220. }
  221. }