using Admin.NET.Core.Service; using Admin.NET.Application.Entity; using Microsoft.AspNetCore.Http; using Furion.DatabaseAccessor; namespace Admin.NET.Application; /// /// WMS公共服务 /// [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 _repRuleDetailRep; private readonly SqlSugarRepository _repSNRep; public WmsCommonService(SqlSugarRepository rep, SqlSugarRepository repRuleDetailRep, SqlSugarRepository repSNRep) { _repRuleDetailRep = repRuleDetailRep; _repSNRep = repSNRep; } /// /// 获取通用编号 /// /// [HttpGet] [AllowAnonymous] [ApiDescriptionSettings(Name = "GetSerial")] [Description("wmsCommon/getSerial")] public async Task GetSerial([FromQuery] SerialTypeEnum SerialType) { var returnstr = await SerialUtil.GetSerial(SerialType,_repRuleDetailRep,_repSNRep); return returnstr; } /// /// 生成助记码 /// 注意:只能调这个接口,不能自己写方法调,否则可能会导致文件读取冲突造成错误! /// /// [HttpGet] [AllowAnonymous] [ApiDescriptionSettings(Name = "GetMnemonicCode")] [Description("wmsCommon/getMnemonicCode")] public async Task 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(); } } }