using HH.WCS.Mobox3.ZS7412.dispatch;
using HH.WCS.Mobox3.ZS7412.process;
using HH.WCS.Mobox3.ZS7412.util;
using HH.WCS.Mobox3.ZS7412.wms;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Reflection;
using System.Web.Http;
using static HH.WCS.Mobox3.ZS7412.api.ApiModel;
using static HH.WCS.Mobox3.ZS7412.api.OtherModel;
namespace HH.WCS.Mobox3.ZS7412.api {
///
/// mobox3调用,脚本中调用
///
public class MoboxController : System.Web.Http.ApiController {
///
/// 任务取消(目前支持ndc)
///
///
///
[HttpPost]
public SimpleResult CancelTask(MoboxTaskBase model) {
LogHelper.Info("CancelTask Request:" + JsonConvert.SerializeObject(model), "ZS7412");
var result = new SimpleResult();
var task = WCSHelper.GetTask(model.TaskNo);
if (task != null) {
if (task.N_B_STATE == 0) {
//等待直接修改状态为取消
WCSHelper.UpdateStatus(model.TaskNo, "取消");
LocationHelper.UnLockLoc(task.S_START_LOC);
LocationHelper.UnLockLoc(task.S_END_LOC);
//货位容器解绑
LocationHelper.UnBindingLoc(task.S_START_LOC, new List { task.S_CNTR_CODE });
result.resultMsg = "任务等待,直接取消";
}
else if (task.N_B_STATE < 3) {
//已推送但是没有完成或者取消,通知hosttoagv
NDCHelper.Cancel(task.S_CODE);
result.resultMsg = "任务取消已经发送给小车";
}
else {
result.resultCode = 1;
result.resultMsg = "任务已结束";
}
}
else {
result.resultCode = 1;
result.resultMsg = "任务不存在";
}
LogHelper.Info("CancelTask response:" + JsonConvert.SerializeObject(result), "ZS7412");
return result;
}
///
/// 强制完成(目前支持ndc) 补充强制完成不需要,取消或者强制完成都是发取消给车子,根据车子返回的状态做处理
///
///
///
//[HttpPost]
//public SimpleResult CompleteTask(MoboxTaskBase model) {
// var result = new SimpleResult();
// return result;
//}
///
/// 强制取消,正常取消收到车子返回7,判断已经取货的判定为完成
/// 强制取消的意思是车子取货了,人工拉走了,任务还是取消,直接标记任务为取消,后续收到任务状态7也不再处理
///
///
///
[HttpPost]
public SimpleResult ForceCancelTask(MoboxTaskBase model) {
LogHelper.Info("ForceCancelTask Request:" + JsonConvert.SerializeObject(model), "ZS7412");
var result = new SimpleResult();
var task = WCSHelper.GetTask(model.TaskNo);
if (task != null)
{
if (task.N_B_STATE < 3)
{
//修改状态为取消
WCSHelper.UpdateStatus(model.TaskNo, "取消");
//给车子发送取消请求
NDCHelper.Cancel(task.S_CODE);
//起点终点解锁
LocationHelper.UnLockLoc(task.S_START_LOC);
LocationHelper.UnLockLoc(task.S_END_LOC);
//货位容器解绑
LocationHelper.UnBindingLoc(task.S_START_LOC, new List { task.S_CNTR_CODE });
LocationHelper.UnBindingLoc(task.S_END_LOC, new List { task.S_CNTR_CODE });
//同时添加一条动作记录
WCSHelper.AddActionRecord(task.S_CODE, 17, null, null);
result.resultMsg = "任务强制取消,已经发送给小车";
}
else
{
result.resultCode = 1;
result.resultMsg = "任务已结束";
}
}
else
{
result.resultCode = 1;
result.resultMsg = "任务不存在";
}
LogHelper.Info("ForceCancelTask response:" + JsonConvert.SerializeObject(result), "ZS7412");
return result;
}
///
/// pda入库申请
///
///
///
public SimpleResult Instock(InstockInfo model) {
var result = new SimpleResult();
LogHelper.Info("Instock Request:" + JsonConvert.SerializeObject(model), "ZS7412");
result = ApiHelper.Instock(model);
LogHelper.Info("Instock response:" + JsonConvert.SerializeObject(result), "ZS7412");
return result;
}
///
/// pda移库申请
///
///
public SimpleResult shiftStock(ShiftStockInfo model) {
var result = new SimpleResult();
LogHelper.Info("shiftStock Request:" + JsonConvert.SerializeObject(model), "ZS7412");
result = ApiHelper.shiftStock(model);
LogHelper.Info("shiftStock response:" + JsonConvert.SerializeObject(result), "ZS7412");
return result;
}
}
}