Esempio n. 1
0
        /// <summary>
        /// 前端返回一個 JSON 對象,反序列化成 R_C_ROUTE 對象插入/更新/刪除 流程描述表

        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void UpdateRouteDesc(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            T_C_ROUTE Table     = null;
            R_C_ROUTE Route     = null;
            OleExec   sfcdb     = null;
            int       Result    = 0;
            string    Operation = string.Empty;

            try
            {
                sfcdb     = this.DBPools["SFCDB"].Borrow();
                Table     = new T_C_ROUTE(sfcdb, DBType);
                Operation = Data["OPERATION"].ToString();
                Route     = (R_C_ROUTE)JsonConverter.Deserialize(Data["ROUTE_OBJECT"].ToString(), typeof(R_C_ROUTE));
                Result    = Table.UpdateRoute(Route, Operation, sfcdb);
                ConstructReturnValue(StationReturn, Result, string.Format("成功更新 {0} 條數據", Result));
            }
            catch (Exception e)
            {
                ConstructReturnValue(StationReturn, e);
            }
            finally
            {
                this.DBPools["SFCDB"].Return(sfcdb);
            }
        }
        /// <summary>
        /// 獲取機種可用的路由
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void GetAvailableRoutesForSku(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JToken Data, MESStationReturn StationReturn)
        {
            OleExec sfcdb = null;

            try
            {
                sfcdb = this.DBPools["SFCDB"].Borrow();
                List <C_ROUTE> getRouteList = new List <C_ROUTE>();
                string         strSKUID     = Data["SkuId"].ToString();
                T_C_ROUTE      TC_ROUTE     = new T_C_ROUTE(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle);
                getRouteList = TC_ROUTE.GetAvailableRoutesForSkuBySkuid(strSKUID, sfcdb);
                if (getRouteList == null)
                {
                    getRouteList = new List <C_ROUTE>();
                }
                StationReturn.Data        = getRouteList;
                StationReturn.Status      = StationReturnStatusValue.Pass;
                StationReturn.MessageCode = "MES00000001";
                this.DBPools["SFCDB"].Return(sfcdb);
            }
            catch (Exception ex)
            {
                if (sfcdb != null)
                {
                    this.DBPools["SFCDB"].Return(sfcdb);
                }
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000037";
                StationReturn.MessagePara.Add(ex.Message);
            }
        }
Esempio n. 3
0
        public void GetRouteBySkuno(JObject requestValue, JObject Data, MESStationReturn StationReturn)
        {
            OleExec       oleDB    = null;
            T_C_ROUTE     t_header = null;
            List <string> dt       = null;
            string        skuno    = Data["skuno"].ToString();

            if (string.IsNullOrEmpty(skuno))
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000006";
                StationReturn.MessagePara = new List <object>()
                {
                    "Skuno"
                };
                StationReturn.Data = "";
                return;
            }
            try
            {
                oleDB    = DBPools["SFCDB"].Borrow();
                t_header = new T_C_ROUTE(oleDB, DB_TYPE_ENUM.Oracle);
                dt       = t_header.GetRouteBySkuno(oleDB, skuno);
                if (dt == null || dt.Count == 0)
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000034";
                    StationReturn.Data        = "";
                }
                else
                {
                    StationReturn.Status      = StationReturnStatusValue.Pass;
                    StationReturn.MessageCode = "MES00000001";
                    StationReturn.Data        = dt;
                    //StationReturn.Data = ConvertToJson.DataTableToJson(dt);
                }

                if (oleDB != null)
                {
                    DBPools["SFCDB"].Return(oleDB);
                }
            }
            catch (Exception ex)
            {
                if (oleDB != null)
                {
                    DBPools["SFCDB"].Return(oleDB);
                }
                throw ex;
            }
        }
Esempio n. 4
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"));
 }
Esempio n. 5
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));
                    }
                }
            }
        }
Esempio n. 6
0
        /// <summary>
        /// 返回所有的路由主表信息
        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void GetAllRouteDesc(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec   sfcdb = null;
            DataTable dt    = new DataTable();

            try
            {
                sfcdb = this.DBPools["SFCDB"].Borrow();
                T_C_ROUTE table = new T_C_ROUTE(sfcdb, DBType);
                dt = table.GetAllRoute(sfcdb);
                ConstructReturnValue(StationReturn, dt);
            }
            catch (Exception e)
            {
                ConstructReturnValue(StationReturn, e);
            }
            finally
            {
                this.DBPools["SFCDB"].Return(sfcdb);
            }
        }
Esempio n. 7
0
 public RouteBase(string RouteId, OleExec sfcdb)
 {
     try
     {
         T_C_ROUTE             TC_ROUTE        = new T_C_ROUTE(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle);
         T_C_ROUTE_DETAIL      TC_ROUTE_DETAIL = new T_C_ROUTE_DETAIL(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle);
         C_ROUTE               getRoute        = new C_ROUTE();
         List <C_ROUTE_DETAIL> getRouteDetail  = new List <C_ROUTE_DETAIL>();
         getRoute = TC_ROUTE.GetById(RouteId, sfcdb);
         if (getRoute != null)
         {
             this._ID            = getRoute.ID;
             this._ROUTE_NAME    = getRoute.ROUTE_NAME;
             this._DEFAULT_SKUNO = getRoute.DEFAULT_SKUNO;
             this._ROUTE_TYPE    = getRoute.ROUTE_TYPE;
             getRouteDetail      = TC_ROUTE_DETAIL.GetByRouteIdOrderBySEQASC(getRoute.ID, sfcdb);
             if (getRouteDetail != null && getRouteDetail.Count > 0)
             {
                 this._DETAIL = new List <RouteDetail>();
                 for (int i = 0; i < getRouteDetail.Count; i++)
                 {
                     RouteDetail newRouteDetail = new RouteDetail(getRouteDetail[i].ID, sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle);
                     this._DETAIL.Add(newRouteDetail);
                 }
             }
             else
             {
                 throw new Exception(RouteId + " 工站不存在");
             }
         }
         else
         {
             throw new Exception(RouteId + " 不存在");
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Esempio n. 8
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"));
 }
Esempio n. 9
0
        /// <summary>
        /// 根據其他信息返回路由描述信息,可以根據路由的類型以及默認適用的機種

        /// </summary>
        /// <param name="requestValue"></param>
        /// <param name="Data"></param>
        /// <param name="StationReturn"></param>
        public void GetRouteDescByOtherCondition(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec   sfcdb          = null;
            DataTable dt             = new DataTable();
            string    OtherCondition = Data["OTHER_CONDITION"].ToString();
            T_C_ROUTE table          = null;

            try
            {
                sfcdb = this.DBPools["SFCBD"].Borrow();
                table = new T_C_ROUTE(sfcdb, DBType);
                dt    = table.GetByOtherConditions(OtherCondition, sfcdb);
                ConstructReturnValue(StationReturn, dt);
            }
            catch (Exception e)
            {
                ConstructReturnValue(StationReturn, e);
            }
            finally
            {
                this.DBPools["SFCDB"].Return(sfcdb);
            }
        }
        public void AddSKuRouteMapping(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            T_R_SKU_ROUTE table         = null;
            R_SKU_ROUTE   mapping       = null;
            OleExec       sfcdb         = null;
            string        result        = string.Empty;
            string        MappingObject = string.Empty;

            //MappingObject = @"{
            //    'DEFAULT_FLAG': 'Y',
            //    'SKU': {
            //        'ID': '111',
            //        'SKUNO': '222',
            //        'VERSION':'333'
            //    },
            //    'ROUTE': {
            //        'ID':'HWD00000000000000000000000000001X',
            //        'ROUTE_NAME':'555'
            //    }
            //}";

            try
            {
                if (Data["MappingObject"] != null && !string.IsNullOrEmpty(Data["MappingObject"].ToString()))
                {
                    sfcdb         = this.DBPools["SFCDB"].Borrow();
                    table         = new T_R_SKU_ROUTE(sfcdb, DBTYPE);
                    MappingObject = Data["MappingObject"].ToString();
                    mapping       = (R_SKU_ROUTE)JsonConvert.Deserialize(MappingObject, typeof(R_SKU_ROUTE));
                    if (mapping.ROUTE_ID != null)
                    {
                        T_C_ROUTE ROUTE   = new T_C_ROUTE(sfcdb, DBTYPE);
                        C_ROUTE   C_ROUTE = ROUTE.GetByRouteName(mapping.ROUTE_ID, sfcdb);
                        mapping.ROUTE_ID  = C_ROUTE.ID;
                        mapping.EDIT_EMP  = LoginUser.EMP_NO;
                        mapping.EDIT_TIME = GetDBDateTime();
                        result            = table.AddMapping(mapping, BU, sfcdb);
                        if (Int32.Parse(result) > 0)
                        {
                            StationReturn.Status      = StationReturnStatusValue.Pass;
                            StationReturn.MessageCode = "MES00000035";
                            StationReturn.MessagePara.Add(result);
                            StationReturn.Data = result;
                            //throw
                        }
                        else
                        {
                            StationReturn.Status      = StationReturnStatusValue.Pass;
                            StationReturn.MessageCode = "MES00000036";
                            StationReturn.Data        = result;
                        }
                        if (sfcdb != null)
                        {
                            this.DBPools["SFCDB"].Return(sfcdb);
                        }
                    }
                    else
                    {
                        StationReturn.Status      = StationReturnStatusValue.Fail;
                        StationReturn.MessageCode = "MES00000204";
                        StationReturn.Data        = result;
                    }
                }
            }
            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);
                }
                //throw e;
            }
        }
Esempio n. 11
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;
            }
        }
Esempio n. 12
0
        private void getByIdOrRouteName(string parametName, string parametValue, OleExec sfcdb, MESDataObject.DB_TYPE_ENUM dbtype)
        {
            try
            {
                T_C_ROUTE             TC_ROUTE        = new T_C_ROUTE(sfcdb, dbtype);
                T_C_ROUTE_DETAIL      TC_ROUTE_DETAIL = new T_C_ROUTE_DETAIL(sfcdb, dbtype);
                C_ROUTE               getRoute        = new C_ROUTE();
                List <C_ROUTE_DETAIL> getRouteDetail  = new List <C_ROUTE_DETAIL>();
                // List<RouteDetail> RouteDetailList = new List<RouteDetail>();
                //T_C_ROUTE_DETAIL_DIRECTLINK TC_ROUTE_DETAIL_DIRECTLINK = new T_C_ROUTE_DETAIL_DIRECTLINK(sfcdb, dbtype);
                //T_C_ROUTE_DETAIL_RETURN TC_ROUTE_DETAIL_RETURN = new T_C_ROUTE_DETAIL_RETURN(sfcdb, dbtype);
                //List<C_ROUTE_DETAIL_RETURN> getDetailReturn = new List<C_ROUTE_DETAIL_RETURN>();
                //List<C_ROUTE_DETAIL_DIRECTLINK> getDetailDirectLink = new List<C_ROUTE_DETAIL_DIRECTLINK>();

                if (parametName.Trim() == "ID")
                {
                    getRoute = TC_ROUTE.GetById(parametValue.Trim(), sfcdb);
                }
                else if (parametName.Trim() == "ROUTENAME")
                {
                    getRoute = TC_ROUTE.GetByRouteName(parametValue.Trim(), sfcdb);
                }
                else
                {
                    throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000007", new string[] { "getByIdOrRouteName:" + parametName }));
                }
                if (getRoute != null)
                {
                    this._ID            = getRoute.ID;
                    this._ROUTE_NAME    = getRoute.ROUTE_NAME;
                    this._DEFAULT_SKUNO = getRoute.DEFAULT_SKUNO;
                    this._ROUTE_TYPE    = getRoute.ROUTE_TYPE;
                    getRouteDetail      = TC_ROUTE_DETAIL.GetByRouteIdOrderBySEQASC(getRoute.ID, sfcdb);
                    if (getRouteDetail != null && getRouteDetail.Count > 0)
                    {
                        this._DETAIL = new List <RouteDetail>();
                        for (int i = 0; i < getRouteDetail.Count; i++)
                        {
                            RouteDetail newRouteDetail = new RouteDetail(getRouteDetail[i].ID, sfcdb, dbtype);
                            #region 寫法一

                            /*
                             * RouteDetail newRouteDetail = new RouteDetail();
                             * newRouteDetail.ID = getRouteDetail[i].ID;
                             * newRouteDetail.SEQ_NO = getRouteDetail[i].SEQ_NO;
                             * newRouteDetail.ROUTE_ID = getRouteDetail[i].ROUTE_ID;
                             * newRouteDetail.STATION_NAME = getRouteDetail[i].STATION_NAME;
                             * newRouteDetail.STATION_TYPE = getRouteDetail[i].STATION_TYPE;
                             * newRouteDetail.RETURN_FLAG = getRouteDetail[i].RETURN_FLAG;
                             * if (getRouteDetail[i].RETURN_FLAG == "Y")
                             * {
                             *   getDetailReturn = TC_ROUTE_DETAIL_RETURN.GetByRoute_DetailId(newRouteDetail.ID, sfcdb);
                             *   if (getDetailReturn != null && getDetailReturn.Count > 0)
                             *   {
                             *       List<C_ROUTE_DETAIL> newReturnList = new List<C_ROUTE_DETAIL>();
                             *       for (int j = 0; j < getDetailReturn.Count; j++)
                             *       {
                             *           newReturnList.Add(TC_ROUTE_DETAIL.GetById(getDetailReturn[j].RETURN_ROUTE_DETAIL_ID, sfcdb));
                             *       }
                             *       newRouteDetail.RETURNLIST = newReturnList;
                             *   }
                             * }
                             * else
                             * {
                             *   newRouteDetail.RETURNLIST = null;
                             * }
                             * getDetailDirectLink = TC_ROUTE_DETAIL_DIRECTLINK.GetByDetailId(newRouteDetail.ID, sfcdb);
                             * if (getDetailDirectLink != null && getDetailDirectLink.Count > 0)
                             * {
                             *   List<C_ROUTE_DETAIL> newDirectLinkList = new List<C_ROUTE_DETAIL>();
                             *   for (int n = 0; n < getDetailDirectLink.Count; n++)
                             *   {
                             *       newDirectLinkList.Add(TC_ROUTE_DETAIL.GetById(getDetailDirectLink[n].DIRECTLINK_ROUTE_DETAIL_ID, sfcdb));
                             *   }
                             *   newRouteDetail.DIRECTLINKLIST = newDirectLinkList;
                             * }
                             * else
                             * {
                             *   newRouteDetail.DIRECTLINKLIST = null;
                             * }
                             * if (this.DETAIL == null)
                             * {
                             *   this.DETAIL = new List<RouteDetail>();
                             * }*/
                            #endregion 寫法一 end
                            this._DETAIL.Add(newRouteDetail);
                        }
                    }
                    else
                    {
                        this._DETAIL = null;
                    }
                }
                else
                {
                    this._ID            = "";
                    this._ROUTE_NAME    = "";
                    this._DEFAULT_SKUNO = "";
                    this._ROUTE_TYPE    = "";
                    this._DETAIL        = null;
                    throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000007", new string[] { "Route_" + parametName + ":" + parametValue }));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }