2397入库交管.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using DBHelper;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using WCS.Core;
  8. using WCS.Entity;
  9. using WCS.Entity.Protocol;
  10. namespace WCS.Service.Works.Stations
  11. {
  12. [WorkTitle(typeof(ProductHandler), "_2397入库交管", true)]
  13. public class _2397入库交管 : DeviceWork<Device<IStation521, IStation520>>
  14. {
  15. protected override void Do(Device<IStation521, IStation520> dev)
  16. {
  17. if (Ltc.Do(dev, v => v.Data2.CONFIRM == true))
  18. return;
  19. if (Ltc.Do(dev, v => v.Data.TASKNUM == 0))
  20. return;
  21. if (Ltc.Do(dev, v => v.Data.PH_STATUS == false))
  22. return;
  23. if (Ltc.Do(dev, v => v.Data.GOODSEND == 2017))
  24. return;
  25. DB.Do(db =>
  26. {
  27. var task = db.Default.Set<WCS_TASK>().Find(dev.Data.TASKNUM);
  28. if (task.TYPE == TaskType.入库 && task.ADDRFROM == "3001")
  29. {
  30. var addrTo = "2017";
  31. int count = Device.Find("2071", "2072", "2073", "2074", "2075", "2076", "2077", "2078", "2079", "2017","2355","2353","2019","2022","2024","2029","2031","2036","2037","2039","2044","2046","2051","2053","2058")
  32. .Select(v => v.Device<IStation521, IStation520>())
  33. .Where(v=>v.Data.TASKNUM>10000).Count();
  34. if (count > 8) throw new Exception($"交通管制,有正在执行的入库任务");
  35. task.ADDRNEXT = addrTo;
  36. task.UPDATETIME = DateTime.Now;
  37. db.Default.SaveChanges();
  38. dev.Data2.GOODSEND = 2017;
  39. dev.Data2.TASKNUM = task.ID;
  40. dev.Data2.CONFIRM = true;
  41. }
  42. });
  43. }
  44. protected override bool SelectDevice(WCS_DEVICE dev)
  45. {
  46. return new string[] { "2397" }.Contains(dev.CODE);
  47. }
  48. }
  49. }