This commit is contained in:
tongfei
2024-04-18 14:33:25 +08:00
parent a79893ffb5
commit a23321e1d2
6 changed files with 53 additions and 14 deletions

View File

@@ -32,12 +32,12 @@ namespace WMS.Web.Api.Controllers
private readonly IInStockRepositories _inStockRepositories; private readonly IInStockRepositories _inStockRepositories;
private readonly IExportExcelService _exportExcelService; private readonly IExportExcelService _exportExcelService;
private readonly IRedisConcurrentProcessService _redisConcurrentProcessService; private readonly IRedisConcurrentProcessService _redisConcurrentProcessService;
public InStockController(IOptions<QiniuOptions> option, public InStockController(IOptions<QiniuOptions> option,
ILoginService loginService, ILoginService loginService,
IInStockRepositories inStockRepositories, IInStockRepositories inStockRepositories,
IInStockService inStockService, IInStockService inStockService,
IExportExcelService exportExcelService, IExportExcelService exportExcelService,
IRedisConcurrentProcessService redisConcurrentProcessService) IRedisConcurrentProcessService redisConcurrentProcessService)
{ {
_option = option?.Value; _option = option?.Value;
this._redisConcurrentProcessService = redisConcurrentProcessService; this._redisConcurrentProcessService = redisConcurrentProcessService;
@@ -59,9 +59,9 @@ namespace WMS.Web.Api.Controllers
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)
return ResultPagedList<InStockQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error); return ResultPagedList<InStockQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
var (list, count) = await _inStockRepositories.GetPagedList(dto,loginInfo.UserInfo.CompanyId); var (list, count) = await _inStockRepositories.GetPagedList(dto, loginInfo.UserInfo.CompanyId);
return ResultPagedList<InStockQueryResponse>.ReSuccess(list, count); return ResultPagedList<InStockQueryResponse>.ReSuccess(list, count);
} }
/// <summary> /// <summary>
@@ -163,7 +163,7 @@ namespace WMS.Web.Api.Controllers
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error); return Result.ReFailure(ResultCodes.Token_Invalid_Error);
return await _inStockService.Sync(dto,loginInfo); return await _inStockService.Sync(dto, loginInfo);
} }
} }
} }

View File

@@ -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;
@@ -88,7 +90,7 @@ namespace WMS.Web.Api.Controllers
await _outStockRepositories.GetEntityListBySerialNumbers(new List<string>() { "131VU-32C5A" }); await _outStockRepositories.GetEntityListBySerialNumbers(new List<string>() { "131VU-32C5A" });
//await _outStockRepositories.GetEntityListByBoxBillNos(new List<string>() { "CTN0002187" }); //await _outStockRepositories.GetEntityListByBoxBillNos(new List<string>() { "CTN0002187" });
//list[0].Details[0].ErpDetails[0].AccruedQty = 2; //list[0].Details[0].ErpDetails[0].AccruedQty = 2;
//list[0].Details[0].ErpDetails.Add(new OutStockTaskErpDetails() //list[0].Details[0].ErpDetails.Add(new OutStockTaskErpDetails()
@@ -349,7 +351,7 @@ namespace WMS.Web.Api.Controllers
/// <returns></returns> /// <returns></returns>
[HttpGet] [HttpGet]
[Route("Send")] [Route("Send")]
public async Task<Result> Send() public async Task<Result> Send()
{ {
return await _sendMessageService.Execute(); return await _sendMessageService.Execute();
} }
@@ -360,7 +362,7 @@ namespace WMS.Web.Api.Controllers
/// <returns></returns> /// <returns></returns>
[HttpGet] [HttpGet]
[Route("SyscMats")] [Route("SyscMats")]
public async Task<Result> SyscMats() public async Task<Result> SyscMats()
{ {
return await _materialService.SyncNewMaterials(); return await _materialService.SyncNewMaterials();
} }
@@ -371,7 +373,7 @@ namespace WMS.Web.Api.Controllers
/// <returns></returns> /// <returns></returns>
[HttpGet] [HttpGet]
[Route("getmt")] [Route("getmt")]
public async Task<bool> GetMaterial() public async Task<bool> GetMaterial()
{ {
var materials_result = await _erpService.BillQueryForMaterial(); var materials_result = await _erpService.BillQueryForMaterial();
var materials = materials_result.Data.ToList(); var materials = materials_result.Data.ToList();
@@ -386,7 +388,7 @@ namespace WMS.Web.Api.Controllers
/// <returns></returns> /// <returns></returns>
[HttpGet] [HttpGet]
[Route("ClearCache")] [Route("ClearCache")]
public Result ClearCache() public Result ClearCache()
{ {
//通过反射调用清空缓存方法 //通过反射调用清空缓存方法
PropertyInfo prop = _memoryCache.GetType().GetProperty("EntriesCollection", BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Public); PropertyInfo prop = _memoryCache.GetType().GetProperty("EntriesCollection", BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Public);
@@ -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);
}
} }
} }

View File

@@ -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>

View File

@@ -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);
} }
} }

View File

@@ -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));
} }
} }
} }

View File

@@ -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>