using DBHelper; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WCS.Core; using WCS.Entity; using WCS.Entity.Protocol; namespace WCS.Service.Works.Stations { [WorkTitle(typeof(ProductHandler), "抓取位")] public class 抓取位 : DeviceWork> { protected override bool SelectDevice(WCS_DEVICE obj) { return obj.CODE == "2153"; } protected override void Do(Device dev) { if (Ltc.Do(dev, v => v.Data2.CONFIRM == true)) return; if (Ltc.Do(dev, v => v.Data.TASKNUM == 0)) return; if (Ltc.Do(dev, v => v.Data.GOODSEND != 2153)) return; if (Ltc.Do(dev, v => v.Data.PH_STATUS == false)) throw new Exception("有任务但无光电信号"); var taskid = dev.Data.TASKNUM; DB.Do(db => { var task = db.Default.Set().Find(taskid); if (task == null) throw new Exception("任务号" + taskid + "不存在"); if (task.PRODLINE < 1 || task.PRODLINE > 9) throw new Exception("任务号" + taskid + "产线编号错误"); //task.ADDRCURRENT = dev.Entity.CODE; db.Default.SaveChanges(); dev.Data2.TASKNUM = taskid; dev.Data2.GOODSTYPE = task.PALLETTYPE; dev.Data2.GOODSSIZE = task.FULLQTY; dev.Data2.GOODSEND = task.PRODLINE; dev.Data2.GOODSCODE = task.DOCID; dev.Data2.CONFIRM = true; }); } } }