コード例 #1
0
        /// <summary>
        /// 同步轨道衡数据
        /// </summary>
        /// <param name="output"></param>
        /// <returns></returns>
        public int SyncTrainWeightInfo(Action <string, eOutputType> output)
        {
            int res = 0;
            List <CmcsTrainWeightRecord> list = GetTrainWeightInfo();

            foreach (CmcsTrainWeightRecord item in list)
            {
                if (item.InFactoryDirection == "入厂")
                {
                    CmcsTrainWeightRecord train = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>("where PKID=:PKID", new { PKID = item.PKID });
                    if (train == null)
                    {
                        item.OperDate = DateTime.Now;
                        res          += Dbers.GetInstance().SelfDber.Insert(item);
                    }
                    else
                    {
                        train.SupplierName   = item.SupplierName;
                        train.MineName       = item.MineName;
                        train.FuelKind       = item.FuelKind;
                        train.StationName    = item.StationName;
                        train.MachineCode    = item.MachineCode;
                        train.OrderNumber    = item.OrderNumber;
                        train.TrainNumber    = item.TrainNumber;
                        train.TrainType      = item.TrainType;
                        train.TicketWeight   = item.TicketWeight;
                        train.GrossWeight    = item.GrossWeight;
                        train.SkinWeight     = item.SkinWeight;
                        train.StandardWeight = item.StandardWeight;
                        train.Speed          = item.Speed;
                        train.MesureMan      = item.MesureMan;
                        train.ArriveTime     = item.GrossTime;
                        train.GrossTime      = item.GrossTime;
                        train.SkinTime       = item.SkinTime;
                        train.LeaveTime      = item.LeaveTime;
                        train.UnloadTime     = item.UnloadTime;
                        train.DataFlag       = 0;
                        res += Dbers.GetInstance().SelfDber.Update(train);
                        CommonDAO.GetInstance();
                    }
                }
                else if (item.InFactoryDirection == "出厂")
                {
                    int dayago = CommonDAO.GetInstance().GetCommonAppletConfigInt32("轨道衡回皮间隔天数");
                    CmcsTrainWeightRecord train_Old = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>("where TrainNumber=:TrainNumber and IsSyncTareWeight=0 and GrossTime>:GrossTime1 and GrossTime<:GrossTime2 order by CreateDate desc", new { TrainNumber = item.TrainNumber, GrossTime1 = item.SkinTime.AddDays(-dayago), GrossTime2 = item.SkinTime });
                    if (train_Old != null)
                    {
                        train_Old.SkinTime            = item.GrossTime;
                        train_Old.SkinWeight_Real     = item.GrossWeight;
                        train_Old.LeaveTime           = train_Old.SkinTime;
                        train_Old.UnloadTime          = item.UnloadTime;
                        train_Old.StandardWeight_Real = train_Old.GrossWeight - train_Old.SkinWeight_Real;
                        train_Old.IsSyncTareWeight    = 1;
                        res += Dbers.GetInstance().SelfDber.Update(train_Old);
                    }
                }
            }
            output(string.Format("同步轨道衡数据 {0} 条( 第三方 > 集中管控 )", res), eOutputType.Normal);
            return(res);
        }
コード例 #2
0
        void change()
        {
            if (newcmcstrainwatchs != null && newcmcstrainwatchs.Count != 0)
            {
                label1.Text = "车号:" + newcmcstrainwatchs[SelectedIndex].TheTrainWeightRecord.TrainNumber + " 位置:" + newcmcstrainwatchs[SelectedIndex].CatchType + " 时间:" + newcmcstrainwatchs[SelectedIndex].CatchTime.ToString("yyyy-MM-dd HH:mm:ss");

                try
                {
                    Image  image    = Image.FromStream(System.Net.WebRequest.Create(newcmcstrainwatchs[SelectedIndex].CatchDest).GetResponse().GetResponseStream());
                    Image  newimage = pictureBox1.Image;
                    Size   _size    = new Size(pictureBox1.Width, pictureBox1.Height);
                    Bitmap _image   = new Bitmap(image, _size);
                    pictureBox1.Image = _image;
                }
                catch (Exception ex)
                {
                    Log4Neter.Error("获取火车入厂抓拍照片", ex);
                }
            }
            else
            {
                CmcsTrainWeightRecord cmcstrainweightrecord = Dbers.GetInstance().SelfDber.Get <CmcsTrainWeightRecord>(Id);
                if (cmcstrainweightrecord != null)
                {
                    label1.Text = "车号:" + cmcstrainweightrecord.TrainNumber + " 位置: 时间:-------------------";
                }
                else
                {
                    label1.Text = "车号:------- 位置: 时间:-------------------";
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// 1号车号识别
        /// </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 CarSpot1Data(Action <string, eOutputType> output, CmcsTrainRecognition trainPass)
        {
            int res = 0;

            if (trainPass.Direction == "进厂")
            {
                CmcsTrainWeightRecord transportOver = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>(" where TrainNumber='" + trainPass.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='" + trainPass.CarNumber + "' and IsTurnover='未翻' and ArriveTime>=to_date('" + DateTime.Now.Date.AddDays(-2) + "','yyyy/mm/dd HH24:MI:SS')");
                if (transport == null)
                {
                    // 此判断是过滤车辆出厂后立马进厂合并不同轨道车辆的情况,时间相差几分钟
                    if (transportOver != null)
                    {
                        return(true);
                    }

                    res += Dbers.GetInstance().SelfDber.Insert(new CmcsTrainWeightRecord()
                    {
                        PKID         = trainPass.Id,
                        TrainNumber  = trainPass.CarNumber,
                        ArriveTime   = trainPass.CrossTime,
                        TrainType    = trainPass.CarModel,
                        IsTurnover   = "未翻",
                        MachineCode  = trainPass.MachineCode,
                        DataFlag     = 0,
                        TicketWeight = (decimal)CommonDAO.GetInstance().GetTrainRateLoadByTrainType(trainPass.CarModel),
                        OrderNumber  = trainPass.OrderNum,
                        GrossTime    = trainPass.CrossTime,
                        SkinTime     = trainPass.CrossTime,
                        LeaveTime    = trainPass.CrossTime,
                        UnloadTime   = trainPass.CrossTime,
                    });
                    return(true);
                }
            }
            else if (trainPass.Direction == "出厂")
            {
                CmcsTrainWeightRecord trainRecord = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>("where TrainNumber=:TrainNumber order by ArriveTime desc", new { TrainNumber = trainPass.CarNumber });
                if (trainRecord != null)
                {
                    trainRecord.LeaveTime = trainPass.CrossTime;
                    Dbers.GetInstance().SelfDber.Update(trainRecord);

                    CmcsTransport transport = Dbers.GetInstance().SelfDber.Entity <CmcsTransport>("where PKID=:PKID order by InfactoryTime desc", new { PKID = trainPass.Id });
                    if (transport != null)
                    {
                        transport.OutfactoryTime = trainPass.CrossTime;
                        Dbers.GetInstance().SelfDber.Update(transport);
                    }
                }
                //移除定位信息
                RemoveTransportPosition(trainPass.CarNumber);
                return(true);
            }
            output(string.Format("向{0}翻车衡发送数据{1}条", trainPass.MachineCode, res), eOutputType.Normal);
            return(false);
        }
コード例 #4
0
 /// <summary>
 /// 生成火车进厂记录的装车线记录
 /// </summary>
 /// <param name="trainWeightRecord"></param>
 /// <returns></returns>
 public void CreateTrainLine(CmcsTrainWeightRecord trainWeightRecord)
 {
     Dbers.GetInstance().SelfDber.Insert(new CmcsTrainLine
     {
         OrderNumber         = 0,
         StartTime           = trainWeightRecord.ArriveTime,
         EndTime             = trainWeightRecord.ArriveTime.AddSeconds(10),
         Height              = "5.1|5.7|5.5|5.8|5.5|5.5|5.8|5.8|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|5.5|",
         TrainWeightRecordId = trainWeightRecord.Id
     });
 }
コード例 #5
0
        /// <summary>
        /// 根据火车记录更新批次明细
        /// </summary>
        /// <param name="trainWeightRecord"></param>
        /// <returns></returns>
        public bool UpdateTransportByTrainWeightRecord(CmcsTrainWeightRecord trainWeightRecord)
        {
            CmcsTransport transport = SelfDber.Entity <CmcsTransport>("where PKID=:PKID", new { PKID = trainWeightRecord.PKID });

            if (transport != null)
            {
                transport.SkinWeight     = trainWeightRecord.SkinWeight;
                transport.TareDate       = trainWeightRecord.SkinTime;
                transport.OutFactoryTime = trainWeightRecord.SkinTime;
                transport.StandardWeight = trainWeightRecord.StandardWeight;
                transport.CheckQty       = transport.StandardWeight;
                transport.QtyHave        = transport.StandardWeight;
                transport.MarginWeight   = transport.StandardWeight - transport.TicketWeight;
                return(SelfDber.Update(transport) > 0 && commonDAO.UpdateBatchByTransport(transport.InFactoryBatchId));
            }
            return(false);
        }
コード例 #6
0
        private void superGridControl1_CellMouseDown(object sender, GridCellMouseEventArgs e)
        {
            if (e.GridCell.ColumnIndex == -1 || e.GridCell.GridRow.Index == -1)
            {
                return;
            }

            SuperGridControl      sgc    = (SuperGridControl)sender;
            CmcsTrainWeightRecord entity = Dbers.GetInstance().SelfDber.Get <CmcsTrainWeightRecord>(sgc.PrimaryGrid.GetCell(e.GridCell.GridRow.Index, 13).Value.ToString());

            if (entity == null)
            {
                return;
            }
            String newid = sgc.PrimaryGrid.GetCell(e.GridCell.GridRow.Index, 13).Value.ToString();

            switch (sgc.PrimaryGrid.GetCell(e.GridCell.GridRow.Index, e.GridCell.ColumnIndex).NullString)
            {
            case "抓拍":
                if (Dbers.GetInstance().SelfDber.Entities <CmcsTrainWatch>(String.Format(" where TrainWeightRecordId='{0}'", newid)).Count > 0)
                {
                    FrmWeightBridgeLoad_Pic frm1 = new FrmWeightBridgeLoad_Pic(newid);
                    if (frm1.ShowDialog() == DialogResult.OK)
                    {
                    }
                }
                else
                {
                }
                break;

            case "装车线":
                if (Dbers.GetInstance().SelfDber.Entities <CmcsTrainLine>(String.Format(" where TrainWeightRecordId='{0}'", newid)).Count > 0)
                {
                    FrmWeightBridgeLoad_Line frm = new FrmWeightBridgeLoad_Line(newid);
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                    }
                }
                else
                {
                }
                break;
            }
        }
コード例 #7
0
        /// <summary>
        /// 生成火车进厂记录的抓拍记录
        /// </summary>
        /// <param name="trainWeightRecord"></param>
        /// <returns></returns>
        public void CreateTrainWatch(CmcsTrainWeightRecord trainWeightRecord)
        {
            Dbers.GetInstance().SelfDber.Insert(new CmcsTrainWatch
            {
                OrderNumber         = 0,
                CatchDest           = "http://10.36.2.137/Pictures/1.jpg",
                CatchTime           = trainWeightRecord.ArriveTime,
                CatchType           = "车顶抓拍",
                TrainWeightRecordId = trainWeightRecord.Id
            });

            Dbers.GetInstance().SelfDber.Insert(new CmcsTrainWatch
            {
                OrderNumber         = 1,
                CatchDest           = "http://10.36.2.137/Pictures/2.jpg",
                CatchTime           = trainWeightRecord.ArriveTime,
                CatchType           = "侧面抓拍",
                TrainWeightRecordId = trainWeightRecord.Id
            });
        }
コード例 #8
0
        /// <summary>
        /// 改变火车入厂记录记录的翻车状态
        /// </summary>
        /// <param name="trainWeightRecordId">火车入厂记录Id</param>
        /// <param name="trainTipperTurnoverStatus">翻车状态</param>
        /// <returns></returns>
        public bool ChangeTrainWeightRecordIsTurnover(string trainWeightRecordId, eTrainTipperTurnoverStatus trainTipperTurnoverStatus)
        {
            CmcsTrainWeightRecord trainWeightRecord = Dbers.GetInstance().SelfDber.Get <CmcsTrainWeightRecord>(trainWeightRecordId);

            if (trainWeightRecord != null)
            {
                if (trainTipperTurnoverStatus == eTrainTipperTurnoverStatus.已翻)
                {
                    trainWeightRecord.UnloadTime = DateTime.Now;

                    // 修改批次明细的卸车时间
                    Dbers.GetInstance().SelfDber.Execute("update " + EntityReflectionUtil.GetTableName <CmcsTransport>() + " set UnloadTime=sysdate where PKID=:PKID", new { PKID = trainWeightRecord.Id });
                }

                trainWeightRecord.IsTurnover = trainTipperTurnoverStatus.ToString();
                return(Dbers.GetInstance().SelfDber.Update(trainWeightRecord) > 0);
            }

            return(false);
        }
コード例 #9
0
        /// <summary>
        /// 火车进厂记录数据生成
        /// </summary>
        /// <param name="recordCount"></param>
        /// <param name="machineCode"></param>
        /// <param name="dtInFactoryTime"></param>
        /// <param name="supplierName"></param>
        /// <param name="mineName"></param>
        /// <param name="stationName"></param>
        /// <param name="fuelKindName"></param>
        /// <returns></returns>
        public bool CreateTrainWeightRecords(int recordCount, string machineCode, DateTime dtInFactoryTime, string supplierName, string mineName, string stationName, string fuelKindName)
        {
            for (int i = 0; i < recordCount; i++)
            {
                string id = Guid.NewGuid().ToString();

                CmcsTrainWeightRecord entity = new CmcsTrainWeightRecord
                {
                    Id             = id,
                    PKID           = id,
                    ArriveTime     = dtInFactoryTime,
                    DataFlag       = 0,
                    FuelKind       = fuelKindName,
                    MachineCode    = machineCode,
                    MesureMan      = "无人值守",
                    MineName       = mineName,
                    StationName    = stationName,
                    SupplierName   = supplierName,
                    TrainType      = "C64",
                    TrainNumber    = id.Substring(0, 8),
                    Speed          = 0.6m,
                    GrossTime      = dtInFactoryTime,
                    SkinTime       = dtInFactoryTime.AddMinutes(5),
                    TicketWeight   = 51,
                    GrossWeight    = 70 + i / 10m,
                    SkinWeight     = 20 + i / 10m,
                    StandardWeight = 50,
                    UnloadTime     = dtInFactoryTime.AddMinutes(20),
                    LeaveTime      = dtInFactoryTime.AddMinutes(25),
                    OrderNumber    = i,
                    IsTurnover     = eTrainTipperTurnoverStatus.待翻.ToString()
                };

                Dbers.GetInstance().SelfDber.Insert(entity);

                CreateTrainWatch(entity);
                CreateTrainLine(entity);
            }

            return(true);
        }
コード例 #10
0
        public void BindData()
        {
            string tempSqlWhere = this.SqlWhere;
            List <CmcsTrainWeightRecord> list = Dbers.GetInstance().SelfDber.Entities <CmcsTrainWeightRecord>(" where GrossTime>=to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + "','yyyy-mm-dd') order by OrderNumber desc");

            CmcsTrainWeightRecord model = new CmcsTrainWeightRecord();

            model.TicketWeight   = list.Sum(t => t.TicketWeight);
            model.StandardWeight = list.Sum(t => t.StandardWeight);
            model.SkinWeight     = list.Sum(t => t.SkinWeight);
            model.GrossWeight    = list.Sum(t => t.GrossWeight);
            model.TrainNumber    = "总计";
            list.Add(model);

            superGridControl1.PrimaryGrid.DataSource = list;
            if (list.Count > 0)
            {
                Id = list[0].Id;
            }
            createinfo();
        }
コード例 #11
0
        public void BindData()
        {
            string tempSqlWhere = this.SqlWhere;
            List <CmcsTrainWeightRecord> list = Dbers.GetInstance().SelfDber.ExecutePager <CmcsTrainWeightRecord>(PageSize, CurrentIndex, tempSqlWhere + " order by OrderNumber desc");

            GetTotalCount(tempSqlWhere);

            CmcsTrainWeightRecord model = new CmcsTrainWeightRecord();

            model.TicketWeight   = list.Sum(t => t.TicketWeight);
            model.StandardWeight = list.Sum(t => t.StandardWeight);
            model.SkinWeight     = list.Sum(t => t.SkinWeight);
            model.GrossWeight    = list.Sum(t => t.GrossWeight);
            model.TrainNumber    = "总计";
            list.Add(model);

            superGridControl1.PrimaryGrid.DataSource = list;
            PagerControlStatue();

            lblPagerInfo.Text = string.Format("共 {0} 条记录,每页 {1} 条,共 {2} 页,当前第 {3} 页", TotalCount, PageSize, PageCount, CurrentIndex + 1);
        }
コード例 #12
0
        private void superGridControl1_DataBindingComplete_1(object sender, GridDataBindingCompleteEventArgs e)
        {
            foreach (GridRow item in e.GridPanel.Rows)
            {
                try
                {
                    CmcsTrainWeightRecord TrainWeight = item.DataItem as CmcsTrainWeightRecord;

                    item.Cells["cellTicketWeight"].Value   = TrainWeight.TicketWeight.ToString("f2");
                    item.Cells["cellGrossWeight"].Value    = TrainWeight.GrossWeight.ToString("f2");
                    item.Cells["cellSkinWeight"].Value     = TrainWeight.SkinWeight.ToString("f2");
                    item.Cells["cellStandardWeight"].Value = TrainWeight.StandardWeight.ToString("f2");

                    if (TrainWeight.TrainNumber != "总计")
                    {
                        item.Cells["cellSpeed"].Value     = TrainWeight.Speed.ToString("f2");
                        item.Cells["cellGrossTime"].Value = TrainWeight.GrossTime.Year > 2010 ? TrainWeight.GrossTime.ToShortDateString() : "";
                    }
                }
                catch (Exception)
                {
                }
            }
        }
コード例 #13
0
        /// <summary>
        /// 同步翻车衡过衡数据
        /// </summary>
        /// <param name="output"></param>
        /// <returns></returns>
        public int SyncLwCarsInfo(Action <string, eOutputType> output)
        {
            int res = 0;

            IList <CarInfoMutual> carInfos = DcDbers.GetInstance().TurnCarWeighterMutualDber.Entities <CarInfoMutual>(" where DataFlag=1 and SuttleWeight>0 and CreateDate>=to_date('" + DateTime.Now.Date.AddDays(-2) + "','yyyy/mm/dd HH24:MI:SS')");

            foreach (var item in carInfos)
            {
                //同步到批次明细
                CmcsTransport transport = Dbers.GetInstance().SelfDber.Entity <CmcsTransport>(" where TransportNo=:TransportNo and InfactoryTime>=:InfactoryTime ", new { TransportNo = item.CarNumber, InfactoryTime = DateTime.Now.Date.AddDays(-2) });
                if (transport != null && !string.IsNullOrEmpty(transport.InFactoryBatchId))
                {
                    if (item.GrossWeight != 0 && transport.GrossQty == 0)
                    {
                        transport.GrossQty = (decimal)item.GrossWeight;
                    }

                    if (item.TareWeight != 0 && transport.SkinQty == 0)
                    {
                        transport.SkinQty = (decimal)item.TareWeight;
                    }

                    if (item.SuttleWeight != 0 && transport.SuttleQty == 0)
                    {
                        transport.SuttleQty = (decimal)item.SuttleWeight;
                        transport.MarginQty = (decimal)(item.SuttleWeight - item.TicketWeight);
                    }
                    transport.MeasureMan = "自动";
                    transport.IsDeleted  = item.CancelSign;
                    transport.ArriveDate = item.WeightDate;
                    transport.TareDate   = item.WeightDate.AddMinutes(3).AddSeconds(1.2);
                    transport.TrackCode  = item.TurnCarNumber == "#1" ? "#4" : "#2";
                    if (item.TurnCarNumber == "#1")
                    {
                        CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_TrunOver_1, eSignalDataName.当前车号.ToString(), string.Empty);
                    }
                    else
                    {
                        CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_TrunOver_2, eSignalDataName.当前车号.ToString(), string.Empty);
                    }

                    res += Dbers.GetInstance().SelfDber.Update(transport);

                    //同步到轨道衡数据表
                    CmcsTrainWeightRecord trainRecord = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>("where TrainNumber=:TrainNumber and ArriveTime>=:ArriveTime", new { TrainNumber = item.CarNumber, ArriveTime = DateTime.Now.Date.AddDays(-2) });
                    CmcsRCSampling        sampling    = Dbers.GetInstance().SelfDber.Entity <CmcsRCSampling>("where InFactoryBatchId=:InFactoryBatchId order by SamplingDate", new { InFactoryBatchId = transport.InFactoryBatchId });
                    if (trainRecord != null)
                    {
                        trainRecord.TrainTipperMachineCode = item.TurnCarNumber;
                        trainRecord.FuelKind     = transport.TheBatch.FuelKindName;
                        trainRecord.MineName     = sampling != null ? sampling.SampleCode : "";
                        trainRecord.SupplierName = "";
                        trainRecord.StationName  = transport.TheBatch.TheStation.Name;

                        trainRecord.SerialNumber           = item.RecordId;
                        trainRecord.TicketWeight           = (decimal)item.TicketWeight;
                        trainRecord.GrossTime              = item.WeightDate;
                        trainRecord.GrossWeight            = (decimal)item.GrossWeight;
                        trainRecord.SkinTime               = item.WeightDate.AddMinutes(3).AddSeconds(1.2);
                        trainRecord.SkinWeight             = (decimal)item.TareWeight;
                        trainRecord.StandardWeight         = (decimal)item.SuttleWeight;
                        trainRecord.MarginWeight           = trainRecord.StandardWeight - trainRecord.TicketWeight - trainRecord.DeductWeight;
                        trainRecord.MesureMan              = "自动";
                        trainRecord.TrainTipperMachineCode = item.TurnCarNumber;
                        trainRecord.MachineCode            = item.TurnCarNumber == "#1" ? "#4" : "#2";
                        trainRecord.IsTurnover             = "已翻";
                        trainRecord.UnloadTime             = item.WeightDate;

                        Dbers.GetInstance().SelfDber.Update(trainRecord);
                    }
                }

                item.DataFlag = 2;
                DcDbers.GetInstance().TurnCarWeighterMutualDber.Update(item);
            }
            output(string.Format("同步翻车衡数据 {0} 条(第三方 > 集中管控)", res), eOutputType.Normal);
            return(res);
        }
コード例 #14
0
        /// <summary>
        /// 解析报文数据
        /// </summary>
        /// <returns></returns>
        public List <CmcsTrainWeightRecord> GetTrainWeightInfo()
        {
            String interface_path = CommonDAO.GetInstance().GetCommonAppletConfigString("轨道衡报文路径");
            int    interface_day  = CommonDAO.GetInstance().GetCommonAppletConfigInt32("轨道衡数据读取天数");

            List <CmcsTrainWeightRecord> items = new List <CmcsTrainWeightRecord>();
            List <string> st = new List <string>();

            for (int i = 0; i <= interface_day; i++)
            {
                String[] directory = Directory.GetFiles(interface_path, String.Format("{0}_*", DateTime.Now.AddDays(-i).ToString("yyMMdd")));
                st.AddRange(directory);
            }
            foreach (var item in st)
            {
                String bw = File.ReadAllText(item, Encoding.GetEncoding("gb2312"));
                //if (bw.Contains("*"))
                //    continue;
                String[] strs = bw.Split(new string[] { "\r\n" }, StringSplitOptions.None);
                DateTime dt   = new DateTime(2000, 1, 1);
                String   fx   = "";
                String   name = "";
                for (int i = 0; i < strs.Count(); i++)
                {
                    if (i == 1)
                    {
                        if (strs[i].Contains("<--"))
                        {
                            fx = "出厂";
                        }
                        else if (strs[i].Contains("-->"))
                        {
                            fx = "入厂";
                        }
                    }
                    if (i == 3)
                    {
                        string ss = DateTime.Now.ToString("yyyy").Substring(0, 2) + strs[i].Substring(strs[i].IndexOf(':') + 1, strs[i].Length - strs[i].IndexOf(':') - 1);
                        ss = ss.Substring(0, 4) + "-" + ss.Substring(4, 2) + "-" + ss.Substring(6, 2) + " " + ss.Substring(9, 2) + ":" + ss.Substring(11, 2) + ":" + ss.Substring(13, 2);
                        DateTime.TryParse(ss, out dt);
                    }
                    if (i >= 5)
                    {
                        String[] ss = strs[i].Split(',');
                        if (ss.Count() >= 10)
                        {
                            CmcsTrainWeightRecord tw = new CmcsTrainWeightRecord();
                            int twOrderNumber;
                            if (int.TryParse(ss[0].Trim(), out twOrderNumber))
                            {
                                tw.OrderNumber = twOrderNumber;
                            }
                            tw.TrainNumber = ss[1].Trim();
                            Decimal twGrossWeight;
                            if (Decimal.TryParse(ss[2].Trim(), out twGrossWeight))
                            {
                                if ((twGrossWeight < 25 && fx == "入厂") || (twGrossWeight > 25 && fx == "出厂") || twGrossWeight == 0)
                                {
                                    continue;
                                }
                                tw.GrossWeight = twGrossWeight;
                            }
                            Decimal twTareWeight;
                            if (Decimal.TryParse(ss[3].Trim(), out twTareWeight))
                            {
                                tw.SkinWeight = twTareWeight;//不同步皮重
                            }
                            Decimal twSuttleWeight;
                            if (Decimal.TryParse(ss[4].Trim(), out twSuttleWeight))
                            {
                                tw.StandardWeight = twSuttleWeight;
                            }
                            tw.SupplierName = ss[6].Trim();
                            decimal ticketWeight;
                            if (Decimal.TryParse(ss[8].Trim(), out ticketWeight))
                            {
                                tw.TicketWeight = ticketWeight;
                            }
                            Decimal twSpeed;
                            if (Decimal.TryParse(ss[9].Trim(), out twSpeed))
                            {
                                tw.Speed = twSpeed;
                            }
                            tw.TrainType          = ss[10].Trim();
                            tw.PKID               = dt.ToString("yyyyMMddHHmmss") + "-" + tw.OrderNumber;
                            tw.GrossTime          = dt;
                            tw.ArriveTime         = tw.GrossTime;
                            tw.SkinTime           = dt;
                            tw.LeaveTime          = dt;
                            tw.MesureMan          = name;
                            tw.InFactoryDirection = fx;
                            tw.MachineCode        = "轨道衡";
                            items.Add(tw);
                        }
                    }
                }
            }
            return(items);
        }
コード例 #15
0
        /// <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);
            }
        }
コード例 #16
0
        /// <summary>
        /// 同步车号识别数据
        /// </summary>
        /// <param name="output"></param>
        /// <returns></returns>
        public void SyncTrainRecognitionInfo(Action <string, eOutputType> output)
        {
            CmcsTrainRecognition train = Dbers.GetInstance().SelfDber.Entity <CmcsTrainRecognition>("where Status=0 and MachineCode=1 order by CrossTime desc");

            CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_Recognition_1, eSignalDataName.当前车号.ToString(), train != null ? train.CarNumber : "");

            CmcsTrainRecognition train2 = Dbers.GetInstance().SelfDber.Entity <CmcsTrainRecognition>("where Status=0 and MachineCode=2 order by CrossTime desc");

            CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_Recognition_2, eSignalDataName.当前车号.ToString(), train2 != null ? train2.CarNumber : "");

            int CrossNumber = Dbers.GetInstance().SelfDber.Count <CmcsTrainRecognition>("where CrossTime>=:CrossTime and MachineCode=1 order by CrossTime desc", new { CrossTime = DateTime.Now.Date });

            CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_Recognition_1, eSignalDataName.当日已过车数.ToString(), CrossNumber.ToString());

            int CrossNumber2 = Dbers.GetInstance().SelfDber.Count <CmcsTrainRecognition>("where CrossTime>=:CrossTime and MachineCode=2 order by CrossTime desc", new { CrossTime = DateTime.Now.Date });

            CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_Recognition_2, eSignalDataName.当日已过车数.ToString(), CrossNumber2.ToString());

            if (train != null)
            {
                CmcsTrainWeightRecord trainWeight = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>("where TrainNumber=:TrainNumber and GrossTime<:GrossTime and GrossWeight=0 order by GrossTime desc", new { TrainNumber = train.CarNumber, GrossTime = train.CrossTime });
                CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_Recognition_2, eSignalDataName.当前记录Id.ToString(), trainWeight != null ? trainWeight.PKID : "");
            }
            if (train2 != null)
            {
                CmcsTrainWeightRecord trainWeight2 = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>("where TrainNumber=:TrainNumber and GrossTime<:GrossTime and GrossWeight=0 order by GrossTime desc", new { TrainNumber = train2.CarNumber, GrossTime = train2.CrossTime });
                CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_Recognition_2, eSignalDataName.当前记录Id.ToString(), trainWeight2 != null ? trainWeight2.PKID : "");
            }

            //入场总车数
            int WeightTotal = CommonDAO.GetInstance().SelfDber.Count <CmcsTrainWeightRecord>("where ArriveTime>=:ArriveTime", new { ArriveTime = DateTime.Now.Date });
            //翻车总车数
            int GrossTotal = CommonDAO.GetInstance().SelfDber.Count <CmcsTrainRecognition>("where CrossTime>=:CrossTime ", new { CrossTime = DateTime.Now.Date });

            //待翻车数
            CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_TrunOver, eSignalDataName.当日待翻车数.ToString(), (WeightTotal - GrossTotal).ToString());

            //检测火车入场时间
            IList <CmcsTrainWeightRecord> list = CommonDAO.GetInstance().SelfDber.Entities <CmcsTrainWeightRecord>("where ArriveTime>=:ArriveTime", new { ArriveTime = DateTime.Now.Date });

            if (list != null)
            {
                IList <CmcsTrainWeightRecord> list_over = list.Where(a => (DateTime.Now - a.ArriveTime).Hours > CommonDAO.GetInstance().GetCommonAppletConfigInt32("火车入场最长时间")).ToList();
                if (list_over != null && list_over.Count > 0)
                {
                    string msgContent = string.Empty;
                    if (list_over.Count < 6)
                    {
                        msgContent = "火车入场超时:";
                        IList <string> TrainNumbers = list_over.Select(a => a.TrainNumber).ToList();
                        foreach (string item in TrainNumbers)
                        {
                            msgContent += item + ",";
                        }
                        msgContent = msgContent.TrimEnd(',');
                    }
                    else
                    {
                        msgContent = string.Format("火车入场:{0}节车厢超时,请到火车入场列表查看", list_over.Count);
                    }
                    CommonDAO.GetInstance().SaveSysMessage("轨道衡", msgContent);
                }
            }
        }
コード例 #17
0
        /// <summary>
        /// 同步轨道衡过衡数据,并在火车出厂后将皮重回写
        /// </summary>
        /// <param name="output"></param>
        /// <returns></returns>
        public int SyncLwCarsInfo(Action <string, eOutputType> output)
        {
            int       res    = 0;
            DataTable result = getData(DcDbers.GetInstance().WeightBridger_Dber1);

            foreach (DataRow row in result.Rows)
            {
                string pKId = getDateTime(row["时间"].ToString()) + "-" + row["车号"].ToString(); //时间+车号组装成唯一标识
                CmcsTrainWeightRecord trainWeightRecord = Dbers.GetInstance().SelfDber.Entity <CmcsTrainWeightRecord>("where PKID=:PKID", new { PKID = pKId });
                if (trainWeightRecord == null)
                {
                    res += Dbers.GetInstance().SelfDber.Insert <CmcsTrainWeightRecord>(
                        new CmcsTrainWeightRecord
                    {
                        PKID                   = pKId,
                        OrderNumber            = Convert.ToInt32(row["序号"].ToString()),
                        SupplierName           = row["供煤单位"].ToString(),
                        MineName               = row["矿点"].ToString(),
                        FuelKind               = row["煤种"].ToString(),
                        StationName            = row["发站"].ToString(),
                        MachineCode            = row["设备编号"].ToString(),
                        TrainNumber            = row["车号"].ToString(),
                        TrainType              = row["车型"].ToString(),
                        TicketWeight           = Convert.ToDecimal(row["票重"]),
                        GrossWeight            = Convert.ToDecimal(row["毛重"]),
                        SkinWeight             = Convert.ToDecimal(row["皮重"]),
                        StandardWeight         = Convert.ToDecimal(row["净重"]),
                        Speed                  = Convert.ToDecimal(row["车速"]),
                        MesureMan              = row["过衡人"].ToString(),
                        ArriveTime             = Convert.ToDateTime(getDateTime(row["入厂时间"].ToString())),
                        GrossTime              = Convert.ToDateTime(getDateTime(row["毛重时间"].ToString())),
                        SkinTime               = Convert.ToDateTime(getDateTime(row["皮重时间"].ToString())),
                        LeaveTime              = Convert.ToDateTime(getDateTime(row["出厂时间"].ToString())),
                        UnloadTime             = Convert.ToDateTime(getDateTime(row["卸车时间"].ToString())),
                        TrainTipperMachineCode = row["翻车机编号"].ToString(),
                        IsTurnover             = row["翻车标识"].ToString(),
                        DataFlag               = 0
                    }
                        );
                }
                else
                {
                    trainWeightRecord.OrderNumber = Convert.ToInt32(row["序号"].ToString());
                    if (!String.IsNullOrEmpty(row["车号"].ToString()))
                    {
                        trainWeightRecord.TrainNumber = row["车号"].ToString();
                    }

                    trainWeightRecord.SupplierName           = row["供煤单位"].ToString();
                    trainWeightRecord.MineName               = row["矿点"].ToString();
                    trainWeightRecord.FuelKind               = row["煤种"].ToString();
                    trainWeightRecord.StationName            = row["发站"].ToString();
                    trainWeightRecord.MachineCode            = row["设备编号"].ToString();
                    trainWeightRecord.TrainType              = row["车型"].ToString();
                    trainWeightRecord.TicketWeight           = Convert.ToDecimal(row["票重"]);
                    trainWeightRecord.GrossWeight            = Convert.ToDecimal(row["毛重"]);
                    trainWeightRecord.SkinWeight             = Convert.ToDecimal(row["皮重"]);
                    trainWeightRecord.StandardWeight         = Convert.ToDecimal(row["净重"]);
                    trainWeightRecord.Speed                  = Convert.ToDecimal(row["车速"]);
                    trainWeightRecord.MesureMan              = row["过衡人"].ToString();
                    trainWeightRecord.ArriveTime             = Convert.ToDateTime(getDateTime(row["入厂时间"].ToString()));
                    trainWeightRecord.GrossTime              = Convert.ToDateTime(getDateTime(row["毛重时间"].ToString()));
                    trainWeightRecord.SkinTime               = Convert.ToDateTime(getDateTime(row["皮重时间"].ToString()));
                    trainWeightRecord.LeaveTime              = Convert.ToDateTime(getDateTime(row["出厂时间"].ToString()));
                    trainWeightRecord.UnloadTime             = Convert.ToDateTime(getDateTime(row["卸车时间"].ToString()));
                    trainWeightRecord.TrainTipperMachineCode = row["翻车机编号"].ToString();
                    trainWeightRecord.IsTurnover             = row["翻车标识"].ToString();
                    trainWeightRecord.DataFlag               = 0;
                    res += Dbers.GetInstance().SelfDber.Update <CmcsTrainWeightRecord>(trainWeightRecord);
                }
                if (res > 0 && String.IsNullOrEmpty(row["车号"].ToString()))
                {
                    CommonDAO.GetInstance().SaveSysMessage(eMessageType.轨道衡.ToString(), "车号为空请补录!", eMessageType.轨道衡.ToString());
                }
            }
            output(string.Format("同步轨道衡数据 {0} 条(第三方 > 集中管控)", res), eOutputType.Normal);
            return(res);
        }