using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Collections;
using Newtonsoft.Json.Linq;
using DK.XuWei.WebMes;
using Curtain.Log;
///
/// 金马AGV库位接口 xuwei 2022-03-26
///
public static class AgvApi
{
public static string ip = "http://172.19.24.15:9001/api/venders/wms/area/";
///
/// 金马原生方法提供的数据
///
///
///
public static string GetWmsArea(string areaCode="")
{
string url = ip + areaCode;
try
{
string result = JsonClient.Get(url);
JArray json = JArray.Parse(result);
return new JsonResult() { success = true, status = JsonStatus.success, message = "AGV接口调用成功!", rows=json }.ToJson();
}
catch
{
return new JsonResult() { success = false, status = JsonStatus.error, message = "AGV接口调用异常!" }.ToJson();
}
}
///
/// 改进的库位数据,提供顺序XY坐标
///
///
///
public static string GetWmsAreaXY(string areaCode = "")
{
string url = ip + areaCode;
try
{
string result = JsonClient.Get(url);
//阴干区库位整理
if (areaCode == "2")
{
result = result.Replace("200834", "200000");
result = result.Replace("201917", "202764");
result = result.Replace("205751", "207254");
result = result.Replace("207668", "209184");
result = result.Replace("209585", "211114");
result = result.Replace("211502", "213044");
result = result.Replace("213419", "214974");
result = result.Replace("217849", "218834");
result = result.Replace("219766", "220764");
result = result.Replace("221683", "222694");
result = result.Replace("225517", "227184");
result = result.Replace("227434", "229114");
result = result.Replace("229351", "231044");
}
JArray json = JArray.Parse(result);
//查找横纵坐标并记录到xNumber和yNumber
List xNumber = new List();
List yNumber = new List();
for (int i = 0; i < ((JArray)json[0]["positions"]).Count; i++)
{
if (!xNumber.Contains(Convert.ToDouble(json[0]["positions"][i]["position"]["cooX"])))
xNumber.Add(Convert.ToDouble(json[0]["positions"][i]["position"]["cooX"]));
if (!yNumber.Contains(Convert.ToDouble(json[0]["positions"][i]["position"]["cooY"])))
yNumber.Add(Convert.ToDouble(json[0]["positions"][i]["position"]["cooY"]));
}
xNumber.Sort();
yNumber.Sort();
//Logger.Debug(new JsonResult(xNumber).ToJson());
//Logger.Debug(new JsonResult(yNumber).ToJson());
//int count = ((JArray)json[0]["positions"]).Count;
//Logger.Debug(new JsonResult("库位"+areaCode.ToString()+":"+xNumber.Count.ToString() + "x" + yNumber.Count.ToString() + "=" + count.ToString()).ToJson());
//将横纵坐标增加到对象
for (int i = 0; i < ((JArray)json[0]["positions"]).Count; i++)
{
((JObject)json[0]["positions"][i]["position"]).Add(new JProperty("dongkeX", xNumber.FindIndex((double n) => n == Convert.ToDouble(json[0]["positions"][i]["position"]["cooX"])) + 1));
((JObject)json[0]["positions"][i]["position"]).Add(new JProperty("dongkeY", yNumber.FindIndex((double n) => n == Convert.ToDouble(json[0]["positions"][i]["position"]["cooY"])) + 1));
}
((JObject)json[0]).Add(new JProperty("dongkecountX", xNumber.Count));
((JObject)json[0]).Add(new JProperty("dongkecountY", yNumber.Count));
return new JsonResult() { success = true, status = JsonStatus.success, message = "AGV接口调用成功!", rows = json }.ToJson();
}
catch
{
return new JsonResult() { success = false, status = JsonStatus.error, message = "AGV接口调用异常!" }.ToJson();
}
}
}