StorageSysyem.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System.ComponentModel;
  2. using WCS.Core;
  3. using WCS.WorkEngineering.Extensions;
  4. using WCS.WorkEngineering.WebApi.Controllers;
  5. using WCS.WorkEngineering.Worlds;
  6. using WCS.WorkEngineering.Worlds.Logs;
  7. namespace WCS.WorkEngineering.Systems
  8. {
  9. /// <summary>
  10. /// </summary>
  11. [BelongTo(typeof(SortingMainLineWorld))]
  12. [Description("主线扫码")]
  13. public class StorageSysyem : DeviceSystem<Station>
  14. {
  15. protected override bool ParallelDo => true;
  16. protected override bool SaveLogsToFile => true;
  17. private BCRList BCRS = new BCRList();
  18. public StorageSysyem()
  19. {
  20. BCRS = World.Devices.Where(v => v.IsBCR()).Select(v => new BCR(v)).ToList() as BCRList;
  21. }
  22. public override void Do(Station obj)
  23. {
  24. obj.StorageStationIsForbid();
  25. //判断凭证号是否一致
  26. if (obj.Data.VoucherNo != obj.Data2.VoucherNo) throw new KnownException($"凭证号不一致,DB520:{obj.Data.VoucherNo}-DB521{obj.Data2.VoucherNo}", LogLevelEnum.High);
  27. //设备是否停止运行
  28. if (obj.Data3.Status.HasFlag(Entity.Protocol.Station.StatusEunm.Run)) throw new KnownException("设备运行中", LogLevelEnum.Low);
  29. //获取条码
  30. var barcode = BCRS.GetBCRCode(obj.Entity.Code);
  31. //获取入库任务
  32. var info = WmsApi.I_WCS_GetInTask(barcode, obj.Entity.Code, true);
  33. }
  34. public override bool Select(Device dev)
  35. {
  36. return new int[] { 1701, 2101, 1717, 2117 }.Contains(int.Parse(dev.Code));
  37. }
  38. }
  39. }