From d80ef89b1486a205cd5f3d86bcadb2c24a83aec4 Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Mon, 19 Aug 2024 11:51:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E8=B4=A8=E6=A3=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AQLs/AQLAppService.cs | 10 +- .../Transactions/ITransactionAppService.cs | 10 ++ .../Transactions/TransactionAppService.cs | 169 ++++++++++++++++++ .../Jobs/InspectJobs/InspectJobManager.cs | 17 ++ .../settings/appsettings.Development.json | 52 +++--- 5 files changed, 231 insertions(+), 27 deletions(-) diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/AQLs/AQLAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/AQLs/AQLAppService.cs index 4d38d7eaa..6164b9887 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/AQLs/AQLAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/AQLs/AQLAppService.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -59,11 +60,18 @@ public class AQLAppService : SfsBaseDataAppServiceBase + var list= await _repository.GetListAsync(c => c.ItemCode == itemCode && c.SupplierCode == supplierCode && c.FloorQty <= qty && c.CeilingQty >= qty).ConfigureAwait(false); + + if (list.Count > 1) + { + throw new UserFriendlyException("物品质检标准信息配置的数量有重叠"); + } + + entity = list.First(); } if (entity == null) diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Transactions/ITransactionAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Transactions/ITransactionAppService.cs index 47ad791b6..29c5db0a3 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Transactions/ITransactionAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Transactions/ITransactionAppService.cs @@ -1,5 +1,7 @@ +using System; using System.Collections.Generic; using System.Threading.Tasks; +using Win_in.Sfs.Wms.Inventory.Balances; namespace Win_in.Sfs.Wms.Inventory.Application.Contracts; @@ -18,4 +20,12 @@ public interface ITransactionAppService Task> GetListByItemAsync(string itemCode); Task> GetListByLocationAsync(string locationCode); + /// + /// ʹ + /// + /// + /// + /// + /// + Task> GetItemSerialListNew(List itemCodes, string erpLocationCode, DateTime startDateTime, DateTime endDateTime); } diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Transactions/TransactionAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Transactions/TransactionAppService.cs index fc1656535..ad1e06d55 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Transactions/TransactionAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Transactions/TransactionAppService.cs @@ -304,5 +304,174 @@ public class TransactionAppService return itemSerialDtos; } + + + + /// + /// 报表使用 + /// + /// + /// + /// + /// + [HttpPost("item-serial-list-new")] + public virtual async Task> GetItemSerialListNew(List itemCodes, string erpLocationCode, DateTime startDateTime, DateTime endDateTime) + { + var itemSerialDtos = new List(); + + var allItemBasicDtos = new List(); + var allTransactions = new List(); + var locationDtos = await _locationAppService.GetAllAsync().ConfigureAwait(false); + var balanceDtos = await _balanceAppService + .GetAllListByFilterAsync(new SfsInventoryRequestInputBase()).ConfigureAwait(false); + + var itemBasicDtos_i = await _itemBasicAppService.GetAllListByFilterAsync(new SfsBaseDataRequestInputBase()).ConfigureAwait(false); + allItemBasicDtos = itemBasicDtos_i; + + if (!itemCodes.Any()) + { + var itemBasicDtos_t = await _repository.GetListAsync(p=>p.LocationErpCode.Contains(erpLocationCode)).ConfigureAwait(false); + allTransactions = itemBasicDtos_t; + + itemCodes.AddRange(itemBasicDtos_i.Select(p => p.Code)); + itemCodes.AddRange(itemBasicDtos_t.Select(p => p.ItemCode)); + + itemCodes = itemCodes.Distinct().ToList(); + + } + else + { + var itemBasicDtos_t = await _repository.GetListAsync(p => itemCodes.Contains(p.ItemCode)&& p.LocationErpCode.Contains(erpLocationCode)).ConfigureAwait(false); + allTransactions = itemBasicDtos_t; + } + + foreach (var itemCode in itemCodes) + { + var itemSerialDto = new ReportItemSerialDto(); + + var itemBasicDto = allItemBasicDtos.FirstOrDefault(p => p.Code == itemCode); + if (itemBasicDto == null) + { + throw new UserFriendlyException($"ERP料号{itemCode}不存在"); + } + + itemSerialDto.ItemCode = itemBasicDto.Code; + itemSerialDto.ItemDesc1 = itemBasicDto.Desc1; + itemSerialDto.ItemDesc2 = itemBasicDto.Desc2; + itemSerialDto.Configuration = itemBasicDto.Configuration; + itemSerialDto.ItemName = itemBasicDto.Name; + + //所有这个物品的事务 + var transactions = allTransactions.Where(p => p.ItemCode == itemCode); + if (!string.IsNullOrEmpty(erpLocationCode)) + { + transactions = transactions.Where(p => p.LocationErpCode == erpLocationCode).ToList(); + } + + if (!string.IsNullOrEmpty(erpLocationCode)) + { + locationDtos = locationDtos.Where(p => p.ErpLocationCode == erpLocationCode).ToList(); + } + var groupKey = locationDtos.GroupBy(p => p.ErpLocationCode); + + foreach (var keyGroup in groupKey) + { + var reportErpLocationSerialDto = new ReportErpLocationSerialDto(); + reportErpLocationSerialDto.ErpLocatioCode = keyGroup.Key; + + foreach (var locationDto in keyGroup) + { + var reportLocationSerialDto = new ReportLocationSerialDto(); + + //当前库位下 这个物品的所有库存事务 + var locationCodeTransactions = transactions.Where(p => p.LocationCode == locationDto.Code && p.CreationTime < endDateTime && p.CreationTime > startDateTime); + if (!locationCodeTransactions.Any()) + { + continue; + } + + foreach (var locationCodeTransaction in locationCodeTransactions) + { + var reportTransactionSerialDto = new ReportTransactionSerialDto(); + + #region 赋值库存事务 + reportTransactionSerialDto.LocatioCode = locationCodeTransaction.LocationCode; + switch (locationCodeTransaction.TransInOut) + { + case EnumTransInOut.In: + reportTransactionSerialDto.InQty = locationCodeTransaction.Qty; + break; + case EnumTransInOut.Out: + reportTransactionSerialDto.OutQty = locationCodeTransaction.Qty; + break; + } + reportTransactionSerialDto.DocNumber = locationCodeTransaction.DocNumber; + reportTransactionSerialDto.CreateDateTime = locationCodeTransaction.CreationTime; + reportTransactionSerialDto.EnumTransSubType = locationCodeTransaction.TransSubType; + reportTransactionSerialDto.EnumTransType = locationCodeTransaction.TransType; + reportTransactionSerialDto.Number = locationCodeTransaction.TransNumber; + reportTransactionSerialDto.TransactionDto = ObjectMapper.Map(locationCodeTransaction); + #endregion + + reportLocationSerialDto.ReportTransactionSerialDtos.Add(reportTransactionSerialDto); + } + + #region 赋值库位的汇总 + + //期初库存 + var tempFirstSum = transactions.Where(p => p.LocationCode == locationDto.Code && p.CreationTime < startDateTime).Sum(p => p.Qty); + //当前库存 + decimal tempNowSum = 0; + try + { + var balanceDtosWithLocation = balanceDtos.Where(p => p.ItemCode == itemCode && p.LocationCode == locationDto.Code); + tempNowSum = balanceDtosWithLocation.Sum(p => p.Qty); + } + catch + { + } + + //期末库存 + var tempLastSum = transactions.Where(p => p.LocationCode == locationDto.Code && p.CreationTime < endDateTime).Sum(p => p.Qty); + + reportLocationSerialDto.SumInQty = + reportLocationSerialDto.ReportTransactionSerialDtos.Sum(p => p.InQty); + reportLocationSerialDto.SumOutQty = + reportLocationSerialDto.ReportTransactionSerialDtos.Sum(p => p.OutQty); + reportLocationSerialDto.FirstQty = tempFirstSum; + reportLocationSerialDto.NowQty = tempNowSum; + reportLocationSerialDto.LastQty = tempLastSum; + reportLocationSerialDto.LocationCode = locationDto.Code; + #endregion + + reportErpLocationSerialDto.ReportLocationSerialDtos.Add(reportLocationSerialDto); + } + + #region 赋值Erp + + reportErpLocationSerialDto.SumOutQty = + reportErpLocationSerialDto.ReportLocationSerialDtos.Sum(p => p.SumOutQty); + reportErpLocationSerialDto.SumInQty = + reportErpLocationSerialDto.ReportLocationSerialDtos.Sum(p => p.SumInQty); + reportErpLocationSerialDto.FirstQty = reportErpLocationSerialDto.ReportLocationSerialDtos.Sum(p => p.FirstQty); + reportErpLocationSerialDto.NowQty = reportErpLocationSerialDto.ReportLocationSerialDtos.Sum(p => p.NowQty); + reportErpLocationSerialDto.LastQty = reportErpLocationSerialDto.ReportLocationSerialDtos.Sum(p => p.LastQty); + + #endregion + + itemSerialDto.ReportErpLocationSerialDtos.Add(reportErpLocationSerialDto); + } + + itemSerialDto.FirstQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.FirstQty); + itemSerialDto.NowQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.NowQty); + itemSerialDto.LastQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.LastQty); + itemSerialDto.SumOutQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.SumOutQty); + itemSerialDto.SumInQty = itemSerialDto.ReportErpLocationSerialDtos.Sum(p => p.SumInQty); + + itemSerialDtos.Add(itemSerialDto); + } + + return itemSerialDtos; + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobManager.cs index 8fa5d5f80..892d02360 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/InspectJobs/InspectJobManager.cs @@ -126,6 +126,23 @@ public class InspectJobManager : SfsJobManagerBase entity.SummaryDetails.ForEach(p => p.SetIdAndNumber(GuidGenerator, entity.Id, entity.Number)); + foreach (var summaryDetail in entity.SummaryDetails) + { + var itemQuality = await _itemQualityAclService.GetByItemCodeAsync(summaryDetail.ItemCode, entity.SupplierCode).ConfigureAwait(false); + if (itemQuality != null) + { + summaryDetail.InspectType = itemQuality.InspectType; + } + else + { + summaryDetail.InspectType = EnumInspectType.None; + } + foreach (var inspectJobDetail in entity.Details.Where(p=>p.ItemCode==summaryDetail.ItemCode)) + { + inspectJobDetail.InspectType = summaryDetail.InspectType; + } + } + await SendNotifyMessageAsync(entity).ConfigureAwait(false); await PublishCreatedAsync(entity).ConfigureAwait(false); diff --git a/build/src/docker/publish/conf/settings/appsettings.Development.json b/build/src/docker/publish/conf/settings/appsettings.Development.json index 15909dbdf..1e52bd5d8 100644 --- a/build/src/docker/publish/conf/settings/appsettings.Development.json +++ b/build/src/docker/publish/conf/settings/appsettings.Development.json @@ -61,7 +61,7 @@ }, "AuthServer": { "Audience": "Auth", - "Authority": "http://10.164.233.5:60083/", + "Authority": "http://dev.ccwin-in.com:60083/", //"Authority": "http://localhost:59093/", "ClientId": "Auth_App", "ClientSecret": "1q2w3E*", @@ -91,28 +91,28 @@ // "Store": "Server=localhost,21195;Database=Wms;Uid=sa;Pwd=aA123456!;timeout=6000;" // }, "ConnectionStrings": { - "AbpAuditLogging": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "AbpBackgroundJobs": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "AbpBlobStoring": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "AbpFeatureManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "AbpIdentity": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "AbpIdentityServer": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "AbpPermissionManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "AbpSettingManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "AbpTenantManagement": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "Auth": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "Basedata": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "DataExchange": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "FileStorage": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "Inventory": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "Job": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "Label": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "Message": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", - "Store": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;" + "AbpAuditLogging": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "AbpBackgroundJobs": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "AbpBlobStoring": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "AbpFeatureManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "AbpIdentity": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "AbpIdentityServer": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "AbpPermissionManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "AbpSettingManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "AbpTenantManagement": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "Auth": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "Basedata": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "FileStorage": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "Inventory": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "Job": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "Label": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "Message": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;", + "Store": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;timeout=6000;" }, "IdentityClients": { "Default": { - "Authority": "http://10.164.233.5:60083", + "Authority": "http://dev.ccwin-in.com:60083", //"Authority": "http://localhost:59093", "ClientId": "Auth_App", "ClientSecret": "1q2w3E*", @@ -129,19 +129,19 @@ }, "RemoteServices": { "Auth": { - "BaseUrl": "http://10.164.233.5:60083/" + "BaseUrl": "http://dev.ccwin-in.com:60083/" //"BaseUrl": "http://localhost:59093/" }, "BaseData": { - //"BaseUrl": "http://10.164.233.5:60084/" + //"BaseUrl": "http://dev.ccwin-in.com:60084/" "BaseUrl": "http://localhost:59094/" }, "Default": { - "BaseUrl": "http://10.164.233.5:60083/" + "BaseUrl": "http://dev.ccwin-in.com:60083/" //"BaseUrl": "http://localhost:59093/" }, "FileStorage": { - "BaseUrl": "http://10.164.233.5:60082/" + "BaseUrl": "http://dev.ccwin-in.com:60082/" //"BaseUrl": "http://localhost:59092/" }, "Inventory": { @@ -151,11 +151,11 @@ "BaseUrl": "http://localhost:59095/" }, "Label": { - "BaseUrl": "http://10.164.233.5:60082/" + "BaseUrl": "http://dev.ccwin-in.com:60082/" //"BaseUrl": "http://localhost:59092/" }, "Message": { - "BaseUrl": "http://10.164.233.5:60082/" + "BaseUrl": "http://dev.ccwin-in.com:60082/" //"BaseUrl": "http://localhost:59092/" }, "Store": {