From c10817e414b9fe9fad8397674208d8bacc1c9a9e Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Mon, 15 Jul 2024 17:29:57 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=9B=98=E7=82=B9=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appsettings.json | 14 +++++++------- .../Incoming/ErpLocationItemConverter.cs | 17 ++++++++--------- .../appsettings.json | 16 ++++++++-------- .../Controllers/Jobs/CountJobController.cs | 4 ++-- .../Jobs/CountJobs/ICountJobAppService.cs | 1 + .../Jobs/CountJobs/CountJobAppService.cs | 9 +++++++++ 6 files changed, 35 insertions(+), 26 deletions(-) diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/appsettings.json b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/appsettings.json index f369aa71f..889b25a6a 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/appsettings.json +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/appsettings.json @@ -1,12 +1,12 @@ { "ConnectionStrings": { - "Default": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false", - "DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false", - "EOS": "Server=10.164.0.224;Database=EOSNEV;Uid=wms;Pwd=1;TrustServerCertificate=True" + "Default": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false", + "DataExchange": "Server=10.164.233.6;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false", + "EOS": "Server=61.139.155.47;Database=EOSNEV;Uid=wms;Pwd=1;TrustServerCertificate=True" }, "AuthServer": { - "Authority": "http://dev.ccwin-in.com:60083/", + "Authority": "http://10.164.233.5:60083/", "RequireHttpsMetadata": "false", "SwaggerClientId": "admin", "SwaggerClientSecret": "1q2w3E*", @@ -25,13 +25,13 @@ "RemoteServices": { "BaseData": { - "BaseUrl": "http://dev.ccwin-in.com:60084/" + "BaseUrl": "http://10.164.233.5:60084/" }, "Store": { - "BaseUrl": "http://dev.ccwin-in.com:60085/" + "BaseUrl": "http://localhost:59095/" }, "Label": { - "BaseUrl": "http://dev.ccwin-in.com:60082/" + "BaseUrl": "http://10.164.233.5:60082/" } }, "EosOptions": { diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/ErpLocationItemConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/ErpLocationItemConverter.cs index 429314c9e..d58f7e3f8 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/ErpLocationItemConverter.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/ErpLocationItemConverter.cs @@ -53,20 +53,19 @@ public class ErpLocationItemConverter : IIncomingConverter { await Task.CompletedTask.ConfigureAwait(false); var incomingToWmsList = new List(); - var groups = incomingDataList.GroupBy(p => p.SourceDataGroupCode); - foreach (var group in groups) + // var groups = incomingDataList.GroupBy(p => p.SourceDataGroupCode); + foreach (var detail in incomingDataList) { - var first = group.First(); var incomingToWms = new IncomingToWms() { - DataType = first.DataType, - DataAction = first.DataAction, - SourceSystem = first.SourceSystem, - DataIdentityCode = first.SourceDataGroupCode, + DataType = detail.DataType, + DataAction = detail.DataAction, + SourceSystem = detail.SourceSystem, + DataIdentityCode = detail.SourceDataGroupCode, }; incomingToWms.SetId(_guidGenerator.Create()); - incomingToWms.SetEffectiveDate(first.EffectiveDate); - var exchangeErpLocationItem = JsonSerializer.Deserialize(first.DestinationDataContent); + incomingToWms.SetEffectiveDate(detail.EffectiveDate); + var exchangeErpLocationItem = JsonSerializer.Deserialize(detail.DestinationDataContent); var wmsErpLocationItem = _objectMapper.Map(exchangeErpLocationItem); incomingToWms.DataContent = JsonSerializer.Serialize(wmsErpLocationItem); incomingToWmsList.Add(incomingToWms); diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json index 0f8bdf492..f9f2a9391 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json @@ -1,13 +1,13 @@ { "ConnectionStrings": { - "Default": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True", - "DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True" + "Default": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True", + "DataExchange": "Server=10.164.233.6;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True" }, "AuthServer": { - "Authority": "http://dev.ccwin-in.com:60083/", + "Authority": "http://10.164.233.5:60083/", "RequireHttpsMetadata": "false", "SwaggerClientId": "admin", "SwaggerClientSecret": "1q2w3E*", @@ -26,16 +26,16 @@ "RemoteServices": { "BaseData": { - "BaseUrl": "http://dev.ccwin-in.com:60084/" + "BaseUrl": "http://10.164.233.5:60084/" }, "Store": { - "BaseUrl": "http://dev.ccwin-in.com:60085/" + "BaseUrl": "http://localhost:59095/" }, "Label": { - "BaseUrl": "http://dev.ccwin-in.com:60082/" + "BaseUrl": "http://10.164.233.5:60082/" }, "Auth": { - "BaseUrl": "http://dev.ccwin-in.com:60083/" + "BaseUrl": "http://10.164.233.5:60083/" } }, "DataExchangeOptions": { @@ -44,7 +44,7 @@ "PeriodSeconds": 10, "RetryTimes": 1, "BatchSize": 100, - "apiUrl": "http://dev.ccwin-in.com:60085/" + "apiUrl": "http://10.164.233.5:60085/" }, "OutgoingOptions": { "Active": false, diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs index f3278d893..1f5d9c0cc 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs @@ -105,10 +105,10 @@ public class CountJobController : AbpController /// /// /// - [HttpGet("by-number/{jobNumber}")] + [HttpGet("by-number")] public virtual async Task> GetByNumberAsync(string jobNumber) { - var jobDto = await _countJobAppService.GetByNumberAsync(jobNumber).ConfigureAwait(false); + var jobDto = await _countJobAppService.GetByNumber2Async(jobNumber).ConfigureAwait(false); if (jobDto == null) { throw new UserFriendlyException($"未找到编号为 {jobNumber} 的任务"); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/ICountJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/ICountJobAppService.cs index 38a914daa..5d634bc13 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/ICountJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/ICountJobAppService.cs @@ -15,4 +15,5 @@ public interface ICountJobAppService Task CloseByCountPlanAsync(string countPlanNumber); Task> GetCountJobDependentDetailByPlanNumber(string countPlanNumber,int inventoryStage); Task> ResetStatusByNumberAsync(List numbers); + Task GetByNumber2Async(string number); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAppService.cs index 45bb21bff..c7bd91786 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAppService.cs @@ -11,6 +11,7 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; using Volo.Abp; using Volo.Abp.Domain.Repositories; +using Volo.Abp.ObjectMapping; using Volo.Abp.Validation; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Shared.Application.Contracts; @@ -325,6 +326,14 @@ public class CountJobAppService } return entities; } + + [HttpPost("get-by-number-2")] + public async Task GetByNumber2Async(string number) + { + var entity = await _repository.FirstOrDefaultAsync(p => p.Number == number).ConfigureAwait(false); + + return ObjectMapper.Map(entity); + } //[HttpPost("handle-count-job-async")] //public virtual async Task HandleCountJobAsync(Guid guid, CountJobDTO dto) //{ From 64781b3bc981f64488fb9d02c19915c97cf9e17c Mon Sep 17 00:00:00 2001 From: zhouhongjun <565221961@qq.com> Date: Mon, 15 Jul 2024 17:31:53 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=A4=87=E4=BB=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=BC=96=E5=8F=B7=E6=9F=A5=E8=AF=A2=E4=B8=8D=E5=88=B0=EF=BC=8C?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IssueJobs/SparePartIssueJobsController.cs | 15 ++++++++------- .../ISparePartIssueJobAppService.cs | 2 ++ .../SparePartIssueJobAppService.cs | 9 +++++++++ 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/SparePartIssueJobsController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/SparePartIssueJobsController.cs index f9642b25b..6c04f28ce 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/SparePartIssueJobsController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/SparePartIssueJobsController.cs @@ -44,7 +44,7 @@ public class SparePartIssueJobsController : AbpController if (jobStatus == "ALL") { status.Add((int)EnumJobStatus.Open); - status.Add((int)EnumJobStatus.Wait); + //status.Add((int)EnumJobStatus.Wait); status.Add((int)EnumJobStatus.Doing); status.Add((int)EnumJobStatus.Partial); } @@ -162,17 +162,18 @@ public class SparePartIssueJobsController : AbpController [HttpGet("by-number/{jobNumber}")] public virtual async Task> GetByNumberAsync(string jobNumber) { - var jobDto = await _sparePartIssueJobAppService.GetByNumberAsync(jobNumber).ConfigureAwait(false); + //var jobDto = await _sparePartIssueJobAppService.GetByNumberAsync(jobNumber).ConfigureAwait(false); + var jobDto = await _sparePartIssueJobAppService.GetByNumber2Async(jobNumber).ConfigureAwait(false); if (jobDto == null) { throw new UserFriendlyException($"未找到编号为 {jobNumber} 的任务"); } - var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false); - if (!wlgCodes.Contains(jobDto.WorkGroupCode)) - { - return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}"); - } + //var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false); + //if (!wlgCodes.Contains(jobDto.WorkGroupCode)) + //{ + // return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}"); + //} if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.ClaimsUserId != CurrentUser.Id.ToString()) { diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/SparePartIssueJobs/ISparePartIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/SparePartIssueJobs/ISparePartIssueJobAppService.cs index ac7a71a34..0aaefbff3 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/SparePartIssueJobs/ISparePartIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/SparePartIssueJobs/ISparePartIssueJobAppService.cs @@ -24,4 +24,6 @@ public interface ISparePartIssueJobAppService /// /// Task CompleteByRequestNumberAsync(string requestNumber); + + Task GetByNumber2Async(string number); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs index f4962a014..26cedaeac 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs @@ -12,6 +12,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using MyNamespace; using Volo.Abp; +using Volo.Abp.ObjectMapping; using Volo.Abp.Uow; using Volo.Abp.Users; using Win_in.Sfs.Basedata.Application.Contracts; @@ -64,6 +65,14 @@ public class SparePartIssueJobAppService _currentUser = currentUser; } + [HttpPost("get-by-number-2")] + public async Task GetByNumber2Async(string number) + { + var entity = await _repository.FindAsync(p => p.Number == number).ConfigureAwait(false); + + return ObjectMapper.Map(entity); + } + [HttpPost("add-many")] public override async Task> CreateManyAsync(List inputs) { From 2a99905ef376712a429136c9aa858d3745aa008c Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Tue, 16 Jul 2024 10:04:26 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0CloneSplitPackingRec?= =?UTF-8?q?=E6=96=B9=E6=B3=95,=20=E5=88=A0=E9=99=A47=E4=B8=AA=E6=88=90?= =?UTF-8?q?=E5=91=98=EF=BC=8C=20=E6=B7=BB=E5=8A=A0BatchInsertTestAsync?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SplitPackings/Dtos/SplitPackingRecDto.cs | 31 +++--- .../ISplitPackingRecAppService.cs | 3 + .../Inputs/SplitPackingRecEditInput.cs | 35 +++--- .../SplitPackingRecAppService.cs | 11 +- .../Commons/PageHelper.cs | 28 +++++ .../SplitPackings/ISplitPackingRecManager.cs | 2 + .../SplitPackings/SplitPackingRec.cs | 28 +++-- .../SplitPackings/SplitPackingRecManager.cs | 105 ++++++++++++++++-- .../Win_in.Sfs.Basedata.Domain.csproj | 2 +- ...kingRecDbContextModelCreatingExtensions.cs | 4 +- .../InventoryLabelAppService.cs | 30 +++-- .../TransferNotes/TransferNoteAppService.cs | 14 +-- 12 files changed, 211 insertions(+), 82 deletions(-) create mode 100644 be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/PageHelper.cs diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs index ff1e1c503..8a319a567 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs @@ -162,8 +162,6 @@ public class SplitPackingRecDTO : SfsBaseDataDTOBase - - #region InventoryLabel兼容成员 /// @@ -217,22 +215,22 @@ public class SplitPackingRecDTO : SfsBaseDataDTOBase /// /// 托标签号 /// - [Display(Name = "托标签号")] - public string ContainerCode { get; set; } + //[Display(Name = "托标签号")] + //public string ContainerCode { get; set; } #region 三个子实体成员 //-----------------------QualityInfo /// /// 质量级别 /// - [Display(Name = "质量级别")] - public string QLevel { get; set; } + //[Display(Name = "质量级别")] + //public string QLevel { get; set; } /// /// 质检文件 /// - [Display(Name = "质检文件")] - public string QualityFile { get; set; } + //[Display(Name = "质检文件")] + //public string QualityFile { get; set; } //----------------------PurchaseInfo /// @@ -263,28 +261,28 @@ public class SplitPackingRecDTO : SfsBaseDataDTOBase /// /// 生产线 /// - [Display(Name = "生产线")] - public string ProdLine { get; set; } + //[Display(Name = "生产线")] + //public string ProdLine { get; set; } /// /// 班组 /// - [Display(Name = "班组")] - public string Team { get; set; } + //[Display(Name = "班组")] + //public string Team { get; set; } /// /// 班次 /// - [Display(Name = "班次")] - public string Shift { get; set; } + //[Display(Name = "班次")] + //public string Shift { get; set; } #endregion /// /// 规格 /// - [Display(Name = "规格")] - public string Specifications { get; set; } + //[Display(Name = "规格")] + //public string Specifications { get; set; } /// /// 供应商名称 @@ -317,6 +315,5 @@ public class SplitPackingRecDTO : SfsBaseDataDTOBase [Required(ErrorMessage = "{0}是必填项")] public DateTime PlanArriveDate { get; set; } #endregion - } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs index 4ba841877..a9273c5f6 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs @@ -45,4 +45,7 @@ public interface ISplitPackingRecAppService /// Task CheckSplitNum(string fromPackCode, decimal inputQty); + Task BatchInsertTestAsync(List inputs); + + } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs index b12998e90..2b2b079ee 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs @@ -14,8 +14,8 @@ namespace Win_in.Sfs.Basedata.Application.Contracts; public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase //, IHasPurchaseInfoDto - , IHasProductionInfoDto - , IHasQualityInfoDto + //, IHasProductionInfoDto + //, IHasQualityInfoDto { /// /// 操作类型 @@ -170,8 +170,6 @@ public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase public EnumLabelType LabelType { get; set; } - - #region InventoryLabel兼容成员 /// @@ -225,22 +223,22 @@ public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase /// /// 托标签号 /// - [Display(Name = "托标签号")] - public string ContainerCode { get; set; } + //[Display(Name = "托标签号")] + //public string ContainerCode { get; set; } #region 三个子实体成员 //-----------------------QualityInfo /// /// 质量级别 /// - [Display(Name = "质量级别")] - public string QLevel { get; set; } + //[Display(Name = "质量级别")] + //public string QLevel { get; set; } /// /// 质检文件 /// - [Display(Name = "质检文件")] - public string QualityFile { get; set; } + //[Display(Name = "质检文件")] + //public string QualityFile { get; set; } //----------------------PurchaseInfo /// @@ -271,28 +269,28 @@ public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase /// /// 生产线 /// - [Display(Name = "生产线")] - public string ProdLine { get; set; } + //[Display(Name = "生产线")] + //public string ProdLine { get; set; } /// /// 班组 /// - [Display(Name = "班组")] - public string Team { get; set; } + //[Display(Name = "班组")] + //public string Team { get; set; } /// /// 班次 /// - [Display(Name = "班次")] - public string Shift { get; set; } + //[Display(Name = "班次")] + //public string Shift { get; set; } #endregion /// /// 规格 /// - [Display(Name = "规格")] - public string Specifications { get; set; } + //[Display(Name = "规格")] + //public string Specifications { get; set; } /// /// 供应商名称 @@ -325,5 +323,4 @@ public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase [Required(ErrorMessage = "{0}是必填项")] public DateTime PlanArriveDate { get; set; } #endregion - } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs index eb38d5d7c..9202fe372 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs @@ -8,6 +8,7 @@ using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; using System.Linq; using Volo.Abp; +using Volo.Abp.Uow; namespace Win_in.Sfs.Basedata.Application; @@ -149,6 +150,12 @@ public class SplitPackingRecAppService : return overplusQty >= inputQty; } - - + [HttpPost("batch-insert-test")] + [UnitOfWork(IsDisabled =true)] + public async Task BatchInsertTestAsync(List inputs) + { + List lst = ObjectMapper.Map, List>(inputs); + bool ret = await _splitPackingRecManager.BatchInsertTestAsync(lst).ConfigureAwait(false); + return ret; + } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/PageHelper.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/PageHelper.cs new file mode 100644 index 000000000..fb75f54d2 --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/PageHelper.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Win_in.Sfs.Basedata.Commons; +public static class PageHelper +{ + // 计算总页数 + public static int GetTotalPages(int itemCount, int pageSize) + { + return (int)Math.Ceiling((double)itemCount / pageSize); + } + + // 获取特定页的数据 + public static List GetPage(List sourceList, int pageNumber, int pageSize) + { + if (pageNumber < 1 || pageSize < 1) + throw new ArgumentException("页数和每页大小必须大于零"); + + int startIndex = (pageNumber - 1) * pageSize; + int count = Math.Min(pageSize, sourceList.Count - startIndex); + + return sourceList.GetRange(startIndex, count); + } + +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs index 53a68d296..356fe260b 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs @@ -34,4 +34,6 @@ public interface ISplitPackingRecManager : IDomainService /// Task> GetAllByFromPackingCode(string fromPackingCode); + Task BatchInsertTestAsync(List input); + } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRec.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRec.cs index 7d6d6923e..e242354c1 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRec.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRec.cs @@ -148,8 +148,6 @@ public class SplitPackingRec : SfsBaseDataAggregateRootBase public EnumLabelType LabelType { get; set; } - - #region InventoryLabel兼容成员 /// @@ -195,7 +193,7 @@ public class SplitPackingRec : SfsBaseDataAggregateRootBase /// /// 托标签号 /// - public string ContainerCode { get; set; } + //public string ContainerCode { get; set; } /// /// 质量信息 @@ -205,14 +203,14 @@ public class SplitPackingRec : SfsBaseDataAggregateRootBase /// /// 质量等级 /// - [MaxLength(SfsEfCorePropertyConst.CodeLength)] - public string QLevel { get; set; } + //[MaxLength(SfsEfCorePropertyConst.CodeLength)] + //public string QLevel { get; set; } /// /// 质检文件 /// - [MaxLength(SfsEfCorePropertyConst.CodeLength)] - public string QualityFile { get; set; } + //[MaxLength(SfsEfCorePropertyConst.CodeLength)] + //public string QualityFile { get; set; } /// @@ -240,26 +238,26 @@ public class SplitPackingRec : SfsBaseDataAggregateRootBase /// /// 生产线 /// - [MaxLength(SfsEfCorePropertyConst.CodeLength)] - public string ProdLine { get; set; } + //[MaxLength(SfsEfCorePropertyConst.CodeLength)] + //public string ProdLine { get; set; } /// /// 班组 /// - [MaxLength(SfsEfCorePropertyConst.CodeLength)] - public string Team { get; set; } + //[MaxLength(SfsEfCorePropertyConst.CodeLength)] + //public string Team { get; set; } /// /// 班次 /// - [MaxLength(SfsEfCorePropertyConst.CodeLength)] - public string Shift { get; set; } + //[MaxLength(SfsEfCorePropertyConst.CodeLength)] + //public string Shift { get; set; } /// /// 规格 /// - [Display(Name = "规格")] - public string Specifications { get; set; } + //[Display(Name = "规格")] + //public string Specifications { get; set; } /// /// 供应商名称 diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs index e47c930ec..b86ca0360 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs @@ -7,6 +7,7 @@ using Volo.Abp; using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Services; using Volo.Abp.ObjectMapping; +using Win_in.Sfs.Basedata.Commons; using Win_in.Sfs.Basedata.Domain.Shared; namespace Win_in.Sfs.Basedata.Domain; @@ -76,7 +77,8 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager if (hisLst3.ContainsKey(item.ToPackingCode) == false) { //SplitPackingRec newObj = CommonHelper.CloneObj(item); - SplitPackingRec newObj = ExpressionGenericMapper.Trans(item); + //SplitPackingRec newObj = ExpressionGenericMapper.Trans(item); + SplitPackingRec newObj = CloneSplitPackingRec(item); newObj.SetId(GuidGenerator.Create()); newObj.OprType = OprTypeEnum.Other; newObj.FromPackingCode = newObj.ToPackingCode; //克隆赋值 @@ -93,11 +95,12 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager //{ //} //SplitPackingRec newEntity = CommonHelper.CloneObj(item); - SplitPackingRec newEntity = ExpressionGenericMapper.Trans(item); + //SplitPackingRec newEntity = ExpressionGenericMapper.Trans(item); + SplitPackingRec newEntity = CloneSplitPackingRec(item); newEntity.SetId(GuidGenerator.Create()); - // var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false); - operLst.Add(newEntity); + // var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false); + operLst.Add(newEntity); } else @@ -108,19 +111,79 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager } if (item.ToTopPackingCode.IsNullOrEmpty()) { - item.ToTopPackingCode = item.FromPackingCode;// ToPackingCode; + item.ToTopPackingCode = item.FromPackingCode; } //SplitPackingRec newEntity = CommonHelper.CloneObj(item); - SplitPackingRec newEntity = ExpressionGenericMapper.Trans(item); + //SplitPackingRec newEntity = ExpressionGenericMapper.Trans(item); + SplitPackingRec newEntity = CloneSplitPackingRec(item); newEntity.SetId(GuidGenerator.Create()); //var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false); operLst.Add(newEntity); } } //foreach - await _repository.InsertManyAsync(operLst).ConfigureAwait(false); + bool autoSave = false; + await _repository.InsertManyAsync(operLst, autoSave).ConfigureAwait(false); return true; } + private static SplitPackingRec CloneSplitPackingRec(SplitPackingRec input) + { + SplitPackingRec entity = new SplitPackingRec(); + entity.OprType = input.OprType; + entity.FromPackingCode = input.FromPackingCode; + entity.FromTopPackingCode = input.FromTopPackingCode; + entity.FromStdPackQty = input.FromStdPackQty; + entity.FromUom = input.FromUom; + entity.FromQty = input.FromQty; + entity.ToPackingCode = input.ToPackingCode; + entity.ToTopPackingCode = input.ToTopPackingCode; + entity.ToStdPackQty = input.ToStdPackQty; + entity.ToUom = input.ToUom; + entity.ToQty = input.ToQty; + entity.ItemCode = input.ItemCode; + entity.ItemName = input.ItemName; + entity.ItemDesc1 = input.ItemDesc1; + entity.ItemDesc2 = input.ItemDesc2; + entity.FromLot = input.FromLot; + entity.ToLot = input.ToLot; + entity.PurchaseInfo_PoNumber = input.PurchaseInfo_PoNumber; + entity.PurchaseInfo_AsnNumber = input.PurchaseInfo_AsnNumber; + entity.ArrivalNoticNumber = input.ArrivalNoticNumber; + entity.TaskOrderNumber = input.TaskOrderNumber; + entity.ReceiptRecNumber = input.ReceiptRecNumber; + entity.PutOnShelfNumber = input.PutOnShelfNumber; + entity.LabelType = input.LabelType; + entity.CreationTime = input.CreationTime; + entity.CreatorId = input.CreatorId; + entity.LastModificationTime = input.LastModificationTime; + entity.LastModifierId = input.LastModifierId; + entity.Remark = input.Remark; + + entity.ArriveDate = input.ArriveDate; + //entity.ContainerCode = input.ContainerCode; + entity.ExpireDate = input.ExpireDate; + entity.FullBarcodeString = input.FullBarcodeString; + entity.LabelStatus = input.LabelStatus; + entity.LocationErpCode = input.LocationErpCode; + entity.PlanArriveDate = input.PlanArriveDate; + entity.ProduceDate = input.ProduceDate; + //entity.ProdLine = input.ProdLine; + //entity.Shift = input.Shift; + //entity.Team = input.Team; + entity.RpNumber = input.RpNumber; + entity.SupplierCode = input.SupplierCode; + //entity.QLevel = input.QLevel; + //entity.QualityFile = input.QualityFile; + entity.RecommendLocationCode = input.RecommendLocationCode; + //entity.Specifications = input.Specifications; + entity.SupplierBatch = input.SupplierBatch; + entity.SupplierItemCode = input.SupplierItemCode; + entity.SupplierItemName = input.SupplierItemName; + entity.SupplierName = input.SupplierName; + entity.SupplierSimpleName = input.SupplierSimpleName; + return entity; + } + /// /// 取每个目标箱码的最后一条拆箱记录 /// @@ -343,4 +406,32 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager return lst; } + public async Task BatchInsertTestAsync(List input) + { + List operLst = new List(); + var firstObj = input[0]; + int cnt = (int)(firstObj.FromStdPackQty); + for (int i = 1; i <= cnt; i++) + { + var newObj = CloneSplitPackingRec(firstObj); + newObj.SetId(this.GuidGenerator.Create()); + newObj.FromTopPackingCode = newObj.FromPackingCode; + newObj.ToTopPackingCode = newObj.ToPackingCode; + operLst.Add(newObj); + } + + //分页 + int pageSize = 50; + int pageTotal = PageHelper.GetTotalPages(operLst.Count, pageSize); + for (int i = 1; i <= pageTotal; i++) + { + var curPage = PageHelper.GetPage(operLst, i, pageSize); + bool autoSave = false; + await _repository.InsertManyAsync(curPage, autoSave).ConfigureAwait(false); + + } + return true; + } + + } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Win_in.Sfs.Basedata.Domain.csproj b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Win_in.Sfs.Basedata.Domain.csproj index 2011bcbb2..c8805ace5 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Win_in.Sfs.Basedata.Domain.csproj +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Win_in.Sfs.Basedata.Domain.csproj @@ -1,4 +1,4 @@ - + diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs index aa386ee6f..b41c214b0 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs @@ -51,8 +51,8 @@ public static class SplitPackingRecDbContextModelCreatingExtensions b.Property(q => q.SupplierBatch).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.RecommendLocationCode).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.LocationErpCode).HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.ContainerCode).HasMaxLength(SfsPropertyConst.CodeLength); - b.Property(q => q.Specifications).HasMaxLength(SfsPropertyConst.CodeLength); + //b.Property(q => q.ContainerCode).HasMaxLength(SfsPropertyConst.CodeLength); + //b.Property(q => q.Specifications).HasMaxLength(SfsPropertyConst.CodeLength); b.Property(q => q.SupplierName).HasMaxLength(SfsPropertyConst.NameLength); b.Property(q => q.SupplierSimpleName).HasMaxLength(SfsPropertyConst.NameLength); b.Property(q => q.SupplierItemCode).HasMaxLength(SfsPropertyConst.CodeLength); diff --git a/be/Modules/Label/src/Win_in.Sfs.Label.Application/InventoryLabels/InventoryLabelAppService.cs b/be/Modules/Label/src/Win_in.Sfs.Label.Application/InventoryLabels/InventoryLabelAppService.cs index 2da28546f..db2f45689 100644 --- a/be/Modules/Label/src/Win_in.Sfs.Label.Application/InventoryLabels/InventoryLabelAppService.cs +++ b/be/Modules/Label/src/Win_in.Sfs.Label.Application/InventoryLabels/InventoryLabelAppService.cs @@ -12,6 +12,7 @@ using Volo.Abp.Domain.Repositories; using Volo.Abp.ObjectMapping; using Volo.Abp.Uow; using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Basedata.Commons; using Win_in.Sfs.Basedata.Domain.Shared; using Win_in.Sfs.Label.Application.Contracts; using Win_in.Sfs.Label.Domain; @@ -205,17 +206,17 @@ public class InventoryLabelAppService packRec.LabelStatus = (Win_in.Sfs.Basedata.LabelStatus)((int)inputObj.LabelStatus); packRec.RecommendLocationCode = inputObj.RecommendLocationCode; packRec.LocationErpCode = inputObj.LocationErpCode; - packRec.ContainerCode = inputObj.ContainerCode; - packRec.QLevel = inputObj.QLevel;// - packRec.QualityFile = inputObj.QualityFile; + //packRec.ContainerCode = inputObj.ContainerCode; + //packRec.QLevel = inputObj.QLevel;// + //packRec.QualityFile = inputObj.QualityFile; packRec.SupplierCode = inputObj.SupplierCode; //packRec.PoNumber = inputObj.PoNumber; packRec.RpNumber = inputObj.RpNumber; //packRec.AsnNumber = inputObj.AsnNumber; - packRec.ProdLine = inputObj.ProdLine; - packRec.Team = inputObj.Team; - packRec.Shift = inputObj.Shift;// - packRec.Specifications = inputObj.Specifications; + //packRec.ProdLine = inputObj.ProdLine; + //packRec.Team = inputObj.Team; + //packRec.Shift = inputObj.Shift;// + //packRec.Specifications = inputObj.Specifications; packRec.SupplierName = inputObj.SupplierName; packRec.SupplierSimpleName = inputObj.SupplierSimpleName; packRec.SupplierItemCode = inputObj.SupplierItemCode; @@ -224,15 +225,20 @@ public class InventoryLabelAppService #endregion recLst.Add(packRec); } - bool bo = await _splitPackingRecAppService.BatchInsertAsync(recLst).ConfigureAwait(false); - if (bo == false) + int pageSize = 50; + int pageTotal = PageHelper.GetTotalPages(recLst.Count, pageSize); + for (int i = 1; i <= pageTotal; i++) { - throw new UserFriendlyException("调用插入拆箱记录表方法时返回假!"); - } + var curPage = PageHelper.GetPage(recLst, i, pageSize); + bool bo = await _splitPackingRecAppService.BatchInsertAsync(curPage).ConfigureAwait(false); + if (bo == false) + { + throw new UserFriendlyException("调用插入拆箱记录表方法时返回假!"); + } + } } - [HttpPost("generate-and-create")] [UnitOfWork] public virtual async Task GenerateAndCreateAsync(InventoryLabelWithoutCodeCreateInput input) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs index 8c6fd11de..154c3813b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs @@ -486,17 +486,17 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase packRec.LabelStatus = (Win_in.Sfs.Basedata.LabelStatus)((int)inputObj.LabelStatus); packRec.RecommendLocationCode = inputObj.RecommendLocationCode; packRec.LocationErpCode = inputObj.LocationErpCode; - packRec.ContainerCode = inputObj.ContainerCode; - packRec.QLevel = inputObj.QLevel;// - packRec.QualityFile = inputObj.QualityFile; + //packRec.ContainerCode = inputObj.ContainerCode; + //packRec.QLevel = inputObj.QLevel;// + //packRec.QualityFile = inputObj.QualityFile; packRec.SupplierCode = inputObj.SupplierCode; packRec.PurchaseInfo_PoNumber = inputObj.PoNumber; packRec.RpNumber = inputObj.RpNumber; packRec.PurchaseInfo_AsnNumber = inputObj.AsnNumber; - packRec.ProdLine = inputObj.ProdLine; - packRec.Team = inputObj.Team; - packRec.Shift = inputObj.Shift;// - packRec.Specifications = inputObj.Specifications; + //packRec.ProdLine = inputObj.ProdLine; + //packRec.Team = inputObj.Team; + //packRec.Shift = inputObj.Shift;// + //packRec.Specifications = inputObj.Specifications; packRec.SupplierName = inputObj.SupplierName; packRec.SupplierSimpleName = inputObj.SupplierSimpleName; packRec.SupplierItemCode = inputObj.SupplierItemCode; From f5300c527de34f6ad397da8a1d417d5b9ef63d8d Mon Sep 17 00:00:00 2001 From: zhouhongjun <565221961@qq.com> Date: Tue, 16 Jul 2024 13:22:27 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=89=B9=E6=AC=A1=E4=B8=BA=E7=A9=BA=EF=BC=8C=E6=9C=AA=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=88=B0=E8=AE=A2=E5=8D=95=E8=A1=8C=E8=B5=8B=E7=A9=BA?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Stores/PurchaseReturnNoteController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs index fea073acd..c5348bddf 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs @@ -147,7 +147,7 @@ public class PurchaseReturnNoteController : AbpController { var po = await _purchaseOrderAppService.GetListByNumberAndItemCodeAsync(poNumber, createInputDetail.ItemCode).ConfigureAwait(false); Check.NotNull(po, nameof(PurchaseOrderDTO)); - var detail = po.Details.FirstOrDefault(r => r.ItemCode == createInputDetail.ItemCode && r.Lot== createInputDetail.Lot); + var detail = po.Details.FirstOrDefault(r => r.ItemCode == createInputDetail.ItemCode); Check.NotNull(detail, nameof(PurchaseOrderDetailDTO)); createInputDetail.PoLine = detail.PoLine; } From 9c5ea6fb4d1c95b9f7ff109354e44d59de0fba62 Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Tue, 16 Jul 2024 14:30:40 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=80=E8=B4=A6=20?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Balances/BalanceManager.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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 48afaa429..332b5cf70 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 @@ -164,11 +164,16 @@ public class BalanceManager : DomainService, IBalanceManager private async Task CheckErpLocationItemAsync(Transaction transaction) { var erpLocationItem =await _erpLocationItemAclService.GetFirstAsync( transaction.ItemCode, transaction.LocationErpCode).ConfigureAwait(false); - - if (erpLocationItem == null) + + var locationDto=await _locationAclService.GetByCodeAsync(transaction.LocationCode).ConfigureAwait(false); + if (locationDto.Type is not (EnumLocationType.INSP or EnumLocationType.HOLD or EnumLocationType.TRANSPORT)) { - throw new UserFriendlyException($"未找到物品【{transaction.ItemCode}】与ERP储位【{transaction.LocationErpCode}】的开账信息"); - } + if (erpLocationItem == null) + { + throw new UserFriendlyException( + $"未找到物品【{transaction.ItemCode}】与ERP储位【{transaction.LocationErpCode}】的开账信息"); + } + } } /// From b7a9185f87b9a1fce734a71a56087f91511d9758 Mon Sep 17 00:00:00 2001 From: zhouhongjun <565221961@qq.com> Date: Tue, 16 Jul 2024 14:59:29 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E5=AF=BC=E5=85=A5=E5=A2=9E=E5=8A=A0ERP=E7=89=A9?= =?UTF-8?q?=E6=96=99=E5=8F=B7=E5=92=8C=E5=BA=93=E4=BD=8D=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InventoryInitialNoteAppService.cs | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/InventoryInitialNotes/InventoryInitialNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/InventoryInitialNotes/InventoryInitialNoteAppService.cs index 6aaab4364..5eecd553e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/InventoryInitialNotes/InventoryInitialNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/InventoryInitialNotes/InventoryInitialNoteAppService.cs @@ -19,6 +19,7 @@ using Volo.Abp; using Win_in.Sfs.Shared.Application.Contracts; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Wms.Inventory.Domain.Acl.ErpLocationItem; /// /// 库存初始化记录 @@ -32,17 +33,20 @@ public class InventoryInitialNoteAppService : private readonly IInventoryInitialNoteManager _inventoryInitialNoteManager; private readonly IInventoryLabelAppService _inventoryLabelService; private readonly IItemBasicAppService _itemBasicAppService; + private readonly IErpLocationItemAclService _erpLocationItemAclService; public InventoryInitialNoteAppService( IInventoryInitialNoteRepository repository , IInventoryInitialNoteManager inventoryInitialNoteManager , IInventoryLabelAppService inventoryLabelService, + IErpLocationItemAclService erpLocationItemAclService, IItemBasicAppService itemBasicAppService ) : base(repository) { _inventoryInitialNoteManager = inventoryInitialNoteManager; _inventoryLabelService = inventoryLabelService; _itemBasicAppService = itemBasicAppService; + _erpLocationItemAclService= erpLocationItemAclService; } /// /// 数据加工 @@ -88,8 +92,8 @@ public class InventoryInitialNoteAppService : await CheckItemBasicAsync(importInput, validationRresult).ConfigureAwait(false); await CheckLocationAsync(importInput, validationRresult).ConfigureAwait(false); await CheckStatusAsync(importInput, validationRresult).ConfigureAwait(false); - await CheckPackingAsync(importInput, validationRresult).ConfigureAwait(false); - + await CheckPackingAsync(importInput, validationRresult).ConfigureAwait(false); + await CheckErpLocationItemAsync(importInput, validationRresult).ConfigureAwait(false); } private static void CheckItemBasic(ItemBasicDTO itemcBasicDto, string itemCode) @@ -130,6 +134,7 @@ public class InventoryInitialNoteAppService : await CheckLocationAsync(importInput, validationRresult).ConfigureAwait(false); await CheckStatusAsync(importInput, validationRresult).ConfigureAwait(false); await CheckPackingAsync(importInput, validationRresult).ConfigureAwait(false); + } private async Task CheckPackingAsync(InventoryInitialNoteImportInput importInput, List validationRresult) @@ -175,6 +180,23 @@ public class InventoryInitialNoteAppService : } } + /// + /// 校验开账信息 + /// + /// + /// + /// + /// + private async Task CheckErpLocationItemAsync(InventoryInitialNoteImportInput importInput, List validationRresult) + { + var erpLocationItem = await _erpLocationItemAclService.GetFirstAsync(importInput.ItemCode, importInput.LocationErpCode).ConfigureAwait(false); + + if (erpLocationItem == null) + { + validationRresult.Add("ERP料号", $"未找到物品【{importInput.ItemCode}】与ERP储位【{importInput.LocationErpCode}】的开账信息"); + } + } + protected async Task CheckLocationAsync(InventoryInitialNoteImportInput importInput, List validationRresult) { var location = await LocationAclService.GetByCodeAsync(importInput.LocationCode).ConfigureAwait(false);