using System;
using MesServerWork;
using MisDataFunDll;
using MisDataSaveDate;
//using SystemFramework;
namespace MesServerFunctions
{
partial class FunctionMES
{
object lockBarcodeEngineTypeGetOver = new object();
///
/// PLC传递机型处理
///
///
///
private void EngineTypeGetOver_PLC(object e)
{
lock(lockBarcodeEngineTypeGetOver)
{
try
{
var msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
//判断PLC机型与MES机型是否一致
if (tagValue == 1)
{
MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "PLC传递机型!");
MIS_BASE.Write_TagValueByTagTypeID(34, OpName, false); // 复位报警(MES)
int EngineTypeID;//机型代码
string EngineType;//机型
string EngineID;//工件编号
string OrderForm; // 工单号
int PartPallet_Code;//托盘编号
int EngineTypeID_MES;//机型代码MES
string EngineType_MES;//机型MES
string EngineID_MES;//工件编号MES
string OrderForm_MES; // 工单号MES
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm);
MIS_BASE.GetEngineTypeFromPLC_MES(OpName, out EngineTypeID_MES, out EngineType_MES, out EngineID_MES, out OrderForm_MES);
// 判断PLC机型是否写入
if (!MisDataBaseFun.EngineTypeVerifyOnLine(OpName, EngineID, EngineTypeID, EngineID_MES, EngineTypeID_MES)) return;
// 调用进站接口
CallWebService.Call_miFindCustomAndSfcData(OpName, EngineID, out string code, out string message);
if (code == "0")
{
string msg = "进站成功:" + EngineID;
MisDataFun.LogRecording_OP(OpName, "INFO", "MOM", msg);
// 机型信息写入数据库
MisDataFun.OpName_MIS_MOBY_Insert_FirstOpName(OpName, EngineTypeID, EngineTypeID_MES, EngineType_MES, EngineType_MES, EngineID, EngineID_MES, PartPallet_Code, OrderForm_MES, OrderForm_MES);
EngineTypeGetOver_PLC_Work(OpName, EngineTypeID, EngineType_MES, EngineID, PartPallet_Code, OrderForm_MES);
}
else
{
string msg = "进站失败:" + EngineID + ",code:" + code + ",message:" + message;
MisDataFun.LogRecording_OP(OpName, "ERROR", "MOM", msg);
}
//// 机型信息写入数据库
//MisDataFun.OpName_MIS_MOBY_Insert_FirstOpName(OpName, EngineTypeID, EngineTypeID_MES, EngineType_MES, EngineType_MES, EngineID, EngineID_MES, PartPallet_Code, OrderForm_MES, OrderForm_MES);
//EngineTypeGetOver_PLC_Work(OpName, EngineTypeID, EngineType_MES, EngineID, PartPallet_Code, OrderForm_MES);
}
else
{
MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "PLC传递机型取消!");
MIS_BASE.Write_FixAllow(OpName, false); // 允许PLC拧紧工作(MES)
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function08:EngineTypeGetOver_PLC");
}
}
}
}
}