重复执行金蝶数据问题

This commit is contained in:
18942506660
2024-03-21 10:39:35 +08:00
parent 5eb941a0ae
commit a8edf2afcc
2 changed files with 15 additions and 2 deletions

View File

@@ -14,6 +14,7 @@ using WMS.Web.Domain.Entitys;
using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.Infrastructure;
using WMS.Web.Domain.IService; using WMS.Web.Domain.IService;
using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.Services.Public;
using WMS.Web.Domain.Values; using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Services namespace WMS.Web.Domain.Services
@@ -30,9 +31,11 @@ namespace WMS.Web.Domain.Services
private readonly IOutStockRepositories _outStockRepositories; private readonly IOutStockRepositories _outStockRepositories;
private readonly IOutStockTaskRepositories _outStockTaskRepositories; private readonly IOutStockTaskRepositories _outStockTaskRepositories;
private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories; private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories;
private readonly RedisClientService _redisClientService;
public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService, public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService,
IBasicsRepositories transactionRepositories, IBasicsRepositories transactionRepositories,
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories) IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories,
RedisClientService redisClientService)
{ {
_mapper = mapper; _mapper = mapper;
_erpService = erpService; _erpService = erpService;
@@ -41,6 +44,7 @@ namespace WMS.Web.Domain.Services
_outStockRepositories = outStockRepositories; _outStockRepositories = outStockRepositories;
_outStockTaskRepositories = outStockTaskRepositories; _outStockTaskRepositories = outStockTaskRepositories;
_erpOpsSyncDateRepositories = erpOpsSyncDateRepositories; _erpOpsSyncDateRepositories = erpOpsSyncDateRepositories;
_redisClientService = redisClientService;
} }
/// <summary> /// <summary>
@@ -332,6 +336,9 @@ namespace WMS.Web.Domain.Services
/// <returns></returns> /// <returns></returns>
public async Task<Result> Sync(List<string> billNos = null, DateTime? begin = null) public async Task<Result> Sync(List<string> billNos = null, DateTime? begin = null)
{ {
var info = _redisClientService.GetStringKey<bool>($"wms_outstock_sync");
if (info == true) return Result.ReFailure(ResultCodes.ErpSyns);
_redisClientService.SetStringKey($"wms_outstock_sync", true, TimeSpan.FromMinutes(5));
//1.事务 //1.事务
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
bool isRollback = false; bool isRollback = false;
@@ -359,11 +366,14 @@ namespace WMS.Web.Domain.Services
//isSuccess = await _erpOpsSyncDateRepositories.Edit(ErpOpsSyncType.OutStock, false); //isSuccess = await _erpOpsSyncDateRepositories.Edit(ErpOpsSyncType.OutStock, false);
//if (!isSuccess) isRollback = true; //if (!isSuccess) isRollback = true;
//4.提交事务 //4.提交事务
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
_redisClientService.SetStringKey($"wms_outstock_sync", false, TimeSpan.FromMinutes(5));
if (!isSuccess) if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess(); return Result.ReSuccess();
} }
@@ -414,10 +424,13 @@ namespace WMS.Web.Domain.Services
if (!result.IsSuccess) isRollback = true; if (!result.IsSuccess) isRollback = true;
} }
//4.提交事务 //4.提交事务
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
_redisClientService.SetStringKey($"wms_outstock_sync", false, TimeSpan.FromMinutes(5));
if (!isSuccess) if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess(); return Result.ReSuccess();
} }

View File

@@ -28,7 +28,7 @@ namespace WMS.Web.Domain.Values
/// 没有菜单权限,无法登录 /// 没有菜单权限,无法登录
/// </summary> /// </summary>
public static ValueTuple<int, string> NoRoot = (40005, "没有菜单权限,无法登录"); public static ValueTuple<int, string> NoRoot = (40005, "没有菜单权限,无法登录");
public static ValueTuple<int, string> ErpSyns = (40006, "正在同步金蝶数据,请稍候再试!");
//出库任务单 //出库任务单
public static ValueTuple<int, string> MergeStatusError = (70000, "请选择出库状态为”待出库”且出库类型为”销售出库”发货组织和收货客户以及发货仓库一致的数据"); public static ValueTuple<int, string> MergeStatusError = (70000, "请选择出库状态为”待出库”且出库类型为”销售出库”发货组织和收货客户以及发货仓库一致的数据");
public static ValueTuple<int, string> OutStockQtyError = (70001, "可出库数量不足"); public static ValueTuple<int, string> OutStockQtyError = (70001, "可出库数量不足");