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

276 lines
9.3 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 System.Data.Sql;
  9. using System.Data.Linq;
  10. using ICSSoft.Base.Config.DBHelper;
  11. namespace ICSSoft.Frame.Data.DAL
  12. {
  13. public class ICSECGDAL
  14. {
  15. #region 增加修改
  16. public static void AddAndEdit(List<FormICSECGUIModel> ecgInfoList, string dsconn)
  17. {
  18. FramDataContext db = new FramDataContext(dsconn);
  19. db.Connection.Open();
  20. db.Transaction = db.Connection.BeginTransaction();
  21. try
  22. {
  23. foreach (FormICSECGUIModel ecgInfo in ecgInfoList)
  24. {
  25. bool isNew = false;
  26. var line = db.ICSECG.SingleOrDefault(a => a.ID == ecgInfo.ID);
  27. if (line == null)
  28. {
  29. isNew = true;
  30. line = new ICSECG();
  31. line.ID = AppConfig.GetGuid();
  32. }
  33. var codes = db.ICSECG.Where(a => a.ECGCODE == ecgInfo.ECGCODE && a.ID != line.ID);
  34. if (codes.ToList().Count > 0)
  35. {
  36. throw new Exception("不良代码组代码已存在");
  37. }
  38. line.ECGCODE = ecgInfo.ECGCODE;
  39. line.ECGDESC = ecgInfo.ECGDESC;
  40. line.ROUTECODE = ecgInfo.ROUTECODE;
  41. line.OPCODE = ecgInfo.OPCODE;
  42. line.RESCODE = ecgInfo.RESCODE;
  43. line.MUSER = ecgInfo.MUSER;
  44. line.MUSERName = ecgInfo.MUSERName;
  45. line.MTIME = Convert.ToDateTime(ecgInfo.MTIME);
  46. line.WorkPoint = ecgInfo.WorkPoint;
  47. line.EATTRIBUTE1 = ecgInfo.EATTRIBUTE1;
  48. if (isNew)
  49. db.ICSECG.InsertOnSubmit(line);
  50. db.SubmitChanges();
  51. }
  52. db.SubmitChanges();
  53. db.Transaction.Commit();
  54. }
  55. catch (Exception ex)
  56. {
  57. db.Transaction.Rollback();
  58. throw new Exception(ex.Message);
  59. }
  60. }
  61. #endregion
  62. public static List<FormICSECGUIModel> SearchEcgInfoById(string id, string dsconn)
  63. {
  64. List<FormICSECGUIModel> returnecg = new List<FormICSECGUIModel>();
  65. string sql = @"select a.ID as ID,
  66. a.ECGCODE as ECGCODE,
  67. a.ECGDESC as ECGDESC,
  68. b.ROUTECODE as ROUTECODE,
  69. c.OPCODE as OPCODE,
  70. d.RESCODE as RESCODE,
  71. a.MUSERName as MUSERName,
  72. a.MTIME as MTIME
  73. from ICSECG a
  74. left join ICSROUTE b on a.ROUTECODE=b.ROUTECODE
  75. left join ICSOP c on a.OPCODE=c.OPCODE
  76. left join ICSRES d on a.RESCODE=d.RESCODE
  77. where a.ID='" + id + "'";
  78. sql = string.Format(sql);
  79. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  80. foreach (DataRow dr in dt.Rows)
  81. {
  82. FormICSECGUIModel ecgInfo = new FormICSECGUIModel();
  83. ecgInfo.ID = dr["ID"].ToString();
  84. ecgInfo.route = new FormICSROUTEUIModel();
  85. ecgInfo.ECGCODE = dr["ECGCODE"].ToString();
  86. ecgInfo.ECGDESC = dr["ECGDESC"].ToString();
  87. ecgInfo.route.ROUTECODE = dr["ROUTECODE"].ToString();
  88. ecgInfo.op = new FormICSOPUIModel();
  89. ecgInfo.op.OPCODE = dr["OPCODE"].ToString();
  90. ecgInfo.res = new FormICSRESUIModel();
  91. ecgInfo.res.RESCODE = dr["RESCODE"].ToString();
  92. ecgInfo.MUSERName = dr["MUSERName"].ToString();
  93. ecgInfo.MTIME = System.DateTime.Parse(dr["MTIME"].ToString());
  94. if (!returnecg.Contains(ecgInfo))
  95. {
  96. returnecg.Add(ecgInfo);
  97. }
  98. }
  99. return returnecg;
  100. }
  101. public static List<FormICSOPUIModel> SearchOPInfoList(string str, string dsconn)
  102. {
  103. try
  104. {
  105. List<FormICSOPUIModel> returntype = new List<FormICSOPUIModel>();
  106. string sql = @"select a.OPCODE,a.OPDESC
  107. from dbo.ICSOP a
  108. left join ICSROUTE2OP b on b.OPID=a.ID
  109. WHERE ROUTECODE='" + str + "'";
  110. sql = string.Format(sql);
  111. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  112. foreach (DataRow dr in dt.Rows)
  113. {
  114. FormICSOPUIModel typemodel = new FormICSOPUIModel();
  115. typemodel.OPCODE = dr["OPCODE"].ToString();
  116. typemodel.OPDESC = dr["OPDESC"].ToString();
  117. if (!returntype.Contains(typemodel))
  118. returntype.Add(typemodel);
  119. }
  120. return returntype;
  121. }
  122. catch (Exception ex)
  123. {
  124. throw ex;
  125. }
  126. }
  127. public static List<FormICSRESUIModel> SearchRESInfoList(string str, string dsconn)
  128. {
  129. try
  130. {
  131. List<FormICSRESUIModel> returntype = new List<FormICSRESUIModel>();
  132. string sql = @"select a.RESCODE,a.RESDESC
  133. from dbo.ICSRES a
  134. left join ICSOP2RES b on b.RESID=a.ID
  135. WHERE OPCODE='" + str + "'";
  136. sql = string.Format(sql);
  137. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  138. foreach (DataRow dr in dt.Rows)
  139. {
  140. FormICSRESUIModel typemodel = new FormICSRESUIModel();
  141. typemodel.RESCODE = dr["RESCODE"].ToString();
  142. typemodel.RESDESC = dr["RESDESC"].ToString();
  143. if (!returntype.Contains(typemodel))
  144. returntype.Add(typemodel);
  145. }
  146. return returntype;
  147. }
  148. catch (Exception ex)
  149. {
  150. throw ex;
  151. }
  152. }
  153. // #region 根据存货编码查找产品id
  154. // public static DataTable SelectItemId(string str, string wp)
  155. // {
  156. // string sql = @"select ID
  157. // from dbo.ICSINVENTORY
  158. // where INVCODE='" + str + "' and WorkPoint='" + wp + "'";
  159. // sql = string.Format(sql);
  160. // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  161. // return dt;
  162. // }
  163. // #endregion
  164. // #region 根据工序代码查找工序id
  165. // public static DataTable SelectOpId(string str, string wp)
  166. // {
  167. // string sql = @"select ID
  168. // from dbo.ICSOP
  169. // where OPCODE='" + str + "'and WorkPoint='" + wp + "'";
  170. // sql = string.Format(sql);
  171. // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  172. // return dt;
  173. // }
  174. // #endregion
  175. // #region 根据检验类型代码查找检验类型id
  176. // public static DataTable SelectCkgroupId(string str, string wp)
  177. // {
  178. // string sql = @"select ID
  179. // from dbo.ICSOQCCKGROUP
  180. // where CKGROUP='" + str + "'and WorkPoint='" + wp + "'";
  181. // sql = string.Format(sql);
  182. // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  183. // return dt;
  184. // }
  185. // #endregion
  186. #region delete
  187. public static void delete(List<String> guidList, List<String> codeList)
  188. {
  189. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  190. db.Connection.Open();
  191. db.Transaction = db.Connection.BeginTransaction();
  192. try
  193. {
  194. var lines = db.ICSECG.Where(a => guidList.Contains(a.ID));
  195. var line = db.ICSECG2EC.Where(a => codeList.Contains(a.ECGCODE));
  196. if (line.Count() != 0)
  197. {
  198. throw new Exception("该不良代码组在不良代码组与不良代码的关系维护中已经使用,无法删除!");
  199. }
  200. db.ICSECG.DeleteAllOnSubmit(lines);
  201. db.SubmitChanges();
  202. db.Transaction.Commit();
  203. }
  204. catch (Exception ex)
  205. {
  206. db.Transaction.Rollback();
  207. throw ex;
  208. }
  209. }
  210. #endregion
  211. //#region 产品工序是否已经存在
  212. //public static bool IsIncludingItemOP(string ITEMCODE, string OPCODE, string dsconn)
  213. //{
  214. // FramDataContext db = new FramDataContext(dsconn);
  215. // db.Connection.Open();
  216. // db.Transaction = db.Connection.BeginTransaction();
  217. // try
  218. // {
  219. // var line = db.ICSMODELOP2CKGROUP.SingleOrDefault(a => a.ITEMCODE == ITEMCODE && a.OPCODE == OPCODE);
  220. // if (line == null)
  221. // return true;
  222. // else
  223. // return false;
  224. // }
  225. // catch (Exception ex)
  226. // {
  227. // db.Transaction.Rollback();
  228. // throw ex;
  229. // }
  230. //}
  231. //#endregion
  232. }
  233. }