/// <summary> /// 状态变化时显示状态动画 /// </summary> private void temp_OnDeviceStateChanged(object sender, DeviceStateChangedEventArgs e) { //查找主控板 var controlDevice = GlobalEnvironment.CurrWorkStationOragnization.Where(x => x.IP == e.IP); foreach (var board in controlDevice) { try { var channelDevice = CommHelper.GetOrgInfos(board.ORGANIZATION_CODE, false).Where(x => x.channelType == enumChannelType.chn_in || x.channelType == enumChannelType.chn_out).LastOrDefault(); if (null != channelDevice) { findPic = (RoadGate)this.Controls.Find(channelDevice.ORGANIZATION_NAME, true)[0]; if (null != findPic) { string filePath = e.State == 0 ? GlobalEnvironment.BasePath + "Image\\RoadNogate.png" : GlobalEnvironment.BasePath + "Image\\GateNormalClose.png"; if (File.Exists(filePath)) findPic.PicImage = filePath; } } } catch (Exception ex) { LogHelper.Log.Error(ex.Message, ex.InnerException); } } }
/// <summary> /// 发¤?é送¨a余?¨¤位?信?息?é /// </summary> public void ShowMoreThanInfo(ProcessRecord recordInfo) { LogHelper.Log.Info("发¤?é送¨a余?¨¤位?显?示o?屏¨¢命¨1令¢?:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); var TempLate = EngineContext.Current.Resolve <IPBA_VOICE_TEMPLATE>(); List <string> strArr = new List <string>(); var childrenList = CommHelper.GetOrgInfos(recordInfo.CHN_CODE).Where(x => x.productLine == enumProductLine.DisplayScreen).ToList(); childrenList = CommHelper.GetOrgInfos(recordInfo.INOUT_RECODE.IN_CHANNEL_CODE).Where(x => x.productLine == enumProductLine.DisplayScreen).ToList(); foreach (var temp in childrenList) { foreach (var info in temp.LedInfos.OrderBy(x => x.serialNo)) { StringBuilder strSB = new StringBuilder(); string[] strArrSerialNo = info.displayContent.Split(','); if (!string.IsNullOrEmpty(info.displayContent)) { foreach (string s in strArrSerialNo) { int SeriNo = Convert.ToInt32(s); if (SeriNo == 9) { var strTemp = TempLate.GetModelByType((int)enumTemplateType.MODEL_TYPE_DISPLAY, SeriNo); if (null != strTemp) { strSB.Append(CommHelper.LedContent(strTemp.CUSTOM_MODEL, recordInfo, SeriNo)); } } } strArr.Add(strSB.ToString()); Parking.Core.Common.CommHelper.ShowLED(temp, strArr.ToArray(), info); strArr.Clear(); } } } }
/// <summary> /// 加载相机信息 /// </summary> /// <returns></returns> private Equipment InitCamerasInfo() { this.lbErrorCarNo.Text = string.Empty; this.lbCurrCarNo.Text = string.Empty; string OrgCode = this.cbCamera.SelectedValue.ToString(); var equDevice = GlobalEnvironment.ListOragnization.Where(x => x.ORGANIZATION_CODE == OrgCode).FirstOrDefault(); if (null != equDevice) { if (null != equDevice.CurrRecognitioData) { this.lbCurrCarNo.Text = equDevice.CurrRecognitioData.CarNo + " (" + equDevice.CurrRecognitioData.Count + ")"; if (equDevice.ListRecognitioResult.Count > 1) { var ErrorCamera = equDevice.ListRecognitioResult.Where(x => x.CarNo != equDevice.CurrRecognitioData.CarNo).OrderByDescending(x => x.Count).FirstOrDefault(); this.lbErrorCarNo.Text = ErrorCamera.CarNo + " (" + ErrorCamera.Count + ")"; } } this.lbIP.Text = equDevice.IP; var channel = CommHelper.GetOrgInfos(equDevice.ORGANIZATION_CODE, false).Where(x => x.channelType == enumChannelType.chn_in || x.channelType == enumChannelType.chn_out).LastOrDefault(); if (null != channel) { this.lbChannelName.Text = channel.ORGANIZATION_NAME; } } return(equDevice); }
public void control_UserControlBtnClicked(object sender, string ID) { DataUploadRecord dataUploadRecord = new DataUploadRecord(); CR_INOUT_RECODE inOutRecord = bllRecord.GetModel(ID); if (null != inOutRecord) { dataUploadRecord.plateNum = inOutRecord.VEHICLE_NO; dataUploadRecord.REPORTIMG_TIME = inOutRecord.IN_TIME; dataUploadRecord.PARTITION_CODE = inOutRecord.IN_PARTITION_CODE; var partitionChildren = CommHelper.GetOrgInfos(dataUploadRecord.PARTITION_CODE); //查找中央缴费定点 if (null != partitionChildren && partitionChildren.Count > 0) { var centralPaymentChannel = partitionChildren.Where(x => x.channelType == enumChannelType.centerPayment).FirstOrDefault(); if (null != centralPaymentChannel) { dataUploadRecord.CHN_CODE = centralPaymentChannel.ORGANIZATION_CODE; } } dataUploadRecord.CHANNEL_TYPE = enumChannelType.centerPayment; dataUploadRecord.INOUT_RECODE = inOutRecord; DataUploadEventArgs args = new DataUploadEventArgs() { TempRecordInfo = dataUploadRecord }; ThreadMessageTransact.Instance.AcceptFormalData(dataUploadRecord); } }
/// <summary> /// 处理队列中的正式数据 /// </summary> /// <param name="state"></param> public void AcceptDataWork(object state) { while (true) { try { AcceptDataEvent.WaitOne(1); while (AcceptDataQue.Count > 0) { ProcessRecord msg = null; lock (AcceptDataQueLock) { if (AcceptDataQue.Count > 0) { msg = AcceptDataQue.Dequeue(); } } if (msg != null) { var channel = EngineContext.Current.Resolve <IChannel>(msg.CHANNEL_TYPE.ToString()); if (null != channel) { ///////////////////////补抓图片////////////////////////////////// if (string.IsNullOrEmpty(msg.PicFullName)) { var channelList = CommHelper.GetOrgInfos(msg.CHN_CODE); var cameraDevice = channelList.Where(x => x.productLine == enumProductLine.IdentificationCamera && x.autoRecognition).FirstOrDefault(); if (null != cameraDevice) { var cameraSDK = EngineContext.Current.Resolve <ICamera>(cameraDevice.deviceType.ToString()); if (null != cameraSDK) { string strPicName = string.Empty; cameraSDK.CapturePicture(cameraDevice.IP, out strPicName); msg.PicFullName = strPicName; } } } ///////////////////////开始流程////////////////////////////////// ProcessDelegate dl = new ProcessDelegate(RunProcess); dl.BeginInvoke(channel, msg, null, null); if (null != OnPlate) { OnPlate(msg); } } } } AcceptDataEvent.Reset(); } catch (Exception ex) { AcceptDataEvent.Reset(); LogHelper.Log.Error(ex.Message, ex.InnerException); } } }
public ProcessRecord ConvertRecord(DataUploadEventArgs data) { ProcessRecord recordInfo = new ProcessRecord(); //车牌号码 recordInfo.INOUT_RECODE.VEHICLE_NO = data.TempRecordInfo.plateNum; //特征码 recordInfo.INOUT_RECODE.UNIQUE_IDENTIFIER = data.TempRecordInfo.INOUT_RECODE.UNIQUE_IDENTIFIER; //是否发送短信 recordInfo.SendSMS = data.TempRecordInfo.SendSMS; //手机号码 recordInfo.Phone = data.TempRecordInfo.Phone; //通道编号 recordInfo.CHN_CODE = data.TempRecordInfo.CHN_CODE; //通道名称 recordInfo.CHN_NAME = data.TempRecordInfo.CHN_NAME; //分区信息 var parentsList = CommHelper.GetOrgInfos(recordInfo.CHN_CODE, false); var par = parentsList.Where(x => x.channelType == enumChannelType.par).LastOrDefault(); if (null != par) { recordInfo.PARTITION_CODE = par.ORGANIZATION_CODE; recordInfo.PARTITION_NAME = par.OrganizationInfo.ORGANIZATION_NAME; } //获取工作站信息 var wsn = parentsList.Where(x => x.channelType == enumChannelType.wsn).LastOrDefault(); if (null != wsn) { recordInfo.FIELD_NAME = wsn.OrganizationInfo.ORGANIZATION_NAME; recordInfo.FIELD_CODE = wsn.OrganizationInfo.ORGANIZATION_CODE; } //获取操作员信息 if (null != GlobalEnvironment.LocalUserInfo) { recordInfo.OPERATOR_ID = GlobalEnvironment.LocalUserInfo.USER_ID; recordInfo.OPERATOR_NAME = GlobalEnvironment.LocalUserInfo.USER_NAME; } //车牌号码 recordInfo.INOUT_RECODE.VEHICLE_NO = data.TempRecordInfo.plateNum; //入场类型 recordInfo.PARK_TYPE = "无牌车放行"; //刷卡时间 recordInfo.REPORTIMG_TIME = data.TempRecordInfo.REPORTIMG_TIME; //出入场类型 recordInfo.CHANNEL_TYPE = data.TempRecordInfo.CHANNEL_TYPE; //抓拍图片 recordInfo.PicFullName = data.TempRecordInfo.fullPicName; //初始化公共信息 base.InitBaseInfo(recordInfo); return(recordInfo); }
public void getCapturePicturePath(string strIP, out string strPicName) { strPicName = string.Empty; Equipment equipment = (from x in GlobalEnvironment.CurrWorkStationOragnization where x.IP == strIP select x).FirstOrDefault <Equipment>(); List <Equipment> orgInfos = CommHelper.GetOrgInfos(equipment.ORGANIZATION_CODE, false); Equipment equipment2 = (from x in orgInfos where x.channelType == enumChannelType.wsn select x).LastOrDefault <Equipment>(); Equipment equipment3 = (from x in orgInfos where (x.channelType == enumChannelType.chn_in) || (x.channelType == enumChannelType.chn_out) select x).LastOrDefault <Equipment>(); if (null != equipment) { DateTime now = new DateTime(); now = DateTime.Now; string path = string.Concat(new object[] { DateTime.Now.Year, @"\", DateTime.Now.Month, @"\", DateTime.Now.Day, @"\", equipment2.ORGANIZATION_CODE, @"\", equipment3.ORGANIZATION_CODE }); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string str2 = string.Empty; if (equipment3.channelType == enumChannelType.chn_in) { str2 = "I0"; } else { str2 = "E0"; } strPicName = path + @"\" + DateTime.Now.ToString("yyyyMMdd") + str2 + DateTime.Now.ToString("HHmmss"); strPicName = strPicName + ".jpg"; if (File.Exists(strPicName)) { for (int i = 1; i <= 10; i++) { strPicName = path + @"\" + DateTime.Now.ToString("yyyyMMdd") + str2 + DateTime.Now.ToString("HHmmss"); strPicName = strPicName + "_" + i.ToString() + ".jpg"; if (!File.Exists(strPicName)) { break; } } } } }
/// <summary> /// 上报中间数据,缓存一段时间 /// </summary> /// <param name="e"></param> public void AddRecognitioMiddData(DataUploadEventArgs e) { lock (channelLock) { //通过IP找到设备信息 var recognitioEqu = GlobalEnvironment.CurrWorkStationOragnization.Where(x => x.IP == e.TempRecordInfo.ip).FirstOrDefault(); var channels = CommHelper.GetOrgInfos(recognitioEqu.ORGANIZATION_CODE, false); if (null != channels) { var currChannel = channels.Where(x => x.channelType == enumChannelType.chn_in || x.channelType == enumChannelType.chn_out).LastOrDefault(); //没加定时器,则加上定时器 if (!dicCache.ContainsKey(currChannel.ORGANIZATION_CODE)) { dicCache.Add(currChannel.ORGANIZATION_CODE, DateTime.Now); LogHelper.Log.Info("【" + currChannel.ORGANIZATION_NAME + "】上的相机【" + e.TempRecordInfo.ip + "】识别到车牌【" + e.TempRecordInfo.plateNum + "】,在" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } } if (null != recognitioEqu) { var tempCarNo = recognitioEqu.ListRecognitioResult.Where(x => x.CarNo == e.TempRecordInfo.plateNum).FirstOrDefault(); if (null != tempCarNo) { tempCarNo.Count += 1; } else { RecognitioResult rResult = new RecognitioResult(); rResult.CarNo = e.TempRecordInfo.plateNum; rResult.Count = 1; rResult.args = e; recognitioEqu.ListRecognitioResult.Add(rResult); } triggerEvent(new ProcessRecord() { OPERATER_TYPE = enumOperaterType.RecognitionEvent, IP = e.TempRecordInfo.ip }, false); } } }
/// <summary> /// 响应广播消息 /// </summary> /// <param name="recordInfo"></param> /// <param name="isWaitOne"></param> private void ActiveMessage(ProcessRecord recordInfo, bool isWaitOne) { if (recordInfo.OPERATER_TYPE == enumOperaterType.OpenGate) { var channel = CommHelper.GetOrgInfos(_Plugin.DEVICE_ID, false).Where(x => x.channelType == enumChannelType.chn_in || x.channelType == enumChannelType.chn_out).LastOrDefault(); if (null != channel) { if (channel.ORGANIZATION_CODE == recordInfo.CHN_CODE) { string filePath = GlobalEnvironment.BasePath + "Image\\GateNormalOpen.png"; if (File.Exists(filePath)) { this.picGate.Image = new Bitmap(filePath); } BackgroundWorker BgWork = new BackgroundWorker(); BgWork.DoWork += new DoWorkEventHandler(BgWork_DoWork); BgWork.RunWorkerAsync(); } } } }
public ProcessRecord ConvertRecord(DataUploadEventArgs data) { ProcessRecord recordInfo = new ProcessRecord(); //车牌号码 recordInfo.INOUT_RECODE.VEHICLE_NO = data.TempRecordInfo.plateNum; //特征码 recordInfo.INOUT_RECODE.UNIQUE_IDENTIFIER = data.TempRecordInfo.INOUT_RECODE.UNIQUE_IDENTIFIER; //通道编号 recordInfo.CHN_CODE = data.TempRecordInfo.CHN_CODE; //通道名称 recordInfo.CHN_NAME = data.TempRecordInfo.CHN_NAME; //分区信息 var parentsList = CommHelper.GetOrgInfos(recordInfo.CHN_CODE, false); var par = parentsList.Where(x => x.channelType == enumChannelType.par).LastOrDefault(); if (null != par) { recordInfo.PARTITION_CODE = par.ORGANIZATION_CODE; recordInfo.PARTITION_NAME = par.OrganizationInfo.ORGANIZATION_NAME; } //获取工作站信息 var wsn = parentsList.Where(x => x.channelType == enumChannelType.wsn).LastOrDefault(); if (null != wsn) { recordInfo.FIELD_NAME = wsn.OrganizationInfo.ORGANIZATION_NAME; recordInfo.FIELD_CODE = wsn.OrganizationInfo.ORGANIZATION_CODE; } //设备信息 var device = GlobalEnvironment.ListOragnization.Where(x => x.productLine == enumProductLine.IdentificationCamera && x.autoRecognition).FirstOrDefault(); if (null != device) { recordInfo.DEV_CODE = device.ORGANIZATION_CODE; } //获取操作员信息 if (null != GlobalEnvironment.LocalUserInfo) { recordInfo.OPERATOR_ID = GlobalEnvironment.LocalUserInfo.USER_ID; recordInfo.OPERATOR_NAME = GlobalEnvironment.LocalUserInfo.USER_NAME; } //车牌号码 recordInfo.INOUT_RECODE.VEHICLE_NO = data.TempRecordInfo.plateNum; //车辆类型 recordInfo.CarType = data.TempRecordInfo.CarType; //入场类型 recordInfo.PARK_TYPE = "手工放行"; //刷卡时间 recordInfo.REPORTIMG_TIME = data.TempRecordInfo.REPORTIMG_TIME; //出入场类型 recordInfo.CHANNEL_TYPE = data.TempRecordInfo.CHANNEL_TYPE; //抓拍图片 recordInfo.PicFullName = data.TempRecordInfo.fullPicName; recordInfo.INOUT_RECODE.VEHICLE_TYPE = (int)recordInfo.CarType; //初始化公共信息 base.InitBaseInfo(recordInfo); return(recordInfo); }
public ProcessRecord ConvertRecord(DataUploadEventArgs data) { ProcessRecord recordInfo = new ProcessRecord(); var temp = EngineContext.Current.Resolve <IPBA_PARKING_PARAM_SETTINGS>(); //获取当前设备设置参数信息 var model = temp.GetParkingParamByIP(data.TempRecordInfo.ip); if (null != model) { //获取当前设备组织信息 var oragani = GlobalEnvironment.CurrWorkStationOragnization.Where(x => x.OrganizationInfo.ORGANIZATION_CODE == model.ORGANIZATION_CODE).FirstOrDefault(); if (null != oragani) { //设备信息 recordInfo.DEV_NAME = oragani.OrganizationInfo.ORGANIZATION_NAME; recordInfo.DEV_CODE = oragani.OrganizationInfo.ORGANIZATION_CODE; //分区信息 var parentsList = CommHelper.GetOrgInfos(recordInfo.DEV_CODE, false); var par = parentsList.Where(x => x.channelType == enumChannelType.par).LastOrDefault(); if (null != par) { recordInfo.PARTITION_CODE = par.ORGANIZATION_CODE; recordInfo.PARTITION_NAME = par.OrganizationInfo.ORGANIZATION_NAME; } //获取工作站信息 var wsn = parentsList.Where(x => x.channelType == enumChannelType.wsn).LastOrDefault(); if (null != wsn) { recordInfo.FIELD_NAME = wsn.OrganizationInfo.ORGANIZATION_NAME; recordInfo.FIELD_CODE = wsn.OrganizationInfo.ORGANIZATION_CODE; } //获取岗亭信息 var chn = parentsList.Where(x => x.channelType == enumChannelType.chn_in || x.channelType == enumChannelType.chn_out).FirstOrDefault(); if (null != chn) { Channel tempChannel = chn as Channel; //组织编码 recordInfo.CHN_CODE = chn.OrganizationInfo.ORGANIZATION_CODE; //组织名称 recordInfo.CHN_NAME = chn.OrganizationInfo.ORGANIZATION_NAME; //出入口类型 recordInfo.CHANNEL_TYPE = chn.channelType; } //获取操作员信息 if (null != GlobalEnvironment.LocalUserInfo) { recordInfo.OPERATOR_ID = GlobalEnvironment.LocalUserInfo.USER_ID; recordInfo.OPERATOR_NAME = GlobalEnvironment.LocalUserInfo.USER_NAME; } } } recordInfo.INOUT_RECODE.VEHICLE_TYPE = (int)recordInfo.CarType; //车牌号码 recordInfo.INOUT_RECODE.VEHICLE_NO = data.TempRecordInfo.plateNum; //车辆身份唯一标识 recordInfo.INOUT_RECODE.UNIQUE_IDENTIFIER = data.TempRecordInfo.specialCode; //车牌颜色 recordInfo.INOUT_RECODE.CAR_COLOR = data.TempRecordInfo.PlateColorStr.ToString(); //入场类型 recordInfo.PARK_TYPE = "车牌识别"; //上报时间 recordInfo.REPORTIMG_TIME = DateTime.Parse(data.TempRecordInfo.picCapTime); //抓拍图片 recordInfo.PicFullName = data.TempRecordInfo.fullPicName; //初始化公共信息 base.InitBaseInfo(recordInfo); return(recordInfo); }
public override void Process(ProcessRecord recordInfo) { try { recordInfo.CheckPointResult = true; CR_INOUT_RECODE recordTemp = new CR_INOUT_RECODE(); //如¨?果?是o?贵¨?宾à?车|ì,ê?不?用??校?ê验¨|是o?否¤?场?内¨2车|ì if (recordInfo.authenticationType == enumAuthenticationType.SPECIAL_TYPE_VIP) { return; } Equipment parentArea = null; var parent = CommHelper.GetOrgInfos(recordInfo.CHN_CODE, false).OrderBy(x => x.ORG_LEVEL); if (null != parent) { parentArea = parent.Where(x => x.channelType == enumChannelType.chn_in || x.channelType == enumChannelType.chn_out).LastOrDefault(); } var temp = EngineContext.Current.Resolve <ICR_INOUT_RECODE>(); recordTemp = temp.GetInSideCarNo(recordInfo.INOUT_RECODE); //区?域?¨°编ਤ号?相¨¤同a?时o?à为a同a?一°?车|ì场?,ê?否¤?则¨°可¨|能¨1为a大?¨?套??á小?模?ê式o? if (null != recordTemp && recordInfo.PARTITION_CODE == recordTemp.IN_PARTITION_CODE) { if (!parentArea.ckRepeatIE.Contains(((int)recordInfo.CARD_TYPE).ToString())) { //一°?进?一°?出?模?ê式o?,ê?此??卡?§已°?经-入¨?场?时o?à,ê?播£¤报à?§语??音°?,ê?不?允¨o许¨a再¨′次??入¨?场? recordInfo.SpeechType = enumSpeechType.CarInSide; Sound(recordInfo); recordInfo.CheckPointResult = false; return; } else { //多¨¤进?多¨¤出?模?ê式o?下?,ê?删|?除y原-入¨?场?记?录?,ê?重?新?入¨?场? //temp.Delete(recordTemp.ID); var spaceBllTemp = EngineContext.Current.Resolve <IPBA_PARKING_SPACE_MANAGER>(); var spaceModel = spaceBllTemp.GetModelByINOUTID(recordTemp.ID); if (null != spaceModel) { spaceModel.INOUT_RECORD_ID = string.Empty; spaceModel.SPACE_STATUS = 0; spaceBllTemp.Update(spaceModel); } temp.DelInSideRecord(recordInfo.INOUT_RECODE.VEHICLE_NO); } } recordInfo.INOUT_RECODE.ID = Guid.NewGuid().ToString("N"); recordInfo.INOUT_RECODE.IN_TIME = recordInfo.REPORTIMG_TIME; recordInfo.INOUT_RECODE.OUT_TIME = recordInfo.REPORTIMG_TIME; recordInfo.INOUT_RECODE.IN_FIELD_CODE = recordInfo.FIELD_CODE; recordInfo.INOUT_RECODE.IN_PARTITION_CODE = recordInfo.PARTITION_CODE; recordInfo.INOUT_RECODE.IN_CHANNEL_CODE = recordInfo.CHN_CODE; recordInfo.INOUT_RECODE.IN_DEV_ID = recordInfo.DEV_CODE; recordInfo.INOUT_RECODE.IN_OPERATOR_ID = recordInfo.OPERATOR_ID; recordInfo.INOUT_RECODE.IN_PARK_TYPE = recordInfo.PARK_TYPE; recordInfo.INOUT_RECODE.RECODE_STATUS = 0; } catch (Exception ex) { recordInfo.CheckPointResult = false; LogHelper.Log.Error(ex.Message); } }
/// <summary> /// 获取中间数据 /// </summary> public void bgw_DoWork(object sender, EventArgs e) { while (true) { try { List <Equipment> listResult = new List <Equipment>(); var listEquipment = GlobalEnvironment.CurrWorkStationOragnization.Where(x => x.channelType == enumChannelType.equ && x.ListRecognitioResult.Count > 0).ToList(); //遍历有数据上传的所有设备 foreach (var temp in listEquipment) { var channels = CommHelper.GetOrgInfos(temp.ORGANIZATION_CODE, false); if (null != channels) { var currChannel = channels.Where(x => x.channelType == enumChannelType.chn_in || x.channelType == enumChannelType.chn_out).LastOrDefault(); if (dicCache.ContainsKey(currChannel.ORGANIZATION_CODE)) { DateTime dtOld = dicCache[currChannel.ORGANIZATION_CODE]; if (DateTime.Now.AddSeconds(-ConfigHelper.ChannelDataUpLoadInterval) >= dtOld) { //查找通道 var tempResult = listResult.Where(x => x.PARENT_CODE == temp.PARENT_CODE).FirstOrDefault(); if (null == tempResult) { //如果当前出入口有数据 if (temp.ListRecognitioResult.Count > 0) { listResult.Add(temp); } } else { if (temp.CurrRecognitioData.CarNo != tempResult.CurrRecognitioData.CarNo) { //对于同一个通道同时有两个以上设备上报数据,比较两种设备的识别率,保留识别率高的设备上传的数据 if (temp.ErrorCount < tempResult.ErrorCount) { listResult.Remove(tempResult); listResult.Add(temp); } } } LogHelper.Log.Info("从【" + currChannel.ORGANIZATION_NAME + "】上获取正确车牌【" + temp.CurrRecognitioData.CarNo + "】,在" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); dicCache.Remove(currChannel.ORGANIZATION_CODE); } } } } lock (channelLock) { var cache = EngineContext.Current.Resolve <ICacheManager>(); foreach (var temp in listResult) { var channels = CommHelper.GetOrgInfos(temp.ORGANIZATION_CODE, false); if (null != channels && null != temp.CurrRecognitioData && temp.CurrRecognitioData.Count > 0) { var currChannel = channels.Where(x => x.channelType == enumChannelType.chn_in || x.channelType == enumChannelType.chn_out).LastOrDefault(); if (!cache.IsSet(temp.CurrRecognitioData.CarNo + currChannel.ORGANIZATION_CODE)) { AcceptMiddData(temp.CurrRecognitioData.args); temp.lastCarNo = temp.CurrRecognitioData.CarNo; cache.Set(temp.CurrRecognitioData.CarNo + currChannel.ORGANIZATION_CODE, temp.IP, ConfigHelper.CarRecognitionInterval); LogHelper.Log.Info("【" + currChannel.ORGANIZATION_NAME + "】缓存车牌【" + temp.CurrRecognitioData.CarNo + "】,在" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } else { LogHelper.Log.Info("【" + currChannel.ORGANIZATION_NAME + "】上的车辆【" + temp.CurrRecognitioData.CarNo + "】在【" + ConfigHelper.CarRecognitionInterval + "】分钟内不允许重复入场"); } GlobalEnvironment.CurrWorkStationOragnization.Where(x => x.ORGANIZATION_CODE == temp.ORGANIZATION_CODE).FirstOrDefault().ListRecognitioResult.Clear(); } } listResult.Clear(); } Thread.Sleep(100); } catch (Exception ex) { LogHelper.Log.Error(ex.Message, ex.InnerException); } } }