From c33feb8b7f7d35f445c2628734186f95289a77ca Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 19 Jun 2023 16:55:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=BB=E5=8A=A1=E5=AE=8C?= =?UTF-8?q?=E6=88=90=EF=BC=8C=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entity/WmsDistaskH.part.cs | 8 ++- .../Tnb.WarehouseMgr/WareHouseService.cs | 58 +++++++++++-------- .../Tnb.WarehouseMgr/WmsOutStockService.cs | 1 + 3 files changed, 40 insertions(+), 27 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsDistaskH.part.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsDistaskH.part.cs index 1dfaecff..cf9870e0 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsDistaskH.part.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsDistaskH.part.cs @@ -7,7 +7,11 @@ namespace Tnb.WarehouseMgr.Entities; /// /// 任务执行主表 /// -public partial class WmsDistaskH +public partial class WmsDistaskH { - + /// + /// 载具状态 + /// + [SugarColumn(IsIgnore = true)] + public string carry_status { get; set; } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 14515a5c..52b0f055 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -354,9 +354,9 @@ namespace Tnb.WarehouseMgr { if (input.EqpIds?.Count > 0) { - await _db.Updateable().SetColumns(it => new WmsDistaskH { status= WmsWareHouseConst.TASK_BILL_STATUS_YXD_ID, device_id = input.EqpIds[i] }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync(); + await _db.Updateable().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_YXD_ID, device_id = input.EqpIds[i] }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync(); } - else + else { await _db.Updateable().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_YXD_ID }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync(); @@ -425,7 +425,7 @@ namespace Tnb.WarehouseMgr //更新任务执行表,单据状态为 完成 await _db.Updateable().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID }).Where(it => input.disTaskIds.Contains(it.id)).ExecuteCommandAsync(); //更新预任务申请表,单据状态为 已完成 - var disTasks = await _db.Queryable().Where(it => input.disTaskIds.Contains(it.id)).ToListAsync(); + var disTasks = await _db.Queryable().InnerJoin((a, b) => a.carry_id == b.id).Where(a => input.disTaskIds.Contains(a.id)).Select((a, b) => new WmsDistaskH { carry_status = b.carry_status }, true).ToListAsync(); if (disTasks?.Count > 0) { var preTaskIds = disTasks.Select(x => x.pretask_id).ToList(); @@ -444,33 +444,41 @@ namespace Tnb.WarehouseMgr if (disTasks?.Count > 0) { var destLocIds = disTasks.Select(it => it.endlocation_id).ToList(); - await _db.Updateable().SetColumns(it => new BasLocation { is_use = "1", is_lock = 0 }).Where(it => destLocIds.Contains(it.id)).ExecuteCommandAsync(); - } - //更新业务主表的单据状态 - if (disTasks?.Count > 0) - { - foreach (var dt in disTasks) + var multis = disTasks.Select(it => (it.endlocation_id, it.carry_status)).ToList(); + for (int i = 0; i < multis.Count; i++) { - 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 }; - upInput.loginType = !_userManager.LoginType.IsNullOrEmpty() ? "app" : "web"; - if (dt.is_sign == 1) //区分出入库操作 + var carryStatus = multis[i].carry_status; + if (multis[i].carry_status == "0") { - if (dt.is_chain == 0) - { - await DoUpdate(upInput); - } - else if (dt.is_chain == 1 && dt.chain_type == "3") - { - await DoUpdate(upInput); - } + carryStatus = "1"; } - + await _db.Updateable().SetColumns(it => new BasLocation { is_use = carryStatus, is_lock = 0 }).Where(it => it.id == multis[i].endlocation_id).ExecuteCommandAsync(); } - } + //更新业务主表的单据状态 + if (disTasks?.Count > 0) + { + 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 }; + upInput.loginType = !_userManager.LoginType.IsNullOrEmpty() ? "app" : "web"; + if (dt.is_sign == 1) //区分出入库操作 + { + if (dt.is_chain == 0) + { + await DoUpdate(upInput); + } + else if (dt.is_chain == 1 && dt.chain_type == "3") + { + await DoUpdate(upInput); + } + } - await _db.Ado.CommitTranAsync(); - } + } + } + + await _db.Ado.CommitTranAsync(); + } catch (Exception ex) { await _db.Ado.RollbackTranAsync(); diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs index 0e7bfa06..da26eca2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsOutStockService.cs @@ -32,6 +32,7 @@ namespace Tnb.WarehouseMgr private async Task OutStockApplyFor(VisualDevModelDataCrInput input) { + return Task.FromResult(0); }