/// <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); }
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 = "车号:------- 位置: 时间:-------------------"; } } }
/// <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); }
/// <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 }); }
/// <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); }
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; } }
/// <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 }); }
/// <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); }
/// <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); }
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(); }
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); }
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) { } } }
/// <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); }
/// <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); }
/// <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); } }
/// <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); } } }
/// <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); }