using System.Collections.Generic;
|
using System.Linq;
|
using System.Net;
|
using System.Reflection;
|
using System.Text;
|
using System.Web;
|
using System.Web.Http;
|
|
using HH.WCS.Mobox3.AnGang.core;
|
using HH.WCS.Mobox3.AnGang.dispatch;
|
using HH.WCS.Mobox3.AnGang.process;
|
using HH.WCS.Mobox3.AnGang.util;
|
using HH.WCS.Mobox3.AnGang.wms;
|
|
using NetSDKCS;
|
|
using Newtonsoft.Json;
|
|
using static HH.WCS.Mobox3.AnGang.api.ApiModel;
|
using static HH.WCS.Mobox3.AnGang.dispatch.NDC;
|
|
namespace HH.WCS.Mobox3.AnGang.api
|
{
|
/// <summary>
|
/// 设备信息上报(hosttoagv上报、杭奥堆垛机、国自agv)
|
/// </summary>
|
public class AgvController : ApiController
|
{
|
/// <summary>
|
/// RCS国自AGV任务状态回报
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
[Route("orderStatusReport")]
|
public GzResult orderStatusReport(orderStatusReportParme model) {
|
//LogHelper.Info("RCS国自AGV任务状态回报:" + JsonConvert.SerializeObject(model), "HosttoagvTask");
|
//LogRequestHeaders();
|
return GZRobot.orderStatusReport(model);
|
}
|
|
[HttpPost]
|
[Route("agvRealtimeStateReport")]
|
public IHttpActionResult agvRealtimeStateReport(agvRealtimeStateReportInfo model) {
|
LogHelper.Info("agvRealtimeStateReport:RCS国自AGV实时状态回报:" + JsonConvert.SerializeObject(model), "HosttoagvTask");
|
|
var res = WCSCore.agvRealtimeStateReport(model);
|
//if (res == "offline") {
|
// //return NotFound(new EmptyGzResult());
|
// return NotFound();
|
//}
|
//else {
|
// //return Ok(new EmptyGzResult());
|
// return Ok();
|
//}
|
if (model == null) return NotFound();
|
if (string.IsNullOrEmpty(res)) {
|
return BadRequest();
|
}
|
else {
|
return Ok();
|
}
|
}
|
|
/// <summary>
|
/// AGV 与产线进行安全交互
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
[Route("safetyInteraction")]
|
public gzResult SafetyInteraction(SafetyInteractionInfo model) {
|
return WCSCore.SafetyInteraction(model);
|
}
|
|
// 搁置不使用,存在bug:HttpContext.Current.Request赋值前引用,应该是Current为null导致的
|
|
private void LogRequestHeaders() {
|
var request = HttpContext.Current.Request;
|
var logMessage = new StringBuilder();
|
|
logMessage.AppendLine("=== 请求头信息 ===");
|
logMessage.AppendLine($"请求URL: {request.Url}");
|
logMessage.AppendLine($"HTTP方法: {request.HttpMethod}");
|
|
foreach (string headerName in request.Headers) {
|
logMessage.AppendLine($"{headerName}: {request.Headers[headerName]}");
|
}
|
|
LogHelper.Info(logMessage.ToString());
|
}
|
|
private void LogResponseHeaders() {
|
var response = HttpContext.Current.Response;
|
var logMessage = new StringBuilder();
|
|
logMessage.AppendLine("=== 响应头信息 ===");
|
logMessage.AppendLine($"状态码: {response.StatusCode}");
|
|
foreach (string headerName in response.Headers) {
|
logMessage.AppendLine($"{headerName}: {response.Headers[headerName]}");
|
}
|
|
LogHelper.Info(logMessage.ToString());
|
}
|
}
|
}
|