| | |
| | | } |
| | | 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 |
| | |
| | | } |
| | | 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) |
| | |
| | | { |
| | | 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(); |
| | |
| | | { |
| | | 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; |
| | |
| | | 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}"); |
| | | } |
| | | } |
| | | |