using MesServerWork;
using MisDataFunDll;
using System;
using System.Data;
using WebApi;
namespace MesServerFunctions
{
partial class FunctionMES
{
///
/// 请求叫料
///
///
private void CallMaterials(object e)
{
try
{
DeviceDriver_BasicData.CustomeEvetnArgs msgEvent = (DeviceDriver_BasicData.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
string msg;
if (tagValue == 1)
{
// 记录叫料请求状态
MisDataFun.Location_MIS_MOBY_Insert(OpName, "CallMaterials", "1");
MisDataFun.Location_MIS_MOBY_Insert(OpName, "配送类型", "2");
// 调用叫料接口
// deliveryType: 1退托盘,2叫料,3送料,4转序
DataTable outType = MisDataFun.GetRequestReturnMaterials_Type(OpName, "2");
string sendType = outType.Rows[0]["type"].ToString();
bool isOk = CALL_Inerface_DataHandle.CALL_Inerface_CallMaterial(OpName, sendType);
if (isOk)
{
// 发送消息通知
msg = $"【{OpName}】请求叫料成功";
MIS_BASE.WritePLC(306, OpName, 1); // 任务状态反馈
}
else
{
msg = $"【{OpName}】请求叫料失败";
MIS_BASE.WritePLC(306, OpName, 2); // 任务状态反馈
}
SendMessage.AsyncSendMessage_Notice(OpName, msg);
MyLog4Net.MyLogHelper.Info("CallMaterials", msg);
}
else
{
MisDataFun.Location_MIS_MOBY_Insert(OpName, "CallMaterials", "0");
MIS_BASE.WritePLC(301, OpName, false); // 请求进入
MIS_BASE.WritePLC(302, OpName, false); // 托盘到位
MIS_BASE.WritePLC(303, OpName, false); // AGV已离开
MIS_BASE.WritePLC(305, OpName, "0"); // 比对结果
MIS_BASE.WritePLC(304, OpName, false); // 比对完成
MIS_BASE.WritePLC(306, OpName, 0); // 任务状态反馈
}
}
catch (Exception err)
{
MisDataSaveDate.FuntionMesRead.Alarm_SaveFileLog4Error(System.Reflection.MethodBase.GetCurrentMethod().Name, e, "Fun1054", err);
}
}
}
}