/// <summary> /// 前端返回一個 JSON 對象,反序列化成 R_C_ROUTE 對象插入/更新/刪除 流程描述表 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void UpdateRouteDesc(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { T_C_ROUTE Table = null; R_C_ROUTE Route = null; OleExec sfcdb = null; int Result = 0; string Operation = string.Empty; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_ROUTE(sfcdb, DBType); Operation = Data["OPERATION"].ToString(); Route = (R_C_ROUTE)JsonConverter.Deserialize(Data["ROUTE_OBJECT"].ToString(), typeof(R_C_ROUTE)); Result = Table.UpdateRoute(Route, Operation, sfcdb); ConstructReturnValue(StationReturn, Result, string.Format("成功更新 {0} 條數據", Result)); } catch (Exception e) { ConstructReturnValue(StationReturn, e); } finally { this.DBPools["SFCDB"].Return(sfcdb); } }
/// <summary> /// 獲取機種可用的路由 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void GetAvailableRoutesForSku(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JToken Data, MESStationReturn StationReturn) { OleExec sfcdb = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); List <C_ROUTE> getRouteList = new List <C_ROUTE>(); string strSKUID = Data["SkuId"].ToString(); T_C_ROUTE TC_ROUTE = new T_C_ROUTE(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); getRouteList = TC_ROUTE.GetAvailableRoutesForSkuBySkuid(strSKUID, sfcdb); if (getRouteList == null) { getRouteList = new List <C_ROUTE>(); } StationReturn.Data = getRouteList; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000001"; this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception ex) { if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000037"; StationReturn.MessagePara.Add(ex.Message); } }
public void GetRouteBySkuno(JObject requestValue, JObject Data, MESStationReturn StationReturn) { OleExec oleDB = null; T_C_ROUTE 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; } try { oleDB = DBPools["SFCDB"].Borrow(); t_header = new T_C_ROUTE(oleDB, DB_TYPE_ENUM.Oracle); dt = t_header.GetRouteBySkuno(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 void AutoConvert() { T_R_WO_HEADER R_WO_HEADER; T_R_WO_BASE R_WO_BASE; T_C_SKU C_SKU; T_C_ROUTE C_ROUTE; OleExec Sfcdb; string Rows_ID = ""; Sfcdb = this.DBPools["SFCDB"].Borrow(); R_WO_HEADER = new T_R_WO_HEADER(Sfcdb, DB_TYPE_ENUM.Oracle); DataTable dt = R_WO_HEADER.GetConvertWoList(Sfcdb, DB_TYPE_ENUM.Oracle); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { R_WO_BASE = new T_R_WO_BASE(Sfcdb, DB_TYPE_ENUM.Oracle); Rows_ID = R_WO_BASE.GetNewID(BU, Sfcdb); Row_R_WO_BASE Rows = (Row_R_WO_BASE)R_WO_BASE.NewRow(); C_SKU = new T_C_SKU(Sfcdb, DB_TYPE_ENUM.Oracle); Row_C_SKU Rows_SKU = (Row_C_SKU)C_SKU.GetSku(dr["MATNR"].ToString(), Sfcdb, DB_TYPE_ENUM.Oracle); C_ROUTE = new T_C_ROUTE(Sfcdb, DB_TYPE_ENUM.Oracle); Row_C_ROUTE Rows_Route = (Row_C_ROUTE)C_ROUTE.GetRouteBySkuno(dr["MATNR"].ToString(), Sfcdb, DB_TYPE_ENUM.Oracle); if (Rows != null && Rows_SKU != null && Rows_Route != null) { Rows.ID = Rows_ID; Rows.WORKORDERNO = dr["AUFNR"].ToString(); Rows.SKUNO = dr["MATNR"].ToString(); Rows.CUSTOMER_NAME = Rows_SKU.CUST_SKU_CODE; Rows.CUST_PN = Rows_SKU.CUST_PARTNO; Rows.WORKORDER_QTY = Convert.ToDouble(dr["GAMNG"]); Rows.SKU_VER = dr["REVLV"].ToString(); Rows.SKU_NAME = Rows_SKU.SKU_NAME; Rows.SKU_DESC = Rows_SKU.DESCRIPTION; Rows.ROHS = dr["ROHS_VALUE"].ToString(); Rows.ROUTE_ID = Rows_Route.ID; //路由應該加版本//Rows.KP_LIST_ID Rows.CLOSED_FLAG = "0"; Rows.EDIT_EMP = "LLF"; string str = Sfcdb.ExecSQL(Rows.GetInsertString(DB_TYPE_ENUM.Oracle)); } } } }
/// <summary> /// 返回所有的路由主表信息 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void GetAllRouteDesc(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; DataTable dt = new DataTable(); try { sfcdb = this.DBPools["SFCDB"].Borrow(); T_C_ROUTE table = new T_C_ROUTE(sfcdb, DBType); dt = table.GetAllRoute(sfcdb); ConstructReturnValue(StationReturn, dt); } catch (Exception e) { ConstructReturnValue(StationReturn, e); } finally { this.DBPools["SFCDB"].Return(sfcdb); } }
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> /// 根據其他信息返回路由描述信息,可以根據路由的類型以及默認適用的機種 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void GetRouteDescByOtherCondition(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; DataTable dt = new DataTable(); string OtherCondition = Data["OTHER_CONDITION"].ToString(); T_C_ROUTE table = null; try { sfcdb = this.DBPools["SFCBD"].Borrow(); table = new T_C_ROUTE(sfcdb, DBType); dt = table.GetByOtherConditions(OtherCondition, sfcdb); ConstructReturnValue(StationReturn, dt); } catch (Exception e) { ConstructReturnValue(StationReturn, e); } finally { this.DBPools["SFCDB"].Return(sfcdb); } }
public void AddSKuRouteMapping(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { T_R_SKU_ROUTE table = null; R_SKU_ROUTE mapping = null; OleExec sfcdb = null; string result = string.Empty; string MappingObject = string.Empty; //MappingObject = @"{ // 'DEFAULT_FLAG': 'Y', // 'SKU': { // 'ID': '111', // 'SKUNO': '222', // 'VERSION':'333' // }, // 'ROUTE': { // 'ID':'HWD00000000000000000000000000001X', // 'ROUTE_NAME':'555' // } //}"; try { if (Data["MappingObject"] != null && !string.IsNullOrEmpty(Data["MappingObject"].ToString())) { sfcdb = this.DBPools["SFCDB"].Borrow(); table = new T_R_SKU_ROUTE(sfcdb, DBTYPE); MappingObject = Data["MappingObject"].ToString(); mapping = (R_SKU_ROUTE)JsonConvert.Deserialize(MappingObject, typeof(R_SKU_ROUTE)); if (mapping.ROUTE_ID != null) { T_C_ROUTE ROUTE = new T_C_ROUTE(sfcdb, DBTYPE); C_ROUTE C_ROUTE = ROUTE.GetByRouteName(mapping.ROUTE_ID, sfcdb); mapping.ROUTE_ID = C_ROUTE.ID; mapping.EDIT_EMP = LoginUser.EMP_NO; mapping.EDIT_TIME = GetDBDateTime(); result = table.AddMapping(mapping, BU, sfcdb); if (Int32.Parse(result) > 0) { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000035"; StationReturn.MessagePara.Add(result); StationReturn.Data = result; //throw } else { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000036"; StationReturn.Data = result; } if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000204"; StationReturn.Data = result; } } } catch (Exception e) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000037"; StationReturn.MessagePara.Add(e.Message); StationReturn.Data = e.Message; if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } //throw e; } }
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 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; } }