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