优化
This commit is contained in:
@@ -52,12 +52,14 @@ namespace WMS.Web.Api.Controllers
|
|||||||
private readonly ISendMessageService _sendMessageService;
|
private readonly ISendMessageService _sendMessageService;
|
||||||
private readonly IMaterialService _materialService;
|
private readonly IMaterialService _materialService;
|
||||||
private readonly IMemoryCache _memoryCache;
|
private readonly IMemoryCache _memoryCache;
|
||||||
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories,
|
private readonly IRedisConcurrentProcessService _redisConcurrentProcessService;
|
||||||
|
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories, IRedisConcurrentProcessService redisConcurrentProcessService,
|
||||||
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, IMemoryCache memoryCache,
|
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, IMemoryCache memoryCache,
|
||||||
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options, ILoginService loginService, ISendMessageService sendMessageService,
|
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> options, ILoginService loginService, ISendMessageService sendMessageService,
|
||||||
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories,
|
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories,
|
||||||
IWebHostEnvironment env, IMaterialService materialService, IOutStockRepositories outStockRepositories)
|
IWebHostEnvironment env, IMaterialService materialService, IOutStockRepositories outStockRepositories)
|
||||||
{
|
{
|
||||||
|
_redisConcurrentProcessService = redisConcurrentProcessService;
|
||||||
_memoryCache = memoryCache;
|
_memoryCache = memoryCache;
|
||||||
_materialService = materialService;
|
_materialService = materialService;
|
||||||
_loginService = loginService;
|
_loginService = loginService;
|
||||||
@@ -395,5 +397,24 @@ namespace WMS.Web.Api.Controllers
|
|||||||
clearMethod.Invoke(innerCache, null);
|
clearMethod.Invoke(innerCache, null);
|
||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
[Route("binfa")]
|
||||||
|
public Result<bool> BinFa()
|
||||||
|
{
|
||||||
|
var cacheKey = "instock_shelf_" + 1;
|
||||||
|
var IscanAccess = _redisConcurrentProcessService.GetRedisKeyValue(cacheKey);
|
||||||
|
if (IscanAccess)
|
||||||
|
return Result<bool>.ReFailure(ResultCodes.Concurrent_Instock);
|
||||||
|
|
||||||
|
Console.WriteLine("process..."+ IscanAccess);
|
||||||
|
_redisConcurrentProcessService.UpdateAccessStatus(cacheKey, true);
|
||||||
|
var tt2 = _redisConcurrentProcessService.GetRedisKeyValue(cacheKey);
|
||||||
|
Console.WriteLine("redis1:" + tt2);
|
||||||
|
return Result<bool>.ReSuccess(tt2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -824,5 +824,11 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Api.Controllers.TestController.BinFa">
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
</members>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ namespace WMS.Web.Domain.IService.Public
|
|||||||
{
|
{
|
||||||
bool CanAccessMethod(string cacheKey);
|
bool CanAccessMethod(string cacheKey);
|
||||||
|
|
||||||
|
bool GetRedisKeyValue(string cacheKey);
|
||||||
|
|
||||||
void UpdateAccessStatus(string cacheKey, bool canAccess);
|
void UpdateAccessStatus(string cacheKey, bool canAccess);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,13 +17,21 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
public bool CanAccessMethod(string cacheKey)
|
public bool CanAccessMethod(string cacheKey)
|
||||||
{
|
{
|
||||||
// 使用 Redis 来存储并发控制标记
|
// 使用 Redis 来存储并发控制标记
|
||||||
return _redisClientService.SetStringKey(cacheKey, "true", TimeSpan.FromMinutes(1));
|
return _redisClientService.SetStringKey<bool>(cacheKey, true, TimeSpan.FromMinutes(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool GetRedisKeyValue(string cacheKey)
|
||||||
|
{
|
||||||
|
// 使用 Redis 来存储并发控制标记
|
||||||
|
var isSuccess= _redisClientService.GetStringKey<bool>(cacheKey);
|
||||||
|
return isSuccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateAccessStatus(string cacheKey, bool canAccess)
|
public void UpdateAccessStatus(string cacheKey, bool canAccess)
|
||||||
{
|
{
|
||||||
// 更新 Redis 缓存项的值
|
// 更新 Redis 缓存项的值
|
||||||
_redisClientService.SetStringKey(cacheKey, canAccess.ToString(), TimeSpan.FromMinutes(1));
|
_redisClientService.SetStringKey<bool>(cacheKey, canAccess, TimeSpan.FromMinutes(1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ namespace WMS.Web.Domain.Values
|
|||||||
public static ValueTuple<int, string> NoDateError = (40005, "数据不存在");
|
public static ValueTuple<int, string> NoDateError = (40005, "数据不存在");
|
||||||
public static ValueTuple<int, string> SourceBillNoDateError = (40005, "来源单不存在,请核对后再试");
|
public static ValueTuple<int, string> SourceBillNoDateError = (40005, "来源单不存在,请核对后再试");
|
||||||
|
|
||||||
|
public static ValueTuple<int, string> Concurrent_Instock = (80005, "该任务单正在处理中");
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 没有菜单权限,无法登录
|
/// 没有菜单权限,无法登录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user