|
@@ -63,7 +63,7 @@ namespace WCS.WorkEngineering.Systems
|
|
|
|
|
|
//是异常任务,查询最近的一条异常任务
|
|
|
taskInfo = db.Queryable<WCS_TaskInfo>().First(x => x.ID == task.TaskId);
|
|
|
- if (taskInfo.Status >= TaskStatus.FinishOfShunt && obj.Data2.TaskNumber != task.TaskId)
|
|
|
+ if (taskInfo == null || (taskInfo.Status >= TaskStatus.FinishOfShunt && obj.Data2.TaskNumber != task.TaskId))
|
|
|
{
|
|
|
WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type);
|
|
|
return;
|
|
@@ -257,7 +257,8 @@ namespace WCS.WorkEngineering.Systems
|
|
|
InStock = false,
|
|
|
Put = false,
|
|
|
IsTruss = false,
|
|
|
- MatCodeList = palletizingRow.MatCodeList
|
|
|
+ MatCodeList = palletizingRow.MatCodeList,
|
|
|
+ Quantity = palletizingRow.QtyMaxCount
|
|
|
};
|
|
|
|
|
|
var res = db.Insertable(cacheLine).ExecuteReturnEntity();
|
|
@@ -297,98 +298,6 @@ namespace WCS.WorkEngineering.Systems
|
|
|
taskInfo.InitStackStructure(db);
|
|
|
}
|
|
|
return result;
|
|
|
- ////找到所有当前轮子可以去的垛形
|
|
|
- //var palletizingList = db.Queryable<WCS_Palletizing>()
|
|
|
- // .Includes(x => x.Layers, r => r.Rows, l => l.Locs)
|
|
|
- // .Where(x => x.MatCodeList.Contains(taskInfo.MatCode) && !x.Finish).ToList()
|
|
|
- // .Where(x => x.Layers.SelectMany(x => x.Rows).Any(r => r.LineCode == null))
|
|
|
- // .OrderBy(x => x.AddTime).ToList();
|
|
|
- ////如果没有对应的垛形信息就初始化一个垛形信息
|
|
|
- //if (palletizingList.Count <= 0)
|
|
|
- //{
|
|
|
- // taskInfo.InitStackStructure(db);
|
|
|
- // return false;
|
|
|
- //}
|
|
|
-
|
|
|
- //var b = palletizingList.Select(palletizing => palletizing.Layers
|
|
|
- // .Where(x => !x.IsEmpty)
|
|
|
- // .Where(x => !x.Finish)
|
|
|
- // .Where(x => x.MatCodeList.Contains(taskInfo.MatCode))
|
|
|
- // .Where(x => x.Rows.Any(r => r is { IsEmpty: false, Finish: false } && r.MatCodeList.Contains(taskInfo.MatCode) && r.CacheLineId == 0))
|
|
|
- // .MinBy(x => x.LayerNo)).Where(x => x != null);
|
|
|
-
|
|
|
- //foreach (var palletizingLayer in b)
|
|
|
- //{
|
|
|
- // //如果没有哪一层需要这个物料号,就初始化一个新的垛形信息
|
|
|
- // if (palletizingLayer == null)
|
|
|
- // {
|
|
|
- // taskInfo.InitStackStructure(db);
|
|
|
- // return false;
|
|
|
- // }
|
|
|
-
|
|
|
- // //再找行:未空置、未结束
|
|
|
- // var palletizingRow = palletizingLayer.Rows.Where(x => x is { IsEmpty: false, Finish: false } && x.MatCodeList.Contains(taskInfo.MatCode) && x.CacheLineId == 0)
|
|
|
- // .MinBy(x => x.RowNo);
|
|
|
- // //如果没有哪一行需要这个物料号,就初始化一个新的垛形信息
|
|
|
- // if (palletizingRow == null)
|
|
|
- // {
|
|
|
- // taskInfo.InitStackStructure(db);
|
|
|
- // return false;
|
|
|
- // }
|
|
|
- // //走到这一步就表示没有哪一段线体缓存了当前物料,需要选一段新的线体进行缓存
|
|
|
-
|
|
|
- // //TODO:暂时不处理就近分线的逻辑
|
|
|
- // //获取一个当前可以使用的分配锁
|
|
|
- // var devCode = cacheLineDevList.Select(x => x.Code.ToShort()).FirstOrDefault(x => !cacheLineList.Select(s => s.LocationNo).Contains(x));
|
|
|
- // if (devCode == 0)
|
|
|
- // {
|
|
|
- // World.Log($"无可用线体:{taskInfo.ID}");
|
|
|
- // return false;
|
|
|
- // }
|
|
|
-
|
|
|
- // //开始初始化缓存位信息
|
|
|
- // cacheLine = new WCS_CacheLine()
|
|
|
- // {
|
|
|
- // LocationNo = devCode,
|
|
|
- // AddTime = DateTime.Now,
|
|
|
- // PalletizingRowId = palletizingRow.Id,
|
|
|
- // InStock = false,
|
|
|
- // Put = false,
|
|
|
- // IsTruss = false,
|
|
|
- // MatCodeList = palletizingRow.MatCodeList
|
|
|
- // };
|
|
|
-
|
|
|
- // var res = db.Insertable(cacheLine).ExecuteReturnEntity();
|
|
|
- // palletizingRow = db.Queryable<WCS_PalletizingRow>().Includes(x => x.Locs).Single(x => x.Id == palletizingRow.Id);
|
|
|
- // palletizingRow.Locs = palletizingRow.Locs.OrderBy(x => x.XYNo).ToList();
|
|
|
- // palletizingRow.CacheLineId = res.Id;
|
|
|
- // palletizingRow.EditTime = DateTime.Now;
|
|
|
- // db.Updateable(palletizingRow).ExecuteCommand();
|
|
|
-
|
|
|
- // for (var i = 0; i < palletizingRow.Locs.Count; i++)
|
|
|
- // {
|
|
|
- // var loc = new WCS_CacheLineLoc()
|
|
|
- // {
|
|
|
- // XYNo = palletizingRow.Locs[i].XYNo,
|
|
|
- // InStock = i == 0,
|
|
|
- // IsEmpty = palletizingRow.Locs[i].IsEmpty,
|
|
|
- // MatCode = palletizingRow.Locs[i].MatCode,
|
|
|
- // TaskId = i == 0 ? taskInfo.ID : 0,
|
|
|
- // CacheLineId = res.Id
|
|
|
- // };
|
|
|
- // db.Insertable(loc).ExecuteCommand();
|
|
|
- // }
|
|
|
-
|
|
|
- // taskInfo.Status = TaskStatus.FinishOfShunt;
|
|
|
- // taskInfo.AddrNext = devCode.ToString();
|
|
|
- // taskInfo.EditWho = "WCS";
|
|
|
- // taskInfo.EditTime = DateTime.Now;
|
|
|
- // taskInfo.GoodsType = obj.Data4.Length.ToInt();
|
|
|
- // db.Updateable(taskInfo).ExecuteCommand();
|
|
|
- // taskInfo.AddWCS_TASK_DTL(db, obj.Entity.Code, taskInfo.AddrNext, $"完成分库计算,目标地址:{cacheLine.LocationNo}");
|
|
|
-
|
|
|
- // return true;
|
|
|
- //}
|
|
|
|
|
|
#endregion 初始化一个信息的缓存信息
|
|
|
}
|