using System;
using MesServerWork;
using MisDataFunDll;

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;
                string OpName1 = "";

                if (tagValue == 1)
                {
                    MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "PLC允许保存数据！");
                    int qualityMask = 1;
                    // 读取返修上线的产品编号
                    MIS_BASE.Read_TagValueByTagTypeID(74, OpName, out EngineID);
                    // 读取返修上线的工位号
                    MIS_BASE.Read_TagValueByTagTypeID(110, OpName, out OpName1);

                    // PDC产线plc只写了发动机号和机型代码，其余要从数据库中读取
                    MisDataFun.Moby_Select_PDC(EngineID, out OrderForm, out EngineType, out EngineTypeID);

                    // 保存过站信息
                    MisDataFun.WorkStartInsert_FX(OpName, OpName1, EngineID, qualityMask);

                    //通知PLC，MES保存完成
                    MIS_BASE.Write_MesReadOver(OpName, true);

                    // 写入加工合格还是不合格 根据工位合格标志写
                    MIS_BASE.Write_OpNameIsOk(OpName, qualityMask);

                    MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "MES保存数据完成！");
                }
                else
                {
                    MIS_BASE.Write_MesReadOver(OpName, false);
                    // 写入加工合格还是不合格 根据工位合格标志写
                    MIS_BASE.Write_OpNameIsOk(OpName, -99);

                    // 写返修上线工位号给PLC
                    MIS_BASE.Write_TagValueByTagTypeID(74, OpName, "");
                    MIS_BASE.Write_TagValueByTagTypeID(110, OpName, "");
                    // 写申请返修上线给PLC
                    MIS_BASE.Write_TagValueByTagTypeID(28, OpName, false);
                    MIS_BASE.Write_EngineTypeID_MES(OpName, 0); // 机型标志（MES）
                    MIS_BASE.Write_EngineID_MES(OpName, ""); // 工件编号（MES）
                    MIS_BASE.Write_EngineType_MES(OpName, ""); // 产品型号（MES）
                    MIS_BASE.Write_OrderForm_MES(OpName, ""); // 订单号(MES)
                    MIS_BASE.Write_MachineTime_ReadOver(OpName, false); // 托盘校验完成
                    MIS_BASE.Write_MesErrorType(OpName, 0); // MES报警点
                    MIS_BASE.Write_TagValueByTagTypeID(93, OpName, 0); // 返修上线标志 
                    MIS_BASE.Write_TagValueByTagTypeID(28, OpName, 0); // 返修点
                    MIS_BASE.Write_TagValueByTagTypeID(118, OpName, 0); // 再起始工位号

                    MisDataFun.LogRecording_OP(OpName, "INFO", "MIS", "PLC允许保存数据取消！");

                }


            }
            catch (Exception err)
            {
                ////ApplicationLog.WriteLog(err, "Function08:MesReadOver");
            }

        }
    }
}
