schangxiang@126.com
2024-09-11 b2ab77f93465d960bd59c349efc5fc69dd4a659a
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs
@@ -20,6 +20,8 @@
using File = System.IO.File;
using Spire.Additions.Xps.Schema;
using log4net;
using static Org.BouncyCastle.Math.EC.ECCurve;
using iWare_SCADA_BusinessLogical.BLL.Important;
namespace iWare_SCADA_BusinessLogical
{
@@ -57,6 +59,8 @@
        {
            if (SystemValue.isStartedImitateModel)
            {
                //模拟代码注释
                /*
                var plcService = PLCManger.GetSinglePLCService(_dataCaptureConfig);
                WorkPieceLogMiddle wplog = new WorkPieceLogMiddle();
                wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
@@ -90,6 +94,7 @@
                //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表
                WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                //*/
                return;
            }
@@ -210,8 +215,9 @@
                                logMiddle.EquipmentID = _dataCaptureConfig.EquipmentID; ;
                                logMiddle.Remarks = WorkingProcedure;
                                logMiddle.MonitoringPoint = DataCapturePointCode;
                                //logMiddle.CreatedUserName = DataCapturePointCode;
                                SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref logMiddle, DataCapturePointCode, DataCapturePointCname);
                                logMiddle.CreatedTime = DateTimeHelper.GetDateTime();
                                logMiddle.CreatedUserName = DataCapturePointCode;
                                logMiddle.UpdatedUserName = Environment.MachineName + "自动" + Thread.CurrentThread.ManagedThreadId.ToString();
                                logMiddle.UpdatedTime = DateTimeHelper.GetDateTime();
                                logMiddle.IsDeleted = false;
@@ -245,6 +251,16 @@
                                try
                                {
                                    switch (DataCapturePointCode)
                                    {
                                        case "OP2002A":
                                        case "OP2002B":
                                        case "OP2002C":
                                            //监控上线
                                            MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, logMiddle.WorkPieceID);
                                            break;
                                    }
                                    if (WorkingProcedure.Equals("OP30"))
                                    {
                                        var time = DateTimeHelper.GetDateTime();
@@ -256,7 +272,9 @@
                                        //获取文件夹名称
                                        List<string> directorylist = new List<string>();
                                        string directory = time.ToString("yyyy-MM-dd_HH");
                                        string directoryOther = time.AddSeconds(-30).ToString("yyyy-MM-dd_HH");
                                        //string directoryOther = time.AddSeconds(-30).ToString("yyyy-MM-dd_HH");
                                        //改为调整30分钟前的文件夹 【Editby shaocx,2024-09-02】
                                        string directoryOther = time.AddMinutes(-30).ToString("yyyy-MM-dd_HH");
                                        directorylist.Add(directory);
                                        if (!directory.Equals(directoryOther))
                                        {//如果30秒前是另一个文件夹
@@ -330,12 +348,12 @@
                                        if (logMiddle.OP35OK)
                                        {
                                            logMiddle.QualityStateStr = "OK";
                                            logMiddle.QualityState = (int)QualityState.OK;
                                            logMiddle.QualityState = (int)QualityStateEnum.OK;
                                        }
                                        else
                                        {
                                            logMiddle.QualityStateStr = "NG";
                                            logMiddle.QualityState = (int)QualityState.NG;
                                            logMiddle.QualityState = (int)QualityStateEnum.NG;
                                        }
                                    }
                                    else if (WorkingProcedure.Equals("OP60"))
@@ -486,7 +504,9 @@
                                            SystemValue.OP20_Side_Value = sideValue;
                                        }
                                        logMiddle.MonitoringPoint += SystemValue.OP20_Side_Value;
                                        logMiddle.CreatedUserName = logMiddle.MonitoringPoint;
                                        //logMiddle.JiaJuGongWei
                                        //logMiddle.CreatedUserName = logMiddle.MonitoringPoint;
                                        SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref logMiddle, logMiddle.MonitoringPoint, DataCapturePointCname);
                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成,是指定的工件{logMiddle.WorkPieceID},工位{gongweiStr},校验通过,读取Op60_Place_Flag:true");
@@ -610,11 +630,9 @@
                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}测量完成读取文件数据时异常,避免工序完成异常:", ex);
                                }
                                //根据质量数据判断是否合格/不合格 【Editby shaocx,2024-06-25】
                                WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle);
                                //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表
                                WorkPieceInfoManager.QualityInfoComplete(logMiddle, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                QualityInfoCompleteManager.QualityInfoComplete(logMiddle, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                threadStatusMonitor.Threadstatue = 1;