2
schangxiang@126.com
2024-06-20 b1be28f2cf472d32da64292c8b7d11bf4bebf16a
2
已修改1个文件
48 ■■■■ 文件已修改
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs
@@ -460,6 +460,7 @@
                                    }
                                    else if (WorkingProcedure.Equals("OP20"))
                                    {
                                        var gongweiStr = DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1);
                                        //记录公用变量,保存点位M88的信息 【Editby shaocx,2024-06-07】
                                        if (DataCapturePointCode.Contains("OP2002C"))
                                        {//从OP2002C读取,因为顺序是 CBA,而不是ABC
@@ -468,6 +469,8 @@
                                        }
                                        wplog.MonitoringPoint += SystemValue.OP20_Side_Value;
                                        wplog.CreatedUserName = wplog.MonitoringPoint;
                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成,是指定的工件{wplog.WorkPieceID},工位{gongweiStr},校验通过,读取Op60_Place_Flag:true");
                                        var time = DateTimeHelper.GetDateTime();
                                        if (fileFindTime == null)
@@ -482,21 +485,31 @@
                                        {
                                            files.Add((FileInfo)file);
                                        }
                                        //注意:一定要筛选制定的文件数据
                                        files = files.Where(x => x.Name.Contains("SP-" + gongweiStr)).OrderByDescending(o => o.LastWriteTime).ToList();//筛选取最新的文件 【Editby shaocx,2024-06-19】
                                        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"工位【{DataCapturePointCode}】工件【{wplog.WorkPieceID ?? "空字符"}】获取到【{files.Count()}】个文件,【{fileFindTime.Value}】【{time.AddHours(2)}】");
                                        if (files.Count() > 0)
                                        {
                                            bool isFindFile = false;
                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{files.Count()}个,是指定的工件{wplog.WorkPieceID},工位{gongweiStr},上次获取尼伯丁文件里的时间值:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
                                            files = files.OrderByDescending(o => o.LastWriteTime).ToList();
                                            List<OP60Info> op60Infos = new List<OP60Info>();
                                            foreach (var file in files)
                                            //注意:只取第一个文件就可以啦!!!!!! 【Editby shaocx,2024-06-19】
                                            var doFiles = new List<FileInfo>() { files.First() };
                                            foreach (var file in doFiles)
                                            {//取倒序匹配的文件名为工件号的文件
                                                if (file.Name.Contains("SP-" + DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1)))
                                                if (file.Name.Contains("SP-" + gongweiStr))
                                                {
                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},上次获取尼伯丁文件里的时间值:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
                                                    isFindFile = true;
                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},工位{gongweiStr},上次获取尼伯丁文件里的时间值:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}");
                                                    var datatable = CSVHelper.ReadCSVList(file.FullName);
                                                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取文件{file.Name},指定工件号{wplog.WorkPieceID},,工位{gongweiStr}发现文件行数{datatable.Count}");
                                                    if (datatable.Count < 57)
                                                    {//质量数据从106行开始
                                                        Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取文件{file.Name},指定工件号{wplog.WorkPieceID},,工位{gongweiStr}发现文件行数{datatable.Count}小于106");
                                                        continue;
                                                    }
                                                    datatable.Reverse();
@@ -523,20 +536,32 @@
                                                    {
                                                        if (op60QualityTime.HasValue)
                                                        {
                                                            //if (op60Infos[0].datetimeHandle > op60QualityTime.Value)
                                                            //{
                                                            //    wplog.QualityOP20To1 = op60Infos[0].value;
                                                            //    wplog.OP20QualityFilePath = file.FullName;
                                                            //}
                                                            //else
                                                            //{
                                                            //    break;
                                                            //}
                                                            wplog.QualityOP20To1 = op60Infos[0].value;
                                                            wplog.OP20QualityFilePath = file.FullName;
                                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},工位{gongweiStr}成功赋值了OP20QualityFilePath等字段,读取时间:{op60Infos[0].datetimeHandle.ToString()}");
                                                            if (op60Infos[0].datetimeHandle > op60QualityTime.Value)
                                                            {
                                                                wplog.QualityOP20To1 = op60Infos[0].value;
                                                                wplog.OP20QualityFilePath = file.FullName;
                                                            {//这个时间判断要不要拿掉?? 【Editby shaocx,2024-06-19】
                                                            }
                                                            else
                                                            {
                                                                break;
                                                                var msg = $",只是警告!因为判断时间不符合,op60Infos[0].datetimeHandle:{(op60Infos[0].datetimeHandle == null ? "" : op60Infos[0].datetimeHandle.ToString())}小于等于op60QualityTime:{(op60QualityTime.Value == null ? "" : op60QualityTime.Value.ToString())}";
                                                                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},工位{gongweiStr}没能赋值OP60QualityFilePath等字段,{msg}");
                                                            }
                                                        }
                                                        else
                                                        {
                                                            wplog.QualityOP20To1 = op60Infos[0].value;
                                                            wplog.OP20QualityFilePath = file.FullName;
                                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},工位{gongweiStr}成功赋值了OP20QualityFilePath等字段,读取时间:{op60Infos[0].datetimeHandle.ToString()}");
                                                        }
                                                        op60QualityTime = op60Infos[0].datetimeHandle;
                                                        break;
@@ -548,6 +573,15 @@
                                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取文件{file.FullName}不是指定工件{wplog.WorkPieceID}");
                                                }
                                            }
                                            if (isFindFile == false)
                                            {
                                                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成没有找到文件,指定工件{wplog.WorkPieceID},工位{gongweiStr}");
                                            }
                                        }
                                        else
                                        {
                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成,通过筛选过滤,没有找到文件,指定工件{wplog.WorkPieceID},工位{gongweiStr}");
                                        }
                                    }