using ServiceCenter.Extensions; using ServiceCenter.Logs; using ServiceCenter.SqlSugars; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using WCS.Core; using WCS.Entity; using WCS.WorkEngineering.Extensions; using WCS.WorkEngineering.Protocol.BCR; using WCS.WorkEngineering.Protocol.SRM; using WCS.WorkEngineering.Protocol.Station; using WCS.WorkEngineering.WebApi.Controllers; using WCS.WorkEngineering.Worlds; using static System.Runtime.InteropServices.JavaScript.JSType; using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags; namespace WCS.WorkEngineering.Systems { /// /// 装箱区呼叫空托盘组及隔板 /// [BelongTo(typeof(MainWorld))] [Description("装箱区呼叫空托盘组及隔板")] public class 装箱区呼叫空托盘组及隔板 : DeviceSystem> { protected override bool ParallelDo => true; protected override bool SaveLogsToFile => true; private List devs = new List(); private List srms = new List(); public override void Do(Device obj) { World.Log($"设备号{obj.Entity.Code}PH_Status{obj.Data3.Status.HasFlag(StationStatus.PH_Status)}-Run{obj.Data3.Status.HasFlag(StationStatus.Run)}-OT_Status{obj.Data3.Status.HasFlag(StationStatus.OT_Status)}-UnassignedTask{obj.Data3.Status.HasFlag(StationStatus.UnassignedTask)}-Auto{obj.Data3.Status.HasFlag(StationStatus.Auto)}"); if (!obj.Data3.Status.HasFlag(StationStatus.PH_Status) //无光电 && !obj.Data3.Status.HasFlag(StationStatus.Run) //未运行 && !obj.Data3.Status.HasFlag(StationStatus.OT_Status) //无任务 && !obj.Data3.Status.HasFlag(StationStatus.UnassignedTask)) //未分配任务 //&& obj.Data3.Status.HasFlag(StationStatus.Auto))//自动 { SqlSugarHelper.Do(_db => { var target = (obj.Entity.Code.ToShort() + 1).ToString(); var db = _db.Default; //找到对应任务 var taskInfo = db.Queryable().First(v => v.AddrTo == target); //未找到对应任务 if (taskInfo == null) { //向WMS申请空托盘组出库任务及隔板 if (obj.Entity.Code == "8027") { WmsApi.I_WCS_GetOutTask("TPC", target); } else WmsApi.I_WCS_GetOutTask("Jiangeban", target); } }); } } public override bool Select(Device dev) { return dev.Code == "8027" || dev.Code == "8087" || dev.Code == "8093" || dev.Code == "8312"; } } }