From 67f1977f3db2072c23b0be5a4bb90e39292305a8 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 17 Nov 2023 16:25:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=9B=98=E7=82=B9=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/TestController.cs | 1 - src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 9 +--- .../Dto/TakeStock/SaveTakeStockRequest.cs | 9 +--- src/WMS.Web.Domain/Mappers/TakeStockMapper.cs | 6 ++- .../Services/TakeStockService.cs | 46 ++++++++++++++++--- 5 files changed, 47 insertions(+), 24 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 4d30257f..04fda4d8 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -46,7 +46,6 @@ namespace WMS.Web.Api.Controllers [Route("hj")] public async Task TestHJ() { - await _outStockTaskService.Sync(null); //var t=await _outStockTaskRepositories.Get(1); // t.Details[0].Remark = "sdf"; // t.Details[0].ErpDetails[0].SaleBillNo = "sdfsfsbbbb"; diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 729db243..3eae5e82 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -3973,17 +3973,12 @@ - 盘点前数量(wms系统数量) + 盘点前数量(wms系统数量)库存数量 - 盘点实际数量(实际仓库数量) - - - - - 盘点数量 + 盘点实际数量(实际仓库数量)此次仓库盘点数量 diff --git a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs index 1220bd07..d8009517 100644 --- a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs +++ b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs @@ -35,21 +35,16 @@ namespace WMS.Web.Core.Dto.TakeStock /// public int Erp_SubStockId { get; set; } /// - /// 盘点前数量(wms系统数量) + /// 盘点前数量(wms系统数量)库存数量 /// [Required(ErrorMessage = "盘点前数量不能为空")] public decimal BeforeQty { get; set; } /// - /// 盘点实际数量(实际仓库数量) + /// 盘点实际数量(实际仓库数量)此次仓库盘点数量 /// [Required(ErrorMessage = "盘点实际数量不能为空")] public decimal AfterQty { get; set; } /// - /// 盘点数量 - /// - [Required(ErrorMessage = "盘点数量不能为空")] - public decimal FinalQty { get; set; } - /// /// 备注 /// public string Remark { get; set; } diff --git a/src/WMS.Web.Domain/Mappers/TakeStockMapper.cs b/src/WMS.Web.Domain/Mappers/TakeStockMapper.cs index f8b928e6..79c4343a 100644 --- a/src/WMS.Web.Domain/Mappers/TakeStockMapper.cs +++ b/src/WMS.Web.Domain/Mappers/TakeStockMapper.cs @@ -13,9 +13,11 @@ namespace WMS.Web.Domain.Mappers public TakeStockMapper() { CreateMap() - .ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) >0? TakeStockType.Profit: TakeStockType.Loss)); + .ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) >0? TakeStockType.Profit: TakeStockType.Loss)) + .ForMember(x => x.FinalQty, ops => ops.MapFrom(x => Math.Abs(x.AfterQty - x.BeforeQty))); CreateMap() - .ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) > 0 ? TakeStockType.Profit : TakeStockType.Loss)); + .ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) > 0 ? TakeStockType.Profit : TakeStockType.Loss)) + .ForMember(x => x.FinalQty, ops => ops.MapFrom(x => Math.Abs(x.AfterQty - x.BeforeQty))); } } } diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 7839c036..e271a6b6 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -10,6 +10,7 @@ using System.Threading.Tasks; using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp.TakeStock; +using WMS.Web.Core.Dto.Inventory; using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.TakeStock; using WMS.Web.Core.Internal.Results; @@ -36,10 +37,12 @@ namespace WMS.Web.Domain.Services private readonly ISingleDataService _singleDataService; private readonly IErpService _erpService; private readonly ILogger _logger; + private readonly IBoxInventoryService _boxInventoryService; public TakeStockService(IMapper mapper, ILoginService loginService, IBasicsRepositories transactionRepositories, ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories, - ISingleDataService singleDataService, IErpService erpService, ILogger logger) + ISingleDataService singleDataService, IErpService erpService, ILogger logger, + IBoxInventoryService boxInventoryService) { _mapper = mapper; _loginService = loginService; @@ -49,6 +52,7 @@ namespace WMS.Web.Domain.Services _singleDataService = singleDataService; _erpService = erpService; _logger = logger; + _boxInventoryService = boxInventoryService; } /// /// 保存 @@ -62,17 +66,45 @@ namespace WMS.Web.Domain.Services foreach (var entity in list) entity.Create(loginInfo.UserInfo.StaffId); - //需要填写序列号 - //需要修改库存 + #region 组装库存dto + List inventoryList = new List(); + foreach (var entity in list) + { + var inventoryDetail = new List() + { + new BoxInventoryGenerateDetailsDto() + { + MaterialId=entity.MaterialId, + Qty=entity.FinalQty + } + }; + BoxInventoryGenerateDto inventory = new BoxInventoryGenerateDto() + { + BoxId = entity.BoxId, + InventoryInOutMethod = 2,//盘点单按产品修改库存 + InventoryInOutType = entity.ResultType == TakeStockType.Profit ? 1 : 2, + StockCode = entity.StockCode, + SubStockId = entity.SubStockId, + Details = inventoryDetail + }; + inventoryList.Add(inventory); + } + #endregion IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); - bool isRollback = false; + Result res_Rollback = Result.ReSuccess(); bool isSuccess = true; - isSuccess = await _takeStockRepositories.AddRange(list, false); - if (!isSuccess) isRollback = true; + var res_Inventory = await _boxInventoryService.HandlBoxInventory(inventoryList, false); + if (!res_Inventory.IsSuccess) res_Rollback = res_Inventory; + if (res_Rollback.IsSuccess) + { + isSuccess = await _takeStockRepositories.AddRange(list, false); + if (!isSuccess) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError); + } //提交事务 - isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + isSuccess = _transactionRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction); + if (!res_Rollback.IsSuccess) return res_Rollback; if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); From 943a5e7cacf708de32ef760cb5002afed574f98d Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 17 Nov 2023 17:10:39 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 10 +++++----- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 8 ++++---- .../Dto/TakeStock/SaveTakeStockRequest.cs | 8 ++++---- .../Dto/TakeStock/TakeStockQueryInfoResponse.cs | 12 ++++++------ src/WMS.Web.Domain/Entitys/TakeStock.cs | 8 ++++---- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 3eae5e82..860a56c6 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -3973,12 +3973,12 @@ - 盘点前数量(wms系统数量)库存数量 + 系统库存 - 盘点实际数量(实际仓库数量)此次仓库盘点数量 + 盘点数量 @@ -4038,17 +4038,17 @@ - 盘点前数量(wms系统数量) + 系统库存 - 盘点实际数量(实际仓库数量) + 盘点数量 - 盘点后数量 + 盈亏数量 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 78d7b973..f81b80f2 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1481,23 +1481,23 @@ - 盘点前数量(wms系统数量) + 系统库存 - 盘点实际数量(实际仓库数量) + 盘点数量 - 盘点数量 + 盈亏数量 盘点结果类型:1为盘盈,2位盘亏 - 实际仓库数量-WMS系统数量 大于0为盘盈 小于0为盘亏 + 盘点数量-系统库存 大于0为盘盈 小于0为盘亏 diff --git a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs index d8009517..8ae1cd76 100644 --- a/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs +++ b/src/WMS.Web.Core/Dto/TakeStock/SaveTakeStockRequest.cs @@ -35,14 +35,14 @@ namespace WMS.Web.Core.Dto.TakeStock /// public int Erp_SubStockId { get; set; } /// - /// 盘点前数量(wms系统数量)库存数量 + /// 系统库存 /// - [Required(ErrorMessage = "盘点前数量不能为空")] + [Required(ErrorMessage = "系统库存不能为空")] public decimal BeforeQty { get; set; } /// - /// 盘点实际数量(实际仓库数量)此次仓库盘点数量 + /// 盘点数量 /// - [Required(ErrorMessage = "盘点实际数量不能为空")] + [Required(ErrorMessage = "盘点数量数量不能为空")] public decimal AfterQty { get; set; } /// /// 备注 diff --git a/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryInfoResponse.cs b/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryInfoResponse.cs index 8c98879f..2b56174a 100644 --- a/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryInfoResponse.cs +++ b/src/WMS.Web.Core/Dto/TakeStock/TakeStockQueryInfoResponse.cs @@ -55,19 +55,19 @@ namespace WMS.Web.Core.Dto.TakeStock [Column("子仓库")] public string Erp_SubStock { get; set; } /// - /// 盘点前数量(wms系统数量) + /// 系统库存 /// - [Column("WMS系统数量")] + [Column("系统库存")] public decimal BeforeQty { get; set; } /// - /// 盘点实际数量(实际仓库数量) + /// 盘点数量 /// - [Column("实际仓库数量")] + [Column("盘点数量")] public decimal AfterQty { get; set; } /// - /// 盘点后数量 + /// 盈亏数量 /// - [Column("此次盘点数量")] + [Column("盈亏数量")] public decimal FinalQty { get; set; } /// /// 盘点结果类型:1为盘盈,2位盘亏 diff --git a/src/WMS.Web.Domain/Entitys/TakeStock.cs b/src/WMS.Web.Domain/Entitys/TakeStock.cs index 41fdc352..911f0022 100644 --- a/src/WMS.Web.Domain/Entitys/TakeStock.cs +++ b/src/WMS.Web.Domain/Entitys/TakeStock.cs @@ -66,23 +66,23 @@ namespace WMS.Web.Domain.Entitys [Column("Erp_SubStockId")] public int Erp_SubStockId { get; set; } /// - /// 盘点前数量(wms系统数量) + /// 系统库存 /// [Column("BeforeQty")] public decimal BeforeQty { get; set; } /// - /// 盘点实际数量(实际仓库数量) + /// 盘点数量 /// [Column("AfterQty")] public decimal AfterQty { get; set; } /// - /// 盘点数量 + /// 盈亏数量 /// [Column("FinalQty")] public decimal FinalQty { get; set; } /// /// 盘点结果类型:1为盘盈,2位盘亏 - /// 实际仓库数量-WMS系统数量 大于0为盘盈 小于0为盘亏 + /// 盘点数量-系统库存 大于0为盘盈 小于0为盘亏 /// [Column("ResultType")] public TakeStockType ResultType { get; set; } = TakeStockType.Profit; From bab90b94f8931a61015eef80dd994be9c69b0680 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 17 Nov 2023 17:12:53 +0800 Subject: [PATCH 3/3] =?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.Domain/Entitys/OutStock.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/WMS.Web.Domain/Entitys/OutStock.cs b/src/WMS.Web.Domain/Entitys/OutStock.cs index 445afe7b..a8af87ed 100644 --- a/src/WMS.Web.Domain/Entitys/OutStock.cs +++ b/src/WMS.Web.Domain/Entitys/OutStock.cs @@ -97,8 +97,16 @@ namespace WMS.Web.Domain.Entitys this.ReceiptCustomerId = task.ReceiptCustomerId; this.CreatorId = creatorId; this.CreateTime = DateTime.Now; - this.SuccessSync = false; - this.SuccessSyncFail = this.Details.SelectMany(s => s.ErpDetails).GroupBy(g => g.SourceBillNo).Select(s=>s.Key).ToList(); + if (task.Type == OutStockType.Sal) + { + //只有销售出库才需要同步金蝶 + this.SuccessSync = false; + this.SuccessSyncFail = this.Details.SelectMany(s => s.ErpDetails).GroupBy(g => g.SourceBillNo).Select(s => s.Key).ToList(); + }else + { + this.SuccessSync = true; + this.SuccessSyncFail = new List(); + } } /// /// 同步金蝶(成功)