From b9e08c054b2d9a8f6d23535774dacd5406dc43ba Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周一, 09 12月 2024 08:55:58 +0800 Subject: [PATCH] 222 --- LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs | 281 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 274 insertions(+), 7 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 f4a625a..db53342 100644 --- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsOperationTask/WmsOperationTaskService.cs @@ -7,6 +7,7 @@ using DocumentFormat.OpenXml.Office.CustomUI; using Microsoft.CodeAnalysis.Operations; using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto; +using Furion.DatabaseAccessor; namespace Admin.NET.Application; /// <summary> @@ -21,12 +22,19 @@ private readonly SqlSugarRepository<SysConfig> _sysConfigRep; private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _mesBatchOrderUpiRep; private readonly SqlSugarRepository<Mes_Order_Gather> _mesOrderGatherRep; + private readonly SqlSugarRepository<WmsRecordUpiProcess> _wmsRecordUpiProcessRep; + private readonly SqlSugarRepository<WmsRecordPackageProcess> _wmsRecordPackageProcessRep; + private readonly SqlSugarRepository<Mes_Upi_LineQueue> _mes_Upi_LineQueueRep; - public WmsOperationTaskService(SqlSugarRepository<WmsRbLineTask> rep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep + public WmsOperationTaskService( + SqlSugarRepository<Mes_Upi_LineQueue> mes_Upi_LineQueueRep, + SqlSugarRepository<WmsRbLineTask> rep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep , SqlSugarRepository<Mes_Package_Gather> mesPackageGatherRep , SqlSugarRepository<SysConfig> sysConfigRep , SqlSugarRepository<Mes_BatchOrderUPI_New> mesBatchOrderUpiRep , SqlSugarRepository<Mes_Order_Gather> mesOrderGatherRep + , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep + , SqlSugarRepository<WmsRecordPackageProcess> wmsRecordPackageProcessRep ) { _sysConfigRep = sysConfigRep; @@ -35,6 +43,9 @@ _wmsStockQuanRep = wmsStockQuanRep; _mesBatchOrderUpiRep = mesBatchOrderUpiRep; _mesOrderGatherRep = mesOrderGatherRep; + _wmsRecordUpiProcessRep = wmsRecordUpiProcessRep; + _wmsRecordPackageProcessRep = wmsRecordPackageProcessRep; + _mes_Upi_LineQueueRep = mes_Upi_LineQueueRep; } @@ -47,6 +58,7 @@ [HttpPost] [ApiDescriptionSettings(Name = "ForceOutbound")] [Description("WmsOperationTask/ForceOutbound")] + [UnitOfWork] public async Task ForceOutbound(ForceOutboundInput input) { if (input == null || input.PackageCodeList?.Count == 0) @@ -67,6 +79,7 @@ foreach (var quan in quanList) { quan.StockStatus = StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�; + quan.StockStatusName = StockStatusEnum.浜哄伐寮哄埗寰呭嚭搴�.ToString(); quan.UpdateTime = DateTime.Now; quan.OperReason = "浜哄伐寮哄埗寰呭嚭搴�"; } @@ -85,6 +98,7 @@ [HttpPost] [ApiDescriptionSettings(Name = "ValdateQiTao")] [Description("WmsOperationTask/ValdateQiTao")] + [UnitOfWork] public async Task<ValidateQiTaoOutput> ValdateQiTao(ValidateQiTaoInput input) { ValidateQiTaoOutput output = new ValidateQiTaoOutput(); @@ -106,10 +120,13 @@ { throw Oops.Oh($"娌℃湁閰嶇疆 鍒ゆ柇榻愬 鍊�"); } - if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value != "鏃�") + if (!string.IsNullOrEmpty(sysConfig.Value) && sysConfig.Value.Trim() != "鏃�") { throw Oops.Oh($"鍒ゆ柇榻愬鍊煎凡缁忓瓨鍦ㄥ�納sysConfig.Value},涓嶅厑璁告搷浣�"); } + + //璁板綍宸ヤ綔鏃堕棿鍜屽伐浣滀汉 + var curUserName = App.User.FindFirst(ClaimConst.RealName)?.Value; var setValue = ""; var _QiTaoReuslt = ""; @@ -118,21 +135,39 @@ if (num > 0) { //涓嶉綈濂� - setValue = $"{input.PackageCode}|涓嶉綈濂�"; + setValue = $"{input.PackageCode}|涓嶉綈濂梶" + curUserName; _QiTaoReuslt = "涓嶉綈濂�"; } else { - setValue = $"{input.PackageCode}|榻愬"; + setValue = $"{input.PackageCode}|榻愬|" + curUserName; _QiTaoReuslt = "榻愬"; } - sysConfig.Value = setValue; await _sysConfigRep.UpdateAsync(sysConfig); + //*/ - //璁板綍宸ヤ綔鏃堕棿鍜屽伐浣滀汉 + + 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) + { + throw Oops.Oh($"娌℃湁閰嶇疆 鍖呰涓嬬嚎鐧婚檰鏃堕棿 鍊�"); + } + sysConfig_wms_unline_time.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + await _sysConfigRep.UpdateAsync(sysConfig_wms_unline_time); + } output = package.Adapt<ValidateQiTaoOutput>(); @@ -149,6 +184,7 @@ [HttpPost] [ApiDescriptionSettings(Name = "ValdateLabel")] [Description("WmsOperationTask/ValdateLabel")] + [UnitOfWork] public async Task<Mes_Package_Gather> ValdateLabel(ValidateLabelInput input) { if (input == null || input.PackageCode == null || input.Upi == null) @@ -171,10 +207,241 @@ { throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�"); } + + WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess(); + wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>(); + wmsRecordPackage.CreateTime = DateTime.Now; + wmsRecordPackage.Location = "BZ29"; + wmsRecordPackage.OperRemark = "鏍稿鏍囩"; + await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage); + + WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess(); + wmsRecordUpi = singleUpi.Adapt<WmsRecordUpiProcess>(); + wmsRecordUpi.CreateTime = DateTime.Now; + wmsRecordUpi.Location = "BZ29"; + wmsRecordUpi.OperRemark = "鏍稿鏍囩"; + await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi); + return singlePackage; } - + /// <summary> + /// NG鍖呬笅绾�-鎵弿鍖呭彿 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "UnlineForNGPackage")] + [Description("WmsOperationTask/UnlineForNGPackage")] + [UnitOfWork] + public async Task UnlineForNGPackage(UnlineForNGPackageInput input) + { + if (input == null) + { + throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖"); + } + if (string.IsNullOrEmpty(input.PackageCode)) + { + throw Oops.Oh("鍖呭彿涓嶈兘涓虹┖"); + } + if (string.IsNullOrEmpty(input.Reason)) + { + throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖"); + } + + var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == input.PackageCode).FirstAsync(); + if (singlePackage == null) + { + throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{input.PackageCode}鐨勬眹鎬绘暟鎹�"); + } + + singlePackage.UpiFlag = UpiFlagEnum.NG; + 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}鐨勬澘浠舵暟鎹�"); + } + 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.CreateTime = DateTime.Now; + wmsRecordUpi.Location = ""; + wmsRecordUpi.OperRemark = "NG涓嬬嚎"; + await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi); + } + + + WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess(); + wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>(); + wmsRecordPackage.Location = ""; + wmsRecordPackage.OperRemark = "NG涓嬬嚎"; + await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage); + + + await _mesPackageGatherRep.UpdateAsync(singlePackage); + await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList); + + } + + /// <summary> + /// 鏍囪NG-鎵弿浠跺彿 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "SetNG")] + [Description("WmsOperationTask/SetNG")] + [UnitOfWork] + public async Task SetNG(SetNGInput input) + { + if (input == null) + { + throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖"); + } + if (string.IsNullOrEmpty(input.Upi)) + { + throw Oops.Oh("閮ㄤ欢鏉$爜涓嶈兘涓虹┖"); + } + //if (string.IsNullOrEmpty(input.Reason)) + //{ + // throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖"); + //} + + var singleUpi = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.UPI == input.Upi).FirstAsync(); + if (singleUpi == null) + { + throw Oops.Oh($"娌℃湁鎵惧埌閮ㄤ欢鏉$爜{input.Upi}鐨勬暟鎹�"); + } + var packageCode = singleUpi.PackageCode; + var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == packageCode).FirstAsync(); + if (singlePackage == null) + { + throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{packageCode}鐨勬眹鎬绘暟鎹�"); + } + + singlePackage.UpiFlag = UpiFlagEnum.NG; + singlePackage.UpdateTime = DateTime.Now; + + + var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == packageCode).ToListAsync(); + if (upiList == null) + { + throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{packageCode}鐨勬澘浠舵暟鎹�"); + } + foreach (var item in upiList) + { + item.UpiFlag = UpiFlagEnum.NG; + item.UpdateTime = DateTime.Now; + + WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess(); + wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>(); + wmsRecordUpi.CreateTime = DateTime.Now; + wmsRecordUpi.Location = ""; + wmsRecordUpi.OperRemark = "鏍囪NG"; + await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi); + } + + + WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess(); + wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>(); + wmsRecordPackage.Location = ""; + wmsRecordPackage.OperRemark = "鏍囪NG"; + await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage); + + + await _mesPackageGatherRep.UpdateAsync(singlePackage); + await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList); + + } + + + /// <summary> + /// 鍙栨秷NG-鎵弿浠跺彿 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "CancelNG")] + [Description("WmsOperationTask/CancelNG")] + [UnitOfWork] + public async Task CancelNG(CancelNGInput input) + { + if (input == null) + { + throw Oops.Oh("鍙傛暟涓嶈兘涓虹┖"); + } + if (string.IsNullOrEmpty(input.Upi)) + { + throw Oops.Oh("閮ㄤ欢鏉$爜涓嶈兘涓虹┖"); + } + //if (string.IsNullOrEmpty(input.Reason)) + //{ + // throw Oops.Oh("鍘熷洜涓嶈兘涓虹┖"); + //} + + var singleUpi = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.UPI == input.Upi).FirstAsync(); + if (singleUpi == null) + { + throw Oops.Oh($"娌℃湁鎵惧埌閮ㄤ欢鏉$爜{input.Upi}鐨勬暟鎹�"); + } + var packageCode = singleUpi.PackageCode; + var singlePackage = await _mesPackageGatherRep.AsQueryable().Where(x => x.PackageCode == packageCode).FirstAsync(); + if (singlePackage == null) + { + throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{packageCode}鐨勬眹鎬绘暟鎹�"); + } + + singlePackage.UpiFlag = UpiFlagEnum.姝e父; + singlePackage.UpdateTime = DateTime.Now; + + + var upiList = await _mesBatchOrderUpiRep.AsQueryable().Where(x => x.PackageCode == packageCode).ToListAsync(); + if (upiList == null) + { + throw Oops.Oh($"娌℃湁鎵惧埌鍖呭彿{packageCode}鐨勬澘浠舵暟鎹�"); + } + foreach (var item in upiList) + { + item.UpiFlag = UpiFlagEnum.姝e父; + item.UpdateTime = DateTime.Now; + + WmsRecordUpiProcess wmsRecordUpi = new WmsRecordUpiProcess(); + wmsRecordUpi = item.Adapt<WmsRecordUpiProcess>(); + wmsRecordUpi.CreateTime = DateTime.Now; + wmsRecordUpi.Location = ""; + wmsRecordUpi.OperRemark = "鍙栨秷NG"; + await _wmsRecordUpiProcessRep.InsertAsync(wmsRecordUpi); + } + + + WmsRecordPackageProcess wmsRecordPackage = new WmsRecordPackageProcess(); + wmsRecordPackage = singlePackage.Adapt<WmsRecordPackageProcess>(); + wmsRecordPackage.Location = ""; + wmsRecordPackage.OperRemark = "鍙栨秷NG"; + await _wmsRecordPackageProcessRep.InsertAsync(wmsRecordPackage); + + + await _mesPackageGatherRep.UpdateAsync(singlePackage); + await _mesBatchOrderUpiRep.UpdateRangeAsync(upiList); + + } + } -- Gitblit v1.9.3