¶Ô±ÈÐÂÎļþ |
| | |
| | | using iWare_SCADA_BusinessLogical.BLL; |
| | | using iWare_SCADA_BusinessLogical.Utils; |
| | | using iWare_SCADA_Model; |
| | | using iWare_SCADA_Model.MiddleModel; |
| | | using log4net; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data.Entity.Core.Common.CommandTrees; |
| | | using System.Data.Entity.Validation; |
| | | using System.Data.SqlTypes; |
| | | using System.Diagnostics; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | using System.Web.UI.WebControls; |
| | | using System.Windows.Forms; |
| | | |
| | | namespace iWare_SCADA_BusinessLogical |
| | | { |
| | | /// <summary> |
| | | /// OP80è´¨éæ°æ®éé |
| | | /// </summary> |
| | | public class OP80QualityDataHandler : DataCaptureHandler |
| | | { |
| | | public static readonly OP80QualityDataHandler Instance = new OP80QualityDataHandler(); |
| | | public static readonly string path = ConfigHelper.GetConfigString("OP80QualityData");//OP80çå°å |
| | | public static readonly string query_WorkingProcedureCurrent = "OP80"; |
| | | public static readonly string _DataCapturePointCode = "OP8002"; |
| | | public static readonly LogType logType = LogType.PLCOP80_QC; |
| | | |
| | | public OP80QualityDataHandler() |
| | | { |
| | | } |
| | | |
| | | public override string WorkingProcedure |
| | | { |
| | | get { return _dataCaptureConfig.WorkingProcedure; } |
| | | } |
| | | |
| | | public override string DataCapturePointCode |
| | | { |
| | | get { return _dataCaptureConfig.DataCapturePointCode; } |
| | | } |
| | | public override string DataCapturePointCname |
| | | { |
| | | get { return _dataCaptureConfig.DataCapturePointCname; } |
| | | } |
| | | |
| | | |
| | | public override void RefreshDataList(List<DataCaptureConfig> dataCaptureConfig) |
| | | { |
| | | } |
| | | |
| | | public override void DataCaptureStart() |
| | | { |
| | | while (true) |
| | | { |
| | | try |
| | | { |
| | | Do(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(logType, $"OP80è´¨éæ°æ®ééå¼å¸¸ï¼", ex); |
| | | } |
| | | finally |
| | | { |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void Do() |
| | | { |
| | | using (DbModel db = new DbModel()) |
| | | { |
| | | try |
| | | { |
| | | ThreadStatusMonitorMiddle threadStatusMonitor = new ThreadStatusMonitorMiddle(); |
| | | threadStatusMonitor.ErrorMsg = ""; |
| | | threadStatusMonitor.Threadcode = logType.ToString(); |
| | | threadStatusMonitor.Threadcname = "OP80è´¨éæ°æ®éé"; |
| | | threadStatusMonitor.Threadendtime = DateTime.Now; |
| | | threadStatusMonitor.Threadstatue = 0; |
| | | threadStatusMonitor.ThreadId = Thread.CurrentThread.ManagedThreadId.ToString(); |
| | | threadStatusMonitor.Threadlastmodifytime = DateTime.Now; |
| | | |
| | | var processList = db.WorkPieceProcess.Where(o => o.WorkingProcedureCurrent == query_WorkingProcedureCurrent && o.GetQcDataFlag == 0 |
| | | ).OrderBy(x => x.CreatedTime).ToList(); |
| | | foreach (var item in processList) |
| | | { |
| | | var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == item.WorkPieceID).FirstOrDefault(); |
| | | if (qualityData == null) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(logType, $"OP80è´¨éæ°æ®ééå¼å¸¸,æ ¹æ®å·¥ä»¶å·{item.WorkPieceID}æ²¡ææ¾å°è´¨éæ°æ®"); |
| | | continue; |
| | | } |
| | | WorkPieceInfo info = db.WorkPieceInfo.Where(o => o.WorkPieceID == item.WorkPieceID).FirstOrDefault(); |
| | | if (info == null) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(logType, $"OP80è´¨éæ°æ®ééå¼å¸¸,æ ¹æ®å·¥ä»¶å·{item.WorkPieceID}æ²¡ææ¾å°å·¥ä»¶æ°æ®"); |
| | | continue; |
| | | } |
| | | |
| | | Do_One(db, info, item, qualityData, WorkingProcedure); |
| | | |
| | | Thread.Sleep(1000); |
| | | } |
| | | |
| | | WorkPieceInfoManager.ThreadMonitor(threadStatusMonitor); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(logType, $" OP80è´¨éæ°æ®ééå¼å¸¸ï¼{e.Message} {e.StackTrace}"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void Do_One(DbModel db, WorkPieceInfo info, WorkPieceProcess pieceProcess, QualityDataInfo qualityData, string WorkingProcedure) |
| | | { |
| | | try |
| | | { |
| | | if (WorkingProcedure.Equals("OP80")) |
| | | { |
| | | var time = DateTimeHelper.GetDateTime(); |
| | | |
| | | //OP80 éè¦æ«ææä»¶è¯»åè´¨éä¿¡æ¯ |
| | | //æ«æä¿®æ¹æ¶é´å¨ä¸æ¬¡æ«ææ¶é´ä¹å30ç§å°å½åæ¶é´çä¹é´çæä»¶ |
| | | List<FileInfo> files = new List<FileInfo>(); |
| | | var newFiles = FileHelper.DetectNewFilesCSV(path, 300, time.AddDays(-7), time.AddDays(1)); |
| | | foreach (var file in newFiles) |
| | | { |
| | | files.Add((FileInfo)file); |
| | | } |
| | | //files = files.OrderByDescending(o => o.LastWriteTime).ToList(); |
| | | files = files.OrderBy(o => o.LastWriteTime).ToList();//æ¶é´ååº |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"OP80ä¸çº¿å®æè¯»åå°æä»¶{files.Count()}个工件{pieceProcess.WorkPieceID} "); |
| | | |
| | | bool isGetQcSuccess = false; |
| | | |
| | | foreach (var file in files) |
| | | {//åååºå¹é
çæä»¶å为工件å·çæä»¶ |
| | | if (file.Name.Contains(pieceProcess.WorkPieceID)) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"OP80ä¸çº¿å®æè¯»åå°æä»¶{file.Name}ï¼æ¯æå®ç工件{pieceProcess.WorkPieceID}"); |
| | | |
| | | WorkPieceLogMiddle wplog = new WorkPieceLogMiddle(); |
| | | wplog.WorkPieceID = pieceProcess.WorkPieceID; |
| | | wplog.WorkingProcedure = _DataCapturePointCode; |
| | | wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | | wplog.EquipmentID = _dataCaptureConfig.EquipmentID; ; |
| | | wplog.Remarks = wplog.WorkingProcedure; |
| | | wplog.MonitoringPoint = _DataCapturePointCode; |
| | | wplog.CreatedTime = DateTimeHelper.GetDateTime(); |
| | | wplog.CreatedUserName = _DataCapturePointCode; |
| | | wplog.UpdatedTime = DateTimeHelper.GetDateTime(); |
| | | wplog.UpdatedUserName = Environment.MachineName + "èªå¨" + Thread.CurrentThread.ManagedThreadId.ToString(); |
| | | wplog.IsDeleted = false; |
| | | |
| | | WorkPieceLog loginfo2 = new WorkPieceLog(); |
| | | loginfo2 = EntityPropHelper.Mapper<WorkPieceLog, WorkPieceLogMiddle>(wplog); |
| | | |
| | | var datatable = CSVHelper.ReadCSVList(file.FullName); |
| | | List<string> rowFirst = new List<string>(); |
| | | List<string> rowSecond = new List<string>(); |
| | | if (datatable.Count == 2) |
| | | { |
| | | rowFirst = datatable[0].Split(',').ToList(); |
| | | rowSecond = datatable[1].Split(',').ToList(); |
| | | if (rowSecond.Count < 11) |
| | | { |
| | | continue; |
| | | } |
| | | //æ¥æåæ¶é´ æ¹å·/æ è¯å· åµå¥å·/ä¸»è½´å· æä½ç¬¦ ææ¬ æµéæº è¿ç¨åæ° æµéç³»ç» è¿ç¨åæ°å¼ åºåå· é¶ä»¶è¯å«å· 1 |
| | | OP80Info oP80Info = new OP80Info(); |
| | | oP80Info.æ¥æåæ¶é´ = rowSecond[0]; |
| | | oP80Info.æ¹å· = rowSecond[1]; |
| | | oP80Info.åµå¥å· = rowSecond[2]; |
| | | oP80Info.æä½ç¬¦ = rowSecond[3]; |
| | | oP80Info.ææ¬ = rowSecond[4]; |
| | | oP80Info.æµéæº = rowSecond[5]; |
| | | oP80Info.è¿ç¨åæ° = rowSecond[6]; |
| | | oP80Info.æµéç³»ç» = rowSecond[7]; |
| | | oP80Info.è¿ç¨åæ°å¼ = rowSecond[8]; |
| | | oP80Info.åºåå· = rowSecond[9]; |
| | | oP80Info.é¶ä»¶è¯å«å· = rowSecond[10]; |
| | | for (int i = 1; i <= (rowSecond.Count - 11) / 10; i++) |
| | | { |
| | | if (rowSecond.Count < (11 + i * 10)) |
| | | { |
| | | break; |
| | | } |
| | | //åç§° ç¸å¯¹å¼ ç¸å¯¹å¼åä½ ç»å¯¹å¼ ç»å¯¹å¼åä½ åä¹å¼ ä¸é ä¸é ç¶æ/ç级 åé符 |
| | | OP80ItemInfo item = new OP80ItemInfo(); |
| | | item.åé符 = rowSecond[1 + i * 10];//ä¾å¦ï¼* 表头ï¼ç¶æ |
| | | item.åç§° = rowSecond[2 + i * 10];//ä¾å¦ï¼Weight Big End 表头ï¼* |
| | | item.ç¸å¯¹å¼ = rowSecond[3 + i * 10];//ä¾å¦ï¼-2.8 表头ï¼ç®è¿° |
| | | item.ç¸å¯¹å¼åä½ = rowSecond[4 + i * 10];//ä¾å¦ï¼gr 表头ï¼Weight Big End |
| | | item.ç»å¯¹å¼ = rowSecond[5 + i * 10];//ä¾å¦ï¼371.66 è¡¨å¤´ï¼æµéåä½ |
| | | item.ç»å¯¹å¼åä½ = rowSecond[6 + i * 10];//ä¾å¦ï¼gr 表头ï¼ç»å¯¹å¼ |
| | | item.åä¹å¼ = rowSecond[7 + i * 10];//ä¾å¦ï¼374.5 表头ï¼ç»å¯¹å¼æµéåä½ï¼UoMï¼ |
| | | item.ä¸é = rowSecond[8 + i * 10];//ä¾å¦ï¼10.5 表头ï¼åä¹å¼ |
| | | item.ä¸é = rowSecond[9 + i * 10];//ä¾å¦ï¼-10.5 表头ï¼USLå¼ |
| | | item.ç¶æ = rowSecond[10 + i * 10];//ä¾å¦ï¼3 表头ï¼LSLå¼ |
| | | oP80Info.OP80ItemInfolist.Add(item); |
| | | if (item.åç§°.Equals("Weight Class") || item.åç§°.Equals("Weight Small End") |
| | | || item.åç§°.Equals("Weight Big End") || item.åç§°.Equals("Dime Small_End Class") |
| | | || item.åç§°.Equals("Dime Big_End Class")) |
| | | { |
| | | } |
| | | else |
| | | { |
| | | if (!string.IsNullOrEmpty(item.ç¶æ)) |
| | | { |
| | | oP80Info.OP80ItemStatusInfolist.Add(item); |
| | | } |
| | | } |
| | | } |
| | | if (oP80Info.OP80ItemStatusInfolist.Count > 0) |
| | | { |
| | | if (oP80Info.OP80ItemStatusInfolist.Any(o => !o.ç¶æ.Equals("OK"))) |
| | | { |
| | | wplog.QualityStateStr = "NG"; |
| | | } |
| | | else |
| | | { |
| | | wplog.QualityStateStr = "OK"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | wplog.QualityStateStr = "OK"; |
| | | } |
| | | |
| | | |
| | | wplog.OP80QualityFilePath = file.FullName; |
| | | wplog.OP80NewCode = oP80Info.æ¹å·?.Replace("#", ""); |
| | | //大头éé |
| | | wplog.QualityOP80To1 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Weight Big End")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //å°å¤´éé |
| | | wplog.QualityOP80To2 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Weight Small End")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //æ»é |
| | | wplog.QualityOP80To3 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Total Weight")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //å¼¯æ² |
| | | wplog.QualityOP80To4 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Bend to A")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //æåº¦ |
| | | wplog.QualityOP80To5 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Twist to A")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //大头åç´åº¦ |
| | | wplog.QualityOP80To6 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Big_End_C_Squareness")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //å°å¤´åç´åº¦ |
| | | wplog.QualityOP80To10 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Sma_End_C_Squareness")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //大头ååç»çº§å« |
| | | wplog.QualityOP80To7 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Dime Big_End Class")).FirstOrDefault()?.ç¶æ; |
| | | //å°å¤´ååç»çº§å« |
| | | wplog.QualityOP80To8 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Dime Small_End Class")).FirstOrDefault()?.ç¶æ; |
| | | //ééç»å« |
| | | wplog.QualityOP80To9 = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Weight Class")).FirstOrDefault()?.ç¶æ; |
| | | //wplog.Remarks = (wplog.Remarks ?? "") + $"OP80ä¸çº¿å®æè¯»åæä»¶{file.FullName},æ°æ®ã{wplog.OP80NewCode??"空"}ãã{wplog.QualityOP80To1 ?? "空"}ãã{wplog.QualityOP80To2 ?? "空"}ãã{wplog.QualityOP80To3 ?? "空"}ãã{wplog.QualityOP80To4 ?? "空"}ãã{wplog.QualityOP80To5 ?? "空"}ã"; |
| | | |
| | | //æ°å¢OP80çä¸äºè´¨éæ°æ® ãEditby shaocx,2024-06-13ã |
| | | wplog.QualityOP80_Houdu = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Big_End_Thickness")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_ZXJ = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Distance of Two Head")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_DTKYZD = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Big_End_Cylindricity")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_XTSMYD = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Small_End_Top_Roundn")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_XTXMYD = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Small_End_Bot_Roundn")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | |
| | | |
| | | wplog.QualityOP80_D_S_X = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Big_End_Top_X_Dia.")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_D_S_Y = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Big_End_Top_Y_Dia.")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_D_X_X = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Big_End_Bot_X_Dia.")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_D_X_Y = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Big_End_Bot_Y_Dia.")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //计ç®å¤§å¤´åç´å¾,大头åç´å¾=ï¼å¤§å¤´ä¸é¢Xæ¹åç´å¾+大头ä¸é¢Yæ¹åç´å¾+大头ä¸é¢Xæ¹åç´å¾+大头ä¸é¢Yæ¹åç´å¾ï¼/4 |
| | | List<decimal> valueList = new List<decimal>() { |
| | | SystemHelper.GetDecimal(wplog.QualityOP80_D_S_X), |
| | | SystemHelper.GetDecimal(wplog.QualityOP80_D_S_Y), |
| | | SystemHelper.GetDecimal(wplog.QualityOP80_D_X_X), |
| | | SystemHelper.GetDecimal(wplog.QualityOP80_D_X_Y), |
| | | }; |
| | | wplog.QualityOP80_D_TKZJ = SystemHelper.CalcDecimalAvg(valueList, 3); |
| | | |
| | | |
| | | wplog.QualityOP80_X_S_X = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Small_End_Top_X_Dia.")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_X_S_Y = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Small_End_Top_Y_Dia.")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_X_X_X = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Small_End_Bot_X_Dia.")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | wplog.QualityOP80_X_X_Y = oP80Info.OP80ItemInfolist.Where(o => o.åç§°.Equals("Small_End_Bot_Y_Dia.")).FirstOrDefault()?.ç»å¯¹å¼; |
| | | //计ç®å°å¤´åç´å¾,å°å¤´åç´å¾=ï¼å°å¤´ä¸é¢Xæ¹åç´å¾+å°å¤´ä¸é¢Yæ¹åç´å¾+å°å¤´ä¸é¢Xæ¹åç´å¾+å°å¤´ä¸é¢Yæ¹åç´å¾ï¼/4 |
| | | valueList = new List<decimal>(); |
| | | valueList = new List<decimal>() { |
| | | SystemHelper.GetDecimal(wplog.QualityOP80_X_S_X), |
| | | SystemHelper.GetDecimal(wplog.QualityOP80_X_S_Y), |
| | | SystemHelper.GetDecimal(wplog.QualityOP80_X_X_X), |
| | | SystemHelper.GetDecimal(wplog.QualityOP80_X_X_Y), |
| | | }; |
| | | wplog.QualityOP80_X_TKZJ = SystemHelper.CalcDecimalAvg(valueList, 3); |
| | | |
| | | } |
| | | else |
| | | { |
| | | wplog.Remarks = (wplog.Remarks ?? "") + $"OP80ä¸çº¿å®æè¯»åæä»¶{file.FullName}å¼å¸¸ï¼è¡æ°ä¸æ¯2è¡"; |
| | | } |
| | | |
| | | |
| | | //æ´æ°WorkPieceInfo表以åæå
¥WorkPieceLog表åWorkPieceInfoLog表 |
| | | info.OP80NewCode = wplog.OP80NewCode;//æ´æ°æåå |
| | | |
| | | info.QualityState = (int)((wplog.QualityStateStr.Equals("OK") || wplog.QualityStateStr.Equals("0K")) ? QualityState.OK : QualityState.NG); |
| | | wplog.QualityState = info.QualityState; |
| | | info.QualityStateUpdateUser = wplog.UpdatedUserName; |
| | | info.QualityStateUpdateTime = wplog.UpdatedTime.Value.LocalDateTime; |
| | | info.QualityStateUpdateMode = QualityStateUpdateMode.Auto.ToString(); |
| | | |
| | | //var qualityData = db.QualityDataInfo.Where(o => o.WorkPieceID == wplog.WorkPieceID).FirstOrDefault(); |
| | | //if (qualityData == null || qualityData.WorkPieceID.Length < 1 || qualityData.WorkingProcedure.Length < 1) |
| | | //{//æå
¥QualityDataInfo表 |
| | | // qualityData = EntityPropHelper.Mapper<QualityDataInfo, WorkPieceLog>(wplog); |
| | | // db.QualityDataInfo.Add(GetAddQualityDataInfo(qualityData)); |
| | | //} |
| | | //ä¿®æ¹QualityDataInfo表 //é夿¶å°è´¨éä¿¡æ¯ï¼ä¼è¦çä¹åç |
| | | EntityPropHelper<WorkPieceLogMiddle, QualityDataInfo>.CopyProp(wplog, qualityData, WorkPieceInfoManager.GetQualityDataInfoUpdate(wplog.WorkingProcedure, wplog.MonitoringPoint));//æå®ä¿®æ¹å段 |
| | | |
| | | qualityData.QualityStateUpdateUser = info.UpdatedUserName; |
| | | qualityData.QualityReceiveTime = info.UpdatedTime.Value.LocalDateTime; |
| | | qualityData.QualityStateUpdateMode = info.QualityStateUpdateMode; |
| | | qualityData.OP80QualityState = wplog.QualityState.HasValue ? wplog.QualityState.Value.ToString() : "3"; |
| | | qualityData.OP80QualityReceiveTime = DateTimeHelper.GetDateTime(); |
| | | qualityData.OP80QualityFilePath = wplog.OP80QualityFilePath; |
| | | long op80id = qualityData.Id; |
| | | if (op80id > 0) |
| | | { |
| | | pieceProcess.QualityDataInfoID = op80id; |
| | | } |
| | | loginfo2.Remarks = (loginfo2.Remarks ?? "") + $"è´¨éï¼{wplog.QualityStateStr ?? "空"}"; |
| | | if (!info.QualityState.Equals(((int)QualityState.OK).ToString())) |
| | | { |
| | | info.QualityErrorInfo = $"{wplog.WorkingProcedure}å·¥åºè´¨éééæ°æ®ä¸åæ ¼"; |
| | | } |
| | | else |
| | | { |
| | | info.QualityErrorInfo = ""; |
| | | } |
| | | |
| | | pieceProcess.GetQcDataCount = (pieceProcess.GetQcDataCount ?? 0) + 1; |
| | | pieceProcess.GetQcDataFlag_Remark = "æ¾å°æä»¶"; |
| | | pieceProcess.GetQcDataFlag = 1; |
| | | |
| | | db.WorkPieceLog.Add(WorkPieceInfoManager.GetAddWorkPieceLog(loginfo2));//æå
¥å·¥ä»¶é鿥å¿è¡¨ |
| | | |
| | | //转移æä»¶ |
| | | var toPath = file.FullName.Replace("CA4GC20TD", "CA4GC20TD_COPY"); |
| | | File.Move(file.FullName, toPath);//ç§»å¨ |
| | | |
| | | db.SaveChanges(); |
| | | |
| | | isGetQcSuccess = true; |
| | | |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | } |
| | | if (isGetQcSuccess == false) |
| | | { |
| | | pieceProcess.GetQcDataCount = (pieceProcess.GetQcDataCount ?? 0) + 1; |
| | | pieceProcess.GetQcDataFlag_Remark = "æ²¡ææ¾å°æä»¶"; |
| | | if (pieceProcess.GetQcDataCount >= 10) |
| | | { |
| | | pieceProcess.GetQcDataFlag = 2; |
| | | } |
| | | |
| | | db.SaveChanges(); |
| | | |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"OP80ä¸çº¿å®æè¯»åæä»¶æ²¡ææ¾å°æå®å·¥ä»¶{info.WorkPieceID}çæä»¶"); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"æå®å·¥ä»¶{info.WorkPieceID},OP80ä¸çº¿å®æè¯»åæä»¶æ°æ®æ¶å¼å¸¸,é¿å
å·¥åºå®æå¼å¸¸ï¼", ex); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |