public void CreateMileageReportDayByReportDay(int deviceId, DateTime reportDay) { var mrd = new EMileageReportDay() { DeviceId = deviceId, ReportDay = reportDay }; var list = _positionService.GetDeviceHistoryDatas(deviceId, reportDay); if (list.Count > 1) { mrd.DayMileage = _mileageService.CalcMileage(list); var spt = new EMapPoint(list[0].E, list[0].F); mrd.StartTime = list[0].I; mrd.StartLatLng = spt.ToString(); mrd.StartAddress = _mapService.GetLocation(spt).Address; var ept = new EMapPoint(list[list.Count - 1].E, list[list.Count - 1].F); mrd.EndTime = list[list.Count - 1].I; mrd.EndLatLng = ept.ToString(); mrd.EndAddress = _mapService.GetLocation(ept).Address; } mrd.CreateTime = DateTime.Now; mrd.UpdateTime = DateTime.Now; _rep.Add(mrd); }
public void ReCalcMileageReportDays(int deviceId, DateTime reportDay) { var mrd = _rep.Get<EMileageReportDay>(p => p.DeviceId == deviceId && p.ReportDay == reportDay.GetDayStartTime()); if (mrd == null) { CreateMileageReportDayByReportDay(deviceId, reportDay); } else { mrd.UpdateTime = DateTime.Now; var list = _positionService.GetDeviceHistoryDatas(deviceId, reportDay); if (list.Count > 1) { mrd.DayMileage = _mileageService.CalcMileage(list); var spt = new EMapPoint(list[0].E, list[0].F); mrd.StartTime = list[0].I; mrd.StartLatLng = spt.ToString(); mrd.StartAddress = _mapService.GetLocation(spt).Address; var ept = new EMapPoint(list[list.Count - 1].E, list[list.Count - 1].F); mrd.EndTime = list[list.Count - 1].I; mrd.EndLatLng = ept.ToString(); mrd.EndAddress = _mapService.GetLocation(ept).Address; } _rep.Save(mrd, p => p.DeviceId == deviceId && p.ReportDay == reportDay.GetDayStartTime()); } }