Esempio n. 1
0
        public async Task <ActionResult> FillLocation(TruckTrace trace)
        {
            if (ModelState.IsValid)
            {
                using (TruckTraceService truckTraceService = new TruckTraceService())
                {
                    var turck = new TruckTrace()
                    {
                        truckId   = trace.truckId,
                        Location  = trace.Location,
                        Mileage   = trace.Mileage,
                        Path      = trace.Path,
                        Position  = trace.Position,
                        Speed     = trace.Speed,
                        Direction = trace.Direction,
                        Type      = true,
                        Unit      = trace.Unit
                    };
                    try
                    {
                        await truckTraceService.CreateAsync(turck);
                    }
                    catch (Exception err)
                    {
                        throw err;
                    }
                }
            }
            else
            {
            }

            return(Json(new { mess = "ok" }));
        }
Esempio n. 2
0
 /// <summary>
 /// 更新车辆位置信息
 /// </summary>
 /// <param name="tid">车辆id</param>
 /// <param name="para">参数:location, speed, dir, mileage, unit, position, path</param>
 public async Task UpdateTruckState(Guid tid, string[] para)
 {
     using (TruckTraceService truckTraceService = new TruckTraceService())
     {
         var truckTrace = new TruckTrace()
         {
             truckId   = tid,
             Location  = para[0],
             Speed     = para[1],
             Direction = para[2],
             Mileage   = para[3],
             Unit      = para[4],
             Position  = para[5],
             Path      = para[6],
         };
         try
         {
             await truckTraceService.CreateAsync(truckTrace);
         }
         catch (Exception err)
         {
             throw err;
         }
     }
 }
Esempio n. 3
0
        public async Task <OrderTraceDto> TrackOrder(string code)
        {
            var traceInfo = new OrderTraceDto();

            try
            {
                //得到订单信息
                using (OrderService orderService = new OrderService())
                {
                    var order = orderService.GetAllOrder().Where(p => p.BarCode == code).FirstOrDefault();
                    traceInfo.Code    = code;
                    traceInfo.OStatus = order.Status;
                    traceInfo.OrderId = order.Id;

                    using (OrderDetailsService orderDetailsService = new OrderDetailsService())
                    {
                        var odetail = orderDetailsService.GetAll().Where(p => p.OrderId == order.Id).FirstOrDefault();
                        if (odetail == null)
                        {
                            return(null);
                        }

                        //寄方信息
                        using (CargoSenderService senderService = new CargoSenderService())
                        {
                            var sender = await senderService.GetOneById(odetail.SenderId);

                            if (sender == null)
                            {
                                return(null);
                            }

                            traceInfo.SFAddress = sender.Provinces;
                            traceInfo.SSAddress = sender.DetailAddress;
                            traceInfo.SLocation = sender.Location;
                            traceInfo.SName     = sender.Name;
                            traceInfo.STel      = sender.MobliePhone;
                        }

                        //收方信息
                        using (CargoReceiverService receiverService = new CargoReceiverService())
                        {
                            var receiver = await receiverService.GetOneById(odetail.ReceiverId);

                            if (receiver == null)
                            {
                                return(null);
                            }

                            traceInfo.RFAddress = receiver.Provinces;
                            traceInfo.RSAddress = receiver.DetailAddress;
                            traceInfo.RLocation = receiver.Location;
                            traceInfo.RName     = receiver.Name;
                            traceInfo.RTel      = receiver.MobliePhone;
                        }
                    }
                }

                //得到汽车信息
                using (OrderWaybillLinkService orderWaybillLinkService = new OrderWaybillLinkService())
                {
                    var owlink = orderWaybillLinkService.GetAll().Where(p => p.OrderId == traceInfo.OrderId).FirstOrDefault();

                    if (owlink == null)
                    {
                        return(null);
                    }

                    using (WaybillTransportLinkService waybillTransportLinkService = new WaybillTransportLinkService())
                    {
                        var waybill = waybillTransportLinkService.GetAll().Where(p => p.WayBillId == owlink.WaybillId).FirstOrDefault();

                        if (waybill == null)
                        {
                            return(null);
                        }

                        using (TruckTraceService truckTrace = new TruckTraceService())
                        {
                            var truck = truckTrace.GetAll().Where(p => p.truckId == waybill.TransportInfoId).OrderByDescending(p => p.CreatTime).FirstOrDefault();

                            if (truck == null)
                            {
                                return(null);
                            }

                            traceInfo.TransLocation = truck.Location;
                        }
                    }
                }

                //得到追踪详细
                using (OrderTraceService orderTraceService = new OrderTraceService())
                {
                    var statusList = orderTraceService.GetAll().Where(p => p.OrderId == traceInfo.OrderId).OrderBy(p => p.CreatTime);

                    if (statusList == null)
                    {
                        return(null);
                    }

                    var packegeList = new List <PackegeStatus>();
                    foreach (var item in statusList)
                    {
                        packegeList.Add(new PackegeStatus()
                        {
                            Data = item.CreatTime.ToShortDateString(),
                            Time = item.CreatTime.ToShortTimeString(),
                            Mark = item.Mark
                        });
                    }
                    traceInfo.StatusList = packegeList;
                }
            }
            catch (Exception err)
            {
                return(null);
            }

            return(traceInfo);
        }