StationExtension.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using ServiceCenter.Logs;
  2. using ServiceCenter.Redis;
  3. using WCS.Core;
  4. using WCS.WorkEngineering.Protocol.Station;
  5. namespace WCS.WorkEngineering.Extensions
  6. {
  7. public class Station : Device<IStation520, IStation521, IStation523>
  8. {
  9. public Station(Device device, World world) : base(device, world)
  10. {
  11. }
  12. /// <summary>
  13. /// 入库站点是否被禁止
  14. /// </summary>
  15. /// <returns></returns>
  16. public void 入库站点是否被禁止()
  17. {
  18. var config = RedisHub.Default.Check("ForbidTubuEnter") ?? throw new Exception("请在Redis中配置入库口禁用");
  19. var configs = config.Split(",");
  20. if (configs.Contains(Entity.Code)) throw new KnownException("当前入库口已被禁用,请联系运维人员了解具体情况", LogLevelEnum.High);
  21. }
  22. /// <summary>
  23. /// 入库站点是否满足执行条件
  24. /// </summary>
  25. /// <returns></returns>
  26. public void 入库站点是否满足执行条件()
  27. {
  28. if (Data.VoucherNo != Data2.VoucherNo) throw new KnownException($"凭证号不一致,DB520:{Data.VoucherNo}-DB521:{Data2.VoucherNo}", LogLevelEnum.High);
  29. if (Data3.Status.HasFlag(StationStatus.Run)) throw new KnownException("设备运行中", LogLevelEnum.Low);
  30. if (Data3.Status.HasFlag(StationStatus.PH_Status) && Data2.Request == 0) throw new KnownException("有光电无请求", LogLevelEnum.Mid);
  31. if (!Data3.Status.HasFlag(StationStatus.PH_Status) && Data2.Request == 1) throw new KnownException("无光电有请求", LogLevelEnum.Mid);
  32. if (!Data3.Status.HasFlag(StationStatus.OT_Status)) throw new KnownException("站台货物信息与实际占用不一致", LogLevelEnum.Low);
  33. }
  34. /// <summary>
  35. /// 主线分流点是否满足执行条件
  36. /// </summary>
  37. /// <returns></returns>
  38. public void 主线分流点是否满足执行条件()
  39. {
  40. if (Data.VoucherNo != Data2.VoucherNo) throw new KnownException($"凭证号不一致,DB520:{Data.VoucherNo}-DB521:{Data2.VoucherNo}", LogLevelEnum.High);
  41. if (Data3.Status.HasFlag(StationStatus.Run)) throw new KnownException("设备运行中", LogLevelEnum.Low);
  42. if (Data3.Status.HasFlag(StationStatus.PH_Status) && Data2.Request == 0) throw new KnownException("有光电无请求", LogLevelEnum.Mid);
  43. if (!Data3.Status.HasFlag(StationStatus.PH_Status) && Data2.Request == 1) throw new KnownException("无光电有请求", LogLevelEnum.Mid);
  44. if (!Data3.Status.HasFlag(StationStatus.OT_Status)) throw new KnownException("站台货物信息与实际占用不一致", LogLevelEnum.Low);
  45. }
  46. public void GetBarCode()
  47. {
  48. }
  49. }
  50. }