using System;
using bizFacade;
//using SystemFramework;
using MesServerWork;
namespace MesServerFunctions
{
partial class Functions_BASE_02
{
///
///1.输入壳体码,只有输入壳体码后才能允许工作
/// 手动输入壳体码,因目前无二维码所以得加这个
///
///
///
public void WorkNumber(object e)
{
try
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
string barcode = Convert.ToString(msgEvent.TagValue).Split('&')[0]; // 壳体码
string distanceNumber = Convert.ToString(msgEvent.TagValue).Split('&')[1]; // 间隔号
int IsAllowWork;
bool IsSuccess = false;
bool IsSuccess2 = false;
bool EngineGetOver_PLC_NextWorkStep;
//工件是否到位
MIS_BASE.Read_WorkStart(OpName, out EngineGetOver_PLC_NextWorkStep);
int EngineTypeID;//机型代码
int PartPallet_Code;//托盘编号
string EngineType;//机型
string EngineID;//工件编号
string OrderForm;
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm);
//此处逻辑有问题 需要考虑到批次扫描 提示PLC未传递机型的情况
if (EngineGetOver_PLC_NextWorkStep)
{
//1.更新壳体码
BaseDataSystemMES.WorkNumber_Edit(OpName, barcode, OrderForm);
// 1.1把输入的壳体码作为物料写到OP010工位里去
//第二步,将零件信息转移到零件_临时表中(本地BOM与订单BOM的选择显示关系)
BaseDataSystemMES.MesServer_Process_EngineTypeOver("OP0010", 1);
//第三步直接验证物料
BaseDataSystemMES.PartMaterial_DM_Update("OP0010", barcode, out IsSuccess2);
//2.显示新MOBY
Sendmessage("5", "1", OpName);
//3.将MOBY写入地址,等待工作完成后保存在码块中
MIS_BASE.Write_EngineID_MES(OpName, barcode);
//1.1 写入间隔号
BaseDataSystemMES.distanceNumber_Edit(distanceNumber, OrderForm);
//4.判断有无要扫的物料,如果没有就直接允许工作
//获取是否允许工作
BaseDataSystemMES.MesServer_Judge_IsCanWork(OpName, out IsAllowWork);
if (IsAllowWork == 1)
{
//通知PLC允许工作,允许工作在保存完成时清空
MIS_BASE.Write_FixAllow(OpName, true);
AsyncSendMessage_Notice(OpName, "壳体码与间隔号修改成功,请开始工作");
}
else
{
AsyncSendMessage_Notice(OpName, "壳体码与间隔号修改成功,请扫描物料");
}
}
else
{
AsyncSendMessage_Notice(OpName, "PLC未传递机型");
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function02:Barcode");
}
}
}
}