Ejemplo n.º 1
0
        /// <summary>
        /// 保存入厂煤运输记录
        /// </summary>
        /// <param name="transportId"></param>
        /// <param name="place"></param>
        /// <returns></returns>
        public bool SaveBuyFuelTransport(string transportId, DateTime dt, string place)
        {
            CmcsBuyFuelTransport transport = SelfDber.Get <CmcsBuyFuelTransport>(transportId);

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

            transport.StepName     = eTruckInFactoryStep.采样.ToString();
            transport.SamplingTime = dt;
            transport.SamplePlace  = place;
            CmcsInNetTransport inNetTransport = SelfDber.Get <CmcsInNetTransport>(transport.OutNetTransportId);

            if (inNetTransport != null)
            {
                inNetTransport.StepName = eTruckInFactoryStep.采样.ToString();
                SelfDber.Update(inNetTransport);
            }
            return(Dbers.GetInstance().SelfDber.Update(transport) > 0);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 保存入厂煤运输记录
        /// </summary>
        /// <param name="transportId"></param>
        /// <param name="dt"></param>
        /// <returns></returns>
        public bool SaveBuyFuelTransport(string transportId, DateTime dt)
        {
            CmcsBuyFuelTransport transport = SelfDber.Get <CmcsBuyFuelTransport>(transportId);

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

            transport.StepName       = eTruckInFactoryStep.出厂.ToString();
            transport.OutFactoryTime = dt;
            transport.IsFinish       = 1;

            CmcsInNetTransport inNetTransport = SelfDber.Get <CmcsInNetTransport>(transport.OutNetTransportId);

            if (inNetTransport != null)
            {
                inNetTransport.StepName       = eTruckInFactoryStep.出厂.ToString();
                inNetTransport.OutfactoryTime = dt;
                SelfDber.Update(inNetTransport);
            }
            return(SelfDber.Update(transport) > 0);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 保存矿发数据
        /// </summary>
        /// <param name="sendEntities"></param>
        /// <param name="output"></param>
        public void SaveCarSendData(List <WL_CarSendInfo> sendEntities, Action <string, eOutputType> output)
        {
            foreach (var item in sendEntities)
            {
                if (string.IsNullOrWhiteSpace(item.物流矿发编号))
                {
                    continue;
                }

                var entity = SelfDber.Entity <CmcsInNetTransport>(" where SerialNumber=:SerialNumber", new { SerialNumber = item.物流矿发编号 });
                if (entity == null)
                {
                    #region 新增
                    entity = new CmcsInNetTransport();
                    entity.SerialNumber = item.物流矿发编号;
                    entity.FactoryName  = item.所属单位名称;

                    var supplier = SelfDber.Entity <CmcsSupplier>(" where Name=:Name", new { Name = item.供应商名称 });
                    if (supplier != null)
                    {
                        entity.SupplierId = supplier.Id;
                    }
                    entity.SupplierName = item.供应商名称;

                    var mine = SelfDber.Entity <CmcsMine>(" where Name=:Name", new { Name = item.矿点名称 });
                    if (mine != null)
                    {
                        entity.MineId = mine.Id;
                    }
                    entity.MineName = item.矿点名称;

                    var fuelkind = SelfDber.Entity <CmcsFuelKind>(" where Name=:Name", new { Name = item.品种名称 });
                    if (fuelkind != null)
                    {
                        entity.FuelKindId = fuelkind.Id;
                    }
                    entity.FuelKindName = item.品种名称;

                    var transCompany = SelfDber.Entity <CmcsTransportCompany>(" where Name=:Name", new { Name = item.承运商名称 });
                    if (transCompany != null)
                    {
                        entity.TransportCompanyId = transCompany.Id;
                    }
                    entity.TransportCompanyName = item.承运商名称;

                    var autoTruck = SelfDber.Entity <CmcsAutotruck>(" where CarNumber=:CarNumber", new { CarNumber = item.车牌号 });
                    if (autoTruck != null)
                    {
                        entity.AutoTruckId = autoTruck.Id;
                    }
                    entity.CarNumber = item.车牌号;

                    entity.IDCard       = item.驾驶员身份证;
                    entity.TicketWeight = item.矿发净重;
                    entity.SealNumber   = item.封签号;
                    entity.CreationTime = item.创建时间;
                    entity.StartTime    = item.创建时间;
                    entity.StepName     = "在途";
                    entity.IsFinish     = 0;
                    entity.SyncFlag     = 0;
                    entity.Remark       = "智能物流同步";

                    if (SelfDber.Insert <CmcsInNetTransport>(entity) > 0)
                    {
                        output("始发表数据获取成功,操作:新增,数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(item), eOutputType.Normal);
                        item.步完成   = 1;
                        item.步完成时间 = DateTime.Now;
                        //if (mysqlDber.Update<WL_CarSendInfo>(item) > 0)
                        if (mysqlDber.Execute(string.Format("update 始发表 set 同步完成=1,同步完成时间='{0}' where 编号={1}", DateTime.Now, item.编号)) > 0)
                        {
                            output("始发表数据获取后回写成功,数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(item), eOutputType.Normal);
                        }
                    }

                    #endregion
                }
                else
                {
                    #region 修改
                    entity.FactoryName = item.所属单位名称;

                    var supplier = SelfDber.Entity <CmcsSupplier>(" where Name=:Name", new { Name = item.供应商名称 });
                    if (supplier != null)
                    {
                        entity.SupplierId = supplier.Id;
                    }
                    entity.SupplierName = item.供应商名称;

                    var mine = SelfDber.Entity <CmcsMine>(" where Name=:Name", new { Name = item.矿点名称 });
                    if (mine != null)
                    {
                        entity.MineId = mine.Id;
                    }
                    entity.MineName = item.矿点名称;

                    var fuelkind = SelfDber.Entity <CmcsFuelKind>(" where Name=:Name", new { Name = item.品种名称 });
                    if (fuelkind != null)
                    {
                        entity.FuelKindId = fuelkind.Id;
                    }
                    entity.FuelKindName = item.品种名称;

                    var transCompany = SelfDber.Entity <CmcsTransportCompany>(" where Name=:Name", new { Name = item.承运商名称 });
                    if (transCompany != null)
                    {
                        entity.TransportCompanyId = transCompany.Id;
                    }
                    entity.TransportCompanyName = item.承运商名称;

                    var autoTruck = SelfDber.Entity <CmcsAutotruck>(" where CarNumber=:CarNumber", new { CarNumber = item.车牌号 });
                    if (autoTruck != null)
                    {
                        entity.AutoTruckId = autoTruck.Id;
                    }
                    entity.CarNumber = item.车牌号;

                    entity.IDCard       = item.驾驶员身份证;
                    entity.TicketWeight = item.矿发净重;
                    entity.SealNumber   = item.封签号;
                    entity.SyncFlag     = 0;

                    if (SelfDber.Update <CmcsInNetTransport>(entity) > 0)
                    {
                        output("始发表数据获取成功,操作:更新,数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(item), eOutputType.Normal);
                        item.步完成   = 1;
                        item.步完成时间 = DateTime.Now;
                        //if (mysqlDber.Update<WL_CarSendInfo>(item) > 0)
                        if (mysqlDber.Execute(string.Format("update 始发表 set 同步完成=1,同步完成时间='{0}' where 编号={1}", DateTime.Now, item.编号)) > 0)
                        {
                            output("始发表数据获取后回写成功,数据:" + Newtonsoft.Json.JsonConvert.SerializeObject(item), eOutputType.Normal);
                        }
                    }
                    #endregion
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 保存入厂煤运输记录
        /// </summary>
        /// <param name="transportId"></param>
        /// <param name="weight">重量</param>
        /// <param name="place"></param>
        /// <returns></returns>
        public bool SaveBuyFuelTransport(string transportId, decimal weight, DateTime dt, string place)
        {
            CmcsBuyFuelTransport transport = SelfDber.Get <CmcsBuyFuelTransport>(transportId);

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

            //根据当前流程节点名称判断
            if (transport.StepName != eTruckInFactoryStep.重车.ToString())
            {
                transport.StepName    = eTruckInFactoryStep.重车.ToString();
                transport.GrossWeight = weight;
                transport.GrossPlace  = place;
                transport.GrossTime   = dt;
                CmcsInNetTransport inNetTransport = SelfDber.Get <CmcsInNetTransport>(transport.OutNetTransportId);
                if (inNetTransport != null)
                {
                    inNetTransport.StepName = eTruckInFactoryStep.重车.ToString();
                    SelfDber.Update(inNetTransport);
                }
            }
            else if (transport.StepName == eTruckInFactoryStep.重车.ToString())
            {
                transport.StepName       = eTruckInFactoryStep.轻车.ToString();
                transport.TareWeight     = weight;
                transport.TarePlace      = place;
                transport.TareTime       = dt;
                transport.OutFactoryTime = dt;
                CmcsInNetTransport inNetTransport = SelfDber.Get <CmcsInNetTransport>(transport.OutNetTransportId);
                if (inNetTransport != null)
                {
                    inNetTransport.StepName = eTruckInFactoryStep.轻车.ToString();
                    inNetTransport.IsFinish = 1;
                    SelfDber.Update(inNetTransport);
                }
                //扣吨量
                transport.DeductWeight = GetDeductWeightWithOutAuto(transport.Id);
                transport.SuttleWeight = transport.GrossWeight - transport.TareWeight - transport.DeductWeight;
                if (transport.GrossWeight > 0 && transport.TareWeight > 0)
                {
                    if (transport.TheMine.PurcHaseType == "地方煤")
                    {
                        transport.TicketWeight = transport.SuttleWeight;
                    }
                    else if (transport.TheMine.PurcHaseType == "厂矿直供" && transport.TicketWeight > 0 && transport.TicketWeight <= (transport.GrossWeight - transport.TareWeight))
                    {
                        CmcsBuyFuelTransportDeduct deduct = commonDAO.SelfDber.Entity <CmcsBuyFuelTransportDeduct>("where TransportId=:TransportId and DeductType = '磅差'", new { TransportId = transport.Id });
                        decimal KgWeight = transport.GrossWeight - transport.TareWeight - transport.TicketWeight + 0.1m;
                        transport.SuttleWeight = transport.TicketWeight - 0.1m - transport.DeductWeight;
                        if (deduct == null)
                        {
                            deduct              = new CmcsBuyFuelTransportDeduct();
                            deduct.TransportId  = transport.Id;
                            deduct.DeductType   = "磅差";
                            deduct.DeductWeight = KgWeight;
                            Dbers.GetInstance().SelfDber.Insert(deduct);
                        }
                        else if (deduct != null && deduct.DeductWeight != KgWeight)
                        {
                            deduct.DeductWeight = KgWeight;
                            Dbers.GetInstance().SelfDber.Update(deduct);
                        }
                        transport.DeductWeight += KgWeight;
                    }
                }
                // 回皮即完结
                transport.IsFinish = 1;

                //流程结束时删除临时运输记录
                CmcsUnFinishTransport unFinishTransport = SelfDber.Entity <CmcsUnFinishTransport>("where TransportId=:TransportId", new { TransportId = transportId });
                if (unFinishTransport != null)
                {
                    SelfDber.Delete <CmcsUnFinishTransport>(unFinishTransport.Id);
                }
            }
            else
            {
                return(false);
            }

            return(SelfDber.Update(transport) > 0);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 生成入厂煤运输排队记录,同时生成批次信息以及采制化三级编码
        /// </summary>
        /// <param name="autotruck">车</param>
        /// <param name="supplier">供煤单位</param>
        /// <param name="mine">矿点</param>
        /// <param name="transportCompany">运输单位</param>
        /// <param name="fuelKind">煤种</param>
        /// <param name="ticketWeight">矿发量</param>
        /// <param name="inFactoryTime">入厂时间</param>
        /// <param name="remark">备注</param>
        /// <param name="place">地点</param>
        /// <param name="samplingType">采样方式</param>
        /// <returns></returns>
        public bool JoinQueueBuyFuelTransport(CmcsAutotruck autotruck, CmcsMine mine, CmcsTransportCompany transportCompany, CmcsFuelKind fuelKind, CmcsInNetTransport inNetTransport, decimal ticketWeight, string samplerCode, string weighterCode, DateTime inFactoryTime, string remark, string place, CmcsSupplier supplier = null)
        {
            CmcsBuyFuelTransport transport = new CmcsBuyFuelTransport
            {
                SerialNumber         = carTransportDAO.CreateNewTransportSerialNumber(eCarType.入厂煤, inFactoryTime),
                AutotruckId          = autotruck.Id,
                CarNumber            = autotruck.CarNumber,
                MineId               = mine.Id,
                MineName             = mine.Name,
                TransportCompanyId   = transportCompany.Id,
                TransportCompanyName = transportCompany.Name,
                FuelKindId           = fuelKind.Id,
                FuelKindName         = fuelKind.Name,
                TicketWeight         = ticketWeight,
                InFactoryTime        = inFactoryTime,
                IsFinish             = 0,
                IsUse             = 1,
                StepName          = eTruckInFactoryStep.入厂.ToString(),
                OutNetTransportId = inNetTransport == null ? "" : inNetTransport.Id,
                SamplePlace       = samplerCode,
                GrossPlace        = weighterCode,
                Remark            = remark,
                SamplingType      = eSamplingType.机械采样.ToString()
            };

            if (supplier != null)
            {
                transport.SupplierId   = supplier.Id;
                transport.SupplierName = supplier.Name;
            }
            // 生成批次以及采制化三级编码数据
            CmcsInFactoryBatch inFactoryBatch = carTransportDAO.GCQCInFactoryBatchByBuyFuelTransport(transport);

            if (inFactoryBatch != null)
            {
                if (SelfDber.Insert(transport) > 0)
                {
                    if (inNetTransport != null)
                    {
                        //更新内网矿发运输记录节点状态
                        inNetTransport.StepName      = eTruckInFactoryStep.入厂.ToString();
                        inNetTransport.Infactorytime = inFactoryTime;
                        SelfDber.Update(inNetTransport);
                    }

                    // 插入未完成运输记录
                    return(SelfDber.Insert(new CmcsUnFinishTransport
                    {
                        TransportId = transport.Id,
                        CarType = eCarType.入厂煤.ToString(),
                        AutotruckId = autotruck.Id,
                        PrevPlace = place,
                    }) > 0);
                }
            }

            return(false);
        }