From a989fc13c55a1fe5b25008c9d21257f23184f09c Mon Sep 17 00:00:00 2001 From: zhou keda <1315948824@qq.com> Date: Tue, 27 Aug 2024 10:15:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E6=8A=A5bug=20=20=E5=B7=A1=E6=A3=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.ProductionMgr/PrdMoTaskService.cs | 30 +++++++++++++++---- QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs | 1 + QcMgr/Tnb.QcMgr/QcCheckPlanService.cs | 10 ++++++- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs index 65535852..5b52b245 100644 --- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs +++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs @@ -1552,7 +1552,7 @@ namespace Tnb.ProductionMgr if (prdTaskList.Where(p => p.mo_task_status == "Pause").Count() > 0 && behavior==PrdTaskBehavior.Start) { - TimerPoolHelper.GetInstance().StartTimer(TimeCallback,prdTaskList.Where(p => p.mo_task_status == "Pause").ToList(),TimeSpan.FromMinutes(1),Timeout.InfiniteTimeSpan); + TimerPoolHelper.GetInstance().StartTimer(TimeCallback,prdTaskList.Where(p => p.mo_task_status == "Pause").ToList(),TimeSpan.FromHours(1),Timeout.InfiniteTimeSpan); }else if (prdTaskList.Where(p => p.mo_task_status == "ToBeStarted").Count() > 0 && behavior == PrdTaskBehavior.Start) { foreach (PrdMoTask? task in prdTaskList.Where(p => p.mo_task_status == "ToBeStarted").ToList()) @@ -1574,14 +1574,30 @@ namespace Tnb.ProductionMgr if (behavior == PrdTaskBehavior.Start) { - TimerPoolHelper.GetInstance().StartTimer(TimeCallback2,prdTaskList.Where(p => p.mo_task_status == "Pause" || p.mo_task_status == "ToBeStarted").ToList(),TimeSpan.FromMinutes(1),Timeout.InfiniteTimeSpan,false); + List qcCheckPlanAdds = await _db.Queryable + ((a, b, c, d, e) => new object[] + { + JoinType.Inner, a.id == b.mainid, + JoinType.Left, a.id == c.planid && c.materialid == prdTaskList[0].material_id, + JoinType.Left, a.id == d.planid && d.processid == prdTaskList[0].process_id, + JoinType.Left, a.id == e.planid && e.workid == prdTaskList[0].workstation_id, + }).Where((a, b, c, d, e) => b.triggertype == "2" && a.checktype == WmsWareHouseConst.XUNJIAN_ID) + .Where((a, b, c, d, e) => !SqlFunc.IsNullOrEmpty(c.id) || !SqlFunc.IsNullOrEmpty(d.id) || !SqlFunc.IsNullOrEmpty(e.id)) + .Select((a, b) => b).ToListAsync(); + + if (qcCheckPlanAdds.Count == 1) + { + int hour = int.Parse(qcCheckPlanAdds[0].content.Split(" ")[2].Split("/")[1]); + TimerPoolHelper.GetInstance().StartTimer(TimeCallback2,prdTaskList.Where(p => p.mo_task_status == "Pause" || p.mo_task_status == "ToBeStarted").ToList(),TimeSpan.FromHours(hour),Timeout.InfiniteTimeSpan,false); + } + } if (behavior == PrdTaskBehavior.Pause) { foreach (PrdMoTask? task in prdTaskList.Where(p => p.mo_task_status == "ToBeStarted").ToList()) { - TimerPoolHelper.GetInstance().DisposeTimer(new Dictionary() + TimerPoolHelper.GetInstance().DisposeTimer(new Dictionary() { ["key"] = task.timer_key }); @@ -1624,7 +1640,8 @@ namespace Tnb.ProductionMgr triggerevent = EnumTriggerEvent.开工首件检, mo_task_code = task.mo_task_code, newpronum = toolMolds?.mold_cavity, - plan_check_type = WmsWareHouseConst.XUNJIAN_ID + plan_check_type = WmsWareHouseConst.XUNJIAN_ID, + triggertype = "2" // check_type = WmsWareHouseConst.FULLREVIEW_CODE }; await _qcCheckPlanService.CreateTask(entity); @@ -1661,7 +1678,8 @@ namespace Tnb.ProductionMgr triggerevent = EnumTriggerEvent.巡检, mo_task_code = task.mo_task_code, newpronum = toolMolds?.mold_cavity, - plan_check_type = WmsWareHouseConst.XUNJIAN_ID + plan_check_type = WmsWareHouseConst.XUNJIAN_ID, + triggertype = "2" // check_type = WmsWareHouseConst.FULLREVIEW_CODE }; await _qcCheckPlanService.CreateTask(entity); @@ -1924,7 +1942,7 @@ namespace Tnb.ProductionMgr .Where(x => x.id == prdMoTask.id) .ExecuteCommandAsync(); - TimerPoolHelper.GetInstance().DisposeTimer(new Dictionary() + TimerPoolHelper.GetInstance().DisposeTimer(new Dictionary() { ["key"] = prdMoTask.timer_key }); diff --git a/QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs b/QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs index 4ad8af56..5e69c005 100644 --- a/QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs +++ b/QcMgr/Tnb.QcMgr.Entities/Dto/Trigger.cs @@ -56,6 +56,7 @@ namespace Tnb.QcMgr.Entities public string check_type { get; set; } public string plan_check_type { get; set; } public string batch { get; set; } + public string triggertype { get; set; } = "3"; } diff --git a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs index badc4ac4..63f6c4d5 100644 --- a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs +++ b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs @@ -504,7 +504,15 @@ namespace Tnb.QcMgr RemarkAttribute remark = RemarkAttribute.GetRemark(enumTriggerEvent); string type = DictionaryData.Where(p => p.FullName == remark.CheckType).First().Id; TriggerEvent = _repository.AsSugarClient().Queryable().Where(p => p.type == type && p.name == remark.CheckContent).First(); - Query = Query.Where((a, b, c, d, e) => b.triggertype == "3" && b.content!.Contains(TriggerEvent.id) && a.checktype==entity.plan_check_type); + if (entity.triggertype == "3") + { + Query = Query.Where((a, b, c, d, e) => b.triggertype ==entity.triggertype && b.content!.Contains(TriggerEvent.id) && a.checktype==entity.plan_check_type); + } + else + { + Query = Query.Where((a, b, c, d, e) => b.triggertype ==entity.triggertype && a.checktype==entity.plan_check_type); + } + Query = Query.Where((a,b,c,d,e)=>!SqlFunc.IsNullOrEmpty(c.id) || !SqlFunc.IsNullOrEmpty(d.id) || !SqlFunc.IsNullOrEmpty(e.id)); } private void Filter(List QcCheckPlanHs, TriggerPlanEntity entity) {