/// <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); } }
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; } }
/// <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); } }