using Newtonsoft.Json;
using ServiceCenter.Extensions;
using ServiceCenter.Redis;
using System.ComponentModel;
using WCS.Core;
using WCS.WorkEngineering.Extensions;
using WCS.WorkEngineering.Worlds;
namespace WCS.WorkEngineering.Systems
{
///
/// 主线分流
///
[BelongTo(typeof(MainWorld))]
[Description("主线分流点")]
public class 主线分流点 : DeviceSystem
{
protected override bool ParallelDo => true;
protected override bool SaveLogsToFile => true;
public override void Do(Station obj)
{
obj.入库站点是否满足执行条件();
//获取条码
var bcr = obj.GetBarCode(World);
//获取到仓库Id
var mainlineDiversion = JsonConvert.DeserializeObject(RedisHub.WMS.Get($"MainlineDiversion{bcr}"));
//更具仓库ID来分配目标地址
int nextAdd = 0;
switch (mainlineDiversion.WarehouseId)
{
case 1:
nextAdd = 0;
break;
case 2:
nextAdd = 0;
break;
case 3:
nextAdd = 0;
break;
case 4:
nextAdd = 0;
break;
case 5:
nextAdd = 0;
break;
case 6:
nextAdd = 0;
break;
}
obj.Data.GoodsStart = obj.Entity.Code.ToShort();
obj.Data.GoodsEnd = nextAdd.ToShort();
obj.Data.TaskNumber = mainlineDiversion.TaskId;
obj.Data.VoucherNo++;
}
public override bool Select(Device dev)
{
return dev.HasFlag(Extensions.DeviceFlags.主线分流点);
}
}
///
/// 主线分流
///
public class MainlineDiversion
{
///
/// 任务号
///
public int TaskId { get; set; }
///
/// 仓库号
///
public int WarehouseId { get; set; }
}
}