12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using ServiceCenter.Extensions;
- using ServiceCenter.SqlSugars;
- using System.ComponentModel;
- using WCS.Core;
- using WCS.Entity;
- using WCS.Entity.Protocol.Station;
- using WCS.WorkEngineering.Extensions;
- using WCS.WorkEngineering.Worlds;
- using TaskStatus = WCS.Entity.TaskStatus;
- namespace WCS.WorkEngineering.Systems.桁架码垛
- {
- /// <summary>
- /// 二次码垛任务到RGV取货位处理
- /// </summary>
- [BelongTo(typeof(SortingPalletizingWorld))]
- [Description("二次码垛任务到RGV取货位处理")]
- public class 二次码垛任务到RGV取货位处理 : DeviceSystem<Device<IStation520, IStation521, IStation523>>
- {
- protected override bool ParallelDo => true;
- protected override bool SaveLogsToFile => true;
- public override void Do(Device<IStation520, IStation521, IStation523> obj)
- {
- if (!obj.Data3.Status.HasFlag(StationStatus.Auto)) return;
- if (!obj.Data3.Status.HasFlag(StationStatus.PH_Status)) return;
- if (!obj.Data3.Status.HasFlag(StationStatus.OT_Status)) return;
- if (obj.Data2.Request != 1) return;
- var addNext = 1;
- int taskId = 0;
- SqlSugarHelper.Do(_db =>
- {
- var db = _db.Default;
- var soDev = obj.Entity.Sources.First();
- var taskInfo = db.Queryable<WCS_TaskInfo>().Where(x => x.SrmStation == soDev.Code && x.Status == TaskStatus.StackerCompleted).OrderBy(x => x.EditTime).First();
- if (taskInfo == null) return;
- var pall = db.Queryable<WCS_Palletizing>().RowLock().First(x => x.TaskId == taskInfo.ID && !x.Finish);
- if (pall == null) return;
- taskInfo.Status = TaskStatus.Finish;
- taskInfo.EditTime = DateTime.Now;
- taskInfo.EndTime = DateTime.Now;
- db.UpdateableRowLock(taskInfo).ExecuteCommand();
- taskInfo.AddWCS_TASK_DTL(db, obj.Entity.Code, "二次码垛出库任务完成");
- addNext = pall.PalletizingStation.ToShort();
- taskId = pall.Id;
- });
- if (taskId == 0) return;
- obj.Data.TaskNumber = taskId;
- obj.Data.GoodsStart = obj.Entity.Code.ToShort();
- obj.Data.GoodsEnd = addNext.ToShort();
- obj.Data.VoucherNo++;
- }
- public override bool Select(Device dev)
- {
- return dev.Code is "1606" or "1616" or "1626" or "1636" or "1646" or "1656";
- }
- }
- }
|