kazelee
2 天以前 6d2faa6e299bdfe545ee339269e64f2900229147
api/AgvController.cs
@@ -1,38 +1,31 @@
using HH.WCS.Mobox3.AnGang.core;
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.wms;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Reflection;
using System.Web.Http;
using static HH.WCS.Mobox3.AnGang.dispatch.NDC;
using System.Linq;
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>
    [RoutePrefix("agv")]
    public class AgvController : ApiController
    {
        ///// <summary>
        ///// NDC HostToAGV 任务状态回报
        ///// </summary>
        ///// <param name="model"></param>
        ///// <returns></returns>
        //[HttpPost]
        //[Route("AGVCallbackState")]
        //public ReturnResult AGVCallbackState(AgvTaskState model)
        //{
        //    LogHelper.Info("NDC HostToAGV任务状态回报:" + JsonConvert.SerializeObject(model), "HosttoagvTask");
        //    return AgvService.OperateAgvTaskStatus(model);
        //}
        /// <summary>
        /// RCS国自AGV任务状态回报
        /// </summary>
@@ -42,7 +35,31 @@
        [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>
@@ -52,8 +69,39 @@
        /// <returns></returns>
        [HttpPost]
        [Route("safetyInteraction")]
        public ReturnResult SafetyInteraction(SafetyInteractionInfo model) {
        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());
        }
    }
}