/// <summary> /// 前端返回一個 JSON 對象,反序列化成 R_C_ROUTE_DETAIL 對象插入/更新/刪除 流程具體信息表 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void UpdateRouteDetail(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { T_C_ROUTE_DETAIL Table = null; R_C_ROUTE_DETAIL RouteDetail = null; OleExec sfcdb = null; int Result = 0; string Operation = string.Empty; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_ROUTE_DETAIL(sfcdb, DBType); RouteDetail = (R_C_ROUTE_DETAIL)JsonConverter.Deserialize(Data["ROUTE_DETAIL_OBJECT"].ToString(), typeof(R_C_ROUTE_DETAIL)); Operation = Data["OPERATION"].ToString(); Result = Table.UpdateRouteDetail(RouteDetail, Operation, sfcdb); ConstructReturnValue(StationReturn, Result, string.Format("成功更新 {0} 行數據.", Result)); } catch (Exception e) { ConstructReturnValue(StationReturn, e); } finally { this.DBPools["SFCDB"].Return(sfcdb); } }
/// <summary> /// 檢查panel對象中的SN的NextStation是否等於當前工站 /// </summary> /// <param name="Station"></param> /// <param name="Input"></param> /// <param name="Paras"></param> public static void PanleNextStationChecker(MESPubLab.MESStation.MESStationBase Station, MESPubLab.MESStation.MESStationInput Input, List <R_Station_Action_Para> Paras) { if (Paras.Count != 1) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000050")); } MESStationSession sessionPanle = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (sessionPanle == null || sessionPanle.Value == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE })); } Panel panel = new Panel(); Panel panleObject = (Panel)sessionPanle.Value; T_C_ROUTE_DETAIL t_c_route_detail = new T_C_ROUTE_DETAIL(Station.SFCDB, Station.DBType); List <R_SN> snList = panel.GetSnDetail(panleObject.PanelNo, Station.SFCDB, Station.DBType); foreach (R_SN sn in snList) { if (!t_c_route_detail.StationInRoute(sn.ROUTE_ID, Station.StationName, Station.SFCDB)) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MSGCODE20180621172210", new string[] { Station.StationName, sn.SN })); } if (!sn.NEXT_STATION.Equals(Station.StationName)) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000136", new string[] { sn.NEXT_STATION })); } } }
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 void InitStation(OleExec db) { List <string> station = new List <string>(); DataTable dt = new DataTable(); T_C_ROUTE_DETAIL S = new T_C_ROUTE_DETAIL(db, DB_TYPE_ENUM.Oracle); dt = S.GetALLStation(db); station.Add("ALL"); foreach (DataRow dr in dt.Rows) { station.Add(dr["station_name"].ToString()); } Event.ValueForUse = station; }
public RouteBase(string RouteId, OleExec sfcdb) { try { T_C_ROUTE TC_ROUTE = new T_C_ROUTE(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); T_C_ROUTE_DETAIL TC_ROUTE_DETAIL = new T_C_ROUTE_DETAIL(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); C_ROUTE getRoute = new C_ROUTE(); List <C_ROUTE_DETAIL> getRouteDetail = new List <C_ROUTE_DETAIL>(); getRoute = TC_ROUTE.GetById(RouteId, sfcdb); if (getRoute != null) { this._ID = getRoute.ID; this._ROUTE_NAME = getRoute.ROUTE_NAME; this._DEFAULT_SKUNO = getRoute.DEFAULT_SKUNO; this._ROUTE_TYPE = getRoute.ROUTE_TYPE; getRouteDetail = TC_ROUTE_DETAIL.GetByRouteIdOrderBySEQASC(getRoute.ID, sfcdb); if (getRouteDetail != null && getRouteDetail.Count > 0) { this._DETAIL = new List <RouteDetail>(); for (int i = 0; i < getRouteDetail.Count; i++) { RouteDetail newRouteDetail = new RouteDetail(getRouteDetail[i].ID, sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); this._DETAIL.Add(newRouteDetail); } } else { throw new Exception(RouteId + " 工站不存在"); } } else { throw new Exception(RouteId + " 不存在"); } } catch (Exception ex) { throw ex; } }
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")); }
/// <summary> /// 根據流程 ID 返回流程具體信息 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void GetRouteDetailByRouteID(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; DataTable dt = new DataTable(); string RouteID = string.Empty; T_C_ROUTE_DETAIL table = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); RouteID = Data["ROUTE_ID"].ToString(); table = new T_C_ROUTE_DETAIL(sfcdb, DBType); dt = table.GetRouteDetailByID(RouteID, sfcdb); ConstructReturnValue(StationReturn, dt); } catch (Exception e) { ConstructReturnValue(StationReturn, e); } finally { this.DBPools["SFCDB"].Return(sfcdb); } }
/// <summary> /// 從Sn加載 stationName List /// </summary> /// <param name="Station"></param> /// <param name="Input"></param> /// <param name="Paras"></param> public static void GetStationBySnDataloader(MESStationBase Station, MESStationInput Input, List <R_Station_Action_Para> Paras) { if (Paras.Count != 1) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000057")); } MESStationSession sessionSN = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (sessionSN == null || sessionSN.Value == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE })); } MESStationSession sessionStation = new MESStationSession(); SN SNObj = (SN)sessionSN.Value; List <string> stationList = new List <string>(); T_C_ROUTE_DETAIL RouteDetailTable = new T_C_ROUTE_DETAIL(Station.SFCDB, Station.DBType); List <C_ROUTE_DETAIL> RouteDetails = RouteDetailTable.GetByRouteIdOrderBySEQASC(SNObj.RouteID, Station.SFCDB); MESStationInput stationInput = Station.Inputs.Find(t => t.DisplayName == "ReturnStation"); if (RouteDetails.Count > 0) { stationInput.DataForUse.Clear(); stationInput.DataForUse.Add(""); foreach (C_ROUTE_DETAIL c in RouteDetails) { stationInput.DataForUse.Add(c.STATION_NAME); } } else { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000194", new string[] { SNObj.WorkorderNo })); } Station.AddMessage("MES00000001", new string[] { }, StationMessageState.Message); }
public void SubmitWoInfo(JObject requestValue, JObject Data, MESStationReturn StationReturn) { //wo string wo = Data["wo"].ToString(); if (string.IsNullOrEmpty(wo)) { //StationReturn.Status = StationReturnStatusValue.Fail; //StationReturn.MessageCode = "MES00000006"; //StationReturn.MessagePara = new List<object>() { "Skuno" }; //StationReturn.Data = ""; //return; throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000006", new string[] { "WO" })); } OleExec sfcdb = DBPools["SFCDB"].Borrow(); T_R_WO_BASE t_wo = new T_R_WO_BASE(sfcdb, DB_TYPE_ENUM.Oracle); if (!t_wo.CheckDataExist(wo, sfcdb)) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000008", new string[] { wo })); } R_WO_HEADER wo_header = new T_R_WO_HEADER(sfcdb, DB_TYPE_ENUM.Oracle).GetDetailByWo(sfcdb, wo); //sku info string skuno = Data["skuno"].ToString();//wo_header.MATNR if (string.IsNullOrEmpty(skuno)) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000006", new string[] { "SKUNO" })); } string skuver = Data["sku_ver"].ToString();//wo_header.REVLV C_SKU c_sku = new T_C_SKU(sfcdb, DB_TYPE_ENUM.Oracle).GetSku(skuno, sfcdb, DB_TYPE_ENUM.Oracle).GetDataObject(); if (c_sku == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000007", new string[] { skuno })); } //route exchange from name string route_name = Data["route_name"].ToString(); if (string.IsNullOrEmpty(route_name)) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000006", new string[] { "ROUTE" })); } C_ROUTE c_route = new T_C_ROUTE(sfcdb, DB_TYPE_ENUM.Oracle).GetByRouteName(route_name, sfcdb); if (c_route == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000007", new string[] { route_name })); } //station route check string station_name = Data["station"].ToString(); if (string.IsNullOrEmpty(station_name)) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000006", new string[] { "STATION" })); } List <C_ROUTE_DETAIL> c_route_detail = new T_C_ROUTE_DETAIL(sfcdb, DB_TYPE_ENUM.Oracle).GetByRouteIdOrderBySEQASC(c_route.ID, sfcdb); if (c_route_detail != null && c_route_detail.Count > 0) { C_ROUTE_DETAIL check = c_route_detail.Find(t => t.STATION_NAME == station_name); if (check == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000007", new string[] { station_name })); } } else { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000007", new string[] { route_name })); } //data record Row_R_WO_BASE row_wobase = (Row_R_WO_BASE)t_wo.NewRow(); row_wobase.ID = t_wo.GetNewID(this.BU, sfcdb); row_wobase.WORKORDERNO = wo; row_wobase.PLANT = Data["factory"].ToString(); row_wobase.RELEASE_DATE = DateTime.Now; row_wobase.DOWNLOAD_DATE = Convert.ToDateTime(Data["date"].ToString()); row_wobase.PRODUCTION_TYPE = "BTO"; row_wobase.WO_TYPE = Data["wo_type"].ToString(); row_wobase.SKUNO = skuno; row_wobase.SKU_VER = skuver; row_wobase.SKU_NAME = c_sku.SKU_NAME; //row_wobase.SKU_SERIES = null; //row_wobase.SKU_DESC = null; row_wobase.CUST_PN = c_sku.CUST_PARTNO; row_wobase.ROUTE_ID = c_route.ID; row_wobase.START_STATION = station_name; row_wobase.KP_LIST_ID = Data["kp_list_id"].ToString(); row_wobase.CLOSED_FLAG = "0"; row_wobase.WORKORDER_QTY = Convert.ToDouble(Data["qty"].ToString()); row_wobase.STOCK_LOCATION = wo_header.LGORT; row_wobase.CUST_ORDER_NO = wo_header.ABLAD; row_wobase.EDIT_EMP = this.LoginUser.EMP_NO; row_wobase.EDIT_TIME = DateTime.Now; string sql = row_wobase.GetInsertString(DB_TYPE_ENUM.Oracle); try { int res = sfcdb.ExecSqlNoReturn(sql, null); if (res == 0) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000021", new string[] { wo })); } if (sfcdb != null) { DBPools["SFCDB"].Return(sfcdb); } } catch (Exception ex) { if (sfcdb != null) { DBPools["SFCDB"].Return(sfcdb); } throw ex; } }
private void getById(string id, OleExec sfcdb, MESDataObject.DB_TYPE_ENUM dbtype) { T_C_ROUTE_DETAIL TC_ROUTE_DETAIL = new T_C_ROUTE_DETAIL(sfcdb, dbtype); T_C_ROUTE_DETAIL_DIRECTLINK TC_ROUTE_DETAIL_DIRECTLINK = new T_C_ROUTE_DETAIL_DIRECTLINK(sfcdb, dbtype); T_C_ROUTE_DETAIL_RETURN TC_ROUTE_DETAIL_RETURN = new T_C_ROUTE_DETAIL_RETURN(sfcdb, dbtype); C_ROUTE_DETAIL getRouteDetail = new C_ROUTE_DETAIL(); List <C_ROUTE_DETAIL_RETURN> getDetailReturn = new List <C_ROUTE_DETAIL_RETURN>(); List <C_ROUTE_DETAIL_DIRECTLINK> getDetailDirectLink = new List <C_ROUTE_DETAIL_DIRECTLINK>(); getRouteDetail = TC_ROUTE_DETAIL.GetById(id, sfcdb); if (getDetailReturn != null) { this._ID = getRouteDetail.ID; this._SEQ_NO = getRouteDetail.SEQ_NO; this._ROUTE_ID = getRouteDetail.ROUTE_ID; this._STATION_NAME = getRouteDetail.STATION_NAME; this._STATION_TYPE = getRouteDetail.STATION_TYPE; this._RETURN_FLAG = getRouteDetail.RETURN_FLAG; if (getRouteDetail.RETURN_FLAG == "Y") { getDetailReturn = TC_ROUTE_DETAIL_RETURN.GetByRoute_DetailId(getRouteDetail.ID, sfcdb); if (getDetailReturn != null && getDetailReturn.Count > 0) { List <C_ROUTE_DETAIL> newReturnList = new List <C_ROUTE_DETAIL>(); for (int j = 0; j < getDetailReturn.Count; j++) { newReturnList.Add(TC_ROUTE_DETAIL.GetById(getDetailReturn[j].RETURN_ROUTE_DETAIL_ID, sfcdb)); } this._RETURNLIST = newReturnList; } } else { this._RETURNLIST = null; } getDetailDirectLink = TC_ROUTE_DETAIL_DIRECTLINK.GetByDetailId(getRouteDetail.ID, sfcdb); if (getDetailDirectLink != null && getDetailDirectLink.Count > 0) { List <C_ROUTE_DETAIL> newDirectLinkList = new List <C_ROUTE_DETAIL>(); for (int n = 0; n < getDetailDirectLink.Count; n++) { newDirectLinkList.Add(TC_ROUTE_DETAIL.GetById(getDetailDirectLink[n].DIRECTLINK_ROUTE_DETAIL_ID, sfcdb)); } this._DIRECTLINKLIST = newDirectLinkList; } else { this._DIRECTLINKLIST = null; } } else { this._ID = ""; this._SEQ_NO = null; this._ROUTE_ID = ""; this._STATION_NAME = ""; this._STATION_TYPE = ""; this._RETURN_FLAG = ""; this._DIRECTLINKLIST = null; this._RETURNLIST = null; this._NEXTSTATION = null; } }
private void getByIdOrRouteName(string parametName, string parametValue, OleExec sfcdb, MESDataObject.DB_TYPE_ENUM dbtype) { try { T_C_ROUTE TC_ROUTE = new T_C_ROUTE(sfcdb, dbtype); T_C_ROUTE_DETAIL TC_ROUTE_DETAIL = new T_C_ROUTE_DETAIL(sfcdb, dbtype); C_ROUTE getRoute = new C_ROUTE(); List <C_ROUTE_DETAIL> getRouteDetail = new List <C_ROUTE_DETAIL>(); // List<RouteDetail> RouteDetailList = new List<RouteDetail>(); //T_C_ROUTE_DETAIL_DIRECTLINK TC_ROUTE_DETAIL_DIRECTLINK = new T_C_ROUTE_DETAIL_DIRECTLINK(sfcdb, dbtype); //T_C_ROUTE_DETAIL_RETURN TC_ROUTE_DETAIL_RETURN = new T_C_ROUTE_DETAIL_RETURN(sfcdb, dbtype); //List<C_ROUTE_DETAIL_RETURN> getDetailReturn = new List<C_ROUTE_DETAIL_RETURN>(); //List<C_ROUTE_DETAIL_DIRECTLINK> getDetailDirectLink = new List<C_ROUTE_DETAIL_DIRECTLINK>(); if (parametName.Trim() == "ID") { getRoute = TC_ROUTE.GetById(parametValue.Trim(), sfcdb); } else if (parametName.Trim() == "ROUTENAME") { getRoute = TC_ROUTE.GetByRouteName(parametValue.Trim(), sfcdb); } else { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000007", new string[] { "getByIdOrRouteName:" + parametName })); } if (getRoute != null) { this._ID = getRoute.ID; this._ROUTE_NAME = getRoute.ROUTE_NAME; this._DEFAULT_SKUNO = getRoute.DEFAULT_SKUNO; this._ROUTE_TYPE = getRoute.ROUTE_TYPE; getRouteDetail = TC_ROUTE_DETAIL.GetByRouteIdOrderBySEQASC(getRoute.ID, sfcdb); if (getRouteDetail != null && getRouteDetail.Count > 0) { this._DETAIL = new List <RouteDetail>(); for (int i = 0; i < getRouteDetail.Count; i++) { RouteDetail newRouteDetail = new RouteDetail(getRouteDetail[i].ID, sfcdb, dbtype); #region 寫法一 /* * RouteDetail newRouteDetail = new RouteDetail(); * newRouteDetail.ID = getRouteDetail[i].ID; * newRouteDetail.SEQ_NO = getRouteDetail[i].SEQ_NO; * newRouteDetail.ROUTE_ID = getRouteDetail[i].ROUTE_ID; * newRouteDetail.STATION_NAME = getRouteDetail[i].STATION_NAME; * newRouteDetail.STATION_TYPE = getRouteDetail[i].STATION_TYPE; * newRouteDetail.RETURN_FLAG = getRouteDetail[i].RETURN_FLAG; * if (getRouteDetail[i].RETURN_FLAG == "Y") * { * getDetailReturn = TC_ROUTE_DETAIL_RETURN.GetByRoute_DetailId(newRouteDetail.ID, sfcdb); * if (getDetailReturn != null && getDetailReturn.Count > 0) * { * List<C_ROUTE_DETAIL> newReturnList = new List<C_ROUTE_DETAIL>(); * for (int j = 0; j < getDetailReturn.Count; j++) * { * newReturnList.Add(TC_ROUTE_DETAIL.GetById(getDetailReturn[j].RETURN_ROUTE_DETAIL_ID, sfcdb)); * } * newRouteDetail.RETURNLIST = newReturnList; * } * } * else * { * newRouteDetail.RETURNLIST = null; * } * getDetailDirectLink = TC_ROUTE_DETAIL_DIRECTLINK.GetByDetailId(newRouteDetail.ID, sfcdb); * if (getDetailDirectLink != null && getDetailDirectLink.Count > 0) * { * List<C_ROUTE_DETAIL> newDirectLinkList = new List<C_ROUTE_DETAIL>(); * for (int n = 0; n < getDetailDirectLink.Count; n++) * { * newDirectLinkList.Add(TC_ROUTE_DETAIL.GetById(getDetailDirectLink[n].DIRECTLINK_ROUTE_DETAIL_ID, sfcdb)); * } * newRouteDetail.DIRECTLINKLIST = newDirectLinkList; * } * else * { * newRouteDetail.DIRECTLINKLIST = null; * } * if (this.DETAIL == null) * { * this.DETAIL = new List<RouteDetail>(); * }*/ #endregion 寫法一 end this._DETAIL.Add(newRouteDetail); } } else { this._DETAIL = null; } } else { this._ID = ""; this._ROUTE_NAME = ""; this._DEFAULT_SKUNO = ""; this._ROUTE_TYPE = ""; this._DETAIL = null; throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000007", new string[] { "Route_" + parametName + ":" + parametValue })); } } catch (Exception ex) { throw ex; } }
public void GetLockStation(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JToken Data, MESStationReturn StationReturn) { string lockType = Data["LockType"].ToString().Trim(); string lockData = Data["LockData"].ToString().Trim(); DataTable routeTable = new DataTable(); List <string> stationList = new List <string>(); OleExec sfcdb = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); T_C_ROUTE_DETAIL t_c_route_detail = new T_C_ROUTE_DETAIL(sfcdb, DBTYPE); if (lockType == "LockByWo") { T_R_WO_BASE t_r_wo_base = new T_R_WO_BASE(sfcdb, DBTYPE); R_WO_BASE r_wo_base = t_r_wo_base.GetWo(lockData, sfcdb).GetDataObject(); stationList = t_c_route_detail.GetByRouteIdOrderBySEQASC(r_wo_base.ROUTE_ID, sfcdb).Select(route => route.STATION_NAME).ToList(); } else if (lockType == "LockByLot") { T_R_LOT_STATUS t_r_lot_status = new T_R_LOT_STATUS(sfcdb, DBTYPE); Row_R_LOT_STATUS rowLotStatus = t_r_lot_status.GetByLotNo(lockData, sfcdb); if (rowLotStatus.ID == null) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000161", new string[] { })); } R_LOT_STATUS r_lot_status = rowLotStatus.GetDataObject(); T_C_SKU t_c_sku = new T_C_SKU(sfcdb, DBTYPE); C_SKU c_sku = t_c_sku.GetSku(r_lot_status.SKUNO, sfcdb, DBTYPE).GetDataObject(); T_R_SKU_ROUTE t_r_sku_route = new T_R_SKU_ROUTE(sfcdb, DBTYPE); List <R_SKU_ROUTE> r_sku_route_list = t_r_sku_route.GetMappingBySkuId(c_sku.ID, sfcdb); if (r_sku_route_list.Count > 0) { //t_c_route_detail.GetByRouteIdOrderBySEQASC(r_sku_route_list[0].ROUTE_ID, sfcdb); stationList = t_c_route_detail.GetByRouteIdOrderBySEQASC(r_sku_route_list[0].ROUTE_ID, sfcdb).Select(route => route.STATION_NAME).ToList(); } else { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000179", new string[] { })); } } else { routeTable = t_c_route_detail.GetALLStation(sfcdb); foreach (DataRow row in routeTable.Rows) { stationList.Add(row["station_name"].ToString()); } stationList.Sort(); } this.DBPools["SFCDB"].Return(sfcdb); StationReturn.Data = stationList; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000001"; } catch (Exception exception) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000037"; StationReturn.MessagePara.Add(exception.Message); StationReturn.Data = exception.Message; if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } }