/// <summary> /// 插入车辆信息至翻车衡交互数据库 /// </summary> /// <param name="trunNumber"></param> /// <param name="transport"></param> public static bool InsertCarToTurnCarWeighter(string trunNumber, CmcsTransport transport) { if (transport != null && !string.IsNullOrEmpty(transport.InFactoryBatchId)) { CmcsRCSampling sampling = Dbers.GetInstance().SelfDber.Entity <CmcsRCSampling>("where InFactoryBatchId=:InFactoryBatchId and SamplingType not like '%抽查%' order by SamplingDate desc", new { InFactoryBatchId = transport.InFactoryBatchId }); if (sampling != null) { if (DcDbers.GetInstance().TurnCarWeighterMutualDber.Entity <CarInfoMutual>(" where TurnCarNumber='" + trunNumber + "' and CarNumber='" + transport.TransportNo + "' and DataFlag=0 ") == null) { DcDbers.GetInstance().TurnCarWeighterMutualDber.Execute(" update CarInfoMutual set DataFlag=1 where TurnCarNumber='" + trunNumber + "'"); return(DcDbers.GetInstance().TurnCarWeighterMutualDber.Insert(new CarInfoMutual() { TurnCarNumber = trunNumber, CarNumber = transport.TransportNo, SampleBillNumber = sampling.SampleCode, InFactoryDate = transport.InfactoryTime, TicketWeight = (double)transport.TicketQty, CreateDate = System.DateTime.Now, WeightDate = DateTime.Now, DataFlag = 0, CancelSign = 0 }) > 0); } } } return(false); }
/// <summary> /// 5号车号识别 /// </summary> /// <param name="carNumber">车号</param> /// <param name="carDate">时间</param> /// <param name="direction">方向</param> /// <param name="carmodel">车型</param> /// <returns></returns> public static bool CarSpot5Data(Action <string, eOutputType> output, CmcsTrainRecognition trainPass) { CmcsTransport transport = Dbers.GetInstance().SelfDber.Entity <CmcsTransport>("where TransportNo='" + trainPass.CarNumber + "' and InfactoryTime>=to_date('" + DateTime.Now.Date.AddDays(-1) + "','yyyy/mm/dd HH24:MI:SS') order by InfactoryTime desc"); if (transport == null) { return(false); } if (trainPass.Direction == "进厂" && transport.InfactoryTime > DateTime.MinValue) { if (trainPass.OrderNum == 2) //处理牵车太靠近 两节车都识别到车号 后面一节车顶掉前一节车 { try { CmcsTrainRecognition lastentity = Dbers.GetInstance().SelfDber.Entity <CmcsTrainRecognition>("where CrossTime=:CrossTime and OrderNum=1 and DataFlag=1 order by CrossTime", new { CrossTime = trainPass.CrossTime }); if (lastentity != null) { CarInfoMutual mutual = DcDbers.GetInstance().TurnCarWeighterMutualDber.Entity <CarInfoMutual>("where CarNumber=:CarNumber and CreateDate>=:CreateDate", new { CarNumber = lastentity.CarNumber, CreateDate = DateTime.Now.AddDays(-1) }); if (mutual == null || mutual.SuttleWeight == 0) { return(false); } } } catch (Exception ex) { output("处理连续车号:" + ex.Message, eOutputType.Error); } } CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_TrunOver_2, eSignalDataName.当前车号.ToString(), trainPass.CarNumber); //插入车辆信息至翻车衡交互数据库 if (InsertCarToTurnCarWeighter("#2", transport)) { output(string.Format("向{0}插入一条数据", GlobalVars.MachineCode_TrunOver_2), eOutputType.Normal); } //更改翻车状态 if (TurnTransportPosition(trainPass.CarNumber)) { output(string.Format("{0}更改为已翻车", trainPass.CarNumber), eOutputType.Normal); } return(true); } else if (trainPass.Direction == "出厂") { CommonDAO.GetInstance().SetSignalDataValue(GlobalVars.MachineCode_TrunOver_2, eSignalDataName.当前车号.ToString(), string.Empty); //更改翻车状态 if (UnTurnTransportPosition(trainPass.CarNumber)) { output(string.Format("{0}更改为未翻车", trainPass.CarNumber), eOutputType.Normal); } return(true); } return(false); }
/// <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 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); }
/// <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="transportId">汽车入厂煤运输记录Id</param> /// <returns></returns> public void SyncToBatch(Action <string, eOutputType> output) { int res = 0; bool succes = false; //已完结的有效数据 foreach (CmcsBuyFuelTransport transport in commonDAO.SelfDber.Entities <CmcsBuyFuelTransport>("where IsUse=1 and IsFinish=1 and IsSyncBatch=0 ")) { if (transport.TareTime == null) { continue; } if (transport.TareTime.Year < 2000) { continue; } string oldBatchId = transport.InFactoryBatchId; // 生成批次以及采制化三级编码数据 CmcsInFactoryBatch batch = commonDAO.GCQCInFactoryBatchByBuyFuelTransport(transport); if (batch == null) { continue; } CmcsTransport truck = commonDAO.SelfDber.Entity <CmcsTransport>("where PKID=:PKID and IsDeleted=0", new { PKID = transport.Id }); if (truck != null) { truck.TransportNo = transport.CarNumber; truck.LastModificAtionTime = transport.LastModificAtionTime; truck.InfactoryTime = transport.InFactoryTime; truck.ArriveDate = transport.GrossTime; truck.TareDate = transport.TareTime; truck.OutfactoryTime = transport.OutFactoryTime; truck.TicketQty = transport.TicketWeight; truck.GrossQty = transport.GrossWeight; truck.SkinQty = transport.TareWeight; truck.SuttleQty = transport.SuttleWeight; truck.KgQty = transport.DeductWeight; truck.CheckQty = transport.SuttleWeight - transport.DeductWeight; truck.MarginQty = transport.SuttleWeight - transport.DeductWeight - transport.TicketWeight; truck.InFactoryBatchId = batch.Id; truck.PKID = transport.Id; truck.DataFrom = "汽车智能化"; succes = commonDAO.SelfDber.Update(truck) > 0; } else { truck = new CmcsTransport() { TransportNo = transport.CarNumber, LastModificAtionTime = transport.LastModificAtionTime, InfactoryTime = transport.CreationTime, ArriveDate = transport.GrossTime, TareDate = transport.TareTime, OutfactoryTime = transport.OutFactoryTime, TicketQty = transport.TicketWeight, GrossQty = transport.GrossWeight, SkinQty = transport.TareWeight, SuttleQty = transport.SuttleWeight, KgQty = transport.DeductWeight, CheckQty = transport.SuttleWeight - transport.DeductWeight, MarginQty = transport.SuttleWeight - transport.DeductWeight - transport.TicketWeight, InFactoryBatchId = batch.Id, PKID = transport.Id, DataFrom = "汽车智能化" }; succes = commonDAO.SelfDber.Insert(truck) > 0; } if (succes) { succes = UpdateInFactoryBatch(batch); //更新新批次 if (succes) { if (oldBatchId != batch.Id) { CmcsInFactoryBatch oldInFactoryBatch = Dbers.GetInstance().SelfDber.Get <CmcsInFactoryBatch>(oldBatchId); UpdateInFactoryBatch(oldInFactoryBatch); //更新旧批次 } //更新智能化运输记录 transport.IsSyncBatch = 1; transport.InFactoryBatchId = batch.Id; Dbers.GetInstance().SelfDber.Update <CmcsBuyFuelTransport>(transport); res++; } } } output(string.Format("同步批次明细数据 {0} 条", res), eOutputType.Normal); }
/// <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> /// <param name="transportId">汽车入厂煤运输记录Id</param> /// <returns></returns> public void SyncToBatch(Action <string, eOutputType> output) { int res = 0; bool succes = false; //已完结的有效数据 foreach (CmcsBuyFuelTransport transport in commonDAO.SelfDber.Entities <CmcsBuyFuelTransport>("where IsUse=1 and IsFinish=1 and IsSyncBatch=0 ")) { if (transport.TareTime.Year < 2000 || transport.SuttleWeight == 0) { continue; } //CmcsInFactoryBatch batch = commonDAO.SelfDber.Entity<CmcsInFactoryBatch>("where CreateDate like '%" + transport.InFactoryTime.ToString("yyyy-MM-dd") + "%' and SupplierId=:SupplierId and MineId=:MineId and FuelKindId=:FuelKindId and IsDeleted=0", // new { SupplierId = transport.SupplierId, MineId = transport.MineId, FuelKindId = transport.FuelKindId }); CmcsInFactoryBatch batch = commonDAO.SelfDber.Get <CmcsInFactoryBatch>(transport.InFactoryBatchId); if (batch == null) { continue; } CmcsTransport truck = commonDAO.SelfDber.Entity <CmcsTransport>("where PKID=:PKID and IsDeleted=0", new { PKID = transport.Id }); if (truck != null) { truck.TransportNo = transport.CarNumber; truck.OperDate = transport.OperDate; truck.InfactoryTime = transport.InFactoryTime; truck.ArriveDate = transport.GrossTime; truck.TareDate = transport.TareTime; truck.OutfactoryTime = transport.OutFactoryTime; truck.TicketQty = transport.TicketWeight; truck.GrossQty = transport.GrossWeight; truck.SkinQty = transport.TareWeight; truck.SuttleQty = transport.SuttleWeight; truck.KgQty = transport.DeductWeight; truck.CheckQty = transport.SuttleWeight - transport.DeductWeight; truck.MarginQty = transport.SuttleWeight - transport.DeductWeight - transport.TicketWeight; truck.InFactoryBatchId = batch.Id; truck.DataFrom = "汽车智能化"; succes = commonDAO.SelfDber.Update(truck) > 0; } else { truck = new CmcsTransport() { TransportNo = transport.CarNumber, OperDate = transport.OperDate, InfactoryTime = transport.CreateDate, ArriveDate = transport.GrossTime, TareDate = transport.TareTime, OutfactoryTime = transport.OutFactoryTime, TicketQty = transport.TicketWeight, GrossQty = transport.GrossWeight, SkinQty = transport.TareWeight, SuttleQty = transport.SuttleWeight, KgQty = transport.DeductWeight, CheckQty = transport.SuttleWeight - transport.DeductWeight, MarginQty = transport.SuttleWeight - transport.DeductWeight - transport.TicketWeight, InFactoryBatchId = batch.Id, PKID = transport.Id, DataFrom = "汽车智能化", IsDeleted = 0 }; succes = commonDAO.SelfDber.Insert(truck) > 0; } if (succes) { transport.IsSyncBatch = 1; commonDAO.SelfDber.Update(transport); //删除未完成运输记录 commonDAO.SelfDber.DeleteBySQL <CmcsUnFinishTransport>("where TransportId=:TransportId", new { TransportId = transport.Id }); // 更新批次的量 List <CmcsTransport> listTransport = commonDAO.SelfDber.Entities <CmcsTransport>("where InFactoryBatchId=:InFactoryBatchId and IsDeleted=0", new { InFactoryBatchId = batch.Id }); batch.SuttleQty = listTransport.Sum(a => a.SuttleQty); batch.TicketQty = listTransport.Sum(a => a.TicketQty); batch.CheckQty = listTransport.Sum(a => a.CheckQty); batch.MarginQty = listTransport.Sum(a => a.MarginQty); batch.TransportNumber = listTransport.Count; Dbers.GetInstance().SelfDber.Update <CmcsInFactoryBatch>(batch); res++; } } output(string.Format("同步批次明细数据 {0} 条", res), eOutputType.Normal); }
/// <summary> /// 将汽车出场运输记录同步到批次明细中 /// </summary> /// <param name="transportId">汽车销售煤运输记录Id</param> /// <returns></returns> private bool SyncToOutBatch(Action <string, eOutputType> output, string transportId) { bool res = false; CmcsSaleFuelTransport transport = commonDAO.SelfDber.Get <CmcsSaleFuelTransport>(transportId); if (transport == null || transport.IsFinish == 0) { return(false); } CmcsInFactoryBatch batch = commonDAO.SelfDber.Get <CmcsInFactoryBatch>(transport.InOutBatchId); if (batch == null) { return(false); } CmcsTransport truck = commonDAO.SelfDber.Entity <CmcsTransport>("where InFactoryBatchId=:InOutBatchId and PKID=:PKID", new { InOutBatchId = batch.Id, PKID = transport.Id }); if (truck != null) { truck.TransportNo = transport.CarNumber; truck.OperDate = transport.OperDate; truck.TransportStyle = "汽车"; truck.TransportType = "汽车"; truck.ArriveDate = transport.GrossTime; truck.OutFactoryTime = transport.OutFactoryTime; truck.InFactoryTime = transport.InFactoryTime; truck.TareDate = transport.TareTime; truck.ArriveDate = transport.InFactoryTime; truck.TicketWeight = transport.Outweight; truck.GrossWeight = transport.GrossWeight; truck.SkinWeight = transport.TareWeight; truck.StandardWeight = transport.SuttleWeight; truck.CheckQty = transport.SuttleWeight; truck.InFactoryBatchId = transport.InOutBatchId; truck.PKID = transport.Id; truck.MesureMan = "汽车智能化"; truck.QtyHave = transport.SuttleWeight; res = commonDAO.SelfDber.Update(truck) > 0; } else { truck = new CmcsTransport() { TransportNo = transport.CarNumber, OperDate = transport.OperDate, TransportStyle = "汽车", TransportType = "汽车", ArriveDate = transport.GrossTime, OutFactoryTime = transport.OutFactoryTime, InFactoryTime = transport.InFactoryTime, TareDate = transport.TareTime, TicketWeight = transport.Outweight, GrossWeight = transport.GrossWeight, SkinWeight = transport.TareWeight, StandardWeight = transport.SuttleWeight, CheckQty = transport.Outweight, InFactoryBatchId = transport.InOutBatchId, PKID = transport.Id, MesureMan = "汽车智能化", DataSource = "同步", QtyHave = transport.SuttleWeight }; res = commonDAO.SelfDber.Insert(truck) > 0; } if (res) { // 更新批次的量 List <CmcsTransport> trucks = commonDAO.SelfDber.Entities <CmcsTransport>("where InFactoryBatchId=:InFactoryBatchId order by Createdate desc", new { InFactoryBatchId = batch.Id }); batch.TRANSPORTNUMBER = trucks.Count; batch.IsCheck = 0; batch.Ticketqty = trucks.Sum(a => a.TicketWeight); batch.Suttleweight = trucks.Sum(a => a.StandardWeight); batch.Checkqty = trucks.Sum(a => a.CheckQty); batch.KGWEIGHT = trucks.Sum(a => a.KGWEIGHT); batch.KSWEIGHT = trucks.Sum(a => a.KGWEIGHT); batch.Marginqty = trucks.Sum(a => a.MarginWeight); batch.BACKBATCHDATE = trucks[0].InFactoryTime; batch.FactArriveDate = trucks[0].InFactoryTime; commonDAO.SelfDber.Update(batch); } return(res); }