using iWare.Wms.Core; using iWare_SCADA_Model; using log4net; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static Org.BouncyCastle.Math.EC.ECCurve; namespace iWare_SCADA_BusinessLogical.Utils { /// /// 监控帮助类,测试用,后期要去掉 /// public class MonitorHelper { /// /// 监控OP3501,测试用,后期要去掉 /// /// /// public static void MonitorTestForOP3501(DataCaptureConfig _dataCaptureConfig, object value, List colConfig, WorkPieceLog wplog) { Task.Run(() => { try { if (_dataCaptureConfig.DataCapturePointCode == "OP3501") { //记录下 触发的点位和找到的二维码值 var str = ""; str = $"OP3501 触发的点位 DbNumber:{_dataCaptureConfig.DbNumber},Offset:{_dataCaptureConfig.Offset},值是{value.ToString()}"; var col = colConfig.First(o => o.DataCapturePointCode == _dataCaptureConfig.DataCapturePointCode && o.DataCapturePointCname == "二维码"); str += $",获取二维码值 DbNumber:{col.DbNumber},Offset:{col.Offset},值是{wplog.WorkPieceID.ToString()}"; //str += $",整体对象 wplog是{JsonConvert.SerializeObject(wplog)}"; Log4NetHelper.WriteInfoLog(LogType.MonitorTest, str); } } catch (Exception ex) { Log4NetHelper.WriteErrorLog(LogType.MonitorTest, "MonitorTestForOP3501异常", ex); } }); } /// /// 监控点位 /// /// /// public static void MonitorTestForLine(DataCaptureConfig _dataCaptureConfig, object value, List colConfig, string workPieceID) { Task.Run(() => { LogType _LogType = PLCManger.GetLogTypeForOnLine(_dataCaptureConfig.DataCapturePointCode); try { //记录下 触发的点位和找到的二维码值 var str = ""; str += $",获取二维码值 ,值是{workPieceID}"; //str += $",整体对象 wplog是{JsonConvert.SerializeObject(wplog)}"; Log4NetHelper.WriteInfoLog(_LogType, str); //不正常的码写入数据库 var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(workPieceID); PieceLogTypeEnum pieceLogTypeEnum = PieceLogTypeEnum.正常; if (isRight == false) { pieceLogTypeEnum = PieceLogTypeEnum.读码值异常; } WorkPieceLog workPieceLog = new WorkPieceLog() { Id = Yitter.IdGenerator.YitIdHelper.NextId(), WorkPieceID = workPieceID, WorkingProcedure = _dataCaptureConfig.WorkingProcedure, CreatedTime = DateTime.Now, CreatedUserName = _dataCaptureConfig.DataCapturePointCode, DataCapturePointCname = _dataCaptureConfig.DataCapturePointCname, MyRemarks = "", Remarks = pieceLogTypeEnum.ToString(), PieceLogType = (int)pieceLogTypeEnum, PieceLogTypeName = pieceLogTypeEnum.ToString() }; using (DbModel db = new DbModel()) { db.WorkPieceLog.Add(workPieceLog); db.SaveChanges(); } } catch (Exception ex) { Log4NetHelper.WriteErrorLog(_LogType, "MonitorTestForLine异常:" + ex.Message, ex); } }); } /// /// 监控点位OP1004 /// /// /// public static void MonitorTestForOP1004(DataCaptureConfig _dataCaptureConfig, object value, List colConfig, string workPieceID, WorkPieceLogMiddle wplog) { Task.Run(() => { LogType _LogType = PLCManger.GetLogTypeForOnLine(_dataCaptureConfig.DataCapturePointCode); try { //记录下 触发的点位和找到的二维码值 var str = ""; str += $",获取二维码值 ,值是{workPieceID}"; //str += $",整体对象 wplog是{JsonConvert.SerializeObject(wplog)}"; Log4NetHelper.WriteInfoLog(_LogType, str); //不正常的码写入数据库 var _MyRemarks = ""; var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(workPieceID); PieceLogTypeEnum pieceLogTypeEnum = PieceLogTypeEnum.正常; if (isRight == false) { pieceLogTypeEnum = PieceLogTypeEnum.读码值异常; if (wplog.OP10Flag == "5") { pieceLogTypeEnum = PieceLogTypeEnum.二维码识别失败; _MyRemarks = $"二维码识别失败,机床返回标记:{wplog.OP10Flag}"; } } else { } switch (wplog.OP10Flag) { case "1": _MyRemarks = $"NOOK推出,机床返回标记:{wplog.OP10Flag}"; break; case "2": case "3": _MyRemarks = $"SPC推出,机床返回标记:{wplog.OP10Flag}"; break; case "4": pieceLogTypeEnum = PieceLogTypeEnum.状态不明; _MyRemarks = $"状态不明,机床返回标记:{wplog.OP10Flag}"; break; case "5": pieceLogTypeEnum = PieceLogTypeEnum.二维码识别失败; _MyRemarks = $"二维码识别失败,机床返回标记:{wplog.OP10Flag}"; break; default: break; } WorkPieceLog workPieceLog = new WorkPieceLog() { Id = Yitter.IdGenerator.YitIdHelper.NextId(), WorkPieceID = workPieceID, WorkingProcedure = _dataCaptureConfig.WorkingProcedure, CreatedTime = DateTime.Now, CreatedUserName = _dataCaptureConfig.DataCapturePointCode, DataCapturePointCname = _dataCaptureConfig.DataCapturePointCname, MyRemarks = _MyRemarks, Remarks = pieceLogTypeEnum.ToString(), PieceLogType = (int)pieceLogTypeEnum, PieceLogTypeName = pieceLogTypeEnum.ToString() }; using (DbModel db = new DbModel()) { db.WorkPieceLog.Add(workPieceLog); db.SaveChanges(); } } catch (Exception ex) { Log4NetHelper.WriteErrorLog(_LogType, "MonitorTestForOP1004异常:" + ex.Message, ex); } }); } } }