using System;
using System.Collections.Generic;
using bizFacade;
using MesServerWork;
//using SystemFramework;


namespace MesServerFunctions
{
    partial class FunctionMES
    {
        /// <summary>
        /// 工件到位与离开时，清空MES自身信号
        /// </summary>
        /// <param name="OpName"></param>
        /// <param name="tagValue"></param>
        private void WorkStart(object e)
        {
            try
            {
                DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
                string OpName = Convert.ToString(msgEvent.OpName);
                int tagValue = Convert.ToInt32(msgEvent.TagValue);

                //线首显示订单信息

                if (tagValue == 1)
                {
                    //MIS_BASE.Write_TagTypeID(115, OpName, 0);
                    //MIS_BASE.Write_TagTypeID(95, OpName, 0);
                    //MIS_BASE.Write_TagTypeID(96, OpName, 0);
                    //MIS_BASE.Write_TagTypeID(97, OpName, 0);
                    //MIS_BASE.Write_TagTypeID(98, OpName, "");
                    //清空MOBY的产品流水号
                    BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.WorkStartIn, DateTime.Now.ToString());
                    BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.WorkStart, tagValue.ToString());
                }
                else
                {
                    // 清除工位数据
                    MIS_BASE.Write_EngineTypeID_MES(OpName, 0);
                    MIS_BASE.Write_EngineType_MES(OpName, "");
                    MIS_BASE.Write_EngineID_MES(OpName, "");
                    MIS_BASE.Write_OrderForm_MES(OpName, "");

                    BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.WorkStartOut, DateTime.Now.ToString());
                    MIS_BASE.Write_MesReadOver(OpName, false);
                    MIS_BASE.Write_ConfirmOkGo(OpName, false);
                    MIS_BASE.Write_FixAllow(OpName, false);
                    MIS_BASE.Write_EngineTypeGetOver_MES(OpName, false);
                    // 清除工位数据
                    MIS_BASE.Write_EngineTypeID_MES(OpName, 0);
                    MIS_BASE.Write_EngineType_MES(OpName, "");
                    MIS_BASE.Write_EngineID_MES(OpName, "");
                    MIS_BASE.Write_OrderForm_MES(OpName, "");

                    BaseDataSystemMES.OpName_MIS_MOBY_Insert(OpName, MobyTagType.WorkStartOut, DateTime.Now.ToString());
                    MIS_BASE.Write_MesReadOver(OpName, false);
                    MIS_BASE.Write_ConfirmOkGo(OpName, false);
                    MIS_BASE.Write_FixAllow(OpName, false);
                    MIS_BASE.Write_EngineTypeGetOver_MES(OpName, false);
                    //工作完成
                    MIS_BASE.Write_MaterialVerifyOver(OpName, false);

                    // 检查项完成
                    MIS_BASE.Write_TagTypeID(30, OpName, 0);
                    string message = "MES|checkWorkOverIsShow|" + OpName + "|" + 0;
                    SendMessage.AsyncSendMessage(message);
                    // 允许保存
                    MIS_BASE.Write_MesRead_PLC(OpName, false);
                    // 申请上线
                    MIS_BASE.Write_PartLoad_PLC(OpName, false);
                    // 重新申请上线
                    MIS_BASE.WritePLC(35, OpName, 0);
                }
            }
            catch(Exception err)
            {
                ////ApplicationLog.WriteLog(err, "Function08:WorkStart");
            }
        }
    }
}
