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

318 lines
15 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 ICSASNIQCDal
  14. {
  15. #region AddandEdit
  16. public static void Edit(ICSASNIQC ItemLot, string Appconstr)
  17. {
  18. FramDataContext db = new FramDataContext(Appconstr);
  19. db.Connection.Open();
  20. db.Transaction = db.Connection.BeginTransaction();
  21. try
  22. {
  23. bool isNew = false;
  24. var line = db.ICSASNIQC.SingleOrDefault(a => a.ID == ItemLot.ID);
  25. if (line == null)
  26. {
  27. isNew = true;
  28. line = new ICSASNIQC();
  29. line.ID = AppConfig.GetGuid();
  30. }
  31. line.INSPECTOR = ItemLot.INSPECTOR;
  32. line.PIC = ItemLot.PIC;
  33. line.LOTNO = ItemLot.LOTNO;
  34. line.STANDARD = ItemLot.STANDARD;
  35. line.RESULT = ItemLot.RESULT;
  36. line.RECEIVEDATE = ItemLot.RECEIVEDATE;
  37. db.SubmitChanges();
  38. db.Transaction.Commit();
  39. }
  40. catch (Exception ex)
  41. {
  42. db.Transaction.Rollback();
  43. throw new Exception(ex.Message);
  44. }
  45. }
  46. #endregion
  47. public static void Save(DataTable retData, string Connecting)
  48. {
  49. FramDataContext db = new FramDataContext(Connecting);
  50. db.Connection.Open();
  51. db.Transaction = db.Connection.BeginTransaction();
  52. try
  53. {
  54. foreach (DataRow dr in retData.Rows)
  55. {
  56. string ID = dr["ID"].ToString();
  57. string stno = dr["入库单号"].ToString();
  58. string dSql = @"SELECT a.VENDORCODE,a.RECTYPE,b.ReceiptNO,b.ReceiptLine,b.ORDERNO,b.ORDERLINE,
  59. b.ITEMCODE,b.INVUSER,b.PLANQTY,a.StorageID,d.id as ITEMID,c.id as VENDORID
  60. FROM dbo.ICSINVReceipt a LEFT JOIN dbo.ICSINVReceiptDetail b ON a.ID=b.ReceiptID
  61. LEFT JOIN ICSShipToStock c ON c.VENDORCODE=a.VENDORCODE
  62. LEFT JOIN ICSShipToStock d ON d.ITEMCODE=b.ITEMCODE
  63. WHERE b.RECSTATUS='' AND b.ReceiptLine NOT IN (SELECT STNO_SEQ FROM ICSASNIQC WHERE STNO='{1}')
  64. AND a.ID='{0}' and a.WorkPoint='" + AppConfig.WorkPointCode + "' ORDER BY ReceiptLine ";
  65. dSql = string.Format(dSql, ID,stno);
  66. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, dSql).Tables[0];
  67. if (dt.Rows.Count <= 0)
  68. {
  69. throw new Exception("没有要生成的数据!!");
  70. }
  71. for (int i = 0; i < dt.Rows.Count; i++)
  72. {
  73. int seq = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
  74. ICSASNIQC header = new ICSASNIQC();
  75. string headID = AppConfig.GetGuid();
  76. if (dt.Rows[i]["ITEMID"].ToString() != "" && dt.Rows[i]["VENDORID"].ToString() != "")
  77. {
  78. header.ID = headID;
  79. header.IQCNO = dt.Rows[i]["ReceiptNO"].ToString() + "-" + "" + seq + "";
  80. header.STNO = dt.Rows[i]["ReceiptNO"].ToString();
  81. header.STNO_SEQ = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
  82. header.STATUS = "已检未入库";
  83. header.STS = "是";
  84. header.INVUSER = dt.Rows[i]["INVUSER"].ToString();
  85. header.APPDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  86. header.MUSER = AppConfig.UserId;
  87. header.MUSERName = AppConfig.UserName;
  88. header.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  89. header.WorkPoint = AppConfig.WorkPointCode;
  90. header.VENDORCODE = dt.Rows[i]["VENDORCODE"].ToString();
  91. ICSASNIQCDETAIL deail = new ICSASNIQCDETAIL();
  92. deail.ID = AppConfig.GetGuid();
  93. deail.IQCID = headID;
  94. deail.IQCNO = header.IQCNO;
  95. deail.STNO = dt.Rows[i]["ReceiptNO"].ToString();
  96. deail.STLINE = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
  97. deail.ITEMCODE = dt.Rows[i]["ITEMCODE"].ToString();
  98. deail.ORDERNO = dt.Rows[i]["ORDERNO"].ToString();
  99. deail.ORDERLINE = int.Parse(dt.Rows[i]["ORDERLINE"].ToString());
  100. deail.STDSTATUS = "已检未入库";
  101. deail.RECEIVEQTY = decimal.Parse(dt.Rows[i]["PLANQTY"].ToString());
  102. deail.INSType = "全检";
  103. deail.NGQTY = 0;
  104. deail.CHECKSTATUS = "合格";
  105. deail.ATTRIBUTE = "正常";
  106. deail.Type = "正常";
  107. deail.isSample = "否";
  108. deail.concessionStatus = "否";
  109. deail.StorageID = dt.Rows[i]["StorageID"].ToString();
  110. deail.MUSER = AppConfig.UserId;
  111. deail.MUSERNAME = AppConfig.UserName;
  112. deail.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  113. deail.WORKPOINT = AppConfig.WorkPointCode;
  114. db.ICSASNIQCDETAIL.InsertOnSubmit(deail);
  115. db.ICSASNIQC.InsertOnSubmit(header);
  116. string updateSql = @"UPDATE dbo.ICSINVReceiptDetail SET IQCStatus='合格', QualifyQTY='{0}', RECSTATUS= '已经完成' where ReceiptNO='{1}' and ReceiptLine='{2}' and WorkPoint='" + AppConfig.WorkPointCode + "'";
  117. updateSql = string.Format(updateSql,deail.RECEIVEQTY, deail.STNO, deail.STLINE);
  118. DBHelper.ExecuteNonQuery(AppConfig.AppConnectString, CommandType.Text, updateSql);
  119. string ptsql = "select RECSTATUS from ICSINVReceiptDetail where ReceiptNO='" + deail.STNO + "' AND RECSTATUS!='CLOSE'and WorkPoint='" + AppConfig.WorkPointCode + "'";
  120. DataTable table = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, ptsql).Tables[0];
  121. if(table.Rows.Count==0){
  122. string upptsql = "update ICSINVReceipt set RECSTATUS='CLOSE' from ICSINVReceipt where ReceiptNO='" + header.STNO + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
  123. DBHelper.ExecuteNonQuery(AppConfig.AppConnectString, CommandType.Text, updateSql);
  124. }
  125. }
  126. else
  127. {
  128. header.ID = headID;
  129. header.IQCNO = dt.Rows[i]["ReceiptNO"].ToString() + "-" + "" + seq + "";
  130. header.STNO = dt.Rows[i]["ReceiptNO"].ToString();
  131. header.STNO_SEQ = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
  132. header.STATUS = "新建";
  133. header.STS = "否";
  134. header.INVUSER = dt.Rows[i]["INVUSER"].ToString();
  135. header.APPDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  136. header.MUSER = AppConfig.UserId;
  137. header.MUSERName = AppConfig.UserName;
  138. header.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  139. header.WorkPoint = AppConfig.WorkPointCode;
  140. header.VENDORCODE = dt.Rows[i]["VENDORCODE"].ToString();
  141. ICSASNIQCDETAIL deail = new ICSASNIQCDETAIL();
  142. deail.ID = AppConfig.GetGuid();
  143. deail.IQCID = headID;
  144. deail.IQCNO = header.IQCNO;
  145. deail.STNO = dt.Rows[i]["ReceiptNO"].ToString();
  146. deail.STLINE = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
  147. deail.ITEMCODE = dt.Rows[i]["ITEMCODE"].ToString();
  148. deail.ORDERNO = dt.Rows[i]["ORDERNO"].ToString();
  149. deail.ORDERLINE = int.Parse(dt.Rows[i]["ORDERLINE"].ToString());
  150. deail.STDSTATUS = "新建";
  151. deail.RECEIVEQTY = decimal.Parse(dt.Rows[i]["PLANQTY"].ToString());
  152. deail.concessionStatus = "否";
  153. deail.StorageID = dt.Rows[i]["StorageID"].ToString();
  154. deail.MUSER = AppConfig.UserId;
  155. deail.MUSERNAME = AppConfig.UserName;
  156. deail.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  157. deail.WORKPOINT = AppConfig.WorkPointCode;
  158. db.ICSASNIQCDETAIL.InsertOnSubmit(deail);
  159. db.ICSASNIQC.InsertOnSubmit(header);
  160. }
  161. }
  162. }
  163. db.SubmitChanges();
  164. db.Transaction.Commit();
  165. }
  166. catch (Exception ex)
  167. {
  168. db.Transaction.Rollback();
  169. throw new Exception(ex.Message);
  170. }
  171. }
  172. #region select
  173. public static ICSASNIQC select(String guid, String Appconstr)
  174. {
  175. FramDataContext db = new FramDataContext(Appconstr);
  176. db.Connection.Open();
  177. db.Transaction = db.Connection.BeginTransaction();
  178. ICSASNIQC entity = new ICSASNIQC();
  179. try
  180. {
  181. var line = db.ICSASNIQC.SingleOrDefault(a => a.ID == guid && a.WorkPoint == AppConfig.WorkPointCode);
  182. return (ICSASNIQC)line;
  183. }
  184. catch (Exception ex)
  185. {
  186. throw new Exception(ex.Message);
  187. }
  188. }
  189. #endregion
  190. #region query
  191. public static ICSASNIQC Query(String iqcno, String Appconstr)
  192. {
  193. FramDataContext db = new FramDataContext(Appconstr);
  194. db.Connection.Open();
  195. db.Transaction = db.Connection.BeginTransaction();
  196. ICSASNIQC entity = new ICSASNIQC();
  197. try
  198. {
  199. var line = db.ICSASNIQC.SingleOrDefault(a => a.IQCNO == iqcno && a.WorkPoint == AppConfig.WorkPointCode);
  200. return (ICSASNIQC)line;
  201. }
  202. catch (Exception ex)
  203. {
  204. throw new Exception(ex.Message);
  205. }
  206. }
  207. #endregion
  208. #region delete
  209. public static void delete(List<String> guidList)
  210. {
  211. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  212. db.Connection.Open();
  213. db.Transaction = db.Connection.BeginTransaction();
  214. try
  215. {
  216. var lines = db.ICSASNIQC.Where(a => guidList.Contains(a.ID) && a.STATUS == "新建" && a.WorkPoint==AppConfig.WorkPointCode);
  217. var line = db.ICSASNIQCDETAIL.Where(a => guidList.Contains(a.IQCID) && a.STDSTATUS == "新建" && a.WORKPOINT == AppConfig.WorkPointCode);
  218. db.ICSASNIQC.DeleteAllOnSubmit(lines);
  219. db.ICSASNIQCDETAIL.DeleteAllOnSubmit(line);
  220. db.SubmitChanges();
  221. db.Transaction.Commit();
  222. }
  223. catch (Exception ex)
  224. {
  225. db.Transaction.Rollback();
  226. throw ex;
  227. }
  228. }
  229. #endregion
  230. #region cancel
  231. public static void cancel(List<String> guidList,List<string> lineList)
  232. {
  233. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  234. db.Connection.Open();
  235. db.Transaction = db.Connection.BeginTransaction();
  236. try
  237. {
  238. for (int i = 0; i < guidList.Count;i++ )
  239. {
  240. var line = db.ICSASNIQC.SingleOrDefault(a => a.ID == guidList[i] && a.WorkPoint == AppConfig.WorkPointCode);
  241. var lines = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.IQCID == guidList[i] && a.WORKPOINT == AppConfig.WorkPointCode);
  242. line.STATUS = "新建";
  243. lines.STDSTATUS = "新建";
  244. var INVReceiptDetail = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode && a.ReceiptLine == int.Parse(lineList[i].ToString()));
  245. INVReceiptDetail.RECSTATUS = "新建";
  246. INVReceiptDetail.IQCStatus = "新建";
  247. var ICSINVReceipt = db.ICSINVReceipt.SingleOrDefault(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode);
  248. ICSINVReceipt.RECSTATUS = "新建";
  249. db.SubmitChanges();
  250. }
  251. db.Transaction.Commit();
  252. }
  253. catch (Exception ex)
  254. {
  255. db.Transaction.Rollback();
  256. throw ex;
  257. }
  258. }
  259. #endregion
  260. #region OK
  261. public static void OK(List<String> guidList,List<string> lineList)
  262. {
  263. FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
  264. db.Connection.Open();
  265. db.Transaction = db.Connection.BeginTransaction();
  266. try
  267. {
  268. for (int i = 0; i < guidList.Count; i++)
  269. {
  270. var line = db.ICSASNIQC.SingleOrDefault(a => a.ID == guidList[i] && a.WorkPoint == AppConfig.WorkPointCode);
  271. var lines = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.IQCID == guidList[i] && a.WORKPOINT == AppConfig.WorkPointCode);
  272. line.STATUS = "待检";
  273. lines.STDSTATUS = "待检";
  274. var INVReceiptDetail = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode && a.ReceiptLine == int.Parse(lineList[i].ToString()));
  275. INVReceiptDetail.RECSTATUS = "待检";
  276. INVReceiptDetail.IQCStatus = "待检";
  277. db.SubmitChanges();
  278. var ptDetail = db.ICSINVReceiptDetail.Where(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode && a.RECSTATUS != "待检");
  279. if (ptDetail.Count() == 0 || ptDetail == null)
  280. {
  281. var ICSINVReceipt = db.ICSINVReceipt.SingleOrDefault(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode);
  282. ICSINVReceipt.RECSTATUS = "待检";
  283. }
  284. db.SubmitChanges();
  285. }
  286. db.Transaction.Commit();
  287. }
  288. catch (Exception ex)
  289. {
  290. db.Transaction.Rollback();
  291. throw ex;
  292. }
  293. }
  294. #endregion
  295. }
  296. }