|
@@ -14,6 +14,7 @@ using WCS.Entity.Protocol.DataStructure;
|
|
|
using WCS.Entity.Protocol.SRM;
|
|
|
using WCS.WorkEngineering.Extensions;
|
|
|
using WCS.WorkEngineering.Systems;
|
|
|
+using WCS.WorkEngineering.WebApi.Models.AGV.Response;
|
|
|
using WCS.WorkEngineering.WebApi.Models.WCS.Request;
|
|
|
using WCS.WorkEngineering.WebApi.Models.WCS.Response;
|
|
|
using WCS.WorkEngineering.WebApi.Models.WMS.Response;
|
|
@@ -126,22 +127,14 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
|
|
|
SRes cancelRes = CarryTaskInfo(response, item, 106);
|
|
|
if (cancelRes == null) continue;
|
|
|
-
|
|
|
+
|
|
|
//找到对应的AGV任务
|
|
|
var agv = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.ID == task.AgvTaskID).SplitTable(v => v.Take(2)).First();
|
|
|
if (agv != null)
|
|
|
{
|
|
|
- var cancelTaskUpdateRes = AgvApi.CancelAgvTask(agv.ID.ToString());
|
|
|
- if (cancelTaskUpdateRes == null)
|
|
|
- {
|
|
|
- response.ResDataList.Add(new HandleTaskResponse()
|
|
|
- {
|
|
|
- IsSuccess = false,
|
|
|
- TaskNo = item,
|
|
|
- Message = ex.Message,
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
+ var cancelTaskUpdateRes = CancelAgvTask(response, item, agv.AgvID);
|
|
|
+ if (cancelTaskUpdateRes != null) continue;
|
|
|
+
|
|
|
agv.Status = AGVTaskStatus.Cancel;
|
|
|
agv.AgvStatus = AGVTaskStatus.Cancel;
|
|
|
db.Default.Updateable(agv).SplitTable().ExecuteCommand();
|
|
@@ -164,10 +157,8 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
Message = $"未找到对应任务{item}"
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
}
|
|
|
// 完成任务
|
|
|
else if (req.Type == HandleTaskTypeEnum.完成任务)
|
|
@@ -207,6 +198,8 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
var agv = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.ID == task.AgvTaskID).SplitTable(v => v.Take(2)).First();
|
|
|
if (agv != null)
|
|
|
{
|
|
|
+ var cancelTaskUpdateRes = CancelAgvTask(response, item, agv.AgvID);
|
|
|
+ if (cancelTaskUpdateRes != null) continue;
|
|
|
agv.Status = AGVTaskStatus.MissionCompleted;
|
|
|
agv.AgvStatus = AGVTaskStatus.MissionCompleted;
|
|
|
db.Default.Updateable(agv).SplitTable().ExecuteCommand();
|
|
@@ -340,10 +333,35 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
return response;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// WMS完成或取消任务验证
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sRes"></param>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <param name="agvTask">需要取消任务的AGV任务号</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public CancelTaskResponse? CancelAgvTask(SRes<HandleTaskResponse> sRes, int id, string agvTask)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var res = AgvApi.CancelAgvTask(agvTask);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ sRes.ResDataList.Add(new HandleTaskResponse()
|
|
|
+ {
|
|
|
+ IsSuccess = false,
|
|
|
+ TaskNo = id,
|
|
|
+ Message = $"AGV错误:{ex.Message}",
|
|
|
+ });
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// WMS完成或取消任务验证
|
|
|
/// </summary>
|
|
@@ -364,7 +382,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
{
|
|
|
IsSuccess = false,
|
|
|
TaskNo = id,
|
|
|
- Message = ex.Message,
|
|
|
+ Message = $"WMS错误:{ex.Message}",
|
|
|
});
|
|
|
return null;
|
|
|
}
|
|
@@ -390,13 +408,12 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
{
|
|
|
IsSuccess = false,
|
|
|
TaskNo = id,
|
|
|
- Message = $"WMS",
|
|
|
+ Message = $"WMS错误:{ex.Message}",
|
|
|
});
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
public SRes? CancelAgvTaskUpdate(SRes<HandleTaskResponse> sRes, int id, int type)
|
|
|
{
|
|
|
try
|
|
@@ -416,7 +433,6 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 设备信息写入接口
|
|
|
/// </summary>
|