using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HH.WCS.Mobox3.YNJT_PT.util;
using Newtonsoft.Json;
namespace HH.WCS.Mobox3.YNJT_PT.dispatch
{
public class WCSDispatch
{
private static readonly HttpHelper apiHelper = new HttpHelper();
private static readonly string baseUrl = "http://192.168.1.99:2000/";
///
/// WMS向WCS获取设备状态(堆垛机)
///
///
///
public static List getStackerState(int roadway)
{
var msg = "";
List stackerStates = new List();
var data = new StackerStateModel() { req_no = Guid.NewGuid().ToString("D"), roadway = roadway.ToString() };
var request = JsonConvert.SerializeObject(data);
var response = apiHelper.Post(baseUrl + "api/StackerState", request);
msg = $"WMS向WCS获取设备状态(堆垛机)[StackerState] request={request} response={response}";
LogHelper.Info(msg, "WCS");
if (response != "")
{
try
{
var dataResult = JsonConvert.DeserializeObject(response);
if (dataResult.result_flag == 0)
{
stackerStates = dataResult.data;
}
else
{
LogHelper.Info($"WMS向WCS获取设备状态(堆垛机)失败,WCS反馈错误信息:{dataResult.err_msg}", "WCS");
}
}
catch (Exception ex)
{
LogHelper.Info($"WMS向WCS获取设备状态(堆垛机)错误,错误原因:{ex.Message}", "WCS");
}
}
else
{
msg = "[StackerState]WMS向WCS获取设备状态(堆垛机)失败";
LogHelper.Info(msg, "WCS");
}
return stackerStates;
}
public class StackerStateResponseData
{
public int result_flag { get; set; }
public string err_msg { get; set; }
public List data { get; set; }
}
public class StackerState
{
public string roadway { get; set; }
public string roadway_state { get; set; } // 堆垛机状态 1=空闲,2=执行中,3=报警,0=不可用
}
public class StackerStateModel
{
public string req_no { get; set; }
public string roadway { get; set; }
}
}
}