schangxiang@126.com
2025-01-08 4e475294999e7053036cc162de388010f6ee3132
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -645,6 +645,7 @@
                            else
                            {//其他状态全算待机
                                State = ((int)EnumEquipmentCurrentStateDisplay.待机).ToString();
                                CommonHandleEnumEquipmentCurrentState(db, info, ref State); //公共处理 设备当前状态 [Editby shaocx,2025-01-07]
                            }
                        }
                    }
@@ -755,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
            {
                //如果是OP35,则处理,如果不是,则不处理
                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>