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
|
{
|
/// <summary>
|
/// mobox调用
|
/// </summary>
|
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<StateTaskBLL>().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<int, string> SataeList = new Dictionary<int, string>()
|
{
|
{1,"执行中"},//开始执行
|
{3 ,"开始取货"},//开始取货
|
{4 ,"取货完成"},//取货完成
|
{5 ,"开始卸货"},//开始卸货
|
{6 ,"卸货完成"},//卸货完成
|
{2 ,"完成"},//完成
|
{7 ,"取消"},//取消
|
{22 ,"完成"},//完成
|
};
|
}
|
}
|