public async Task <IHttpActionResult> SyncGetEFInfoByPlateNum([FromUri] GLZW_EFSearchModel model) { if (model.EndTime <= model.StartTime) { return(AsiatekJson(ResponseCode.开始时间不能大于结束时间)); } TimeSpan ts = model.EndTime - model.StartTime; if (ts.Days > 7) { //里程查询天数超过7天 return(AsiatekJson(ResponseCode.查询天数不能超过7天)); } var result = await GLZWService.SyncGetEFInfoByPlateNum(model).ConfigureAwait(false); return(AsiatekJson(result)); }
//获取进出电子围栏相关数据 public static async Task <List <GLZW_EFModel> > SyncGetEFInfoByPlateNum(GLZW_EFSearchModel model) { #region 查询绑定的电子围栏异常数据 //链接服务器 List <ServerInfoModel> slist = CLCS_MileageService.GetServerInfoByPlateNum(model.PlateNum); if (slist == null || slist.Count == 0) { return(null); } var linkedServer = slist[0].LinkedServerName; string sql = string.Format(@" SELECT ve.PlateNum AS VehicleCode,ve.VehicleName,ef.FenceName,efe.TerminalCode, efe.SignalStartTime AS ExceptionStartTime,efe.SignalEndTime AS ExceptionEndTime FROM dbo.Vehicles ve INNER JOIN dbo.VehicleElectricFence vef ON vef.VehicleID = ve.ID INNER JOIN dbo.ElectricFence ef ON ef.ID = vef.FenceID INNER JOIN {0}.GNSS.dbo.ElectricFenceException efe ON efe.FenceID = vef.FenceID WHERE ve.PlateNum='{1}' AND ('{2}' BETWEEN efe.SignalStartTime AND efe.SignalEndTime OR '{3}' BETWEEN efe.SignalStartTime AND efe.SignalEndTime) ", linkedServer, model.PlateNum, model.StartTime, model.EndTime); #endregion var dt = await MSDBHelper.ExecuteDataTableAsync(sql, System.Data.CommandType.Text).ConfigureAwait(false); var list = ConvertToList <GLZW_EFModel> .Convert(dt); if (list == null) { return(null); } if (list.Count == 0) { return(null); } //赋值查询开始时间、结束时间 foreach (var item in list) { item.StartTime = model.StartTime; item.EndTime = model.EndTime; } return(list); }