예제 #1
0
        /// <summary>
        /// 翻车业务逻辑入口
        /// </summary>
        private void CreateMainTask()
        {
            taskSimpleScheduler = new TaskSimpleScheduler();

            autoResetEvent.Reset();

            taskSimpleScheduler.StartNewTask("翻车业务逻辑", () =>
            {
                // 获取待处理的车号识别记录 - 入厂方向
                CmcsTrainCarriagePass inTrainCarriagePass = carriageRecognitionerDAO.GetUnHandleTrainCarriagePass(this.carriageRecognitionerMachineCode, eTrainPassDirection.进厂);
                if (inTrainCarriagePass != null)
                {
                    this.CurrentTrainCarriagePass = inTrainCarriagePass;

                    // 检测采样机系统的状态
                    string samplerSystemStatue = commonDAO.GetSignalDataValue(this.trainBeltSampler.EquipmentCode, eSignalDataName.系统.ToString());
                    if (samplerSystemStatue == eEquInfSamplerSystemStatus.发生故障.ToString() || samplerSystemStatue == eEquInfSamplerSystemStatus.正在卸样.ToString())
                    {
                        MessageBoxEx2Show("禁止翻车, " + this.trainBeltSampler.EquipmentName + "发生故障或正在卸样,已暂停运行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        btnStartTurnover.Enabled = true;

                        // 取消任务
                        this.taskSimpleScheduler.Cancal();

                        return;
                    }

                    StartTippingTask(this.CurrentTrainCarriagePass);

                    autoResetEvent.WaitOne();
                }
            }, 4000);
        }
예제 #2
0
        /// <summary>
        /// 同步报文
        /// </summary>
        /// <param name="output"></param>
        /// <returns></returns>
        public int Save(List <CmcsTrainCarriagePass> cmcstraincarriagepass, Action <string, eOutputType> output)
        {
            int res = 0;

            try
            {
                foreach (var item in cmcstraincarriagepass)
                {
                    CmcsTrainCarriagePass item1 = Dbers.GetInstance().SelfDber.Entity <CmcsTrainCarriagePass>("where TrainNumber=:TrainNumber and PassTime=:PassTime", new { TrainNumber = item.TrainNumber, PassTime = item.PassTime });
                    if (item1 == null)
                    {
                        res += Dbers.GetInstance().SelfDber.Insert(item);
                    }
                    else
                    {
                        item1.Direction   = item.Direction;
                        item1.MachineCode = item.MachineCode;
                        item1.TrainNumber = item.TrainNumber;
                        item1.PassTime    = item.PassTime;
                        item1.DataFlag    = item.DataFlag;
                        res += Dbers.GetInstance().SelfDber.Update <CmcsTrainCarriagePass>(item1);
                    }
                }
            }
            catch (Exception ex)
            {
                output(string.Format("保存数据失败,原因:{0}", ex.Message), eOutputType.Error);
            }
            output(string.Format("同步车号识别数据 {0} 条(集中管控 )", res), eOutputType.Normal);
            return(res);
        }
        /// <summary>
        /// 2号车号识别
        /// </summary>
        /// <param name="carNumber">车号</param>
        /// <param name="carDate">时间</param>
        /// <param name="direction">方向</param>
        /// <param name="infactoryordernumber">顺序号</param>
        /// <param name="carmodel">车型</param>
        /// <returns></returns>
        public static bool CarSpot2Data(Action <string, eOutputType> output, CmcsTrainRecognition trainPass)
        {
            if (trainPass == null)
            {
                return(false);
            }

            if (trainPass.Direction == "进厂")
            {
                CmcsTrainCarriagePass transport = Dbers.GetInstance().SelfDber.Entity <CmcsTrainCarriagePass>("where TrainNumber='" + trainPass.CarNumber + "' and PassTime>=to_date('" + DateTime.Now.Date.AddDays(-1) + "','yyyy/mm/dd HH24:MI:SS') order by PassTime desc");
                if (transport == null)
                {
                    transport             = new CmcsTrainCarriagePass();
                    transport.TrainNumber = trainPass.CarNumber;
                    transport.CarModel    = trainPass.CarModel;
                    transport.MachineCode = trainPass.MachineCode;
                    transport.PassTime    = trainPass.CrossTime;
                    transport.Direction   = trainPass.Direction;
                    transport.OrderNum    = trainPass.OrderNum;
                    transport.DataFlag    = 0;
                    transport.PKID        = trainPass.Id;
                    Dbers.GetInstance().SelfDber.Insert(transport);
                }
                else
                {
                    transport.MachineCode = trainPass.MachineCode;
                    Dbers.GetInstance().SelfDber.Update(transport);
                }

                CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_HCJXCYJ_1, eSignalDataName.当前车号.ToString(), trainPass.CarNumber);

                // 插入定位信息
                if (InsertTransportPosition("#2", trainPass.CarNumber))
                {
                    output(string.Format("#2轨道插入定位信息;{0}车号识别 车号:{1}", trainPass.MachineCode, trainPass.CarNumber), eOutputType.Normal);
                    return(true);
                }
            }
            else if (trainPass.Direction == "出厂")
            {
                CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_HCJXCYJ_2, eSignalDataName.当前车号.ToString(), string.Empty);
                // 移除定位信息
                if (RemoveTransportPosition(trainPass.CarNumber))
                {
                    output(string.Format("#2轨道移除定位信息;{0}车号识别 车号:{1}", trainPass.MachineCode, trainPass.CarNumber), eOutputType.Normal);
                    return(true);
                }
            }

            return(false);
        }
        /// <summary>
        /// 移除轨道车辆定位信息
        /// </summary>
        /// <param name="transportId"></param>
        public static bool RemoveTransportPosition(string trainNumber)
        {
            CmcsTrainCarriagePass oldtrain = Dbers.GetInstance().SelfDber.Entity <CmcsTrainCarriagePass>("where TrainNumber=:TrainNumber and PassTime>=:PassTime order by PassTime desc", new { TrainNumber = trainNumber, PassTime = DateTime.Now.AddDays(-1) });

            if (oldtrain == null)
            {
                return(false);
            }
            CmcsTransportPosition entity = Dbers.GetInstance().SelfDber.Entity <CmcsTransportPosition>("where TransportId='" + oldtrain.Id + "' order by CreationTime desc");

            if (entity == null)
            {
                return(false);
            }
            return(Dbers.GetInstance().SelfDber.Delete <CmcsTransportPosition>(entity.Id) > 0);
        }
        private void PrintRecvMssg(string str, String machinecode, Action <string, eOutputType> output)
        {
            int res = 0;

            try
            {
                if (str.Length >= 67)
                {
                    string no = str.Substring(5, 2);
                    if (no == "03")
                    {
                        CmcsTrainCarriagePass item = Dbers.GetInstance().SelfDber.Entity <CmcsTrainCarriagePass>("where TrainNumber=:TrainNumber and PassTime=:PassTime", new { TrainNumber = str.Substring(24, 7).Trim(), PassTime = Convert.ToDateTime(str.Substring(str.Length - 30, 19)) });
                        if (item == null)
                        {
                            res += Dbers.GetInstance().SelfDber.Insert <CmcsTrainCarriagePass>(
                                new CmcsTrainCarriagePass
                            {
                                OrderNum    = Convert.ToInt32(str.Substring(0, 2)),
                                CarModel    = str.Substring(2, 5).Trim(),
                                TrainNumber = str.Substring(24, 7).Trim(),
                                PassTime    = Convert.ToDateTime(str.Substring(str.Length - 30, 19)),
                                Speed       = Convert.ToDecimal(str.Substring(31, 3)),
                                MachineCode = machinecode
                            }
                                );
                        }
                        else
                        {
                            item.OrderNum    = Convert.ToInt32(str.Substring(0, 2));
                            item.CarModel    = str.Substring(2, 5).Trim();
                            item.TrainNumber = str.Substring(24, 7).Trim();
                            item.PassTime    = Convert.ToDateTime(str.Substring(str.Length - 30, 19));
                            item.Speed       = Convert.ToDecimal(str.Substring(31, 3));
                            item.MachineCode = machinecode;
                            res += Dbers.GetInstance().SelfDber.Update <CmcsTrainCarriagePass>(item);
                        }
                        output(string.Format("成功读取TCPIP文件车号:{0}通过时间:{1}", str.Substring(24, 7).Trim(), Convert.ToDateTime(str.Substring(str.Length - 30, 19))), eOutputType.Normal);
                    }
                }
            }
            catch (Exception ex)
            {
                output(string.Format("解析报文失败,原因:{0}", ex.ToString()), eOutputType.Error);
            }
        }
        /// <summary>
        /// 修改轨道车辆定位信息,设定为未翻车
        /// </summary>
        /// <param name="transportId"></param>
        public static bool UnTurnTransportPosition(string trainNumber)
        {
            CmcsTrainCarriagePass oldtrain = Dbers.GetInstance().SelfDber.Entity <CmcsTrainCarriagePass>("where TrainNumber=:TrainNumber and PassTime>=:PassTime order by PassTime desc", new { TrainNumber = trainNumber, PassTime = DateTime.Now.AddDays(-1) });

            if (oldtrain == null)
            {
                return(false);
            }
            CmcsTransportPosition entity = Dbers.GetInstance().SelfDber.Entity <CmcsTransportPosition>("where TransportId='" + oldtrain.Id + "' and IsDisCharged=1 order by CreationTime desc");

            if (entity == null)
            {
                return(false);
            }

            entity.IsDisCharged = 0;
            entity.TurnCarDate  = DateTime.MinValue;
            return(Dbers.GetInstance().SelfDber.Update(entity) > 0);
        }
        /// <summary>
        /// 插入定位信息
        /// </summary>
        /// <param name="trackNumber"></param>
        /// <param name="transportid"></param>
        /// <returns></returns>
        public static bool InsertTransportPosition(string trackNumber, string carNumber)
        {
            CmcsTrainCarriagePass transport = Dbers.GetInstance().SelfDber.Entity <CmcsTrainCarriagePass>("where TrainNumber=:TrainNumber and PassTime>=:PassTime order by CreationTime desc", new { TrainNumber = carNumber, PassTime = DateTime.Now.AddDays(-1) });

            if (transport == null)
            {
                return(false);
            }
            CmcsTransportPosition entity = Dbers.GetInstance().SelfDber.Entity <CmcsTransportPosition>("where TransportId='" + transport.Id + "'");

            if (entity != null)
            {
                Dbers.GetInstance().SelfDber.Delete <CmcsTransportPosition>(entity.Id);
            }

            return(Dbers.GetInstance().SelfDber.Insert(new CmcsTransportPosition()
            {
                OrderNumber = GetTransportPositionMaxOrder(),
                TrackNumber = trackNumber,
                TransportId = transport.Id,
                IsDisCharged = 0
            }) > 0);
        }
예제 #8
0
        /// <summary>
        /// 接收车号识别数据,开始翻车逻辑控制
        /// </summary>
        /// <param name="inTrainCarriagePass"></param>
        private void StartTippingTask(CmcsTrainCarriagePass trainCarriagePass)
        {
            Task task = new Task((state) =>
            {
                CmcsTrainCarriagePass inTrainCarriagePass = state as CmcsTrainCarriagePass;
                if (inTrainCarriagePass != null)
                {
                    #region 车号为空时,执行车号补录

                    if (string.IsNullOrEmpty(inTrainCarriagePass.TrainNumber))
                    {
                        Log4Neter.Info(this.trainTipper.EquipmentName + " - 车号识别失败,要求输入车号");

                        this.InvokeEx(() => { Form1.superTabControlManager.ChangeToTab(this.trainTipper.EquipmentCode); });

                        // 弹出输入框,要求输入车厢号
                        FrmInput frmInput = new FrmInput("请输入所翻车厢号", (input) =>
                        {
                            if (string.IsNullOrEmpty(input))
                            {
                                MessageBoxEx.Show("请输入车厢号", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return(false);
                            }

                            if (!this.view_TrainTipperQueue_DF.Any(a => a.TrainNumber == input))
                            {
                                MessageBoxEx.Show("在队列中未找到此车,请重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return(false);
                            }

                            return(true);
                        });

                        if (frmInput.ShowDialog() == DialogResult.OK)
                        {
                            Log4Neter.Info(this.trainTipper.EquipmentName + " - 用户输入:" + frmInput.Input);
                            inTrainCarriagePass.TrainNumber = frmInput.Input;
                        }
                        else
                        {
                            Log4Neter.Info(this.trainTipper.EquipmentName + " - 用户关闭输入窗口");

                            inTrainCarriagePass.DataFlag = 1;
                            Dbers.GetInstance().SelfDber.Update(inTrainCarriagePass);

                            autoResetEvent.Set();
                        };
                    }

                    #endregion

                    Log4Neter.Info(this.trainTipper.EquipmentName + " - 当前车号:" + inTrainCarriagePass.TrainNumber);
                    commonDAO.SetSignalDataValue(this.trainTipper.EquipmentCode, eSignalDataName.当前车号.ToString(), inTrainCarriagePass.TrainNumber);

                    View_TrainTipperQueue selfView_TrainTipperQueue = this.view_TrainTipperQueue_All.FirstOrDefault(a => a.TrainNumber == inTrainCarriagePass.TrainNumber);
                    if (selfView_TrainTipperQueue != null)
                    {
                        commonDAO.SetSignalDataValue(this.trainTipper.EquipmentCode, eSignalDataName.当前车Id.ToString(), selfView_TrainTipperQueue.TransportId);

                        if (selfView_TrainTipperQueue.SampleType != eSamplingType.皮带采样.ToString())
                        {
                            // 采样方案中设置为非火车皮采

                            Log4Neter.Info(this.trainTipper.EquipmentName + " - 采样方案中设置为非皮带采样,SampleType=" + selfView_TrainTipperQueue.SampleType);

                            DialogResult dialogResult = MessageBoxEx2Show("<font size='+2'>车号: <font color='red'>" + selfView_TrainTipperQueue.TrainNumber + "</font><br/><br/>该车为" + selfView_TrainTipperQueue.SampleType + "<br/><br/>点击<font color='red'>[是]</font>立即通知皮带采样机停止采样<br/>然后在采样机成功停止后开始翻车<br/><br/>点击<font color='red'>[否]</font>直接开始翻车<br/><br/>点击<font color='red'>[取消]</font>不做任何处理</font>", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
                            if (dialogResult == DialogResult.Yes)
                            {
                                if (SendSamplerStopCmd(selfView_TrainTipperQueue))
                                {
                                    // 标记为已处理
                                    ToHandled(inTrainCarriagePass.Id, selfView_TrainTipperQueue.Id);
                                }
                            }
                            else if (dialogResult == DialogResult.No)
                            {
                                // 标记为已处理
                                ToHandled(inTrainCarriagePass.Id, selfView_TrainTipperQueue.Id);
                            }
                        }
                        else
                        {
                            if (MessageBoxEx2Show("<font size='+2'>车号: <font color='red'>" + selfView_TrainTipperQueue.TrainNumber + "</font><br/><br/>点击<font color='red'>[确定]</font>立即通知皮带采样机开始采样<br/>确认采样机启动成功后再开始翻车<br/><br/>点击<font color='red'>[取消]</font>不做任何处理</font>", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
                            {
                                if (SendSamplerStartCmd(selfView_TrainTipperQueue))
                                {
                                    // 标记为已处理
                                    ToHandled(inTrainCarriagePass.Id, selfView_TrainTipperQueue.Id);
                                }
                            }
                        }
                    }
                    else
                    {
                        // 未找到此车

                        commonDAO.SetSignalDataValue(this.trainTipper.EquipmentCode, eSignalDataName.当前车Id.ToString(), string.Empty);

                        if (MessageBoxEx2Show("未找到车厢[" + inTrainCarriagePass.TrainNumber + "],是否忽略?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            // 标记车号识别记录为已处理
                            carriageRecognitionerDAO.ChangeTrainCarriagePassToHandled(inTrainCarriagePass.Id);
                        }
                    }
                }

                autoResetEvent.Set();
            }, trainCarriagePass);

            task.Start();
        }
예제 #9
0
        /// <summary>
        /// 同步报文
        /// </summary>
        /// <param name="output"></param>
        /// <returns></returns>
        public List <CmcsTrainCarriagePass> GetDBWInfo(Action <string, eOutputType> output)
        {
            List <CmcsTrainCarriagePass> cmcstraincarriagepasses = new List <CmcsTrainCarriagePass>();
            String interface_dbwdest = CommonDAO.GetInstance().GetAppletConfigString("车号识别文件储存位置");
            int    interface_dbwtime = CommonDAO.GetInstance().GetAppletConfigInt32("车号识别文件读取天数");
            int    res = 0;

            if (Directory.Exists(interface_dbwdest))
            {
                String[] dir = Directory.GetFiles(interface_dbwdest);
                foreach (var diritem in dir)
                {
                    ///解析数据
                    if (File.Exists(diritem) && CheckUseFull(diritem).AddDays(interface_dbwtime) >= DateTime.Now.Date)
                    {
                        String Info = File.ReadAllText(diritem);
                        if (Info.StartsWith("D"))
                        {
                            try
                            {
                                //火车方向
                                String fx = Info.Substring(18, 1) == "0" ? "入厂" : "出厂";
                                //到达时间

                                DateTime ddsj = new DateTime(Convert.ToInt32(Info.Substring(34, 4)), Convert.ToInt32(Info.Substring(38, 2)), Convert.ToInt32(Info.Substring(40, 2)), Convert.ToInt32(Info.Substring(42, 2)), Convert.ToInt32(Info.Substring(44, 2)), Convert.ToInt32(Info.Substring(46, 2)));

                                //通过时间
                                DateTime tgsj = new DateTime(Convert.ToInt32(Info.Substring(50, 4)), Convert.ToInt32(Info.Substring(54, 2)), Convert.ToInt32(Info.Substring(56, 2)), Convert.ToInt32(Info.Substring(58, 2)), Convert.ToInt32(Info.Substring(60, 2)), Convert.ToInt32(Info.Substring(62, 2)));

                                //报告时间
                                DateTime bgsj = new DateTime(Convert.ToInt32(Info.Substring(66, 4)), Convert.ToInt32(Info.Substring(70, 2)), Convert.ToInt32(Info.Substring(72, 2)), Convert.ToInt32(Info.Substring(74, 2)), Convert.ToInt32(Info.Substring(76, 2)), Convert.ToInt32(Info.Substring(78, 2)));

                                //车数
                                int countnum = Convert.ToInt32(Info.Substring(82, 3));
                                //车头
                                int ctnum = Convert.ToInt32(Info.Substring(85, 1));
                                //车中
                                int cznum = Convert.ToInt32(Info.Substring(86, 1));
                                //车尾
                                int cwnum = Convert.ToInt32(Info.Substring(87, 1));
                                if ((int)Info.Substring(88 + 24 * countnum, 1).ToCharArray()[0] == 0x04)
                                {
                                    for (int i = 0; i < countnum; i++)
                                    {
                                        String trainnum = Info.Substring(88 + 24 * i, 24);
                                        //车型
                                        String cx = "";
                                        //车号
                                        String ch = "";
                                        //车类型
                                        String clx = "";
                                        if (trainnum.StartsWith("T"))
                                        {
                                            //车型
                                            cx = trainnum.Substring(1, 6).Trim();
                                            //车号
                                            ch  = trainnum.Substring(7, 7);
                                            clx = "车厢";
                                        }
                                        else if (trainnum.StartsWith("J"))
                                        {
                                            //车型
                                            cx = trainnum.Substring(1, 3);
                                            //车号
                                            ch  = trainnum.Substring(4, 4);
                                            clx = "车头";
                                        }
                                        string pkid = ch + "-" + tgsj.ToString("yyyyMMddHHmmss");
                                        if (clx == "车厢")
                                        {
                                            CmcsTrainCarriagePass item = new CmcsTrainCarriagePass
                                            {
                                                MachineCode = MachineCode_CHSB,
                                                Direction   = fx,
                                                TrainNumber = ch,
                                                PassTime    = tgsj,
                                                DataFlag    = 0
                                            };
                                            cmcstraincarriagepasses.Add(item);
                                        }
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                output(string.Format("解析 {0} 报文失败,原因:{1}", diritem, ex.Message), eOutputType.Error);
                            }
                        }
                    }
                }
            }
            return(cmcstraincarriagepasses);
        }
        /// <summary>
        /// 车辆数据处理_1号车号识别
        /// </summary>
        /// <param name="carSpotsNum">车辆识别器编号</param>
        /// <returns></returns>
        public int CarSpotsHandle1(Action <string, eOutputType> output, int carSpotsNum)
        {
            lock (LockObject)
            {
                int res = 0;
                IList <CmcsTrainRecognition_01> cardata = Dbers.GetInstance().SelfDber.Entities <CmcsTrainRecognition_01>(" where MachineCode like '%" + carSpotsNum + "%' and CrossTime>=to_date('" + DateTime.Now.Date.AddDays(-1) + "','yyyy/mm/dd HH24:MI:SS') and DataFlag=0 and carnumber<>'*' order by CrossTime asc,OrderNum asc");
                bool flag = false;
                foreach (var item in cardata)
                {
                    if (item.Direction == "进")
                    {
                        CmcsTrainWeightRecord transportOver = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>(" where TrainNumber='" + item.CarNumber + "' and IsTurnover='已翻' and ArriveTime>=to_date('" + DateTime.Now.Date.AddDays(-2) + "','yyyy/mm/dd HH24:MI:SS')");
                        CmcsTrainWeightRecord transport     = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>(" where TrainNumber='" + item.CarNumber + "' and IsTurnover='未翻' and ArriveTime>=to_date('" + DateTime.Now.Date.AddDays(-2) + "','yyyy/mm/dd HH24:MI:SS')");
                        if (transport == null)
                        {
                            // 此判断是过滤车辆出厂后立马进厂合并不同轨道车辆的情况,时间相差几分钟
                            if (transportOver != null)
                            {
                                //flag = true;
                            }
                            else
                            {
                                Dbers.GetInstance().SelfDber.Insert(new CmcsTrainWeightRecord()
                                {
                                    PKID         = item.Id,
                                    TrainNumber  = item.CarNumber,
                                    ArriveTime   = item.CrossTime,
                                    TrainType    = item.CarModel.Trim().TrimStart('T'),
                                    IsTurnover   = "未翻",
                                    MachineCode  = "1",
                                    DataFlag     = 0,
                                    TicketWeight = (decimal)CommonDAO.GetInstance().GetTrainRateLoadByTrainType(item.CarModel.Trim().TrimStart('T')),
                                    OrderNumber  = item.OrderNum,
                                    GrossTime    = item.CrossTime,
                                    SkinTime     = item.CrossTime,
                                    LeaveTime    = item.CrossTime,
                                    UnloadTime   = item.CrossTime,
                                });
                            }
                        }

                        CmcsTrainCarriagePass transportPass = Dbers.GetInstance().SelfDber.Entity <CmcsTrainCarriagePass>("where TrainNumber='" + item.CarNumber + "' and PassTime>=to_date('" + DateTime.Now.Date.AddDays(-1) + "','yyyy/mm/dd HH24:MI:SS') order by PassTime desc");
                        if (transportPass == null)
                        {
                            transportPass             = new CmcsTrainCarriagePass();
                            transportPass.TrainNumber = item.CarNumber;
                            transportPass.CarModel    = item.CarModel.Trim().TrimStart('T');
                            transportPass.MachineCode = "1";
                            transportPass.PassTime    = item.CrossTime;
                            transportPass.Direction   = "进厂";
                            transportPass.OrderNum    = item.OrderNum;
                            transportPass.DataFlag    = 0;
                            transportPass.PKID        = item.Id;
                            Dbers.GetInstance().SelfDber.Insert(transportPass);
                        }

                        // 插入定位信息
                        if (InsertTransportPosition("入厂", item.CarNumber))
                        {
                            output(string.Format("入厂轨道插入定位信息;{0}车号识别 车号:{1}", item.MachineCode, item.CarNumber), eOutputType.Normal);
                        }

                        flag = true;
                    }
                    else if (item.Direction == "出")
                    {
                        CmcsTrainWeightRecord trainRecord = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>("where TrainNumber=:TrainNumber order by ArriveTime desc", new { TrainNumber = item.CarNumber });
                        if (trainRecord != null)
                        {
                            trainRecord.LeaveTime = item.CrossTime;
                            Dbers.GetInstance().SelfDber.Update(trainRecord);

                            CmcsTransport transport = Dbers.GetInstance().SelfDber.Entity <CmcsTransport>("where PKID=:PKID order by InfactoryTime desc", new { PKID = item.Id });
                            if (transport != null)
                            {
                                transport.OutfactoryTime = item.CrossTime;
                                Dbers.GetInstance().SelfDber.Update(transport);
                            }
                        }
                        //移除定位信息
                        RemoveTransportPosition(item.CarNumber);
                        flag = true;
                    }

                    if (flag)
                    {
                        //item.DataFlag = 1;
                        Dbers.GetInstance().SelfDber.Execute(" update Cmcstbtrainrecognition_01 set DataFlag=1 where Id='" + item.Id + "'");
                        res++;
                    }
                }
                output(string.Format("读取{0}号车号识别数据{1}条", carSpotsNum, res), eOutputType.Normal);

                return(res);
            }
        }