diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs index f84bbe78..ae638687 100644 --- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs +++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs @@ -29,10 +29,14 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord /// [Required(ErrorMessage = "目标箱号不能为空")] public string DestBoxBillNo { get; set; } + ///// + ///// 目标箱仓位或重新上架选择仓位 + ///// + //public int SubStockId { get; set; } = 0; /// /// 目标箱仓位或重新上架选择仓位 /// - public int SubStockId { get; set; } = 0; + public string SubStockCode { get; set; } /// /// 明细 /// @@ -44,23 +48,23 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord public class SaveChangeBoxRecordDetailsRequest { public SaveChangeBoxRecordDetailsRequest() { } - public SaveChangeBoxRecordDetailsRequest(int materialId, decimal qty, List serialNumbers) + public SaveChangeBoxRecordDetailsRequest(string materialNumber, decimal qty, List serialNumbers) { - this.MaterialId = materialId; + this.MaterialNumber = materialNumber; this.Qty = qty; this.SerialNumbers = serialNumbers; } - public SaveChangeBoxRecordDetailsRequest(int materialId, decimal qty, string serialNumber) + public SaveChangeBoxRecordDetailsRequest(string materialNumber, decimal qty, string serialNumber) { - this.MaterialId = materialId; + this.MaterialNumber = materialNumber; this.Qty = qty; this.SerialNumbers.Add(serialNumber); } - /// - /// 物料ID - /// - [Required(ErrorMessage = "物料不能为空")] - public int MaterialId { get; set; } + ///// + ///// 物料ID + ///// + //[Required(ErrorMessage = "物料不能为空")] + //public int MaterialId { get; set; } /// /// 物料编码 /// diff --git a/src/WMS.Web.Core/Dto/Inventory/SerialNumbersBoxInventoryDto.cs b/src/WMS.Web.Core/Dto/Inventory/SerialNumbersBoxInventoryDto.cs index c392ffc4..86bcaf07 100644 --- a/src/WMS.Web.Core/Dto/Inventory/SerialNumbersBoxInventoryDto.cs +++ b/src/WMS.Web.Core/Dto/Inventory/SerialNumbersBoxInventoryDto.cs @@ -13,10 +13,14 @@ namespace WMS.Web.Core.Dto.Inventory /// 序列号 /// public string SerialNumber { get; set; } + ///// + ///// 物料ID + ///// + //public int MaterialId { get; set; } /// - /// 物料ID + /// 物料编码 /// - public int MaterialId { get; set; } + public string MaterialNumber { get; set; } /// /// wms箱ID /// diff --git a/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs index 6975b838..d016323a 100644 --- a/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs +++ b/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs @@ -15,11 +15,16 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord /// [Required(ErrorMessage = "箱号不能为空")] public int BoxId { get; set; } + ///// + ///// 仓位ID + ///// + //[Required(ErrorMessage = "仓位不能为空")] + //public int SubStockId { get; set; } /// - /// 仓位ID + /// 仓位 /// [Required(ErrorMessage = "仓位不能为空")] - public int SubStockId { get; set; } + public string SubStockCode { get; set; } /// /// 数量 /// @@ -36,11 +41,11 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord /// public class SaveMoveBoxRecordDetailsRequest { - /// - /// 物料Id - /// - [Required(ErrorMessage = "物料不能为空")] - public int MaterialId { get; set; } + ///// + ///// 物料Id + ///// + //[Required(ErrorMessage = "物料不能为空")] + //public int MaterialId { get; set; } /// /// 物料编码 /// diff --git a/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs b/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs index 6d596f45..fc863465 100644 --- a/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs +++ b/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs @@ -25,10 +25,10 @@ namespace WMS.Web.Core.Dto.OutStock } public class SaveOutStockDetailsRequest { - /// - /// 物料Id - /// - public int MaterialId { get; set; } + ///// + ///// 物料Id + ///// + //public int MaterialId { get; set; } /// /// 物料编码 /// @@ -43,10 +43,10 @@ namespace WMS.Web.Core.Dto.OutStock /// [Required(ErrorMessage = "箱不能为空")] public int BoxId { get; set; } - /// - /// 箱对应仓位不能为空 - /// - public int SubStockId { get; set; } + ///// + ///// 箱对应仓位不能为空 + ///// + //public int SubStockId { get; set; } /// /// 仓位 /// diff --git a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs index 01936388..cf5a1712 100644 --- a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs +++ b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs @@ -15,21 +15,26 @@ namespace WMS.Web.Core.Dto.TakeStock /// [Required(ErrorMessage = "箱不能为空")] public int BoxId { get; set; } - /// - /// 物料ID - /// - [Required(ErrorMessage = "物料不能为空")] - public int MaterialId { get; set; } + ///// + ///// 物料ID + ///// + //[Required(ErrorMessage = "物料不能为空")] + //public int MaterialId { get; set; } /// /// 物料编码 /// [Required(ErrorMessage = "物料不能为空")] public string MaterialNumber { get; set; } + ///// + ///// 仓位ID + ///// + //[Required(ErrorMessage = "仓位不能为空")] + //public int SubStockId { get; set; } /// - /// 仓位ID + /// 仓位 /// [Required(ErrorMessage = "仓位不能为空")] - public int SubStockId { get; set; } + public string SubStockCode { get; set; } /// /// 子仓库(跟金蝶交互字段) /// diff --git a/src/WMS.Web.Domain/Entitys/Box.cs b/src/WMS.Web.Domain/Entitys/Box.cs index 5b30a441..2b99ae77 100644 --- a/src/WMS.Web.Domain/Entitys/Box.cs +++ b/src/WMS.Web.Domain/Entitys/Box.cs @@ -62,11 +62,11 @@ namespace WMS.Web.Domain.Entitys public List Details { get; set; } = new List(); //移出 - public Result Out(List<(int MaterialId, decimal Qty, List SerialNumbers)> list) + public Result Out(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list) { foreach (var l in list) { - var d = this.Details.FirstOrDefault(f => f.MaterialId == l.MaterialId); + var d = this.Details.FirstOrDefault(f => f.MaterialNumber == l.MaterialNumber); if (d == null) return Result.ReFailure(ResultCodes.BoxMateriaNoData); d.Qty = d.Qty - l.Qty; if (d.Qty <= 0) this.Details.Remove(d); @@ -76,16 +76,16 @@ namespace WMS.Web.Domain.Entitys } //移入 - public Result In(List<(int MaterialId, decimal Qty, List SerialNumbers)> list) + public Result In(List<(string MaterialNumber, decimal Qty, List SerialNumbers)> list) { foreach (var l in list) { - var d = this.Details.FirstOrDefault(f => f.MaterialId == l.MaterialId); + var d = this.Details.FirstOrDefault(f => f.MaterialNumber == l.MaterialNumber); if (d == null) { this.Details.Add(new BoxDetails() { - MaterialId = l.MaterialId, + MaterialNumber = l.MaterialNumber, Qty = l.Qty, //SerialNumbers=l.SerialNumbers }); @@ -98,14 +98,14 @@ namespace WMS.Web.Domain.Entitys } //移入 - public Result TakeStock(int materialId, decimal qty) + public Result TakeStock(string materialNumber, decimal qty) { - var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId); + var d = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber); if (d == null) { this.Details.Add(new BoxDetails() { - MaterialId = materialId, + MaterialNumber = materialNumber, Qty = qty }); } @@ -114,17 +114,17 @@ namespace WMS.Web.Domain.Entitys /// /// 出入库回退上架 /// - /// + /// /// /// - public Result BackRecordUp(int materialId, decimal qty) + public Result BackRecordUp(string materialNumber, decimal qty) { - var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId); + var d = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber); if (d == null) { this.Details.Add(new BoxDetails() { - MaterialId = materialId, + MaterialNumber = materialNumber, Qty = qty }); } @@ -136,12 +136,12 @@ namespace WMS.Web.Domain.Entitys /// /// 出入库回退下架 /// - /// + /// /// /// - public Result BackRecordDown(int materialId, decimal qty) + public Result BackRecordDown(string materialNumber, decimal qty) { - var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId); + var d = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber); if (d != null) d.Qty = (d.Qty - qty) > 0 ? (d.Qty - qty) : 0; @@ -150,12 +150,12 @@ namespace WMS.Web.Domain.Entitys /// /// 出库 /// - /// + /// /// /// - public Result OutStock(int materialId, decimal qty) + public Result OutStock(string materialNumber, decimal qty) { - var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId); + var d = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber); if (d != null) d.Qty = (d.Qty - qty) > 0 ? (d.Qty - qty) : 0; diff --git a/src/WMS.Web.Domain/Entitys/BoxDetails.cs b/src/WMS.Web.Domain/Entitys/BoxDetails.cs index f2e6861d..2f3b4c28 100644 --- a/src/WMS.Web.Domain/Entitys/BoxDetails.cs +++ b/src/WMS.Web.Domain/Entitys/BoxDetails.cs @@ -23,10 +23,10 @@ namespace WMS.Web.Domain.Entitys /// 单据头ID /// public int Fid { get; set; } - /// - /// 物料ID - /// - public int MaterialId { get; set; } + ///// + ///// 物料ID + ///// + //public int MaterialId { get; set; } /// /// 物料编码 /// diff --git a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs index 54e60d8b..64964642 100644 --- a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs +++ b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs @@ -24,11 +24,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("BillNo")] public string BillNo { get; set; } - /// - /// 物料ID - /// - [Column("MaterialId")] - public int MaterialId { get; set; } + ///// + ///// 物料ID + ///// + //[Column("MaterialId")] + //public int MaterialId { get; set; } /// /// 物料编码 /// @@ -99,14 +99,14 @@ namespace WMS.Web.Domain.Entitys /// /// /// - /// + /// /// - public void Create(int creatorId,decimal qty,int materialId, List serialNumbers,int srcBoxId,int destBoxId) + public void Create(int creatorId,decimal qty,string materialNumber, List serialNumbers,int srcBoxId,int destBoxId) { this.SrcBoxId = srcBoxId; this.DestBoxId = destBoxId; this.SerialNumbers = serialNumbers; - this.MaterialId = materialId; + this.MaterialNumber = materialNumber; this.Qty = qty; this.CreatorId = creatorId; this.CreateTime = DateTime.Now; diff --git a/src/WMS.Web.Domain/Entitys/MoveBoxRecordDetails.cs b/src/WMS.Web.Domain/Entitys/MoveBoxRecordDetails.cs index 62ebbc52..0635dd2e 100644 --- a/src/WMS.Web.Domain/Entitys/MoveBoxRecordDetails.cs +++ b/src/WMS.Web.Domain/Entitys/MoveBoxRecordDetails.cs @@ -24,11 +24,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("Fid")] public int Fid { get; set; } - /// - /// 物料Id - /// - [Column("MaterialId")] - public int MaterialId { get; set; } + ///// + ///// 物料Id + ///// + //[Column("MaterialId")] + //public int MaterialId { get; set; } /// /// 物料编码 /// diff --git a/src/WMS.Web.Domain/Entitys/OutStockDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockDetails.cs index 3d6617ad..ced86b52 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockDetails.cs @@ -25,11 +25,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("Fid")] public int Fid { get; set; } - /// - /// 物料Id - /// - [Column("MaterialId")] - public int MaterialId { get; set; } + ///// + ///// 物料Id + ///// + //[Column("MaterialId")] + //public int MaterialId { get; set; } /// /// 物料编码 /// diff --git a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs index bb0f3f2b..bd5752f1 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs @@ -27,11 +27,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("Fid")] public int Fid { get; set; } - /// - /// 物料Id - /// - [Column("MaterialId")] - public int MaterialId { get; set; } + ///// + ///// 物料Id + ///// + //[Column("MaterialId")] + //public int MaterialId { get; set; } /// /// 物料编码 /// diff --git a/src/WMS.Web.Domain/Entitys/SerialNumberOperate.cs b/src/WMS.Web.Domain/Entitys/SerialNumberOperate.cs index e69e769b..25f4e03c 100644 --- a/src/WMS.Web.Domain/Entitys/SerialNumberOperate.cs +++ b/src/WMS.Web.Domain/Entitys/SerialNumberOperate.cs @@ -15,12 +15,12 @@ namespace WMS.Web.Domain.Entitys public class SerialNumberOperate : EntityBase { public SerialNumberOperate() { } - public SerialNumberOperate(string serialNumber, SerialNumberOperateType operateType, int materialId, string operateUser, string remark, + public SerialNumberOperate(string serialNumber, SerialNumberOperateType operateType, string materialNumber, string operateUser, string remark, int? supplierId = null, int? orgId = null, int? stockId = null, DateTime? operateTime = null) { this.SerialNumber = serialNumber; - this.MaterialId = materialId; + this.MaterialNumber = materialNumber; this.OperateType = operateType; this.OperateUser = operateUser; this.Remark = remark; @@ -41,10 +41,10 @@ namespace WMS.Web.Domain.Entitys /// 序列号操作类型 /// public SerialNumberOperateType OperateType { get; set; } = SerialNumberOperateType.Generate; - /// - /// 物料ID - /// - public int MaterialId { get; set; } + ///// + ///// 物料ID + ///// + //public int MaterialId { get; set; } /// /// 物料编码 /// @@ -77,13 +77,13 @@ namespace WMS.Web.Domain.Entitys /// /// 装箱(记录) /// - /// - /// + /// + /// /// - public void CompleteCartonBox(string serialNumber, int materialId, Box box) + public void CompleteCartonBox(string serialNumber, string materialNumber, Box box) { this.SerialNumber = serialNumber; - this.MaterialId = materialId; + this.MaterialNumber = materialNumber; this.OperateType = SerialNumberOperateType.CompleteCartonBox; this.OperateTime = box.CompleteCartonTime; this.OperateUser = box.CreateUser; diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs index 482d1c0c..1bfc3985 100644 --- a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs +++ b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs @@ -17,10 +17,10 @@ namespace WMS.Web.Domain.Entitys public class SerialNumbers : EntityBase { public SerialNumbers() { } - public SerialNumbers(string serialNumber, int materialId, int boxId, int opsBoxId, string creator, DateTime? createTime, DateTime? completeCartonTime) + public SerialNumbers(string serialNumber, string materialNumber, int boxId, int opsBoxId, string creator, DateTime? createTime, DateTime? completeCartonTime) { this.SerialNumber = serialNumber; - this.MaterialId = materialId; + this.MaterialNumber = materialNumber; this.BoxId = boxId; this.OpsBoxId = opsBoxId; this.Creator = creator; @@ -37,11 +37,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("SerialNumber")] public string SerialNumber { get; set; } - /// - /// 物料ID - /// - [Column("MaterialId")] - public int MaterialId { get; set; } + ///// + ///// 物料ID + ///// + //[Column("MaterialId")] + //public int MaterialId { get; set; } /// /// 物料编码 /// @@ -118,9 +118,9 @@ namespace WMS.Web.Domain.Entitys /// 出库 /// /// 出库单 - public void OutStock(OutStock outStock, int materialId) + public void OutStock(OutStock outStock, string materialNumber) { - var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialId == materialId); + var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber); if (outstockDetail == null) return; //按产品出才解绑 按箱子出不解绑 if (outStock.Method == InventoryInOutMethod.Product) diff --git a/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs b/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs index f6c2e307..5fc83588 100644 --- a/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs +++ b/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs @@ -30,11 +30,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("BoxId")] public int BoxId { get; set; } - /// - /// 物料ID - /// - [Column("MaterialId")] - public int MaterialId { get; set; } + ///// + ///// 物料ID + ///// + //[Column("MaterialId")] + //public int MaterialId { get; set; } /// /// 物料编码 /// diff --git a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs index 7fb795c1..032ed4a2 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs @@ -36,6 +36,21 @@ namespace WMS.Web.Domain.IService.Public /// string GetMaterialSpecifications(List erpMaterials, int materialId); + /// + /// 获取物料名称 + /// + /// + /// + string GetMaterialName(List erpMaterials, string materialNumber); + + /// + /// 获取物料规格型号 + /// + /// + /// + /// + string GetMaterialSpecifications(List erpMaterials, string materialNumber); + /// /// 获取物料基本单位名称 /// diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 19cc79d9..eb6a3bed 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -121,6 +121,12 @@ namespace WMS.Web.Domain.IService.Public /// /// Task> BillQueryForMaterial(int id); + /// + /// erp:基础数据-物料信息 + /// + /// + /// + Task> BillQueryForMaterial(string number); /// /// diff --git a/src/WMS.Web.Domain/Services/BoxService.cs b/src/WMS.Web.Domain/Services/BoxService.cs index 1088a847..a6b407d7 100644 --- a/src/WMS.Web.Domain/Services/BoxService.cs +++ b/src/WMS.Web.Domain/Services/BoxService.cs @@ -102,14 +102,14 @@ namespace WMS.Web.Domain.Services .SelectMany(s => s.SerialNumbers) .FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber)); //序列号 - SerialNumbers s = new SerialNumbers(sn.SerialNumber, detail.MaterialId, b.Id, b.OpsBoxId, opsSerial.BarCereateUser, opsSerial.BarCreateTime, b.CompleteCartonTime); + SerialNumbers s = new SerialNumbers(sn.SerialNumber, detail.MaterialNumber, b.Id, b.OpsBoxId, opsSerial.BarCereateUser, opsSerial.BarCreateTime, b.CompleteCartonTime); sList.Add(s); //序列号记录(序列号生成) - SerialNumberOperate so = new SerialNumberOperate(sn.SerialNumber, SerialNumberOperateType.Generate, detail.MaterialId, opsSerial.BarCereateUser, "", b.SupplierId, b.OrgId, null, opsSerial.BarCreateTime); + SerialNumberOperate so = new SerialNumberOperate(sn.SerialNumber, SerialNumberOperateType.Generate, detail.MaterialNumber, opsSerial.BarCereateUser, "", b.SupplierId, b.OrgId, null, opsSerial.BarCreateTime); soList.Add(so); //序列号记录(装箱) SerialNumberOperate so_g = new SerialNumberOperate(); - so_g.CompleteCartonBox(sn.SerialNumber, detail.MaterialId, b); + so_g.CompleteCartonBox(sn.SerialNumber, detail.MaterialNumber, b); soList.Add(so_g); } } diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index fa5cfb42..63a45e57 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -132,7 +132,7 @@ namespace WMS.Web.Domain.Services if (destBoxs.Count() != destIds.Count()) return Result.ReFailure(ResultCodes.BoxNoData); foreach (var d in dto) { - var l = d.Details.Select(s => (s.MaterialId, s.Qty, s.SerialNumbers)).ToList(); + var l = d.Details.Select(s => (s.MaterialNumber, s.Qty, s.SerialNumbers)).ToList(); var srcBox = srcBoxs.FirstOrDefault(f => f.Id == d.SrcBoxId); var destBox = destBoxs.FirstOrDefault(f => f.Id == d.DestBoxId); //原箱移出 @@ -167,7 +167,7 @@ namespace WMS.Web.Domain.Services foreach (var d in dt.Details) { ChangeBoxRecord entity = new ChangeBoxRecord(); - entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialId, d.SerialNumbers, dt.SrcBoxId, dt.DestBoxId); + entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialNumber, d.SerialNumbers, dt.SrcBoxId, dt.DestBoxId); entity.SrcSubStockId = boxi?.SubStockId ?? 0;//原乡仓位需要去拉一下库存获取 entity.SrcSubStockCode = subStock_s?.Code ?? ""; if (subStock != null) @@ -236,7 +236,7 @@ namespace WMS.Web.Domain.Services } OpsBoxDetailsResponse dr = new OpsBoxDetailsResponse() { - MaterialId = d.MaterialId, + MaterialNumber = d.MaterialNumber, Qty = d.Qty, SerialNumbers = s }; @@ -283,7 +283,7 @@ namespace WMS.Web.Domain.Services entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.Qty, subStock?.ErpOrgCode, subStock?.StockCode, d.SubStockId, loginInfo.UserInfo.StaffId, subStock?.Code); entity.Details = d.Details.Select(s => new MoveBoxRecordDetails() { - MaterialId = s.MaterialId, + MaterialNumber = s.MaterialNumber, Qty = s.Qty, SerialNumbers = s.SerialNumbers }).ToList(); diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index a322ea7a..cf6586d6 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -92,15 +92,15 @@ namespace WMS.Web.Domain.Services if (outStockTask.Status == OutStockStatus.Repeal) return Result.ReFailure(ResultCodes.OutStockTaskRepeal); - var mIds = dto.Details.GroupBy(g => g.MaterialId).Select(s => s.Key).ToList(); + var mIds = dto.Details.GroupBy(g => g.MaterialNumber).Select(s => s.Key).ToList(); foreach (var m in mIds) { - var d_boxIds = dto.Details.Where(w => w.MaterialId == m).Select(s => s.BoxId); + var d_boxIds = dto.Details.Where(w => w.MaterialNumber == m).Select(s => s.BoxId); if (d_boxIds.Distinct().Count() != d_boxIds.Count()) return Result.ReFailure(ResultCodes.BoxOutStockTaskBoxError); } //上传的物料在任务单里没有找到不能出库 - var ex = dto.Details.Select(s => s.MaterialId).Except(outStockTask.Details.Select(s => s.MaterialId)).ToList(); + var ex = dto.Details.Select(s => s.MaterialNumber).Except(outStockTask.Details.Select(s => s.MaterialNumber)).ToList(); if (ex.Count() > 0 && dto.Method == 2) return Result.ReFailure(ResultCodes.OutStockMaterialError); var boxIds = dto.Details.Select(s => s.BoxId).ToList(); @@ -134,7 +134,7 @@ namespace WMS.Web.Domain.Services foreach (var b in boxInventoryDetails) { var num = boxInventoryDetails.Where(w => w.MaterialId == b.MaterialId).Sum(s => s.Qty); - var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == b.MaterialId); + var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == b.MaterialId); if (taskDetail == null) return Result.ReFailure(ResultCodes.BoxOutStockTaskMaterialError); //箱子里该物料的总数量大于出库单(应出库数量-已出库数量) 不能出库 if (num > (taskDetail.AccruedQty - taskDetail.RealityQty)) @@ -154,8 +154,8 @@ namespace WMS.Web.Domain.Services foreach (var mid in mIds) { //任务单明细 - var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == mid); - var dtoDetails = dto.Details.Where(w => w.MaterialId == mid); + var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == mid); + var dtoDetails = dto.Details.Where(w => w.MaterialNumber == mid); var qty = dtoDetails.Sum(s => s.Qty); if (tDetail == null) continue; @@ -173,7 +173,7 @@ namespace WMS.Web.Domain.Services oErpDetail.Qty = c.qty; outd.ErpDetails.Add(oErpDetail); } - var boxs = dto.Details.Where(w => w.MaterialId == mid).ToList(); + var boxs = dto.Details.Where(w => w.MaterialNumber == mid).ToList(); outd.BoxsDetails = _mapper.Map>(boxs); outd.Qty = qty; diff --git a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs index 45bcef79..24e06354 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs @@ -97,6 +97,50 @@ namespace WMS.Web.Domain.Services.Public return mat.Specifications; } + /// + /// 获取物料名称 + /// + /// + /// + /// + public string GetMaterialName(List erpMaterials, string materialNumber) + { + if (erpMaterials == null || erpMaterials.Count == 0) + return ""; + + var mat = erpMaterials.Where(x => x.MaterialNumber == materialNumber).FirstOrDefault(); + if (mat == null) + { + var result = _erpService.BillQueryForMaterial(materialNumber).GetAwaiter().GetResult(); + + if (!result.IsSuccess) + return ""; + return result.Data == null ? "" : result.Data.MaterialName; + } + return mat.MaterialName; + } + /// + /// 获取物料编码 + /// + /// + /// + /// + public string GetMaterialSpecifications(List erpMaterials, string materialNumber) + { + if (erpMaterials == null || erpMaterials.Count == 0) + return ""; + var mat = erpMaterials.Where(x => x.MaterialNumber == materialNumber).FirstOrDefault(); + if (mat == null) + { + var result = _erpService.BillQueryForMaterial(materialNumber).GetAwaiter().GetResult(); + if (!result.IsSuccess) + return ""; + return result.Data == null ? "" : result.Data.Specifications; + } + return mat.Specifications; + } + + /// /// 获取物料基本单位名称 /// @@ -303,5 +347,6 @@ namespace WMS.Web.Domain.Services.Public var stock = erpStocks.Where(x => x.Code == code).FirstOrDefault(); return stock == null ? "" : stock.Name; } + } } diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 4b458a1c..3d3ea0dd 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -890,7 +890,36 @@ namespace WMS.Web.Domain.Services.Public return Result.ReSuccess(mater); } + /// + /// erp:基础数据-物料信息 + /// + /// + /// + public async Task> BillQueryForMaterial(string number) + { + //1.获取缓存中的物料数据 + var materials = _memoryCache.Get>(_erpOptions.cache_materail_key); + if (materials == null || materials.Count == 0) + return Result.ReSuccess(null); + //2.通过ID取当前物料列表中的 + var mater = materials.Where(x => x.MaterialNumber == number).FirstOrDefault(); + if (mater == null) + { + //2.1没有的话:去金蝶取 + mater = await this.BillQueryForMaterialByNumber(number); + if (mater != null) + { + //把取到的数据放集合中并重新给缓存 + materials.Add(mater); + _memoryCache.Set(_erpOptions.cache_materail_key, materials, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan()))); + return Result.ReSuccess(mater); + } + else + return Result.ReSuccess(null); + } + return Result.ReSuccess(mater); + } /// /// erp:基础数据-物料-分页查询 /// @@ -1042,6 +1071,74 @@ namespace WMS.Web.Domain.Services.Public return null; } + } + /// + /// erp:基础数据-物料-number查询 + /// + /// + /// + private async Task BillQueryForMaterialByNumber(string number) + { + //2.先登录金蝶-拿到token + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return null; + + //3.获取金蝶物料:拼接参数和条件 + var query = new ErpBillQueryDto(token_result.Data); + var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString()); + param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FBaseUnitId,FBaseUnitId.FName,FBaseUnitId.FNumber,FBARCODE"; + param.Limit = 10000; + + //查询条件:备注其中的条件值以金蝶的值为准!!! + //1.审核状态:已审核 + //2.禁用状态:A否,B是 + //3.使用组织:只查询“深圳市元创时代科技有限公司”这个组织;组织ID=100008--固定值查询(测试端和正式是一样的)---按ID查询就不需要固定组织条件了 + param.FilterString = "FDocumentStatus='C' and FForbidStatus='A'"; + param.OrderString = "FCreateDate ASC"; + + //根据物料ID查询 + param.FilterString = param.FilterString + $" and FNumber={number}"; + + //4.循环拿金蝶数据 + var erp_materials_list = new List(); + + //4.2.参数json化 + query.Data = JsonConvert.SerializeObject(param); + var json = JsonConvert.SerializeObject(query); + + var error_josn = ""; + try + { + //4.3.请求查询接口并返回数据 + var result_json = await _client.ExecuteBillQueryAsync(json); + error_josn = result_json; + var result = JsonConvert.DeserializeObject>>(result_json); + //4.5.拼装 + foreach (var item in result) + { + var lis = new ErpMaterialDto(); + lis.MaterialId = Convert.ToInt32(item[0]); + lis.MaterialName = item[1]; + lis.MaterialNumber = item[2]; + lis.Specifications = item[3]; + lis.BaseUnitId = Convert.ToInt32(item[4]); + lis.BaseUnitName = item[5]; + lis.BaseUnitNumber = item[6]; + lis.BarCode = item[7]; + erp_materials_list.Add(lis); + } + if (erp_materials_list.Count == 0) + return null; + else + return erp_materials_list.FirstOrDefault(); + } + catch (Exception) + { + _logger.LogInformation("物料拉取按Number->错误的Json:" + error_josn); + return null; + } + } /// @@ -2392,8 +2489,10 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(ResultCodes.Erp_Inventory_Error); } } + + #endregion } } diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 3f30e676..2c8b92d4 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -222,7 +222,7 @@ namespace WMS.Web.Domain.Services foreach (var d in details) { int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0; - requestInventory.Add((_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId), d.OrgCode, d.StockCode, subStockId)); + requestInventory.Add((d.MaterialNumber, d.OrgCode, d.StockCode, subStockId)); }; var res_s = await sc_erpService.BillQueryForInventory(requestInventory); if (!res_s.IsSuccess) @@ -239,7 +239,7 @@ namespace WMS.Web.Domain.Services foreach (var d in details) { int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0; - var number = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); + var number = d.MaterialNumber; var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialNumber == number && f.StockCode == d.StockCode && f.OrgCode == d.OrgCode && f.Erp_SubStockId == subStockId); decimal qty = erpInventory?.Qty ?? 0; @@ -248,7 +248,7 @@ namespace WMS.Web.Domain.Services { FOwnerid = new ErpNumberDto(d.OrgCode), FKeeperId = new ErpNumberDto(d.OrgCode), - MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId)), + MaterialId = new ErpNumberDto(d.MaterialNumber), UnitId = new ErpNumberDto(unitNumber), //物料带出来 StockId = new ErpNumberDto(d.StockCode), SubStockId = new ErpSubStockDto(d.StockCode, d.Erp_SubStockCode), @@ -358,7 +358,7 @@ namespace WMS.Web.Domain.Services list.Add(new SerialNumbersBoxInventoryDto() { BoxId = entity.BoxId, - MaterialId = d.MaterialId, + MaterialNumber = d.MaterialNumber, SerialNumber = s }); } diff --git a/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs b/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs index 5b5edaba..75aa2cd2 100644 --- a/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs +++ b/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs @@ -163,9 +163,9 @@ namespace WMS.Web.Repositories { #region dto组装 BillNo = s.changeBox.BillNo, - MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.changeBox.MaterialId), - MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.changeBox.MaterialId), - Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.changeBox.MaterialId), + MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.changeBox.MaterialNumber), + MaterialNumber = s.changeBox.MaterialNumber, + Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.changeBox.MaterialNumber), //Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.changeBox.StockId), SerialNumbers = string.Join(",", s.changeBox.SerialNumbers), SrcBox = s.srcBox.BoxBillNo, diff --git a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs index fa2ae799..9f0d9a82 100644 --- a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs +++ b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs @@ -127,11 +127,11 @@ namespace WMS.Web.Repositories foreach (var d in res.First().Details) { BoxDetailResponse detail = new BoxDetailResponse(); - detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialId); - detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); - detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialId); + detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialNumber); + detail.MaterialNumber = d.MaterialNumber; + detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialNumber); detail.SerialNumbers = d.SerialNumbers; - detail.MaterialId = d.MaterialId; + detail.MaterialId = 0; detail.Qty = d.Qty; details.Add(detail); } diff --git a/src/WMS.Web.Repositories/OutStockRepositories.cs b/src/WMS.Web.Repositories/OutStockRepositories.cs index e7a5b5aa..741c15c1 100644 --- a/src/WMS.Web.Repositories/OutStockRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockRepositories.cs @@ -100,7 +100,7 @@ namespace WMS.Web.Repositories ids = staffList.Where(w => w.Name.Contains(dto.Creator)).Select(s => s.Id).ToList(); } #region erp基础资料 - List mIds = new List(); + List mNumber = new List(); var materials_result = await _erpService.BillQueryForMaterial(); List materials = new List(); if (materials_result.IsSuccess) @@ -109,10 +109,10 @@ namespace WMS.Web.Repositories if (!string.IsNullOrEmpty(dto.MaterialNumber)) { if (materials != null) - mIds = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) + mNumber = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) || w.MaterialName.Contains(dto.MaterialNumber) || w.Specifications.Contains(dto.MaterialNumber) - ).Select(s => s.MaterialId).ToList(); + ).Select(s => s.MaterialNumber).ToList(); } //取组织 @@ -146,7 +146,7 @@ namespace WMS.Web.Repositories query = query.Where(w => rec_id == w.order.ReceiptCustomerId && w.order.Type != OutStockType.Sal); } if (!string.IsNullOrEmpty(dto.MaterialNumber)) - query = query.Where(w => mIds.Contains(w.detail.MaterialId)); + query = query.Where(w => mNumber.Contains(w.detail.MaterialNumber)); if (!string.IsNullOrEmpty(dto.Creator)) query = query.Where(w => ids.Contains(w.order.CreatorId)); if (!string.IsNullOrEmpty(dto.SourceBillNo)) @@ -194,9 +194,9 @@ namespace WMS.Web.Repositories ReceiptCustomer = s.order.Type == OutStockType.Sal ? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId) : _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), - MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId), - MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId), - Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId), + MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber), + MaterialNumber = s.detail.MaterialNumber, + Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber), Qty = s.detail.Qty, Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId), Remark = s.order.Remark @@ -361,11 +361,11 @@ namespace WMS.Web.Repositories var boxDetail = d.BoxsDetails.FirstOrDefault(f => f.BoxId == boxId); if (boxDetail == null) continue; BoxDetailResponse detail = new BoxDetailResponse(); - detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialId); - detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); - detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialId); + detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialNumber); + detail.MaterialNumber = d.MaterialNumber; + detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialNumber); detail.SerialNumbers = boxDetail.SerialNumbers; - detail.MaterialId = d.MaterialId; + detail.MaterialId = 0; detail.Qty = boxDetail.Qty; details.Add(detail); } diff --git a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs index 64f3e49f..61607b21 100644 --- a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs @@ -232,7 +232,7 @@ namespace WMS.Web.Repositories if (companyId == 0) companyId = _loginRepositories.CompanyId; #region erp基础资料 - List mIds = new List(); + List mNumber = new List(); var materials_result = await _erpService.BillQueryForMaterial(); List materials = new List(); if (materials_result.IsSuccess) @@ -241,10 +241,10 @@ namespace WMS.Web.Repositories if (!string.IsNullOrEmpty(dto.MaterialNumber)) { if (materials != null) - mIds = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) + mNumber = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) || w.MaterialName.Contains(dto.MaterialNumber) || w.Specifications.Contains(dto.MaterialNumber) - ).Select(s => s.MaterialId).ToList(); + ).Select(s => s.MaterialNumber).ToList(); } //取组织 @@ -278,7 +278,7 @@ namespace WMS.Web.Repositories query = query.Where(w => rec_id == w.order.ReceiptCustomerId && w.order.Type != OutStockType.Sal); } if (!string.IsNullOrEmpty(dto.MaterialNumber)) - query = query.Where(w => mIds.Contains(w.detail.MaterialId)); + query = query.Where(w => mNumber.Contains(w.detail.MaterialNumber)); if (dto.Ids.Count() > 0) query = query.Where(w => dto.Ids.Contains(w.detail.Id)); if (!string.IsNullOrEmpty(dto.SourceBillNo)) @@ -324,9 +324,9 @@ namespace WMS.Web.Repositories ReceiptCustomer = s.order.Type == OutStockType.Sal ? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId) : _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), - MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId), - MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId), - Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId), + MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber), + MaterialNumber = s.detail.MaterialNumber, + Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber), Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId), Remark = s.detail.Remark #endregion diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs index b726d391..7a0e4cdd 100644 --- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs +++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs @@ -117,9 +117,9 @@ namespace WMS.Web.Repositories if (s == null) return null; SerialNumbersResponse respone = new SerialNumbersResponse() { - MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialId), - MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.MaterialId), - Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialId), + MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialNumber), + MaterialNumber = s.MaterialNumber, + Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialNumber), CompleteCartonTime = s.CompleteCartonTime.DateToStringSeconds(), InStockTime = s.InStockTime.DateToStringSeconds(), OutStockTime = s.OutStockTime.DateToStringSeconds(), @@ -209,10 +209,10 @@ namespace WMS.Web.Repositories response.BoxBillNo = entity?.box?.BoxBillNo ?? ""; response.SubStockId = entity?.boxInventory?.SubStockId ?? 0; response.SerialNumber = entity.serial.SerialNumber; - response.MaterialId = entity.serial.MaterialId; - response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialId); - response.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, entity.serial.MaterialId); - response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialId); + response.MaterialId = 0; + response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialNumber); + response.MaterialNumber = entity.serial.MaterialNumber; + response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialNumber); if (entity.boxInventory != null) response.IsBoxInventory = entity.boxInventory.Details.SelectMany(s => s.SerialNumbers).Where(w => serialNumber.Equals(w)).Count() >= 1 ? true : false; diff --git a/src/WMS.Web.Repositories/TakeStockRepositories.cs b/src/WMS.Web.Repositories/TakeStockRepositories.cs index db924b53..6cd7ca78 100644 --- a/src/WMS.Web.Repositories/TakeStockRepositories.cs +++ b/src/WMS.Web.Repositories/TakeStockRepositories.cs @@ -196,7 +196,7 @@ namespace WMS.Web.Repositories if (companyId == 0) companyId = _loginRepositories.CompanyId; //1.获取物料集合 - List mIds = new List(); + List mNumber = new List(); var materials_result = await _erpService.BillQueryForMaterial(); List materials = new List(); if (materials_result.IsSuccess) @@ -205,10 +205,10 @@ namespace WMS.Web.Repositories if (!string.IsNullOrEmpty(dto.MaterialNumber)) { if (materials != null) - mIds = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) + mNumber = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) || w.MaterialName.Contains(dto.MaterialNumber) || w.Specifications.Contains(dto.MaterialNumber) - ).Select(s => s.MaterialId).ToList(); + ).Select(s => s.MaterialNumber).ToList(); } //金蝶子仓库 var subStock_result = await _erpService.BillQueryForSubStock(); @@ -225,7 +225,7 @@ namespace WMS.Web.Repositories .Where(adv => 1 == 1 && adv.detail.FinalQty > 0); if (!string.IsNullOrEmpty(dto.MaterialNumber)) - query = query.Where(w => mIds.Contains(w.detail.MaterialId)); + query = query.Where(w => mNumber.Contains(w.detail.MaterialNumber)); if (dto.ResultType != null) query = query.Where(w => w.order.ResultType == (TakeStockType)dto.ResultType); if (!string.IsNullOrEmpty(dto.BillNo)) @@ -261,9 +261,9 @@ namespace WMS.Web.Repositories Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.detail.StockCode + s.detail.OrgCode), SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.detail.SubStockId), Erp_SubStock = _erpBasicDataExtendService.GetSubStockName(subStocks, s.detail.Erp_SubStockCode), - MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId), - MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId), - Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId), + MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber), + MaterialNumber = s.detail.MaterialNumber, + Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber), BeforeQty = s.detail.BeforeQty, AfterQty = s.detail.AfterQty, FinalQty = s.detail.FinalQty,