/// <summary> /// 获取指定产品指定工位选配零件信息 /// </summary> /// <param name="info">包含产品名称、工位号的输入参数</param> public Socket_FittingAccessoryInfo ReceiveReadChoseMatchInfo(string info) { string[] data = info.Split(new char[] { ',' }); string productName = data[0]; string workBench = data[1]; Socket_FittingAccessoryInfo fittingAccessoryInfo = new Socket_FittingAccessoryInfo(); IAssemblingBom server = ServerModuleFactory.GetServerModule <IAssemblingBom>(); // 获取指定工位所有装配信息,包含多种产品 IQueryable <View_P_AssemblingBom> queryResult = server.GetInfoOfWorkBench(workBench); List <View_P_AssemblingBom> choseMatchParts = (from r in queryResult where r.产品名称 == productName && r.是否选配零件 select r).ToList(); if (choseMatchParts == null || choseMatchParts.Count == 0) { fittingAccessoryInfo.OperateState = Socket_FittingAccessoryInfo.OperateStateEnum.该工位无选配零件; return(fittingAccessoryInfo); } fittingAccessoryInfo.ParentCode = choseMatchParts[0].父总成编码; fittingAccessoryInfo.GoodsCode = choseMatchParts[0].零件编码; fittingAccessoryInfo.GoodsName = choseMatchParts[0].零件名称; fittingAccessoryInfo.Spec = choseMatchParts[0].规格; fittingAccessoryInfo.Counts = choseMatchParts[0].装配数量; fittingAccessoryInfo.AssemblyFlag = Convert.ToInt32(choseMatchParts[0].是否总成); DataTable table; string error; if (!m_choseConfectServer.GetAccessoryChoseConfectInfo(choseMatchParts[0].零件编码, "", out table, out error)) { if (error.Contains(Socket_FittingAccessoryInfo.OperateStateEnum.获取选配信息失败.ToString())) { fittingAccessoryInfo.OperateState = Socket_FittingAccessoryInfo.OperateStateEnum.获取选配信息失败; } else { fittingAccessoryInfo.OperateState = Socket_FittingAccessoryInfo.OperateStateEnum.该零件非选配零件; } } else { fittingAccessoryInfo.ChoseMatchInfo = BuildChoseMatchInfoDic(table); fittingAccessoryInfo.OperateState = Socket_FittingAccessoryInfo.OperateStateEnum.操作成功; } return(fittingAccessoryInfo); }
/// <summary> /// 获取指定工位要装配的产品信息 /// </summary> /// <param name="workBench">工位信息</param> /// <returns>返回获取到的产品信息</returns> public string GetProductInfo(string workBench) { try { if (m_dicProductInfoMapping.Count == 0) { GenerateProductInfoMapping(); } if (m_dicVirtualPartMapping.Count == 0) { GeneratePartMapping(); } IAssemblingBom server = ServerModuleFactory.GetServerModule <IAssemblingBom>(); // 获取指定工位所有装配信息,包含多种产品 IQueryable <View_P_AssemblingBom> queryResult = server.GetInfoOfWorkBench(workBench); // 提取指定工位所属的产品(哪些产品可以在此工位上装配零件) string[] productNames = (from r in queryResult select r.产品名称).Distinct().ToArray(); StringBuilder sb = new StringBuilder(); int index = 0; foreach (var name in productNames) { if (index++ == 0) { sb.AppendFormat("{0}_{1}", name, m_dicProductInfoMapping[name]); } else { sb.AppendFormat(",{0}_{1}", name, m_dicProductInfoMapping[name]); } } return(sb.ToString()); } catch (Exception exce) { Console.WriteLine(exce.Message); return(null); } }
/// <summary> /// 修改工位 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUpdateWorkbench_Click(object sender, EventArgs e) { if (dgvWorkbench.CurrentRow == null) { MessageDialog.ShowPromptMessage("请选择要修改的行后再进行此操作"); return; } txtWorkbench.Text = txtWorkbench.Text.Trim(); if (GlobalObject.GeneralFunction.IsNullOrEmpty(txtWorkbench.Text)) { MessageDialog.ShowPromptMessage("工位号不允许为空"); return; } // 装配BOM服务接口 IAssemblingBom assemblingBomService = PMS_ServerFactory.GetServerModule <IAssemblingBom>(); if (assemblingBomService.IsExistsWorkbench(txtWorkbench.Text)) { MessageDialog.ShowPromptMessage("该工位已经使用, 不允许进行修改"); return; } IQueryable <View_P_Workbench> result = null; if (m_workbenchService.Update(dgvWorkbench.CurrentRow.Cells["工位"].Value.ToString(), txtWorkbench.Text, txtWorkbenchRemark.Text.Trim(), out result, out m_error)) { MessageDialog.ShowPromptMessage("修改成功"); dgvWorkbench.DataSource = result; } else { MessageDialog.ShowErrorMessage(m_error); } }
/// <summary> /// 获取服务组件 /// </summary> /// <returns>返回组件接口</returns> public static T GetServerModule <T>() { string name = typeof(T).ToString(); m_hashTable = new Hashtable(); //if (m_hashTable.ContainsKey(name)) //{ // return (T)m_hashTable[name]; //} if (typeof(T) == typeof(IProviderServer)) { IProviderServer serverModule = new ProviderServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IAccessoryDutyInfoManageServer)) { IAccessoryDutyInfoManageServer serverModule = new AccessoryDutyInfoManageServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IDepartmentServer)) { IDepartmentServer serverModule = new DepartmentServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialTypeServer)) { IMaterialTypeServer serverModule = new MaterialTypeServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IStoreServer)) { IStoreServer serverModule = new StoreServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ICheckOutInDepotServer)) { ICheckOutInDepotServer serverModule = new CheckOutInDepotServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IUnitServer)) { IUnitServer serverModule = new UnitServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IClientServer)) { IClientServer serverModule = new ClientServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductListServer)) { IProductListServer serverModule = new ProductListServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IBasicGoodsServer)) { IBasicGoodsServer serverModule = SCM_Level01_ServerFactory.GetServerModule <IBasicGoodsServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IAssemblyInfoServer)) { IAssemblyInfoServer serverModule = PMS_ServerFactory.GetServerModule <IAssemblyInfoServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IBarCodeServer)) { IBarCodeServer serverModule = BasicServerFactory.GetServerModule <IBarCodeServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IBomServer)) { IBomServer serverModule = PMS_ServerFactory.GetServerModule <IBomServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IBomMappingServer)) { IBomMappingServer serverModule = PMS_ServerFactory.GetServerModule <IBomMappingServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IAssemblingBom)) { IAssemblingBom serverModule = PMS_ServerFactory.GetServerModule <IAssemblingBom>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IElectronFileServer)) { IElectronFileServer serverModule = PMS_ServerFactory.GetServerModule <IElectronFileServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IChoseConfectServer)) { IChoseConfectServer serverModule = PMS_ServerFactory.GetServerModule <IChoseConfectServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IWorkbenchService)) { IWorkbenchService serverModule = PMS_ServerFactory.GetServerModule <IWorkbenchService>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IGoodsGradeServer)) { IGoodsGradeServer serverModule = new GoodsGradeServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IBargainInfoServer)) { IBargainInfoServer serverModule = new BargainInfoServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IBargainGoodsServer)) { IBargainGoodsServer serverModule = new BargainGoodsServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IOrderFormInfoServer)) { IOrderFormInfoServer serverModule = new OrderFormInfoServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IOrderFormGoodsServer)) { IOrderFormGoodsServer serverModule = new OrderFormGoodsServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IOrdinaryInDepotBillServer)) { IOrdinaryInDepotBillServer serverModule = new OrdinaryInDepotBillServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IOrdinaryInDepotGoodsBill)) { IOrdinaryInDepotGoodsBill serverModule = new OrdinaryInDepotGoodsBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductInfoServer)) { IProductInfoServer serverModule = PMS_ServerFactory.GetServerModule <IProductInfoServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IBillTypeServer)) { IBillTypeServer serverModule = BasicServerFactory.GetServerModule <IBillTypeServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IAssignBillNoServer)) { IAssignBillNoServer serverModule = BasicServerFactory.GetServerModule <IAssignBillNoServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialRequisitionServer)) { IMaterialRequisitionServer serverModule = new MaterialRequisitionServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IPersonnelInfoServer)) { IPersonnelInfoServer serverModule = SCM_Level01_ServerFactory.GetServerModule <IPersonnelInfoServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialRequisitionGoodsServer)) { IMaterialRequisitionGoodsServer serverModule = new MaterialRequisitionGoodsServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IDeclareWastrelType)) { IDeclareWastrelType serverModule = new DeclareWastrelType(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IScrapBillServer)) { IScrapBillServer serverModule = new ScrapBillServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IScrapGoodsServer)) { IScrapGoodsServer serverModule = new ScrapGoodsServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialRequisitionPurposeServer)) { IMaterialRequisitionPurposeServer serverModule = new MaterialRequisitionPurposeServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IFieldWidthServer)) { IFieldWidthServer serverModule = new FieldWidthServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IHomemadePartInDepotServer)) { IHomemadePartInDepotServer serverModule = new HomemadePartInDepotServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialReturnedInTheDepot)) { IMaterialReturnedInTheDepot serverModule = new MaterialReturnedInTheDepot(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialListReturnedInTheDepot)) { IMaterialListReturnedInTheDepot serverModule = new MaterialListReturnedInTheDepot(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialRejectBill)) { IMaterialRejectBill serverModule = new MaterialRejectBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialListRejectBill)) { IMaterialListRejectBill serverModule = new MaterialListRejectBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IDetailSummaryInfo)) { IDetailSummaryInfo serverModule = new DetailSummaryInfo(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IDepotTypeForPersonnel)) { IDepotTypeForPersonnel serverModule = SCM_Level01_ServerFactory.GetServerModule <IDepotTypeForPersonnel>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IInvoiceServer)) { IInvoiceServer serverModule = new InvoiceServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ISellIn)) { ISellIn serverModule = new SellIn(); m_hashTable.Add(name, serverModule); } //else if (typeof(T) == typeof(IProductOrder)) //{ // IProductOrder serverModule = new ProductOrder(); // m_hashTable.Add(name, serverModule); //} else if (typeof(T) == typeof(ICannibalize)) { ICannibalize serverModule = new Cannibalize(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ICheckReturnRepair)) { ICheckReturnRepair serverModule = new CheckReturnRepair(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IIsolationManageBill)) { IIsolationManageBill serverModule = new IsolationManageBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMessMessageFeedback)) { IMessMessageFeedback serverModule = new MessMessageFeedback(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ITorqueConverterInfoServer)) { ITorqueConverterInfoServer serverModule = new TorqueConverterInfoServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductPlan)) { IProductPlan serverModule = new ProductPlan(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IStoreageCheck)) { IStoreageCheck serverModule = new StoreageCheck(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ISafeStockServer)) { ISafeStockServer serverModule = new SafeStockServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMusterAffirmBill)) { IMusterAffirmBill serverModule = new MusterAffirmBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMusterUse)) { IMusterUse serverModule = new MusterUse(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ITempElectronFileServer)) { ITempElectronFileServer serverModule = PMS_ServerFactory.GetServerModule <ITempElectronFileServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMultiBatchPartServer)) { IMultiBatchPartServer serverModule = PMS_ServerFactory.GetServerModule <IMultiBatchPartServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ITechnologyChange)) { ITechnologyChange serverModule = new TechnologyChange(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IGoodsLeastPackAndStock)) { IGoodsLeastPackAndStock serverModule = new GoodsLeastPackAndStock(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IOrderFormAffrim)) { IOrderFormAffrim serverModule = new OrderFormAffrim(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMarketingPlan)) { IMarketingPlan serverModule = new MarketingPlan(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IPurcharsingPlan)) { IPurcharsingPlan serverModule = new PurcharsingPlan(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IGeneratesCheckOutInDepotServer)) { IGeneratesCheckOutInDepotServer serverModule = new GeneratesCheckOutInDepotServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IGoodsAntirust)) { IGoodsAntirust serverModule = new GoodsAntirust(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IQuarantine)) { IQuarantine serverModule = new Quarantine(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IAfterServiceMakePartsBill)) { IAfterServiceMakePartsBill serverModule = new AfterServiceMakePartsBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IReparativePartInfoServer)) { IReparativePartInfoServer serverModule = PMS_ServerFactory.GetServerModule <IReparativePartInfoServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IConvertCVTNumber)) { IConvertCVTNumber serverModule = PMS_ServerFactory.GetServerModule <IConvertCVTNumber>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductBarcodeServer)) { IProductBarcodeServer serverModule = PMS_ServerFactory.GetServerModule <IProductBarcodeServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ICheckOutInDepotForOutsourcingServer)) { ICheckOutInDepotForOutsourcingServer serverModule = new CheckOutInDepotForOutsourcingServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductChange)) { IProductChange serverModule = new ProductChange(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IHomemadeRejectBill)) { IHomemadeRejectBill serverModule = new HomemadeRejectBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IHomemadeRejectList)) { IHomemadeRejectList serverModule = new HomemadeRejectList(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IFrockProvingReport)) { IFrockProvingReport serverModule = new FrockProvingReport(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMaterialDetainBill)) { IMaterialDetainBill serverModule = new MaterialDetainBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IPrintProductBarcodeInfo)) { IPrintProductBarcodeInfo serverModule = PMS_ServerFactory.GetServerModule <IPrintProductBarcodeInfo>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IThreePacketsOfTheRepairBill)) { IThreePacketsOfTheRepairBill serverModule = new ThreePacketsOfTheRepairBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IFrockIndepotBill)) { IFrockIndepotBill serverModule = new FrockIndepotBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ICommunicateReportBill)) { ICommunicateReportBill serverModule = new CommunicateReportBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductCodeServer)) { IProductCodeServer serverModule = SCM_Level02_ServerFactory.GetServerModule <IProductCodeServer>(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IHomemadePartInfoServer)) { IHomemadePartInfoServer serverModule = new HomemadePartInfoServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IStorageInfo)) { IStorageInfo serverModule = new StorageInfo(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductDeliveryInspectionServer)) { IProductDeliveryInspectionServer serverModule = new ProductDeliveryInspectionServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ICVTCustomerInformationServer)) { ICVTCustomerInformationServer serverModule = new CVTCustomerInformationServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ICVTTruckLoadingInformation)) { ICVTTruckLoadingInformation serverModule = new CVTTruckLoadingInformation(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IQualityProblemRectificationDisposalBill)) { IQualityProblemRectificationDisposalBill serverModule = new QualityProblemRectificationDisposalBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IGoodsShelfLife)) { IGoodsShelfLife serverModule = new GoodsShelfLife(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IReport)) { IReport serverModule = new Report(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMarqueeServer)) { IMarqueeServer serverModule = new MarqueeServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IDeviceMaintenanceBill)) { IDeviceMaintenanceBill serverModule = new DeviceMaintenanceBill(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ICBOMServer)) { ICBOMServer serverModule = new CBOMServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ILogisticSafeStock)) { ILogisticSafeStock serverModule = new LogisticSafeStock(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IUnProductTestingSingle)) { IUnProductTestingSingle serverModule = new UnProductTestingSingle(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IDisposableGoodsServer)) { IDisposableGoodsServer serverModule = new DisposableGoodsServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ITCURepairInfoServer)) { ITCURepairInfoServer serverModule = new TCURepairInfoServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ISalesOrderServer)) { ISalesOrderServer serverModule = new SalesOrderServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ITechnologyAlteration)) { ITechnologyAlteration serverModule = new TechnologyAlteration(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IMinorPurchaseBillServer)) { IMinorPurchaseBillServer serverModule = new MinorPurchaseBillServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductLendService)) { IProductLendService serverModule = new ProductLendService(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductLendReturnService)) { IProductLendReturnService serverModule = new ProductLendReturnService(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IProductReturnService)) { IProductReturnService serverModule = new ProductReturnService(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IStockLack)) { IStockLack serverModule = new StockLack(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IOfflineFailSafeServer)) { IOfflineFailSafeServer serverModule = new OfflineFailSafeServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(ISystemLogServer)) { ISystemLogServer serverModule = new SystemLogServer(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IFinancialDetailManagement)) { IFinancialDetailManagement serverModule = new FinancialDetailManagement(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IToolsManage)) { IToolsManage serverModule = new ToolsManage(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IGaugeManage)) { IGaugeManage serverModule = new GaugeManage(); m_hashTable.Add(name, serverModule); } else if (typeof(T) == typeof(IQualitySystemDatabase)) { IQualitySystemDatabase serverModule = new QualitySystemDatabase(); m_hashTable.Add(name, serverModule); } if (m_hashTable.ContainsKey(name)) { return((T)m_hashTable[name]); } return(default(T)); }
/// <summary> /// 获取指定工位装配信息 /// </summary> /// <param name="workBench">工位信息</param> /// <returns>返回获取到的工位信息</returns> public Socket_WorkBenchInfo GetWorkBenchInfo(string workBenchAndProductName) { char[] splitChars = { ',' }; string[] splitString = workBenchAndProductName.Split(splitChars); string workBench = splitString[0]; string productName = splitString[1]; Socket_WorkBenchInfo returnInfo = new Socket_WorkBenchInfo(); returnInfo.WorkBench = workBench; if (workBench[0] == 'F') { returnInfo.WorkBenchType = WorkbenchTypeEnum.分装.ToString(); } else { returnInfo.WorkBenchType = WorkbenchTypeEnum.总装.ToString(); } try { //IProductInfoServer productInfoServer = ServerModuleFactory.GetServerModule<IProductInfoServer>(); IAssemblingBom server = ServerModuleFactory.GetServerModule <IAssemblingBom>(); // 获取指定工位所有装配信息,包含多种产品 IQueryable <View_P_AssemblingBom> queryResult = server.GetInfoOfWorkBench(workBench); queryResult = from r in queryResult where r.产品名称 == productName orderby r.父总成编码 select r; List <string> parentNamesArray = (from r in queryResult select r.父总成名称).Distinct().ToList(); List <string> parentNamesArray2 = (from r in queryResult where r.是否总成 == true select r.零件名称).Distinct().ToList(); if (parentNamesArray2 != null && parentNamesArray2.Count > 0) { foreach (var item in parentNamesArray2) { if (!parentNamesArray.Contains(item)) { parentNamesArray.Add(item); } } } // 提取指定工位所属的分总成(哪些分总成可以在此工位上装配零件) List <string> parentNames = new List <string>(m_sortName); for (int i = 0; i < parentNames.Count; i++) { if (!parentNamesArray.Contains(parentNames[i])) { parentNames.RemoveAt(i--); } } returnInfo.ProductName = productName; #region 获取此工位父总成名称列表 StringBuilder sb = new StringBuilder(); int index = 0; foreach (var parentName in parentNames) { if (index++ == 0) { sb.AppendFormat("{0}_{1}", parentName, m_dicVirtualPartMapping[parentName]); } else { sb.AppendFormat(",{0}_{1}", parentName, m_dicVirtualPartMapping[parentName]); } } returnInfo.FZC = sb.ToString(); sb.Remove(0, sb.Length); #endregion #region 获取此工位能够完成的分总成名称 index = 0; foreach (var parentName in parentNames) { IQueryable <View_P_AssemblingBom> childrenPart = server.GetChildrenPart(parentName); // 指定产品指定父总成名称需经历的装配工位 List <string> parentWorkBench = (from r in childrenPart where r.产品名称 == productName orderby r.工位 select r.工位).Distinct().ToList(); if (parentWorkBench.Count == 0) { continue; } if (workBench == parentWorkBench[parentWorkBench.Count - 1]) { if (index++ == 0) { sb.AppendFormat("{0}", parentName); } else { sb.AppendFormat(",{0}", parentName); } } } returnInfo.FinishedFZC = sb.ToString(); sb.Remove(0, sb.Length); #endregion #region 获取此工位可以装配的零件 List <WorkbenchPartInfo> workBenchPartInfo = new List <WorkbenchPartInfo>(); IQueryable <View_P_AssemblingBom> info = from r in queryResult where r.产品名称 == productName select r; foreach (var item in info) { WorkbenchPartInfo partInfo = new WorkbenchPartInfo(); partInfo.ProduceName = item.产品名称; partInfo.ParentName = item.父总成名称; partInfo.ParentCode = item.父总成编码; //GetVirtualPartCode(item.父总成编码); partInfo.PartCode = item.零件编码; //GetVirtualPartCode(item.零件编码); partInfo.PartName = item.零件名称; partInfo.Spec = item.规格; partInfo.Amount = item.装配数量; workBenchPartInfo.Add(partInfo); } returnInfo.WorkBenchParts = workBenchPartInfo; #endregion if (workBench == "Z24") { returnInfo.IsFirstWorkBenchInAssemblingLine = true; } else if (workBench == "DB") { returnInfo.IsLastWorkBenchAssemblingLine = true; } returnInfo.OperateState = Socket_WorkBenchInfo.ReturnStateEnum.操作成功; } catch (Exception exce) { returnInfo.OperateState = Socket_WorkBenchInfo.ReturnStateEnum.获取工位初始化信息失败; returnInfo.ErrorInfo = "RequestWorkBenchInfo.GetWorkBenchInfo:" + exce.Message; } return(returnInfo); }