/// <summary> /// 收到瓶签收据 /// </summary> /// <returns></returns> public bool GetResultByLabelNo(string labelNo, out string result) { result = string.Empty; try { InternalLogger.Log.Info("收到瓶签号:" + labelNo); bool rtn = false; String labelData = String.Empty; if (IsLogionData(labelNo, out labelData)) //员工登录 { InternalLogger.Log.Debug(labelNo + "被判断为登录信息,因7777开头且长度为22"); MsgLoginResult msgLoginResult = null; rtn = HandleInOut(labelData, out msgLoginResult);//登录处理 if (rtn && msgLoginResult != null) { result = msgLoginResult.ToJson(); } } else if (IsLabelNo(labelNo, out labelData))//只对今天和明天的瓶签计费;并校验瓶签长度和瓶签标识 { InternalLogger.Log.Debug(labelNo + "被判断瓶签数据"); MsgLabelResult msgLabelResult = null; rtn = HandleLabelNo(labelData, out msgLabelResult); if (rtn && msgLabelResult != null) { result = msgLabelResult.ToJson(); } } else { InternalLogger.Log.Warn(labelNo + "被判断为非法Moxa数据,不做处理也不显示"); return(false); //跳出数据接收处理方法 } return(rtn); //登录成功与计费成功都返回rtn } catch (Exception ex) { InternalLogger.Log.Error("接收到Moxa数据,处理出错:" + ex.Message); } return(false); }
/// <summary> /// 发送药师登录状态到屏 /// </summary> public void SendLoginStatus(ScreenClientController screenClientController, string screenIp, int screenPort, short status) { smartThreadPool.QueueWorkItem(() => { try { MsgLoginResult msgLoginResult = new MsgLoginResult(); msgLoginResult.MsgType = (short)MsgType.LoginStatus; msgLoginResult.Status = status; //将登陆状态发给屏,微软屏 screenClientController.sendDataEnqueue(new PivasEventArgs <TCPMessage>(new TCPMessage(screenIp, screenPort, msgLoginResult.ToJson()))); } catch (Exception ex) { InternalLogger.Log.Error("发送药师登录状态到屏出错:" + ex.Message); } }); }