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

242 lines
9.1 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.DBHelper;
  7. using System.Data;
  8. using System.Data.SqlClient;
  9. using ICSSoft.Base.Config.AppConfig;
  10. namespace ICSSoft.Frame.Data.DAL
  11. {
  12. public class ICSEQPMaterialTRANSDAL
  13. {
  14. #region 增加修改
  15. public static void AddAndEdit(List<FormICSEQPMaterialTRANSUIModel> equipmentInfoList, string dsconn)
  16. {
  17. FramDataContext db = new FramDataContext(dsconn);
  18. db.Connection.Open();
  19. db.Transaction = db.Connection.BeginTransaction();
  20. try
  21. {
  22. foreach (FormICSEQPMaterialTRANSUIModel equipmentInfo in equipmentInfoList)
  23. {
  24. //var line = db.ICSEQPMaterialTRANS.SingleOrDefault(a => a.MToolCode == equipmentInfo.MToolCode);
  25. //if (line != null)
  26. //{
  27. // throw new Exception("备件编码已存在");
  28. //}
  29. ICSEQPMaterialTRANS line = new ICSEQPMaterialTRANS();
  30. line.MCODE = equipmentInfo.ItemCode;
  31. line.MToolCode = equipmentInfo.MToolCode;
  32. line.MTRANSType = equipmentInfo.MTRANSType;
  33. line.MTRANSQty = equipmentInfo.MTRANSQty;
  34. line.MRRUSER = equipmentInfo.MRRUSER;
  35. line.MUSER = equipmentInfo.MUSER;
  36. line.MUSERName = equipmentInfo.MUSERName;
  37. line.MTIME = Convert.ToDateTime(equipmentInfo.MTIME);
  38. line.WorkPoint = equipmentInfo.WorkPoint;
  39. line.EATTRIBUTE1 = equipmentInfo.EATTRIBUTE1;
  40. db.ICSEQPMaterialTRANS.InsertOnSubmit(line);
  41. if (equipmentInfo.materialinv.MType == "A")
  42. {
  43. var lines = db.ICSEQPMaterialInfo.SingleOrDefault(a => a.MToolCode == equipmentInfo.MToolCode);
  44. lines.MValidDATE = equipmentInfo.materialinfo.MValidDATE;
  45. if (equipmentInfo.MTRANSType == "领料")
  46. {
  47. lines.Mstatus = "使用中";
  48. }
  49. if (equipmentInfo.MTRANSType == "退料")
  50. {
  51. lines.Mstatus = "在库";
  52. }
  53. if (equipmentInfo.MTRANSType == "报废")
  54. {
  55. lines.Mstatus = "报废";
  56. }
  57. }
  58. var line1 = db.ICSEQPMaterialINV.SingleOrDefault(a => a.MCODE == equipmentInfo.ItemCode);
  59. if (equipmentInfo.MTRANSType == "领料")
  60. {
  61. if (equipmentInfo.MTRANSQty - line1.MINVQty > 0)
  62. {
  63. throw new Exception("库存数量不足");
  64. }
  65. //lines.Mstatus = "使用中";
  66. line1.MINVQty = line1.MINVQty - equipmentInfo.MTRANSQty;
  67. line1.MUSEQty = line1.MUSEQty + equipmentInfo.MTRANSQty;
  68. }
  69. if (equipmentInfo.MTRANSType == "退料")
  70. {
  71. if (equipmentInfo.MTRANSQty - line1.MUSEQty > 0)
  72. {
  73. throw new Exception("退料数超出使用数");
  74. }
  75. if (line1.MUSEQty == 0)
  76. {
  77. throw new Exception("不存在使用中的备品备件,无法退料");
  78. }
  79. //lines.Mstatus = "在库";
  80. line1.MINVQty = line1.MINVQty + equipmentInfo.MTRANSQty;
  81. line1.MUSEQty = line1.MUSEQty - equipmentInfo.MTRANSQty;
  82. }
  83. if (equipmentInfo.MTRANSType == "报废")
  84. {
  85. if (equipmentInfo.MTRANSQty - line1.MINVQty > 0)
  86. {
  87. throw new Exception("报废数超出在库数");
  88. }
  89. //lines.Mstatus = "报废";
  90. line1.MINVQty = line1.MINVQty - equipmentInfo.MTRANSQty;
  91. line1.MScrapQty = line1.MScrapQty + equipmentInfo.MTRANSQty;
  92. }
  93. db.SubmitChanges();
  94. }
  95. db.SubmitChanges();
  96. db.Transaction.Commit();
  97. }
  98. catch (Exception ex)
  99. {
  100. db.Transaction.Rollback();
  101. throw new Exception(ex.Message);
  102. }
  103. }
  104. #endregion
  105. //#region 班次次序是否存在
  106. //public static bool IsIncludingInShiftSeq(int shiftsqe, string shifttypeid)
  107. //{
  108. // FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  109. // db.Connection.Open();
  110. // db.Transaction = db.Connection.BeginTransaction();
  111. // try
  112. // {
  113. // var line = db.ICSSHIFT.SingleOrDefault(a => a.SHIFTSEQ == shiftsqe && a.SHIFTTYPEID == shifttypeid);
  114. // if (line == null)
  115. // return true;
  116. // else
  117. // return false;
  118. // }
  119. // catch (Exception ex)
  120. // {
  121. // db.Transaction.Rollback();
  122. // throw ex;
  123. // }
  124. //}
  125. //#endregion
  126. // public static List<FormICSEQPTSUIModel> SearchEQPTSInfoByID(string id, string dsconn)
  127. // {
  128. // List<FormICSEQPTSUIModel> returnshift = new List<FormICSEQPTSUIModel>();
  129. // string sql = @"select a.GUID,b.EQPID,b.EQPCode,a.FINDUSER,a.FINDMTIME,a.TSINFO,a.REASON,a.Solution,a.Result,a.TSType,a.STATUS,a.Duration,a.MUSERName,a.MTIME
  130. // from ICSEQPTS a
  131. // left join ICSEquipment b on a.EQPCode=b.EQPCode
  132. // where a.GUID='{0}'";
  133. // sql = string.Format(sql, id);
  134. // DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  135. // foreach (DataRow dr in dt.Rows)
  136. // {
  137. // FormICSEQPTSUIModel eqptsInfo = new FormICSEQPTSUIModel();
  138. // eqptsInfo.GUID = dr["GUID"].ToString();
  139. // eqptsInfo.equipment = new FormICSEquipmentUIModel();
  140. // eqptsInfo.equipment.EQPID = dr["EQPID"].ToString();
  141. // eqptsInfo.equipment.EQPCode = dr["EQPCode"].ToString();
  142. // eqptsInfo.FINDUSER = dr["FINDUSER"].ToString();
  143. // eqptsInfo.FINDMTIME = Convert.ToDateTime(dr["FINDMTIME"].ToString());
  144. // eqptsInfo.TSINFO = dr["TSINFO"].ToString();
  145. // eqptsInfo.REASON = dr["REASON"].ToString();
  146. // eqptsInfo.Solution = dr["Solution"].ToString();
  147. // eqptsInfo.Result = dr["Result"].ToString();
  148. // eqptsInfo.TSType = dr["TSType"].ToString();
  149. // eqptsInfo.STATUS = dr["STATUS"].ToString();
  150. // eqptsInfo.Duration =Convert.ToInt32(dr["Duration"].ToString());
  151. // eqptsInfo.MUSERName = dr["MUSERName"].ToString();
  152. // eqptsInfo.MTIME = System.DateTime.Parse(dr["MTIME"].ToString());
  153. // if (!returnshift.Contains(eqptsInfo))
  154. // {
  155. // returnshift.Add(eqptsInfo);
  156. // }
  157. // }
  158. // return returnshift;
  159. // }
  160. #region delete
  161. public static void delete(List<String> guidList)
  162. {
  163. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  164. db.Connection.Open();
  165. db.Transaction = db.Connection.BeginTransaction();
  166. try
  167. {
  168. var lines = db.ICSEQPMaterialInfo.Where(a => guidList.Contains(a.MToolCode));
  169. db.ICSEQPMaterialInfo.DeleteAllOnSubmit(lines);
  170. db.SubmitChanges();
  171. db.Transaction.Commit();
  172. }
  173. catch (Exception ex)
  174. {
  175. db.Transaction.Rollback();
  176. throw ex;
  177. }
  178. }
  179. #endregion
  180. public static DataTable GetShiftCode()
  181. {
  182. try
  183. {
  184. string sql = @"select TOP 1 [SHIFTCODE]
  185. FROM [dbo].[ICSSHIFT] order by SHIFTCODE desc";
  186. return DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  187. }
  188. catch (Exception ex)
  189. {
  190. throw ex;
  191. }
  192. }
  193. // public static DataTable GetShiftSeqCode()
  194. // {
  195. // try
  196. // {
  197. // string sql = @"select TOP 1 [SHIFTSEQ]
  198. // FROM [dbo].[ICSSHIFT] order by [SHIFTTYPEID] desc";
  199. // return DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  200. // }
  201. // catch (Exception ex)
  202. // {
  203. // throw ex;
  204. // }
  205. // }
  206. }
  207. }