/// <summary> /// 获取VisitRecord的分页列表信息 ///</summary> /// <param name="input"></param> /// <returns></returns> public async Task <PagedResultDto <VisitRecordListDto> > GetPagedVisitRecords(GetVisitRecordsInput input) { var query = _visitrecordRepository.GetAll(); // TODO:根据传入的参数添加过滤条件 var visitrecordCount = await query.CountAsync(); var visitrecords = await query .OrderBy(input.Sorting).AsNoTracking() .PageBy(input) .ToListAsync(); // var visitrecordListDtos = ObjectMapper.Map<List <VisitRecordListDto>>(visitrecords); var visitrecordListDtos = visitrecords.MapTo <List <VisitRecordListDto> >(); return(new PagedResultDto <VisitRecordListDto>( visitrecordCount, visitrecordListDtos )); }
/// <summary> /// 获取烟农被拜访记录 /// </summary> public async Task <PagedResultDto <VisitRecordListDto> > GetVisitRecordsByGrowerId(GetVisitRecordsInput input) { var record = _visitrecordRepository.GetAll().Where(v => v.GrowerId == input.GrowerId); var employee = _employeeRepository.GetAll(); var scheduleDetail = _scheduleDetailRepository.GetAll(); var task = _visitTaskRepository.GetAll(); var taskExamine = _taskExamineRepository.GetAll(); var query = await(from r in record join e in employee on r.EmployeeId equals e.Id join s in scheduleDetail on r.ScheduleDetailId equals s.Id join t in task on s.TaskId equals t.Id select new VisitRecordListDto() { Id = r.Id, EmployeeId = r.EmployeeId, GrowerId = r.GrowerId, Location = r.Location, Longitude = r.Longitude, SignTime = r.SignTime, ScheduleDetailId = r.ScheduleDetailId, Desc = r.Desc, ImgPath = r.ImgPath, Latitude = r.Latitude, CreationTime = r.CreationTime, EmployeeName = e.Name, TaskName = t.Name, HasExamine = t.IsExamine, TaskId = t.Id }).ToListAsync(); foreach (var item in query) { if (item.HasExamine == true) { var examineQuery = from v in _visitExamineRepository.GetAll() join t in _taskExamineRepository.GetAll() on v.TaskExamineId equals t.Id where v.VisitRecordId == item.Id select new { t.Name, v.Score, t.ExamineOption }; var list = examineQuery.ToList().Select(e => e.Name + "(" + GetScoreName(e.ExamineOption, e.Score) + ")").ToList(); string examineName = string.Join(",", list.ToArray()); item.ExaminesName = examineName; } } var visitrecordCount = query.Count(); //var visitrecords = await query // .OrderByDescending(v => v.SignTime).AsNoTracking() // .PageBy(input) // .ToListAsync(); var visitrecords = query .OrderByDescending(v => v.SignTime) .Skip(input.SkipCount) .Take(input.MaxResultCount); var visitrecordListDtos = visitrecords.MapTo <List <VisitRecordListDto> >(); return(new PagedResultDto <VisitRecordListDto>( visitrecordCount, visitrecordListDtos )); }