schangxiang@126.com
2025-01-02 d021a6ed089cd06fa460c0e0e303261173fdc16a
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/BLL/WorkPieceInfoManager.cs
@@ -1,4 +1,5 @@
using HslCommunication.BasicFramework;
using iWare.Wms.Core;
using iWare_SCADA_BusinessLogical.Utils;
using iWare_SCADA_Model;
using iWare_SCADA_Model.MiddleModel;
@@ -58,13 +59,16 @@
        public static WorkPieceLog GetAddWorkPieceLog(WorkPieceLog loginfo)
        {
            loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            PieceLogTypeEnum pieceLogTypeEnum = PieceLogTypeEnum.正常;
            loginfo.PieceLogType = (int)pieceLogTypeEnum;
            loginfo.PieceLogTypeName = pieceLogTypeEnum.ToString();
            return loginfo;
        }
        public static WorkPieceLog GetAddWorkPieceLog1(WorkPieceLogMiddle loginfo)
        {
            loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
            return loginfo;
        }
        //public static WorkPieceLog GetAddWorkPieceLog1(WorkPieceLogMiddle loginfo)
        //{
        //    loginfo.Id = Yitter.IdGenerator.YitIdHelper.NextId();
        //    return loginfo;
        //}
        /// <summary>
        /// 通过WorkPieceInfo   给WorkPieceInfoLog 属性赋值
        /// </summary>
@@ -156,7 +160,7 @@
            }
        }
        public static WorkPieceLogMiddle QualityDataHand(WorkPieceLogMiddle loginfo, List<EquipmentQualityConfig> qcofig)
        {
            try
@@ -250,7 +254,7 @@
            return loginfo;
        }
        /// <summary>
        /// 赋值 修改人 【Editby shaocx,2024-07-05】
@@ -266,8 +270,8 @@
            return logMiddle.MonitoringPoint;
        }
        public static void SetWorkingProcedureCurrentForOP10(WorkPieceInfo cur_db_info, ref string set_WorkingProcedureCurrent)
@@ -299,7 +303,7 @@
            }
        }
        public static void AlertMonitor(WorkPieceLog loginfo, LogType type)
        {
@@ -638,10 +642,6 @@
                            {//自动运行状态+下料道满料 =  完成 (就是有生产出来但没有出设备)
                                State = ((int)EnumEquipmentCurrentStateDisplay.完成).ToString();
                            }
                            //else if (loginfo.IsNormalProduction && loginfo.LackMaterial)
                            //{//其他状态全算待机
                            //    State = ((int)EnumEquipmentCurrentStateDisplay.待机).ToString();
                            //}
                            else
                            {//其他状态全算待机
                                State = ((int)EnumEquipmentCurrentStateDisplay.待机).ToString();
@@ -731,164 +731,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)
                    //    {//正常生产+下料道满料 =  完成 (就是有生产出来但没有出设备)
                    //        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();