/// <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);
         }
     }
 }
예제 #2
0
        /// <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);
        }
예제 #4
0
        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);
         }
     }
 }
예제 #6
0
        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);
        }
예제 #7
0
        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);
                }
            }
        }
예제 #9
0
        /// <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();
                    }
                }
            }
        }
예제 #10
0
        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);
        }
예제 #12
0
 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); }
     }
 }