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);
}