public void CheckSkunoEx(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { T_C_SKU cSku = null; OleExec sfcdb = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); cSku = new T_C_SKU(sfcdb, DB_TYPE_ENUM.Oracle); if (cSku.CheckSku((Data["SKUNO"].ToString()).Trim(), sfcdb)) { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Data = ""; } else { StationReturn.MessageCode = "SKU不存在!"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; } this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
public void CheckSkuno(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_SKU sku; string skuno = Data["SKUNO"].ToString().Trim(); try { sfcdb = this.DBPools["SFCDB"].Borrow(); sku = new T_C_SKU(sfcdb, DBTYPE); if (sku.CheckSku(skuno, sfcdb)) { List <string> list = sku.GetStationBySku(sfcdb, skuno); StationReturn.Data = list; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "獲取成功!!"; } else { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "獲取失敗!!"; } this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } throw e; } }
public void SetWoReplaceKpWithSku(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { string Wo = Data["WO"].ToString().Trim(), PartNo = Data["PARTNO"].ToString().Trim(), ReplacePartno = Data["REPLACEPARTNO"].ToString().Trim(), Sku = Data["SKUNO"].ToString().Trim(); OleExec oleDB = null; T_R_WO_KP_Repalce rWoKpReplace = null; T_C_SKU cSku = null; T_R_WO_BASE rWoBase = null; try { oleDB = this.DBPools["SFCDB"].Borrow(); rWoKpReplace = new T_R_WO_KP_Repalce(oleDB, DBTYPE); cSku = new T_C_SKU(oleDB, DBTYPE); rWoBase = new T_R_WO_BASE(oleDB, DBTYPE); if (!cSku.SkuIsExist(Sku, oleDB)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000245"; StationReturn.MessagePara = new List <object>() { Sku }; } else if (rWoBase.CheckDataExist(Wo, Sku, oleDB)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000245"; StationReturn.Data = ""; } else if (rWoKpReplace.CheckDataExist(Wo, PartNo, ReplacePartno, oleDB)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000005"; StationReturn.Data = ""; } else { Row_R_WO_KP_Repalce rowRWoKpReplace = (Row_R_WO_KP_Repalce)rWoKpReplace.NewRow(); rowRWoKpReplace.ID = rWoKpReplace.GetNewID(this.BU, oleDB, DBTYPE); rowRWoKpReplace.WO = Wo; rowRWoKpReplace.PARTNO = PartNo; rowRWoKpReplace.REPALCEPARTNO = ReplacePartno; rowRWoKpReplace.EDIT_EMP = this.LoginUser.EMP_NO; rowRWoKpReplace.EDIT_TIME = GetDBDateTime();; oleDB.ThrowSqlExeception = true; oleDB.ExecSQL(rowRWoKpReplace.GetInsertString(DBTYPE)); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000002"; StationReturn.Data = ""; } } catch (Exception e) { throw e; } finally { this.DBPools["SFCDB"].Return(oleDB); } }
public void DataLoad(string packNo, string bu, OleExec sfcdb, DB_TYPE_ENUM DBType) { List <string> itemList = new List <string>(); T_C_SKU t_c_sku = new T_C_SKU(sfcdb, DBType); T_R_PACKING t_r_packing = new T_R_PACKING(sfcdb, DBType); T_R_SN_PACKING t_r_sn_packing = new T_R_SN_PACKING(sfcdb, DBType); T_R_SN t_r_sn = new T_R_SN(sfcdb, DBType); T_C_PACKING t_c_packing = new T_C_PACKING(sfcdb, DBType); R_PACKING packing = new R_PACKING(); C_SKU sku = new C_SKU(); Packing packObject = new Packing(); C_PACKING c_packing = new C_PACKING(); packing = t_r_packing.GetRPackingByPackNo(sfcdb, packNo).GetDataObject(); sku = t_c_sku.GetSku(packing.SKUNO, sfcdb, DBType).GetDataObject(); if (packing.PACK_TYPE == LogicObject.PackType.PALLET.ToString().ToUpper()) { c_packing = t_c_packing.GetPackingBySkuAndType(sku.SKUNO, LogicObject.PackType.CARTON.ToString().ToUpper(), sfcdb); if (c_packing.MAX_QTY == 1 && bu.ToUpper().Equals("VERTIV")) { //VERTIV 當卡通包規為1時,調棧板顯示卡通內的SN itemList = t_r_packing.GetPakcingSNList(packing.ID, sfcdb); } else { List <R_PACKING> packingList = t_r_packing.GetListPackByParentPackId(packing.ID, sfcdb); foreach (R_PACKING pack in packingList) { itemList.Add(pack.PACK_NO); } } } else if (packing.PACK_TYPE == LogicObject.PackType.CARTON.ToString().ToUpper()) { List <Row_R_SN_PACKING> snPackingList = t_r_sn_packing.GetPackItem(packing.ID, sfcdb); foreach (Row_R_SN_PACKING sn in snPackingList) { itemList.Add(t_r_sn.GetById(sn.SN_ID, sfcdb).SN); } } this.PackID = packing.ID; this.PackNo = packing.PACK_NO; this.PackType = packing.PACK_TYPE; this.ParentPackID = packing.PARENT_PACK_ID; this.Skuno = packing.SKUNO; this.SkunoVer = sku.VERSION; this.MaxQty = packing.MAX_QTY; this.Qty = packing.QTY; this.ClosedFlag = packing.CLOSED_FLAG; this.CreatTime = packing.CREATE_TIME; this.EditTime = packing.EDIT_TIME; this.EditEmp = packing.EDIT_EMP; this.Line = packing.LINE; this.Station = packing.STATION; this.IP = packing.IP; this.PackList = itemList; }
public void AddSkuAql(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { T_C_SKU_AQL tCSkuAql = null; OleExec sfcdb = null; T_C_SKU tCSku = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); tCSkuAql = new T_C_SKU_AQL(sfcdb, DB_TYPE_ENUM.Oracle); tCSku = new T_C_SKU(sfcdb, DB_TYPE_ENUM.Oracle); SkuObject sku = tCSku.GetSkuByID(Data["SkuId"].ToString().Trim(), sfcdb); if (sku == null) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000245"; StationReturn.MessagePara = new List <object>() { Data["SKUNO"].ToString().Trim() }; return; } tCSkuAql.DeleteBySkuno(sfcdb, sku.SkuNo); Row_C_SKU_AQL r = (Row_C_SKU_AQL)tCSkuAql.NewRow(); r.ID = tCSkuAql.GetNewID(this.BU, sfcdb); r.SKUNO = sku.SkuNo; r.AQLTYPE = Data["AqlType"].ToString().Trim(); r.DEFAULLEVEL = Data["aqlLevel"].ToString().Trim(); r.EDIT_EMP = this.LoginUser.EMP_NO; r.EDIT_TIME = GetDBDateTime(); string strRet = sfcdb.ExecSQL(r.GetInsertString(DB_TYPE_ENUM.Oracle)); if (Convert.ToInt32(strRet) > 0) { StationReturn.Message = "添加成功!!"; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Data = ""; } else { StationReturn.MessageCode = "MES00000036"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; } } catch (Exception e) { throw e; } finally { this.DBPools["SFCDB"].Return(sfcdb); } }
public void GetSkuByName(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; List <SkuObject> SkuList = new List <SkuObject>(); T_C_SKU Table = null; string SkuName = string.Empty; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SKU(sfcdb, DBTYPE); SkuName = Data["Sku_Name"].ToString().Trim(); if (string.IsNullOrEmpty(SkuName)) { GetAllSku(requestValue, Data, StationReturn); } else { SkuList = Table.GetSkuByName(SkuName, sfcdb); if (SkuList.Count() == 0) { //沒有獲取到數據 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000034"; StationReturn.Data = new object(); } else { //獲取成功 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000033"; StationReturn.MessagePara.Add(SkuList.Count().ToString()); StationReturn.Data = SkuList; } } if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } 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); } } }
/// <summary> /// OBA工站創建LOT,返回LOT信息 /// </summary> /// <param name="user"></param> /// <param name="packNo"></param> /// <param name="DB"></param> public R_LOT_STATUS CreateLotByPackno(User user, string packNo, OleExec DB) { T_R_PACKING tRPacking = new T_R_PACKING(DB, this.DBType); Row_R_PACKING rowRPacking = tRPacking.GetRPackingByPackNo(DB, packNo); PalletBase palletBase = new PalletBase(rowRPacking); T_C_SKU tCSku = new T_C_SKU(DB, this.DBType); T_R_LOT_STATUS tRLotStatus = new T_R_LOT_STATUS(DB, this.DBType); T_C_AQLTYPE tCAqlType = new T_C_AQLTYPE(DB, this.DBType); T_R_LOT_PACK tRLotPack = new T_R_LOT_PACK(DB, this.DBType); T_C_SKU_AQL tCSkuAql = new T_C_SKU_AQL(DB, this.DBType); C_SKU_AQL cSkuAql = tCSkuAql.GetSkuAql(DB, rowRPacking.SKUNO); List <C_AQLTYPE> cAqlTypeList = tCAqlType.GetAqlTypeBySkunoAndLevel(rowRPacking.SKUNO, cSkuAql.DEFAULLEVEL, DB); if (cAqlTypeList.Count == 0) { throw new Exception(MESDataObject.MESReturnMessage.GetMESReturnMessage("MSGCODE20180625165842", new string[] { })); } Row_C_SKU rCSku = tCSku.GetSku(rowRPacking.SKUNO, DB, this.DBType); Row_R_LOT_STATUS rowRLotStatus = (Row_R_LOT_STATUS)tRLotStatus.NewRow(); rowRLotStatus.ID = tRLotStatus.GetNewID(user.BU, DB, this.DBType); rowRLotStatus.LOT_NO = SNMaker.SNmaker.GetNextSN("OBALOT", DB); rowRLotStatus.SKUNO = rowRPacking.SKUNO; rowRLotStatus.AQL_TYPE = cSkuAql.AQLTYPE; rowRLotStatus.LOT_QTY = palletBase.GetSnCount(DB); rowRLotStatus.REJECT_QTY = cAqlTypeList.Where(t => t.LOT_QTY > rowRLotStatus.LOT_QTY).OrderBy(t => t.LOT_QTY).Take(1).ToList <C_AQLTYPE>()[0].REJECT_QTY; rowRLotStatus.SAMPLE_QTY = cAqlTypeList.Where(t => t.LOT_QTY > rowRLotStatus.LOT_QTY).OrderBy(t => t.LOT_QTY).Take(1).ToList <C_AQLTYPE>()[0].SAMPLE_QTY; rowRLotStatus.SAMPLE_QTY = rowRLotStatus.SAMPLE_QTY > rowRLotStatus.LOT_QTY ? rowRLotStatus.LOT_QTY : rowRLotStatus.SAMPLE_QTY; rowRLotStatus.PASS_QTY = 0; rowRLotStatus.FAIL_QTY = 0; rowRLotStatus.CLOSED_FLAG = "0"; rowRLotStatus.LOT_STATUS_FLAG = "0"; rowRLotStatus.SAMPLE_STATION = "OBA"; rowRLotStatus.AQL_LEVEL = cSkuAql.DEFAULLEVEL; rowRLotStatus.LINE = ""; rowRLotStatus.EDIT_EMP = user.EMP_NO; rowRLotStatus.EDIT_TIME = tRPacking.GetDBDateTime(DB); Row_R_LOT_PACK rowRLotPack = (Row_R_LOT_PACK)tRLotPack.NewRow(); rowRLotPack.ID = tRLotPack.GetNewID(user.BU, DB, this.DBType); rowRLotPack.LOTNO = rowRLotStatus.LOT_NO; rowRLotPack.PACKNO = packNo; rowRLotPack.EDIT_EMP = user.EMP_NO; rowRLotPack.EDIT_TIME = rowRLotStatus.EDIT_TIME; DB.ThrowSqlExeception = true; DB.ExecSQL(rowRLotStatus.GetInsertString(this.DBType)); DB.ExecSQL(rowRLotPack.GetInsertString(this.DBType)); DB.ThrowSqlExeception = false; return(rowRLotStatus.GetDataObject()); }
public void AddMpnWithSku(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { string Sku = Data["SKUNO"].ToString().Trim(), PartNo = Data["PARTNO"].ToString().Trim(), Mpn = Data["MPN"].ToString().Trim(); OleExec oleDB = null; T_C_SKU_MPN cSkuMpn = null; T_C_SKU cSku = null; try { oleDB = this.DBPools["SFCDB"].Borrow(); cSkuMpn = new T_C_SKU_MPN(oleDB, DBTYPE); cSku = new T_C_SKU(oleDB, DBTYPE); if (!cSku.SkuIsExist(Sku, oleDB)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000244"; StationReturn.MessagePara = new List <object>() { Sku }; } else if (cSkuMpn.IsExists(oleDB, Sku, PartNo, Mpn)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000005"; StationReturn.Data = ""; } else { Row_C_SKU_MPN rowCSkuMpn = (Row_C_SKU_MPN)cSkuMpn.NewRow(); rowCSkuMpn.ID = cSkuMpn.GetNewID(this.BU, oleDB, DBTYPE); rowCSkuMpn.SKUNO = Sku; rowCSkuMpn.PARTNO = PartNo; rowCSkuMpn.MPN = Mpn; rowCSkuMpn.EDIT_EMP = this.LoginUser.EMP_NO; rowCSkuMpn.EDIT_TIME = GetDBDateTime();; oleDB.ThrowSqlExeception = true; oleDB.ExecSQL(rowCSkuMpn.GetInsertString(DBTYPE)); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000002"; StationReturn.Data = ""; } } catch (Exception e) { throw e; } finally { this.DBPools["SFCDB"].Return(oleDB); } }
public void DeleteSkuById(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_SKU Table = null; SkuObject Sku = null; string result = string.Empty; string SkuId = string.Empty; StringBuilder strSkuId; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SKU(sfcdb, DBTYPE); SkuId = Data["SkuID"].ToString(); Sku = new SkuObject(); Sku.SkuId = SkuId; result = Table.UpdateSku(BU, Sku, "DELETE", GetDBDateTime(), out strSkuId, sfcdb); if (Int32.Parse(result) > 0) { //刪除成功 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000035"; StationReturn.MessagePara.Add(result); StationReturn.Data = strSkuId.ToString(); } else { //沒有刪除任何數據 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000036"; StationReturn.Data = result; } if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } 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); } } }
public void GetStationBySkuno(JObject requestValue, JObject Data, MESStationReturn StationReturn) { OleExec oleDB = null; T_C_SKU 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_SKU(oleDB, DB_TYPE_ENUM.Oracle); dt = t_header.GetStationBySku(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 SKU InitBySn(string Sn, OleExec DB, DB_TYPE_ENUM DBType) { MESDataObject.Module.SkuObject SkuObject = new MESDataObject.Module.SkuObject(); T_C_SKU table_sku = new T_C_SKU(DB, DBType); SkuObject = table_sku.GetSkuBySn(Sn, DB); this.SkuBase = SkuObject.SkuBase; this._DBType = DBType; this.ProcessingWo = new List <string>(); this.LabelPaths = new Dictionary <string, string>(); this.SkuRoutes = new List <Route>(); return(this); }
//通過Sku獲取ModelType public static void ModelTypeFromSkuDataloader(MESPubLab.MESStation.MESStationBase Station, MESPubLab.MESStation.MESStationInput Input, List <MESDataObject.Module.R_Station_Action_Para> Paras) { string strModelType = ""; SKU sku; if (Paras.Count != 2) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000050")); } //獲取SkuSession MESStationSession SkuSession = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (SkuSession == null) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE })); } else { if (SkuSession.Value != null) { sku = (SKU)SkuSession.Value; if (sku.SkuNo == null || sku.SkuNo.Length <= 0) { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE + Paras[0].SESSION_KEY })); } } else { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000052", new string[] { Paras[0].SESSION_TYPE + Paras[0].SESSION_KEY })); } } //查找ModelTypeSession是否已經存在,存在則抓取內存中的 MESStationSession ModelTypeSession = Station.StationSession.Find(t => t.MESDataType == Paras[1].SESSION_TYPE && t.SessionKey == Paras[1].SESSION_KEY); if (ModelTypeSession == null) { ModelTypeSession = new MESStationSession() { MESDataType = Paras[1].SESSION_TYPE, SessionKey = Paras[1].SESSION_KEY }; Station.StationSession.Add(ModelTypeSession); } //通過Sku獲取ModelType,并更新到內存中 T_C_SKU TCSku = new T_C_SKU(Station.SFCDB, MESDataObject.DB_TYPE_ENUM.Oracle); strModelType = TCSku.GetModelTypeBySku(Station.SFCDB, sku.SkuNo); //將ModelType更新到內存中 ModelTypeSession.Value = strModelType; }
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 InitSkuno(OleExec db) { List <string> skuno = new List <string>(); DataTable dt = new DataTable(); T_C_SKU sku = new T_C_SKU(db, DB_TYPE_ENUM.Oracle); dt = sku.GetALLSkuno(db); skuno.Add("ALL"); foreach (DataRow dr in dt.Rows) { skuno.Add(dr["SKUNO"].ToString()); } SkuNo.ValueForUse = skuno; }
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> /// 只顯示最近修改的 20 條機種的信息,因為一次性返回所有數據數量太大 /// 如果在顯示出來的列表中沒有該機種,則需要輸入機種關鍵字來進行查詢 /// </summary> /// <param name="requestValue"></param> /// <param name="Data"></param> /// <param name="StationReturn"></param> public void GetAllSku(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; List <SkuObject> SkuList = new List <SkuObject>(); List <C_SKU> SkuCList = new List <C_SKU>(); T_C_SKU Table = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SKU(sfcdb, DBTYPE); //SkuList = Table.GetAllSku(sfcdb); SkuCList = Table.GetAllCSku(sfcdb); if (SkuCList.Count() == 0) { //沒有獲取到數據 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000034"; StationReturn.Data = new object(); } else { //獲取到數據 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000033"; StationReturn.MessagePara.Add(SkuCList.Count().ToString()); StationReturn.Data = SkuCList; } if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } 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); } } }
/// <summary> /// 根據機種和版本加載機種信息 /// </summary> /// <param name="SkuNo"></param> /// <param name="SkuVersion"></param> /// <param name="DB"></param> /// <param name="DBType"></param> public SKU Init(string SkuNo, string SkuVersion, OleExec DB, DB_TYPE_ENUM DBType) { MESDataObject.Module.SkuObject SkuObject = new MESDataObject.Module.SkuObject(); T_C_SKU table_sku = new T_C_SKU(DB, DBType); SkuObject = table_sku.GetSkuByNameAndVersion(SkuNo, SkuVersion, DB); if (SkuObject != null) { this.SkuBase = SkuObject.SkuBase; this._DBType = DBType; this.ProcessingWo = new List <string>(); this.LabelPaths = new Dictionary <string, string>(); this.SkuRoutes = new List <Route>(); } else { throw new MESReturnMessage(MESReturnMessage.GetMESReturnMessage("MES00000172", new string[] { SkuNo, SkuVersion })); } return(this); }
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 Download(string SKUNO, string PLANT, OleExec Sfcdb) { ZRFC_GET_PROD_MASTER zrfc_GET_PROD_MASTER = new ZRFC_GET_PROD_MASTER(); zrfc_GET_PROD_MASTER.SetValues(SKUNO, PLANT); zrfc_GET_PROD_MASTER.CallRFC(); DataTable skuno_table = zrfc_GET_PROD_MASTER.GetTableValue("PROD_MASTER"); T_C_SKU t_c_sku = new T_C_SKU(Sfcdb, DB_TYPE_ENUM.Oracle); Row_C_SKU row_C_SKU = (Row_C_SKU)t_c_sku.NewRow(); if (skuno_table.Rows.Count > 0) { row_C_SKU.ID = t_c_sku.GetNewID(BU, Sfcdb); row_C_SKU.BU = this.BU; row_C_SKU.SKUNO = skuno_table.Rows[0]["MATNR"].ToString(); row_C_SKU.VERSION = skuno_table.Rows[0]["REVLV"].ToString(); row_C_SKU.SKU_NAME = skuno_table.Rows[0]["BISMT"].ToString(); row_C_SKU.C_SERIES_ID = ""; row_C_SKU.CUST_PARTNO = skuno_table.Rows[0]["BISMT"].ToString(); row_C_SKU.CUST_SKU_CODE = ""; row_C_SKU.SN_RULE = ""; row_C_SKU.PANEL_RULE = ""; row_C_SKU.DESCRIPTION = skuno_table.Rows[0]["MAKTX"].ToString(); row_C_SKU.LAST_EDIT_USER = this.LoginUser.EMP_NO; row_C_SKU.LAST_EDIT_TIME = DateTime.Now; row_C_SKU.SKU_TYPE = ""; row_C_SKU.AQLTYPE = ""; String skuno = row_C_SKU.SKUNO; string sql = $@"DELETE FROM C_SKU WHERE SKUNO='{skuno}'"; Sfcdb.ExecSQL(sql); sql = row_C_SKU.GetInsertString(DB_TYPE_ENUM.Oracle); Sfcdb.ExecSQL(sql); } }
public void AddSku(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_SKU Table = null; string SkuObject = string.Empty; SkuObject Sku = null; string result = string.Empty; StringBuilder SkuId; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SKU(sfcdb, DBTYPE); SkuObject = Data["SkuObject"].ToString(); Sku = (SkuObject)JsonConvert.Deserialize(SkuObject, typeof(SkuObject)); Sku.LastEditUser = LoginUser.EMP_NO; result = Table.UpdateSku(BU, Sku, "ADD", GetDBDateTime(), out SkuId, sfcdb); if (Int32.Parse(result) > 0) { //添加成功 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000035"; StationReturn.MessagePara.Add(result); StationReturn.Data = SkuId.ToString(); } else { //沒有添加任何數據 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000036"; StationReturn.Data = result; } if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } catch (Exception e) { if (!string.IsNullOrEmpty(result)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000005"; StationReturn.Data = e.Message + ":" + result; } else { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000037"; StationReturn.MessagePara.Add(e.Message); StationReturn.Data = e.Message; } if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } }
public void startWO(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec Sfcdb = this.DBPools["SFCDB"].Borrow(); string WO = Data["WO"].ToString(); T_R_SN t_r_sn = new T_R_SN(Sfcdb, this.DBTYPE); string id = t_r_sn.findOneSNByWO(WO, Sfcdb); if (!string.IsNullOrEmpty(id)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "工单已展开,不能重复展开"; return; } T_R_WO_HEADER_TJ t_R_WO_HEADER_TJ = new T_R_WO_HEADER_TJ(Sfcdb, this.DBTYPE); Row_R_WO_HEADER_TJ row_R_WO_HEADER = t_R_WO_HEADER_TJ.GetWo(WO, Sfcdb); T_C_SKU table_sku = new T_C_SKU(Sfcdb, this.DBTYPE); string user = this.LoginUser.EMP_NO; MESDataObject.Module.SkuObject SkuObject = table_sku.GetSkuBySkuno(row_R_WO_HEADER.MATNR, Sfcdb); float qty = float.Parse(row_R_WO_HEADER.GAMNG); qty = 5; //获取路由id T_R_SKU_ROUTE t_R_SKU_ROUTE = new T_R_SKU_ROUTE(Sfcdb, this.DBTYPE); string routeid = t_R_SKU_ROUTE.getRouteIdBySkuName(row_R_WO_HEADER.MATNR, Sfcdb); //获取keypartlistid T_C_KP_LIST t_C_KP_LIST = new T_C_KP_LIST(Sfcdb, this.DBTYPE); List <string> keypartlistids = t_C_KP_LIST.GetListIDBySkuno(row_R_WO_HEADER.MATNR, Sfcdb); if (keypartlistids.Count == 0) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "未配置keypartlistid"; return; } //生成工单基础表 T_R_WO_BASE t_R_WO_BASE = new T_R_WO_BASE(Sfcdb, this.DBTYPE); t_R_WO_BASE.deleteWOByWo(WO, Sfcdb); t_R_WO_BASE.addWOByWOHeader(BU, user, routeid, row_R_WO_HEADER, Sfcdb); WorkOrder objWorkorder = new WorkOrder(); objWorkorder.Init(WO, Sfcdb); objWorkorder.WorkorderNo = WO; objWorkorder.KP_LIST_ID = keypartlistids[0].ToString(); objWorkorder.SkuNO = row_R_WO_HEADER.MATNR; //生成SN for (int i = 0; i < qty; i++) { String nextSN = SNmaker.GetNextSN(SkuObject.SnRule, Sfcdb, WO); Console.Out.WriteLine(nextSN); t_r_sn.addStartSNRecords(BU, user, WO, routeid, row_R_WO_HEADER, nextSN, Sfcdb); } //生成keypartlistid List <R_SN> r_sns = t_r_sn.GETSN(WO, Sfcdb); for (int i = 0; i < r_sns.Count; i++) { T_C_KP_LIST c_kp_list = new T_C_KP_LIST(Sfcdb, this.DBTYPE); if (objWorkorder.KP_LIST_ID != "" && c_kp_list.KpIDIsExist(objWorkorder.KP_LIST_ID, Sfcdb)) { SN snObject = new SN(); MESStationBase Station = new MESStationBase(); Station.BU = this.LoginUser.BU; Station.LoginUser = this.LoginUser; Station.SFCDB = Sfcdb; snObject.InsertR_SN_KP(objWorkorder, r_sns[i], Sfcdb, Station, this.DBTYPE); } } StationReturn.Data = qty; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = MESReturnMessage.GetMESReturnMessage("MSGCODE20180801141046"); }
public void UpdateSku(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_SKU Table = null; string SkuObject = string.Empty; C_SKU Sku = null; string result = string.Empty; StringBuilder SkuId; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SKU(sfcdb, DBTYPE); SkuObject = Data["SkuObject"].ToString(); Sku = (C_SKU)JsonConvert.Deserialize(SkuObject, typeof(C_SKU)); Sku.EDIT_EMP = LoginUser.EMP_NO; result = Table.UpdateSku(BU, Sku, "UPDATE", GetDBDateTime(), out SkuId, sfcdb); if (Int32.Parse(result) > 0) { //更新成功 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000035"; StationReturn.MessagePara.Add(result); StationReturn.Data = SkuId.ToString(); } else { //更新失敗 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000036"; StationReturn.Data = result; } if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } catch (Exception e) { //不是最新的數據,返回字符串無法被 Int32.Parse 方法轉換成 int,所以出現異常 if (!string.IsNullOrEmpty(result)) { StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000032"; StationReturn.Data = e.Message + ":" + result; } else { //數據庫執行異常 StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.MessageCode = "MES00000037"; StationReturn.MessagePara.Add(e.Message); StationReturn.Data = e.Message; } if (sfcdb != null) { this.DBPools["SFCDB"].Return(sfcdb); } } }
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; } }
public void Download(string ItemName, string Date) { string StrSql = ""; OleExec sfcdb; DataTable RFC_Table = new DataTable(); T_C_TAB_COLUMN_MAP C_TAB_COLUMN_MAP; DataObjectBase Row; T_R_WO_HEADER R_WO_HEADER; T_R_WO_ITEM R_WO_ITEM; T_R_WO_TEXT R_WO_TEXT; T_R_WO_BASE R_WO_BASE; T_C_SKU C_SKU; T_C_PARAMETER C_PARAMETER; Row_C_PARAMETER Row_PARAMETER; Dictionary <string, string> DicPara = new Dictionary <string, string>(); string StrColumn = ""; string StrValue = ""; string[] StrColumn_Name; string[] StrColumn_Value; string StrWo = ""; bool Exist_WO_Flag = false; bool Exist_WO_Base_Flag = false; bool Exist_SKU_Flag = false; bool DownLoad_Auto = false; if (string.IsNullOrEmpty(StrWo)) { DownLoad_Auto = true; } sfcdb = this.DBPools["SFCDB"].Borrow(); C_PARAMETER = new T_C_PARAMETER(sfcdb, DB_TYPE_ENUM.Oracle); DicPara = C_PARAMETER.Get_Interface_Parameter_2(ItemName, sfcdb, DB_TYPE_ENUM.Oracle); this.DBPools["SFCDB"].Return(sfcdb); ZRFC_SFC_NSG_0001B Zrfc_SFC_NSG_001B = new ZRFC_SFC_NSG_0001B(StrWo); Zrfc_SFC_NSG_001B.SetValue("PLANT", DicPara["PLANT"]);//NHGZ,WDN1//WDN1,WSL3 Zrfc_SFC_NSG_001B.SetValue("SCHEDULED_DATE", Date); Zrfc_SFC_NSG_001B.SetValue("RLDATE", Date); Zrfc_SFC_NSG_001B.SetValue("COUNT", DicPara["COUNT"]); Zrfc_SFC_NSG_001B.SetValue("CUST", DicPara["CUST"]); Zrfc_SFC_NSG_001B.SetValue("IN_CNF", DicPara["IN_CNF"]); //IN_CNF=0,Download WO not Confirmed Zrfc_SFC_NSG_001B.CallRFC(); for (int i = 0; i < Zrfc_SFC_NSG_001B.ReturnDatatableByIndex.Count; i++) { string ErrorMessage = ""; switch (Zrfc_SFC_NSG_001B.ReturnDatatableByIndex[i].TableName.ToString().ToUpper()) { case "ITAB": if (Zrfc_SFC_NSG_001B.ReturnDatatableByIndex[0].Rows.Count > 0) { ErrorMessage = Zrfc_SFC_NSG_001B.ReturnDatatableByIndex[0].Rows[0][1].ToString(); throw new Exception(ErrorMessage); } break; case "WO_HEADER": sfcdb = this.DBPools["SFCDB"].Borrow(); C_TAB_COLUMN_MAP = new T_C_TAB_COLUMN_MAP(sfcdb, DB_TYPE_ENUM.Oracle); Row = C_TAB_COLUMN_MAP.GetTableColumnMap("R_WO_HEADER", sfcdb, DB_TYPE_ENUM.Oracle); StrColumn = Row["TAB_COLUMN"].ToString(); StrValue = ""; StrColumn_Name = StrColumn.Split(','); StrColumn_Value = new string[StrColumn_Name.Count()]; RFC_Table = (DataTable)Zrfc_SFC_NSG_001B.ReturnDatatableByIndex[i]; for (int m = 0; m < RFC_Table.Rows.Count; m++) { R_WO_BASE = new T_R_WO_BASE(sfcdb, DB_TYPE_ENUM.Oracle); Exist_WO_Base_Flag = R_WO_BASE.CheckDataExist(RFC_Table.Rows[m]["AUFNR"].ToString(), sfcdb); R_WO_HEADER = new T_R_WO_HEADER(sfcdb, DB_TYPE_ENUM.Oracle); Exist_WO_Flag = R_WO_HEADER.CheckWoHeadByWo(RFC_Table.Rows[m]["AUFNR"].ToString(), DownLoad_Auto, StrColumn, sfcdb, DB_TYPE_ENUM.Oracle); C_SKU = new T_C_SKU(sfcdb, DB_TYPE_ENUM.Oracle); Exist_SKU_Flag = C_SKU.CheckSku(RFC_Table.Rows[m][3].ToString(), sfcdb); if (!Exist_WO_Flag && Exist_SKU_Flag && !Exist_WO_Base_Flag) { string StrID = C_TAB_COLUMN_MAP.GetNewID(BU, sfcdb); for (int j = 0; j < StrColumn_Name.Count(); j++) { //StrColumn_Value[j] = ReplaceSpecialChar(RFC_Table.Rows[m][StrColumn_Name[j]].ToString()); StrColumn_Value[j] = RFC_Table.Rows[m][StrColumn_Name[j]].ToString(); if (j == 0) { StrValue = "'" + StrColumn_Value[j].ToString() + "'"; } else { StrValue = StrValue + ",'" + StrColumn_Value[j].ToString() + "'"; } } StrSql = " insert into R_WO_HEADER(" + StrColumn + ",ID " + ") values(" + StrValue + ",'" + StrID + "'" + ");"; R_WO_HEADER = new T_R_WO_HEADER(sfcdb, DB_TYPE_ENUM.Oracle); R_WO_HEADER.EditWoHead(StrSql, sfcdb, DB_TYPE_ENUM.Oracle); } } this.DBPools["SFCDB"].Return(sfcdb); break; case "WO_ITEM": StrSql = ""; sfcdb = this.DBPools["SFCDB"].Borrow(); C_TAB_COLUMN_MAP = new T_C_TAB_COLUMN_MAP(sfcdb, DB_TYPE_ENUM.Oracle); Row = C_TAB_COLUMN_MAP.GetTableColumnMap("R_WO_ITEM", sfcdb, DB_TYPE_ENUM.Oracle); StrColumn = Row["TAB_COLUMN"].ToString(); StrValue = ""; StrColumn_Name = StrColumn.Split(','); StrColumn_Value = new string[StrColumn_Name.Count()]; RFC_Table = (DataTable)Zrfc_SFC_NSG_001B.ReturnDatatableByIndex[i]; for (int m = 0; m < RFC_Table.Rows.Count; m++) { R_WO_BASE = new T_R_WO_BASE(sfcdb, DB_TYPE_ENUM.Oracle); Exist_WO_Base_Flag = R_WO_BASE.CheckDataExist(RFC_Table.Rows[m]["AUFNR"].ToString(), sfcdb); R_WO_ITEM = new T_R_WO_ITEM(sfcdb, DB_TYPE_ENUM.Oracle); Exist_WO_Flag = R_WO_ITEM.CheckWoItemByWo(RFC_Table.Rows[m]["AUFNR"].ToString(), RFC_Table.Rows[m]["MATNR"].ToString(), DownLoad_Auto, StrColumn, sfcdb, DB_TYPE_ENUM.Oracle); C_SKU = new T_C_SKU(sfcdb, DB_TYPE_ENUM.Oracle); Exist_SKU_Flag = C_SKU.CheckSku(RFC_Table.Rows[m][8].ToString(), sfcdb); if (!Exist_WO_Flag && Exist_SKU_Flag && !Exist_WO_Base_Flag) { string StrID = C_TAB_COLUMN_MAP.GetNewID(BU, sfcdb); for (int j = 0; j < StrColumn_Name.Count(); j++) { //StrColumn_Value[j] = ReplaceSpecialChar(RFC_Table.Rows[m][StrColumn_Name[j]].ToString()); StrColumn_Value[j] = RFC_Table.Rows[m][StrColumn_Name[j]].ToString(); if (j == 0) { StrValue = "'" + StrColumn_Value[j].ToString() + "'"; } else { StrValue = StrValue + ",'" + StrColumn_Value[j].ToString() + "'"; } } StrSql = "insert into R_WO_ITEM(" + StrColumn + ",ID " + ") values(" + StrValue + ",'" + StrID + "'" + ");\n"; R_WO_ITEM = new T_R_WO_ITEM(sfcdb, DB_TYPE_ENUM.Oracle); R_WO_ITEM.EditWoItem(StrSql, sfcdb, DB_TYPE_ENUM.Oracle); } } this.DBPools["SFCDB"].Return(sfcdb); break; case "WO_TEXT": StrSql = ""; sfcdb = this.DBPools["SFCDB"].Borrow(); C_TAB_COLUMN_MAP = new T_C_TAB_COLUMN_MAP(sfcdb, DB_TYPE_ENUM.Oracle); Row = C_TAB_COLUMN_MAP.GetTableColumnMap("R_WO_TEXT", sfcdb, DB_TYPE_ENUM.Oracle); StrColumn = Row["TAB_COLUMN"].ToString(); StrValue = ""; StrColumn_Name = StrColumn.Split(','); StrColumn_Value = new string[StrColumn_Name.Count()]; RFC_Table = (DataTable)Zrfc_SFC_NSG_001B.ReturnDatatableByIndex[i]; for (int m = 0; m < RFC_Table.Rows.Count; m++) { R_WO_BASE = new T_R_WO_BASE(sfcdb, DB_TYPE_ENUM.Oracle); Exist_WO_Base_Flag = R_WO_BASE.CheckDataExist(RFC_Table.Rows[m]["AUFNR"].ToString(), sfcdb); R_WO_TEXT = new T_R_WO_TEXT(sfcdb, DB_TYPE_ENUM.Oracle); Exist_WO_Flag = R_WO_TEXT.CheckWoTextByWo(RFC_Table.Rows[m]["AUFNR"].ToString(), DownLoad_Auto, StrColumn, sfcdb, DB_TYPE_ENUM.Oracle); R_WO_HEADER = new T_R_WO_HEADER(sfcdb, DB_TYPE_ENUM.Oracle); Exist_SKU_Flag = R_WO_HEADER.CheckWoHeadByWo(RFC_Table.Rows[m]["AUFNR"].ToString(), true, StrColumn, sfcdb, DB_TYPE_ENUM.Oracle); if (!Exist_WO_Flag && !Exist_WO_Base_Flag && Exist_SKU_Flag) { string StrID = C_TAB_COLUMN_MAP.GetNewID(BU, sfcdb); for (int j = 0; j < StrColumn_Name.Count(); j++) { StrColumn_Value[j] = RFC_Table.Rows[m][StrColumn_Name[j]].ToString(); if (j == 0) { StrValue = "'" + StrColumn_Value[j].ToString() + "'"; } else { StrValue = StrValue + ",'" + StrColumn_Value[j].ToString() + "'"; } } StrSql = "insert into R_WO_TEXT(" + StrColumn + ",ID " + ") values(" + StrValue + ",'" + StrID + "'" + ");"; R_WO_TEXT = new T_R_WO_TEXT(sfcdb, DB_TYPE_ENUM.Oracle); R_WO_TEXT.EditWoText(StrSql, sfcdb, DB_TYPE_ENUM.Oracle); } } this.DBPools["SFCDB"].Return(sfcdb); break; } } }
public void ModifyWORange(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { T_R_WO_REGION rWo = null; OleExec sfcdb = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); rWo = new T_R_WO_REGION(sfcdb, DB_TYPE_ENUM.Oracle); Row_R_WO_REGION r = (Row_R_WO_REGION)rWo.NewRow(); T_R_WO_BASE StWoBase = new T_R_WO_BASE(sfcdb, DB_TYPE_ENUM.Oracle); T_C_SKU t_c_sku = new T_C_SKU(sfcdb, DB_TYPE_ENUM.Oracle); Row_R_WO_BASE RowWoBase = null; RowWoBase = StWoBase.GetWo((Data["WORKORDERNO"].ToString()).Trim(), sfcdb); string minSN = (Data["MIN_SN"].ToString()).Trim(); string maxSN = (Data["MAX_SN"].ToString()).Trim(); string checkOut = ""; if (!rWo.InputIsStringOrNum(minSN, out checkOut)) { StationReturn.MessageCode = "MES00000258"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; return; } if (!rWo.InputIsStringOrNum(maxSN, out checkOut)) { StationReturn.MessageCode = "MES00000258"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; return; } C_SKU objectSku = t_c_sku.GetSku(RowWoBase.SKUNO, sfcdb, DB_TYPE_ENUM.Oracle).GetDataObject(); if (!rWo.InputIsMatchSkuRule(minSN, objectSku)) { StationReturn.MessageCode = "MES00000259"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; return; } if (!rWo.InputIsMatchSkuRule(maxSN, objectSku)) { StationReturn.MessageCode = "MES00000259"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; return; } r = (Row_R_WO_REGION)rWo.GetObjByID(Data["ID"].ToString(), sfcdb, DB_TYPE_ENUM.Oracle); r.ID = (Data["ID"].ToString()).Trim(); r.WORKORDERNO = (Data["WORKORDERNO"].ToString()).Trim(); r.SKUNO = RowWoBase.SKUNO; r.QTY = RowWoBase.WORKORDER_QTY; //r.SKUNO = (Data["SKUNO"].ToString()).Trim(); //r.QTY = int.Parse(Data["QTY"].ToString()); r.MIN_SN = minSN; r.MAX_SN = maxSN; r.EDIT_EMP = LoginUser.EMP_NO; r.EDIT_TIME = GetDBDateTime(); string strRet = sfcdb.ExecSQL(r.GetUpdateString(DB_TYPE_ENUM.Oracle)); if (Convert.ToInt32(strRet) > 0) { StationReturn.MessageCode = "MES00000003"; StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Data = ""; } else { StationReturn.MessageCode = "MES00000036"; StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Data = ""; } this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
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); } } }