12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- 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), "堆垛机放货",true)]
- class 堆垛机放货 : DeviceWork<Device<IStation521, IStation520>>
- {
- protected override bool SelectDevice(WCS_DEVICE dev)
- {
- return "2056,2057,2041,2042,2027,2028".Split(',').Contains(dev.CODE) || dev.Is(DF.SC放货);
- }
- 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.PH_STATUS == false))
- return;
- if (Ltc.Do(dev, v => v.Data.TASKNUM > 0))
- return;
- if (Ltc.Do(dev, v => v.Data2.TASKNUM == 0))
- return;
- if (Ltc.Do(dev, v => v.Data.REQUEST == false))
- {
- var msg = $"{dev.Entity.CODE}有货但无请求信号";
- throw new Exception(msg);
- }
-
- var taskid = dev.Data2.TASKNUM;
- bool flag = false;
- DB.Do(db =>
- {
- var task = db.Default.Set<WCS_TASK>().Find(taskid);
- if (task == null)
- return;
- if (Ltc.Do(task, task => task.TYPE != TaskType.出库))
- return;
- if (Ltc.Do(task, task => task.STATUS < WCS.Entity.TaskStatus.堆垛机完成))
- {
- return;
- }
- if (Ltc.Do(task, task => task.WMSTASK > 0))
- {
- if (task.PALLETTYPE == 0 && task.AgvTask == 0 && task.STATUS < WCS.Entity.TaskStatus.已完成)
- {
- task.STATUS = WCS.Entity.TaskStatus.已完成;
- task.UPDATETIME = DateTime.Now;
- task.ENDTIME = DateTime.Now;
- db.Default.SaveChanges();
- Uploader.Upload(db);
- }
- }
- flag = true;
- });
- if (flag)
- dev.Data2.CONFIRM = true;
- }
- }
- }
|