Commit 76aa233fb282e4fec5fa70e2e227847235c13909
1 parent
ca114eb9
打印日志接口优化
Showing
2 changed files
with
53 additions
and
0 deletions
美国版/Food Labeling Management Code/Yi.Abp.Net8/module/food-labeling-us/FoodLabeling.Application.Contracts/Dtos/UsAppLabeling/PrintLogItemDto.cs
| @@ -32,6 +32,11 @@ public class PrintLogItemDto | @@ -32,6 +32,11 @@ public class PrintLogItemDto | ||
| 32 | /// <summary>模板尺寸(来自 fl_label_template.Width/Height/Unit)</summary> | 32 | /// <summary>模板尺寸(来自 fl_label_template.Width/Height/Unit)</summary> |
| 33 | public string? LabelSizeText { get; set; } | 33 | public string? LabelSizeText { get; set; } |
| 34 | 34 | ||
| 35 | + /// <summary> | ||
| 36 | + /// 本次打印的内容快照(来自 fl_label_print_data,按 PrintTaskId 关联) | ||
| 37 | + /// </summary> | ||
| 38 | + public List<PrintLogDataItemDto> PrintDataList { get; set; } = new(); | ||
| 39 | + | ||
| 35 | /// <summary>打印时间(PrintedAt ?? CreationTime)</summary> | 40 | /// <summary>打印时间(PrintedAt ?? CreationTime)</summary> |
| 36 | public DateTime PrintedAt { get; set; } | 41 | public DateTime PrintedAt { get; set; } |
| 37 | 42 | ||
| @@ -42,3 +47,15 @@ public class PrintLogItemDto | @@ -42,3 +47,15 @@ public class PrintLogItemDto | ||
| 42 | public string LocationName { get; set; } = "无"; | 47 | public string LocationName { get; set; } = "无"; |
| 43 | } | 48 | } |
| 44 | 49 | ||
| 50 | +/// <summary> | ||
| 51 | +/// 打印内容快照项(fl_label_print_data) | ||
| 52 | +/// </summary> | ||
| 53 | +public class PrintLogDataItemDto | ||
| 54 | +{ | ||
| 55 | + public string ElementId { get; set; } = string.Empty; | ||
| 56 | + | ||
| 57 | + public string? RenderValue { get; set; } | ||
| 58 | + | ||
| 59 | + public object? RenderConfigJson { get; set; } | ||
| 60 | +} | ||
| 61 | + |
美国版/Food Labeling Management Code/Yi.Abp.Net8/module/food-labeling-us/FoodLabeling.Application/Services/UsAppLabelingAppService.cs
| @@ -780,6 +780,41 @@ public class UsAppLabelingAppService : ApplicationService, IUsAppLabelingAppServ | @@ -780,6 +780,41 @@ public class UsAppLabelingAppService : ApplicationService, IUsAppLabelingAppServ | ||
| 780 | 780 | ||
| 781 | var pageRows = await query.ToPageListAsync(input.SkipCount, input.MaxResultCount, total); | 781 | var pageRows = await query.ToPageListAsync(input.SkipCount, input.MaxResultCount, total); |
| 782 | 782 | ||
| 783 | + var taskIds = pageRows.Select(x => x.Id).Where(x => !string.IsNullOrWhiteSpace(x)).Distinct().ToList(); | ||
| 784 | + | ||
| 785 | + var dataRows = taskIds.Count == 0 | ||
| 786 | + ? new List<FlLabelPrintDataDbEntity>() | ||
| 787 | + : await _dbContext.SqlSugarClient.Queryable<FlLabelPrintDataDbEntity>() | ||
| 788 | + .Where(x => taskIds.Contains(x.PrintTaskId)) | ||
| 789 | + .ToListAsync(); | ||
| 790 | + | ||
| 791 | + var dataMap = dataRows | ||
| 792 | + .GroupBy(x => x.PrintTaskId) | ||
| 793 | + .ToDictionary( | ||
| 794 | + g => g.Key, | ||
| 795 | + g => g.Select(d => | ||
| 796 | + { | ||
| 797 | + object? cfg = null; | ||
| 798 | + if (!string.IsNullOrWhiteSpace(d.RenderConfigJson)) | ||
| 799 | + { | ||
| 800 | + try | ||
| 801 | + { | ||
| 802 | + cfg = JsonSerializer.Deserialize<object>(d.RenderConfigJson); | ||
| 803 | + } | ||
| 804 | + catch | ||
| 805 | + { | ||
| 806 | + cfg = null; | ||
| 807 | + } | ||
| 808 | + } | ||
| 809 | + | ||
| 810 | + return new PrintLogDataItemDto | ||
| 811 | + { | ||
| 812 | + ElementId = d.ElementId, | ||
| 813 | + RenderValue = d.RenderValue, | ||
| 814 | + RenderConfigJson = cfg | ||
| 815 | + }; | ||
| 816 | + }).ToList()); | ||
| 817 | + | ||
| 783 | var items = pageRows.Select(x => new PrintLogItemDto | 818 | var items = pageRows.Select(x => new PrintLogItemDto |
| 784 | { | 819 | { |
| 785 | TaskId = x.Id, | 820 | TaskId = x.Id, |
| @@ -791,6 +826,7 @@ public class UsAppLabelingAppService : ApplicationService, IUsAppLabelingAppServ | @@ -791,6 +826,7 @@ public class UsAppLabelingAppService : ApplicationService, IUsAppLabelingAppServ | ||
| 791 | ProductName = string.IsNullOrWhiteSpace(x.ProductName) ? "无" : x.ProductName.Trim(), | 826 | ProductName = string.IsNullOrWhiteSpace(x.ProductName) ? "无" : x.ProductName.Trim(), |
| 792 | TypeName = x.TypeName ?? string.Empty, | 827 | TypeName = x.TypeName ?? string.Empty, |
| 793 | LabelSizeText = FormatLabelSizeWithUnit(x.TemplateWidth, x.TemplateHeight, x.TemplateUnit), | 828 | LabelSizeText = FormatLabelSizeWithUnit(x.TemplateWidth, x.TemplateHeight, x.TemplateUnit), |
| 829 | + PrintDataList = dataMap.TryGetValue(x.Id, out var list) ? list : new List<PrintLogDataItemDto>(), | ||
| 794 | PrintedAt = x.PrintedAt ?? x.CreationTime, | 830 | PrintedAt = x.PrintedAt ?? x.CreationTime, |
| 795 | OperatorName = operatorName, | 831 | OperatorName = operatorName, |
| 796 | LocationName = locationName | 832 | LocationName = locationName |