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 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> /// convert wo /// </summary> protected void ConvertWO() { if (_downloadWO != "") { dtConvertWO = R_WO_HEADER.GetConvertWoTableByWO(SFCDB, DB_TYPE_ENUM.Oracle, _downloadWO); } else { dtConvertWO = R_WO_HEADER.GetConvertWoTable(SFCDB, DB_TYPE_ENUM.Oracle, arrayConvertWO); } if (dtConvertWO.Rows.Count > 0) { foreach (DataRow row in dtConvertWO.Rows) { rowSku = null; rowRoute = null; rowWOBase = null; rowWOType = null; routeDetailList = null; keypartList = null; keypartIDList = null; linkStationList = null; C_Series = null; sql = ""; try { rowSku = (Row_C_SKU)C_SKU.GetSku(row["MATNR"].ToString(), SFCDB, DB_TYPE_ENUM.Oracle); if (rowSku == null) { throw new Exception(" sku " + row["MATNR"].ToString() + " can't exist"); } //if (!string.Equals(rowSku.VERSION.ToString(), row["REVLV"].ToString())) //{ // throw new Exception(" The sku version is not the same," + rowSku.VERSION.ToString() + "," + row["REVLV"].ToString()); //} C_Series = T_Series.GetDetailById(SFCDB, rowSku.C_SERIES_ID); if (C_Series == null) { throw new Exception(" the series of " + row["MATNR"].ToString() + " can't exist"); } rowWOType = WOType.GetWOTypeByWO(SFCDB, row["AUART"].ToString()); if (rowWOType == null) { throw new Exception("get wo type fail"); } rowRoute = (Row_C_ROUTE)C_ROUTE.GetRouteBySkuno(rowSku.ID, SFCDB, DB_TYPE_ENUM.Oracle); if (rowRoute == null) { throw new Exception(" the route of " + row["MATNR"].ToString() + " can't exist"); } routeDetailList = RouteDetail.GetByRouteIdOrderBySEQASC(rowRoute.ID, SFCDB); if (routeDetailList == null || routeDetailList.Count == 0) { throw new Exception("get route detail fail by " + rowRoute.ID); } keypartIDList = t_c_kp_list.GetListIDBySkuno(rowSku.SKUNO, SFCDB); if (keypartIDList.Count > 0 && keypartIDList.Count != 1) { throw new Exception("skuno:" + row["MATNR"].ToString() + " have more keypart id"); } //HWD的邏輯 //linkStationList = routeDetailList.Where(link => link.STATION_NAME == "LINK").ToList(); //if (linkStationList != null && linkStationList.Count > 0) //{ // keypartList = Keypart.GetKeypartListBySkuVersion(SFCDB, row["MATNR"].ToString(), row["REVLV"].ToString()); // keypartIDList = keypartList.Select(id => id.KEYPART_ID).Distinct().ToList(); // if (keypartIDList == null || keypartIDList.Count != 1) // { // throw new Exception("get keypart id fail by skuno:" + row["MATNR"].ToString() + " and version:" + row["REVLV"].ToString()); // } //} rowWOBase = (Row_R_WO_BASE)R_WO_BASE.NewRow(); rowWOBase.ID = R_WO_BASE.GetNewID(BU, SFCDB); rowWOBase.WORKORDERNO = row["AUFNR"].ToString(); rowWOBase.PLANT = row["WERKS"].ToString(); rowWOBase.RELEASE_DATE = InterfacePublicValues.GetDBDateTime(SFCDB, DB_TYPE_ENUM.Oracle); rowWOBase.DOWNLOAD_DATE = InterfacePublicValues.GetDBDateTime(SFCDB, DB_TYPE_ENUM.Oracle); rowWOBase.PRODUCTION_TYPE = "BTO";//HWD原有邏輯寫死 rowWOBase.WO_TYPE = rowWOType.WORKORDER_TYPE; rowWOBase.SKUNO = row["MATNR"].ToString(); rowWOBase.SKU_VER = row["REVLV"].ToString(); rowWOBase.SKU_SERIES = C_Series.SERIES_NAME; rowWOBase.SKU_NAME = rowSku.SKU_NAME; rowWOBase.SKU_DESC = rowSku.DESCRIPTION; rowWOBase.CUST_PN = rowSku.CUST_PARTNO; rowWOBase.CUST_PN_VER = ""; rowWOBase.CUSTOMER_NAME = rowSku.CUST_SKU_CODE; rowWOBase.ROUTE_ID = rowRoute.ID; rowWOBase.START_STATION = routeDetailList[0].STATION_NAME; rowWOBase.KP_LIST_ID = (keypartIDList != null && keypartIDList.Count > 0) ? keypartIDList[0] : ""; rowWOBase.CLOSED_FLAG = "0"; rowWOBase.WORKORDER_QTY = Convert.ToDouble(row["GAMNG"]); rowWOBase.INPUT_QTY = 0; rowWOBase.FINISHED_QTY = 0; rowWOBase.SCRAPED_QTY = 0; rowWOBase.STOCK_LOCATION = row["LGORT"].ToString(); rowWOBase.PO_NO = ""; rowWOBase.CUST_ORDER_NO = row["ABLAD"].ToString(); rowWOBase.ROHS = row["ROHS_VALUE"].ToString(); rowWOBase.EDIT_EMP = "interface"; rowWOBase.EDIT_TIME = InterfacePublicValues.GetDBDateTime(SFCDB, DB_TYPE_ENUM.Oracle); SFCDB.ThrowSqlExeception = true; sql = rowWOBase.GetInsertString(DB_TYPE_ENUM.Oracle); SFCDB.ExecSQL(rowWOBase.GetInsertString(DB_TYPE_ENUM.Oracle)); SFCDB.CommitTrain(); } catch (Exception ex) { WriteLog.WriteIntoMESLog(SFCDB, BU, "MESInterface", "MESInterface.HWD.DownLoadWO", "ConvertWO", ip + ";" + row["AUFNR"].ToString() + ";ConvertWO fail," + ex.Message.ToString(), sql, "interface"); } } } }