Esempio n. 1
0
        /// <summary>
        /// 获取用于人工检查的在制品以及子在制品信息
        /// </summary>
        /// <param name="communityID">社区标识</param>
        /// <param name="wipIDCode">在制品标识</param>
        /// <param name="productLeaf">当前选中产品叶标识</param>
        /// <param name="workUnitLeaf">当前选中工位叶标识</param>
        /// <param name="isEnhanced">是否增强</param>
        /// <param name="sysLogID">系统登录标识</param>
        /// <returns>Inspecting</returns>
        public IRAPJsonResult mfn_GetInfo_WIPIDCode(
            int communityID,
            string wipIDCode,
            int productLeaf,
            int workUnitLeaf,
            bool isEnhanced,
            long sysLogID,
            out int errCode,
            out string errText)
        {
            string strProcedureName =
                string.Format(
                    "{0}.{1}",
                    className,
                    MethodBase.GetCurrentMethod().Name);

            WriteLog.Instance.WriteBeginSplitter(strProcedureName);
            try
            {
                Inspecting     inspectingObject = new Inspecting();
                IRAPJsonResult jsonResult       = ufn_GetInfo_WIPIDCode(
                    communityID,
                    wipIDCode,
                    productLeaf,
                    workUnitLeaf,
                    isEnhanced,
                    sysLogID,
                    out errCode,
                    out errText);
                if (errCode == 0)
                {
                    WIPIDCode wip = IRAPJsonSerializer.Deserializer(
                        jsonResult.Json,
                        typeof(WIPIDCode)) as WIPIDCode;
                    inspectingObject.MainWIPIDCode = wip;

                    if (wip.BarcodeStatus == 0 && wip.RoutingStatus == 0)
                    {
                        jsonResult = ufn_GetList_SubWIPIDCodes(
                            communityID,
                            wip.WIPCode,
                            productLeaf,
                            workUnitLeaf,
                            sysLogID,
                            out errCode,
                            out errText);
                        if (errCode == 0)
                        {
                            List <SubWIPIDCodeInfo> subWIPs = IRAPJsonSerializer.Deserializer(
                                jsonResult.Json,
                                typeof(List <SubWIPIDCodeInfo>)) as List <SubWIPIDCodeInfo>;
                            foreach (SubWIPIDCodeInfo subWIP in subWIPs)
                            {
                                inspectingObject.SubWIPIDCodes.Add(
                                    new SubWIPIDCodeInfo_Inspecting()
                                {
                                    Ordinal         = subWIP.Ordinal,
                                    T102LeafID      = subWIP.T102LeafID,
                                    ProductNo       = subWIP.ProductNo,
                                    SubWIPGroupID   = subWIP.SubWIPGroupID,
                                    SubWIPIDCode    = subWIP.SubWIPIDCode,
                                    Scrapped        = subWIP.Scrapped,
                                    PWOCategoryLeaf = subWIP.PWOCategoryLeaf,
                                });
                            }
                        }
                    }
                }

                return(Json(inspectingObject));
            }
            catch (Exception error)
            {
                errCode = 99000;
                errText = error.Message;
                WriteLog.Instance.Write(errText, strProcedureName);
                WriteLog.Instance.Write(error.StackTrace, strProcedureName);

                return(Json(new Inspecting()));
            }
            finally
            {
                WriteLog.Instance.WriteEndSplitter(strProcedureName);
            }
        }
Esempio n. 2
0
        private void edtWIPBarCode_Validating(object sender, CancelEventArgs e)
        {
            CleanFailureModes();

            if (Options.SelectStation == null)
            {
                XtraMessageBox.Show(
                    "未选择选项一!",
                    caption,
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                return;
            }
            if (Options.SelectProduct == null)
            {
                XtraMessageBox.Show(
                    "未选择选项二!",
                    caption,
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                return;
            }

            if (edtWIPBarCode.Text.Trim() != "")
            {
                string strProcedureName =
                    string.Format(
                        "{0}.{1}",
                        className,
                        MethodBase.GetCurrentMethod().Name);

                WriteLog.Instance.WriteBeginSplitter(strProcedureName);
                try
                {
                    int    errCode = 0;
                    string errText = "";

                    try
                    {
                        IRAPMESClient.Instance.ufn_GetInfo_WIPIDCode(
                            IRAPUser.Instance.CommunityID,
                            edtWIPBarCode.Text.Trim(),
                            Options.SelectProduct.T102LeafID,
                            Options.SelectStation.T107LeafID,
                            false,
                            IRAPUser.Instance.SysLogID,
                            ref wip,
                            out errCode,
                            out errText);
                    }
                    catch (Exception error)
                    {
                        errCode = -1;
                        errText = error.Message;
                    }
                    WriteLog.Instance.Write(
                        string.Format("({0}){1}", errCode, errText),
                        strProcedureName);
                    if (errCode != 0)
                    {
                        XtraMessageBox.Show(
                            errText,
                            caption,
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);

                        edtWIPBarCode.SelectAll();
                        e.Cancel = true;
                        return;
                    }
                    else
                    {
                        if (wip.BarcodeStatus != 0)
                        {
                            WriteLog.Instance.Write(wip.BarcodeStatusStr, strProcedureName);
                            XtraMessageBox.Show(
                                wip.BarcodeStatusStr,
                                caption,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);

                            edtWIPBarCode.SelectAll();
                            e.Cancel = true;
                            return;
                        }
                        else if (wip.RoutingStatus != 0)
                        {
                            WriteLog.Instance.Write(wip.RoutingStatusStr, strProcedureName);
                            XtraMessageBox.Show(
                                wip.RoutingStatusStr,
                                caption,
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);

                            edtWIPBarCode.SelectAll();
                            e.Cancel = true;
                            return;
                        }
                        else
                        {
                            WriteLog.Instance.Write(
                                string.Format(
                                    "得到产品标签:[{0}]",
                                    wip.WIPPattern),
                                strProcedureName);

                            GetFailureModes(wip.ProductLeaf, wip.WorkUnitLeaf);

                            e.Cancel = false;
                            return;
                        }
                    }
                }
                finally
                {
                    WriteLog.Instance.WriteEndSplitter(strProcedureName);
                }
            }
            else
            {
                wip      = new WIPIDCode();
                e.Cancel = false;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 解析WIPIDCode在当前工位上生产是否OK:
        /// ⒈ 路由是否停滞在本工位;
        /// ⒉ 产品是否当前选中产品;
        /// ⒊ 是否合法的在制品标识或在制品容器标识。
        /// </summary>
        /// <param name="communityID">社区标识</param>
        /// <param name="wipIDCode">在制品标识</param>
        /// <param name="productLeaf">当前选中产品叶标识</param>
        /// <param name="workUnitLeaf">当前选中工位叶标识</param>
        /// <param name="isEnhanced">是否增强</param>
        /// <param name="sysLogID">系统登录标识</param>
        /// <returns>List[WIPIDCode]</returns>
        public IRAPJsonResult ufn_GetInfo_WIPIDCode(
            int communityID,
            string wipIDCode,
            int productLeaf,
            int workUnitLeaf,
            bool isEnhanced,
            long sysLogID,
            out int errCode,
            out string errText)
        {
            string strProcedureName =
                string.Format(
                    "{0}.{1}",
                    className,
                    MethodBase.GetCurrentMethod().Name);

            WriteLog.Instance.WriteBeginSplitter(strProcedureName);
            try
            {
                WIPIDCode data = new WIPIDCode();

                #region 创建数据库调用参数组,并赋值
                IList <IDataParameter> paramList = new List <IDataParameter>();
                paramList.Add(new IRAPProcParameter("@CommunityID", DbType.Int32, communityID));
                paramList.Add(new IRAPProcParameter("@WIPIDCode", DbType.String, wipIDCode));
                paramList.Add(new IRAPProcParameter("@ProductLeaf", DbType.Int32, productLeaf));
                paramList.Add(new IRAPProcParameter("@WorkUnitLeaf", DbType.Int32, workUnitLeaf));
                paramList.Add(new IRAPProcParameter("@IsEnhanced", DbType.Boolean, isEnhanced));
                paramList.Add(new IRAPProcParameter("@SysLogID", DbType.Int64, sysLogID));
                WriteLog.Instance.Write(
                    string.Format(
                        "调用函数 IRAPMES..ufn_GetInfo_WIPIDCode,参数:CommunityID={0}|" +
                        "WIPIDCode={1}|ProductLeaf={2}|WorkUnitLeaf={3}|IsEnhanced={4}|" +
                        "SysLogID={5}",
                        communityID, wipIDCode, productLeaf, workUnitLeaf, isEnhanced,
                        sysLogID),
                    strProcedureName);
                #endregion

                #region 执行数据库函数或存储过程
                try
                {
                    using (IRAPSQLConnection conn = new IRAPSQLConnection())
                    {
                        string strSQL = "SELECT * " +
                                        "FROM IRAPMES..ufn_GetInfo_WIPIDCode(" +
                                        "@CommunityID, @WIPIDCode, @ProductLeaf, " +
                                        "@WorkUnitLeaf, @IsEnhanced, @SysLogID)";
                        WriteLog.Instance.Write(strSQL, strProcedureName);

                        IList <WIPIDCode> lstDatas =
                            conn.CallTableFunc <WIPIDCode>(strSQL, paramList);
                        if (lstDatas.Count > 0)
                        {
                            data    = lstDatas[0].Clone();
                            errCode = 0;
                            errText = "调用成功!";
                        }
                        else
                        {
                            errCode = 99001;
                            errText = string.Format("在制品标识[{0}]在系统中不存在", wipIDCode);
                        }
                        WriteLog.Instance.Write(errText, strProcedureName);
                    }
                }
                catch (Exception error)
                {
                    errCode = 99000;
                    errText =
                        string.Format(
                            "调用 IRAPMES..ufn_GetInfo_WIPIDCode 函数发生异常:{0}",
                            error.Message);
                    WriteLog.Instance.Write(errText, strProcedureName);
                    WriteLog.Instance.Write(error.StackTrace, strProcedureName);
                }
                #endregion

                return(Json(data));
            }
            finally
            {
                WriteLog.Instance.WriteEndSplitter(strProcedureName);
            }
        }