桁架缓存放行点.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using ServiceCenter.Extensions;
  2. using ServiceCenter.Logs;
  3. using ServiceCenter.SqlSugars;
  4. using System.ComponentModel;
  5. using WCS.Core;
  6. using WCS.Entity;
  7. using WCS.WorkEngineering.Protocol.Station;
  8. using WCS.WorkEngineering.Worlds;
  9. namespace WCS.WorkEngineering.Systems
  10. {
  11. [BelongTo(typeof(MainWorld))]
  12. [Description("桁架缓存放行点")]
  13. public class 桁架缓存放行点 : DeviceSystem<Device<IStation520, IStation521, IStation523>>
  14. {
  15. protected override bool ParallelDo => true;
  16. protected override bool SaveLogsToFile => true;
  17. public override void Do(Device<IStation520, IStation521, IStation523> obj)
  18. {
  19. if (obj.Data.VoucherNo != obj.Data2.VoucherNo) throw new KnownException($"凭证号不一致,DB520:{obj.Data.VoucherNo}-DB521:{obj.Data2.VoucherNo}", LogLevelEnum.High);
  20. if (obj.Data3.Status.HasFlag(StationStatus.Run)) throw new KnownException("设备运行中", LogLevelEnum.Low);
  21. if (obj.Data3.Status.HasFlag(StationStatus.PH_Status) && obj.Data2.Request == 0) throw new KnownException("有光电无请求", LogLevelEnum.Mid);
  22. if (!obj.Data3.Status.HasFlag(StationStatus.PH_Status) && obj.Data2.Request == 1) throw new KnownException("无光电有请求", LogLevelEnum.Mid);
  23. if (!obj.Data3.Status.HasFlag(StationStatus.OT_Status)) throw new KnownException("站台货物信息与实际占用不一致", LogLevelEnum.Low);
  24. if (!obj.Data3.Status.HasFlag(StationStatus.PH_Status)) throw new KnownException("无光电", LogLevelEnum.Mid);
  25. if (obj.Data2.Request != 1) throw new KnownException("无请求", LogLevelEnum.Mid);
  26. SqlSugarHelper.Do(_db =>
  27. {
  28. var db = _db.Default;
  29. var taskInfo = db.Queryable<WCS_TaskInfo>().First(v => v.ID == obj.Data2.TaskNumber) ?? throw new KnownException("未找到对应的WCS任务", LogLevelEnum.Mid);
  30. });
  31. obj.Data.TaskNumber = obj.Data2.TaskNumber;
  32. obj.Data.GoodsStart = obj.Entity.Code.ToShort();
  33. obj.Data.GoodsEnd = 455;
  34. obj.Data.VoucherNo++;
  35. }
  36. public override bool Select(Device dev)
  37. {
  38. return dev.HasFlag(Extensions.DeviceFlags.桁架缓存放行点);
  39. }
  40. }
  41. }