schangxiang@126.com
2024-09-11 716ba664ed10d0d3db50284d7570b2e0d8407d7b
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
{
@@ -55,8 +57,10 @@
        public override void DataCaptureStart()
        {
            if (SystemValue.isStartedModel)
            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秒前是另一个文件夹
@@ -306,11 +324,11 @@
                                                    logMiddle.QualityOP30To1 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Y-Maximum");//涨断力矩
                                                    break;
                                                case "OP3002CH4":
                                                    logMiddle = GetCH4Info(files[0].FullName, logMiddle);
                                                    logMiddle = GetCH4InfoForOP30(files[0].FullName, logMiddle);
                                                    logMiddle.OP30QualityFilePathCH4 = files[0].FullName;
                                                    break;
                                                case "OP3002CH5":
                                                    logMiddle = GetCH5Info(files[0].FullName, logMiddle);
                                                    logMiddle = GetCH5InfoForOP30(files[0].FullName, logMiddle);
                                                    logMiddle.OP30QualityFilePathCH5 = files[0].FullName;
                                                    break;
                                                case "OP3002CH6":
@@ -330,10 +348,12 @@
                                        if (logMiddle.OP35OK)
                                        {
                                            logMiddle.QualityStateStr = "OK";
                                            logMiddle.QualityState = (int)QualityStateEnum.OK;
                                        }
                                        else
                                        {
                                            logMiddle.QualityStateStr = "NG";
                                            logMiddle.QualityState = (int)QualityStateEnum.NG;
                                        }
                                    }
                                    else if (WorkingProcedure.Equals("OP60"))
@@ -453,7 +473,7 @@
                                                        }
                                                        op60QualityTime = op60Infos[0].datetimeHandle;
                                                        break;
                                                    }
@@ -484,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");
@@ -608,17 +630,9 @@
                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}测量完成读取文件数据时异常,避免工序完成异常:", ex);
                                }
                                //根据质量数据判断是否合格/不合格 【Editby shaocx,2024-06-25】
                                QualityNoOkEnum? qualityNoOkEnum = null;
                                QualityState qualityState = WorkPieceInfoManager.CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum);
                                logMiddle.QualityState = (int)qualityState;
                                if (qualityNoOkEnum != null)
                                {
                                    logMiddle.QualityNoOk = (int)qualityNoOkEnum;
                                    logMiddle.QualityNoOkReason = qualityNoOkEnum.ToString();
                                }
                                //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表
                                WorkPieceInfoManager.QualityInfoComplete(logMiddle, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                QualityInfoCompleteManager.QualityInfoComplete(logMiddle, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                threadStatusMonitor.Threadstatue = 1;
@@ -716,7 +730,7 @@
            }
        }
        public WorkPieceLogMiddle GetCH4Info(string FullName, WorkPieceLogMiddle wplog)
        public WorkPieceLogMiddle GetCH4InfoForOP30(string FullName, WorkPieceLogMiddle wplog)
        {
            try
            {
@@ -780,7 +794,7 @@
        }
        public WorkPieceLogMiddle GetCH5Info(string FullName, WorkPieceLogMiddle wplog)
        public WorkPieceLogMiddle GetCH5InfoForOP30(string FullName, WorkPieceLogMiddle wplog)
        {
            try
            {
@@ -874,6 +888,6 @@
        }
    }
}