/// <summary> /// 生成FastReport报告 /// </summary> /// <param name="category"></param> /// <returns></returns> public string GetImageReport(MachineDisinfectionCategory category) { var reportFilePath = Path.Combine(AppConsts.AppRootPath, "upload", "reportfiles", "MachineDisinfection.frx");//FileHelper.MapPath("\\ReportFiles\\MachineDisinfection.frx"); var dataSetName = "Categories"; var exportFormat = "html"; return(FastReportHelper.GetReportString(reportFilePath, dataSetName, category.MachineInfos, exportFormat)); }
public async Task <IActionResult> CreateReport([FromBody] CreateReportInput input) { //选择的床位Id var bedIds = input.Ids.Split(','); var records = _machineDisinfectionApp.GetListByDate(input.StartDate, input.EndDate) .Where(t => t.F_OperatePerson != null) .Where(t => bedIds.Contains(t.F_Mid)) .Select(t => new { t.F_CheckPerson, t.F_DialylisBedNo, t.F_EndTime, t.F_GroupName, t.F_MachineName, t.F_MachineNo, t.F_Memo, t.F_Mid, t.F_OperatePerson, t.F_Option1, t.F_Option1Value, t.F_Option2, t.F_Option2Value, t.F_Option3, t.F_Option4, t.F_Option5, t.F_Option6, t.F_Option6Value, t.F_PGender, t.F_Pid, t.F_PName, t.F_ShowOrder, t.F_StartTime, t.F_Vid, t.F_VisitDate, t.F_VisitNo, t.F_WipeStartTime, t.F_WipeEndTime }) //.GroupBy(t => t.F_Mid) .OrderBy(t => t.F_ShowOrder).ThenBy(t => t.F_VisitDate).ThenBy(t => t.F_VisitNo) .ToList(); var category = new MachineDisinfectionCategory { //StartDate = startDate, //EndDate = endDate }; //var patVisitApp = new PatVisitApp(); var users = _usersService.GetUserNameDict("").Select(t => new { t.F_Id, t.F_RealName }).ToList(); foreach (var item in records) { var findrow = category.MachineInfos.FirstOrDefault(t => t.Mid == item.F_Mid); if (findrow == null) { findrow = new MachineInfo { Mid = item.F_Mid, DialylisBedNo = item.F_DialylisBedNo, GroupName = item.F_GroupName, MachineName = item.F_MachineName, MachineNo = item.F_MachineNo, StartDate = input.StartDate.ToDateString(), EndDate = input.EndDate.ToDateString() }; category.MachineInfos.Add(findrow); } var element = new DisinfectionInfo { CheckPerson = "", DialysisEndTime = "", DialysisStartTime = "", DisinfectType = "", Memo = item.F_Memo, OperatePerson = "", PGender = item.F_PGender, PName = item.F_PName, SurfaceType = item.F_Option6Value ?? "", VisitDate = item.F_VisitDate.ToDate().ToDateString(), VisitNo = item.F_VisitNo.ToInt().ToString(), StartTime = item.F_StartTime == null ? "" : item.F_StartTime.ToDate().ToDateTimeString(true).Substring(11), EndTime = item.F_EndTime == null ? "" : item.F_EndTime.ToDate().ToDateTimeString(true).Substring(11), WipeEndTime = item.F_WipeEndTime == null ? "" : item.F_WipeEndTime.ToDate().ToDateTimeString(true).Substring(11), WipeStartTime = item.F_WipeStartTime == null ? "" : item.F_WipeStartTime.ToDate().ToDateTimeString(true).Substring(11) }; if (item.F_Option1 == true) { element.DisinfectType = "热化学消毒(" + item.F_Option1Value + ")"; } if (item.F_Option2 == true) { element.DisinfectType = string.IsNullOrEmpty(element.DisinfectType) ? "化学消毒(" + item.F_Option2Value + ")" : element.DisinfectType + ";" + "化学消毒(" + item.F_Option2Value + ")"; } if (item.F_Option3 == true) { element.DisinfectType = string.IsNullOrEmpty(element.DisinfectType) ? "热消毒" : element.DisinfectType + ";" + "热消毒"; } var visitRecord = await _patVisitApp.GetForm(item.F_Vid); if (visitRecord != null) { element.DialysisStartTime = visitRecord.F_DialysisStartTime == null ? "" : visitRecord.F_DialysisStartTime.ToDate().ToDateTimeString(true).Substring(11); element.DialysisEndTime = visitRecord.F_DialysisEndTime == null ? "" : visitRecord.F_DialysisEndTime.ToDate().ToDateTimeString(true).Substring(11); } if (item.F_OperatePerson != null) { var finduser = users.FirstOrDefault(t => t.F_Id == item.F_OperatePerson); element.OperatePerson = finduser == null ? "" : finduser.F_RealName; } if (item.F_CheckPerson != null) { var finduser = users.FirstOrDefault(t => t.F_Id == item.F_CheckPerson); element.CheckPerson = finduser == null ? "" : finduser.F_RealName; } findrow.DisinfectionInfos.Add(element); } return(Content(_machineDisinfectionApp.GetImageReport(category.MachineInfos))); }