From 8d5ee4c0d79e7698b0e67992a2bddce53e153f2a Mon Sep 17 00:00:00 2001 From: FanLian Date: Wed, 21 Jun 2023 16:15:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/WmsPDABindService.cs | 6 +- .../WmsPDACarryReplaceService.cs | 6 +- .../Tnb.WarehouseMgr/WmsPDAFeedingService.cs | 158 ++++++++---------- 3 files changed, 79 insertions(+), 91 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDABindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDABindService.cs index 992a852b..39f177a7 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDABindService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDABindService.cs @@ -50,13 +50,13 @@ namespace Tnb.WarehouseMgr } /// - /// 更换载具 + /// PDA绑定操作 /// /// /// 输入参数: ///
{ - ///
old_carry_id:老载具id - ///
new_carry_id:新载具ID + ///
old_carry_id: 载具料箱ID + ///
new_carry_id:载具小车ID ///
} /// /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryReplaceService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryReplaceService.cs index d6d4373f..e3f3b9a9 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryReplaceService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryReplaceService.cs @@ -24,7 +24,7 @@ using Tnb.WarehouseMgr.Interfaces; namespace Tnb.WarehouseMgr { /// - /// 载具服务 + /// PDA载具更换 /// [OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACEPDA_ID)] public class WmsPDACarryService : BaseWareHouseService, IWmsCarryService, IPdaStroage @@ -50,12 +50,12 @@ namespace Tnb.WarehouseMgr } /// - /// 更换载具 + /// PDA载具更换 /// /// /// 输入参数: ///
{ - ///
old_carry_id:老载具id + ///
old_carry_id:老载具ID ///
new_carry_id:新载具ID ///
} /// diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs index 8541d41e..0809c924 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs @@ -9,11 +9,11 @@ using JNPF.FriendlyException; using JNPF.Logging; using JNPF.Systems.Interfaces.System; using JNPF.VisualDev; +using JNPF.VisualDev.Entitys; +using JNPF.VisualDev.Interfaces; using Mapster; using Microsoft.AspNetCore.Mvc; -using Senparc.Weixin.Work.AdvancedAPIs.OaDataOpen; using SqlSugar; -using Tnb.BasicData.Entities; using Tnb.Common.Utils; using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Consts; @@ -24,85 +24,101 @@ using Tnb.WarehouseMgr.Interfaces; namespace Tnb.WarehouseMgr { /// - /// 载具服务 + /// PDA投料记录 /// [OverideVisualDev(ModuleConsts.MODULE_WMSFEEDINGRECORDPDA_ID)] - public class WmsPDAFeedingService : BaseWareHouseService, IWmsCarryService, IWmsFeedingService + public class WmsPDAFeedingService : BaseWareHouseService, IWmsCarryService, IPdaStroage { - //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 WmsPDAFeedingService(ISqlSugarRepository repository, IUserManager userManager, IBillRullService billRullService, WmsCarryService wmsCarryService) + private readonly IRunService _runService; + private readonly IVisualDevService _visualDevService; + public WmsPDAFeedingService( + ISqlSugarRepository repository, + IUserManager userManager, + IBillRullService billRullService, + IRunService runService, + IVisualDevService visualDevService) { _db = repository.AsSugarClient(); _userManager = userManager; _billRullService = billRullService; - _wmsCarryService = wmsCarryService; - OverideFuncs.CreateAsync = WmsPDAFeeding; + _runService = runService; + _visualDevService = visualDevService; + OverideFuncs.CreateAsync = WmsPDABind; } - private async Task WmsPDAFeeding(VisualDevModelDataCrInput input) + /// + /// PDA投料记录 + /// + /// + /// 输入参数: + ///
{ + ///
old_carry_id: 料箱ID + ///
new_carry_id:新载具ID + ///
} + /// + /// + /// + private async Task WmsPDABind(VisualDevModelDataCrInput input) { + + var isOk = false; try { await _db.Ado.BeginTranAsync(); - var carryId = input.data.ContainsKey("carry_id") ? input.data["carry_id"]?.ToString() : ""; - var feedBoxCode = input.data.ContainsKey("feedbox_code") ? input.data["feedbox_code"]?.ToString() : ""; - var carry = await _db.Queryable().FirstAsync(it => it.id == carryId); - var feedBox = await _db.Queryable().FirstAsync(it => it.feedbox_code == feedBoxCode); - var citem = await _db.Queryable().FirstAsync(it => it.carry_id == carryId); - if (carry != null && feedBox != null) - { - feedBox.material_id = citem.material_id; - feedBox.material_code = citem.material_code; - feedBox.qty = citem.qty; - feedBox.batch = citem?.code_batch!; - var row = await _db.Updateable(feedBox).UpdateColumns(it => new - { - it.material_id, - it.material_code, - it.qty, - it.batch - }).ExecuteCommandAsync(); - /* var row = await _db.Updateable(feedBox).SetColumns(it => new - { - it.material_id == item.material_id,it.material_code - } - )*/ - var items = await _db.Queryable().Where(it => it.carry_id == carryId).ToListAsync(); - foreach (var item in items) - { - WmsFeedingrecordCode wmsFeedingRecordCode = new(); - wmsFeedingRecordCode.id = SnowflakeIdHelper.NextId(); - wmsFeedingRecordCode.org_id = carry?.org_id!; - wmsFeedingRecordCode.record_id = input.data["ReturnIdentity"]?.ToString()!; - wmsFeedingRecordCode.material_id = item.material_id; - wmsFeedingRecordCode.material_code = item.material_code; - wmsFeedingRecordCode.barcode = item.barcode; - wmsFeedingRecordCode.code_batch = item.code_batch; - wmsFeedingRecordCode.codeqty = item.codeqty; - wmsFeedingRecordCode.unit_id = item.unit_id; - wmsFeedingRecordCode.unit_code = item.unit_code; - wmsFeedingRecordCode.create_id = _userManager.UserId; - wmsFeedingRecordCode.create_time = DateTime.Now; - row = await _db.Insertable(wmsFeedingRecordCode).ExecuteCommandAsync(); - } - row = await UpdateNullCarry(carry); + VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSFEEDINGRECORDPDA_ID, true); + await _runService.Create(templateEntity, input); + + 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 (carry == null) + if (oldCarry == null) { throw new AppFriendlyException("没有可用的旧载具", 500); } - if (feedBox == null) + if (newCarry == null) { throw new AppFriendlyException("没有可用的新载具", 500); } @@ -137,6 +153,7 @@ namespace Tnb.WarehouseMgr carryObj.source_id = null; carryObj.source_code = null; row = await _db.Updateable(carryObj).ExecuteCommandAsync(); + //删除对应明细表 //删除载具明细 await _db.Deleteable().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync(); //删除载具分拣物料明细 @@ -175,34 +192,5 @@ namespace Tnb.WarehouseMgr } return (row > 0); } - - - - /// - /// 根据载具Id获取载具条码记录 - /// - /// - /// - [HttpGet] - public async Task GetCarryCodeList([FromRoute] string carryId) - { - if (dicMaterial.Count < 1) - { - dicMaterial = await _db.Queryable().ToDictionaryAsync(x => x.id, x => x.name); - } - var items = await _db.Queryable().Where(a => a.carry_id == carryId) - .Select(a => new CarryCodeDetailOutput - { - barcode = a.barcode, - code_batch = a.code_batch, - codeqty = a.codeqty, - material_code = a.material_code, - material_id = a.material_id, - unit_id = a.unit_id, - }) - .Mapper(it => it.material_name = dicMaterial.ContainsKey(it.material_id) ? dicMaterial[it.material_id].ToString()! : "") - .ToListAsync(); - return items; - } } -} +} \ No newline at end of file