schangxiang@126.com
2024-09-06 2c53ddfdef7167fed7d777ee72e6e445c0ed91d3
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_OP0501.cs
@@ -296,21 +296,41 @@
                                        wplog.KnifeToolEarlyWarningLife = 3;
                                        wplog.KnifeToolSurplusLife = 10;
                                        //快速处理
                                        List<WorkPieceLog> wplogs = new List<WorkPieceLog>();
                                        foreach (var item in filteredRows)
                                        {
                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure),
                                                   $"{_dataCaptureConfig.WorkingProcedure}工序读取工控机中二维码信息,读取工件二维码:{item["打标内容"].ToString()}");
                                            if (item == null) break;
                                            wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                                            wplog.WorkPieceID = item["打标内容"].ToString();
                                            wplog.OfflineTime = Convert.ToDateTime(dataTime);
                                            wplog.Remarks = item["时间"].ToString() + "|" + item["打标内容"].ToString() + "|" + item["打标内容"].ToString() + "|" + item["扫码等级"].ToString() + "|" + item["扫码结果"].ToString();
                                            //转换
                                            WorkPieceLog newLog = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLog>(wplog);
                                            wplogs.Add(newLog);
                                        }
                                        //查询数据,过滤
                                        var queryList = wplogs.Select(x => x.WorkPieceID).ToList();
                                        List<WorkPieceProcess> new_exist_WorkPieceProcess = new List<WorkPieceProcess>();
                                        using (DbModel db = new DbModel())
                                        {
                                            //找到数据库中已有这个工序的数据
                                            new_exist_WorkPieceProcess = db.WorkPieceProcess.Where(o => queryList.Contains(o.WorkPieceID)
                                            && o.WorkingProcedureCurrent == _dataCaptureConfig.WorkingProcedure).ToList();
                                        }
                                        var querynew__exist_WorkPieceProcessList = new_exist_WorkPieceProcess.Select(x => x.WorkPieceID).ToList();
                                        //找到需要新增的数据
                                        wplogs = wplogs.Where(x => !querynew__exist_WorkPieceProcessList.Contains(x.WorkPieceID)).ToList();
                                        foreach (var item in wplogs)
                                        {
                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure),
                                                   $"{_dataCaptureConfig.WorkingProcedure}工序读取工控机中二维码信息,读取工件二维码:{item.WorkPieceID.ToString()}");
                                            WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), null, _dataCaptureConfig.IsFeedback);
                                            threadStatusMonitor.Threadstatue = 1;
                                        }
                                        //记录下最后一个码
                                        lastHandlerWorkPileIDForOP0501 = Convert.ToString(dt.Rows[dt.Rows.Count - 1]["打标内容"]);