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

137 lines
6.6 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. using System.Data.SqlClient;
  12. namespace ICSSoft.Frame.Data.DAL
  13. {
  14. public class CheckDAL
  15. {
  16. public static DataTable PoArriveCheckData(string LotNO, string dsconn)
  17. {
  18. string sql = @"SELECT A.LotNO, B.INVCODE, B.INVNAME, B.INVSTD, A.LOTQTY, A.VenderLotNO, A.EATTRIBUTE3 AS iNum, B.INVUOM, A.EATTRIBUTE2, ISNULL(A.EATTRIBUTE5, '') EATTRIBUTE5
  19. FROM ICSITEMLot A INNER JOIN ICSINVENTORY B ON A.ItemCode = B.INVCODE WHERE 1=1 AND A.LotNO = '{0}' AND TYPE = '' ";
  20. sql = string.Format(sql, LotNO);
  21. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  22. return dt;
  23. }
  24. public static bool UpdateCheck(SqlConnection sqlConnection, SqlTransaction trans, string LotNO, string iStatus, string User, string dsconn)
  25. {
  26. string sql = "";
  27. string ConnectString = dsconn;
  28. bool isSuccess = false;
  29. SqlCommand cmd = new SqlCommand();
  30. cmd.Connection = sqlConnection;
  31. cmd.Transaction = trans;
  32. try
  33. {
  34. sql = @"UPDATE ICSITEMLot SET EATTRIBUTE2 = '{1}', VENDORITEMCODE = '{2}', VENDORCODE = '{3}', EATTRIBUTE5 = '已检' WHERE LotNO = '{0}' ";
  35. sql = string.Format(sql, LotNO, iStatus, User, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  36. cmd.CommandText = sql;
  37. cmd.ExecuteNonQuery();
  38. isSuccess = true;
  39. }
  40. catch (Exception ex)
  41. {
  42. throw new Exception(ex.Message);
  43. }
  44. return isSuccess;
  45. }
  46. public static DataTable IQCCheckData(string LotNO, string dsconn)
  47. {
  48. string sql = @"SELECT TOP 1 A.LotNO, D.INVCODE, D.INVNAME, D.INVSTD, B.OPCODE, A.VenderLotNO, D.INVUOM, B.LOTQTY,
  49. B.UserCodeBegin, B.EQPCODE, ISNULL(C.Result, '') Result, E.EATTRIBUTE1 FROM ICSITEMLot A
  50. INNER JOIN ICSLOTONWIP B ON A.LotNO = B.LOTNO LEFT JOIN ICSLOTONWIPCheck C ON B.ID = C.ONWIPID
  51. JOIN ICSINVENTORY D ON A.ItemCode = D.INVCODE LEFT JOIN ICSMO2User E ON B.LotNO = E.LOTNO AND B.OPCODE = E.OPCODE
  52. WHERE 1=1 AND A.LotNO = '{0}' AND A.TYPE = '' ORDER BY B.MTIME DESC ";
  53. sql = string.Format(sql, LotNO);
  54. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  55. return dt;
  56. }
  57. public static bool UpdateIQCCheck(SqlConnection sqlConnection, SqlTransaction trans, string LotNO, string iStatus, string User, string UserName, string WorkPoint, string dsconn)
  58. {
  59. string sql = "";
  60. string ConnectString = dsconn;
  61. bool isSuccess = false;
  62. SqlCommand cmd = new SqlCommand();
  63. cmd.Connection = sqlConnection;
  64. cmd.Transaction = trans;
  65. try
  66. {
  67. sql = @"
  68. INSERT INTO ICSLOTONWIPCheck
  69. (ID, ONWIPID, Result, [USER], TIME, MUSER, MUSERName, MTIME, WorkPoint)
  70. SELECT NEWID(), A.ID, '{1}', '{2}', GETDATE(), '{2}', '{3}', GETDATE(), '{4}' FROM ICSLOTONWIP A
  71. LEFT JOIN ICSLOTONWIPCheck B ON A.ID = B.ONWIPID WHERE 1=1 AND LOTNO = '{0}' AND B.ID IS NULL ";
  72. sql = string.Format(sql, LotNO, iStatus, User, UserName, WorkPoint);
  73. cmd.CommandText = sql;
  74. cmd.ExecuteNonQuery();
  75. isSuccess = true;
  76. }
  77. catch (Exception ex)
  78. {
  79. throw new Exception(ex.Message);
  80. }
  81. return isSuccess;
  82. }
  83. public static DataTable isFinished(string LotNO, string dsconn)
  84. {
  85. string sql = @"SELECT TOP 1 CollectStatus FROM ICSLOTSIMULATION WHERE 1=1 AND LOTNO = '{0}' ORDER BY MTIME DESC ";
  86. sql = string.Format(sql, LotNO);
  87. DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  88. return dt;
  89. }
  90. public static DataTable QueryAllCheck100(string ITEMCODE, string OPCODE, string WORKPOINT, string dsconn)
  91. {
  92. string sql = @"
  93. SELECT * FROM (
  94. SELECT * FROM (
  95. SELECT TOP 50 CAST( 0 AS BIT ) AS isSelect,CASE WHEN mo2u.EATTRIBUTE1='0' THEN '' ELSE '' END AS CheckMode,
  96. a.ITEMCODE,a.LOTNO,a.OPCODE,ncr.IsInput,ncr.Status AS ncrStatus,a.LOTQTY AS Quantity,a.EQPCODE,chk.Enable,
  97. chk.ID,ncr.MTIME ncrTIME,ncr.MUSERName AS ncrUSER,ncr.Memo as ncrMemo,ncr.NCRNo,chk.Status AS chkResult,det.SetValue,det.UNIT,'' TransNO,det.CKGROUPMETH AS chkMemo,chk.MTIME chkTIME,users.username chkUSER
  98. FROM ICSLOTONWIP a
  99. INNER JOIN dbo.ICSMO2User mo2u ON mo2u.LOTNO=A.LOTNO AND mo2u.OPCODE=A.OPCODE
  100. INNER JOIN ICSLOTONWIPCheck chk ON a.ID=chk.FORTRANID AND a.WorkPoint=chk.WorkPoint --AND chk.Enable='1'
  101. INNER JOIN ICSLOTONWIPCheckDetail det ON det.FORTRANID=chk.ID AND det.Type=''
  102. left join sys_user users on users.usercode=chk.eattribute1 and users.workpointcode=a.WorkPoint
  103. LEFT JOIN ICSLOTONWIPCheckNCR ncr ON det.ID=ncr.CheckID AND det.WorkPoint=ncr.WorkPoint
  104. WHERE a.ITEMCODE='{0}' AND a.OPCODE='{1}' AND chk.Status='' AND a.WorkPoint='{2}'
  105. ORDER BY chk.MTIME DESC
  106. ) T1
  107. UNION ALL
  108. SELECT * FROM (
  109. SELECT TOP 50 CAST( 0 AS BIT ) AS isSelect,e.CheckMode,
  110. a.ITEMCODE,a.LOTNO,a.OPCODE,ncr.IsInput,ncr.Status AS ncrStatus,a.LOTQTY AS Quantity,a.EQPCODE,chk.Enable,
  111. chk.ID,ncr.MTIME ncrTIME,ncr.MUSERName AS ncrUSER,ncr.Memo as ncrMemo,ncr.NCRNo,chk.Status AS chkResult,det.SetValue,det.UNIT,e.TransNO,det.CKGROUPMETH AS chkMemo,chk.MTIME chkTIME,users.username chkUSER
  112. FROM ICSLOTONWIP a
  113. INNER JOIN ICSLOTONWIPDetail Wipdet ON Wipdet.LOTNO=a.LOTNO AND Wipdet.OPCode=a.OPCODE AND a.WorkPoint=Wipdet.WorkPoint
  114. INNER JOIN ICSLOTONWIPInspection e ON Wipdet.ID=e.DetailID AND Wipdet.WorkPoint=e.WorkPoint
  115. INNER JOIN ICSLOTONWIPCheck chk ON e.ID=chk.FORTRANID AND e.WorkPoint=chk.WorkPoint --AND chk.Enable='1'
  116. left join sys_user users on users.usercode=chk.eattribute1 and users.workpointcode=a.WorkPoint
  117. INNER JOIN ICSLOTONWIPCheckDetail det ON det.FORTRANID=chk.ID AND det.Type=''
  118. LEFT JOIN ICSLOTONWIPCheckNCR ncr ON det.ID=ncr.CheckID AND det.WorkPoint=ncr.WorkPoint
  119. WHERE a.ITEMCODE='{0}' AND a.OPCODE='{1}' AND chk.Status='' AND a.WorkPoint='{2}'
  120. ORDER BY chk.MTIME DESC
  121. ) T2
  122. ) T ORDER BY T.chkTIME ASC
  123. ";
  124. sql = string.Format(sql, ITEMCODE, OPCODE, WORKPOINT);
  125. return DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
  126. }
  127. }
  128. }