入库提升.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using ServiceCenter.Logs;
  2. using ServiceCenter.SqlSugars;
  3. using SqlSugar;
  4. using System.ComponentModel;
  5. using WCS.Core;
  6. using WCS.Entity;
  7. using WCS.Entity.Protocol.BCR;
  8. using WCS.Entity.Protocol.Station;
  9. using WCS.WorkEngineering.Extensions;
  10. //using WCS.WorkEngineering.WebApi.Controllers;
  11. //using WCS.WorkEngineering.WebApi.Models.WMS.Request;
  12. using WCS.WorkEngineering.Worlds;
  13. using wms.util;
  14. using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;
  15. namespace WCS.WorkEngineering.Systems
  16. {
  17. /// <summary>
  18. /// 单轮子入库提升
  19. /// </summary>
  20. [BelongTo(typeof(MainWorld))]
  21. [Description("入库提升")]
  22. public class 入库提升 : DeviceSystem<Device<IStation520, IStation521, IStation523>>
  23. {
  24. protected override bool ParallelDo => false;
  25. public override void Do(Device<IStation520, IStation521, IStation523> obj)
  26. {
  27. if (obj.Data2.TaskNumber == 0)
  28. return;
  29. if (obj.Data3.Status.HasFlag(StationStatus.高位))
  30. obj.Data.CmdType = 0;
  31. if (obj.Data.VoucherNo != obj.Data2.VoucherNo)
  32. return;
  33. if (!obj.Data3.Status.HasFlag(StationStatus.中位))
  34. return;
  35. if (obj.Data3.Status.HasFlag(StationStatus.上升_右转_伸出))
  36. return;
  37. if (obj.Data3.Status.HasFlag(StationStatus.下降_左转_缩回))
  38. return;
  39. var tunnel = obj.Entity.GetFlag("Tunnel");
  40. var floor = short.Parse(obj.Entity.GetFlag("Floor"));
  41. SqlSugarHelper.Do(db =>
  42. {
  43. var qty = db.Default.Queryable<WCS_TaskInfo>()
  44. //.Where(v => v.Tunnel == tunnel)
  45. .Where(v => v.Floor == floor)
  46. .Where(v => v.Type == TaskType.EnterDepot)
  47. .Where(v => v.Status<= Entity.TaskStatus.巷道分配 && v.Status > Entity.TaskStatus.NewBuild)
  48. .Where(v => v.ID != obj.Data2.TaskNumber).Count();
  49. if (qty == 0)
  50. {
  51. obj.Data.CmdType = StationCmd.Res7;
  52. obj.Data.VoucherNo++;
  53. }
  54. });
  55. }
  56. public override bool Select(Device dev)
  57. {
  58. return dev.HasFlag("位置", "顶升");// && dev.GetFlag("Floor") == "1";
  59. }
  60. }
  61. }