This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
SXS20240115/SRC/MESAgent/MESAutoLoader/AutoLoaderLib/ParsePR.cs

386 lines
12 KiB
C#
Raw Normal View History

2024-01-23 14:01:04 +08:00
using System;
using System.Data;
using System.IO;
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using static iMESCore.DataBase.iMESSql;
namespace AutoLoaderLib_Base
{
//調整行業包基底AutoLoaderLib_Base將原有EPIParseTemplate, ParseNEL, ParsePL, ParsePR, ParseQEL等類別進行下架處理
//public class ParsePR : EPIParseTemplate
//{
// // 呼叫父類別的建構子
// public ParsePR(string paramSourcePath, string paramDestinationPath, string paramQueuePath, string paramFailPath) : base(paramSourcePath, paramDestinationPath, paramQueuePath, paramFailPath)
// {
// }
// /// <summary>
///// 設定暫存資料表的欄位
///// </summary>
///// <param name="dt"></param>
///// <returns></returns>
///// <remarks></remarks>
// internal override bool AddColumns(DataTable dt)
// {
// bool blnResult = false;
// try
// {
// dt.Columns.Add("WaferID", Type.GetType("System.String"));
// dt.Columns.Add("RawData", Type.GetType("System.String"));
// dt.Columns.Add("Average", Type.GetType("System.Decimal"));
// dt.Columns.Add("Diff1", Type.GetType("System.Decimal"));
// dt.Columns.Add("Diff2", Type.GetType("System.Decimal"));
// dt.Columns.Add("PR_GRADE", Type.GetType("System.String"));
// dt.Columns.Add("PR_RESULT", Type.GetType("System.String"));
// blnResult = true;
// }
// catch (Exception ex)
// {
// throw;
// }
// return blnResult;
// }
// /// <summary>
///// 將暫存資料表寫入資料庫
///// </summary>
///// <param name="dt"></param>
///// <returns></returns>
///// <remarks></remarks>
// internal override bool InsertTable(DataTable dt)
// {
// bool blnResult = false;
// string strSQL;
// string strSQL2;
// string strSQL3;
// const string PR_GRADE = "PR Grade";
// // 新增 PR 資料
// strSQL = " INSERT INTO TBL_LEDLD_PR " + " (WaferID, CreateDate, RawData, Average, Diff1, Diff2, PR_GRADE, PR_RESULT) " + " VALUES ('{0}', SYSDATE, '{1}', {2}, {3}, {4}, '{5}', '{6}') ";
// // 刪除 ComponentProperty PR_GRADE 的資料
// strSQL2 = " DELETE TBLWIPCOMPONENTPROPERTY " + " WHERE LOTNO = '{0}' " + " AND COMPONENTNO = '{1}' " + " AND PROPERTYNO = '{2}' ";
// // 新增 ComponentProperty PR_GRADE 的資料
// strSQL3 = " INSERT INTO TBLWIPCOMPONENTPROPERTY " + " (LOTNO, COMPONENTNO, PROPERTYNO, PROPERTYVALUE) " + " VALUES ('{0}', '{1}', '{2}', '{3}') ";
// try
// {
// using (var oTran = objConnection.BeginTransaction())
// {
// try
// {
// using (var cmd = CreateCommand())
// {
// cmd.Connection = objConnection;
// cmd.Transaction = oTran;
// for (int i = 0, loopTo = dt.Rows.Count - 1; i <= loopTo; i++)
// {
// cmd.CommandText = string.Format(strSQL, dt.Rows[i]["WaferID"] +
// "", dt.Rows[i]["RawData"] + "", dt.Rows[i]["Average"], dt.Rows[i]["Diff1"], dt.Rows[i]["Diff2"], dt.Rows[i]["PR_GRADE"] + "", dt.Rows[i]["PR_RESULT"] +
// "");
// cmd.ExecuteNonQuery();
// cmd.CommandText = string.Format(strSQL2, Strings.Mid(Conversions.ToString(dt.Rows[i]["WaferID"] +
// ""), 1, 10), dt.Rows[i]["WaferID"] + "", PR_GRADE);
// cmd.ExecuteNonQuery();
// cmd.CommandText = string.Format(strSQL3, Strings.Mid(Conversions.ToString(dt.Rows[i]["WaferID"] +
// ""), 1, 10), dt.Rows[i]["WaferID"] + "", PR_GRADE, dt.Rows[i]["PR_GRADE"] + "");
// cmd.ExecuteNonQuery();
// }
// }
// oTran.Commit();
// blnResult = true;
// }
// catch (Exception ex)
// {
// oTran.Rollback();
// throw;
// }
// }
// }
// catch (Exception ex)
// {
// throw;
// }
// return blnResult;
// }
// /// <summary>
///// 解析資料, 並寫入暫存資料表
///// </summary>
///// <param name="dt"></param>
///// <param name="file"></param>
///// <returns></returns>
///// <remarks></remarks>
// internal override bool ParsingFile(DataTable dt, string file)
// {
// bool blnResult = false;
// DataRow dr = null;
// string line;
// string[] tmpData;
// string WaferID;
// string RawData = "";
// decimal Average = 0m;
// decimal Diff1 = 0m;
// decimal Diff2 = 0m;
// string PR_Grade;
// string PR_Result;
// try
// {
// // 檔名即為 WaferID
// var fi = new FileInfo(file);
// WaferID = fi.Name.Replace(fi.Extension, "");
// fi = null;
// using (var sr = new StreamReader(file))
// {
// do
// {
// line = sr.ReadLine();
// if (!string.IsNullOrEmpty(line))
// {
// tmpData = line.Split('\t');
// if (tmpData != null && tmpData.Length == 2)
// {
// if (!Information.IsNumeric(tmpData[1]))
// {
// tmpData[1] = "0";
// }
// switch (tmpData[0].ToUpper() ?? "")
// {
// case "AVERAGE":
// {
// Average = Convert.ToDecimal(tmpData[1]);
// break;
// }
// case "DIFF1":
// {
// Diff1 = Convert.ToDecimal(tmpData[1]);
// break;
// }
// case "DIFF2":
// {
// Diff2 = Convert.ToDecimal(tmpData[1]);
// break;
// }
// default:
// {
// RawData += tmpData[0] + "=" + tmpData[1] + ",";
// break;
// }
// }
// }
// }
// }
// while (!string.IsNullOrEmpty(line));
// if (RawData.Length > 0)
// {
// RawData = RawData.Substring(0, RawData.Length - 1);
// // 依 Average 取出 Grade
// PR_Grade = PRGrade(Average);
// if (string.IsNullOrEmpty(PR_Grade))
// {
// throw new Exception("PR_Grade fail。");
// }
// // 依 Diff 取出 Grade
// switch (PRGrade(Diff1) ?? "")
// {
// case "":
// {
// throw new Exception("PR_Result fail。");
// }
// case "N/A":
// {
// PR_Result = "NG";
// break;
// }
// default:
// {
// PR_Result = "OK";
// break;
// }
// }
// dr = dt.NewRow();
// dr["WaferID"] = WaferID;
// dr["RawData"] = RawData;
// dr["Average"] = Average;
// dr["Diff1"] = Diff1;
// dr["Diff2"] = Diff2;
// dr["PR_GRADE"] = PR_Grade;
// dr["PR_RESULT"] = PR_Result;
// dt.Rows.Add(dr);
// blnResult = true;
// }
// }
// }
// catch (Exception ex)
// {
// throw;
// }
// finally
// {
// if (dr != null)
// {
// dr = null;
// }
// }
// return blnResult;
// }
// /// <summary>
///// PR 等級編碼原則
///// </summary>
///// <param name="value"></param>
///// <returns></returns>
///// <remarks></remarks>
// private string PRGrade(decimal value)
// {
// string strGrade = "N/A";
// string[] tmpData;
// var CollectionGrade = new Collection();
// CollectionGrade.Add("0~1.5~A1");
// CollectionGrade.Add("1.5~2~A2");
// CollectionGrade.Add("2~3~A3");
// CollectionGrade.Add("3~6~A4");
// CollectionGrade.Add("6~9~A5");
// CollectionGrade.Add("9~12~A6");
// CollectionGrade.Add("12~15~A7");
// CollectionGrade.Add("15~18~A8");
// CollectionGrade.Add("18~24~A9");
// CollectionGrade.Add("24~30~AA");
// CollectionGrade.Add("30~36~AB");
// CollectionGrade.Add("36~9999~AC");
// try
// {
// foreach (string str in CollectionGrade)
// {
// tmpData = Strings.Split(str, "~");
// if (tmpData.Length != 3)
// {
// break;
// }
// if (!Information.IsNumeric(tmpData[0]) || !Information.IsNumeric(tmpData[1]))
// {
// break;
// }
// if ((double)value >= Conversions.ToDouble(tmpData[0]) && (double)value < Conversions.ToDouble(tmpData[1]))
// {
// strGrade = tmpData[2];
// break;
// }
// }
// }
// catch (Exception ex)
// {
// strGrade = "";
// }
// return strGrade;
// }
//}
}