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); } } } }