diff --git a/PerMgr/Tnb.PerMgr.Entities/Consts/ModuleConsts.cs b/PerMgr/Tnb.PerMgr.Entities/Consts/ModuleConsts.cs index d2adc2f9..bbe62db9 100644 --- a/PerMgr/Tnb.PerMgr.Entities/Consts/ModuleConsts.cs +++ b/PerMgr/Tnb.PerMgr.Entities/Consts/ModuleConsts.cs @@ -4,125 +4,4 @@ public class ModuleConsts { public const string Tag = "PerMgr"; public const string Area = "per"; - /// - /// 任务操作-PDA异常取消 - /// - public const string MODULE_WMSEXCEPTIONCANCELPDA_ID = "26631250691605"; - /// - /// 任务操作-PDA异常重新执行 - /// - public const string MODULE_WMSEXCPTIONREEXCUTEPDA_ID = "26631184673813"; - /// - /// 任务操作-PDA异常完成 - /// - public const string MODULE_WMSEXCPTIONCOMPLETEPDA_ID = "26497241038869"; - /// - /// 任务操作-PDA投料操作 - /// - public const string MODULE_WMSFEEDINGRECORDPDA_ID = "26496913096981"; - /// - /// 任务操作-PDA绑定操作 - /// - public const string MODULE_WMSBINDINGPDA_ID = "26496560237333"; - /// - /// 任务操作-PDA载具解绑 - /// - public const string MODULE_WMSCARRYUNBINDPDA_ID = "26479624280613"; - /// - /// 任务操作-PDA载具绑定 - /// - public const string MODULE_WMSCARRYBINDPDA_ID = "26479495084837"; - /// - /// 任务操作-PDA载具移出 - /// - public const string MODULE_WMSCARRYMOOUTSTKPDA_ID = "26479437840677"; - /// - /// 任务操作-PDA载具移入 - /// - public const string MODULE_WMSMOVEINSTKPDA_ID = "26476127634469"; - /// - /// 任务操作-PDA载具更换 - /// - public const string MODULE_WMSCARRYREPLACEPDA_ID = "26475867493157"; - /// - /// 任务操作-PDA配送申请 - /// - public const string MODULE_WMSDELIVERYPDA_ID = "26475604135973"; - /// - /// 任务操作-PDA库内转移 - /// - public const string MODULE_WMSTRANSFERPDA_ID = "26475492865317"; - /// - /// 任务操作-PDA寄存捆包 - /// - public const string MODULE_WMSINBALEINPDA_ID = "26475412782629"; - /// - /// 任务操作-PDA寄存入库 - /// - public const string MODULE_WMSINBALEINSTKPDA_ID = "26474954845989"; - /// - /// 任务操作-PDA齐套入库 - /// - public const string MODULE_WMSKITTINGINSTKPDA_ID = "26474190687781"; - /// - /// 任务操作-PDA一般入库 - /// - public const string MODULE_WMSINSTOCKPDA_ID = "26458832529445"; - /// - /// 任务操作-寄存出库 - /// - public const string MODULE_WMSOUTBALE_ID = "26192638001445"; - /// - /// 任务操作-寄存捆包 - /// - public const string MODULE_WMSINBALE_ID = "26192480520485"; - /// - /// 任务操作-出库申请 - /// - public const string MODULE_WMSOUTSTOCK_ID = "26191983650597"; - /// - /// 任务操作-入库申请 - /// - public const string MODULE_WMSINSTOCK_ID = "26191326300453"; - /// - /// 任务操作-载具更换 - /// - public const string MODULE_WMSCARRYREPLACE_ID = "26188532491557"; - /// - /// 任务操作-齐套分拣 - /// - public const string MODULE_WMSSETSORTING_ID = "26172520979237"; - /// - /// 任务操作-齐套出库 - /// - public const string MODULE_WMSKITTINGOUTSTK_ID = "26169701736741"; - /// - /// 任务操作-齐套入库 - /// - public const string MODULE_WMSKITTINGINSTK_ID = "26166785871909"; - /// - /// 任务操作-配送申请 - /// - public const string MODULE_WMSDELIVERY_ID = "26126388337189"; - /// - /// 任务操作-库内转移 - /// - public const string MODULE_WMSTRANSFER_ID = "26125750270757"; - /// - /// 任务操作-载具移出 - /// - public const string MODULE_WMSCARRYMOOUTSTK_ID = "26123262586661"; - /// - /// 任务操作-空载具出库 - /// - public const string MODULE_WMSEPTYOUTSTK_ID = "26122798979365"; - /// - /// 任务操作-载具移入 - /// - public const string MODULE_CARRYMOVEINSTOCK_ID = "26122102481957"; - /// - /// 任务操作-空载具入库 - /// - public const string MODULE_WMSEMPTYINSTOCK_ID = "26120915344165"; - } \ No newline at end of file diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs index f19023ae..82585ecd 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs @@ -94,9 +94,16 @@ public class ModuleConsts /// public const string MODULE_WMSINSTOCK_ID = "26191326300453"; /// + /// 妯″潡鏍囪瘑-杞藉叿瑙g粦 + public const string MODULE_WMSCARRYUNBIND_ID = "26106270092325"; + /// + /// 妯″潡鏍囪瘑-杞藉叿缁戝畾 + /// + public const string MODULE_WMSCARRYBIND_ID = "26105163614501"; + /// /// 妯″潡鏍囪瘑-杞藉叿鏇存崲 /// - public const string MODULE_WMSCARRYREPLACE_ID = "26188532491557"; + public const string MODULE_WMSCARRYREPLACE_ID = "26188532491557";//26188532491557 /// /// 妯″潡鏍囪瘑-榻愬鍒嗘嫞 /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/WareHouseUpInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/WareHouseUpInput.cs index 881ad64b..fa48bda3 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/WareHouseUpInput.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/WareHouseUpInput.cs @@ -28,6 +28,10 @@ namespace Tnb.WarehouseMgr.Entities.Dto /// 浠诲姟鎵ц鏉$爜琛 /// public List distaskCodes { get; set; } + /// + /// 杞藉叿 + /// + public List carryIds { get; set; } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index eaebd2ea..18a994cf 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -433,10 +433,10 @@ namespace Tnb.WarehouseMgr //鏇存柊杞藉叿锛岄攣瀹氱姸鎬佷负鏈攣瀹氾紝鏇存柊杞藉叿鐨勫簱浣嶅綋鍓嶄换鍔$殑鐩爣搴撲綅 if (disTasks?.Count > 0) { - var multiList = disTasks.Select(it => (it.carry_id, it.endlocation_id)).ToList(); + var multiList = disTasks.Select(it => (it.carry_id, it.endlocation_id, it.endlocation_code)).ToList(); for (int i = 0; i < multiList.Count; i++) { - await _db.Updateable().SetColumns(it => new WmsCarryH { is_lock = 0, location_id = multiList[i].endlocation_id }).Where(it => it.id == multiList[i].carry_id).ExecuteCommandAsync(); + await _db.Updateable().SetColumns(it => new WmsCarryH { is_lock = 0, location_id = multiList[i].endlocation_id, location_code = multiList[i].endlocation_code }).Where(it => it.id == multiList[i].carry_id).ExecuteCommandAsync(); } } //鏇存柊搴撲綅淇℃伅锛屼娇鐢ㄧ姸鎬佷负 浣跨敤锛岄攣瀹氱姸鎬佷负鏈攣瀹 @@ -459,7 +459,7 @@ namespace Tnb.WarehouseMgr foreach (var dt in disTasks) { var disTaskCodes = await _db.Queryable().Where(it => it.bill_id == dt.id).ToListAsync(); - var upInput = new WareHouseUpInput { bizTypeId = dt.biz_type, requireId = dt.require_id, distaskCodes = disTaskCodes }; + var upInput = new WareHouseUpInput { bizTypeId = dt.biz_type, requireId = dt.require_id, distaskCodes = disTaskCodes, carryIds = disTasks.Select(x => x.carry_id).ToList() }; upInput.loginType = !_userManager.LoginType.IsNullOrEmpty() ? "app" : "web"; if (dt.is_sign == 1) //鍖哄垎鍑哄叆搴撴搷浣 { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsBindService.cs index abd254eb..abfb50a2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsBindService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsBindService.cs @@ -31,7 +31,6 @@ namespace Tnb.WarehouseMgr private readonly ISqlSugarClient _db; private readonly IUserManager _userManager; private readonly IBillRullService _billRullService; - public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); public WmsBindService(ISqlSugarRepository repository, IUserManager userManager, IBillRullService billRullService) { _db = repository.AsSugarClient(); @@ -52,7 +51,7 @@ namespace Tnb.WarehouseMgr /// /// /// - public async Task WmsBind(VisualDevModelDataCrInput input) + private async Task WmsBind(VisualDevModelDataCrInput input) { var isOk = false; try diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs index b208f687..f853b92c 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs @@ -29,7 +29,7 @@ namespace Tnb.WarehouseMgr /// /// 杞藉叿缁戝畾 /// - [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACE_ID)] + [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYBIND_ID)] public class WmsCarryBindService : BaseWareHouseService { private readonly ISqlSugarClient _db; diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryReplaceService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryReplaceService.cs deleted file mode 100644 index bd3368d2..00000000 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryReplaceService.cs +++ /dev/null @@ -1,175 +0,0 @@ -锘縰sing JNPF.Common.Contracts; -using JNPF.Common.Core.Manager; -using JNPF.Common.Dtos.VisualDev; -using JNPF.Common.Enums; -using JNPF.Common.Security; -using JNPF.DependencyInjection; -using JNPF.DynamicApiController; -using JNPF.FriendlyException; -using JNPF.Logging; -using JNPF.Systems.Interfaces.System; -using JNPF.VisualDev; -using Mapster; -using Microsoft.AspNetCore.Mvc; -using SqlSugar; -using Tnb.Common.Utils; -using Tnb.WarehouseMgr.Entities; -using Tnb.WarehouseMgr.Entities.Consts; -using Tnb.WarehouseMgr.Entities.Dto; -using Tnb.WarehouseMgr.Entities.Enums; -using Tnb.WarehouseMgr.Interfaces; - -namespace Tnb.WarehouseMgr -{ - /// - /// 杞藉叿鏈嶅姟 - /// - [OverideVisualDev(ModuleId)] - public class WmsCarryReplaceService : BaseWareHouseService, IWmsCarryService - { - private const string ModuleId = "26188532491557"; - private readonly ISqlSugarClient _db; - private readonly IUserManager _userManager; - private readonly IBillRullService _billRullService; - public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); - public WmsCarryReplaceService(ISqlSugarRepository repository, IUserManager userManager, IBillRullService billRullService) - { - _db = repository.AsSugarClient(); - _userManager = userManager; - _billRullService = billRullService; - OverideFuncs.CreateAsync = CarryReplace; - } - - /// - /// 鏇存崲杞藉叿 - /// - /// - /// 杈撳叆鍙傛暟: - ///
{ - ///
old_carry_id:鑰佽浇鍏穒d - ///
new_carry_id锛氭柊杞藉叿ID - ///
} - /// - /// - /// - [HttpPost] - public async Task CarryReplace(VisualDevModelDataCrInput input) - { - var isOk = false; - try - { - await _db.Ado.BeginTranAsync(); - var oldCarryId = input.data.ContainsKey("carry_id") ? input.data["carry_id"]?.ToString() : ""; - var newCarryId = input.data.ContainsKey("newcarry_id") ? input.data["newcarry_id"]?.ToString() : ""; - var oldCarry = await _db.Queryable().FirstAsync(it => it.id == oldCarryId); - var newCarry = await _db.Queryable().FirstAsync(it => it.id == newCarryId); - if (oldCarry != null && newCarry != null) - { - ExChangeCarryInput carryInput = new() { old_carry_id = oldCarry.id, new_carry_id = newCarry.id }; - isOk = await _updateSubCarry(carryInput); - isOk = await _updateSubCarry(carryInput); - isOk = await _updateSubCarry(carryInput); - - newCarry.status = oldCarry.status; - newCarry.carry_status = oldCarry.carry_status; - newCarry.location_id = oldCarry.location_id; - newCarry.location_code = oldCarry.location_code; - newCarry.is_lock = oldCarry.is_lock; - newCarry.out_status = oldCarry.out_status; - newCarry.is_check = oldCarry.is_check; - newCarry.bale_num = oldCarry.bale_num; - newCarry.collocation_scheme_id = oldCarry.collocation_scheme_id; - newCarry.collocation_scheme_code = oldCarry.collocation_scheme_code; - newCarry.source_id = oldCarry.source_id; - newCarry.source_code = oldCarry.source_code; - newCarry.create_id = _userManager.UserId; - newCarry.create_time = DateTime.Now; - var row = await _db.Updateable(newCarry).ExecuteCommandAsync(); - WmsCarryReplaceH wmsCarryReplaceH = oldCarry.Adapt(); - wmsCarryReplaceH.id = SnowflakeIdHelper.NextId(); - wmsCarryReplaceH.org_id = oldCarry.org_id; - wmsCarryReplaceH.bill_code = await _billRullService.GetBillNumber(WmsCarryConst.WMS_CARRY_REPLACE_ENCODE); - wmsCarryReplaceH.carry_id = oldCarry.id; - wmsCarryReplaceH.carry_code = oldCarry.carry_code; - wmsCarryReplaceH.newcarry_id = newCarry.id; - wmsCarryReplaceH.newcarry_code = newCarry.carry_code; - row = await _db.Insertable(wmsCarryReplaceH).ExecuteCommandAsync(); - row = await UpdateNullCarry(oldCarry); - isOk = (row > 0); - if (!isOk) throw Oops.Oh(ErrorCode.COM1001); - } - else - { - if (oldCarry == null) - { - throw new AppFriendlyException("娌℃湁鍙敤鐨勬棫杞藉叿", 500); - } - if (newCarry == null) - { - throw new AppFriendlyException("娌℃湁鍙敤鐨勬柊杞藉叿", 500); - } - - } - await _db.Ado.CommitTranAsync(); - } - catch (Exception ex) - { - Log.Error("杞藉叿鏇存崲澶辫触", ex); - await _db.Ado.RollbackTranAsync(); - throw; - } - return isOk; - } - - public async Task UpdateNullCarry(WmsCarryH carryObj) - { - var row = -1; - try - { - carryObj.status = 0; - carryObj.carry_status = "0"; - carryObj.location_id = null; - carryObj.location_code = null; - carryObj.out_status = "0"; - carryObj.is_check = 0; - carryObj.status = 1; - carryObj.bale_num = null; - carryObj.collocation_scheme_id = null; - carryObj.collocation_scheme_code = null; - carryObj.source_id = null; - carryObj.source_code = null; - row = await _db.Updateable(carryObj).ExecuteCommandAsync(); - } - catch (Exception ex) - { - - } - return row; - } - - private async Task _updateSubCarry(ExChangeCarryInput input) where T : BaseEntity, IWmsCarryEntity, new() - { - var row = -1; - var items = await _db.Queryable().Where(it => it.carry_id == input.old_carry_id).ToListAsync(); - if (items?.Count > 0) - { - List newItems = DeepCopyHelper.DeepCopyList(items); - if (newItems?.Count > 0) - { - newItems.ForEach(x => - { - x.id = SnowflakeIdHelper.NextId(); - x.carry_id = input.new_carry_id; - - }); - row = await _db.Insertable(newItems).ExecuteCommandAsync(); - } - if (row > 0) - { - row = await _db.Deleteable(items).ExecuteCommandAsync(); - } - } - return (row > 0); - } - } -} \ No newline at end of file diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs index 7e065bb3..6223716d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs @@ -24,14 +24,12 @@ namespace Tnb.WarehouseMgr /// /// 杞藉叿鏈嶅姟 /// - [OverideVisualDev(ModuleId)] + [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACE_ID)] public class WmsCarryService : BaseWareHouseService, IWmsCarryService { - private const string ModuleId = "26188532491557"; private readonly ISqlSugarClient _db; private readonly IUserManager _userManager; private readonly IBillRullService _billRullService; - public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); public WmsCarryService(ISqlSugarRepository repository, IUserManager userManager, IBillRullService billRullService) { _db = repository.AsSugarClient(); @@ -52,8 +50,7 @@ namespace Tnb.WarehouseMgr /// /// /// - [HttpPost] - public async Task ExchangeCarry(VisualDevModelDataCrInput input) + private async Task ExchangeCarry(VisualDevModelDataCrInput input) { var isOk = false; try diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs index 5ad45372..74bd890b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs @@ -29,7 +29,7 @@ namespace Tnb.WarehouseMgr /// /// 杞藉叿瑙g粦 /// - [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACE_ID)] + [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYUNBIND_ID)] public class WmsCarryUnbindService : BaseWareHouseService { private readonly ISqlSugarClient _db; diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs index eab88ceb..d6beff87 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs @@ -88,12 +88,12 @@ namespace Tnb.WarehouseMgr ePoint = await _db.Queryable().FirstAsync(it => it.location_id == input.data[nameof(WmsPointH.location_id)].ToString()); } int i = 0; - - + + //鏍规嵁姣忎釜杞藉叿鐨勮捣濮嬪簱浣嶅仛璺緞杩愮畻 for (i = 0; i < setQty.qty; i++) { - + if (carrys?.Count > 0) sPoint = await _db.Queryable().FirstAsync(it => it.location_id == carrys[i].location_id); var isOk = false; @@ -133,12 +133,12 @@ namespace Tnb.WarehouseMgr }).ToList(); //鏇存柊椤甸潰 //璧嬪肩鏀剁姸鎬 - if (loc.is_sign == 0) + if (loc.is_sign == 0) { preTasks[^1].is_sign = 0; // 淇敼鏈鍚庝竴涓厓绱犵殑鏄惁绛炬敹鍊 } isOk = await _wareHouseService.GenPreTask(preTasks, null); - + } if (isOk) { @@ -150,12 +150,12 @@ namespace Tnb.WarehouseMgr preTaskUpInput.LocationIds = points.Select(x => x.location_id).ToList(); //鏇存柊鏄庣粏琛 - WmsEmptyOutstockD wmsEmptyOutstockD = new (); + WmsEmptyOutstockD wmsEmptyOutstockD = new(); wmsEmptyOutstockD.id = SnowflakeIdHelper.NextId(); - wmsEmptyOutstockD.bill_id = input.data[nameof(WmsEmptyOutstockH.bill_code)]?.ToString()!; + wmsEmptyOutstockD.bill_id = preTaskUpInput.RquireId; wmsEmptyOutstockD.biz_type = WmsWareHouseConst.BIZTYPE_WMSEPTYOUTSTK_ID; wmsEmptyOutstockD.location_id = ePoint.location_id; - wmsEmptyOutstockD.status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID; + wmsEmptyOutstockD.status = WmsWareHouseConst.BILLSTATUS_ON_ID; wmsEmptyOutstockD.carry_id = carrys[i].id; wmsEmptyOutstockD.carry_code = carrys[i].carry_code; wmsEmptyOutstockD.create_id = _userManager.UserId; @@ -166,11 +166,11 @@ namespace Tnb.WarehouseMgr //鏍规嵁绌鸿浇鍏峰嚭搴揑d锛屽洖鏇村崟鎹姸鎬 await _db.Updateable().SetColumns(it => new WmsEmptyOutstockH { status = WmsWareHouseConst.BILLSTATUS_ON_ID }).Where(it => it.id == preTaskUpInput.RquireId).ExecuteCommandAsync(); await _wareHouseService.GenInStockTaskHandleAfter(preTaskUpInput, - it => new WmsCarryH { is_lock = 1}, + it => new WmsCarryH { is_lock = 1 }, it => new BasLocation { is_lock = 1 }); } } - + } await _db.Ado.CommitTranAsync(); @@ -186,8 +186,28 @@ namespace Tnb.WarehouseMgr public async override Task ModifyAsync(WareHouseUpInput input) { if (input == null) throw new ArgumentNullException(nameof(input)); - var isOk = await _db.Updateable().SetColumns(it => new WmsEmptyInstock { status = input.bizTypeId }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); - if (!isOk) throw Oops.Oh(ErrorCode.COM1001); + try + { + await _db.Ado.BeginTranAsync(); + + //鏍规嵁杞藉叿鏇存柊鏄庣粏琛ㄧ姸鎬 + var isOk = await _db.Updateable().SetColumns(it => new WmsEmptyOutstockD { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.bill_id == input.requireId && input.carryIds.Contains(it.carry_id)).ExecuteCommandHasChangeAsync(); + + var emptyCarrys = await _db.Queryable().Where(it => it.bill_id == input.requireId).ToListAsync(); + // 鍒ゆ柇鎵鏈夋槑缁嗘槸鍚﹂兘瀹屾垚 + if (emptyCarrys?.Count > 0 && emptyCarrys.All(x => x.status == WmsWareHouseConst.BILLSTATUS_COMPLETE_ID)) + { + isOk = await _db.Updateable().SetColumns(it => new WmsEmptyOutstockH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); + } + if (!isOk) throw Oops.Oh(ErrorCode.COM1001); + + await _db.Ado.CommitTranAsync(); + } + catch (Exception) + { + await _db.Ado.RollbackTranAsync(); + throw; + } } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs new file mode 100644 index 00000000..983dbb47 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryBindService.cs @@ -0,0 +1,132 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF.Common.Core.Manager; +using JNPF.Common.Dtos.VisualDev; +using JNPF.Common.Enums; +using JNPF.Common.Extension; +using JNPF.Common.Security; +using JNPF.FriendlyException; +using JNPF.Systems.Interfaces.System; +using JNPF.VisualDev; +using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Interfaces; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using NPOI.SS.Formula; +using SqlSugar; +using Tnb.BasicData.Entities; +using Tnb.WarehouseMgr.Entities; +using Tnb.WarehouseMgr.Entities.Attributes; +using Tnb.WarehouseMgr.Entities.Consts; +using Tnb.WarehouseMgr.Entities.Dto; +using Tnb.WarehouseMgr.Interfaces; + +namespace Tnb.WarehouseMgr +{ + /// + /// 杞藉叿缁戝畾 + /// + [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYBINDPDA_ID)] + public class WmsPDACarryBindService : BaseWareHouseService + { + private readonly ISqlSugarClient _db; + private readonly IRunService _runService; + private readonly IVisualDevService _visualDevService; + private readonly IUserManager _userManager; + private readonly IBillRullService _billRullService; + public WmsPDACarryBindService( + ISqlSugarRepository repository, + IRunService runService, + IVisualDevService visualDevService, + IUserManager userManager, + IBillRullService billRullService) + { + _db = repository.AsSugarClient(); + _runService = runService; + _visualDevService = visualDevService; + _userManager = userManager; + _billRullService = billRullService; + OverideFuncs.CreateAsync = PDACarryBind; + } + + private async Task PDACarryBind(VisualDevModelDataCrInput input) + { + var isOk = false; + try + { + await _db.Ado.BeginTranAsync(); + + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYMOOUTSTK_ID, true); + await _runService.Create(templateEntity, input); + + if (input == null) throw new ArgumentNullException(nameof(input)); + var carryId = input.data.ContainsKey("carry_id") ? input.data["carry_id"]?.ToString() : ""; + var subCarryId = input.data.ContainsKey("newcarry_id") ? input.data["newcarry_id"]?.ToString() : ""; + var carry = await _db.Queryable().SingleAsync(it => it.id == carryId); + var subCarry = await _db.Queryable().SingleAsync(it => it.id == subCarryId); + WmsCarrybindH wmsCarrybindH = carry.Adapt(); + if (carry != null && subCarry != null) + { + wmsCarrybindH.id = SnowflakeIdHelper.NextId(); + wmsCarrybindH.org_id = carry.org_id; + wmsCarrybindH.carry_id = carry.id; + wmsCarrybindH.membercarry_id = subCarry.id; + wmsCarrybindH.membercarry_code = subCarry.carry_code; + wmsCarrybindH.loc = input.data[nameof(WmsCarrybindH.loc)].ParseToInt(1); + wmsCarrybindH.create_id = _userManager.UserId; + wmsCarrybindH.create_time = DateTime.Now; + var row = await _db.Insertable(wmsCarrybindH).ExecuteCommandAsync(); + carry.carry_status = "1"; + row = await _db.Updateable(carry).ExecuteCommandAsync(); + subCarry.carry_status = "1"; + row = await _db.Updateable(subCarry).ExecuteCommandAsync(); + var items = await _db.Queryable().Where(it => it.carry_id == subCarryId).ToListAsync(); + for (int i = 0; i < items.Count; i++) + { + WmsCarrybindCode wmsCarrybindCode = new(); + wmsCarrybindCode.id = SnowflakeIdHelper.NextId(); + wmsCarrybindCode.org_id = subCarry.id; + wmsCarrybindCode.carrybind_id = wmsCarrybindH.id; + wmsCarrybindCode.material_id = items[i].material_id; + wmsCarrybindCode.material_code = items[i].material_code; + wmsCarrybindCode.barcode = items[i].barcode; + wmsCarrybindCode.code_batch = items[i].code_batch; + wmsCarrybindCode.codeqty = items[i].codeqty; + wmsCarrybindCode.membercarry_id = subCarry.id; + wmsCarrybindCode.membercarry_code = subCarry.carry_code; + wmsCarrybindCode.unit_id = items[i].unit_id; + wmsCarrybindCode.unit_code = items[i].unit_code; + wmsCarrybindCode.create_id = _userManager.UserId; + wmsCarrybindCode.create_time = DateTime.Now; + row = await _db.Insertable(wmsCarrybindCode).ExecuteCommandAsync(); + } + isOk = (row > 0); + if (!isOk) throw Oops.Oh(ErrorCode.COM1001); + } + else + { + if (carry == null || subCarry == null) + { + throw new AppFriendlyException("娌℃湁鍙敤鐨勪富杞藉叿", 500); + } + } + await _db.Ado.CommitTranAsync(); + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + throw; + } + return Task.FromResult(true); + } + /* public override async Task ModifyAsync(WareHouseUpInput input) + { + if (input == null) throw new ArgumentNullException(nameof(input)); + var isOk = await _db.Updateable().SetColumns(it => new WmsCarryReplaceH { status = input.bizTypeId }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); + if (!isOk) throw Oops.Oh(ErrorCode.COM1001); + }*/ + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs index 03d4b985..95d4d627 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs @@ -28,7 +28,7 @@ namespace Tnb.WarehouseMgr /// /// 杞藉叿绉诲叆 /// - [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYMOOUTSTK_ID)] + [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYMOOUTSTKPDA_ID)] [ServiceModule(BizTypeId)] public class WmsPDACarryMoveOutStockService : BaseWareHouseService, IPdaStroage { @@ -63,7 +63,7 @@ namespace Tnb.WarehouseMgr { await _db.Ado.BeginTranAsync(); - VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYMOOUTSTK_ID, true); + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYMOOUTSTKPDA_ID, true); await _runService.Create(templateEntity, input); //鍏ュ簱鍙栫粓鐐 //var OutStockStrategyInput = new OutStockStrategyQuery { carry_id = input.data[nameof(OutStockStrategyQuery.carry_id)].ToString(), Size = 1 }; diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryReplaceService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryReplaceService.cs index 1a3c8042..b7ae0e01 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryReplaceService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryReplaceService.cs @@ -28,11 +28,9 @@ namespace Tnb.WarehouseMgr [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACEPDA_ID)] public class WmsPDACarryReplaceService : BaseWareHouseService, IWmsCarryService, IPdaStroage { - //private const string ModuleId = "26188532491557"; private readonly ISqlSugarClient _db; private readonly IUserManager _userManager; private readonly IBillRullService _billRullService; - public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); public WmsPDACarryReplaceService(ISqlSugarRepository repository, IUserManager userManager, IBillRullService billRullService) { _db = repository.AsSugarClient(); @@ -53,8 +51,8 @@ namespace Tnb.WarehouseMgr /// /// /// - [HttpPost] - public async Task PDACarryReplace(VisualDevModelDataCrInput input) + + private async Task PDACarryReplace(VisualDevModelDataCrInput input) { var isOk = false; try diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryUnbindService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryUnbindService .cs new file mode 100644 index 00000000..d1128ff6 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryUnbindService .cs @@ -0,0 +1,108 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using JNPF.Common.Core.Manager; +using JNPF.Common.Dtos.VisualDev; +using JNPF.Common.Enums; +using JNPF.Common.Extension; +using JNPF.Common.Security; +using JNPF.FriendlyException; +using JNPF.Systems.Interfaces.System; +using JNPF.VisualDev; +using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Interfaces; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using NPOI.SS.Formula; +using SqlSugar; +using Tnb.BasicData.Entities; +using Tnb.WarehouseMgr.Entities; +using Tnb.WarehouseMgr.Entities.Attributes; +using Tnb.WarehouseMgr.Entities.Consts; +using Tnb.WarehouseMgr.Entities.Dto; +using Tnb.WarehouseMgr.Interfaces; + +namespace Tnb.WarehouseMgr +{ + /// + /// 杞藉叿瑙g粦 + /// + [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYUNBINDPDA_ID)] + public class WmsPDACarryUnbindService : BaseWareHouseService + { + private readonly ISqlSugarClient _db; + private readonly IRunService _runService; + private readonly IVisualDevService _visualDevService; + private readonly IUserManager _userManager; + private readonly IWareHouseService _wareHouseService; + public WmsPDACarryUnbindService( + ISqlSugarRepository repository, + IRunService runService, + IVisualDevService visualDevService, + IWareHouseService wareHouseService, + IUserManager userManager) + { + _db = repository.AsSugarClient(); + _runService = runService; + _visualDevService = visualDevService; + _userManager = userManager; + _wareHouseService = wareHouseService; + OverideFuncs.CreateAsync = PDACarryUnbind; + } + private async Task PDACarryUnbind(VisualDevModelDataCrInput input) + { + var isOk = false; + try + { + await _db.Ado.BeginTranAsync(); + + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYMOOUTSTK_ID, true); + await _runService.Create(templateEntity, input); + + if (input == null) throw new ArgumentNullException(nameof(input)); + var carryId = input.data.ContainsKey("carry_id") ? input.data["carry_id"]?.ToString() : ""; + var subCarryId = input.data.ContainsKey("newcarry_id") ? input.data["newcarry_id"]?.ToString() : ""; + var carry = await _db.Queryable().FirstAsync(it => it.id == carryId); + var subCarry = await _db.Queryable().FirstAsync(it => it.id == subCarryId); + //WmsCarryunbindH wmsCarryUnbindH = carry.Adapt(); + if (carry != null && subCarry != null) + { + var row = await _db.Deleteable().Where(it => it.carry_id == subCarry.id).ExecuteCommandAsync(); + carry.carry_status = "0"; + row = await _db.Updateable(carry).ExecuteCommandAsync(); + subCarry.carry_status = "0"; + row = await _db.Updateable(subCarry).ExecuteCommandAsync(); + isOk = (row > 0); + if (!isOk) throw Oops.Oh(ErrorCode.COM1001); + } + else + { + if (carry == null) + { + throw new AppFriendlyException("娌℃湁鍙敤鐨勪富杞藉叿", 500); + } + if (subCarry == null) + { + throw new AppFriendlyException("娌℃湁鍙敤鐨勫瓙杞藉叿", 500); + } + } + + await _db.Ado.CommitTranAsync(); + } + catch (Exception ex) + { + await _db.Ado.RollbackTranAsync(); + throw; + } + return Task.FromResult(true); + } + /* public override async Task ModifyAsync(WareHouseUpInput input) + { + if (input == null) throw new ArgumentNullException(nameof(input)); + var isOk = await _db.Updateable().SetColumns(it => new WmsCarryReplaceH { status = input.bizTypeId }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); + if (!isOk) throw Oops.Oh(ErrorCode.COM1001); + }*/ + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs index 45198d3f..1b00f2bf 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs @@ -151,7 +151,7 @@ namespace Tnb.WarehouseMgr //鏇存柊鏄庣粏琛 WmsEmptyOutstockD wmsEmptyOutstockD = new(); wmsEmptyOutstockD.id = SnowflakeIdHelper.NextId(); - wmsEmptyOutstockD.bill_id = input.data[nameof(WmsEmptyOutstockH.bill_code)]?.ToString()!; + wmsEmptyOutstockD.bill_id = preTaskUpInput.RquireId; wmsEmptyOutstockD.biz_type = WmsWareHouseConst.BIZTYPE_WMSEPTYOUTSTK_ID; wmsEmptyOutstockD.location_id = ePoint.location_id; wmsEmptyOutstockD.status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID; @@ -198,9 +198,29 @@ namespace Tnb.WarehouseMgr public override async Task ModifyAsync(WareHouseUpInput input) { + if (input == null) throw new ArgumentNullException(nameof(input)); - var isOk = await _db.Updateable().SetColumns(it => new WmsEmptyInstock { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); - if (!isOk) throw Oops.Oh(ErrorCode.COM1001); + //鏍规嵁杞藉叿鏇存柊鏄庣粏琛ㄧ姸鎬 + try + { + await _db.Ado.BeginTranAsync(); + var isOk = await _db.Updateable().SetColumns(it => new WmsEmptyOutstockD { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.bill_id == input.requireId && input.carryIds.Contains(it.carry_id)).ExecuteCommandHasChangeAsync(); + + var emptyCarrys = await _db.Queryable().Where(it => it.bill_id == input.requireId).ToListAsync(); + // 鍒ゆ柇鎵鏈夋槑缁嗘槸鍚﹂兘瀹屾垚 + if (emptyCarrys?.Count > 0 && emptyCarrys.All(x => x.status == WmsWareHouseConst.BILLSTATUS_COMPLETE_ID)) + { + await _db.Updateable().SetColumns(it => new WmsEmptyOutstockH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); + } + if (!isOk) throw Oops.Oh(ErrorCode.COM1001); + await _db.Ado.CommitTranAsync(); + } + catch (Exception) + { + await _db.Ado.RollbackTranAsync(); + throw; + + } } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs index eb6ecc23..1c57c58e 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs @@ -28,13 +28,12 @@ namespace Tnb.WarehouseMgr [OverideVisualDev(ModuleId)] public class WmsPDAFeedingService : BaseWareHouseService, IWmsCarryService, IWmsFeedingService { - private const string ModuleId = "26188532491557"; + private const string ModuleId = "26496913096981"; private readonly ISqlSugarClient _db; private readonly IUserManager _userManager; private readonly IBillRullService _billRullService; private readonly WmsCarryService _wmsCarryService; private static Dictionary dicMaterial = new Dictionary(); - public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); public WmsPDAFeedingService(ISqlSugarRepository repository, IUserManager userManager, IBillRullService billRullService,WmsCarryService wmsCarryService) { _db = repository.AsSugarClient();