OCRDataRecorder.cs.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. using Aitex.Core.RT.DBCore;
  2. using Aitex.Core.RT.Log;
  3. using Aitex.Sorter.Common;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace MECF.Framework.Common.DBCore
  11. {
  12. public class OCRDataRecorder
  13. {
  14. public static void OcrReadComplete(string guid, string waferid, string sourcelp, string sourcecarrier, string sourceslot,
  15. string ocrno, string ocrjob, bool readresult, string lasermark, string ocrscore, string readperiod)
  16. {
  17. string sql = string.Format(
  18. "INSERT INTO \"ocr_data\"(\"guid\", \"wafer_id\", \"read_time\" , \"source_lp\", \"source_carrier\", \"source_slot\", " +
  19. "\"ocr_no\", \"ocr_job\", \"read_result\" , \"lasermark\", \"ocr_score\", \"read_period\")VALUES ('{0}', '{1}', '{2}','{3}','" +
  20. "{4}', '{5}', '{6}','{7}', '{8}', '{9}','{10}','{11}');",
  21. guid, waferid,
  22. DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"),
  23. sourcelp, sourcecarrier, sourceslot, ocrno, ocrjob, readresult ? "1" : "0", lasermark, ocrscore, readperiod);
  24. DB.Insert(sql);
  25. }
  26. public static List<HistoryStatisticsOCRData> QueryDBOCRStatistics(string sql)
  27. {
  28. List<HistoryStatisticsOCRData> result = new List<HistoryStatisticsOCRData>();
  29. try
  30. {
  31. DataSet ds = DB.ExecuteDataset(sql);
  32. if (ds == null)
  33. return result;
  34. var TempValue = new List<Tuple<DateTime,bool>>();
  35. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  36. {
  37. bool bresult = true;
  38. switch (ds.Tables[0].Rows[i]["read_result"].ToString())
  39. {
  40. case "0":
  41. case "false":
  42. case "False":
  43. case "FALSE":
  44. bresult = false;
  45. break;
  46. }
  47. TempValue.Add(new Tuple<DateTime, bool>(DateTime.Parse(ds.Tables[0].Rows[i]["read_time"].ToString()),
  48. bresult));
  49. }
  50. result = TempValue.GroupBy(time => time.Item1.Date)
  51. .Select(x => new HistoryStatisticsOCRData
  52. {
  53. Date = x.Key.Date.ToString("yyyy-MM-dd"),
  54. Totaltimes=x.Count().ToString(),
  55. Successfueltimes=x.Where(data=> data.Item2==true).Count().ToString(),
  56. Failuretimes = x.Where(data => data.Item2 == false).Count().ToString(),
  57. }).ToList();
  58. return result;
  59. }
  60. catch (Exception ex)
  61. {
  62. LOG.Write(ex);
  63. }
  64. return result;
  65. }
  66. public static List<HistoryOCRData> QueryDBOCRHistory(string sql)
  67. {
  68. List<HistoryOCRData> result = new List<HistoryOCRData>();
  69. try
  70. {
  71. DataSet ds = DB.ExecuteDataset(sql);
  72. if (ds == null)
  73. return result;
  74. var TempValue = new List<Tuple<DateTime, bool>>();
  75. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  76. {
  77. HistoryOCRData ev = new HistoryOCRData();
  78. ev.Guid = ds.Tables[0].Rows[i]["guid"].ToString();
  79. ev.wafer_id = ds.Tables[0].Rows[i]["wafer_id"].ToString();
  80. if (!ds.Tables[0].Rows[i]["read_time"].Equals(DBNull.Value))
  81. ev.read_time = ((DateTime)ds.Tables[0].Rows[i]["read_time"]).ToString("yyyy/MM/dd HH:mm:ss.fff");
  82. ev.source_lp = ds.Tables[0].Rows[i]["source_lp"].ToString();
  83. ev.source_carrier = ds.Tables[0].Rows[i]["source_carrier"].ToString();
  84. ev.source_slot = ds.Tables[0].Rows[i]["source_slot"].ToString();
  85. ev.ocr_no = ds.Tables[0].Rows[i]["ocr_no"].ToString();
  86. ev.ocr_job = ds.Tables[0].Rows[i]["ocr_job"].ToString();
  87. ev.read_result = ds.Tables[0].Rows[i]["read_result"].ToString();
  88. ev.lasermark = ds.Tables[0].Rows[i]["lasermark"].ToString();
  89. ev.ocr_score = ds.Tables[0].Rows[i]["ocr_score"].ToString();
  90. ev.read_period = ds.Tables[0].Rows[i]["read_period"].ToString();
  91. result.Add(ev);
  92. }
  93. return result;
  94. }
  95. catch (Exception ex)
  96. {
  97. LOG.Write(ex);
  98. }
  99. return result;
  100. }
  101. }
  102. }