优化更新空载具接口及函数

This commit is contained in:
alex
2023-07-26 09:04:02 +08:00
parent 9b324ec606
commit 9a5b9d8f9d
7 changed files with 19 additions and 24 deletions

View File

@@ -13,6 +13,6 @@ namespace Tnb.WarehouseMgr.Interfaces
/// </summary> /// </summary>
/// <param name="entity"></param> /// <param name="entity"></param>
/// <returns></returns> /// <returns></returns>
Task<int> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>> updateTask=null, [CallerMemberName] string original = ""); Task<Task<int>> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>> updateTask = null, [CallerMemberName] string original = "");
} }
} }

View File

@@ -243,7 +243,7 @@ namespace Tnb.WarehouseMgr
} }
} }
foreach (var (i, v) in dic) foreach (var (i, v) in dic)
{ {
foreach (var it in v) foreach (var it in v)
{ {
it.groups = groupCode; it.groups = groupCode;

View File

@@ -128,7 +128,7 @@ namespace Tnb.WarehouseMgr
wmsCarryReplaceH.modify_id = null; wmsCarryReplaceH.modify_id = null;
wmsCarryReplaceH.modify_time = null; wmsCarryReplaceH.modify_time = null;
row = await _db.Insertable(wmsCarryReplaceH).ExecuteCommandAsync(); row = await _db.Insertable(wmsCarryReplaceH).ExecuteCommandAsync();
row = await UpdateNullCarry(oldCarry); row = await UpdateNullCarry(oldCarry).Unwrap();
isOk = (row > 0); isOk = (row > 0);
if (!isOk) throw Oops.Oh(ErrorCode.COM1001); if (!isOk) throw Oops.Oh(ErrorCode.COM1001);
} }
@@ -156,9 +156,10 @@ namespace Tnb.WarehouseMgr
} }
[NonAction] [NonAction]
public async Task<int> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>> updateTask = null, [CallerMemberName] string original = "") public async Task<Task<int>> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>> updateTask = null, [CallerMemberName] string original = "")
{ {
var row = -1; var row = 1;
Task<int> resTask = Task.FromResult(row);
try try
{ {
carryObj.status = 0; carryObj.status = 0;
@@ -173,16 +174,8 @@ namespace Tnb.WarehouseMgr
carryObj.collocation_scheme_code = null; carryObj.collocation_scheme_code = null;
carryObj.source_id = null; carryObj.source_id = null;
carryObj.source_code = null; carryObj.source_code = null;
if (updateTask != null) resTask = updateTask?.Invoke(carryObj) ?? _db.CopyNew().Updateable(carryObj).ExecuteCommandAsync();
{ //*****删除对应明细表
updateTask(carryObj);
}
else
{
row = await _db.CopyNew().Updateable(carryObj).ExecuteCommandAsync();
}
//Task<int>.Run(() => _db.CopyNew().Updateable(carryObj).ExecuteCommandAsync());
//删除对应明细表
//删除载具明细 //删除载具明细
await _db.CopyNew().Deleteable<WmsCarryD>().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync(); await _db.CopyNew().Deleteable<WmsCarryD>().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync();
//删除载具分拣物料明细 //删除载具分拣物料明细
@@ -193,10 +186,11 @@ namespace Tnb.WarehouseMgr
catch (Exception ex) catch (Exception ex)
{ {
row = 0; row = 0;
resTask = Task.FromResult(row);
Log.Error("更新空载具出错", ex); Log.Error("更新空载具出错", ex);
throw; throw;
} }
return row; return resTask;
} }

View File

@@ -169,7 +169,7 @@ namespace Tnb.WarehouseMgr
var isOk = await _db.Updateable<WmsOutbale>().SetColumns(it => new WmsOutbale { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); var isOk = await _db.Updateable<WmsOutbale>().SetColumns(it => new WmsOutbale { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync();
var carryId = input.carryIds[^input.carryIds.Count]; var carryId = input.carryIds[^input.carryIds.Count];
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId); var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
var row = await _wmsCarryService.UpdateNullCarry(carry); var row = await _wmsCarryService.UpdateNullCarry(carry).Unwrap();
isOk = row > 0; isOk = row > 0;
if (!isOk) throw Oops.Oh(ErrorCode.COM1001); if (!isOk) throw Oops.Oh(ErrorCode.COM1001);

View File

@@ -626,7 +626,7 @@ namespace Tnb.WarehouseMgr
//如果没有完成,修改为工作中 //如果没有完成,修改为工作中
await _db.Updateable<WmsOutstockH>().SetColumns(it => new WmsOutstockH { status = WmsWareHouseConst.BILLSTATUS_ON_ID }).Where(it => it.id == input.requireId).ExecuteCommandAsync(); await _db.Updateable<WmsOutstockH>().SetColumns(it => new WmsOutstockH { status = WmsWareHouseConst.BILLSTATUS_ON_ID }).Where(it => it.id == input.requireId).ExecuteCommandAsync();
} }
await _wareCarryService.UpdateNullCarry(carry); await _wareCarryService.UpdateNullCarry(carry).Unwrap();
} }
else if (outStatus == EnumOutStatus.) else if (outStatus == EnumOutStatus.)
{ {

View File

@@ -91,16 +91,17 @@ namespace Tnb.WarehouseMgr
feedBox.modify_id = _userManager.UserId; feedBox.modify_id = _userManager.UserId;
feedBox.modify_time = DateTime.Now; feedBox.modify_time = DateTime.Now;
var row = await _db.Updateable(feedBox) var row = await _db.Updateable(feedBox)
.UpdateColumns(it => new { .UpdateColumns(it => new
{
it.material_id, it.material_id,
it.material_code, it.material_code,
it.qty, it.qty,
it.batch, it.batch,
it.modify_id, it.modify_id,
it.modify_time it.modify_time
}).ExecuteCommandAsync(); }).ExecuteCommandAsync();
//更新载具 //更新载具
row = await _carryService.UpdateNullCarry(carry); row = await _carryService.UpdateNullCarry(carry).Unwrap();
isOk = (row > 0); isOk = (row > 0);
if (!isOk) throw Oops.Oh(ErrorCode.COM1001); if (!isOk) throw Oops.Oh(ErrorCode.COM1001);
} }

View File

@@ -306,17 +306,17 @@ namespace Tnb.WarehouseMgr
if (carrys?.Count > 0) if (carrys?.Count > 0)
{ {
await _db.Ado.BeginTranAsync(); await _db.Ado.BeginTranAsync();
var tasks = new List<Task<int>>(); var tasks = new List<Task<Task<int>>>();
foreach (var carryIt in carrys) foreach (var carryIt in carrys)
{ {
tasks.Add(_carryService.UpdateNullCarry(carryIt, carryIt => Task.Run(() => _db.CopyNew().Updateable(carryIt).ExecuteCommandAsync()))); tasks.Add(_carryService.UpdateNullCarry(carryIt, carryIt => Task.Run(() => _db.CopyNew().Updateable(carryIt).ExecuteCommandAsync())));
} }
var all = await Task.WhenAll(tasks); var all = await Task.WhenAll(tasks.Select(t => t.Unwrap()));
await _db.Ado.CommitTranAsync();
if (all.All(x => x > 0)) if (all.All(x => x > 0))
{ {
isOk = all?.Length > 0; isOk = all?.Length > 0;
} }
await _db.Ado.CommitTranAsync();
} }
} }
if (!isOk) throw Oops.Oh(ErrorCode.COM1001); if (!isOk) throw Oops.Oh(ErrorCode.COM1001);