From f7a3e5c57cbc866675595dbe702f0cc09553bed2 Mon Sep 17 00:00:00 2001 From: quowingwang Date: Wed, 24 Dec 2025 14:39:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E7=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Model/MES/andon/Dto/AndonAlarmAreaDto.cs | 2 ++ ZR.Service/mes/andon/AndonAlarmAreaService.cs | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmAreaDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmAreaDto.cs index 584f4c23..cf427bf6 100644 --- a/ZR.Model/MES/andon/Dto/AndonAlarmAreaDto.cs +++ b/ZR.Model/MES/andon/Dto/AndonAlarmAreaDto.cs @@ -7,6 +7,7 @@ namespace ZR.Model.MES.andon.Dto /// public class AndonAlarmAreaQueryDto : PagerInfo { + public string Area { get; set; } } /// @@ -20,6 +21,7 @@ namespace ZR.Model.MES.andon.Dto public int? ParentId { get; set; } public string Area { get; set; } + public string ParentArea { get; set; } public string CreatedBy { get; set; } diff --git a/ZR.Service/mes/andon/AndonAlarmAreaService.cs b/ZR.Service/mes/andon/AndonAlarmAreaService.cs index d5cf96a6..c3c60f5a 100644 --- a/ZR.Service/mes/andon/AndonAlarmAreaService.cs +++ b/ZR.Service/mes/andon/AndonAlarmAreaService.cs @@ -23,10 +23,25 @@ namespace ZR.Service.mes.andon public PagedInfo GetList(AndonAlarmAreaQueryDto parm) { var predicate = Expressionable.Create(); + predicate.AndIF(!string.IsNullOrEmpty(parm.Area), w => w.Area.Contains(parm.Area)); var response = Queryable() - .Where(predicate.ToExpression()) - .ToPage(parm); + // 左连接自身表,别名 t_parent 代表父级区域 + .LeftJoin((t, t_parent) => t.ParentId == t_parent.Id) + .Where(predicate.ToExpression()) + // 字段映射:将父级区域的 Area 赋值给 DTO 的 ParentArea + .Select((t, t_parent) => new AndonAlarmAreaDto + { + Id = t.Id, + ParentId = t.ParentId, + ParentArea = t_parent == null ? string.Empty : t_parent.Area, + Area = t.Area, + CreatedBy = t.CreatedBy, + CreatedTime = t.CreatedTime, + UpdatedBy = t.UpdatedBy, + UpdatedTime = t.UpdatedTime + }) + .ToPage(parm); return response; }