| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- 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;
- /// <summary>
- /// 金马AGV库位接口 xuwei 2022-03-26
- /// </summary>
- public static class AgvApi
- {
- public static string ip = "http://172.19.24.15:9001/api/venders/wms/area/";
- /// <summary>
- /// 金马原生方法提供的数据
- /// </summary>
- /// <param name="areaCode"></param>
- /// <returns></returns>
- 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();
- }
- }
- /// <summary>
- /// 改进的库位数据,提供顺序XY坐标
- /// </summary>
- /// <param name="areaCode"></param>
- /// <returns></returns>
- 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<double> xNumber = new List<double>();
- List<double> yNumber = new List<double>();
- 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();
- }
- }
- }
|