using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Furion.DynamicApiController; using Furion.FriendlyException; using Mapster; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using System.Linq.Dynamic.Core; using Admin.NET.Core; namespace Admin.NET.Application { /// /// WMS公共服务 /// [ApiDescriptionSettings("WMS公共服务", Name = "WmsCommon", Order = 100)] [Route("api")] public class WmsCommonService : IWmsCommonService, IDynamicApiController, ITransient { private static readonly SemaphoreSlim semaphore_GetMnemonicCode = new SemaphoreSlim(1, 1);//SemaphoreSlim实例,并设置最大并发访问数为1。 /// /// 构造函数 /// public WmsCommonService( ) { } /// /// 获取通用编号 /// /// [HttpGet("WmsCommon/getSerial")] [AllowAnonymous] public async Task GetSerial([FromQuery] EnumSerialType SerialType) { var returnstr = await SerialUtil.GetSerial(SerialType); return returnstr; } /// /// 生成助记码 /// 注意:只能调这个接口,不能自己写方法调,否则可能会导致文件读取冲突造成错误! /// /// [HttpGet("WmsCommon/getMnemonicCode")] [AllowAnonymous] public async Task GetMnemonicCode([FromQuery] string name) { await semaphore_GetMnemonicCode.WaitAsync(); try { MnemonicCodeUtil.fun_LoadWords(); var retMsg = MnemonicCodeUtil.funChineseSpell(name, false); return retMsg; } catch (Exception) { throw; } finally { semaphore_GetMnemonicCode.Release(); } } } }