using DBHelper; using System; using System.Linq; using WCS.Core; using WCS.Entity; using WCS.Entity.Protocol; namespace WCS.Service.Works.Stations { [WorkTitle(typeof(ProductHandler), "原膜入库", true)] internal class 原膜入库 : DeviceWork> { protected override bool SelectDevice(WCS_DEVICE dev) { return dev.CODE == "2281" || dev.CODE == "2282"; } protected override void Do(Device dev) { if (Ltc.Do(dev, v => v.Data2.CONFIRM == true)) return; if (Ltc.Do(dev, v => !v.Data.REQUEST)) return; //穿梭机 2281/2282 if (Ltc.Do(dev, shuttle => shuttle.Data.PH_STATUS == false)) return; if (Ltc.Do(dev, shuttle => shuttle.Data.TASKNUM > 10000)) return; DB.Do(db => { var task = db.Default.Set().Where(v => v.ADDRFROM == dev.Entity.CODE && v.STATUS == WCS.Entity.TaskStatus.新建 && v.TYPE == TaskType.入库).FirstOrDefault(); if (task == null) { throw new Exception("未创建入库任务"); } task.STATUS = WCS.Entity.TaskStatus.执行中; task.ADDRTO = dev.Entity.CODE; task.STARTTIME = DateTime.Now; task.UPDATETIME = DateTime.Now; task.UPDATEUSER = "WCS"; task.ADDRNEXT = dev.Entity.CODE; db.Default.SaveChanges(); dev.Data2.GOODSEND = dev.Entity.Code(); dev.Data2.TASKNUM = task.ID; dev.Data2.CONFIRM = true; }); } } }