MVP!
This commit is contained in:
151
MisDataFunction/Function1052/OpcServer/MesRead.cs
Normal file
151
MisDataFunction/Function1052/OpcServer/MesRead.cs
Normal file
@@ -0,0 +1,151 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using MesDataFunction;
|
||||
using MesServerWork;
|
||||
using MisDataFunDll;
|
||||
using MisDataSaveDate;
|
||||
|
||||
namespace MesServerFunctions
|
||||
{
|
||||
partial class FunctionMES
|
||||
{
|
||||
/// <summary>
|
||||
/// 保存完成(针对半自动和手动压装工位)
|
||||
/// </summary>
|
||||
/// <param name="OpName"></param>
|
||||
/// <param name="tagValue"></param>
|
||||
private void MesRead(object e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
|
||||
string OpName = Convert.ToString(msgEvent.OpName);
|
||||
int tagValue = Convert.ToInt32(msgEvent.TagValue);
|
||||
|
||||
int EngineTypeID;
|
||||
string EngineType;
|
||||
string EngineID;
|
||||
int PartPallet_Code;
|
||||
string OrderForm;
|
||||
|
||||
if (tagValue == 1)
|
||||
{
|
||||
MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "PLC允许保存数据!");
|
||||
MIS_BASE.Read_QualityMask(OpName, out int qualityMask);
|
||||
|
||||
#region 工位特殊操作部分
|
||||
//// 判断是否需要手动选择OK/NG 不需要了 按照PLC给的合格标志做
|
||||
//if (MisDataFun.GetSpecialOpExist(OpName, "手动OKNG放行"))
|
||||
//{
|
||||
// MIS_BASE.Read_ConfirmOkGo(OpName, out bool okGo);
|
||||
// MIS_BASE.Read_FalseGo(OpName, out bool falseGo);
|
||||
// if (!okGo && !falseGo)
|
||||
// {
|
||||
// string errMsg = $"【{OpName}】请在界面选择 OK/NG 放行";
|
||||
// MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", errMsg);
|
||||
// SendMessageFun.AsyncSendMessage_Notice(OpName, errMsg);
|
||||
// return;
|
||||
// }
|
||||
// if (okGo) qualityMask = 1;
|
||||
// if (falseGo) qualityMask = 2;
|
||||
//}
|
||||
#endregion
|
||||
|
||||
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm);
|
||||
|
||||
string code;
|
||||
string message;
|
||||
if (MisDataFun.GetSpecialOpExist(OpName, "自动入箱工位"))
|
||||
{
|
||||
// 把模组码和箱体码绑定到执行计划列表中 DBB640-679
|
||||
string TrunEngineID = MIS_BASE.Read_TagValueByTagTypeID(203, OpName);
|
||||
// 调用接口进行物料装配验证
|
||||
CallWebService.Call_miAssmebleAndCollectDataForSfc(OpName, EngineID, TrunEngineID,"", out code, out message);
|
||||
if (code != "0")
|
||||
{
|
||||
MisDataFun.LogRecording_OP(OpName, "ERROR", "MIS", "PACK装配模组失败!message: " + message);
|
||||
return;
|
||||
}
|
||||
// 把PLC给得 模组码存入Pack中 同时给 模组记录Pack信息
|
||||
MisDataFun.WorkPlan_TurnLine(EngineID, TrunEngineID, 1);
|
||||
}
|
||||
|
||||
// PDC产线plc只写了发动机号和机型代码,其余要从数据库中读取
|
||||
MisDataFun.Moby_Select_PDC(EngineID, out OrderForm, out EngineType, out EngineTypeID);
|
||||
|
||||
// 保存质量数据
|
||||
MisDataSaveDateMesRead.Funtion.MesRead(OpName, tagValue.ToString(), msgEvent.TagID.ToString());
|
||||
|
||||
//MisDataFun.MOM_SaveQDataToUpload(OpName, EngineID); // 数据存至临时表
|
||||
MisDataFun.WorkStartInsert(OpName, qualityMask); // 保存不合格过站信息
|
||||
|
||||
// 判断是否存在首件标志
|
||||
if (MIS_BASE.Read_TagValueByTagTypeID(62, OpName) == "1") MisDataFun.Save_FristWorkData(OpName, EngineID); // 第一个产品 存首件数据
|
||||
|
||||
// 保存物料数据
|
||||
MisDataFun.Material_Insert(OpName, qualityMask);
|
||||
// 从数据库查出质量数据组 MOM_质量数据_上传_查询
|
||||
MisDataFun.GetPartQualityGroupParams(OpName, EngineID, out DataTable dt_quality);
|
||||
// 调用工厂MES出站接口
|
||||
if (dt_quality.Rows.Count > 0)
|
||||
{
|
||||
CallWebService.Call_dataCollectForSfcEx(OpName, EngineID, dt_quality, qualityMask, out code, out message);
|
||||
}
|
||||
else
|
||||
{
|
||||
CallWebService.Call_sfcComplete(OpName, EngineID, qualityMask, out code, out message);
|
||||
}
|
||||
if (code == "0")
|
||||
{
|
||||
MIS_BASE.Write_OpNameIsOk(OpName, qualityMask); // 写入加工合格还是不合格 根据工位合格标志写
|
||||
|
||||
}
|
||||
else if (code == "13921") // 质量判定不合格 走不合格放行
|
||||
{
|
||||
qualityMask = 2;
|
||||
MIS_BASE.Write_OpNameIsOk(OpName, qualityMask);
|
||||
MisDataFun.WorkStartInsert(OpName, qualityMask); // 保存不合格过站信息
|
||||
}
|
||||
else
|
||||
{
|
||||
string msg = "出站失败:" + EngineID + ",code:" + code + ",message:" + message;
|
||||
MisDataFun.LogRecording_OP(OpName, "ERROR", "MOM", msg);
|
||||
return;
|
||||
}
|
||||
// 保存过站信息
|
||||
MisDataFun.WorkStartInsert(OpName, qualityMask);
|
||||
|
||||
// 如果不合格 同时 是人工PC工位 则 需要屏幕上点放行后才能放行
|
||||
if (qualityMask != 1 && MisDataFun.GetSpecialOpExist(OpName, "人工PC工位"))
|
||||
{
|
||||
SendInfomation("showOpWorkFalseGoBox", "1", OpName); // 显示不合格刷卡放行弹窗
|
||||
MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", $"{EngineID} 产品不合格 待人工确认后不合格放行!");
|
||||
return;
|
||||
}
|
||||
|
||||
//通知PLC,MES工作完成
|
||||
MIS_BASE.Write_MesWorkFinish(OpName, true);
|
||||
//通知PLC,MES保存完成
|
||||
MIS_BASE.Write_MesReadOver(OpName, true);
|
||||
|
||||
MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "MES保存数据完成!");
|
||||
MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "MES工作完成!");
|
||||
}
|
||||
else
|
||||
{
|
||||
MIS_BASE.Write_MesReadOver(OpName, false);
|
||||
MIS_BASE.Write_MesWorkFinish(OpName, false);
|
||||
// 写入加工合格还是不合格 根据工位合格标志写
|
||||
MIS_BASE.Write_OpNameIsOk(OpName, -99);
|
||||
MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "PLC允许保存数据取消!");
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
////ApplicationLog.WriteLog(err, "Function08:MesReadOver");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user