获取产品追溯信息列表完善
This commit is contained in:
parent
480372850a
commit
0ca071387d
@ -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; }
|
||||
|
||||
|
||||
@ -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<TraceSnSubScan>()
|
||||
.Where(t => t.SubCode == query.SubPartScanCode)
|
||||
.Select(t => t.PartSn)
|
||||
.ToString();
|
||||
query.PartSn = partSn;
|
||||
}
|
||||
var response = Context.Queryable<TraceSnScan>()
|
||||
.LeftJoin<TraceProductRecord>((s, r) => s.PartSn == r.PartSn)
|
||||
.LeftJoin<TraceSnSubScan>((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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user