From 92d19e6a2194a19286ed14de5a94e9be5a133a18 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Mon, 18 Mar 2024 09:34:40 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=92=8C=E4=BB=93=E4=BD=8D=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 233702 -> 233732 bytes .../ErpDeliveryNoticeOutStockResultDto.cs | 8 +++- src/WMS.Web.Domain/Entitys/Box.cs | 6 +-- src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs | 6 +-- src/WMS.Web.Domain/Entitys/OutStockTask.cs | 8 ++-- .../Public/IErpBasicDataExtendService.cs | 15 ++++++++ .../Services/ChangeMoveBoxService.cs | 6 +-- .../Services/OutStockService.cs | 4 +- .../Services/OutStockTaskService.cs | 8 ++-- .../Public/ErpBasicDataExtendService.cs | 36 +++++++++++++++++- .../Services/SerialNumberService.cs | 26 ++++++------- .../Services/TakeStockService.cs | 2 +- .../OutStockRepositories.cs | 2 +- .../TakeStockRepositories.cs | 2 +- 14 files changed, 90 insertions(+), 39 deletions(-) diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 3788cb460d669aae435770a3986605225ee4b8d0..1472a459e39328f5ed76269744f0ddc99836a61e 100644 GIT binary patch literal 233732 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%0A`>>W54 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 literal 233702 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

Jky{!-*4b7st*?|@qS_(yiM`7e_8iYS)p0X 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 diff --git a/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs b/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs index 605bfbf4..44a95ce8 100644 --- a/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs @@ -33,10 +33,14 @@ namespace WMS.Web.Core.Dto.Erp.OutStock /// 对应金蝶单据明细id(销售出库同步金蝶下推使用) /// public int Erp_DetailId { get; set; } = 0; + /////

+ ///// 物料Id + ///// + //public int MaterialId { get; set; } /// - /// 物料Id + /// 物料编码 /// - public int MaterialId { get; set; } + public string MaterialNumber { get; set; } /// /// 仓库ID /// diff --git a/src/WMS.Web.Domain/Entitys/Box.cs b/src/WMS.Web.Domain/Entitys/Box.cs index 2b99ae77..e1ff7aa3 100644 --- a/src/WMS.Web.Domain/Entitys/Box.cs +++ b/src/WMS.Web.Domain/Entitys/Box.cs @@ -172,7 +172,7 @@ namespace WMS.Web.Domain.Entitys foreach (var d in detailClone) { //如果箱信息存在 箱库存不存在 删除箱信息数据 - var inventoryDetail = inventory.Details.FirstOrDefault(f => f.MaterialId == d.MaterialId); + var inventoryDetail = inventory.Details.FirstOrDefault(f => f.MaterialNumber == d.MaterialNumber); if (inventoryDetail == null) { var boxDetail = this.Details.FirstOrDefault(f => f.Id == d.Id); @@ -182,9 +182,9 @@ namespace WMS.Web.Domain.Entitys //箱库存存在 箱信息不存在 添加 foreach (var d in inventory.Details) { - var md = this.Details.FirstOrDefault(w => w.MaterialId == d.MaterialId); + var md = this.Details.FirstOrDefault(w => w.MaterialNumber == d.MaterialNumber); if (md == null) - this.Details.Add(new BoxDetails() { MaterialId = d.MaterialId, Qty = d.Qty }); + this.Details.Add(new BoxDetails() { MaterialNumber = d.MaterialNumber, Qty = d.Qty }); else md.Qty = d.Qty; } diff --git a/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs b/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs index 16fe9942..c3c9df83 100644 --- a/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs +++ b/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs @@ -89,14 +89,14 @@ namespace WMS.Web.Domain.Entitys /// 创建 /// /// - public void Create(MoveBoxType type, int boxId,decimal qty, string orgCode, string stockCode, int subStockId, int creatorId,string subStockCode) + public void Create(MoveBoxType type, int boxId,decimal qty, string orgCode, string stockCode, int creatorId,string subStockCode) { this.BoxId = boxId; this.Type = type; this.OrgCode = orgCode; this.StockCode = stockCode; - SrcSubStockId = type == MoveBoxType.Up ? 0 : subStockId;//上架 原仓位是0 目标仓位有值 - DestSubStockId = type == MoveBoxType.Up ? subStockId : 0; //下架 原仓位有值 目标仓位是0 + //SrcSubStockId = type == MoveBoxType.Up ? 0 : subStockId;//上架 原仓位是0 目标仓位有值 + //DestSubStockId = type == MoveBoxType.Up ? subStockId : 0; //下架 原仓位有值 目标仓位是0 SrcSubStockCode = type == MoveBoxType.Up ? "" : subStockCode;//上架 原仓位是0 目标仓位有值 DestSubStockCode = type == MoveBoxType.Up ? subStockCode : ""; //下架 原仓位有值 目标仓位是0 this.Qty = qty; diff --git a/src/WMS.Web.Domain/Entitys/OutStockTask.cs b/src/WMS.Web.Domain/Entitys/OutStockTask.cs index 72bea07f..f5dcc81d 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTask.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTask.cs @@ -99,17 +99,17 @@ namespace WMS.Web.Domain.Entitys /// /// 出库 反写 任务单(返回 这个物料下面的来源单号出了多少数量) /// - /// + /// /// /// - public Result> OutStock(int materialId, decimal qty, int outStockId) + public Result> OutStock(string materialNumber, decimal qty, int outStockId) { if (this.Status == OutStockStatus.Already) return Result>.ReFailure(ResultCodes.OutStockTaskAlready); if (this.Status == OutStockStatus.Repeal) return Result>.ReFailure(ResultCodes.OutStockTaskRepeal); - var detail = this.Details.FirstOrDefault(f => f.MaterialId == materialId); + var detail = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber); if (detail == null) return Result>.ReFailure(ResultCodes.OrderNoData); if ((detail.AccruedQty - detail.RealityQty) < qty) return Result>.ReFailure(ResultCodes.OutStockQtyError); @@ -221,7 +221,7 @@ namespace WMS.Web.Domain.Entitys { d.Id = 0; d.Fid = 0; - var detail_new = details_new.FirstOrDefault(f => f.MaterialId == d.MaterialId); + var detail_new = details_new.FirstOrDefault(f => f.MaterialNumber == d.MaterialNumber); if (detail_new != null) { detail_new.AccruedQty += d.AccruedQty;//应出数量累加 diff --git a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs index c60a0ec6..ae701147 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs @@ -59,6 +59,13 @@ namespace WMS.Web.Domain.IService.Public /// string GetMaterialUnitName(List erpMaterials, int materialId); + /// + /// 获取物料基本单位名称 + /// + /// + /// + /// + string GetMaterialUnitName(List erpMaterials, string materialNumber); /// /// 获取物料的条码 /// @@ -89,6 +96,14 @@ namespace WMS.Web.Domain.IService.Public /// /// string GetMaterialUnitNumber(List erpMaterials, int materialId); + + /// + /// 获取物料基本单位编码 + /// + /// + /// + /// + string GetMaterialUnitNumber(List erpMaterials, string materialNumber); /// /// 获取组织名称 /// diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index a48ae2b1..8481c7f7 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -172,7 +172,7 @@ namespace WMS.Web.Domain.Services entity.SrcSubStockCode = subStock_s?.Code ?? ""; if (subStock != null) { - entity.DestSubStockId = dt.SubStockId; + //entity.DestSubStockId = dt.SubStockId; entity.DestBoxOrgCode = subStock.ErpOrgCode; entity.DestStockCode = subStock.StockCode; entity.DestSubStockCode = subStock.Code; @@ -278,9 +278,9 @@ namespace WMS.Web.Domain.Services List entityList = new List(); foreach (var d in dto) { - var subStock = await _basbicsRepositories.GetSubUcStockAsync(d.SubStockId, loginInfo.UserInfo.CompanyId); + var subStock = await _basbicsRepositories.GetSubUcStockAsync(d.SubStockCode, loginInfo.UserInfo.CompanyId); var entity = new MoveBoxRecord(); - entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.Qty, subStock?.ErpOrgCode, subStock?.StockCode, d.SubStockId, loginInfo.UserInfo.StaffId, subStock?.Code); + entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.Qty, subStock?.ErpOrgCode, d.SubStockCode, loginInfo.UserInfo.StaffId, subStock?.Code); entity.Details = d.Details.Select(s => new MoveBoxRecordDetails() { MaterialNumber = s.MaterialNumber, diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index cf6586d6..1d53cbb5 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -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.MaterialNumber == b.MaterialId); + var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == b.MaterialNumber); if (taskDetail == null) return Result.ReFailure(ResultCodes.BoxOutStockTaskMaterialError); //箱子里该物料的总数量大于出库单(应出库数量-已出库数量) 不能出库 if (num > (taskDetail.AccruedQty - taskDetail.RealityQty)) @@ -144,7 +144,7 @@ namespace WMS.Web.Domain.Services if (box == null) return Result.ReFailure(ResultCodes.BoxNoData); var dtod = _mapper.Map(b); dtod.BoxId = box.BoxId; - dtod.SubStockId = box.SubStockId; + dtod.SubStockCode = box.SubStockCode; dto.Details.Add(dtod); } } diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs index b94c624c..f85bc17c 100644 --- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs @@ -114,7 +114,7 @@ namespace WMS.Web.Domain.Services foreach (var erp in erps) { //仓库不同 拆分成不同的 - var detail = outStockTask.Details.FirstOrDefault(w => w.MaterialId == erp.MaterialId); + var detail = outStockTask.Details.FirstOrDefault(w => w.MaterialNumber == erp.MaterialNumber); if (detail == null) { //添加一条物料明细 @@ -167,11 +167,11 @@ namespace WMS.Web.Domain.Services entity.Create((OutStockType)e.Type, e.StockCode, e.OrgCode, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime); //找到当前对应来源单据编号的集合数据 - var mIds = eList.GroupBy(g => g.MaterialId).Select(s => s.Key).ToList(); + var mIds = eList.GroupBy(g => g.MaterialNumber).Select(s => s.Key).ToList(); //给到dto的实体明细中 foreach (var mid in mIds) { - var emList = eList.Where(w => w.MaterialId == mid).ToList(); + var emList = eList.Where(w => w.MaterialNumber == mid).ToList(); var detail = _mapper.Map(emList.First()); var erpDetail = _mapper.Map>(emList); detail.ErpDetails.AddRange(erpDetail); @@ -205,7 +205,7 @@ namespace WMS.Web.Domain.Services var erp_o = erp_list.Where(w => w.SourceBillNo == ed.SourceBillNo).ToList(); if (erp_o.Count() == 0) continue; - var erp_d = erp_list.Where(w => w.MaterialId == d.MaterialId && ed.Erp_DetailId == w.Erp_DetailId).ToList(); + var erp_d = erp_list.Where(w => w.MaterialNumber == d.MaterialNumber && ed.Erp_DetailId == w.Erp_DetailId).ToList(); if (erp_d.Count() == 0) { //金蝶删除明细数据后 wms对应数据修改为0 diff --git a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs index 1db0c14d..606f73ed 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs @@ -161,7 +161,20 @@ namespace WMS.Web.Domain.Services.Public } return mat.BaseUnitName; } - + public string GetMaterialUnitName(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.BaseUnitName; + } + return mat.BaseUnitName; + } /// /// 获取物料的条码 /// @@ -244,7 +257,26 @@ namespace WMS.Web.Domain.Services.Public } return mat.BaseUnitNumber; } - + /// + /// 获取物料基本单位编码 + /// + /// + /// + /// + public string GetMaterialUnitNumber(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.BaseUnitNumber; + } + return mat.BaseUnitNumber; + } /// /// 获取组织名称 /// diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 6ed5f088..568ec638 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -69,7 +69,7 @@ namespace WMS.Web.Domain.Services //记录序列号操作日志 SerialNumberOperate op = new SerialNumberOperate() { - MaterialId = entity.MaterialId, + MaterialNumber = entity.MaterialNumber, SerialNumber = entity.SerialNumber, OrgId = box.OrgId, SupplierId = box.SupplierId, @@ -134,7 +134,7 @@ namespace WMS.Web.Domain.Services //记录序列号操作日志 SerialNumberOperate op = new SerialNumberOperate() { - MaterialId = entity.MaterialId, + MaterialNumber = entity.MaterialNumber, SerialNumber = entity.SerialNumber, OrgId = box.OrgId, SupplierId = box.SupplierId, @@ -192,15 +192,15 @@ 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); + var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber); if (outstockDetail == null) continue; //修改序列号和箱绑定关系 - entity.OutStock(outStock, entity.MaterialId); + entity.OutStock(outStock, entity.MaterialNumber); //记录序列号操作日志 SerialNumberOperate op = new SerialNumberOperate() { - MaterialId = entity.MaterialId, + MaterialNumber = entity.MaterialNumber, SerialNumber = entity.SerialNumber, OrgId = box.OrgId, SupplierId = box.SupplierId, @@ -211,7 +211,7 @@ namespace WMS.Web.Domain.Services }; if (outStock.Type == OutStockType.Sal) { - var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId); + var detail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber); var res_c = await _erpService.BillQueryForCustomer(); var customer = res_c.Data.FirstOrDefault(f => f.Id == outStock.ReceiptCustomerId); op.Remark += "\r\n" + "销售订单号:" + string.Join(",", detail.ErpDetails.Select(s => s.SaleBillNo)); @@ -321,7 +321,7 @@ namespace WMS.Web.Domain.Services { var boxId = inStock.Details.FirstOrDefault(s => s.SerialNumbers.Contains(entity.SerialNumber))?.BoxId ?? 0; var box = boxList.FirstOrDefault(f => f.Id == boxId); - var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId); + var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialNumber == entity.MaterialNumber); var subStock = _singleDataService.GetSingleData(SingleAction.SubStocks, loginInfo.UserInfo.CompanyId, inStock.SubStockId); //修改序列号和箱绑定关系 entity.InStock(instockDetail.SourceBillNo, inStock.Type); @@ -330,7 +330,7 @@ namespace WMS.Web.Domain.Services //记录序列号操作日志 SerialNumberOperate op = new SerialNumberOperate() { - MaterialId = entity.MaterialId, + MaterialNumber = entity.MaterialNumber, SerialNumber = entity.SerialNumber, OrgId = box?.OrgId ?? 0, SupplierId = box?.SupplierId ?? 0, @@ -397,7 +397,7 @@ namespace WMS.Web.Domain.Services //记录序列号操作日志 SerialNumberOperate op = new SerialNumberOperate() { - MaterialId = entity.MaterialId, + MaterialNumber = entity.MaterialNumber, SerialNumber = entity.SerialNumber, OrgId = box.OrgId, SupplierId = box.SupplierId, @@ -457,17 +457,17 @@ namespace WMS.Web.Domain.Services if (takeStockDetail == null) continue; var box = boxList.FirstOrDefault(f => f.Id == takeStockDetail.BoxId); var s_entity = entityList.FirstOrDefault(f => f.SerialNumber.Equals(s)); - if (box != null && box.Details.FirstOrDefault(f => f.MaterialId == takeStockDetail.MaterialId) == null) + if (box != null && box.Details.FirstOrDefault(f => f.MaterialNumber == takeStockDetail.MaterialNumber) == null) { //如果这个物料不存在箱箱信息 添加进去 - box.TakeStock(takeStockDetail.MaterialId, takeStockDetail.AfterQty); + box.TakeStock(takeStockDetail.MaterialNumber, takeStockDetail.AfterQty); box_New_List.Add(box); } if (s_entity == null) { //序列号 - SerialNumbers s_new = new SerialNumbers(s, takeStockDetail.MaterialId, takeStockDetail.Id, 0, "", DateTime.Now, DateTime.Now); + SerialNumbers s_new = new SerialNumbers(s, takeStockDetail.MaterialNumber, takeStockDetail.Id, 0, "", DateTime.Now, DateTime.Now); sList.Add(s_new); } else @@ -479,7 +479,7 @@ namespace WMS.Web.Domain.Services //记录序列号操作日志 SerialNumberOperate op = new SerialNumberOperate() { - MaterialId = takeStockDetail.MaterialId, + MaterialNumber = takeStockDetail.MaterialNumber, SerialNumber = s, OrgId = box.OrgId, SupplierId = box.SupplierId, diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 2c8b92d4..6693edc5 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -243,7 +243,7 @@ namespace WMS.Web.Domain.Services 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; - var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId); + var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialNumber); detils.Add(new ErpTakeStockDetailsSaveDto() { FOwnerid = new ErpNumberDto(d.OrgCode), diff --git a/src/WMS.Web.Repositories/OutStockRepositories.cs b/src/WMS.Web.Repositories/OutStockRepositories.cs index 741c15c1..7e35aeca 100644 --- a/src/WMS.Web.Repositories/OutStockRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockRepositories.cs @@ -198,7 +198,7 @@ namespace WMS.Web.Repositories MaterialNumber = s.detail.MaterialNumber, Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber), Qty = s.detail.Qty, - Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId), + Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialNumber), Remark = s.order.Remark #endregion diff --git a/src/WMS.Web.Repositories/TakeStockRepositories.cs b/src/WMS.Web.Repositories/TakeStockRepositories.cs index 6cd7ca78..72ac0cc1 100644 --- a/src/WMS.Web.Repositories/TakeStockRepositories.cs +++ b/src/WMS.Web.Repositories/TakeStockRepositories.cs @@ -257,7 +257,7 @@ namespace WMS.Web.Repositories #region dto组装 Id = s.order.Id, BillNo = s.order.BillNo, - Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId), + Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialNumber), 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), From b9862b9a207fa655e93488802b73ce3bebf4ffb2 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Mon, 18 Mar 2024 09:40:02 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 4 +-- .../Services/Public/ErpService.cs | 28 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index f0d6d80b..b7d4734b 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -1217,9 +1217,9 @@ 对应金蝶单据明细id(销售出库同步金蝶下推使用) - + - 物料Id + 物料编码 diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 3d3ea0dd..3b779c19 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -1698,7 +1698,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.SAL_DELIVERYNOTICE.ToString()); - param.FieldKeys = "FBillNo,FOrderNo,FDeliveryOrgID,FCustomerID,FMaterialID,FStockID.FNumber,FStockLocID,FQty,F_ENTRYREMARKS,FCreateDate,FEntity_FEntryID,FDeliveryOrgID.FNumber";//FEntryID + param.FieldKeys = "FBillNo,FOrderNo,FDeliveryOrgID,FCustomerID,FMaterialID.FNumber,FStockID.FNumber,FStockLocID,FQty,F_ENTRYREMARKS,FCreateDate,FEntity_FEntryID,FDeliveryOrgID.FNumber";//FEntryID param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! //1.创建时间在两天前和当天时间之间 @@ -1749,7 +1749,7 @@ namespace WMS.Web.Domain.Services.Public lis.SaleBillNo = item[1]; lis.DeliveryOrgId = Convert.ToInt32(item[2]); lis.ReceiptCustomerId = Convert.ToInt32(item[3]); - lis.MaterialId = Convert.ToInt32(item[4]); + lis.MaterialNumber = item[4]; lis.StockCode = item[5]; lis.SubStockId = Convert.ToInt32(item[6]); lis.AccruedQty = Convert.ToDecimal(item[7]); @@ -1794,7 +1794,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.STK_TransferDirect.ToString()); - param.FieldKeys = "FBillNo,'',FStockOutOrgId,FStockOrgId,FMaterialID,FSrcStockId.FNumber,FSrcStockLocId,FQty,FNoteEntry,FCreateDate,FBillEntry_FEntryID,FStockOutOrgId.FNumber"; + param.FieldKeys = "FBillNo,'',FStockOutOrgId,FStockOrgId,FMaterialID.FNumber,FSrcStockId.FNumber,FSrcStockLocId,FQty,FNoteEntry,FCreateDate,FBillEntry_FEntryID,FStockOutOrgId.FNumber"; param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! //1.创建时间在两天前和当天时间之间 @@ -1843,7 +1843,7 @@ namespace WMS.Web.Domain.Services.Public lis.SaleBillNo = item[1]; lis.DeliveryOrgId = Convert.ToInt32(item[2]); lis.ReceiptCustomerId = Convert.ToInt32(item[3]); - lis.MaterialId = Convert.ToInt32(item[4]); + lis.MaterialNumber = item[4]; lis.StockCode = item[5]; lis.SubStockId = Convert.ToInt32(item[6]); lis.AccruedQty = Convert.ToDecimal(item[7]); @@ -1888,7 +1888,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.STK_TRANSFEROUT.ToString()); - param.FieldKeys = "FBillNo,'',FStockOrgID,FStockInOrgID,FMaterialID,FSrcStockID.FNumber,FSrcStockLocId,FQty,FEntryNote,FCreateDate,FSTKTRSOUTENTRY_FEntryID,FStockOrgID.FNumber"; + param.FieldKeys = "FBillNo,'',FStockOrgID,FStockInOrgID,FMaterialID.FNumber,FSrcStockID.FNumber,FSrcStockLocId,FQty,FEntryNote,FCreateDate,FSTKTRSOUTENTRY_FEntryID,FStockOrgID.FNumber"; param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! //1.创建时间在两天前和当天时间之间 @@ -1937,7 +1937,7 @@ namespace WMS.Web.Domain.Services.Public lis.SaleBillNo = item[1]; lis.DeliveryOrgId = Convert.ToInt32(item[2]); lis.ReceiptCustomerId = Convert.ToInt32(item[3]); - lis.MaterialId = Convert.ToInt32(item[4]); + lis.MaterialNumber = item[4]; lis.StockCode = item[5]; lis.SubStockId = Convert.ToInt32(item[6]); lis.AccruedQty = Convert.ToDecimal(item[7]); @@ -1982,7 +1982,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString()); - param.FieldKeys = "FBillNo,'',FOwnerIdHead,FSubProOwnerIdH,FMaterialID,FStockID.FNumber,FStockLocId,FQty,FDescription,FCreateDate,FEntity_FEntryID,FStockOrgId.FNumber"; + param.FieldKeys = "FBillNo,'',FOwnerIdHead,FSubProOwnerIdH,FMaterialID.FNumber,FStockID.FNumber,FStockLocId,FQty,FDescription,FCreateDate,FEntity_FEntryID,FStockOrgId.FNumber"; param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! //1.创建时间在两天前和当天时间之间 @@ -2031,7 +2031,7 @@ namespace WMS.Web.Domain.Services.Public lis.SaleBillNo = item[1]; lis.DeliveryOrgId = Convert.ToInt32(item[2]); lis.ReceiptCustomerId = Convert.ToInt32(item[3]); - lis.MaterialId = Convert.ToInt32(item[4]); + lis.MaterialNumber = item[4]; lis.StockCode = item[5]; lis.SubStockId = Convert.ToInt32(item[6]); lis.AccruedQty = Convert.ToDecimal(item[7]); @@ -2076,7 +2076,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.STK_MisDelivery.ToString()); - param.FieldKeys = "FBillNo,'',FStockOrgId,FPickOrgId,FMaterialId,FStockId.FNumber,FStockLocId ,FQty,FEntryNote,FCreateDate,FEntity_FEntryID,FStockOrgId.FNumber"; + param.FieldKeys = "FBillNo,'',FStockOrgId,FPickOrgId,FMaterialId.FNumber,FStockId.FNumber,FStockLocId ,FQty,FEntryNote,FCreateDate,FEntity_FEntryID,FStockOrgId.FNumber"; param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! //1.创建时间在两天前和当天时间之间 @@ -2125,7 +2125,7 @@ namespace WMS.Web.Domain.Services.Public lis.SaleBillNo = item[1]; lis.DeliveryOrgId = Convert.ToInt32(item[2]); lis.ReceiptCustomerId = Convert.ToInt32(item[3]); - lis.MaterialId = Convert.ToInt32(item[4]); + lis.MaterialNumber = item[4]; lis.StockCode = item[5]; lis.SubStockId = Convert.ToInt32(item[6]); lis.AccruedQty = Convert.ToDecimal(item[7]); @@ -2170,7 +2170,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString()); - param.FieldKeys = "FBillNo,'',FSubProOwnerIdH,FOwnerIdHead,FMaterialIDSETY,FStockIDSETY.FNumber,FStockLocIdSETY,FQtySETY,FDescriptionSETY,FCreateDate,FSubEntity_FDetailID,FStockOrgId.FNumber"; + param.FieldKeys = "FBillNo,'',FSubProOwnerIdH,FOwnerIdHead,FMaterialIDSETY.FNumber,FStockIDSETY.FNumber,FStockLocIdSETY,FQtySETY,FDescriptionSETY,FCreateDate,FSubEntity_FDetailID,FStockOrgId.FNumber"; param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! //1.创建时间在两天前和当天时间之间 @@ -2221,7 +2221,7 @@ namespace WMS.Web.Domain.Services.Public lis.SaleBillNo = item[1]; lis.DeliveryOrgId = Convert.ToInt32(item[2]); lis.ReceiptCustomerId = Convert.ToInt32(item[3]); - lis.MaterialId = Convert.ToInt32(item[4]); + lis.MaterialNumber = item[4]; lis.StockCode = item[5]; lis.SubStockId = Convert.ToInt32(item[6]); lis.AccruedQty = Convert.ToDecimal(item[7]); @@ -2270,7 +2270,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.SAL_OUTSTOCK.ToString()); - param.FieldKeys = "FBillNo,FSoorDerno,FStockOrgId,FCustomerID,FMaterialID,FStockID.FNumber,FStockLocID,FSALUNITQTY,F_ENTRYREMARKS,FCreateDate,FEntity_FENTRYID,FStockOrgId.FNumber";//FEntryID + param.FieldKeys = "FBillNo,FSoorDerno,FStockOrgId,FCustomerID,FMaterialID.FNumber,FStockID.FNumber,FStockLocID,FSALUNITQTY,F_ENTRYREMARKS,FCreateDate,FEntity_FENTRYID,FStockOrgId.FNumber";//FEntryID param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! //1.创建时间在两天前和当天时间之间 @@ -2320,7 +2320,7 @@ namespace WMS.Web.Domain.Services.Public lis.SaleBillNo = item[1]; lis.DeliveryOrgId = Convert.ToInt32(item[2]); lis.ReceiptCustomerId = Convert.ToInt32(item[3]); - lis.MaterialId = Convert.ToInt32(item[4]); + lis.MaterialNumber = item[4]; lis.StockCode = item[5]; lis.SubStockId = Convert.ToInt32(item[6]); lis.AccruedQty = Convert.ToDecimal(item[7]); From fb4eb5877d7281959f090716d4eaf348e8d424ee Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Mon, 18 Mar 2024 09:52:46 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChangeBoxRecordQueryRequest.cs | 16 +++++++++++---- .../MoveBoxRecordQueryRequest.cs | 12 +++++++++-- src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs | 20 +++++++++---------- src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs | 20 +++++++++---------- .../Entitys/OutStockBoxsDetails.cs | 10 +++++----- .../Entitys/TakeStockDetails.cs | 10 +++++----- .../Services/ChangeMoveBoxService.cs | 4 ++-- .../Services/TakeStockService.cs | 8 ++++---- src/WMS.Web.Repositories/BoxRepositories.cs | 10 +++++----- .../ChangeBoxRecordRepositories.cs | 12 +++++------ .../MoveBoxRecordRepositories.cs | 12 +++++------ .../TakeStockRepositories.cs | 2 +- 12 files changed, 76 insertions(+), 60 deletions(-) diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryRequest.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryRequest.cs index 01578005..141be577 100644 --- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryRequest.cs +++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryRequest.cs @@ -17,14 +17,22 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord /// 目标箱子 /// public string DestBox { get; set; } + ///// + ///// 原仓位ID + ///// + //public int? SrcSubStockId { get; set; } + ///// + ///// 现仓位ID + ///// + //public int? DestSubStockId { get; set; } /// - /// 原仓位ID + /// 原仓位编码 /// - public int? SrcSubStockId { get; set; } + public string SrcSubStockCode { get; set; } /// - /// 现仓位ID + /// 现仓位编码 /// - public int? DestSubStockId { get; set; } + public string DestSubStockCode { get; set; } /// /// 操作人 /// diff --git a/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryRequest.cs b/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryRequest.cs index 1b93a0ec..0b39fcca 100644 --- a/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryRequest.cs +++ b/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryRequest.cs @@ -9,14 +9,22 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord /// public class MoveBoxRecordQueryRequest : PaginationBaseRequestDto { + ///// + ///// 原仓位编码 + ///// + //public int? SrcSubStockId { get; set; } + ///// + ///// 目标仓位编码 + ///// + //public int? DestSubStockId { get; set; } /// /// 原仓位编码 /// - public int? SrcSubStockId { get; set; } + public string SrcSubStockCode { get; set; } /// /// 目标仓位编码 /// - public int? DestSubStockId { get; set; } + public string DestSubStockCode { get; set; } /// /// 类型:1- 整箱移货上级,2-整箱移货下级 /// diff --git a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs index 64964642..17873e02 100644 --- a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs +++ b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs @@ -54,11 +54,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("DestBoxId")] public int DestBoxId { get; set; } - /// - /// 原箱仓位 - /// - [Column("SrcSubStockId")] - public int SrcSubStockId { get; set; } + ///// + ///// 原箱仓位 + ///// + //[Column("SrcSubStockId")] + //public int SrcSubStockId { get; set; } /// /// 原箱仓位 /// @@ -69,11 +69,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("DestStockCode")] public string DestStockCode { get; set; } - /// - /// 目标箱仓位或重新上架选择仓位 - /// - [Column("DestSubStockId")] - public int DestSubStockId { get; set; } + ///// + ///// 目标箱仓位或重新上架选择仓位 + ///// + //[Column("DestSubStockId")] + //public int DestSubStockId { get; set; } /// /// 目标箱仓位或重新上架选择仓位 /// diff --git a/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs b/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs index c3c9df83..b5322dbb 100644 --- a/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs +++ b/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs @@ -40,16 +40,16 @@ namespace WMS.Web.Domain.Entitys /// [Column("StockCode")] public string StockCode { get; set; } - /// - /// 原仓位Id - /// - [Column("SrcSubStockId")] - public int SrcSubStockId { get; set; } - /// - /// 目标仓位Id - /// - [Column("DestSubStockId")] - public int DestSubStockId { get; set; } + ///// + ///// 原仓位Id + ///// + //[Column("SrcSubStockId")] + //public int SrcSubStockId { get; set; } + ///// + ///// 目标仓位Id + ///// + //[Column("DestSubStockId")] + //public int DestSubStockId { get; set; } /// /// 原仓位编码 /// diff --git a/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs index 270dc604..7090c6f2 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockBoxsDetails.cs @@ -34,11 +34,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("SerialNumbers")] public List SerialNumbers { get; set; } = new List(); - /// - /// 仓位 - /// - [Column("SubStockId")] - public int SubStockId { get; set; } + ///// + ///// 仓位 + ///// + //[Column("SubStockId")] + //public int SubStockId { get; set; } /// /// 仓位 /// diff --git a/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs b/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs index 5fc83588..56303753 100644 --- a/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs +++ b/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs @@ -50,11 +50,11 @@ namespace WMS.Web.Domain.Entitys /// [Column("StockCode")] public string StockCode { get; set; } - /// - /// 仓位 - /// - [Column("SubStockId")] - public int SubStockId { get; set; } + ///// + ///// 仓位 + ///// + //[Column("SubStockId")] + //public int SubStockId { get; set; } /// /// 仓位 /// diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index 8481c7f7..ed8c79f5 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -168,8 +168,8 @@ namespace WMS.Web.Domain.Services { ChangeBoxRecord entity = new ChangeBoxRecord(); 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 ?? ""; + //entity.SrcSubStockId = boxi?.SubStockId ?? 0;//原乡仓位需要去拉一下库存获取 + entity.SrcSubStockCode = subStock_s?.Code ?? "";//原乡仓位需要去拉一下库存获取 if (subStock != null) { //entity.DestSubStockId = dt.SubStockId; diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 6693edc5..99b98620 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -89,11 +89,11 @@ namespace WMS.Web.Domain.Services TakeStock takeStock = new TakeStock(); takeStock.Create(loginInfo.UserInfo.StaffId, TakeStockType.Profit); takeStock.Details = _mapper.Map>(profitList); - var subIds = takeStock.Details.Select(s => s.SubStockId).ToList(); + var subIds = takeStock.Details.Select(s => s.SubStockCode).ToList(); var subStocks = await _transactionRepositories.GetSubUcStockAsync(subIds, loginInfo.UserInfo.CompanyId); foreach (var d in takeStock.Details) { - var subStock = subStocks.FirstOrDefault(f => f.Id == d.SubStockId); + var subStock = subStocks.FirstOrDefault(f => f.Code == d.SubStockCode); d.OrgCode = subStock?.ErpOrgCode; d.StockCode = subStock?.StockCode; d.SubStockCode = subStock?.Code; @@ -110,11 +110,11 @@ namespace WMS.Web.Domain.Services TakeStock takeStock = new TakeStock(); takeStock.Create(loginInfo.UserInfo.StaffId, TakeStockType.Loss); takeStock.Details = _mapper.Map>(lossList); - var subIds = takeStock.Details.Select(s => s.SubStockId).ToList(); + var subIds = takeStock.Details.Select(s => s.SubStockCode).ToList(); var subStocks = await _transactionRepositories.GetSubUcStockAsync(subIds, loginInfo.UserInfo.CompanyId); foreach (var d in takeStock.Details) { - var subStock = subStocks.FirstOrDefault(f => f.Id == d.SubStockId); + var subStock = subStocks.FirstOrDefault(f => f.Code == d.SubStockCode); d.OrgCode = subStock?.ErpOrgCode; d.StockCode = subStock?.StockCode; d.SubStockCode = subStock?.Code; diff --git a/src/WMS.Web.Repositories/BoxRepositories.cs b/src/WMS.Web.Repositories/BoxRepositories.cs index a98c762f..7f1efa92 100644 --- a/src/WMS.Web.Repositories/BoxRepositories.cs +++ b/src/WMS.Web.Repositories/BoxRepositories.cs @@ -68,15 +68,15 @@ namespace WMS.Web.Repositories var serialList = await _context.SerialNumbers.Where(f => ids.Contains(f.BoxId)).ToListAsync(); //获取物料信息 显示物料三件套 - var mIds = list.SelectMany(s => s.Details).Select(s => s.MaterialId).ToList(); + var mIds = list.SelectMany(s => s.Details).Select(s => s.MaterialNumber).ToList(); foreach (var r in resList) { foreach (var detail in r.Details) { - detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, detail.MaterialId); - detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, detail.MaterialId); - detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, detail.MaterialId); - detail.SerialNumbers = serialList.Where(w => w.BoxId == r.Id && w.MaterialId == detail.MaterialId).Select(s => s.SerialNumber).ToList(); + detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, detail.MaterialNumber); + detail.MaterialNumber = detail.MaterialNumber; + detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, detail.MaterialNumber); + detail.SerialNumbers = serialList.Where(w => w.BoxId == r.Id && w.MaterialNumber == detail.MaterialNumber).Select(s => s.SerialNumber).ToList(); } r.TotalQty = r.Details.Sum(s => s.Qty); } diff --git a/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs b/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs index 75aa2cd2..295a901f 100644 --- a/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs +++ b/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs @@ -149,10 +149,10 @@ namespace WMS.Web.Repositories query = query.Where(w => EF.Functions.Like(w.srcBox.BoxBillNo, "%" + dto.SrcBox + "%")); if (!string.IsNullOrEmpty(dto.DestBox)) query = query.Where(w => EF.Functions.Like(w.destBox.BoxBillNo, "%" + dto.DestBox + "%")); - if (dto.SrcSubStockId != null) - query = query.Where(w => w.changeBox.SrcSubStockId == dto.SrcSubStockId); - if (dto.DestSubStockId != null) - query = query.Where(w => w.changeBox.DestSubStockId == dto.DestSubStockId); + if (dto.SrcSubStockCode != null) + query = query.Where(w => w.changeBox.SrcSubStockCode == dto.SrcSubStockCode); + if (dto.DestSubStockCode != null) + query = query.Where(w => w.changeBox.DestSubStockCode == dto.DestSubStockCode); if (dto.CreateBeginDate != null) query = query.Where(w => w.changeBox.CreateTime >= dto.CreateBeginDate); if (dto.CreateEndDate != null) @@ -172,8 +172,8 @@ namespace WMS.Web.Repositories DestBox = s.destBox.BoxBillNo, Qty=s.changeBox.Qty, DestBoxOrg= _singleDataService.GetSingleData(SingleAction.Orgs, companyId, s.changeBox.DestBoxOrgCode), - SrcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.changeBox.SrcSubStockId), - DestSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.changeBox.DestSubStockId), + SrcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.changeBox.SrcSubStockCode), + DestSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.changeBox.DestSubStockCode), Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.changeBox.CreatorId), CreateTime = s.changeBox.CreateTime.DateToStringSeconds() #endregion diff --git a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs index 9f0d9a82..f741195d 100644 --- a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs +++ b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs @@ -161,10 +161,10 @@ namespace WMS.Web.Repositories .OrderByDescending(o => o.moveBox.Id) .Where(adv => 1 == 1); - if (dto.SrcSubStockId != null) - query = query.Where(w => w.moveBox.SrcSubStockId == dto.SrcSubStockId); - if (dto.DestSubStockId != null) - query = query.Where(w => w.moveBox.DestSubStockId == dto.DestSubStockId); + if (dto.SrcSubStockCode != null) + query = query.Where(w => w.moveBox.SrcSubStockCode == dto.SrcSubStockCode); + if (dto.DestSubStockCode != null) + query = query.Where(w => w.moveBox.DestSubStockCode == dto.DestSubStockCode); if (!string.IsNullOrEmpty(dto.Creator)) query = query.Where(w => ids.Contains(w.moveBox.CreatorId)); if (!string.IsNullOrEmpty(dto.Box)) @@ -182,8 +182,8 @@ namespace WMS.Web.Repositories #region dto组装 BillNo = s.moveBox.BillNo, Box = s.box.BoxBillNo, - SrcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.moveBox.SrcSubStockId), - DestSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.moveBox.DestSubStockId), + SrcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.moveBox.SrcSubStockCode), + DestSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.moveBox.DestSubStockCode), Qty = s.moveBox.Qty, Type = s.moveBox.Type.GetRemark(), Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.moveBox.CreatorId), diff --git a/src/WMS.Web.Repositories/TakeStockRepositories.cs b/src/WMS.Web.Repositories/TakeStockRepositories.cs index 72ac0cc1..8d8e40f5 100644 --- a/src/WMS.Web.Repositories/TakeStockRepositories.cs +++ b/src/WMS.Web.Repositories/TakeStockRepositories.cs @@ -259,7 +259,7 @@ namespace WMS.Web.Repositories BillNo = s.order.BillNo, Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialNumber), Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.detail.StockCode + s.detail.OrgCode), - SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.detail.SubStockId), + SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.detail.SubStockCode), Erp_SubStock = _erpBasicDataExtendService.GetSubStockName(subStocks, s.detail.Erp_SubStockCode), MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber), MaterialNumber = s.detail.MaterialNumber, From 5621ae5a831c5d788d075a4be9e500117f064348 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Mon, 18 Mar 2024 10:11:50 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E9=87=91=E8=9D=B6=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=BA=E5=AE=A1=E6=A0=B8=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Domain/QuartzJob/BoxQuartzJob.cs | 2 +- .../QuartzJob/OutStockOrderQuartzJob.cs | 2 +- src/WMS.Web.Domain/Services/Public/ErpService.cs | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/WMS.Web.Domain/QuartzJob/BoxQuartzJob.cs b/src/WMS.Web.Domain/QuartzJob/BoxQuartzJob.cs index 614823f6..0e29cb86 100644 --- a/src/WMS.Web.Domain/QuartzJob/BoxQuartzJob.cs +++ b/src/WMS.Web.Domain/QuartzJob/BoxQuartzJob.cs @@ -39,7 +39,7 @@ namespace WMS.Web.Domain.QuartzJob var result = await _boxService.Sync(); //5.记录:结束时间 var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); - _logger.LogInformation($"箱信息-同步箱信息数据:执行结束时间->{begindatetime}"); + _logger.LogInformation($"箱信息-同步箱信息数据:执行结束时间->{enddatetime}"); } catch (Exception ex) diff --git a/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs b/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs index 3cc9c1c3..56adf153 100644 --- a/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs +++ b/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs @@ -53,7 +53,7 @@ namespace WMS.Web.Domain.QuartzJob var result = await _outStockTaskService.Sync(null, begin); //5.记录:结束时间 var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); - _logger.LogInformation($"出库单-同步金蝶出库单数据:执行结束时间->{begindatetime}"); + _logger.LogInformation($"出库单-同步金蝶出库单数据:执行结束时间->{enddatetime}"); } catch (Exception ex) diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 3b779c19..bbd4f310 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -1731,7 +1731,7 @@ namespace WMS.Web.Domain.Services.Public param.FilterString += " and FBillNo in (" + srt_b + ")"; } else//没有指定单号搜索 则带时间范围 FApproveDate - param.FilterString += " and FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "'"; + param.FilterString += " and FApproveDate>='" + beginStr + "' and FApproveDate<='" + endStr + "'"; query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -1826,7 +1826,7 @@ namespace WMS.Web.Domain.Services.Public param.FilterString += " and FBillNo in (" + srt_b + ")"; } else//没有指定单号搜索 则带时间范围 FApproveDate - param.FilterString += " and FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "'"; + param.FilterString += " and FApproveDate>='" + beginStr + "' and FApproveDate<='" + endStr + "'"; query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -1920,7 +1920,7 @@ namespace WMS.Web.Domain.Services.Public param.FilterString += " and FBillNo in (" + srt_b + ")"; } else//没有指定单号搜索 则带时间范围 FApproveDate - param.FilterString += " and FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "'"; + param.FilterString += " and FApproveDate>='" + beginStr + "' and FApproveDate<='" + endStr + "'"; query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -2014,7 +2014,7 @@ namespace WMS.Web.Domain.Services.Public param.FilterString += " and FBillNo in (" + srt_b + ")"; } else//没有指定单号搜索 则带时间范围 FAPPROVEDATE - param.FilterString += " and FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "'"; + param.FilterString += " and FAPPROVEDATE>='" + beginStr + "' and FAPPROVEDATE<='" + endStr + "'"; query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -2108,7 +2108,7 @@ namespace WMS.Web.Domain.Services.Public param.FilterString += " and FBillNo in (" + srt_b + ")"; } else//没有指定单号搜索 则带时间范围 FApproveDate - param.FilterString += " and FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "'"; + param.FilterString += " and FApproveDate>='" + beginStr + "' and FApproveDate<='" + endStr + "'"; query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -2204,7 +2204,7 @@ namespace WMS.Web.Domain.Services.Public param.FilterString += " and FBillNo in (" + srt_b + ")"; } else//没有指定单号搜索 则带时间范围 FAPPROVEDATE - param.FilterString += " and FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "'"; + param.FilterString += " and FAPPROVEDATE>='" + beginStr + "' and FAPPROVEDATE<='" + endStr + "'"; query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -2302,7 +2302,7 @@ namespace WMS.Web.Domain.Services.Public param.FilterString += " and FBillNo in (" + srt_b + ")"; } else//没有指定单号搜索 则带时间范围 FApproveDate - param.FilterString += " and FCreateDate>='" + beginStr + "' and FCreateDate<='" + endStr + "'"; + param.FilterString += " and FApproveDate>='" + beginStr + "' and FApproveDate<='" + endStr + "'"; query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query);