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 ,"完成"},//完成 }; } }