Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
                }
            }
        }
Ejemplo n.º 7
0
        /// <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());
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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);
                }
            }
        }
Ejemplo n.º 10
0
        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;
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        //通過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;
        }
Ejemplo n.º 13
0
 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"));
 }
Ejemplo n.º 14
0
        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;
        }
Ejemplo n.º 15
0
        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));
                    }
                }
            }
        }
Ejemplo n.º 16
0
        /// <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);
                }
            }
        }
Ejemplo n.º 17
0
        /// <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);
        }
Ejemplo n.º 18
0
 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"));
 }
Ejemplo n.º 19
0
        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);
            }
        }
Ejemplo n.º 20
0
        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);
                }
            }
        }
Ejemplo n.º 21
0
        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");
        }
Ejemplo n.º 22
0
        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);
                }
            }
        }
Ejemplo n.º 23
0
        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;
            }
        }
Ejemplo n.º 24
0
        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;
                }
            }
        }
Ejemplo n.º 25
0
        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;
            }
        }
Ejemplo n.º 26
0
        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);
                }
            }
        }