From 4e475294999e7053036cc162de388010f6ee3132 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 08 1月 2025 07:33:02 +0800 Subject: [PATCH] 202518-修复op35设备状态不对的问题 --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs | 201 ++++++++++---------------------------------------- 1 files changed, 40 insertions(+), 161 deletions(-) diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs index 6f034ad..b4c5868 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs @@ -642,13 +642,10 @@ {//鑷姩杩愯鐘舵��+涓嬫枡閬撴弧鏂� = 瀹屾垚 锛堝氨鏄湁鐢熶骇鍑烘潵浣嗘病鏈夊嚭璁惧锛� State = ((int)EnumEquipmentCurrentStateDisplay.瀹屾垚).ToString(); } - //else if (loginfo.IsNormalProduction && loginfo.LackMaterial) - //{//鍏朵粬鐘舵�佸叏绠楀緟鏈� - // State = ((int)EnumEquipmentCurrentStateDisplay.寰呮満).ToString(); - //} else {//鍏朵粬鐘舵�佸叏绠楀緟鏈� State = ((int)EnumEquipmentCurrentStateDisplay.寰呮満).ToString(); + CommonHandleEnumEquipmentCurrentState(db, info, ref State); //鍏叡澶勭悊 璁惧褰撳墠鐘舵�� [Editby shaocx,2025-01-07] } } } @@ -735,164 +732,7 @@ equlogalert.WarnEndTime = DateTimeHelper.GetDateTime(); } } - #region 鍘熸潵鐨勪唬鐮侊紝浠ュ悗鍒犳帀 - //EquipmentWorkingLog infolog =new EquipmentWorkingLog(); - //infolog.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - //infolog.LogAddTime = DateTimeHelper.GetDateTime(); - //infolog.WorkPieceLogID = loginfo2.Id; - //infolog.EquipmentID = info.EquipmentID; - //bool isAddEquipmentWorkingLog = false; - //if (loginfo.ischeckAlertStatus) - //{//鍛婅鐘舵�佸彂鐢熷彉鏇� - // //璇存槑鏄竴涓柊鍛婅锛岄渶瑕佹洿鏂拌澶囩洃鎺ц〃 - // //鏌ユ壘鏈粨鏉熺殑鍛婅 - // var equlog = db.EquipmentWorkingLog.Where(o => o.EquipmentID == loginfo.EquipmentID - // && o.FailureStartTime != null && o.FailureStartTime != DateTime.MinValue) - // .OrderByDescending(o=>o.FailureStartTime).FirstOrDefault(); - // if (loginfo.IsCloseAlert) - // { - // if (equlog == null|| (equlog.FailureEndTime!=null&& equlog.FailureEndTime > DateTime.MinValue)) - // { - // info.AlertTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - // infolog.FailureStartTime = DateTimeHelper.GetDateTime(); - // infolog.FailureType = faultall; - // infolog.FailureMsg = faultmsg; - // infolog.WorkingProcedure = loginfo.WorkingProcedure; - // infolog.MonitoringPoint = loginfo.MonitoringPoint; - // infolog.Remarks = "鏁呴殰淇℃伅鍑虹幇鍙樻洿1"; - // infolog.UpdateDesc = (infolog.UpdateDesc??"")+"鏁呴殰淇℃伅鍙樻洿\r\n"; - // isAddEquipmentWorkingLog =true; - // } - // } - // else - // { - // if (equlog != null && (equlog.FailureEndTime == null || equlog.FailureEndTime <= DateTime.MinValue)) - // {//鍛婅鍏抽棴鐨勶紝鑻ユ病鏈夊憡璀︿俊鎭紝涓嶇敤绠� - // equlog.MonitoringPoint = loginfo.MonitoringPoint; - // equlog.FailureEndTime = DateTimeHelper.GetDateTime(); - // } - - // } - //} - //if (loginfo.ischeckMessageStatus) - //{//鍛婅鐘舵�佸彂鐢熷彉鏇� - // //璇存槑鏄竴涓柊鍛婅锛岄渶瑕佹洿鏂拌澶囩洃鎺ц〃 - // //鏌ユ壘鏈粨鏉熺殑鍛婅 - // var equlog = db.EquipmentWorkingLog.Where(o => o.EquipmentID == loginfo.EquipmentID - // && o.WarnStartTime != null && o.WarnStartTime != DateTime.MinValue).OrderByDescending(o => o.WarnStartTime).FirstOrDefault(); - // if (loginfo.IsMessage) - // { - // if (equlog == null || (equlog.WarnEndTime != null && equlog.WarnEndTime > DateTime.MinValue)) - // { - // info.WarnTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); - // infolog.WarnStartTime = DateTimeHelper.GetDateTime(); - // infolog.WarnType = alertall; - // infolog.Warnmsg = warnmsg; - // infolog.WorkingProcedure = loginfo.WorkingProcedure; - // infolog.MonitoringPoint = loginfo.MonitoringPoint; - // infolog.Remarks = "鍛婅淇℃伅鍑虹幇鍙樻洿2"; - // infolog.UpdateDesc = (infolog.UpdateDesc ?? "") + "鍛婅淇℃伅鍙樻洿\r\n"; - // isAddEquipmentWorkingLog = true; - // } - // } - // else - // { - // if (equlog != null && (equlog.WarnEndTime == null || equlog.WarnEndTime <= DateTime.MinValue)) - // {//鍛婅鍏抽棴鐨勶紝鑻ユ病鏈夊憡璀︿俊鎭紝涓嶇敤绠� - // equlog.MonitoringPoint = loginfo.MonitoringPoint; - // equlog.WarnEndTime = DateTimeHelper.GetDateTime(); - // } - - // } - //} - ////鏁呴殰銆嬭鍛娿�嬪叾浠� - //if (loginfo.IsCloseAlert) - //{//鏁呴殰 - // info.AlertTime = info.AlertTime??DateTime.Now; - // info.FailureType = ""; - // info.WarnType = ""; - // info.Alertmsg = faultmsg;//杩欎釜闇�瑕佷唬鐮佸搴斿瓧鍏哥淮鎶や俊鎭墠鐭ラ亾 - // info.FailureType = faultall; - // State = ((int)EnumEquipmentCurrentStateDisplay.鏁呴殰).ToString(); - - - // infolog.FailureStartTime = DateTimeHelper.GetDateTime(); - // infolog.FailureType = faultall; - // infolog.FailureMsg = faultmsg; - // if (loginfo.IsMessage) - // { - // info.WarnTime = info.WarnTime ?? DateTime.Now; - // info.Warnmsg = warnmsg;//杩欎釜闇�瑕佷唬鐮佸搴斿瓧鍏哥淮鎶や俊鎭墠鐭ラ亾 - // info.WarnType = alertall; - // } - //} - //else if(loginfo.IsMessage) - //{//璀﹀憡 - // info.AlertTime = null; - // info.Alertmsg = "";//杩欎釜闇�瑕佷唬鐮佸搴斿瓧鍏哥淮鎶や俊鎭墠鐭ラ亾 - // info.FailureType = ""; - - // info.WarnTime = info.WarnTime ?? DateTime.Now; - // info.Warnmsg = warnmsg;//杩欎釜闇�瑕佷唬鐮佸搴斿瓧鍏哥淮鎶や俊鎭墠鐭ラ亾 - // info.WarnType = alertall; - - // infolog.WarnStartTime = DateTimeHelper.GetDateTime(); - // infolog.WarnType = alertall; - // infolog.Warnmsg = warnmsg; - // State = ((int)EnumEquipmentCurrentStateDisplay.璀﹀憡).ToString(); - //} - //else - //{//鍛婅缁撴潫锛岃幏鍙栨湁鍛婅鐨勬暟鎹紝鐒跺悗鍏抽棴浠� - // info.AlertTime = null; - // info.Alertmsg = "";//杩欎釜闇�瑕佷唬鐮佸搴斿瓧鍏哥淮鎶や俊鎭墠鐭ラ亾 - // info.FailureType = ""; - // info.WarnType = ""; - // info.WarnTime = null; - // info.Warnmsg = ""; - // if (loginfo.IsNormalProduction&& loginfo.LackMaterial) - // { - // State = ((int)EnumEquipmentCurrentStateDisplay.寰呮満).ToString(); - // } - // else if(loginfo.IsNormalProduction && !loginfo.LackMaterial) - // { - // State = ((int)EnumEquipmentCurrentStateDisplay.鐢熶骇).ToString(); - // } - // else if(loginfo.IsNormalProduction && loginfo.FullMaterial) - // {//姝e父鐢熶骇+涓嬫枡閬撴弧鏂� = 瀹屾垚 锛堝氨鏄湁鐢熶骇鍑烘潵浣嗘病鏈夊嚭璁惧锛� - // State = ((int)EnumEquipmentCurrentStateDisplay.瀹屾垚).ToString(); - // } - // else - // {//鐞嗚涓婁笉鍙兘璧板埌杩欙紝鍙槸閬垮厤绌哄�� - // State = ((int)EnumEquipmentCurrentStateDisplay.寰呮満).ToString(); - // } - //} - //if (!string.IsNullOrEmpty(State) && State != info.EquipmentCurrentState) - //{//鍙湁鐘舵�佸嚭鐜板彉鍖栨墠鍙樻洿 - // info.UpdatedUserName = loginfo.MonitoringPoint; - // info.UpdatedTime = DateTime.Now; - // info.EquipmentCurrentState = State; - - // var equlog = db.EquipmentWorkingLog.Where(o => o.EquipmentID == loginfo.EquipmentID - // && o.EquipmentStateStartTime != null && o.EquipmentStateStartTime != DateTime.MinValue).OrderByDescending(o => o.EquipmentStateStartTime).FirstOrDefault(); - - // if (equlog != null && (equlog.EquipmentStateEndTime == null || equlog.EquipmentStateEndTime <= DateTime.MinValue)) - // { - // equlog.MonitoringPoint = loginfo.MonitoringPoint; - // equlog.EquipmentStateEndTime = DateTimeHelper.GetDateTime(); - - // } - // //鐘舵�佸彉鏇达紝闇�瑕佹洿鏂板師鏉ョ殑锛屽苟鎻掑叆鏂扮殑 - // infolog.EquipmentState = State; - // infolog.EquipmentStateStartTime = DateTimeHelper.GetDateTime(); - // infolog.WorkingProcedure = loginfo.WorkingProcedure; - // infolog.MonitoringPoint = loginfo.MonitoringPoint; - // infolog.Remarks = "鍛婅淇℃伅鍑虹幇鍙樻洿3"; - // infolog.UpdateDesc = (infolog.UpdateDesc ?? "") + $"璁惧鐘舵�佸彉鏇翠负{((EnumEquipmentCurrentStateDisplay)int.Parse(State)).ToString()}\r\n"; - // isAddEquipmentWorkingLog = true; - //} - ////info.Remarks = $"{loginfo.WorkingProcedure}宸ュ簭鍛婅"; - #endregion if (isAddEquipmentCurrentMonitor) { info.Id = Yitter.IdGenerator.YitIdHelper.NextId(); @@ -916,6 +756,45 @@ /// <summary> + /// 鍏叡澶勭悊 璁惧褰撳墠鐘舵�� + /// </summary> + /// <param name="db"></param> + /// <param name="info"></param> + /// <param name="state"></param> + private static void CommonHandleEnumEquipmentCurrentState(DbModel db, EquipmentCurrentMonitor info, ref string state) + { + try + { + //濡傛灉鏄疧P35锛屽垯澶勭悊锛屽鏋滀笉鏄紝鍒欎笉澶勭悊 + var query_WorkingProcedure = "OP35"; + if (info.WorkingProcedure == query_WorkingProcedure) + { + var quereyCreateTime = DateTime.Now.AddMinutes(-5); + //鍒ゆ柇10鍒嗛挓涔嬪唴 锛屽彧杩� 涓嶅嚭 + var num = db.WorkPieceProcess.Where(o => o.WorkingProcedureCurrent == query_WorkingProcedure + && (o.EndTime == null || o.EndTime <= DateTime.MinValue) + && o.CreatedTime >= quereyCreateTime + ).Count(); + if (num > 0) + { + state = ((int)EnumEquipmentCurrentStateDisplay.鐢熶骇).ToString(); + return; + } + } + else + { + return; + } + return; + } + catch (Exception) + { + return; + } + } + + + /// <summary> /// 蹇冭烦鐩戞帶 /// </summary> /// <param name="loginfo"></param> -- Gitblit v1.9.3