|
@@ -66,7 +66,7 @@ namespace WCS.WorkEngineering.Systems
|
|
agvTask = new WCS_AgvTaskInfo()
|
|
agvTask = new WCS_AgvTaskInfo()
|
|
{
|
|
{
|
|
ID = db.GetAGVTaskId(),
|
|
ID = db.GetAGVTaskId(),
|
|
- TaskType = AGVTaskType.EnterDepot,
|
|
|
|
|
|
+ TaskType = AGVTaskType.CallMaterial,
|
|
Status = AGVTaskStatus.NewBuild,
|
|
Status = AGVTaskStatus.NewBuild,
|
|
Station = task.WorkBench,
|
|
Station = task.WorkBench,
|
|
AddWho = "WCS"
|
|
AddWho = "WCS"
|
|
@@ -136,8 +136,7 @@ namespace WCS.WorkEngineering.Systems
|
|
{
|
|
{
|
|
foreach (var agv in agvTasks)
|
|
foreach (var agv in agvTasks)
|
|
{
|
|
{
|
|
- ////开始处理
|
|
|
|
- //GenAgvSchedulingTaskResponse res = new GenAgvSchedulingTaskResponse();
|
|
|
|
|
|
+ //开始处理
|
|
try
|
|
try
|
|
{
|
|
{
|
|
//获取对应wcs任务
|
|
//获取对应wcs任务
|
|
@@ -152,8 +151,56 @@ namespace WCS.WorkEngineering.Systems
|
|
db.Default.Updateable(agv).SplitTable().ExecuteCommand();
|
|
db.Default.Updateable(agv).SplitTable().ExecuteCommand();
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
+ case 2:
|
|
|
|
+
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //更新WCS数据
|
|
|
|
+ wcs.Status = Entity.TaskStatus.AGVExecution;
|
|
|
|
+ db.Default.Updateable(wcs).ExecuteCommand();
|
|
|
|
+ wcs.AddWCS_TASK_DTL(db, wcs.Device, $"任务下发至AGV");
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ World.Log(ex.Message, Worlds.Logs.LogLevelEnum.Mid);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ #endregion 下发入库AGV任务
|
|
|
|
+
|
|
|
|
+ Thread.Sleep(1000);
|
|
|
|
+
|
|
|
|
+ #region 下发出库AGV任务
|
|
|
|
+
|
|
|
|
+ SqlSugarHelper.Do(db =>
|
|
|
|
+ {
|
|
|
|
+ var agvTasks = db.Default.Queryable<WCS_AgvTaskInfo>().Where(t => t.Status == AGVTaskStatus.NewBuild && t.TaskType == AGVTaskType.CallMaterial).SplitTable(v => v.Take(2)).ToList();
|
|
|
|
+
|
|
|
|
+ if (agvTasks.Count > 0)
|
|
|
|
+ {
|
|
|
|
+ foreach (var agv in agvTasks)
|
|
|
|
+ {
|
|
|
|
+ ////开始处理
|
|
|
|
+ //GenAgvSchedulingTaskResponse res = new GenAgvSchedulingTaskResponse();
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ //获取对应wcs任务
|
|
|
|
+ var wcs = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.AgvTaskID == agv.ID && t.Status == Entity.TaskStatus.WaitingToExecute).First();
|
|
|
|
+
|
|
|
|
+ switch (wcs.Floor)
|
|
|
|
+ {
|
|
|
|
+ case 1:
|
|
|
|
+ break;
|
|
|
|
+
|
|
case 2: //二楼下发AGV任务
|
|
case 2: //二楼下发AGV任务
|
|
- var agvRes = IwmsApi.满轮出库(wcs.MatCode, wcs.WorkBench);
|
|
|
|
|
|
+ var agvRes = IwmsApi.满轮出库(wcs.MatCode, wcs.WorkBench, agv.ID.ToString());
|
|
agv.Status = AGVTaskStatus.Confirm;
|
|
agv.Status = AGVTaskStatus.Confirm;
|
|
agv.AgvID = agvRes.data;
|
|
agv.AgvID = agvRes.data;
|
|
db.Default.Updateable(agv).SplitTable().ExecuteCommand();
|
|
db.Default.Updateable(agv).SplitTable().ExecuteCommand();
|
|
@@ -177,9 +224,7 @@ namespace WCS.WorkEngineering.Systems
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
- #endregion 下发入库AGV任务
|
|
|
|
-
|
|
|
|
- Thread.Sleep(1000);
|
|
|
|
|
|
+ #endregion 下发出库AGV任务
|
|
|
|
|
|
#region 移动任务处理
|
|
#region 移动任务处理
|
|
|
|
|