public async Task <IActionResult> GetFilterList(GetFilterListInput input) { var bedInfo = await _dialysisMachineApp.GetForm(input.keyValue); var list = _patVisitApp.GetList()//input.startDate.ToDate(), input.endDate.ToDate(), bedInfo.F_GroupName, bedInfo.F_DialylisBedNo, true .Where(t => t.F_VisitDate >= input.startDate.ToDate() && t.F_VisitDate <= input.endDate.ToDate() && t.F_GroupName == bedInfo.F_GroupName && t.F_DialysisBedNo == bedInfo.F_DialylisBedNo && t.F_DialysisStartTime != null && t.F_DialysisEndTime != null ) .Select(t => new { vid = t.F_Id, pid = t.F_Pid, dialysisNo = t.F_DialysisNo, patientName = t.F_Name, patientGender = t.F_Gender, visitDate = t.F_VisitDate, visitNo = t.F_VisitNo, groupName = t.F_GroupName, dialysisBedNo = t.F_DialysisBedNo, dialysisStartTime = t.F_DialysisStartTime, dialysisEndTime = t.F_DialysisEndTime }).ToList(); var processes = _machineProcessApp.GetList(input.startDate.ToDate(), input.endDate.ToDate(), input.keyValue) .Select(t => new { id = t.F_Id, vid = t.F_Vid, operatePerson = t.F_OperatePerson, operateTime = t.F_OperateTime, option1 = t.F_Option1, option2 = t.F_Option2, option3 = t.F_Option3, option4 = t.F_Option4, option5 = t.F_Option5, option6 = t.F_Option6, memo = t.F_Memo }).ToList(); var data = new { machine = new { groupName = bedInfo.F_GroupName, bedNo = bedInfo.F_DialylisBedNo, showOrder = bedInfo.F_ShowOrder, machineName = bedInfo.F_MachineName, machineNo = bedInfo.F_MachineNo, defaultType = bedInfo.F_DefaultType }, rows = list.GroupJoin(processes, v => v.vid, p => p.vid, (v, p) => new { v.vid, isProcessed = p.Count() > 0, //v.dialysisBedNo, v.patientName, v.patientGender, v.visitDate, v.visitNo, v.dialysisStartTime, v.dialysisEndTime, processItem = p.FirstOrDefault() }).Select(t => t).OrderBy(t => t.visitDate).ThenBy(t => t.visitNo) }; return(Ok(data)); }
public IActionResult GetFilterList(GetFilterListInput input) { //设置筛选条件 var query = _dialysisScheduleApp.GetList() .Where(t => t.F_PId.Equals(input.patientId)) .Where(t => t.F_VisitDate >= input.startDate && t.F_VisitDate <= input.endDate) .Where(t => t.F_EnabledMark == true); if (!string.IsNullOrEmpty(input.dialysisType)) { query = query.Where(t => t.F_DialysisType.Equals(input.dialysisType)); } //查询数据 var list = query.Select(t => new { t.F_Id, t.F_GroupName, t.F_DialysisBedNo, t.F_VisitDate, t.F_VisitNo, t.F_DialysisType }) .ToList() .Select(t => new { id = t.F_Id, groupName = t.F_GroupName, dialysisBedNo = t.F_DialysisBedNo, visitDate = t.F_VisitDate, monthDesc = t.F_VisitDate.ToDateString().Substring(0, 7), weekDesc = t.F_VisitDate.ToDate().DayOfWeek, visitNo = t.F_VisitNo.ToInt(), dialysisType = t.F_DialysisType }); var months = list.Select(t => t.monthDesc).Distinct().OrderByDescending(t => t); var data = new List <GetFilterListOutput>(); foreach (var month in months) { var entity = new GetFilterListOutput { monthDesc = month }; foreach (var child in list.Where(t => t.monthDesc.Equals(month)).OrderByDescending(t => t.visitDate)) { var date = child.visitDate.ToDate(); var week = date.DayOfWeek == DayOfWeek.Monday ? "周一" : date.DayOfWeek == DayOfWeek.Tuesday ? "周二" : date.DayOfWeek == DayOfWeek.Wednesday ? "周三" : date.DayOfWeek == DayOfWeek.Thursday ? "周四" : date.DayOfWeek == DayOfWeek.Friday ? "周五" : date.DayOfWeek == DayOfWeek.Saturday ? "周六" : "周日"; entity.items.Add(new ScheduleItem { dayDesc = date.Day.ToString() + "号", weekDesc = week, visitNo = child.visitNo, groupName = child.groupName, dialysisBedNo = child.dialysisBedNo, dialysisType = child.dialysisType }); } data.Add(entity); } return(Ok(data)); }