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);
                }
            }
        }
示例#2
0
        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");
            }
        }
示例#3
0
 /// <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.");
     }
 }
示例#4
0
        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);
                }
            }
        }
示例#7
0
        /// <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
        }