public void GetAllSapStationMapBySkuAndStation(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; List <C_SAP_STATION_MAP> MapList = new List <C_SAP_STATION_MAP>(); T_C_SAP_STATION_MAP Table = null; string SkuNo = string.Empty; string Station = string.Empty; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SAP_STATION_MAP(sfcdb, DBTYPE); SkuNo = Data["SkuNo"].ToString().Trim(); Station = Data["Station"].ToString().Trim(); if (string.IsNullOrEmpty(SkuNo) || string.IsNullOrEmpty(Station)) { GetAllSapStationMaps(requestValue, Data, StationReturn); } else { MapList = Table.GetSAPStationMapBySkuAndStation(SkuNo, Station, sfcdb); if (MapList.Count() == 0) { //沒有獲取到數據 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000034"; StationReturn.Data = new object(); } else { //獲取成功 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000033"; StationReturn.MessagePara.Add(MapList.Count().ToString()); StationReturn.Data = MapList; } } 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 SAPMappingBase(string skuno, OleExec sfcdb) { T_C_SAP_STATION_MAP TC_SAP_STATION_MAP = new T_C_SAP_STATION_MAP(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle); _Mapping = TC_SAP_STATION_MAP.GetSAPStationMapBySkuOrderBySAPCodeASC(skuno, sfcdb); if (_Mapping == null || _Mapping.Count <= 0) { throw new Exception(skuno + " 配置SAP Mapping"); } }
/// <summary> /// 加載對應的拋賬信息 /// </summary> /// <param name="DB"></param> public SKU LoadSapStationMap(OleExec DB) { if (!this.SkuBase.ID.Equals("")) { T_C_SAP_STATION_MAP table = new T_C_SAP_STATION_MAP(DB, this._DBType); this.SapStationMaps = table.GetSAPStationMapBySku(this.SkuBase.SKUNO, DB); return(this); } else { throw new MESReturnMessage("Please ensure the C_SKU property is not null before using other methods."); } }
public void DeleteSapStationMap(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_C_SAP_STATION_MAP Table = null; try { JToken data = Data["IDList"]; sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SAP_STATION_MAP(sfcdb, DBTYPE); int n = 0; for (int i = 0; i < data.Count(); i++) { var s = Table.DeleteSAPStationMap(data[i].ToString(), sfcdb); if (int.Parse(s) > 0) { n++; } } if (n > 0) { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000035"; StationReturn.MessagePara.Clear(); StationReturn.MessagePara.Add(n); StationReturn.Data = n; } else { StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000036"; StationReturn.Data = n; } } 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 GetAllSapStationMaps(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; List <C_SAP_STATION_MAP> MapList = new List <C_SAP_STATION_MAP>(); T_C_SAP_STATION_MAP Table = null; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SAP_STATION_MAP(sfcdb, DBTYPE); MapList = Table.GetAllSAPStationMaps(sfcdb); if (MapList.Count() == 0) { //沒有獲取到數據 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000034"; StationReturn.Data = new object(); } else { //獲取到數據 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000033"; StationReturn.MessagePara.Add(MapList.Count().ToString()); StationReturn.Data = MapList; } 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 UpdateSapStationMap(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { string Operation = string.Empty; string MapObject = string.Empty; OleExec sfcdb = null; T_C_SAP_STATION_MAP Table = null; C_SAP_STATION_MAP Map = null; string result = string.Empty; try { sfcdb = this.DBPools["SFCDB"].Borrow(); Table = new T_C_SAP_STATION_MAP(sfcdb, DBTYPE); MapObject = Data["MapObject"].ToString(); Operation = Data["Operation"].ToString(); Map = (C_SAP_STATION_MAP)JsonConvert.Deserialize(MapObject, typeof(C_SAP_STATION_MAP)); Map.EDIT_EMP = LoginUser.EMP_NO; Map.EDIT_TIME = GetDBDateTime(); result = Table.UpdateSAPStationMap(Map, Operation, BU, sfcdb); if (Int32.Parse(result) > 0) { //更新成功 StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.MessageCode = "MES00000035"; StationReturn.MessagePara.Clear(); StationReturn.MessagePara.Add(result); StationReturn.Data = result; } 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); } } }
/// <summary> /// JOBSTOCK STATION PASS ACTION /// </summary> /// <param name="objWorkorder">wo obj</param> /// <param name="objSN">sn obj</param> /// <param name="Station">Station</param> /// <param name="confirmed_flag">confirmed_flag</param> public void JobStockPass(WorkOrder objWorkorder, SN objSN, MESPubLab.MESStation.MESStationBase Station, string confirmed_flag) { T_R_STOCK t_r_stock = new T_R_STOCK(Station.SFCDB, Station.DBType); T_R_SN t_r_sn = new T_R_SN(Station.SFCDB, Station.DBType); T_R_WO_BASE t_r_wo_base = new T_R_WO_BASE(Station.SFCDB, Station.DBType); T_R_STOCK_GT t_r_stock_gt = new T_R_STOCK_GT(Station.SFCDB, Station.DBType); T_C_SAP_STATION_MAP t_c_sap_station_map = new T_C_SAP_STATION_MAP(Station.SFCDB, Station.DBType); string gt_id = ""; #region write r_stock,r_stock_gt List <C_SAP_STATION_MAP> sapCodeList = t_c_sap_station_map.GetSAPStationMapBySkuOrderBySAPCodeASC(objWorkorder.SkuNO, Station.SFCDB); if (sapCodeList.Count == 0) { throw new MESDataObject.MESReturnMessage(MESDataObject.MESReturnMessage.GetMESReturnMessage("MES00000224", new string[] { objWorkorder.SkuNO })); } Row_R_STOCK_GT rowStockGT; R_STOCK_GT objGT = t_r_stock_gt.GetNotGTbjByWO(objWorkorder.WorkorderNo, confirmed_flag, Station.SFCDB); if (objGT == null) { gt_id = t_r_stock_gt.GetNewID(Station.BU, Station.SFCDB); rowStockGT = (Row_R_STOCK_GT)t_r_stock_gt.NewRow(); rowStockGT.ID = gt_id; rowStockGT.WORKORDERNO = objWorkorder.WorkorderNo; rowStockGT.SKUNO = objWorkorder.SkuNO; rowStockGT.TOTAL_QTY = 1; rowStockGT.FROM_STORAGE = objWorkorder.WorkorderNo; rowStockGT.TO_STORAGE = objWorkorder.STOCK_LOCATION; rowStockGT.SAP_FLAG = "0"; rowStockGT.CONFIRMED_FLAG = confirmed_flag; rowStockGT.SAP_STATION_CODE = sapCodeList.Last().SAP_STATION_CODE; rowStockGT.EDIT_EMP = Station.LoginUser.EMP_NO; rowStockGT.EDIT_TIME = Station.GetDBDateTime(); Station.SFCDB.ExecSQL(rowStockGT.GetInsertString(Station.DBType)); } else { rowStockGT = (Row_R_STOCK_GT)t_r_stock_gt.GetObjByID(objGT.ID, Station.SFCDB); gt_id = rowStockGT.ID; rowStockGT.TOTAL_QTY = rowStockGT.TOTAL_QTY + 1; rowStockGT.EDIT_EMP = Station.LoginUser.EMP_NO; rowStockGT.EDIT_TIME = Station.GetDBDateTime(); Station.SFCDB.ExecSQL(rowStockGT.GetUpdateString(Station.DBType)); } Row_R_STOCK rowStock = (Row_R_STOCK)t_r_stock.NewRow(); rowStock.ID = t_r_stock.GetNewID(Station.BU, Station.SFCDB); rowStock.SN = objSN.SerialNo; rowStock.WORKORDERNO = objWorkorder.WorkorderNo; rowStock.SKUNO = objWorkorder.SkuNO; rowStock.NEXT_STATION = objSN.NextStation; rowStock.FROM_STORAGE = objWorkorder.WorkorderNo; rowStock.TO_STORAGE = objWorkorder.STOCK_LOCATION; rowStock.CONFIRMED_FLAG = confirmed_flag; rowStock.SAP_FLAG = "0"; rowStock.EDIT_EMP = Station.LoginUser.EMP_NO; rowStock.EDIT_TIME = Station.GetDBDateTime(); rowStock.GT_ID = gt_id; Station.SFCDB.ExecSQL(rowStock.GetInsertString(Station.DBType)); #endregion #region update status Row_R_SN rowSN = (Row_R_SN)t_r_sn.GetObjByID(objSN.ID, Station.SFCDB); rowSN.NEXT_STATION = "JOBFINISH"; rowSN.STOCK_STATUS = "1"; rowSN.COMPLETED_FLAG = "1"; rowSN.COMPLETED_TIME = Station.GetDBDateTime(); rowSN.STOCK_IN_TIME = Station.GetDBDateTime(); rowSN.EDIT_EMP = Station.LoginUser.EMP_NO; rowSN.EDIT_TIME = Station.GetDBDateTime(); Station.SFCDB.ExecSQL(rowSN.GetUpdateString(Station.DBType)); t_r_sn.RecordPassStationDetail(rowSN.SN, Station.Line, Station.StationName, Station.StationName, Station.BU, Station.SFCDB); t_r_wo_base.UpdateFinishQty(objWorkorder.WorkorderNo, 1, Station.SFCDB); #endregion }