using HH.WCS.JiaTong.dispatch;
using HH.WCS.JiaTong.process;
using HH.WCS.JiaTong.util;
using HH.WCS.JiaTong.wms;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Web.Http;
using static HH.WCS.JiaTong.api.ApiModel;
using static HH.WCS.JiaTong.api.OtherModel;
namespace HH.WCS.JiaTong.api
{
///
/// mobox3调用,脚本中调用
///
public class MoboxController : System.Web.Http.ApiController
{
///
/// 任务取消(目前支持ndc)
///
///
///
[HttpPost]
public Result CancelTask(MoboxTaskBase model)
{
var result = new Result();
var db = new SqlHelper().GetInstance();
try
{
var taskWCS = db.Queryable().First(a => a.S_CODE.Trim() == model.TaskNo);
if (taskWCS == null)
{
result.code = "1";
result.msg = $"未找到该任务号,{model.TaskNo}";
LogHelper.Info(result.msg);
return result;
}
if (taskWCS.N_B_STATE == 3)
{
result.code = "2";
result.msg = $"该任务号:{model.TaskNo},已完成无需取消";
LogHelper.Info(result.msg);
return result;
}
var res = NDCApi.CancelOrder(model.TaskNo);//取消命令,默认强制取消
if (res.err_code == 0)
{
taskWCS.N_B_STATE = 4;
taskWCS.S_B_STATE = "取消";
taskWCS.T_MODIFY = System.DateTime.Now;
db.Updateable(taskWCS).ExecuteCommand();
result.code = "0";
result.msg = $"成功";
LogHelper.Info(result.msg);
return result;
}
else
{
LogHelper.Info($"该任务号:{model.TaskNo},取消命令已发送,结果:{JsonConvert.SerializeObject(res)}");
//任务小车已经取消,单方面处理取消
taskWCS.N_B_STATE = 4;
taskWCS.S_B_STATE = "取消";
taskWCS.T_MODIFY = System.DateTime.Now;
db.Updateable(taskWCS).ExecuteCommand();
result.code = res.err_code.ToString();
result.msg = res.err_msg;
return result;
}
}
catch (Exception ex)
{
result.code = "-1";
result.msg = $"发生了异常{ex.Message}";
LogHelper.Info(result.msg);
return result;
}
}
///
/// 任务强制完成(目前支持ndc)
///
///
///
[HttpPost]
public SimpleResult CompleteTask(MoboxTaskBase model)
{
var result = new SimpleResult();
return result;
}
///
/// 货位信息上传
///
///
///
[HttpPost]
public Result UploadLoc(List model)
{
Result result = new Result();
LogHelper.Info("UploadLoc 接收:" + JsonConvert.SerializeObject(model));
result = ApiHelper.UploadLoc(model);
LogHelper.Info("UploadLoc 返回:" + JsonConvert.SerializeObject(model));
return result;
}
///
/// 设备状态上报
///
///
///
[HttpGet]
public DeviceInfoModel DeviceInfo()
{
DeviceInfoModel result = new DeviceInfoModel();
//LogHelper.Info("UploadLoc 接收:" + JsonConvert.SerializeObject(model));
result = ApiHelper.Device();
LogHelper.Info("DeviceInfo 返回:" + JsonConvert.SerializeObject(result));
return result;
}
}
}