优化齐套出库,更新空载具,并行处理逻辑
This commit is contained in:
@@ -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 = "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user