增加箱库存同步箱信息

This commit is contained in:
18942506660
2024-03-06 10:33:14 +08:00
parent 3697fbe196
commit 008640be06
6 changed files with 243 additions and 167 deletions

View File

@@ -31,12 +31,14 @@ namespace WMS.Web.Domain.Services
private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories;
private readonly ISerialNumbersRepositories _serialNumbersRepositories;
private readonly ILogger<BoxService> _Logger;
public readonly IBasicsRepositories _basbicsRepositories;
public BoxService(IMapper mapper, ILoginService loginService,
IBasicsRepositories transactionRepositories,
IBoxRepositories boxRepositories, IOpsService opsService,
ISerialNumberService serialNumberService,
IErpOpsSyncDateRepositories erpOpsSyncDateRepositories,
ISerialNumbersRepositories serialNumbersRepositories,
IBasicsRepositories basbicsRepositories,
ILogger<BoxService> Logger)
{
_mapper = mapper;
@@ -48,6 +50,7 @@ namespace WMS.Web.Domain.Services
_erpOpsSyncDateRepositories = erpOpsSyncDateRepositories;
_serialNumbersRepositories = serialNumbersRepositories;
_Logger = Logger;
_basbicsRepositories = basbicsRepositories;
}
public async Task<Result> Sync(List<OpsBoxResponse> list)
@@ -127,5 +130,43 @@ namespace WMS.Web.Domain.Services
return Result.ReSuccess();
}
/// <summary>
/// 箱库存同步箱信息
/// </summary>
/// <param name="list"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
public async Task<Result> BoxInventorySync(List<BoxInventory> list, bool isTransaction = true)
{
if (list.Count() == 0) return Result.ReSuccess();
var boxIds = list.Select(s => s.BoxId).Distinct().ToList();
var boxs = await _boxRepositories.GetEntityList(boxIds);
foreach (var db in list)
{
var box = boxs.FirstOrDefault(f => f.Id == db.BoxId);
if (box == null) continue;
box.BoxInventory(db);
}
IDbContextTransaction _transaction = null;
if (isTransaction)
_transaction = _basbicsRepositories.GetTransaction();
Result res_Rollback = Result.ReSuccess();
bool isSuccess = true;
if (res_Rollback.IsSuccess)
{
isSuccess = await _boxRepositories.EditEntityList(boxs, false);
if (!isSuccess) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
}
//提交事务
if (isTransaction)
{
isSuccess = _basbicsRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction);
if (!res_Rollback.IsSuccess) return res_Rollback;
if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError);
}
return Result.ReSuccess();
}
}
}