using Admin.NET.Core.Service;
|
using Admin.NET.Application.Entity;
|
using Microsoft.AspNetCore.Http;
|
using Furion.DatabaseAccessor;
|
namespace Admin.NET.Application;
|
/// <summary>
|
/// WMS公共服务
|
/// </summary>
|
[ApiDescriptionSettings(ApplicationConst.WmsCommonServiceGroupName, Order = 100)]
|
public class WmsCommonService : IDynamicApiController, ITransient
|
{
|
private static readonly SemaphoreSlim semaphore_GetMnemonicCode = new SemaphoreSlim(1, 1);//SemaphoreSlim实例,并设置最大并发访问数为1。
|
private readonly SqlSugarRepository<WmsConfigSerialRule> _repRuleDetailRep;
|
private readonly SqlSugarRepository<WmsConfigSerialSN> _repSNRep;
|
public WmsCommonService(SqlSugarRepository<WmsConfigSerialRule> repRuleDetailRep, SqlSugarRepository<WmsConfigSerialSN> repSNRep)
|
{
|
_repRuleDetailRep = repRuleDetailRep;
|
_repSNRep = repSNRep;
|
}
|
/// <summary>
|
/// 获取通用编号
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
[AllowAnonymous]
|
[ApiDescriptionSettings(Name = "GetSerial")]
|
[Description("wmsCommon/getSerial")]
|
public async Task<string> GetSerial([FromQuery] SerialTypeEnum SerialType)
|
{
|
var returnstr = await SerialUtil.GetSerial(SerialType,_repRuleDetailRep,_repSNRep);
|
return returnstr;
|
}
|
|
|
/// <summary>
|
/// 生成助记码
|
/// 注意:只能调这个接口,不能自己写方法调,否则可能会导致文件读取冲突造成错误!
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
[AllowAnonymous]
|
[ApiDescriptionSettings(Name = "GetMnemonicCode")]
|
[Description("wmsCommon/getMnemonicCode")]
|
public async Task<string> GetMnemonicCode([FromQuery] string name)
|
{
|
|
await semaphore_GetMnemonicCode.WaitAsync();
|
try
|
{
|
MnemonicCodeHelper.fun_LoadWords();
|
var retMsg = MnemonicCodeHelper.funChineseSpell(name, false);
|
return retMsg;
|
}
|
catch (Exception)
|
{
|
|
throw;
|
}
|
finally
|
{
|
semaphore_GetMnemonicCode.Release();
|
}
|
}
|
}
|