From 164f2cf0a8d85a2ebd2955f8f322d5f6bb4d3857 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 23 12月 2024 09:23:58 +0800
Subject: [PATCH] 22
---
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs | 279 +++++++++++++++++++++++++++++--------------------------
1 files changed, 147 insertions(+), 132 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 3c5ca8b..e8c37cd 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs
@@ -19,6 +19,7 @@
public class WmsOperationTaskService : IDynamicApiController, ITransient
{
private static readonly SemaphoreSlim semaphore = new SemaphoreSlim(1, 1);
+ private static readonly SemaphoreSlim semaphore2 = new SemaphoreSlim(1, 1);
private readonly SqlSugarRepository<WmsRbLineTask> _rep;
private readonly SqlSugarRepository<WmsStockQuan> _wmsStockQuanRep;
@@ -231,161 +232,175 @@
[UnitOfWork]
public async Task<ValidateQiTaoOutput> ValdateQiTao(ValidateQiTaoInput input)
{
- ValidateQiTaoOutput output = new ValidateQiTaoOutput();
- if (input == null || input.PackageCode == null)
+ await semaphore2.WaitAsync();
+ try
{
- throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
- }
+ ValidateQiTaoOutput output = new ValidateQiTaoOutput();
+ if (input == null || input.PackageCode == null)
+ {
+ throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖");
+ }
- var package = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
- if (package == null)
- {
- throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�");
- }
+ var package = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
+ if (package == null)
+ {
+ throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�");
+ }
- if (package.UpiStatus == UpiStatusEnum.宸蹭笅绾�)
- {
- throw Oops.Oh($"鍖厈input.PackageCode}宸蹭笅绾�");
- }
+ if (package.UpiStatus == UpiStatusEnum.宸蹭笅绾�)
+ {
+ throw Oops.Oh($"鍖厈input.PackageCode}宸蹭笅绾�");
+ }
- var unlineObj = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
- if (unlineObj != null)
- {
- throw Oops.Oh($"鍖呭彿{input.PackageCode}宸茬粡涓嬬嚎");
- }
+ var unlineObj = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
+ if (unlineObj != null)
+ {
+ throw Oops.Oh($"鍖呭彿{input.PackageCode}宸茬粡涓嬬嚎");
+ }
- //鍒ゆ柇鏄惁鏄柊鐢熶骇璁㈠崟
- var _QiTaoReuslt = "";
- bool isNewOrder = false;
- string _location = "BZ-33";
- var lastPackageUnline = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.UpiFlag == UpiFlagEnum.姝e父 && x.Location != "浜哄伐").OrderByDescending(x => x.Id).FirstAsync();
- if (lastPackageUnline == null)
- {//璁や负鏄柊鐢熶骇璁㈠崟
- isNewOrder = true;
- }
- else
- {
- if (lastPackageUnline.Info5 != package.Info5)
+ //鍒ゆ柇鏄惁鏄柊鐢熶骇璁㈠崟
+ var _QiTaoReuslt = "";
+ bool isNewOrder = false;
+ string _location = "BZ-33";
+ var lastPackageUnline = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.UpiFlag == UpiFlagEnum.姝e父 && x.Location != "浜哄伐").OrderByDescending(x => x.Id).FirstAsync();
+ if (lastPackageUnline == null)
{//璁や负鏄柊鐢熶骇璁㈠崟
isNewOrder = true;
- if (lastPackageUnline.Location == "BZ-33")
- {
- _location = "BZ-32";
- }
- else
- {
- _location = "BZ-33";
- }
}
else
{
- _location = lastPackageUnline.Location;
+ if (lastPackageUnline.Info5 != package.Info5)
+ {//璁や负鏄柊鐢熶骇璁㈠崟
+ isNewOrder = true;
+ if (lastPackageUnline.Location == "BZ-33")
+ {
+ _location = "BZ-32";
+ }
+ else
+ {
+ _location = "BZ-33";
+ }
+ }
+ else
+ {
+ _location = lastPackageUnline.Location;
+ }
}
- }
- if (string.IsNullOrEmpty(_location))
- {//榛樿
- _location = "BZ-33";
- }
+ if (string.IsNullOrEmpty(_location))
+ {//榛樿
+ _location = "BZ-33";
+ }
- _QiTaoReuslt = (bool)isNewOrder ? "鏂拌鍗�" : "褰撳墠璁㈠崟";
+ _QiTaoReuslt = (bool)isNewOrder ? "鏂拌鍗�" : "褰撳墠璁㈠崟";
- //璁板綍宸ヤ綔鏃堕棿鍜屽伐浣滀汉
- var curUserName = App.User.FindFirst(ClaimConst.RealName)?.Value;
+ //璁板綍宸ヤ綔鏃堕棿鍜屽伐浣滀汉
+ var curUserName = App.User.FindFirst(ClaimConst.RealName)?.Value;
- var sysConfig_wms_unline_oper = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_oper);
- if (sysConfig_wms_unline_oper == null)
- {
- throw Oops.Oh($"娌℃湁閰嶇疆 鍖呰涓嬬嚎鎿嶄綔浜� 鍊�");
- }
- if (sysConfig_wms_unline_oper.Value != curUserName)
- {
- sysConfig_wms_unline_oper.Value = curUserName;
- await _sysConfigRep.UpdateAsync(sysConfig_wms_unline_oper);
-
- var sysConfig_wms_unline_time = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_time);
- if (sysConfig_wms_unline_time == null)
+ var sysConfig_wms_unline_oper = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_oper);
+ if (sysConfig_wms_unline_oper == null)
{
- throw Oops.Oh($"娌℃湁閰嶇疆 鍖呰涓嬬嚎鐧婚檰鏃堕棿 鍊�");
+ throw Oops.Oh($"娌℃湁閰嶇疆 鍖呰涓嬬嚎鎿嶄綔浜� 鍊�");
}
- sysConfig_wms_unline_time.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- await _sysConfigRep.UpdateAsync(sysConfig_wms_unline_time);
+ if (sysConfig_wms_unline_oper.Value != curUserName)
+ {
+ sysConfig_wms_unline_oper.Value = curUserName;
+ await _sysConfigRep.UpdateAsync(sysConfig_wms_unline_oper);
+
+ var sysConfig_wms_unline_time = await _sysConfigRep.GetFirstAsync(x => x.Code == CommonConst.wms_unline_time);
+ if (sysConfig_wms_unline_time == null)
+ {
+ throw Oops.Oh($"娌℃湁閰嶇疆 鍖呰涓嬬嚎鐧婚檰鏃堕棿 鍊�");
+ }
+ sysConfig_wms_unline_time.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ await _sysConfigRep.UpdateAsync(sysConfig_wms_unline_time);
+ }
+
+
+
+ //璇锋眰PLC
+ //鍒ゆ柇鏂瑰悜
+ bool myLocation = false;
+ if (_location == "BZ-33")
+ {
+ myLocation = false;
+ }
+ else
+ {
+ myLocation = true;
+ }
+ var client = await WCFServiceHelper.GetWCFService_SAPCC_Client(_sysConfigRep);
+ var res = await client.WriteQiTaoInfoAsync(myLocation);
+ if (res.result == false)
+ {
+ throw Oops.Oh(res.resMsg);
+ }
+
+
+ //鏇存柊鏁版嵁
+ package.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
+ package.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙;
+ await _mesPackageGatherRep.UpdateAsync(package);
+
+ var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync();
+ foreach (var item in upiList)
+ {
+ item.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
+ item.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙;
+ item.UpdateTime = DateTime.Now;
+ }
+ await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList);
+ //鍒犻櫎闃熷垪淇℃伅
+ var lineQueue = await _mes_Package_LineQueueRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
+ if (lineQueue != null)
+ {
+ await _mes_Package_LineQueueRep.DeleteAsync(lineQueue);
+ }
+ //澶勭悊琛� mes_order_gather
+ await UpdateOrderGather(package, false);
+
+ var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
+
+ //鏂板涓嬬嚎璁板綍琛�
+ var all_upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.Info5 == package.Info5).ToListAsync();
+ var all_unlineList = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.Info5 == package.Info5).ToListAsync();
+ Mes_Package_UnLine_Record record = new Mes_Package_UnLine_Record();
+ record = package.Adapt<Mes_Package_UnLine_Record>();
+ record.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+ record.Location = _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);
+
+ //璁板綍鍖呭饱鍘�
+ WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
+ wmsRecordPackage = package.Adapt<WmsRecordPackageProcess>();
+ wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
+ wmsRecordPackage.Location = "";
+ wmsRecordPackage.OperRemark = "姝e父涓嬬嚎";
+ wmsRecordPackage.CreateTime = DateTime.Now;
+ wmsRecordPackage.CreateUserName = _cretaorName;
+ await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
+
+
+ output = package.Adapt<ValidateQiTaoOutput>();
+ output.QiTaoReuslt = _QiTaoReuslt + $",绗瑊record.CurUnlineIndexPackageNum}鍖呬笅绾�,鍏眥record.AllPackageNum}鍖�";
+ output.IsNewOrder = isNewOrder;
+ //output.IsNewOrder = false;
+ return output;
}
-
-
-
- //璇锋眰PLC
- //鍒ゆ柇鏂瑰悜
- bool myLocation = false;
- if (_location == "BZ-33")
+ catch (Exception)
{
- myLocation = false;
+
+ throw;
}
- else
+ finally
{
- myLocation = true;
- }
- var client = await WCFServiceHelper.GetWCFService_SAPCC_Client(_sysConfigRep);
- var res = await client.WriteQiTaoInfoAsync(myLocation);
- if (res.result == false)
- {
- throw Oops.Oh(res.resMsg);
+ semaphore2.Release();
}
-
- //鏇存柊鏁版嵁
- package.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
- package.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙;
- await _mesPackageGatherRep.UpdateAsync(package);
-
- var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).ToListAsync();
- foreach (var item in upiList)
- {
- item.UpiStatus = UpiStatusEnum.宸蹭笅绾�;
- item.AreaCode = AreaCodeEnum.涓嬬嚎鍖哄煙;
- item.UpdateTime = DateTime.Now;
- }
- await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList);
- //鍒犻櫎闃熷垪淇℃伅
- var lineQueue = await _mes_Package_LineQueueRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync();
- if (lineQueue != null)
- {
- await _mes_Package_LineQueueRep.DeleteAsync(lineQueue);
- }
- //澶勭悊琛� mes_order_gather
- await UpdateOrderGather(package, false);
-
- var _cretaorName = App.User.FindFirst(ClaimConst.RealName)?.Value;
-
- //鏂板涓嬬嚎璁板綍琛�
- var all_upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.Info5 == package.Info5).ToListAsync();
- var all_unlineList = await _mes_Package_UnLine_RecordRep.AsQueryable().Where(x => x.Info5 == package.Info5).ToListAsync();
- Mes_Package_UnLine_Record record = new Mes_Package_UnLine_Record();
- record = package.Adapt<Mes_Package_UnLine_Record>();
- record.Id = Yitter.IdGenerator.YitIdHelper.NextId();
- record.Location = _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);
-
- //璁板綍鍖呭饱鍘�
- WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess();
- wmsRecordPackage = package.Adapt<WmsRecordPackageProcess>();
- wmsRecordPackage.Id = Yitter.IdGenerator.YitIdHelper.NextId();
- wmsRecordPackage.Location = "";
- wmsRecordPackage.OperRemark = "姝e父涓嬬嚎";
- wmsRecordPackage.CreateTime = DateTime.Now;
- wmsRecordPackage.CreateUserName = _cretaorName;
- await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage);
-
-
- output = package.Adapt<ValidateQiTaoOutput>();
- output.QiTaoReuslt = _QiTaoReuslt + $",绗瑊record.CurUnlineIndexPackageNum}鍖呬笅绾�,鍏眥record.AllPackageNum}鍖�";
- output.IsNewOrder = isNewOrder;
- //output.IsNewOrder = false;
- return output;
}
--
Gitblit v1.9.3