From fa4fdb9d0c81ca24d6dd22c0e41c436fed359bfa Mon Sep 17 00:00:00 2001 From: zhou keda <1315948824@qq.com> Date: Thu, 4 Jul 2024 09:22:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E6=8F=90=E6=8A=A5=E5=8A=A0?= =?UTF-8?q?=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 7e42c0cc..dcf69b08 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -76,6 +76,7 @@ namespace Tnb.ProductionMgr private readonly IWmsCarryService _wmsCarryService; private readonly ElevatorControlConfiguration _eleCtlCfg = App.Configuration.Build(); private readonly RedisData _redisData; + private static SemaphoreSlim prdreportSemaphore = new(1); public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); public PrdMoTaskService( @@ -1609,32 +1610,34 @@ namespace Tnb.ProductionMgr [HttpPost] public async Task PrdReport(PrdReportCrInput input) { - Log.Information($"生产提报参数:{JsonConvert.SerializeObject(input)}"); - ISqlSugarClient db = _repository.AsSugarClient(); - PrdMoTask? prdMoTask = await db.Queryable().SingleAsync(x => x.id == input.mo_task_id); - EqpEquipment equip = await db.Queryable().SingleAsync(x => x.id == prdMoTask.eqp_id); - BasMaterial basMaterial = await db.Queryable().SingleAsync(x => x.id == prdMoTask.material_id); - PrdReport report = await db.Queryable().FirstAsync(it => it.mo_task_id == input.mo_task_id); - - if (basMaterial == null) - { - throw Oops.Bah($"未找到物料{prdMoTask.material_id}"); - } - - Dictionary dic = new Dictionary() - { - ["30019971917589"] = "外包装箱码垛线" - }; - - Dictionary dic2 = new Dictionary() - { - [WmsWareHouseConst.XUELUGUAN1XIAN] = "WBZX_x1_Enquantity", - [WmsWareHouseConst.XUELUGUAN2XIAN] = "WBZX_x2_Enquantity" - }; - string materialBoxCode = input.material_box_code; - BasLocation location = null; + await prdreportSemaphore.WaitAsync(); try { + Log.Information($"生产提报参数:{JsonConvert.SerializeObject(input)}"); + ISqlSugarClient db = _repository.AsSugarClient(); + PrdMoTask? prdMoTask = await db.Queryable().SingleAsync(x => x.id == input.mo_task_id); + EqpEquipment equip = await db.Queryable().SingleAsync(x => x.id == prdMoTask.eqp_id); + BasMaterial basMaterial = await db.Queryable().SingleAsync(x => x.id == prdMoTask.material_id); + PrdReport report = await db.Queryable().FirstAsync(it => it.mo_task_id == input.mo_task_id); + + if (basMaterial == null) + { + throw Oops.Bah($"未找到物料{prdMoTask.material_id}"); + } + + Dictionary dic = new Dictionary() + { + ["30019971917589"] = "外包装箱码垛线" + }; + + Dictionary dic2 = new Dictionary() + { + [WmsWareHouseConst.XUELUGUAN1XIAN] = "WBZX_x1_Enquantity", + [WmsWareHouseConst.XUELUGUAN2XIAN] = "WBZX_x2_Enquantity" + }; + string materialBoxCode = input.material_box_code; + BasLocation location = null; + await _db.Ado.BeginTranAsync(); int row = -1; PrdMo prdMo = await db.Queryable().SingleAsync(x => x.id == prdMoTask.mo_id); @@ -2181,6 +2184,9 @@ namespace Tnb.ProductionMgr await _db.Ado.RollbackTranAsync(); throw Oops.Bah("提报失败:"+ex.Message); } + finally{ + prdreportSemaphore.Release(); + } // DbResult result = await _repository.AsSugarClient().Ado.UseTranAsync(async () => // {