public async Task <IActionResult> ImportDatas([FromBody] ImportDatasInput input) { var startDate = input.StartDate.Date; var dayOfweek = startDate.DayOfWeek; startDate = dayOfweek == DayOfWeek.Monday ? startDate : dayOfweek == DayOfWeek.Tuesday ? startDate.AddDays(-1) : dayOfweek == DayOfWeek.Wednesday ? startDate.AddDays(-2) : dayOfweek == DayOfWeek.Thursday ? startDate.AddDays(-3) : dayOfweek == DayOfWeek.Friday ? startDate.AddDays(-4) : dayOfweek == DayOfWeek.Saturday ? startDate.AddDays(-5) : dayOfweek == DayOfWeek.Sunday ? startDate.AddDays(-6) : startDate; var list = await _dialysisScheduleApp.ImportDatas(startDate, input.FilePath); var maxDate = list.Select(t => t.F_VisitDate.ToDate()).Max(); var eixstsRecords = _dialysisScheduleApp.GetList(startDate, maxDate).ToList(); _dialysisScheduleApp.CreateItems(list, eixstsRecords); return(Success("操作成功。")); }
public IActionResult GetWeeklyList(GetWeeklyListInput input = null) { if (input == null) { input = new GetWeeklyListInput(); } var startDate = input.scheduleDate.ToDate().Date; startDate = startDate.DayOfWeek == DayOfWeek.Monday ? startDate : startDate.DayOfWeek == DayOfWeek.Tuesday ? startDate.AddDays(-1) : startDate.DayOfWeek == DayOfWeek.Wednesday ? startDate.AddDays(-2) : startDate.DayOfWeek == DayOfWeek.Thursday ? startDate.AddDays(-3) : startDate.DayOfWeek == DayOfWeek.Friday ? startDate.AddDays(-4) : startDate.DayOfWeek == DayOfWeek.Saturday ? startDate.AddDays(-5) : startDate.DayOfWeek == DayOfWeek.Sunday ? startDate.AddDays(-6) : startDate; var endDate = startDate.AddDays(6); var visitNo = input.visitNo.ToInt(); var beds = _dialysisMachineApp.GetQueryable().Select(t => new { groupName = t.F_GroupName, bedId = t.F_Id, bedNo = t.F_DialylisBedNo, showOrder = t.F_ShowOrder, machineName = t.F_MachineName, machineNo = t.F_MachineNo, defaultType = t.F_DefaultType }).ToList(); var query = _dialysisScheduleApp.GetList() .Where(t => t.F_VisitDate >= startDate && t.F_VisitDate <= endDate) .Where(t => t.F_VisitNo == visitNo); if (!string.IsNullOrEmpty(input.dialysisTypes)) { var typesArr = input.dialysisTypes.Split(','); query = query.Where(t => typesArr.Contains(t.F_DialysisType)); } if (!string.IsNullOrEmpty(input.patientId)) { query = query.Where(t => t.F_PId.Equals(input.patientId)); } var sourse = query.Select(t => new { scheduleId = t.F_Id, visitDate = t.F_VisitDate, pid = t.F_PId, patientName = t.F_Name, dialysisType = t.F_DialysisType, bid = t.F_BId }).ToList(); var list = sourse.Select(t => new { bedId = t.bid, t.scheduleId, t.visitDate, dayOfWeek = t.visitDate.ToDate().DayOfWeek, patientId = t.pid, t.patientName, t.dialysisType }); var data = beds.GroupBy(t => t.groupName).Select(t => new { groupName = t.Key, rows = t.GroupJoin(list, a => a.bedId, b => b.bedId, (a, b) => new { a.bedId, a.bedNo, a.showOrder, a.machineName, a.machineNo, a.defaultType, items = b.OrderBy(v => v.visitDate) }).OrderBy(s => s.showOrder) }).OrderBy(g => g.groupName); return(Ok(data)); }