From 0ca071387d5941537e44086f2222891711c2fcae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=99=93=E4=B8=9C?= <17363321594@163.com> Date: Tue, 30 Sep 2025 17:03:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BA=A7=E5=93=81=E8=BF=BD?= =?UTF-8?q?=E6=BA=AF=E4=BF=A1=E6=81=AF=E5=88=97=E8=A1=A8=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DOAN.Model/MES/trace/Dto/TraceQueryDto.cs | 2 +- DOAN.Service/MES/trace/TraceMainService.cs | 30 ++++++++++++++-------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/DOAN.Model/MES/trace/Dto/TraceQueryDto.cs b/DOAN.Model/MES/trace/Dto/TraceQueryDto.cs index 8aa93f8..4bdf6c2 100644 --- a/DOAN.Model/MES/trace/Dto/TraceQueryDto.cs +++ b/DOAN.Model/MES/trace/Dto/TraceQueryDto.cs @@ -17,7 +17,7 @@ namespace DOAN.Model.MES.trace.Dto public string ProjectCode { get; set; } - public string SubCode { get; set; } + public string SubPartScanCode { get; set; } public DateTime StartTime { get; set; } diff --git a/DOAN.Service/MES/trace/TraceMainService.cs b/DOAN.Service/MES/trace/TraceMainService.cs index 66d8d55..b359daa 100644 --- a/DOAN.Service/MES/trace/TraceMainService.cs +++ b/DOAN.Service/MES/trace/TraceMainService.cs @@ -8,6 +8,7 @@ using DOAN.Repository; using DOAN.Service.Business.IBusinessService; using Infrastructure.Attribute; using Infrastructure.Extensions; +using Microsoft.IdentityModel.Tokens; using SqlSugar; using System; using System.ComponentModel.DataAnnotations; @@ -32,17 +33,24 @@ namespace DOAN.Service { throw new ArgumentNullException(nameof(query)); } + if (!string.IsNullOrEmpty(query.SubPartScanCode)) + { + var partSn = Context.Queryable() + .Where(t => t.SubCode == query.SubPartScanCode) + .Select(t => t.PartSn) + .ToString(); + query.PartSn = partSn; + } var response = Context.Queryable() .LeftJoin((s, r) => s.PartSn == r.PartSn) - .LeftJoin((s, r, t) => s.PartSn == t.PartSn) - .WhereIF(!string.IsNullOrEmpty(query.PartSn), (s, r, t) => s.PartSn == query.PartSn) - .WhereIF(!string.IsNullOrEmpty(query.ProductionSn), (s, r, t) => r.ProductionSn == query.ProductionSn) - .WhereIF(!string.IsNullOrEmpty(query.ProjectCode), (s, r, t) => s.ProjectCode == query.ProjectCode) - .WhereIF(!string.IsNullOrEmpty(query.SubCode), (s, r, t) => t.SubCode == query.SubCode) - .WhereIF(query.StartTime > DateTime.MinValue, (s, r, t) => s.CreateTime >= query.StartTime) - .WhereIF(query.EndTime > DateTime.MinValue, (s, r, t) => s.CreateTime >= query.EndTime) - .OrderByDescending((s, r, t) => s.CreateTime) - .Select((s, r, t) => new TracePartSnDto() + .WhereIF(!string.IsNullOrEmpty(query.PartSn), (s, r) => s.PartSn == query.PartSn) + .WhereIF(!string.IsNullOrEmpty(query.ProductionSn), (s, r) => r.ProductionSn == query.ProductionSn) + .WhereIF(!string.IsNullOrEmpty(query.ProjectCode), (s, r) => s.ProjectCode == query.ProjectCode) + .WhereIF(query.StartTime > DateTime.MinValue, (s, r) => s.CreateTime >= query.StartTime) + .WhereIF(query.EndTime > DateTime.MinValue, (s, r) => s.CreateTime >= query.EndTime) + .OrderByDescending((s, r) => s.CreateTime) + .GroupBy((s, r) => new { s.PartSn, r.ProductionSn }) + .Select((s, r) => new TracePartSnDto() { Id = XueHua, ProjectCode = s.ProjectCode, @@ -51,8 +59,8 @@ namespace DOAN.Service Specification = s.Specification, ProductionSn = r.ProductionSn, PartSN = s.PartSn, - Result = r.Result, - CreateTime = (DateTime)r.CreateTime + Result = r.Result, + CreateTime = r.CreateTime != null ? (DateTime)r.CreateTime : (DateTime)s.CreateTime }) .ToPage(query); return response;