优化
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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