StationExtension.cs 3.1 KB

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