抓取位.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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), "抓取位")]
  13. public class 抓取位 : DeviceWork<Device<IStation521, IStation520>>
  14. {
  15. protected override bool SelectDevice(WCS_DEVICE obj)
  16. {
  17. return obj.CODE == "2153";
  18. }
  19. protected override void Do(Device<IStation521, IStation520> dev)
  20. {
  21. if (Ltc.Do(dev, v => v.Data2.CONFIRM == true))
  22. return;
  23. if (Ltc.Do(dev, v => v.Data.TASKNUM == 0))
  24. return;
  25. if (Ltc.Do(dev, v => v.Data.GOODSEND != 2153))
  26. return;
  27. if (Ltc.Do(dev, v => v.Data.PH_STATUS == false))
  28. throw new Exception("有任务但无光电信号");
  29. var taskid = dev.Data.TASKNUM;
  30. DB.Do(db =>
  31. {
  32. var task = db.Default.Set<WCS_TASK>().Find(taskid);
  33. if (task == null)
  34. throw new Exception("任务号" + taskid + "不存在");
  35. if (task.PRODLINE < 1 || task.PRODLINE > 9)
  36. throw new Exception("任务号" + taskid + "产线编号错误");
  37. //task.ADDRCURRENT = dev.Entity.CODE;
  38. db.Default.SaveChanges();
  39. dev.Data2.TASKNUM = taskid;
  40. dev.Data2.GOODSTYPE = task.PALLETTYPE;
  41. dev.Data2.GOODSSIZE = task.FULLQTY;
  42. dev.Data2.GOODSEND = task.PRODLINE;
  43. dev.Data2.GOODSCODE = task.DOCID;
  44. dev.Data2.CONFIRM = true;
  45. });
  46. }
  47. }
  48. }