AgvApi.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Collections;
  7. using Newtonsoft.Json.Linq;
  8. using DK.XuWei.WebMes;
  9. using Curtain.Log;
  10. /// <summary>
  11. /// 金马AGV库位接口 xuwei 2022-03-26
  12. /// </summary>
  13. public static class AgvApi
  14. {
  15. public static string ip = "http://172.19.24.15:9001/api/venders/wms/area/";
  16. /// <summary>
  17. /// 金马原生方法提供的数据
  18. /// </summary>
  19. /// <param name="areaCode"></param>
  20. /// <returns></returns>
  21. public static string GetWmsArea(string areaCode="")
  22. {
  23. string url = ip + areaCode;
  24. try
  25. {
  26. string result = JsonClient.Get(url);
  27. JArray json = JArray.Parse(result);
  28. return new JsonResult() { success = true, status = JsonStatus.success, message = "AGV接口调用成功!", rows=json }.ToJson();
  29. }
  30. catch
  31. {
  32. return new JsonResult() { success = false, status = JsonStatus.error, message = "AGV接口调用异常!" }.ToJson();
  33. }
  34. }
  35. /// <summary>
  36. /// 改进的库位数据,提供顺序XY坐标
  37. /// </summary>
  38. /// <param name="areaCode"></param>
  39. /// <returns></returns>
  40. public static string GetWmsAreaXY(string areaCode = "")
  41. {
  42. string url = ip + areaCode;
  43. try
  44. {
  45. string result = JsonClient.Get(url);
  46. //阴干区库位整理
  47. if (areaCode == "2")
  48. {
  49. result = result.Replace("200834", "200000");
  50. result = result.Replace("201917", "202764");
  51. result = result.Replace("205751", "207254");
  52. result = result.Replace("207668", "209184");
  53. result = result.Replace("209585", "211114");
  54. result = result.Replace("211502", "213044");
  55. result = result.Replace("213419", "214974");
  56. result = result.Replace("217849", "218834");
  57. result = result.Replace("219766", "220764");
  58. result = result.Replace("221683", "222694");
  59. result = result.Replace("225517", "227184");
  60. result = result.Replace("227434", "229114");
  61. result = result.Replace("229351", "231044");
  62. }
  63. JArray json = JArray.Parse(result);
  64. //查找横纵坐标并记录到xNumber和yNumber
  65. List<double> xNumber = new List<double>();
  66. List<double> yNumber = new List<double>();
  67. for (int i = 0; i < ((JArray)json[0]["positions"]).Count; i++)
  68. {
  69. if (!xNumber.Contains(Convert.ToDouble(json[0]["positions"][i]["position"]["cooX"])))
  70. xNumber.Add(Convert.ToDouble(json[0]["positions"][i]["position"]["cooX"]));
  71. if (!yNumber.Contains(Convert.ToDouble(json[0]["positions"][i]["position"]["cooY"])))
  72. yNumber.Add(Convert.ToDouble(json[0]["positions"][i]["position"]["cooY"]));
  73. }
  74. xNumber.Sort();
  75. yNumber.Sort();
  76. //Logger.Debug(new JsonResult(xNumber).ToJson());
  77. //Logger.Debug(new JsonResult(yNumber).ToJson());
  78. //int count = ((JArray)json[0]["positions"]).Count;
  79. //Logger.Debug(new JsonResult("库位"+areaCode.ToString()+":"+xNumber.Count.ToString() + "x" + yNumber.Count.ToString() + "=" + count.ToString()).ToJson());
  80. //将横纵坐标增加到对象
  81. for (int i = 0; i < ((JArray)json[0]["positions"]).Count; i++)
  82. {
  83. ((JObject)json[0]["positions"][i]["position"]).Add(new JProperty("dongkeX", xNumber.FindIndex((double n) => n == Convert.ToDouble(json[0]["positions"][i]["position"]["cooX"])) + 1));
  84. ((JObject)json[0]["positions"][i]["position"]).Add(new JProperty("dongkeY", yNumber.FindIndex((double n) => n == Convert.ToDouble(json[0]["positions"][i]["position"]["cooY"])) + 1));
  85. }
  86. ((JObject)json[0]).Add(new JProperty("dongkecountX", xNumber.Count));
  87. ((JObject)json[0]).Add(new JProperty("dongkecountY", yNumber.Count));
  88. return new JsonResult() { success = true, status = JsonStatus.success, message = "AGV接口调用成功!", rows = json }.ToJson();
  89. }
  90. catch
  91. {
  92. return new JsonResult() { success = false, status = JsonStatus.error, message = "AGV接口调用异常!" }.ToJson();
  93. }
  94. }
  95. }