Example #1
0
 public T_R_MRB(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_R_MRB);
     TableName = "R_MRB".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }
Example #2
0
 public T_R_Input_Action(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_R_Input_Action);
     TableName = "R_Input_Action".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }
        /// <summary>
        /// BIP FAIL R_SN_STATION_DETAIL REPAIR_FAILED_FLAG=1
        /// </summary>
        /// <param name="SNDetailID"></param>
        /// <param name="SN"></param>
        /// <param name="Line"></param>
        /// <param name="StationName"></param>
        /// <param name="DeviceName"></param>
        /// <param name="DB"></param>
        /// <param name="Fail_Flag"></param>
        /// <returns></returns>
        public string AddDetailToBipStationFailDetail(string SNDetailID, R_SN SN, string Line, string StationName, string DeviceName, OleExec DB, string Fail_Flag)
        {
            string result = string.Empty;
            string sql    = string.Empty;
            T_R_SN_STATION_DETAIL   Table_R_Sn_Station_Detail = new T_R_SN_STATION_DETAIL(DB, DBType);
            Row_R_SN_STATION_DETAIL row = null;

            if (SN != null && !string.IsNullOrEmpty(SN.ID))
            {
                row                    = (Row_R_SN_STATION_DETAIL)ConstructRow(SN);
                row.ID                 = SNDetailID;
                row.R_SN_ID            = SN.ID;
                row.CLASS_NAME         = GetWorkClass(DB);
                row.LINE               = Line;
                row.REPAIR_FAILED_FLAG = Fail_Flag;
                row.STATION_NAME       = StationName;
                row.DEVICE_NAME        = DeviceName;
                //row.EDIT_TIME = GetDBDateTime(DB);
                if (this.DBType == DB_TYPE_ENUM.Oracle)
                {
                    sql    = row.GetInsertString(this.DBType);
                    result = DB.ExecSQL(sql);
                    return(result);
                }
                else
                {
                    string errMsg = MESReturnMessage.GetMESReturnMessage("MES00000019", new string[] { DBType.ToString() });
                    throw new MESReturnMessage(errMsg);
                }
            }
            return(result);
        }
Example #4
0
        public void UpdateFactory(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec     oleDB           = null;
            T_C_FACTORY Table           = null;
            string      ID              = string.Empty;
            string      FACTORY_CODE    = string.Empty;
            string      FACTORY_NAME    = string.Empty;
            string      FACTORY_ADDRESS = string.Empty;
            string      DESCRIPTION     = string.Empty;
            string      EDIT_EMP        = string.Empty;
            int         result;

            try
            {
                oleDB           = this.DBPools["SFCDB"].Borrow();
                Table           = new T_C_FACTORY(oleDB, DBTYPE);
                ID              = Data["ID"].ToString().Trim();
                FACTORY_CODE    = Data["FACTORY_CODE"].ToString().Trim().ToUpper();
                FACTORY_NAME    = Data["FACTORY_NAME"].ToString().Trim().ToUpper();
                FACTORY_ADDRESS = Data["FACTORY_ADDRESS"].ToString().Trim().ToUpper();
                DESCRIPTION     = Data["DESCRIPTION"].ToString().Trim();
                EDIT_EMP        = LoginUser.EMP_NO.Trim();

                result = Table.Update(ID, FACTORY_CODE, FACTORY_NAME, FACTORY_ADDRESS, DESCRIPTION, EDIT_EMP, oleDB);
                if (result == 0)
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "Update fail ID not exist";
                    StationReturn.Data        = new object();
                }
                else if (result == 1)
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "Update fail Factorycode, Factoryname, Factoryaddress existed ";
                    StationReturn.Data        = new object();
                }
                else if (result == 2)
                {
                    StationReturn.Status      = StationReturnStatusValue.Pass;
                    StationReturn.MessageCode = "Update success";
                    StationReturn.Data        = new object();
                }
                else if (result == 3)
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "Update fail";
                    StationReturn.Data        = new object();
                }
                else if (result == 4)
                {
                    StationReturn.Status      = StationReturnStatusValue.Fail;
                    StationReturn.MessageCode = "MES00000037";
                    StationReturn.Data        = new object();
                }
                if (oleDB != null)
                {
                    this.DBPools["SFCDB"].Return(oleDB);
                }
            }
            catch (Exception e)
            {
                StationReturn.Status      = StationReturnStatusValue.Fail;
                StationReturn.MessageCode = "MES00000037";
                StationReturn.MessagePara.Add(e.Message);
                StationReturn.Data = e.Message;

                if (oleDB != null)
                {
                    this.DBPools["SFCDB"].Return(oleDB);
                }
            }
        }
Example #5
0
 public T_C_KP_Replace(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_C_KP_Replace);
     TableName = "C_KP_Replace".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }
Example #6
0
 public T_R_SN_STATION_DETAIL(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_R_SN_STATION_DETAIL);
     TableName = "R_SN_STATION_DETAIL".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }
Example #7
0
 public T_R_TEST_DETAIL_VERTIV(string _TableName, OleExec DB, DB_TYPE_ENUM DBType) : base(_TableName, DB, DBType)
 {
 }
        public override void Run()
        {
            DateTime  dateFrom     = DateTime.Now;
            DateTime  dateTO       = DateTime.Now;
            DataTable dtFailCode   = new DataTable();
            DataTable loadTable    = new DataTable();
            DataTable linkTable    = new DataTable();
            DataRow   loadTitleRow = null;
            DataRow   loadDataRow  = null;
            DataRow   linkTitleRow = null;
            DataRow   linkDataRow  = null;
            string    failCode     = "";
            int       col          = 0;
            string    sqlRun       = "";

            if (SelectBy.Value.ToString() == "日期段" && !string.IsNullOrEmpty(SelectBy.Value.ToString()))
            {
                dateFrom = (DateTime)startTime.Value;
                dateTO   = (DateTime)endTime.Value;
            }
            else if (SelectBy.Value.ToString() == "月" && !string.IsNullOrEmpty(SelectBy.Value.ToString()))
            {
                if (string.IsNullOrEmpty(month.Value.ToString()))
                {
                    throw new Exception("Please input month");
                }
                dateFrom = DateTime.Parse(DateTime.Now.Year.ToString() + "-" + month.Value + "-" + "01 08:00:00");
                dateTO   = DateTime.Parse(DateTime.Now.Year.ToString() + "-" + month.Value + "-" + "01 08:00:00").AddMonths(1);
            }
            else if (SelectBy.Value.ToString() == "周" && !string.IsNullOrEmpty(SelectBy.Value.ToString()))
            {
                if (string.IsNullOrEmpty(week.Value.ToString()))
                {
                    throw new Exception("Please input week");
                }
                dateFrom = ConverDate.GetWeekStartDate(Convert.ToInt32(week.Value.ToString()));
                dateTO   = dateFrom.AddDays(7);
            }
            sqlRun = $@"select c.fail_code, d.sku_name , count(1) count
                          from r_repair_main a
                         inner join r_sn b
                            on a.sn = b.sn
                         inner join r_repair_failcode c
                            on c.sn = a.sn
                           and c.create_time = a.create_time
                         inner join c_sku d
                            on d.skuno = b.skuno
                         where a.closed_flag = 1
                           and a.edit_time between
                               to_date('{dateFrom.ToString("yyyy-MM-dd HH-mm-ss")}', 'yyyy-MM-dd hh24:mi:ss') and
                               to_date('{dateTO.ToString("yyyy-MM-dd HH-mm-ss")}', 'yyyy-MM-dd hh24:mi:ss')
                           and c.fail_category = 'DEFECT'
                         group by d.sku_name, c.fail_code
                         order by c.fail_code, count(1) desc";

            #region 原報表查詢語句
            //select c.failcode, d.codename , count(1) count
            //  from sfcrepairmain A
            // inner join mfworkstatus B
            //    on a.sysserialno = b.sysserialno
            // inner join sfcrepairfailcode C
            //    on C.SYSSERIALNO = a.sysserialno
            //   and c.createdate = a.createdate
            // inner join sfccodelike d
            //    on d.skuno = b.skuno
            // where a.repaired = 1
            //   and a.lasteditdt between
            //       to_date('', 'yyyy-MM-dd hh24:mi:ss') and
            //       to_date('', 'yyyy-MM-dd hh24:mi:ss')
            //   and C.failcategory = 'DEFECT'
            // group by d.codename, c.failcode
            // order by c.failcode, count(1) desc
            #endregion

            RunSqls.Add(sqlRun);
            OleExec SFCDB = DBPools["SFCDB"].Borrow();
            try
            {
                dtFailCode = SFCDB.RunSelect(sqlRun).Tables[0];
                for (int top = 0; top <= 11; top++)
                {
                    if (top == 0)
                    {
                        loadTable.Columns.Add("FAIL_CODE");
                        linkTable.Columns.Add("FAIL_CODE");
                    }
                    else if (top == 1)
                    {
                        loadTable.Columns.Add("TOTAL");
                        linkTable.Columns.Add("TOTAL");
                    }
                    else
                    {
                        loadTable.Columns.Add("TOP" + (top - 1).ToString());
                        linkTable.Columns.Add("TOP" + (top - 1).ToString());
                    }
                }

                for (int i = 0; i < dtFailCode.Rows.Count; i++)
                {
                    if (failCode != dtFailCode.Rows[i]["fail_code"].ToString())
                    {
                        failCode     = dtFailCode.Rows[i]["fail_code"].ToString();
                        loadTitleRow = loadTable.NewRow();
                        loadDataRow  = loadTable.NewRow();
                        linkTitleRow = linkTable.NewRow();
                        linkDataRow  = linkTable.NewRow();
                        loadTitleRow["FAIL_CODE"] = failCode;
                        col = 0;
                        loadTable.Rows.Add(loadTitleRow);
                        loadTable.Rows.Add(loadDataRow);
                        linkTable.Rows.Add(linkTitleRow);
                        linkTable.Rows.Add(linkDataRow);
                        loadDataRow["TOTAL"]      = 0;
                        linkTitleRow["FAIL_CODE"] = "MESReport.BaseReport.RepairFailCodeDetail";
                    }
                    col++;
                    if (col > 10)
                    {
                        continue;
                    }
                    loadTitleRow[col + 1] = dtFailCode.Rows[i]["sku_name"].ToString();
                    loadDataRow[col + 1]  = dtFailCode.Rows[i]["count"].ToString();
                    loadDataRow["TOTAL"]  = (Int32.Parse(loadDataRow["TOTAL"].ToString())) + Int32.Parse(dtFailCode.Rows[i]["count"].ToString());
                }
                ReportTable reportTable = new ReportTable();
                reportTable.LoadData(loadTable, linkTable);
                reportTable.Tittle = "RepairTopByFailTable";
                Outputs.Add(reportTable);
                DBPools["SFCDB"].Return(SFCDB);
            }
            catch (Exception exception)
            {
                DBPools["SFCDB"].Return(SFCDB);
                throw exception;
            }
        }
Example #9
0
 public T_C_CODE_MAPPING(string _TableName, OleExec DB, DB_TYPE_ENUM DBType) : base(_TableName, DB, DBType)
 {
 }
Example #10
0
        public DataTable CheckPrivilegeID(string PRIVILEGE_ID, string PRIVILEGE_NAME, OleExec DB, DB_TYPE_ENUM DBType)
        {
            string    strSql = $@" select * from c_privilege where PRIVILEGE_ID='{PRIVILEGE_ID}' or PRIVILEGE_NAME='{PRIVILEGE_NAME}' ";
            DataTable res    = DB.ExecSelect(strSql).Tables[0];

            return(res);
        }
Example #11
0
        public List <DataRow> C_Product_Config_GetBYSkuAndVerson(string skuno, string skuverson, OleExec DB)
        {
            List <DataRow> datarowlist = new List <DataRow>();
            string         strSql      = $@"select * from mes1.c_product_config where p_no=:sku and p_version=:skuverson";

            OleDbParameter[] paramet = new OleDbParameter[] {
                new OleDbParameter(":sku", skuno),
                new OleDbParameter(":skuverson", skuverson)
            };
            DataTable res = DB.ExecuteDataTable(strSql, CommandType.Text, paramet);

            if (res.Rows.Count > 0)
            {
                for (int i = 0; i < res.Rows.Count; i++)
                {
                    datarowlist.Add(res.Rows[i]);
                }
            }
            return(datarowlist);
        }
Example #12
0
 public T_C_PRIVILEGE(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_C_PRIVILEGE);
     TableName = "C_PRIVILEGE".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }
Example #13
0
 public T_C_PRIVILEGE(string _TableName, OleExec DB, DB_TYPE_ENUM DBType) : base(_TableName, DB, DBType)
 {
 }
Example #14
0
 public T_C_MODEL_TYPE(string _TableName, OleExec DB, DB_TYPE_ENUM DBType) : base(_TableName, DB, DBType)
 {
 }
Example #15
0
 public static string GetNextSN(string RuleName, OleExec DB)
 {
     return(GetNextSN(RuleName, DB, ""));
 }
Example #16
0
 public T_C_CODE_MAPPING(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_C_CODE_MAPPING);
     TableName = "C_CODE_MAPPING".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }
Example #17
0
        public static string GetNextSN(string RuleName, OleExec DB, string WO)
        {
            Row_C_SN_RULE root = null;
            List <Row_C_SN_RULE_DETAIL> detail = null;

            if (_Root.ContainsKey(RuleName))
            {
                root = _Root[RuleName];
            }
            else
            {
                T_C_SN_RULE TCSR = new T_C_SN_RULE(DB, MESDataObject.DB_TYPE_ENUM.Oracle);
                root = TCSR.GetDataByName(RuleName, DB);
                _Root.Add(RuleName, root);
            }

            if (_Detail.ContainsKey(RuleName))
            {
                detail = _Detail[RuleName];
            }
            else
            {
                T_C_SN_RULE_DETAIL TCSRD = new T_C_SN_RULE_DETAIL(DB, MESDataObject.DB_TYPE_ENUM.Oracle);
                detail = TCSRD.GetDataByRuleID(root.ID, DB);
                _Detail.Add(RuleName, detail);
            }
            string SN        = "";
            bool   ResetFlag = false;

            for (int i = 0; i < detail.Count; i++)
            {
                detail[i].LockMe(DB);
                if (detail[i].INPUTTYPE == "PREFIX")
                {
                    SN += detail[i].CURVALUE;
                }
                else if (detail[i].INPUTTYPE == "YYYY" || detail[i].INPUTTYPE == "MM" || detail[i].INPUTTYPE == "DD")
                {
                    string codeType = detail[i].CODETYPE;
                    List <Row_C_CODE_MAPPING> CodeMapping = null;
                    if (_CodeMapping.ContainsKey(codeType))
                    {
                        CodeMapping = _CodeMapping[codeType];
                    }
                    else
                    {
                        T_C_CODE_MAPPING TCCM = new T_C_CODE_MAPPING(DB, DB_TYPE_ENUM.Oracle);
                        CodeMapping = TCCM.GetDataByName(codeType, DB);
                        if (CodeMapping != null)
                        {
                            _CodeMapping.Add(codeType, CodeMapping);
                        }
                    }
                    string VALUE = null;
                    switch (detail[i].INPUTTYPE)
                    {
                    case "YYYY":
                        VALUE = DateTime.Now.Year.ToString();
                        break;

                    case "MM":
                        VALUE = DateTime.Now.Month.ToString();
                        break;

                    case "DD":
                        VALUE = DateTime.Now.Day.ToString();
                        break;
                    }


                    Row_C_CODE_MAPPING TAG = CodeMapping.Find(T => T.VALUE == VALUE);
                    if (detail[i].CURVALUE != TAG.CODEVALUE)
                    {
                        detail[i].CURVALUE = TAG.CODEVALUE;
                        if (detail[i].RESETSN_FLAG == 1)
                        {
                            ResetFlag = true;
                        }
                    }
                    SN += detail[i].CURVALUE;
                }
                else if (detail[i].INPUTTYPE == "WK")
                {
                    string wk        = detail[i].CODETYPE;
                    string sql       = $@"SELECT TO_CHAR(SYSDATE,'{wk}') FROM DUAL";
                    string currentWK = (string)DB.ExecSelectOneValue(sql);
                    SN += currentWK;
                }
                else if (detail[i].INPUTTYPE == "SQL")
                {
                    string sql = detail[i].CURVALUE;
                    sql = sql.Replace("{WO}", WO);
                    string value = (string)DB.ExecSelectOneValue(sql);
                    SN += value;
                }
                else if (detail[i].INPUTTYPE == "SN")
                {
                    if (ResetFlag)
                    {
                        detail[i].VALUE10 = detail[i].RESETVALUE;
                    }
                    string codeType = detail[i].CODETYPE;
                    List <Row_C_CODE_MAPPING> CodeMapping = null;
                    if (_CodeMapping.ContainsKey(codeType))
                    {
                        CodeMapping = _CodeMapping[codeType];
                    }
                    else
                    {
                        T_C_CODE_MAPPING TCCM = new T_C_CODE_MAPPING(DB, DB_TYPE_ENUM.Oracle);
                        CodeMapping = TCCM.GetDataByName(codeType, DB);
                        if (CodeMapping != null)
                        {
                            _CodeMapping.Add(codeType, CodeMapping);
                        }
                    }
                    int curValue = int.Parse(detail[i].VALUE10);
                    curValue++;
                    detail[i].VALUE10 = curValue.ToString();
                    int    T  = CodeMapping.Count;
                    string sn = "";

                    while (curValue / T != 0)
                    {
                        int R = curValue % T;
                        sn       = CodeMapping[R].CODEVALUE + sn;
                        curValue = curValue / T;
                    }
                    sn = CodeMapping[curValue].CODEVALUE + sn;
                    if (sn.Length < detail[i].CURVALUE.Length)
                    {
                        for (int k = 0; detail[i].CURVALUE.Length != sn.Length; k++)
                        {
                            sn = "0" + sn;
                        }
                    }
                    if (sn.Length > detail[i].CURVALUE.Length)
                    {
                        throw new Exception("生成的SN超過最大值!");
                    }

                    detail[i].CURVALUE = sn;
                    SN += detail[i].CURVALUE;
                }
                int T1 = 0;
                detail[i].EDIT_TIME = DateTime.Now;
                string ret = DB.ExecSQL(detail[i].GetUpdateString(DB_TYPE_ENUM.Oracle));
                if (!Int32.TryParse(ret, out T1))
                {
                    throw new Exception("更新序列值出錯!" + ret);
                }
            }
            int T2 = 0;

            root.CURVALUE = SN;
            string ret1 = DB.ExecSQL(root.GetUpdateString(DB_TYPE_ENUM.Oracle));

            if (!Int32.TryParse(ret1, out T2))
            {
                throw new Exception("更新序列值出錯!" + ret1);
            }
            return(SN);
        }
Example #18
0
        public void QueryAllWoRange(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn)
        {
            OleExec sfcdb = this.DBPools["SFCDB"].Borrow();

            try
            {
                string          searchType     = Data["SearchType"].ToString();
                string          strWorkOrder   = Data["WorkorderNo"] == null?"":Data["WorkorderNo"].ToString().Trim().ToUpper();
                int             intCurrentPage = Convert.ToInt32(Data["PageNumber"] == null?"1": Data["PageNumber"].ToString().Trim());
                int             intPageSize    = Convert.ToInt32(Data["PageSize"] == null?"20": Data["PageSize"].ToString().Trim());
                int             intTotal       = 0;
                WoRangeMainPage WoRangePage    = new WoRangeMainPage();
                sfcdb = this.DBPools["SFCDB"].Borrow();
                T_R_WO_REGION      TC_RANGE       = new T_R_WO_REGION(sfcdb, MESDataObject.DB_TYPE_ENUM.Oracle);
                List <R_WO_REGION> getWoRangeData = new List <R_WO_REGION>();
                if (searchType == "WO")
                {
                    getWoRangeData = TC_RANGE.ShowAllDataAndShowPage(sfcdb, strWorkOrder, intCurrentPage, intPageSize, out intTotal);
                }
                else
                {
                    getWoRangeData = TC_RANGE.ShowWORegionBySN(strWorkOrder, sfcdb);
                    intTotal       = getWoRangeData.Count;
                }
                if (getWoRangeData != null && getWoRangeData.Count > 0)
                {
                    if (WoRangePage.WoRangeData == null)
                    {
                        WoRangePage.WoRangeData = new List <R_WO_REGION>();
                    }

                    foreach (var item in getWoRangeData)
                    {
                        WoRangePage.WoRangeData.Add(item);
                    }
                }

                WoRangePage.Total       = intTotal;
                WoRangePage.CurrentPage = intCurrentPage;
                WoRangePage.PageSize    = intPageSize;
                if (intPageSize != 0)
                {
                    double doubleTotal = intTotal;
                    double Countpage   = doubleTotal / intPageSize;
                    WoRangePage.CountPage = Convert.ToInt32(Math.Ceiling(Countpage));
                }
                StationReturn.Data        = WoRangePage;
                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);
            }
            //try
            //{
            //    T_R_WO_REGION rWo = new T_R_WO_REGION(sfcdb, DB_TYPE_ENUM.Oracle);
            //    List<R_WO_REGION> list = new List<R_WO_REGION>();
            //    string r = Data["PageRow"].ToString() == "" ? "10" : Data["PageRow"].ToString();
            //    string i = Data["PageCount"].ToString() == "" ? "1" : Data["PageCount"].ToString();
            //    int PageRow = Convert.ToInt32(r == "0" ? "10" : r);
            //    int PageCount = Convert.ToInt32(i == "0" ? "1" : i);
            //    int MaxPage;
            //    try
            //    {
            //        MaxPage = rWo.CheckWoRangeMaxPage(PageRow, sfcdb);
            //        if (MaxPage >= PageCount)
            //        {
            //            list = rWo.ShowAllDataAndShowPage(PageRow, PageCount, sfcdb);
            //            if (list.Count > 0)
            //            {
            //                StationReturn.Data = list;
            //                StationReturn.Status = StationReturnStatusValue.Pass;
            //                StationReturn.MessageCode = "MES00000001";
            //                this.DBPools["SFCDB"].Return(sfcdb);
            //            }
            //            else
            //            {
            //                StationReturn.Status = StationReturnStatusValue.Fail;
            //                StationReturn.MessageCode = "MES00000034";
            //                StationReturn.Data = "";
            //                this.DBPools["SFCDB"].Return(sfcdb);
            //            }
            //        }
            //        else
            //        {
            //            StationReturn.Status = StationReturnStatusValue.Fail;
            //            StationReturn.MessageCode = "MES00000018";
            //            StationReturn.MessagePara.Add(PageCount);
            //            StationReturn.MessagePara.Add(MaxPage);
            //            this.DBPools["SFCDB"].Return(sfcdb);
            //        }

            //    }
            //    catch (Exception e)
            //    {
            //        this.DBPools["SFCDB"].Return(sfcdb);
            //        throw e;
            //    }

            //}
            //catch (Exception e)
            //{
            //    this.DBPools["SFCDB"].Return(sfcdb);
            //    throw e;
            //}
        }
Example #19
0
        public int GetCountByWOAndStationNotContailFail(string strWo, string stationname, OleExec DB)
        {
            string strSql = $@"select count(distinct m.sn) from r_sn_station_detail m  where workorderno=:strWo and station_name=:stationname and REPAIR_FAILED_FLAG<>1";

            OleDbParameter[] paramet = new OleDbParameter[2];
            paramet[0] = new OleDbParameter(":strWo", strWo);
            paramet[1] = new OleDbParameter(":stationname", stationname);
            int result = Convert.ToInt32(DB.ExecuteScalar(strSql, CommandType.Text, paramet));

            return(result);
        }
Example #20
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;
            }
        }
Example #21
0
 public T_R_TEST_DETAIL_VERTIV(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_R_TEST_DETAIL_VERTIV);
     TableName = "R_TEST_DETAIL_VERTIV".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }
Example #22
0
        public MESStationReturn InitStation(MESPubLab.MESStation.MESStationReturn StationReturn, StationPara sp)
        {
            MESReturnMessage.SetSFCDBPool(this.DBPools["SFCDB"]);
            //string Token = requestValue["Token"]?.ToString();
            OleExec SFCDB = this.DBPools["SFCDB"].Borrow();

            //OleExec SFCDB = new OleExec("VERTIVTESTDB", true);
            try
            {
                MESStationBase retStation = retStation = new MESStationBase();

                retStation.StationOutputs.Clear();
                retStation.StationMessages.Clear();
                retStation.StationSession.Clear();
                retStation.DisplayOutput.Clear();
                retStation.Inputs.Clear();
                retStation.IP = this.IP;

                //add by 張官軍 2018-1-4 不添加的話,後面獲取該信息的時候回傳空
                User User = new User();
                User.EMP_NO          = "Webservice";
                User.EMP_NAME        = "Webservice";
                retStation.LoginUser = User;
                //給工站對象賦公共值
                retStation.Init(sp.Station, sp.Line, sp.Bu, SFCDB);
                MESPubLab.MESStation.MESReturnView.Station.CallStationReturn ret = new MESPubLab.MESStation.MESReturnView.Station.CallStationReturn();
                ret.Station = retStation;
                //用以執行InitInput.Run()  2018/01/30 SDL
                retStation.SFCDB = SFCDB;
                //調用工站初始配置
                MESStationInput InitInput = retStation.Inputs.Find(t => t.Name == "StationINIT");
                if (InitInput != null)
                {
                    InitInput.Run();
                    retStation.Inputs.Remove(InitInput);
                }
                if (retStation.FailStation != null)
                {
                    InitInput = null;
                    InitInput = retStation.FailStation.Inputs.Find(t => t.Name == "StationINIT");
                    if (InitInput != null)
                    {
                        InitInput.Run();
                        retStation.FailStation.Inputs.Remove(InitInput);
                    }
                }

                StationReturn.Data    = ret;
                StationReturn.Status  = StationReturnStatusValue.Pass;
                StationReturn.Message = "Station '" + sp.Station + "'Init successfull.";
            }
            catch (Exception ee)
            {
                StationReturn.Data    = null;
                StationReturn.Status  = StationReturnStatusValue.Fail;
                StationReturn.Message = "Station '" + sp.Station + "'Init Fail! " + ee.Message;
                throw ee;
            }
            finally
            {
                this.DBPools["SFCDB"].Return(SFCDB);
            }
            return(StationReturn);
        }
Example #23
0
 public T_C_KP_Replace(string _TableName, OleExec DB, DB_TYPE_ENUM DBType) : base(_TableName, DB, DBType)
 {
 }
Example #24
0
        public void StationInput(MESStationReturn StationReturn, string CurrScanType, string InputName)
        {
            MESStationInput CurrInput = null;
            OleExec         SFCDB     = this.DBPools["SFCDB"].Borrow();
            OleExec         APDB      = this.DBPools["APDB"].Borrow();

            MESPubLab.MESStation.MESReturnView.Station.CallStationReturn ret = (MESPubLab.MESStation.MESReturnView.Station.CallStationReturn)StationReturn.Data;
            MESStationBase Station = ret.Station;

            Station.StationMessages.Clear();
            Station.NextInput = null;
            Station.SFCDB     = SFCDB;
            Station.APDB      = APDB;
            Station.ScanKP.Clear();
            try
            {
                CurrInput = Station.Inputs.Find(t => t.DisplayName == InputName);

                //if (Station.FailStation != null)
                //{
                //    //2018/02/05 肖倫 failStation的db以及dbPool為空的情況 Begin
                //    Station.FailStation.DBS = Station.DBS;
                //    Station.FailStation.SFCDB = SFCDB;
                //    Station.FailStation.APDB = APDB;
                //    //2018/02/05 肖倫 failStation的db以及dbPool為空的情況 End
                //    for (int i = 0; i < Data["Station"]["FailStation"]["Inputs"].Count(); i++)
                //    {

                //        JToken rinput = Data["Station"]["FailStation"]["Inputs"][i];
                //        MESStationInput input = Station.FailStation.Inputs.Find(t => t.DisplayName == rinput["DisplayName"].ToString());
                //        if (input == null)
                //        {
                //            continue;
                //        }
                //        input.Value = rinput["Value"].ToString();
                //        if (Data["ScanType"].ToString() == "Fail" && input.DisplayName == RCurrInput["DisplayName"].ToString())
                //        {
                //            CurrInput = input;
                //        }
                //    }
                //}

                ret          = new MESPubLab.MESStation.MESReturnView.Station.CallStationReturn();
                ret.ScanType = CurrScanType;
                //add by ZGJ 2018-03-19 清空之前的輸入動作執行後輸出到前台的消息
                CurrInput.Station.StationMessages.Clear();
                //調用處理邏輯
                CurrInput.Run();

                Station.MakeOutput();

                if (ret.ScanType.ToUpper() == "PASS")
                {
                    if (Station.NextInput == null)
                    {
                        for (int i = 0; i < Station.Inputs.Count; i++)
                        {
                            if (Station.Inputs[i] == CurrInput)
                            {
                                if (i != Station.Inputs.Count - 1)
                                {
                                    ret.NextInput = Station.Inputs[i + 1];
                                }
                                else
                                {
                                    ret.NextInput = Station.Inputs[0];
                                }
                            }
                        }
                    }
                    else
                    {
                        ret.NextInput = Station.NextInput;
                    }
                }
                else if (Station.FailStation != null)
                {
                    if (Station.FailStation.NextInput == null)
                    {
                        for (int i = 0; i < Station.FailStation.Inputs.Count; i++)
                        {
                            if (Station.FailStation.Inputs[i] == CurrInput)
                            {
                                if (i != Station.FailStation.Inputs.Count - 1)
                                {
                                    ret.NextInput = Station.FailStation.Inputs[i + 1];
                                }
                                else
                                {
                                    ret.NextInput = Station.FailStation.Inputs[0];
                                }
                            }
                        }
                    }
                    else
                    {
                        ret.NextInput = Station.FailStation.NextInput;
                    }
                }


                //2018/02/05 肖倫 failStation的db以及dbPool為空的情況 Begin
                if (Station.FailStation != null)
                {
                    Station.FailStation.DBS   = null;
                    Station.FailStation.SFCDB = null;
                }

                Station.SFCDB = null;
                Station.APDB  = null;

                ret.Station           = Station;
                StationReturn.Data    = ret;
                StationReturn.Status  = StationReturnStatusValue.Pass;
                StationReturn.Message = "Station '" + Station.DisplayName + "' Input successfull.";
            }
            catch (Exception ee)
            {
                Station.MakeOutput();
                Station.SFCDB = null;
                Station.APDB  = null;
                ret           = new MESPubLab.MESStation.MESReturnView.Station.CallStationReturn();
                ret.Station   = Station;
                Station.StationMessages.Add(new StationMessage()
                {
                    Message = ee.Message, State = StationMessageState.Fail
                });
                Station.NextInput     = CurrInput;
                StationReturn.Data    = ret;
                StationReturn.Status  = StationReturnStatusValue.Pass;
                StationReturn.Message = "Station '" + Station.DisplayName + "' Input not successfull.";
            }
            finally
            {
                this.DBPools["SFCDB"].Return(SFCDB);
                this.DBPools["SFCDB"].Return(APDB);
            }
        }
Example #25
0
 public T_R_Input_Action(string _TableName, OleExec DB, DB_TYPE_ENUM DBType) : base(_TableName, DB, DBType)
 {
 }
Example #26
0
 public T_R_BACKFLUSH_CHECK(string _TableName, OleExec DB, DB_TYPE_ENUM DBType) : base(_TableName, DB, DBType)
 {
 }
Example #27
0
        public List <R_Input_Action> QueryInput(string ID, string InputID, string StationActionID, OleExec DB)
        {
            string                sql         = string.Empty;
            DataTable             dt          = new DataTable();
            List <R_Input_Action> inputaction = new List <R_Input_Action>();

            sql = $@"SELECT * FROM R_Input_Action where 1=1 ";
            if (ID != "")
            {
                sql = sql + $@" AND ID = '{ID}'";
            }
            if (InputID != "")
            {
                sql = sql + $@" AND INPUT_ID = '{InputID}'";
            }

            if (StationActionID != "")
            {
                sql = sql + $@" AND C_STATION_ACTION_ID = '{StationActionID}'";
            }
            dt = DB.ExecSelect(sql).Tables[0];
            foreach (DataRow dr in dt.Rows)
            {
                inputaction.Add(CreateInputActionClass(dr));
            }
            return(inputaction);
        }
Example #28
0
 public T_R_BACKFLUSH_CHECK(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_R_BACKFLUSH_CHECK);
     TableName = "R_BACKFLUSH_CHECK".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }
 public T_R_SN_STATION_DETAIL(string _TableName, OleExec DB, DB_TYPE_ENUM DBType) : base(_TableName, DB, DBType)
 {
 }
Example #30
0
 public T_H_WO_TEXT(OleExec DB, DB_TYPE_ENUM DBType)
 {
     RowType   = typeof(Row_H_WO_TEXT);
     TableName = "H_WO_TEXT".ToUpper();
     DataInfo  = GetDataObjectInfo(TableName, DB, DBType);
 }