using ServiceCenter.Logs; using ServiceCenter.SqlSugars; using SqlSugar; using System.ComponentModel; using WCS.Core; using WCS.Entity; using WCS.Entity.Protocol.BCR; using WCS.Entity.Protocol.Station; using WCS.WorkEngineering.Extensions; //using WCS.WorkEngineering.WebApi.Controllers; //using WCS.WorkEngineering.WebApi.Models.WMS.Request; using WCS.WorkEngineering.Worlds; using wms.util; using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags; namespace WCS.WorkEngineering.Systems { /// /// 单轮子入库提升 /// [BelongTo(typeof(MainWorld))] [Description("入库提升")] public class 入库提升 : DeviceSystem> { protected override bool ParallelDo => false; public override void Do(Device obj) { if (obj.Data2.TaskNumber == 0) return; if (obj.Data3.Status.HasFlag(StationStatus.高位)) obj.Data.CmdType = 0; if (obj.Data.VoucherNo != obj.Data2.VoucherNo) return; if (!obj.Data3.Status.HasFlag(StationStatus.中位)) return; if (obj.Data3.Status.HasFlag(StationStatus.上升_右转_伸出)) return; if (obj.Data3.Status.HasFlag(StationStatus.下降_左转_缩回)) return; var tunnel = obj.Entity.GetFlag("Tunnel"); var floor = short.Parse(obj.Entity.GetFlag("Floor")); SqlSugarHelper.Do(db => { var qty = db.Default.Queryable() //.Where(v => v.Tunnel == tunnel) .Where(v => v.Floor == floor) .Where(v => v.Type == TaskType.EnterDepot) .Where(v => v.Status<= Entity.TaskStatus.巷道分配 && v.Status > Entity.TaskStatus.NewBuild) .Where(v => v.ID != obj.Data2.TaskNumber).Count(); if (qty == 0) { obj.Data.CmdType = StationCmd.Res7; obj.Data.VoucherNo++; } }); } public override bool Select(Device dev) { return dev.HasFlag("位置", "顶升");// && dev.GetFlag("Floor") == "1"; } } }