diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs index e9c7129a..53bf5dbd 100644 --- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs @@ -14,6 +14,7 @@ using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService; using WMS.Web.Domain.IService.Public; +using WMS.Web.Domain.Services.Public; using WMS.Web.Domain.Values; namespace WMS.Web.Domain.Services @@ -30,9 +31,11 @@ namespace WMS.Web.Domain.Services private readonly IOutStockRepositories _outStockRepositories; private readonly IOutStockTaskRepositories _outStockTaskRepositories; private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories; + private readonly RedisClientService _redisClientService; public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService, IBasicsRepositories transactionRepositories, - IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories) + IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories, + RedisClientService redisClientService) { _mapper = mapper; _erpService = erpService; @@ -41,6 +44,7 @@ namespace WMS.Web.Domain.Services _outStockRepositories = outStockRepositories; _outStockTaskRepositories = outStockTaskRepositories; _erpOpsSyncDateRepositories = erpOpsSyncDateRepositories; + _redisClientService = redisClientService; } /// @@ -332,6 +336,9 @@ namespace WMS.Web.Domain.Services /// public async Task Sync(List billNos = null, DateTime? begin = null) { + var info = _redisClientService.GetStringKey($"wms_outstock_sync"); + if (info == true) return Result.ReFailure(ResultCodes.ErpSyns); + _redisClientService.SetStringKey($"wms_outstock_sync", true, TimeSpan.FromMinutes(5)); //1.事务 IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); bool isRollback = false; @@ -359,11 +366,14 @@ namespace WMS.Web.Domain.Services //isSuccess = await _erpOpsSyncDateRepositories.Edit(ErpOpsSyncType.OutStock, false); //if (!isSuccess) isRollback = true; + //4.提交事务 isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + _redisClientService.SetStringKey($"wms_outstock_sync", false, TimeSpan.FromMinutes(5)); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); + return Result.ReSuccess(); } @@ -414,10 +424,13 @@ namespace WMS.Web.Domain.Services if (!result.IsSuccess) isRollback = true; } + //4.提交事务 isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + _redisClientService.SetStringKey($"wms_outstock_sync", false, TimeSpan.FromMinutes(5)); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); + return Result.ReSuccess(); } diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 9a5b8fb9..0c68b255 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -28,7 +28,7 @@ namespace WMS.Web.Domain.Values /// 没有菜单权限,无法登录 /// public static ValueTuple NoRoot = (40005, "没有菜单权限,无法登录"); - + public static ValueTuple ErpSyns = (40006, "正在同步金蝶数据,请稍候再试!"); //出库任务单 public static ValueTuple MergeStatusError = (70000, "请选择出库状态为”待出库”且出库类型为”销售出库”发货组织和收货客户以及发货仓库一致的数据"); public static ValueTuple OutStockQtyError = (70001, "可出库数量不足");