From e608f1a623b96b2efdbba5998b3faa63d0149f2a Mon Sep 17 00:00:00 2001 From: liuyunfeng Date: Wed, 17 Jul 2024 08:39:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StoreHttpApiHostModule.cs | 7 ++ .../BaseDatas/SplitPackingRecController.cs | 88 +++++++++++++++++++ .../SplitPackingRecAppService.cs | 1 - .../SplitPackings/SplitPackingRecManager.cs | 54 ++++++------ 4 files changed, 124 insertions(+), 26 deletions(-) diff --git a/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/StoreHttpApiHostModule.cs b/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/StoreHttpApiHostModule.cs index 17c5abca4..787bcc4a1 100644 --- a/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/StoreHttpApiHostModule.cs +++ b/be/Hosts/Wms.Host/Win_in.Sfs.Wms.Store.HttpApi.Host/StoreHttpApiHostModule.cs @@ -1,4 +1,6 @@ +using System; using System.IO; +using System.Net.Http; using System.Text.Json.Serialization; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Server.Kestrel.Core; @@ -98,6 +100,11 @@ public class StoreHttpApiHostModule : ModuleBase protected override void ConfigureHttpClientProxies() { + ServiceConfigurationContext.Services.AddHttpClient("Label", (HttpClient client) => + { + client.Timeout = TimeSpan.FromSeconds(180); + }); + ServiceConfigurationContext.Services.AddHttpClientProxies( typeof(BasedataApplicationContractsModule).Assembly, "BaseData" diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/SplitPackingRecController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/SplitPackingRecController.cs index ac4e65b16..7f9d343b1 100644 --- a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/SplitPackingRecController.cs +++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/SplitPackingRecController.cs @@ -1,11 +1,13 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.Json; using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Basedata.Commons; using Win_in.Sfs.Basedata.Domain; namespace Win_in.Sfs.Wms.Pda.Controllers.BaseDatas; @@ -63,4 +65,90 @@ public class SplitPackingRecController : AbpController return await _splitPackingRecApp.GetSamePoNumberListByToPackingCode(toPackingCode).ConfigureAwait(false); } + [HttpPost("batch-insert-test")] + public async Task BatchInsertTestAsync(List inputs, int recordCount) + { + Stopwatch sw = new Stopwatch(); + sw.Start(); + List operLst = new List(); + var firstObj = inputs[0]; + for (int i = 1; i <= recordCount; i++) + { + var newObj = CloneSplitPackingRec(firstObj); + 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 ret = await _splitPackingRecApp.BatchInsertTestAsync(curPage).ConfigureAwait(false); + } + sw.Stop(); + Console.WriteLine($"执行时间 = {sw.ElapsedMilliseconds} ms"); + return true; + } + + private static SplitPackingRecEditInput CloneSplitPackingRec(SplitPackingRecEditInput input) + { + SplitPackingRecEditInput entity = new SplitPackingRecEditInput(); + 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; + } + + + } 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 9202fe372..a280684f7 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 @@ -151,7 +151,6 @@ public class SplitPackingRecAppService : } [HttpPost("batch-insert-test")] - [UnitOfWork(IsDisabled =true)] public async Task BatchInsertTestAsync(List inputs) { List lst = ObjectMapper.Map, List>(inputs); 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 b86ca0360..97fb007fe 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 @@ -76,8 +76,6 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager //拆箱时,如果目标箱不存在,插入目标箱(两个箱码相同) if (hisLst3.ContainsKey(item.ToPackingCode) == false) { - //SplitPackingRec newObj = CommonHelper.CloneObj(item); - //SplitPackingRec newObj = ExpressionGenericMapper.Trans(item); SplitPackingRec newObj = CloneSplitPackingRec(item); newObj.SetId(GuidGenerator.Create()); newObj.OprType = OprTypeEnum.Other; @@ -94,8 +92,6 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager //if (toHis == null) //{ //} - //SplitPackingRec newEntity = CommonHelper.CloneObj(item); - //SplitPackingRec newEntity = ExpressionGenericMapper.Trans(item); SplitPackingRec newEntity = CloneSplitPackingRec(item); newEntity.SetId(GuidGenerator.Create()); @@ -113,8 +109,6 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager { item.ToTopPackingCode = item.FromPackingCode; } - //SplitPackingRec newEntity = CommonHelper.CloneObj(item); - //SplitPackingRec newEntity = ExpressionGenericMapper.Trans(item); SplitPackingRec newEntity = CloneSplitPackingRec(item); newEntity.SetId(GuidGenerator.Create()); //var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false); @@ -408,28 +402,38 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager 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); - } + //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++) + ////分页 + //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); + //} + + foreach(var item in input) { - var curPage = PageHelper.GetPage(operLst, i, pageSize); - bool autoSave = false; - await _repository.InsertManyAsync(curPage, autoSave).ConfigureAwait(false); - + item.SetId(this.GuidGenerator.Create()); + item.FromTopPackingCode = item.FromPackingCode; + item.ToTopPackingCode = item.ToPackingCode; } + + bool autoSave = false; + await _repository.InsertManyAsync(input, autoSave).ConfigureAwait(false); + return true; }