123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 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), "RGV放货",true)]
- class RGV放货 : DeviceWork<Device<IStation521, IStation520>>
- {
- protected override bool SelectDevice(WCS_DEVICE dev)
- {
- var b = Device.Where(v => v.IsRGV()).Where(v => v.ROUTES.Any(d => d.NEXT == dev)).Any();
- return b && !dev.Is(DF.拆盘) && dev.CODE != "2202";
- return dev.Is(DF.RGV放货) && !dev.Is(DF.拆盘) && dev.CODE != "2202";
- }
- protected override void Do(Device<IStation521, IStation520> dev)
- {
- if (Ltc.Do(dev, v => v.Data2.CONFIRM == true))
- {
- return;
- }
- if (Ltc.Do(dev, v => v.Data.REQUEST == false))
- return;
- if (Ltc.Do(dev, v => v.Data.TASKNUM == 0))
- throw new Exception("无任务号");
- var taskid = dev.Data.TASKNUM;
- DB.Do(db =>
- {
- var task = db.Default.Set<WCS_TASK>().Find(taskid);
- if (task == null)
- throw new Exception("任务:" + taskid + "不存在");
- //task.ADDRCURRENT = dev.Entity.CODE;
- db.Default.SaveChanges();
- if (task.TYPE == TaskType.出库)
- {
- if (task.STATUS < WCS.Entity.TaskStatus.出库RGV执行)
- {
- task.STATUS = WCS.Entity.TaskStatus.出库RGV执行;
- task.UPDATETIME = DateTime.Now;
- db.Default.SaveChanges();
- Uploader.Upload(db);
- }
- }
- if (task.ADDRTO == dev.Entity.CODE && task.TYPE == TaskType.输送)
- {
- task.STATUS = WCS.Entity.TaskStatus.已完成;
- task.UPDATETIME = DateTime.Now;
- task.ENDTIME = DateTime.Now;
- db.Default.SaveChanges();
- }
- var next = Ltc.Do(dev, v => v.Entity.GetNext(task.TYPE == TaskType.出库 ? task.ADDRNEXT : task.ADDRTO));
- short nextCode = 0;
- if (next == null)
- nextCode = dev.Entity.Code();
- else
- nextCode = next.Code();
- dev.Data2.GOODSEND = nextCode;
- dev.Data2.TASKNUM = taskid;
- dev.Data2.GOODSCODE = task.DOCID;
- dev.Data2.GOODSSIZE = task.FULLQTY;
- dev.Data2.GOODSTYPE = task.PALLETTYPE;
- dev.Data2.HEIGHT = task.HEIGHT;
- dev.Data2.CONFIRM = true;
- });
- }
- }
- }
|