From de8fa9c9602c4e905b9f2819bebf460f53bf7409 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周一, 23 12月 2024 09:22:14 +0800 Subject: [PATCH] 人工能重复记录下线记录? --- LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs | 238 +++++++++++++++++++++++++++++++---------------------------- 1 files changed, 126 insertions(+), 112 deletions(-) diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs index 9d27214..3c5ca8b 100644 --- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs @@ -18,6 +18,8 @@ [ApiDescriptionSettings(ApplicationConst.WmsTaskGroupName, Order = 100)] public class WmsOperationTaskService : IDynamicApiController, ITransient { + private static readonly SemaphoreSlim semaphore = new SemaphoreSlim(1, 1); + private readonly SqlSugarRepository<WmsRbLineTask> _rep; private readonly SqlSugarRepository<WmsStockQuan> _wmsStockQuanRep; private readonly SqlSugarRepository<Mes_Package_Gather> _mesPackageGatherRep; @@ -454,128 +456,140 @@ [UnitOfWork] public async Task UnlineForNGPackage(UnlineForNGPackageInput input) { - if (input == null) + await semaphore.WaitAsync(); + try { - throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖"); - } - if (string.IsNullOrEmpty(input.PackageCode)) - { - throw Oops.Oh("鍖呭彿涓嶈兘涓虹┖"); - } - //if (string.IsNullOrEmpty(input.Reason)) - //{ - // throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖"); - //} - string _OperRemark = "姝e父浜哄伐涓嬬嚎"; - UpiFlagEnum upiFlagEnum = UpiFlagEnum.姝e父; - if (input.IsNG) - { - upiFlagEnum = UpiFlagEnum.NG; - _OperRemark = "NG涓嬬嚎"; - } - - var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync(); - if (singlePackage == null) - { - throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�"); - } - - if (singlePackage.UpiStatus == UpiStatusEnum.宸蹭笅绾�) - { - throw Oops.Oh($"鍖呭彿{input.PackageCode}宸茬粡涓嬬嚎"); - } - - singlePackage.UpiFlag = upiFlagEnum; - singlePackage.UpdateTime = DateTime.Now; - singlePackage.UpiStatus = UpiStatusEnum.宸蹭笅绾�; - singlePackage.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙; - - var upiLineQueueList = await _mes_Upi_LineQueueRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync(); - if (upiLineQueueList?.Count > 0) - { - await _mes_Upi_LineQueueRep.DeleteAsync(upiLineQueueList); - } - - var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync(); - if (upiList == null) - { - throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬澘浠舵暟鎹�"); - } - var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value; - - foreach (var item in upiList) - { - item.UpiFlag = UpiFlagEnum.NG; - item.UpdateTime = DateTime.Now; - item.UpiStatus = UpiStatusEnum.宸蹭笅绾�; - item.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙; - - WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess(); - wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>(); - wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - wmsRecordUpi.CreateTime = DateTime.Now; - wmsRecordUpi.CreateUserName = _cretaorName; - wmsRecordUpi.Location = ""; - wmsRecordUpi.OperRemark = _OperRemark; - await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi); - - WmsRecordUpiNg wmsRecordUpiNg = new WmsRecordUpiNg(); - wmsRecordUpiNg = item.Adapt<WmsRecordUpiNg>(); - wmsRecordUpiNg.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - wmsRecordUpiNg.CreateTime = DateTime.Now; - wmsRecordUpiNg.CreateUserName = _cretaorName; - wmsRecordUpiNg.OperRemark = _OperRemark; - await _wmsRecordUpiNgRep.InsertAsync(wmsRecordUpiNg); - - - - //娓呯悊 闃熷垪琛� - var removeUpiList = await _mes_Upi_LineQueueRep.AsQueryable().Where(x => x.Upi == item.UPI).ToListAsync(); - if (removeUpiList?.Count > 0) + if (input == null) { - await _mes_Upi_LineQueueRep.DeleteAsync(removeUpiList); + throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖"); + } + if (string.IsNullOrEmpty(input.PackageCode)) + { + throw Oops.Oh("鍖呭彿涓嶈兘涓虹┖"); + } + //if (string.IsNullOrEmpty(input.Reason)) + //{ + // throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖"); + //} + string _OperRemark = "姝e父浜哄伐涓嬬嚎"; + UpiFlagEnum upiFlagEnum = UpiFlagEnum.姝e父; + if (input.IsNG) + { + upiFlagEnum = UpiFlagEnum.NG; + _OperRemark = "NG涓嬬嚎"; } - var removePackageList = await _mes_Package_LineQueueRep.AsQueryable().Where(x => x.PackageCode == item.PackageCode).ToListAsync(); - if (removePackageList?.Count > 0) + var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync(); + if (singlePackage == null) { - await _mes_Package_LineQueueRep.DeleteAsync(removePackageList); + throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�"); } + if (singlePackage.UpiStatus == UpiStatusEnum.宸蹭笅绾�) + { + throw Oops.Oh($"鍖呭彿{input.PackageCode}宸茬粡涓嬬嚎"); + } + singlePackage.UpiFlag = upiFlagEnum; + singlePackage.UpdateTime = DateTime.Now; + singlePackage.UpiStatus = UpiStatusEnum.宸蹭笅绾�; + singlePackage.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙; + + var upiLineQueueList = await _mes_Upi_LineQueueRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync(); + if (upiLineQueueList?.Count > 0) + { + await _mes_Upi_LineQueueRep.DeleteAsync(upiLineQueueList); + } + + var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync(); + if (upiList == null) + { + throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬澘浠舵暟鎹�"); + } + var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value; + + foreach (var item in upiList) + { + item.UpiFlag = UpiFlagEnum.NG; + item.UpdateTime = DateTime.Now; + item.UpiStatus = UpiStatusEnum.宸蹭笅绾�; + item.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙; + + WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess(); + wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>(); + wmsRecordUpi.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + wmsRecordUpi.CreateTime = DateTime.Now; + wmsRecordUpi.CreateUserName = _cretaorName; + wmsRecordUpi.Location = ""; + wmsRecordUpi.OperRemark = _OperRemark; + await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi); + + WmsRecordUpiNg wmsRecordUpiNg = new WmsRecordUpiNg(); + wmsRecordUpiNg = item.Adapt<WmsRecordUpiNg>(); + wmsRecordUpiNg.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + wmsRecordUpiNg.CreateTime = DateTime.Now; + wmsRecordUpiNg.CreateUserName = _cretaorName; + wmsRecordUpiNg.OperRemark = _OperRemark; + await _wmsRecordUpiNgRep.InsertAsync(wmsRecordUpiNg); + + + + //娓呯悊 闃熷垪琛� + var removeUpiList = await _mes_Upi_LineQueueRep.AsQueryable().Where(x => x.Upi == item.UPI).ToListAsync(); + if (removeUpiList?.Count > 0) + { + await _mes_Upi_LineQueueRep.DeleteAsync(removeUpiList); + } + + var removePackageList = await _mes_Package_LineQueueRep.AsQueryable().Where(x => x.PackageCode == item.PackageCode).ToListAsync(); + if (removePackageList?.Count > 0) + { + await _mes_Package_LineQueueRep.DeleteAsync(removePackageList); + } + + + } + + //涓嬬嚎鏇存柊 璁㈠崟琛ㄦ暟鎹� _mesOrderGatherRep + await UpdateOrderGather(singlePackage, input.IsNG); + + + WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess(); + wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>(); + wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + wmsRecordPackage.Location = ""; + wmsRecordPackage.OperRemark = _OperRemark; + wmsRecordPackage.CreateTime = DateTime.Now; + wmsRecordPackage.CreateUserName = _cretaorName; + await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage); + + + //鏂板涓嬬嚎璁板綍琛� + var all_upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.Info5 == singlePackage.Info5).ToListAsync(); + var all_unlineList = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.Info5 == singlePackage.Info5).ToListAsync(); + Mes_Package_UnLine_Record record = new Mes_Package_UnLine_Record(); + record = singlePackage.Adapt<Mes_Package_UnLine_Record>(); + record.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + record.Location = "浜哄伐"; + record.AllPackageNum = all_upiList.GroupBy(x => x.PackageCode).Count(); + record.CurUnlineIndexPackageNum = all_unlineList.GroupBy(x => x.PackageCode).Count() + 1; + record.CreateTime = DateTime.Now; + record.CreateUserName = _cretaorName; + await _mes_Package_UnLine_RecordRep.InsertAsync(record); + + + await _mesPackageGatherRep.UpdateAsync(singlePackage); + await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList); } + catch (Exception) + { - //涓嬬嚎鏇存柊 璁㈠崟琛ㄦ暟鎹� _mesOrderGatherRep - await UpdateOrderGather(singlePackage, input.IsNG); - - - WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess(); - wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>(); - wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - wmsRecordPackage.Location = ""; - wmsRecordPackage.OperRemark = _OperRemark; - wmsRecordPackage.CreateTime = DateTime.Now; - wmsRecordPackage.CreateUserName = _cretaorName; - await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage); - - - //鏂板涓嬬嚎璁板綍琛� - var all_upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.Info5 == singlePackage.Info5).ToListAsync(); - var all_unlineList = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.Info5 == singlePackage.Info5).ToListAsync(); - Mes_Package_UnLine_Record record = new Mes_Package_UnLine_Record(); - record = singlePackage.Adapt<Mes_Package_UnLine_Record>(); - record.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - record.Location = "浜哄伐"; - record.AllPackageNum = all_upiList.GroupBy(x => x.PackageCode).Count(); - record.CurUnlineIndexPackageNum = all_unlineList.GroupBy(x => x.PackageCode).Count() + 1; - record.CreateTime = DateTime.Now; - record.CreateUserName = _cretaorName; - await _mes_Package_UnLine_RecordRep.InsertAsync(record); - - - await _mesPackageGatherRep.UpdateAsync(singlePackage); - await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList); - + throw; + } + finally + { + semaphore.Release(); + } } /// <summary> -- Gitblit v1.9.3