using System.Text.Json; using OMS.NET.Common; using OMS.NET.DbClass; namespace OMS.NET.Instructs { public class PickEndElementInstruct : Instruct { public PickEndElementInstruct() { Type = "broadcast"; Class = "pickEndElement"; } public override Task Handler(string wsid) { return Task.Run(() => { if (!GlobalArea.LoginCheckByID(wsid)) return;//登录检查,不通过则直接退出 if (Data?.GetType() != typeof(JsonElement)) return;//Data 非空和JsonElement类型检查 try { long id = Data.GetInt64(); string conveyor = GlobalArea.GetLoginEmailByID(wsid); if (GlobalArea.IsElementExit(id))//已存在activedata项 { ActiveDataElement activeDataElement = GlobalArea.GetActiveDataElement(id)!; if (activeDataElement.Pick?.Email == conveyor) { activeDataElement.Pick = null; string time = GlobalArea.GetCurrentTime(); ResponseOrBroadcastInstructs.Add(new PickEndElementInstruct() { IsBroadcast = true, Conveyor = conveyor, Time = time, Data = id }); } } } catch (Exception ex) { GlobalArea.Log.Warn($"处理{this.Class}广播指令出错:" + ex.Message); } }); } } }