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

243 lines
9.0 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 ICSSoft.Base.Config.AppConfig;
  7. using System.Data;
  8. using ICSSoft.Base.Config.DBHelper;
  9. namespace ICSSoft.Frame.Data.DAL
  10. {
  11. public class ICSOPDAL
  12. {
  13. #region 新增和修改
  14. public static void Add(List<FormICSOPUIModel> tbInfoList, string dsconn)
  15. {
  16. FramDataContext db = new FramDataContext(dsconn);
  17. db.Connection.Open();
  18. db.Transaction = db.Connection.BeginTransaction();
  19. try
  20. {
  21. foreach (FormICSOPUIModel tbinfo in tbInfoList)
  22. {
  23. bool isNew = false;
  24. var line = db.ICSOP.SingleOrDefault(a => a.OPCODE == tbinfo.OPCODE && a.WorkPoint == AppConfig.WorkPointCode);
  25. if (line == null)
  26. {
  27. isNew = true;
  28. line = new ICSOP();
  29. line.ID = AppConfig.GetGuid();
  30. line.OPCODE = tbinfo.OPCODE;
  31. }
  32. line.OPDESC = tbinfo.OPDESC;
  33. line.OPCOLLECTION = tbinfo.OPCOLLECTION;
  34. line.OPCONTROL = tbinfo.OPCONTROL;
  35. line.OPNAME = tbinfo.OPNAME;
  36. line.CostCenter = tbinfo.CostCenter;
  37. //line.OpFrom = tbinfo.OpFrom;
  38. line.EnableFlag = tbinfo.EnableFlag;
  39. line.EATTRIBUTE1 = tbinfo.EATTRIBUTE1;
  40. line.MUSER = AppConfig.UserId;
  41. line.MUSERName = AppConfig.UserName;
  42. line.MTIME = DateTime.Now;
  43. line.WorkPoint = AppConfig.WorkPointCode;
  44. if (isNew)
  45. db.ICSOP.InsertOnSubmit(line);
  46. db.SubmitChanges();
  47. }
  48. db.Transaction.Commit();
  49. }
  50. catch (Exception ex)
  51. {
  52. db.Transaction.Rollback();
  53. throw ex;
  54. }
  55. }
  56. #endregion
  57. #region 工序代码是否存在
  58. public static bool IsIncluding(string opCODE, string dsconn)
  59. {
  60. FramDataContext db = new FramDataContext(dsconn);
  61. db.Connection.Open();
  62. db.Transaction = db.Connection.BeginTransaction();
  63. try
  64. {
  65. var line = db.ICSOP.SingleOrDefault(a => a.OPCODE == opCODE);
  66. if (line == null)
  67. return true;
  68. else
  69. return false;
  70. }
  71. catch (Exception ex)
  72. {
  73. db.Transaction.Rollback();
  74. throw ex;
  75. }
  76. }
  77. #endregion
  78. #region 查询工序信息
  79. public static List<FormICSOPUIModel> SearchOPInfo(string opcode, string dsconn)
  80. {
  81. List<FormICSOPUIModel> returnOP = new List<FormICSOPUIModel>();
  82. string sql = @"select OPCODE,OPDESC,OPNAME,OPCOLLECTION,OPCONTROL,CostCenter,EATTRIBUTE1,EnableFlag from ICSOP where OPCODE='{0}'";
  83. sql = string.Format(sql, opcode);
  84. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  85. foreach (DataRow dr in dt.Rows)
  86. {
  87. FormICSOPUIModel returnInfo = new FormICSOPUIModel();
  88. returnInfo.OPCODE = dr["OPCODE"].ToString();
  89. returnInfo.OPDESC = dr["OPDESC"].ToString();
  90. returnInfo.OPNAME = dr["OPNAME"].ToString();
  91. returnInfo.OPCOLLECTION = dr["OPCOLLECTION"].ToString();
  92. returnInfo.OPCONTROL = dr["OPCONTROL"].ToString();
  93. returnInfo.CostCenter = dr["CostCenter"].ToString();
  94. returnInfo.EATTRIBUTE1 = dr["EATTRIBUTE1"].ToString();
  95. returnInfo.EnableFlag = Convert.ToBoolean(dr["EnableFlag"]);
  96. returnOP.Add(returnInfo);
  97. }
  98. return returnOP;
  99. }
  100. #endregion
  101. #region 删除
  102. public static void deleteInfo(List<string> codeList, string dsconn)
  103. {
  104. FramDataContext db = new FramDataContext(dsconn);
  105. db.Connection.Open();
  106. db.Transaction = db.Connection.BeginTransaction();
  107. try
  108. {
  109. var lines = db.ICSOP.Where(a => codeList.Contains(a.OPCODE));
  110. db.ICSOP.DeleteAllOnSubmit(lines);
  111. db.SubmitChanges();
  112. db.Transaction.Commit();
  113. }
  114. catch (Exception ex)
  115. {
  116. db.Transaction.Rollback();
  117. throw ex;
  118. }
  119. }
  120. #endregion
  121. #region 判断是否在工序和资源的关系中
  122. public static bool Including2RES(List<string> idList, string dsconn)
  123. {
  124. FramDataContext db = new FramDataContext(dsconn);
  125. db.Connection.Open();
  126. db.Transaction = db.Connection.BeginTransaction();
  127. try
  128. {
  129. bool flag = false;
  130. var lines = db.ICSOP2RES.Where(a => idList.Contains(a.OPID));
  131. if (lines.Count() != 0)
  132. flag = true;
  133. return flag;
  134. }
  135. catch (Exception ex)
  136. {
  137. //db.Transaction.Rollback();
  138. throw ex;
  139. }
  140. }
  141. #endregion
  142. #region 判断是否在途程和工序的关系中
  143. public static bool IncludingROUTE2OP(List<string> idList, string dsconn)
  144. {
  145. FramDataContext db = new FramDataContext(dsconn);
  146. db.Connection.Open();
  147. db.Transaction = db.Connection.BeginTransaction();
  148. try
  149. {
  150. bool flag = false;
  151. var lines = db.ICSROUTE2OP.Where(a => idList.Contains(a.OPID));
  152. if (lines.Count() != 0)
  153. flag = true;
  154. return flag;
  155. }
  156. catch (Exception ex)
  157. {
  158. //db.Transaction.Rollback();
  159. throw ex;
  160. }
  161. }
  162. public static List<ICSROUTE2OP> GetROUTE2OP(List<string> idList, string wp, string dsconn)
  163. {
  164. FramDataContext db = new FramDataContext(dsconn);
  165. db.Connection.Open();
  166. try
  167. {
  168. List<ICSROUTE2OP> lines = db.ICSROUTE2OP.Where(a => idList.Contains(a.OPID) && a.WORKPOINT == wp).ToList();
  169. db.Connection.Close();
  170. return lines;
  171. }
  172. catch (Exception ex)
  173. {
  174. //db.Transaction.Rollback();
  175. throw ex;
  176. }
  177. }
  178. public static DataTable GetITEMROUTE2OP(List<string> idList, string wp, string dsconn)
  179. {
  180. string sql = "SELECT DISTINCT OPCODE,ROUTECODE,ITEMCODE FROM dbo.ICSITEMROUTE2OP WHERE OPID in ('{0}') AND WorkPoint='{1}'";
  181. sql = string.Format(sql, string.Join("','", idList), wp);
  182. return DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  183. }
  184. #endregion
  185. #region 获取成本中心
  186. public static DataTable SearchDataByEnumKey(string dsconn, string EnumKey)
  187. {
  188. try
  189. {
  190. string sql = @"SELECT EnumKey,EnumValue, EnumText FROM Sys_EnumValues WHERE 1=1 AND EnumKey = '{0}' AND WorkPointCode = '{1}' ORDER BY EnumValue ASC";
  191. sql = string.Format(sql, EnumKey, AppConfig.WorkPointCode);
  192. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  193. return dt;
  194. }
  195. catch (Exception ex)
  196. {
  197. throw ex;
  198. }
  199. }
  200. public static DataTable SearchDataByEnumText(string dsconn, string EnumKey, string EnumText)
  201. {
  202. try
  203. {
  204. string sql = @"SELECT EnumKey,EnumValue, EnumText FROM Sys_EnumValues WHERE 1=1 AND EnumKey = '{0}' AND EnumText = '{1}' AND WorkPointCode = '{2}' ORDER BY EnumValue ASC";
  205. sql = string.Format(sql, EnumKey, EnumText, AppConfig.WorkPointCode);
  206. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  207. return dt;
  208. }
  209. catch (Exception ex)
  210. {
  211. throw ex;
  212. }
  213. }
  214. public static DataTable SearchDataByEnumValue(string dsconn, string EnumKey, string EnumValue)
  215. {
  216. try
  217. {
  218. string sql = @"SELECT EnumKey,EnumValue, EnumText FROM Sys_EnumValues WHERE 1=1 AND EnumKey = '{0}' AND EnumValue = '{1}' AND WorkPointCode = '{2}' ORDER BY EnumValue ASC";
  219. sql = string.Format(sql, EnumKey, EnumValue, AppConfig.WorkPointCode);
  220. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  221. return dt;
  222. }
  223. catch (Exception ex)
  224. {
  225. throw ex;
  226. }
  227. }
  228. #endregion
  229. }
  230. }