|
@@ -9,9 +9,7 @@ using WCS.WorkEngineering.Extensions;
|
|
|
using WCS.WorkEngineering.Protocol.SRM;
|
|
|
using WCS.WorkEngineering.Protocol.Station;
|
|
|
using WCS.WorkEngineering.WebApi.Controllers;
|
|
|
-using WCS.WorkEngineering.WebApi.Models.AGV.Response;
|
|
|
using WCS.WorkEngineering.Worlds;
|
|
|
-using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;
|
|
|
using KnownException = ServiceCenter.Logs.KnownException;
|
|
|
using TaskStatus = WCS.Entity.TaskStatus;
|
|
|
|
|
@@ -36,19 +34,6 @@ namespace WCS.WorkEngineering.Systems
|
|
|
|
|
|
public SrmSystems()
|
|
|
{
|
|
|
- //获取所有的巷道集合
|
|
|
- //var devices = Device.All.Where(v => v.HasFlag(DeviceFlags.巷道));
|
|
|
-
|
|
|
- ////开始分配
|
|
|
- //foreach (var item in devices)
|
|
|
- //{
|
|
|
- // //取货设备
|
|
|
- // var srm = item.Targets.Where(v => v.HasFlag(DeviceFlags.堆垛机)).FirstOrDefault();
|
|
|
- // PickUpDevices.Add(srm.Code, item.Targets.Where(v => v.HasFlag(DeviceFlags.输送机)).Select(v => new Station(v, this.World)).ToList());
|
|
|
- // //放货设备
|
|
|
- // srm = item.Sources.Where(v => v.HasFlag(DeviceFlags.堆垛机)).FirstOrDefault();
|
|
|
- // PutDevices.Add(srm.Code, item.Sources.Where(v => v.HasFlag(DeviceFlags.输送机)).Select(v => new Station(v, this.World)).ToList());
|
|
|
- //}
|
|
|
}
|
|
|
|
|
|
protected override bool ParallelDo => true;
|
|
@@ -59,6 +44,13 @@ namespace WCS.WorkEngineering.Systems
|
|
|
{
|
|
|
#region 处理完成任务
|
|
|
|
|
|
+ SqlSugarHelper.Do(db =>
|
|
|
+ {
|
|
|
+ var a = db.Default.Queryable<WCS_TaskInfo>().ToSql();
|
|
|
+ var c = db.Default.CurrentConnectionConfig.ConnectionString;
|
|
|
+ var b = db.Default.Queryable<WCS_TaskInfo>().ToList();
|
|
|
+ });
|
|
|
+
|
|
|
//判断DB520 完成任务确认清除信号 是否为1
|
|
|
if (obj.Data.OkAck == 1) throw new KnownException($"WCS任务完成确认信号[DB520.OkAck]未清除,请检查堆垛机处理异常原因", LogLevelEnum.Mid);
|
|
|
|
|
@@ -77,15 +69,6 @@ namespace WCS.WorkEngineering.Systems
|
|
|
var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == obj.Data2.TaskFinishiId);
|
|
|
if (task == null) throw new KnownException($"堆垛机完成任务号{obj.Data2.TaskFinishiId},在WCS当前任务信息中未找到对应任务。", LogLevelEnum.High);
|
|
|
if (task.Status != Entity.TaskStatus.StackerExecution) throw new KnownException($"任务{task.ID}状态是{task.Status.GetDescription()}.堆垛机完成任务需要对应任务状态处于堆垛机执行中", LogLevelEnum.High);
|
|
|
- //{
|
|
|
- // if (task.Type == TaskType.EmptyInit && task.Status == TaskStatus.ConveyorExecution)
|
|
|
- // {
|
|
|
- // var taskDtl = db.Default.Queryable<WCS_TaskDtl>().Where(v => v.ParentTaskCode == task.ID && v.Desc == "任务下发堆垛机执行").SplitTable(v => v.Take(2)).ToList();
|
|
|
- // if (!taskDtl.Any()) throw new KnownException($"任务{task.ID}状态是{task.Status.GetDescription()}.堆垛机完成任务需要对应任务状态处于堆垛机执行中。", LogLevelEnum.High);
|
|
|
- // World.Log($"堆垛机任务处理:结束--异常完成任务{obj.Data2.TaskFinishiId}异常", LogLevelEnum.Mid);
|
|
|
- // }
|
|
|
- // else
|
|
|
- //}
|
|
|
|
|
|
#endregion 获取完成任务
|
|
|
|
|
@@ -333,31 +316,6 @@ namespace WCS.WorkEngineering.Systems
|
|
|
.First();
|
|
|
if (task == null) throw new KnownException($"{obj.Entity.Code}未找到出库任务", LogLevelEnum.High);
|
|
|
var taskId = task.ID;
|
|
|
-
|
|
|
- //判断是否是二深位任务
|
|
|
- var addrFrom = task.AddrFrom.Split("-");
|
|
|
- if (addrFrom[4] == "02")
|
|
|
- {
|
|
|
- var res = WmsApi.AddWcsMoveTask(task.ID);
|
|
|
- switch (res.ResData.ResType)
|
|
|
- {
|
|
|
- case WmsApiMoveTask.允许2升位执行:
|
|
|
- break;
|
|
|
-
|
|
|
- case WmsApiMoveTask.执行移库任务:
|
|
|
- throw new KnownException($"堆垛机{obj.Entity.Code}需要先执行移库任务", LogLevelEnum.Mid);
|
|
|
-
|
|
|
- case WmsApiMoveTask.一深位有出库任务:
|
|
|
- task = db.Default.Queryable<WCS_TaskInfo>()
|
|
|
- .Where(v => v.Type == TaskType.OutDepot && v.Status == TaskStatus.WaitingToExecute)
|
|
|
- .Where(v => allOutCode.Contains(v.SrmStation) && v.AddrFrom == res.ResData.CellNo)
|
|
|
- .First() ?? throw new KnownException($"请尽快搬离{obj.Entity.Code}二楼出库口满轮,当前堆垛机出库任务呗阻塞", LogLevelEnum.Mid);
|
|
|
- break;
|
|
|
- };
|
|
|
- if (res.ResData.ResType == WmsApiMoveTask.执行移库任务) return;
|
|
|
- if (res.ResData.ResType == WmsApiMoveTask.一深位有出库任务 && res.ResData.CellNo != task.AddrFrom) return;
|
|
|
- }
|
|
|
-
|
|
|
task.Status = TaskStatus.StackerExecution;
|
|
|
task.LastInteractionPoint = task.Device;
|
|
|
task.EditWho = "WCS";
|