using HH.WCS.Hexafluo.dispatch;
using HH.WCS.Hexafluo.wms;
using HH.WCS.SJML.Bll;
using HH.WCS.SJML.util;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Web.Http;
using static HH.WCS.SJML.api.ApiModel;
namespace HH.WCS.Hexafluo.api
{
///
/// mobox调用
///
public class MoboxController : System.Web.Http.ApiController
{
[HttpPost]
public SimpleResult CancelTask(MoboxTaskBase model)
{
var result = new SimpleResult();
try
{
var logPara = LogType.LogPara("完工回报");
LogHelper.TaskDetail(logPara, "Mobox完工回报参数:" + JsonConvert.SerializeObject(model));
var task = TaskHelper.GetTask(model.TaskNo);
var SataeLis = SataeList[model.State];
if (task != null)
{
//if (SataeLis.Trim() == "未执行")
//{
// //未执行直接修改状态为取消
// TaskHelper.UpdateStatus(model.TaskNo, "取消");
// result.resultMsg = "任务未执行,直接取消";
//}
//else if (task.S_B_STATE.Trim() != "取消" && task.S_B_STATE.Trim() != "完成")
//{
// //已推送但是没有完成或者取消,通知hosttoagv
// NDCHelper.Cancel(task.S_TASK_NO.Trim());
// result.resultMsg = "任务取消已经发送给小车";
//}
//else
//{
// result.resultCode = 1;
// result.resultMsg = "任务已结束";
//}
if (SataeLis == "取消")
{
if (task.S_NOTE.Equals("agv任务") && (task.S_B_STATE.Trim() == "取消" || task.S_B_STATE.Trim() == "完成"))
{
result.resultCode = 1;
LogHelper.TaskDetail(logPara, "完工回报返回:" + JsonConvert.SerializeObject(result));
return result;
}
if (task.S_NOTE.Equals("agv任务") && (task.S_B_STATE != "已推送" || task.S_B_STATE != "未执行") && task.S_TYPE == "出库")
{
result.resultMsg = "agv任务不是已推送或未执行状态,禁止取消";
result.resultCode = 1;
LogHelper.TaskDetail(logPara, "完工回报返回:" + JsonConvert.SerializeObject(result));
return result;
}
}
var ta = BLLCreator.CreateSingleton().ExecuteState(model.TaskNo, SataeLis, logPara, task);
if (task.S_NOTE.Equals("agv任务") && (task.S_B_STATE.Trim() != "取消" && task.S_B_STATE.Trim() != "完成") && model.State == 22 && ta.Success)
{
NDCHelper.Cancel(task.S_TASK_NO);//取消agv任务
LogHelper.TaskDetail(logPara, "通知agv取消任务--强制完成");
}
//if (task.S_NOTE.Equals("agv任务") && SataeLis == "取消" && ta.Success)
//{
// //已推送但是没有完成或者取消,通知hosttoagv
// NDCHelper.Cancel(task.S_TASK_NO.Trim());
// result.resultMsg = "任务取消已经发送给小车";
// //if (task.S_B_STATE.Trim() == "已推送")
// //{
// // NDCHelper.Cancel(task.S_TASK_NO.Trim());
// // result.resultMsg = "任务取消已经发送给小车";
// //}
// //else
// //{
// //}
//}
LogHelper.TaskDetail(logPara, "完工回报返回:" + JsonConvert.SerializeObject(ta));
result.resultMsg = ta.Msg;
if (ta.Success)
{
result.resultCode = 1;
}
}
else
{
result.resultCode = 1;
result.resultMsg = "任务不存在";
}
return result;
}
catch (System.Exception ex)
{
result.resultCode = 1;
result.resultMsg = ex.Message;
return result;
}
}
[HttpPost]
public SimpleResult CompleteTask(MoboxTaskBase model)
{
var result = new SimpleResult();
return result;
}
public static Dictionary SataeList = new Dictionary()
{
{1,"执行中"},//开始执行
{3 ,"开始取货"},//开始取货
{4 ,"取货完成"},//取货完成
{5 ,"开始卸货"},//开始卸货
{6 ,"卸货完成"},//卸货完成
{2 ,"完成"},//完成
{7 ,"取消"},//取消
{22 ,"完成"},//完成
};
}
}