コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #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 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);
        }
コード例 #5
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);
            }
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
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);
        }
コード例 #8
0
        /// <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);
        }
コード例 #9
0
        /// <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);
        }