From fd4e62e9486fd56f06e5db23fba105257796e112 Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Wed, 20 Dec 2023 14:55:44 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BA=93=E4=BD=8D=E6=8E=A8=E8=8D=90=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Inputs/RecommendBalanceRequestInput.cs | 5 + .../Balances/BalanceAppService.cs | 11 +- .../Balances/BalanceManager.cs | 153 ++++++++++++++++++ .../Balances/IBalanceManager.cs | 1 + 4 files changed, 164 insertions(+), 6 deletions(-) diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/Inputs/RecommendBalanceRequestInput.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/Inputs/RecommendBalanceRequestInput.cs index 29c437f45..f6c401c70 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/Inputs/RecommendBalanceRequestInput.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/Inputs/RecommendBalanceRequestInput.cs @@ -28,6 +28,11 @@ public class RecommendBalanceRequestInput [Display(Name = "库区域")] public List LocationAreas { get; set; } /// + /// 库位 + /// + [Display(Name = "库位")] + public List Locations { get; set; } + /// /// 库存状态 /// [Display(Name = "库存状态")] diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs index 9878c2452..1759a6a5d 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs @@ -465,23 +465,22 @@ public class BalanceAppService } /// - /// 根据发料任务需求,算出推荐的库存 (在获取时 已经添加预占用) + /// 根据发料任务需求的库位,算出推荐的库存 (在获取时 已经添加预占用) /// /// /// /// - [HttpGet("recommend-list-location")] - public virtual async Task> GetRecommendBalancesAsync1(RecommendBalanceRequestInput input) + [HttpGet("recommend-list-location-by-locations")] + public virtual async Task> GetRecommendBalancesByLocationsAsync(RecommendBalanceRequestInput input) { var traceId = GuidGenerator.Create(); var itemCode = input.ItemCode; var qty = input.Qty; - var locationTypes = input.LocationTypes; - var locationAreas = input.LocationAreas; + var locations = input.Locations; var statuses = input.Statuses; Logger.LogDebug(traceId + "|Input:" + input); - var balances = await _balanceManager.GetRecommendBalancesAsync(traceId, itemCode, qty, locationTypes, locationAreas, statuses).ConfigureAwait(false); + var balances = await _balanceManager.GetRecommendBalancesByLocationAsync(traceId, itemCode, qty, locations, statuses).ConfigureAwait(false); var dtos = ObjectMapper.Map, List>(balances); diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs index 526f26173..98cbe245c 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs @@ -436,6 +436,159 @@ public class BalanceManager : DomainService, IBalanceManager #region GetRecommendList + + /// + /// 根据库位获取推荐库位 + /// + /// + /// + /// + /// + /// + /// + /// + /// + public virtual async Task> GetRecommendBalancesByLocationAsync(Guid traceId, string itemCode, + decimal requestQty, List validLocations, + List validStatuses) + { + var recommendBalances = new List();//返回可使用的推荐库存余额 + + var item = await _itemBasicAclService.GetByCodeAsync(itemCode).ConfigureAwait(false); + if (item == null) //物品是否存在 + { + // throw new UserFriendlyException($"未找到代码为 {itemCode} 的物料记录"); + return recommendBalances; + } + + //构造查询条件 + Expression> expression = p => p.ItemCode == itemCode; + expression = expression.And(p => validStatuses.Contains(p.Status)); + expression = expression.And(p => p.IsActive); + //如果物品的有效期不是无限的, 要过滤掉过期库存 + if (item.ValidityUnit != EnumValidityUnit.Infinite) + { + expression = expression.And(p => p.ExpireDate > DateTime.Now); + } + //筛选有效库区 2023-6-29 李智慧 王旭 袁静雯 确认不需要做区域校验 + //if (validLocationAreas.Any()) + //{ + // if (!string.IsNullOrEmpty(validLocationAreas[0])) + // { + // expression = expression.And(p => validLocationAreas.Contains(p.LocationArea)); + // } + //} + var allBalances = await + (await _balanceRepository.GetDbSetAsync().ConfigureAwait(false)) + .Where(expression) + .AsNoTracking() + .ToListAsync().ConfigureAwait(false); + + var balanceLocationCodes = allBalances.Select(p => p.LocationCode).Distinct().ToList(); + var locations = await _locationAclService.GetByCodesAsync(balanceLocationCodes).ConfigureAwait(false); + //筛选有效库位类型 + if (validLocations.Any()) + { + locations = locations.Where(p => validLocations.Contains(p.Code)).ToList(); + } + var locationCodes = locations.Where(p => p.EnablePick).Select(p => p.Code).ToList(); + Logger.LogDebug(traceId + "|Locations:" + locationCodes.JoinAsString(",")); + if (!locationCodes.Any()) + { + return recommendBalances; + } + //获取物品存储关系 + var itemStoreRelationDict = await GetItemStoreRelationDictAsync(itemCode, locationCodes).ConfigureAwait(false); + //过滤掉无用的库位代码 + locationCodes = itemStoreRelationDict.Keys.ToList(); + locations = locations.Where(p => locationCodes.Contains(p.Code)).ToList(); + Logger.LogDebug(traceId + "|LocationsInStoreRelation:" + locationCodes.JoinAsString(",")); + + var usableBalances = allBalances.Where(p => locationCodes.Contains(p.LocationCode)).ToList(); + + LogDebug(traceId, usableBalances, "Balances"); + if (!usableBalances.Any()) + { + return recommendBalances; + } + + //读取该itemCode的预占用库存 + var expectOuts = await + (await _expectOutRepository.GetDbSetAsync().ConfigureAwait(false)) + .AsNoTracking() + .Where(p => p.ItemCode == itemCode + && locationCodes.Contains(p.LocationCode) + && validStatuses.Contains(p.Status)) + .ToListAsync().ConfigureAwait(false); + LogDebug(traceId, expectOuts, "ExpectOut"); + + var containerCodes = usableBalances + .Where(p => !string.IsNullOrEmpty(p.ContainerCode)) + .Select(p => p.ContainerCode) + .ToList(); + + var expectOutContainerCodes = await + (await _expectOutRepository.GetDbSetAsync().ConfigureAwait(false)) + .Where(p => containerCodes.Contains(p.ContainerCode)) + .GroupBy(p => p.ContainerCode) + .Select(d => d.Key) + .ToListAsync().ConfigureAwait(false); + + usableBalances + //扣减已占用库存 + .DecreaseExpectOutQty(expectOuts, locations) + //去除不可拆箱 拆托的且有预占用的库存余额 + .IgnoreExpectOutOfSameContainer(expectOutContainerCodes, itemStoreRelationDict, locations) + //过滤掉不允许拣料的库位 + .FilterLocationEnablePickAsync(locations) + //排序库存余额 最终可用的余额集合 + .SortByFifo(); + + LogDebug(traceId, usableBalances, "AvailableBalances"); + + var usableBalanceQueue = new Queue(usableBalances); + + var remainQty = requestQty; + while (usableBalanceQueue.TryDequeue(out var usableBalance)) + { + if (usableBalance.Qty <= 0) + { + continue; + } + + var location = locations.First(p => p.Code == usableBalance.LocationCode); + var itemStoreRelation = itemStoreRelationDict[usableBalance.LocationCode]; + + var recommendBalance = new Balance(usableBalance); + var recommendQty = + GetRecommendQty(traceId, requestQty, remainQty, usableBalance, location, itemStoreRelation); + + recommendBalance.Qty = recommendQty; + recommendBalances.Add(recommendBalance); + remainQty -= recommendQty; + //如果剩余数量小于等于零, 说明所有请求数量已满足, 退出循环 + if (remainQty <= 0) + { + break; + } + } + + return recommendBalances; + + #region Old + + // var availableQty = GetAvailableQty(traceId, requestQty, 0, usableBalances, itemStoreRelationDict, locations, recommendBalances); + // + // if (availableQty >= requestQty) + // { + // return recommendBalances; + // } + // var availableBalanceQty = usableBalances.Sum(p => p.Qty); + // throw new UserFriendlyException($"物料 {itemCode} 的可用库存余额 {availableBalanceQty} 不足"); + + #endregion + } + /// /// 获取推荐库位 /// diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/IBalanceManager.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/IBalanceManager.cs index 18f0c537e..17d16cb80 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/IBalanceManager.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/IBalanceManager.cs @@ -33,4 +33,5 @@ public interface IBalanceManager : IDomainService Task> GetItemCodesOfLocationAsync(string locationCode); Task ModifyAsync(Balance balance); Task> GetListByLocationTypeAndInventoryStatusAsync(string itemCode, EnumInventoryStatus enumInventoryStatus, List enumLocationTypes); + Task> GetRecommendBalancesByLocationAsync(Guid traceId, string itemCode, decimal requestQty, List validLocations, List validStatuses); } From b812e9c41add8e55adc40db26e707e71a77f6367 Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Wed, 20 Dec 2023 15:18:37 +0800 Subject: [PATCH 02/20] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs | 8 ++++++++ .../UnplannedIssueRequestForDongyangAppService.cs | 1 + .../UnplannedReceiptRequests/UnplannedReceiptRequest.cs | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs index 4623096c0..abcbf8563 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs @@ -6,11 +6,19 @@ public static class CurrentUserExtensions { public static string GetUserName(this ICurrentUser currentUser) { + if (currentUser == null || currentUser.Name == null) //仅调试时用 + { + return "admin"; + } return currentUser.Name; } public static string GetName(this ICurrentUser currentUser) { + if (currentUser == null || currentUser.Name == null) //仅调试时用 + { + return "admin"; + } return currentUser.Name; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 15ca3ba7d..86efe53fa 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -95,6 +95,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA //}); unplannedIssueRequest.DirectCreateNote = true; //线边 直接生成记录 + unplannedIssueRequest.RequestStatus = EnumRequestStatus.Completed; } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedReceiptRequests/UnplannedReceiptRequest.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedReceiptRequests/UnplannedReceiptRequest.cs index 276f54bd1..5e84c25f0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedReceiptRequests/UnplannedReceiptRequest.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedReceiptRequests/UnplannedReceiptRequest.cs @@ -35,7 +35,7 @@ public class UnplannedReceiptRequest : SfsStoreRequestAggregateRootBase Details { get; set; } = new List(); - [Display(Name = "退料类别", Order = 0)] + [IgnoreUpdate] public EnumUnplannedReceiptType UnplannedReceiptType { get; set; } } From ebcb38a136f08319ec42cd8bb819dfe866fc0324 Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Wed, 20 Dec 2023 15:23:45 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Balances/IBalanceAppService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/IBalanceAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/IBalanceAppService.cs index a9c62ad15..57c5febea 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/IBalanceAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/IBalanceAppService.cs @@ -164,4 +164,5 @@ public interface IBalanceAppService /// /// Task> GetListByErpLocationCodeAndItemCodeAsync(string erplocationCode, string itemCode); + Task> GetRecommendBalancesByLocationsAsync(RecommendBalanceRequestInput input); } From 7ad0171a4036d76fd2d4cc969095762c33b1e78d Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Wed, 20 Dec 2023 16:53:52 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=E9=A2=86?= =?UTF-8?q?=E9=80=80=E6=96=99=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Outgoing/UnplannedIssueNoteConverter.cs | 7 ++++++- .../Outgoing/UnplannedReceiptNoteConverter.cs | 9 +++++++-- .../UnplannedIssueNoteExchangeDto.cs | 5 +++++ .../UnplannedReceiptNoteExchangeDto.cs | 5 +++++ ...n_in.Sfs.Wms.DataExchange.Application.Contracts.xml | 10 ++++++++++ 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs index 300ff4ba4..05a75e3d7 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedIssueNoteConverter.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Volo.Abp.ObjectMapping; using Win_in.Sfs.Auth.Application.Contracts; using Win_in.Sfs.Auth.Users; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; using Win_in.Sfs.Wms.DataExchange.Domain; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp; using Win_in.Sfs.Wms.DataExchange.Domain.Shared; @@ -16,7 +17,6 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Outgoing; public class UnplannedIssueNoteConverter : IOutgoingConverter { - private readonly string billtype = "4013"; private readonly IOutgoingFromWmsManager _outgoingFromWmsManager; private readonly IOutgoingToExternalManager _outgoingToExternalManager; private readonly IDepartmentAppService _departmentAppService; @@ -125,6 +125,11 @@ public class UnplannedIssueNoteConverter : IOutgoingConverter /// private Wmsoutm BuildDataInterface(UnplannedIssueNoteExchangeDto exchangeOrder,string tyrpNumber,string departmentCode) { + string billtype = "4013"; + if (exchangeOrder.UnplannedIssueType== EnumUnplannedIssueType.Wip) + { + billtype = "4036"; + } var ret = new Wmsoutm() { wmsoutm_nbr = tyrpNumber, diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs index 3b6d8b68e..1a5cb0d4d 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/UnplannedReceiptNoteConverter.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Volo.Abp.ObjectMapping; using Win_in.Sfs.Auth.Application.Contracts; using Win_in.Sfs.Auth.Users; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; using Win_in.Sfs.Wms.DataExchange.Domain; using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp; using Win_in.Sfs.Wms.DataExchange.Domain.Shared; @@ -16,7 +17,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent.Outgoing; public class UnplannedReceiptNoteConverter : IOutgoingConverter { - private readonly string billtype = "4014"; + //private readonly string billtype = "4014"; private readonly IOutgoingFromWmsManager _outgoingFromWmsManager; private readonly IOutgoingToExternalManager _outgoingToExternalManager; private readonly IDepartmentAppService _departmentAppService; @@ -125,7 +126,11 @@ public class UnplannedReceiptNoteConverter : IOutgoingConverter /// private Wmsoutm BuildDataInterface(UnplannedReceiptNoteExchangeDto exchangeOrder, string tyrpNumber,string departmentCode) { - + string billtype = "4014"; + if (exchangeOrder.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) + { + billtype = "4036"; + } var ret = new Wmsoutm() { wmsoutm_nbr = tyrpNumber, diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedIssueNote/UnplannedIssueNoteExchangeDto.cs b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedIssueNote/UnplannedIssueNoteExchangeDto.cs index d13480533..b27945058 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedIssueNote/UnplannedIssueNoteExchangeDto.cs +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedIssueNote/UnplannedIssueNoteExchangeDto.cs @@ -1,4 +1,5 @@ using System; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; namespace Win_in.Sfs.Wms.DataExchange.WMS.UnplannedIssueNote; @@ -22,4 +23,8 @@ public class UnplannedIssueNoteExchangeDto /// 生效日期 /// public DateTime ActiveDate { get; set; } = DateTime.Now.Date; + /// + /// 领料类别 + /// + public EnumUnplannedIssueType UnplannedIssueType { get; set; } } diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs index c13fec26a..abae086af 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/WMS/UnplannedReceiptNote/UnplannedReceiptNoteExchangeDto.cs @@ -1,4 +1,5 @@ using System; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; namespace Win_in.Sfs.Wms.DataExchange.WMS.UnplannedReceiptNote; @@ -23,5 +24,9 @@ public class UnplannedReceiptNoteExchangeDto /// 生效日期 /// public DateTime ActiveDate { get; set; } = DateTime.Now.Date; + /// + /// 退料类别 + /// + public EnumUnplannedReceiptType UnplannedReceiptType { get; set; } } diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml index db237fa5f..01d68a873 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Application.Contracts/Win_in.Sfs.Wms.DataExchange.Application.Contracts.xml @@ -1671,6 +1671,11 @@ 生效日期 + + + 领料类别 + + 单据号 @@ -1726,6 +1731,11 @@ 生效日期 + + + 退料类别 + + 用户号码 From 4425a6ba8b230196b7555d3b1fe8e4164b2a0dd6 Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Thu, 21 Dec 2023 08:39:23 +0800 Subject: [PATCH 05/20] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=20=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E6=97=B6=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Bases/SfsStoreRequestAppServiceBase.cs | 6 +++ ...lannedIssueRequestForDongyangAppService.cs | 47 ++++++++++++++----- ...nnedReceiptRequestForDongyangAppService.cs | 33 ++++++++----- 3 files changed, 61 insertions(+), 25 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs index 7bed7b52d..36465700c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs @@ -60,11 +60,17 @@ public abstract class SfsStoreRequestAppServiceBase(result); return dto; } + protected virtual TEntity ModifyEntityBeforeAgree(TEntity obj) + { + return obj; + } + /// /// 拒绝请求 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 86efe53fa..da71a45ca 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -72,11 +72,18 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA } //需要复制一个这个方法 去掉区域参数 换成库位参数 - //_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput() - //{ - // ItemCode = detail.ItemCode, - - //}); + RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + input.ItemCode = detail.ItemCode; + input.Locations = new List() { detail.LocationCode }; + var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); + if (balanceLst.Count == 0) + { + throw new UserFriendlyException($"GetRecommendBalancesByLocationsAsync返回0条记录"); + } + if (detail.Qty > balanceLst[0].Qty) + { + throw new UserFriendlyException($"库存数量不足:GetRecommendBalancesByLocationsAsync"); + } } if (unplannedIssueRequest.UnplannedIssueType == EnumUnplannedIssueType.Wip) @@ -89,16 +96,21 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA } //需要复制一个这个方法 去掉区域参数 换成库位参数 - //_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput() - //{ - // ItemCode = detail.ItemCode, + RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + input.ItemCode = detail.ItemCode; + input.Locations = new List() { detail.LocationCode }; + var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); + if (balanceLst.Count == 0) + { + throw new UserFriendlyException($"GetRecommendBalancesByLocationsAsync返回0条记录"); + } + var sumQty = balanceLst.Sum(itm => itm.Qty); + if (detail.Qty > sumQty) + { + throw new UserFriendlyException($"库存数量不足:GetRecommendBalancesByLocationsAsync"); + } - //}); - unplannedIssueRequest.DirectCreateNote = true; //线边 直接生成记录 - unplannedIssueRequest.RequestStatus = EnumRequestStatus.Completed; } - - await SetDetailPropertiesAsync(detail).ConfigureAwait(false); } } @@ -106,6 +118,15 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA return dictionary; } + protected override UnplannedIssueRequest ModifyEntityBeforeAgree(UnplannedIssueRequest obj) + { + if (obj.UnplannedIssueType == EnumUnplannedIssueType.Wip) + { + obj.DirectCreateNote = true; //线边 直接生成记录 + } + return obj; + } + #region 赋值 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs index ee56153bf..bdc3d2203 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs @@ -25,19 +25,22 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ private readonly LocationManager _locationManager; private readonly ILocationAppService _locationAppService; private readonly IUnplannedReceiptRequestManager _unplannedReceiptRequestManager; + private readonly IBalanceAppService _balanceAppService; public UnplannedReceiptRequestForDongyangAppService(IUnplannedReceiptRequestRepository repository, IUnplannedReceiptRequestManager unplannedReceiptRequestManager, IDepartmentAppService departmentApp, //LocationManager locationManager, - ILocationAppService locationAppService + ILocationAppService locationAppService, + IBalanceAppService balanceAppService ) : base(repository, unplannedReceiptRequestManager) { _unplannedReceiptRequestManager = unplannedReceiptRequestManager; _departmentApp = departmentApp; //_locationManager = locationManager; _locationAppService = locationAppService; + _balanceAppService = balanceAppService; } /// @@ -70,11 +73,10 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ } //需要复制一个这个方法 去掉区域参数 换成库位参数 - //_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput() - //{ - // ItemCode = detail.ItemCode, - - //}); + //RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + //input.ItemCode = detail.ItemCode; + //input.Locations = new List() { detail.LocationCode }; + //await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); } if (unplannedReceiptRequest.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) @@ -87,12 +89,10 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ } //需要复制一个这个方法 去掉区域参数 换成库位参数 - //_balanceAppService.GetRecommendBalancesAsync(new RecommendBalanceRequestInput() - //{ - // ItemCode = detail.ItemCode, - - //}); - unplannedReceiptRequest.DirectCreateNote = true; //线边 直接生成记录 + //RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + //input.ItemCode = detail.ItemCode; + //input.Locations = new List() { detail.LocationCode }; + //await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); } await SetDetailPropertiesAsync(detail).ConfigureAwait(false); @@ -102,6 +102,15 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ return dictionary; } + protected override UnplannedReceiptRequest ModifyEntityBeforeAgree(UnplannedReceiptRequest obj) + { + if (obj.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) + { + obj.DirectCreateNote = true; + } + return obj; + } + #region 赋值 /// From 9c1929bd4b3c39a2c054a1f1c871942c990962ef Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Thu, 21 Dec 2023 08:49:27 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0OA=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=E9=A2=86=E9=80=80=E6=96=99=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IUnplannedIssueRequestAppService.cs | 4 ++- .../IUnplannedReceiptRequestAppService.cs | 4 ++- .../UnplannedIssueRequestAppService.cs | 28 +++++++++++++++++++ .../UnplannedReceiptRequestAppService.cs | 27 ++++++++++++++++++ 4 files changed, 61 insertions(+), 2 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/IUnplannedIssueRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/IUnplannedIssueRequestAppService.cs index fbd07d0cd..df00fd7cf 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/IUnplannedIssueRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/IUnplannedIssueRequestAppService.cs @@ -1,7 +1,9 @@ +using System.Threading.Tasks; + namespace Win_in.Sfs.Wms.Store.Application.Contracts; public interface IUnplannedIssueRequestAppService : ISfsStoreRequestMasterAppServiceBase { - + Task CreateByOAAsync(UnplannedIssueRequestEditInput input); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/IUnplannedReceiptRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/IUnplannedReceiptRequestAppService.cs index f644021ca..f618eeecd 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/IUnplannedReceiptRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/IUnplannedReceiptRequestAppService.cs @@ -1,7 +1,9 @@ +using System.Threading.Tasks; + namespace Win_in.Sfs.Wms.Store.Application.Contracts; public interface IUnplannedReceiptRequestAppService : ISfsStoreRequestMasterAppServiceBase { - + Task CreateByOAAsync(UnplannedReceiptRequestEditInput input); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs index 34086c0b9..b05e81e0e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs @@ -1,6 +1,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain.Shared; @@ -42,5 +43,32 @@ public abstract class UnplannedIssueRequestAppService : var dto = ObjectMapper.Map(entity); return dto; } + /// + /// OA创建计划外出库申请 + /// + /// + /// + [HttpPost("create-by-oa")] + //[Authorize(UnplannedIssueRequestPermissions.Create)] + public async Task CreateByOAAsync(UnplannedIssueRequestEditInput input) + { + var entity = ObjectMapper.Map(input); + entity.AutoCompleteJob = true; + entity.AutoSubmit = true; + entity.AutoAgree = true; + entity.AutoHandle = true; + if (entity.UnplannedIssueType == EnumUnplannedIssueType.Wip) + { + entity.DirectCreateNote = false; + } + else + { + entity.DirectCreateNote = true; + } + entity.DirectCreateNote = true; + await _unplannedIssueRequestManager.CreateAsync(entity).ConfigureAwait(false); + var dto = ObjectMapper.Map(entity); + return dto; + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAppService.cs index e866cccad..98b6712aa 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAppService.cs @@ -1,6 +1,7 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain.Shared; @@ -40,5 +41,31 @@ public abstract class UnplannedReceiptRequestAppService : var dto = ObjectMapper.Map(entity); return dto; } + /// + /// OA创建计划外入库申请 + /// + /// + /// + [HttpPost("create-by-oa")] + //[Authorize(UnplannedReceiptRequestPermissions.Create)] + public async Task CreateByOAAsync(UnplannedReceiptRequestEditInput input) + { + var entity = ObjectMapper.Map(input); + entity.AutoCompleteJob = true; + entity.AutoSubmit = true; + entity.AutoAgree = true; + entity.AutoHandle = true; + if (entity.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) + { + entity.DirectCreateNote = false; + } + else + { + entity.DirectCreateNote = true; + } + await _unplannedReceiptRequestManager.CreateAsync(entity).ConfigureAwait(false); + var dto = ObjectMapper.Map(entity); + return dto; + } } From 287bb2b275442b0f7d42d02a136afdc42abfa293 Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Thu, 21 Dec 2023 09:07:42 +0800 Subject: [PATCH 07/20] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=E9=A2=86?= =?UTF-8?q?=E9=80=80=E6=96=99=E6=9E=9A=E4=B8=BE=E5=8E=BB=E6=8E=89=E6=97=A0?= =?UTF-8?q?=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Enums/Store/EnumUnplannedIssueType.cs | 2 -- .../Enums/Store/EnumUnplannedReceiptType.cs | 2 -- 2 files changed, 4 deletions(-) diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumUnplannedIssueType.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumUnplannedIssueType.cs index 42e1955ac..b3f978c88 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumUnplannedIssueType.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumUnplannedIssueType.cs @@ -8,8 +8,6 @@ using System.Threading.Tasks; namespace Win_in.Sfs.Shared.Domain.Shared.Enums.Store; public enum EnumUnplannedIssueType { - [Display(Name = "无")] - None =0, [Display(Name = "原料 非生产领料")] Raw = 1,//原料 非生产领料 [Display(Name = "线边 非生产领料")] diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumUnplannedReceiptType.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumUnplannedReceiptType.cs index a89bd2091..df0158141 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumUnplannedReceiptType.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain.Shared/Enums/Store/EnumUnplannedReceiptType.cs @@ -8,8 +8,6 @@ using System.Threading.Tasks; namespace Win_in.Sfs.Shared.Domain.Shared.Enums.Store; public enum EnumUnplannedReceiptType { - [Display(Name = "无")] - None =0, [Display(Name = "原料 非生产退料")] Raw = 1,//原料 非生产退料 [Display(Name = "线边 非生产退料")] From 6ada763434ef2763d65f8604bae0bf9cc8cab52d Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Thu, 21 Dec 2023 16:26:50 +0800 Subject: [PATCH 08/20] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=E9=A2=86?= =?UTF-8?q?=E9=80=80=E6=96=99=E6=9C=8D=E5=8A=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Balances/BalanceAppService.cs | 10 +++++ .../UnplannedIssueRequestAppService.cs | 16 +------ ...lannedIssueRequestForDongyangAppService.cs | 42 ++++++++++++++++++- .../UnplannedReceiptRequestAppService.cs | 15 +------ ...nnedReceiptRequestForDongyangAppService.cs | 32 ++++++++++++++ 5 files changed, 87 insertions(+), 28 deletions(-) diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs index 1759a6a5d..27a2dffb8 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; +using DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; @@ -478,6 +479,15 @@ public class BalanceAppService var qty = input.Qty; var locations = input.Locations; var statuses = input.Statuses; + foreach (var location in locations) + { + var locationDto = await _locationAclService.GetByCodeAsync(location).ConfigureAwait(false); + if (locationDto != null) + { + input.LocationAreas.Add(locationDto.AreaCode); + input.LocationTypes.Add(locationDto.Type); + } + } Logger.LogDebug(traceId + "|Input:" + input); var balances = await _balanceManager.GetRecommendBalancesByLocationAsync(traceId, itemCode, qty, locations, statuses).ConfigureAwait(false); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs index b05e81e0e..563028731 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs @@ -50,22 +50,10 @@ public abstract class UnplannedIssueRequestAppService : /// [HttpPost("create-by-oa")] //[Authorize(UnplannedIssueRequestPermissions.Create)] - public async Task CreateByOAAsync(UnplannedIssueRequestEditInput input) + public virtual async Task CreateByOAAsync(UnplannedIssueRequestEditInput input) { var entity = ObjectMapper.Map(input); - entity.AutoCompleteJob = true; - entity.AutoSubmit = true; - entity.AutoAgree = true; - entity.AutoHandle = true; - if (entity.UnplannedIssueType == EnumUnplannedIssueType.Wip) - { - entity.DirectCreateNote = false; - } - else - { - entity.DirectCreateNote = true; - } - entity.DirectCreateNote = true; + await _unplannedIssueRequestManager.CreateAsync(entity).ConfigureAwait(false); var dto = ObjectMapper.Map(entity); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index da71a45ca..5a269608f 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Volo.Abp; using Volo.Abp.Data; @@ -41,7 +42,38 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA _locationAppService = locationAppService; _transactionTypeAclService = transactionTypeAclService; } + /// + /// OA创建计划外出库申请 + /// + /// + /// + [HttpPost("create-by-oa")] + //[Authorize(UnplannedIssueRequestPermissions.Create)] + public override async Task CreateByOAAsync(UnplannedIssueRequestEditInput input) + { + var entity = ObjectMapper.Map(input); + foreach (var item in entity.Details) + { + await SetDetailPropertiesAsync(item).ConfigureAwait(false); + } + entity.AutoCompleteJob = true; + entity.AutoSubmit = true; + entity.AutoAgree = true; + entity.AutoHandle = true; + if (entity.UnplannedIssueType == EnumUnplannedIssueType.Wip) + { + entity.DirectCreateNote = false; + } + else + { + entity.DirectCreateNote = true; + } + entity.DirectCreateNote = true; + await _unplannedIssueRequestManager.CreateAsync(entity).ConfigureAwait(false); + var dto = ObjectMapper.Map(entity); + return dto; + } /// /// 用来重写 导入数据时可以加工数据 /// @@ -75,6 +107,10 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); input.ItemCode = detail.ItemCode; input.Locations = new List() { detail.LocationCode }; + input.LocationAreas = new List() { locationDto.AreaCode }; + input.LocationTypes = new List { locationDto.Type }; + input.Qty = detail.Qty; + input.Statuses = new List { EnumInventoryStatus.OK }; var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); if (balanceLst.Count == 0) { @@ -92,13 +128,17 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA if (locationDto.Type != EnumLocationType.WIP) { throw new UserFriendlyException($"【{detail.LocationCode}】库位类型错误," + - $"不是{EnumLocationType.WIP.GetDisplayName()}"); + $"不是{EnumLocationType.WIP.GetDisplayName()}】"); } //需要复制一个这个方法 去掉区域参数 换成库位参数 RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); input.ItemCode = detail.ItemCode; input.Locations = new List() { detail.LocationCode }; + input.LocationAreas=new List() { locationDto.AreaCode }; + input.LocationTypes= new List { locationDto.Type}; + input.Qty = detail.Qty; + input.Statuses=new List { EnumInventoryStatus.OK }; var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); if (balanceLst.Count == 0) { diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAppService.cs index 98b6712aa..43e8003e4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAppService.cs @@ -48,21 +48,10 @@ public abstract class UnplannedReceiptRequestAppService : /// [HttpPost("create-by-oa")] //[Authorize(UnplannedReceiptRequestPermissions.Create)] - public async Task CreateByOAAsync(UnplannedReceiptRequestEditInput input) + public virtual async Task CreateByOAAsync(UnplannedReceiptRequestEditInput input) { var entity = ObjectMapper.Map(input); - entity.AutoCompleteJob = true; - entity.AutoSubmit = true; - entity.AutoAgree = true; - entity.AutoHandle = true; - if (entity.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) - { - entity.DirectCreateNote = false; - } - else - { - entity.DirectCreateNote = true; - } + await _unplannedReceiptRequestManager.CreateAsync(entity).ConfigureAwait(false); var dto = ObjectMapper.Map(entity); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs index bdc3d2203..f4436577b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Volo.Abp; using Volo.Abp.Data; @@ -42,7 +43,38 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ _locationAppService = locationAppService; _balanceAppService = balanceAppService; } + /// + /// OA创建计划外入库申请 + /// + /// + /// + [HttpPost("create-by-oa")] + //[Authorize(UnplannedReceiptRequestPermissions.Create)] + public override async Task CreateByOAAsync(UnplannedReceiptRequestEditInput input) + { + var entity = ObjectMapper.Map(input); + foreach (var item in entity.Details) + { + await SetDetailPropertiesAsync(item).ConfigureAwait(false); + } + + entity.AutoCompleteJob = true; + entity.AutoSubmit = true; + entity.AutoAgree = true; + entity.AutoHandle = true; + if (entity.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) + { + entity.DirectCreateNote = false; + } + else + { + entity.DirectCreateNote = true; + } + await _unplannedReceiptRequestManager.CreateAsync(entity).ConfigureAwait(false); + var dto = ObjectMapper.Map(entity); + return dto; + } /// /// 用来重写 导入数据时可以加工数据 /// From 987f0dbc02fc10945ad446a68c37cf8275172476 Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Thu, 21 Dec 2023 17:16:43 +0800 Subject: [PATCH 09/20] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=BA=93=E5=AD=98=E4=BD=99=E9=A2=9D=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Balances/BalanceAppService.cs | 8 ++++++++ .../UnplannedIssueRequestForDongyangAppService.cs | 4 ---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs index 27a2dffb8..608c7fb97 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs @@ -484,7 +484,15 @@ public class BalanceAppService var locationDto = await _locationAclService.GetByCodeAsync(location).ConfigureAwait(false); if (locationDto != null) { + if(input.LocationAreas==null) + { + input.LocationAreas = new List(); + } input.LocationAreas.Add(locationDto.AreaCode); + if (input.LocationTypes == null) + { + input.LocationTypes = new List(); + } input.LocationTypes.Add(locationDto.Type); } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 5a269608f..52c82a38c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -107,8 +107,6 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); input.ItemCode = detail.ItemCode; input.Locations = new List() { detail.LocationCode }; - input.LocationAreas = new List() { locationDto.AreaCode }; - input.LocationTypes = new List { locationDto.Type }; input.Qty = detail.Qty; input.Statuses = new List { EnumInventoryStatus.OK }; var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); @@ -135,8 +133,6 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); input.ItemCode = detail.ItemCode; input.Locations = new List() { detail.LocationCode }; - input.LocationAreas=new List() { locationDto.AreaCode }; - input.LocationTypes= new List { locationDto.Type}; input.Qty = detail.Qty; input.Statuses=new List { EnumInventoryStatus.OK }; var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); From 3cbcaec3fe7add7a04ad0652e9a7a312ae2f2681 Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Mon, 25 Dec 2023 14:36:16 +0800 Subject: [PATCH 10/20] =?UTF-8?q?=E8=B0=83=E8=AF=95=20=E7=BA=BF=E8=BE=B9?= =?UTF-8?q?=20=E9=9D=9E=E7=94=9F=E4=BA=A7=20=E9=80=80=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nplannedReceiptRequestAutoMapperProfile.cs | 6 ++++++ ...nnedReceiptRequestForDongyangAppService.cs | 21 +++++++++++-------- .../UnplannedReceiptRequestEventHandler.cs | 11 +++++----- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAutoMapperProfile.cs index 078029270..a14612046 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAutoMapperProfile.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestAutoMapperProfile.cs @@ -61,5 +61,11 @@ public partial class StoreApplicationAutoMapperProfile : Profile .Ignore(x => x.Status) .Ignore(x => x.Number) ; + + CreateMap(); + + CreateMap(); + + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs index f4436577b..e8105d1d1 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs @@ -17,6 +17,7 @@ using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; using Win_in.Sfs.Wms.Inventory.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; +using Win_in.Sfs.Wms.Store.Domain.Acl.Dict; namespace Win_in.Sfs.Wms.Store.Application; @@ -27,14 +28,15 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ private readonly ILocationAppService _locationAppService; private readonly IUnplannedReceiptRequestManager _unplannedReceiptRequestManager; private readonly IBalanceAppService _balanceAppService; - + private new readonly IDictAclService DictAclService; public UnplannedReceiptRequestForDongyangAppService(IUnplannedReceiptRequestRepository repository, IUnplannedReceiptRequestManager unplannedReceiptRequestManager, IDepartmentAppService departmentApp, //LocationManager locationManager, ILocationAppService locationAppService, - IBalanceAppService balanceAppService + IBalanceAppService balanceAppService, + IDictAclService dictAclService ) : base(repository, unplannedReceiptRequestManager) { _unplannedReceiptRequestManager = unplannedReceiptRequestManager; @@ -42,6 +44,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ //_locationManager = locationManager; _locationAppService = locationAppService; _balanceAppService = balanceAppService; + DictAclService = dictAclService; } /// /// OA创建计划外入库申请 @@ -58,17 +61,17 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ await SetDetailPropertiesAsync(item).ConfigureAwait(false); } - entity.AutoCompleteJob = true; + entity.AutoCompleteJob = false; //任务到记录 entity.AutoSubmit = true; entity.AutoAgree = true; entity.AutoHandle = true; if (entity.UnplannedReceiptType == EnumUnplannedReceiptType.Wip) { - entity.DirectCreateNote = false; + entity.DirectCreateNote = true; //线边直接生成记录 } else { - entity.DirectCreateNote = true; + entity.DirectCreateNote = false; //原料先生成任务、再生成记录 } await _unplannedReceiptRequestManager.CreateAsync(entity).ConfigureAwait(false); @@ -313,7 +316,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ { if (!string.IsNullOrEmpty(importInput.CaseCode)) { - var dict = await DictAclService.GetByCodeAsync(nameof(importInput.CaseCode)).ConfigureAwait(false); + var dict = await base.DictAclService.GetByCodeAsync(nameof(importInput.CaseCode)).ConfigureAwait(false); Check.NotNull(dict, "字典编码", $"字典编码{nameof(importInput.CaseCode)}不存在"); if (dict == null) @@ -389,7 +392,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ { if (!string.IsNullOrEmpty(importInput.OnceBusiCode)) { - var dict = await DictAclService.GetByCodeAsync(nameof(importInput.OnceBusiCode)).ConfigureAwait(false); + var dict = await base.DictAclService.GetByCodeAsync(nameof(importInput.OnceBusiCode)).ConfigureAwait(false); if (dict == null) { validationRresult.Add("字典编码", $"字典编码{nameof(importInput.OnceBusiCode)}不存在"); @@ -410,7 +413,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ protected virtual async Task CheckProjCapacityCodeAsync(UnplannedReceiptRequestImportInput importInput, List validationRresult) { - var dict = await DictAclService.GetByCodeAsync(nameof(importInput.ProjCapacityCode)).ConfigureAwait(false); + var dict = await base.DictAclService.GetByCodeAsync(nameof(importInput.ProjCapacityCode)).ConfigureAwait(false); if (dict == null) { validationRresult.Add("字典编码", $"字典编码{nameof(importInput.ProjCapacityCode)}不存在"); @@ -442,7 +445,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ { if (!string.IsNullOrEmpty(detail.CaseCode)) { - var dict = await DictAclService.GetByCodeAsync(nameof(detail.CaseCode)).ConfigureAwait(false); + var dict = await base.DictAclService.GetByCodeAsync(nameof(detail.CaseCode)).ConfigureAwait(false); if (dict == null) { diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs index dcec7d221..e9ad9854e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs @@ -34,11 +34,11 @@ public class UnplannedReceiptRequestEventHandler /// Event data public async Task HandleEventAsync(SfsCreatedEntityEventData eventData) { - var entity = eventData.Entity; - if (entity.AutoSubmit) - { - await _unplannedReceiptRequestManager.SubmitAsync(entity).ConfigureAwait(false); - } + //var entity = eventData.Entity; + //if (entity.AutoSubmit) + //{ + // await _unplannedReceiptRequestManager.SubmitAsync(entity).ConfigureAwait(false); + //} } /// @@ -112,6 +112,7 @@ public class UnplannedReceiptRequestEventHandler detail.ExtraProperties = inputDetail.ExtraProperties; createInput.Details.Add(detail); + } return createInput; From 7c4e07b350ec810b1d788aac1a279c9a077bba0a Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Mon, 25 Dec 2023 14:36:47 +0800 Subject: [PATCH 11/20] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=E9=A2=86?= =?UTF-8?q?=E6=96=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/UnplannedIssueJobController.cs | 2 +- .../Jobs/UnplannedReceiptJobController.cs | 2 +- .../UnplannedIssueRequestAutoMapperProfile.cs | 6 + ...lannedIssueRequestForDongyangAppService.cs | 118 +++++++++++------- ...nnedReceiptRequestForDongyangAppService.cs | 10 +- .../UnplannedIssueJobs/UnplannedIssueJob.cs | 4 +- .../UnplannedIssueJobManager.cs | 5 +- .../UnplannedReceiptJob.cs | 4 +- .../UnplannedReceiptJobManager.cs | 2 +- .../UnplannedIssueRequestAutoMapperProfile.cs | 2 +- .../UnplannedIssueRequestEventHandler.cs | 10 +- .../UnplannedReceiptRequestEventHandler.cs | 2 +- 12 files changed, 103 insertions(+), 64 deletions(-) diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/UnplannedIssueJobController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/UnplannedIssueJobController.cs index df7f70b1e..f886d53df 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/UnplannedIssueJobController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/UnplannedIssueJobController.cs @@ -68,7 +68,7 @@ public class UnplannedIssueJobController : AbpController { Filters = new List { - new(nameof(UnplannedIssueJobDTO.WorkGroupCode),jsonWlgCodes,"In"), + // new(nameof(UnplannedIssueJobDTO.WorkGroupCode),jsonWlgCodes,"In"), new(nameof(UnplannedIssueJobDTO.JobStatus),jsonStatus,"In") } } diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/UnplannedReceiptJobController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/UnplannedReceiptJobController.cs index d78220798..601cde5f7 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/UnplannedReceiptJobController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/UnplannedReceiptJobController.cs @@ -67,7 +67,7 @@ public class UnplannedReceiptJobController : AbpController { Filters = new List { - new(nameof(UnplannedReceiptJobDTO.WorkGroupCode),jsonWlgCodes,"In"), + // new(nameof(UnplannedReceiptJobDTO.WorkGroupCode),jsonWlgCodes,"In"), new(nameof(UnplannedReceiptJobDTO.JobStatus),jsonStatus,"In") } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAutoMapperProfile.cs index 1d6956511..856a68af1 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAutoMapperProfile.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAutoMapperProfile.cs @@ -63,5 +63,11 @@ public partial class StoreApplicationAutoMapperProfile : Profile .Ignore(x => x.TenantId) .Ignore(x => x.Id) .Ignore(x => x.ExtraProperties); + + CreateMap(); + + + CreateMap(); + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 52c82a38c..0ed3c65d4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -54,21 +54,20 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA var entity = ObjectMapper.Map(input); foreach (var item in entity.Details) { - await SetDetailPropertiesAsync(item).ConfigureAwait(false); + await SetDetailPropertiesAsync(item, input.UnplannedIssueType).ConfigureAwait(false); } - entity.AutoCompleteJob = true; + entity.AutoCompleteJob = false; entity.AutoSubmit = true; entity.AutoAgree = true; entity.AutoHandle = true; if (entity.UnplannedIssueType == EnumUnplannedIssueType.Wip) { - entity.DirectCreateNote = false; + entity.DirectCreateNote = true; } else { - entity.DirectCreateNote = true; + entity.DirectCreateNote = false; } - entity.DirectCreateNote = true; await _unplannedIssueRequestManager.CreateAsync(entity).ConfigureAwait(false); var dto = ObjectMapper.Map(entity); @@ -85,41 +84,31 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA foreach (var unplannedIssueRequest in addList) { + if(unplannedIssueRequest.UnplannedIssueType != EnumUnplannedIssueType.Wip|| unplannedIssueRequest.UnplannedIssueType != EnumUnplannedIssueType.Raw) + { + throw new UserFriendlyException($"【{unplannedIssueRequest.UnplannedIssueType}】领料类型," + + $"不是{EnumUnplannedIssueType.Wip.GetDisplayName()}" + + $"或{EnumUnplannedIssueType.Raw.GetDisplayName()}】"); + } unplannedIssueRequest.Worker = CurrentUser.GetUserName(); unplannedIssueRequest.CreatorId = CurrentUser.Id; await SetRequestAutoPropertiesAsync(unplannedIssueRequest).ConfigureAwait(false); await SetEntityPropertiesAsync(unplannedIssueRequest).ConfigureAwait(false); - + List newDetails = new List(); foreach (var detail in unplannedIssueRequest.Details) { if (unplannedIssueRequest.UnplannedIssueType == EnumUnplannedIssueType.Raw) { var locationDto = await _locationAppService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false); - if (locationDto.Type != EnumLocationType.RAW || locationDto.Type != EnumLocationType.SEMI) + if (locationDto.Type != EnumLocationType.RAW && locationDto.Type != EnumLocationType.SEMI) { throw new UserFriendlyException($"【{detail.LocationCode}】库位类型错误," + $"不是{EnumLocationType.RAW.GetDisplayName()}" + $"或{EnumLocationType.SEMI.GetDisplayName()}】"); } - - //需要复制一个这个方法 去掉区域参数 换成库位参数 - RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); - input.ItemCode = detail.ItemCode; - input.Locations = new List() { detail.LocationCode }; - input.Qty = detail.Qty; - input.Statuses = new List { EnumInventoryStatus.OK }; - var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); - if (balanceLst.Count == 0) - { - throw new UserFriendlyException($"GetRecommendBalancesByLocationsAsync返回0条记录"); - } - if (detail.Qty > balanceLst[0].Qty) - { - throw new UserFriendlyException($"库存数量不足:GetRecommendBalancesByLocationsAsync"); - } + unplannedIssueRequest.DirectCreateNote = false; } - if (unplannedIssueRequest.UnplannedIssueType == EnumUnplannedIssueType.Wip) { var locationDto = await _locationAppService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false); @@ -127,32 +116,61 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA { throw new UserFriendlyException($"【{detail.LocationCode}】库位类型错误," + $"不是{EnumLocationType.WIP.GetDisplayName()}】"); - } - - //需要复制一个这个方法 去掉区域参数 换成库位参数 - RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); - input.ItemCode = detail.ItemCode; - input.Locations = new List() { detail.LocationCode }; - input.Qty = detail.Qty; - input.Statuses=new List { EnumInventoryStatus.OK }; - var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); - if (balanceLst.Count == 0) - { - throw new UserFriendlyException($"GetRecommendBalancesByLocationsAsync返回0条记录"); - } - var sumQty = balanceLst.Sum(itm => itm.Qty); - if (detail.Qty > sumQty) - { - throw new UserFriendlyException($"库存数量不足:GetRecommendBalancesByLocationsAsync"); - } - + } + } + //需要复制一个这个方法 去掉区域参数 换成库位参数 + RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); + input.ItemCode = detail.ItemCode; + input.Locations = new List() { detail.LocationCode }; + input.Qty = detail.Qty; + input.Statuses = new List { EnumInventoryStatus.OK }; + var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(input).ConfigureAwait(false); + if (balanceLst.Count == 0) + { + throw new UserFriendlyException($"GetRecommendBalancesByLocationsAsync返回0条记录"); + } + var sumQty = balanceLst.Sum(itm => itm.Qty); + if (detail.Qty > sumQty) + { + throw new UserFriendlyException($"库存数量不足:GetRecommendBalancesByLocationsAsync"); + } + foreach (var balance in balanceLst) + { + var newDetail = CreateNewDetail(detail, balance); + await SetDetailPropertiesAsync(newDetail, unplannedIssueRequest.UnplannedIssueType).ConfigureAwait(false); + newDetails.Add(newDetail); } - await SetDetailPropertiesAsync(detail).ConfigureAwait(false); } + unplannedIssueRequest.Details.Clear();//删除所有明细} + unplannedIssueRequest.Details.AddRange(newDetails);//按推荐添加 } return dictionary; } + /// + /// 创建明细 + /// + /// + /// + /// + protected UnplannedIssueRequestDetail CreateNewDetail(UnplannedIssueRequestDetail detail,BalanceDTO balance) + { + UnplannedIssueRequestDetail newDetail = new UnplannedIssueRequestDetail(); + newDetail.ArriveDate = detail.ArriveDate; + newDetail.CaseCode = detail.CaseCode; + newDetail.ContainerCode = detail.ContainerCode; + newDetail.Explain = detail.Explain; + newDetail.ItemCode = detail.ItemCode; + newDetail.LocationCode = detail.LocationCode; + newDetail.Number = detail.Number; + newDetail.OnceBusiCode = detail.OnceBusiCode; + newDetail.ProjCapacityCode = detail.ProjCapacityCode; + newDetail.ProduceDate = detail.ProduceDate; + newDetail.PackingCode = balance.PackingCode; + newDetail.Qty = balance.Qty; + newDetail.SetIdAndNumber(GuidGenerator, detail.MasterID, detail.Number); + return newDetail; + } protected override UnplannedIssueRequest ModifyEntityBeforeAgree(UnplannedIssueRequest obj) { @@ -170,7 +188,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA /// /// /// - private async Task SetDetailPropertiesAsync(UnplannedIssueRequestDetail detail) + private async Task SetDetailPropertiesAsync(UnplannedIssueRequestDetail detail, EnumUnplannedIssueType type) { var itemBasic = await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false); CheckItemBasic(itemBasic, detail.ItemCode); @@ -196,9 +214,13 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA detail.LocationArea = location.AreaCode; detail.LocationCode = location.Code; } - + string packingcode = string.Empty; + if(type!= EnumUnplannedIssueType.Wip) + { + packingcode = detail.PackingCode; + } var balance = await _balanceAppService.GetByItemLocationAndPackingAsync( - string.Empty, + packingcode, detail.ItemCode, detail.LocationCode).ConfigureAwait(false); @@ -387,7 +409,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA await CheckOnceBusiCodeAsync(model, validationRresult).ConfigureAwait(false);//次交易码 await CheckCaseCodeAsync(model, validationRresult).ConfigureAwait(false);//专案代码 await CheckProjCapacityCodeAsync(model, validationRresult).ConfigureAwait(false);//项目分类 - _ = await CheckBalanceAsync(model, validationRresult).ConfigureAwait(false); + // _ = await CheckBalanceAsync(model, validationRresult).ConfigureAwait(false); } protected async Task CheckItemBasicAsync(UnplannedIssueRequestImportInput importInput, List validationRresult) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs index f4436577b..db4db881a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs @@ -86,6 +86,12 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ foreach (var unplannedReceiptRequest in addList) { + if (unplannedReceiptRequest.UnplannedReceiptType != EnumUnplannedReceiptType.Wip || unplannedReceiptRequest.UnplannedReceiptType != EnumUnplannedReceiptType.Raw) + { + throw new UserFriendlyException($"【{unplannedReceiptRequest.UnplannedReceiptType}】退料料类型," + + $"不是{EnumUnplannedReceiptType.Wip.GetDisplayName()}" + + $"或{EnumUnplannedReceiptType.Raw.GetDisplayName()}】"); + } unplannedReceiptRequest.Worker = CurrentUser.GetUserName(); unplannedReceiptRequest.CreatorId = CurrentUser.Id; @@ -97,13 +103,13 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ if (unplannedReceiptRequest.UnplannedReceiptType == EnumUnplannedReceiptType.Raw) { var locationDto = await _locationAppService.GetByCodeAsync(detail.LocationCode).ConfigureAwait(false); - if (locationDto.Type != EnumLocationType.RAW || locationDto.Type != EnumLocationType.SEMI) + if (locationDto.Type != EnumLocationType.RAW && locationDto.Type != EnumLocationType.SEMI) { throw new UserFriendlyException($"【{detail.LocationCode}】库位类型错误," + $"不是{EnumLocationType.RAW.GetDisplayName()}" + $"或{EnumLocationType.SEMI.GetDisplayName()}】"); } - + unplannedReceiptRequest.DirectCreateNote = false; //需要复制一个这个方法 去掉区域参数 换成库位参数 //RecommendBalanceRequestInput input = new RecommendBalanceRequestInput(); //input.ItemCode = detail.ItemCode; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs index 550dcb16c..c02cff434 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs @@ -64,10 +64,12 @@ public class UnplannedIssueJob : SfsJobAggregateRootBase /// /// - public virtual async Task BuildDetail(Guid id, string handledLocationCode, string handledLocationErpCode, string handledWarehouseCode, decimal handledQty, string handledSupplierBatch, DateTime handledArriveDate, DateTime handledProduceDate, DateTime handledExpireDate + public virtual async Task BuildDetail(Guid id,string handledLocationGroup,string handledLocationArea, string handledLocationCode, string handledLocationErpCode, string handledWarehouseCode, decimal handledQty, string handledSupplierBatch, DateTime handledArriveDate, DateTime handledProduceDate, DateTime handledExpireDate , string handledContainerCode, string handledLot, string handledPackingCode, ExtraPropertyDictionary extraProperty) { var detail = GetDetail(id); + detail.HandledFromLocationGroup= handledLocationGroup; + detail.HandledFromLocationArea = handledLocationArea; detail.HandledFromLocationCode = handledLocationCode; detail.HandledFromLocationErpCode = handledLocationErpCode; detail.HandledFromWarehouseCode = handledWarehouseCode; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs index 07faa17f1..1f01d454f 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs @@ -33,11 +33,12 @@ public class UnplannedIssueJobManager : SfsJobManagerBase /// /// - public virtual async Task BuildDetail(Guid id, string handledLocationCode, string handledLocationErpCode, string handledWarehouseCode, decimal handledQty, string handledSupplierBatch, DateTime handledArriveDate, DateTime handledProduceDate, DateTime handledExpireDate, string handledContainerCode, string handledLot, string handledPackingCode, ExtraPropertyDictionary extraProperty) + public virtual async Task BuildDetail(Guid id,string handledLocationGroup ,string handledLocationArea, string handledLocationCode, string handledLocationErpCode, string handledWarehouseCode, decimal handledQty, string handledSupplierBatch, DateTime handledArriveDate, DateTime handledProduceDate, DateTime handledExpireDate, string handledContainerCode, string handledLot, string handledPackingCode, ExtraPropertyDictionary extraProperty) { var detail = GetDetail(id); + detail.HandledToLocationGroup = handledLocationGroup; + detail.HandledToLocationArea = handledLocationArea; detail.HandledToLocationCode = handledLocationCode; detail.HandledToLocationErpCode = handledLocationErpCode; detail.HandledToWarehouseCode = handledWarehouseCode; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedReceiptJobs/UnplannedReceiptJobManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedReceiptJobs/UnplannedReceiptJobManager.cs index 7734d307f..5e272fffc 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedReceiptJobs/UnplannedReceiptJobManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedReceiptJobs/UnplannedReceiptJobManager.cs @@ -33,7 +33,7 @@ public class UnplannedReceiptJobManager : SfsJobManagerBase x.HandledQty) .Ignore(x => x.HandledUom) .Ignore(x => x.ReasonCode) - .IgnoreIHasRecommendAndHandledFrom(); + ; CreateMap() .ForMember(x => x.UnplannedIssueRequestNumber, y => y.MapFrom(d => d.Number)).Ignore(x => x.JobNumber) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs index acfe68f31..f31dce719 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs @@ -35,10 +35,10 @@ public class UnplannedIssueRequestEventHandler public async Task HandleEventAsync(SfsCreatedEntityEventData eventData) { var entity = eventData.Entity; - if (entity.AutoSubmit) - { - await _unplannedIssueRequestManager.SubmitAsync(entity).ConfigureAwait(false); - } + //if (entity.AutoSubmit) + //{ + // await _unplannedIssueRequestManager.SubmitAsync(entity).ConfigureAwait(false); + //} } /// @@ -112,7 +112,7 @@ public class UnplannedIssueRequestEventHandler createInput.Details.Add(detail); } - + createInput.WarehouseCode = createInput.Details[0].RecommendFromWarehouseCode; return createInput; } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs index dcec7d221..c028587dd 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs @@ -113,7 +113,7 @@ public class UnplannedReceiptRequestEventHandler createInput.Details.Add(detail); } - + createInput.WarehouseCode = createInput.Details[0].RecommendToWarehouseCode; return createInput; } From daeddd8bbc3f334ce20f1d58ec4654b28e8798ea Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Mon, 25 Dec 2023 15:33:22 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=E9=80=80?= =?UTF-8?q?=E6=96=99pda=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/UnplannedReceiptJobAutoMapperProfile.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/UnplannedReceiptJobAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/UnplannedReceiptJobAutoMapperProfile.cs index 0b64b477c..ca4708b9a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/UnplannedReceiptJobAutoMapperProfile.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/UnplannedReceiptJobAutoMapperProfile.cs @@ -14,7 +14,7 @@ public partial class StoreEventAutoMapperProfile : Profile private void UnplannedReceiptJobAutoMapperProfile() { CreateMap() - .ForMember(x => x.JobNumber, y => y.MapFrom(d => d.Number)).Ignore(x => x.Details) + .ForMember(x => x.JobNumber, y => y.MapFrom(d => d.Number)) .ForMember(x => x.Worker, y => y.MapFrom(d => d.CompleteUserName)) .ForMember(x => x.ActiveDate, y => y.MapFrom(d => DateTime.Now)) .Ignore(x => x.Number) From 04b51a04e38d815de2abcfe992e330c469517d5e Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Mon, 25 Dec 2023 16:10:43 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9D=9E=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E9=A2=86=E9=80=80=E6=96=99=E5=AF=BC=E5=85=A5=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lannedIssueRequestForDongyangAppService.cs | 33 +++++++++---------- ...nnedReceiptRequestForDongyangAppService.cs | 7 ++-- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 0ed3c65d4..3cd37ad65 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Volo.Abp; using Volo.Abp.Data; +using Volo.Abp.Users; using Win_in.Sfs.Auth.Application.Contracts; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Shared.Domain; @@ -24,21 +25,19 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA private readonly IDepartmentAppService _departmentApp; private readonly IUnplannedIssueRequestManager _unplannedIssueRequestManager; private readonly IBalanceAppService _balanceAppService; - private readonly IDepartmentAppService _departmentAppService; private readonly ILocationAppService _locationAppService; private readonly ITransactionTypeAclService _transactionTypeAclService; public UnplannedIssueRequestForDongyangAppService(IUnplannedIssueRequestRepository repository, IUnplannedIssueRequestManager unplannedIssueRequestManager, - IDepartmentAppService departmentApp, IBalanceAppService balanceAppService, IDepartmentAppService departmentAppService, ILocationAppService locationAppService, + IDepartmentAppService departmentApp, IBalanceAppService balanceAppService, ILocationAppService locationAppService, ITransactionTypeAclService transactionTypeAclService ) : base(repository, unplannedIssueRequestManager) { _unplannedIssueRequestManager = unplannedIssueRequestManager; _departmentApp = departmentApp; _balanceAppService = balanceAppService; - _departmentAppService = departmentAppService; _locationAppService = locationAppService; _transactionTypeAclService = transactionTypeAclService; } @@ -84,15 +83,12 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA foreach (var unplannedIssueRequest in addList) { - if(unplannedIssueRequest.UnplannedIssueType != EnumUnplannedIssueType.Wip|| unplannedIssueRequest.UnplannedIssueType != EnumUnplannedIssueType.Raw) + if(unplannedIssueRequest.UnplannedIssueType != EnumUnplannedIssueType.Wip&& unplannedIssueRequest.UnplannedIssueType != EnumUnplannedIssueType.Raw) { throw new UserFriendlyException($"【{unplannedIssueRequest.UnplannedIssueType}】领料类型," + $"不是{EnumUnplannedIssueType.Wip.GetDisplayName()}" + $"或{EnumUnplannedIssueType.Raw.GetDisplayName()}】"); } - unplannedIssueRequest.Worker = CurrentUser.GetUserName(); - unplannedIssueRequest.CreatorId = CurrentUser.Id; - await SetRequestAutoPropertiesAsync(unplannedIssueRequest).ConfigureAwait(false); await SetEntityPropertiesAsync(unplannedIssueRequest).ConfigureAwait(false); List newDetails = new List(); @@ -291,19 +287,22 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA /// private async Task SetEntityPropertiesAsync(UnplannedIssueRequest entity) { - //var userName = CurrentUser.GetUserName(); - - //var department = await _departmentAppService.GetByUsernameAsync(userName).ConfigureAwait(false); + var userName = CurrentUser.GetUserName(); + if (userName != null) + { + var department = await _departmentApp.GetByUsernameAsync(userName).ConfigureAwait(false); - //if (department != null) - //{ - // entity.DeptCode = department.Code; - // entity.DeptName = department.Name; - //} + if (department != null) + { + entity.DeptCode = department.Code; + entity.DeptName = department.Name; + } - //entity.Worker = userName; + entity.Worker = userName; + entity.CreatorId = CurrentUser.Id; + } - //entity.BuildDate = DateTime.Now; + entity.BuildDate = DateTime.Now; await SetRequestAutoPropertiesAsync(entity).ConfigureAwait(false); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs index 15acdd862..dfdaa344f 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs @@ -89,15 +89,12 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ foreach (var unplannedReceiptRequest in addList) { - if (unplannedReceiptRequest.UnplannedReceiptType != EnumUnplannedReceiptType.Wip || unplannedReceiptRequest.UnplannedReceiptType != EnumUnplannedReceiptType.Raw) + if (unplannedReceiptRequest.UnplannedReceiptType != EnumUnplannedReceiptType.Wip && unplannedReceiptRequest.UnplannedReceiptType != EnumUnplannedReceiptType.Raw) { throw new UserFriendlyException($"【{unplannedReceiptRequest.UnplannedReceiptType}】退料料类型," + $"不是{EnumUnplannedReceiptType.Wip.GetDisplayName()}" + $"或{EnumUnplannedReceiptType.Raw.GetDisplayName()}】"); } - unplannedReceiptRequest.Worker = CurrentUser.GetUserName(); - unplannedReceiptRequest.CreatorId = CurrentUser.Id; - await SetRequestAutoPropertiesAsync(unplannedReceiptRequest).ConfigureAwait(false); await SetEntityPropertiesAsync(unplannedReceiptRequest).ConfigureAwait(false); @@ -251,7 +248,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ entity.DeptCode = department.Code; entity.DeptName = department.Name; } - + entity.CreatorId = CurrentUser.Id; entity.Worker = userName; } From a4dfeed293c89b634c63b146d2f9f335e8533da7 Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Tue, 26 Dec 2023 14:47:30 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=E9=A2=86?= =?UTF-8?q?=E9=80=80=E6=96=99=E5=AF=BC=E5=85=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CurrentUserExtensions.cs | 15 ++++++--------- .../UnplannedIssueRequestForDongyangAppService.cs | 5 +++-- ...nplannedReceiptRequestForDongyangAppService.cs | 5 +++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs index abcbf8563..23f5de017 100644 --- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs +++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Domain/CurrentUserExtensions.cs @@ -6,19 +6,16 @@ public static class CurrentUserExtensions { public static string GetUserName(this ICurrentUser currentUser) { - if (currentUser == null || currentUser.Name == null) //仅调试时用 - { - return "admin"; - } return currentUser.Name; } public static string GetName(this ICurrentUser currentUser) - { - if (currentUser == null || currentUser.Name == null) //仅调试时用 - { - return "admin"; - } + { return currentUser.Name; } + public static string GetUserName_New(this ICurrentUser currentUser) + { + return currentUser.UserName; + } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs index 3cd37ad65..8d459cc10 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs @@ -287,7 +287,8 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA /// private async Task SetEntityPropertiesAsync(UnplannedIssueRequest entity) { - var userName = CurrentUser.GetUserName(); + var userName = CurrentUser.GetUserName_New(); + var name = CurrentUser.GetName(); if (userName != null) { var department = await _departmentApp.GetByUsernameAsync(userName).ConfigureAwait(false); @@ -298,7 +299,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA entity.DeptName = department.Name; } - entity.Worker = userName; + entity.Worker = name; entity.CreatorId = CurrentUser.Id; } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs index dfdaa344f..a553d4dee 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs @@ -238,7 +238,8 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ /// private async Task SetEntityPropertiesAsync(UnplannedReceiptRequest entity) { - var userName = CurrentUser.GetUserName(); + var userName = CurrentUser.GetUserName_New(); + var name = CurrentUser.GetName(); if (userName != null) { var department = await _departmentApp.GetByUsernameAsync(userName).ConfigureAwait(false); @@ -249,7 +250,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ entity.DeptName = department.Name; } entity.CreatorId = CurrentUser.Id; - entity.Worker = userName; + entity.Worker = name; } entity.BuildDate = DateTime.Now; From 14277172c01a64493d9159001eca1818b1f89684 Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Fri, 5 Jan 2024 15:51:27 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E7=BA=BF=E8=BE=B9=E9=80=80=E6=96=99?= =?UTF-8?q?=E7=8A=B6=E6=80=81=3D=20=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nnedReceiptRequestForDongyangAppService.cs | 2 +- .../Bases/ISfsStoreManager.cs | 5 +++++ .../Bases/SfsStoreManagerBase.cs | 19 +++++++++++++++++++ .../UnplannedReceiptRequestEventHandler.cs | 4 ++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs index a553d4dee..31f50bae5 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs @@ -73,7 +73,7 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ { entity.DirectCreateNote = false; //原料先生成任务、再生成记录 } - await _unplannedReceiptRequestManager.CreateAsync(entity).ConfigureAwait(false); + var res = await _unplannedReceiptRequestManager.CreateAsync(entity).ConfigureAwait(false); var dto = ObjectMapper.Map(entity); return dto; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/ISfsStoreManager.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/ISfsStoreManager.cs index 5fe33708f..aecf52f43 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/ISfsStoreManager.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/ISfsStoreManager.cs @@ -17,4 +17,9 @@ where TDetailEntity : SfsDetailEntityBase public Task CreateAsync(TEntity entity); Task> CreateManyAsync(List entities); + + Task InsertOrUpdateAsync(TEntity entity); + + Task UpdateAsync(TEntity entity); + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/SfsStoreManagerBase.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/SfsStoreManagerBase.cs index 69d0a8a46..1ec3e4ba9 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/SfsStoreManagerBase.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/SfsStoreManagerBase.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Volo.Abp; using Volo.Abp.Domain.Entities; +using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Services; using Volo.Abp.EventBus.Distributed; using Volo.Abp.EventBus.Local; @@ -145,4 +146,22 @@ public abstract class SfsStoreManagerBase throw; } } + + public virtual async Task InsertOrUpdateAsync(TEntity entity) + { + var isExist = await Repository.AnyAsync(p => p.Id == entity.Id).ConfigureAwait(false); + if (!isExist) + { + return await Repository.InsertAsync(entity).ConfigureAwait(false); + } + else + { + return await Repository.UpdateAsync(entity).ConfigureAwait(false); + } + } + + public virtual async Task UpdateAsync(TEntity entity) + { + return await Repository.UpdateAsync(entity).ConfigureAwait(false); + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs index 59707e40c..d37846ca6 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs @@ -66,6 +66,10 @@ public class UnplannedReceiptRequestEventHandler { var entity = eventData.Entity; + if (entity.UnplannedReceiptType == Shared.Domain.Shared.Enums.Store.EnumUnplannedReceiptType.Wip) + { + entity.RequestStatus = EnumRequestStatus.Completed; + } if (entity.DirectCreateNote) { var note = await BuildUnplannedReceiptNoteCreateInputAsync(entity).ConfigureAwait(false); From cacabdb3bb337db70b4873ad04d6ed6cd8adb61f Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Fri, 5 Jan 2024 17:01:12 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E7=BA=BF=E8=BE=B9=E9=A2=86=E6=96=99?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Requests/UnplannedIssueRequestEventHandler.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs index f31dce719..df6a7d97e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs @@ -65,6 +65,10 @@ public class UnplannedIssueRequestEventHandler public virtual async Task HandleEventAsync(SfsHandledEntityEventData eventData) { var entity = eventData.Entity; + if (entity.UnplannedIssueType == Shared.Domain.Shared.Enums.Store.EnumUnplannedIssueType.Wip) + { + entity.RequestStatus = EnumRequestStatus.Completed; + } if (entity.DirectCreateNote) { var note = await BuildUnplannedIssueNoteCreateInputAsync(entity).ConfigureAwait(false); From 5d4eb3223f985340e942aff7fd2c75151a5afb4e Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Mon, 8 Jan 2024 16:02:34 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Outgoing/TyrpOutgoingBackgroundWorker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TyrpOutgoingBackgroundWorker.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TyrpOutgoingBackgroundWorker.cs index a13d1ae38..24f0af035 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TyrpOutgoingBackgroundWorker.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Outgoing/TyrpOutgoingBackgroundWorker.cs @@ -34,7 +34,7 @@ public class TyrpOutgoingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase { Logger.LogInformation($"Starting: Handling {Outgoing}"); - if (!_options.Value.IncomingOptions.Active) + if (!_options.Value.OutgoingOptions.Active) { Logger.LogInformation($"{Outgoing} is not active!"); return; From 13aefe58b00c9c1424c0b0ecc2eb3dc1d6aeb7ec Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Mon, 8 Jan 2024 16:03:33 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E5=8A=A0=20OA=E5=8D=95=E6=8D=AE=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/UnplannedIssueJobs/DTOs/UnplannedIssueJobDTO.cs | 7 +++++++ .../Inputs/UnplannedIssueJobEditInput.cs | 7 +++++++ .../UnplannedReceiptJobs/DTOs/UnplannedReceiptJobDTO.cs | 7 +++++++ .../Inputs/UnplannedReceiptJobEditInput.cs | 5 +++++ .../UnplannedIssueNotes/DTOs/UnplannedIssueNoteDTO.cs | 6 ++++++ .../Inputs/UnplannedIssueNoteEditInput.cs | 6 ++++++ .../UnplannedReceiptNotes/DTOs/UnplannedReceiptNoteDTO.cs | 6 ++++++ .../Inputs/UnplannedReceiptNoteEditInput.cs | 5 +++++ .../DTOs/UnplannedIssueRequestDTO.cs | 6 ++++++ .../Inputs/UnplannedIssueRequestEditInput.cs | 7 +++++++ .../DTOs/UnplannedReceiptRequestDTO.cs | 5 +++++ .../Inputs/UnplannedReceiptRequestEditInput.cs | 5 +++++ .../Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs | 5 +++++ .../Jobs/UnplannedReceiptJobs/UnplannedReceiptJob.cs | 6 +++++- .../Notes/UnplannedIssueNotes/UnplannedIssueNote.cs | 6 ++++++ .../Notes/UnplannedReceiptNotes/UnplannedReceiptNote.cs | 5 +++++ .../UnplannedIssueRequests/UnplannedIssueRequest.cs | 6 ++++++ .../UnplannedReceiptRequests/UnplannedReceiptRequest.cs | 5 +++++ 18 files changed, 104 insertions(+), 1 deletion(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/DTOs/UnplannedIssueJobDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/DTOs/UnplannedIssueJobDTO.cs index cdd1ab6d1..5eaedb099 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/DTOs/UnplannedIssueJobDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/DTOs/UnplannedIssueJobDTO.cs @@ -41,4 +41,11 @@ public class UnplannedIssueJobDTO : SfsJobDTOBase [Display(Name = "领料类别", Order = 0)] public EnumUnplannedIssueType UnplannedIssueType { get; set; } + /// + /// OA单据号 + /// + [Display(Name = "OA单据号")] + [StringLength(SfsEfCorePropertyConst.NameLength, ErrorMessage = "{0}最多输入{1}个字符")] + public string OANumber { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/Inputs/UnplannedIssueJobEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/Inputs/UnplannedIssueJobEditInput.cs index bedfcd59d..2c8ae9454 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/Inputs/UnplannedIssueJobEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/Inputs/UnplannedIssueJobEditInput.cs @@ -69,4 +69,11 @@ public class UnplannedIssueJobEditInput : SfsJobCreateUpdateInputBase, ISfsJobCr [Display(Name = "领料类别", Order = 0)] public EnumUnplannedIssueType UnplannedIssueType { get; set; } + /// + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/DTOs/UnplannedReceiptJobDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/DTOs/UnplannedReceiptJobDTO.cs index 90dd1aa68..ae7d5bcd4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/DTOs/UnplannedReceiptJobDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/DTOs/UnplannedReceiptJobDTO.cs @@ -20,4 +20,11 @@ public class UnplannedReceiptJobDTO : SfsJobDTOBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + [StringLength(SfsEfCorePropertyConst.NameLength, ErrorMessage = "{0}最多输入{1}个字符")] + public string OANumber { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/Inputs/UnplannedReceiptJobEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/Inputs/UnplannedReceiptJobEditInput.cs index 84efb5a48..bed75f30f 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/Inputs/UnplannedReceiptJobEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/Inputs/UnplannedReceiptJobEditInput.cs @@ -69,4 +69,9 @@ public class UnplannedReceiptJobEditInput : SfsJobCreateUpdateInputBase, ISfsJob [Display(Name = "退料类别", Order = 0)] public EnumUnplannedReceiptType UnplannedReceiptType { get; set; } + /// + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedIssueNotes/DTOs/UnplannedIssueNoteDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedIssueNotes/DTOs/UnplannedIssueNoteDTO.cs index 2282ed6b8..523a3e3c0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedIssueNotes/DTOs/UnplannedIssueNoteDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedIssueNotes/DTOs/UnplannedIssueNoteDTO.cs @@ -39,5 +39,11 @@ public class UnplannedIssueNoteDTO : SfsStoreDTOBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + [StringLength(SfsEfCorePropertyConst.NameLength, ErrorMessage = "{0}最多输入{1}个字符")] + public string OANumber { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedIssueNotes/Inputs/UnplannedIssueNoteEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedIssueNotes/Inputs/UnplannedIssueNoteEditInput.cs index b07d84487..a30f1c684 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedIssueNotes/Inputs/UnplannedIssueNoteEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedIssueNotes/Inputs/UnplannedIssueNoteEditInput.cs @@ -61,4 +61,10 @@ public class UnplannedIssueNoteEditInput : SfsStoreCreateOrUpdateInputBase [Display(Name = "领料类别", Order = 0)] public EnumUnplannedIssueType UnplannedIssueType { get; set; } + /// + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedReceiptNotes/DTOs/UnplannedReceiptNoteDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedReceiptNotes/DTOs/UnplannedReceiptNoteDTO.cs index 0bcd85dec..89aec1ca7 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedReceiptNotes/DTOs/UnplannedReceiptNoteDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedReceiptNotes/DTOs/UnplannedReceiptNoteDTO.cs @@ -38,4 +38,10 @@ public class UnplannedReceiptNoteDTO : SfsStoreDTOBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + [StringLength(SfsEfCorePropertyConst.NameLength, ErrorMessage = "{0}最多输入{1}个字符")] + public string OANumber { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedReceiptNotes/Inputs/UnplannedReceiptNoteEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedReceiptNotes/Inputs/UnplannedReceiptNoteEditInput.cs index f5d150cba..58f8fb00d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedReceiptNotes/Inputs/UnplannedReceiptNoteEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/UnplannedReceiptNotes/Inputs/UnplannedReceiptNoteEditInput.cs @@ -61,4 +61,9 @@ public class UnplannedReceiptNoteEditInput : SfsStoreCreateOrUpdateInputBase [Display(Name = "退料类别", Order = 0)] public EnumUnplannedReceiptType UnplannedReceiptType { get; set; } + /// + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/DTOs/UnplannedIssueRequestDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/DTOs/UnplannedIssueRequestDTO.cs index 093d7f25f..6abc9919d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/DTOs/UnplannedIssueRequestDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/DTOs/UnplannedIssueRequestDTO.cs @@ -32,4 +32,10 @@ public class UnplannedIssueRequestDTO : SfsStoreRequestDTOBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestEditInput.cs index ece29f4db..b4b108ba5 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/Inputs/UnplannedIssueRequestEditInput.cs @@ -47,4 +47,11 @@ public class UnplannedIssueRequestEditInput : SfsStoreRequestCreateOrUpdateInput public EnumUnplannedIssueType UnplannedIssueType { get; set; } #endregion + + /// + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/DTOs/UnplannedReceiptRequestDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/DTOs/UnplannedReceiptRequestDTO.cs index dff2acbb0..789393fcc 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/DTOs/UnplannedReceiptRequestDTO.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/DTOs/UnplannedReceiptRequestDTO.cs @@ -34,4 +34,9 @@ public class UnplannedReceiptRequestDTO : SfsStoreRequestDTOBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/Inputs/UnplannedReceiptRequestEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/Inputs/UnplannedReceiptRequestEditInput.cs index 40d406bd4..67248ea22 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/Inputs/UnplannedReceiptRequestEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedReceiptRequests/Inputs/UnplannedReceiptRequestEditInput.cs @@ -47,4 +47,9 @@ public class UnplannedReceiptRequestEditInput : SfsStoreRequestCreateOrUpdateInp [Display(Name = "退料类别", Order = 0)] public EnumUnplannedReceiptType UnplannedReceiptType { get; set; } + /// + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs index c02cff434..7090ef78a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs @@ -41,6 +41,11 @@ public class UnplannedIssueJob : SfsJobAggregateRootBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } /// /// 任务明细 diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedReceiptJobs/UnplannedReceiptJob.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedReceiptJobs/UnplannedReceiptJob.cs index f98769499..1f0ca641d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedReceiptJobs/UnplannedReceiptJob.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedReceiptJobs/UnplannedReceiptJob.cs @@ -41,7 +41,11 @@ public class UnplannedReceiptJob : SfsJobAggregateRootBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } /// /// 任务明细 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/UnplannedIssueNotes/UnplannedIssueNote.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/UnplannedIssueNotes/UnplannedIssueNote.cs index 2a1214fa3..f0e663527 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/UnplannedIssueNotes/UnplannedIssueNote.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/UnplannedIssueNotes/UnplannedIssueNote.cs @@ -49,4 +49,10 @@ public class UnplannedIssueNote : SfsStoreAggregateRootBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/UnplannedReceiptNotes/UnplannedReceiptNote.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/UnplannedReceiptNotes/UnplannedReceiptNote.cs index ddabb31c6..d7761e1f3 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/UnplannedReceiptNotes/UnplannedReceiptNote.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/UnplannedReceiptNotes/UnplannedReceiptNote.cs @@ -49,4 +49,9 @@ public class UnplannedReceiptNote : SfsStoreAggregateRootBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs index 5eea5540b..34ff08816 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedIssueRequests/UnplannedIssueRequest.cs @@ -38,4 +38,10 @@ public class UnplannedIssueRequest : SfsStoreRequestAggregateRootBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedReceiptRequests/UnplannedReceiptRequest.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedReceiptRequests/UnplannedReceiptRequest.cs index 5e84c25f0..bf4165e32 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedReceiptRequests/UnplannedReceiptRequest.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Requests/UnplannedReceiptRequests/UnplannedReceiptRequest.cs @@ -38,4 +38,9 @@ public class UnplannedReceiptRequest : SfsStoreRequestAggregateRootBase + /// OA单据号 + /// + [Display(Name = "OA单据号")] + public string OANumber { get; set; } } From 45fe6b2aa5ad3882ef3cc6f8bd5ebe336d87d670 Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Mon, 8 Jan 2024 16:14:12 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E9=9D=9E=E7=94=9F=E4=BA=A7=E9=A2=86?= =?UTF-8?q?=E6=96=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Requests/UnplannedIssueRequestEventHandler.cs | 2 +- .../Requests/UnplannedReceiptRequestEventHandler.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs index df6a7d97e..a4d5dae11 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedIssueRequestEventHandler.cs @@ -65,7 +65,7 @@ public class UnplannedIssueRequestEventHandler public virtual async Task HandleEventAsync(SfsHandledEntityEventData eventData) { var entity = eventData.Entity; - if (entity.UnplannedIssueType == Shared.Domain.Shared.Enums.Store.EnumUnplannedIssueType.Wip) + if (entity.UnplannedIssueType == Shared.Domain.Shared.Enums.Store.EnumUnplannedIssueType.Wip&&!string.IsNullOrEmpty(entity.OANumber)) { entity.RequestStatus = EnumRequestStatus.Completed; } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs index d37846ca6..87ef2324a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/UnplannedReceiptRequestEventHandler.cs @@ -66,7 +66,7 @@ public class UnplannedReceiptRequestEventHandler { var entity = eventData.Entity; - if (entity.UnplannedReceiptType == Shared.Domain.Shared.Enums.Store.EnumUnplannedReceiptType.Wip) + if (entity.UnplannedReceiptType == Shared.Domain.Shared.Enums.Store.EnumUnplannedReceiptType.Wip&&!string.IsNullOrEmpty(entity.OANumber)) { entity.RequestStatus = EnumRequestStatus.Completed; } From 9c6d7882796e3fc11ce98c3ddacce7eae9ba351b Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Wed, 10 Jan 2024 10:29:53 +0800 Subject: [PATCH 20/20] =?UTF-8?q?mes=E7=BC=B4=E5=BA=93=E6=B1=87=E6=80=BB?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Incoming/MesOutConverter.cs | 88 ++++++++++--------- .../appsettings.json | 14 +-- 2 files changed, 55 insertions(+), 47 deletions(-) diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesOutConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesOutConverter.cs index 0910e4add..c02ec3312 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesOutConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesOutConverter.cs @@ -85,53 +85,61 @@ public class MesOutConverter : IIncomingConverter { var productReceiptNote = JsonSerializer.Deserialize(incomingFromExternal.DestinationDataContent); var wmsProductReceiptNoteDetail = _objectMapper.Map(productReceiptNote.Detail); - wmsProductReceiptNoteDetail.Lot = ""; //排序批次 - wmsProductReceiptNoteDetail.PackingCode = "";//箱标签 - wmsProductReceiptNoteDetail.Status = EnumInventoryStatus.OK; - wmsProductReceiptNoteDetail.WarehouseCode = "T8"; - wmsProductReceiptNoteDetail.LocationArea = ""; - wmsProductReceiptNoteDetail.LocationGroup = ""; - var loc = await _locationAppService.GetListByTypesAndErpCodeAsync(types, wmsProductReceiptNoteDetail.LocationErpCode, wmsProductReceiptNoteDetail.LocationErpCode).ConfigureAwait(false); - if (loc != null) + var oldNoteDetail= wmsProductReceiptNote.Details.FirstOrDefault(r => r.ItemCode == wmsProductReceiptNoteDetail.ItemCode && r.LocationErpCode == wmsProductReceiptNoteDetail.LocationErpCode); + if (oldNoteDetail != null) { - wmsProductReceiptNoteDetail.LocationCode = loc[0].Code; - wmsProductReceiptNoteDetail.LocationArea = loc[0].AreaCode; - wmsProductReceiptNoteDetail.LocationGroup = loc[0].LocationGroupCode; - wmsProductReceiptNoteDetail.LocationErpCode = loc[0].ErpLocationCode; + oldNoteDetail.Qty = oldNoteDetail.Qty+wmsProductReceiptNoteDetail.Qty; + } + else + { + wmsProductReceiptNoteDetail.Lot = ""; //排序批次 + wmsProductReceiptNoteDetail.PackingCode = "";//箱标签 + wmsProductReceiptNoteDetail.Status = EnumInventoryStatus.OK; + wmsProductReceiptNoteDetail.WarehouseCode = "T8"; + wmsProductReceiptNoteDetail.LocationArea = ""; + wmsProductReceiptNoteDetail.LocationGroup = ""; + var loc = await _locationAppService.GetListByTypesAndErpCodeAsync(types, wmsProductReceiptNoteDetail.LocationErpCode, wmsProductReceiptNoteDetail.LocationErpCode).ConfigureAwait(false); + if (loc != null) + { + wmsProductReceiptNoteDetail.LocationCode = loc[0].Code; + wmsProductReceiptNoteDetail.LocationArea = loc[0].AreaCode; + wmsProductReceiptNoteDetail.LocationGroup = loc[0].LocationGroupCode; + wmsProductReceiptNoteDetail.LocationErpCode = loc[0].ErpLocationCode; - wmsProductReceiptNoteDetail.HandledToLocationCode = loc[0].Code; - wmsProductReceiptNoteDetail.HandledToLocationArea = loc[0].AreaCode; - wmsProductReceiptNoteDetail.HandledToLocationGroup = loc[0].LocationGroupCode; - wmsProductReceiptNoteDetail.HandledToLocationErpCode = loc[0].ErpLocationCode; + wmsProductReceiptNoteDetail.HandledToLocationCode = loc[0].Code; + wmsProductReceiptNoteDetail.HandledToLocationArea = loc[0].AreaCode; + wmsProductReceiptNoteDetail.HandledToLocationGroup = loc[0].LocationGroupCode; + wmsProductReceiptNoteDetail.HandledToLocationErpCode = loc[0].ErpLocationCode; - wmsProductReceiptNoteDetail.RecommendToLocationCode = loc[0].Code; - wmsProductReceiptNoteDetail.RecommendToLocationArea = loc[0].AreaCode; - wmsProductReceiptNoteDetail.RecommendToLocationGroup = loc[0].LocationGroupCode; - wmsProductReceiptNoteDetail.RecommendToLocationErpCode = loc[0].ErpLocationCode; - } + wmsProductReceiptNoteDetail.RecommendToLocationCode = loc[0].Code; + wmsProductReceiptNoteDetail.RecommendToLocationArea = loc[0].AreaCode; + wmsProductReceiptNoteDetail.RecommendToLocationGroup = loc[0].LocationGroupCode; + wmsProductReceiptNoteDetail.RecommendToLocationErpCode = loc[0].ErpLocationCode; + } - var item = await _itemBasicAppService.GetByCodeAsync(wmsProductReceiptNoteDetail.ItemCode).ConfigureAwait(false); - if (item != null) - { - wmsProductReceiptNoteDetail.ItemName = !string.IsNullOrEmpty(item.Name) ? item.Name : ""; - wmsProductReceiptNoteDetail.ItemDesc1 = !string.IsNullOrEmpty(item.Desc1) ? item.Desc1 : ""; - wmsProductReceiptNoteDetail.ItemDesc2 = !string.IsNullOrEmpty(item.Desc2) ? item.Desc2 : ""; - wmsProductReceiptNoteDetail.Uom = !string.IsNullOrEmpty(item.BasicUom) ? item.BasicUom : ""; + var item = await _itemBasicAppService.GetByCodeAsync(wmsProductReceiptNoteDetail.ItemCode).ConfigureAwait(false); + if (item != null) + { + wmsProductReceiptNoteDetail.ItemName = !string.IsNullOrEmpty(item.Name) ? item.Name : ""; + wmsProductReceiptNoteDetail.ItemDesc1 = !string.IsNullOrEmpty(item.Desc1) ? item.Desc1 : ""; + wmsProductReceiptNoteDetail.ItemDesc2 = !string.IsNullOrEmpty(item.Desc2) ? item.Desc2 : ""; + wmsProductReceiptNoteDetail.Uom = !string.IsNullOrEmpty(item.BasicUom) ? item.BasicUom : ""; - wmsProductReceiptNoteDetail.ProduceDate = incomingFromExternal.EffectiveDate; - wmsProductReceiptNoteDetail.ArriveDate = incomingFromExternal.EffectiveDate; - wmsProductReceiptNoteDetail.ExpireDate = wmsProductReceiptNoteDetail.ProduceDate.AddDays(item.GetValidateDays()); + wmsProductReceiptNoteDetail.ProduceDate = incomingFromExternal.EffectiveDate; + wmsProductReceiptNoteDetail.ArriveDate = incomingFromExternal.EffectiveDate; + wmsProductReceiptNoteDetail.ExpireDate = wmsProductReceiptNoteDetail.ProduceDate.AddDays(item.GetValidateDays()); + } + else + { + //todo 这里不应该做完工 没有零件 + wmsProductReceiptNoteDetail.ItemName = ""; + wmsProductReceiptNoteDetail.ItemDesc1 = ""; + wmsProductReceiptNoteDetail.ItemDesc2 = ""; + wmsProductReceiptNoteDetail.Uom = ""; + } + wmsProductReceiptNote.Details.Add(wmsProductReceiptNoteDetail); } - else - { - //todo 这里不应该做完工 没有零件 - wmsProductReceiptNoteDetail.ItemName = ""; - wmsProductReceiptNoteDetail.ItemDesc1 = ""; - wmsProductReceiptNoteDetail.ItemDesc2 = ""; - wmsProductReceiptNoteDetail.Uom = ""; - } - wmsProductReceiptNote.Details.Add(wmsProductReceiptNoteDetail); } incomingToWms.DataContent = JsonSerializer.Serialize(wmsProductReceiptNote); incomingToWmsList.Add(incomingToWms); diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json index 1ca608d0e..865028c94 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json @@ -1,12 +1,12 @@ { "ConnectionStrings": { - "Default": "Server=10.164.0.226,51433;Database=Wms_Dy_AnHui;uid=sa;pwd=Microsoft2008;TrustServerCertificate=True", - "DataExchange": "Server=10.164.0.226,51433;Database=Wms_DataExchange_Main_Dy_AnHui;uid=sa;pwd=Microsoft2008;TrustServerCertificate=True", - "MES": "Server=10.164.0.232,1818;Database=MES_AH;uid=AhMesUser;pwd=Faty@Mes_20230312#AH;TrustServerCertificate=True" + "Default": "Server=10.164.113.32,1818\\SHDB;Database=Wms_Dy_ShangHai;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True", + "DataExchange": "Server=10.164.113.32,1818\\SHDB;Database=Wms_DataExchange_Main_Dy_ShangHai;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True", + "MES": "Server=10.164.113.32,1818\\SHDB;Database=MES_SH;uid=ShWmsUser;pwd=Faty@Wms_20230413#SH;TrustServerCertificate=True" }, "AuthServer": { - "Authority": "http://10.164.0.227:60083/", + "Authority": "http://10.164.113.31:60083/", "RequireHttpsMetadata": "false", "SwaggerClientId": "admin", "SwaggerClientSecret": "1q2w3E*", @@ -24,13 +24,13 @@ "RemoteServices": { "BaseData": { - "BaseUrl": "http://10.164.0.227:60084/" + "BaseUrl": "http://10.164.113.31:60084/" }, "Store": { - "BaseUrl": "http://10.164.0.227:60085/" + "BaseUrl": "http://10.164.113.31:60085/" }, "Label": { - "BaseUrl": "http://10.164.0.227:60082/" + "BaseUrl": "http://10.164.113.31:60082/" } },