优化齐套出库,更新空载具,并行处理逻辑

This commit is contained in:
alex
2023-07-24 10:03:40 +08:00
parent 5e2bfc7ad1
commit c250cf01f8
4 changed files with 25 additions and 14 deletions

View File

@@ -1,4 +1,5 @@
using Tnb.WarehouseMgr.Entities; using System.Runtime.CompilerServices;
using Tnb.WarehouseMgr.Entities;
namespace Tnb.WarehouseMgr.Interfaces namespace Tnb.WarehouseMgr.Interfaces
{ {
@@ -12,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); Task<int> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>> parallelUpdate=null, [CallerMemberName] string original = "");
} }
} }

View File

@@ -210,15 +210,17 @@ namespace Tnb.WarehouseMgr
var arrary = items.ToArray(); var arrary = items.ToArray();
for (int i = 1; i <= mod; i++) for (int i = 1; i <= mod; i++)
{ {
if (start >= itemsCount) break; while (start < itemsCount)
var subArray = arrary[start..end];
for (int j = 0, arrLen = subArray.Length; j < arrLen; j++)
{ {
subArray[j].groups = groupCode; var subArray = arrary[start..end];
subArray[j].bill_code = $"{groupCode}-{i}"; for (int j = 0, arrLen = subArray.Length; j < arrLen; j++)
{
subArray[j].groups = groupCode;
subArray[j].bill_code = $"{groupCode}-{i}";
}
start = end;
end = Math.Min((end + moveNum), arrary.Length);
} }
start = end;
end = Math.Min((end + moveNum), arrary.Length);
} }
} }
}); });

View File

@@ -1,4 +1,5 @@
using JNPF.Common.Contracts; using System.Runtime.CompilerServices;
using JNPF.Common.Contracts;
using JNPF.Common.Core.Manager; using JNPF.Common.Core.Manager;
using JNPF.Common.Dtos.VisualDev; using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Enums; using JNPF.Common.Enums;
@@ -155,7 +156,7 @@ namespace Tnb.WarehouseMgr
} }
[NonAction] [NonAction]
public async Task<int> UpdateNullCarry(WmsCarryH carryObj) public async Task<int> UpdateNullCarry(WmsCarryH carryObj, Func<WmsCarryH, Task<int>> parallelUpdate = null, [CallerMemberName] string original = "")
{ {
var row = 1; var row = 1;
try try
@@ -172,8 +173,15 @@ 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;
Task<int>.Run(() => _db.CopyNew().Updateable(carryObj).ExecuteCommandAsync()); if (parallelUpdate != null)
//row = await _db.CopyNew().Updateable(carryObj).ExecuteCommandAsync(); {
parallelUpdate(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();

View File

@@ -309,7 +309,7 @@ namespace Tnb.WarehouseMgr
var tasks = new List<Task<int>>(); var tasks = new List<Task<int>>();
foreach (var carryIt in carrys) foreach (var carryIt in carrys)
{ {
tasks.Add(_carryService.UpdateNullCarry(carryIt)); 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);
await _db.Ado.CommitTranAsync(); await _db.Ado.CommitTranAsync();