/// <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="sender"></param> /// <param name="re">事件参数</param> public Socket_FittingAccessoryInfo ReceiveReadChoseMatchInfo(Socket_FittingAccessoryInfo fittingAccessoryInfo) { DataTable table; string error; if (!m_choseConfectServer.GetAccessoryChoseConfectInfo(fittingAccessoryInfo.GoodsCode, "", 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="sender"></param> /// <param name="re">事件参数</param> public Socket_FittingAccessoryInfo ReceiveReadBarCodeInfo(Socket_FittingAccessoryInfo fittingAccessoryInfo) { DataTable table; string error; if (!m_barCodeServer.GetData(fittingAccessoryInfo.BarCode, out table, out error)) { if (error.Contains(Socket_FittingAccessoryInfo.OperateStateEnum.条形码有误.ToString())) { fittingAccessoryInfo.OperateState = Socket_FittingAccessoryInfo.OperateStateEnum.条形码有误; } } else { fittingAccessoryInfo.GoodsCode = table.Rows[0][0].ToString(); fittingAccessoryInfo.Spec = table.Rows[0][1].ToString(); fittingAccessoryInfo.GoodsName = table.Rows[0][2].ToString(); fittingAccessoryInfo.Provider = table.Rows[0][3].ToString(); fittingAccessoryInfo.BatchNo = table.Rows[0][4].ToString(); fittingAccessoryInfo.OperateState = Socket_FittingAccessoryInfo.OperateStateEnum.操作成功; } return(fittingAccessoryInfo); }
void asynServer_OnReceive(object sender, CommEventArgs args) { CommEventArgs commArgs = args; string address = commArgs.SourceAddress; commArgs.SourceAddress = args.TargetAddress; commArgs.TargetAddress = address; if (args.Params != null) { for (int i = 0; i < args.Params.Count; i++) { if (commArgs.Params[i].CMD == CommCMD.用户登陆) { Socket_UserInfo userInfo = commArgs.Params[i].DataValue as Socket_UserInfo; RequestUserProcessor userProcessor = new RequestUserProcessor(); commArgs.Params[i].DataValue = userProcessor.ReceiveUserInfo(userInfo); } else if (commArgs.Params[i].CMD == CommCMD.初始化) { string workbench = commArgs.Params[i].DataValue as string; RequestWorkBenchInfo wbProcessor = new RequestWorkBenchInfo(); if (commArgs.Params[i].Code == TagCode.工位产品列表) { commArgs.Params[i].DataValue = wbProcessor.GetProductInfo(workbench); } else if (commArgs.Params[i].Code == TagCode.工位指定产品零件信息) { commArgs.Params[i].DataValue = wbProcessor.GetWorkBenchInfo(workbench); } } else if (commArgs.Params[i].CMD == CommCMD.请求) { if (commArgs.Params[i].Code == TagCode.获取装配条形码对应零件信息) { Socket_FittingAccessoryInfo fittingAccessoryInfo = commArgs.Params[i].DataValue as Socket_FittingAccessoryInfo; RequestFittingInfo fittingProcessor = new RequestFittingInfo(); commArgs.Params[i].DataValue = fittingProcessor.ReceiveReadBarCodeInfo(fittingAccessoryInfo); } else if (commArgs.Params[i].Code == TagCode.获取选配值) { string info = (string)commArgs.Params[i].DataValue; RequestFittingInfo fittingProcessor = new RequestFittingInfo(); commArgs.Params[i].DataValue = fittingProcessor.ReceiveReadChoseMatchInfo(info); //Socket_FittingAccessoryInfo fittingAccessoryInfo = commArgs.Params[i].DataValue as Socket_FittingAccessoryInfo; //RequestFittingInfo fittingProcessor = new RequestFittingInfo(); //fittingAccessoryInfo = fittingProcessor.ReceiveReadBarCodeInfo(fittingAccessoryInfo); //commArgs.Params[i].DataValue = fittingProcessor.ReceiveReadChoseMatchInfo(fittingAccessoryInfo); } } else if (commArgs.Params[i].CMD == CommCMD.存储工位信息) { if (commArgs.Params[i].Code == TagCode.装配信息) { Socket_FittingAccessoryInfoSum fittingAccessoryInfoSum = commArgs.Params[i].DataValue as Socket_FittingAccessoryInfoSum; fittingAccessoryInfoSum.Edition = GetProductType(fittingAccessoryInfoSum.ProductTypeName); RequestFittingInfo fittingProcessor = new RequestFittingInfo(); commArgs.Params[i].DataValue = fittingProcessor.ReceiveSaveTempFittingInfo(fittingAccessoryInfoSum); if (fittingAccessoryInfoSum.ProductTypeName.Contains("力帆") && fittingAccessoryInfoSum.WorkBench == "DB") { commArgs.Params[i].DataValue = fittingProcessor.ReceiveSaveFittingInfo(fittingAccessoryInfoSum.ProductCode); } else if (fittingAccessoryInfoSum.ProductTypeName.Contains("众泰") && fittingAccessoryInfoSum.WorkBench == "DB") { commArgs.Params[i].DataValue = fittingProcessor.ReceiveSaveFittingInfo(fittingAccessoryInfoSum.ProductCode); } } } } } for (int i = 0; i < commArgs.Params.Count; i++) { commArgs.Params[i].CMD = CommCMD.应答; } string error; m_server.Send(commArgs, out error); }