public Contracts.ApiWayContracts[] GetWayTask(string UserId, Data.Enums.CheckPointClassificationEnum type) { #region 变量 DateTime currentTime = DateTime.Now; int hasSentState = ProfileTaskStateEnum.HasSent.GetIntValue(); //当前道路的code int dataTypeCode = ProfileTaskEntryTypeEnum.Way.GetIntValue(); //当前获取道路类型转换为道路的 int wayTypeCode = Unti.CheckPointAssociatedExtensions.GetWayGradeAssociated(type); #endregion //寻找当前外勤人员是否存在要完成的任务 var taskIsHave = from taskQ in LinqSQLExtensions.IQueryable <ProfileTaskEntity>() where taskQ.PersonInChargeId == UserId && taskQ.DeliveryTime <= currentTime && taskQ.CompletionTime >= currentTime && taskQ.State == hasSentState select new { f_id = taskQ.F_Id }; if (taskIsHave.Count() <= 0) { throw new Exception("此用户当前未发现任何任务!"); } //查道路任务 var taskQuery = from taskQ in LinqSQLExtensions.IQueryable <ProfileTaskEntity>() join taskEntryQ in LinqSQLExtensions.IQueryable <ProfileTaskEntryEntity>() on taskQ.F_Id equals taskEntryQ.TaskId where taskQ.PersonInChargeId == UserId && taskQ.State == hasSentState && taskQ.DeliveryTime <= currentTime && taskQ.CompletionTime >= currentTime && taskEntryQ.TaskEntryType == dataTypeCode select new { TaskId = taskQ.F_Id, TaskEntryId = taskEntryQ.F_Id, DeliveryTime = taskQ.DeliveryTime, CompletionTime = taskQ.CompletionTime, EntryDataId = taskEntryQ.EntryDataId }; var dataQuery = from taskq in taskQuery join wayData in LinqSQLExtensions.IQueryable <ProfileSanitationWayEntity>() on taskq.EntryDataId equals wayData.F_Id where wayData.WayGrade == wayTypeCode select new { TaskId = taskq.TaskId, TaskEntryId = taskq.TaskEntryId, Origin = wayData.Origin, Destination = wayData.Destination, DeliveryTime = taskq.DeliveryTime, CompletionTime = taskq.CompletionTime, StreetId = wayData.StreetId }; var StreetQuery = from dataQ in dataQuery join streetQ in LinqSQLExtensions.IQueryable <ProfileStreetEntity>() on dataQ.StreetId equals streetQ.F_Id select new { TaskId = dataQ.TaskId, TaskEntryId = dataQ.TaskEntryId, Origin = dataQ.Origin, Destination = dataQ.Destination, DeliveryTime = dataQ.DeliveryTime, CompletionTime = dataQ.CompletionTime, StreetId = dataQ.StreetId, StreetName = streetQ.StreetName }; return(StreetQuery.Select(d => new Contracts.ApiWayContracts() { Title = "道路清扫", Id = d.TaskId, CompletionTime = (DateTime)d.DeliveryTime, DeliveryTime = d.CompletionTime, Name = d.Origin + "--" + d.Destination, StreetId = d.StreetId, StreetName = d.StreetName, IsComplete = 0 }).ToArray()); }
public Contracts.ApiWayContracts[] GetTandastask(string UserId, Data.Enums.CheckPointClassificationEnum type) { #region 变量 DateTime currentTime = DateTime.Now; int hasSentState = ProfileTaskStateEnum.HasSent.GetIntValue(); //当前道路的code int dataTypeCode = ProfileTaskEntryTypeEnum.Tandas.GetIntValue(); //当前获取道路类型转换为道路的 int thandasTypeCode = Unti.CheckPointAssociatedExtensions.GetTandasGradeAssociate(type); #endregion //寻找当前外勤人员是否存在要完成的任务 var taskIsHave = from taskQ in LinqSQLExtensions.IQueryable <ProfileTaskEntity>() where taskQ.PersonInChargeId == UserId && taskQ.DeliveryTime <= currentTime && taskQ.CompletionTime >= currentTime && taskQ.State == hasSentState select new { f_id = taskQ.F_Id }; if (taskIsHave.Count() <= 0) { throw new Exception("此用户当前未发现任何任务!"); } //查找公厕任务 var taskQuery = from taskQ in LinqSQLExtensions.IQueryable <ProfileTaskEntity>() join taskEntryQ in LinqSQLExtensions.IQueryable <ProfileTaskEntryEntity>() on taskQ.F_Id equals taskEntryQ.TaskId where taskQ.PersonInChargeId == UserId && taskQ.DeliveryTime <= currentTime && taskQ.CompletionTime >= currentTime && taskEntryQ.TaskEntryType == dataTypeCode select new { TaskId = taskQ.F_Id, TaskEntryId = taskEntryQ.F_Id, DeliveryTime = taskQ.DeliveryTime, CompletionTime = taskQ.CompletionTime, EntryDataId = taskEntryQ.EntryDataId }; var dataQueery = from taskq in taskQuery join tandasData in LinqSQLExtensions.IQueryable <ProfileSanitationTandasEntity>() on taskq.EntryDataId equals tandasData.F_Id where tandasData.Grade == thandasTypeCode select new { TaskId = taskq.TaskId, TaskEntryId = taskq.TaskEntryId, Address = tandasData.Address, DeliveryTime = taskq.DeliveryTime, CompletionTime = taskq.CompletionTime, StreetId = tandasData.StreetId }; var StreetQuery = from dataQ in dataQueery join streetQ in LinqSQLExtensions.IQueryable <ProfileStreetEntity>() on dataQ.StreetId equals streetQ.F_Id select new { taskId = dataQ.TaskId, TaskEntryId = dataQ.TaskEntryId, Address = dataQ.Address, DeliveryTime = dataQ.DeliveryTime, CompletionTime = dataQ.CompletionTime, StreetId = dataQ.StreetId, StreetName = streetQ.StreetName }; return(StreetQuery.Select(d => new Contracts.ApiWayContracts() { Title = "环卫公厕", Id = d.taskId }).ToArray()); }