From d7b2c9bbb22ab464bf431c42212f1854f0c5d64d Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Thu, 16 Nov 2023 11:03:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=87=BA=E5=BA=93=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=8D=95=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 231119 -> 231119 bytes .../Controllers/OutStockTaskController.cs | 4 + src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 79 ++++++++++++------ src/WMS.Web.Domain/Entitys/OutStockTask.cs | 11 ++- .../Entitys/OutStockTaskDetails.cs | 31 +------ .../Entitys/OutStockTaskErpDetails.cs | 53 ++++++++++++ .../IOutStockTaskRepositories.cs | 2 +- src/WMS.Web.Domain/Mappers/OutStockMapper.cs | 5 +- src/WMS.Web.Domain/Services/BoxService.cs | 1 + .../Services/OutStockTaskService.cs | 68 +++++++++------ .../Configuration/RepositoryDbContext.cs | 24 +++--- .../OutStockTaskRepositories.cs | 59 +++++-------- 12 files changed, 199 insertions(+), 138 deletions(-) create mode 100644 src/WMS.Web.Domain/Entitys/OutStockTaskErpDetails.cs diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index aa15dfb0c8a3dcf8a855352576514052e7deba54..d5fefd8299fd5a147ebfd5b0aa2fa26b9c78f096 100644 GIT binary patch literal 231119 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

NGjpZ6>AC5J?A*-4l*McY29G3QW(ywI-TH`Z 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

Fd3N%do+Ej&AhO3W)rnjafu$r&sH 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 LsrxNEIr)D88$=vd literal 231119 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 diff --git a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs index 15e35a27..7963336c 100644 --- a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs +++ b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs @@ -131,7 +131,11 @@ namespace WMS.Web.Api.Controllers if (loginInfo == null || loginInfo.UserInfo == null) return ResultList.ReFailure(ResultCodes.Token_Invalid_Error); + List str = new List(); + str.Add(billNo); + var res2 = await _repositories.GetListBySourceBillNo(str); var res = await _repositories.GetOutStockTaskListByNo(billNo); + if (res == null || res.Count() == 0) return ResultList.ReFailure(ResultCodes.OutStockTaskNoData); return ResultList.ReSuccess(res); } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 5058c7ee..371ae633 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -964,6 +964,11 @@ 同步成功或者失败 null 就是未同步 + +

+ 同步失败的源订单号 + + 同步时间 @@ -985,7 +990,7 @@ - + 同步金蝶 @@ -1142,21 +1147,6 @@ 单据头Id - - - 对应金蝶单据明细id(销售出库同步金蝶下推使用) - - - - - 来源单号(合并后有多个) - - - - - 销售订单号 - - 物料Id @@ -1182,16 +1172,6 @@ 已出库数量 - - - 已出库数量(合并后不同物料 分别出库多少) - - - - - 应出库数量(合并后不同物料 分别应出多少) - - 订单明细备注 @@ -1207,6 +1187,51 @@ 出库结束时间 + + + 对应erp明细 同一个物料 存在于不同的来源单中(合并后出现多条) + + + + + 对应金蝶的明细 + + + + + 主键 订单编号 + + + + + 任务单明细Id + + + + + 对应金蝶单据明细id(销售出库同步金蝶下推使用) + + + + + 来源单号 + + + + + 销售订单号 + + + + + 应出库数量 + + + + + 已出库数量 + + 序列号操作记录表 @@ -1882,7 +1907,7 @@ - 列表-根据明细中的来源单号 + 列表-根据明细中的来源单号精确匹配 diff --git a/src/WMS.Web.Domain/Entitys/OutStockTask.cs b/src/WMS.Web.Domain/Entitys/OutStockTask.cs index 22e9d9b2..fc3a24e9 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTask.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTask.cs @@ -168,10 +168,13 @@ namespace WMS.Web.Domain.Entitys if (detail_new != null) { detail_new.AccruedQty += d.AccruedQty;//应出数量累加 - detail_new.SaleBillNos.AddRange(d.SaleBillNos); - detail_new.SourceBillNos.AddRange(d.SourceBillNos); - foreach (var dic in d.AccruedQty_Dic) - detail_new.AccruedQty_Dic.Add(dic.Key, dic.Value); + foreach (var erpd in d.ErpDetails) + { + var cd = erpd.Clone(); + cd.Id = 0;cd.DetailId = 0; + detail_new.ErpDetails.Add(cd); + } + } else details_new.Add(d); diff --git a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs index 5ca32cd1..c03c628b 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs @@ -28,22 +28,6 @@ namespace WMS.Web.Domain.Entitys [Column("Fid")] public int Fid { get; set; } /// - /// 对应金蝶单据明细id(销售出库同步金蝶下推使用) - /// - [Column("Erp_DetailId")] - public int Erp_DetailId { get; set; } - /// - /// 来源单号(合并后有多个) - /// - [Column("SourceBillNo")] - public List SourceBillNos { get; set; } - - /// - /// 销售订单号 - /// - [Column("SaleBillNo")] - public List SaleBillNos { get; set; } - /// /// 物料Id /// [Column("MaterialId")] @@ -69,16 +53,6 @@ namespace WMS.Web.Domain.Entitys [Column("RealityQty")] public decimal RealityQty { get; set; } /// - /// 已出库数量(合并后不同物料 分别出库多少) - /// - [Column("RealityQty_Dic")] - public Dictionary RealityQty_Dic { get; set; } = new Dictionary(); - /// - /// 应出库数量(合并后不同物料 分别应出多少) - /// - [Column("AccruedQty_Dic")] - public Dictionary AccruedQty_Dic { get; set; } = new Dictionary(); - /// /// 订单明细备注 /// [Column("Remark")] @@ -93,7 +67,10 @@ namespace WMS.Web.Domain.Entitys /// [Column("OutStockEndTime")] public DateTime? OutStockEndTime { get; set; } - + /// + /// 对应erp明细 同一个物料 存在于不同的来源单中(合并后出现多条) + /// + public List ErpDetails { get; set; } = new List(); } } diff --git a/src/WMS.Web.Domain/Entitys/OutStockTaskErpDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockTaskErpDetails.cs new file mode 100644 index 00000000..88f425cf --- /dev/null +++ b/src/WMS.Web.Domain/Entitys/OutStockTaskErpDetails.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Text; +using WMS.Web.Core; + +namespace WMS.Web.Domain.Entitys +{ + /// + /// 对应金蝶的明细 + /// + [Serializable] + [Table("t_erp_outstock_task_erp_details")] + public class OutStockTaskErpDetails : EntityBase + { + public OutStockTaskErpDetails() { } + /// + /// 主键 订单编号 + /// + [Column("Id")] + public override int Id { get; set; } + /// + /// 任务单明细Id + /// + [Column("DetailId")] + public int DetailId { get; set; } + /// + /// 对应金蝶单据明细id(销售出库同步金蝶下推使用) + /// + [Column("Erp_DetailId")] + public int Erp_DetailId { get; set; } + /// + /// 来源单号 + /// + [Column("SourceBillNo")] + public string SourceBillNo { get; set; } + /// + /// 销售订单号 + /// + [Column("SaleBillNo")] + public string SaleBillNo { get; set; } + /// + /// 应出库数量 + /// + [Column("AccruedQty")] + public decimal AccruedQty { get; set; } + /// + /// 已出库数量 + /// + [Column("RealityQty")] + public decimal RealityQty { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs index f5e57db1..0c29481b 100644 --- a/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs @@ -23,7 +23,7 @@ namespace WMS.Web.Domain.Infrastructure /// 查询实体集合 Task> GetEntityList(List ids); /// - /// 列表-根据明细中的来源单号 + /// 列表-根据明细中的来源单号精确匹配 /// /// /// diff --git a/src/WMS.Web.Domain/Mappers/OutStockMapper.cs b/src/WMS.Web.Domain/Mappers/OutStockMapper.cs index 09e61d71..5690b5ee 100644 --- a/src/WMS.Web.Domain/Mappers/OutStockMapper.cs +++ b/src/WMS.Web.Domain/Mappers/OutStockMapper.cs @@ -24,9 +24,8 @@ namespace WMS.Web.Domain.Mappers CreateMap(); CreateMap(); - CreateMap() - .ForPath(x => x.SourceBillNos, ops => ops.MapFrom(x => new List() { x.SourceBillNo })) - .ForPath(x => x.SaleBillNos, ops => ops.MapFrom(x => new List() { x.SaleBillNo })); + CreateMap(); + CreateMap(); } } } diff --git a/src/WMS.Web.Domain/Services/BoxService.cs b/src/WMS.Web.Domain/Services/BoxService.cs index 53ffcc13..69febf42 100644 --- a/src/WMS.Web.Domain/Services/BoxService.cs +++ b/src/WMS.Web.Domain/Services/BoxService.cs @@ -76,6 +76,7 @@ namespace WMS.Web.Domain.Services foreach (var sn in ops_box.Details.SelectMany(s => s.SerialNumbers)) { var detail = ops_box.Details.FirstOrDefault(f => f.SerialNumbers.Select(s=>s.SerialNumber).Equals(sn.SerialNumber)); + if (detail == null) continue; var opsSerial = list.FirstOrDefault(f => f.OpsBoxId == b.OpsBoxId).Details .SelectMany(s => s.SerialNumbers) .FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber)); diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs index b84b5345..57eb2c08 100644 --- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs @@ -103,29 +103,41 @@ namespace WMS.Web.Domain.Services if (data_list.Count != 0) { //2.1提取出wms任务单明细信息 - foreach (var e in erp_list) + foreach (var outStockTask in data_list) { - //代表单据已经存在 那么就对单据进行修改 - var data = data_list.FirstOrDefault(f => f.Details.SelectMany(s => s.SourceBillNos).Contains(e.SourceBillNo)); - var detail = data.Details.FirstOrDefault(w => w.MaterialId == e.MaterialId); - //存在就修改,没有就添加 - if (detail != null) + var sourcNos = outStockTask.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo).ToList(); + var erps = erp_list.Where(w => sourcNos.Contains(w.SourceBillNo)).ToList(); + foreach (var erp in erps) { - if (detail.AccruedQty_Dic.ContainsKey(e.SourceBillNo)) - detail.AccruedQty_Dic[e.SourceBillNo] = e.AccruedQty; + var detail = outStockTask.Details.FirstOrDefault(w => w.MaterialId == erp.MaterialId); + if (detail == null) + { + //添加一条物料明细 + detail = _mapper.Map(erp); + var erpDetail = _mapper.Map(erp); + detail.ErpDetails.Add(erpDetail); + outStockTask.Details.Add(detail); + } else - detail.AccruedQty_Dic.Add(e.SourceBillNo, e.AccruedQty); - //对集合里的应发做出累加 - detail.AccruedQty = detail.AccruedQty_Dic.Sum(s => s.Value); - } - else - { - var de = _mapper.Map(e); - de.AccruedQty_Dic.Add(de.SourceBillNos.First(), de.AccruedQty); - data.Details.Add(de); + { + //找到物料明细下面对应的来源单明细 然后修改 + var erpDetail = detail.ErpDetails.FirstOrDefault(f => f.SourceBillNo.Equals(erp.SourceBillNo)); + if (erpDetail == null) + { + erpDetail = _mapper.Map(erp); + detail.ErpDetails.Add(erpDetail); + outStockTask.Details.Add(detail); + } + else + { + erpDetail.AccruedQty = erp.AccruedQty; + detail.AccruedQty = detail.ErpDetails.Sum(s => s.AccruedQty); + } + } + //操作完后剔除 + erp_removeList.Add(erp); } - erp_removeList.Add(e); } //2.2.提交修改 var isSuccess = await _outStockTaskRepositories.EditEntityList(data_list, isTransaction); @@ -150,9 +162,13 @@ namespace WMS.Web.Domain.Services //找到当前对应来源单据编号的集合数据 var current_erp_details = erp_list.Where(x => x.SourceBillNo == item).ToList(); //给到dto的实体明细中 - entity.Details = _mapper.Map>(current_erp_details); - foreach (var de in entity.Details) - de.AccruedQty_Dic.Add(de.SourceBillNos.First(), de.AccruedQty); + foreach (var erp in current_erp_details) + { + var detail = _mapper.Map(erp); + var erpDetail = _mapper.Map(erp); + detail.ErpDetails.Add(erpDetail); + entity.Details.Add(detail); + } add_entitys.Add(entity); } //3.1提交新增 @@ -294,15 +310,15 @@ namespace WMS.Web.Domain.Services foreach (var entity in taskList) { if (entity.Type == OutStockType.Sal) - DeliveryNotice_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos)); + DeliveryNotice_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s=>s.SourceBillNo)); else if (entity.Type == OutStockType.Stkdirecttransfers) - TransferDirect_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos)); + TransferDirect_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo)); else if (entity.Type == OutStockType.StktransferInst) - TransferOut_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos)); + TransferOut_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo)); else if (entity.Type == OutStockType.Assembled) - AssembledApp_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos)); + AssembledApp_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo)); else if (entity.Type == OutStockType.Miscellaneous) - MisDeliveryOut_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos)); + MisDeliveryOut_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo)); } if (DeliveryNotice_Nos.Count() > 0) diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs index 4cb2ecdf..ddd8e34f 100644 --- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs +++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs @@ -125,21 +125,16 @@ namespace WMS.Web.Repositories.Configuration ent.ToTable("t_erp_outstock_task_details"); ent.HasKey(x => x.Id); - ent.Property(f => f.SourceBillNos).HasConversion( - v => JsonConvert.SerializeObject(v), - v => JsonConvert.DeserializeObject>(v)); + ent.HasMany(p => p.ErpDetails) + .WithOne() + .HasForeignKey(p => p.DetailId) + .OnDelete(DeleteBehavior.Cascade); + }); - ent.Property(f => f.SaleBillNos).HasConversion( - v => JsonConvert.SerializeObject(v), - v => JsonConvert.DeserializeObject>(v)); - - ent.Property(f => f.AccruedQty_Dic).HasConversion( - v => JsonConvert.SerializeObject(v), - v => JsonConvert.DeserializeObject>(v)); - - ent.Property(f => f.RealityQty_Dic).HasConversion( - v => JsonConvert.SerializeObject(v), - v => JsonConvert.DeserializeObject>(v)); + builder.Entity(ent => + { + ent.ToTable("t_erp_outstock_task_erp_details"); + ent.HasKey(x => x.Id); }); #endregion @@ -298,6 +293,7 @@ namespace WMS.Web.Repositories.Configuration public DbSet TakeStock { get; set; } public DbSet OutStockDetails { get; set; } public DbSet OutStockTaskDetails { get; set; } + public DbSet OutStockTaskErpDetails { get; set; } public DbSet TakeStockDetails { get; set; } public DbSet Instock { get; set; } public DbSet InStockDetails { get; set; } diff --git a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs index b852ceea..2e699e5f 100644 --- a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs @@ -188,12 +188,13 @@ namespace WMS.Web.Repositories try { var res = await _context.OutStockTask - .Include(s => s.Details) + .Include(s => s.Details).ThenInclude(s => s.ErpDetails) .FirstOrDefaultAsync(f => f.Id == entity.Id); if (res == null) return null; _mapper.Map(entity, res); _mapper.ToMapList(entity.Details, res.Details); + _mapper.ToMapList(entity.Details.SelectMany(s => s.ErpDetails).ToList(), res.Details.SelectMany(s => s.ErpDetails).ToList()); await _context.SaveChangesAsync(); if (_transaction != null) @@ -216,17 +217,13 @@ namespace WMS.Web.Repositories /// public async Task<(List list, int total)> GetListAsync(OutStockTaskQueryRequest dto) { - List ids = new List(); - if (!string.IsNullOrEmpty(dto.SourceBillNo)) - ids = await _context.OutStockTaskDetails.FromSqlRaw($"SELECT Id FROM t_erp_outstock_task_details WHERE SourceBillNo like '%{dto.SourceBillNo}%'").Select(s => s.Id).ToListAsync(); - - #region erp基础资料 List mIds = new List(); var materials_result = await _erpService.BillQueryForMaterial(); if (!materials_result.IsSuccess) return (new List(), 0); var materials = materials_result.Data.ToList(); + //var materials =new List(); //物料集合;模糊查询后的物料集合 if (!string.IsNullOrEmpty(dto.MaterialNumber)) { @@ -247,7 +244,7 @@ namespace WMS.Web.Repositories #endregion - var query = _context.OutStockTaskDetails + var query = _context.OutStockTaskDetails.Include(x => x.ErpDetails) .GroupJoin(_context.OutStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders }) .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order }) .OrderByDescending(o => o.order.Id) @@ -267,8 +264,8 @@ namespace WMS.Web.Repositories query = query.Where(w => mIds.Contains(w.detail.MaterialId)); if (dto.Ids.Count() > 0) query = query.Where(w => dto.Ids.Contains(w.detail.Id)); - if (ids.Count() != 0) - query = query.Where(w => ids.Contains(w.detail.Id)); + if (!string.IsNullOrEmpty(dto.SourceBillNo)) + query = query.Where(w => w.detail.ErpDetails.Where(wd => EF.Functions.Like(wd.SourceBillNo, "%" + dto.SourceBillNo + "%")).Select(s => s.DetailId).Contains(w.detail.Id)); if (dto.Type != null) query = query.Where(w => w.order.Type == (OutStockType)dto.Type); if (dto.Status != null) @@ -295,8 +292,8 @@ namespace WMS.Web.Repositories OutStockBeginTime = s.detail.OutStockBeginTime.DateToStringSeconds(), OutStockEndTime = s.detail.OutStockEndTime.DateToStringSeconds(), Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockCode), - SourceBillNo = string.Join(",", s.detail.SourceBillNos), - SaleBillNo = string.Join(",", s.detail.SaleBillNos), + SourceBillNo = string.Join(",", s.detail.ErpDetails.Select(s => s.SourceBillNo)), + SaleBillNo = string.Join(",", s.detail.ErpDetails.Select(s => s.SaleBillNo)), DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), ReceiptCustomer = s.order.Type == OutStockType.Sal ? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId) @@ -321,13 +318,12 @@ namespace WMS.Web.Repositories if (!materials_result.IsSuccess) return new List(); var materials = materials_result.Data.ToList(); - List ids = new List(); - ids = await _context.OutStockTaskDetails.FromSqlRaw($"SELECT Fid FROM t_erp_outstock_task_details WHERE SourceBillNo like '%{billNo}%'").Select(s => s.Id).ToListAsync(); - var list = await _context.OutStockTask.Include(x => x.Details) + + var list = await _context.OutStockTask.Include(x => x.Details).ThenInclude(s => s.ErpDetails) .Where(f => (EF.Functions.Like(f.BillNo, "%" + billNo + "%") || - ids.Contains(f.Id)) && + f.Details.SelectMany(s => s.ErpDetails).Where(w => EF.Functions.Like(w.SourceBillNo, "%" + billNo + "%")).Any()) && (f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait)) .OrderByDescending(o => o.Id) .ToListAsync(); @@ -354,7 +350,7 @@ namespace WMS.Web.Repositories return new GetOutStockTaskByNoResponse(); var materials = materials_result.Data.ToList(); - var entity = await _context.OutStockTask.Include(x => x.Details) + var entity = await _context.OutStockTask.Include(x => x.Details).ThenInclude(s => s.ErpDetails) .FirstOrDefaultAsync(f => f.BillNo.Equals(billNo) && (f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait)); @@ -372,26 +368,15 @@ namespace WMS.Web.Repositories } /// - /// 单号搜索 + /// 单号精确匹配 /// /// /// public async Task> GetListBySourceBillNo(List sourcebillNos) { - List ids = new List(); - string str=$"SELECT Fid FROM t_erp_outstock_task_details WHERE "; - for (int i=0;i s.Id).ToListAsync(); - var entitys = await _context.OutStockTask - .Include(s => s.Details) - .Where(w => ids.Contains(w.Id)) + .Include(s => s.Details).ThenInclude(s => s.ErpDetails) + .Where(w => w.Details.SelectMany(s => s.ErpDetails).Where(wd => sourcebillNos.Contains(wd.SourceBillNo)).Any()) .OrderByDescending(o => o.Id) .ToListAsync(); @@ -436,12 +421,9 @@ namespace WMS.Web.Repositories public async Task> GetOutStockTaskNosByNo(string billNo) { - List ids = new List(); - ids = await _context.OutStockTaskDetails.FromSqlRaw($"SELECT Fid FROM t_erp_outstock_task_details WHERE SourceBillNo like '%{billNo}%'").Select(s => s.Id).ToListAsync(); - - return await _context.OutStockTask.Include(x => x.Details) + return await _context.OutStockTask.Include(x => x.Details).ThenInclude(s => s.ErpDetails) .Where(f => (EF.Functions.Like(f.BillNo, "%" + billNo + "%") || - ids.Contains(f.Id)) && + f.Details.SelectMany(s => s.ErpDetails).Where(w => EF.Functions.Like(w.SourceBillNo, "%" + billNo + "%")).Any()) && (f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait)) .OrderByDescending(o => o.Id) .Select(s => s.BillNo) @@ -458,11 +440,16 @@ namespace WMS.Web.Repositories { return await GetListAsync(dto); } - + /// + /// 根据订单号精确搜索 + /// + /// + /// public async Task> GetListByBillNo(List billNos) { var entitys = await _context.OutStockTask .Include(s => s.Details) + .ThenInclude(s => s.ErpDetails) .Where(w => billNos.Contains(w.BillNo)) .OrderByDescending(o => o.Id) .ToListAsync();