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