public void GetCategoryLits(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_KEYPART ketpart; try { sfcdb = this.DBPools["SFCDB"].Borrow(); ketpart = new T_C_KEYPART(sfcdb, DBTYPE); List <C_CATEGORY> list = ketpart.GETCATEGORY(sfcdb); if (list.Count > 0) { StationReturn.Data = list; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "獲取成功!!"; } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "獲取失敗!!"; } this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } throw e; } }
public void SeKeyPart(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_KEYPART ketpart; string skuno = Data["SKUNO"].ToString().Trim(); string station = Data["STATION_NAME"].ToString().Trim(); try { sfcdb = this.DBPools["SFCDB"].Borrow(); ketpart = new T_C_KEYPART(sfcdb, DBTYPE); List <C_KEYPART> list = ketpart.GetKeypartList(sfcdb, skuno, station); if (list.Count > 0) { StationReturn.Data = list; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "獲取成功!!"; } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "沒有查詢到任何數據!!"; } this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } throw e; } }
public void GetKeyPartBySkuno(JObject requestValue, JObject Data, MESStationReturn StationReturn) { OleExec oleDB = null; T_C_KEYPART t_header = null; List <string> dt = null; string skuno = Data["skuno"].ToString(); if (string.IsNullOrEmpty(skuno)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara = new List <object>() { "Skuno" }; StationReturn.Data = ""; return; //throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000006", new string[] { "skuno" })); } try { oleDB = DBPools["SFCDB"].Borrow(); t_header = new T_C_KEYPART(oleDB, DB_TYPE_ENUM.Oracle); dt = t_header.GetListBySkuno(oleDB, skuno); if (dt == null || dt.Count == 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000034"; StationReturn.Data = ""; } else { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000001"; StationReturn.Data = dt; //StationReturn.Data = ConvertToJson.DataTableToJson(dt); } if (oleDB != null) { DBPools["SFCDB"].Return(oleDB); } } catch (Exception ex) { if (oleDB != null) { DBPools["SFCDB"].Return(oleDB); } throw ex; } }
public override void init() { try { //從Ini檔中獲取BU/Plant/DB/Cust/Count/ConvertWo/DownloadWO BU = ConfigGet("BU"); Plant = ConfigGet("PLANT"); DB = ConfigGet("DB");//與App.config中配置的匹配 CUST = ConfigGet("CUST"); COUNT = ConfigGet("COUNT"); //可以依工單前綴來確定哪種類型的工單需要自動轉,哪種需手動轉 arrayConvertWO = ConfigGet("CONVERTWO").Split(','); _downloadWO = ConfigGet("DOWNLOADWO"); List <System.Net.IPAddress> temp = HWDNNSFCBase.HostInfo.IP.Where(ipv4 => ipv4.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToList(); ip = temp[0].ToString(); //創建DownloadWO_UI,并附值給輸入對象Output.UI Output.UI = new DownLoadWO_UI(this); //依據Ini檔配置的DB從ConnectionManager中獲取數據庫連接 SFCDB = new OleExec(DB, false); //程序運行狀態表 synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); //工單欄位對照表 C_TAB_COLUMN_MAP = new T_C_TAB_COLUMN_MAP(SFCDB, DB_TYPE_ENUM.Oracle); //從SAP Download下來后分別存儲在以下三張表 R_WO_HEADER = new T_R_WO_HEADER(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_ITEM = new T_R_WO_ITEM(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_TEXT = new T_R_WO_TEXT(SFCDB, DB_TYPE_ENUM.Oracle); //獲取料號/Route C_SKU = new T_C_SKU(SFCDB, DB_TYPE_ENUM.Oracle); RouteDetail = new T_C_ROUTE_DETAIL(SFCDB, DB_TYPE_ENUM.Oracle); C_ROUTE = new T_C_ROUTE(SFCDB, DB_TYPE_ENUM.Oracle); T_Series = new T_C_SERIES(SFCDB, DB_TYPE_ENUM.Oracle); //工單類型及前綴信息 WOType = new T_R_WO_TYPE(SFCDB, DB_TYPE_ENUM.Oracle); Keypart = new T_C_KEYPART(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_BASE = new T_R_WO_BASE(SFCDB, DB_TYPE_ENUM.Oracle); t_c_kp_list = new T_C_KP_LIST(SFCDB, DB_TYPE_ENUM.Oracle); //創建RFC類:建立SAP連接,建立RFC輸入輸出參數 ZRFC_SFC_NSG_0001B = new ZRFC_SFC_NSG_0001B(BU); } catch (Exception e) { throw new Exception("Init DownLoadWO Fail" + e.Message); } //取得RFC的輸出參數Table對象,并附值給Output.Tables Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("ITAB")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_HEADER")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_ITEM")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_TEXT")); }
public static void LinkKeypartDataloader(MESStationBase Station, MESStationInput Input, List <R_Station_Action_Para> Paras) { if (Paras.Count != 3) { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000057"); throw new MESReturnMessage(errMsg); } string Sn = Input.Value.ToString(); MESStationSession WOSession = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (WOSession == null) { WOSession = new MESStationSession() { MESDataType = Paras[0].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[0].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(WOSession); } MESStationSession SubKPSession = Station.StationSession.Find(t => t.MESDataType == Paras[1].SESSION_TYPE && t.SessionKey == Paras[1].SESSION_KEY); if (SubKPSession == null) { SubKPSession = new MESStationSession() { MESDataType = Paras[1].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[1].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(SubKPSession); } MESStationSession MainKPSession = Station.StationSession.Find(t => t.MESDataType == Paras[2].SESSION_TYPE && t.SessionKey == Paras[2].SESSION_KEY); if (MainKPSession == null) { MainKPSession = new MESStationSession() { MESDataType = Paras[2].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[2].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(MainKPSession); } SN sn = null; WorkOrder wo = null; T_C_KEYPART tck = new T_C_KEYPART(Station.SFCDB, DB_TYPE_ENUM.Oracle); sn.Load(Sn, Station.SFCDB, DB_TYPE_ENUM.Oracle); wo.Init(sn.WorkorderNo, Station.SFCDB, DB_TYPE_ENUM.Oracle); List <C_KEYPART> keyparts = tck.GetKeypartListByWOAndStation(Station.SFCDB, wo.WorkorderNo, Station.StationName); SubKPSession.Value = keyparts.Where(s => s.SEQ_NO == 10).ToList(); MainKPSession.Value = keyparts.Where(s => s.SEQ_NO != 10).ToList().OrderBy(s => s.SEQ_NO); }
public static void SNLinkMainSNKPAction_Old(MESStationBase Station, MESStationInput Input, List <R_Station_Action_Para> Paras) { WorkOrder wO = null; //SN Sub_SN = null; //SN Min_Sn = null; SN Sub_SN = new SN(); SN Min_Sn = new SN(); string ErrMessage = string.Empty; string wo = Station.Inputs.Find(s => s.DisplayName == "WO").Value.ToString(); string s_sn = Station.Inputs.Find(s => s.DisplayName == "SUB_SN").Value.ToString(); string m_sn = Station.Inputs.Find(s => s.DisplayName == "MIN_SN").Value.ToString(); if (Paras.Count == 0) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000050")); } MESStationSession WOLoadPoint = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (WOLoadPoint == null) { ErrMessage = MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE + Paras[0].SESSION_KEY }); throw new MESReturnMessage(ErrMessage); } wO = (WorkOrder)WOLoadPoint.Value; Sub_SN.Load(s_sn, Station.SFCDB, DB_TYPE_ENUM.Oracle); Min_Sn.Load(m_sn, Station.SFCDB, DB_TYPE_ENUM.Oracle); T_C_KEYPART tck = new T_C_KEYPART(Station.SFCDB, DB_TYPE_ENUM.Oracle); T_R_SN_KEYPART_DETAIL T_kd = new T_R_SN_KEYPART_DETAIL(Station.SFCDB, DB_TYPE_ENUM.Oracle); List <C_KEYPART> KEYPARTS = tck.GetKeypartListByWOAndStation(Station.SFCDB, wO.WorkorderNo, Station.StationName); List <R_SN_KEYPART_DETAIL> KEYPARTD = T_kd.GetKeypartBySub_Sn(Station.SFCDB, s_sn, Station.StationName); if (KEYPARTS.Count >= 2) { if (KEYPARTS.Count > KEYPARTD.Count) { int i = KEYPARTD.Count; T_kd.INSN_KEYPART_DETAIL(Station.SFCDB, Station.BU, Sub_SN.ID, Sub_SN.SerialNo, Min_Sn.SerialNo, Station.StationName, KEYPARTS[i].PART_NO, KEYPARTS[i].SEQ_NO, KEYPARTS[i].CATEGORY_NAME, KEYPARTS[i].CATEGORY, Station.LoginUser.EMP_NO); } Station.AddMessage("MES00000180", new string[] { "MAIN_SN", m_sn }, StationMessageState.Pass); } else { ErrMessage = MESReturnMessage.GetMESReturnMessage("MES00000045", new string[] { Min_Sn.SerialNo }); throw new MESReturnMessage(ErrMessage); } }
//Add by LLF 2018-02-22 end public void Load(string Sn, OleExec sfcdb, MESDataObject.DB_TYPE_ENUM _DBType) { this.sfcdb = sfcdb; this.DBType = _DBType; T_R_SN trsn = new T_R_SN(sfcdb, DBType); if (!string.IsNullOrEmpty(Sn)) { baseSN = trsn.GetDetailBySN(Sn, sfcdb); } T_C_KEYPART tKeyPart = new T_C_KEYPART(sfcdb, DBType); if (!string.IsNullOrEmpty(baseSN.KP_LIST_ID)) { _keyPartList = tKeyPart.GetKeyPartList(sfcdb, baseSN.KP_LIST_ID); } }
public static void SNLinkSubSNKPAction_Old(MESPubLab.MESStation.MESStationBase Station, MESPubLab.MESStation.MESStationInput Input, List <R_Station_Action_Para> Paras) { WorkOrder wO = null; //SN snob = null; string ErrMessage = string.Empty; string wo = Station.Inputs.Find(s => s.DisplayName == "WO").Value.ToString(); string sn = Station.Inputs.Find(s => s.DisplayName == "SUB_SN").Value.ToString(); if (Paras.Count == 0) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000050")); } MESStationSession WOLoadPoint = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (WOLoadPoint == null) { ErrMessage = MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE + Paras[0].SESSION_KEY }); throw new MESReturnMessage(ErrMessage); } wO = (WorkOrder)WOLoadPoint.Value; //snob.Load(sn,Station.SFCDB,DB_TYPE_ENUM.Oracle); SN snob = new SN(sn, Station.SFCDB, DB_TYPE_ENUM.Oracle); if (snob == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000045", new string[] { "SN Point" })); } T_C_KEYPART tck = new T_C_KEYPART(Station.SFCDB, DB_TYPE_ENUM.Oracle); T_R_SN_KEYPART_DETAIL T_kd = new T_R_SN_KEYPART_DETAIL(Station.SFCDB, DB_TYPE_ENUM.Oracle); List <C_KEYPART> KEYPARTS = tck.GetKeypartListByWOAndStation(Station.SFCDB, wO.WorkorderNo, Station.StationName); if (KEYPARTS.Count > 0) { T_kd.INSN_KEYPART_DETAIL(Station.SFCDB, Station.BU, snob.ID, snob.SerialNo, sn, Station.StationName, KEYPARTS[0].PART_NO, KEYPARTS[0].SEQ_NO, KEYPARTS[0].CATEGORY_NAME, KEYPARTS[0].CATEGORY, Station.LoginUser.EMP_NO); Station.AddMessage("MES00000180", new string[] { "SUB_SN", sn }, StationMessageState.Pass); } else { ErrMessage = MESReturnMessage.GetMESReturnMessage("MES00000045", new string[] { sn }); throw new MESReturnMessage(ErrMessage); } }
public override void init() { try { BU = ConfigGet("BU"); Plant = ConfigGet("PLANT"); DB = ConfigGet("DB"); CUST = ConfigGet("CUST"); COUNT = ConfigGet("COUNT"); arrayConvertWO = ConfigGet("CONVERTWO").Split(','); _downloadWO = ConfigGet("DOWNLOADWO"); List <System.Net.IPAddress> temp = HWDNNSFCBase.HostInfo.IP.Where(ipv4 => ipv4.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork).ToList(); ip = temp[0].ToString(); Output.UI = new DownLoadWO_UI(this); SFCDB = new OleExec(DB, false); synLock = new T_R_SYNC_LOCK(SFCDB, DB_TYPE_ENUM.Oracle); C_TAB_COLUMN_MAP = new T_C_TAB_COLUMN_MAP(SFCDB, DB_TYPE_ENUM.Oracle); C_SKU = new T_C_SKU(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_HEADER = new T_R_WO_HEADER(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_ITEM = new T_R_WO_ITEM(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_TEXT = new T_R_WO_TEXT(SFCDB, DB_TYPE_ENUM.Oracle); RouteDetail = new T_C_ROUTE_DETAIL(SFCDB, DB_TYPE_ENUM.Oracle); WOType = new T_R_WO_TYPE(SFCDB, DB_TYPE_ENUM.Oracle); Keypart = new T_C_KEYPART(SFCDB, DB_TYPE_ENUM.Oracle); C_ROUTE = new T_C_ROUTE(SFCDB, DB_TYPE_ENUM.Oracle); R_WO_BASE = new T_R_WO_BASE(SFCDB, DB_TYPE_ENUM.Oracle); T_Series = new T_C_SERIES(SFCDB, DB_TYPE_ENUM.Oracle); t_c_kp_list = new T_C_KP_LIST(SFCDB, DB_TYPE_ENUM.Oracle); ZRFC_SFC_NSG_0001B = new ZRFC_SFC_NSG_0001B(BU); } catch (Exception e) { throw new Exception("Init DownLoadWO Fail" + e.Message); } Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("ITAB")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_HEADER")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_ITEM")); Output.Tables.Add(ZRFC_SFC_NSG_0001B.GetTableValue("WO_TEXT")); }
public void DeleteKeyPart(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_KEYPART ketpart; Row_C_KEYPART newketpart; string[] ids = Data["ID"].ToString().Trim().Split(','); string SQL = ""; sfcdb = this.DBPools["SFCDB"].Borrow(); sfcdb.BeginTrain(); try { foreach (string id in ids) { ketpart = new T_C_KEYPART(sfcdb, DBTYPE); newketpart = (Row_C_KEYPART)ketpart.GetObjByID(id, sfcdb); SQL += newketpart.GetDeleteString(DB_TYPE_ENUM.Oracle) + ";\n"; } sfcdb.ExecSQL("Begin\n" + SQL + "End;"); sfcdb.CommitTrain(); this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "刪除成功!!"; this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { sfcdb.RollbackTrain(); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "刪除失敗!!"; if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } throw e; } }
/// <summary> /// 檢查HWD Link Keypart檢查 /// </summary> /// <param name="Station"></param> /// <param name="Input"></param> /// <param name="Paras"></param> //public static void SNCallHWWSchecker(MESStationBase Station, MESStationInput Input, List<R_Station_Action_Para> Paras) public static void SNSubKPchecker(MESStationBase Station, MESStationInput Input, List <R_Station_Action_Para> Paras) { List <Dictionary <string, string> > KPList = new List <Dictionary <string, string> >(); List <Dictionary <string, string> > KPList_Temp = new List <Dictionary <string, string> >(); Dictionary <string, string> DicKP = new Dictionary <string, string>(); List <C_KEYPART> SubKP = new List <C_KEYPART>(); string KpSN = Input.Value.ToString(); //C_KEYPART SUBKP = null; if (Paras.Count != 3) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000050")); } MESStationSession SubSNSession = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (SubSNSession == null) { SubSNSession = new MESStationSession() { MESDataType = Paras[0].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[0].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(SubSNSession); } MESStationSession SubKPSession = Station.StationSession.Find(t => t.MESDataType == Paras[1].SESSION_TYPE && t.SessionKey == Paras[1].SESSION_KEY); if (SubKPSession == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[1].SESSION_TYPE + Paras[1].SESSION_KEY })); } MESStationSession KPListSession = Station.StationSession.Find(t => t.MESDataType == Paras[2].SESSION_TYPE && t.SessionKey == Paras[2].SESSION_KEY); if (KPListSession == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[2].SESSION_TYPE + Paras[2].SESSION_KEY })); } SN Sn = new SN(KpSN, Station.SFCDB, DB_TYPE_ENUM.Oracle); if (Sn == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000048", new string[] { KpSN })); } KPListSession.Value = null; SubSNSession.Value = Sn; T_R_SN_KEYPART_DETAIL _R_SN_KEYPART_DETAIL = new T_R_SN_KEYPART_DETAIL(Station.SFCDB, DB_TYPE_ENUM.Oracle); T_C_KEYPART _C_KEYPART = new T_C_KEYPART(Station.SFCDB, DB_TYPE_ENUM.Oracle); List <R_SN_KEYPART_DETAIL> KEYPARTDETAIL = new List <R_SN_KEYPART_DETAIL>(); if (Sn.ShippedFlag == "1") { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000070", new string[] { KpSN })); } if (Sn.RepairFailedFlag == "1") { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000071", new string[] { KpSN })); } if (Sn.CompletedFlag == "0") { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000144", new string[] { KpSN })); } if (Sn.CurrentStation == "MRB") { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000174", new string[] { KpSN })); } else { //Modify by LLF 2018-04-01,有多階綁定 //KEYPARTDETAIL = _R_SN_KEYPART_DETAIL.GetKeypartBySN(Station.SFCDB, KpSN, Station.StationName); //R_SN_KEYPART_DETAIL kpl = KEYPARTDETAIL.Find(z=>z.VALID=="1"); //if (kpl != null) //{ // throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000165", new string[] { KpSN })); //} //else //{ SubKP = (List <C_KEYPART>)SubKPSession.Value; C_KEYPART ckp = SubKP.Find(c => c.PART_NO == Sn.SkuNo); if (ckp == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000175", new string[] { Sn.SkuNo })); } //} } }
/// <summary> /// 檢查HWD Link Keypart檢查 /// </summary> /// <param name="Station"></param> /// <param name="Input"></param> /// <param name="Paras"></param> public static void SNMainKPchecker(MESStationBase Station, MESStationInput Input, List <R_Station_Action_Para> Paras) { List <Dictionary <string, string> > KPList = new List <Dictionary <string, string> >(); List <Dictionary <string, string> > KPList_Temp = new List <Dictionary <string, string> >(); Dictionary <string, string> DicKP = new Dictionary <string, string>(); List <C_KEYPART> MainKP = new List <C_KEYPART>(); string MainSN = Input.Value.ToString(); if (Paras.Count != 3) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000050")); } MESStationSession MainSNSession = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (MainSNSession == null) { MainSNSession = new MESStationSession() { MESDataType = Paras[0].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[0].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(MainSNSession); } MESStationSession MainKPSession = Station.StationSession.Find(t => t.MESDataType == Paras[1].SESSION_TYPE && t.SessionKey == Paras[1].SESSION_KEY); if (MainKPSession == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[1].SESSION_TYPE + Paras[1].SESSION_KEY })); } MESStationSession KPListSession = Station.StationSession.Find(t => t.MESDataType == Paras[2].SESSION_TYPE && t.SessionKey == Paras[2].SESSION_KEY); if (KPListSession == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[2].SESSION_TYPE + Paras[2].SESSION_KEY })); } SN Sn = new SN(MainSN, Station.SFCDB, DB_TYPE_ENUM.Oracle); if (Sn == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000048", new string[] { MainSN })); } MainSNSession.Value = Sn; T_R_SN_KEYPART_DETAIL _R_SN_KEYPART_DETAIL = new T_R_SN_KEYPART_DETAIL(Station.SFCDB, DB_TYPE_ENUM.Oracle); T_C_KEYPART _C_KEYPART = new T_C_KEYPART(Station.SFCDB, DB_TYPE_ENUM.Oracle); List <R_SN_KEYPART_DETAIL> KEYPARTDETAIL = new List <R_SN_KEYPART_DETAIL>(); if (Sn.ShippedFlag == "1") { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000070", new string[] { MainSN })); } if (Sn.RepairFailedFlag == "1") { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000071", new string[] { MainSN })); } if (Sn.CompletedFlag == "0") { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000144", new string[] { MainSN })); } if (Sn.CurrentStation == "MRB") { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000174", new string[] { MainSN })); } else { KEYPARTDETAIL = _R_SN_KEYPART_DETAIL.GetKeypartBySN(Station.SFCDB, MainSN, Station.StationName); R_SN_KEYPART_DETAIL KP_Main = KEYPARTDETAIL.Find(z => z.VALID == "1"); if (KP_Main != null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000165", new string[] { MainSN })); } else { MainKP = (List <C_KEYPART>)MainKPSession.Value; C_KEYPART ckp = MainKP.Find(c => c.PART_NO == Sn.SkuNo); if (ckp == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000175", new string[] { Sn.SkuNo })); } else { KPList_Temp = (List <Dictionary <string, string> >)KPListSession.Value; if (KPList_Temp.Count > 0) { DicKP = KPList_Temp.Find(a => a.ContainsValue(Sn.SerialNo)); if (DicKP != null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000193", new string[] { MainSN })); } } Station.AddMessage("MES00000067", new string[] { MainSN }, StationMessageState.Pass); } } } }
/// <summary> /// 從第一個輸入框加載PanelSN /// </summary> /// <param name="Station"></param> /// <param name="Input"></param> /// <param name="Paras"></param> /// Add by LLF 2018-02-01 //public static void SNInputDataloader(MESStationBase Station, MESStationInput Input, List<R_Station_Action_Para> Paras) //{ // string StrSN = Input.Value.ToString(); // MESStationSession SNSession = new MESStationSession() { MESDataType = Paras[0].SESSION_TYPE, SessionKey = Paras[0].SESSION_KEY, ResetInput = Input }; // Station.StationSession.Add(SNSession); // SNSession.InputValue = Input.Value.ToString(); // SNSession.Value = StrSN; //} public static void SNLinkKeypartDataloader(MESStationBase Station, MESStationInput Input, List <R_Station_Action_Para> Paras) { List <Dictionary <string, string> > KPList = new List <Dictionary <string, string> >(); int SeqNo = 0; KPList = null; if (Paras.Count != 5) { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000057"); throw new MESReturnMessage(errMsg); } string Sn = Input.Value.ToString(); MESStationSession SNSession = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (SNSession == null) { SNSession = new MESStationSession() { MESDataType = Paras[0].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[0].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(SNSession); } MESStationSession WOSession = Station.StationSession.Find(t => t.MESDataType == Paras[1].SESSION_TYPE && t.SessionKey == Paras[1].SESSION_KEY); if (WOSession == null) { WOSession = new MESStationSession() { MESDataType = Paras[1].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[1].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(WOSession); } MESStationSession SubKPSession = Station.StationSession.Find(t => t.MESDataType == Paras[2].SESSION_TYPE && t.SessionKey == Paras[2].SESSION_KEY); if (SubKPSession == null) { SubKPSession = new MESStationSession() { MESDataType = Paras[2].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[2].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(SubKPSession); } MESStationSession MainKPSession = Station.StationSession.Find(t => t.MESDataType == Paras[3].SESSION_TYPE && t.SessionKey == Paras[3].SESSION_KEY); if (MainKPSession == null) { MainKPSession = new MESStationSession() { MESDataType = Paras[3].SESSION_TYPE, InputValue = Input.Value.ToString(), SessionKey = Paras[3].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(MainKPSession); } MESStationSession KPListSession = Station.StationSession.Find(t => t.MESDataType == Paras[4].SESSION_TYPE && t.SessionKey == Paras[4].SESSION_KEY); if (KPListSession == null) { KPListSession = new MESStationSession() { MESDataType = Paras[4].SESSION_TYPE, SessionKey = Paras[4].SESSION_KEY, ResetInput = Input }; Station.StationSession.Add(KPListSession); } KPListSession.Value = KPList; //SN sn = null; //WorkOrder wo = null; SN sn = new SN(); WorkOrder wo = new WorkOrder(); wo = (WorkOrder)WOSession.Value; T_C_KEYPART tck = new T_C_KEYPART(Station.SFCDB, DB_TYPE_ENUM.Oracle); //sn.Load(Sn,Station.SFCDB,DB_TYPE_ENUM.Oracle); //wo.Init(sn.WorkorderNo,Station.SFCDB,DB_TYPE_ENUM.Oracle); List <C_KEYPART> keyparts = tck.GetKeypartListByWOAndStation(Station.SFCDB, wo.WorkorderNo, Station.StationName); if (keyparts.Count > 0) { SeqNo = (int)((C_KEYPART)keyparts[0]).SEQ_NO; SubKPSession.Value = keyparts.Where(s => s.SEQ_NO == SeqNo).ToList(); MainKPSession.Value = keyparts.Where(s => s.SEQ_NO > SeqNo).ToList(); } else { string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000190"); throw new MESReturnMessage(errMsg); } }
public void UpdateKeyPart(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_KEYPART ketpart; Row_C_KEYPART upketpart; string Id = Data["ID"].ToString().Trim(); string KeyPartId = Data["KEYPART_ID"].ToString().Trim(); string SeqNo = Data["SEQ_NO"].ToString().Trim(); string PartNo = Data["PART_NO"].ToString().Trim(); string PartNoVer = Data["PART_NO_VER"].ToString().Trim(); string Qty = Data["QTY"].ToString().Trim(); string StationName = Data["STATION_NAME"].ToString().Trim(); string Category = Data["CATEGORY"].ToString().Trim(); string CategoryName = Data["CATEGORY_NAME"].ToString().Trim(); string Skuno = Data["SKUNO"].ToString().Trim(); string SkunoVer = Data["SKUNO_VER"].ToString().Trim(); try { if (Id.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("ID"); return; } if (KeyPartId.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("KEYPART_ID"); return; } if (SeqNo.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("SEQ_NO"); return; } if (PartNo.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("PART_NO"); return; } if (PartNoVer.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("PART_NO_VER"); return; } if (Qty.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("Qty"); return; } if (StationName.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("StationName"); return; } if (Category.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("Category"); return; } if (CategoryName.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("CategoryName"); return; } if (Skuno.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("Skuno"); return; } if (SkunoVer.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("SkunoVer"); return; } double?Seqno = Convert.ToDouble(SeqNo); double?qty = Convert.ToDouble(Qty); sfcdb = this.DBPools["SFCDB"].Borrow(); ketpart = new T_C_KEYPART(sfcdb, DBTYPE); upketpart = (Row_C_KEYPART)ketpart.GetObjByID(Id, sfcdb); if (upketpart.KEYPART_ID != null || upketpart.KEYPART_ID != "") { upketpart.KEYPART_ID = KeyPartId; upketpart.SEQ_NO = Seqno; upketpart.PART_NO = PartNo; upketpart.PART_NO_VER = PartNoVer; upketpart.QTY = qty; upketpart.STATION_NAME = StationName; upketpart.CATEGORY = Category; upketpart.CATEGORY_NAME = CategoryName; upketpart.SKUNO = Skuno; upketpart.SKUNO_VER = SkunoVer; upketpart.EDIT_EMP = LoginUser.EMP_NO; upketpart.EDIT_TIME = GetDBDateTime(); int result = sfcdb.ExecuteNonQuery(upketpart.GetUpdateString(DB_TYPE_ENUM.Oracle), System.Data.CommandType.Text); if (result > 0) { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "MES00000001"; } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000021"; } } this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } throw e; } }
public void AddLink(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { System.Web.Script.Serialization.JavaScriptSerializer JsonConvert = new System.Web.Script.Serialization.JavaScriptSerializer(); OleExec sfcdb = this.DBPools["SFCDB"].Borrow(); T_C_KEYPART ketpart; Row_C_KEYPART newketpart; string KeyPartId = Data["KEYPART_ID"].ToString().Trim(); string StationName = Data["STATION_NAME"].ToString().Trim(); string Skuno = Data["SKUNO"].ToString().Trim(); string SkunoVer = Data["SKUNO_VER"].ToString().Trim(); //string SEQ = Data["SEQ"].ToString().Trim(); string SQL = ""; sfcdb.BeginTrain(); try { if (KeyPartId.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("KEYPART_ID"); return; } if (StationName.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("STAION_NAME"); return; } if (Skuno.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("SKUNO"); return; } if (SkunoVer.Length <= 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000006"; StationReturn.MessagePara.Add("SKUNO_VER"); return; } KEYPARTLIST list = new KEYPARTLIST(); foreach (Newtonsoft.Json.Linq.JToken s in Data["KEYPARTLIST"]) { int i = 10; list = (KEYPARTLIST)JsonConvert.Deserialize(s.ToString(), typeof(KEYPARTLIST)); ketpart = new T_C_KEYPART(sfcdb, DBTYPE); newketpart = (Row_C_KEYPART)ketpart.NewRow(); newketpart.ID = ketpart.GetNewID(BU, sfcdb); newketpart.KEYPART_ID = KeyPartId; newketpart.SEQ_NO = list.SEQ; newketpart.PART_NO = list.PART_NO; newketpart.PART_NO_VER = list.PART_NO_VER; newketpart.QTY = Convert.ToDouble(list.QTY); newketpart.STATION_NAME = StationName; newketpart.CATEGORY = list.CATEGORY; newketpart.CATEGORY_NAME = list.CATEGORY_NAME; newketpart.SKUNO = Skuno; newketpart.SKUNO_VER = SkunoVer; newketpart.EDIT_EMP = LoginUser.EMP_NO; newketpart.EDIT_TIME = GetDBDateTime(); i += 10; SQL += newketpart.GetInsertString(DB_TYPE_ENUM.Oracle) + ";\n"; } sfcdb.ExecSQL("Begin\n" + SQL + "End;"); sfcdb.CommitTrain(); this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "添加成功!!"; } catch (Exception e) { sfcdb.RollbackTrain(); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "添加失敗!!"; if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } throw e; } }