607 lines
31 KiB
C#
607 lines
31 KiB
C#
using System;
|
|
using Microsoft.VisualBasic;
|
|
using static iMESCore.Base.iMESComSubroutine;
|
|
using static iMESCore.Base.iMESComXML;
|
|
using static iMESCore.Base.iMESConst;
|
|
using iMESCore.Settings;
|
|
using System.Web.Services;
|
|
using System.Data;
|
|
using Microsoft.VisualBasic.CompilerServices;
|
|
|
|
namespace wsABC
|
|
{
|
|
|
|
public class wsWIP_21674
|
|
{
|
|
|
|
private iMESCore.Settings.AppSettings objSetting = new iMESCore.Settings.AppSettings();
|
|
private System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); // 用以讀取Xml字串
|
|
private DateTime ArriveTime; // 送達時間
|
|
private string strIdentity; // Identity XML字串
|
|
private string strReturnValue; // ReturnValue XML字串
|
|
private string strException; // Exception XML字串
|
|
private string strResult; // Result XML字串
|
|
private string strMessage; // Message XML字串
|
|
private string strServiceName = "wsWIP_ABC"; // ServiceName
|
|
private string strResourceDir = "Resources";
|
|
private kcWIP.clsLot objLot = new kcWIP.clsLot();
|
|
private kcSYS.clsSYSUserLog objSYS = new kcSYS.clsSYSUserLog(); // 宣告Sys的物件
|
|
private MEStc_ABC.clsLot clsLot = new MEStc_ABC.clsLot(); // 宣告Sys的物件
|
|
private MEStc_ABC.clsLot_21674 objTest = new MEStc_ABC.clsLot_21674(); // 宣告Sys的物件
|
|
|
|
public wsWIP_21674()
|
|
{
|
|
try
|
|
{
|
|
strResourceDir = System.IO.Path.Combine("wsUpdateResource", objSetting["ResourceDir"].ToString());
|
|
}
|
|
catch (Exception)
|
|
{ }
|
|
}
|
|
|
|
|
|
public string HelloWorld(string InXml)
|
|
{
|
|
return "HelloWorld";
|
|
}
|
|
|
|
[WebMethod(Description = "Execute Check In by LotNo")]
|
|
public string Exe_CheckIn(string InXml)
|
|
{
|
|
string Exe_CheckInRet = default(string);
|
|
|
|
long LotStamp;
|
|
string LotNo = default(string), LinkName, UserNo = default(string);
|
|
|
|
DataTable dtAttrib;
|
|
DataTable dtEquipment;
|
|
DataTable dtEquipmentChamber;
|
|
DataRow drData;
|
|
|
|
DataTable dtMTLLot;
|
|
|
|
System.Xml.XmlNodeList xmlList;
|
|
string ShiftNo = "N/A";
|
|
string LotRecord = defString;
|
|
int i;
|
|
var CheckInTime = defDateTime;
|
|
string RuleNo = ""; // Added by Jialing 2011/02/18
|
|
|
|
ArriveTime = DateTime.Now;
|
|
|
|
try
|
|
{
|
|
// 讀取InXml字串
|
|
xmlDoc.LoadXml(InXml);
|
|
UserNo = GetXMLCurUserNo(xmlDoc);
|
|
|
|
// 組Identity字串
|
|
strIdentity = CombineXMLIdentity(Environment.MachineName, UserNo, Conversions.ToString(ArriveTime));
|
|
|
|
// 開始解譯InXml字串
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("lotstamp").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("lotstamp").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
LotStamp = Conversions.ToLong(xmlDoc.DocumentElement.GetElementsByTagName("lotstamp").Item(0).SelectNodes("value").Item(0).InnerText);
|
|
}
|
|
else
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%LotStamp%] [%Not Found%]");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%LotStamp%] [%Not Found%]");
|
|
}
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("lotno").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("lotno").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
LotNo = xmlDoc.DocumentElement.GetElementsByTagName("lotno").Item(0).SelectNodes("value").Item(0).InnerText;
|
|
}
|
|
else
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%LotNo%] [%Not Found%]");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%LotNo%] [%Not Found%]");
|
|
}
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("linkname").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("linkname").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
LinkName = xmlDoc.DocumentElement.GetElementsByTagName("linkname").Item(0).SelectNodes("value").Item(0).InnerText;
|
|
}
|
|
else
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%LinkName%] [%Not Found%]");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%LinkName%] [%Not Found%]");
|
|
}
|
|
// Added by Jialing 2011/02/18
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("ruleno").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("ruleno").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
RuleNo = xmlDoc.DocumentElement.GetElementsByTagName("ruleno").Item(0).SelectNodes("value").Item(0).InnerText;
|
|
}
|
|
}
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("shiftno").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("shiftno").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
ShiftNo = xmlDoc.DocumentElement.GetElementsByTagName("shiftno").Item(0).SelectNodes("value").Item(0).InnerText;
|
|
}
|
|
}
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("lotrecord").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("lotrecord").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
LotRecord = xmlDoc.DocumentElement.GetElementsByTagName("lotrecord").Item(0).SelectNodes("value").Item(0).InnerText;
|
|
}
|
|
}
|
|
|
|
// 加入CheckIntime By carl 2007/06/04
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("checkintime").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("checkintime").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
CheckInTime = Conversions.ToDate(xmlDoc.DocumentElement.GetElementsByTagName("checkintime").Item(0).SelectNodes("value").Item(0).InnerText);
|
|
}
|
|
}
|
|
|
|
// 1.取出CheckIn Data, Attrib --------------------------------------------------------------------------------------------
|
|
// <attrib>
|
|
// <name>..</name> <type>..</type>
|
|
// <value>
|
|
// <attribno>..</attribno>
|
|
// <attribtype>..</attribtype>
|
|
// <attribsequence>..</attribsequence>
|
|
// <attribsource>..</attribsource>
|
|
// <attribphase>..</attribphase>
|
|
// <attribvalue>..</attribvalue>
|
|
// </value>
|
|
// <desc></desc>
|
|
// </attrib>
|
|
dtAttrib = new DataTable("Attrib");
|
|
dtAttrib.Columns.Add("AttribNo", Type.GetType("System.String"));
|
|
dtAttrib.Columns.Add("AttribType", Type.GetType("System.Int32"));
|
|
dtAttrib.Columns.Add("AttribSequence", Type.GetType("System.Int32"));
|
|
dtAttrib.Columns.Add("AttribSource", Type.GetType("System.Int32"));
|
|
dtAttrib.Columns.Add("AttribPhase", Type.GetType("System.Int32"));
|
|
dtAttrib.Columns.Add("AttribValue", Type.GetType("System.String"));
|
|
dtAttrib.Columns.Add("SaveToLotPropertyNo", Type.GetType("System.String"));
|
|
// 2015-12-16, Joe, Add
|
|
dtAttrib.Columns.Add("TestValue", Type.GetType("System.String"));
|
|
dtAttrib.Columns.Add("QCItemNo", Type.GetType("System.String"));
|
|
dtAttrib.Columns.Add("Result", Type.GetType("System.String"));
|
|
dtAttrib.Columns.Add("Result_INT", Type.GetType("System.Int32"));
|
|
dtAttrib.Columns.Add("FactorSerial", Type.GetType("System.String"));
|
|
dtAttrib.Columns.Add("SerialNo", Type.GetType("System.Int32"));
|
|
dtAttrib.Columns.Add("MEMO", Type.GetType("System.String"));
|
|
dtAttrib.Columns.Add("ComponentNo", Type.GetType("System.String"));
|
|
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("attrib").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("attrib").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
xmlList = xmlDoc.GetElementsByTagName("attrib").Item(0).SelectNodes("value");
|
|
var loopTo = xmlList.Count - 1;
|
|
for (i = 0; i <= loopTo; i++)
|
|
{
|
|
if (xmlList[i].SelectNodes("attribno").Count == 0 | xmlList[i].SelectNodes("attribtype").Count == 0 | xmlList[i].SelectNodes("attribsequence").Count == 0 | xmlList[i].SelectNodes("attribsource").Count == 0 | xmlList[i].SelectNodes("attribphase").Count == 0 | xmlList[i].SelectNodes("attribvalue").Count == 0)
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%AttribNo%], [%AttribType%], [%AttribSequence%], [%AttribSource%], [%AttribPhase%], [%AttribValue%] [%cannotbeempty%]");
|
|
}
|
|
// 將資料存入暫存Table
|
|
drData = dtAttrib.NewRow();
|
|
drData["AttribNo"] = xmlList[i].SelectNodes("attribno").Item(0).InnerText;
|
|
drData["AttribType"] = xmlList[i].SelectNodes("attribtype").Item(0).InnerText;
|
|
drData["AttribSequence"] = xmlList[i].SelectNodes("attribsequence").Item(0).InnerText;
|
|
drData["AttribSource"] = xmlList[i].SelectNodes("attribsource").Item(0).InnerText;
|
|
drData["AttribPhase"] = xmlList[i].SelectNodes("attribphase").Item(0).InnerText;
|
|
drData["AttribValue"] = xmlList[i].SelectNodes("attribvalue").Item(0).InnerText;
|
|
if (xmlList[i].SelectNodes("savetolotpropertyno").Count > 0)
|
|
{
|
|
drData["SaveToLotPropertyNo"] = xmlList[i].SelectNodes("savetolotpropertyno").Item(0).InnerText;
|
|
}
|
|
else
|
|
{
|
|
drData["SaveToLotPropertyNo"] = "";
|
|
}
|
|
// 2015-12-16, Joe, Add
|
|
drData["TestValue"] = xmlList[i].SelectNodes("attribvalue").Item(0).InnerText;
|
|
if (xmlList[i].SelectNodes("qcitemno").Count > 0)
|
|
{
|
|
drData["QCItemNo"] = xmlList[i].SelectNodes("qcitemno").Item(0).InnerText;
|
|
}
|
|
if (xmlList[i].SelectNodes("result").Count > 0)
|
|
{
|
|
drData["Result"] = xmlList[i].SelectNodes("result").Item(0).InnerText;
|
|
}
|
|
if (xmlList[i].SelectNodes("result_int").Count > 0 && !string.IsNullOrEmpty(xmlList[i].SelectNodes("result_int").Item(0).InnerText))
|
|
{
|
|
if (Information.IsNumeric(xmlList[i].SelectNodes("result_int").Item(0).InnerText))
|
|
{
|
|
drData["Result_INT"] = xmlList[i].SelectNodes("result_int").Item(0).InnerText;
|
|
}
|
|
else
|
|
{
|
|
throw new iMESException.MESException("0000-200011", "Result_INT must be numeric");
|
|
}
|
|
}
|
|
if (xmlList[i].SelectNodes("factorserial").Count > 0)
|
|
{
|
|
drData["FactorSerial"] = xmlList[i].SelectNodes("factorserial").Item(0).InnerText;
|
|
}
|
|
if (xmlList[i].SelectNodes("serialno").Count > 0 && !string.IsNullOrEmpty(xmlList[i].SelectNodes("serialno").Item(0).InnerText))
|
|
{
|
|
drData["SerialNo"] = xmlList[i].SelectNodes("serialno").Item(0).InnerText;
|
|
}
|
|
dtAttrib.Rows.Add(drData);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 2.取出CheckIn Data, Equipment --------------------------------------------------------------------------------------------
|
|
// <equipment>
|
|
// <name>..</name> <type>..</type>
|
|
// <value>
|
|
// <equipmentno>..</equipmentno>
|
|
// <loadport>..</loadport>
|
|
// </value>
|
|
// <desc></desc>
|
|
// </equipment>
|
|
dtEquipment = new DataTable("Equipment");
|
|
dtEquipment.Columns.Add("EquipmentNo", Type.GetType("System.String"));
|
|
dtEquipment.Columns.Add("LoadPort", Type.GetType("System.Int16"));
|
|
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("equipment").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("equipment").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
xmlList = xmlDoc.GetElementsByTagName("equipment").Item(0).SelectNodes("value");
|
|
var loopTo1 = xmlList.Count - 1;
|
|
for (i = 0; i <= loopTo1; i++)
|
|
{
|
|
if (xmlList[i].SelectNodes("equipmentno").Count == 0)
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%EquipmentNo%] [%cannotbeempty%]");
|
|
}
|
|
|
|
// 將資料存入暫存Table
|
|
drData = dtEquipment.NewRow();
|
|
drData["EquipmentNo"] = xmlList[i].SelectNodes("equipmentno").Item(0).InnerText;
|
|
if (xmlList[i].SelectNodes("loadport").Count > 0)
|
|
{
|
|
drData["LoadPort"] = xmlList[i].SelectNodes("loadport").Item(0).InnerText;
|
|
}
|
|
dtEquipment.Rows.Add(drData);
|
|
}
|
|
}
|
|
}
|
|
//TsungyYu 2021/06/10取出 Chamber--------------------------------------------------------------------------------------------
|
|
|
|
dtEquipmentChamber = new DataTable("EquipmentChamber");
|
|
dtEquipmentChamber.Columns.Add("EquipmentNo", System.Type.GetType("System.String"));
|
|
dtEquipmentChamber.Columns.Add("BelongEquipmentNo", System.Type.GetType("System.String"));
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("equipmentchamber").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("equipmentchamber").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
xmlList = xmlDoc.GetElementsByTagName("equipmentchamber").Item(0).SelectNodes("value");
|
|
var loopTo1 = xmlList.Count - 1;
|
|
for (i = 0; i <= loopTo1; i++)
|
|
{
|
|
if (xmlList[i].SelectNodes("equipmentno").Count == 0)
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%EquipmentNo%] [%cannotbeempty%]");
|
|
}
|
|
//將資料存入暫存Table
|
|
drData = dtEquipmentChamber.NewRow();
|
|
drData["EquipmentNo"] = xmlList[i].SelectNodes("equipmentno").Item(0).InnerText;
|
|
drData["BelongEquipmentNo"] = xmlList[i].SelectNodes("belongequipmentno").Item(0).InnerText;
|
|
dtEquipmentChamber.Rows.Add(drData);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//20240119自定义
|
|
DataTable dtSelfDesgin;
|
|
dtSelfDesgin = new DataTable("tblSelfDesgin");
|
|
dtSelfDesgin.Columns.Add("TblId", Type.GetType("System.String"));
|
|
dtSelfDesgin.Columns.Add("IsSelect", Type.GetType("System.Int32"));
|
|
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("selfdesgininfo").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("selfdesgininfo").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
xmlList = xmlDoc.GetElementsByTagName("selfdesgininfo").Item(0).SelectNodes("value");
|
|
var loopTo1 = xmlList.Count - 1;
|
|
for (i = 0; i <= loopTo1; i++)
|
|
{
|
|
if (xmlList[i].SelectNodes("tblid").Count == 0)
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%TblId%] [%cannotbeempty%]");
|
|
}
|
|
if (Convert.ToInt32(xmlList[i].SelectNodes("isselect").Item (0).InnerText ) == 1)
|
|
{
|
|
throw new Exception ("该批号已经被其他生产批选择!");
|
|
}
|
|
// 將資料存入暫存Table
|
|
drData = dtSelfDesgin.NewRow();
|
|
drData["TblId"] = xmlList[i].SelectNodes("tblid").Item(0).InnerText;
|
|
drData["IsSelect"] = xmlList[i].SelectNodes("isselect").Item(0).InnerText;
|
|
dtSelfDesgin.Rows.Add(drData);
|
|
}
|
|
}
|
|
}
|
|
// 多人加工
|
|
DataTable dtLoginState;
|
|
dtLoginState = new DataTable("tblLoginState");
|
|
dtLoginState.Columns.Add("UserNo", Type.GetType("System.String"));
|
|
dtLoginState.Columns.Add("UserName", Type.GetType("System.String"));
|
|
dtLoginState.Columns.Add("CheckInTime", Type.GetType("System.DateTime"));
|
|
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("loginstate").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("loginstate").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
xmlList = xmlDoc.GetElementsByTagName("loginstate").Item(0).SelectNodes("value");
|
|
var loopTo2 = xmlList.Count - 1;
|
|
for (i = 0; i <= loopTo2; i++)
|
|
{
|
|
if (xmlList[i].SelectNodes("userno").Count == 0 || xmlList[i].SelectNodes("username").Count == 0 || xmlList[i].SelectNodes("checkintime").Count == 0)
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%userno%], [%username%], [%checkintime%] [%not found%]");
|
|
}
|
|
// 將資料存入暫存Table
|
|
drData = dtLoginState.NewRow();
|
|
drData["UserNo"] = xmlList[i].SelectNodes("userno").Item(0).InnerText;
|
|
drData["UserName"] = xmlList[i].SelectNodes("username").Item(0).InnerText;
|
|
drData["CheckInTime"] = xmlList[i].SelectNodes("checkintime").Item(0).InnerText;
|
|
dtLoginState.Rows.Add(drData);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 模治具
|
|
DataTable dtAccessory;
|
|
dtAccessory = new DataTable("Accessory");
|
|
dtAccessory.Columns.Add("EquipmentNo", Type.GetType("System.String"));
|
|
dtAccessory.Columns.Add("AccessoryNo", Type.GetType("System.String"));
|
|
dtAccessory.Columns.Add("AccessoryVersion", Type.GetType("System.String"));
|
|
dtAccessory.Columns.Add("AccessoryType", Type.GetType("System.String"));
|
|
dtAccessory.Columns.Add("AccumulateQty", Type.GetType("System.Decimal"));
|
|
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("accessory").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("accessory").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
xmlList = xmlDoc.GetElementsByTagName("accessory").Item(0).SelectNodes("value");
|
|
var loopTo3 = xmlList.Count - 1;
|
|
for (i = 0; i <= loopTo3; i++)
|
|
{
|
|
if (xmlList[i].SelectNodes("equipmentno").Count == 0 || xmlList[i].SelectNodes("accessoryno").Count == 0 || xmlList[i].SelectNodes("accessoryversion").Count == 0 || xmlList[i].SelectNodes("accessorytype").Count == 0 || xmlList[i].SelectNodes("accumulateqty").Count == 0)
|
|
{
|
|
throw new iMESException.MESException("0000-200002", "[%equipmentno%], [%accessoryno%], [%accessoryversion%], [%accessorytype%],[%accumulateqty%] [%not found%]");
|
|
}
|
|
// 將資料存入暫存Table
|
|
drData = dtAccessory.NewRow();
|
|
drData["EquipmentNo"] = xmlList[i].SelectNodes("equipmentno").Item(0).InnerText;
|
|
drData["AccessoryNo"] = xmlList[i].SelectNodes("accessoryno").Item(0).InnerText;
|
|
drData["AccessoryVersion"] = xmlList[i].SelectNodes("accessoryversion").Item(0).InnerText;
|
|
drData["AccessoryType"] = xmlList[i].SelectNodes("accessorytype").Item(0).InnerText;
|
|
drData["AccumulateQty"] = xmlList[i].SelectNodes("accumulateqty").Item(0).InnerText;
|
|
dtAccessory.Rows.Add(drData);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Kevin 20140106,區分沒選模治具與沒顯示模治具,介面沒顯示模治具則設為Nothing
|
|
dtAccessory = null;
|
|
}
|
|
|
|
dtMTLLot = new DataTable("Temp_MaterialLot");
|
|
dtMTLLot.Columns.Add("MaterialNo", Type.GetType("System.String"));
|
|
dtMTLLot.Columns.Add("MaterialLotNo", Type.GetType("System.String"));
|
|
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("temp_materiallot").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("temp_materiallot").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
xmlList = xmlDoc.GetElementsByTagName("temp_materiallot").Item(0).SelectNodes("value");
|
|
var loopTo4 = xmlList.Count - 1;
|
|
for (i = 0; i <= loopTo4; i++)
|
|
{
|
|
// 將資料存入暫存Table
|
|
drData = dtMTLLot.NewRow();
|
|
drData["MaterialNo"] = xmlList[i].SelectNodes("materialno").Item(0).InnerText;
|
|
drData["MaterialLotNo"] = xmlList[i].SelectNodes("materiallotno").Item(0).InnerText;
|
|
dtMTLLot.Rows.Add(drData);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 3.檢查投料點在機台的料是否足夠 -------------------------------------------------------------------------------------------
|
|
objLot.ChkMaterialOnEquipment(LotNo, dtEquipment);
|
|
|
|
// 4.Update CheckIn----------------------------------------------------------------------------------------------------------
|
|
string LanguageMode = GetXMLLanguageMode(xmlDoc);
|
|
|
|
objTest.BR_CheckIn(LotStamp, LotNo, LinkName, dtAttrib, dtEquipment, UserNo, ShiftNo, LotRecord, CheckInTime, RuleNo, dtLoginState, dtAccessory, dtMTLLot, LanguageMode, dtEquipmentChamber,dtSelfDesgin);
|
|
|
|
// 5.Return Value------------------------------------------------------------------------------------------------------------
|
|
strException = "";
|
|
strResult = "success";
|
|
|
|
objSYS.AddEventLog(strServiceName, UserNo, "LotNo", LotNo, DateTime.Now, "Exe_CheckIn", ComputerName: GetXMLCurComputer(xmlDoc));
|
|
}
|
|
|
|
catch (iMESException.MESException ex)
|
|
{
|
|
strReturnValue = "";
|
|
switch (ex.ErrorCode.ToString() ?? "")
|
|
{
|
|
case "IPQCNO":
|
|
{
|
|
strException = CombineXMLException(ex.ErrorCode.ToString(), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "IPQCNO", ex.StackTrace);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
{
|
|
strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Exe_CheckIn fail!", ex.StackTrace);
|
|
break;
|
|
}
|
|
}
|
|
strResult = "fail";
|
|
objSYS.AddErrorLog_ErrorCode(strServiceName, UserNo, "LotNo", LotNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc), ErrorCode: Conversions.ToString(ex.ErrorCode));
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
strReturnValue = "";
|
|
strException = CombineXMLException(defWSErrCode, ex.Message, "Exe_CheckIn fail!", ex.StackTrace);
|
|
strResult = "fail";
|
|
objSYS.AddErrorLog_ErrorCode(strServiceName, UserNo, "LotNo", LotNo, DateTime.Now, strException, ComputerName: GetXMLCurComputer(xmlDoc));
|
|
}
|
|
|
|
finally
|
|
{
|
|
// 將各部份之XML字串組起來並傳出
|
|
Exe_CheckInRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, "");
|
|
|
|
}
|
|
return Exe_CheckInRet;
|
|
|
|
}
|
|
|
|
public string LoadSelfDesginInfo(string InXml)
|
|
{
|
|
string LoadSelfDesginInfoRet = default(string);
|
|
|
|
// 先給預設值,以判斷是否有傳入該參數
|
|
string SelfDesginBasisNo = defString;
|
|
|
|
ArriveTime = DateTime.Now;
|
|
string AdditionalXml = "";
|
|
try
|
|
{
|
|
// 讀取InXml字串
|
|
xmlDoc.LoadXml(InXml);
|
|
// 組Identity字串
|
|
strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
|
|
|
|
// 判斷是否有傳入Subcontractor,若有,表示要依Subcontractor查詢
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("tblid").Count > 0)
|
|
{
|
|
if (xmlDoc.GetElementsByTagName("tblid").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
SelfDesginBasisNo = xmlDoc.DocumentElement.GetElementsByTagName("tblid").Item(0).SelectNodes("value").Item(0).InnerText;
|
|
}
|
|
}
|
|
|
|
// 呼叫副程式處理查詢條件與Additional格式
|
|
AdditionalXml = CombineXMLQueryAdditional(xmlDoc);
|
|
|
|
// 呼叫Dll執行
|
|
strReturnValue = objTest.LoadSelfDesginInfo(SelfDesginBasisNo, AdditionalXml);
|
|
strException = "";
|
|
strResult = "success";
|
|
}
|
|
|
|
catch (iMESException.MESException ex)
|
|
{
|
|
strReturnValue = "";
|
|
strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Show SelfDesgin Info Failed!!", ex.StackTrace);
|
|
strResult = "fail";
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
strReturnValue = "";
|
|
strException = CombineXMLException(defWSErrCode, ex.Message, "Show SelfDesgin Info Failed!!", ex.StackTrace);
|
|
strResult = "fail";
|
|
}
|
|
|
|
finally
|
|
{
|
|
// 將各部份之XML字串組起來並傳出
|
|
LoadSelfDesginInfoRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, "");
|
|
|
|
}
|
|
|
|
return LoadSelfDesginInfoRet;
|
|
|
|
}
|
|
public string LoadSelfDesginInfo_CO(string InXml)
|
|
{
|
|
string LoadSelfDesginInfoCoRet = default(string);
|
|
|
|
// 先給預設值,以判斷是否有傳入該參數
|
|
string SelfDesginLotNo = defString;
|
|
|
|
ArriveTime = DateTime.Now;
|
|
string AdditionalXml = "";
|
|
try
|
|
{
|
|
// 讀取InXml字串
|
|
xmlDoc.LoadXml(InXml);
|
|
// 組Identity字串
|
|
strIdentity = CombineXMLIdentity(Environment.MachineName, GetXMLCurUserNo(xmlDoc), Conversions.ToString(ArriveTime));
|
|
|
|
// 判斷是否有傳入LotNo,若有,表示要依判斷是否有傳入LotNo查詢
|
|
if (xmlDoc.DocumentElement.GetElementsByTagName("lotno").Count > 0)
|
|
{
|
|
/*if (xmlDoc.GetElementsByTagName("tblid").Item(0).SelectNodes("value").Count > 0)
|
|
{
|
|
SelfDesginBasisNo = xmlDoc.DocumentElement.GetElementsByTagName("tblid").Item(0).SelectNodes("value").Item(0).InnerText;
|
|
}*/
|
|
SelfDesginLotNo = xmlDoc.DocumentElement.GetElementsByTagName("lotno").Item(0).SelectNodes("value").Item(0).InnerText;
|
|
}
|
|
|
|
// 呼叫副程式處理查詢條件與Additional格式
|
|
AdditionalXml = CombineXMLQueryAdditional(xmlDoc);
|
|
|
|
// 呼叫Dll執行
|
|
strReturnValue = objTest.LoadSelfDesginInfo_CO(SelfDesginLotNo, AdditionalXml);
|
|
strException = "";
|
|
strResult = "success";
|
|
}
|
|
|
|
catch (iMESException.MESException ex)
|
|
{
|
|
strReturnValue = "";
|
|
strException = CombineXMLException(Conversions.ToString(ex.ErrorCode), TranslateMsg(ex.Message, GetXMLLanguageMode(xmlDoc), strResourceDir), "Show SelfDesgin Info Failed!!", ex.StackTrace);
|
|
strResult = "fail";
|
|
}
|
|
|
|
catch (Exception ex)
|
|
{
|
|
strReturnValue = "";
|
|
strException = CombineXMLException(defWSErrCode, ex.Message, "Show SelfDesgin Info Failed!!", ex.StackTrace);
|
|
strResult = "fail";
|
|
}
|
|
|
|
finally
|
|
{
|
|
// 將各部份之XML字串組起來並傳出
|
|
LoadSelfDesginInfoCoRet = CombineXMLResponse(strIdentity, strReturnValue, strException, strResult, "");
|
|
|
|
}
|
|
|
|
return LoadSelfDesginInfoCoRet;
|
|
|
|
}
|
|
|
|
}
|
|
} |