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);
}
});
}
}
}