diff --git a/src/WMS.Web.Domain/Entitys/OutStock.cs b/src/WMS.Web.Domain/Entitys/OutStock.cs index a13afe31..95d0e28e 100644 --- a/src/WMS.Web.Domain/Entitys/OutStock.cs +++ b/src/WMS.Web.Domain/Entitys/OutStock.cs @@ -31,11 +31,6 @@ namespace WMS.Web.Domain.Entitys [Column("BillNo")] public string BillNo { get; set; } /// - /// 来源单号 - /// - [Column("SourceBillNo")] - public string SourceBillNo { get; set; } - /// /// 单据类型 /// [Column("Type")] diff --git a/src/WMS.Web.Domain/Entitys/OutStockDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockDetails.cs index 76c3a5e1..4c642628 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockDetails.cs @@ -30,8 +30,12 @@ namespace WMS.Web.Domain.Entitys /// 销售订单号 /// [Column("SaleBillNo")] - public string SaleBillNo { get; set; } - + public List SaleBillNos { get; set; } + /// + /// 来源单号 + /// + [Column("SourceBillNo")] + public List SourceBillNos { get; set; } /// /// 物料Id /// diff --git a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs index bd145c26..b64b5328 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs @@ -42,7 +42,7 @@ namespace WMS.Web.Domain.Entitys /// 销售订单号 /// [Column("SaleBillNo")] - public string SaleBillNo { get; set; } + public List SaleBillNos { get; set; } /// /// 物料Id /// diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 15021c82..c40b4e41 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -187,6 +187,7 @@ namespace WMS.Web.Domain.Services foreach (var entity in entityList) { var box = boxList.FirstOrDefault(f => f.Id == entity.BoxId); + var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId); //修改序列号和箱绑定关系 entity.OutStock(outStock.BillNo, outStock.Type); @@ -200,14 +201,14 @@ namespace WMS.Web.Domain.Services OperateTime = DateTime.Now, OperateType = OutStockTypeConvert(outStock.Type), OperateUser = userName, - Remark = "来源单号:" + outStock.SourceBillNo + "\r\n" + "出库单号:" + outStock.BillNo + Remark = "来源单号:" + string.Join(",",outstockDetail.SourceBillNos) + "\r\n" + "出库单号:" + outStock.BillNo }; if (outStock.Type == OutStockType.Sal) { var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId); var res_c = await _erpService.BillQueryForCustomer(); var customer = res_c.Data.FirstOrDefault(f => f.Id == outStock.ReceiptCustomerId); - op.Remark += "\r\n" + "销售订单号:" + detail.SaleBillNo; + op.Remark += "\r\n" + "销售订单号:" + string.Join(",", detail.SaleBillNos); op.Remark += "\r\n" + "客户:" + customer?.Name; } sList.Add(op); diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs index 0d80b1fb..b2905922 100644 --- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs +++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs @@ -94,6 +94,14 @@ namespace WMS.Web.Repositories.Configuration ent.Property(f => f.SerialNumbers).HasConversion( v => JsonConvert.SerializeObject(v), v => JsonConvert.DeserializeObject>(v)); + + ent.Property(f => f.SourceBillNos).HasConversion( + v => JsonConvert.SerializeObject(v), + v => JsonConvert.DeserializeObject>(v)); + + ent.Property(f => f.SaleBillNos).HasConversion( + v => JsonConvert.SerializeObject(v), + v => JsonConvert.DeserializeObject>(v)); }); #endregion @@ -115,8 +123,13 @@ namespace WMS.Web.Repositories.Configuration ent.Property(f => f.SourceBillNos).HasConversion( v => JsonConvert.SerializeObject(v), + v => JsonConvert.DeserializeObject>(v)); + + ent.Property(f => f.SaleBillNos).HasConversion( + v => JsonConvert.SerializeObject(v), v => JsonConvert.DeserializeObject>(v)); }); + #endregion #region 盘点单 diff --git a/src/WMS.Web.Repositories/OutStockRepositories.cs b/src/WMS.Web.Repositories/OutStockRepositories.cs index 0b423981..a2ebf5d5 100644 --- a/src/WMS.Web.Repositories/OutStockRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockRepositories.cs @@ -82,6 +82,10 @@ namespace WMS.Web.Repositories /// public async Task<(List list, int total)> GetListAsync(OutStockQueryRequest dto) { + List detailIds = new List(); + if (!string.IsNullOrEmpty(dto.SourceBillNo)) + detailIds = await _context.OutStockTaskDetails.FromSqlRaw($"SELECT Id FROM t_wms_outstock_details WHERE SourceBillNo like '%{dto.SourceBillNo}%'").Select(s => s.Id).ToListAsync(); + List ids = new List(); if (!string.IsNullOrEmpty(dto.Creator)) { @@ -134,8 +138,8 @@ namespace WMS.Web.Repositories query = query.Where(w => mIds.Contains(w.detail.MaterialId)); if (ids.Count() > 0) query = query.Where(w => ids.Contains(w.order.CreatorId)); - if (!string.IsNullOrEmpty(dto.SourceBillNo)) - query = query.Where(w => EF.Functions.Like(w.order.SourceBillNo, "%" + dto.SourceBillNo + "%")); + if (detailIds.Count()!=0) + query = query.Where(w => detailIds.Contains(w.detail.Id)); if (dto.Type != null) query = query.Where(w => w.order.Type == (OutStockType)dto.Type); if (dto.SuccessSync != null) @@ -160,8 +164,8 @@ namespace WMS.Web.Repositories CreateTime = s.order.CreateTime.DateToStringSeconds(), SuccessSync = s.order.SuccessSync, Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockCode), - SourceBillNo = s.order.SourceBillNo, - SaleBillNo = s.detail.SaleBillNo, + SourceBillNo =string.Join(",",s.detail.SourceBillNos), + SaleBillNo = string.Join(",", s.detail.SaleBillNos), DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), ReceiptCustomer = s.order.Type == OutStockType.Sal ? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId) diff --git a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs index 95e19a33..8430849d 100644 --- a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs @@ -296,7 +296,7 @@ namespace WMS.Web.Repositories OutStockEndTime = s.detail.OutStockEndTime.DateToStringSeconds(), Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockCode), SourceBillNo = string.Join(",", s.detail.SourceBillNos), - SaleBillNo = s.detail.SaleBillNo, + SaleBillNo = string.Join(",", s.detail.SaleBillNos), DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), ReceiptCustomer = s.order.Type == OutStockType.Sal ? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)