コード例 #1
0
 private string GetFactoryDistance(LastestGpsInfo gps, Company factory)
 {
     if (gps == null ||
         !gps.Latitude.HasValue ||
         !gps.Longtidue.HasValue ||
         factory == null ||
         !factory.Latitude.HasValue ||
         !factory.Longtide.HasValue)
     {
         return(null);
     }
     return(LatLonUtils.GetDistance(
                gps.Latitude.Value,
                gps.Longtidue.Value,
                factory.Latitude.Value,
                factory.Longtide.Value).ToString("#0.00"));
 }
コード例 #2
0
        public string FactoryDistance(ShippingDocument ship, LastestGpsInfo gps)
        {
            if (ship == null || gps == null)
            {
                return(null);
            }
            distanceByShip ds      = this.service.GetGenericService <distanceByShip>().Query().Where(m => m.shipdocid == ship.ID).FirstOrDefault();
            distance       dt      = this.service.GetGenericService <distance>().Query().Where(m => m.projectid == ship.ProjectID && m.CastMode.TreeCode == ship.CastMode).FirstOrDefault();
            var            factory = this.service.Company.GetCurrentCompany();

            if (ds == null || dt == null || ds.outbuilding == 0m)
            {
                string str = GetFactoryDistance(gps, factory);
                return(str);
            }
            decimal d = dt.distance - (gps.Distance.Value - ds.outbuilding);

            return(d < 0 ? (0.01m).ToString() : d.ToString());
        }
コード例 #3
0
        ///// <summary>
        ///// GPS获取所有车辆和状态信息
        ///// </summary>
        ///// <returns></returns>
        //public ActionResult GetAllCarAndStatus(string id)
        //{
        //    try
        //    {
        //        IList<Car> carlist = new List<Car>();
        //        if (string.IsNullOrEmpty(id))
        //        {
        //            carlist = this.service.Car.Query().Where(p => p.IsUsed).ToList();
        //        }
        //        else
        //        {
        //            carlist = this.service.Car.Query().Where(p => p.IsUsed && p.ID == id).ToList();
        //        }
        //        IList<LastestGpsInfo> lsiList = this.service.GetGenericService<LastestGpsInfo>().Query().ToList();
        //        IList<ShippingDocument> shippingList = this.service.ShippingDocument.getShippingTask(null);
        //        if (carlist != null && lsiList != null && shippingList != null)
        //        {
        //            var cars = from car in carlist
        //                       join gpss in lsiList on car.TerminalID equals gpss.TerminalID into gpsinfo
        //                       from gps in gpsinfo.DefaultIfEmpty()
        //                       join cartask in shippingList
        //                       on car.ID equals cartask.CarID into cartasks
        //                       from task in cartasks.DefaultIfEmpty()
        //                       where car.CarTypeID == Model.Enums.CarType.Mixer
        //                       orderby car.OrderNum ascending
        //                       select new
        //                       {
        //                           car = car,
        //                           gps = gps,
        //                           task = task
        //                       };
        //            var factory = this.service.Company.GetCurrentCompany();
        //            var result = cars.ToList().Select(
        //                    s => new
        //                    {
        //                        Id = s.car.ID,
        //                        CustomNo = s.car.ID,
        //                        CarNum = s.car.CarNo,
        //                        TerminalID = s.car.TerminalID,
        //                        SIM = s.car.SIM,
        //                        Owner = s.car.Owner,
        //                        CarTypeName = s.car.CarTypeID == null ? "" : GetDicName(s.car.CarTypeID),
        //                        CarWeight = s.car.CarWeight,
        //                        CarCapacity = s.task == null ? 0 : s.task.ParCube,
        //                        ProvidedTimes = s.task == null ? 0 : s.task.ProvidedTimes,
        //                        StatusID = s.car.GPSStatus == null ? Model.Enums.GpsCarStatus.UnKnown : s.car.GPSStatus,
        //                        //默认未知
        //                        StatusCode = s.car.GPSStatus == null ? Model.Enums.GpsCarStatus.UnKnown : s.car.GPSStatus,
        //                        StatusName = s.car.GPSStatus == null ? "未知" : GetDicName(s.car.GPSStatus),
        //                        DriverID = s.task == null ? string.Empty : s.task.Driver,
        //                        DriverName = s.task == null ? string.Empty : s.task.Driver,
        //                        ProduceLineID = s.task == null ? string.Empty : s.task.ProductLineID,
        //                        ProduceLineName = s.task == null ? string.Empty : s.task.ProductLineName,
        //                        //gpsinfo
        //                        Latitude = s.gps == null || s.gps.Latitude == null ? null : s.gps.Latitude.Value.ToString("#0.0000"),
        //                        Longtidue = s.gps == null || s.gps.Longtidue == null ? null : s.gps.Longtidue.Value.ToString("#0.0000"),
        //                        Speed = s.gps == null ? null : s.gps.Speed,
        //                        Height = s.gps == null ? null : s.gps.Height,
        //                        Direction = s.gps == null ? null : s.gps.Direction,
        //                        Oil = s.gps == null ? null : s.gps.Oil,
        //                        ProjectDistance = GetProjectDistance(s.gps, s.task),
        //                        FactoryDistance = GetFactoryDistance(s.gps, factory),
        //                        UnLoad = s.gps == null ? null : s.gps.UnLoad,
        //                        UnLoadTme = s.gps == null ? null : s.gps.UnLoadTme,
        //                        Place = s.gps == null ? null : s.gps.Place,
        //                        AccFlag = s.gps == null ? null : s.gps.AccFlag,
        //                        BeaterStatus = s.gps == null ? null : s.gps.BeaterStatus,
        //                        ErrorCode = s.gps == null ? null : s.gps.ErrorCode,
        //                        //经纬度无效
        //                        IsGpsError = s.gps == null || s.gps.Latitude == null || s.gps.Longtidue == null,
        //                        //gps数据传递延时5分钟
        //                        IsGprsError = s.gps == null ? true : s.gps.Receivetime.Value.AddHours(2) < DateTime.Now,
        //                        //taskInfo
        //                        TaskID = s.task == null ? null : s.task.TaskID,
        //                        ProjectID = s.task == null ? null : (s.task == null ? null : s.task.ProjectID)
        //                    }
        //                ).ToList();

        //            return new ContentResult
        //            {
        //                Content = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue }.Serialize(result),
        //                ContentType = "application/json"
        //            };

        //            //return Json(result);
        //        }

        //        return null;
        //    }
        //    catch (Exception ex)
        //    {
        //        return null;
        //    }
        //}


        private string GetProjectDistance(LastestGpsInfo gps, ShippingDocument task)
        {
            if (gps == null ||
                !gps.Latitude.HasValue ||
                !gps.Longtidue.HasValue ||
                task == null)
            {
                return(null);
            }
            else
            {
                Project p = this.service.Project.Query().Where(pj => pj.ID == task.ProjectID).ToList().FirstOrDefault();
                if (p == null || !p.Latitude.HasValue || !p.Longitude.HasValue)
                {
                    return(null);
                }

                return(LatLonUtils.GetDistance(
                           gps.Latitude.Value,
                           gps.Longtidue.Value,
                           p.Latitude.Value,
                           p.Longitude.Value).ToString("#0.00"));
            }
        }
コード例 #4
0
        /// <summary>
        /// 获得报警信息
        /// </summary>
        /// <param name="tid"></param>
        /// <param name="allcars"></param>
        /// <param name="gpsinfos"></param>
        /// <param name="allog"></param>
        /// <returns></returns>
        public List <GPS_CarAlarmInfo> GetAlarams(string tid, IEnumerable <Car> allcars, IEnumerable <LastestGpsInfo> gpsinfos, IEnumerable <AlarmLog> allog)
        {
            List <GPS_CarAlarmInfo> list    = new List <GPS_CarAlarmInfo>();
            LastestGpsInfo          gpsinfo = null;
            var gpsInfos = gpsinfos.Where(exp => exp.TerminalID == tid);

            if (gpsInfos != null && gpsInfos.Count() > 0)
            {
                gpsinfo = gpsInfos.First();
            }
            PublicService ps = new PublicService();

            if (gpsinfo == null)
            {
                SysConfig Gpsconfig = ps.SysConfig.GetSysConfig("Gps");
                if (bool.Parse(Gpsconfig.ConfigValue))
                {
                    GPS_CarAlarmInfo caralarm = new GPS_CarAlarmInfo();
                    caralarm.alarmInfo   = "尚未收到GPS数据!";
                    caralarm.alarmTypeID = "002006";
                    caralarm.alarmTime   = DateTime.Now;
                    list.Add(caralarm);
                }
            }
            else
            {
                SysConfig Gprsconfig = ps.SysConfig.GetSysConfig("Gprs");
                if (bool.Parse(Gprsconfig.ConfigValue) && gpsinfo.Receivetime != null && (DateTime.Compare(gpsinfo.Receivetime.Value.AddHours(2), DateTime.Now) <= 0))
                {
                    GPS_CarAlarmInfo caralarm = new GPS_CarAlarmInfo();
                    caralarm.alarmInfo   = "超过2小时无GPS数据上传!";
                    caralarm.alarmTypeID = "002006";
                    caralarm.alarmTime   = DateTime.Now;
                    list.Add(caralarm);
                }
                else
                {
                    var Tid = gpsinfo.TerminalID; var time = gpsinfo.Sendtime;
                    var cars = allcars.Where(e => e.TerminalID == tid);
                    var car  = cars != null?cars.First() : null;

                    if (car == null)
                    {
                        GPS_CarAlarmInfo caralarm = new GPS_CarAlarmInfo();
                        caralarm.alarmInfo   = "根据终端号未查询到车辆历史gps信息";
                        caralarm.alarmTypeID = "002006";
                        caralarm.alarmTime   = DateTime.Now;
                        list.Add(caralarm);
                    }
                    else
                    {
                        var allogs = allog.Where(e => e.AlarmTime == time && e.CarID.ToString() == car.ID);
                        foreach (var log in allogs)
                        {
                            GPS_CarAlarmInfo caralarm = new GPS_CarAlarmInfo();
                            caralarm.alarmInfo   = log.AlarmData;
                            caralarm.alarmTypeID = log.AlarmTypeID.ToString();
                            caralarm.alarmTime   = log.AlarmTime;
                            list.Add(caralarm);
                        }
                    }
                }
            }

            return(list);
        }