|
@@ -217,14 +217,103 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
var task = db.Default.Queryable<WCS_TaskInfo>().Where(t => t.ID == item).First();
|
|
|
if (task != null)
|
|
|
{
|
|
|
- if (task.Type == TaskType.OutDepot && task.Floor == 1)
|
|
|
+ if (task.Type == TaskType.OutDepot)
|
|
|
{
|
|
|
- task.Status = Entity.TaskStatus.Finish;
|
|
|
- task.EditWho = req.User;
|
|
|
- task.ManualRemarks = req.ManualRemarks;
|
|
|
- task.AddWCS_TASK_DTL(db, "未知", "手动完成任务");
|
|
|
- task.CompleteOrCancelTasks(db);
|
|
|
- db.Default.Updateable(task).ExecuteCommand();
|
|
|
+ SRes res = new SRes();
|
|
|
+ //验证wms是否能完成
|
|
|
+ try
|
|
|
+ {
|
|
|
+ res = WmsApi.HandleTaskVerify(new List<int>() { task.ID }, 99);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ response.ResDataList.Add(new HandleTaskResponse()
|
|
|
+ {
|
|
|
+ IsSuccess = false,
|
|
|
+ TaskNo = item,
|
|
|
+ Message = ex.Message,
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (res.ResCode == Models.WMS.Response.ResponseStatusCodeEnum.Sucess)
|
|
|
+ {
|
|
|
+ switch (task.Type)
|
|
|
+ {
|
|
|
+ case TaskType.OutDepot:
|
|
|
+ if (task.Status >= Entity.TaskStatus.Finish)
|
|
|
+ {
|
|
|
+ response.ResDataList.Add(new HandleTaskResponse()
|
|
|
+ {
|
|
|
+ IsSuccess = false,
|
|
|
+ TaskNo = item,
|
|
|
+ Message = $"只能完成未完成状态的任务",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ SRes finishRes = new SRes();
|
|
|
+ //完成任务
|
|
|
+ try
|
|
|
+ {
|
|
|
+ finishRes = WmsApi.CarryTaskInfo(new List<int>() { task.ID }, 99);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ response.ResDataList.Add(new HandleTaskResponse()
|
|
|
+ {
|
|
|
+ IsSuccess = false,
|
|
|
+ TaskNo = item,
|
|
|
+ Message = ex.Message,
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (finishRes.ResCode == Models.WMS.Response.ResponseStatusCodeEnum.Sucess)
|
|
|
+ {
|
|
|
+ //找到对应的AGV任务
|
|
|
+ var agv = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.ID == task.AgvTaskID).SplitTable(v => v.Take(2)).First();
|
|
|
+ if (agv != null)
|
|
|
+ {
|
|
|
+ agv.Status = AGVTaskStatus.MissionCompleted;
|
|
|
+ agv.AgvStatus = AGVTaskStatus.MissionCompleted;
|
|
|
+ db.Default.Updateable(agv).SplitTable().ExecuteCommand();
|
|
|
+ }
|
|
|
+ //更新任务状态
|
|
|
+ task.Status = Entity.TaskStatus.Finish;
|
|
|
+ task.EditTime = DateTime.Now;
|
|
|
+ task.EditWho = req.User;
|
|
|
+ task.ManualRemarks = req.ManualRemarks;
|
|
|
+ task.AddWCS_TASK_DTL(db, "未知", "任务完成");
|
|
|
+ db.Default.Updateable(task).ExecuteCommand();
|
|
|
+ task.CompleteOrCancelTasks(db);
|
|
|
+ response.ResDataList.Add(new HandleTaskResponse()
|
|
|
+ {
|
|
|
+ IsSuccess = true,
|
|
|
+ TaskNo = item,
|
|
|
+ Message = $"完成",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ response.ResDataList.Add(new HandleTaskResponse()
|
|
|
+ {
|
|
|
+ IsSuccess = false,
|
|
|
+ TaskNo = item,
|
|
|
+ Message = $"完成任务失败,{finishRes.ResMsg}",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ response.ResDataList.Add(new HandleTaskResponse()
|
|
|
+ {
|
|
|
+ IsSuccess = false,
|
|
|
+ TaskNo = item,
|
|
|
+ Message = $"完成任务失败"
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -232,21 +321,12 @@ namespace WCS.WorkEngineering.WebApi.Controllers
|
|
|
{
|
|
|
IsSuccess = false,
|
|
|
TaskNo = item,
|
|
|
- Message = $"未实现当前任务的完成功能"
|
|
|
+ Message = $"未找到对应任务{item}"
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- response.ResDataList.Add(new HandleTaskResponse()
|
|
|
- {
|
|
|
- IsSuccess = false,
|
|
|
- TaskNo = item,
|
|
|
- Message = $"未找到对应任务{item}"
|
|
|
- });
|
|
|
- }
|
|
|
}
|
|
|
- });
|
|
|
+ });
|
|
|
}
|
|
|
else if (req.Type == HandleTaskTypeEnum.重新下发AGV任务)
|
|
|
{
|