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

342 lines
14 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 ICSInvTransferDetailDal
  14. {
  15. #region AddandEdit
  16. public static void AddandEdit(List<FormICSInvTransferDetailUIModel> ItemLot, string Appconstr)
  17. {
  18. FramDataContext db = new FramDataContext(Appconstr);
  19. db.Connection.Open();
  20. db.Transaction = db.Connection.BeginTransaction();
  21. try
  22. {
  23. foreach (FormICSInvTransferDetailUIModel Item in ItemLot)
  24. {
  25. bool isNew = false;
  26. var line = db.ICSInvTransferDetail.SingleOrDefault(a => a.ID == Item.ID);
  27. if (line == null)
  28. {
  29. isNew = true;
  30. line = new ICSInvTransferDetail();
  31. line.ID = AppConfig.GetGuid();
  32. line.TransferID = Item.TransferID;
  33. line.TransferNO = Item.TransferNO;
  34. }
  35. var codes = db.ICSInvTransferDetail.Where(a => a.TransferNO == Item.TransferNO&&a.TransferLine == Item.TransferLine && a.ID != line.ID);
  36. if (codes.ToList().Count > 0)
  37. {
  38. throw new Exception("该单据单行号已存在");
  39. }
  40. line.TransferLine = Item.TransferLine;
  41. line.ORDERNO = Item.ORDERNO;
  42. line.ORDERLINE = Item.ORDERLINE;
  43. line.TransferSTATUS = Item.TransferSTATUS;
  44. line.MEMO = Item.MEMO;
  45. line.ITEMCODE = Item.ITEMCODE;
  46. line.MOCODE = Item.MOCODE;
  47. line.PLANQTY = Convert.ToDecimal(Item.PLANQTY);
  48. line.ACTQTY = Convert.ToDecimal(Item.ACTQTY);
  49. line.CustomerCode = Item.CustomerCode;
  50. line.CUSTOMERNAME = Item.CUSTOMERNAME;
  51. line.FROMStorageCode = Item.FROMStorageCode;
  52. line.FROMStackCode = Item.FROMStackCode;
  53. line.TOStorageCode = Item.TOStorageCode;
  54. line.TOStackCode = Item.TOStackCode;
  55. line.RECEIVE = Item.RECEIVE;
  56. line.RECEIVELINE = Item.RECEIVELINE;
  57. line.TransferTIME =Convert.ToDateTime(Item.TransferTIME);
  58. line.TransferUSER = Item.TransferUSER;
  59. line.MUSER = Item.MUSER;
  60. line.MUSERName = Item.MUSERName;
  61. line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  62. line.WorkPoint = AppConfig.WorkPointCode;
  63. line.EATTRIBUTE1 = null;
  64. if (isNew) db.ICSInvTransferDetail.InsertOnSubmit(line);
  65. db.SubmitChanges();
  66. db.Transaction.Commit();
  67. }
  68. }
  69. catch (Exception ex)
  70. {
  71. db.Transaction.Rollback();
  72. throw new Exception(ex.Message);
  73. }
  74. }
  75. #endregion
  76. #region 通过入库转移单详细id查询
  77. public static List<FormICSInvTransferDetailUIModel> SearchInfoByID(string guid, string dsconn)
  78. {
  79. List<FormICSInvTransferDetailUIModel> InvTransfer = new List<FormICSInvTransferDetailUIModel>();
  80. string sql = @"select a.ID as ID,
  81. b.ID as TransferID,
  82. b.TransferNO as TransferNO,
  83. a.TransferLine as TransferLine,
  84. a.ORDERNO as ORDERNO,
  85. a.ORDERLINE as ORDERLINE,
  86. b.TransferSTATUS as TransferSTATUS,
  87. a.MEMO as MEMO,
  88. c.INVCODE as ITEMCODE,
  89. d.MOCODE as MOCODE,
  90. a.PLANQTY as PLANQTY,
  91. a.ACTQTY as ACTQTY,
  92. a.CustomerCode as CustomerCode,
  93. a.CUSTOMERNAME as CUSTOMERNAME,
  94. e.StorageCode as FROMStorageCode,
  95. f.StackCode as FROMStackCode,
  96. g.StorageCode as TOStorageCode,
  97. h.StackCode as TOStackCode,
  98. a.RECEIVE as RECEIVE,
  99. a.RECEIVELINE as RECEIVELINE,
  100. a.TransferTIME as TransferTIME,
  101. a.TransferUSER as TransferUSER,
  102. a.MUSERName as MUSERName,
  103. a.MTIME as MTIME
  104. from dbo.ICSInvTransferDetail a
  105. left join ICSInvTransfer b on a.TransferID=b.ID
  106. left join ICSINVENTORY c on a.ITEMCODE=c.INVCODE
  107. left join ICSMO d on a.MOCODE=d.MOCODE
  108. left join ICSStorage e on a.FROMStorageCode=e.StorageCode
  109. left join ICSStack f on a.FROMStackCode=f.StackCode
  110. left join ICSStorage g on a.TOStorageCode=g.StorageCode
  111. left join ICSStack h on a.TOStackCode=h.StackCode
  112. where a.ID='{0}'";
  113. sql = string.Format(sql, guid);
  114. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  115. foreach (DataRow dr in dt.Rows)
  116. {
  117. FormICSInvTransferDetailUIModel returnInfo = new FormICSInvTransferDetailUIModel();
  118. returnInfo.ID = dr["ID"].ToString();
  119. returnInfo.invtransfer = new FormICSInvTransferUIModel();
  120. returnInfo.invtransfer.ID = dr["TransferID"].ToString();
  121. returnInfo.invtransfer.TransferNO = dr["TransferNO"].ToString();
  122. returnInfo.invtransfer.TransferSTATUS = dr["TransferSTATUS"].ToString();
  123. returnInfo.TransferLine =int.Parse(dr["TransferLine"].ToString());
  124. returnInfo.ORDERNO = dr["ORDERNO"].ToString();
  125. returnInfo.ORDERLINE = int.Parse(dr["ORDERLINE"].ToString());
  126. returnInfo.MEMO = dr["MEMO"].ToString();
  127. returnInfo.inventory = new FormICSINVENTORYUIModel();
  128. returnInfo.inventory.INVCODE = dr["ITEMCODE"].ToString();
  129. returnInfo.mo = new FormICSMOUIModel();
  130. returnInfo.mo.MOCODE = dr["MOCODE"].ToString();
  131. returnInfo.storage1 = new FormICSStorageUIModel();
  132. returnInfo.storage1.StorageCode = dr["FROMStorageCode"].ToString();
  133. returnInfo.storage2 = new FormICSStorageUIModel();
  134. returnInfo.storage2.StorageCode = dr["TOStorageCode"].ToString();
  135. returnInfo.stack1 = new FormICSStackUIModel();
  136. returnInfo.stack1.StackCode = dr["FROMStackCode"].ToString();
  137. returnInfo.stack2 = new FormICSStackUIModel();
  138. returnInfo.stack2.StackCode = dr["TOStackCode"].ToString();
  139. returnInfo.PLANQTY =Convert.ToDecimal(dr["PLANQTY"].ToString());
  140. returnInfo.ACTQTY = Convert.ToDecimal(dr["ACTQTY"].ToString());
  141. returnInfo.CustomerCode = dr["CustomerCode"].ToString();
  142. returnInfo.CUSTOMERNAME = dr["CUSTOMERNAME"].ToString();
  143. returnInfo.RECEIVE = dr["RECEIVE"].ToString();
  144. returnInfo.RECEIVELINE = dr["RECEIVELINE"].ToString();
  145. returnInfo.TransferTIME =Convert.ToDateTime(dr["TransferTIME"].ToString());
  146. returnInfo.TransferUSER = dr["TransferUSER"].ToString();
  147. returnInfo.MUSERName = dr["MUSERName"].ToString();
  148. returnInfo.MTIME = System.DateTime.Parse(dr["MTIME"].ToString());
  149. if (!InvTransfer.Contains(returnInfo))
  150. {
  151. InvTransfer.Add(returnInfo);
  152. }
  153. }
  154. return InvTransfer;
  155. }
  156. #endregion
  157. #region delete
  158. public static void delete(List<String> guidList)
  159. {
  160. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  161. db.Connection.Open();
  162. db.Transaction = db.Connection.BeginTransaction();
  163. try
  164. {
  165. var lines = db.ICSInvTransferDetail.Where(a => guidList.Contains(a.ID));
  166. //var line = db.ICSRES.Where(a => codeList.Contains(a.DCTCODE));
  167. //if (line.Count() != 0)
  168. //{
  169. // throw new Exception("DCT指令在资源维护已经使用,无法删除!");
  170. //}
  171. db.ICSInvTransferDetail.DeleteAllOnSubmit(lines);
  172. db.SubmitChanges();
  173. db.Transaction.Commit();
  174. }
  175. catch (Exception ex)
  176. {
  177. db.Transaction.Rollback();
  178. throw ex;
  179. }
  180. }
  181. #endregion
  182. #region 查询物料信息
  183. public static List<FormICSINVENTORYUIModel> SearchItemInfoList(string dsconn)
  184. {
  185. try
  186. {
  187. List<FormICSINVENTORYUIModel> returntype = new List<FormICSINVENTORYUIModel>();
  188. string sql = @"select [ID],[INVCODE],[INVNAME],[INVDESC]
  189. from [ICSINVENTORY]
  190. where 1=1";
  191. sql = string.Format(sql);
  192. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  193. foreach (DataRow dr in dt.Rows)
  194. {
  195. FormICSINVENTORYUIModel itemmodel = new FormICSINVENTORYUIModel();
  196. itemmodel.ID = dr["ID"].ToString();
  197. itemmodel.INVCODE = dr["INVCODE"].ToString();
  198. itemmodel.INVNAME = dr["INVNAME"].ToString();
  199. itemmodel.INVDESC = dr["INVDESC"].ToString();
  200. if (!returntype.Contains(itemmodel))
  201. returntype.Add(itemmodel);
  202. }
  203. return returntype;
  204. }
  205. catch (Exception ex)
  206. {
  207. throw ex;
  208. }
  209. }
  210. #endregion
  211. #region 查询工单信息
  212. public static List<FormICSMOUIModel> SearchMOInfoList(string dsconn)
  213. {
  214. try
  215. {
  216. List<FormICSMOUIModel> returntype = new List<FormICSMOUIModel>();
  217. string sql = @"select [ID],[MOCODE],[MOMEMO]
  218. from [ICSMO]
  219. where 1=1";
  220. sql = string.Format(sql);
  221. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  222. foreach (DataRow dr in dt.Rows)
  223. {
  224. FormICSMOUIModel itemmodel = new FormICSMOUIModel();
  225. itemmodel.ID = dr["ID"].ToString();
  226. itemmodel.MOCODE = dr["MOCODE"].ToString();
  227. itemmodel.MOMEMO = dr["MOMEMO"].ToString();
  228. if (!returntype.Contains(itemmodel))
  229. returntype.Add(itemmodel);
  230. }
  231. return returntype;
  232. }
  233. catch (Exception ex)
  234. {
  235. throw ex;
  236. }
  237. }
  238. #endregion
  239. #region 查询库别信息
  240. public static List<FormICSStorageUIModel> SearchStorageInfoList(string dsconn)
  241. {
  242. try
  243. {
  244. List<FormICSStorageUIModel> returntype = new List<FormICSStorageUIModel>();
  245. string sql = @"select [Serial],[StorageCode],[StorageName]
  246. from [ICSStorage]
  247. where 1=1";
  248. sql = string.Format(sql);
  249. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  250. foreach (DataRow dr in dt.Rows)
  251. {
  252. FormICSStorageUIModel itemmodel = new FormICSStorageUIModel();
  253. itemmodel.Serial = dr["Serial"].ToString();
  254. itemmodel.StorageCode = dr["StorageCode"].ToString();
  255. itemmodel.StorageName = dr["StorageName"].ToString();
  256. if (!returntype.Contains(itemmodel))
  257. returntype.Add(itemmodel);
  258. }
  259. return returntype;
  260. }
  261. catch (Exception ex)
  262. {
  263. throw ex;
  264. }
  265. }
  266. #endregion
  267. #region 根据库别代码查询库别id
  268. public static DataTable SelectStorageID(string storagecode)
  269. {
  270. string sql = @"select Serial
  271. from dbo.ICSStorage
  272. where StorageCode='" + storagecode + "'";
  273. sql = string.Format(sql);
  274. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  275. return dt;
  276. }
  277. #endregion
  278. #region 查询库位信息
  279. public static List<FormICSStackUIModel> SearchStackInfoList(string storageid, string dsconn)
  280. {
  281. try
  282. {
  283. List<FormICSStackUIModel> returntype = new List<FormICSStackUIModel>();
  284. string sql = @"select [Serial],[StackCode],[StackName]
  285. from [ICSStack]
  286. where Storage_Serial='" + storageid + "'";
  287. sql = string.Format(sql);
  288. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  289. foreach (DataRow dr in dt.Rows)
  290. {
  291. FormICSStackUIModel itemmodel = new FormICSStackUIModel();
  292. itemmodel.Serial = dr["Serial"].ToString();
  293. itemmodel.StackCode = dr["StackCode"].ToString();
  294. itemmodel.StackName = dr["StackName"].ToString();
  295. if (!returntype.Contains(itemmodel))
  296. returntype.Add(itemmodel);
  297. }
  298. return returntype;
  299. }
  300. catch (Exception ex)
  301. {
  302. throw ex;
  303. }
  304. }
  305. #endregion
  306. }
  307. }